summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
authornobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-04-21 17:04:40 +0000
committernobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-04-21 17:04:40 +0000
commitd9abba305ce7937b30b4ef7dda86d10c04499305 (patch)
tree658c7454dccdaed7d2c9d6ba1ed9e50d53d3a273 /ace
parent87f83ea4034de2f7faa8bdab4cf35d3521e24ed7 (diff)
downloadATCD-d9abba305ce7937b30b4ef7dda86d10c04499305.tar.gz
This commit was manufactured by cvs2svn to create branch
'unlabeled-1.2.40'.
Diffstat (limited to 'ace')
-rw-r--r--ace/ACE.cpp3493
-rw-r--r--ace/ACE.h786
-rw-r--r--ace/ACE.i312
-rw-r--r--ace/ACE_export.h46
-rw-r--r--ace/ARGV.cpp345
-rw-r--r--ace/ARGV.h179
-rw-r--r--ace/ARGV.i68
-rw-r--r--ace/ATM_Acceptor.cpp309
-rw-r--r--ace/ATM_Acceptor.h110
-rw-r--r--ace/ATM_Acceptor.i30
-rw-r--r--ace/ATM_Addr.cpp503
-rw-r--r--ace/ATM_Addr.h186
-rw-r--r--ace/ATM_Addr.i49
-rw-r--r--ace/ATM_Connector.cpp141
-rw-r--r--ace/ATM_Connector.h158
-rw-r--r--ace/ATM_Connector.i120
-rw-r--r--ace/ATM_Params.cpp22
-rw-r--r--ace/ATM_Params.h210
-rw-r--r--ace/ATM_Params.i224
-rw-r--r--ace/ATM_QoS.cpp633
-rw-r--r--ace/ATM_QoS.h103
-rw-r--r--ace/ATM_QoS.i17
-rw-r--r--ace/ATM_Stream.cpp292
-rw-r--r--ace/ATM_Stream.h99
-rw-r--r--ace/ATM_Stream.i124
-rw-r--r--ace/Acceptor.cpp1213
-rw-r--r--ace/Acceptor.h657
-rw-r--r--ace/Activation_Queue.cpp109
-rw-r--r--ace/Activation_Queue.h162
-rw-r--r--ace/Activation_Queue.i34
-rw-r--r--ace/Active_Map_Manager.cpp10
-rw-r--r--ace/Active_Map_Manager.h110
-rw-r--r--ace/Active_Map_Manager.i89
-rw-r--r--ace/Active_Map_Manager_T.cpp20
-rw-r--r--ace/Active_Map_Manager_T.h205
-rw-r--r--ace/Active_Map_Manager_T.i303
-rw-r--r--ace/Addr.cpp50
-rw-r--r--ace/Addr.h100
-rw-r--r--ace/Addr.i69
-rw-r--r--ace/Arg_Shifter.cpp207
-rw-r--r--ace/Arg_Shifter.h204
-rw-r--r--ace/Argv_Type_Converter.cpp200
-rw-r--r--ace/Argv_Type_Converter.h116
-rw-r--r--ace/Argv_Type_Converter.inl41
-rw-r--r--ace/Array.h27
-rw-r--r--ace/Array_Base.cpp204
-rw-r--r--ace/Array_Base.h210
-rw-r--r--ace/Array_Base.inl84
-rw-r--r--ace/Asynch_Acceptor.cpp461
-rw-r--r--ace/Asynch_Acceptor.h286
-rw-r--r--ace/Asynch_Connector.cpp288
-rw-r--r--ace/Asynch_Connector.h169
-rw-r--r--ace/Asynch_IO.cpp1452
-rw-r--r--ace/Asynch_IO.h1608
-rw-r--r--ace/Asynch_IO_Impl.cpp117
-rw-r--r--ace/Asynch_IO_Impl.h820
-rw-r--r--ace/Asynch_IO_Impl.i100
-rw-r--r--ace/Asynch_Pseudo_Task.cpp313
-rw-r--r--ace/Asynch_Pseudo_Task.h79
-rw-r--r--ace/Atomic_Op.cpp227
-rw-r--r--ace/Atomic_Op.h163
-rw-r--r--ace/Atomic_Op.i150
-rw-r--r--ace/Atomic_Op_T.cpp80
-rw-r--r--ace/Atomic_Op_T.h254
-rw-r--r--ace/Atomic_Op_T.i262
-rw-r--r--ace/Auto_IncDec_T.cpp30
-rw-r--r--ace/Auto_IncDec_T.h88
-rw-r--r--ace/Auto_IncDec_T.i21
-rw-r--r--ace/Auto_Ptr.cpp42
-rw-r--r--ace/Auto_Ptr.h188
-rw-r--r--ace/Auto_Ptr.i144
-rw-r--r--ace/Base_Thread_Adapter.cpp125
-rw-r--r--ace/Base_Thread_Adapter.h167
-rw-r--r--ace/Base_Thread_Adapter.inl34
-rw-r--r--ace/Based_Pointer_Repository.cpp127
-rw-r--r--ace/Based_Pointer_Repository.h79
-rw-r--r--ace/Based_Pointer_T.cpp114
-rw-r--r--ace/Based_Pointer_T.h201
-rw-r--r--ace/Based_Pointer_T.i136
-rw-r--r--ace/Basic_Stats.cpp73
-rw-r--r--ace/Basic_Stats.h87
-rw-r--r--ace/Basic_Stats.inl59
-rw-r--r--ace/Basic_Types.cpp131
-rw-r--r--ace/Basic_Types.h668
-rw-r--r--ace/Basic_Types.i529
-rw-r--r--ace/Bound_Ptr.h338
-rw-r--r--ace/Bound_Ptr.i481
-rw-r--r--ace/CDR_Base.cpp592
-rw-r--r--ace/CDR_Base.h298
-rw-r--r--ace/CDR_Base.inl196
-rw-r--r--ace/CDR_Stream.cpp1617
-rw-r--r--ace/CDR_Stream.h1238
-rw-r--r--ace/CDR_Stream.i1648
-rw-r--r--ace/CE_Screen_Output.cpp155
-rw-r--r--ace/CE_Screen_Output.h103
-rw-r--r--ace/CLASSIX/CLASSIX_Addr.cpp13
-rw-r--r--ace/CLASSIX/CLASSIX_Addr.h99
-rw-r--r--ace/CLASSIX/CLASSIX_Addr.i56
-rw-r--r--ace/CLASSIX/CLASSIX_CLD_Connector.cpp116
-rw-r--r--ace/CLASSIX/CLASSIX_CLD_Connector.h134
-rw-r--r--ace/CLASSIX/CLASSIX_CLD_Connector.i24
-rw-r--r--ace/CLASSIX/CLASSIX_CO_Acceptor.cpp199
-rw-r--r--ace/CLASSIX/CLASSIX_CO_Acceptor.h146
-rw-r--r--ace/CLASSIX/CLASSIX_CO_Acceptor.i31
-rw-r--r--ace/CLASSIX/CLASSIX_CO_Connector.cpp118
-rw-r--r--ace/CLASSIX/CLASSIX_CO_Connector.h118
-rw-r--r--ace/CLASSIX/CLASSIX_CO_Connector.i36
-rw-r--r--ace/CLASSIX/CLASSIX_Dgram_Mcast.cpp83
-rw-r--r--ace/CLASSIX/CLASSIX_Dgram_Mcast.h94
-rw-r--r--ace/CLASSIX/CLASSIX_Dgram_Mcast.i21
-rw-r--r--ace/CLASSIX/CLASSIX_Group.cpp89
-rw-r--r--ace/CLASSIX/CLASSIX_Group.h118
-rw-r--r--ace/CLASSIX/CLASSIX_Group.i89
-rw-r--r--ace/CLASSIX/CLASSIX_Group_Dynamic.cpp22
-rw-r--r--ace/CLASSIX/CLASSIX_Group_Dynamic.h63
-rw-r--r--ace/CLASSIX/CLASSIX_Group_Dynamic.i16
-rw-r--r--ace/CLASSIX/CLASSIX_Group_Stamp.cpp52
-rw-r--r--ace/CLASSIX/CLASSIX_Group_Stamp.h90
-rw-r--r--ace/CLASSIX/CLASSIX_Group_Stamp.i32
-rw-r--r--ace/CLASSIX/CLASSIX_OS.cpp117
-rw-r--r--ace/CLASSIX/CLASSIX_OS.h134
-rw-r--r--ace/CLASSIX/CLASSIX_OS.i56
-rw-r--r--ace/CLASSIX/CLASSIX_Peer_SAP.cpp77
-rw-r--r--ace/CLASSIX/CLASSIX_Peer_SAP.h108
-rw-r--r--ace/CLASSIX/CLASSIX_Peer_SAP.i99
-rw-r--r--ace/CLASSIX/CLASSIX_Port.cpp129
-rw-r--r--ace/CLASSIX/CLASSIX_Port.h162
-rw-r--r--ace/CLASSIX/CLASSIX_Port.i112
-rw-r--r--ace/CLASSIX/CLASSIX_Port_Core.cpp70
-rw-r--r--ace/CLASSIX/CLASSIX_Port_Core.h103
-rw-r--r--ace/CLASSIX/CLASSIX_Port_Core.i38
-rw-r--r--ace/CLASSIX/CLASSIX_Port_Default.cpp26
-rw-r--r--ace/CLASSIX/CLASSIX_Port_Default.h80
-rw-r--r--ace/CLASSIX/CLASSIX_Port_Default.i28
-rw-r--r--ace/CLASSIX/CLASSIX_SAP.cpp153
-rw-r--r--ace/CLASSIX/CLASSIX_SAP.h145
-rw-r--r--ace/CLASSIX/CLASSIX_SAP.i58
-rw-r--r--ace/CLASSIX/CLASSIX_Select_Reactor.cpp337
-rw-r--r--ace/CLASSIX/CLASSIX_Select_Reactor.h209
-rw-r--r--ace/CLASSIX/CLASSIX_Select_Reactor.i63
-rw-r--r--ace/CLASSIX/CLASSIX_Stream.cpp362
-rw-r--r--ace/CLASSIX/CLASSIX_Stream.h272
-rw-r--r--ace/CLASSIX/CLASSIX_Stream.i182
-rw-r--r--ace/CLASSIX/Makefile544
-rw-r--r--ace/CORBA_macros.h547
-rw-r--r--ace/Cache_Map_Manager_T.cpp420
-rw-r--r--ace/Cache_Map_Manager_T.h428
-rw-r--r--ace/Cache_Map_Manager_T.i273
-rw-r--r--ace/Cached_Connect_Strategy_T.cpp775
-rw-r--r--ace/Cached_Connect_Strategy_T.h260
-rw-r--r--ace/Caching_Strategies_T.cpp57
-rw-r--r--ace/Caching_Strategies_T.h548
-rw-r--r--ace/Caching_Strategies_T.i448
-rw-r--r--ace/Caching_Utility_T.cpp502
-rw-r--r--ace/Caching_Utility_T.h343
-rw-r--r--ace/Capabilities.cpp367
-rw-r--r--ace/Capabilities.h211
-rw-r--r--ace/Capabilities.i48
-rw-r--r--ace/Cleanup_Strategies_T.cpp89
-rw-r--r--ace/Cleanup_Strategies_T.h148
-rw-r--r--ace/Codecs.cpp210
-rw-r--r--ace/Codecs.h110
-rw-r--r--ace/Codeset_IBM1047.cpp309
-rw-r--r--ace/Codeset_IBM1047.h126
-rw-r--r--ace/Codeset_Registry.cpp106
-rw-r--r--ace/Codeset_Registry.h99
-rw-r--r--ace/Codeset_Registry.inl98
-rw-r--r--ace/Codeset_Registry_db.cpp24
-rw-r--r--ace/Configuration.cpp2180
-rw-r--r--ace/Configuration.h884
-rw-r--r--ace/Configuration_Import_Export.cpp609
-rw-r--r--ace/Configuration_Import_Export.h211
-rw-r--r--ace/Connection_Recycling_Strategy.cpp13
-rw-r--r--ace/Connection_Recycling_Strategy.h67
-rw-r--r--ace/Connector.cpp1079
-rw-r--r--ace/Connector.h583
-rw-r--r--ace/Containers.cpp24
-rw-r--r--ace/Containers.h73
-rw-r--r--ace/Containers.i25
-rw-r--r--ace/Containers_T.cpp1878
-rw-r--r--ace/Containers_T.h1995
-rw-r--r--ace/Containers_T.i469
-rw-r--r--ace/Copy_Disabled.cpp21
-rw-r--r--ace/Copy_Disabled.h60
-rw-r--r--ace/DEV.cpp37
-rw-r--r--ace/DEV.h74
-rw-r--r--ace/DEV.i15
-rw-r--r--ace/DEV_Addr.cpp81
-rw-r--r--ace/DEV_Addr.h86
-rw-r--r--ace/DEV_Addr.i65
-rw-r--r--ace/DEV_Connector.cpp43
-rw-r--r--ace/DEV_Connector.h104
-rw-r--r--ace/DEV_Connector.i30
-rw-r--r--ace/DEV_IO.cpp126
-rw-r--r--ace/DEV_IO.h135
-rw-r--r--ace/DEV_IO.i101
-rw-r--r--ace/DLL.cpp220
-rw-r--r--ace/DLL.h145
-rw-r--r--ace/DLL_Manager.cpp496
-rw-r--r--ace/DLL_Manager.h248
-rw-r--r--ace/Date_Time.cpp10
-rw-r--r--ace/Date_Time.h121
-rw-r--r--ace/Date_Time.i194
-rw-r--r--ace/Default_Constants.h392
-rw-r--r--ace/Dev_Poll_Reactor.cpp2430
-rw-r--r--ace/Dev_Poll_Reactor.h1175
-rw-r--r--ace/Dev_Poll_Reactor.inl201
-rw-r--r--ace/Dirent.cpp11
-rw-r--r--ace/Dirent.h118
-rw-r--r--ace/Dirent.i95
-rw-r--r--ace/Dirent_Selector.cpp44
-rw-r--r--ace/Dirent_Selector.h68
-rw-r--r--ace/Dirent_Selector.inl15
-rw-r--r--ace/Dump.cpp136
-rw-r--r--ace/Dump.h168
-rw-r--r--ace/Dump_T.cpp41
-rw-r--r--ace/Dump_T.h78
-rw-r--r--ace/Dynamic.cpp43
-rw-r--r--ace/Dynamic.h71
-rw-r--r--ace/Dynamic.i31
-rw-r--r--ace/Dynamic_Service.cpp29
-rw-r--r--ace/Dynamic_Service.h64
-rw-r--r--ace/Dynamic_Service.i10
-rw-r--r--ace/Dynamic_Service_Base.cpp42
-rw-r--r--ace/Dynamic_Service_Base.h46
-rw-r--r--ace/Dynamic_Service_Base.i2
-rw-r--r--ace/Env_Value_T.cpp14
-rw-r--r--ace/Env_Value_T.h161
-rw-r--r--ace/Env_Value_T.i51
-rw-r--r--ace/Event_Handler.cpp248
-rw-r--r--ace/Event_Handler.h237
-rw-r--r--ace/Event_Handler.i10
-rw-r--r--ace/Event_Handler_T.cpp63
-rw-r--r--ace/Event_Handler_T.h187
-rw-r--r--ace/Event_Handler_T.i185
-rw-r--r--ace/Exception_Macros.h55
-rw-r--r--ace/FIFO.cpp74
-rw-r--r--ace/FIFO.h78
-rw-r--r--ace/FIFO.i20
-rw-r--r--ace/FIFO_Recv.cpp82
-rw-r--r--ace/FIFO_Recv.h80
-rw-r--r--ace/FIFO_Recv.i18
-rw-r--r--ace/FIFO_Recv_Msg.cpp61
-rw-r--r--ace/FIFO_Recv_Msg.h131
-rw-r--r--ace/FIFO_Recv_Msg.i101
-rw-r--r--ace/FIFO_Send.cpp53
-rw-r--r--ace/FIFO_Send.h70
-rw-r--r--ace/FIFO_Send.i18
-rw-r--r--ace/FIFO_Send_Msg.cpp72
-rw-r--r--ace/FIFO_Send_Msg.h80
-rw-r--r--ace/FIFO_Send_Msg.i48
-rw-r--r--ace/FILE.cpp156
-rw-r--r--ace/FILE.h143
-rw-r--r--ace/FILE.i16
-rw-r--r--ace/FILE_Addr.cpp114
-rw-r--r--ace/FILE_Addr.h85
-rw-r--r--ace/FILE_Addr.i43
-rw-r--r--ace/FILE_Connector.cpp84
-rw-r--r--ace/FILE_Connector.h110
-rw-r--r--ace/FILE_Connector.i33
-rw-r--r--ace/FILE_IO.cpp133
-rw-r--r--ace/FILE_IO.h160
-rw-r--r--ace/FILE_IO.i145
-rw-r--r--ace/File_Lock.cpp78
-rw-r--r--ace/File_Lock.h164
-rw-r--r--ace/File_Lock.inl89
-rw-r--r--ace/Filecache.cpp769
-rw-r--r--ace/Filecache.h360
-rw-r--r--ace/FlReactor.cpp331
-rw-r--r--ace/FlReactor.h113
-rw-r--r--ace/FlReactor.i2
-rw-r--r--ace/Flag_Manip.cpp80
-rw-r--r--ace/Flag_Manip.h52
-rw-r--r--ace/Flag_Manip.i20
-rw-r--r--ace/Framework_Component.cpp272
-rw-r--r--ace/Framework_Component.h193
-rw-r--r--ace/Framework_Component.inl35
-rw-r--r--ace/Framework_Component_T.cpp35
-rw-r--r--ace/Framework_Component_T.h70
-rw-r--r--ace/Framework_Component_T.inl4
-rw-r--r--ace/Free_List.cpp90
-rw-r--r--ace/Free_List.h148
-rw-r--r--ace/Free_List.i76
-rw-r--r--ace/Functor.cpp48
-rw-r--r--ace/Functor.h464
-rw-r--r--ace/Functor.i241
-rw-r--r--ace/Functor_T.cpp49
-rw-r--r--ace/Functor_T.h152
-rw-r--r--ace/Functor_T.i37
-rw-r--r--ace/Future.cpp444
-rw-r--r--ace/Future.h385
-rw-r--r--ace/Future_Set.cpp137
-rw-r--r--ace/Future_Set.h141
-rw-r--r--ace/Get_Opt.cpp726
-rw-r--r--ace/Get_Opt.h466
-rw-r--r--ace/Get_Opt.i40
-rw-r--r--ace/Global_Macros.h437
-rw-r--r--ace/Handle_Gobbler.h66
-rw-r--r--ace/Handle_Gobbler.i88
-rw-r--r--ace/Handle_Ops.cpp43
-rw-r--r--ace/Handle_Ops.h53
-rw-r--r--ace/Handle_Ops.i1
-rw-r--r--ace/Handle_Set.cpp556
-rw-r--r--ace/Handle_Set.h224
-rw-r--r--ace/Handle_Set.i168
-rw-r--r--ace/Hash_Cache_Map_Manager_T.cpp230
-rw-r--r--ace/Hash_Cache_Map_Manager_T.h216
-rw-r--r--ace/Hash_Cache_Map_Manager_T.i68
-rw-r--r--ace/Hash_Map_Manager.cpp19
-rw-r--r--ace/Hash_Map_Manager.h29
-rw-r--r--ace/Hash_Map_Manager_T.cpp520
-rw-r--r--ace/Hash_Map_Manager_T.h947
-rw-r--r--ace/Hash_Map_Manager_T.i960
-rw-r--r--ace/Hash_Map_With_Allocator_T.cpp32
-rw-r--r--ace/Hash_Map_With_Allocator_T.h103
-rw-r--r--ace/Hash_Map_With_Allocator_T.i73
-rw-r--r--ace/Hashable.cpp8
-rw-r--r--ace/Hashable.h63
-rw-r--r--ace/Hashable.inl30
-rw-r--r--ace/High_Res_Timer.cpp526
-rw-r--r--ace/High_Res_Timer.h310
-rw-r--r--ace/High_Res_Timer.i158
-rw-r--r--ace/INET_Addr.cpp944
-rw-r--r--ace/INET_Addr.h332
-rw-r--r--ace/INET_Addr.i177
-rw-r--r--ace/IOStream.cpp658
-rw-r--r--ace/IOStream.h513
-rw-r--r--ace/IOStream_T.cpp210
-rw-r--r--ace/IOStream_T.h288
-rw-r--r--ace/IOStream_T.i160
-rw-r--r--ace/IO_Cntl_Msg.cpp37
-rw-r--r--ace/IO_Cntl_Msg.h105
-rw-r--r--ace/IO_SAP.cpp142
-rw-r--r--ace/IO_SAP.h90
-rw-r--r--ace/IO_SAP.i39
-rw-r--r--ace/IPC_SAP.cpp182
-rw-r--r--ace/IPC_SAP.h84
-rw-r--r--ace/IPC_SAP.i37
-rw-r--r--ace/Init_ACE.cpp45
-rw-r--r--ace/Init_ACE.h69
-rw-r--r--ace/Init_ACE.i1
-rw-r--r--ace/Intrusive_List.cpp151
-rw-r--r--ace/Intrusive_List.h133
-rw-r--r--ace/Intrusive_List.inl19
-rw-r--r--ace/Intrusive_List_Node.cpp25
-rw-r--r--ace/Intrusive_List_Node.h81
-rw-r--r--ace/Intrusive_List_Node.inl25
-rw-r--r--ace/LOCK_SOCK_Acceptor.cpp33
-rw-r--r--ace/LOCK_SOCK_Acceptor.h62
-rw-r--r--ace/LSOCK.cpp173
-rw-r--r--ace/LSOCK.h79
-rw-r--r--ace/LSOCK.i40
-rw-r--r--ace/LSOCK_Acceptor.cpp135
-rw-r--r--ace/LSOCK_Acceptor.h91
-rw-r--r--ace/LSOCK_CODgram.cpp56
-rw-r--r--ace/LSOCK_CODgram.h74
-rw-r--r--ace/LSOCK_CODgram.i27
-rw-r--r--ace/LSOCK_Connector.cpp54
-rw-r--r--ace/LSOCK_Connector.h87
-rw-r--r--ace/LSOCK_Connector.i26
-rw-r--r--ace/LSOCK_Dgram.cpp65
-rw-r--r--ace/LSOCK_Dgram.h71
-rw-r--r--ace/LSOCK_Dgram.i20
-rw-r--r--ace/LSOCK_Stream.cpp132
-rw-r--r--ace/LSOCK_Stream.h78
-rw-r--r--ace/LSOCK_Stream.i25
-rw-r--r--ace/Lib_Find.cpp585
-rw-r--r--ace/Lib_Find.h105
-rw-r--r--ace/Lib_Find.i1
-rw-r--r--ace/Local_Name_Space.cpp218
-rw-r--r--ace/Local_Name_Space.h129
-rw-r--r--ace/Local_Name_Space_T.cpp963
-rw-r--r--ace/Local_Name_Space_T.h267
-rw-r--r--ace/Local_Tokens.cpp1448
-rw-r--r--ace/Local_Tokens.h1114
-rw-r--r--ace/Local_Tokens.i458
-rw-r--r--ace/Log_Msg.cpp2534
-rw-r--r--ace/Log_Msg.h722
-rw-r--r--ace/Log_Msg_Backend.cpp9
-rw-r--r--ace/Log_Msg_Backend.h64
-rw-r--r--ace/Log_Msg_Callback.cpp9
-rw-r--r--ace/Log_Msg_Callback.h65
-rw-r--r--ace/Log_Msg_IPC.cpp72
-rw-r--r--ace/Log_Msg_IPC.h63
-rw-r--r--ace/Log_Msg_NT_Event_Log.cpp154
-rw-r--r--ace/Log_Msg_NT_Event_Log.h68
-rw-r--r--ace/Log_Msg_UNIX_Syslog.cpp191
-rw-r--r--ace/Log_Msg_UNIX_Syslog.h72
-rw-r--r--ace/Log_Priority.h76
-rw-r--r--ace/Log_Record.cpp277
-rw-r--r--ace/Log_Record.h194
-rw-r--r--ace/Log_Record.i107
-rw-r--r--ace/Logging_Strategy.cpp518
-rw-r--r--ace/Logging_Strategy.h170
-rw-r--r--ace/MEM_Acceptor.cpp241
-rw-r--r--ace/MEM_Acceptor.h180
-rw-r--r--ace/MEM_Acceptor.i91
-rw-r--r--ace/MEM_Addr.cpp149
-rw-r--r--ace/MEM_Addr.h153
-rw-r--r--ace/MEM_Addr.i117
-rw-r--r--ace/MEM_Connector.cpp142
-rw-r--r--ace/MEM_Connector.h173
-rw-r--r--ace/MEM_Connector.i24
-rw-r--r--ace/MEM_IO.cpp538
-rw-r--r--ace/MEM_IO.h301
-rw-r--r--ace/MEM_IO.i230
-rw-r--r--ace/MEM_SAP.cpp99
-rw-r--r--ace/MEM_SAP.h161
-rw-r--r--ace/MEM_SAP.i67
-rw-r--r--ace/MEM_Stream.cpp41
-rw-r--r--ace/MEM_Stream.h142
-rw-r--r--ace/MEM_Stream.i176
-rw-r--r--ace/Makefile17
-rw-r--r--ace/Makefile.ace16756
-rw-r--r--ace/Makefile.am1156
-rw-r--r--ace/Makefile.bor289
-rw-r--r--ace/Makefile.dirs37
-rw-r--r--ace/Makefile.vac11
-rw-r--r--ace/Malloc.cpp196
-rw-r--r--ace/Malloc.h394
-rw-r--r--ace/Malloc.i21
-rw-r--r--ace/Malloc_Allocator.cpp164
-rw-r--r--ace/Malloc_Allocator.h143
-rw-r--r--ace/Malloc_Allocator.i213
-rw-r--r--ace/Malloc_Base.h156
-rw-r--r--ace/Malloc_Instantiations.cpp33
-rw-r--r--ace/Malloc_T.cpp1036
-rw-r--r--ace/Malloc_T.h850
-rw-r--r--ace/Malloc_T.i354
-rw-r--r--ace/Managed_Object.cpp23
-rw-r--r--ace/Managed_Object.h162
-rw-r--r--ace/Managed_Object.i18
-rw-r--r--ace/Map.cpp19
-rw-r--r--ace/Map.h30
-rw-r--r--ace/Map_Manager.cpp692
-rw-r--r--ace/Map_Manager.h712
-rw-r--r--ace/Map_Manager.i713
-rw-r--r--ace/Map_T.cpp18
-rw-r--r--ace/Map_T.h1601
-rw-r--r--ace/Map_T.i1723
-rw-r--r--ace/Mem_Map.cpp387
-rw-r--r--ace/Mem_Map.h217
-rw-r--r--ace/Mem_Map.i249
-rw-r--r--ace/Memory_Pool.cpp1356
-rw-r--r--ace/Memory_Pool.h814
-rw-r--r--ace/Memory_Pool.i269
-rw-r--r--ace/Message_Block.cpp1319
-rw-r--r--ace/Message_Block.h1039
-rw-r--r--ace/Message_Block.i658
-rw-r--r--ace/Message_Block_T.cpp48
-rw-r--r--ace/Message_Block_T.h83
-rw-r--r--ace/Message_Block_T.i29
-rw-r--r--ace/Message_Queue.cpp510
-rw-r--r--ace/Message_Queue.h604
-rw-r--r--ace/Message_Queue.i232
-rw-r--r--ace/Message_Queue_T.cpp2336
-rw-r--r--ace/Message_Queue_T.h1236
-rw-r--r--ace/Message_Queue_T.i336
-rw-r--r--ace/Method_Object.h34
-rw-r--r--ace/Method_Request.cpp26
-rw-r--r--ace/Method_Request.h93
-rw-r--r--ace/Min_Max.h75
-rw-r--r--ace/Module.cpp269
-rw-r--r--ace/Module.h209
-rw-r--r--ace/Module.i62
-rw-r--r--ace/Msg_WFMO_Reactor.cpp90
-rw-r--r--ace/Msg_WFMO_Reactor.h116
-rw-r--r--ace/Msg_WFMO_Reactor.i30
-rw-r--r--ace/Multihomed_INET_Addr.cpp187
-rw-r--r--ace/Multihomed_INET_Addr.h146
-rw-r--r--ace/Multihomed_INET_Addr.i12
-rw-r--r--ace/Multiplexor.cpp14
-rw-r--r--ace/Multiplexor.h81
-rw-r--r--ace/Multiplexor.i91
-rw-r--r--ace/NT_Service.cpp610
-rw-r--r--ace/NT_Service.h435
-rw-r--r--ace/NT_Service.i79
-rw-r--r--ace/Name_Proxy.cpp201
-rw-r--r--ace/Name_Proxy.h91
-rw-r--r--ace/Name_Request_Reply.cpp560
-rw-r--r--ace/Name_Request_Reply.h261
-rw-r--r--ace/Name_Space.cpp65
-rw-r--r--ace/Name_Space.h161
-rw-r--r--ace/Naming_Context.cpp694
-rw-r--r--ace/Naming_Context.h380
-rw-r--r--ace/Node.cpp49
-rw-r--r--ace/Node.h86
-rw-r--r--ace/Notification_Strategy.cpp18
-rw-r--r--ace/Notification_Strategy.h73
-rw-r--r--ace/Notification_Strategy.inl26
-rw-r--r--ace/OS.cpp7624
-rw-r--r--ace/OS.h7049
-rw-r--r--ace/OS.i11160
-rw-r--r--ace/OS_Dirent.cpp257
-rw-r--r--ace/OS_Dirent.h134
-rw-r--r--ace/OS_Dirent.inl191
-rw-r--r--ace/OS_Errno.cpp35
-rw-r--r--ace/OS_Errno.h142
-rw-r--r--ace/OS_Errno.inl87
-rw-r--r--ace/OS_Export.h46
-rw-r--r--ace/OS_Log_Msg_Attributes.cpp9
-rw-r--r--ace/OS_Log_Msg_Attributes.h89
-rw-r--r--ace/OS_Log_Msg_Attributes.inl6
-rw-r--r--ace/OS_Memory.cpp43
-rw-r--r--ace/OS_Memory.h264
-rw-r--r--ace/OS_Memory.inl20
-rw-r--r--ace/OS_QoS.cpp471
-rw-r--r--ace/OS_QoS.h386
-rw-r--r--ace/OS_String.cpp1073
-rw-r--r--ace/OS_String.h631
-rw-r--r--ace/OS_String.inl679
-rw-r--r--ace/OS_TLI.cpp13
-rw-r--r--ace/OS_TLI.h197
-rw-r--r--ace/OS_TLI.inl343
-rw-r--r--ace/OS_Thread_Adapter.cpp175
-rw-r--r--ace/OS_Thread_Adapter.h78
-rw-r--r--ace/OS_Thread_Adapter.inl1
-rw-r--r--ace/Obchunk.cpp30
-rw-r--r--ace/Obchunk.h72
-rw-r--r--ace/Obchunk.i9
-rw-r--r--ace/Object_Manager.cpp873
-rw-r--r--ace/Object_Manager.h480
-rw-r--r--ace/Object_Manager.i35
-rw-r--r--ace/Obstack.cpp11
-rw-r--r--ace/Obstack.h27
-rw-r--r--ace/Obstack_T.cpp206
-rw-r--r--ace/Obstack_T.h125
-rw-r--r--ace/Obstack_T.i33
-rw-r--r--ace/PI_Malloc.cpp170
-rw-r--r--ace/PI_Malloc.h201
-rw-r--r--ace/PI_Malloc.i25
-rw-r--r--ace/POSIX_Asynch_IO.cpp2599
-rw-r--r--ace/POSIX_Asynch_IO.h1309
-rw-r--r--ace/POSIX_Asynch_IO.i2
-rw-r--r--ace/POSIX_CB_Proactor.cpp167
-rw-r--r--ace/POSIX_CB_Proactor.h90
-rw-r--r--ace/POSIX_CB_Proactor.i12
-rw-r--r--ace/POSIX_Proactor.cpp2000
-rw-r--r--ace/POSIX_Proactor.h656
-rw-r--r--ace/POSIX_Proactor.i30
-rw-r--r--ace/Pair.cpp19
-rw-r--r--ace/Pair.h30
-rw-r--r--ace/Pair_T.cpp18
-rw-r--r--ace/Pair_T.h125
-rw-r--r--ace/Pair_T.i84
-rw-r--r--ace/Parse_Node.cpp647
-rw-r--r--ace/Parse_Node.h381
-rw-r--r--ace/Parse_Node.i19
-rw-r--r--ace/Pipe.cpp235
-rw-r--r--ace/Pipe.h90
-rw-r--r--ace/Pipe.i25
-rw-r--r--ace/Priority_Reactor.cpp171
-rw-r--r--ace/Priority_Reactor.h89
-rw-r--r--ace/Proactor.cpp1157
-rw-r--r--ace/Proactor.h649
-rw-r--r--ace/Proactor.i75
-rw-r--r--ace/Proactor_Impl.h251
-rw-r--r--ace/Process.cpp965
-rw-r--r--ace/Process.h593
-rw-r--r--ace/Process.i413
-rw-r--r--ace/Process_Manager.cpp946
-rw-r--r--ace/Process_Manager.h397
-rw-r--r--ace/Process_Manager.i8
-rw-r--r--ace/Process_Mutex.cpp95
-rw-r--r--ace/Process_Mutex.h201
-rw-r--r--ace/Process_Mutex.inl85
-rw-r--r--ace/Process_Semaphore.cpp91
-rw-r--r--ace/Process_Semaphore.h142
-rw-r--r--ace/Process_Semaphore.inl61
-rw-r--r--ace/Profile_Timer.cpp418
-rw-r--r--ace/Profile_Timer.h139
-rw-r--r--ace/Profile_Timer.i104
-rw-r--r--ace/QoS/ACE_QoS.dsp145
-rw-r--r--ace/QoS/ACE_QoS.dsw41
-rw-r--r--ace/QoS/ACE_QoS_Export.h46
-rw-r--r--ace/QoS/ACE_QoS_Lib.dsp132
-rw-r--r--ace/QoS/Makefile437
-rw-r--r--ace/QoS/Makefile.am39
-rw-r--r--ace/QoS/QoS_Decorator.cpp161
-rw-r--r--ace/QoS/QoS_Decorator.h177
-rw-r--r--ace/QoS/QoS_Manager.cpp47
-rw-r--r--ace/QoS/QoS_Manager.h69
-rw-r--r--ace/QoS/QoS_Session.h169
-rw-r--r--ace/QoS/QoS_Session_Factory.cpp101
-rw-r--r--ace/QoS/QoS_Session_Factory.h92
-rw-r--r--ace/QoS/QoS_Session_Impl.cpp704
-rw-r--r--ace/QoS/QoS_Session_Impl.h245
-rw-r--r--ace/QoS/QoS_Session_Impl.i202
-rw-r--r--ace/QoS/README55
-rw-r--r--ace/QoS/SOCK_Dgram_Mcast_QoS.cpp256
-rw-r--r--ace/QoS/SOCK_Dgram_Mcast_QoS.h138
-rw-r--r--ace/QoS/SOCK_Dgram_Mcast_QoS.i52
-rw-r--r--ace/QoS/makefile.bor24
-rw-r--r--ace/QoS/qos.mpc7
-rw-r--r--ace/QtReactor.cpp435
-rw-r--r--ace/QtReactor.h154
-rw-r--r--ace/RB_Tree.cpp1126
-rw-r--r--ace/RB_Tree.h863
-rw-r--r--ace/RB_Tree.i1152
-rw-r--r--ace/README1600
-rw-r--r--ace/RMCast/Makefile1990
-rw-r--r--ace/RMCast/Makefile.am105
-rw-r--r--ace/RMCast/Makefile.bor44
-rw-r--r--ace/RMCast/README57
-rw-r--r--ace/RMCast/RMCast.cpp9
-rw-r--r--ace/RMCast/RMCast.dsp389
-rw-r--r--ace/RMCast/RMCast.dsw29
-rw-r--r--ace/RMCast/RMCast.h261
-rw-r--r--ace/RMCast/RMCast.i1
-rw-r--r--ace/RMCast/RMCast_Ack_Worker.cpp25
-rw-r--r--ace/RMCast/RMCast_Ack_Worker.h47
-rw-r--r--ace/RMCast/RMCast_Ack_Worker.i12
-rw-r--r--ace/RMCast/RMCast_Copy_On_Write.cpp199
-rw-r--r--ace/RMCast/RMCast_Copy_On_Write.h212
-rw-r--r--ace/RMCast/RMCast_Copy_On_Write.i34
-rw-r--r--ace/RMCast/RMCast_Export.h44
-rw-r--r--ace/RMCast/RMCast_Fork.cpp112
-rw-r--r--ace/RMCast/RMCast_Fork.h55
-rw-r--r--ace/RMCast/RMCast_Fork.i21
-rw-r--r--ace/RMCast/RMCast_Fragment.cpp188
-rw-r--r--ace/RMCast/RMCast_Fragment.h62
-rw-r--r--ace/RMCast/RMCast_Fragment.i7
-rw-r--r--ace/RMCast/RMCast_IO_UDP.cpp458
-rw-r--r--ace/RMCast/RMCast_IO_UDP.h138
-rw-r--r--ace/RMCast/RMCast_IO_UDP.i36
-rw-r--r--ace/RMCast/RMCast_Membership.cpp184
-rw-r--r--ace/RMCast/RMCast_Membership.h103
-rw-r--r--ace/RMCast/RMCast_Membership.i8
-rw-r--r--ace/RMCast/RMCast_Module.cpp102
-rw-r--r--ace/RMCast/RMCast_Module.h88
-rw-r--r--ace/RMCast/RMCast_Module.i7
-rw-r--r--ace/RMCast/RMCast_Module_Factory.cpp13
-rw-r--r--ace/RMCast/RMCast_Module_Factory.h71
-rw-r--r--ace/RMCast/RMCast_Module_Factory.i1
-rw-r--r--ace/RMCast/RMCast_Partial_Message.cpp215
-rw-r--r--ace/RMCast/RMCast_Partial_Message.h102
-rw-r--r--ace/RMCast/RMCast_Partial_Message.i15
-rw-r--r--ace/RMCast/RMCast_Proxy.cpp46
-rw-r--r--ace/RMCast/RMCast_Proxy.h102
-rw-r--r--ace/RMCast/RMCast_Proxy.i8
-rw-r--r--ace/RMCast/RMCast_Reassembly.cpp150
-rw-r--r--ace/RMCast/RMCast_Reassembly.h73
-rw-r--r--ace/RMCast/RMCast_Reassembly.i1
-rw-r--r--ace/RMCast/RMCast_Receiver_Module.cpp157
-rw-r--r--ace/RMCast/RMCast_Receiver_Module.h108
-rw-r--r--ace/RMCast/RMCast_Receiver_Module.i7
-rw-r--r--ace/RMCast/RMCast_Reliable_Factory.cpp54
-rw-r--r--ace/RMCast/RMCast_Reliable_Factory.h60
-rw-r--r--ace/RMCast/RMCast_Reliable_Factory.i8
-rw-r--r--ace/RMCast/RMCast_Reordering.cpp178
-rw-r--r--ace/RMCast/RMCast_Reordering.h96
-rw-r--r--ace/RMCast/RMCast_Reordering.i8
-rw-r--r--ace/RMCast/RMCast_Resend_Handler.cpp22
-rw-r--r--ace/RMCast/RMCast_Resend_Handler.h44
-rw-r--r--ace/RMCast/RMCast_Resend_Handler.i8
-rw-r--r--ace/RMCast/RMCast_Resend_Worker.cpp31
-rw-r--r--ace/RMCast/RMCast_Resend_Worker.h49
-rw-r--r--ace/RMCast/RMCast_Resend_Worker.i12
-rw-r--r--ace/RMCast/RMCast_Retransmission.cpp149
-rw-r--r--ace/RMCast/RMCast_Retransmission.h120
-rw-r--r--ace/RMCast/RMCast_Retransmission.i6
-rw-r--r--ace/RMCast/RMCast_Sequencer.cpp25
-rw-r--r--ace/RMCast/RMCast_Sequencer.h54
-rw-r--r--ace/RMCast/RMCast_Sequencer.i7
-rw-r--r--ace/RMCast/RMCast_Singleton_Factory.cpp24
-rw-r--r--ace/RMCast/RMCast_Singleton_Factory.h61
-rw-r--r--ace/RMCast/RMCast_Singleton_Factory.i8
-rw-r--r--ace/RMCast/RMCast_UDP_Event_Handler.cpp36
-rw-r--r--ace/RMCast/RMCast_UDP_Event_Handler.h59
-rw-r--r--ace/RMCast/RMCast_UDP_Event_Handler.i8
-rw-r--r--ace/RMCast/RMCast_UDP_Proxy.cpp186
-rw-r--r--ace/RMCast/RMCast_UDP_Proxy.h88
-rw-r--r--ace/RMCast/RMCast_UDP_Proxy.i7
-rw-r--r--ace/RMCast/RMCast_UDP_Reliable_Receiver.cpp32
-rw-r--r--ace/RMCast/RMCast_UDP_Reliable_Receiver.h49
-rw-r--r--ace/RMCast/RMCast_UDP_Reliable_Receiver.i7
-rw-r--r--ace/RMCast/RMCast_UDP_Reliable_Sender.cpp70
-rw-r--r--ace/RMCast/RMCast_UDP_Reliable_Sender.h78
-rw-r--r--ace/RMCast/RMCast_UDP_Reliable_Sender.i19
-rw-r--r--ace/RMCast/RMCast_Worker.cpp19
-rw-r--r--ace/RMCast/RMCast_Worker.h36
-rw-r--r--ace/RMCast/RMCast_Worker.i1
-rw-r--r--ace/RMCast/rmcast.mpc7
-rw-r--r--ace/RW_Process_Mutex.cpp59
-rw-r--r--ace/RW_Process_Mutex.h114
-rw-r--r--ace/RW_Process_Mutex.inl72
-rw-r--r--ace/Reactor.cpp314
-rw-r--r--ace/Reactor.h703
-rw-r--r--ace/Reactor.i675
-rw-r--r--ace/Reactor_Impl.h562
-rw-r--r--ace/Reactor_Notification_Strategy.cpp33
-rw-r--r--ace/Reactor_Notification_Strategy.h61
-rw-r--r--ace/Reactor_Notification_Strategy.inl13
-rw-r--r--ace/Read_Buffer.cpp165
-rw-r--r--ace/Read_Buffer.h122
-rw-r--r--ace/Read_Buffer.i28
-rw-r--r--ace/Recyclable.cpp19
-rw-r--r--ace/Recyclable.h78
-rw-r--r--ace/Recyclable.inl19
-rw-r--r--ace/Refcountable.cpp8
-rw-r--r--ace/Refcountable.h57
-rw-r--r--ace/Refcountable.inl30
-rw-r--r--ace/Refcounted_Auto_Ptr.h193
-rw-r--r--ace/Refcounted_Auto_Ptr.i223
-rw-r--r--ace/Registry.cpp1147
-rw-r--r--ace/Registry.h568
-rw-r--r--ace/Registry_Name_Space.cpp288
-rw-r--r--ace/Registry_Name_Space.h134
-rw-r--r--ace/Remote_Name_Space.cpp378
-rw-r--r--ace/Remote_Name_Space.h142
-rw-r--r--ace/Remote_Tokens.cpp438
-rw-r--r--ace/Remote_Tokens.h316
-rw-r--r--ace/Remote_Tokens.i122
-rw-r--r--ace/SOCK.cpp182
-rw-r--r--ace/SOCK.h121
-rw-r--r--ace/SOCK.i34
-rw-r--r--ace/SOCK_Acceptor.cpp403
-rw-r--r--ace/SOCK_Acceptor.h173
-rw-r--r--ace/SOCK_Acceptor.i12
-rw-r--r--ace/SOCK_CODgram.cpp106
-rw-r--r--ace/SOCK_CODgram.h73
-rw-r--r--ace/SOCK_CODgram.i18
-rw-r--r--ace/SOCK_Connector.cpp323
-rw-r--r--ace/SOCK_Connector.h318
-rw-r--r--ace/SOCK_Connector.i35
-rw-r--r--ace/SOCK_Dgram.cpp542
-rw-r--r--ace/SOCK_Dgram.h217
-rw-r--r--ace/SOCK_Dgram.i158
-rw-r--r--ace/SOCK_Dgram_Bcast.cpp334
-rw-r--r--ace/SOCK_Dgram_Bcast.h135
-rw-r--r--ace/SOCK_Dgram_Bcast.i34
-rw-r--r--ace/SOCK_Dgram_Mcast.cpp683
-rw-r--r--ace/SOCK_Dgram_Mcast.h422
-rw-r--r--ace/SOCK_Dgram_Mcast.i47
-rw-r--r--ace/SOCK_IO.cpp165
-rw-r--r--ace/SOCK_IO.h147
-rw-r--r--ace/SOCK_IO.i149
-rw-r--r--ace/SOCK_SEQPACK_Acceptor.cpp513
-rw-r--r--ace/SOCK_SEQPACK_Acceptor.h186
-rw-r--r--ace/SOCK_SEQPACK_Acceptor.i12
-rw-r--r--ace/SOCK_SEQPACK_Association.cpp173
-rw-r--r--ace/SOCK_SEQPACK_Association.h192
-rw-r--r--ace/SOCK_SEQPACK_Association.i172
-rw-r--r--ace/SOCK_SEQPACK_Connector.cpp365
-rw-r--r--ace/SOCK_SEQPACK_Connector.h240
-rw-r--r--ace/SOCK_SEQPACK_Connector.i34
-rw-r--r--ace/SOCK_Stream.cpp35
-rw-r--r--ace/SOCK_Stream.h167
-rw-r--r--ace/SOCK_Stream.i171
-rw-r--r--ace/SPIPE.cpp63
-rw-r--r--ace/SPIPE.h100
-rw-r--r--ace/SPIPE.i16
-rw-r--r--ace/SPIPE_Acceptor.cpp295
-rw-r--r--ace/SPIPE_Acceptor.h164
-rw-r--r--ace/SPIPE_Addr.cpp142
-rw-r--r--ace/SPIPE_Addr.h118
-rw-r--r--ace/SPIPE_Addr.i74
-rw-r--r--ace/SPIPE_Connector.cpp154
-rw-r--r--ace/SPIPE_Connector.h113
-rw-r--r--ace/SPIPE_Connector.i13
-rw-r--r--ace/SPIPE_Stream.cpp98
-rw-r--r--ace/SPIPE_Stream.h166
-rw-r--r--ace/SPIPE_Stream.i267
-rw-r--r--ace/SSL/ACE_SSL.dsp182
-rw-r--r--ace/SSL/ACE_SSL.dsw29
-rw-r--r--ace/SSL/ACE_SSL_LIB.dsp174
-rw-r--r--ace/SSL/ACE_SSL_LIB.dsw41
-rw-r--r--ace/SSL/Makefile801
-rw-r--r--ace/SSL/Makefile.am46
-rw-r--r--ace/SSL/Makefile.bor28
-rw-r--r--ace/SSL/Makefile.in572
-rw-r--r--ace/SSL/SSL_Asynch_BIO.cpp199
-rw-r--r--ace/SSL/SSL_Asynch_BIO.h51
-rw-r--r--ace/SSL/SSL_Asynch_Stream.cpp1124
-rw-r--r--ace/SSL/SSL_Asynch_Stream.h242
-rw-r--r--ace/SSL/SSL_Context.cpp539
-rw-r--r--ace/SSL/SSL_Context.h360
-rw-r--r--ace/SSL/SSL_Context.inl106
-rw-r--r--ace/SSL/SSL_Export.h44
-rw-r--r--ace/SSL/SSL_SOCK.cpp68
-rw-r--r--ace/SSL/SSL_SOCK.h94
-rw-r--r--ace/SSL/SSL_SOCK.i64
-rw-r--r--ace/SSL/SSL_SOCK_Acceptor.cpp243
-rw-r--r--ace/SSL/SSL_SOCK_Acceptor.h194
-rw-r--r--ace/SSL/SSL_SOCK_Acceptor.i82
-rw-r--r--ace/SSL/SSL_SOCK_Connector.cpp404
-rw-r--r--ace/SSL/SSL_SOCK_Connector.h315
-rw-r--r--ace/SSL/SSL_SOCK_Connector.i25
-rw-r--r--ace/SSL/SSL_SOCK_Stream.cpp588
-rw-r--r--ace/SSL/SSL_SOCK_Stream.h308
-rw-r--r--ace/SSL/SSL_SOCK_Stream.i317
-rw-r--r--ace/SSL/ssl.mpc8
-rw-r--r--ace/SSL/sslconf.h55
-rw-r--r--ace/SString.cpp552
-rw-r--r--ace/SString.h482
-rw-r--r--ace/SString.i284
-rw-r--r--ace/SStringfwd.h46
-rw-r--r--ace/SUN_Proactor.cpp313
-rw-r--r--ace/SUN_Proactor.h126
-rw-r--r--ace/SUN_Proactor.i8
-rw-r--r--ace/SV_Message.cpp19
-rw-r--r--ace/SV_Message.h64
-rw-r--r--ace/SV_Message.i31
-rw-r--r--ace/SV_Message_Queue.cpp39
-rw-r--r--ace/SV_Message_Queue.h98
-rw-r--r--ace/SV_Message_Queue.i78
-rw-r--r--ace/SV_Semaphore_Complex.cpp252
-rw-r--r--ace/SV_Semaphore_Complex.h155
-rw-r--r--ace/SV_Semaphore_Complex.i83
-rw-r--r--ace/SV_Semaphore_Simple.cpp212
-rw-r--r--ace/SV_Semaphore_Simple.h162
-rw-r--r--ace/SV_Semaphore_Simple.i106
-rw-r--r--ace/SV_Shared_Memory.cpp83
-rw-r--r--ace/SV_Shared_Memory.h116
-rw-r--r--ace/SV_Shared_Memory.i114
-rw-r--r--ace/Sample_History.cpp57
-rw-r--r--ace/Sample_History.h86
-rw-r--r--ace/Sample_History.inl20
-rw-r--r--ace/Sched_Params.cpp321
-rw-r--r--ace/Sched_Params.h225
-rw-r--r--ace/Sched_Params.i136
-rw-r--r--ace/Select_Reactor.cpp30
-rw-r--r--ace/Select_Reactor.h59
-rw-r--r--ace/Select_Reactor_Base.cpp1157
-rw-r--r--ace/Select_Reactor_Base.h549
-rw-r--r--ace/Select_Reactor_Base.i93
-rw-r--r--ace/Select_Reactor_T.cpp1517
-rw-r--r--ace/Select_Reactor_T.h778
-rw-r--r--ace/Select_Reactor_T.i219
-rw-r--r--ace/Service_Config.cpp872
-rw-r--r--ace/Service_Config.h455
-rw-r--r--ace/Service_Config.i101
-rw-r--r--ace/Service_Manager.cpp374
-rw-r--r--ace/Service_Manager.h120
-rw-r--r--ace/Service_Manager.i10
-rw-r--r--ace/Service_Object.cpp105
-rw-r--r--ace/Service_Object.h172
-rw-r--r--ace/Service_Object.i64
-rw-r--r--ace/Service_Repository.cpp416
-rw-r--r--ace/Service_Repository.h211
-rw-r--r--ace/Service_Repository.i31
-rw-r--r--ace/Service_Templates.cpp82
-rw-r--r--ace/Service_Templates.h29
-rw-r--r--ace/Service_Types.cpp454
-rw-r--r--ace/Service_Types.h201
-rw-r--r--ace/Service_Types.i64
-rw-r--r--ace/Shared_Memory.cpp9
-rw-r--r--ace/Shared_Memory.h54
-rw-r--r--ace/Shared_Memory_MM.cpp52
-rw-r--r--ace/Shared_Memory_MM.h116
-rw-r--r--ace/Shared_Memory_MM.i90
-rw-r--r--ace/Shared_Memory_SV.cpp30
-rw-r--r--ace/Shared_Memory_SV.h97
-rw-r--r--ace/Shared_Memory_SV.i75
-rw-r--r--ace/Shared_Object.cpp46
-rw-r--r--ace/Shared_Object.h55
-rw-r--r--ace/Shared_Object.i9
-rw-r--r--ace/Signal.cpp859
-rw-r--r--ace/Signal.h519
-rw-r--r--ace/Signal.i306
-rw-r--r--ace/Singleton.cpp519
-rw-r--r--ace/Singleton.h322
-rw-r--r--ace/Singleton.i37
-rw-r--r--ace/Sock_Connect.cpp1339
-rw-r--r--ace/Sock_Connect.h96
-rw-r--r--ace/Sock_Connect.i1
-rw-r--r--ace/Stats.cpp612
-rw-r--r--ace/Stats.h273
-rw-r--r--ace/Stats.i95
-rw-r--r--ace/Strategies.h33
-rw-r--r--ace/Strategies_T.cpp1234
-rw-r--r--ace/Strategies_T.h1073
-rw-r--r--ace/Strategies_T.i443
-rw-r--r--ace/Stream.cpp614
-rw-r--r--ace/Stream.h233
-rw-r--r--ace/Stream.i49
-rw-r--r--ace/Stream_Modules.cpp371
-rw-r--r--ace/Stream_Modules.h143
-rw-r--r--ace/String_Base.cpp200
-rw-r--r--ace/String_Base.h445
-rw-r--r--ace/String_Base.i363
-rw-r--r--ace/String_Base_Const.cpp5
-rw-r--r--ace/String_Base_Const.h39
-rw-r--r--ace/Svc_Conf.h205
-rw-r--r--ace/Svc_Conf.l134
-rw-r--r--ace/Svc_Conf.y436
-rw-r--r--ace/Svc_Conf_Lexer_Guard.cpp39
-rw-r--r--ace/Svc_Conf_Lexer_Guard.h79
-rw-r--r--ace/Svc_Conf_Tokens.h21
-rw-r--r--ace/Svc_Conf_l.cpp1855
-rw-r--r--ace/Svc_Conf_y.cpp1567
-rw-r--r--ace/Svc_Handler.cpp509
-rw-r--r--ace/Svc_Handler.h333
-rw-r--r--ace/Swap.cpp25
-rw-r--r--ace/Swap.h46
-rw-r--r--ace/Swap.inl15
-rw-r--r--ace/Synch.cpp1010
-rw-r--r--ace/Synch.h1864
-rw-r--r--ace/Synch.i1002
-rw-r--r--ace/Synch_Options.cpp108
-rw-r--r--ace/Synch_Options.h158
-rw-r--r--ace/Synch_Options.i9
-rw-r--r--ace/Synch_T.cpp892
-rw-r--r--ace/Synch_T.h909
-rw-r--r--ace/Synch_T.i452
-rw-r--r--ace/System_Time.cpp141
-rw-r--r--ace/System_Time.h87
-rw-r--r--ace/TLI.cpp195
-rw-r--r--ace/TLI.h108
-rw-r--r--ace/TLI.i46
-rw-r--r--ace/TLI_Acceptor.cpp547
-rw-r--r--ace/TLI_Acceptor.h118
-rw-r--r--ace/TLI_Connector.cpp248
-rw-r--r--ace/TLI_Connector.h126
-rw-r--r--ace/TLI_Connector.i47
-rw-r--r--ace/TLI_Stream.cpp230
-rw-r--r--ace/TLI_Stream.h133
-rw-r--r--ace/TLI_Stream.i22
-rw-r--r--ace/TP_Reactor.cpp872
-rw-r--r--ace/TP_Reactor.h363
-rw-r--r--ace/TP_Reactor.i101
-rw-r--r--ace/TTY_IO.cpp515
-rw-r--r--ace/TTY_IO.h86
-rw-r--r--ace/Task.cpp234
-rw-r--r--ace/Task.h282
-rw-r--r--ace/Task.i114
-rw-r--r--ace/Task_T.cpp105
-rw-r--r--ace/Task_T.h183
-rw-r--r--ace/Task_T.i103
-rw-r--r--ace/Template_Instantiations.cpp356
-rw-r--r--ace/Test_and_Set.cpp49
-rw-r--r--ace/Test_and_Set.h76
-rw-r--r--ace/Test_and_Set.i1
-rw-r--r--ace/Thread.cpp90
-rw-r--r--ace/Thread.h248
-rw-r--r--ace/Thread.i279
-rw-r--r--ace/Thread_Adapter.cpp248
-rw-r--r--ace/Thread_Adapter.h94
-rw-r--r--ace/Thread_Adapter.inl7
-rw-r--r--ace/Thread_Control.cpp90
-rw-r--r--ace/Thread_Control.h101
-rw-r--r--ace/Thread_Control.inl42
-rw-r--r--ace/Thread_Exit.cpp127
-rw-r--r--ace/Thread_Exit.h107
-rw-r--r--ace/Thread_Hook.cpp25
-rw-r--r--ace/Thread_Hook.h56
-rw-r--r--ace/Thread_Manager.cpp2273
-rw-r--r--ace/Thread_Manager.h1098
-rw-r--r--ace/Thread_Manager.i334
-rw-r--r--ace/Time_Request_Reply.cpp188
-rw-r--r--ace/Time_Request_Reply.h137
-rw-r--r--ace/Time_Value.cpp199
-rw-r--r--ace/Time_Value.h330
-rw-r--r--ace/Time_Value.inl329
-rw-r--r--ace/Timeprobe.cpp44
-rw-r--r--ace/Timeprobe.h173
-rw-r--r--ace/Timeprobe.i8
-rw-r--r--ace/Timeprobe_T.cpp300
-rw-r--r--ace/Timeprobe_T.h188
-rw-r--r--ace/Timer_Hash.cpp123
-rw-r--r--ace/Timer_Hash.h71
-rw-r--r--ace/Timer_Hash_T.cpp649
-rw-r--r--ace/Timer_Hash_T.h289
-rw-r--r--ace/Timer_Heap.cpp42
-rw-r--r--ace/Timer_Heap.h37
-rw-r--r--ace/Timer_Heap_T.cpp787
-rw-r--r--ace/Timer_Heap_T.h333
-rw-r--r--ace/Timer_List.cpp44
-rw-r--r--ace/Timer_List.h38
-rw-r--r--ace/Timer_List_T.cpp370
-rw-r--r--ace/Timer_List_T.h222
-rw-r--r--ace/Timer_Queue.cpp59
-rw-r--r--ace/Timer_Queue.h45
-rw-r--r--ace/Timer_Queue_Adapters.cpp321
-rw-r--r--ace/Timer_Queue_Adapters.h244
-rw-r--r--ace/Timer_Queue_Adapters.i53
-rw-r--r--ace/Timer_Queue_T.cpp350
-rw-r--r--ace/Timer_Queue_T.h504
-rw-r--r--ace/Timer_Queue_T.i188
-rw-r--r--ace/Timer_Wheel.cpp23
-rw-r--r--ace/Timer_Wheel.h39
-rw-r--r--ace/Timer_Wheel_T.cpp912
-rw-r--r--ace/Timer_Wheel_T.h224
-rw-r--r--ace/TkReactor.cpp439
-rw-r--r--ace/TkReactor.h133
-rw-r--r--ace/Token.cpp549
-rw-r--r--ace/Token.h318
-rw-r--r--ace/Token.i135
-rw-r--r--ace/Token_Collection.cpp304
-rw-r--r--ace/Token_Collection.h240
-rw-r--r--ace/Token_Collection.i12
-rw-r--r--ace/Token_Invariants.cpp371
-rw-r--r--ace/Token_Invariants.h240
-rw-r--r--ace/Token_Manager.cpp280
-rw-r--r--ace/Token_Manager.h144
-rw-r--r--ace/Token_Manager.i20
-rw-r--r--ace/Token_Request_Reply.cpp178
-rw-r--r--ace/Token_Request_Reply.h266
-rw-r--r--ace/Token_Request_Reply.i196
-rw-r--r--ace/Trace.cpp131
-rw-r--r--ace/Trace.h94
-rw-r--r--ace/Typed_SV_Message.cpp26
-rw-r--r--ace/Typed_SV_Message.h105
-rw-r--r--ace/Typed_SV_Message.i91
-rw-r--r--ace/Typed_SV_Message_Queue.cpp53
-rw-r--r--ace/Typed_SV_Message_Queue.h88
-rw-r--r--ace/Typed_SV_Message_Queue.i77
-rw-r--r--ace/UNIX_Addr.cpp114
-rw-r--r--ace/UNIX_Addr.h101
-rw-r--r--ace/UNIX_Addr.i67
-rw-r--r--ace/UPIPE_Acceptor.cpp122
-rw-r--r--ace/UPIPE_Acceptor.h94
-rw-r--r--ace/UPIPE_Acceptor.i11
-rw-r--r--ace/UPIPE_Addr.h28
-rw-r--r--ace/UPIPE_Connector.cpp91
-rw-r--r--ace/UPIPE_Connector.h112
-rw-r--r--ace/UPIPE_Connector.i33
-rw-r--r--ace/UPIPE_Stream.cpp226
-rw-r--r--ace/UPIPE_Stream.h137
-rw-r--r--ace/UPIPE_Stream.i12
-rw-r--r--ace/Unbounded_Queue.cpp426
-rw-r--r--ace/Unbounded_Queue.h294
-rw-r--r--ace/Unbounded_Queue.inl21
-rw-r--r--ace/Unbounded_Set.cpp443
-rw-r--r--ace/Unbounded_Set.h314
-rw-r--r--ace/Unbounded_Set.inl16
-rw-r--r--ace/Unbounded_Set_Ex.cpp620
-rw-r--r--ace/Unbounded_Set_Ex.h359
-rw-r--r--ace/Unbounded_Set_Ex.inl16
-rw-r--r--ace/Vector_T.cpp125
-rw-r--r--ace/Vector_T.h244
-rw-r--r--ace/Vector_T.i42
-rw-r--r--ace/Version.h7
-rw-r--r--ace/WFMO_Reactor.cpp2559
-rw-r--r--ace/WFMO_Reactor.h1334
-rw-r--r--ace/WFMO_Reactor.i1131
-rw-r--r--ace/WIN32_Asynch_IO.cpp3802
-rw-r--r--ace/WIN32_Asynch_IO.h1945
-rw-r--r--ace/WIN32_Proactor.cpp803
-rw-r--r--ace/WIN32_Proactor.h323
-rw-r--r--ace/XML_Svc_Conf.cpp9
-rw-r--r--ace/XML_Svc_Conf.h59
-rw-r--r--ace/XTI_ATM_Mcast.cpp66
-rw-r--r--ace/XTI_ATM_Mcast.h131
-rw-r--r--ace/XTI_ATM_Mcast.i62
-rw-r--r--ace/XtReactor.cpp450
-rw-r--r--ace/XtReactor.h138
-rw-r--r--ace/ace-dll.icc523
-rw-r--r--ace/ace-lib.icc284
-rw-r--r--ace/ace.dsw41
-rwxr-xr-xace/ace.icc654
-rw-r--r--ace/ace.icp7
-rw-r--r--ace/ace.mpc395
-rw-r--r--ace/ace.mwc4
-rw-r--r--ace/ace.rc38
-rw-r--r--ace/ace_ce_dll.cfg1
-rw-r--r--ace/ace_dll.dsp3444
-rw-r--r--ace/ace_dll64.mak3456
-rw-r--r--ace/ace_lib.dsp3427
-rw-r--r--ace/ace_lib64.mak2361
-rw-r--r--ace/ace_message_table.binbin28 -> 0 bytes
-rw-r--r--ace/ace_vacpp_options.icc12
-rw-r--r--ace/ace_wchar.h329
-rw-r--r--ace/ace_wchar.inl120
-rw-r--r--ace/config-WinCE.h255
-rw-r--r--ace/config-aix-4.1.x.h8
-rw-r--r--ace/config-aix-4.2.x.h8
-rw-r--r--ace/config-aix-4.3.x.h8
-rw-r--r--ace/config-aix-4.x.h314
-rw-r--r--ace/config-aix5.1.h21
-rw-r--r--ace/config-all.h625
-rw-r--r--ace/config-borland-common.h85
-rw-r--r--ace/config-chorus.h159
-rw-r--r--ace/config-cray.h242
-rw-r--r--ace/config-cxx-common.h89
-rw-r--r--ace/config-cygwin32-common.h153
-rw-r--r--ace/config-cygwin32.h16
-rw-r--r--ace/config-dgux-4.11-epc.h195
-rw-r--r--ace/config-dgux-4.x-ghs.h214
-rw-r--r--ace/config-doxygen.h103
-rw-r--r--ace/config-freebsd.h247
-rw-r--r--ace/config-fsu-pthread.h59
-rw-r--r--ace/config-g++-common.h115
-rw-r--r--ace/config-ghs-common.h44
-rw-r--r--ace/config-hpux-10.x-g++.h28
-rw-r--r--ace/config-hpux-10.x-hpc++.h145
-rw-r--r--ace/config-hpux-10.x.h255
-rw-r--r--ace/config-hpux-11.00.h442
-rw-r--r--ace/config-hpux11.h250
-rw-r--r--ace/config-icc-common.h60
-rw-r--r--ace/config-integritySCA.h281
-rw-r--r--ace/config-irix5.2.h69
-rw-r--r--ace/config-irix5.3-g++.h120
-rw-r--r--ace/config-irix5.3-sgic++.h123
-rw-r--r--ace/config-irix6.5.x-sgic++.h18
-rw-r--r--ace/config-irix6.x-common.h173
-rw-r--r--ace/config-irix6.x-g++.h54
-rw-r--r--ace/config-irix6.x-kcc.h68
-rw-r--r--ace/config-irix6.x-sgic++-nothreads.h95
-rw-r--r--ace/config-irix6.x-sgic++.h59
-rw-r--r--ace/config-kcc-common.h76
-rw-r--r--ace/config-linux-common.h339
-rw-r--r--ace/config-linux.h73
-rw-r--r--ace/config-lynxos.h209
-rw-r--r--ace/config-m88k.h227
-rw-r--r--ace/config-macosx.h195
-rw-r--r--ace/config-minimal.h39
-rw-r--r--ace/config-mit-pthread.h53
-rw-r--r--ace/config-mklinux.h20
-rw-r--r--ace/config-mvs.h122
-rw-r--r--ace/config-netbsd.h184
-rw-r--r--ace/config-openbsd.h237
-rw-r--r--ace/config-osf1-3.2.h188
-rw-r--r--ace/config-osf1-4.0.h191
-rw-r--r--ace/config-pharlap.h60
-rw-r--r--ace/config-posix.h76
-rw-r--r--ace/config-psos-diab-mips.h246
-rw-r--r--ace/config-psos-diab-ppc.h281
-rw-r--r--ace/config-psos-diab.h237
-rw-r--r--ace/config-psos-tm.h210
-rw-r--r--ace/config-psosim-g++.h246
-rw-r--r--ace/config-qnx-neutrino.h148
-rw-r--r--ace/config-qnx-rtp.h199
-rw-r--r--ace/config-rtems.h164
-rw-r--r--ace/config-sco-4.2-nothread.h116
-rw-r--r--ace/config-sco-5.0.0-fsu-pthread.h15
-rw-r--r--ace/config-sco-5.0.0-mit-pthread.h178
-rw-r--r--ace/config-sco-5.0.0-nothread.h14
-rw-r--r--ace/config-sco-5.0.0.h110
-rw-r--r--ace/config-sunos4-g++.h105
-rw-r--r--ace/config-sunos4-lucid3.2.h95
-rw-r--r--ace/config-sunos4-sun3.x.h87
-rw-r--r--ace/config-sunos4-sun4.1.4.h99
-rw-r--r--ace/config-sunos4-sun4.x.h106
-rw-r--r--ace/config-sunos5.4-centerline-2.x.h162
-rw-r--r--ace/config-sunos5.4-g++.h181
-rw-r--r--ace/config-sunos5.4-sunc++-4.x.h194
-rw-r--r--ace/config-sunos5.5.h376
-rw-r--r--ace/config-sunos5.6.h145
-rw-r--r--ace/config-sunos5.7.h90
-rw-r--r--ace/config-sunos5.8.h25
-rw-r--r--ace/config-sunos5.9.h15
-rw-r--r--ace/config-tandem.h445
-rw-r--r--ace/config-tru64.h31
-rw-r--r--ace/config-unixware-2.01-g++.h113
-rw-r--r--ace/config-unixware-2.1.2-g++.h102
-rw-r--r--ace/config-unixware-7.1.0.h447
-rw-r--r--ace/config-unixware-7.1.0.udk.h529
-rw-r--r--ace/config-visualage.h20
-rw-r--r--ace/config-vxworks5.x.h222
-rw-r--r--ace/config-win32-borland.h65
-rw-r--r--ace/config-win32-common.h573
-rw-r--r--ace/config-win32-ghs.h110
-rw-r--r--ace/config-win32-mingw.h63
-rw-r--r--ace/config-win32-msvc-5.h191
-rw-r--r--ace/config-win32-msvc-6.h179
-rw-r--r--ace/config-win32-msvc-7.h141
-rw-r--r--ace/config-win32-msvc.h63
-rw-r--r--ace/config-win32-visualage.h101
-rw-r--r--ace/config-win32.h56
-rw-r--r--ace/gethrtime.cpp60
-rw-r--r--ace/iosfwd.h94
-rw-r--r--ace/os_include/aio.h37
-rw-r--r--ace/os_include/arpa/inet.h36
-rw-r--r--ace/os_include/assert.h34
-rw-r--r--ace/os_include/complex.h32
-rw-r--r--ace/os_include/cpio.h32
-rw-r--r--ace/os_include/ctype.h35
-rw-r--r--ace/os_include/dirent.h34
-rw-r--r--ace/os_include/dlfcn.h32
-rw-r--r--ace/os_include/errno.h32
-rw-r--r--ace/os_include/fcntl.h37
-rw-r--r--ace/os_include/fenv.h32
-rw-r--r--ace/os_include/float.h32
-rw-r--r--ace/os_include/fmtmsg.h32
-rw-r--r--ace/os_include/fnmatch.h32
-rw-r--r--ace/os_include/ftw.h34
-rw-r--r--ace/os_include/glob.h34
-rw-r--r--ace/os_include/grp.h34
-rw-r--r--ace/os_include/iconv.h34
-rw-r--r--ace/os_include/inttypes.h36
-rw-r--r--ace/os_include/iso646.h32
-rw-r--r--ace/os_include/langinfo.h34
-rw-r--r--ace/os_include/libgen.h32
-rw-r--r--ace/os_include/limits.h34
-rw-r--r--ace/os_include/local.h34
-rw-r--r--ace/os_include/math.h32
-rw-r--r--ace/os_include/monetary.h34
-rw-r--r--ace/os_include/mqueue.h34
-rw-r--r--ace/os_include/ndbm.h34
-rw-r--r--ace/os_include/net/if.h32
-rw-r--r--ace/os_include/netdb.h34
-rw-r--r--ace/os_include/netinet/in.h35
-rw-r--r--ace/os_include/netinet/tcp.h32
-rw-r--r--ace/os_include/nl_types.h32
-rw-r--r--ace/os_include/poll.h32
-rw-r--r--ace/os_include/pthread.h34
-rw-r--r--ace/os_include/pwd.h34
-rw-r--r--ace/os_include/regex.h34
-rw-r--r--ace/os_include/sched.h34
-rw-r--r--ace/os_include/search.h34
-rw-r--r--ace/os_include/semaphore.h34
-rw-r--r--ace/os_include/setjmp.h32
-rw-r--r--ace/os_include/signal.h36
-rw-r--r--ace/os_include/spawn.h36
-rw-r--r--ace/os_include/stdarg.h32
-rw-r--r--ace/os_include/stdbool.h32
-rw-r--r--ace/os_include/stddef.h94
-rw-r--r--ace/os_include/stdint.h118
-rw-r--r--ace/os_include/stdio.h35
-rw-r--r--ace/os_include/stdlib.h35
-rw-r--r--ace/os_include/string.h34
-rw-r--r--ace/os_include/strings.h34
-rw-r--r--ace/os_include/stropts.h34
-rw-r--r--ace/os_include/sys/ipc.h34
-rw-r--r--ace/os_include/sys/mman.h34
-rw-r--r--ace/os_include/sys/msg.h34
-rw-r--r--ace/os_include/sys/resource.h35
-rw-r--r--ace/os_include/sys/select.h35
-rw-r--r--ace/os_include/sys/sem.h34
-rw-r--r--ace/os_include/sys/shm.h34
-rw-r--r--ace/os_include/sys/socket.h34
-rw-r--r--ace/os_include/sys/stat.h34
-rw-r--r--ace/os_include/sys/statvfs.h34
-rw-r--r--ace/os_include/sys/time.h35
-rw-r--r--ace/os_include/sys/timeb.h34
-rw-r--r--ace/os_include/sys/times.h34
-rw-r--r--ace/os_include/sys/types.h34
-rw-r--r--ace/os_include/sys/uio.h34
-rw-r--r--ace/os_include/sys/un.h34
-rw-r--r--ace/os_include/sys/utsname.h32
-rw-r--r--ace/os_include/sys/wait.h35
-rw-r--r--ace/os_include/syslog.h32
-rw-r--r--ace/os_include/tar.h32
-rw-r--r--ace/os_include/termios.h32
-rw-r--r--ace/os_include/tgmath.h35
-rw-r--r--ace/os_include/time.h35
-rw-r--r--ace/os_include/trace.h34
-rw-r--r--ace/os_include/ucontext.h36
-rw-r--r--ace/os_include/ulimit.h32
-rw-r--r--ace/os_include/unistd.h35
-rw-r--r--ace/os_include/utime.h34
-rw-r--r--ace/os_include/utmpx.h34
-rw-r--r--ace/os_include/wchar.h39
-rw-r--r--ace/os_include/wctype.h35
-rw-r--r--ace/os_include/wordexp.h35
-rw-r--r--ace/post.h25
-rw-r--r--ace/pre.h27
-rw-r--r--ace/streams.h140
-rw-r--r--ace/svc_export.h44
1250 files changed, 0 insertions, 336193 deletions
diff --git a/ace/ACE.cpp b/ace/ACE.cpp
deleted file mode 100644
index f1c924305a4..00000000000
--- a/ace/ACE.cpp
+++ /dev/null
@@ -1,3493 +0,0 @@
-// $Id$
-
-#include "ace/ACE.h"
-#include "ace/Basic_Types.h"
-#include "ace/Handle_Set.h"
-#include "ace/Auto_Ptr.h"
-#include "ace/SString.h"
-#include "ace/Version.h"
-#include "ace/Message_Block.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/ACE.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID(ace, ACE, "$Id$")
-
- // Static data members.
-
-// Keeps track of whether we're in some global debug mode.
-char ACE::debug_ = 0;
-
-// Hex characters.
-const ACE_TCHAR ACE::hex_chars_[] = ACE_LIB_TEXT ("0123456789abcdef");
-
-// Size of a VM page.
-size_t ACE::pagesize_ = 0;
-
-// Size of allocation granularity.
-size_t ACE::allocation_granularity_ = 0;
-
-int
-ACE::out_of_handles (int error)
-{
- // EMFILE is common to all platforms.
- if (error == EMFILE ||
-#if defined (ACE_WIN32)
- // On Win32, we need to check for ENOBUFS also.
- error == ENOBUFS ||
-#elif defined (HPUX)
- // On HPUX, we need to check for EADDRNOTAVAIL also.
- error == EADDRNOTAVAIL ||
-#elif defined (linux)
- // On linux, we need to check for ENOENT also.
- error == ENOENT ||
- // For RedHat5.2, need to check for EINVAL too.
- error == EINVAL ||
- // Without threads check for EOPNOTSUPP
- error == EOPNOTSUPP ||
-#elif defined (sun)
- // On sun, we need to check for ENOSR also.
- error == ENOSR ||
- // Without threads check for ENOTSUP
- error == ENOTSUP ||
-#elif defined (__FreeBSD__)
- // On FreeBSD we need to check for EOPNOTSUPP (LinuxThreads) or
- // ENOSYS (libc_r threads) also.
- error == EOPNOTSUPP ||
- error == ENOSYS ||
-#elif defined (__OpenBSD__)
- // OpenBSD appears to return EBADF.
- error == EBADF ||
-#elif defined (__sgi) // irix
- error == ENOTSUP ||
-#elif defined (DIGITAL_UNIX) // osf1
- error == ENOTSUP ||
-#endif /* ACE_WIN32 */
- error == ENFILE)
- return 1;
- else
- return 0;
-}
-
-u_int
-ACE::major_version (void)
-{
- return ACE_MAJOR_VERSION;
-}
-
-u_int
-ACE::minor_version (void)
-{
- return ACE_MINOR_VERSION;
-}
-
-u_int
-ACE::beta_version (void)
-{
- return ACE_BETA_VERSION;
-}
-
-const ACE_TCHAR *
-ACE::compiler_name (void)
-{
-#ifdef ACE_CC_NAME
- return ACE_CC_NAME;
-#else
- return "";
-#endif
-}
-
-u_int
-ACE::compiler_major_version (void)
-{
-#ifdef ACE_CC_MAJOR_VERSION
- return ACE_CC_MAJOR_VERSION;
-#else
- return 0;
-#endif
-}
-
-u_int
-ACE::compiler_minor_version (void)
-{
-#ifdef ACE_CC_MINOR_VERSION
- return ACE_CC_MINOR_VERSION;
-#else
- return 0;
-#endif
-}
-
-u_int
-ACE::compiler_beta_version (void)
-{
-#ifdef ACE_CC_BETA_VERSION
- return ACE_CC_BETA_VERSION;
-#else
- return 0;
-#endif
-}
-
-int
-ACE::select (int width,
- ACE_Handle_Set *readfds,
- ACE_Handle_Set *writefds,
- ACE_Handle_Set *exceptfds,
- const ACE_Time_Value *timeout)
-{
- int result = ACE_OS::select (width,
- readfds ? readfds->fdset () : 0,
- writefds ? writefds->fdset () : 0,
- exceptfds ? exceptfds->fdset () : 0,
- timeout);
- if (result > 0)
- {
-# if !defined (ACE_WIN64)
- // This isn't needed for Windows... it's a no-op anyway.
- if (readfds)
- readfds->sync ((ACE_HANDLE) width);
- if (writefds)
- writefds->sync ((ACE_HANDLE) width);
- if (exceptfds)
- exceptfds->sync ((ACE_HANDLE) width);
-#endif /* ACE_WIN64 */
- }
- return result;
-}
-
-int
-ACE::select (int width,
- ACE_Handle_Set &readfds,
- const ACE_Time_Value *timeout)
-{
- int result = ACE_OS::select (width,
- readfds.fdset (),
- 0,
- 0,
- timeout);
-
-#if !defined (ACE_WIN64)
- if (result > 0)
- readfds.sync ((ACE_HANDLE) width);
-#endif /* ACE_WIN64 */
- return result;
-}
-
-int
-ACE::terminate_process (pid_t pid)
-{
-#if defined (ACE_HAS_PHARLAP)
- ACE_UNUSED_ARG (pid);
- ACE_NOTSUP_RETURN (-1);
-#elif defined (ACE_WIN32)
- // Create a handle for the given process id.
- ACE_HANDLE process_handle =
- ::OpenProcess (PROCESS_TERMINATE,
- FALSE, // New handle is not inheritable.
- pid);
-
- if (process_handle == ACE_INVALID_HANDLE
- || process_handle == 0)
- return -1;
- else
- {
- // Kill the process associated with process_handle.
- BOOL terminate_result =
- ::TerminateProcess (process_handle, 0);
- // Free up the kernel resources.
- ACE_OS::close (process_handle);
- return terminate_result;
- }
-#elif defined (CHORUS)
- KnCap cap_;
-
- // Use the pid to find out the actor's capability, then kill it.
-# if defined(CHORUS_4)
- if (::acap (pid, &cap_) == 0)
-# else
- if (::acap (AM_MYSITE, pid, &cap_) == 0)
-# endif
- return ::akill (&cap_);
- else
- return -1;
-#else
- return ACE_OS::kill (pid, 9);
-#endif /* ACE_HAS_PHARLAP */
-}
-
-int
-ACE::process_active (pid_t pid)
-{
-#if !defined(ACE_WIN32)
- int retval = ACE_OS::kill (pid, 0);
-
- if (retval == 0)
- return 1;
- else if (errno == ESRCH)
- return 0;
- else
- return -1;
-#else
- // Create a handle for the given process id.
- ACE_HANDLE process_handle =
- ::OpenProcess (PROCESS_QUERY_INFORMATION, FALSE, pid);
- if (process_handle == ACE_INVALID_HANDLE
- || process_handle == 0)
- return 0;
- else
- {
- DWORD status;
- int result = 1;
- if (::GetExitCodeProcess (process_handle,
- &status) == 0
- || status != STILL_ACTIVE)
- result = 0;
-
- ::CloseHandle (process_handle);
- return result;
- }
-#endif /* !ACE_WIN32 */
-}
-
-const ACE_TCHAR *
-ACE::execname (const ACE_TCHAR *old_name)
-{
-#if defined (ACE_WIN32)
- const ACE_TCHAR *suffix = ACE_OS::strrchr (old_name, ACE_LIB_TEXT ('.'));
- if (suffix == 0 || ACE_OS::strcasecmp (suffix, ACE_LIB_TEXT (".exe")) != 0)
- {
- ACE_TCHAR *new_name;
-
- size_t size =
- ACE_OS::strlen (old_name)
- + ACE_OS::strlen (ACE_LIB_TEXT (".exe"))
- + 1;
-
- ACE_NEW_RETURN (new_name,
- ACE_TCHAR[size],
- 0);
- ACE_TCHAR *end = new_name;
-
- end = ACE_OS::strecpy (new_name, old_name);
-
- // Concatenate the .exe suffix onto the end of the executable.
- // end points _after_ the terminating nul.
- ACE_OS::strcpy (end - 1, ACE_LIB_TEXT (".exe"));
-
- return new_name;
- }
-#endif /* ACE_WIN32 */
- return old_name;
-}
-
-u_long
-ACE::hash_pjw (const char *str, size_t len)
-{
- u_long hash = 0;
-
- for (size_t i = 0; i < len; i++)
- {
- const char temp = str[i];
- hash = (hash << 4) + (temp * 13);
-
- u_long g = hash & 0xf0000000;
-
- if (g)
- {
- hash ^= (g >> 24);
- hash ^= g;
- }
- }
-
- return hash;
-}
-
-u_long
-ACE::hash_pjw (const char *str)
-{
- return ACE::hash_pjw (str, ACE_OS::strlen (str));
-}
-
-#if defined (ACE_HAS_WCHAR)
-u_long
-ACE::hash_pjw (const wchar_t *str, size_t len)
-{
- u_long hash = 0;
-
- for (size_t i = 0; i < len; i++)
- {
- // @@ UNICODE: Does this function do the correct thing with wchar's?
-
- const wchar_t temp = str[i];
- hash = (hash << 4) + (temp * 13);
-
- u_long g = hash & 0xf0000000;
-
- if (g)
- {
- hash ^= (g >> 24);
- hash ^= g;
- }
- }
-
- return hash;
-}
-
-u_long
-ACE::hash_pjw (const wchar_t *str)
-{
- return ACE::hash_pjw (str, ACE_OS::strlen (str));
-}
-#endif /* ACE_HAS_WCHAR */
-
-// The CRC routine was taken from the FreeBSD implementation of cksum,
-// that falls under the following license:
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * James W. Williams of NASA Goddard Space Flight Center.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-u_long ACE::crc_table_[] =
-{
- 0x0,
- 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b,
- 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6,
- 0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,
- 0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, 0x5f15adac,
- 0x5bd4b01b, 0x569796c2, 0x52568b75, 0x6a1936c8, 0x6ed82b7f,
- 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, 0x709f7b7a,
- 0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
- 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58,
- 0xbaea46ef, 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033,
- 0xa4ad16ea, 0xa06c0b5d, 0xd4326d90, 0xd0f37027, 0xddb056fe,
- 0xd9714b49, 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,
- 0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, 0xe13ef6f4,
- 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0,
- 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5,
- 0x2ac12072, 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16,
- 0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca, 0x7897ab07,
- 0x7c56b6b0, 0x71159069, 0x75d48dde, 0x6b93dddb, 0x6f52c06c,
- 0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1,
- 0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
- 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b,
- 0xbb60adfc, 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698,
- 0x832f1041, 0x87ee0df6, 0x99a95df3, 0x9d684044, 0x902b669d,
- 0x94ea7b2a, 0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e,
- 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2, 0xc6bcf05f,
- 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34,
- 0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80,
- 0x644fc637, 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,
- 0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, 0x5c007b8a,
- 0x58c1663d, 0x558240e4, 0x51435d53, 0x251d3b9e, 0x21dc2629,
- 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, 0x3f9b762c,
- 0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
- 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e,
- 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65,
- 0xeba91bbc, 0xef68060b, 0xd727bbb6, 0xd3e6a601, 0xdea580d8,
- 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,
- 0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, 0xae3afba2,
- 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71,
- 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74,
- 0x857130c3, 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640,
- 0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c, 0x7b827d21,
- 0x7f436096, 0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a,
- 0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, 0x18197087,
- 0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
- 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d,
- 0x2056cd3a, 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce,
- 0xcc2b1d17, 0xc8ea00a0, 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb,
- 0xdbee767c, 0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18,
- 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, 0x89b8fd09,
- 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662,
- 0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf,
- 0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4};
-
-// Compute a POSIX 1003.2 checksum. The routine takes an string and
-// computes the CRC for it (it stops on the first '\0' character).
-
-// UNICOS UINT32's are 64-bit on the Cray PVP architecture
-#if defined(_UNICOS) || (ACE_SIZEOF_LONG == 8)
-# define COMPUTE(var, ch) (var) = ( 0x00000000ffffffff & ((var) << 8)) ^ ACE::crc_table_[(((var) >> 24) ^ (ch))&0xff]
-#else /* _UNICOS */
-# define COMPUTE(var, ch) (var) = ((var) << 8) ^ ACE::crc_table_[(((var) >> 24) ^ (ch))&0xff]
-#endif /* _UNICOS */
-
-u_long
-ACE::crc32 (const char *string)
-{
- register ACE_UINT32 crc = 0;
-
- u_long len = 0;
-
- for (const char *p = string;
- *p != 0;
- ++p)
- {
- COMPUTE (crc, *p);
- ++len;
- }
-
- // Include the length of the string.
-
- for (; len != 0; len >>= 8)
- COMPUTE (crc, len & 0xff);
-
- return ~crc;
-}
-
-u_long
-ACE::crc32 (const char *buffer, ACE_UINT32 len)
-{
- register ACE_UINT32 crc = 0;
-
- for (const char *p = buffer;
- p != buffer + len;
- ++p)
- COMPUTE (crc, *p);
-
- // Include the length of the string.
-
- for (; len != 0; len >>= 8)
- COMPUTE (crc, len & 0xff);
-
- return ~crc;
-}
-
-u_long
-ACE::crc32 (iovec *iov, int len)
-{
- register ACE_UINT32 crc = 0;
-
- int total_len = 0;
-
- for (int i = 0; i < len; ++i)
- {
- for (const char *p = (char *) iov[i].iov_base;
- p != (char *) iov[i].iov_base + iov[i].iov_len;
- ++p)
- COMPUTE (crc, *p);
-
- total_len += iov[i].iov_len;
- }
-
- // Include the length of the string.
-
- for (; total_len != 0; total_len >>= 8)
- COMPUTE (crc, total_len & 0xff);
-
- return ~crc;
-}
-
-#undef COMPUTE
-
-#if !defined (ACE_HAS_WINCE)
-ACE_TCHAR *
-ACE::strenvdup (const ACE_TCHAR *str)
-{
- ACE_TRACE ("ACE::strenvdup");
-
- return ACE_OS::strenvdup (str);
-}
-#endif /* ACE_HAS_WINCE */
-
-/*
-
-Examples:
-
-Source NT UNIX
-==================================================================
-netsvc netsvc.dll libnetsvc.so
- (PATH will be (LD_LIBRARY_PATH
- evaluated) evaluated)
-
-libnetsvc.dll libnetsvc.dll libnetsvc.dll + warning
-netsvc.so netsvc.so + warning libnetsvc.so
-
-..\../libs/netsvc ..\..\libs\netsvc.dll ../../libs/netsvc.so
- (absolute path used) (absolute path used)
-
-*/
-
-const ACE_TCHAR *
-ACE::basename (const ACE_TCHAR *pathname, ACE_TCHAR delim)
-{
- ACE_TRACE ("ACE::basename");
- const ACE_TCHAR *temp = ACE_OS::strrchr (pathname, delim);
-
- if (temp == 0)
- return pathname;
- else
- return temp + 1;
-}
-
-const ACE_TCHAR *
-ACE::dirname (const ACE_TCHAR *pathname, ACE_TCHAR delim)
-{
- ACE_TRACE ("ACE::dirname");
- static ACE_TCHAR return_dirname[MAXPATHLEN + 1];
-
- const ACE_TCHAR *temp = ACE_OS::strrchr (pathname, delim);
-
- if (temp == 0)
- {
- return_dirname[0] = '.';
- return_dirname[1] = '\0';
-
- return return_dirname;
- }
- else
- {
- // When the len is truncated, there are problems! This should
- // not happen in normal circomstances
- size_t len = temp - pathname + 1;
- if (len > (sizeof return_dirname / sizeof (ACE_TCHAR)))
- len = sizeof return_dirname / sizeof (ACE_TCHAR);
-
- ACE_OS::strsncpy (return_dirname,
- pathname,
- len);
- return return_dirname;
- }
-}
-
-ssize_t
-ACE::recv (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout)
-{
- if (timeout == 0)
- return ACE_OS::recv (handle, (char *) buf, len, flags);
- else
- {
-#if defined (ACE_HAS_RECV_TIMEDWAIT)
- ACE_Time_Value copy = *timeout;
- copy += ACE_OS::gettimeofday ();
- timespec_t ts = copy;
- return ::recv_timedwait (handle, buf, len, flags, &ts);
-#else
- int val = 0;
- if (ACE::enter_recv_timedwait (handle, timeout, val) ==-1)
- return -1;
- else
- {
- ssize_t bytes_transferred = ACE_OS::recv (handle, (char *) buf, len, flags);
- ACE::restore_non_blocking_mode (handle, val);
- return bytes_transferred;
- }
-#endif /* ACE_HAS_RECV_TIMEDWAIT */
- }
-}
-
-#if defined (ACE_HAS_TLI)
-
-ssize_t
-ACE::t_rcv (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int *flags,
- const ACE_Time_Value *timeout)
-{
- if (timeout == 0)
- return ACE_OS::t_rcv (handle, (char *) buf, len, flags);
- else
- {
- int val = 0;
- if (ACE::enter_recv_timedwait (handle, timeout, val) ==-1)
- return -1;
- else
- {
- ssize_t bytes_transferred = ACE_OS::t_rcv (handle, (char *) buf, len, flags);
- ACE::restore_non_blocking_mode (handle, val);
- return bytes_transferred;
- }
- }
-}
-
-#endif /* ACE_HAS_TLI */
-
-ssize_t
-ACE::recv (ACE_HANDLE handle,
- void *buf,
- size_t n,
- const ACE_Time_Value *timeout)
-{
- if (timeout == 0)
- return ACE::recv_i (handle, buf, n);
- else
- {
-#if defined (ACE_HAS_READ_TIMEDWAIT)
- ACE_Time_Value copy = *timeout;
- copy += ACE_OS::gettimeofday ();
- timespec_t ts = copy;
- return ::read_timedwait (handle, buf, n, &ts);
-#else
- int val = 0;
- if (ACE::enter_recv_timedwait (handle, timeout, val) == -1)
- return -1;
- else
- {
- ssize_t bytes_transferred = ACE::recv_i (handle, buf, n);
- ACE::restore_non_blocking_mode (handle, val);
- return bytes_transferred;
- }
-#endif /* ACE_HAS_READ_TIMEDWAIT */
- }
-}
-
-ssize_t
-ACE::recvmsg (ACE_HANDLE handle,
- struct msghdr *msg,
- int flags,
- const ACE_Time_Value *timeout)
-{
- if (timeout == 0)
- return ACE_OS::recvmsg (handle, msg, flags);
- else
- {
-#if defined (ACE_HAS_RECVMSG_TIMEDWAIT)
- ACE_Time_Value copy = *timeout;
- copy += ACE_OS::gettimeofday ();
- timespec_t ts = copy;
- return ::recvmsg_timedwait (handle, msg, flags, &ts);
-#else
- int val = 0;
- if (ACE::enter_recv_timedwait (handle, timeout, val) == -1)
- return -1;
- else
- {
- int bytes_transferred = ACE_OS::recvmsg (handle, msg, flags);
- ACE::restore_non_blocking_mode (handle, val);
- return bytes_transferred;
- }
-#endif /* ACE_HAS_RECVMSG_TIMEDWAIT */
- }
-}
-
-ssize_t
-ACE::recvfrom (ACE_HANDLE handle,
- char *buf,
- int len,
- int flags,
- struct sockaddr *addr,
- int *addrlen,
- const ACE_Time_Value *timeout)
-{
- if (timeout == 0)
- return ACE_OS::recvfrom (handle, buf, len, flags, addr, addrlen);
- else
- {
-#if defined (ACE_HAS_RECVFROM_TIMEDWAIT)
- ACE_Time_Value copy = *timeout;
- copy += ACE_OS::gettimeofday ();
- timespec_t ts = copy;
- return ::recvfrom_timedwait (handle, buf, len, flags, addr, addrlen, &ts);
-#else
- int val = 0;
- if (ACE::enter_recv_timedwait (handle, timeout, val) == -1)
- return -1;
- else
- {
- int bytes_transferred = ACE_OS::recvfrom (handle, buf, len, flags, addr, addrlen);
- ACE::restore_non_blocking_mode (handle, val);
- return bytes_transferred;
- }
-#endif /* ACE_HAS_RECVFROM_TIMEDWAIT */
- }
-}
-
-ssize_t
-ACE::recv_n_i (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int flags,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- // Try to transfer as much of the remaining data as possible.
- n = ACE_OS::recv (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred,
- flags);
- // Check EOF.
- if (n == 0)
- return 0;
-
- // Check for other errors.
- if (n == -1)
- {
- // Check for possible blocking.
- if (errno == EWOULDBLOCK)
- {
- // Wait for the blocking to subside.
- int result = ACE::handle_read_ready (handle,
- 0);
-
- // Did select() succeed?
- if (result != -1)
- {
- // Blocking subsided. Continue data transfer.
- n = 0;
- continue;
- }
- }
-
- // Other data transfer or select() failures.
- return -1;
- }
- }
-
- return ACE_static_cast (ssize_t, bytes_transferred);
-}
-
-ssize_t
-ACE::recv_n_i (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
- ssize_t result = 0;
- int error = 0;
-
- int val = 0;
- ACE::record_and_set_non_blocking_mode (handle, val);
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- // Try to transfer as much of the remaining data as possible.
- // Since the socket is in non-blocking mode, this call will not
- // block.
- n = ACE_OS::recv (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred,
- flags);
-
- // Check for errors.
- if (n == 0 ||
- n == -1)
- {
- // Check for possible blocking.
- if (n == -1 &&
- errno == EWOULDBLOCK)
- {
- // Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_read_ready (handle,
- timeout);
-
- // Did select() succeed?
- if (rtn != -1)
- {
- // Blocking subsided in <timeout> period. Continue
- // data transfer.
- n = 0;
- continue;
- }
- }
-
- // Wait in select() timed out or other data transfer or
- // select() failures.
- error = 1;
- result = n;
- break;
- }
- }
-
- ACE::restore_non_blocking_mode (handle, val);
-
- if (error)
- return result;
- else
- return ACE_static_cast (ssize_t, bytes_transferred);
-}
-
-#if defined (ACE_HAS_TLI)
-
-ssize_t
-ACE::t_rcv_n_i (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int *flags,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- // Try to transfer as much of the remaining data as possible.
- n = ACE_OS::t_rcv (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred,
- flags);
- // Check EOF.
- if (n == 0)
- return 0;
-
- // Check for other errors.
- if (n == -1)
- {
- // Check for possible blocking.
- if (errno == EWOULDBLOCK)
- {
- // Wait for the blocking to subside.
- int result = ACE::handle_read_ready (handle,
- 0);
-
- // Did select() succeed?
- if (result != -1)
- {
- // Blocking subsided. Continue data transfer.
- n = 0;
- continue;
- }
- }
-
- // Other data transfer or select() failures.
- return -1;
- }
- }
-
- return bytes_transferred;
-}
-
-ssize_t
-ACE::t_rcv_n_i (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int *flags,
- const ACE_Time_Value *timeout,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
- ssize_t result = 0;
- int error = 0;
-
- int val = 0;
- ACE::record_and_set_non_blocking_mode (handle, val);
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- // Try to transfer as much of the remaining data as possible.
- // Since the socket is in non-blocking mode, this call will not
- // block.
- n = ACE_OS::t_rcv (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred,
- flags);
-
- // Check for errors.
- if (n == 0 ||
- n == -1)
- {
- // Check for possible blocking.
- if (n == -1 &&
- errno == EWOULDBLOCK)
- {
- // Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_read_ready (handle,
- timeout);
-
- // Did select() succeed?
- if (rtn != -1)
- {
- // Blocking subsided in <timeout> period. Continue
- // data transfer.
- n = 0;
- continue;
- }
- }
-
- // Wait in select() timed out or other data transfer or
- // select() failures.
- error = 1;
- result = n;
- break;
- }
- }
-
- ACE::restore_non_blocking_mode (handle, val);
-
- if (error)
- return result;
- else
- return bytes_transferred;
-}
-
-#endif /* ACE_HAS_TLI */
-
-ssize_t
-ACE::recv_n_i (ACE_HANDLE handle,
- void *buf,
- size_t len,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- // Try to transfer as much of the remaining data as possible.
- n = ACE::recv_i (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred);
- // Check EOF.
- if (n == 0)
- {
- return 0;
- }
- // Check for other errors.
- if (n == -1)
- {
- // Check for possible blocking.
- if (errno == EWOULDBLOCK)
- {
- // Wait for the blocking to subside.
- int result = ACE::handle_read_ready (handle,
- 0);
-
- // Did select() succeed?
- if (result != -1)
- {
- // Blocking subsided. Continue data transfer.
- n = 0;
- continue;
- }
- }
-
- // Other data transfer or select() failures.
- return -1;
- }
- }
-
- return ACE_static_cast (ssize_t, bytes_transferred);
-}
-
-ssize_t
-ACE::recv_n_i (ACE_HANDLE handle,
- void *buf,
- size_t len,
- const ACE_Time_Value *timeout,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
- ssize_t result = 0;
- int error = 0;
-
- int val = 0;
- ACE::record_and_set_non_blocking_mode (handle, val);
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- // Try to transfer as much of the remaining data as possible.
- // Since the socket is in non-blocking mode, this call will not
- // block.
- n = ACE::recv_i (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred);
-
- // Check for errors.
- if (n == 0 ||
- n == -1)
- {
- // Check for possible blocking.
- if (n == -1 &&
- errno == EWOULDBLOCK)
- {
- // Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_read_ready (handle,
- timeout);
-
- // Did select() succeed?
- if (rtn != -1)
- {
- // Blocking subsided in <timeout> period. Continue
- // data transfer.
- n = 0;
- continue;
- }
- }
-
- // Wait in select() timed out or other data transfer or
- // select() failures.
- error = 1;
- result = n;
- break;
- }
- }
-
- ACE::restore_non_blocking_mode (handle, val);
-
- if (error)
- return result;
- else
- return ACE_static_cast (ssize_t, bytes_transferred);
-}
-
-// This is basically an interface to ACE_OS::readv, that doesn't use
-// the struct iovec explicitly. The ... can be passed as an arbitrary
-// number of (char *ptr, int len) tuples. However, the count N is the
-// *total* number of trailing arguments, *not* a couple of the number
-// of tuple pairs!
-
-ssize_t
-ACE::recv (ACE_HANDLE handle, size_t n, ...)
-{
- va_list argp;
- int total_tuples = ACE_static_cast (int, (n / 2));
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (int i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, int);
- }
-
- ssize_t result = ACE_OS::recvv (handle, iovp, total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
-}
-
-ssize_t
-ACE::recvv (ACE_HANDLE handle,
- iovec *iov,
- int iovcnt,
- const ACE_Time_Value *timeout)
-{
- if (timeout == 0)
- return ACE_OS::recvv (handle, iov, iovcnt);
- else
- {
-#if defined (ACE_HAS_READV_TIMEDWAIT)
- ACE_Time_Value copy = *timeout;
- copy += ACE_OS::gettimeofday ();
- timespec_t ts = copy;
- return ::readv_timedwait (handle, iov, iovcnt, &ts);
-#else
- int val = 0;
- if (ACE::enter_recv_timedwait (handle, timeout, val) == -1)
- return -1;
- else
- {
- ssize_t bytes_transferred = ACE_OS::recvv (handle, iov, iovcnt);
- ACE::restore_non_blocking_mode (handle, val);
- return bytes_transferred;
- }
-#endif /* ACE_HAS_READV_TIMEDWAIT */
- }
-}
-
-ssize_t
-ACE::recvv_n_i (ACE_HANDLE handle,
- iovec *iov,
- int iovcnt,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- bytes_transferred = 0;
-
- for (int s = 0;
- s < iovcnt;
- )
- {
- // Try to transfer as much of the remaining data as possible.
- ssize_t n = ACE_OS::recvv (handle,
- iov + s,
- iovcnt - s);
- // Check EOF.
- if (n == 0)
- return 0;
-
- // Check for other errors.
- if (n == -1)
- {
- // Check for possible blocking.
- if (errno == EWOULDBLOCK)
- {
- // Wait for the blocking to subside.
- int result = ACE::handle_read_ready (handle,
- 0);
-
- // Did select() succeed?
- if (result != -1)
- {
- // Blocking subsided. Continue data transfer.
- n = 0;
- continue;
- }
- }
-
- // Other data transfer or select() failures.
- return -1;
- }
-
- for (bytes_transferred += n;
- s < iovcnt
- && n >= ACE_static_cast (ssize_t,
- iov[s].iov_len);
- s++)
- n -= iov[s].iov_len;
-
- if (n != 0)
- {
- char *base = ACE_static_cast (char *,
- iov[s].iov_base);
- iov[s].iov_base = base + n;
- iov[s].iov_len = iov[s].iov_len - n;
- }
- }
-
- return bytes_transferred;
-}
-
-ssize_t
-ACE::recvv_n_i (ACE_HANDLE handle,
- iovec *iov,
- int iovcnt,
- const ACE_Time_Value *timeout,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- bytes_transferred = 0;
- ssize_t result = 0;
- int error = 0;
-
- int val = 0;
- ACE::record_and_set_non_blocking_mode (handle, val);
-
- for (int s = 0;
- s < iovcnt;
- )
- {
- // Try to transfer as much of the remaining data as possible.
- // Since the socket is in non-blocking mode, this call will not
- // block.
- ssize_t n = ACE_OS::recvv (handle,
- iov + s,
- iovcnt - s);
-
- // Check for errors.
- if (n == 0 ||
- n == -1)
- {
- // Check for possible blocking.
- if (n == -1 &&
- errno == EWOULDBLOCK)
- {
- // Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_read_ready (handle,
- timeout);
-
- // Did select() succeed?
- if (rtn != -1)
- {
- // Blocking subsided in <timeout> period. Continue
- // data transfer.
- n = 0;
- continue;
- }
- }
-
- // Wait in select() timed out or other data transfer or
- // select() failures.
- error = 1;
- result = n;
- break;
- }
-
- for (bytes_transferred += n;
- s < iovcnt
- && n >= ACE_static_cast (ssize_t,
- iov[s].iov_len);
- s++)
- n -= iov[s].iov_len;
-
- if (n != 0)
- {
- char *base = ACE_reinterpret_cast (char *,
- iov[s].iov_base);
- iov[s].iov_base = base + n;
- iov[s].iov_len = iov[s].iov_len - n;
- }
- }
-
- ACE::restore_non_blocking_mode (handle, val);
-
- if (error)
- return result;
- else
- return bytes_transferred;
-}
-
-ssize_t
-ACE::recv_n (ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- const ACE_Time_Value *timeout,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- bytes_transferred = 0;
-
- iovec iov[ACE_IOV_MAX];
- int iovcnt = 0;
-
- while (message_block != 0)
- {
- // Our current message block chain.
- const ACE_Message_Block *current_message_block = message_block;
-
- while (current_message_block != 0)
- {
- size_t current_message_block_length =
- current_message_block->length ();
- char *this_rd_ptr = current_message_block->rd_ptr ();
-
- // Check if this block has any space for incoming data.
- while (current_message_block_length > 0)
- {
- u_long this_chunk_length;
- if (current_message_block_length > ULONG_MAX)
- this_chunk_length = ULONG_MAX;
- else
- this_chunk_length =
- ACE_static_cast (u_long, current_message_block_length);
- // Collect the data in the iovec.
- iov[iovcnt].iov_base = this_rd_ptr;
- iov[iovcnt].iov_len = this_chunk_length;
- current_message_block_length -= this_chunk_length;
- this_rd_ptr += this_chunk_length;
-
- // Increment iovec counter.
- iovcnt++;
-
- // The buffer is full make a OS call. @@ TODO find a way to
- // find ACE_IOV_MAX for platforms that do not define it rather
- // than simply setting ACE_IOV_MAX to some arbitrary value such
- // as 16.
- if (iovcnt == ACE_IOV_MAX)
- {
- size_t current_transfer = 0;
-
- ssize_t result = ACE::recvv_n (handle,
- iov,
- iovcnt,
- timeout,
- &current_transfer);
-
- // Add to total bytes transferred.
- bytes_transferred += current_transfer;
-
- // Errors.
- if (result == -1 || result == 0)
- return result;
-
- // Reset iovec counter.
- iovcnt = 0;
- }
- }
-
- // Select the next message block in the chain.
- current_message_block = current_message_block->cont ();
- }
-
- // Selection of the next message block chain.
- message_block = message_block->next ();
- }
-
- // Check for remaining buffers to be sent. This will happen when
- // ACE_IOV_MAX is not a multiple of the number of message blocks.
- if (iovcnt != 0)
- {
- size_t current_transfer = 0;
-
- ssize_t result = ACE::recvv_n (handle,
- iov,
- iovcnt,
- timeout,
- &current_transfer);
-
- // Add to total bytes transferred.
- bytes_transferred += current_transfer;
-
- // Errors.
- if (result == -1 || result == 0)
- return result;
- }
-
- // Return total bytes transferred.
- return bytes_transferred;
-}
-
-ssize_t
-ACE::send (ACE_HANDLE handle,
- const void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout)
-{
- if (timeout == 0)
- return ACE_OS::send (handle, (const char *) buf, n, flags);
- else
- {
-#if defined (ACE_HAS_SEND_TIMEDWAIT)
- ACE_Time_Value copy = *timeout;
- copy += ACE_OS::gettimeofday();
- timespec_t ts = copy;
- return ::send_timedwait (handle, buf, n, flags, &ts);
-#else
- int val = 0;
- if (ACE::enter_send_timedwait (handle, timeout, val) == -1)
- return -1;
- else
- {
- ssize_t bytes_transferred = ACE_OS::send (handle, (const char *) buf, n, flags);
- ACE::restore_non_blocking_mode (handle, val);
- return bytes_transferred;
- }
-#endif /* ACE_HAS_SEND_TIMEDWAIT */
- }
-}
-
-#if defined (ACE_HAS_TLI)
-
-ssize_t
-ACE::t_snd (ACE_HANDLE handle,
- const void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout)
-{
- if (timeout == 0)
- return ACE_OS::t_snd (handle, (const char *) buf, n, flags);
- else
- {
- int val = 0;
- if (ACE::enter_send_timedwait (handle, timeout, val) == -1)
- return -1;
- else
- {
- ssize_t bytes_transferred = ACE_OS::t_snd (handle, (const char *) buf, n, flags);
- ACE::restore_non_blocking_mode (handle, val);
- return bytes_transferred;
- }
- }
-}
-
-#endif /* ACE_HAS_TLI */
-
-ssize_t
-ACE::send (ACE_HANDLE handle,
- const void *buf,
- size_t n,
- const ACE_Time_Value *timeout)
-{
- if (timeout == 0)
- return ACE::send_i (handle, buf, n);
- else
- {
-#if defined (ACE_HAS_WRITE_TIMEDWAIT)
- ACE_Time_Value copy = *timeout;
- copy += ACE_OS::gettimeofday ();
- timespec_t ts = copy;
- return ::write_timedwait (handle, buf, n, &ts);
-#else
- int val = 0;
- if (ACE::enter_send_timedwait (handle, timeout, val) == -1)
- return -1;
- else
- {
- ssize_t bytes_transferred = ACE::send_i (handle, buf, n);
- ACE::restore_non_blocking_mode (handle, val);
- return bytes_transferred;
- }
-#endif /* ACE_HAS_WRITE_TIMEDWAIT */
- }
-}
-
-ssize_t
-ACE::sendmsg (ACE_HANDLE handle,
- const struct msghdr *msg,
- int flags,
- const ACE_Time_Value *timeout)
-{
- if (timeout == 0)
- return ACE_OS::sendmsg (handle, msg, flags);
- else
- {
-#if defined (ACE_HAS_SENDMSG_TIMEDWAIT)
- ACE_Time_Value copy = *timeout;
- copy += ACE_OS::gettimeofday ();
- timespec_t ts = copy;
- return ::sendmsg_timedwait (handle, msg, flags, &ts);
-#else
- int val = 0;
- if (ACE::enter_send_timedwait (handle, timeout, val) == -1)
- return -1;
- else
- {
- int bytes_transferred = ACE_OS::sendmsg (handle, msg, flags);
- ACE::restore_non_blocking_mode (handle, val);
- return bytes_transferred;
- }
-#endif /* ACE_HAS_SENDMSG_TIMEDWAIT */
- }
-}
-
-ssize_t
-ACE::sendto (ACE_HANDLE handle,
- const char *buf,
- int len,
- int flags,
- const struct sockaddr *addr,
- int addrlen,
- const ACE_Time_Value *timeout)
-{
- if (timeout == 0)
- return ACE_OS::sendto (handle, buf, len, flags, addr, addrlen);
- else
- {
-#if defined (ACE_HAS_SENDTO_TIMEDWAIT)
- ACE_Time_Value copy = *timeout;
- copy += ACE_OS::gettimeofday ();
- timespec_t ts = copy;
- return ::sendto_timedwait (handle, buf, len, flags, addr, addrlen, ts);
-#else
- int val = 0;
- if (ACE::enter_send_timedwait (handle, timeout, val) == -1)
- return -1;
- else
- {
- int bytes_transferred = ACE_OS::sendto (handle, buf, len, flags, addr, addrlen);
- ACE::restore_non_blocking_mode (handle, val);
- return bytes_transferred;
- }
-#endif /* ACE_HAS_SENDTO_TIMEDWAIT */
- }
-}
-
-ssize_t
-ACE::send_n_i (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- // Try to transfer as much of the remaining data as possible.
- n = ACE_OS::send (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred,
- flags);
- // Check EOF.
- if (n == 0)
- return 0;
-
- // Check for other errors.
- if (n == -1)
- {
- // Check for possible blocking.
- if (errno == EWOULDBLOCK || errno == ENOBUFS)
- {
- // Wait for the blocking to subside.
- int result = ACE::handle_write_ready (handle,
- 0);
-
- // Did select() succeed?
- if (result != -1)
- {
- // Blocking subsided. Continue data transfer.
- n = 0;
- continue;
- }
- }
-
- // Other data transfer or select() failures.
- return -1;
- }
- }
-
- return bytes_transferred;
-}
-
-ssize_t
-ACE::send_n_i (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
- ssize_t result = 0;
- int error = 0;
-
- int val = 0;
- ACE::record_and_set_non_blocking_mode (handle, val);
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- // Try to transfer as much of the remaining data as possible.
- // Since the socket is in non-blocking mode, this call will not
- // block.
- n = ACE_OS::send (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred,
- flags);
-
- // Check for errors.
- if (n == 0 ||
- n == -1)
- {
- // Check for possible blocking.
- if (n == -1 &&
- errno == EWOULDBLOCK || errno == ENOBUFS)
- {
- // Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_write_ready (handle,
- timeout);
-
- // Did select() succeed?
- if (rtn != -1)
- {
- // Blocking subsided in <timeout> period. Continue
- // data transfer.
- n = 0;
- continue;
- }
- }
-
- // Wait in select() timed out or other data transfer or
- // select() failures.
- error = 1;
- result = n;
- break;
- }
- }
-
- ACE::restore_non_blocking_mode (handle, val);
-
- if (error)
- return result;
- else
- return bytes_transferred;
-}
-
-#if defined (ACE_HAS_TLI)
-
-ssize_t
-ACE::t_snd_n_i (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- // Try to transfer as much of the remaining data as possible.
- n = ACE_OS::t_snd (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred,
- flags);
- // Check EOF.
- if (n == 0)
- return 0;
-
- // Check for other errors.
- if (n == -1)
- {
- // Check for possible blocking.
- if (errno == EWOULDBLOCK || errno == ENOBUFS)
- {
- // Wait for the blocking to subside.
- int result = ACE::handle_write_ready (handle,
- 0);
-
- // Did select() succeed?
- if (result != -1)
- {
- // Blocking subsided. Continue data transfer.
- n = 0;
- continue;
- }
- }
-
- // Other data transfer or select() failures.
- return -1;
- }
- }
-
- return bytes_transferred;
-}
-
-ssize_t
-ACE::t_snd_n_i (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
- ssize_t result = 0;
- int error = 0;
-
- int val = 0;
- ACE::record_and_set_non_blocking_mode (handle, val);
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- // Try to transfer as much of the remaining data as possible.
- // Since the socket is in non-blocking mode, this call will not
- // block.
- n = ACE_OS::t_snd (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred,
- flags);
-
- // Check for errors.
- if (n == 0 ||
- n == -1)
- {
- // Check for possible blocking.
- if (n == -1 &&
- errno == EWOULDBLOCK || errno == ENOBUFS)
- {
- // Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_write_ready (handle,
- timeout);
-
- // Did select() succeed?
- if (rtn != -1)
- {
- // Blocking subsided in <timeout> period. Continue
- // data transfer.
- n = 0;
- continue;
- }
- }
-
- // Wait in select() timed out or other data transfer or
- // select() failures.
- error = 1;
- result = n;
- break;
- }
- }
-
- ACE::restore_non_blocking_mode (handle, val);
-
- if (error)
- return result;
- else
- return bytes_transferred;
-}
-
-#endif /* ACE_HAS_TLI */
-
-ssize_t
-ACE::send_n_i (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- // Try to transfer as much of the remaining data as possible.
- n = ACE::send_i (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred);
- // Check EOF.
- if (n == 0)
- return 0;
-
- // Check for other errors.
- if (n == -1)
- {
- // Check for possible blocking.
- if (errno == EWOULDBLOCK || errno == ENOBUFS)
- {
- // Wait for the blocking to subside.
- int result = ACE::handle_write_ready (handle,
- 0);
-
- // Did select() succeed?
- if (result != -1)
- {
- // Blocking subsided. Continue data transfer.
- n = 0;
- continue;
- }
- }
-
- // Other data transfer or select() failures.
- return -1;
- }
- }
-
- return bytes_transferred;
-}
-
-ssize_t
-ACE::send_n_i (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- const ACE_Time_Value *timeout,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
- ssize_t result = 0;
- int error = 0;
-
- int val = 0;
- ACE::record_and_set_non_blocking_mode (handle, val);
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- // Try to transfer as much of the remaining data as possible.
- // Since the socket is in non-blocking mode, this call will not
- // block.
- n = ACE::send_i (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred);
-
- // Check for errors.
- if (n == 0 ||
- n == -1)
- {
- // Check for possible blocking.
- if (n == -1 &&
- errno == EWOULDBLOCK || errno == ENOBUFS)
- {
- // Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_write_ready (handle,
- timeout);
-
- // Did select() succeed?
- if (rtn != -1)
- {
- // Blocking subsided in <timeout> period. Continue
- // data transfer.
- n = 0;
- continue;
- }
- }
-
- // Wait in select() timed out or other data transfer or
- // select() failures.
- error = 1;
- result = n;
- break;
- }
- }
-
- ACE::restore_non_blocking_mode (handle, val);
-
- if (error)
- return result;
- else
- return bytes_transferred;
-}
-
-// Send N char *ptrs and int lengths. Note that the char *'s precede
-// the ints (basically, an varargs version of writev). The count N is
-// the *total* number of trailing arguments, *not* a couple of the
-// number of tuple pairs!
-
-ssize_t
-ACE::send (ACE_HANDLE handle, size_t n, ...)
-{
- va_list argp;
- int total_tuples = ACE_static_cast (int, (n / 2));
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (int i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, int);
- }
-
- ssize_t result = ACE_OS::sendv (handle, iovp, total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
-}
-
-ssize_t
-ACE::sendv (ACE_HANDLE handle,
- const iovec *iov,
- int iovcnt,
- const ACE_Time_Value *timeout)
-{
- if (timeout == 0)
- return ACE_OS::sendv (handle, iov, iovcnt);
- else
- {
-#if defined (ACE_HAS_WRITEV_TIMEDWAIT)
- ACE_Time_Value copy = *timeout;
- copy += ACE_OS::gettimeofday ();
- timespec_t ts = copy;
- return ::sendv_timedwait (handle, iov, iovcnt, &ts);
-#else
- int val = 0;
- if (ACE::enter_send_timedwait (handle, timeout, val) == -1)
- return -1;
- else
- {
- ssize_t bytes_transferred = ACE_OS::sendv (handle, iov, iovcnt);
- ACE::restore_non_blocking_mode (handle, val);
- return bytes_transferred;
- }
-#endif /* ACE_HAS_WRITEV_TIMEDWAIT */
- }
-}
-
-ssize_t
-ACE::sendv_n_i (ACE_HANDLE handle,
- const iovec *i,
- int iovcnt,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- bytes_transferred = 0;
-
- iovec *iov = ACE_const_cast (iovec *, i);
-
- for (int s = 0;
- s < iovcnt;
- )
- {
- // Try to transfer as much of the remaining data as possible.
- ssize_t n = ACE_OS::sendv (handle,
- iov + s,
- iovcnt - s);
- // Check EOF.
- if (n == 0)
- return 0;
-
- // Check for other errors.
- if (n == -1)
- {
- // Check for possible blocking.
- if (errno == EWOULDBLOCK || errno == ENOBUFS)
- {
- // Wait for the blocking to subside.
- int result = ACE::handle_write_ready (handle,
- 0);
-
- // Did select() succeed?
- if (result != -1)
- {
- // Blocking subsided. Continue data transfer.
- n = 0;
- continue;
- }
- }
-
- // Other data transfer or select() failures.
- return -1;
- }
-
- for (bytes_transferred += n;
- s < iovcnt
- && n >= ACE_static_cast (ssize_t,
- iov[s].iov_len);
- s++)
- n -= iov[s].iov_len;
-
- if (n != 0)
- {
- char *base = ACE_reinterpret_cast (char *,
- iov[s].iov_base);
- iov[s].iov_base = base + n;
- iov[s].iov_len = iov[s].iov_len - n;
- }
- }
-
- return bytes_transferred;
-}
-
-ssize_t
-ACE::sendv_n_i (ACE_HANDLE handle,
- const iovec *i,
- int iovcnt,
- const ACE_Time_Value *timeout,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- bytes_transferred = 0;
- ssize_t result = 0;
- int error = 0;
-
- int val = 0;
- ACE::record_and_set_non_blocking_mode (handle, val);
-
- iovec *iov = ACE_const_cast (iovec *, i);
-
- for (int s = 0;
- s < iovcnt;
- )
- {
- // Try to transfer as much of the remaining data as possible.
- // Since the socket is in non-blocking mode, this call will not
- // block.
- ssize_t n = ACE_OS::sendv (handle,
- iov + s,
- iovcnt - s);
-
- // Check for errors.
- if (n == 0 ||
- n == -1)
- {
- // Check for possible blocking.
- if (n == -1 &&
- errno == EWOULDBLOCK || errno == ENOBUFS)
- {
- // Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_write_ready (handle,
- timeout);
-
- // Did select() succeed?
- if (rtn != -1)
- {
- // Blocking subsided in <timeout> period. Continue
- // data transfer.
- n = 0;
- continue;
- }
- }
-
- // Wait in select() timed out or other data transfer or
- // select() failures.
- error = 1;
- result = n;
- break;
- }
-
- for (bytes_transferred += n;
- s < iovcnt
- && n >= ACE_static_cast (ssize_t,
- iov[s].iov_len);
- s++)
- n -= iov[s].iov_len;
-
- if (n != 0)
- {
- char *base = ACE_reinterpret_cast (char *,
- iov[s].iov_base);
- iov[s].iov_base = base + n;
- iov[s].iov_len = iov[s].iov_len - n;
- }
- }
-
- ACE::restore_non_blocking_mode (handle, val);
-
- if (error)
- return result;
- else
- return bytes_transferred;
-}
-
-ssize_t
-ACE::write_n (ACE_HANDLE handle,
- const ACE_Message_Block *message_block,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- bytes_transferred = 0;
-
- iovec iov[ACE_IOV_MAX];
- int iovcnt = 0;
-
- while (message_block != 0)
- {
- // Our current message block chain.
- const ACE_Message_Block *current_message_block = message_block;
-
- while (current_message_block != 0)
- {
- size_t current_message_block_length =
- current_message_block->length ();
- char *this_block_ptr = current_message_block->rd_ptr ();
-
- // Check if this block has any data to be sent.
- while (current_message_block_length > 0)
- {
- u_long this_chunk_length;
- if (current_message_block_length > ULONG_MAX)
- this_chunk_length = ULONG_MAX;
- else
- this_chunk_length =
- ACE_static_cast (u_long, current_message_block_length);
- // Collect the data in the iovec.
- iov[iovcnt].iov_base = this_block_ptr;
- iov[iovcnt].iov_len = this_chunk_length;
- current_message_block_length -= this_chunk_length;
- this_block_ptr += this_chunk_length;
-
- // Increment iovec counter.
- iovcnt++;
-
- // The buffer is full make a OS call. @@ TODO find a way to
- // find ACE_IOV_MAX for platforms that do not define it rather
- // than simply setting ACE_IOV_MAX to some arbitrary value such
- // as 16.
- if (iovcnt == ACE_IOV_MAX)
- {
- size_t current_transfer = 0;
-
- ssize_t result = ACE::writev_n (handle,
- iov,
- iovcnt,
- &current_transfer);
-
- // Add to total bytes transferred.
- bytes_transferred += current_transfer;
-
- // Errors.
- if (result == -1 || result == 0)
- return result;
-
- // Reset iovec counter.
- iovcnt = 0;
- }
- }
-
- // Select the next message block in the chain.
- current_message_block = current_message_block->cont ();
- }
-
- // Selection of the next message block chain.
- message_block = message_block->next ();
- }
-
- // Check for remaining buffers to be sent. This will happen when
- // ACE_IOV_MAX is not a multiple of the number of message blocks.
- if (iovcnt != 0)
- {
- size_t current_transfer = 0;
-
- ssize_t result = ACE::writev_n (handle,
- iov,
- iovcnt,
- &current_transfer);
-
- // Add to total bytes transferred.
- bytes_transferred += current_transfer;
-
- // Errors.
- if (result == -1 || result == 0)
- return result;
- }
-
- // Return total bytes transferred.
- return bytes_transferred;
-}
-
-ssize_t
-ACE::send_n (ACE_HANDLE handle,
- const ACE_Message_Block *message_block,
- const ACE_Time_Value *timeout,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- bytes_transferred = 0;
-
- iovec iov[ACE_IOV_MAX];
- int iovcnt = 0;
-
- while (message_block != 0)
- {
- // Our current message block chain.
- const ACE_Message_Block *current_message_block = message_block;
-
- while (current_message_block != 0)
- {
- char *this_block_ptr = current_message_block->rd_ptr ();
- size_t current_message_block_length =
- current_message_block->length ();
-
- // Check if this block has any data to be sent.
- while (current_message_block_length > 0)
- {
- u_long this_chunk_length;
- if (current_message_block_length > ULONG_MAX)
- this_chunk_length = ULONG_MAX;
- else
- this_chunk_length =
- ACE_static_cast (u_long, current_message_block_length);
- // Collect the data in the iovec.
- iov[iovcnt].iov_base = this_block_ptr;
- iov[iovcnt].iov_len = this_chunk_length;
- current_message_block_length -= this_chunk_length;
- this_block_ptr += this_chunk_length;
-
- // Increment iovec counter.
- iovcnt++;
-
- // The buffer is full make a OS call. @@ TODO find a way to
- // find ACE_IOV_MAX for platforms that do not define it rather
- // than simply setting ACE_IOV_MAX to some arbitrary value such
- // as 16.
- if (iovcnt == ACE_IOV_MAX)
- {
- size_t current_transfer = 0;
-
- ssize_t result = ACE::sendv_n (handle,
- iov,
- iovcnt,
- timeout,
- &current_transfer);
-
- // Add to total bytes transferred.
- bytes_transferred += current_transfer;
-
- // Errors.
- if (result == -1 || result == 0)
- return result;
-
- // Reset iovec counter.
- iovcnt = 0;
- }
- }
-
- // Select the next message block in the chain.
- current_message_block = current_message_block->cont ();
- }
-
- // Selection of the next message block chain.
- message_block = message_block->next ();
- }
-
- // Check for remaining buffers to be sent. This will happen when
- // ACE_IOV_MAX is not a multiple of the number of message blocks.
- if (iovcnt != 0)
- {
- size_t current_transfer = 0;
-
- ssize_t result = ACE::sendv_n (handle,
- iov,
- iovcnt,
- timeout,
- &current_transfer);
-
- // Add to total bytes transferred.
- bytes_transferred += current_transfer;
-
- // Errors.
- if (result == -1 || result == 0)
- return result;
- }
-
- // Return total bytes transferred.
- return bytes_transferred;
-}
-
-ssize_t
-ACE::readv_n (ACE_HANDLE handle,
- iovec *iov,
- int iovcnt,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- bytes_transferred = 0;
-
- for (int s = 0;
- s < iovcnt;
- )
- {
- ssize_t n = ACE_OS::readv (handle,
- iov + s,
- iovcnt - s);
-
- if (n == -1 || n == 0)
- return n;
-
- for (bytes_transferred += n;
- s < iovcnt
- && n >= ACE_static_cast (ssize_t,
- iov[s].iov_len);
- s++)
- n -= iov[s].iov_len;
-
- if (n != 0)
- {
- char *base = ACE_reinterpret_cast (char *,
- iov[s].iov_base);
- iov[s].iov_base = base + n;
- iov[s].iov_len = iov[s].iov_len - n;
- }
- }
-
- return bytes_transferred;
-}
-
-ssize_t
-ACE::writev_n (ACE_HANDLE handle,
- const iovec *i,
- int iovcnt,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- bytes_transferred = 0;
-
- iovec *iov = ACE_const_cast (iovec *, i);
-
- for (int s = 0;
- s < iovcnt;
- )
- {
- ssize_t n = ACE_OS::writev (handle,
- iov + s,
- iovcnt - s);
- if (n == -1 || n == 0)
- return n;
-
- for (bytes_transferred += n;
- s < iovcnt
- && n >= ACE_static_cast (ssize_t,
- iov[s].iov_len);
- s++)
- n -= iov[s].iov_len;
-
- if (n != 0)
- {
- char *base = ACE_reinterpret_cast (char *,
- iov[s].iov_base);
- iov[s].iov_base = base + n;
- iov[s].iov_len = iov[s].iov_len - n;
- }
- }
-
- return bytes_transferred;
-}
-
-int
-ACE::handle_ready (ACE_HANDLE handle,
- const ACE_Time_Value *timeout,
- int read_ready,
- int write_ready,
- int exception_ready)
-{
-#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
- ACE_UNUSED_ARG (write_ready);
- ACE_UNUSED_ARG (exception_ready);
-
- struct pollfd fds;
-
- fds.fd = handle;
- fds.events = read_ready ? POLLIN : POLLOUT;
- fds.revents = 0;
-
- int result = ACE_OS::poll (&fds, 1, timeout);
-#else
- ACE_Handle_Set handle_set;
- handle_set.set_bit (handle);
-
- // Wait for data or for the timeout to elapse.
- int select_width;
-# if defined (ACE_WIN64)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- select_width = 0;
-# else
- select_width = int (handle) + 1;
-# endif /* ACE_WIN64 */
- int result = ACE_OS::select (select_width,
- read_ready ? handle_set.fdset () : 0, // read_fds.
- write_ready ? handle_set.fdset () : 0, // write_fds.
- exception_ready ? handle_set.fdset () : 0, // exception_fds.
- timeout);
-
-#endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
-
- switch (result)
- {
- case 0: // Timer expired.
- errno = ETIME;
- /* FALLTHRU */
- case -1: // we got here directly - select() returned -1.
- return -1;
- case 1: // Handle has data.
- /* FALLTHRU */
- default: // default is case result > 0; return a
- // ACE_ASSERT (result == 1);
- return result;
- }
-}
-
-int
-ACE::enter_recv_timedwait (ACE_HANDLE handle,
- const ACE_Time_Value *timeout,
- int &val)
-{
- int result = ACE::handle_read_ready (handle,
- timeout);
-
- if (result == -1)
- return -1;
-
- ACE::record_and_set_non_blocking_mode (handle,
- val);
-
- return result;
-}
-
-int
-ACE::enter_send_timedwait (ACE_HANDLE handle,
- const ACE_Time_Value *timeout,
- int &val)
-{
- int result = ACE::handle_write_ready (handle,
- timeout);
-
- if (result == -1)
- return -1;
-
- ACE::record_and_set_non_blocking_mode (handle,
- val);
-
- return result;
-}
-
-void
-ACE::record_and_set_non_blocking_mode (ACE_HANDLE handle,
- int &val)
-{
- // We need to record whether we are already *in* nonblocking mode,
- // so that we can correctly reset the state when we're done.
- val = ACE::get_flags (handle);
-
- if (ACE_BIT_DISABLED (val, ACE_NONBLOCK))
- // Set the handle into non-blocking mode if it's not already in
- // it.
- ACE::set_flags (handle, ACE_NONBLOCK);
-}
-
-void
-ACE::restore_non_blocking_mode (ACE_HANDLE handle,
- int val)
-{
- if (ACE_BIT_DISABLED (val,
- ACE_NONBLOCK))
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- // Only disable ACE_NONBLOCK if we weren't in non-blocking mode
- // originally.
- ACE::clr_flags (handle, ACE_NONBLOCK);
- }
-}
-
-
-// Format buffer into printable format. This is useful for debugging.
-// Portions taken from mdump by J.P. Knight (J.P.Knight@lut.ac.uk)
-// Modifications by Todd Montgomery.
-
-size_t
-ACE::format_hexdump (const char *buffer,
- size_t size,
- ACE_TCHAR *obuf,
- size_t obuf_sz)
-{
- ACE_TRACE ("ACE::format_hexdump");
-
- u_char c;
- ACE_TCHAR textver[16 + 1];
-
- // We can fit 16 bytes output in text mode per line, 4 chars per byte.
- size_t maxlen = (obuf_sz / 68) * 16;
-
- if (size > maxlen)
- size = maxlen;
-
- size_t i;
-
- size_t lines = size / 16;
- for (i = 0; i < lines; i++)
- {
- size_t j;
-
- for (j = 0 ; j < 16; j++)
- {
- c = (u_char) buffer[(i << 4) + j]; // or, buffer[i*16+j]
- ACE_OS::sprintf (obuf,
- ACE_LIB_TEXT ("%02x "),
- c);
- obuf += 3;
- if (j == 7)
- {
- ACE_OS::sprintf (obuf,
- ACE_LIB_TEXT (" "));
- obuf++;
- }
- textver[j] = ACE_OS::ace_isprint (c) ? c : '.';
- }
-
- textver[j] = 0;
-
- ACE_OS::sprintf (obuf,
- ACE_LIB_TEXT (" %s\n"),
- textver);
-
- while (*obuf != '\0')
- obuf++;
- }
-
- if (size % 16)
- {
- for (i = 0 ; i < size % 16; i++)
- {
- c = (u_char) buffer[size - size % 16 + i];
- ACE_OS::sprintf (obuf,
- ACE_LIB_TEXT ("%02x "),
- c);
- obuf += 3;
- if (i == 7)
- {
- ACE_OS::sprintf (obuf,
- ACE_LIB_TEXT (" "));
- obuf++;
- }
- textver[i] = ACE_OS::ace_isprint (c) ? c : '.';
- }
-
- for (i = size % 16; i < 16; i++)
- {
- ACE_OS::sprintf (obuf,
- ACE_LIB_TEXT (" "));
- obuf += 3;
- if (i == 7)
- {
- ACE_OS::sprintf (obuf,
- ACE_LIB_TEXT (" "));
- obuf++;
- }
- textver[i] = ' ';
- }
-
- textver[i] = 0;
- ACE_OS::sprintf (obuf,
- ACE_LIB_TEXT (" %s\n"),
- textver);
- }
- return size;
-}
-
-// Returns the current timestamp in the form
-// "hour:minute:second:microsecond." The month, day, and year are
-// also stored in the beginning of the date_and_time array.
-
-ACE_TCHAR *
-ACE::timestamp (ACE_TCHAR date_and_time[],
- int date_and_timelen,
- int return_pointer_to_first_digit)
-{
- //ACE_TRACE ("ACE::timestamp");
-
- if (date_and_timelen < 35)
- {
- errno = EINVAL;
- return 0;
- }
-
-#if defined (WIN32)
- // Emulate Unix. Win32 does NOT support all the UNIX versions
- // below, so DO we need this ifdef.
- static const ACE_TCHAR *day_of_week_name[] =
- {
- ACE_LIB_TEXT ("Sun"),
- ACE_LIB_TEXT ("Mon"),
- ACE_LIB_TEXT ("Tue"),
- ACE_LIB_TEXT ("Wed"),
- ACE_LIB_TEXT ("Thu"),
- ACE_LIB_TEXT ("Fri"),
- ACE_LIB_TEXT ("Sat")
- };
-
- static const ACE_TCHAR *month_name[] =
- {
- ACE_LIB_TEXT ("Jan"),
- ACE_LIB_TEXT ("Feb"),
- ACE_LIB_TEXT ("Mar"),
- ACE_LIB_TEXT ("Apr"),
- ACE_LIB_TEXT ("May"),
- ACE_LIB_TEXT ("Jun"),
- ACE_LIB_TEXT ("Jul"),
- ACE_LIB_TEXT ("Aug"),
- ACE_LIB_TEXT ("Sep"),
- ACE_LIB_TEXT ("Oct"),
- ACE_LIB_TEXT ("Nov"),
- ACE_LIB_TEXT ("Dec")
- };
-
- SYSTEMTIME local;
- ::GetLocalTime (&local);
-
- ACE_OS::sprintf (date_and_time,
- ACE_LIB_TEXT ("%3s %3s %2d %04d %02d:%02d:%02d.%06d"),
- day_of_week_name[local.wDayOfWeek],
- month_name[local.wMonth - 1],
- (int) local.wDay,
- (int) local.wYear,
- (int) local.wHour,
- (int) local.wMinute,
- (int) local.wSecond,
- (int) (local.wMilliseconds * 1000));
- return &date_and_time[15 + (return_pointer_to_first_digit != 0)];
-#else /* UNIX */
- ACE_TCHAR timebuf[26]; // This magic number is based on the ctime(3c) man page.
- ACE_Time_Value cur_time = ACE_OS::gettimeofday ();
- time_t secs = cur_time.sec ();
-
- ACE_OS::ctime_r (&secs,
- timebuf,
- sizeof timebuf);
- // date_and_timelen > sizeof timebuf!
- ACE_OS::strsncpy (date_and_time,
- timebuf,
- date_and_timelen);
- char yeartmp[5];
- ACE_OS::strsncpy (yeartmp,
- &date_and_time[20],
- 5);
- char timetmp[9];
- ACE_OS::strsncpy (timetmp,
- &date_and_time[11],
- 9);
- ACE_OS::sprintf (&date_and_time[11],
- "%s %s.%06ld",
- yeartmp,
- timetmp,
- cur_time.usec ());
- date_and_time[33] = '\0';
- return &date_and_time[15 + (return_pointer_to_first_digit != 0)];
-#endif /* WIN32 */
-}
-
-// This function rounds the request to a multiple of the page size.
-
-size_t
-ACE::round_to_pagesize (off_t len)
-{
- ACE_TRACE ("ACE::round_to_pagesize");
-
- if (ACE::pagesize_ == 0)
- ACE::pagesize_ = ACE_OS::getpagesize ();
-
- return (len + (ACE::pagesize_ - 1)) & ~(ACE::pagesize_ - 1);
-}
-
-size_t
-ACE::round_to_allocation_granularity (off_t len)
-{
- ACE_TRACE ("ACE::round_to_allocation_granularity");
-
- if (ACE::allocation_granularity_ == 0)
- ACE::allocation_granularity_ = ACE_OS::allocation_granularity ();
-
- return (len + (ACE::allocation_granularity_ - 1)) & ~(ACE::allocation_granularity_ - 1);
-}
-
-ACE_HANDLE
-ACE::handle_timed_complete (ACE_HANDLE h,
- const ACE_Time_Value *timeout,
- int is_tli)
-{
- ACE_TRACE ("ACE::handle_timed_complete");
-
-#if !defined (ACE_WIN32) && defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
-
- struct pollfd fds;
-
- fds.fd = h;
- fds.events = POLLIN | POLLOUT;
- fds.revents = 0;
-
-#else
- ACE_Handle_Set rd_handles;
- ACE_Handle_Set wr_handles;
-
- rd_handles.set_bit (h);
- wr_handles.set_bit (h);
-#endif /* !ACE_WIN32 && ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
-
-#if defined (ACE_WIN32)
- // Winsock is different - it sets the exception bit for failed connect,
- // unlike other platforms, where the read bit is set.
- ACE_Handle_Set ex_handles;
- ex_handles.set_bit (h);
-#endif /* ACE_WIN32 */
-
- int need_to_check = 0;
- int known_failure = 0;
-
-#if defined (ACE_WIN32)
- int n = ACE_OS::select (0, // Ignored on Windows: int (h) + 1,
- 0,
- wr_handles,
- ex_handles,
- timeout);
-#else
-# if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
-
- int n = ACE_OS::poll (&fds, 1, timeout);
-
-# else
- int n = ACE_OS::select (int (h) + 1,
- rd_handles,
- wr_handles,
- 0,
- timeout);
-# endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
-#endif /* ACE_WIN32 */
-
- // If we failed to connect within the time period allocated by the
- // caller, then we fail (e.g., the remote host might have been too
- // busy to accept our call).
- if (n <= 0)
- {
- if (n == 0 && timeout != 0)
- errno = ETIME;
- return ACE_INVALID_HANDLE;
- }
-
- // Usually, a ready-for-write handle is successfully connected, and
- // ready-for-read (exception on Win32) is a failure. On fails, we
- // need to grab the error code via getsockopt. On possible success for
- // any platform where we can't tell just from select() (e.g. AIX),
- // we also need to check for success/fail.
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG (is_tli);
-
- // On Win32, ex_handle set indicates a failure. We'll do the check
- // to try and get an errno value, but the connect failed regardless of
- // what getsockopt says about the error.
- if (ex_handles.is_set (h))
- {
- need_to_check = 1;
- known_failure = 1;
- }
-#elif defined (VXWORKS)
- ACE_UNUSED_ARG (is_tli);
-
- // Force the check on VxWorks. The read handle for "h" is not set,
- // so "need_to_check" is false at this point. The write handle is
- // set, for what it's worth.
- need_to_check = 1;
-#else
- if (is_tli)
-
-# if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
- need_to_check = (fds.revents & POLLIN) && !(fds.revents & POLLOUT);
-# else
- need_to_check = rd_handles.is_set (h) && !wr_handles.is_set (h);
-# endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
-
- else
-#if defined(AIX)
- // AIX is broken... both success and failed connect will set the
- // write handle only, so always check.
- need_to_check = 1;
-#else
-# if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
- need_to_check = (fds.revents & POLLIN);
-# else
- need_to_check = rd_handles.is_set (h);
-# endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
-#endif /* AIX */
-#endif /* ACE_WIN32 */
-
- if (need_to_check)
- {
-#if defined (SOL_SOCKET) && defined (SO_ERROR)
- int sock_err = 0;
- int sock_err_len = sizeof (sock_err);
- int sockopt_ret = ACE_OS::getsockopt (h, SOL_SOCKET, SO_ERROR,
- (char *)&sock_err, &sock_err_len);
- if (sockopt_ret < 0)
- {
- h = ACE_INVALID_HANDLE;
- }
-
- if (sock_err != 0 || known_failure)
- {
- h = ACE_INVALID_HANDLE;
- errno = sock_err;
- }
-#else
- char dummy;
-
- // The following recv() won't block provided that the
- // ACE_NONBLOCK flag has not been turned off .
- n = ACE::recv (h, &dummy, 1, MSG_PEEK);
-
- // If no data was read/peeked at, check to see if it's because
- // of a non-connected socket (and therefore an error) or there's
- // just no data yet.
- if (n <= 0)
- {
- if (n == 0)
- {
- errno = ECONNREFUSED;
- h = ACE_INVALID_HANDLE;
- }
- else if (errno != EWOULDBLOCK && errno != EAGAIN)
- h = ACE_INVALID_HANDLE;
- }
-#endif
- }
-
- // 1. The HANDLE is ready for writing and doesn't need to be checked or
- // 2. recv() returned an indication of the state of the socket - if there is
- // either data present, or a recv is legit but there's no data yet,
- // the connection was successfully established.
- return h;
-}
-
-// Wait up to <timeout> amount of time to accept a connection.
-
-int
-ACE::handle_timed_accept (ACE_HANDLE listener,
- ACE_Time_Value *timeout,
- int restart)
-{
- ACE_TRACE ("ACE::handle_timed_accept");
- // Make sure we don't bomb out on erroneous values.
- if (listener == ACE_INVALID_HANDLE)
- return -1;
-
-#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
-
- struct pollfd fds;
-
- fds.fd = listener;
- fds.events = POLLIN;
- fds.revents = 0;
-
-#else
- // Use the select() implementation rather than poll().
- ACE_Handle_Set rd_handle;
- rd_handle.set_bit (listener);
-#endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
-
- // We need a loop here if <restart> is enabled.
-
- for (;;)
- {
-#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
-
- int n = ACE_OS::poll (&fds, 1, timeout);
-
-#else
- int select_width;
-# if defined (ACE_WIN64)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- select_width = 0;
-# else
- select_width = int (listener) + 1;
-# endif /* ACE_WIN64 */
- int n = ACE_OS::select (select_width,
- rd_handle, 0, 0,
- timeout);
-#endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
-
- switch (n)
- {
- case -1:
- if (errno == EINTR && restart)
- continue;
- else
- return -1;
- /* NOTREACHED */
- case 0:
- if (timeout != 0
- && timeout->sec () == 0
- && timeout->usec () == 0)
- errno = EWOULDBLOCK;
- else
- errno = ETIMEDOUT;
- return -1;
- /* NOTREACHED */
- case 1:
- return 0;
- /* NOTREACHED */
- default:
- errno = EINVAL;
- return -1;
- /* NOTREACHED */
- }
- }
- ACE_NOTREACHED (return 0);
-}
-
-// Make the current process a UNIX daemon. This is based on Stevens
-// code from APUE.
-
-int
-ACE::daemonize (const ACE_TCHAR pathname[],
- int close_all_handles,
- const ACE_TCHAR program_name[])
-{
- ACE_TRACE ("ACE::daemonize");
-#if !defined (ACE_LACKS_FORK)
- pid_t pid = ACE_OS::fork ();
-
- if (pid == -1)
- return -1;
- else if (pid != 0)
- ACE_OS::exit (0); // Parent exits.
-
- // 1st child continues.
- ACE_OS::setsid (); // Become session leader.
-
- ACE_OS::signal (SIGHUP, SIG_IGN);
-
- pid = ACE_OS::fork (program_name);
-
- if (pid != 0)
- ACE_OS::exit (0); // First child terminates.
-
- // Second child continues.
-
- if (pathname != 0)
- // change working directory.
- ACE_OS::chdir (pathname);
-
- ACE_OS::umask (0); // clear our file mode creation mask.
-
- // Close down the I/O handles.
- if (close_all_handles)
- for (int i = ACE::max_handles () - 1; i >= 0; i--)
- ACE_OS::close (i);
-
- return 0;
-#else
- ACE_UNUSED_ARG (pathname);
- ACE_UNUSED_ARG (close_all_handles);
- ACE_UNUSED_ARG (program_name);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_LACKS_FORK */
-}
-
-pid_t
-ACE::fork (const ACE_TCHAR *program_name,
- int avoid_zombies)
-{
- if (avoid_zombies == 0)
- return ACE_OS::fork (program_name);
- else
- {
- // This algorithm is adapted from an example in the Stevens book
- // "Advanced Programming in the Unix Environment" and an item in
- // Andrew Gierth's Unix Programming FAQ. It creates an orphan
- // process that's inherited by the init process; init cleans up
- // when the orphan process terminates.
- //
- // Another way to avoid zombies is to ignore or catch the
- // SIGCHLD signal; we don't use that approach here.
-
- pid_t pid = ACE_OS::fork ();
- if (pid == 0)
- {
- // The child process forks again to create a grandchild.
- switch (ACE_OS::fork (program_name))
- {
- case 0: // grandchild returns 0.
- return 0;
- case -1: // assumes all errnos are < 256
- ACE_OS::_exit (errno);
- default: // child terminates, orphaning grandchild
- ACE_OS::_exit (0);
- }
- }
-
- // Parent process waits for child to terminate.
-#if defined (ACE_HAS_UNION_WAIT)
- union wait status;
- if (pid < 0 || ACE_OS::waitpid (pid, &(status.w_status), 0) < 0)
-#else
- ACE_exitcode status;
- if (pid < 0 || ACE_OS::waitpid (pid, &status, 0) < 0)
-#endif /* ACE_HAS_UNION_WAIT */
- return -1;
-
- // child terminated by calling exit()?
- if (WIFEXITED ((status)))
- {
- // child terminated normally?
- if (WEXITSTATUS ((status)) == 0)
- return 1;
- else
- errno = WEXITSTATUS ((status));
- }
- else
- // child didn't call exit(); perhaps it received a signal?
- errno = EINTR;
-
- return -1;
- }
-}
-
-int
-ACE::max_handles (void)
-{
- ACE_TRACE ("ACE::max_handles");
-#if defined (RLIMIT_NOFILE) && !defined (ACE_LACKS_RLIMIT)
- rlimit rl;
- int r = ACE_OS::getrlimit (RLIMIT_NOFILE, &rl);
-# if !defined (RLIM_INFINITY)
- if (r == 0)
- return rl.rlim_cur;
-#else
- if (r == 0 && rl.rlim_cur != RLIM_INFINITY)
- return rl.rlim_cur;
- // If == RLIM_INFINITY, fall through to the ACE_LACKS_RLIMIT sections
-# endif /* RLIM_INFINITY */
-#endif /* RLIMIT_NOFILE && !ACE_LACKS_RLIMIT */
-
-#if defined (_SC_OPEN_MAX)
- return ACE_OS::sysconf (_SC_OPEN_MAX);
-#elif defined (FD_SETSIZE)
- return FD_SETSIZE;
-#else
- ACE_NOTSUP_RETURN (-1);
-#endif /* _SC_OPEN_MAX */
-}
-
-// Set the number of currently open handles in the process.
-//
-// If NEW_LIMIT == -1 set the limit to the maximum allowable.
-// Otherwise, set it to be the value of NEW_LIMIT.
-
-int
-ACE::set_handle_limit (int new_limit)
-{
- ACE_TRACE ("ACE::set_handle_limit");
- int cur_limit = ACE::max_handles ();
- int max_limit = cur_limit;
-
- if (cur_limit == -1)
- return -1;
-
-#if !defined (ACE_LACKS_RLIMIT) && defined (RLIMIT_NOFILE)
- struct rlimit rl;
-
- ACE_OS::memset ((void *) &rl, 0, sizeof rl);
- int r = ACE_OS::getrlimit (RLIMIT_NOFILE, &rl);
- if (r == 0)
- max_limit = rl.rlim_max;
-#endif /* ACE_LACKS_RLIMIT */
-
- if (new_limit == -1)
- new_limit = max_limit;
-
- if (new_limit < 0)
- {
- errno = EINVAL;
- return -1;
- }
- else if (new_limit > cur_limit)
- {
-#if !defined (ACE_LACKS_RLIMIT) && defined (RLIMIT_NOFILE)
- rl.rlim_cur = new_limit;
- return ACE_OS::setrlimit (RLIMIT_NOFILE, &rl);
-#else
- // Must return EINVAL errno.
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_LACKS_RLIMIT */
- }
- else
- {
-#if !defined (ACE_LACKS_RLIMIT) && defined (RLIMIT_NOFILE)
- rl.rlim_cur = new_limit;
- return ACE_OS::setrlimit (RLIMIT_NOFILE, &rl);
-#else
- // We give a chance to platforms without RLIMIT to work.
- // Instead of ACE_NOTSUP_RETURN (0), just return 0 because
- // new_limit is <= cur_limit, so it's a no-op.
- return 0;
-#endif /* ACE_LACKS_RLIMIT */
- }
-
- // Irix complains without this return statement. DEC cxx
- // (correctly) says that it's not reachable. ACE_NOTREACHED won't
- // work here, because it handles both platforms the same.
- // IRIX does not complain anymore [7.2]
- ACE_NOTREACHED (return 0);
-}
-
-int
-ACE::map_errno (int error)
-{
- switch (error)
- {
-#if defined (ACE_WIN32)
- case WSAEWOULDBLOCK:
- return EAGAIN; // Same as UNIX errno EWOULDBLOCK.
-#endif /* ACE_WIN32 */
- }
-
- return error;
-}
-
-// Euclid's greatest common divisor algorithm.
-u_long
-ACE::gcd (u_long x, u_long y)
-{
- if (y == 0)
- {
- return x;
- }
- else
- {
- return ACE::gcd (y, x % y);
- }
-}
-
-
-// Calculates the minimum enclosing frame size for the given values.
-u_long
-ACE::minimum_frame_size (u_long period1, u_long period2)
-{
- // if one of the periods is zero, treat it as though it as
- // uninitialized and return the other period as the frame size
- if (0 == period1)
- {
- return period2;
- }
- if (0 == period2)
- {
- return period1;
- }
-
- // if neither is zero, find the greatest common divisor of the two periods
- u_long greatest_common_divisor = ACE::gcd (period1, period2);
-
- // explicitly consider cases to reduce risk of possible overflow errors
- if (greatest_common_divisor == 1)
- {
- // periods are relative primes: just multiply them together
- return period1 * period2;
- }
- else if (greatest_common_divisor == period1)
- {
- // the first period divides the second: return the second
- return period2;
- }
- else if (greatest_common_divisor == period2)
- {
- // the second period divides the first: return the first
- return period1;
- }
- else
- {
- // the current frame size and the entry's effective period
- // have a non-trivial greatest common divisor: return the
- // product of factors divided by those in their gcd.
- return (period1 * period2) / greatest_common_divisor;
- }
-}
-
-
-u_long
-ACE::is_prime (const u_long n,
- const u_long min_factor,
- const u_long max_factor)
-{
- if (n > 3)
- for (u_long factor = min_factor;
- factor <= max_factor;
- ++factor)
- if (n / factor * factor == n)
- return factor;
-
- return 0;
-}
-
-const ACE_TCHAR *
-ACE::sock_error (int error)
-{
-#if defined (ACE_WIN32)
- static ACE_TCHAR unknown_msg[64];
-
- switch (error)
- {
- case WSAVERNOTSUPPORTED:
- return ACE_LIB_TEXT ("version of WinSock not supported");
- /* NOTREACHED */
- case WSASYSNOTREADY:
- return ACE_LIB_TEXT ("WinSock not present or not responding");
- /* NOTREACHED */
- case WSAEINVAL:
- return ACE_LIB_TEXT ("app version not supported by DLL");
- /* NOTREACHED */
- case WSAHOST_NOT_FOUND:
- return ACE_LIB_TEXT ("Authoritive: Host not found");
- /* NOTREACHED */
- case WSATRY_AGAIN:
- return ACE_LIB_TEXT ("Non-authoritive: host not found or server failure");
- /* NOTREACHED */
- case WSANO_RECOVERY:
- return ACE_LIB_TEXT ("Non-recoverable: refused or not implemented");
- /* NOTREACHED */
- case WSANO_DATA:
- return ACE_LIB_TEXT ("Valid name, no data record for type");
- /* NOTREACHED */
- /*
- case WSANO_ADDRESS:
- return "Valid name, no MX record";
- */
- case WSANOTINITIALISED:
- return ACE_LIB_TEXT ("WSA Startup not initialized");
- /* NOTREACHED */
- case WSAENETDOWN:
- return ACE_LIB_TEXT ("Network subsystem failed");
- /* NOTREACHED */
- case WSAEINPROGRESS:
- return ACE_LIB_TEXT ("Blocking operation in progress");
- /* NOTREACHED */
- case WSAEINTR:
- return ACE_LIB_TEXT ("Blocking call cancelled");
- /* NOTREACHED */
- case WSAEAFNOSUPPORT:
- return ACE_LIB_TEXT ("address family not supported");
- /* NOTREACHED */
- case WSAEMFILE:
- return ACE_LIB_TEXT ("no file handles available");
- /* NOTREACHED */
- case WSAENOBUFS:
- return ACE_LIB_TEXT ("no buffer space available");
- /* NOTREACHED */
- case WSAEPROTONOSUPPORT:
- return ACE_LIB_TEXT ("specified protocol not supported");
- /* NOTREACHED */
- case WSAEPROTOTYPE:
- return ACE_LIB_TEXT ("protocol wrong type for this socket");
- /* NOTREACHED */
- case WSAESOCKTNOSUPPORT:
- return ACE_LIB_TEXT ("socket type not supported for address family");
- /* NOTREACHED */
- case WSAENOTSOCK:
- return ACE_LIB_TEXT ("handle is not a socket");
- /* NOTREACHED */
- case WSAEWOULDBLOCK:
- return ACE_LIB_TEXT ("socket marked as non-blocking and SO_LINGER set not 0");
- /* NOTREACHED */
- case WSAEADDRINUSE:
- return ACE_LIB_TEXT ("address already in use");
- /* NOTREACHED */
- case WSAECONNABORTED:
- return ACE_LIB_TEXT ("connection aborted");
- /* NOTREACHED */
- case WSAECONNRESET:
- return ACE_LIB_TEXT ("connection reset");
- /* NOTREACHED */
- case WSAENOTCONN:
- return ACE_LIB_TEXT ("not connected");
- /* NOTREACHED */
- case WSAETIMEDOUT:
- return ACE_LIB_TEXT ("connection timed out");
- /* NOTREACHED */
- case WSAECONNREFUSED:
- return ACE_LIB_TEXT ("connection refused");
- /* NOTREACHED */
- case WSAEHOSTDOWN:
- return ACE_LIB_TEXT ("host down");
- /* NOTREACHED */
- case WSAEHOSTUNREACH:
- return ACE_LIB_TEXT ("host unreachable");
- /* NOTREACHED */
- case WSAEADDRNOTAVAIL:
- return ACE_LIB_TEXT ("address not available");
- /* NOTREACHED */
- default:
- ACE_OS::sprintf (unknown_msg, ACE_LIB_TEXT ("unknown error: %d"), error);
- return unknown_msg;
- /* NOTREACHED */
- }
-#else
- ACE_UNUSED_ARG (error);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_WIN32 */
-}
-
-char *
-ACE::strndup (const char *str, size_t n)
-{
- const char *t = str;
- size_t len;
-
- // Figure out how long this string is (remember, it might not be
- // NUL-terminated).
-
- for (len = 0;
- len < n && *t++ != '\0';
- len++)
- continue;
-
- char *s;
- ACE_ALLOCATOR_RETURN (s,
- (char *) ACE_OS::malloc (len + 1),
- 0);
- return ACE_OS::strsncpy (s, str, len + 1);
-}
-
-#if defined (ACE_HAS_WCHAR)
-wchar_t *
-ACE::strndup (const wchar_t *str, size_t n)
-{
- const wchar_t *t = str;
- size_t len;
-
- // Figure out how long this string is (remember, it might not be
- // NUL-terminated).
-
- for (len = 0;
- len < n && *t++ != '\0';
- len++)
- continue;
-
- wchar_t *s;
- ACE_ALLOCATOR_RETURN (s,
- ACE_static_cast (wchar_t *,
- ACE_OS::malloc ((len + 1)
- * sizeof (wchar_t))),
- 0);
- return ACE_OS::strsncpy (s, str, len + 1);
-}
-#endif /* ACE_HAS_WCHAR */
-
-char *
-ACE::strnnew (const char *str, size_t n)
-{
- const char *t = str;
- size_t len;
-
- // Figure out how long this string is (remember, it might not be
- // NUL-terminated).
-
- for (len = 0;
- len < n && *t++ != L'\0';
- len++)
- continue;
-
- char *s;
- ACE_NEW_RETURN (s,
- char[len + 1],
- 0);
- return ACE_OS::strsncpy (s, str, len + 1);
-}
-
-#if defined (ACE_HAS_WCHAR)
-wchar_t *
-ACE::strnnew (const wchar_t *str, size_t n)
-{
- const wchar_t *t = str;
- size_t len;
-
- // Figure out how long this string is (remember, it might not be
- // NUL-terminated).
-
- for (len = 0;
- len < n && *t++ != ACE_TEXT_WIDE ('\0');
- len++)
- continue;
-
- wchar_t *s;
- ACE_NEW_RETURN (s,
- wchar_t[len + 1],
- 0);
- return ACE_OS::strsncpy (s, str, len + 1);
-}
-#endif /* ACE_HAS_WCHAR */
-
-const char *
-ACE::strend (const char *s)
-{
- while (*s++ != '\0')
- continue;
-
- return s;
-}
-
-#if defined ACE_HAS_WCHAR
-const wchar_t *
-ACE::strend (const wchar_t *s)
-{
- while (*s++ != ACE_TEXT_WIDE ('\0'))
- continue;
-
- return s;
-}
-#endif
-
-char *
-ACE::strnew (const char *s)
-{
- if (s == 0)
- return 0;
- char *t = 0;
- ACE_NEW_RETURN (t,
- char [::strlen (s) + 1],
- 0);
- if (t == 0)
- return 0;
- else
- return ACE_OS::strcpy (t, s);
-}
-
-#if defined (ACE_HAS_WCHAR)
-wchar_t *
-ACE::strnew (const wchar_t *s)
-{
- if (s == 0)
- return 0;
- wchar_t *t = 0;
- ACE_NEW_RETURN (t,
- wchar_t[ACE_OS_String::strlen (s) + 1],
- 0);
- if (t == 0)
- return 0;
- else
- return ACE_OS::strcpy (t, s);
-}
-#endif /* ACE_HAS_WCHAR */
-
-void
-ACE::strdelete (char *s)
-{
- delete [] s;
-}
-
-#if defined (ACE_HAS_WCHAR)
-void
-ACE::strdelete (wchar_t *s)
-{
- delete [] s;
-}
-#endif /* ACE_HAS_WCHAR */
diff --git a/ace/ACE.h b/ace/ACE.h
deleted file mode 100644
index 1972b3e679f..00000000000
--- a/ace/ACE.h
+++ /dev/null
@@ -1,786 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file ACE.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_ACE_H
-#define ACE_ACE_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Flag_Manip.h"
-#include "ace/Handle_Ops.h"
-#include "ace/Lib_Find.h"
-#include "ace/Init_ACE.h"
-#include "ace/Sock_Connect.h"
-
-// Forward declarations.
-class ACE_Time_Value;
-class ACE_Message_Block;
-class ACE_Handle_Set;
-
-// When log2 is defined as macro redefine it as acelog2
-#if defined (log2)
-# define acelog2 log2
-# undef log2
-#endif /* log2 */
-
-/**
- * @class ACE
- *
- * @brief Contains value added ACE methods that extend the behavior
- * of the UNIX and Win32 OS calls.
- *
- * This class consolidates all these ACE static methods in a
- * single place in order to manage the namespace better. These
- * methods are put here rather than in ACE_OS in order to
- * separate concerns.
- */
-class ACE_Export ACE : public ACE_Flag_Manip, public ACE_Handle_Ops,
- public ACE_Lib_Find, public ACE_Init_ACE,
- public ACE_Sock_Connect
-{
-
- ACE_CLASS_IS_NAMESPACE (ACE);
-public:
-
- // = ACE version information.
- /// e.g., the "5" in ACE 5.1.12.
- static u_int major_version (void);
-
- /// e.g., the "1" in ACE 5.1.12.
- static u_int minor_version (void);
-
- /// e.g., the "12" in ACE 5.1.12.
- /// Returns 0 for "stable" (non-beta) releases.
- static u_int beta_version (void);
-
- // = C++ compiler version information.
- /// E.g., the "SunPro C++" in SunPro C++ 4.32.0
- static const ACE_TCHAR * compiler_name (void);
-
- /// E.g., the "4" in SunPro C++ 4.32.0
- static u_int compiler_major_version (void);
-
- /// E.g., the "32" in SunPro C++ 4.32.0
- static u_int compiler_minor_version (void);
-
- /// E.g., the "0" in SunPro C++ 4.32.0
- static u_int compiler_beta_version (void);
-
- /// Check if error indicates the process being out of handles (file
- /// descriptors).
- static int out_of_handles (int error);
-
- /**
- * @name I/O operations
- *
- * Notes on common parameters:
- *
- * <handle> is the connected endpoint that will be used for I/O.
- *
- * <buf> is the buffer to write from or receive into.
- *
- * <len> is the number of bytes to transfer.
- *
- * The <timeout> parameter in the following methods indicates how
- * long to blocking trying to transfer data. If <timeout> == 0,
- * then the call behaves as a normal send/recv call, i.e., for
- * blocking sockets, the call will block until action is possible;
- * for non-blocking sockets, EWOULDBLOCK will be returned if no
- * action is immediately possible.
- *
- * If <timeout> != 0, the call will wait until the relative time
- * specified in *<timeout> elapses.
- *
- * The "_n()" I/O methods keep looping until all the data has been
- * transferred. These methods also work for sockets in non-blocking
- * mode i.e., they keep looping on EWOULDBLOCK. <timeout> is used
- * to make sure we keep making progress, i.e., the same timeout
- * value is used for every I/O operation in the loop and the timeout
- * is not counted down.
- *
- * The return values for the "*_n()" methods match the return values
- * from the non "_n()" methods and are specified as follows:
- *
- * - On complete transfer, the number of bytes transferred is returned.
- * - On timeout, -1 is returned, errno == ETIME.
- * - On error, -1 is returned, errno is set to appropriate error.
- * - On EOF, 0 is returned, errno is irrelevant.
- *
- * On partial transfers, i.e., if any data is transferred before
- * timeout/error/EOF, <bytes_transferred> will contain the number of
- * bytes transferred.
- *
- * Methods with <iovec> parameter are I/O vector variants of the I/O
- * operations.
- *
- * Methods with the extra <flags> argument will always result in
- * <send> getting called. Methods without the extra <flags> argument
- * will result in <send> getting called on Win32 platforms, and
- * <write> getting called on non-Win32 platforms.
- */
- //@{
- static ssize_t recv (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout = 0);
-
-#if defined (ACE_HAS_TLI)
-
- static ssize_t t_rcv (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int *flags,
- const ACE_Time_Value *timeout = 0);
-
-#endif /* ACE_HAS_TLI */
-
- static ssize_t recv (ACE_HANDLE handle,
- void *buf,
- size_t len,
- const ACE_Time_Value *timeout = 0);
-
- static ssize_t recvmsg (ACE_HANDLE handle,
- struct msghdr *msg,
- int flags,
- const ACE_Time_Value *timeout = 0);
-
- static ssize_t recvfrom (ACE_HANDLE handle,
- char *buf,
- int len,
- int flags,
- struct sockaddr *addr,
- int *addrlen,
- const ACE_Time_Value *timeout = 0);
-
- static ssize_t recv_n (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0);
-
-#if defined (ACE_HAS_TLI)
-
- static ssize_t t_rcv_n (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int *flags,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0);
-
-#endif /* ACE_HAS_TLI */
-
- static ssize_t recv_n (ACE_HANDLE handle,
- void *buf,
- size_t len,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0);
-
- /// Receive into a variable number of pieces.
- /**
- * Accepts a variable, caller-specified, number of pointer/length
- * pairs. Arguments following @a n are char *, size_t pairs.
- *
- * @param handle The I/O handle to receive on
- * @param n The total number of char *, size_t pairs following @a n.
- *
- * @return -1 on error, else total number of bytes received.
- */
- static ssize_t recv (ACE_HANDLE handle, size_t n, ...);
-
- static ssize_t recvv (ACE_HANDLE handle,
- iovec *iov,
- int iovcnt,
- const ACE_Time_Value *timeout = 0);
-
- static ssize_t recvv_n (ACE_HANDLE handle,
- iovec *iov,
- int iovcnt,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0);
-
- static ssize_t recv_n (ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0);
-
- static ssize_t send (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout = 0);
-
-#if defined (ACE_HAS_TLI)
-
- static ssize_t t_snd (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout = 0);
-
-#endif /* ACE_HAS_TLI */
-
- static ssize_t send (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- const ACE_Time_Value *timeout = 0);
-
- static ssize_t sendmsg (ACE_HANDLE handle,
- const struct msghdr *msg,
- int flags,
- const ACE_Time_Value *timeout = 0);
-
- static ssize_t sendto (ACE_HANDLE handle,
- const char *buf,
- int len,
- int flags,
- const struct sockaddr *addr,
- int addrlen,
- const ACE_Time_Value *timeout = 0);
-
- static ssize_t send_n (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0);
-
-#if defined (ACE_HAS_TLI)
-
- static ssize_t t_snd_n (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0);
-
-#endif /* ACE_HAS_TLI */
-
- static ssize_t send_n (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0);
-
- /// Varargs variant.
- static ssize_t send (ACE_HANDLE handle, size_t n, ...);
-
- static ssize_t sendv (ACE_HANDLE handle,
- const iovec *iov,
- int iovcnt,
- const ACE_Time_Value *timeout = 0);
-
- static ssize_t sendv_n (ACE_HANDLE handle,
- const iovec *iov,
- int iovcnt,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0);
-
- /// Send all the <message_block>s chained through their <next> and
- /// <cont> pointers. This call uses the underlying OS gather-write
- /// operation to reduce the domain-crossing penalty.
- static ssize_t send_n (ACE_HANDLE handle,
- const ACE_Message_Block *message_block,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0);
-
- // = File system I/O functions (these don't support timeouts).
-
- static ssize_t read_n (ACE_HANDLE handle,
- void *buf,
- size_t len,
- size_t *bytes_transferred = 0);
-
- static ssize_t write_n (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- size_t *bytes_transferred = 0);
-
- /// Write all the <message_block>s chained through their <next> and
- /// <cont> pointers. This call uses the underlying OS gather-write
- /// operation to reduce the domain-crossing penalty.
- static ssize_t write_n (ACE_HANDLE handle,
- const ACE_Message_Block *message_block,
- size_t *bytes_transferred = 0);
-
- static ssize_t readv_n (ACE_HANDLE handle,
- iovec *iov,
- int iovcnt,
- size_t *bytes_transferred = 0);
-
- static ssize_t writev_n (ACE_HANDLE handle,
- const iovec *iov,
- int iovcnt,
- size_t *bytes_transferred = 0);
- //@}
-
- /**
- * Wait up to <timeout> amount of time to passively establish a
- * connection. This method doesn't perform the <accept>, it just
- * does the timed wait...
- */
- static int handle_timed_accept (ACE_HANDLE listener,
- ACE_Time_Value *timeout,
- int restart);
-
- /**
- * Wait up to <timeout> amount of time to complete an actively
- * established non-blocking connection. If <is_tli> is non-0 then
- * we are being called by a TLI wrapper (which behaves slightly
- * differently from a socket wrapper).
- */
- static ACE_HANDLE handle_timed_complete (ACE_HANDLE listener,
- const ACE_Time_Value *timeout,
- int is_tli = 0);
-
- /**
- * Reset the limit on the number of open handles. If <new_limit> ==
- * -1 set the limit to the maximum allowable. Otherwise, set it to
- * be the value of <new_limit>.
- */
- static int set_handle_limit (int new_limit = -1);
-
- /**
- * Returns the maximum number of open handles currently permitted in
- * this process. This maximum may be extended using
- * <ACE::set_handle_limit>.
- */
- static int max_handles (void);
-
- // = String functions
-#if !defined (ACE_HAS_WINCE)
- /**
- * Return a dynamically allocated duplicate of <str>, substituting
- * the environment variable if <str[0] == '$'>. Note that the
- * pointer is allocated with <ACE_OS::malloc> and must be freed by
- * <ACE_OS::free>.
- */
- static ACE_TCHAR *strenvdup (const ACE_TCHAR *str);
-#endif /* ACE_HAS_WINCE */
-
- /// Returns a pointer to the "end" of the string, i.e., the character
- /// past the '\0'.
- static const char *strend (const char *s);
-
- /// This method is just like <strdup>, except that it uses <operator
- /// new> rather than <malloc>. If <s> is NULL returns NULL rather than
- /// segfaulting...
- static char *strnew (const char *s);
-
- /// Delete the memory allocated by <strnew>.
- static void strdelete (char *s);
-
- /// Create a fresh new copy of <str>, up to <n> chars long. Uses
- /// <ACE_OS::malloc> to allocate the new string.
- static char *strndup (const char *str, size_t n);
-
- /// Create a fresh new copy of <str>, up to <n> chars long. Uses
- /// <ACE_OS::malloc> to allocate the new string.
- static char *strnnew (const char *str, size_t n);
-
-#if defined (ACE_HAS_WCHAR)
- static const wchar_t *strend (const wchar_t *s);
-
- static wchar_t *strnew (const wchar_t *s);
-
- static void strdelete (wchar_t *s);
-
- static wchar_t *strndup (const wchar_t *str, size_t n);
-
- static wchar_t *strnnew (const wchar_t *str, size_t n);
-
-#endif /* ACE_HAS_WCHAR */
-
- /**
- * On Windows, determines if a specified pathname ends with ".exe"
- * (not case sensitive). If on Windows and there is no ".exe" suffix,
- * a new ACE_TCHAR array is allocated and a copy of @c pathname with
- * the ".exe" suffix is copied into it. In this case, the caller is
- * responsible for calling delete [] on the returned pointer.
- *
- * @param pathname The name to check for a proper suffix.
- *
- * @retval @c pathname if there is a proper suffix for Windows. This is
- * always the return value for non-Windows platforms.
- * @retval If a suffix needs to be added, returns a pointer to new[]
- * allocated memory containing the original @c pathname plus
- * a ".exe" suffix. The caller is responsible for freeing the
- * memory using delete [].
- */
- static const ACE_TCHAR *execname (const ACE_TCHAR *pathname);
-
- /**
- * Returns the "basename" of a <pathname> separated by <delim>. For
- * instance, the basename of "/tmp/foo.cpp" is "foo.cpp" when
- * <delim> is '/'.
- */
- static const ACE_TCHAR *basename (const ACE_TCHAR *pathname,
- ACE_TCHAR delim =
- ACE_DIRECTORY_SEPARATOR_CHAR);
-
- /**
- * Returns the "dirname" of a <pathname>. For instance, the dirname
- * of "/tmp/foo.cpp" is "/tmp" when <delim> is '/'. If <pathname>
- * has no <delim> ".\0" is returned. This method does not modify
- * <pathname> and is not reentrant.
- */
- static const ACE_TCHAR *dirname (const ACE_TCHAR *pathname,
- ACE_TCHAR delim = ACE_DIRECTORY_SEPARATOR_CHAR);
-
- /**
- * Returns the current timestamp in the form
- * "hour:minute:second:microsecond." The month, day, and year are
- * also stored in the beginning of the <date_and_time> array, which
- * is a user-supplied array of size <time_len> <ACE_TCHAR>s. Returns
- * 0 if unsuccessful, else returns pointer to beginning of the
- * "time" portion of <date_and_time>. If
- * <return_pointer_to_first_digit> is 0 then return a pointer to the
- * space before the time, else return a pointer to the beginning of
- * the time portion.
- */
- static ACE_TCHAR *timestamp (ACE_TCHAR date_and_time[],
- int time_len,
- int return_pointer_to_first_digit = 0);
-
- /**
- * if <avoid_zombies> == 0 call <ACE_OS::fork> directly, else create
- * an orphan process that's inherited by the init process; init
- * cleans up when the orphan process terminates so we don't create
- * zombies.
- */
- static pid_t fork (const ACE_TCHAR *program_name = ACE_LIB_TEXT ("<unknown>"),
- int avoid_zombies = 0);
-
- /**
- * Become a daemon process using the algorithm in Richard Stevens
- * "Advanced Programming in the UNIX Environment." If
- * <close_all_handles> is non-zero then all open file handles are
- * closed.
- */
- static int daemonize (const ACE_TCHAR pathname[] = ACE_LIB_TEXT ("/"),
- int close_all_handles = ACE_DEFAULT_CLOSE_ALL_HANDLES,
- const ACE_TCHAR program_name[] = ACE_LIB_TEXT ("<unknown>"));
-
- // = Miscelleous functions.
- /// Rounds the request to a multiple of the page size.
- static size_t round_to_pagesize (off_t length);
-
- /// Rounds the request to a multiple of the allocation granularity.
- static size_t round_to_allocation_granularity (off_t len);
-
- // @@ UNICODE what about buffer?
- /// Format buffer into printable format. This is useful for
- /// debugging.
- static size_t format_hexdump (const char *buffer, size_t size,
- ACE_TCHAR *obuf, size_t obuf_sz);
-
- /// Computes the hash value of <str> using the "Hash PJW" routine.
- static u_long hash_pjw (const char *str);
-
- /// Computes the hash value of <str> using the "Hash PJW" routine.
- static u_long hash_pjw (const char *str, size_t len);
-
-#if defined (ACE_HAS_WCHAR)
- /// Computes the hash value of <str> using the "Hash PJW" routine.
- static u_long hash_pjw (const wchar_t *str);
-
- /// Computes the hash value of <str> using the "Hash PJW" routine.
- static u_long hash_pjw (const wchar_t *str, size_t len);
-#endif /* ACE_HAS_WCHAR */
-
- /// Computes the ISO 8802-3 standard 32 bits CRC for the string
- /// (not for a file).
- static u_long crc32 (const char *str);
-
- /// Computes the ISO 8802-3 standard 32 bits CRC for the given
- /// buffer (the length is included in the CRC).
- static u_long crc32 (const char *buf, ACE_UINT32 len);
-
- /// Computes the ISO 8802-3 standard 32 bits CRC for the
- /// @ len iovec buffers.
- static u_long crc32 (iovec *iov, int len);
-
- /// Euclid's greatest common divisor algorithm.
- static u_long gcd (u_long x, u_long y);
-
- /// Calculates the minimum enclosing frame size for the given values.
- static u_long minimum_frame_size (u_long period1, u_long period2);
-
- /**
- * Function that can burn up noticeable CPU time: brute-force
- * determination of whether number "n" is prime. Returns 0 if
- * it is prime, or the smallest factor if it is not prime. min_factor
- * and max_factor can be used to partition the work among threads.
- * For just one thread, typical values are 2 and n/2.
- */
- static u_long is_prime (const u_long n,
- const u_long min_factor,
- const u_long max_factor);
-
- /// Map troublesome win32 errno values to values that standard C
- /// strerr function understands. Thank you Microsoft.
- static int map_errno (int error);
-
- /// Returns a string containing the error message corresponding to a
- /// WinSock error. This works around an omission in the Win32 API...
- static const ACE_TCHAR *sock_error (int error);
-
- /**
- * Checks if process with <pid> is still alive. Returns 1 if it is
- * still alive, 0 if it isn't alive, and -1 if something weird
- * happened.
- */
- static int process_active (pid_t pid);
-
- /**
- * Terminate the process abruptly with id <pid>. On Win32 platforms
- * this uses <TerminateProcess> and on POSIX platforms is uses
- * <kill> with the -9 (SIGKILL) signal, which cannot be caught or
- * ignored. Note that this call is potentially dangerous to use
- * since the process being terminated may not have a chance to
- * cleanup before it shuts down.
- */
- static int terminate_process (pid_t pid);
-
- /**
- * This method uses process id and object pointer to come up with a
- * machine wide unique name. The process ID will provide uniqueness
- * between processes on the same machine. The "this" pointer of the
- * <object> will provide uniqueness between other "live" objects in
- * the same process. The uniqueness of this name is therefore only
- * valid for the life of <object>.
- */
- static void unique_name (const void *object,
- ACE_TCHAR *name,
- size_t length);
-
- /// Computes the base 2 logarithm of <num>.
- static u_long log2 (u_long num);
-
- /// Hex conversion utility.
- static ACE_TCHAR nibble2hex (u_int n);
-
- /// Convert a hex character to its byte representation.
- static u_char hex2byte (ACE_TCHAR c);
-
- // = Set/get the debug level.
- static char debug (void);
- static void debug (char d);
-
- /// Wrapper facade for <select> that uses <ACE_Handle_Set>s.
- static int select (int width,
- ACE_Handle_Set *readfds,
- ACE_Handle_Set *writefds = 0,
- ACE_Handle_Set *exceptfds = 0,
- const ACE_Time_Value *timeout = 0);
-
- /// Wrapper facade for the most common use of <select> that uses
- /// <ACE_Handle_Set>s.
- static int select (int width,
- ACE_Handle_Set &readfds,
- const ACE_Time_Value *timeout = 0);
-
- /// Timed wait for handle to get read ready.
- static int handle_read_ready (ACE_HANDLE handle,
- const ACE_Time_Value *timeout);
-
- /// Timed wait for handle to get write ready.
- static int handle_write_ready (ACE_HANDLE handle,
- const ACE_Time_Value *timeout);
-
- /// Timed wait for handle to get exception ready.
- static int handle_exception_ready (ACE_HANDLE handle,
- const ACE_Time_Value *timeout);
-
- /// Timed wait for handle to get read, write, or exception ready.
- static int handle_ready (ACE_HANDLE handle,
- const ACE_Time_Value *timeout,
- int read_ready,
- int write_ready,
- int exception_ready);
-
- /// Wait for <timeout> before proceeding to a <recv> operation.
- /// <val> keeps track of whether we're in non-blocking mode or not.
- static int enter_recv_timedwait (ACE_HANDLE handle,
- const ACE_Time_Value *timeout,
- int &val);
-
- /// Wait for <timeout> before proceeding to a <send> operation.
- /// <val> keeps track of whether we're in non-blocking mode or not.
- static int enter_send_timedwait (ACE_HANDLE handle,
- const ACE_Time_Value* timeout,
- int &val);
-
- /// This makes sure that <handle> is set into non-blocking mode.
- /// <val> keeps track of whether were in non-blocking mode or not.
- static void record_and_set_non_blocking_mode (ACE_HANDLE handle,
- int &val);
-
- /// Cleanup after a timed operation, restore the appropriate
- /// non-blocking status of <handle>.
- static void restore_non_blocking_mode (ACE_HANDLE handle,
- int val);
-
-private:
-
- //
- // = Recv_n helpers
- //
-
- static ssize_t recv_i (ACE_HANDLE handle,
- void *buf,
- size_t len);
-
- static ssize_t recv_n_i (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int flags,
- size_t *bytes_transferred);
-
- static ssize_t recv_n_i (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred);
-
-#if defined (ACE_HAS_TLI)
-
- static ssize_t t_rcv_n_i (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int *flags,
- size_t *bytes_transferred);
-
- static ssize_t t_rcv_n_i (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int *flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred);
-
-#endif /* ACE_HAS_TLI */
-
- static ssize_t recv_n_i (ACE_HANDLE handle,
- void *buf,
- size_t len,
- size_t *bytes_transferred);
-
- static ssize_t recv_n_i (ACE_HANDLE handle,
- void *buf,
- size_t len,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred);
-
- static ssize_t recvv_n_i (ACE_HANDLE handle,
- iovec *iov,
- int iovcnt,
- size_t *bytes_transferred);
-
- static ssize_t recvv_n_i (ACE_HANDLE handle,
- iovec *iov,
- int iovcnt,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred);
-
- //
- // = Send_n helpers
- //
-
- static ssize_t send_i (ACE_HANDLE handle,
- const void *buf,
- size_t len);
-
- static ssize_t send_n_i (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- size_t *bytes_transferred);
-
- static ssize_t send_n_i (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred);
-
-#if defined (ACE_HAS_TLI)
-
- static ssize_t t_snd_n_i (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- size_t *bytes_transferred);
-
- static ssize_t t_snd_n_i (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred);
-
-#endif /* ACE_HAS_TLI */
-
- static ssize_t send_n_i (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- size_t *bytes_transferred);
-
- static ssize_t send_n_i (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred);
-
- static ssize_t sendv_n_i (ACE_HANDLE handle,
- const iovec *iov,
- int iovcnt,
- size_t *bytes_transferred);
-
- static ssize_t sendv_n_i (ACE_HANDLE handle,
- const iovec *iov,
- int iovcnt,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred);
-
- /// Size of a VM page.
- static size_t pagesize_;
-
- /// Size of allocation granularity.
- static size_t allocation_granularity_;
-
- /// CRC table.
- static u_long crc_table_[];
-
- /// Hex characters.
- static const ACE_TCHAR hex_chars_[];
-
- /// Are we debugging ACE?
- static char debug_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/ACE.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#if defined (acelog2)
-# define log2 acelog2
-#endif /* acelog2 */
-
-#include "ace/post.h"
-#endif /* ACE_ACE_H */
diff --git a/ace/ACE.i b/ace/ACE.i
deleted file mode 100644
index 189aa5d437d..00000000000
--- a/ace/ACE.i
+++ /dev/null
@@ -1,312 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Wrappers for methods that have been moved to ACE_OS.
-
-ASYS_INLINE ssize_t
-ACE::read_n (ACE_HANDLE handle,
- void *buf,
- size_t len,
- size_t *bytes_transferred)
-{
- return ACE_OS::read_n (handle,
- buf,
- len,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE::write_n (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- size_t *bytes_transferred)
-{
- return ACE_OS::write_n (handle,
- buf,
- len,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE::recv_n (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred)
-{
- if (timeout == 0)
- return ACE::recv_n_i (handle,
- buf,
- len,
- flags,
- bytes_transferred);
- else
- return ACE::recv_n_i (handle,
- buf,
- len,
- flags,
- timeout,
- bytes_transferred);
-}
-
-#if defined (ACE_HAS_TLI)
-
-ASYS_INLINE ssize_t
-ACE::t_rcv_n (ACE_HANDLE handle,
- void *buf,
- size_t len,
- int *flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred)
-{
- if (timeout == 0)
- return ACE::t_rcv_n_i (handle,
- buf,
- len,
- flags,
- bytes_transferred);
- else
- return ACE::t_rcv_n_i (handle,
- buf,
- len,
- flags,
- timeout,
- bytes_transferred);
-}
-
-#endif /* ACE_HAS_TLI */
-
-ASYS_INLINE ssize_t
-ACE::recv_n (ACE_HANDLE handle,
- void *buf,
- size_t len,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred)
-{
- if (timeout == 0)
- return ACE::recv_n_i (handle,
- buf,
- len,
- bytes_transferred);
- else
- return ACE::recv_n_i (handle,
- buf,
- len,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE::recvv_n (ACE_HANDLE handle,
- iovec *iov,
- int iovcnt,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred)
-{
- if (timeout == 0)
- return ACE::recvv_n_i (handle,
- iov,
- iovcnt,
- bytes_transferred);
- else
- return ACE::recvv_n_i (handle,
- iov,
- iovcnt,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE::send_n (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred)
-{
- if (timeout == 0)
- return ACE::send_n_i (handle,
- buf,
- len,
- flags,
- bytes_transferred);
- else
- return ACE::send_n_i (handle,
- buf,
- len,
- flags,
- timeout,
- bytes_transferred);
-}
-
-#if defined (ACE_HAS_TLI)
-
-ASYS_INLINE ssize_t
-ACE::t_snd_n (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred)
-{
- if (timeout == 0)
- return ACE::t_snd_n_i (handle,
- buf,
- len,
- flags,
- bytes_transferred);
- else
- return ACE::t_snd_n_i (handle,
- buf,
- len,
- flags,
- timeout,
- bytes_transferred);
-}
-
-#endif /* ACE_HAS_TLI */
-
-ASYS_INLINE ssize_t
-ACE::send_n (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred)
-{
- if (timeout == 0)
- return ACE::send_n_i (handle,
- buf,
- len,
- bytes_transferred);
- else
- return ACE::send_n_i (handle,
- buf,
- len,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE::sendv_n (ACE_HANDLE handle,
- const iovec *iov,
- int iovcnt,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred)
-{
- if (timeout == 0)
- return ACE::sendv_n_i (handle,
- iov,
- iovcnt,
- bytes_transferred);
- else
- return ACE::sendv_n_i (handle,
- iov,
- iovcnt,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE::send_i (ACE_HANDLE handle, const void *buf, size_t len)
-{
-#if defined (ACE_WIN32) || defined (ACE_PSOS) || defined (HPUX)
- return ACE_OS::send (handle, (const char *) buf, len);
-#else
- return ACE_OS::write (handle, (const char *) buf, len);
-#endif /* ACE_WIN32 */
-}
-
-ASYS_INLINE ssize_t
-ACE::recv_i (ACE_HANDLE handle, void *buf, size_t len)
-{
-#if defined (ACE_WIN32) || defined (ACE_PSOS)
- return ACE_OS::recv (handle, (char *) buf, len);
-#else
- return ACE_OS::read (handle, (char *) buf, len);
-#endif /* ACE_WIN32 */
-}
-
-ASYS_INLINE int
-ACE::handle_read_ready (ACE_HANDLE handle,
- const ACE_Time_Value *timeout)
-{
- return ACE::handle_ready (handle,
- timeout,
- 1,
- 0,
- 0);
-}
-
-ASYS_INLINE int
-ACE::handle_write_ready (ACE_HANDLE handle,
- const ACE_Time_Value *timeout)
-{
- return ACE::handle_ready (handle,
- timeout,
- 0,
- 1,
- 0);
-}
-
-ASYS_INLINE int
-ACE::handle_exception_ready (ACE_HANDLE handle,
- const ACE_Time_Value *timeout)
-{
- return ACE::handle_ready (handle,
- timeout,
- 0,
- 0,
- 1);
-}
-
-ASYS_INLINE void
-ACE::unique_name (const void *object,
- ACE_TCHAR *name,
- size_t length)
-{
- ACE_OS::unique_name (object, name, length);
-}
-
-ASYS_INLINE u_long
-ACE::log2 (u_long num)
-{
- u_long log = 0;
-
- for (;
- num > 0;
- log++)
- num >>= 1;
-
- return log;
-}
-
-ASYS_INLINE ACE_TCHAR
-ACE::nibble2hex (u_int n)
-{
- // @@ UNICODE does this work?
- return ACE::hex_chars_[n & 0x0f];
-}
-
-ASYS_INLINE u_char
-ACE::hex2byte (ACE_TCHAR c)
-{
- if (isdigit (c))
- return (u_char) (c - ACE_LIB_TEXT ('0'));
- else if (islower (c))
- return (u_char) (10 + c - ACE_LIB_TEXT ('a'));
- else
- return (u_char) (10 + c - ACE_LIB_TEXT ('A'));
-}
-
-ASYS_INLINE char
-ACE::debug (void)
-{
- return ACE::debug_;
-}
-
-ASYS_INLINE void
-ACE::debug (char c)
-{
- ACE::debug_ = c;
-}
diff --git a/ace/ACE_export.h b/ace/ACE_export.h
deleted file mode 100644
index 9783eab8fc9..00000000000
--- a/ace/ACE_export.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// -*- C++ -*-
-// $Id$
-// Definition for Win32 Export directives.
-// This file is generated automatically by
-// generate_export_file.pl
-// ------------------------------
-#ifndef ACE_EXPORT_H
-#define ACE_EXPORT_H
-
-#include "ace/config-all.h"
-
-#if defined (ACE_AS_STATIC_LIBS)
-# if !defined (ACE_HAS_DLL)
-# define ACE_HAS_DLL 0
-# endif /* ! ACE_HAS_DLL */
-#else
-# if !defined (ACE_HAS_DLL)
-# define ACE_HAS_DLL 1
-# endif /* ! ACE_HAS_DLL */
-#endif /* ACE_AS_STATIC_LIB */
-
-#if defined (ACE_HAS_DLL)
-# if (ACE_HAS_DLL == 1)
-# if defined (ACE_BUILD_DLL)
-# define ACE_Export ACE_Proper_Export_Flag
-# define ACE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
-# define ACE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# else
-# define ACE_Export ACE_Proper_Import_Flag
-# define ACE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
-# define ACE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ACE_BUILD_DLL */
-# else
-# define ACE_Export
-# define ACE_SINGLETON_DECLARATION(T)
-# define ACE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ! ACE_HAS_DLL == 1 */
-#else
-# define ACE_Export
-# define ACE_SINGLETON_DECLARATION(T)
-# define ACE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-#endif /* ACE_HAS_DLL */
-
-#endif /* ACE_EXPORT_H */
-
-// End of auto generated file.
diff --git a/ace/ARGV.cpp b/ace/ARGV.cpp
deleted file mode 100644
index ccf88313461..00000000000
--- a/ace/ARGV.cpp
+++ /dev/null
@@ -1,345 +0,0 @@
-// ARGV.cpp
-// $Id$
-
-// Transforms a string BUF into an ARGV-style vector of strings.
-
-#include "ace/ARGV.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/ARGV.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, ARGV, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE (ACE_ARGV)
-
-void
-ACE_ARGV::dump (void) const
-{
- ACE_TRACE ("ACE_ARGV::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("argc_ = %d"), this->argc_));
-
- ACE_ARGV *this_obj = ACE_const_cast (ACE_ARGV *, this);
-
- for (int i = 0; i < this->argc_; i++)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\nargv_[%i] = %s"),
- i,
- this_obj->argv ()[i]));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nbuf = %s\n"), this->buf_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Creates this->argv_ out of this->buf_. New memory is allocated for
-// each element of the array. This is used by the array-to-string
-// style constructor and for creating this->argv_ when in iterative
-// mode.
-
-int
-ACE_ARGV::string_to_argv (void)
-{
- ACE_TRACE ("ACE_ARGV::string_to_argv");
-
- return ACE_OS::string_to_argv (this->buf_,
- this->argc_,
- this->argv_,
- this->substitute_env_args_);
-}
-
-int
-ACE_ARGV::argv_to_string (ACE_TCHAR **argv, ACE_TCHAR *&buf)
-{
- return ACE_OS::argv_to_string (argv, buf);
-}
-
-ACE_ARGV::ACE_ARGV (const ACE_TCHAR buf[],
- int substitute_env_args)
- : substitute_env_args_ (substitute_env_args),
- state_ (TO_PTR_ARRAY),
- argc_ (0),
- argv_ (0),
- buf_ (0),
- length_ (0),
- queue_ ()
-{
- ACE_TRACE ("ACE_ARGV::ACE_ARGV ACE_TCHAR[] to ACE_TCHAR *[]");
-
- if (buf == 0 || buf[0] == 0)
- return;
-
- // Make an internal copy of the string.
- ACE_NEW (this->buf_,
- ACE_TCHAR[ACE_OS::strlen (buf) + 1]);
- ACE_OS::strcpy (this->buf_, buf);
-
- // Create this->argv_.
- if (this->string_to_argv () == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("string_to_argv")));
-}
-
-ACE_ARGV::ACE_ARGV (ACE_TCHAR *argv[],
- int substitute_env_args)
- : substitute_env_args_ (substitute_env_args),
- state_ (TO_STRING),
- argc_ (0),
- argv_ (0),
- buf_ (0),
- length_ (0),
- queue_ ()
-{
- ACE_TRACE ("ACE_ARGV::ACE_ARGV ACE_TCHAR*[] to ACE_TCHAR[]");
-
- if (argv == 0 || argv[0] == 0)
- return;
-
- size_t buf_len = 0;
-
- // Determine the length of the buffer.
-
- for (int i = 0; argv[i] != 0; i++)
- {
-#if !defined (ACE_LACKS_ENV)
- ACE_TCHAR *temp = 0;
-
- // Account for environment variables.
- if (this->substitute_env_args_
- && (argv[i][0] == '$'
- && (temp = ACE_OS::getenv (&argv[i][1])) != 0))
- buf_len += ACE_OS::strlen (temp);
- else
-#endif /* !ACE_LACKS_ENV */
- buf_len += ACE_OS::strlen (argv[i]);
-
- // Add one for the extra space between each string.
- buf_len++;
- }
-
- // Step through all argv params and copy each one into buf; separate
- // each param with white space.
-
- ACE_NEW (this->buf_,
- ACE_TCHAR[buf_len + 1]);
-
- ACE_TCHAR *end = this->buf_;
- int j;
-
- for (j = 0; argv[j] != 0; j++)
- {
-#if !defined (ACE_LACKS_ENV)
- ACE_TCHAR *temp = 0;
-
- // Account for environment variables.
- if (this->substitute_env_args_
- && (argv[j][0] == '$'
- && (temp = ACE_OS::getenv (&argv[j][1])) != 0))
- end = ACE_OS::strecpy (end, temp);
- else
-#endif /* ACE_LACKS_ENV */
- end = ACE_OS::strecpy (end, argv[j]);
-
- // Replace the null char that strecpy copies with white space as
- // a separator.
- *(end - 1) = ACE_LIB_TEXT (' ');
- }
-
- // Remember how many arguments there are
- this->argc_ = j;
-
- // Null terminate the string.
- *end = '\0';
-}
-
-ACE_ARGV::ACE_ARGV (ACE_TCHAR *first_argv[],
- ACE_TCHAR *second_argv[],
- int substitute_env_args)
- : substitute_env_args_ (substitute_env_args),
- state_ (TO_STRING),
- argc_ (0),
- argv_ (0),
- buf_ (0),
- length_ (0),
- queue_ ()
-{
- ACE_TRACE ("ACE_ARGV::ACE_ARGV ACE_TCHAR*[] + ACE_TCHAR *[] to ACE_TCHAR[]");
-
- int first_argc;
- int second_argc;
-
- ACE_TCHAR *first_buf;
- ACE_TCHAR *second_buf;
-
- // convert the first argv to a string
- first_argc = this->argv_to_string (first_argv,first_buf);
-
- // convert the second argv to a string
- second_argc = this->argv_to_string (second_argv,second_buf);
-
- // Add the number of arguments in both the argvs.
- this->argc_ = first_argc + second_argc;
-
- size_t buf_len =
- ACE_OS::strlen (first_buf) + ACE_OS::strlen (second_buf) + 1;
-
- // Allocate memory to the lenght of the combined argv string.
- ACE_NEW (this->buf_,
- ACE_TCHAR[buf_len + 1]);
-
- // copy the first argv string to the buffer
- ACE_OS::strcpy (this->buf_, first_buf);
-
- // concatenate the second argv string to the buffer
- ACE_OS::strcat (this->buf_, second_buf);
-
- // Delete the first and second buffers
-
- delete [] first_buf;
-
- delete [] second_buf;
-}
-
-
-ACE_ARGV::ACE_ARGV (int substitute_env_args)
- : substitute_env_args_ (substitute_env_args),
- state_ (ITERATIVE),
- argc_ (0),
- argv_ (0),
- buf_ (0),
- length_ (0),
- queue_ ()
-{
- ACE_TRACE ("ACE_ARGV::ACE_ARGV Iterative");
-
- // Nothing to do yet -- the user puts in arguments via add ()
-}
-
-int
-ACE_ARGV::add (const ACE_TCHAR *next_arg)
-{
- // Only allow this to work in the "iterative" verion -- the
- // ACE_ARGVs created with the one argument constructor.
- if (this->state_ != ITERATIVE)
- {
- errno = EINVAL;
- return -1;
- }
-
- // Put the new argument at the end of the queue.
- if (this->queue_.enqueue_tail ((ACE_TCHAR *) next_arg) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Can't add more to ARGV queue")),
- -1);
-
- this->length_ += ACE_OS::strlen (next_arg);
-
- this->argc_++;
-
- // Wipe argv_ and buf_ away so that they will be recreated if the
- // user calls argv () or buf ().
- if (this->argv_ != 0)
- {
- for (int i = 0; this->argv_[i] != 0; i++)
- ACE_OS::free ((void *) this->argv_[i]);
-
- delete [] this->argv_;
- this->argv_ = 0;
- }
-
- delete [] this->buf_;
- this->buf_ = 0;
-
- return 0;
-}
-
-int
-ACE_ARGV::add (ACE_TCHAR *argv[])
-{
- for (int i = 0; argv[i] != 0; i++)
- if (this->add (argv[i]) == -1)
- return -1;
-
- return 0;
-}
-
-// Free up argv_ and buf_
-
-ACE_ARGV::~ACE_ARGV (void)
-{
- ACE_TRACE ("ACE_ARGV::~ACE_ARGV");
-
- if (this->argv_ != 0)
- for (int i = 0; this->argv_[i] != 0; i++)
- ACE_OS::free ((void *) this->argv_[i]);
-
- delete [] this->argv_;
- delete [] this->buf_;
-}
-
-// Create buf_ out of the queue_. This is only used in the
-// "iterative" mode.
-
-int
-ACE_ARGV::create_buf_from_queue (void)
-{
- ACE_TRACE ("ACE_ARGV::create_buf_from_queue");
-
- // If the are no arguments, don't do anything
- if (this->argc_ <= 0)
- return -1;
-
- delete [] this->buf_;
-
- ACE_NEW_RETURN (this->buf_,
- ACE_TCHAR[this->length_ + this->argc_],
- -1);
-
- // Get an iterator over the queue
- ACE_Unbounded_Queue_Iterator<ACE_TCHAR *> iter (this->queue_);
-
- ACE_TCHAR **arg;
- ACE_TCHAR *ptr = this->buf_;
- size_t len;
- int more = 0;
-
- while (!iter.done ())
- {
- // Get next argument from the queue.
- iter.next (arg);
-
- more = iter.advance ();
-
- len = ACE_OS::strlen (*arg);
-
- // Copy the argument into buf_
- ACE_OS::memcpy ((void *) ptr,
- (const void *) (*arg),
- len * sizeof (ACE_TCHAR));
- // Move the pointer down.
- ptr += len;
-
- // Put in an argument separating space.
- if (more != 0)
- *ptr++ = ' ';
- }
-
- // Put in the NUL terminator
- *ptr = '\0';
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Unbounded_Queue<ACE_TCHAR *>;
-template class ACE_Unbounded_Queue_Iterator<ACE_TCHAR *>;
-template class ACE_Node<ACE_TCHAR *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Unbounded_Queue<ACE_TCHAR *>
-#pragma instantiate ACE_Unbounded_Queue_Iterator<ACE_TCHAR *>
-#pragma instantiate ACE_Node<ACE_TCHAR *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/ARGV.h b/ace/ARGV.h
deleted file mode 100644
index 696d69f7512..00000000000
--- a/ace/ARGV.h
+++ /dev/null
@@ -1,179 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file ARGV.h
- *
- * $Id$
- *
- * @author Doug Schmidt <schmidt@cs.wustl.edu>
- * @author Everett Anderson <eea1@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_ARGUMENT_VECTOR_H
-#define ACE_ARGUMENT_VECTOR_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-#include "ace/Unbounded_Queue.h"
-
-/**
- * @class ACE_ARGV
- *
- * @brief Builds a counted argument vector (ala argc/argv) from either
- * a string or a set of separate tokens. Can substitute environment
- * variable values for tokens that are environment variable references.
- */
-class ACE_Export ACE_ARGV
-{
-public:
- // = Initialization and termination.
- /**
- * Splits the specified string into an argument vector, split at whitespace.
- *
- * @param buf An ACE_TCHAR array to split into tokens for the vector.
- *
- * @param substitute_env_args If non-zero, any token that is an
- * an environment variable reference ($VAR) will have
- * its environment variable value in the resultant vector
- * in place of the environment variable name. This only works
- * if the token is an environment variable reference and
- * nothing else; it doesn't substitute environment variable
- * references within a token. For example, @c $HOME/file will
- * not substitute the value of the HOME environment variable.
- */
- ACE_ARGV (const ACE_TCHAR buf[],
- int substitute_env_args = 1);
-
- /**
- * Converts <argv> into a linear string. If <substitute_env_args>
- * is enabled then we'll substitute the environment variables for
- * each $ENV encountered in the string. The <buf> operation is not
- * allowed on an ACE_ARGV created this way.
- */
- ACE_ARGV (ACE_TCHAR *argv[],
- int substitute_env_args = 1);
-
- /**
- * Creates an ACE_ARGV which is the concatenation of the first_argv
- * and the second argv. The argv arguments should be null pointer
- * terminated.
- */
- ACE_ARGV (ACE_TCHAR *first_argv[],
- ACE_TCHAR *second_argv[],
- int substitute_env_args =1);
-
- /**
- * Entry point for creating an ACE_TCHAR *[] command line
- * iteratively via the <add> method. When this constructor is used,
- * the <ITERATIVE> state is enabled. The <argv> and <buf> methods
- * are allowed, and the result is recreated when called multiple
- * times. The subscript operator is not allowed.
- */
- ACE_ARGV (int substitute_env_args = 1);
-
- /// Destructor.
- ~ACE_ARGV (void);
-
- // = Accessor arguments.
- /// Returns the <index>th string in the ARGV array.
- const ACE_TCHAR *operator[] (size_t index);
-
- /**
- * Returns the <argv> array. Caller should not delete this memory
- * since the <ARGV> destructor will delete it. If the caller
- * modifies the array in the iterative mode, the changes are not
- * saved to the queue.
- */
- ACE_TCHAR **argv (void);
-
- /// Returns <argc>.
- int argc (void) const;
-
- /// Returns the <buf>. Caller should not delete this memory since
- /// the <ARGV> destructor will delete it.
- const ACE_TCHAR *buf (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /// Add another argument. This only works in the <ITERATIVE> state.
- /// Note that this method does not copy <next_arg>, nor does it
- /// assume ownership of managing its memory, i.e., the caller is
- /// responsible for memory management. Returns -1 on failure and 0
- /// on success.
- int add (const ACE_TCHAR *next_arg);
-
- /**
- * Add another <argv> array. The <argv> parameter must be NULL
- * terminated. This only works in the <ITERATIVE> state. Returns
- * -1 on failure and 0 on success.
- */
- int add (ACE_TCHAR *argv[]);
-
- /// What state is this ACE_ARGV in?
- int state (void) const;
-
- // These are the states possible via the different constructors.
- enum States
- {
- /// ACE_ARGV converts buf[] to ACE_TCHAR *argv[]
- TO_STRING = 1,
- /// ACE_ARGV converts ACE_TCHAR *argv[] to buf[]
- TO_PTR_ARRAY = 2,
- /// Builds buf[] or ACE_TCHAR *argv[] iteratively with <add>.
- ITERATIVE = 3
- };
-
-private:
-
- /// Creates buf_ from the queue, deletes previous buf_.
- int create_buf_from_queue (void);
-
- /// Converts buf_ into the ACE_TCHAR *argv[] format.
- int string_to_argv (void);
-
- /// Returns the string created from argv in buf and
- /// returns the number of arguments.
- int argv_to_string (ACE_TCHAR **argv, ACE_TCHAR *&buf);
-
- /// Replace args with environment variable values?
- int substitute_env_args_;
-
- /// Current state marker.
- int state_;
-
- /// Number of arguments in the ARGV array.
- int argc_;
-
- /// The array of string arguments.
- ACE_TCHAR **argv_;
-
- /// Buffer containing the <argv> contents.
- ACE_TCHAR *buf_;
-
- /// Total length of the arguments in the queue, not counting
- /// separating spaces
- size_t length_;
-
- /// Queue which keeps user supplied arguments. This is only
- /// active in the "iterative" mode.
- ACE_Unbounded_Queue<ACE_TCHAR *> queue_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/ARGV.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_ARGUMENT_VECTOR_H */
diff --git a/ace/ARGV.i b/ace/ARGV.i
deleted file mode 100644
index 4b118c700c0..00000000000
--- a/ace/ARGV.i
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Return the number of args
-ACE_INLINE int
-ACE_ARGV::argc (void) const
-{
- ACE_TRACE ("ACE_ARGV::argc");
- return this->argc_;
-}
-
-// Return the state of this ACE_ARGV
-ACE_INLINE int
-ACE_ARGV::state(void) const
-{
- ACE_TRACE ("ACE_ARGV::state");
- return this->state_;
-}
-
-// Return the arguments in a space-separated string
-ACE_INLINE const ACE_TCHAR *
-ACE_ARGV::buf (void)
-{
- ACE_TRACE ("ACE_ARGV::buf");
-
- if (this->buf_ == 0 && this->state_ == ITERATIVE)
- this->create_buf_from_queue ();
-
- return (const ACE_TCHAR *) this->buf_;
-}
-
-// Return the arguments in an entry-per-argument array
-
-ACE_INLINE ACE_TCHAR **
-ACE_ARGV::argv (void)
-{
- ACE_TRACE ("ACE_ARGV::argv");
-
- // Try to create the argv_ if it isn't there
- if (this->argv_ == 0)
- {
- if (this->state_ == ITERATIVE && this->buf_ == 0)
- this->create_buf_from_queue ();
-
- // Convert buf_ to argv_
- if (this->string_to_argv () == -1)
- return (ACE_TCHAR **) 0;
- }
-
- return (ACE_TCHAR **) this->argv_;
-}
-
-// Subscript operator.
-
-ACE_INLINE const ACE_TCHAR *
-ACE_ARGV::operator[] (size_t i)
-{
- ACE_TRACE ("ACE_ARGV::operator[]");
-
- // Don't go out of bounds.
- if (i >= ACE_static_cast (size_t, this->argc_))
- return 0;
-
- return (const ACE_TCHAR *) this->argv ()[i];
-}
-
-
-
diff --git a/ace/ATM_Acceptor.cpp b/ace/ATM_Acceptor.cpp
deleted file mode 100644
index e2eb96146e6..00000000000
--- a/ace/ATM_Acceptor.cpp
+++ /dev/null
@@ -1,309 +0,0 @@
-// $Id$
-
-#include "ace/ATM_Acceptor.h"
-
-ACE_RCSID(ace, ATM_Acceptor, "$Id$")
-
-#if defined (ACE_HAS_ATM)
-
-#if defined (ACE_HAS_LINUX_ATM)
-#include /**/ "linux/atmdev.h"
-#endif /* ACE_HAS_LINUX_ATM */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/ATM_Acceptor.i"
-#endif /* __ACE_INLINE__ */
-
-// Put the actual definitions of the ACE_ATM_Request and
-// ACE_ATM_Request_Queue classes here to hide them from clients...
-
-ACE_ALLOC_HOOK_DEFINE(ACE_ATM_Acceptor)
-
-void
-ACE_ATM_Acceptor::dump (void) const
-{
- ACE_TRACE ("ACE_ATM_Acceptor::dump");
-}
-
-ACE_ATM_Acceptor::ACE_ATM_Acceptor (void)
-{
- ACE_TRACE ("ACE_ATM_Acceptor::ACE_ATM_Acceptor");
-}
-
-ACE_ATM_Acceptor::~ACE_ATM_Acceptor (void)
-{
- ACE_TRACE ("ACE_ATM_Acceptor::~ACE_ATM_Acceptor");
-}
-
-int
-ACE_ATM_Acceptor::get_local_addr (ACE_ATM_Addr &local_addr)
-{
- ACE_TRACE ("ACE_ATM_Acceptor::get_local_addr");
-
-#if defined (ACE_HAS_FORE_ATM_WS2)
- unsigned long ret = 0;
- DWORD deviceID = 0;
- ATM_ADDRESS addr;
- struct sockaddr_atm *laddr;
-
- if (::WSAIoctl ((int) ((ACE_SOCK_Acceptor *)this) -> get_handle (),
- SIO_GET_ATM_ADDRESS,
- (LPVOID) &deviceID,
- sizeof (DWORD),
- (LPVOID)&addr,
- sizeof (ATM_ADDRESS),
- &ret,
- 0,
- 0) == SOCKET_ERROR) {
- ACE_OS::printf ("ATM_Acceptor (get_local_addr): WSIoctl: %d\n",
- ::WSAGetLastError ());
- return -1;
- }
-
- laddr = (struct sockaddr_atm *)local_addr.get_addr ();
- ACE_OS::memcpy ((void *)& (laddr -> satm_number),
- (void *)&addr,
- ATM_ADDR_SIZE - 1);
-
- return 0;
-#elif defined (ACE_HAS_FORE_ATM_XTI)
- ACE_UNUSED_ARG (local_addr);
-
- return 0;
-#elif defined (ACE_HAS_LINUX_ATM)
- ATM_Addr *myaddr = (ATM_Addr *)local_addr.get_addr ();
- int addrlen = sizeof (myaddr->sockaddratmsvc);
-
- if (ACE_OS::getsockname (acceptor_.get_handle (),
- (struct sockaddr *) & (myaddr->sockaddratmsvc),
- &addrlen) < 0) {
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("ATM_Acceptor (get_local_addr): ioctl: %d\n"),
- errno));
- return -1;
- }
-
- return (0);
-#else
- ACE_UNUSED_ARG (local_addr);
-
- return 0;
-#endif /* ACE_HAS_FORE_ATM_WS2 && ACE_HAS_FORE_ATM_XTI */
-}
-
-ACE_HANDLE
-ACE_ATM_Acceptor::open (const ACE_Addr &remote_sap,
- int backlog,
- ACE_ATM_Params params)
-{
- ACE_TRACE ("ACE_ATM_Acceptor::open");
-#if defined (ACE_HAS_FORE_ATM_XTI)
- ACE_HANDLE handle = acceptor_.open (remote_sap,
- params.get_reuse_addr (),
- params.get_oflag (),
- params.get_info (),
- backlog,
- params.get_device ());
- return (handle == ACE_INVALID_HANDLE ? -1 : 0);
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- struct sockaddr_atm local_atm_addr;
- ACE_HANDLE ret;
- DWORD flags = 0;
-
- /* Create a local endpoint of communication */
-
- // Only leaves can listen.
- flags = ACE_FLAG_MULTIPOINT_C_LEAF | ACE_FLAG_MULTIPOINT_D_LEAF;
-
- if ((ret = ACE_OS::socket (AF_ATM,
- SOCK_RAW,
- ATMPROTO_AAL5,
- 0,
- 0,
- flags))
- == ACE_INVALID_HANDLE) {
- ACE_OS::printf ("Acceptor (open): socket %d\n",
- ::WSAGetLastError ());
- return (ret);
- }
-
- ((ACE_SOCK_Acceptor *)this) -> set_handle (ret);
-
- /* Set up the address information to become a server */
- ACE_OS::memset ((void *) &local_atm_addr, 0, sizeof local_atm_addr);
- local_atm_addr.satm_family = AF_ATM;
- local_atm_addr.satm_number.AddressType = SAP_FIELD_ANY_AESA_REST;
- local_atm_addr.satm_number.Addr[ ATM_ADDR_SIZE - 1 ]
- = ((ACE_ATM_Addr *)&remote_sap) -> get_selector ();
- local_atm_addr.satm_blli.Layer2Protocol = SAP_FIELD_ANY;
- local_atm_addr.satm_blli.Layer3Protocol = SAP_FIELD_ABSENT;
- local_atm_addr.satm_bhli.HighLayerInfoType = SAP_FIELD_ABSENT;
-
- /* Associate address with endpoint */
- if (ACE_OS::bind (( (ACE_SOCK_Acceptor *)this) -> get_handle (),
- ACE_reinterpret_cast (struct sockaddr *, &local_atm_addr),
- sizeof local_atm_addr) == -1) {
- ACE_OS::printf ("Acceptor (open): bind %d\n", ::WSAGetLastError ());
- return (ACE_INVALID_HANDLE);
- }
-
- /* Make endpoint listen for service requests */
- if (ACE_OS::listen (( (ACE_SOCK_Acceptor *)this) -> get_handle (),
- backlog)
- == -1) {
- ACE_OS::printf ("Acceptor (open): listen %d\n", ::WSAGetLastError ());
- return (ACE_INVALID_HANDLE);
- }
-
- return 0;
-#elif defined (ACE_HAS_LINUX_ATM)
- //we need to set the qos before binding to the socket
- //use remote_sap as local_sap
-
- ACE_ATM_Addr local_sap;
- ATM_Addr *local_sap_addr = (ATM_Addr*)local_sap.get_addr ();
- ACE_ATM_QoS def_qos;
- ATM_QoS qos = def_qos.get_qos ();
-
- ACE_HANDLE handle;
- if ((handle = ACE_OS::socket (params.get_protocol_family (),
- params.get_type (),
- params.get_protocol (),
- params.get_protocol_info (),
- params.get_sock_group (),
- params.get_flags ()
- ))
- == ACE_INVALID_HANDLE) {
- ACE_DEBUG (LM_DEBUG,
- ACE_LIB_TEXT ("Acceptor (socket): socket %d\n"),
- errno);
- return (ACE_INVALID_HANDLE);
- }
-
- ((ACE_SOCK_Acceptor *)this) -> set_handle (handle);
- if (ACE_OS::setsockopt (handle,
- SOL_ATM,
- SO_ATMQOS,
- ACE_reinterpret_cast (char*, &qos),
- sizeof (qos)) < 0) {
- ACE_OS::printf ("Acceptor (setsockopt): setsockopt:%d\n",
- errno);
- }
-
- struct atmif_sioc req;
- struct sockaddr_atmsvc aux_addr[1024];
-
- req.number = 0;
- req.arg = aux_addr;
- req.length = sizeof (aux_addr);
- if (ACE_OS::ioctl (handle,
- ATM_GETADDR,
- &req) < 0) {
- ACE_OS::perror ("Acceptor (setsockopt): ioctl:");
- }
- else {
- local_sap_addr->sockaddratmsvc = aux_addr[0];
- }
- local_sap.set_selector (( (ACE_ATM_Addr*)&remote_sap)->get_selector ());
-
- if (ACE_OS::bind (handle,
- ACE_reinterpret_cast (struct sockaddr *,
- & (local_sap_addr->sockaddratmsvc)),
- sizeof (local_sap_addr->sockaddratmsvc)
- ) == -1) {
- ACE_DEBUG (LM_DEBUG,
- ACE_LIB_TEXT ("Acceptor (open): bind %d\n"),
- errno);
- return -1;
- }
- // Make endpoint listen for service requests
- if (ACE_OS::listen (handle,
- backlog)
- == -1) {
- ACE_DEBUG (LM_DEBUG,
- ACE_LIB_TEXT ("Acceptor (listen): listen %d\n"),
- errno);
- return -1;
- }
-
- return 0;
-#else
- ACE_UNUSED_ARG (remote_sap);
- ACE_UNUSED_ARG (backlog);
- ACE_UNUSED_ARG (params);
-#endif /* ACE_HAS_FORE_ATM_XTI/ACE_HAS_FORE_ATM_WS2/ACE_HAS_LINUX_ATM */
-}
-
-int
-ACE_ATM_Acceptor::accept (ACE_ATM_Stream &new_sap,
- ACE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle,
- ACE_ATM_Params params,
- ACE_ATM_QoS qos)
-{
- ACE_TRACE ("ACE_ATM_Acceptor::accept");
-#if defined (ACE_HAS_FORE_ATM_XTI)
- ATM_QoS optbuf = qos.get_qos ();
-
- return (acceptor_.accept (new_sap.get_stream (),
- remote_addr,
- timeout,
- restart,
- reset_new_handle,
- params.get_rw_flag (),
- params.get_user_data (),
- &optbuf));
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- ACE_HANDLE n_handle;
- ACE_HANDLE s_handle = ((ACE_SOCK_Acceptor *) this) -> get_handle ();
- struct sockaddr_atm *cli_addr
- = (struct sockaddr_atm *)remote_addr -> get_addr ();
- int caddr_len = sizeof (struct sockaddr_atm);
-
- do {
- n_handle = ACE_OS::accept (s_handle,
- ACE_reinterpret_cast (struct sockaddr *,
- cli_addr),
- &caddr_len);
- } while (n_handle == ACE_INVALID_HANDLE && errno == EINTR);
-
- ((ACE_ATM_Addr *)remote_addr) -> set (cli_addr,
- ((ACE_ATM_Addr *)remote_addr) -> get_selector ());
- ((ACE_IPC_SAP *)&new_sap) -> set_handle (n_handle);
-
- return 0;
-#elif defined (ACE_HAS_LINUX_ATM)
- ACE_UNUSED_ARG (params);
-
- ACE_HANDLE s_handle = ((ACE_SOCK_Acceptor *) this) -> get_handle ();
- struct atm_qos accept_qos = qos.get_qos ();
-
- if (ACE_OS::setsockopt (s_handle,
- SOL_ATM,
- SO_ATMQOS,
- ACE_reinterpret_cast (char*,
- &accept_qos),
- sizeof (accept_qos)) < 0) {
- ACE_OS::printf ("Acceptor (accept): error setting Qos");
- }
-
- return (acceptor_.accept (new_sap.get_stream (),
- remote_addr,
- timeout,
- restart,
- reset_new_handle));
-#else
- ACE_UNUSED_ARG (new_sap);
- ACE_UNUSED_ARG (remote_addr);
- ACE_UNUSED_ARG (timeout);
- ACE_UNUSED_ARG (restart);
- ACE_UNUSED_ARG (reset_new_handle);
- ACE_UNUSED_ARG (params);
- ACE_UNUSED_ARG (qos);
- return (0);
-#endif /* ACE_HAS_FORE_ATM_XTI */
-}
-
-#endif /* ACE_HAS_ATM */
diff --git a/ace/ATM_Acceptor.h b/ace/ATM_Acceptor.h
deleted file mode 100644
index 11dcc7698fb..00000000000
--- a/ace/ATM_Acceptor.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file ATM_Acceptor.h
- *
- * $Id$
- *
- * @author Joe Hoffert
- */
-//=============================================================================
-
-
-#ifndef ACE_ATM_ACCEPTOR_H
-#define ACE_ATM_ACCEPTOR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_ATM)
-
-#include "ace/Time_Value.h"
-#include "ace/ATM_Stream.h"
-#include "ace/ATM_Params.h"
-#include "ace/ATM_QoS.h"
-
-#if defined (ACE_HAS_LINUX_ATM)
-#include /**/ "atm.h"
-#endif /* ACE_HAS_LINUX_ATM */
-
-#if defined (ACE_HAS_FORE_ATM_WS2) || defined (ACE_HAS_LINUX_ATM)
-#include "SOCK_Acceptor.h"
-typedef ACE_SOCK_Acceptor ATM_Acceptor;
-#elif defined (ACE_HAS_FORE_ATM_XTI)
-#include "TLI_Acceptor.h"
-typedef ACE_TLI_Acceptor ATM_Acceptor;
-#endif // ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM
-
-/**
- * @class ACE_ATM_Acceptor
- *
- * @brief Defines the member functions for ACE_ATM_Acceptor abstraction.
- *
- * This class wraps up the ACE_SOCK_Acceptor and ACE_TLI_Acceptor
- * to make the mechanism for the ATM protocol transparent.
- */
-class ACE_Export ACE_ATM_Acceptor
-{
-
-public:
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_ATM_Acceptor (void);
-
- ~ACE_ATM_Acceptor ();
-
- /// Initiate a passive mode connection.
- ACE_ATM_Acceptor (const ACE_Addr &remote_sap,
- int backlog = ACE_DEFAULT_BACKLOG,
- ACE_ATM_Params params = ACE_ATM_Params());
-
- /// Initiate a passive mode socket.
- ACE_HANDLE open (const ACE_Addr &remote_sap,
- int backlog = ACE_DEFAULT_BACKLOG,
- ACE_ATM_Params params = ACE_ATM_Params());
-
- /// Close down the acceptor and release resources.
- int close (void);
-
- // = Passive connection acceptance method.
-
- /// Accept a new data transfer connection. A <timeout> of 0 means
- /// block forever, a <timeout> of {0, 0} means poll. <restart> == 1
- /// means "restart if interrupted."
- int accept (ACE_ATM_Stream &new_sap,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0,
- ACE_ATM_Params params = ACE_ATM_Params(),
- ACE_ATM_QoS qos = ACE_ATM_QoS());
-
- /// Get the local address currently listening on
- int get_local_addr( ACE_ATM_Addr &local_addr );
-
- // = Meta-type info
- typedef ACE_ATM_Addr PEER_ADDR;
- typedef ACE_ATM_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- ATM_Acceptor acceptor_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/ATM_Acceptor.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_ATM */
-#include "ace/post.h"
-#endif /* ACE_ATM_ACCEPTOR_H */
diff --git a/ace/ATM_Acceptor.i b/ace/ATM_Acceptor.i
deleted file mode 100644
index 3561cfa4733..00000000000
--- a/ace/ATM_Acceptor.i
+++ /dev/null
@@ -1,30 +0,0 @@
-// $Id$
-
-// ATM_Acceptor.i
-
-ACE_INLINE
-ACE_ATM_Acceptor::ACE_ATM_Acceptor (const ACE_Addr &remote_sap,
- int backlog,
- ACE_ATM_Params params)
-{
- ACE_TRACE ("ACE_ATM_Acceptor::ACE_ATM_Acceptor");
- if (open (remote_sap,
- backlog,
- params) < 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_ATM_Acceptor::ACE_ATM_Acceptor")));
-}
-
-ACE_INLINE
-int
-ACE_ATM_Acceptor::close (void)
-{
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) || defined (ACE_HAS_LINUX_ATM)
- return (acceptor_.close());
-#else
- return 0;
-#endif // ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM
-}
-
-
diff --git a/ace/ATM_Addr.cpp b/ace/ATM_Addr.cpp
deleted file mode 100644
index 1cb266876e6..00000000000
--- a/ace/ATM_Addr.cpp
+++ /dev/null
@@ -1,503 +0,0 @@
-// $Id$
-
-// Defines the Internet domain address family address format.
-
-#include "ace/ATM_Addr.h"
-#if defined (ACE_HAS_ATM)
-
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_HAS_FORE_ATM_WS2)
-#include /**/ "forews2.h"
-#endif /* ACE_HAS_FORE_ATM_WS2 */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/ATM_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, ATM_Addr, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_ATM_Addr)
-
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2)
-#define BHLI_MAGIC "FORE_ATM"
-// This is line rate in cells/s for an OC-3 MM interface.
-const long ACE_ATM_Addr::LINE_RATE = 353207;
-const int ACE_ATM_Addr::OPT_FLAGS_CPID = 0x1;
-const int ACE_ATM_Addr::OPT_FLAGS_PMP = 0x2;
-const int ACE_ATM_Addr::DEFAULT_SELECTOR = 0x99;
-#elif defined (ACE_HAS_LINUX_ATM)
-//pbrandao:for Linux:
-//pbrandao:for now stick with current definitions
-//pbrandao:see if later need to change
-const long ACE_ATM_Addr::LINE_RATE = 353207;
-const int ACE_ATM_Addr::OPT_FLAGS_CPID = 0;
-const int ACE_ATM_Addr::OPT_FLAGS_PMP = 0;
-const int ACE_ATM_Addr::DEFAULT_SELECTOR = 0x99;
-#else
-const long ACE_ATM_Addr::LINE_RATE = 0L;
-const int ACE_ATM_Addr::OPT_FLAGS_CPID = 0;
-const int ACE_ATM_Addr::OPT_FLAGS_PMP = 0;
-const int ACE_ATM_Addr::DEFAULT_SELECTOR = 0x0;
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
-
-// Default constructor
-
-ACE_ATM_Addr::ACE_ATM_Addr (u_char selector)
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2)
- : ACE_Addr (AF_ATM,
-#elif defined (ACE_HAS_LINUX_ATM)
- : ACE_Addr (PF_ATMSVC,
-#else
- : ACE_Addr (AF_UNSPEC,
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
- sizeof this->atm_addr_)
-{
- // ACE_TRACE ("ACE_ATM_Addr::ACE_ATM_Addr");
- (void) ACE_OS::memset ((void *) &this->atm_addr_,
- 0,
- sizeof this->atm_addr_);
- this->init (selector);
-}
-
-// Copy constructor.
-
-ACE_ATM_Addr::ACE_ATM_Addr (const ACE_ATM_Addr &sap,
- u_char selector)
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2)
- : ACE_Addr (AF_ATM,
-#elif defined (ACE_HAS_LINUX_ATM)
- : ACE_Addr (PF_ATMSVC,
-#else
- : ACE_Addr (AF_UNSPEC,
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
- sizeof this->atm_addr_)
-{
- ACE_TRACE ("ACE_ATM_Addr::ACE_ATM_Addr");
- this->set (sap, selector);
-#if defined (ACE_HAS_LINUX_ATM)
- this->atm_addr_.sockaddratmsvc.sas_family = PF_ATMSVC;
- this->atm_addr_.atmsap.blli[0].l3_proto = ATM_L3_NONE;
- this->atm_addr_.atmsap.blli[0].l2_proto = ATM_L2_NONE;
- this->atm_addr_.atmsap.bhli.hl_type = ATM_HL_NONE;
-#endif /* ACE_HAS_LINUX_ATM */
-}
-
-ACE_ATM_Addr::ACE_ATM_Addr (const ATM_Addr *sap,
- u_char selector)
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2)
- : ACE_Addr (AF_ATM,
-#elif defined (ACE_HAS_LINUX_ATM)
- : ACE_Addr (PF_ATMSVC,
-#else
- : ACE_Addr (AF_UNSPEC,
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
- sizeof this->atm_addr_)
-{
- ACE_TRACE ("ACE_ATM_Addr::ACE_ATM_Addr");
- this->set (sap, selector);
-}
-
-
-ACE_ATM_Addr::ACE_ATM_Addr (const ACE_TCHAR sap[],
- u_char selector)
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2)
- : ACE_Addr (AF_ATM,
-#elif defined (ACE_HAS_LINUX_ATM)
- : ACE_Addr (PF_ATMSVC,
-#else
- : ACE_Addr (AF_UNSPEC,
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
- sizeof this->atm_addr_)
-{
- ACE_TRACE ("ACE_ATM_Addr::ACE_ATM_Addr");
- this->set (sap, selector);
-}
-
-void
-ACE_ATM_Addr::init (u_char selector)
-{
-#if defined (ACE_HAS_FORE_ATM_XTI)
- // Note: this approach may be FORE implementation-specific. When we
- // bind with tag_addr ABSENT and tag_selector PRESENT, only the
- // selector (i.e. address[19]) is used by the TP. The rest of the
- // local address is filled in by the TP and can be obtained via the
- // 'ret' parameter or with t_getname ()/t_getprotaddr ().
-
- atm_addr_.addressType = (u_int16_t) AF_ATM;
-
- atm_addr_.sap.t_atm_sap_addr.SVE_tag_addr = (int8_t) T_ATM_ABSENT;
- atm_addr_.sap.t_atm_sap_addr.SVE_tag_selector = (int8_t) T_ATM_PRESENT;
-
- atm_addr_.sap.t_atm_sap_addr.address_format = (u_int8_t) T_ATM_ENDSYS_ADDR;
- atm_addr_.sap.t_atm_sap_addr.address_length = ATMNSAP_ADDR_LEN;
- atm_addr_.sap.t_atm_sap_addr.address[ATMNSAP_ADDR_LEN - 1] = selector;
-
- atm_addr_.sap.t_atm_sap_layer2.SVE_tag = (int8_t) T_ATM_ABSENT;
- atm_addr_.sap.t_atm_sap_layer3.SVE_tag = (int8_t) T_ATM_ABSENT;
-
- atm_addr_.sap.t_atm_sap_appl.SVE_tag = (int8_t) T_ATM_PRESENT;
- atm_addr_.sap.t_atm_sap_appl.ID_type = (u_int8_t) T_ATM_USER_APP_ID;
-
- ACE_OS::memcpy (atm_addr_.sap.t_atm_sap_appl.ID.user_defined_ID,
- BHLI_MAGIC,
- sizeof atm_addr_.sap.t_atm_sap_appl.ID);
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- ACE_OS::memset ((void *)&atm_addr_, 0, sizeof atm_addr_);
- atm_addr_.satm_number.Addr[ ATM_ADDR_SIZE - 1 ] = (char)selector;
- atm_addr_.satm_family = AF_ATM;
- atm_addr_.satm_number.AddressType = ATM_NSAP;
- atm_addr_.satm_number.NumofDigits = ATM_ADDR_SIZE;
- atm_addr_.satm_blli.Layer2Protocol = SAP_FIELD_ABSENT;
- atm_addr_.satm_blli.Layer3Protocol = SAP_FIELD_ABSENT;
- atm_addr_.satm_bhli.HighLayerInfoType = SAP_FIELD_ABSENT;
-
- // Need to know the correspondence.
- //atm_addr_.sap.t_atm_sap_appl.SVE_tag = (int8_t) T_ATM_PRESENT;
- //atm_addr_.sap.t_atm_sap_appl.ID_type = (u_int8_t) T_ATM_USER_APP_ID;
- //ACE_OS::memcpy (atm_addr_.sap.t_atm_sap_appl.ID.user_defined_ID,
- // BHLI_MAGIC,
- // sizeof atm_addr_.sap.t_atm_sap_appl.ID);
-#elif defined (ACE_HAS_LINUX_ATM)
- atm_addr_.sockaddratmsvc.sas_family = AF_ATMSVC;
- atm_addr_.sockaddratmsvc.sas_addr.prv[ATM_ESA_LEN - 1] = (char)selector;
- atm_addr_.atmsap.blli[0].l3_proto = ATM_L3_NONE;
- atm_addr_.atmsap.blli[0].l2_proto = ATM_L2_NONE;
- atm_addr_.atmsap.bhli.hl_type = ATM_HL_NONE;
-#else
- ACE_UNUSED_ARG (selector);
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
-}
-
-int
-ACE_ATM_Addr::set (const ACE_ATM_Addr &sap,
- u_char selector)
-{
- ACE_TRACE ("ACE_ATM_Addr::set");
-
- this->init (selector);
-
- this->ACE_Addr::base_set (sap.get_type (),
- sap.get_size ());
-
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2)
- ACE_ASSERT (sap.get_type () == AF_ATM);
-#elif defined (ACE_HAS_LINUX_ATM)
- ACE_ASSERT (sap.get_type () == PF_ATMSVC);
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 */
-
- (void) ACE_OS::memcpy ((void *) &this->atm_addr_,
- (void *) &sap.atm_addr_,
- sizeof this->atm_addr_);
- return 0;
-}
-
-int
-ACE_ATM_Addr::set (const ATM_Addr *sap,
- u_char selector)
-{
- ACE_TRACE ("ACE_ATM_Addr::set");
-
- this->init (selector);
-
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2)
- this->ACE_Addr::base_set (AF_ATM,
-#elif defined (ACE_HAS_LINUX_ATM)
- this->ACE_Addr::base_set (PF_ATMSVC,
-#else
- this->ACE_Addr::base_set (AF_UNSPEC,
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 */
- sizeof (*sap));
-
- (void) ACE_OS::memcpy ((void *) &this->atm_addr_,
- (void *) sap,
- sizeof this->atm_addr_);
- return 0;
-}
-
-int
-ACE_ATM_Addr::set (const ACE_TCHAR address[],
- u_char selector)
-{
- ACE_TRACE ("ACE_ATM_Addr::set");
- int ret;
-
- this->init (selector);
-
-#if defined (ACE_HAS_FORE_ATM_XTI)
- atm_addr_.sap.t_atm_sap_addr.SVE_tag_addr =
- (int8_t) T_ATM_PRESENT;
-#endif /* ACE_HAS_FORE_ATM_XTI */
-
- ret = this -> string_to_addr (address);
- this -> set_selector (selector);
- return ret;
-}
-
-// Transform the string into the current addressing format.
-
-int
-ACE_ATM_Addr::string_to_addr (const ACE_TCHAR sap[])
-{
- ACE_TRACE ("ACE_ATM_Addr::string_to_addr");
-
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2)
- this->ACE_Addr::base_set (AF_ATM,
-#elif defined (ACE_HAS_LINUX_ATM)
- this->ACE_Addr::base_set (PF_ATMSVC,
-#else
- this->ACE_Addr::base_set (AF_UNSPEC,
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
- sizeof this->atm_addr_);
-#if defined (ACE_HAS_FORE_ATM_XTI)
- struct hostent *entry;
- struct atmnsap_addr *nsap;
-
- // Yow, someone gave us a NULL ATM address!
- if (sap == 0)
- {
- errno = EINVAL;
- return -1;
- }
- else if ((entry = gethostbyname_atmnsap ((ACE_TCHAR *)sap)) != 0)
- {
- ACE_OS::memcpy (atm_addr_.sap.t_atm_sap_addr.address,
- entry->h_addr_list[0],
- ATMNSAP_ADDR_LEN - 1);
- }
- else if ((nsap = atmnsap_addr (sap)) != 0)
- {
- ACE_OS::memcpy (atm_addr_.sap.t_atm_sap_addr.address,
- nsap->atmnsap,
- ATMNSAP_ADDR_LEN);
- }
- else {
- errno = EINVAL;
- return -1;
- }
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- DWORD dwValue;
- HANDLE hLookup;
- WSAQUERYSETW qsRestrictions;
- CSADDR_INFO csaBuffer;
- WCHAR tmpWStr[100];
-
- MultiByteToWideChar (CP_ACP, MB_PRECOMPOSED, sap, -1, tmpWStr, 100);
-
- csaBuffer.LocalAddr.iSockaddrLength = sizeof (struct sockaddr_atm);
- csaBuffer.LocalAddr.lpSockaddr = (struct sockaddr *)&atm_addr_;
- csaBuffer.RemoteAddr.iSockaddrLength = sizeof (struct sockaddr_atm);
- csaBuffer.RemoteAddr.lpSockaddr = (struct sockaddr *)&atm_addr_;
-
- qsRestrictions.dwSize = sizeof (WSAQUERYSETW);
- qsRestrictions.lpszServiceInstanceName = 0;
- qsRestrictions.lpServiceClassId = &FORE_NAME_CLASS;
- qsRestrictions.lpVersion = 0;
- qsRestrictions.lpszComment = 0;
- qsRestrictions.dwNameSpace = FORE_NAME_SPACE;
- qsRestrictions.lpNSProviderId = 0;
- qsRestrictions.lpszContext = L"";
- qsRestrictions.dwNumberOfProtocols = 0;
- qsRestrictions.lpafpProtocols = 0;
- qsRestrictions.lpszQueryString = tmpWStr;
- qsRestrictions.dwNumberOfCsAddrs = 1;
- qsRestrictions.lpcsaBuffer = &csaBuffer;
- qsRestrictions.lpBlob = 0; //&blob;
-
- if (::WSALookupServiceBeginW (&qsRestrictions, LUP_RETURN_ALL, &hLookup)
- == SOCKET_ERROR) {
- ACE_OS::printf ("Error: WSALookupServiceBeginW failed! %d\n",
- ::WSAGetLastError ());
- return -1;
- }
-
- dwValue = sizeof (WSAQUERYSETW);
-
- if (::WSALookupServiceNextW (hLookup, 0, &dwValue, &qsRestrictions)
- == SOCKET_ERROR) {
- if (WSAGetLastError () != WSA_E_NO_MORE) {
- ACE_OS::printf ("Error: WSALookupServiceNextW failed! %d\n",
- ::WSAGetLastError ());
- return -1;
- }
- }
-
- if (WSALookupServiceEnd (hLookup) == SOCKET_ERROR) {
- ACE_OS::printf ("Error : WSALookupServiceEnd failed! %d \n",
- ::WSAGetLastError ());
- errno = EINVAL;
- return -1;
- }
-#elif defined (ACE_HAS_LINUX_ATM)
- if (sap == 0 || !ACE_OS::strcmp (sap,"")) {
- errno = EINVAL;
- return -1;
- }
-
- if (text2atm ((ACE_TCHAR *)sap,
- (struct sockaddr *)& (atm_addr_.sockaddratmsvc),
- sizeof (atm_addr_.sockaddratmsvc),
- T2A_SVC | T2A_NAME) < 0) {
- ACE_DEBUG (LM_DEBUG,
- "Error : text2atm failed!\n");
- errno = EINVAL;
- return -1;
- }
-#else
- ACE_UNUSED_ARG (sap);
-
- return 0;
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
-
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) || defined (ACE_HAS_LINUX_ATM)
- return 0;
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 */
-}
-
-// Transform the current address into string format.
-
-int
-ACE_ATM_Addr::addr_to_string (ACE_TCHAR addr[],
- size_t addrlen) const
-{
- ACE_TRACE ("ACE_ATM_Addr::addr_to_string");
-
-#if defined (ACE_HAS_FORE_ATM_XTI)
- ACE_TCHAR buffer[MAXNAMELEN + 1];
- struct atmnsap_addr nsap;
- ACE_OS::memcpy (nsap.atmnsap,
- atm_addr_.sap.t_atm_sap_addr.address,
- ATMNSAP_ADDR_LEN);
- ACE_OS::sprintf (buffer,
- ACE_LIB_TEXT ("%s"),
- atmnsap_ntoa (nsap));
-
- size_t total_len = ACE_OS::strlen (buffer) + sizeof ('\0');
-
- if (addrlen < total_len)
- return -1;
- else
- ACE_OS::strcpy (addr, buffer);
-
- return 0;
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- ACE_TCHAR buffer[MAXNAMELEN + 1];
- int i;
-
- if (addrlen < ATM_ADDR_SIZE + 1)
- return -1;
-
- for (i = 0; i < ATM_ADDR_SIZE; i++) {
- buffer[ i * 3 ] = '\0';
- ACE_OS::sprintf (buffer, ACE_LIB_TEXT ("%s%02x."),
- buffer,
- atm_addr_.satm_number.Addr[ i ]);
- }
-
- buffer[ ATM_ADDR_SIZE * 3 - 1 ] = '\0';
- ACE_OS::strcpy (addr, buffer);
-
- return 0;
-#elif defined (ACE_HAS_LINUX_ATM)
- ACE_TCHAR buffer[MAX_ATM_ADDR_LEN + 1];
- int total_len;
- if ((total_len = atm2text (buffer,
- sizeof buffer,
- (struct sockaddr *)& (atm_addr_.sockaddratmsvc),
- A2T_PRETTY)) < 0) {
- ACE_DEBUG ((LM_DEBUG,"ACE_ATM_Addr (addr_to_string): atm2text failed\n"));
- return -1;
- }
- if (addrlen < (size_t)total_len)
- return -1;
- else
- ACE_OS::strcpy (addr,
- buffer);
-
- return 0;
-#else
- ACE_UNUSED_ARG (addr);
- ACE_UNUSED_ARG (addrlen);
- return -1;
-#endif /* ACE_HAS_FORE_ATM_XTI && ACE_HAS_FORE_ATM_WS2 */
-}
-
-const ACE_TCHAR *
-ACE_ATM_Addr::addr_to_string (void) const
-{
- ACE_TRACE ("ACE_ATM_Addr::addr_to_string");
-
- static ACE_TCHAR addr[MAXHOSTNAMELEN + 1];
- if (this->addr_to_string (addr,
- MAXHOSTNAMELEN + 1) < 0)
- return 0;
-
- return addr;
-}
-
-// Set a pointer to the address.
-void
-ACE_ATM_Addr::set_addr (void *addr, int len)
-{
- ACE_TRACE ("ACE_ATM_Addr::set_addr");
-
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2)
- this->ACE_Addr::base_set (AF_ATM,
-#elif defined (ACE_HAS_LINUX_ATM)
- this->ACE_Addr::base_set (PF_ATMSVC,
-#else
- this->ACE_Addr::base_set (AF_UNSPEC,
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_WS2 */
- len);
- ACE_OS::memcpy ((void *) &this->atm_addr_,
- (void *) addr, len);
-}
-
-// Compare two addresses for inequality.
-
-int
-ACE_ATM_Addr::operator != (const ACE_ATM_Addr &sap) const
-{
- ACE_TRACE ("ACE_ATM_Addr::operator !=");
- return ! ((*this) == sap);
-}
-
-// Compare two addresses for equality.
-
-int
-ACE_ATM_Addr::operator == (const ACE_ATM_Addr &sap) const
-{
- ACE_TRACE ("ACE_ATM_Addr::operator ==");
-
-#if defined (ACE_HAS_LINUX_ATM)
- return (atm_equal ((const struct sockaddr *)& (this->atm_addr_.sockaddratmsvc),
- (const struct sockaddr *)& (sap.atm_addr_.sockaddratmsvc),
- 0,
- 0)
- &&
- sap_equal (& (this->atm_addr_.atmsap),
- & (sap.atm_addr_.atmsap),
- 0));
-#else
- return ACE_OS::memcmp (&atm_addr_,
- &sap.atm_addr_,
- sizeof (ATM_Addr)) == 0;
-#endif /* ACE_HAS_LINUX_ATM */
-}
-
-void
-ACE_ATM_Addr::dump (void) const
-{
- ACE_TRACE ("ACE_ATM_Addr::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_TCHAR s[ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 16];
- ACE_OS::sprintf (s,
- ACE_LIB_TEXT ("%s"),
- this->addr_to_string ());
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("%s"), s));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#endif /* ACE_HAS_ATM */
diff --git a/ace/ATM_Addr.h b/ace/ATM_Addr.h
deleted file mode 100644
index 39aecd2447e..00000000000
--- a/ace/ATM_Addr.h
+++ /dev/null
@@ -1,186 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file ATM_Addr.h
- *
- * $Id$
- *
- * @author Joe Hoffert <joeh@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_ATM_ADDR_H
-#define ACE_ATM_ADDR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_ATM)
-
-#include "ace/ACE_export.h"
-#include "ace/Addr.h"
-
-#if defined (ACE_HAS_FORE_ATM_XTI)
-typedef ATMSAPAddress ATM_Addr;
-#elif defined (ACE_HAS_FORE_ATM_WS2)
-#define FORE_NAME_SPACE NS_ALL
-typedef struct sockaddr_atm ATM_Addr;
-#elif defined (ACE_HAS_LINUX_ATM)
-
-#include /**/ "atm.h"
-
-//pbrandao:as Linux has this 2 structs separeted we "link it" here
-typedef struct _linux_atm_addr
-{
- struct sockaddr_atmsvc sockaddratmsvc;
- struct atm_sap atmsap;
-} ATM_Addr;
-#else
-typedef int ATM_Addr;
-#endif /* ACE_HAS_FORE_ATM_XTI/ACE_HAS_FORE_ATM_WS2/ACE_HAS_LINUX_ATM */
-
-/**
- * @class ACE_ATM_Addr
- *
- * @brief Defines the ATM domain address family address format.
- */
-class ACE_Export ACE_ATM_Addr : public ACE_Addr
-{
-public:
- // Constants used for ATM options
- static const long LINE_RATE;
- static const int OPT_FLAGS_CPID;
- static const int OPT_FLAGS_PMP;
- static const int DEFAULT_SELECTOR;
-
- // = Initialization methods.
- /// Default constructor.
- ACE_ATM_Addr (u_char selector = DEFAULT_SELECTOR);
-
- /// Copy constructor.
- ACE_ATM_Addr (const ACE_ATM_Addr &,
- u_char selector = DEFAULT_SELECTOR);
-
- /**
- * Creates an <ACE_ATM_Addr> from an ATMSAPAddress structure. This
- * is vendor specific (FORE systems). May need to change when other
- * vendors are supported.
- */
- ACE_ATM_Addr (const ATM_Addr *,
- u_char selector = DEFAULT_SELECTOR);
-
- /**
- * Initializes an <ACE_ATM_Addr> from the <sap> which can be
- * "atm-address" (e.g.,
- * "47.0005.80.ffe100.0000.f20f.2200.0020480694f9.00") or "hostname"
- * (e.g., "frisbee.cs.wustl.edu").
- */
- ACE_ATM_Addr (const ACE_TCHAR sap[],
- u_char selector = DEFAULT_SELECTOR);
-
- /// Default dtor.
- ~ACE_ATM_Addr (void);
-
- // = Initialization methods (useful after object construction).
- /// Default initialization for non-address values (e.g.,
- /// t_atm_sap_addr.SVE_tag_addr, t_atm_sap_addr.SVE_tag_selector)
- void init (u_char selector = DEFAULT_SELECTOR);
-
- /// Initializes from another <ACE_ATM_Addr>.
- int set (const ACE_ATM_Addr &,
- u_char selector = DEFAULT_SELECTOR);
-
- /**
- * Initializes an <ACE_ATM_Addr> from an ATMSAPAddress/sockaddr_atm
- * structure. This is vendor specific (FORE systems). May need to
- * change when other vendors are supported.
- */
- int set (const ATM_Addr *,
- u_char selector = DEFAULT_SELECTOR);
-
- /**
- * Initializes an <ACE_ATM_Addr> from the <sap> which can be
- * "atm-address" (e.g.,
- * "47.0005.80.ffe100.0000.f20f.2200.0020480694f9.00") or "hostname"
- * (e.g., "frisbee.cs.wustl.edu").
- */
- int set (const ACE_TCHAR sap[],
- u_char selector = DEFAULT_SELECTOR);
-
- /**
- * Initializes an <ACE_ATM_Addr> from the <sap> which can be
- * "atm-address" (e.g.,
- * "47.0005.80.ffe100.0000.f20f.2200.0020480694f9.00") or "hostname"
- * (e.g., "frisbee.cs.wustl.edu").
- */
- virtual int string_to_addr (const ACE_TCHAR sap[]);
-
- /**
- * Return the character representation of the ATM address (e.g.,
- * "47.0005.80.ffe100.0000.f20f.2200.0020480694f9.00") storing it in
- * the <addr> (which is assumed to be <addrlen> bytes long). This
- * version is reentrant. Returns -1 if the <addrlen> of the <addr>
- * is too small, else 0.
- */
- virtual int addr_to_string (ACE_TCHAR addr[],
- size_t addrlen) const;
-
- /**
- * Return the character representation of the ATM address (e.g.,
- * "47.0005.80.ffe100.0000.f20f.2200.0020480694f9.00"). Returns -1
- * if the <size> of the <buffer> is too small, else 0.(This version
- * is non-reentrant since it returns a pointer to a static data
- * area.)
- */
- const ACE_TCHAR *addr_to_string (void) const;
-
- /// Return a pointer to the underlying network address.
- virtual void *get_addr (void) const;
-
- /// Set a pointer to the address.
- virtual void set_addr (void *, int);
-
- /// Return the selector for network address.
- u_char get_selector (void) const;
-
- /// Set the selector for the network address.
- void set_selector (u_char selector);
-
- /**
- * Compare two addresses for equality. The addresses are considered
- * equal if they contain the same ATM address. Q: Is there any
- * other check for equality needed for ATM?
- */
- int operator == (const ACE_ATM_Addr &SAP) const;
-
- /// Compare two addresses for inequality.
- int operator != (const ACE_ATM_Addr &SAP) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-// char *construct_options (ACE_HANDLE fd,
-// int qos_kb,
-// int flags,
-// long *optsize);
-// // Construct options for ATM connections
-
-private:
- ATM_Addr atm_addr_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/ATM_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_ATM */
-#include "ace/post.h"
-#endif /* ACE_ATM_ADDR_H */
diff --git a/ace/ATM_Addr.i b/ace/ATM_Addr.i
deleted file mode 100644
index 41bb6c27193..00000000000
--- a/ace/ATM_Addr.i
+++ /dev/null
@@ -1,49 +0,0 @@
-// $Id$
-
-// ATM_Addr.i
-
-// Default dtor.
-ACE_INLINE
-ACE_ATM_Addr::~ACE_ATM_Addr (void)
-{
-}
-
-// Return the address.
-
-ACE_INLINE void *
-ACE_ATM_Addr::get_addr (void) const
-{
- ACE_TRACE ("ACE_ATM_Addr::get_addr");
- return (void *) &this->atm_addr_;
-}
-
-ACE_INLINE u_char
-ACE_ATM_Addr::get_selector (void) const
-{
- ACE_TRACE ("ACE_ATM_Addr::get_selector");
-#if defined (ACE_HAS_FORE_ATM_XTI)
- return atm_addr_.sap.t_atm_sap_addr.address[ATMNSAP_ADDR_LEN - 1];
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- return atm_addr_.satm_number.Addr[ ATM_ADDR_SIZE - 1 ];
-#elif defined (ACE_HAS_LINUX_ATM)
- return atm_addr_.sockaddratmsvc.sas_addr.prv[ATM_ESA_LEN - 1];
-#else
- return 0;
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
-}
-
-ACE_INLINE void
-ACE_ATM_Addr::set_selector (u_char selector)
-{
- ACE_TRACE ("ACE_ATM_Addr::set_selector");
-#if defined (ACE_HAS_FORE_ATM_XTI)
- atm_addr_.sap.t_atm_sap_addr.address[ATMNSAP_ADDR_LEN - 1] = selector;
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- atm_addr_.satm_number.Addr[ ATM_ADDR_SIZE - 1 ] = selector;
-#elif defined (ACE_HAS_LINUX_ATM)
- atm_addr_.sockaddratmsvc.sas_addr.prv[ATM_ESA_LEN - 1] = selector;
-#else
- ACE_UNUSED_ARG (selector);
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
-}
-
diff --git a/ace/ATM_Connector.cpp b/ace/ATM_Connector.cpp
deleted file mode 100644
index c04294ab0c1..00000000000
--- a/ace/ATM_Connector.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-// ATM_Connector.cpp
-// $Id$
-
-#include "ace/ATM_Connector.h"
-#if defined (ACE_HAS_ATM)
-
-#include "ace/Handle_Set.h"
-
-ACE_RCSID(ace, ATM_Connector, "$Id$")
-
-#if !defined (__ACE_INLINE__)
-#include "ace/ATM_Connector.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_ATM_Connector)
-
-void
-ACE_ATM_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_ATM_Connector::dump");
-}
-
-ACE_ATM_Connector::ACE_ATM_Connector (void)
-{
- ACE_TRACE ("ACE_ATM_Connector::ACE_ATM_Connector");
-}
-
-// Actively connect and produce a new ACE_ATM_Stream if things go well...
-// Connect the <new_stream> to the <remote_sap>, waiting up to
-// <timeout> amount of time if necessary.
-
-int
-ACE_ATM_Connector::connect (ACE_ATM_Stream &new_stream,
- const ACE_ATM_Addr &remote_sap,
- ACE_ATM_Params params,
- ACE_ATM_QoS options,
- ACE_Time_Value *timeout,
- const ACE_ATM_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_ATM_Connector::connect");
-#if defined (ACE_HAS_FORE_ATM_XTI)
- return connector_.connect(new_stream.get_stream(),
- remote_sap,
- timeout,
- local_sap,
- reuse_addr,
- flags,
- perms,
- params.get_device(),
- params.get_info(),
- params.get_rw_flag(),
- params.get_user_data(),
- &options.get_qos());
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- ACE_DEBUG(LM_DEBUG,
- ACE_LIB_TEXT ("ATM_Connector(connect): set QoS parameters\n" ));
-
- ACE_HANDLE s = new_stream.get_handle();
- struct sockaddr_atm *saddr = ( struct sockaddr_atm *)remote_sap.get_addr();
- ACE_QoS cqos = options.get_qos();
-
- ACE_QoS_Params qos_params = ACE_QoS_Params(0,
- 0,
- &cqos,
- 0,
- 0);
-
- ACE_DEBUG(LM_DEBUG,
- ACE_LIB_TEXT ("ATM_Connector(connect): connecting...\n"));
-
- int result = ACE_OS::connect( s,
- ( struct sockaddr *)saddr,
- sizeof( struct sockaddr_atm ),
- qos_params );
-
- if ( result != 0 )
- ACE_OS::printf( "ATM_Connector(connect): connection failed, %d\n",
- ::WSAGetLastError());
-
- return result;
-#elif defined (ACE_HAS_LINUX_ATM)
- ACE_UNUSED_ARG (params);
- ACE_UNUSED_ARG (timeout);
- ACE_UNUSED_ARG (reuse_addr);
- ACE_UNUSED_ARG (perms);
- ACE_UNUSED_ARG (flags);
-
- ACE_HANDLE handle = new_stream.get_handle();
- ATM_QoS qos =options.get_qos();
- ATM_Addr *local_addr=(ATM_Addr*)local_sap.get_addr(),
- *remote_addr=(ATM_Addr*)remote_sap.get_addr();
-
- if (ACE_OS::setsockopt(handle,
- SOL_ATM,
- SO_ATMSAP,
- ACE_reinterpret_cast(char*,
- &(local_addr->atmsap)),
- sizeof(local_addr->atmsap)) < 0) {
- ACE_OS::printf( "ATM_Connector(connect): unable to set atmsap %d\nContinuing...",
- errno);
- }
- if (ACE_OS::setsockopt(handle,
- SOL_ATM,
- SO_ATMQOS,
- ACE_reinterpret_cast(char*,
- &qos),
- sizeof(qos)) < 0) {
- ACE_DEBUG((LM_DEBUG,ACE_LIB_TEXT ("ATM_Connector(connect): unable to set qos %d\n"),
- errno));
- return -1;
- }
-
- int result = ACE_OS::connect(handle,
- (struct sockaddr *)&(remote_addr->sockaddratmsvc),
- sizeof( remote_addr->sockaddratmsvc));
-
- if ( result != 0 )
- ACE_DEBUG(LM_DEBUG,
- ACE_LIB_TEXT ("ATM_Connector(connect): connection failed, %d\n"),
- errno);
-
- return result;
-#else
- ACE_UNUSED_ARG (new_stream);
- ACE_UNUSED_ARG (remote_sap);
- ACE_UNUSED_ARG (params);
- ACE_UNUSED_ARG (options);
- ACE_UNUSED_ARG (timeout);
- ACE_UNUSED_ARG (local_sap);
- ACE_UNUSED_ARG (reuse_addr);
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (perms);
- return 0;
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
-}
-
-#endif /* ACE_HAS_ATM */
-
diff --git a/ace/ATM_Connector.h b/ace/ATM_Connector.h
deleted file mode 100644
index 6689b0acdd5..00000000000
--- a/ace/ATM_Connector.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file ATM_Connector.h
- *
- * $Id$
- *
- * @author Joe Hoffert <joeh@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_ATM_CONNECTOR_H
-#define ACE_ATM_CONNECTOR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_ATM)
-
-#include "ace/ATM_Stream.h"
-#include "ace/ATM_Params.h"
-#include "ace/ATM_QoS.h"
-
-#if defined (ACE_WIN32) || defined (ACE_HAS_LINUX_ATM)
-#include "SOCK_Connector.h"
-typedef ACE_SOCK_Connector ATM_Connector;
-#else
-#include "XTI_ATM_Mcast.h"
-typedef ACE_XTI_ATM_Mcast ATM_Connector;
-#endif
-
-/**
- * @class ACE_ATM_Connector
- *
- * @brief Defines an active connection factory for the ACE_ATM C++
- * wrappers.
- */
-class ACE_Export ACE_ATM_Connector
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_ATM_Connector (void);
-
- /**
- * Actively connect and produce a <new_stream> if things go well.
- * The <remote_sap> is the address that we are trying to connect
- * with. The <params> are the parameters needed for either socket
- * or XTI/ATM connections. The <timeout> is the amount of time to
- * wait to connect. If it's 0 then we block indefinitely. If
- * *timeout == {0, 0} then the connection is done using non-blocking
- * mode. In this case, if the connection can't be made immediately
- * the value of -1 is returned with <errno == EWOULDBLOCK>. If
- * *timeout > {0, 0} then this is the maximum amount of time to wait before
- * timing out. If the time expires before the connection is made
- * <errno == ETIME>. The <local_sap> is the value of local address
- * to bind to. If it's the default value of <ACE_ATM_Addr::sap_any> then
- * the user is letting the OS do the binding. If <reuse_addr> == 1
- * then the <local_addr> is reused, even if it hasn't been cleanedup yet.
- */
- ACE_ATM_Connector (ACE_ATM_Stream &new_stream,
- const ACE_ATM_Addr &remote_sap,
- ACE_ATM_Params params = ACE_ATM_Params(),
- ACE_ATM_QoS options = ACE_ATM_QoS(),
- ACE_Time_Value *timeout = 0,
- const ACE_ATM_Addr &local_sap = ACE_ATM_Addr( "", 0 ),
- int reuse_addr = 0,
-#if defined (ACE_WIN32)
- int flags = 0,
-#else
- int flags = O_RDWR,
-#endif /* ACE_WIN32 */
- int perms = 0);
-
- /**
- * Actively connect and produce a <new_stream> if things go well.
- * The <remote_sap> is the address that we are trying to connect
- * with. The <params> are the parameters needed for either socket
- * or XTI/ATM connections. The <timeout> is the amount of time to
- * wait to connect. If it's 0 then we block indefinitely. If
- * *timeout == {0, 0} then the connection is done using non-blocking
- * mode. In this case, if the connection can't be made immediately
- * the value of -1 is returned with <errno == EWOULDBLOCK>. If
- * *timeout > {0, 0} then this is the maximum amount of time to wait before
- * timing out. If the time expires before the connection is made
- * <errno == ETIME>. The <local_sap> is the value of local address
- * to bind to. If it's the default value of <ACE_ATM_Addr::sap_any> then
- * the user is letting the OS do the binding. If <reuse_addr> == 1
- * then the <local_addr> is reused, even if it hasn't been cleanedup yet.
- */
- int connect (ACE_ATM_Stream &new_stream,
- const ACE_ATM_Addr &remote_sap,
- ACE_ATM_Params params = ACE_ATM_Params(),
- ACE_ATM_QoS options = ACE_ATM_QoS(),
- ACE_Time_Value *timeout = 0,
- const ACE_ATM_Addr &local_sap = ACE_ATM_Addr( "",
- 0 ),
- int reuse_addr = 0,
-#if defined (ACE_WIN32)
- int flags = 0,
-#else
- int flags = O_RDWR,
-#endif /* ACE_WIN32 */
- int perms = 0);
-
- /**
- * Try to complete a non-blocking connection.
- * If connection completion is successful then <new_stream> contains
- * the connected ACE_SOCK_Stream. If <remote_sap> is non-NULL then it
- * will contain the address of the connected peer.
- */
- int complete (ACE_ATM_Stream &new_stream,
- ACE_ATM_Addr *remote_sap,
- ACE_Time_Value *tv);
-
- //int add_leaf (ACE_ATM_Stream &current_stream,
- // const ACE_Addr &remote_sap,
- // ACE_INT32 leaf_id,
- // ACE_Time_Value *timeout = 0);
-
- /**
- * Actively add a leaf to the root (i.e., point-to-multipoint). The
- * <remote_sap> is the address of the leaf that we
- * are trying to add.
- */
- int add_leaf (ACE_ATM_Stream &current_stream,
- const ACE_Addr &remote_sap,
- ACE_ATM_QoS &qos);
-
- /// Resets any event associations on this handle
- int reset_new_handle (ACE_HANDLE handle);
-
- // = Meta-type info
- typedef ACE_ATM_Addr PEER_ADDR;
- typedef ACE_ATM_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- ATM_Connector connector_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/ATM_Connector.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_ATM */
-#include "ace/post.h"
-#endif /* ACE_ATM_CONNECTOR_H */
diff --git a/ace/ATM_Connector.i b/ace/ATM_Connector.i
deleted file mode 100644
index 6b6d6fb876c..00000000000
--- a/ace/ATM_Connector.i
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ATM_Connector.i
-
-ACE_INLINE
-ACE_ATM_Connector::ACE_ATM_Connector (ACE_ATM_Stream &new_stream,
- const ACE_ATM_Addr &remote_sap,
- ACE_ATM_Params params,
- ACE_ATM_QoS options,
- ACE_Time_Value *timeout,
- const ACE_ATM_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_ATM_Connector::ACE_ATM_Connector");
- if ((ACE_HANDLE)this->connect (new_stream,
- remote_sap,
- params,
- options,
- timeout,
- local_sap,
- reuse_addr,
- flags,
- perms) == ACE_INVALID_HANDLE
- && timeout != 0 && !(errno == EWOULDBLOCK || errno == ETIME))
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_ATM_Stream::ACE_ATM_Stream")));
-}
-
-// Try to complete a non-blocking connection.
-
-ACE_INLINE
-int
-ACE_ATM_Connector::complete (ACE_ATM_Stream &new_stream,
- ACE_ATM_Addr *remote_sap,
- ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_ATM_Connector::complete");
-#if defined (ACE_HAS_ATM)
- return connector_.complete(new_stream.get_stream(),
- remote_sap,
- tv);
-#else
- ACE_UNUSED_ARG(new_stream);
- ACE_UNUSED_ARG(remote_sap);
- ACE_UNUSED_ARG(tv);
- return 0;
-#endif
-}
-
-ACE_INLINE
-int
-ACE_ATM_Connector::add_leaf (ACE_ATM_Stream &current_stream,
- const ACE_Addr &remote_sap,
- ACE_ATM_QoS &qos)
-{
- ACE_TRACE ("ACE_ATM_Connector::add_leaf");
-#if defined (ACE_HAS_FORE_ATM_XTI)
- return connector_.add_leaf(current_stream.get_stream(),
- remote_sap,
- leaf_id,
- timeout);
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- struct sockaddr_atm *saddr = (struct sockaddr_atm *)remote_sap.get_addr();
- ACE_QoS cqos = qos.get_qos();
- int addr_len = sizeof( struct sockaddr_atm );
-
- ACE_QoS_Params qos_params(0,
- 0,
- &cqos,
- 0,
- (JL_SENDER_ONLY));
-
- ACE_OS::printf( "ATM_Connector::add_leaf: connecting...\n" );
-
- ACE_HANDLE result = ACE_OS::join_leaf(current_stream.get_handle(),
- (struct sockaddr *)saddr,
- addr_len,
- qos_params);
-
- if ( result == ACE_INVALID_HANDLE )
- ACE_OS::printf( "ATM_Connector(add_leaf): connection failed, %d\n",
- ::WSAGetLastError());
-
- return (result != ACE_INVALID_HANDLE);
-#elif defined (ACE_HAS_LINUX_ATM)
- ACE_OS::printf("ATM_Connector(add_leaf): not yet implemented in Linux \n");
-
- ACE_UNUSED_ARG(current_stream);
- ACE_UNUSED_ARG(remote_sap);
- ACE_UNUSED_ARG(leaf_id);
- ACE_UNUSED_ARG(timeout);
-
- return 0;
-#else
- ACE_UNUSED_ARG(current_stream);
- ACE_UNUSED_ARG(remote_sap);
- ACE_UNUSED_ARG(leaf_id);
- ACE_UNUSED_ARG(timeout);
- return 0;
-#endif
-}
-
-ACE_INLINE
-int
-ACE_ATM_Connector::reset_new_handle (ACE_HANDLE handle)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- // Reset the event association
- return ::WSAEventSelect ((SOCKET) handle,
- 0,
- 0);
-#else /* !defined ACE_HAS_WINSOCK2 */
- ACE_UNUSED_ARG (handle);
- return 0;
-#endif /* ACE_WIN32 */
-}
-
diff --git a/ace/ATM_Params.cpp b/ace/ATM_Params.cpp
deleted file mode 100644
index dba4af08daf..00000000000
--- a/ace/ATM_Params.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-// $Id$
-
-#include "ace/ATM_Params.h"
-
-ACE_RCSID(ace, ATM_Params, "$Id$")
-
-#if defined (ACE_HAS_ATM)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/ATM_Params.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_ATM_Params)
-
-void
-ACE_ATM_Params::dump (void) const
-{
- ACE_TRACE ("ACE_ATM_Params::dump");
-}
-
-#endif /* ACE_HAS_ATM */
-
diff --git a/ace/ATM_Params.h b/ace/ATM_Params.h
deleted file mode 100644
index 921e2abcaaf..00000000000
--- a/ace/ATM_Params.h
+++ /dev/null
@@ -1,210 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file ATM_Params.h
- *
- * $Id$
- *
- * @author Joe Hoffert <joeh@cs.wustl.edu>
- */
-//==========================================================================
-
-
-#ifndef ACE_ATM_PARAMS_H
-#define ACE_ATM_PARAMS_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_ATM)
-
-#include "ace/ACE_export.h"
-
-#if defined (ACE_HAS_FORE_ATM_XTI)
-#include "ace/TLI.h"
-#define ATM_PROTOCOL_DEFAULT 0
-typedef struct t_info Param_Info;
-typedef struct netbuf Param_Udata;
-#elif defined (ACE_HAS_FORE_ATM_WS2)
-#include "ace/SOCK.h"
-#define ATM_PROTOCOL_DEFAULT ATMPROTO_AAL5
-#define ACE_XTI_ATM_DEVICE ""
-typedef int Param_Info;
-typedef int Param_Udata;
-#elif defined (ACE_HAS_LINUX_ATM)
-#include /**/ "atm.h"
-#define AF_ATM PF_ATMSVC
-#define ACE_XTI_ATM_DEVICE ""
-#define ATM_PROTOCOL_DEFAULT ATM_AAL5
-typedef int Param_Info;
-typedef int Param_Udata;
-#else
-#define ACE_XTI_ATM_DEVICE ""
-typedef int Param_Info;
-typedef int Param_Udata;
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
-
-/**
- * @class ACE_ATM_Params
- *
- * @brief Wrapper class that simplifies the information passed to the ATM
- * enabled ACE_ATM_Connector class.
- */
-class ACE_Export ACE_ATM_Params
-{
-public:
- /**
- * Initialize the data members. This class combines options from
- * ACE_SOCK_Connector (<protocol_family>, <protocol>, <type>,
- * <protocol_info>, <group>, and <flags>) and
- * ACE_TLI_Connector (<device>, <info>, <rw_flag>, <oflag>, and <udata>)
- * so that either mechanism can be used transparently for ATM.
- */
- ACE_ATM_Params (int rw_flag = 1,
- const char device[] = ACE_XTI_ATM_DEVICE,
- Param_Info *info = 0,
- Param_Udata *udata = 0,
- int oflag = O_RDWR,
- int protocol_family = AF_ATM,
- int protocol = ATM_PROTOCOL_DEFAULT,
- int type =
-#if defined (ACE_HAS_LINUX_ATM)
- SOCK_DGRAM,
-#else
- SOCK_RAW,
-#endif /* ACE_HAS_LINUX_ATM */
- ACE_Protocol_Info *protocol_info = 0,
- ACE_SOCK_GROUP g = 0,
- u_long flags
- = ACE_FLAG_MULTIPOINT_C_ROOT
- | ACE_FLAG_MULTIPOINT_D_ROOT, // connector by default
- int reuse_addr = 0);
-
- /// Destructor.
- ~ACE_ATM_Params ();
-
- /// Get protocol family.
- int get_protocol_family (void) const;
-
- /// Set protocol family.
- void set_protocol_family (int);
-
- /// Get protocol.
- int get_protocol (void) const;
-
- /// Set protocol.
- void set_protocol (int);
-
- /// Get type.
- int get_type (void) const;
-
- /// Set type.
- void set_type (int);
-
- /// Get protocol info.
- ACE_Protocol_Info *get_protocol_info( void );
-
- /// Set protocol info.
- void set_protocol_info( ACE_Protocol_Info *);
-
- /// Get socket group.
- ACE_SOCK_GROUP get_sock_group( void );
-
- /// Set socket group.
- void set_sock_group( ACE_SOCK_GROUP );
-
- /// Get socket flags.
- u_long get_flags( void );
-
- /// Set socket flags.
- void set_flags( u_long );
-
- /// Get reuse_addr flag.
- int get_reuse_addr (void) const;
-
- /// Set reuse_addr flag.
- void set_reuse_addr (int);
-
- /// Get device.
- const char* get_device (void) const;
-
- /// Get info.
- Param_Info* get_info (void) const;
-
- /// Set info.
- void set_info (Param_Info *);
-
- /// Get r/w flag.
- int get_rw_flag (void) const;
-
- /// Set r/w flag.
- void set_rw_flag (int);
-
- /// Get user data.
- Param_Udata* get_user_data (void) const;
-
- /// Set user data.
- void set_user_data (Param_Udata*);
-
- /// Get open flag.
- int get_oflag (void) const;
-
- /// Set open flag.
- void set_oflag (int);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Protocol family for sockets connections.
- int protocol_family_;
-
- /// Protocol for sockets connections.
- int protocol_;
-
- /// Type for opening sockets.
- int type_;
-
- /// Information about the protocol.
- ACE_Protocol_Info *protocol_info_;
-
- /// Socket group used (for sockets only).
- ACE_SOCK_GROUP group_;
-
- /// Flags for sockets (for sockets only).
- u_long flags_;
-
- /// Flag for reusing address for opening sockets.
- int reuse_addr_;
-
- /// Device name for XTI/ATM connections.
- const char *device_;
-
- /// Info for XTI/ATM connections.
- Param_Info *info_;
-
- /// R/W flag for XTI/ATM connections.
- int rw_flag_;
-
- /// User data for XTI/ATM connections.
- Param_Udata *udata_;
-
- /// Open flag for XTI/ATM connections.
- int oflag_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/ATM_Params.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_ATM */
-#include "ace/post.h"
-#endif /* ACE_ATM_PARAMS_H */
diff --git a/ace/ATM_Params.i b/ace/ATM_Params.i
deleted file mode 100644
index 43bce9f0a42..00000000000
--- a/ace/ATM_Params.i
+++ /dev/null
@@ -1,224 +0,0 @@
-// $Id$
-
-// ATM_Params.i
-
-ACE_INLINE
-ACE_ATM_Params::ACE_ATM_Params (int rw_flag,
- const char device[],
- Param_Info *info,
- Param_Udata *udata,
- int oflag,
- int protocol_family,
- int protocol,
- int type,
- ACE_Protocol_Info *protocol_info,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr)
- : protocol_family_(protocol_family),
- protocol_(protocol),
- type_(type),
- protocol_info_(protocol_info),
- group_(g),
- flags_(flags),
- reuse_addr_(reuse_addr),
- device_(device),
- info_(info),
- rw_flag_(rw_flag),
- udata_(udata),
- oflag_(oflag)
-{
- ACE_TRACE ("ACE_ATM_Params::ACE_ATM_Params");
-}
-
-// Default dtor.
-ACE_INLINE
-ACE_ATM_Params::~ACE_ATM_Params (void)
-{
- ACE_TRACE ("ACE_ATM_Params::~ACE_ATM_Params");
-}
-
-ACE_INLINE
-int
-ACE_ATM_Params::get_protocol_family (void) const
-{
- ACE_TRACE ("ACE_ATM_Params::get_protocol_family");
- return protocol_family_;
-}
-
-ACE_INLINE
-void
-ACE_ATM_Params::set_protocol_family (int family)
-{
- ACE_TRACE ("ACE_ATM_Params::set_protocol_family");
- protocol_family_ = family;
-}
-
-ACE_INLINE
-int
-ACE_ATM_Params::get_protocol (void) const
-{
- ACE_TRACE ("ACE_ATM_Params::get_protocol");
- return protocol_;
-}
-
-ACE_INLINE
-void
-ACE_ATM_Params::set_protocol (int protocol)
-{
- ACE_TRACE ("ACE_ATM_Params::set_protocol");
- protocol_ = protocol;
-}
-
-ACE_INLINE
-int
-ACE_ATM_Params::get_type (void) const
-{
- ACE_TRACE ("ACE_ATM_Params::get_type");
- return type_;
-}
-
-ACE_INLINE
-void
-ACE_ATM_Params::set_type (int type)
-{
- ACE_TRACE ("ACE_ATM_Params::set_type");
- type_ = type;
-}
-
-ACE_INLINE
-ACE_Protocol_Info*
-ACE_ATM_Params::get_protocol_info( void )
-{
- ACE_TRACE ("ACE_ATM_Params::get_protocol_info");
- return protocol_info_;
-}
-
-ACE_INLINE
-void
-ACE_ATM_Params::set_protocol_info( ACE_Protocol_Info *protocol_info )
-{
- ACE_TRACE ("ACE_ATM_Params::set_protocol_info");
- protocol_info_ = protocol_info;
-}
-
-ACE_INLINE
-ACE_SOCK_GROUP
-ACE_ATM_Params::get_sock_group( void )
-{
- ACE_TRACE ("ACE_ATM_Params::get_sock_group");
- return group_;
-}
-
-ACE_INLINE
-void
-ACE_ATM_Params::set_sock_group( ACE_SOCK_GROUP g )
-{
- ACE_TRACE ("ACE_ATM_Params::set_sock_group");
- group_ = g;
-}
-
-ACE_INLINE
-u_long
-ACE_ATM_Params::get_flags( void )
-{
- ACE_TRACE ("ACE_ATM_Params::get_flags");
- return flags_;
-}
-
-ACE_INLINE
-void
-ACE_ATM_Params::set_flags( u_long flags)
-{
- ACE_TRACE ("ACE_ATM_Params::set_flags");
- flags_ = flags;
-}
-
-ACE_INLINE
-int
-ACE_ATM_Params::get_reuse_addr (void) const
-{
- ACE_TRACE ("ACE_ATM_Params::get_reuse_addr");
- return reuse_addr_;
-}
-
-ACE_INLINE
-void
-ACE_ATM_Params::set_reuse_addr (int reuse_addr)
-{
- ACE_TRACE ("ACE_ATM_Params::set_reuse_addr");
- reuse_addr_ = reuse_addr;
-}
-
-ACE_INLINE
-const char*
-ACE_ATM_Params::get_device (void) const
-{
- ACE_TRACE ("ACE_ATM_Params::get_device");
- return device_;
-}
-
-ACE_INLINE
-Param_Info*
-ACE_ATM_Params::get_info (void) const
-{
- ACE_TRACE ("ACE_ATM_Params::get_info");
- return info_;
-}
-
-ACE_INLINE
-void
-ACE_ATM_Params::set_info (Param_Info* info)
-{
- ACE_TRACE ("ACE_ATM_Params::set_info");
- info_ = info;
-}
-
-ACE_INLINE
-int
-ACE_ATM_Params::get_rw_flag (void) const
-{
- ACE_TRACE ("ACE_ATM_Params::get_rw_flag");
- return rw_flag_;
-}
-
-ACE_INLINE
-void
-ACE_ATM_Params::set_rw_flag (int rw_flag)
-{
- ACE_TRACE ("ACE_ATM_Params::set_rw_flag");
- rw_flag_ = rw_flag;
-}
-
-ACE_INLINE
-Param_Udata*
-ACE_ATM_Params::get_user_data (void) const
-{
- ACE_TRACE ("ACE_ATM_Params::get_user_data");
- return udata_;
-}
-
-ACE_INLINE
-void
-ACE_ATM_Params::set_user_data (Param_Udata *udata)
-{
- ACE_TRACE ("ACE_ATM_Params::set_user_data");
- udata_ = udata;
-}
-
-ACE_INLINE
-int
-ACE_ATM_Params::get_oflag (void) const
-{
- ACE_TRACE ("ACE_ATM_Params::get_oflag");
- return oflag_;
-}
-
-ACE_INLINE
-void
-ACE_ATM_Params::set_oflag (int oflag)
-{
- ACE_TRACE ("ACE_ATM_Params::set_oflag");
- oflag_ = oflag;
-}
-
diff --git a/ace/ATM_QoS.cpp b/ace/ATM_QoS.cpp
deleted file mode 100644
index ffdfe21413f..00000000000
--- a/ace/ATM_QoS.cpp
+++ /dev/null
@@ -1,633 +0,0 @@
-// $Id$
-
-#include "ace/ATM_QoS.h"
-
-ACE_RCSID(ace, ATM_QoS, "$Id$")
-
-#if defined (ACE_HAS_ATM)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/ATM_QoS.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2)
-#define BHLI_MAGIC "FORE_ATM"
-// This is line rate in cells/s for an OC-3 MM interface.
-const long ACE_ATM_QoS::LINE_RATE = 353207;
-const int ACE_ATM_QoS::OPT_FLAGS_CPID = 0x1;
-const int ACE_ATM_QoS::OPT_FLAGS_PMP = 0x2;
-const int ACE_ATM_QoS::DEFAULT_SELECTOR = 0x99;
-const int ACE_ATM_QoS::DEFAULT_PKT_SIZE = 8192;
-#elif defined (ACE_HAS_LINUX_ATM)
-//pbrandao:for Linux:
-//pbrandao:for now stick with current definitions
-//pbrandao:see if later need to change
-const long ACE_ATM_QoS::LINE_RATE = 353207;
-const int ACE_ATM_QoS::OPT_FLAGS_CPID = 0x1;
-const int ACE_ATM_QoS::OPT_FLAGS_PMP = 0x2;
-const int ACE_ATM_QoS::DEFAULT_SELECTOR = 0x99;
-const int ACE_ATM_QoS::DEFAULT_PKT_SIZE = 8192;
-#else
-const long ACE_ATM_QoS::LINE_RATE = 0L;
-const int ACE_ATM_QoS::OPT_FLAGS_CPID = 0;
-const int ACE_ATM_QoS::OPT_FLAGS_PMP = 0;
-const int ACE_ATM_QoS::DEFAULT_SELECTOR = 0x0;
-const int ACE_ATM_QoS::DEFAULT_PKT_SIZE = 0;
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_ATM_QoS)
-
-ACE_ATM_QoS::ACE_ATM_QoS (int pktSize)
-{
- ACE_TRACE ("ACE_ATM_QoS::ACE_ATM_QoS");
-#if defined (ACE_HAS_LINUX_ATM)
- ACE_OS::memset(&qos_, 0, sizeof(qos_));
- qos_.aal = ATM_PROTOCOL_DEFAULT;
- qos_.rxtp.traffic_class = ATM_ANYCLASS;
- qos_.rxtp.max_sdu = pktSize;
- qos_.txtp.traffic_class = ATM_ANYCLASS;
- qos_.txtp.max_sdu = pktSize;
-#else
- ACE_UNUSED_ARG (pktSize);
-#endif /* ACE_HAS_LINUX_ATM */
-}
-
-ACE_ATM_QoS::ACE_ATM_QoS(int rate,
- int pktSize)
-{
- ACE_TRACE( "ACE_ATM_QoS::ACE_ATM_QoS" );
-#if defined (ACE_HAS_FORE_ATM_WS2)
- AAL_PARAMETERS_IE ie_aalparams;
- ATM_TRAFFIC_DESCRIPTOR_IE ie_td;
- ATM_BROADBAND_BEARER_CAPABILITY_IE ie_bbc;
- ATM_QOS_CLASS_IE ie_qos;
- Q2931_IE *ie_ptr;
- int size;
-
- // Setting up cbr parameters ...
- ie_aalparams.AALType = AALTYPE_5;
- ie_aalparams.AALSpecificParameters.AAL5Parameters.ForwardMaxCPCSSDUSize
- = pktSize; // was 1516;
- ie_aalparams.AALSpecificParameters.AAL5Parameters.BackwardMaxCPCSSDUSize
- = pktSize; // was 1516;
- ie_aalparams.AALSpecificParameters.AAL5Parameters.Mode = AAL5_MODE_MESSAGE;
- ie_aalparams.AALSpecificParameters.AAL5Parameters.SSCSType = AAL5_SSCS_NULL;
-
- size = sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(AAL_PARAMETERS_IE);
-
- ie_td.Forward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT;
- ie_td.Forward.PeakCellRate_CLP01 = rate;
- ie_td.Forward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT;
- ie_td.Forward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT;
- ie_td.Forward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT;
- ie_td.Forward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT;
- ie_td.Forward.Tagging = SAP_FIELD_ABSENT;
-
- ie_td.Backward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT;
- ie_td.Backward.PeakCellRate_CLP01 = rate;
- ie_td.Backward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT;
- ie_td.Backward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT;
- ie_td.Backward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT;
- ie_td.Backward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT;
- ie_td.Backward.Tagging = SAP_FIELD_ABSENT;
-
- ie_td.BestEffort = 0; // Note: this must be set to zero for CBR.
-
- size += sizeof( Q2931_IE_TYPE )
- + sizeof( ULONG )
- + sizeof( ATM_TRAFFIC_DESCRIPTOR_IE );
-
- ie_bbc.BearerClass = BCOB_X;
- ie_bbc.TrafficType = TT_CBR;
- ie_bbc.TimingRequirements = TR_END_TO_END;
- ie_bbc.ClippingSusceptability = CLIP_NOT;
- ie_bbc.UserPlaneConnectionConfig = UP_P2P;
-
- size += sizeof( Q2931_IE_TYPE )
- + sizeof( ULONG )
- + sizeof( ATM_BROADBAND_BEARER_CAPABILITY_IE );
-
- ie_qos.QOSClassForward = QOS_CLASS1;
- ie_qos.QOSClassBackward = QOS_CLASS1; // This may not be really used
- // since we do only simplex data xfer.
-
- size += sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(ATM_QOS_CLASS_IE);
-
- qos_.ProviderSpecific.buf = (char *) ACE_OS::malloc(size);
- if (qos_.ProviderSpecific.buf == 0) {
- ACE_ERROR((LM_ERROR,
- ACE_LIB_TEXT ("ACE_ATM_QoS::ACE_ATM_QoS: Unable to allocate %d bytes for qos_.ProviderSpecific.buf\n"),
- size));
- return;
- }
- qos_.ProviderSpecific.len = size;
- ACE_OS::memset(qos_.ProviderSpecific.buf, 0, size);
-
- ie_ptr = (Q2931_IE *) qos_.ProviderSpecific.buf;
- ie_ptr->IEType = IE_AALParameters;
- ie_ptr->IELength = sizeof( Q2931_IE_TYPE )
- + sizeof( ULONG )
- + sizeof( AAL_PARAMETERS_IE );
- ACE_OS::memcpy(ie_ptr->IE, &ie_aalparams, sizeof(AAL_PARAMETERS_IE));
-
- ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength);
- ie_ptr->IEType = IE_TrafficDescriptor;
- ie_ptr->IELength = sizeof( Q2931_IE_TYPE )
- + sizeof( ULONG )
- + sizeof( ATM_TRAFFIC_DESCRIPTOR_IE );
- ACE_OS::memcpy(ie_ptr->IE, &ie_td, sizeof(ATM_TRAFFIC_DESCRIPTOR_IE));
-
- ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength);
- ie_ptr->IEType = IE_BroadbandBearerCapability;
- ie_ptr->IELength = sizeof( Q2931_IE_TYPE )
- + sizeof( ULONG )
- + sizeof( ATM_BROADBAND_BEARER_CAPABILITY_IE );
- ACE_OS::memcpy(ie_ptr->IE,
- &ie_bbc,
- sizeof(ATM_BROADBAND_BEARER_CAPABILITY_IE));
-
- ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength);
- ie_ptr->IEType = IE_QOSClass;
- ie_ptr->IELength = sizeof( Q2931_IE_TYPE )
- + sizeof( ULONG )
- + sizeof( ATM_QOS_CLASS_IE );
- ACE_OS::memcpy(ie_ptr->IE, &ie_qos, sizeof(ATM_QOS_CLASS_IE));
-
- // qos_.SendingFlowspec.TokenRate = 0xffffffff;
- // qos_.SendingFlowspec.TokenBucketSize = 0xffffffff;
- // qos_.SendingFlowspec.PeakBandwidth = 0xffffffff;
- // qos_.SendingFlowspec.Latency = 0xffffffff;
- // qos_.SendingFlowspec.DelayVariation = 0xffffffff;
- // qos_.SendingFlowspec.ServiceType = SERVICETYPE_BESTEFFORT;
- // This will most probably be ignored by the service provider.
- // qos_.SendingFlowspec.MaxSduSize = 0xffffffff;
- // qos_.SendingFlowspec.MinimumPolicedSize = 0xffffffff;
-
- // qos_.ReceivingFlowspec.TokenRate = 0xffffffff;
- // qos_.ReceivingFlowspec.TokenBucketSize = 0xffffffff;
- // qos_.ReceivingFlowspec.PeakBandwidth = 0xffffffff;
- // qos_.ReceivingFlowspec.Latency = 0xffffffff;
- // qos_.ReceivingFlowspec.DelayVariation = 0xffffffff;
- // qos_.ReceivingFlowspec.ServiceType = SERVICETYPE_BESTEFFORT;
- // This will most probably be ignored by the service provider.
- // qos_.ReceivingFlowspec.MaxSduSize = 0xffffffff;
- // qos_.ReceivingFlowspec.MinimumPolicedSize = 0;
-
- ACE_Flow_Spec send_fspec( 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- SERVICETYPE_BESTEFFORT,
- // This will most probably ignored by SP.
- 0xffffffff,
- 0xffffffff,
- 15,
- ACE_DEFAULT_THREAD_PRIORITY ),
- recv_fspec( 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- SERVICETYPE_BESTEFFORT,
- // This will most probably ignored by SP.
- 0xffffffff,
- 0,
- 15,
- ACE_DEFAULT_THREAD_PRIORITY );
-
- qos_.sending_flowspec (send_fspec);
- qos_.receiving_flowspec (recv_fspec);
-#elif defined (ACE_HAS_FORE_ATM_XTI)
- ACE_UNUSED_ARG (rate);
- ACE_UNUSED_ARG (pktSize);
-#elif defined (ACE_HAS_LINUX_ATM)
- ACE_OS::memset(&qos_,
- 0,
- sizeof(qos_));
- qos_.aal = ATM_PROTOCOL_DEFAULT;
- qos_.rxtp.max_sdu = pktSize;
-
- if (rate > 0) {
- qos_.rxtp.pcr = rate;
- qos_.rxtp.traffic_class = ATM_CBR;
- qos_.txtp.traffic_class = ATM_CBR;
- qos_.txtp.pcr = rate;
- }
- else {
- qos_.rxtp.traffic_class = ATM_UBR;
- qos_.txtp.traffic_class = ATM_UBR;
- }
-
- qos_.txtp.max_sdu = pktSize;
-#else
- ACE_UNUSED_ARG (rate);
-#endif /* ACE_HAS_FORE_ATM_WS2 || ACE_HAS_FORE_ATM_XTI || ACE_HAS_LINUX_ATM */
-}
-
-void
-ACE_ATM_QoS::set_cbr_rate (int rate,
- int pktSize)
-{
- ACE_TRACE ("ACE_ATM_QoS::set_cbr_rate");
-#if defined (ACE_HAS_FORE_ATM_WS2)
- /*
- AAL_PARAMETERS_IE ie_aalparams;
- ATM_TRAFFIC_DESCRIPTOR_IE ie_td;
- ATM_BROADBAND_BEARER_CAPABILITY_IE ie_bbc;
- ATM_QOS_CLASS_IE ie_qos;
- Q2931_IE *ie_ptr;
- int size;
- */
-
- ACE_OS::printf( "ATM_QoS(set_cbr_rate): set rate to %d c/s\n", rate );
-
- // Setting up cbr parameters ...
- /*
- FORE has changed this - we no longer specify QoS this way
- ie_aalparams.AALType = AALTYPE_5;
- ie_aalparams.AALSpecificParameters.AAL5Parameters.ForwardMaxCPCSSDUSize
- = pktSize; // was 1516;
- ie_aalparams.AALSpecificParameters.AAL5Parameters.BackwardMaxCPCSSDUSize
- = pktSize; // was 1516;
- ie_aalparams.AALSpecificParameters.AAL5Parameters.Mode = AAL5_MODE_MESSAGE;
- ie_aalparams.AALSpecificParameters.AAL5Parameters.SSCSType = AAL5_SSCS_NULL;
-
- size = sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(AAL_PARAMETERS_IE);
-
- ie_td.Forward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT;
- ie_td.Forward.PeakCellRate_CLP01 = rate;
- ie_td.Forward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT;
- ie_td.Forward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT;
- ie_td.Forward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT;
- ie_td.Forward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT;
- ie_td.Forward.Tagging = SAP_FIELD_ABSENT;
-
- ie_td.Backward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT;
- ie_td.Backward.PeakCellRate_CLP01 = rate;
- ie_td.Backward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT;
- ie_td.Backward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT;
- ie_td.Backward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT;
- ie_td.Backward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT;
- ie_td.Backward.Tagging = SAP_FIELD_ABSENT;
-
- ie_td.BestEffort = 0; // Note: this must be set to zero for CBR.
-
- size += sizeof( Q2931_IE_TYPE ) +
- sizeof( ULONG ) +
- sizeof( ATM_TRAFFIC_DESCRIPTOR_IE );
-
- ie_bbc.BearerClass = BCOB_X;
- ie_bbc.TrafficType = TT_CBR;
- ie_bbc.TimingRequirements = TR_END_TO_END;
- ie_bbc.ClippingSusceptability = CLIP_NOT;
- ie_bbc.UserPlaneConnectionConfig = UP_P2P;
-
- size += sizeof(Q2931_IE_TYPE) +
- sizeof(ULONG) +
- sizeof(ATM_BROADBAND_BEARER_CAPABILITY_IE);
-
- ie_qos.QOSClassForward = QOS_CLASS1;
- ie_qos.QOSClassBackward = QOS_CLASS1; // This may not be really used
- // since we only simplex data xfer.
-
- size += sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(ATM_QOS_CLASS_IE);
-
- qos_.ProviderSpecific.buf = (char *) ACE_OS::malloc(size);
- if (qos_.ProviderSpecific.buf == 0) {
- ACE_ERROR((LM_ERROR,
- ACE_LIB_TEXT ("ACE_ATM_QoS::ACE_ATM_QoS: Unable to allocate %d bytes for qos_.ProviderSpecific.buf\n"),
- size));
- return;
- }
- qos_.ProviderSpecific.len = size;
- ACE_OS::memset(qos_.ProviderSpecific.buf, 0, size);
-
- ie_ptr = (Q2931_IE *) qos_.ProviderSpecific.buf;
- ie_ptr->IEType = IE_AALParameters;
- ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) +
- sizeof( ULONG ) +
- sizeof( AAL_PARAMETERS_IE );
- ACE_OS::memcpy(ie_ptr->IE, &ie_aalparams, sizeof(AAL_PARAMETERS_IE));
-
- ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength);
- ie_ptr->IEType = IE_TrafficDescriptor;
- ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) +
- sizeof( ULONG ) +
- sizeof( ATM_TRAFFIC_DESCRIPTOR_IE );
- ACE_OS::memcpy(ie_ptr->IE, &ie_td, sizeof(ATM_TRAFFIC_DESCRIPTOR_IE));
-
- ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength);
- ie_ptr->IEType = IE_BroadbandBearerCapability;
- ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) +
- sizeof( ULONG ) +
- sizeof( ATM_BROADBAND_BEARER_CAPABILITY_IE );
- ACE_OS::memcpy( ie_ptr->IE,
- &ie_bbc,
- sizeof( ATM_BROADBAND_BEARER_CAPABILITY_IE ));
-
- ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength);
- ie_ptr->IEType = IE_QOSClass;
- ie_ptr->IELength = sizeof(Q2931_IE_TYPE) + sizeof(ULONG) +
- sizeof(ATM_QOS_CLASS_IE);
- ACE_OS::memcpy(ie_ptr->IE, &ie_qos, sizeof(ATM_QOS_CLASS_IE));
- */
-
- const int BYTES_PER_ATM_CELL = 53;
- ACE_OS::memset(&qos_, 0, sizeof(ATM_QoS));
- // Setting the token rate sets the minimum rate. 3 Mbits/sec seems too high.
- // Certainly for Vaudeville audio, we only need about 1000 c/s which is
- // 424000 bits/sec which is 53000 bytes/sec.
- //qos_.SendingFlowspec.TokenRate = 3*(1024*128); // 3Mbits/sec
- qos_.SendingFlowspec.TokenRate = 53000; // 1000 cells/sec
- qos_.SendingFlowspec.TokenBucketSize = 32*1024; // our block size
- //ourQos.SendingFlowspec.PeakBandwidth = ourQos.SendingFlowspec.TokenRate;
- qos_.SendingFlowspec.ServiceType = SERVICETYPE_GUARANTEED;
- // Peak bandwidth is in bytes/sec. The rate is specified in cells/sec so
- // we need to convert from cells/sec to bytes/sec (i.e., multiply by 53).
- qos_.SendingFlowspec.PeakBandwidth = rate * BYTES_PER_ATM_CELL;
- qos_.SendingFlowspec.Latency = -1; // we don't care too much
- qos_.SendingFlowspec.DelayVariation = -1; // we don't care too much
- // no provider-specific data allowed on ATM
- qos_.ProviderSpecific.buf=0;
- qos_.ProviderSpecific.len=0;
- // unidirectional P2MP; we don't need to setup the Receiving flowspec
-
- //qos_.SendingFlowspec.TokenRate = 0xffffffff;
- //qos_.SendingFlowspec.TokenBucketSize = 0xffffffff;
- //qos_.SendingFlowspec.PeakBandwidth = 0xffffffff;
- //qos_.SendingFlowspec.Latency = 0xffffffff;
- //qos_.SendingFlowspec.DelayVariation = 0xffffffff;
- //qos_.SendingFlowspec.ServiceType = SERVICETYPE_BESTEFFORT;
- // This will most probably be ignored by the service provider.
- //qos_.SendingFlowspec.MaxSduSize = 0xffffffff;
- //qos_.SendingFlowspec.MinimumPolicedSize = 0xffffffff;
-
- //qos_.ReceivingFlowspec.TokenRate = 0xffffffff;
- //qos_.ReceivingFlowspec.TokenBucketSize = 0xffffffff;
- //qos_.ReceivingFlowspec.PeakBandwidth = 0xffffffff;
- //qos_.ReceivingFlowspec.Latency = 0xffffffff;
- //qos_.ReceivingFlowspec.DelayVariation = 0xffffffff;
- //qos_.ReceivingFlowspec.ServiceType = SERVICETYPE_BESTEFFORT;
- // This will most probably be ignored by the service provider.
- //qos_.ReceivingFlowspec.MaxSduSize = 0xffffffff;
- //qos_.ReceivingFlowspec.MinimumPolicedSize = 0;
-
- /*
- ACE_Flow_Spec send_fspec( 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- SERVICETYPE_BESTEFFORT,
- // This will most probably ignored by SP.
- 0xffffffff,
- 0xffffffff,
- 15,
- ACE_DEFAULT_THREAD_PRIORITY ),
- recv_fspec( 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- SERVICETYPE_BESTEFFORT,
- // This will most probably ignored by SP.
- 0xffffffff,
- 0,
- 15,
- ACE_DEFAULT_THREAD_PRIORITY );
-
- qos_.sending_flowspec( send_fspec );
- qos_.receiving_flowspec( recv_fspec );
- */
-#elif defined (ACE_HAS_FORE_ATM_XTI)
- ACE_UNUSED_ARG (rate);
- ACE_UNUSED_ARG (pktSize);
-#elif defined (ACE_HAS_LINUX_ATM)
- ACE_UNUSED_ARG (pktSize);
-
- qos_.rxtp.traffic_class = ATM_CBR;
- qos_.rxtp.pcr = rate;
- qos_.txtp.traffic_class = ATM_CBR;
- qos_.txtp.pcr = rate;
-#else
- ACE_UNUSED_ARG (rate);
-#endif /* ACE_HAS_FORE_ATM_WS2 || ACE_HAS_FORE_ATM_XTI || ACE_HAS_LINUX_ATM */
-}
-
-void
-ACE_ATM_QoS::dump (void) const
-{
- ACE_TRACE ("ACE_ATM_QoS::dump");
-}
-
-void
-ACE_ATM_QoS::set_rate (ACE_HANDLE fd,
- int rate,
- int flags)
-{
- ACE_TRACE ("ACE_ATM_QoS::set_rate");
-#if defined (ACE_HAS_FORE_ATM_WS2) || defined (ACE_HAS_LINUX_ATM)
- set_cbr_rate( rate );
-
- ACE_UNUSED_ARG( fd );
- ACE_UNUSED_ARG( flags );
-#elif defined (ACE_HAS_FORE_ATM_XTI)
- long optlen = 0;
- qos_.buf = construct_options(fd,
- rate,
- flags,
- &optlen);
- qos_.len = optlen;
-#else
- ACE_UNUSED_ARG (rate);
-#endif /* ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM || ACE_HAS_FORE_ATM_XTI */
-}
-
-char*
-ACE_ATM_QoS::construct_options (ACE_HANDLE fd,
- int rate,
- int flags,
- long *len)
-{
-#if defined (ACE_HAS_FORE_ATM_WS2) || defined (ACE_HAS_LINUX_ATM)
- ACE_UNUSED_ARG (fd);
- ACE_UNUSED_ARG (rate);
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (len);
- return (0);
-#elif defined (ACE_HAS_FORE_ATM_XTI)
- struct t_opthdr *popt;
- char *buf;
- int qos_cells;
- struct t_info info;
-
- if (ACE_OS::t_getinfo (fd, &info) == -1)
- {
- ACE_OS::t_error ("t_getinfo");
- return 0;
- }
-
- buf = (char *) ACE_OS::malloc (info.options);
-
- if (buf == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Unable to allocate %d bytes for options\n"),
- info.options),
- 0);
-
- popt = (struct t_opthdr *) buf;
-
- if (flags & OPT_FLAGS_CPID)
- {
- // This constructs the T_ATM_ORIG_ADDR option, which is used to
- // signal the UNI 3.1 Calling Party ID Information Element.
- t_atm_addr *source_addr;
-
- popt->len = sizeof (struct t_opthdr) + sizeof (t_atm_addr);
- popt->level = T_ATM_SIGNALING;
- popt->name = T_ATM_ORIG_ADDR;
- popt->status = 0;
-
- source_addr =
- (t_atm_addr *)((char *) popt + sizeof (struct t_opthdr));
-
- source_addr->address_format = T_ATM_ENDSYS_ADDR;
- source_addr->address_length = ATMNSAP_ADDR_LEN;
-
- ATMSAPAddress local_addr;
- struct t_bind boundaddr;
-
- boundaddr.addr.maxlen = sizeof(local_addr);
- boundaddr.addr.buf = (char *) &local_addr;
-
- //if (ACE_OS::t_getprotaddr(fd, &boundaddr, 0) < 0) {
- if (ACE_OS::t_getname(fd,
- &boundaddr.addr,
- LOCALNAME) < 0)
- {
- ACE_OS::t_error("t_getname (local_address)");
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Can't get local address!\n")));
- ACE_OS::free (buf);
- return 0;
- }
-
- ACE_OS::memcpy(source_addr->address,
- local_addr.sap.t_atm_sap_addr.address,
- ATMNSAP_ADDR_LEN);
-
- popt = T_OPT_NEXTHDR (buf, info.options , popt);
- }
-
- // This constructs all options necessary (bearer cap., QoS, and
- // Traffic Descriptor) to signal for a CBR connection with the
- // specified QoS in kbit/sec., and/or specify a PMP connection.
-
- // For FORE 200e cards, the adapter shapes traffic to CBR with rate
- // equal to PCR CLP=0+1 (traffic.forward.PCR_all_traffic)
-
- qos_cells = (rate * 1000) / (48*8);
-
- if ((qos_cells > 0 && qos_cells < LINE_RATE)
- || (ACE_BIT_ENABLED (flags, OPT_FLAGS_PMP)))
- {
- struct t_atm_bearer *bearer;
- struct t_atm_traffic *traffic;
-
- // T_ATM_BEARER_CAP: Broadband bearer capability
- popt->len = sizeof (struct t_opthdr) + sizeof (struct t_atm_bearer);
- popt->level = T_ATM_SIGNALING;
- popt->name = T_ATM_BEARER_CAP;
- popt->status = 0;
-
- bearer = (struct t_atm_bearer *)((char *) popt +
- sizeof (struct t_opthdr));
- bearer->bearer_class = T_ATM_CLASS_X;
-
- if (qos_cells)
- {
- bearer->traffic_type = T_ATM_CBR;
- bearer->timing_requirements = T_ATM_END_TO_END;
- }
- else
- {
- bearer->traffic_type = 0; // UBR
- bearer->timing_requirements = 0;
- }
- bearer->clipping_susceptibility = T_ATM_NULL;
-
- if (ACE_BIT_ENABLED (flags, OPT_FLAGS_PMP))
- bearer->connection_configuration = T_ATM_1_TO_MANY;
- else
- bearer->connection_configuration = T_ATM_1_TO_1;
-
- popt = T_OPT_NEXTHDR (buf, info.options, popt);
-
- // T_ATM_TRAFFIC: traffic descriptor
- popt->len = sizeof (struct t_opthdr) + sizeof (struct t_atm_traffic);
- popt->level = T_ATM_SIGNALING;
- popt->name = T_ATM_TRAFFIC;
- popt->status = 0;
-
- traffic = (struct t_atm_traffic *)((char *) popt +
- sizeof (struct t_opthdr));
-
- traffic->forward.PCR_high_priority = T_ATM_ABSENT;
- traffic->forward.PCR_all_traffic = qos_cells ? qos_cells : LINE_RATE;
- traffic->forward.SCR_high_priority = T_ATM_ABSENT;
- traffic->forward.SCR_all_traffic = T_ATM_ABSENT;
- traffic->forward.MBS_high_priority = T_ATM_ABSENT;
- traffic->forward.MBS_all_traffic = T_ATM_ABSENT;
- traffic->forward.tagging = T_NO;
-
- traffic->backward.PCR_high_priority = T_ATM_ABSENT;
- traffic->backward.PCR_all_traffic =
- (ACE_BIT_ENABLED (flags, OPT_FLAGS_PMP))
- ? 0 : qos_cells ? qos_cells : LINE_RATE;
- traffic->backward.SCR_high_priority = T_ATM_ABSENT;
- traffic->backward.SCR_all_traffic = T_ATM_ABSENT;
- traffic->backward.MBS_high_priority = T_ATM_ABSENT;
- traffic->backward.MBS_all_traffic = T_ATM_ABSENT;
- traffic->backward.tagging = T_NO;
-
- traffic->best_effort = qos_cells ? T_NO : T_YES;
-
- popt = T_OPT_NEXTHDR (buf,
- info.options,
- popt);
- }
-
- if (qos_cells > 0 && qos_cells < LINE_RATE)
- {
- struct t_atm_qos *qos;
-
- // T_ATM_QOS: Quality of Service
- popt->len = sizeof (struct t_opthdr) + sizeof (struct t_atm_qos);
- popt->level = T_ATM_SIGNALING;
- popt->name = T_ATM_QOS;
- popt->status = 0;
-
- qos = (struct t_atm_qos *)((char *) popt + sizeof (struct t_opthdr));
- qos->coding_standard = T_ATM_ITU_CODING;
- qos->forward.qos_class = T_ATM_QOS_CLASS_1;
- qos->backward.qos_class = T_ATM_QOS_CLASS_1;
-
- popt = T_OPT_NEXTHDR (buf, info.options, popt);
- }
-
- // Return actual size of options and option buffer to user.
- *len = (char *) popt - buf;
-
- return buf;
-#else
- ACE_UNUSED_ARG (fd);
- ACE_UNUSED_ARG (rate);
- ACE_UNUSED_ARG (flag);
- ACE_UNUSED_ARG (len);
- return (0);
-#endif /* ACE_HAS_FORE_ATM_WS2 */
-}
-
-#endif /* ACE_HAS_ATM */
-
diff --git a/ace/ATM_QoS.h b/ace/ATM_QoS.h
deleted file mode 100644
index 02ad18676da..00000000000
--- a/ace/ATM_QoS.h
+++ /dev/null
@@ -1,103 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file ATM_QoS.h
- *
- * $Id$
- *
- * @author Joe Hoffert
- */
-//==========================================================================
-
-
-#ifndef ACE_ATM_QoS_H
-#define ACE_ATM_QoS_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined(ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_ATM)
-
-#if defined (ACE_HAS_FORE_ATM_WS2)
-// just map to WS2 GQOS struct
-typedef ACE_QoS ATM_QoS;
-#elif defined (ACE_HAS_FORE_ATM_XTI)
-typedef struct netbuf ATM_QoS;
-#elif defined (ACE_HAS_LINUX_ATM)
-#include /**/ "atm.h"
-#include "ATM_Params.h"
-typedef struct atm_qos ATM_QoS;
-#else
-typedef int ATM_QoS;
-#endif /* ACE_HAS_FORE_ATM_WS2 || ACE_HAS_FORE_ATM_XTI || ACE_HAS_LINUX_ATM */
-
-/**
- * @class ACE_ATM_QoS
- *
- * @brief Define the QoS parameters for ATM
- *
- * This class wraps up QoS parameters for both ATM/XTI and
- * ATM/WinSock2 to make the mechanism for the ATM protocol
- * transparent.
- */
-class ACE_Export ACE_ATM_QoS
-{
-public:
- // Constants used for ATM options
- static const long LINE_RATE;
- static const int OPT_FLAGS_CPID;
- static const int OPT_FLAGS_PMP;
- static const int DEFAULT_SELECTOR;
- static const int DEFAULT_PKT_SIZE;
-
- // = Initializattion and termination methods.
- /// Default constructor.
- ACE_ATM_QoS(int = DEFAULT_PKT_SIZE);
-
- /// Constructor with a CBR rate.
- ACE_ATM_QoS(int,
- int = DEFAULT_PKT_SIZE);
-
- ~ACE_ATM_QoS ();
-
- /// Set the rate.
- void set_rate (ACE_HANDLE,
- int,
- int);
-
- /// Set CBR rate in cells per second.
- void set_cbr_rate (int,
- int = DEFAULT_PKT_SIZE);
-
- /// Get ATM_QoS struct.
- ATM_QoS get_qos (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Construct QoS options.
- char* construct_options(ACE_HANDLE,
- int,
- int,
- long*);
-
-private:
- ATM_QoS qos_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/ATM_QoS.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_ATM */
-#include "ace/post.h"
-#endif /* ACE_ATM_QoS_H */
diff --git a/ace/ATM_QoS.i b/ace/ATM_QoS.i
deleted file mode 100644
index 349fb962027..00000000000
--- a/ace/ATM_QoS.i
+++ /dev/null
@@ -1,17 +0,0 @@
-// $Id$
-
-// ATM_QoS.i
-
-ACE_INLINE
-ACE_ATM_QoS::~ACE_ATM_QoS ()
-{
- ACE_TRACE ("ACE_ATM_QoS::~ACE_ATM_QoS");
-}
-
-ACE_INLINE
-ATM_QoS
-ACE_ATM_QoS::get_qos (void)
-{
- ACE_TRACE ("ACE_ATM_QoS::get_qos");
- return qos_;
-}
diff --git a/ace/ATM_Stream.cpp b/ace/ATM_Stream.cpp
deleted file mode 100644
index 0bd8c537eac..00000000000
--- a/ace/ATM_Stream.cpp
+++ /dev/null
@@ -1,292 +0,0 @@
-// $Id$
-
-#include "ace/ATM_Stream.h"
-
-ACE_RCSID (ace, ATM_Stream, "$Id$")
-
-#if defined (ACE_HAS_ATM)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/ATM_Stream.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE (ACE_ATM_Stream)
-
-void
-ACE_ATM_Stream::dump (void) const
-{
- ACE_TRACE ("ACE_ATM_Stream::dump");
-}
-
-char*
-ACE_ATM_Stream::get_peer_name (void) const
-{
- ACE_TRACE ("ACE_ATM_Stream::get_peer_name");
-#if defined (ACE_HAS_FORE_ATM_XTI)
- // // Use t_getprotaddr for XTI/ATM
- // struct t_bind *localaddr
- // = (struct t_bind *) ACE_OS::t_alloc (get_handle (),
- // T_BIND,
- // T_ADDR);
- // struct t_bind *peeraddr
- // = (struct t_bind *) ACE_OS::t_alloc (get_handle (),
- // T_BIND,
- // T_ADDR);
- // ::t_getprotaddr (get_handle (),
- // localaddr,
- // peeraddr);
-
- // char* connected_name = (char*) ACE_OS::malloc (peeraddr->addr.len + 1);
- // ACE_OS::strcpy (connected_name,
- // peeraddr->addr.buf);
- // ACE_OS::t_free ((char *) localaddr,
- // T_BIND);
- // ACE_OS::t_free ((char *) peeraddr,
- // T_BIND);
- // return (connected_name);
-
-#error "This doesn't seem to work. May need to jimmy-rig something with the"
-#error "/etc/xti_hosts file - Ugh!"
-
- ACE_ATM_Addr sa;
- struct netbuf name;
- name.maxlen = sa.get_size ();
- name.buf = (char *) sa.get_addr ();
- ACE_OS::t_getname (this->get_handle (), &name, REMOTENAME);
- // ACE_OS::ioctl (this->get_handle (),
- // TI_GETPEERNAME,
- // &name);
- return (name.buf);
-
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- // Use getpeername for WinSock2.
- struct sockaddr_atm name;
- ACE_OS::memset (&name, 0, sizeof (name));
- int nameSize = sizeof (name);
-
- if (ACE_OS::getpeername (this->get_handle (),
- (struct sockaddr *) &name,
- &nameSize) != 0) {
- return 0;
- }
-
- char buffer[256];
- for (unsigned int index = 0; index < ATM_ADDR_SIZE - 1; index++) {
- buffer[ index * 3 ] = '\0';
- sprintf (buffer, "%s%02x.", buffer, name.satm_number.Addr[ index ]);
- }
- buffer[ (ATM_ADDR_SIZE - 1) * 3 ] = '\0';
- sprintf (buffer, "%s%02x.", buffer, 0);
- buffer[ ATM_ADDR_SIZE * 3 - 1 ] = '\0';
- for (index = 0; index < ACE_OS::strlen (buffer); ++index)
- buffer[index] = tolower (buffer[index]);
-
- ifstream atm_hosts ("C:/WINNT/atmhosts");
- assert (atm_hosts.is_open ());
-
- // Find the host address in the ATM hosts file and return the
- // host name
- char line[256];
- char *host_ptr, *host_name = 0;
- ACE_NEW_RETURN (host_name, char[256], 0);
- while (!atm_hosts.eof ()) {
- atm_hosts.getline (line, 256);
- // Convert the line to lower case to ease comparison
- for (index = 0; index < ACE_OS::strlen (line); ++index)
- line[index] = tolower (line[index]);
- if (ACE_OS::strstr (line, buffer) != 0)
- {
- char *strtok_p;
- // Grab the second token which is the host name
- ACE_OS::strtok_r (line, " \t", &strtok_p);
- host_ptr = strtok (0, " \t", &strtok_p);
- ACE_OS::strcpy (host_name, host_ptr);
- break;
- }
- }
-
- return host_name;
-#elif defined (ACE_HAS_LINUX_ATM)
- ATM_Addr name;
- int nameSize = sizeof (name.sockaddratmsvc);
-
- if (ACE_OS::getpeername (this->get_handle (),
- (struct sockaddr *) & (name.sockaddratmsvc),
- &nameSize) < 0) {
- ACE_OS::perror ("ACE_ATM_Stream (get_peer_name) : ");
- return 0;
- }
-
- static ACE_TCHAR buffer[MAX_ATM_ADDR_LEN + 1];
- int total_len;
- if ((total_len = atm2text (buffer,sizeof buffer,
- (struct sockaddr *) & (name.sockaddratmsvc),
- A2T_PRETTY|A2T_NAME)) < 0) {
- ACE_DEBUG ((LM_DEBUG,ACE_LIB_TEXT ("ACE_ATM_Stream (get_peer_name) :%d"),errno));
- return 0;
- }
-
- return (char*) buffer;
-#else
- return 0;
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
-}
-
-ACE_HANDLE
-ACE_ATM_Stream::get_handle (void) const
-{
- ACE_TRACE ("ACE_ATM_Stream::get_handle");
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) || defined (ACE_HAS_LINUX_ATM)
- return stream_.get_handle ();
-#else
- return 0;
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
-}
-
-int
-ACE_ATM_Stream::get_vpi_vci (ACE_UINT16 &vpi,
- ACE_UINT16 &vci) const
-{
- ACE_TRACE ("ACE_ATM_Stream::get_vpi_vci");
-#if defined (ACE_HAS_FORE_ATM_XTI)
- struct t_atm_conn_prop conn_prop;
- char* connect_opts = (char *) &conn_prop;
- int opt_size = sizeof (t_atm_conn_prop);
- struct t_info info;
- struct t_optmgmt opt_req, opt_ret;
-
- if (ACE_OS::t_getinfo (stream_.get_handle (),
- &info) < 0)
- {
- ACE_OS::t_error ("t_getinfo");
- return -1;
- }
-
- char *buf_req = (char *) ACE_OS::malloc (info.options);
- if (buf_req == 0)
- {
- ACE_OS::fprintf (stderr,
- "Unable to allocate %ld bytes for options\n",
- info.options);
- return -1;
- }
-
- char *buf_ret = (char *) ACE_OS::malloc (info.options);
- if (buf_ret == 0)
- {
- ACE_OS::fprintf (stderr,
- "Unable to allocate %ld bytes for options\n",
- info.options);
- return -1;
- }
-
- ACE_OS::memset (&opt_req, 0, sizeof (opt_req));
- ACE_OS::memset (&opt_ret, 0, sizeof (opt_ret));
-
- struct t_opthdr *popt = (struct t_opthdr *) buf_req;
- struct t_opthdr *popt_ret = (struct t_opthdr *) buf_ret;
-
- popt->len= sizeof (struct t_opthdr) + opt_size;
-
- // We are only concerned with SVCs so no other check or values are needed
- // here.
- popt->level = T_ATM_SIGNALING;
- popt->name = T_ATM_CONN_PROP;
- popt->status = 0;
-
- opt_req.opt.len = popt->len;
- opt_req.opt.buf = (char *) popt;
- opt_req.flags = T_CURRENT;
-
- popt = T_OPT_NEXTHDR (buf_req,
- info.options,
- popt);
- opt_ret.opt.maxlen = info.options;
- opt_ret.opt.buf = (char *) popt_ret;
-
- if (ACE_OS::t_optmgmt (stream_.get_handle (),
- &opt_req,
- &opt_ret) < 0) {
- ACE_OS::t_error ("t_optmgmt");
- return -1;
- }
-
- ACE_OS::memcpy (connect_opts,
- (char *) popt_ret + sizeof (struct t_opthdr),
- opt_size);
-
- ACE_OS::free (buf_ret);
- ACE_OS::free (buf_req);
-
- vpi = conn_prop.vpi;
- vci = conn_prop.vci;
- return (0);
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- ATM_CONNECTION_ID connID;
- DWORD bytes = 0;
-
- if (::WSAIoctl ((int) this -> get_handle (),
- SIO_GET_ATM_CONNECTION_ID,
- 0,
- 0,
- (LPVOID) &connID,
- sizeof (ATM_CONNECTION_ID),
- &bytes,
- 0,
- 0)
- == SOCKET_ERROR) {
- ACE_OS::printf ("Error: WSAIoctl %d\n", WSAGetLastError ());
- }
-
- vpi = (ACE_UINT16) connID.VPI;
- vci = (ACE_UINT16) connID.VCI;
-
- return 0;
-#elif defined (ACE_HAS_LINUX_ATM)
-#if defined (SO_ATMPVC) /* atm version>=0.62 */
- struct sockaddr_atmpvc mypvcaddr;
- int addrpvclen = sizeof (mypvcaddr);
- if (ACE_OS::getsockopt (stream_.get_handle (),
- SOL_ATM,
- SO_ATMPVC,
- ACE_reinterpret_cast (char*,&mypvcaddr),
- &addrpvclen) < 0) {
- ACE_DEBUG (LM_DEBUG,
- ACE_LIB_TEXT ("ACE_ATM_Stream::get_vpi_vci: getsockopt %d\n"),
- errno);
- return -1;
- }
- vpi = (ACE_UINT16) mypvcaddr.sap_addr.vpi;
- vci = (ACE_UINT16) mypvcaddr.sap_addr.vci;
-
- return 0;
-#elif defined (SO_VCID) /* patch for atm version 0.59 */
- struct atm_vcid mypvcid;
- int pvcidlen = sizeof (mypvcid);
- if (ACE_OS::getsockopt (stream_.get_handle (),
- SOL_ATM,SO_VCID,
- ACE_reinterpret_cast (char*,&mypvcid),
- &pvcidlen) < 0) {
- ACE_DEBUG (LM_DEBUG,
- ACE_LIB_TEXT ("ACE_ATM_Stream::get_vpi_vci: getsockopt %d\n"),
- errno);
- return -1;
- }
- vpi = (ACE_UINT16) mypvcid.vpi;
- vci = (ACE_UINT16) mypvcid.vci;
-
- return 0;
-#else
- ACE_DEBUG (LM_DEBUG,
- ACE_LIB_TEXT ("ACE_ATM_Stream::get_vpi_vci: Not implemented in this ATM version. Update to >= 0.62\n Or patch 0.59"));
- ACE_UNUSED_ARG (vci);
- ACE_UNUSED_ARG (vpi);
-
- return (-1);
-#endif /* SO_ATMPVC || SO_VCID */
-#else
- return (-1);
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */
-}
-
-#endif /* ACE_HAS_ATM */
diff --git a/ace/ATM_Stream.h b/ace/ATM_Stream.h
deleted file mode 100644
index 4024cfb917b..00000000000
--- a/ace/ATM_Stream.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file ATM_Stream.h
- *
- * $Id$
- *
- * @author Joe Hoffert
- */
-//=============================================================================
-
-
-#ifndef ACE_ATM_STREAM_H
-#define ACE_ATM_STREAM_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_ATM)
-
-#include "ace/ATM_Addr.h"
-#include "ace/ATM_Params.h"
-
-#if defined (ACE_WIN32)
-#include "SOCK_Stream.h"
-typedef ACE_SOCK_Stream ATM_Stream;
-#else
-#include "TLI_Stream.h"
-typedef ACE_TLI_Stream ATM_Stream;
-#endif
-
-/**
- * @class ACE_ATM_Stream
- *
- * @brief Defines the member functions for ACE_ATM_Stream abstraction.
- */
-class ACE_Export ACE_ATM_Stream
-{
-public:
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_ATM_Stream (void);
-
- // = ATM-specific open and shutdown operations.
- /// open the stream.
- int open (ACE_ATM_Params params = ACE_ATM_Params());
-
- /// Close down and release resources.
- int close (void);
-
- /// Get the underlying handle.
- ACE_HANDLE get_handle (void) const;
-
- /// Get the underlying stream.
- ATM_Stream& get_stream (void);
-
- /// Get the name of the connected host.
- char* get_peer_name (void) const;
-
- /// Get the VPI and VCI of the stream.
- int get_vpi_vci (ACE_UINT16 &vpi,
- ACE_UINT16 &vci) const;
-
- /// Recv an n byte buffer from the connected transport mechanism.
- ssize_t recv (void *buf,
- size_t n,
- int *flags = 0) const;
-
- /// Send exactly n bytes to the connected transport mechanism.
- ssize_t send_n (const void *buf,
- size_t n,
- int flags) const;
-
- // = Meta-type info
- typedef ACE_ATM_Addr PEER_ADDR;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Typedef'd to the appropriate stream mechanism above.
- ATM_Stream stream_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/ATM_Stream.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_ATM */
-#include "ace/post.h"
-#endif /* ACE_ATM_STREAM_H */
diff --git a/ace/ATM_Stream.i b/ace/ATM_Stream.i
deleted file mode 100644
index 904934e75a5..00000000000
--- a/ace/ATM_Stream.i
+++ /dev/null
@@ -1,124 +0,0 @@
-// $Id$
-
-// ATM_Stream.i
-
-#include "ace/ATM_Stream.h"
-
-ACE_INLINE
-ACE_ATM_Stream::ACE_ATM_Stream (void)
-{
- ACE_TRACE ("ACE_ATM_Stream::ACE_ATM_Stream");
-}
-
-ACE_INLINE
-int
-ACE_ATM_Stream::open (ACE_ATM_Params params)
-{
- ACE_TRACE ("ACE_ATM_Stream::open");
-#if defined (ACE_HAS_FORE_ATM_XTI)
- ACE_HANDLE handle = stream_.open (params.get_device(),
- params.get_oflag(),
- params.get_info());
- return (handle == ACE_INVALID_HANDLE ? -1 : 0);
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- params.set_flags( ACE_FLAG_MULTIPOINT_C_ROOT | ACE_FLAG_MULTIPOINT_D_ROOT );
-
- int retval = stream_.open (params.get_type(),
- params.get_protocol_family(),
- params.get_protocol(),
- params.get_protocol_info(),
- params.get_sock_group(),
- params.get_flags(),
- params.get_reuse_addr());
- if (retval == -1)
- return -1;
-
- struct sockaddr_atm sock_addr;
-
- ACE_OS::memset(&sock_addr, 0, sizeof(struct sockaddr_atm));
- sock_addr.satm_family = AF_ATM;
- sock_addr.satm_number.AddressType=ADDR_ANY;
- sock_addr.satm_number.NumofDigits = ATM_ADDR_SIZE;
- sock_addr.satm_blli.Layer2Protocol = SAP_FIELD_ABSENT;
- sock_addr.satm_blli.Layer3Protocol = SAP_FIELD_ABSENT;
- sock_addr.satm_bhli.HighLayerInfoType = SAP_FIELD_ABSENT;
- if (ACE_OS::bind(get_handle(),
- (struct sockaddr FAR *)&sock_addr,
- sizeof(struct sockaddr_atm)) < 0)
- {
- ACE_OS::printf("Error binding local address: %d",WSAGetLastError());
- return -1;
- }
-
- return 0;
-#else
- ACE_UNUSED_ARG(params);
- return 0;
-#endif /* ACE_HAS_FORE_ATM_XTI */
-}
-
-ACE_INLINE
-int
-ACE_ATM_Stream::close (void)
-{
- ACE_TRACE ("ACE_ATM_Stream::close");
-#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2)
- return stream_.close ();
-#else
- return 0;
-#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 */
-}
-
-ACE_INLINE
-ATM_Stream&
-ACE_ATM_Stream::get_stream (void)
-{
- ACE_TRACE ("ACE_ATM_Stream::get_stream");
- return stream_;
-}
-
-ACE_INLINE
-ssize_t
-ACE_ATM_Stream::recv (void *buf,
- size_t n,
- int *flags) const
-{
- ACE_TRACE ("ACE_ATM_Stream::recv");
-#if defined (ACE_HAS_FORE_ATM_XTI)
- return stream_.recv (buf,
- n,
- flags);
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- return stream_.recv (buf,
- n);
-#else
- ACE_UNUSED_ARG(buf);
- ACE_UNUSED_ARG(n);
- ACE_UNUSED_ARG(flags);
- return (0);
-#endif /* ACE_HAS_FORE_ATM_XTI */
-}
-
-ACE_INLINE
-ssize_t
-ACE_ATM_Stream::send_n (const void *buf,
- size_t n,
- int flags) const
-{
- ACE_TRACE ("ACE_ATM_Stream::send_n");
-#if defined (ACE_HAS_FORE_ATM_XTI)
- return stream_.send_n (buf,
- n,
- flags);
-#elif defined (ACE_HAS_FORE_ATM_WS2)
- return stream_.send_n (buf,
- n,
- flags);
-#else
- ACE_UNUSED_ARG(buf);
- ACE_UNUSED_ARG(n);
- ACE_UNUSED_ARG(flags);
- return (0);
-#endif /* ACE_HAS_FORE_ATM_XTI */
-}
-
diff --git a/ace/Acceptor.cpp b/ace/Acceptor.cpp
deleted file mode 100644
index be79daa6857..00000000000
--- a/ace/Acceptor.cpp
+++ /dev/null
@@ -1,1213 +0,0 @@
-#ifndef ACE_ACCEPTOR_CPP
-#define ACE_ACCEPTOR_CPP
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Acceptor.h"
-#include "ace/Handle_Set.h"
-#include "ace/Svc_Handler.h"
-#include "ace/WFMO_Reactor.h"
-
-
-ACE_RCSID (ace,
- Acceptor,
- "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Acceptor)
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> void
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::dump (void) const
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->peer_acceptor_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::operator ACE_PEER_ACCEPTOR & () const
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::operator ACE_PEER_ACCEPTOR &");
- return (ACE_PEER_ACCEPTOR &) this->peer_acceptor_;
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_PEER_ACCEPTOR &
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::acceptor (void) const
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::acceptor");
- return ACE_const_cast (ACE_PEER_ACCEPTOR &, this->peer_acceptor_);
-}
-
-// Returns ACE_HANDLE of the underlying Acceptor_Strategy.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_HANDLE
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::get_handle (void) const
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::get_handle");
- return this->peer_acceptor_.get_handle ();
-}
-
-// Initialize the appropriate strategies for creation, passive
-// connection acceptance, and concurrency, and then register <this>
-// with the Reactor and listen for connection requests at the
-// designated <local_addr>.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::open
- (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
- ACE_Reactor *reactor,
- int flags,
- int use_select,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::open");
- this->flags_ = flags;
- this->use_select_ = use_select;
- this->reuse_addr_ = reuse_addr;
- this->peer_acceptor_addr_ = local_addr;
-
- // Must supply a valid Reactor to Acceptor::open()...
-
- if (reactor == 0)
- {
- errno = EINVAL;
- return -1;
- }
-
- if (this->peer_acceptor_.open (local_addr, reuse_addr) == -1)
- return -1;
-
- // Set the peer acceptor's handle into non-blocking mode. This is a
- // safe-guard against the race condition that can otherwise occur
- // between the time when <select> indicates that a passive-mode
- // socket handle is "ready" and when we call <accept>. During this
- // interval, the client can shutdown the connection, in which case,
- // the <accept> call can hang!
- this->peer_acceptor_.enable (ACE_NONBLOCK);
-
- int result = reactor->register_handler (this,
- ACE_Event_Handler::ACCEPT_MASK);
- if (result != -1)
- this->reactor (reactor);
- else
- this->peer_acceptor_.close ();
-
- return result;
-}
-
-// Simple constructor.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Acceptor (ACE_Reactor *reactor,
- int use_select)
- :flags_ (0),
- use_select_ (use_select),
- reuse_addr_ (1)
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Acceptor");
-
- this->reactor (reactor);
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Acceptor
- (const ACE_PEER_ACCEPTOR_ADDR &addr,
- ACE_Reactor *reactor,
- int flags,
- int use_select,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Acceptor");
-
- if (this->open (addr,
- reactor,
- flags,
- use_select,
- reuse_addr) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Acceptor::ACE_Acceptor")));
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::~ACE_Acceptor (void)
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::~ACE_Acceptor");
- this->handle_close ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::fini (void)
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::fini");
- return ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_close ();
-}
-
-// Hook called by the explicit dynamic linking facility.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::init (int, ACE_TCHAR *[])
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::init");
- return -1;
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::info (ACE_TCHAR **strp,
- size_t length) const
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::info");
- ACE_TCHAR buf[BUFSIZ];
- ACE_TCHAR addr_str[BUFSIZ];
- ACE_PEER_ACCEPTOR_ADDR addr;
-
- if (this->acceptor ().get_local_addr (addr) == -1)
- return -1;
- else if (addr.addr_to_string (addr_str, sizeof addr_str) == -1)
- return -1;
-
- ACE_OS::sprintf (buf,
- ACE_LIB_TEXT ("%s\t %s %s"),
- ACE_LIB_TEXT ("ACE_Acceptor"),
- addr_str,
- ACE_LIB_TEXT ("# acceptor factory\n"));
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strsncpy (*strp, buf, length);
- return ACE_static_cast (int, ACE_OS::strlen (buf));
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::suspend (void)
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::suspend");
- return this->reactor ()->suspend_handler (this);
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::resume (void)
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::resume");
- return this->reactor ()->resume_handler (this);
-}
-
-// Perform termination activities when <this> is removed from the
-// <reactor>.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::close (void)
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::close");
- return this->handle_close ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_close (ACE_HANDLE,
- ACE_Reactor_Mask)
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_close");
- // Guard against multiple closes.
- if (this->reactor () != 0)
- {
- ACE_HANDLE handle = this->get_handle ();
-
- this->reactor ()->remove_handler
- (handle,
- // We must pass the DONT_CALL flag here to avoid infinite
- // recursion.
- ACE_Event_Handler::ACCEPT_MASK | ACE_Event_Handler::DONT_CALL);
-
- // Shut down the listen socket to recycle the handles.
- if (this->peer_acceptor_.close () == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("close\n")));
- // Set the Reactor to 0 so that we don't try to close down
- // again.
- this->reactor (0);
- }
- return 0;
-}
-
-// Bridge method for creating a SVC_HANDLER. The strategy for
-// creating a SVC_HANDLER are configured into the Acceptor via it's
-// <creation_strategy_>. The default is to create a new SVC_HANDLER.
-// However, subclasses can override this strategy to perform
-// SVC_HANDLER creation in any way that they like (such as creating
-// subclass instances of SVC_HANDLER, using a singleton, dynamically
-// linking the handler, etc.).
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::make_svc_handler (SVC_HANDLER *&sh)
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::make_svc_handler");
-
- if (sh == 0)
- ACE_NEW_RETURN (sh,
- SVC_HANDLER,
- -1);
-
- // Set the reactor of the newly created <SVC_HANDLER> to the same
- // reactor that this <ACE_Acceptor> is using.
- sh->reactor (this->reactor ());
- return 0;
-}
-
-// Bridge method for accepting the new connection into the
-// <svc_handler>. The default behavior delegates to the
-// <PEER_ACCEPTOR::accept> in the Acceptor_Strategy.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::accept_svc_handler
- (SVC_HANDLER *svc_handler)
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::accept_svc_handler");
-
- // Try to find out if the implementation of the reactor that we are
- // using requires us to reset the event association for the newly
- // created handle. This is because the newly created handle will
- // inherit the properties of the listen handle, including its event
- // associations.
- int reset_new_handle = this->reactor ()->uses_event_associations ();
-
- if (this->acceptor ().accept (svc_handler->peer (), // stream
- 0, // remote address
- 0, // timeout
- 1, // restart
- reset_new_handle // reset new handler
- ) == -1)
- {
- // Close down handler to avoid memory leaks.
- svc_handler->close (0);
-
- return -1;
- }
- else
- return 0;
-}
-
-// Bridge method for activating a <svc_handler> with the appropriate
-// concurrency strategy. The default behavior of this method is to
-// activate the SVC_HANDLER by calling its open() method (which allows
-// the SVC_HANDLER to define its own concurrency strategy). However,
-// subclasses can override this strategy to do more sophisticated
-// concurrency activations (such as creating the SVC_HANDLER as an
-// "active object" via multi-threading or multi-processing).
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::activate_svc_handler
- (SVC_HANDLER *svc_handler)
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::activate_svc_handler");
-
- int result = 0;
-
- // See if we should enable non-blocking I/O on the <svc_handler>'s
- // peer.
- if (ACE_BIT_ENABLED (this->flags_,
- ACE_NONBLOCK))
- {
- if (svc_handler->peer ().enable (ACE_NONBLOCK) == -1)
- result = -1;
- }
- // Otherwise, make sure it's disabled by default.
- else if (svc_handler->peer ().disable (ACE_NONBLOCK) == -1)
- result = -1;
-
- if (result == 0 && svc_handler->open ((void *) this) == -1)
- result = -1;
-
- if (result == -1)
- svc_handler->close (0);
-
- return result;
-}
-
-// Template Method that makes a SVC_HANDLER (using the appropriate
-// creation strategy), accept the connection into the SVC_HANDLER, and
-// then activate the SVC_HANDLER.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_input (ACE_HANDLE listener)
-{
- ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_input");
- ACE_Handle_Set conn_handle;
-
- // Default is "timeout (0, 0)," which means "poll."
- ACE_Time_Value timeout;
-# if defined (ACE_WIN64)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- int select_width = 0;
-# else
- int select_width = int (listener) + 1;
-# endif /* ACE_WIN64 */
-
- // Accept connections from clients. Note that a loop is used for two
- // reasons:
- //
- // 1. It allows us to accept all pending connections without an
- // extra trip through the ACE_Reactor and without having to use
- // non-blocking I/O...
- //
- // 2. It allows the TLI_SAP::ACE_Acceptor class to work correctly (don't
- // ask -- TLI is *horrible*...).
-
- // @@ What should we do if any of the substrategies fail? Right
- // now, we just print out a diagnostic message if <ACE::debug>
- // returns > 0 and return 0 (which means that the Acceptor remains
- // registered with the Reactor)...
- do
- {
- // Create a service handler, using the appropriate creation
- // strategy.
-
- SVC_HANDLER *svc_handler = 0;
-
- if (this->make_svc_handler (svc_handler) == -1)
- {
- if (ACE::debug () > 0)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("make_svc_handler")));
- return 0;
- }
- // Accept connection into the Svc_Handler.
-
- else if (this->accept_svc_handler (svc_handler) == -1)
- {
- // Note that <accept_svc_handler> closes the <svc_handler>
- // on failure.
- if (ACE::debug () > 0)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("accept_svc_handler")));
- return 0;
- }
-
- // Activate the <svc_handler> using the designated concurrency
- // strategy (note that this method becomes responsible for
- // handling errors and freeing up the memory if things go
- // awry...).
- else if (this->activate_svc_handler (svc_handler) == -1)
- {
- // Note that <activate_svc_handler> closes the <svc_handler>
- // on failure.
-
- if (ACE::debug () > 0)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("activate_svc_handler")));
- return 0;
- }
-
- conn_handle.set_bit (listener);
- }
-
- // Now, check to see if there is another connection pending and
- // break out of the loop if there is none.
- while (this->use_select_
- && ACE_OS::select (select_width,
- conn_handle,
- 0,
- 0,
- &timeout) == 1);
- return 0;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Strategy_Acceptor)
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::suspend (void)
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::suspend");
-
- // First suspend the SVC_HANDLER's we've created.
- if (this->scheduling_strategy_->suspend () == -1)
- return -1;
- else // Then suspend ourselves.
- return ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::suspend ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::resume (void)
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::resume");
-
- // First resume ourselves.
- if (ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::resume () == -1)
- return -1;
- else // Then resume the SVC_HANDLER's we've created.
- return this->scheduling_strategy_->resume ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> void
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::dump (void) const
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::dump ();
- this->creation_strategy_->dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("delete_creation_strategy_ = %d"), delete_creation_strategy_));
- this->accept_strategy_->dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("delete_accept_strategy_ = %d"), delete_accept_strategy_));
- this->concurrency_strategy_->dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("delete_concurrency_strategy_ = %d"), delete_concurrency_strategy_));
- this->scheduling_strategy_->dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("delete_scheduling_strategy_ = %d"), delete_scheduling_strategy_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nservice_name_ = %s"),
- this->service_name_ == 0 ? ACE_LIB_TEXT ("<unknown>") : this->service_name_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nservice_description_ = %s"),
- this->service_description_ == 0 ? ACE_LIB_TEXT ("<unknown>") : this->service_description_));
- this->service_addr_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_PEER_ACCEPTOR &
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::acceptor (void) const
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::acceptor");
- return this->accept_strategy_->acceptor ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::operator ACE_PEER_ACCEPTOR & () const
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::operator ACE_PEER_ACCEPTOR &");
- return this->accept_strategy_->acceptor ();
-}
-
-// Returns ACE_HANDLE of the underlying Acceptor_Strategy.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_HANDLE
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::get_handle (void) const
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::get_handle");
- return this->accept_strategy_->get_handle ();
-}
-
-// Initialize the appropriate strategies for creation, passive
-// connection acceptance, and concurrency, and then register <this>
-// with the Reactor and listen for connection requests at the
-// designated <local_addr>.
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::open
- (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
- ACE_Reactor *reactor,
- int /* flags unused */,
- int use_select,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::open");
- return this->open
- (local_addr, reactor, 0, 0, 0, 0, 0, 0, use_select, reuse_addr);
-}
-
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::open
- (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
- ACE_Reactor *reactor,
- ACE_Creation_Strategy<SVC_HANDLER> *cre_s,
- ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2> *acc_s,
- ACE_Concurrency_Strategy<SVC_HANDLER> *con_s,
- ACE_Scheduling_Strategy<SVC_HANDLER> *sch_s,
- const ACE_TCHAR *service_name,
- const ACE_TCHAR *service_description,
- int use_select,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::open");
-
- if (this->service_name_ == 0 && service_name != 0)
- ACE_ALLOCATOR_RETURN (this->service_name_,
- ACE_OS::strdup (service_name),
- -1);
- if (this->service_description_ == 0 && service_description != 0)
- ACE_ALLOCATOR_RETURN (this->service_description_,
- ACE_OS::strdup (service_description),
- -1);
- this->reactor (reactor);
-
- // Must supply a valid Reactor to Acceptor::open()...
- if (reactor == 0)
- {
- errno = EINVAL;
- return -1;
- }
-
- // Initialize the creation strategy.
-
- if (cre_s == 0)
- {
- ACE_NEW_RETURN (cre_s,
- CREATION_STRATEGY,
- -1);
- this->delete_creation_strategy_ = 1;
- }
- this->creation_strategy_ = cre_s;
-
- // Initialize the accept strategy.
-
- if (acc_s == 0)
- {
- ACE_NEW_RETURN (acc_s,
- ACCEPT_STRATEGY (this->reactor ()),
- -1);
- this->delete_accept_strategy_ = 1;
- }
- this->accept_strategy_ = acc_s;
-
- if (this->accept_strategy_->open (local_addr, reuse_addr) == -1)
- return -1;
-
- // Set the peer acceptor's handle into non-blocking mode. This is a
- // safe-guard against the race condition that can otherwise occur
- // between the time when <select> indicates that a passive-mode
- // socket handle is "ready" and when we call <accept>. During this
- // interval, the client can shutdown the connection, in which case,
- // the <accept> call can hang!
- if (this->accept_strategy_->acceptor ().enable (ACE_NONBLOCK) != 0)
- return -1;
-
- // Initialize the concurrency strategy.
-
- if (con_s == 0)
- {
- ACE_NEW_RETURN (con_s,
- CONCURRENCY_STRATEGY,
- -1);
- this->delete_concurrency_strategy_ = 1;
- }
- this->concurrency_strategy_ = con_s;
-
- // Initialize the scheduling strategy.
-
- if (sch_s == 0)
- {
- ACE_NEW_RETURN (sch_s,
- SCHEDULING_STRATEGY,
- -1);
- this->delete_scheduling_strategy_ = 1;
- }
- this->scheduling_strategy_ = sch_s;
-
- this->use_select_ = use_select;
-
- return this->reactor ()->register_handler
- (this,
- ACE_Event_Handler::ACCEPT_MASK);
-}
-
-// Simple constructor.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Strategy_Acceptor
- (const ACE_TCHAR service_name[],
- const ACE_TCHAR service_description[],
- int use_select,
- int reuse_addr)
- : creation_strategy_ (0),
- delete_creation_strategy_ (0),
- accept_strategy_ (0),
- delete_accept_strategy_ (0),
- concurrency_strategy_ (0),
- delete_concurrency_strategy_ (0),
- scheduling_strategy_ (0),
- delete_scheduling_strategy_ (0),
- service_name_ (0),
- service_description_ (0)
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Strategy_Acceptor");
-
- if (service_name != 0)
- ACE_ALLOCATOR (this->service_name_,
- ACE_OS::strdup (service_name));
- if (service_description != 0)
- ACE_ALLOCATOR (this->service_description_,
- ACE_OS::strdup (service_description));
- this->use_select_ = use_select;
- this->reuse_addr_ = reuse_addr;
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Strategy_Acceptor
- (const ACE_PEER_ACCEPTOR_ADDR &addr,
- ACE_Reactor *reactor,
- ACE_Creation_Strategy<SVC_HANDLER> *cre_s,
- ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2> *acc_s,
- ACE_Concurrency_Strategy<SVC_HANDLER> *con_s,
- ACE_Scheduling_Strategy<SVC_HANDLER> *sch_s,
- const ACE_TCHAR service_name[],
- const ACE_TCHAR service_description[],
- int use_select,
- int reuse_addr)
- : creation_strategy_ (0),
- delete_creation_strategy_ (0),
- accept_strategy_ (0),
- delete_accept_strategy_ (0),
- concurrency_strategy_ (0),
- delete_concurrency_strategy_ (0),
- scheduling_strategy_ (0),
- delete_scheduling_strategy_ (0),
- service_name_ (0),
- service_description_ (0)
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Strategy_Acceptor");
-
- if (this->open (addr,
- reactor,
- cre_s,
- acc_s,
- con_s,
- sch_s,
- service_name,
- service_description,
- use_select,
- reuse_addr) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Strategy_Acceptor::ACE_Strategy_Acceptor")));
-}
-
-// Perform termination activities when <this> is removed from the
-// <ACE_Reactor>.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_close (ACE_HANDLE,
- ACE_Reactor_Mask)
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_close");
- // Guard against multiple closes.
- if (this->reactor () != 0)
- {
- ACE_HANDLE handle = this->get_handle ();
-
- if (this->delete_creation_strategy_)
- delete this->creation_strategy_;
- this->delete_creation_strategy_ = 0;
- this->creation_strategy_ = 0;
-
- if (this->delete_accept_strategy_)
- delete this->accept_strategy_;
- this->delete_accept_strategy_ = 0;
- this->accept_strategy_ = 0;
-
- if (this->delete_concurrency_strategy_)
- delete this->concurrency_strategy_;
- this->delete_concurrency_strategy_ = 0;
- this->concurrency_strategy_ = 0;
-
- if (this->delete_scheduling_strategy_)
- delete this->scheduling_strategy_;
- this->delete_scheduling_strategy_ = 0;
- this->scheduling_strategy_ = 0;
-
- // We must use the <handle> obtained *before* we deleted the
- // accept_strategy_...
-
- this->reactor ()->remove_handler
- (handle,
- ACE_Event_Handler::ACCEPT_MASK | ACE_Event_Handler::DONT_CALL);
-
- // Set the Reactor to 0 so that we don't try to close down
- // again.
- this->reactor (0);
- }
- return 0;
-}
-
-// Bridge method for creating a <SVC_HANDLER>. The strategy for
-// creating a <SVC_HANDLER> are configured into the Acceptor via it's
-// <creation_strategy_>. The default is to create a new
-// <SVC_HANDLER>. However, subclasses can override this strategy to
-// perform <SVC_HANDLER> creation in any way that they like (such as
-// creating subclass instances of <SVC_HANDLER>, using a singleton,
-// dynamically linking the handler, etc.).
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::make_svc_handler (SVC_HANDLER *&sh)
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::make_svc_handler");
- return this->creation_strategy_->make_svc_handler (sh);
-}
-
-// Bridge method for accepting the new connection into the
-// <svc_handler>. The default behavior delegates to the
-// <Strategy_Acceptor::accept> in the Acceptor_Strategy.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::accept_svc_handler
- (SVC_HANDLER *svc_handler)
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::accept_svc_handler");
- return this->accept_strategy_->accept_svc_handler (svc_handler);
-}
-
-// Bridge method for activating a <svc_handler> with the appropriate
-// concurrency strategy. The default behavior of this method is to
-// activate the SVC_HANDLER by calling its open() method (which allows
-// the SVC_HANDLER to define its own concurrency strategy). However,
-// subclasses can override this strategy to do more sophisticated
-// concurrency activations (such as creating the SVC_HANDLER as an
-// "active object" via multi-threading or multi-processing).
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::activate_svc_handler
- (SVC_HANDLER *svc_handler)
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::activate_svc_handler");
- return this->concurrency_strategy_->activate_svc_handler
- (svc_handler,
- (void *) this);
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::~ACE_Strategy_Acceptor (void)
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::~ACE_Strategy_Acceptor");
- ACE_OS::free ((void *) this->service_name_);
- ACE_OS::free ((void *) this->service_description_);
- this->handle_close ();
-}
-
-// Signal the server to shutdown gracefully.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_signal (int, siginfo_t *, ucontext_t *)
-{
- ACE_Reactor::end_event_loop ();
- return 0;
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::info (ACE_TCHAR **strp,
- size_t length) const
-{
- ACE_TRACE ("ACE_Strategy_Acceptor::info");
-
- ACE_TCHAR buf[BUFSIZ];
- ACE_TCHAR service_addr_str[BUFSIZ];
- ACE_PEER_ACCEPTOR_ADDR addr;
-
- if (this->acceptor ().get_local_addr (addr) == -1)
- return -1;
- else if (addr.addr_to_string (service_addr_str,
- sizeof service_addr_str) == -1)
- return -1;
-
- // @@ Should add the protocol in...
- ACE_OS::sprintf (buf,
- ACE_LIB_TEXT ("%s\t %s #%s\n"),
- this->service_name_ == 0
- ? ACE_LIB_TEXT ("<unknown>")
- : this->service_name_,
- service_addr_str,
- this->service_description_ == 0
- ? ACE_LIB_TEXT ("<unknown>")
- : this->service_description_);
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strsncpy (*strp, buf, length);
- return ACE_static_cast (int, ACE_OS::strlen (buf));
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::fini (void)
-{
- ACE_TRACE ("ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::fini");
- return this->ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_close ();
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Oneshot_Acceptor)
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> void
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::dump (void) const
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nsvc_handler_ = %x"), this->svc_handler_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nrestart_ = %d"), this->restart_));
- this->peer_acceptor_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("delete_concurrency_strategy_ = %d"),
- delete_concurrency_strategy_));
- this->concurrency_strategy_->dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::open
- (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
- ACE_Reactor *reactor,
- ACE_Concurrency_Strategy<SVC_HANDLER> *con_s)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::open");
- this->reactor (reactor);
-
- // Initialize the concurrency strategy.
-
- if (con_s == 0)
- {
- ACE_NEW_RETURN (con_s,
- ACE_Concurrency_Strategy<SVC_HANDLER>,
- -1);
- this->delete_concurrency_strategy_ = 1;
- }
- this->concurrency_strategy_ = con_s;
-
- // Reuse the addr, even if it is already in use...!
- return this->peer_acceptor_.open (local_addr, 1);
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Oneshot_Acceptor (void)
- : delete_concurrency_strategy_ (0)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Oneshot_Acceptor");
- this->reactor (0);
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Oneshot_Acceptor
- (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
- ACE_Reactor *reactor,
- ACE_Concurrency_Strategy<SVC_HANDLER> *cs)
- : delete_concurrency_strategy_ (0)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Oneshot_Acceptor");
- if (this->open (local_addr, reactor, cs) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Oneshot_Acceptor::ACE_Oneshot_Acceptor")));
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::~ACE_Oneshot_Acceptor (void)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::~ACE_Oneshot_Acceptor");
- this->handle_close ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::close (void)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::close");
- return this->handle_close ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_close (ACE_HANDLE,
- ACE_Reactor_Mask)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_close");
-
- // Guard against multiple closes.
- if (this->delete_concurrency_strategy_)
- {
- delete this->concurrency_strategy_;
- this->delete_concurrency_strategy_ = 0;
- this->concurrency_strategy_ = 0;
-
- // Note that if we aren't actually registered with the
- // ACE_Reactor then it's ok for this call to fail...
-
- if (this->reactor ())
- this->reactor ()->remove_handler
- (this,
- ACE_Event_Handler::ACCEPT_MASK | ACE_Event_Handler::DONT_CALL);
-
- if (this->peer_acceptor_.close () == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("close\n")));
- }
- return 0;
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_timeout
- (const ACE_Time_Value &tv,
- const void *arg)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_timeout");
- errno = ETIME;
-
- if (this->svc_handler_->handle_timeout (tv, arg) == -1)
- this->svc_handler_->handle_close (this->svc_handler_->get_handle (),
- ACE_Event_Handler::TIMER_MASK);
-
- // Since we aren't necessarily registered with the Reactor, don't
- // bother to check the return value here...
- if (this->reactor ())
- this->reactor ()->remove_handler (this,
- ACE_Event_Handler::ACCEPT_MASK);
- return 0;
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::cancel (void)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::cancel");
- return this->reactor () && this->reactor ()->cancel_timer (this);
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::register_handler
- (SVC_HANDLER *svc_handler,
- const ACE_Synch_Options &synch_options,
- int restart)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::register_handler");
- // Can't do this if we don't have a Reactor.
- if (this->reactor () == 0)
- {
- errno = EINVAL;
- return -1;
- }
- else
- {
- this->svc_handler_ = svc_handler;
- this->restart_ = restart;
- ACE_Time_Value *tv = (ACE_Time_Value *) synch_options.time_value ();
-
- if (tv != 0
- && this->reactor ()->schedule_timer (this,
- synch_options.arg (),
- *tv) == 0)
- return -1;
- else
- return this->reactor ()->register_handler
- (this,
- ACE_Event_Handler::ACCEPT_MASK);
- }
-}
-
-// Bridge method for activating a <svc_handler> with the appropriate
-// concurrency strategy. The default behavior of this method is to
-// activate the SVC_HANDLER by calling its open() method (which allows
-// the SVC_HANDLER to define its own concurrency strategy). However,
-// subclasses can override this strategy to do more sophisticated
-// concurrency activations (such as creating the SVC_HANDLER as an
-// "active object" via multi-threading or multi-processing).
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::activate_svc_handler
- (SVC_HANDLER *svc_handler)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::activate_svc_handler");
- return this->concurrency_strategy_->activate_svc_handler
- (svc_handler,
- (void *) this);
-}
-
-// Factors out the code shared between the <accept> and <handle_input>
-// methods.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::shared_accept
- (SVC_HANDLER *svc_handler,
- ACE_PEER_ACCEPTOR_ADDR *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::shared_accept");
- if (svc_handler == 0)
- return -1;
-
- // Accept connection into the Svc_Handler.
- else if (this->peer_acceptor_.accept (svc_handler->peer (), // stream
- remote_addr, // remote address
- timeout, // timeout
- restart, // restart
- reset_new_handle // reset new handle
- ) == -1)
- {
- // Check whether we just timed out or whether we failed...
- if (!(errno == EWOULDBLOCK || errno == ETIME))
- // Close down handler to avoid memory leaks.
- svc_handler->close (0);
- return -1;
- }
- // Activate the <svc_handler> using the designated concurrency
- // strategy (note that this method becomes responsible for handling
- // errors and freeing up the memory if things go awry...)
- else
- return this->activate_svc_handler (svc_handler);
-}
-
-// Make a SVC_HANDLER, accept the connection into the SVC_HANDLER, and
-// then activate the SVC_HANDLER. Note that SVC_HANDLER::open()
-// decides what type of concurrency strategy to use.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::accept
- (SVC_HANDLER *svc_handler,
- ACE_PEER_ACCEPTOR_ADDR *remote_addr,
- const ACE_Synch_Options &synch_options,
- int restart,
- int reset_new_handle)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::accept");
- // Note that if timeout == ACE_Time_Value (x, y) where (x > 0 || y >
- // 0) then this->connector_.connect() will block synchronously. If
- // <use_reactor> is set then we don't want this to happen (since we
- // want the ACE_Reactor to do the timeout asynchronously).
- // Therefore, we'll force this->connector_ to use ACE_Time_Value (0,
- // 0) in this case...
-
- ACE_Time_Value *timeout;
- int use_reactor = synch_options[ACE_Synch_Options::USE_REACTOR];
-
- if (use_reactor)
- timeout = (ACE_Time_Value *) &ACE_Time_Value::zero;
- else
- timeout = (ACE_Time_Value *) synch_options.time_value ();
-
- if (this->shared_accept (svc_handler, // stream
- remote_addr, // remote address
- timeout, // timeout
- restart, // restart
- reset_new_handle // reset new handler
- ) == -1)
- {
- if (use_reactor && errno == EWOULDBLOCK)
- // We couldn't accept right away, so let's wait in the
- // <ACE_Reactor>.
- this->register_handler (svc_handler,
- synch_options,
- restart);
- return -1;
- }
- return 0;
-}
-
-// Accepts one pending connection from a client (since we're the
-// "oneshot" Acceptor).
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_input (ACE_HANDLE)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_input");
- int result = 0;
-
- // Cancel any timer that might be pending.
- this->cancel ();
-
- // Try to find out if the implementation of the reactor that we are
- // using requires us to reset the event association for the newly
- // created handle. This is because the newly created handle will
- // inherit the properties of the listen handle, including its event
- // associations.
- int reset_new_handle = this->reactor ()->uses_event_associations ();
-
- // There is a use-case whereby this object will be gone upon return
- // from shared_accept - if the Svc_Handler deletes this Oneshot_Acceptor
- // during the shared_accept/activation steps. So, do whatever we need
- // to do with this object before calling shared_accept.
- if (this->reactor ())
- this->reactor ()->remove_handler
- (this,
- ACE_Event_Handler::ACCEPT_MASK | ACE_Event_Handler::DONT_CALL);
-
- if (this->shared_accept (this->svc_handler_, // stream
- 0, // remote address
- 0, // timeout
- this->restart_, // restart
- reset_new_handle // reset new handle
- ) == -1)
- result = -1;
-
- return result;
-}
-
-// Hook called by the explicit dynamic linking facility.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::init (int, ACE_TCHAR *[])
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::init");
- return -1;
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::fini (void)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::fini");
- return this->handle_close ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::info (ACE_TCHAR **strp,
- size_t length) const
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::info");
- ACE_TCHAR buf[BUFSIZ];
- ACE_TCHAR addr_str[BUFSIZ];
- ACE_PEER_ACCEPTOR_ADDR addr;
-
- if (this->peer_acceptor_.get_local_addr (addr) == -1)
- return -1;
- else if (addr.addr_to_string (addr_str, sizeof addr_str) == -1)
- return -1;
-
- ACE_OS::sprintf (buf,
- ACE_LIB_TEXT ("%s\t %s %s"),
- ACE_LIB_TEXT ("ACE_Oneshot_Acceptor"),
- addr_str,
- ACE_LIB_TEXT ("#oneshot acceptor factory\n"));
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strsncpy (*strp, buf, length);
- return ACE_static_cast (int, ACE_OS::strlen (buf));
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::suspend (void)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::suspend");
- return this->reactor () && this->reactor ()->suspend_handler (this);
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::resume (void)
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::resume");
- return this->reactor () && this->reactor ()->resume_handler (this);
-}
-
-// Returns ACE_HANDLE of the underlying peer_acceptor.
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_HANDLE
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::get_handle (void) const
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::get_handle");
- return this->peer_acceptor_.get_handle ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_PEER_ACCEPTOR &
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::acceptor (void) const
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::acceptor");
- return (ACE_PEER_ACCEPTOR &) this->peer_acceptor_;
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::operator ACE_PEER_ACCEPTOR & () const
-{
- ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::operator ACE_PEER_ACCEPTOR &");
- return (ACE_PEER_ACCEPTOR &) this->peer_acceptor_;
-}
-
-#endif /* ACE_ACCEPTOR_CPP */
diff --git a/ace/Acceptor.h b/ace/Acceptor.h
deleted file mode 100644
index ab1b7053d24..00000000000
--- a/ace/Acceptor.h
+++ /dev/null
@@ -1,657 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Acceptor.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_ACCEPTOR_H
-#define ACE_ACCEPTOR_H
-
-#include "ace/pre.h"
-
-#include "ace/Service_Object.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Strategies_T.h"
-#include "ace/Synch_Options.h"
-
-
-/**
- * @class ACE_Acceptor
- *
- * @brief Abstract factory for creating a service handler
- * (SVC_HANDLER), accepting into the SVC_HANDLER, and
- * activating the SVC_HANDLER.
- *
- * Implements the basic strategy for passively establishing
- * connections with clients. An ACE_Acceptor is parameterized
- * by concrete types that conform to the interfaces of
- * PEER_ACCEPTOR and SVC_HANDLER. The PEER_ACCEPTOR is
- * instantiated with a transport mechanism that passively
- * establishes connections. The SVC_HANDLER is instantiated
- * with a concrete type that performs the application-specific
- * service. An ACE_Acceptor inherits from ACE_Service_Object,
- * which in turn inherits from ACE_Event_Handler. This enables
- * the ACE_Reactor to dispatch the ACE_Acceptor's handle_input
- * method when connection events occur. The handle_input method
- * performs the ACE_Acceptor's default creation, connection
- * establishment, and service activation strategies. These
- * strategies can be overridden by subclasses individually or as
- * a group.
- */
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-class ACE_Acceptor : public ACE_Service_Object
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_PEER_ACCEPTOR_ADDR addr_type;
- typedef ACE_PEER_ACCEPTOR acceptor_type;
- typedef SVC_HANDLER handler_type;
- typedef ACE_TYPENAME SVC_HANDLER::stream_type stream_type;
-
- /// "Do-nothing" constructor.
- ACE_Acceptor (ACE_Reactor * = 0,
- int use_select = 1);
-
- /**
- * Initialize and register <this> with the Reactor and listen for
- * connection requests at the designated <local_addr>. <flags>
- * indicates how <SVC_HANDLER>'s should be initialized prior to
- * being activated. Right now, the only flag that is processed is
- * <ACE_NONBLOCK>, which enabled non-blocking I/O on the
- * <SVC_HANDLER> when it is opened. If <use_select> is non-zero
- * then <select> is used to determine when to break out of the
- * <accept> loop. <reuse_addr> is passed down to the
- * <PEER_ACCEPTOR>. If it is non-zero this will allow the OS to
- * reuse this listen port.
- */
- ACE_Acceptor (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
- ACE_Reactor * = ACE_Reactor::instance (),
- int flags = 0,
- int use_select = 1,
- int reuse_addr = 1);
-
- /**
- * Open the contained @c PEER_ACCEPTOR object to begin listening, and
- * register with the specified reactor for accept events.
- *
- * The @c PEER_ACCEPTOR handle is put into non-blocking mode as a
- * safeguard against the race condition that can otherwise occur
- * between the time when the passive-mode socket handle is "ready"
- * and when the actual @c accept call is made. During this
- * interval, the client can shutdown the connection, in which case,
- * the <accept> call can hang.
- *
- * @param local_addr The address to listen at.
- * @param reactor Pointer to the ACE_Reactor instance to register
- * this object with. The default is the singleton.
- * @param flags Flags to control what mode an accepted socket
- * will be put into after it is accepted. The only
- * legal value for this argument is @c ACE_NONBLOCK,
- * which enables non-blocking mode on the accepted
- * peer stream object in @c SVC_HANDLER. The default
- * is 0.
- * @param use_select Affects behavior when called back by the reactor
- * when a connection can be accepted. If non-zero,
- * this object will accept all pending connections,
- * intead of just the one that triggered the reactor
- * callback. Uses ACE_OS::select() internally to
- * detect any remaining acceptable connections.
- * The default is 1.
- * @param reuse_addr Passed to the @c PEER_ACCEPTOR::open() method with
- * @p local_addr. Generally used to request that the
- * OS allow reuse of the listen port. The default is 1.
- *
- * @retval 0 Success
- * @retval -1 Failure, @c errno contains an error code.
- */
- virtual int open (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
- ACE_Reactor *reactor = ACE_Reactor::instance (),
- int flags = 0,
- int use_select = 1,
- int reuse_addr = 1);
-
- /// Close down the Acceptor's resources.
- virtual ~ACE_Acceptor (void);
-
- /// Return the underlying PEER_ACCEPTOR object.
- virtual operator ACE_PEER_ACCEPTOR &() const;
-
- /// Return the underlying PEER_ACCEPTOR object.
- virtual ACE_PEER_ACCEPTOR &acceptor (void) const;
-
- /// Returns the listening acceptor's <ACE_HANDLE>.
- virtual ACE_HANDLE get_handle (void) const;
-
- /// Close down the Acceptor
- virtual int close (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = The following three methods define the Acceptor's strategies
- // for creating, accepting, and activating SVC_HANDLER's,
- // respectively.
-
- /**
- * Bridge method for creating a SVC_HANDLER. The default is to
- * create a new <SVC_HANDLER> if <sh> == 0, else <sh> is unchanged.
- * However, subclasses can override this policy to perform
- * SVC_HANDLER creation in any way that they like (such as creating
- * subclass instances of SVC_HANDLER, using a singleton, dynamically
- * linking the handler, etc.). Returns -1 on failure, else 0.
- */
- virtual int make_svc_handler (SVC_HANDLER *&sh);
-
- /**
- * Bridge method for accepting the new connection into the
- * <svc_handler>. The default behavior delegates to the
- * PEER_ACCEPTOR::accept.
- */
- virtual int accept_svc_handler (SVC_HANDLER *svc_handler);
-
- /**
- * Bridge method for activating a <svc_handler> with the appropriate
- * concurrency strategy. The default behavior of this method is to
- * activate the SVC_HANDLER by calling its <open> method (which
- * allows the SVC_HANDLER to define its own concurrency strategy).
- * However, subclasses can override this strategy to do more
- * sophisticated concurrency activations (such as making the
- * SVC_HANDLER as an "active object" via multi-threading or
- * multi-processing).
- */
- virtual int activate_svc_handler (SVC_HANDLER *svc_handler);
-
- // = Demultiplexing hooks.
- /// Perform termination activities when <this> is removed from the
- /// <reactor>.
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
-
- /// Accepts all pending connections from clients, and creates and
- /// activates SVC_HANDLERs.
- virtual int handle_input (ACE_HANDLE);
-
- // = Dynamic linking hooks.
- /// Default version does no work and returns -1. Must be overloaded
- /// by application developer to do anything meaningful.
- virtual int init (int argc, ACE_TCHAR *argv[]);
-
- /// Calls <handle_close>.
- virtual int fini (void);
-
- /// Default version returns address info in <buf>.
- virtual int info (ACE_TCHAR **buf, size_t) const;
-
-public:
- // = Service management hooks.
- /// This method calls <Reactor::suspend>.
- virtual int suspend (void);
-
- /// This method calls <Reactor::resume>.
- virtual int resume (void);
-
-protected:
- /// Concrete factory for accepting connections from clients...
- ACE_PEER_ACCEPTOR peer_acceptor_;
-
- /// Needed to reopen the socket if <accept> fails.
- ACE_PEER_ACCEPTOR_ADDR peer_acceptor_addr_;
-
- /**
- * Flags that indicate how <SVC_HANDLER>'s should be initialized
- * prior to being activated. Right now, the only flag that is
- * processed is <ACE_NONBLOCK>, which enabled non-blocking I/O on
- * the <SVC_HANDLER> when it is opened.
- */
- int flags_;
-
- /// Flag that indicates whether it shall use <select> in the
- /// <accept>-loop.
- int use_select_;
-
- /// Needed to reopen the socket if <accept> fails.
- int reuse_addr_;
-};
-
-/**
- * @class ACE_Strategy_Acceptor
- *
- * @brief Abstract factory for creating a service handler
- * (SVC_HANDLER), accepting into the SVC_HANDLER, and activating
- * the SVC_HANDLER.
- *
- * Implements a flexible and extensible set of strategies for
- * passively establishing connections with clients. There are
- * three main strategies: (1) creating a SVC_HANDLER, (2)
- * passively accepting a new connection from a client into the
- * SVC_HANDLER, and (3) activating the SVC_HANDLER with a
- * particular concurrency mechanism.
- */
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-class ACE_Strategy_Acceptor
- : public ACE_Acceptor <SVC_HANDLER, ACE_PEER_ACCEPTOR_2>
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_Creation_Strategy<SVC_HANDLER>
- creation_strategy_type;
- typedef ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>
- accept_strategy_type;
- typedef ACE_Concurrency_Strategy<SVC_HANDLER>
- concurrency_strategy_type;
- typedef ACE_Scheduling_Strategy<SVC_HANDLER> scheduling_strategy_type;
- typedef ACE_Acceptor <SVC_HANDLER, ACE_PEER_ACCEPTOR_2>
- base_type;
-
- // = Define some useful (old style) traits.
- typedef ACE_Creation_Strategy<SVC_HANDLER> CREATION_STRATEGY;
- typedef ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2> ACCEPT_STRATEGY;
- typedef ACE_Concurrency_Strategy<SVC_HANDLER> CONCURRENCY_STRATEGY;
- typedef ACE_Scheduling_Strategy<SVC_HANDLER> SCHEDULING_STRATEGY;
-
-
-
- /// Default constructor.
- ACE_Strategy_Acceptor (const ACE_TCHAR service_name[] = 0,
- const ACE_TCHAR service_description[] = 0,
- int use_select = 1,
- int reuse_addr = 1);
-
- /**
- * Initialize the appropriate strategies for creation, passive
- * connection acceptance, and concurrency, and then register <this>
- * with the Reactor and listen for connection requests at the
- * designated <local_addr>.
- */
- ACE_Strategy_Acceptor (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
- ACE_Reactor * = ACE_Reactor::instance (),
- ACE_Creation_Strategy<SVC_HANDLER> * = 0,
- ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2> * = 0,
- ACE_Concurrency_Strategy<SVC_HANDLER> * = 0,
- ACE_Scheduling_Strategy<SVC_HANDLER> * = 0,
- const ACE_TCHAR service_name[] = 0,
- const ACE_TCHAR service_description[] = 0,
- int use_select = 1,
- int reuse_addr = 1);
-
- /**
- * Open the contained @c PEER_ACCEPTOR object to begin listening, and
- * register with the specified reactor for accept events.
- *
- * The @c PEER_ACCEPTOR handle is put into non-blocking mode as a
- * safeguard against the race condition that can otherwise occur
- * between the time when the passive-mode socket handle is "ready"
- * and when the actual @c accept call is made. During this
- * interval, the client can shutdown the connection, in which case,
- * the <accept> call can hang.
- *
- * @param local_addr The address to listen at.
- * @param reactor Pointer to the ACE_Reactor instance to register
- * this object with. The default is the singleton.
- * @param flags Flags to control what mode an accepted socket
- * will be put into after it is accepted. The only
- * legal value for this argument is @c ACE_NONBLOCK,
- * which enables non-blocking mode on the accepted
- * peer stream object in @c SVC_HANDLER. The default
- * is 0.
- * @param use_select Affects behavior when called back by the reactor
- * when a connection can be accepted. If non-zero,
- * this object will accept all pending connections,
- * intead of just the one that triggered the reactor
- * callback. Uses ACE_OS::select() internally to
- * detect any remaining acceptable connections.
- * The default is 1.
- * @param reuse_addr Passed to the @c PEER_ACCEPTOR::open() method with
- * @p local_addr. Generally used to request that the
- * OS allow reuse of the listen port. The default is 1.
- *
- * @retval 0 Success
- * @retval -1 Failure, @c errno contains an error code.
- */
- virtual int open (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
- ACE_Reactor *reactor,
- int flags = 0,
- int use_select = 1,
- int reuse_addr = 1);
-
- /**
- * Initialize the appropriate strategies for creation, passive
- * connection acceptance, and concurrency, and then register <this>
- * with the Reactor and listen for connection requests at the
- * designated <local_addr>.
- */
- virtual int open (const ACE_PEER_ACCEPTOR_ADDR &,
- ACE_Reactor * = ACE_Reactor::instance (),
- ACE_Creation_Strategy<SVC_HANDLER> * = 0,
- ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2> * =0,
- ACE_Concurrency_Strategy<SVC_HANDLER> * = 0,
- ACE_Scheduling_Strategy<SVC_HANDLER> * = 0,
- const ACE_TCHAR *service_name = 0,
- const ACE_TCHAR *service_description = 0,
- int use_select = 1,
- int reuse_addr = 1);
-
- /// Close down the Strategy_Acceptor's resources.
- virtual ~ACE_Strategy_Acceptor (void);
-
- /// Return the underlying PEER_ACCEPTOR object.
- virtual operator ACE_PEER_ACCEPTOR &() const;
-
- /// Return the underlying PEER_ACCEPTOR object.
- virtual ACE_PEER_ACCEPTOR &acceptor (void) const;
-
- /// Returns the listening acceptor's <ACE_HANDLE>.
- virtual ACE_HANDLE get_handle (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Service management hooks.
-
- /// This method delegates to the <Scheduling_Strategy>'s <suspend>
- /// method.
- virtual int suspend (void);
-
- /// This method delegates to the <Scheduling_Strategy>'s <resume>
- /// method.
- virtual int resume (void);
-
- /// Calls <handle_close> when dynamically unlinked.
- virtual int fini (void);
-
- /// Default version returns address info in <buf>.
- virtual int info (ACE_TCHAR **buf, size_t) const;
-
- // = The following three methods define the <Acceptor>'s strategies
- // for creating, accepting, and activating <SVC_HANDLER>'s,
- // respectively.
-
- /**
- * Bridge method for creating a <SVC_HANDLER>. The strategy for
- * creating a <SVC_HANDLER> are configured into the Acceptor via
- * it's <creation_strategy_>. The default is to create a new
- * <SVC_HANDLER> if <sh> == 0, else <sh> is unchanged. However,
- * subclasses can override this policy to perform <SVC_HANDLER>
- * creation in any way that they like (such as creating subclass
- * instances of <SVC_HANDLER>, using a singleton, dynamically
- * linking the handler, etc.). Returns -1 on failure, else 0.
- */
- virtual int make_svc_handler (SVC_HANDLER *&);
-
- /**
- * Bridge method for accepting the new connection into the
- * <SVC_HANDLER>. The default behavior delegates to the
- * <PEER_ACCEPTOR::accept> in the <Acceptor_Strategy>.
- */
- virtual int accept_svc_handler (SVC_HANDLER *svc_handler);
-
- /**
- * Bridge method for activating a <SVC_HANDLER> with the appropriate
- * concurrency strategy. The default behavior of this method is to
- * activate the <SVC_HANDLER> by calling its <open> method (which
- * allows the <SVC_HANDLER> to define its own concurrency strategy).
- * However, subclasses can override this strategy to do more
- * sophisticated concurrency activations (such as creating the
- * <SVC_HANDLER> as an "active object" via multi-threading or
- * multi-processing).
- */
- virtual int activate_svc_handler (SVC_HANDLER *svc_handler);
-
- // = Demultiplexing hooks.
- /// Perform termination activities when <this> is removed from the
- /// <Reactor>.
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
-
- /// Handle SIGINT.
- virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
-
- // = These data members are "logically private" but are put in the
- // protected part in case subclasses want to access them.
-
- // = Strategy objects.
-
- /// Creation strategy for an Acceptor.
- CREATION_STRATEGY *creation_strategy_;
-
- /// 1 if <Acceptor> created the creation strategy and thus should
- /// delete it, else 0.
- int delete_creation_strategy_;
-
- /// Accept strategy for an <Acceptor>.
- ACCEPT_STRATEGY *accept_strategy_;
-
- /// 1 if <Acceptor> created the accept strategy and thus should delete
- /// it, else 0.
- int delete_accept_strategy_;
-
- /// Concurrency strategy for an <Acceptor>.
- CONCURRENCY_STRATEGY *concurrency_strategy_;
-
- /// 1 if <Acceptor> created the concurrency strategy and thus should
- /// delete it, else 0.
- int delete_concurrency_strategy_;
-
- /// Scheduling strategy for an <Acceptor>.
- SCHEDULING_STRATEGY *scheduling_strategy_;
-
- /// 1 if <Acceptor> created the scheduling strategy and thus should
- /// delete it, else 0.
- int delete_scheduling_strategy_;
-
- // = Service information objects.
-
- /// Name of the service.
- ACE_TCHAR *service_name_;
-
- /// Description of the service.
- ACE_TCHAR *service_description_;
-
- /// Address that the <Strategy_Acceptor> uses to listen for
- /// connections.
- ACE_PEER_ACCEPTOR_ADDR service_addr_;
-};
-
-/**
- * @class ACE_Oneshot_Acceptor
- *
- * @brief Generic factory for passively connecting clients and creating
- * exactly one service handler (SVC_HANDLER).
- *
- * This class works similarly to the regular <ACE_Acceptor>,
- * with the following differences:
- * 1. This class doesn't automagically register <this> with the
- * <ACE_Reactor> since it expects to have its <accept> method
- * called directly. However, it stashes the <ACE_Reactor>
- * pointer away in case it's needed later to finish accepting
- * a connection asynchronously.
- * 2. The class doesn't need an <ACE_Creation_Strategy> (since
- * the user supplies the SVC_HANDLER) or an
- * <ACE_Accept_Strategy> (since this class only accepts one
- * connection and then removes all traces of itself from the
- * <ACE_Reactor> if it was registered for asynchronous
- * accepts).
- */
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-class ACE_Oneshot_Acceptor : public ACE_Service_Object
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_PEER_ACCEPTOR_ADDR addr_type;
- typedef ACE_PEER_ACCEPTOR acceptor_type;
- typedef SVC_HANDLER handler_type;
- typedef ACE_TYPENAME SVC_HANDLER::stream_type stream_type;
-
- /// Constructor.
- ACE_Oneshot_Acceptor (void);
-
- /**
- * Initialize the appropriate strategies for concurrency and then
- * open the <peer_acceptor> at the designated <local_addr>. Note
- * that unlike the <ACE_Acceptor> and <ACE_Strategy_Acceptor>, this
- * method does NOT register <this> acceptor with the <reactor> at
- * this point -- it just stashes the <reactor> away in case it's
- * needed later.
- */
- ACE_Oneshot_Acceptor (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
- ACE_Reactor *reactor = ACE_Reactor::instance (),
- ACE_Concurrency_Strategy<SVC_HANDLER> * = 0);
-
- /**
- * Initialize the appropriate strategies for concurrency and then
- * open the <peer_acceptor> at the designated <local_addr>. Note
- * that unlike the <ACE_Acceptor> and <ACE_Strategy_Acceptor>, this
- * method does NOT register <this> acceptor with the <reactor> at
- * this point -- it just stashes the <reactor> away in case it's
- * needed later.
- */
- int open (const ACE_PEER_ACCEPTOR_ADDR &,
- ACE_Reactor *reactor = ACE_Reactor::instance (),
- ACE_Concurrency_Strategy<SVC_HANDLER> * = 0);
-
- /// Close down the <Oneshot_Acceptor>.
- virtual ~ACE_Oneshot_Acceptor (void);
-
- // = Explicit factory operation.
- /// Create a <SVC_HANDLER>, accept the connection into the
- /// <SVC_HANDLER>, and activate the <SVC_HANDLER>.
- virtual int accept (SVC_HANDLER * = 0,
- ACE_PEER_ACCEPTOR_ADDR *remote_addr = 0,
- const ACE_Synch_Options &synch_options = ACE_Synch_Options::defaults,
- int restart = 1,
- int reset_new_handle = 0);
-
- /// Cancel a oneshot acceptor that was started asynchronously.
- virtual int cancel (void);
-
- /// Return the underlying <PEER_ACCEPTOR> object.
- virtual operator ACE_PEER_ACCEPTOR &() const;
-
- /// Return the underlying <PEER_ACCEPTOR> object.
- virtual ACE_PEER_ACCEPTOR &acceptor (void) const;
-
- /// Close down the <Oneshot_Acceptor>.
- virtual int close (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /**
- * Bridge method for activating a <svc_handler> with the appropriate
- * concurrency strategy. Default behavior is to activate the
- * <SVC_HANDLER> as a "passive object." However, subclasses can
- * override this strategy to do more sophisticated concurrency
- * activations (such as creating the <SVC_HANDLER> as an "active
- * object" via multi-threading or multi-processing).
- */
- virtual int activate_svc_handler (SVC_HANDLER *svc_handler);
-
- /// Factors out the code shared between the <accept> and
- /// <handle_input> methods.
- int shared_accept (SVC_HANDLER *svc_handler,
- ACE_PEER_ACCEPTOR_ADDR *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle);
-
- // = Demultiplexing hooks.
- /// Returns the listening acceptor's <ACE_HANDLE>.
- virtual ACE_HANDLE get_handle (void) const;
-
- /// Perform termination activities when <this> is removed from the
- /// <reactor>.
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
-
- /// Accept one connection from a client and activates the
- /// SVC_HANDLER.
- virtual int handle_input (ACE_HANDLE);
-
- /// Called when an acceptor times out...
- virtual int handle_timeout (const ACE_Time_Value &tv,
- const void *arg);
-
- // = Dynamic linking hooks.
- /// Default version does no work and returns -1. Must be overloaded
- /// by application developer to do anything meaningful.
- virtual int init (int argc, ACE_TCHAR *argv[]);
-
- /// Default version does no work and returns -1. Must be overloaded
- /// by application developer to do anything meaningful.
- virtual int fini (void);
-
- /// Default version returns address info in <buf>.
- virtual int info (ACE_TCHAR **, size_t) const;
-
- // = Service management hooks.
- /// Default version does no work and returns -1. Must be overloaded
- /// by application developer to do anything meaningful.
- virtual int suspend (void);
-
- /// Default version does no work and returns -1. Must be overloaded
- /// by application developer to do anything meaningful.
- virtual int resume (void);
-
-private:
- /**
- * Insert ourselves into the <ACE_Reactor> so that we can continue
- * accepting this connection asynchronously. This method should NOT
- * be called by developers directly.
- */
- int register_handler (SVC_HANDLER *svc_handler,
- const ACE_Synch_Options &options,
- int restart);
-
- /// Hold the svc_handler_ across asynchrony boundaries.
- SVC_HANDLER *svc_handler_;
-
- /// Hold the restart flag across asynchrony boundaries.
- int restart_;
-
- /// Factory that establishes connections passively.
- ACE_PEER_ACCEPTOR peer_acceptor_;
-
- /// Concurrency strategy for an Acceptor.
- ACE_Concurrency_Strategy<SVC_HANDLER> *concurrency_strategy_;
-
- /// 1 if Acceptor created the concurrency strategy and thus should
- /// delete it, else 0.
- int delete_concurrency_strategy_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Acceptor.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Acceptor.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_ACCEPTOR_H */
diff --git a/ace/Activation_Queue.cpp b/ace/Activation_Queue.cpp
deleted file mode 100644
index 9a271c4d7ae..00000000000
--- a/ace/Activation_Queue.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-#include "ace/Activation_Queue.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Activation_Queue.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Log_Msg.h"
-#include "ace/Malloc_Base.h"
-
-ACE_RCSID (ace,
- Activation_Queue,
- "$Id$")
-
-
-void
-ACE_Activation_Queue::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("delete_queue_ = %d\n"),
- this->delete_queue_));
- ACE_DEBUG ((LM_INFO, ACE_LIB_TEXT ("queue_: \n")));
- if (this->queue_)
- this->queue_->dump();
- else
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(NULL)\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Activation_Queue::ACE_Activation_Queue (ACE_Message_Queue<ACE_SYNCH> *new_queue,
- ACE_Allocator *alloc,
- ACE_Allocator *db_alloc)
- : delete_queue_ (0)
- , allocator_(alloc)
- , data_block_allocator_(db_alloc)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- if (new_queue)
- this->queue_ = new_queue;
- else
- {
- ACE_NEW (this->queue_,
- ACE_Message_Queue<ACE_SYNCH>);
- this->delete_queue_ = 1;
- }
-}
-
-ACE_Activation_Queue::~ACE_Activation_Queue (void)
-{
- if (this->delete_queue_ != 0)
- delete this->queue_;
-}
-
-ACE_Method_Request *
-ACE_Activation_Queue::dequeue (ACE_Time_Value *tv)
-{
- ACE_Message_Block *mb;
-
- // Dequeue the message.
- if (this->queue_->dequeue_head (mb, tv) != -1)
- {
- // Get the next <Method_Request>.
- ACE_Method_Request *mr =
- ACE_reinterpret_cast (ACE_Method_Request *,
- mb->base ());
- // Delete the message block.
- mb->release ();
- return mr;
- }
- else
- return 0;
-}
-
-int
-ACE_Activation_Queue::enqueue (ACE_Method_Request *mr,
- ACE_Time_Value *tv)
-{
- ACE_Message_Block *mb;
-
- // We pass sizeof (*mr) here so that flow control will work
- // correctly. Since we also pass <mr> note that no unnecessary
- // memory is actually allocated -- just the size field is set.
- ACE_NEW_MALLOC_RETURN (mb,
- ACE_static_cast(ACE_Message_Block *,
- this->allocator_->malloc (sizeof (ACE_Message_Block))),
- ACE_Message_Block (sizeof (*mr), // size
- ACE_Message_Block::MB_DATA, // type
- 0, // cont
- (char *) mr, // data
- 0, // allocator
- 0, // locking strategy
- mr->priority (), // priority
- ACE_Time_Value::zero, // execution time
- ACE_Time_Value::max_time, // absolute time of deadline
- this->data_block_allocator_, // data_block allocator
- this->allocator_), // message_block allocator
- -1);
-
- // Enqueue in priority order.
- int result = this->queue_->enqueue_prio (mb, tv);
-
- // Free ACE_Message_Block if enqueue_prio failed.
- if (result == -1)
- ACE_DES_FREE (mb, this->allocator_->free, ACE_Message_Block);
-
- return result;
-}
diff --git a/ace/Activation_Queue.h b/ace/Activation_Queue.h
deleted file mode 100644
index b2c0cf6f383..00000000000
--- a/ace/Activation_Queue.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Activation_Queue.h
- *
- * $Id$
- *
- * @author Andres Kruse <Andres.Kruse@cern.ch>
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_ACTIVATION_QUEUE_H
-#define ACE_ACTIVATION_QUEUE_H
-#include "ace/pre.h"
-
-#include "ace/Synch_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Message_Queue.h"
-#include "ace/Method_Request.h"
-
-// Be compatible with the terminology in the POSA2 book!
-#define ACE_Activation_List ACE_Activation_Queue
-
-/**
- * @class ACE_Activation_Queue
- *
- * @brief Reifies a method into a request. Subclasses typically
- * represent necessary state and behavior.
- *
- * Maintains a priority-ordered queue of ACE_Method_Request objects.
- * A scheduler class (often derived from ACE_Task) subsequently removes
- * each method request and invokes its @c call() method.
- *
- * This class is discussed in depth in the Active Object chapter
- * of POSA2. In that book, it is referred to as an Activation List.
- *
- * @sa ACE_Method_Request
- */
-class ACE_Export ACE_Activation_Queue
-{
-public:
- // = Initialization and termination methods.
- /// Constructor.
- /**
- * Initializes a new activation queue.
- *
- * @param new_queue The activation queue uses an ACE_Message_Queue to
- * queue and order the method requests. If this argument
- * is 0, a new ACE_Message_Queue is created for this
- * object's use and will be deleted when this object is
- * destroyed. If a non-zero pointer is supplied, the
- * passed object will be used and will not be deleted when
- * this object is destroyed. If an ACE_Task is being created
- * to act as the scheduler, for instance, its
- * ACE_Message_Queue pointer can be passed to this object.
- * @param alloc Optional, the allocator to use when allocating
- * ACE_Message_Block instances that wrap the method requests
- * queued to this activation queue. Defaults to
- * ACE_Allocator::instance().
- * @param db_alloc Optional, the allocator to use when allocating
- * data blocks for the ACE_Message_Block instances that
- * wrap the method requests queued to this activation queue.
- * Defaults to ACE_Allocator::instance().
- */
- ACE_Activation_Queue (ACE_Message_Queue<ACE_SYNCH> *new_queue = 0,
- ACE_Allocator *alloc = 0,
- ACE_Allocator *db_alloc = 0);
-
- /// Destructor.
- virtual ~ACE_Activation_Queue (void);
-
- // = Activate Queue operations.
-
- /// Dequeue the next available ACE_Method_Request.
- /**
- * @param tv If 0, the method will block until a method request is
- * available, else will wait until the absolute time specified
- * in the referenced ACE_Time_Value. This method will return,
- * earlier, however, if queue is closed, deactivated, or when
- * a signal occurs.
- *
- * @retval Pointer to the dequeued ACE_Method_Request object.
- * @retval 0 an error occurs; errno contains further information. If
- * the specified timeout elapses, errno will be @c EWOULDBLOCK.
- */
- ACE_Method_Request *dequeue (ACE_Time_Value *tv = 0);
-
- /// Enqueue the ACE_Method_Request in priority order.
- /**
- * The priority of the method request is obtained via the @c priority()
- * method of the queued method request. Priority ordering is determined
- * by the ACE_Message_Queue class; 0 is the lowest priority.
- *
- * @param new_method_request Pointer to the ACE_Method_Request object to
- * queue. This object's @c priority() method is called to obtain
- * the priority.
- * @param tv If 0, the method will block until the method request can
- * be queued, else will wait until the absolute time specified
- * in the referenced ACE_Time_Value. This method will return,
- * earlier, however, if queue is closed, deactivated, or when
- * a signal occurs.
- *
- * @retval 0 on success.
- * @retval -1 if an error occurs; errno contains further information. If
- * the specified timeout elapses, errno will be @c EWOULDBLOCK.
- */
- int enqueue (ACE_Method_Request *new_method_request,
- ACE_Time_Value *tv = 0);
-
- /// Get the current number of method objects in the queue.
- size_t method_count (void) const;
-
- /// Returns 1 if the queue is empty, 0 otherwise.
- int is_empty (void) const;
-
- /// Returns 1 if the queue is full, 0 otherwise.
- int is_full (void) const;
-
- /// Dump the state of an request.
- void dump (void) const;
-
- /// Get a pointer to the underlying queue.
- ACE_Message_Queue<ACE_SYNCH> *queue (void) const;
-
- /// Set the pointer to the underlying queue.
- void queue (ACE_Message_Queue<ACE_SYNCH> *q);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Stores the <Method_Requests>.
- ACE_Message_Queue<ACE_SYNCH> *queue_;
-
- /// Keeps track of whether we need to delete the queue.
- int delete_queue_;
-
-private:
- /// Allocation strategy of the queue.
- ACE_Allocator *allocator_;
-
- /// Allocation strategy of the message blocks.
- ACE_Allocator *data_block_allocator_;
-
- // = Prevent assignment and initialization.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Activation_Queue &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Activation_Queue (const ACE_Activation_Queue &))
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Activation_Queue.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_ACTIVATION_QUEUE_H */
-
diff --git a/ace/Activation_Queue.i b/ace/Activation_Queue.i
deleted file mode 100644
index b4b9283bced..00000000000
--- a/ace/Activation_Queue.i
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Activation_Queue.i
-
-ACE_INLINE size_t
-ACE_Activation_Queue::method_count (void) const
-{
- return queue_->message_count ();
-}
-
-ACE_INLINE int
-ACE_Activation_Queue::is_full (void) const
-{
- return queue_->is_full ();
-}
-
-ACE_INLINE int
-ACE_Activation_Queue::is_empty (void) const
-{
- return queue_->is_empty ();
-}
-
-ACE_INLINE ACE_Message_Queue<ACE_SYNCH> *
-ACE_Activation_Queue::queue (void) const
-{
- return queue_;
-}
-
-ACE_INLINE void
-ACE_Activation_Queue::queue (ACE_Message_Queue<ACE_SYNCH> *q)
-{
- queue_ = q;
-}
diff --git a/ace/Active_Map_Manager.cpp b/ace/Active_Map_Manager.cpp
deleted file mode 100644
index a01fb45d9b0..00000000000
--- a/ace/Active_Map_Manager.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-// $Id$
-
-#include "ace/Active_Map_Manager.h"
-
-ACE_RCSID(ace, Active_Map_Manager, "$Id$")
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Active_Map_Manager.i"
-#endif /* __ACE_INLINE__ */
-
diff --git a/ace/Active_Map_Manager.h b/ace/Active_Map_Manager.h
deleted file mode 100644
index 7c0ef680ef2..00000000000
--- a/ace/Active_Map_Manager.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Active_Map_Manager.h
- *
- * $Id$
- *
- * @author Irfan Pyarali
- */
-//=============================================================================
-
-
-#ifndef ACE_ACTIVE_MAP_MANAGER_H
-#define ACE_ACTIVE_MAP_MANAGER_H
-#include "ace/pre.h"
-
-#include "ace/OS_String.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Active_Map_Manager_Key
- *
- * @brief Key used in the Active Object Map.
- *
- * This key keeps information of the index and the generation
- * count of the slot it represents. Since the index information
- * is part of the key, lookups are super fast and predictable,
- */
-class ACE_Export ACE_Active_Map_Manager_Key
-{
-public:
- /// Default constructor.
- ACE_Active_Map_Manager_Key (void);
-
- /**
- * Constructor given the <slot_index> and <slot_generation> number.
- * This is useful once the user has somehow recovered the
- * <slot_index> and <slot_generation> number from the client.
- */
- ACE_Active_Map_Manager_Key (ACE_UINT32 slot_index,
- ACE_UINT32 slot_generation);
-
- /// Get the <slot_index>.
- ACE_UINT32 slot_index (void) const;
-
- /// Set the <slot_index>.
- void slot_index (ACE_UINT32 i);
-
- /// Get the <slot_generation> number.
- ACE_UINT32 slot_generation (void) const;
-
- /// Set the <slot_generation> number.
- void slot_generation (ACE_UINT32 g);
-
- /// Size required to store information about active key.
- static size_t size (void);
-
- /// Recover state of active key from <data>. User must make sure
- /// that <data> encoded using the <encode> method.
- void decode (const void *data);
-
- /// Encode state of the active key into <data>. <data> must be as
- /// big as the value returned from <size>.
- void encode (void *data) const;
-
- /// Compare keys.
- int operator== (const ACE_Active_Map_Manager_Key &rhs) const;
- int operator!= (const ACE_Active_Map_Manager_Key &rhs) const;
-
- // = This really should be protected but because of template
- // friends, they are not.
-
- /// Increment the <slot_generation> number.
- void increment_slot_generation_count (void);
-
-private:
-
- /**
- * @brief Data for the Active Object Map Key.
- *
- * This separate structure makes it easier to manage copying
- * the index and the generation to and from the user buffer.
- *
- */
- struct key_data
- {
- /// Slot index in the active map.
- ACE_UINT32 slot_index_;
-
- /// Slot generation number of <slot_index_> slot in the active map.
- ACE_UINT32 slot_generation_;
- };
-
- /// Data for the Active Object Map Key.
- key_data key_data_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Active_Map_Manager.i"
-#endif /* __ACE_INLINE__ */
-
-// Include the templates here.
-#include "ace/Active_Map_Manager_T.h"
-
-#include "ace/post.h"
-#endif /* ACE_ACTIVE_MAP_MANAGER_H */
diff --git a/ace/Active_Map_Manager.i b/ace/Active_Map_Manager.i
deleted file mode 100644
index 0e73f7e50ec..00000000000
--- a/ace/Active_Map_Manager.i
+++ /dev/null
@@ -1,89 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-ACE_INLINE
-ACE_Active_Map_Manager_Key::ACE_Active_Map_Manager_Key (void)
-{
- // If you change ~0, please change ACE_Map_Manager::free_list_id()
- // accordingly.
- this->key_data_.slot_index_ = ~0;
- this->key_data_.slot_generation_ = 0;
-}
-
-ACE_INLINE
-ACE_Active_Map_Manager_Key::ACE_Active_Map_Manager_Key (ACE_UINT32 slot_index,
- ACE_UINT32 slot_generation)
-{
- this->key_data_.slot_index_ = slot_index;
- this->key_data_.slot_generation_ = slot_generation;
-}
-
-ACE_INLINE ACE_UINT32
-ACE_Active_Map_Manager_Key::slot_index (void) const
-{
- return this->key_data_.slot_index_;
-}
-
-ACE_INLINE ACE_UINT32
-ACE_Active_Map_Manager_Key::slot_generation (void) const
-{
- return this->key_data_.slot_generation_;
-}
-
-ACE_INLINE int
-ACE_Active_Map_Manager_Key::operator== (const ACE_Active_Map_Manager_Key &rhs) const
-{
- return
- this->key_data_.slot_index_ == rhs.key_data_.slot_index_ &&
- this->key_data_.slot_generation_ == rhs.key_data_.slot_generation_;
-}
-
-ACE_INLINE int
-ACE_Active_Map_Manager_Key::operator!= (const ACE_Active_Map_Manager_Key &rhs) const
-{
- return !this->operator== (rhs);
-}
-
-ACE_INLINE void
-ACE_Active_Map_Manager_Key::slot_index (ACE_UINT32 i)
-{
- this->key_data_.slot_index_ = i;
-}
-
-ACE_INLINE void
-ACE_Active_Map_Manager_Key::slot_generation (ACE_UINT32 g)
-{
- this->key_data_.slot_generation_ = g;
-}
-
-ACE_INLINE void
-ACE_Active_Map_Manager_Key::increment_slot_generation_count (void)
-{
- ++this->key_data_.slot_generation_;
-}
-
-/* static */
-ACE_INLINE size_t
-ACE_Active_Map_Manager_Key::size (void)
-{
- return sizeof (ACE_UINT32) + sizeof (ACE_UINT32);
-}
-
-ACE_INLINE void
-ACE_Active_Map_Manager_Key::decode (const void *data)
-{
- // Copy the information from the user buffer into the key.
- ACE_OS_String::memcpy (&this->key_data_,
- data,
- sizeof this->key_data_);
-}
-
-ACE_INLINE void
-ACE_Active_Map_Manager_Key::encode (void *data) const
-{
- // Copy the key data to the user buffer.
- ACE_OS_String::memcpy (data,
- &this->key_data_,
- sizeof this->key_data_);
-}
diff --git a/ace/Active_Map_Manager_T.cpp b/ace/Active_Map_Manager_T.cpp
deleted file mode 100644
index a544bc28fda..00000000000
--- a/ace/Active_Map_Manager_T.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-// $Id$
-
-#ifndef ACE_ACTIVE_MAP_MANAGER_T_C
-#define ACE_ACTIVE_MAP_MANAGER_T_C
-
-#include "ace/Active_Map_Manager_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Active_Map_Manager_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Active_Map_Manager_T, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Active_Map_Manager)
-
-#endif /* ACE_ACTIVE_MAP_MANAGER_T_C */
diff --git a/ace/Active_Map_Manager_T.h b/ace/Active_Map_Manager_T.h
deleted file mode 100644
index b91d2fec51a..00000000000
--- a/ace/Active_Map_Manager_T.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Active_Map_Manager_T.h
- *
- * $Id$
- *
- * @author Irfan Pyarali
- */
-//=============================================================================
-
-
-#ifndef ACE_ACTIVE_MAP_MANAGER_T_H
-#define ACE_ACTIVE_MAP_MANAGER_T_H
-#include "ace/pre.h"
-
-#include "ace/Map_Manager.h"
-#include "ace/Active_Map_Manager.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Active_Map_Manager
- *
- * @brief Define a map abstraction that associates system generated
- * keys with user specified values.
- *
- * Since the key is system generated, searches are very fast and
- * take a constant amount of time.
- */
-template <class T>
-class ACE_Active_Map_Manager : public ACE_Map_Manager<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex>
-{
-public:
-
- // = Traits.
- typedef ACE_Active_Map_Manager_Key key_type;
- typedef T mapped_type;
-
- typedef ACE_Map_Entry<ACE_Active_Map_Manager_Key, T> ENTRY;
- typedef ACE_Map_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> ITERATOR;
- typedef ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> REVERSE_ITERATOR;
-
- typedef ENTRY entry;
- typedef ITERATOR iterator;
- typedef REVERSE_ITERATOR reverse_iterator;
-
- // = Initialization and termination methods.
- /// Initialize a <Active_Map_Manager> with the <ACE_DEFAULT_MAP_SIZE>.
- ACE_Active_Map_Manager (ACE_Allocator *alloc = 0);
-
- /// Initialize a <Active_Map_Manager> with <size> entries.
- ACE_Active_Map_Manager (size_t size,
- ACE_Allocator *alloc = 0);
-
- /// Close down a <Active_Map_Manager> and release dynamically
- /// allocated resources.
- ~ACE_Active_Map_Manager (void);
-
- /// Initialize a <Active_Map_Manager> with size <length>.
- int open (size_t length = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- /// Close down a <Active_Map_Manager> and release dynamically
- /// allocated resources.
- int close (void);
-
- /// Add <value> to the map, and the corresponding key produced by the
- /// Active_Map_Manager is returned through <key>.
- int bind (const T &value,
- ACE_Active_Map_Manager_Key &key);
-
- /// Add <value> to the map. The user does not care about the
- /// corresponding key produced by the Active_Map_Manager.
- int bind (const T &value);
-
- /**
- * Reserves a slot in the internal structure and returns the key and
- * a pointer to the value. User should place their <value> into
- * <*internal_value>. This method is useful in reducing the number
- * of copies required in some cases. Note that <internal_value> is
- * only a temporary pointer and will change when the map resizes.
- * Therefore, the user should use the pointer immediately and not
- * hold on to it.
- */
- int bind (ACE_Active_Map_Manager_Key &key,
- T *&internal_value);
-
- /// Reassociate <key> with <value>. The function fails if <key> is
- /// not in the map.
- int rebind (const ACE_Active_Map_Manager_Key &key,
- const T &value);
-
- /**
- * Reassociate <key> with <value>, storing the old value into the
- * "out" parameter <old_value>. The function fails if <key> is not
- * in the map.
- */
- int rebind (const ACE_Active_Map_Manager_Key &key,
- const T &value,
- T &old_value);
-
- /**
- * Reassociate <key> with <value>, storing the old key and value
- * into the "out" parameter <old_key> and <old_value>. The function
- * fails if <key> is not in the map.
- */
- int rebind (const ACE_Active_Map_Manager_Key &key,
- const T &value,
- ACE_Active_Map_Manager_Key &old_key,
- T &old_value);
-
- /// Locate <value> associated with <key>.
- int find (const ACE_Active_Map_Manager_Key &key,
- T &value) const;
-
- /// Is <key> in the map?
- int find (const ACE_Active_Map_Manager_Key &key) const;
-
- /**
- * Locate <value> associated with <key>. The value is returned via
- * <internal_value> and hence a copy is saved. Note that
- * <internal_value> is only a temporary pointer and will change when
- * the map resizes. Therefore, the user should use the pointer
- * immediately and not hold on to it.
- */
- int find (const ACE_Active_Map_Manager_Key &key,
- T *&internal_value) const;
-
- // Creates a key. User should place their <value> into
- // <*internal_value>. This method is useful in reducing the number
- // of copies required in some cases.
-
- /// Remove <key> from the map.
- int unbind (const ACE_Active_Map_Manager_Key &key);
-
- /// Remove <key> from the map, and return the <value> associated with
- /// <key>.
- int unbind (const ACE_Active_Map_Manager_Key &key,
- T &value);
-
- /**
- * Locate <value> associated with <key>. The value is returned via
- * <internal_value> and hence a copy is saved. Note that
- * <internal_value> is only a temporary pointer and will change when
- * the map resizes or when this slot is reused. Therefore, the user
- * should use the pointer immediately and not hold on to it.
- */
- int unbind (const ACE_Active_Map_Manager_Key &key,
- T *&internal_value);
-
- /// Return the current size of the map.
- size_t current_size (void) const;
-
- /// Return the total size of the map.
- size_t total_size (void) const;
-
- /// Returns a key that cannot be found in the map.
- static const ACE_Active_Map_Manager_Key npos (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iterator factory functions.
-
- /// Return forward iterator.
- ACE_Map_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> begin (void);
- ACE_Map_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> end (void);
-
- /// Return reverse iterator.
- ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> rbegin (void);
- ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> rend (void);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
-
- /// Private base class
- typedef ACE_Map_Manager<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> ACE_AMM_BASE;
-
-private:
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Active_Map_Manager<T> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Active_Map_Manager (const ACE_Active_Map_Manager<T> &))
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Active_Map_Manager_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Active_Map_Manager_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Active_Map_Manager_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_ACTIVE_MAP_MANAGER_T_H */
diff --git a/ace/Active_Map_Manager_T.i b/ace/Active_Map_Manager_T.i
deleted file mode 100644
index 981594c3dfc..00000000000
--- a/ace/Active_Map_Manager_T.i
+++ /dev/null
@@ -1,303 +0,0 @@
-// $Id$
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::bind (ACE_Active_Map_Manager_Key &key,
- T *&internal_value)
-{
- ACE_UINT32 slot_index;
- int result = this->next_free (slot_index);
-
- if (result == 0)
- {
- // Move from free list to occupied list
- this->move_from_free_list_to_occupied_list (slot_index);
-
- // Reset the key.
- this->search_structure_[slot_index].ext_id_.increment_slot_generation_count ();
- this->search_structure_[slot_index].ext_id_.slot_index (slot_index);
-
- // Copy the key for the user.
- key = this->search_structure_[slot_index].ext_id_;
-
- // This is where the user should place the value.
- internal_value = &this->search_structure_[slot_index].int_id_;
-
- // Update the current size.
- ++this->cur_size_;
- }
-
- return result;
-}
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::bind (const T &value,
- ACE_Active_Map_Manager_Key &key)
-{
- T *internal_value = 0;
- int result = this->bind (key,
- internal_value);
-
- if (result == 0)
- {
- // Store new value.
- *internal_value = value;
- }
-
- return result;
-}
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::bind (const T &value)
-{
- ACE_Active_Map_Manager_Key key;
- return this->bind (value, key);
-}
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::find (const ACE_Active_Map_Manager_Key &key,
- T *&internal_value) const
-{
- ACE_UINT32 slot_index = key.slot_index ();
- ACE_UINT32 slot_generation = key.slot_generation ();
-
- if (slot_index > this->total_size_ ||
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
- this->search_structure_[slot_index].free_ ||
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
- this->search_structure_[slot_index].ext_id_.slot_generation () != slot_generation ||
- this->search_structure_[slot_index].ext_id_.slot_index () ==
- (ACE_UINT32)this->free_list_id ())
- {
- return -1;
- }
- else
- {
- // This is where the user value is.
- internal_value = &this->search_structure_[slot_index].int_id_;
- }
-
- return 0;
-}
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::find (const ACE_Active_Map_Manager_Key &key) const
-{
- T *internal_value = 0;
- return this->find (key,
- internal_value);
-}
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::find (const ACE_Active_Map_Manager_Key &key,
- T &value) const
-{
- T *internal_value = 0;
- int result = this->find (key,
- internal_value);
-
- if (result == 0)
- value = *internal_value;
-
- return result;
-}
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::rebind (const ACE_Active_Map_Manager_Key &key,
- const T &value)
-{
- int result = this->find (key);
-
- if (result == 0)
- {
- // Store new value.
- this->search_structure_[key.slot_index ()].int_id_ = value;
- }
-
- return result;
-}
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::rebind (const ACE_Active_Map_Manager_Key &key,
- const T &value,
- T &old_value)
-{
- int result = this->find (key);
-
- if (result == 0)
- {
- // Copy old value.
- old_value = this->search_structure_[key.slot_index ()].int_id_;
-
- // Store new value.
- this->search_structure_[key.slot_index ()].int_id_ = value;
- }
-
- return result;
-}
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::rebind (const ACE_Active_Map_Manager_Key &key,
- const T &value,
- ACE_Active_Map_Manager_Key &old_key,
- T &old_value)
-{
- int result = this->find (key);
-
- if (result == 0)
- {
- // Copy old key.
- old_key = this->search_structure_[key.slot_index ()].ext_id_;
-
- // Copy old value.
- old_value = this->search_structure_[key.slot_index ()].int_id_;
-
- // Store new value.
- this->search_structure_[key.slot_index ()].int_id_ = value;
- }
-
- return result;
-}
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::unbind (const ACE_Active_Map_Manager_Key &key,
- T *&internal_value)
-{
- int result = this->find (key,
- internal_value);
-
- if (result == 0)
- {
- ACE_UINT32 slot_index = key.slot_index ();
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
- //
- // In the case of lazy map managers, the movement of free slots
- // from the occupied list to the free list is delayed until we
- // run out of free slots in the free list.
- //
-
- this->search_structure_[slot_index].free_ = 1;
-
-#else
-
- // Move from occupied list to free list.
- this->move_from_occupied_list_to_free_list (slot_index);
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- // Reset the slot_index. This will tell us that this entry is free.
- this->search_structure_[slot_index].ext_id_.slot_index (this->free_list_id ());
-
- // Update the current size.
- --this->cur_size_;
- }
-
- return result;
-}
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::unbind (const ACE_Active_Map_Manager_Key &key,
- T &value)
-{
- T *internal_value;
- int result = this->unbind (key,
- internal_value);
-
- if (result == 0)
- {
- // Copy old value.
- value = *internal_value;
- }
-
- return result;
-}
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::unbind (const ACE_Active_Map_Manager_Key &key)
-{
- T *internal_value;
- return this->unbind (key,
- internal_value);
-}
-
-template <class T> ACE_INLINE
-ACE_Active_Map_Manager<T>::ACE_Active_Map_Manager (ACE_Allocator *alloc)
- : ACE_AMM_BASE (alloc)
-{
-}
-
-template <class T> ACE_INLINE
-ACE_Active_Map_Manager<T>::ACE_Active_Map_Manager (size_t size,
- ACE_Allocator *alloc)
- : ACE_AMM_BASE (size,
- alloc)
-{
-}
-
-template <class T> ACE_INLINE
-ACE_Active_Map_Manager<T>::~ACE_Active_Map_Manager (void)
-{
-}
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::open (size_t length,
- ACE_Allocator *alloc)
-{
- return ACE_AMM_BASE::open (length, alloc);
-}
-
-template <class T> ACE_INLINE int
-ACE_Active_Map_Manager<T>::close (void)
-{
- return ACE_AMM_BASE::close ();
-}
-
-template <class T> ACE_INLINE size_t
-ACE_Active_Map_Manager<T>::current_size (void) const
-{
- return ACE_AMM_BASE::current_size ();
-}
-
-template <class T> ACE_INLINE size_t
-ACE_Active_Map_Manager<T>::total_size (void) const
-{
- return ACE_AMM_BASE::total_size ();
-}
-
-/* static */
-template <class T> ACE_INLINE const ACE_Active_Map_Manager_Key
-ACE_Active_Map_Manager<T>::npos (void)
-{
- return ACE_Active_Map_Manager_Key (~0, ~0);
-}
-
-template <class T> ACE_INLINE void
-ACE_Active_Map_Manager<T>::dump (void) const
-{
- ACE_AMM_BASE::dump ();
-}
-
-template <class T> ACE_Map_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex>
-ACE_Active_Map_Manager<T>::begin (void)
-{
- return ACE_AMM_BASE::begin ();
-}
-
-template <class T> ACE_INLINE ACE_Map_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex>
-ACE_Active_Map_Manager<T>::end (void)
-{
- return ACE_AMM_BASE::end ();
-}
-
-template <class T> ACE_INLINE ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex>
-ACE_Active_Map_Manager<T>::rbegin (void)
-{
- return ACE_AMM_BASE::rbegin ();
-}
-
-template <class T> ACE_INLINE ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex>
-ACE_Active_Map_Manager<T>::rend (void)
-{
- return ACE_AMM_BASE::rend ();
-}
diff --git a/ace/Addr.cpp b/ace/Addr.cpp
deleted file mode 100644
index c1621d27b47..00000000000
--- a/ace/Addr.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// Addr.cpp
-// $Id$
-
-#include "ace/Addr.h"
-#include "ace/Log_Msg.h"
-#include "ace/OS.h"
-
-ACE_RCSID(ace, Addr, "$Id$")
-
-// Note: this object requires static construction and destruction.
-/* static */
-const ACE_Addr ACE_Addr::sap_any (AF_ANY, -1);
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Addr.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Addr)
-
-void
-ACE_Addr::dump (void) const
-{
- ACE_TRACE ("ACE_Addr::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("addr_type_ = %d"), this->addr_type_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\naddr_size_ = %d"), this->addr_size_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Initializes instance variables.
-
-void
-ACE_Addr::base_set (int type, int size)
-{
- this->addr_type_ = type;
- this->addr_size_ = size;
-}
-
-// Initializes instance variables. Note that 0 is an unspecified
-// protocol family type...
-
-ACE_Addr::ACE_Addr (int type, int size)
-{
- this->base_set (type, size);
-}
-
-ACE_Addr::~ACE_Addr (void)
-{
-}
diff --git a/ace/Addr.h b/ace/Addr.h
deleted file mode 100644
index 3ff09bd5fbe..00000000000
--- a/ace/Addr.h
+++ /dev/null
@@ -1,100 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Addr.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_ADDR_H
-#define ACE_ADDR_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Addr
- *
- * @brief Defines the base class for the "address family independent"
- * address format.
- */
-class ACE_Export ACE_Addr
-{
-public:
- // = Initialization and termination methods.
- /// Initializes instance variables.
- ACE_Addr (int type = -1,
- int size = -1);
-
- /// Destructor.
- virtual ~ACE_Addr (void);
-
- // = Get/set the size of the address.
-
- /// Return the size of the address.
- int get_size (void) const;
-
- /// Sets the size of the address.
- void set_size (int size);
-
- // = Get/set the type of the address.
-
- /// Get the type of the address.
- int get_type (void) const;
-
- /// Set the type of the address.
- void set_type (int type);
-
- /// Return a pointer to the address.
- virtual void *get_addr (void) const;
-
- /// Set a pointer to the address.
- virtual void set_addr (void *, int len);
-
- // = Equality/inequality tests
- /// Check for address equality.
- int operator == (const ACE_Addr &sap) const;
-
- /// Check for address inequality.
- int operator != (const ACE_Addr &sap) const;
-
- /// Initializes instance variables.
- void base_set (int type, int size);
-
- /// Wild-card address.
- static const ACE_Addr sap_any;
-
- /// Returns a hash value. This should be overwritten by a subclass
- /// that can produce a better hash value.
- virtual unsigned long hash (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// e.g., AF_UNIX, AF_INET, AF_SPIPE, etc.
- int addr_type_;
-
- /// Number of bytes in the address.
- int addr_size_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Addr.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_ADDR_H */
diff --git a/ace/Addr.i b/ace/Addr.i
deleted file mode 100644
index dd5bcf64599..00000000000
--- a/ace/Addr.i
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Addr.i
-
-// Return the address of the address.
-
-ACE_INLINE void *
-ACE_Addr::get_addr (void) const
-{
- return 0;
-}
-
-ACE_INLINE void
-ACE_Addr::set_addr (void *, int)
-{
-}
-
-ACE_INLINE int
-ACE_Addr::operator == (const ACE_Addr &sap) const
-{
- return (sap.addr_type_ == this->addr_type_ &&
- sap.addr_size_ == this->addr_size_ );
-}
-
-ACE_INLINE int
-ACE_Addr::operator != (const ACE_Addr &sap) const
-{
- return (sap.addr_type_ != this->addr_type_ ||
- sap.addr_size_ != this->addr_size_ );
-}
-
-// Return the size of the address.
-
-ACE_INLINE int
-ACE_Addr::get_size (void) const
-{
- return this->addr_size_;
-}
-
-// Sets the size of the address.
-
-ACE_INLINE void
-ACE_Addr::set_size (int size)
-{
- this->addr_size_ = size;
-}
-
-// Return the type of the address.
-
-ACE_INLINE int
-ACE_Addr::get_type (void) const
-{
- return this->addr_type_;
-}
-
-// Set the type of the address.
-
-ACE_INLINE void
-ACE_Addr::set_type (int type)
-{
- this->addr_type_ = type;
-}
-
-ACE_INLINE unsigned long
-ACE_Addr::hash (void) const
-{
- return 0;
-}
diff --git a/ace/Arg_Shifter.cpp b/ace/Arg_Shifter.cpp
deleted file mode 100644
index d174b4b0ef7..00000000000
--- a/ace/Arg_Shifter.cpp
+++ /dev/null
@@ -1,207 +0,0 @@
-#include "ace/Arg_Shifter.h"
-#include "ace/OS_String.h"
-#include "ace/OS_Errno.h"
-#include "ace/OS_Memory.h"
-
-ACE_RCSID (ace,
- Arg_Shifter,
- "$Id$")
-
-
-ACE_Arg_Shifter::ACE_Arg_Shifter (int& argc,
- const ACE_TCHAR** argv,
- const ACE_TCHAR** temp)
- : argc_ (argc),
- total_size_ (argc),
- temp_ (temp),
- argv_ (argv),
- current_index_ (0),
- back_ (argc - 1),
- front_ (0)
-{
- this->init ();
-}
-
-ACE_Arg_Shifter::ACE_Arg_Shifter (int& argc,
- ACE_TCHAR** argv,
- ACE_TCHAR** temp)
- : argc_ (argc),
- total_size_ (argc),
- temp_ ((const ACE_TCHAR **) temp),
- argv_ ((const ACE_TCHAR **) argv),
- current_index_ (0),
- back_ (argc - 1),
- front_ (0)
-{
- this->init ();
-}
-
-void
-ACE_Arg_Shifter::init (void)
-{
- // If not provided with one, allocate a temporary array.
- if (this->temp_ == 0)
- ACE_NEW (this->temp_,
- const ACE_TCHAR *[this->total_size_]);
-
- if (this->temp_ != 0)
- {
- // Fill the temporary array.
- this->argc_ = 0;
- for (int i = 0; i < this->total_size_; i++)
- {
- this->temp_[i] = this->argv_[i];
- this->argv_[i] = 0;
- }
- }
- else
- {
- // Allocation failed, prohibit iteration.
- this->current_index_ = this->argc_;
- this->front_ = this->argc_;
- }
-}
-
-ACE_Arg_Shifter::~ACE_Arg_Shifter (void)
-{
- // Delete the temporary vector.
- delete [] temp_;
-}
-
-const ACE_TCHAR *
-ACE_Arg_Shifter::get_current (void) const
-{
- const ACE_TCHAR * retval = 0;
-
- if (this->is_anything_left ())
- retval = this->temp_[current_index_];
-
- return retval;
-}
-
-const ACE_TCHAR *
-ACE_Arg_Shifter::get_the_parameter (const ACE_TCHAR *flag)
-{
- // the return 0's abound because this method
- // would otherwise be a deep if { } else { }
-
- // check to see if any arguments still exist
- if (!this->is_anything_left())
- return 0;
-
- // check to see if the flag is the argument
- int offset = this->cur_arg_strncasecmp (flag);
- if (offset == -1)
- return 0;
-
- if (offset == 0)
- {
- this->consume_arg ();
-
- if (!this->is_parameter_next())
- {
- return 0;
- }
- }
- // the paramter is in the middle somewhere...
- return this->temp_[current_index_] + offset;
-}
-
-int
-ACE_Arg_Shifter::cur_arg_strncasecmp (const ACE_TCHAR *flag)
-{
- // Check for a current argument
- if (this->is_anything_left())
- {
- size_t flag_length = ACE_OS_String::strlen (flag);
-
- // Check for presence of the flag
- if (ACE_OS_String::strncasecmp(this->temp_[current_index_],
- flag,
- flag_length) == 0)
- {
- if (ACE_OS_String::strlen(temp_[current_index_]) ==
- flag_length)
- {
- // match and lengths are equal
- return 0;
- }
- else
- {
- // matches, with more info to boot!
- size_t remaining = ACE_OS_String::strspn
- (this->temp_[current_index_] + flag_length,
- ACE_LIB_TEXT (" ")) + flag_length;
- return ACE_static_cast (int, remaining);
- }
- }
- }
- // failure
- return -1;
-}
-
-int
-ACE_Arg_Shifter::consume_arg (int number)
-{
- int retval = 0;
-
- // Stick knowns at the end of the vector (consumed).
- if (this->is_anything_left() >= number)
- {
- for (int i = 0, j = this->back_ - (number - 1);
- i < number;
- ++i, ++j, ++this->current_index_)
- this->argv_[j] = this->temp_[this->current_index_];
-
- this->back_ -= number;
- retval = 1;
- }
-
- return retval;
-}
-
-int
-ACE_Arg_Shifter::ignore_arg (int number)
-{
- int retval = 0;
-
- // Keep unknowns at the head of the vector.
- if (this->is_anything_left () >= number)
- {
- for (int i = 0;
- i < number;
- i++, this->current_index_++, this->front_++)
- this->argv_[this->front_] = this->temp_[this->current_index_];
-
- retval = 1;
- this->argc_ += number;
- }
-
- return retval;
-}
-
-int
-ACE_Arg_Shifter::is_anything_left (void) const
-{
- return this->total_size_ - this->current_index_;
-}
-
-int
-ACE_Arg_Shifter::is_option_next (void) const
-{
- return this->is_anything_left () &&
- this->temp_[this->current_index_][0] == '-';
-}
-
-int
-ACE_Arg_Shifter::is_parameter_next (void) const
-{
- return this->is_anything_left ()
- && this->temp_[this->current_index_][0] != '-';
-}
-
-int
-ACE_Arg_Shifter::num_ignored_args (void) const
-{
- return this->front_;
-}
diff --git a/ace/Arg_Shifter.h b/ace/Arg_Shifter.h
deleted file mode 100644
index 2e58b471043..00000000000
--- a/ace/Arg_Shifter.h
+++ /dev/null
@@ -1,204 +0,0 @@
-// This may look like C, but it's really -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Arg_Shifter.h
- *
- * $Id$
- *
- * @author Seth Widoff
- */
-//=============================================================================
-
-#ifndef ACE_ARG_SHIFTER_H
-#define ACE_ARG_SHIFTER_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Arg_Shifter
- *
- * @brief This ADT operates on a specified set of arguments (@a argv).
- * As known arguments are scanned, they are shifted to the back of the
- * @a argv vector, so deeper levels of argument parsing can locate the yet
- * unprocessed arguments at the beginning of the vector.
- *
- * The @c ACE_Arg_Shifter copies the pointers of the @a argv vector
- * into a temporary array. As the @c ACE_Arg_Shifter iterates over
- * the copied vector, it places known arguments in the rear of the
- * vector, leaving the unknown ones in the beginning. So, after having
- * visited all the arguments in the temporary vector, @c ACE_Arg_Shifter
- * has placed all the unknown arguments in their original order at
- * the front of original @a argv.
- */
-class ACE_Export ACE_Arg_Shifter
-{
-public:
- // = Initialization and termination methods.
- /**
- * Initialize the ACE_Arg_Shifter to the vector over which to
- * iterate. Optionally, also provide the temporary array for
- * use in shifting the arguments. If ACE_Arg_Shifter must allocate
- * the temporary vector internally and dynamic allocation fails, the
- * ACE_Arg_Shifter will set all indicators to end of the vector,
- * forbidding iteration. Following iteration over @a argv, the
- * @a argc value will be updated to contain the number of
- * unconsumed arguments.
- * @param argc The number of strings in @a argv. @a argc will be
- * updated to reflect the number of unconsumed arguments.
- * @param argv The argument vector to shift. The string pointers in
- * the vector will be reordered to place the @a argc unconsumed
- * arguments at the front of the vector.
- * @param temp A vector of @c ACE_TCHAR pointers at least @a argc
- * elements long. The vector will be used for argument shifting as
- * the specified @a argv vector is consumed. The vector must not
- * be modified while this object exists. If this argument is 0
- * (the default) the object will allocate and free the temporary
- * vector transparently.
- */
- ACE_Arg_Shifter (int& argc,
- const ACE_TCHAR **argv,
- const ACE_TCHAR **temp = 0);
-
- /// Same behavior as the preceding constructor, but without the
- /// "const" qualifier.
- ACE_Arg_Shifter (int& argc,
- ACE_TCHAR **argv,
- ACE_TCHAR **temp = 0);
-
- /// Destructor.
- ~ACE_Arg_Shifter (void);
-
- /// Get the current head of the vector.
- const ACE_TCHAR *get_current (void) const;
-
- /**
- * If the <flag> matches the current_arg of arg shifter
- * this method will attempt to return the associated
- * parameter value
- *
- * Safe to call without checking that a current arg exists
- *
- * In the following examples, a pointer to the char* "value" is ret
- *
- * eg: main -foobar value, main -FooBar value
- * main -FOOBARvalue
- *
- * all of the above will all match the <flag> == -FooBar
- * and will return a char* to "value"
- *
- * main -foobar 4 would succeed and return a char* to "4"
- * main -foobar -4 does not succeed (-4 is not a parameter)
- * but instead, would return 0
- *
- * 0 is returned:
- * If the current argument does not match flag
- * If there is no parameter found after a 'matched' flag
- *
- * If the flag is matched and the flag and paramter DO NOT RUN
- * together, the flag is consumed, the parameter is returned,
- * and the new current argument is the parameter value.
- * ie '-foobarflag VALUE' leaves the new cur arg == "VALUE"
- *
- * If the flag is matched and the flag and parameter RUN
- * together '-foobarflagVALUE', the flag is NOT consumed
- * and the cur arg is left pointing to the entire flag/value pair
- */
- const ACE_TCHAR *get_the_parameter (const ACE_TCHAR* flag);
-
- /**
- * Check if the current argument matches (case insensitive) <flag>
- *
- * ------------------------------------------------------------
- *
- * Case A: Perfect Match (case insensitive)
- * 0 is returned.
- *
- * ie: when current_arg = "-foobar" or "-FOOBAR" or "-fooBAR"
- * this->cur_arg_strncasecmp ("-FooBar);
- * will return 0
- *
- * ------------------------------------------------------------
- *
- * Case B: Perfect Match (case insensitive) but the current_arg
- * is longer than the flag. Returns a number equal to the index
- * in the char* indicating the start of the extra characters
- *
- * ie: when current_arg = "-foobar98023"
- * this->cur_arg_strncasecmp ("-FooBar);
- * will return 7
- *
- * Notice: this number will always be > 0
- *
- * ------------------------------------------------------------
- *
- * Case C: If neither of Case A or B is met (no match)
- * then -1 is returned
- */
- int cur_arg_strncasecmp (const ACE_TCHAR *flag);
-
- /// Consume @a number argument(s) by sticking them/it on the end of
- /// the vector.
- int consume_arg (int number = 1);
-
- /// Place @a number arguments in the same relative order ahead of the
- /// known arguments in the vector.
- int ignore_arg (int number = 1);
-
- /// Returns the number of args left to see in the vector.
- int is_anything_left (void) const;
-
- /// Returns 1 if there's a next item in the vector and it begins with
- /// '-'.
- int is_option_next (void) const;
-
- /// Returns 1 if there's a next item in the vector and it doesn't
- /// begin with '-'.
- int is_parameter_next (void) const;
-
- /// Returns the number of irrelevant args seen.
- int num_ignored_args (void) const;
-
-private:
- /// Copy Constructor should not be used.
- ACE_Arg_Shifter (const ACE_Arg_Shifter&);
-
- /// Assignment '=' operator should not be used.
- ACE_Arg_Shifter operator= (const ACE_Arg_Shifter&);
-
- /// Refactor the constructor logic.
- void init (void);
-
- /// The size of the argument vector.
- int& argc_;
-
- /// The size of argv_.
- int total_size_;
-
- /// The temporary array over which we traverse.
- const ACE_TCHAR **temp_;
-
- /// The array in which the arguments are reordered.
- const ACE_TCHAR **argv_;
-
- /// The element in <temp_> we're currently examining.
- int current_index_;
-
- /// The index of <argv_> in which we'll stick the next unknown
- /// argument.
- int back_;
-
- /// The index of <argv_> in which we'll stick the next known
- /// argument.
- int front_;
-};
-
-#include "ace/post.h"
-
-#endif /* ACE_ARG_SHIFTER_H */
diff --git a/ace/Argv_Type_Converter.cpp b/ace/Argv_Type_Converter.cpp
deleted file mode 100644
index 23ea5dd90ef..00000000000
--- a/ace/Argv_Type_Converter.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-// $Id$
-
-#include "ace/Argv_Type_Converter.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Argv_Type_Converter.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID (ace,
- Argv_Type_Converter,
- "$Id$")
-
-#include "ace/OS_String.h"
-#include "ace/OS_Errno.h"
-
-#if defined (ACE_USES_WCHAR)
-ACE_Argv_Type_Converter::ACE_Argv_Type_Converter(int &argc, wchar_t** argv)
- : saved_argc_ (argc)
- , char_argv_ (0)
- , wchar_argv_ (argv)
- , before_pass_argc_ (argc)
- , original_type_ (1)
- , wchar_passed_ (0)
- , char_passed_ (0)
-{
- this->initialize ();
-
- for (int i = 0; i < argc; ++i)
- {
- this->char_argv_[i] =
- ACE_OS_String::strdup (ACE_TEXT_ALWAYS_CHAR (argv[i]));
- }
-}
-#endif // ACE_USES_WCHAR
-
-
-ACE_Argv_Type_Converter::ACE_Argv_Type_Converter(int &argc, char** argv)
- : saved_argc_(argc)
- , char_argv_(argv)
-#if defined (ACE_USES_WCHAR)
- , wchar_argv_(0)
- , before_pass_argc_(argc)
- , original_type_(0)
- , wchar_passed_(0)
- , char_passed_(0)
-{
- this->initialize();
-
- for (int i = 0; i < argc; ++i)
- {
- this->wchar_argv_[i] =
- ACE_OS_String::strdup (ACE_TEXT_ANTI_TO_TCHAR (argv[i]));
- }
-}
-#else
-{
-}
-#endif // ACE_USES_WCHAR
-
-ACE_Argv_Type_Converter::~ACE_Argv_Type_Converter (void)
-{
-#if defined (ACE_USES_WCHAR)
- // selectively delete the 'copy' of argv
- if (this->original_type_)
- {
- // if original type is wchar_t
- if (this->char_passed_)
- {
- this->align_wchar_with_char();
- }
- for (int i = 0; i < this->before_pass_argc_; ++i)
- {
- delete [] this->char_argv_[i];
- }
- delete [] this->char_argv_;
- }
- else
- {
- // if original type is char
- if (this->wchar_passed_) {
- this->align_char_with_wchar ();
- }
- for (int i = 0; i < this->before_pass_argc_; ++i)
- {
- delete [] this->wchar_argv_[i];
- }
- delete [] this->wchar_argv_;
- }
-#endif // ACE_USES_WCHAR
-}
-
-#if defined (ACE_USES_WCHAR)
-void
-ACE_Argv_Type_Converter::initialize (void)
-{
- if (this->original_type_)
- { // make a copy of argv in 'char' type
- // Create one more argv entry than original argc for the NULL.
- ACE_NEW (char_argv_, char*[this->saved_argc_ + 1]);
- this->char_argv_[saved_argc_] = 0; // last entry of argv is
- // always a NULL
- }
- else
- { // make a copy of argv in 'wchar_t' type
- ACE_NEW (this->wchar_argv_, wchar_t*[this->saved_argc_ + 1]);
- this->wchar_argv_[saved_argc_] = 0;
- }
-}
-
-
-void
-ACE_Argv_Type_Converter::align_char_with_wchar (void)
-{
- int wchar_argv_index = 0;
- wchar_t* match_argv = this->wchar_argv_[0]; // pick the initial entry
-
- while (wchar_argv_index < this->saved_argc_)
- {
- // if n'th entries of both argv lists are different
- if (ACE_OS_String::strcmp(this->char_argv_[wchar_argv_index],
- ACE_TEXT_ALWAYS_CHAR (match_argv)) != 0)
- {
- // loop through the wchar argv list entries that are after
- // wchar_argv_index
- for (int i = wchar_argv_index + 1; i < before_pass_argc_; ++i)
- {
- if (ACE_OS_String::strcmp (this->char_argv_[i],
- ACE_TEXT_ALWAYS_CHAR (match_argv))
- == 0)
- {
- // swap the pointers in the char argv list
- char* temp = this->char_argv_[wchar_argv_index];
- this->char_argv_[wchar_argv_index] = this->char_argv_[i];
- this->char_argv_[i] = temp;
- break;
- }
- }
- }
-
- // move to the next wchar argv list entry
- match_argv = this->wchar_argv_[++wchar_argv_index];
- }
-
- this->cleanup ();
-}
-
-void
-ACE_Argv_Type_Converter::align_wchar_with_char (void)
-{
- int char_argv_index = 0;
- char* match_argv = this->char_argv_[0]; // pick the initial entry
-
- while (char_argv_index < saved_argc_)
- {
- // if n'th entries of both argv lists are different
- if (ACE_OS_String::strcmp (
- ACE_TEXT_ALWAYS_CHAR (this->wchar_argv_[char_argv_index]),
- match_argv) != 0)
- {
- // loop through the wchar argv list entries that are after
- // wchar_argv_index
- for (int i = char_argv_index + 1; i < this->before_pass_argc_; ++i)
- {
- if (ACE_OS_String::strcmp (
- ACE_TEXT_ALWAYS_CHAR(this->wchar_argv_[i]),
- match_argv) == 0) {
- // swap the pointers in the char argv list
- wchar_t* temp = this->wchar_argv_[char_argv_index];
- this->wchar_argv_[char_argv_index] = this->wchar_argv_[i];
- this->wchar_argv_[i] = temp;
- break;
- }
- }
- }
-
- // move to the next wchar argv list entry
- match_argv = this->char_argv_[++char_argv_index];
- }
-
- this->cleanup();
-}
-
-void
-ACE_Argv_Type_Converter::cleanup (void)
-{
- for (int i = this->saved_argc_; i < this->before_pass_argc_; ++i)
- {
- delete [] this->char_argv_[i];
- delete [] this->wchar_argv_[i];
-
- this->char_argv_[i] = 0;
- this->wchar_argv_[i] = 0;
- }
-
- this->before_pass_argc_ = this->saved_argc_;
-
- this->wchar_passed_ = 0;
- this->char_passed_ = 0;
-}
-#endif // ACE_USES_WCHAR
diff --git a/ace/Argv_Type_Converter.h b/ace/Argv_Type_Converter.h
deleted file mode 100644
index 5d662d57733..00000000000
--- a/ace/Argv_Type_Converter.h
+++ /dev/null
@@ -1,116 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Argv_Type_Converter.h
- *
- * $Id$
- *
- * @author Si Mong Park <spark@ociweb.com>
- */
-//=============================================================================
-
-#ifndef ACE_ARGV_TYPE_CONVERTER_H
-#define ACE_ARGV_TYPE_CONVERTER_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-#include "ace/OS_Memory.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-
-/**
- * @class ACE_Argv_Type_Converter
- *
- * @brief To convert 'char' input/command line parameter to 'wchar_t'.
- *
- * This class is to convert 'char' type command line paramter to
- * wide-character (wchar_t) format and stores the copy of it.
- * This is useful for all classes that use 'char**' argv but cannot
- * be converted into 'ACE_TCHAR**' version.
- * Note that the converted data will be lost upon destruction, so
- * classes should use this class as their data member.
- */
-class ACE_Export ACE_Argv_Type_Converter
-{
-public:
-
- ACE_Argv_Type_Converter (int &argc, char** argv);
-
-#if defined (ACE_USES_WCHAR)
- ACE_Argv_Type_Converter (int &argc, wchar_t** argv);
-#endif // ACE_USES_WCHAR
-
- ~ACE_Argv_Type_Converter (void);
-
- /// Returns the pointer of converted command line.
- ACE_TCHAR** get_TCHAR_argv (void);
-
- /// Returns the pointer of ASCII (char) command line.
- char** get_ASCII_argv (void);
-
- /// Returns the number of sub paramters (argc).
- int& get_argc (void);
-
-private:
-
- /// Copy Constructor should not be used.
- ACE_Argv_Type_Converter (const ACE_Argv_Type_Converter&);
-
- /// Assignment '=' operator should not be used.
- ACE_Argv_Type_Converter operator= (const ACE_Argv_Type_Converter&);
-
-#if defined (ACE_USES_WCHAR)
-
- /// Perform common initialization for two Ctor's.
- void initialize (void);
-
- /// Align all entries in the char type argv list with wchar_t type
- /// argv list.
- void align_char_with_wchar (void);
-
- /// Align all entries in the wchar_t type argv list with char type
- /// argv list.
- void align_wchar_with_char (void);
-
- /// Clean up removed (comsumed) argv entries and reset the pass flags.
- void cleanup (void);
-#endif // ACE_USES_WCHAR
-
-private:
- /// Original number of input paramter, same as 'argc'.
- int &saved_argc_;
-
- /// Data member pointer that contains converted argv in ACE_ANTI_TCHAR.
- char** char_argv_;
-
-#if defined (ACE_USES_WCHAR)
- /// Data member pointer that contains converted argv in ACE_TCHAR.
- wchar_t** wchar_argv_;
-
- /// argc value before any argv has been passed.
- int before_pass_argc_;
-
- /// FALSE represents original argv passed in is char, and TRUE
- /// represents wchar_t.
- const int original_type_;
-
- /// TRUE indicates wchar_t type argv has been passed.
- int wchar_passed_;
-
- /// TRUE indicates char type argv has been passed.
- int char_passed_;
-#endif /* ACE_USES_WCHAR */
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Argv_Type_Converter.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_ARGV_TYPE_CONVERTER_H */
diff --git a/ace/Argv_Type_Converter.inl b/ace/Argv_Type_Converter.inl
deleted file mode 100644
index 16c657ce864..00000000000
--- a/ace/Argv_Type_Converter.inl
+++ /dev/null
@@ -1,41 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-
-ACE_INLINE ACE_TCHAR**
-ACE_Argv_Type_Converter::get_TCHAR_argv (void)
-{
-#if defined (ACE_USES_WCHAR)
- if (this->char_passed_)
- {
- this->align_wchar_with_char ();
- }
-
- this->wchar_passed_ = true;
- return this->wchar_argv_;
-#else
- return this->char_argv_;
-#endif // ACE_USES_WCHAR
-}
-
-ACE_INLINE char**
-ACE_Argv_Type_Converter::get_ASCII_argv (void)
-{
-#if defined (ACE_USES_WCHAR)
- if (this->wchar_passed_)
- {
- this->align_char_with_wchar ();
- }
-
- this->char_passed_ = 1;
-#endif // ACE_USES_WCHAR
-
- return this->char_argv_;
-}
-
-ACE_INLINE int&
-ACE_Argv_Type_Converter::get_argc (void)
-{
- return this->saved_argc_;
-}
diff --git a/ace/Array.h b/ace/Array.h
deleted file mode 100644
index d699ae0fd47..00000000000
--- a/ace/Array.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Array.h
- *
- * $Id$
- *
- * NOTE: this file has been deprecated and will soon go away. You
- * should directly include "Containers_T.h" instead.
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_ARRAY_H
-#define ACE_ARRAY_H
-#include "ace/pre.h"
-
-#include "ace/Containers_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/post.h"
-#endif /* ACE_ARRAY_H */
diff --git a/ace/Array_Base.cpp b/ace/Array_Base.cpp
deleted file mode 100644
index 7914a135c2d..00000000000
--- a/ace/Array_Base.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-// $Id$
-
-#ifndef ACE_ARRAY_BASE_C
-#define ACE_ARRAY_BASE_C
-
-#include "ace/Malloc_Base.h"
-#include "ace/Array_Base.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Array_Base.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Array_Base, "$Id$")
-
-
-// Dynamically initialize an array.
-
-template <class T>
-ACE_Array_Base<T>::ACE_Array_Base (size_t size,
- ACE_Allocator *alloc)
- : max_size_ (size),
- cur_size_ (size),
- allocator_ (alloc)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- if (size != 0)
- {
- ACE_ALLOCATOR (this->array_,
- (T *) this->allocator_->malloc (size * sizeof (T)));
- for (size_t i = 0; i < size; ++i)
- new (&array_[i]) T;
- }
- else
- this->array_ = 0;
-}
-
-template <class T>
-ACE_Array_Base<T>::ACE_Array_Base (size_t size,
- const T &default_value,
- ACE_Allocator *alloc)
- : max_size_ (size),
- cur_size_ (size),
- allocator_ (alloc)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- if (size != 0)
- {
- ACE_ALLOCATOR (this->array_,
- (T *) this->allocator_->malloc (size * sizeof (T)));
- for (size_t i = 0; i < size; ++i)
- new (&array_[i]) T (default_value);
- }
- else
- this->array_ = 0;
-}
-
-// The copy constructor (performs initialization).
-
-template <class T>
-ACE_Array_Base<T>::ACE_Array_Base (const ACE_Array_Base<T> &s)
- : max_size_ (s.size ()),
- cur_size_ (s.size ()),
- allocator_ (s.allocator_)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- ACE_ALLOCATOR (this->array_,
- (T *) this->allocator_->malloc (s.size () * sizeof (T)));
- for (size_t i = 0; i < this->size (); i++)
- new (&this->array_[i]) T (s.array_[i]);
-}
-
-// Assignment operator (performs assignment).
-
-template <class T> void
-ACE_Array_Base<T>::operator= (const ACE_Array_Base<T> &s)
-{
- // Check for "self-assignment".
-
- if (this != &s)
- {
- if (this->max_size_ < s.size ())
- {
- ACE_DES_ARRAY_FREE (this->array_,
- this->max_size_,
- this->allocator_->free,
- T);
- ACE_ALLOCATOR (this->array_,
- (T *) this->allocator_->malloc (s.size () * sizeof (T)));
- this->max_size_ = s.size ();
- }
- else
- {
- ACE_DES_ARRAY_NOFREE (this->array_,
- s.size (),
- T);
- }
-
- this->cur_size_ = s.size ();
-
- for (size_t i = 0; i < this->size (); i++)
- new (&this->array_[i]) T (s.array_[i]);
- }
-}
-
-// Set an item in the array at location slot.
-
-template <class T> int
-ACE_Array_Base<T>::set (const T &new_item, size_t slot)
-{
- if (this->in_range (slot))
- {
- this->array_[slot] = new_item;
- return 0;
- }
- else
- return -1;
-}
-
-// Get an item in the array at location slot.
-
-template <class T> int
-ACE_Array_Base<T>::get (T &item, size_t slot) const
-{
- if (this->in_range (slot))
- {
- // Copies the item. If you don't want to copy, use operator []
- // instead (but then you'll be responsible for range checking).
- item = this->array_[slot];
- return 0;
- }
- else
- return -1;
-}
-
-template<class T> int
-ACE_Array_Base<T>::max_size (size_t new_size)
-{
- if (new_size > this->max_size_)
- {
- T *tmp;
-
- ACE_ALLOCATOR_RETURN (tmp,
- (T *) this->allocator_->malloc (new_size * sizeof (T)),
- -1);
- for (size_t i = 0; i < this->cur_size_; ++i)
- new (&tmp[i]) T (this->array_[i]);
-
- // Initialize the new portion of the array that exceeds the
- // previously allocated section.
- for (size_t j = this->cur_size_; j < new_size; j++)
- new (&tmp[j]) T;
-
- ACE_DES_ARRAY_FREE (this->array_,
- this->max_size_,
- this->allocator_->free,
- T);
- this->array_ = tmp;
- this->max_size_ = new_size;
- this->cur_size_ = new_size;
- }
-
- return 0;
-}
-
-template<class T> int
-ACE_Array_Base<T>::size (size_t new_size)
-{
- int r = this->max_size (new_size);
- if (r != 0)
- return r;
- this->cur_size_ = new_size;
- return 0;
-}
-
-// ****************************************************************
-
-template <class T> int
-ACE_Array_Iterator<T>::next (T *&item)
-{
- // ACE_TRACE ("ACE_Array_Iterator<T>::next");
-
- if (this->done ())
- {
- item = 0;
- return 0;
- }
- else
- {
- item = &array_[current_];
- return 1;
- }
-}
-
-#endif /* ACE_ARRAY_BASE_C */
diff --git a/ace/Array_Base.h b/ace/Array_Base.h
deleted file mode 100644
index 5da6ea346ae..00000000000
--- a/ace/Array_Base.h
+++ /dev/null
@@ -1,210 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Array_Base.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_ARRAY_BASE_H
-#define ACE_ARRAY_BASE_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Global_Macros.h"
-#include "ace/OS.h"
-#include "ace/Malloc_Base.h"
-
-// Forward declaration.
-template <class T> class ACE_Array_Iterator;
-
-/**
- * @class ACE_Array_Base
- *
- * @brief Implement a simple dynamic array
- *
- * This parametric class implements a simple dynamic array;
- * resizing must be controlled by the user. No comparison or find
- * operations are implemented.
- */
-template<class T>
-class ACE_Array_Base
-{
-public:
-
- // Define a "trait"
- typedef T TYPE;
- typedef ACE_Array_Iterator<T> ITERATOR;
-
- // = Initialization and termination methods.
-
- /// Dynamically create an uninitialized array.
- ACE_Array_Base (size_t size = 0,
- ACE_Allocator *alloc = 0);
-
- /// Dynamically initialize the entire array to the <default_value>.
- ACE_Array_Base (size_t size,
- const T &default_value,
- ACE_Allocator *alloc = 0);
-
- /**
- * The copy constructor performs initialization by making an exact
- * copy of the contents of parameter <s>, i.e., *this == s will
- * return true.
- */
- ACE_Array_Base (const ACE_Array_Base<T> &s);
-
- /**
- * Assignment operator performs an assignment by making an exact
- * copy of the contents of parameter <s>, i.e., *this == s will
- * return true. Note that if the <max_size_> of <array_> is >= than
- * <s.max_size_> we can copy it without reallocating. However, if
- * <max_size_> is < <s.max_size_> we must delete the <array_>,
- * reallocate a new <array_>, and then copy the contents of <s>.
- */
- void operator= (const ACE_Array_Base<T> &s);
-
- /// Clean up the array (e.g., delete dynamically allocated memory).
- ~ACE_Array_Base (void);
-
- // = Set/get methods.
-
- /// Set item in the array at location <slot>. Doesn't
- /// perform range checking.
- T &operator [] (size_t slot);
-
- /// Get item in the array at location <slot>. Doesn't
- /// perform range checking.
- const T &operator [] (size_t slot) const;
-
- /// Set an item in the array at location <slot>. Returns
- /// -1 if <slot> is not in range, else returns 0.
- int set (const T &new_item, size_t slot);
-
- /**
- * Get an item in the array at location <slot>. Returns -1 if
- * <slot> is not in range, else returns 0. Note that this function
- * copies the item. If you want to avoid the copy, you can use
- * the const operator [], but then you'll be responsible for range checking.
- */
- int get (T &item, size_t slot) const;
-
- /// Returns the <cur_size_> of the array.
- size_t size (void) const;
-
- /**
- * Changes the size of the array to match <new_size>.
- * It copies the old contents into the new array.
- * Return -1 on failure.
- */
- int size (size_t new_size);
-
- /// Returns the <max_size_> of the array.
- size_t max_size (void) const;
-
- /**
- * Changes the size of the array to match <new_size>.
- * It copies the old contents into the new array.
- * Return -1 on failure.
- * It does not affect new_size
- */
- int max_size (size_t new_size);
-
-private:
- /// Returns 1 if <slot> is within range, i.e., 0 >= <slot> <
- /// <cur_size_>, else returns 0.
- int in_range (size_t slot) const;
-
- /// Maximum size of the array, i.e., the total number of <T> elements
- /// in <array_>.
- size_t max_size_;
-
- /**
- * Current size of the array. This starts out being == to
- * <max_size_>. However, if we are assigned a smaller array, then
- * <cur_size_> will become less than <max_size_>. The purpose of
- * keeping track of both sizes is to avoid reallocating memory if we
- * don't have to.
- */
- size_t cur_size_;
-
- /// Pointer to the array's storage buffer.
- T *array_;
-
- /// Allocation strategy of the ACE_Array_Base.
- ACE_Allocator *allocator_;
-
- friend class ACE_Array_Iterator<T>;
-};
-
-// ****************************************************************
-
-/**
- * @class ACE_Array_Iterator
- *
- * @brief Implement an iterator over an ACE_Array.
- *
- * This iterator is safe in the face of array element deletions.
- * But it is NOT safe if the array is resized (via the ACE_Array
- * assignment operator) during iteration. That would be very
- * odd, and dangerous.
- */
-template <class T>
-class ACE_Array_Iterator
-{
-public:
- // = Initialization method.
- ACE_Array_Iterator (ACE_Array_Base<T> &);
-
- // = Iteration methods.
-
- /// Pass back the <next_item> that hasn't been seen in the Array.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&next_item);
-
- /// Move forward by one element in the Array. Returns 0 when all the
- /// items in the Array have been seen, else 1.
- int advance (void);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Pointer to the current item in the iteration.
- size_t current_;
-
- /// Pointer to the Array we're iterating over.
- ACE_Array_Base<T> &array_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Array_Base.inl"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Array_Base.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Array_Base.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_ARRAY_BASE_H */
diff --git a/ace/Array_Base.inl b/ace/Array_Base.inl
deleted file mode 100644
index b682fec615f..00000000000
--- a/ace/Array_Base.inl
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Clean up the array (e.g., delete dynamically allocated memory).
-
-template <class T> ACE_INLINE
-ACE_Array_Base<T>::~ACE_Array_Base (void)
-{
- ACE_DES_ARRAY_FREE (this->array_,
- this->max_size_,
- this->allocator_->free,
- T);
-}
-
-template <class T> ACE_INLINE size_t
-ACE_Array_Base<T>::size (void) const
-{
- return this->cur_size_;
-}
-
-template <class T> ACE_INLINE size_t
-ACE_Array_Base<T>::max_size (void) const
-{
- return this->max_size_;
-}
-
-template <class T> ACE_INLINE int
-ACE_Array_Base<T>::in_range (size_t index) const
-{
- return index < this->cur_size_;
-}
-
-template <class T> ACE_INLINE T &
-ACE_Array_Base<T>::operator[] (size_t index)
-{
- return this->array_[index];
-}
-
-template <class T> ACE_INLINE const T &
-ACE_Array_Base<T>::operator[] (size_t index) const
-{
- return this->array_[index];
-}
-
-// ****************************************************************
-
-template <class T> ACE_INLINE void
-ACE_Array_Iterator<T>::dump (void) const
-{
- // ACE_TRACE ("ACE_Array_Iterator<T>::dump");
-}
-
-template <class T> ACE_INLINE
-ACE_Array_Iterator<T>::ACE_Array_Iterator (ACE_Array_Base<T> &a)
- : current_ (0),
- array_ (a)
-{
- // ACE_TRACE ("ACE_Array_Iterator<T>::ACE_Array_Iterator");
-}
-
-template <class T> ACE_INLINE int
-ACE_Array_Iterator<T>::advance (void)
-{
- // ACE_TRACE ("ACE_Array_Iterator<T>::advance");
-
- if (this->current_ < array_.size ())
- {
- ++this->current_;
- return 1;
- }
- else
- {
- // Already finished iterating.
- return 0;
- }
-}
-
-template <class T> ACE_INLINE int
-ACE_Array_Iterator<T>::done (void) const
-{
- ACE_TRACE ("ACE_Array_Iterator<T>::done");
-
- return this->current_ >= array_.size ();
-}
diff --git a/ace/Asynch_Acceptor.cpp b/ace/Asynch_Acceptor.cpp
deleted file mode 100644
index 88c867ebada..00000000000
--- a/ace/Asynch_Acceptor.cpp
+++ /dev/null
@@ -1,461 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_ASYNCH_ACCEPTOR_C
-#define ACE_ASYNCH_ACCEPTOR_C
-
-#include "ace/Asynch_Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, Asynch_Acceptor, "$Id$")
-
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-// This only works on platforms that support async i/o.
-
-#include "ace/OS.h"
-#include "ace/Log_Msg.h"
-#include "ace/Message_Block.h"
-#include "ace/INET_Addr.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Sock_Connect.h"
-#include "ace/Trace.h"
-
-template <class HANDLER>
-ACE_Asynch_Acceptor<HANDLER>::ACE_Asynch_Acceptor (void)
- : listen_handle_ (ACE_INVALID_HANDLE),
- pass_addresses_ (0),
- validate_new_connection_ (0),
- reissue_accept_ (1),
- bytes_to_read_ (0)
-{
-}
-
-template <class HANDLER>
-ACE_Asynch_Acceptor<HANDLER>::~ACE_Asynch_Acceptor (void)
-{
- //this->asynch_accept_.close ();
-
- // Close down the listen socket
- // if (this->listen_handle_ != ACE_INVALID_HANDLE)
- // ACE_OS::closesocket (this->listen_handle_);
-}
-
-template <class HANDLER> int
-ACE_Asynch_Acceptor<HANDLER>::open (const ACE_INET_Addr &address,
- size_t bytes_to_read,
- int pass_addresses,
- int backlog,
- int reuse_addr,
- ACE_Proactor *proactor,
- int validate_new_connection,
- int reissue_accept,
- int number_of_initial_accepts)
-{
- ACE_TRACE ("ACE_Asynch_Acceptor<>::open");
-
- this->proactor (proactor);
- this->pass_addresses_ = pass_addresses;
- this->bytes_to_read_ = bytes_to_read;
- this->validate_new_connection_ = validate_new_connection;
- this->reissue_accept_ = reissue_accept;
-
- // Create the listener socket
- this->listen_handle_ = ACE_OS::socket (address.get_type (), SOCK_STREAM, 0);
- if (this->listen_handle_ == ACE_INVALID_HANDLE)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_OS::socket")),
- -1);
- // Initialize the ACE_Asynch_Accept
- if (this->asynch_accept_.open (*this,
- this->listen_handle_,
- 0,
- this->proactor ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Asynch_Accept::open")),
- -1);
- if (reuse_addr)
- {
- // Reuse the address
- int one = 1;
- if (ACE_OS::setsockopt (this->listen_handle_,
- SOL_SOCKET,
- SO_REUSEADDR,
- (const char*) &one,
- sizeof one) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_OS::setsockopt")),
- -1);
- }
-
- // If port is not specified, bind to any port.
- static ACE_INET_Addr sa (ACE_sap_any_cast (const ACE_INET_Addr &));
-
- if (address == sa &&
- ACE_Sock_Connect::bind_port (this->listen_handle_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE::bind_port")),
- -1);
-
- // Bind to the specified port.
- if (ACE_OS::bind (this->listen_handle_,
- ACE_reinterpret_cast (sockaddr *,
- address.get_addr ()),
- address.get_size ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "ACE_OS::bind"),
- -1);
-
- // Start listening.
- if (ACE_OS::listen (this->listen_handle_, backlog) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "ACE_OS::listen"),
- -1);
-
- // For the number of <intial_accepts>.
- if (number_of_initial_accepts == -1)
- number_of_initial_accepts = backlog;
-
- for (int i = 0; i < number_of_initial_accepts; i++)
- // Initiate accepts.
- if (this->accept (bytes_to_read) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "ACE_Asynch_Acceptor::accept"),
- -1);
- return 0;
-}
-
-template <class HANDLER> void
-ACE_Asynch_Acceptor<HANDLER>::set_handle (ACE_HANDLE listen_handle)
-{
- ACE_TRACE ("ACE_Asynch_Acceptor<>::set_handle");
-
- // Take ownership of the <listen_handle>
- this->listen_handle_ = listen_handle;
-
- // Reinitialize the ACE_Asynch_Accept
- if (this->asynch_accept_.open (*this,
- this->listen_handle_,
- 0,
- this->proactor ()) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Asynch_Accept::open")));
-}
-
-template <class HANDLER> ACE_HANDLE
-ACE_Asynch_Acceptor<HANDLER>::get_handle (void) const
-{
- return this->listen_handle_;
-}
-
-template <class HANDLER> int
-ACE_Asynch_Acceptor<HANDLER>::accept (size_t bytes_to_read, const void *act)
-{
- ACE_TRACE ("ACE_Asynch_Acceptor<>::accept");
-
- ACE_Message_Block *message_block = 0;
- size_t space_needed = bytes_to_read + 2 * this->address_size ();
-
- // Create a new message block big enough for the addresses and data
- ACE_NEW_RETURN (message_block,
- ACE_Message_Block (space_needed),
- -1);
-
- // Initiate asynchronous accepts
- if (this->asynch_accept_.accept (*message_block,
- bytes_to_read,
- ACE_INVALID_HANDLE,
- act) == -1)
- {
- // Cleanup on error
- message_block->release ();
- return -1;
- }
- return 0;
-}
-
-template <class HANDLER> void
-ACE_Asynch_Acceptor<HANDLER>::handle_accept (const ACE_Asynch_Accept::Result &result)
-{
-#if (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) || (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) || defined (ACE_HAS_AIO_CALLS)
-
- ACE_TRACE ("ACE_Asynch_Acceptor<>::handle_accept");
-
- // Variable for error tracking
- int error = 0;
-
- // If the asynchronous accept fails.
- if (!result.success () ||
- result.accept_handle() == ACE_INVALID_HANDLE )
- {
- error = 1;
- }
-
-#if !defined (ACE_HAS_AIO_CALLS)
- // In order to use accept handle with other Window Sockets 1.1
- // functions, we call the setsockopt function with the
- // SO_UPDATE_ACCEPT_CONTEXT option. This option initializes the
- // socket so that other Windows Sockets routines to access the
- // socket correctly.
- if (!error &&
- ACE_OS::setsockopt (result.accept_handle (),
- SOL_SOCKET,
- SO_UPDATE_ACCEPT_CONTEXT,
- (char *) &this->listen_handle_,
- sizeof (this->listen_handle_)) == -1)
- {
- error = 1;
- }
-#endif /* ACE_HAS_AIO_CALLS */
-
- // Parse address.
- ACE_INET_Addr local_address;
- ACE_INET_Addr remote_address;
- if (!error &&
- (this->validate_new_connection_ || this->pass_addresses_))
- // Parse the addresses.
- this->parse_address (result,
- remote_address,
- local_address);
-
- // Validate remote address
- if (!error &&
- this->validate_new_connection_ &&
- (this->validate_connection (result, remote_address, local_address) == -1
- || this->validate_new_connection (remote_address) == -1))
- {
- error = 1;
- }
-
- HANDLER *new_handler = 0;
- if (!error)
- {
- // The Template method
- new_handler = this->make_handler ();
- if (new_handler == 0)
- {
- error = 1;
- }
- }
-
- // If no errors
- if (!error)
- {
- // Update the Proactor.
- new_handler->proactor (this->proactor ());
-
- // Pass the addresses
- if (this->pass_addresses_)
- new_handler->addresses (remote_address,
- local_address);
-
- // Pass the ACT
- if (result.act () != 0)
- new_handler->act (result.act ());
-
- // Set up the handler's new handle value
- new_handler->handle (result.accept_handle ());
-
- // Initiate the handler
- new_handler->open (result.accept_handle (),
- result.message_block ());
- }
-
- // On failure, no choice but to close the socket
- if (error &&
- result.accept_handle() != ACE_INVALID_HANDLE )
- ACE_OS::closesocket (result.accept_handle ());
-
- // Delete the dynamically allocated message_block
- result.message_block ().release ();
-
- // Start off another asynchronous accept to keep the backlog going
- if (this->should_reissue_accept ())
- this->accept (this->bytes_to_read_);
-#endif /* (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) || (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) || defined (ACE_HAS_AIO_CALLS */
-}
-
-template <class HANDLER> int
-ACE_Asynch_Acceptor<HANDLER>::validate_connection
- (const ACE_Asynch_Accept::Result& /* result */,
- const ACE_INET_Addr& /* remote */,
- const ACE_INET_Addr& /* local */)
-{
- // Default implementation always validates the remote address.
- return 0;
-}
-
-template <class HANDLER> int
-ACE_Asynch_Acceptor<HANDLER>::validate_new_connection (const ACE_INET_Addr&)
-{
- // Default implementation always validates the remote address.
- return 0;
-}
-
-template <class HANDLER> int
-ACE_Asynch_Acceptor<HANDLER>::cancel (void)
-{
- ACE_TRACE ("ACE_Asynch_Acceptor<>::cancel");
-
- // All I/O operations that are canceled will complete with the error
- // ERROR_OPERATION_ABORTED. All completion notifications for the I/O
- // operations will occur normally.
-#if (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) \
- && ( (defined (_MSC_VER) && (_MSC_VER > 1020)) \
- || (defined (__BORLANDC__) && (__BORLANDC__ >= 0x530)))
- return (int) ::CancelIo (this->listen_handle_);
-#else
- //ACE_NOTSUP_RETURN (-1);
- // Supported now
- return this->asynch_accept_.cancel();
-
-#endif /* (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) && ((defined (_MSC_VER) && (_MSC_VER > 1020)) || (defined (__BORLANDC__) && (__BORLANDC__ >= 0x530))) */
-}
-
-template <class HANDLER> void
-ACE_Asynch_Acceptor<HANDLER>::parse_address (const
- ACE_Asynch_Accept::Result &result,
- ACE_INET_Addr &remote_address,
- ACE_INET_Addr &local_address)
-{
- ACE_TRACE ("ACE_Asynch_Acceptor<>::parse_address");
-
-#if defined (ACE_HAS_AIO_CALLS)
-
- // Use an ACE_SOCK to get the addresses - it knows how to deal with
- // ACE_INET_Addr objects and get IPv4/v6 addresses.
- ACE_SOCK_Stream str (result.accept_handle ());
- str.get_local_addr (local_address);
- str.get_remote_addr (remote_address);
-
-#elif (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) || (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0))
-
- ACE_Message_Block &message_block = result.message_block ();
-
- sockaddr *local_addr = 0;
- sockaddr *remote_addr = 0;
- int local_size = 0;
- int remote_size = 0;
-
- ::GetAcceptExSockaddrs (message_block.rd_ptr (),
- ACE_static_cast (DWORD, this->bytes_to_read_),
- ACE_static_cast (DWORD, this->address_size ()),
- ACE_static_cast (DWORD, this->address_size ()),
- &local_addr,
- &local_size,
- &remote_addr,
- &remote_size);
-
- local_address.set (ACE_reinterpret_cast (sockaddr_in *, local_addr),
- local_size);
- remote_address.set (ACE_reinterpret_cast (sockaddr_in *, remote_addr),
- remote_size);
-#else
- // just in case
- errno = ENOTSUP;
-#endif /* (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) || (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) */
- return;
-}
-
-template <class HANDLER> ACE_HANDLE
-ACE_Asynch_Acceptor<HANDLER>::handle (void) const
-{
- return this->listen_handle_;
-}
-
-template <class HANDLER> void
-ACE_Asynch_Acceptor<HANDLER>::handle (ACE_HANDLE h)
-{
- ACE_Handler::handle (h);
-}
-
-template <class HANDLER> ACE_Asynch_Accept &
-ACE_Asynch_Acceptor<HANDLER>::asynch_accept (void)
-{
- return this->asynch_accept_;
-}
-
-template <class HANDLER> HANDLER *
-ACE_Asynch_Acceptor<HANDLER>::make_handler (void)
-{
- // Default behavior
- HANDLER *handler = 0;
- ACE_NEW_RETURN (handler,
- HANDLER,
- 0);
- return handler;
-}
-
-/* static */
-template <class HANDLER> size_t
-ACE_Asynch_Acceptor<HANDLER>::address_size (void)
-{
- return sizeof (sockaddr) + sizeof (sockaddr_in);
-}
-
-template <class HANDLER> int
-ACE_Asynch_Acceptor<HANDLER>::pass_addresses (void) const
-{
- return this->pass_addresses_;
-}
-
-template <class HANDLER> void
-ACE_Asynch_Acceptor<HANDLER>::pass_addresses (int new_value)
-{
- this->pass_addresses_ = new_value;
-}
-
-template <class HANDLER> int
-ACE_Asynch_Acceptor<HANDLER>::validate_new_connection (void) const
-{
- return this->validate_new_connection_;
-}
-
-template <class HANDLER> void
-ACE_Asynch_Acceptor<HANDLER>::validate_new_connection (int new_value)
-{
- this->validate_new_connection_ = new_value;
-}
-
-template <class HANDLER> int
-ACE_Asynch_Acceptor<HANDLER>::reissue_accept (void) const
-{
- return this->reissue_accept_;
-}
-
-template <class HANDLER> void
-ACE_Asynch_Acceptor<HANDLER>::reissue_accept (int new_value)
-{
- this->reissue_accept_ = new_value;
-}
-
-template <class HANDLER> size_t
-ACE_Asynch_Acceptor<HANDLER>::bytes_to_read (void) const
-{
- return this->bytes_to_read_;
-}
-
-template <class HANDLER> void
-ACE_Asynch_Acceptor<HANDLER>::bytes_to_read (size_t new_value)
-{
- this->bytes_to_read_ = new_value;
-}
-
-template <class HANDLER> int
-ACE_Asynch_Acceptor<HANDLER>::should_reissue_accept (void)
-{
- return this->reissue_accept_;
-}
-
-#endif /* ACE_WIN32 || ACE_HAS_AIO_CALLS */
-#endif /* ACE_ASYNCH_ACCEPTOR_C */
diff --git a/ace/Asynch_Acceptor.h b/ace/Asynch_Acceptor.h
deleted file mode 100644
index aadffaa11de..00000000000
--- a/ace/Asynch_Acceptor.h
+++ /dev/null
@@ -1,286 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Asynch_Acceptor.h
- *
- * $Id$
- *
- * @author Irfan Pyarali (irfan@cs.wustl.edu)
- */
-//=============================================================================
-
-#ifndef ACE_ASYNCH_ACCEPTOR_H
-#define ACE_ASYNCH_ACCEPTOR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-// This only works on platforms that support async i/o.
-
-#include "ace/Default_Constants.h"
-#include "ace/Asynch_IO.h"
-
-// Forward declarations
-class ACE_Message_Block;
-class ACE_INET_Addr;
-
-/**
- * @class ACE_Asynch_Acceptor
- *
- * @brief This class is an example of the Acceptor Pattern. This class
- * will accept new connections and create new HANDLER to handle
- * the new connections.
- *
- * Unlike the <ACE_Acceptor>, however, this class is designed to
- * be used asynchronously.
- */
-template <class HANDLER>
-class ACE_Asynch_Acceptor : public ACE_Handler
-{
-public:
- /// A do nothing constructor.
- ACE_Asynch_Acceptor (void);
-
- /// Virtual destruction
- virtual ~ACE_Asynch_Acceptor (void);
-
- /**
- * @c open starts one or more asynchronous accept requests on a
- * @a address. Each accept operation may optionally read an
- * initial buffer from the new connection when accepted.
- *
- * @param address The address to listen/accept connections on.
- * If the address does not specify a port, a random
- * port is selected and bound.
- * @param bytes_to_read Optional, specifies the maximum number of bytes
- * to read with the accept. The buffer for the initial
- * data is allocated internally and passed to the
- * @c ACE_Service_Handler::open() hook method. It is
- * legitimate only during the @c open() method and must
- * be copied if required after @c open() returns.
- * This pre-read function works only on Windows.
- * @param pass_addresses Optional, a non-zero value indicates that
- * the local and peer addresses should be passed to the
- * associated @c ACE_Service_Handler::addresses() method
- * after any call to @c validate_new_connection() and prior
- * to the @c open() hook method call.
- * @param backlog Optional, defaulting to @c ACE_DEFAULT_BACKLOG (which
- * can be adjusted in your platform's @c config.h file).
- * Specifies the listening backlog for the listening socket.
- * @param reuse_addr Optional, indicates whether the @c SO_REUSEADDR
- * option is set on the listening socket or not.
- * @param proactor Optional, pointer to the @c ACE_Proactor to use for
- * demultiplexing asynchronous accepts. If 0, the
- * process's singleton @c ACE_Proactor is used.
- * @param validate_new_connection Optional, if non-zero, this object's
- * @c validate_connection() method is called after
- * the accept completes, but before the service handler's
- * @c open() hook method is called. If @c
- * validate_connection() returns -1, the newly-accepted
- * socket is immediately closed, and the @c addresses()
- * method is not called.
- * @param reissue_accept Optional, if non-zero (the default), a new
- * asynchronous accept operation is started after each
- * completion, whether the completion is for success or
- * failure, and whether or not a successfully-accepted
- * connection is subsequently refused.
- * @param number_of_initial_accepts Optional, the number of asynchronous
- * accepts that are started immediately. If -1 (the
- * default), the value of @a backlog is used.
- *
- * @note On Windows, the peer address is only available at the time
- * the connection is accepted. Therefore, if you require the peer
- * address on Windows, do not rely on the
- * @c ACE_SOCK::get_remote_addr() method - it won't work. You must
- * supply a non-zero value for @a pass_addresses and obtain the
- * peer address in the @c ACE_Service_Handler::addresses() method.
- *
- * @see ACE_INET_Addr
- * @see ACE_Service_Handler
- */
- virtual int open (const ACE_INET_Addr &address,
- size_t bytes_to_read = 0,
- int pass_addresses = 0,
- int backlog = ACE_DEFAULT_BACKLOG,
- int reuse_addr = 1,
- ACE_Proactor *proactor = 0,
- int validate_new_connection = 0,
- int reissue_accept = 1,
- int number_of_initial_accepts = -1);
-
- /// Get the underlying handle.
- virtual ACE_HANDLE get_handle (void) const;
-
- /**
- * Set the underlying listen handle. It is the user's responsibility
- * to make sure that the old listen handle has been appropriately
- * closed and the all outstanding asynchronous operations have
- * either completed or have been canceled on the old listen handle.
- */
- virtual void set_handle (ACE_HANDLE handle);
-
- /// This initiates a new asynchronous accept operation.
- /**
- * You need only call this method if the @a reissue_accept argument
- * passed to @c open() was 0.
- */
- virtual int accept (size_t bytes_to_read = 0, const void *act = 0);
-
- /**
- * Cancels all pending accepts operations issued by this object.
- *
- * @note On Windows, only accept operations initiated by the calling thread
- * are canceled.
- */
- virtual int cancel (void);
-
- /**
- * Template method to validate peer before service is opened.
- * This method is called after a new connection is accepted if the
- * @a validate_connection argument to @c open() was non-zero or
- * the @c validate_new_connection() method is called to turn this
- * feature on. The default implementation returns 0. Users can
- * reimplement this method to perform validation of the peer
- * using it's address, running an authentication procedure (such as
- * SSL) or anything else necessary or desireable. The return value
- * from this method determines whether or not ACE will continue
- * opening the service or abort the connection.
- *
- * @param result Result of the connection acceptance.
- * @param remote Peer's address.
- * @param local Local address connection was accepted at.
- *
- * @retval -1 ACE_Asynch_Acceptor will close the connection, and
- * the service will not be opened.
- * @retval 0 Service opening will proceeed.
- */
- virtual int validate_connection (const ACE_Asynch_Accept::Result& result,
- const ACE_INET_Addr &remote,
- const ACE_INET_Addr& local);
-
- /**
- * @deprecated Use validate_connection() instead. Will be removed after
- * ACE 5.3.
- *
- * Template method for address validation.
- *
- * This hook method is called after a connection is accepted if
- * so specified on the call to the @c open() method. If this
- * method returns -1, the connection is immediately closed and
- * the service handler is not opened.
- *
- * The default implemenation always return 0.
- */
- virtual int validate_new_connection (const ACE_INET_Addr &remote_address);
-
- /**
- * Template method for deciding whether to reissue accept.
- *
- * This hook method is called after each accept completes to decide if
- * another accept should be initiated. If the method returns a non-zero
- * value, another accept is initiated.
- *
- * The default implemenation always returns the value passed as the
- * @c open() method's @a reissue_accept argument. That value can also
- * be changed using the @c reissue_accept() method.
- */
- virtual int should_reissue_accept (void);
-
- //
- // These are low level tweaking methods
- //
-
- /// Get flag that indicates if parsing and passing of addresses to
- /// the service_handler is necessary.
- virtual int pass_addresses (void) const;
-
- /// Set flag that indicates if parsing and passing of addresses to
- /// the service_handler is necessary.
- virtual void pass_addresses (int new_value);
-
- /// Get flag that indicates if address validation is required.
- virtual int validate_new_connection (void) const;
-
- /// Set flag that indicates if address validation is required.
- virtual void validate_new_connection (int new_value);
-
- /// Get flag that indicates if a new accept should be reissued when a accept
- /// completes.
- virtual int reissue_accept (void) const;
-
- /// Set flag that indicates if a new accept should be reissued when a accept
- /// completes.
- virtual void reissue_accept (int new_value);
-
- /// Get bytes to be read with the <accept> call.
- virtual size_t bytes_to_read (void) const;
-
- /// Set bytes to be read with the <accept> call.
- virtual void bytes_to_read (size_t new_value);
-
- /// This is required by the AcceptEx call.
- static size_t address_size (void);
-
-protected:
-
- /// This is called when an outstanding accept completes.
- virtual void handle_accept (const ACE_Asynch_Accept::Result &result);
-
- /// Return the listen handle.
- ACE_HANDLE handle (void) const;
- /// Set the listen handle.
- void handle (ACE_HANDLE h);
-
- /// This parses the address from read buffer.
- void parse_address (const ACE_Asynch_Accept::Result &result,
- ACE_INET_Addr &remote_address,
- ACE_INET_Addr &local_address);
-
- /// Return the asynch accept object.
- ACE_Asynch_Accept &asynch_accept (void);
-
- /**
- * This is the template method used to create new handler.
- * Subclasses must overwrite this method if a new handler creation
- * strategy is required.
- */
- virtual HANDLER *make_handler (void);
-
-private:
- /// Handle used to listen for new connections.
- ACE_HANDLE listen_handle_;
-
- /// <Asynch_Accept> used to make life easier :-)
- ACE_Asynch_Accept asynch_accept_;
-
- /// Flag that indicates if parsing of addresses is necessary.
- int pass_addresses_;
-
- /// Flag that indicates if address validation is required.
- int validate_new_connection_;
-
- /// Flag that indicates if a new accept should be reissued when a
- /// accept completes.
- int reissue_accept_;
-
- /// Bytes to be read with the <accept> call.
- size_t bytes_to_read_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Asynch_Acceptor.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Asynch_Acceptor.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* ACE_WIN32 || ACE_HAS_AIO_CALLS */
-#include "ace/post.h"
-#endif /* ACE_ASYNCH_ACCEPTOR_H */
diff --git a/ace/Asynch_Connector.cpp b/ace/Asynch_Connector.cpp
deleted file mode 100644
index ce7df62330b..00000000000
--- a/ace/Asynch_Connector.cpp
+++ /dev/null
@@ -1,288 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_ASYNCH_CONNECTOR_C
-#define ACE_ASYNCH_CONNECTOR_C
-
-#include "ace/Asynch_Connector.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, Asynch_Connector, "$Id$")
-
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-// This only works on platforms that support async I/O.
-
-#include "ace/Flag_Manip.h"
-#include "ace/Log_Msg.h"
-#include "ace/Message_Block.h"
-#include "ace/INET_Addr.h"
-
-
-template <class HANDLER>
-ACE_Asynch_Connector<HANDLER>::ACE_Asynch_Connector (void)
- : pass_addresses_ (0),
- validate_new_connection_ (0)
-{
-}
-
-template <class HANDLER>
-ACE_Asynch_Connector<HANDLER>::~ACE_Asynch_Connector (void)
-{
- //this->asynch_connect_.close ();
-}
-
-template <class HANDLER> int
-ACE_Asynch_Connector<HANDLER>::open (int pass_addresses,
- ACE_Proactor *proactor,
- int validate_new_connection)
-{
- this->proactor (proactor);
- this->pass_addresses_ = pass_addresses;
- this->validate_new_connection_ = validate_new_connection;
-
- // Initialize the ACE_Asynch_Connect
- if (this->asynch_connect_.open (*this,
- ACE_INVALID_HANDLE,
- 0,
- this->proactor ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Asynch_Connect::open")),
- -1);
- return 0;
-}
-
-template <class HANDLER> int
-ACE_Asynch_Connector<HANDLER>::connect (const ACE_INET_Addr & remote_sap,
- const ACE_INET_Addr & local_sap,
- int reuse_addr,
- const void *act)
-{
- // Initiate asynchronous connect
- if (this->asynch_connect_.connect (ACE_INVALID_HANDLE,
- remote_sap,
- local_sap,
- reuse_addr,
- act) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Asynch_Connect::connect")),
- -1);
- return 0;
-}
-
-template <class HANDLER> void
-ACE_Asynch_Connector<HANDLER>::handle_connect (const ACE_Asynch_Connect::Result &result)
-{
- // Variable for error tracking
- int error = 0;
-
- // If the asynchronous connect fails.
- if (!result.success () ||
- result.connect_handle () == ACE_INVALID_HANDLE)
- {
- error = 1;
- }
-
- if (result.error () != 0)
- {
- error = 1;
- }
-
- // set blocking mode
- if (!error &&
- ACE_Flag_Manip::clr_flags
- (result.connect_handle (), ACE_NONBLOCK) != 0)
- {
- error = 1;
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Asynch_Connector::handle_connect : Set blocking mode")));
- }
-
- // Parse the addresses.
- ACE_INET_Addr local_address;
- ACE_INET_Addr remote_address;
- if (!error &&
- (this->validate_new_connection_ || this->pass_addresses_))
- this->parse_address (result,
- remote_address,
- local_address);
-
- // Call validate_connection even if there was an error - it's the only
- // way the application can learn the connect disposition.
- if (this->validate_new_connection_ &&
- this->validate_connection (result, remote_address, local_address) == -1)
- {
- error = 1;
- }
-
- HANDLER *new_handler = 0;
- if (!error)
- {
- // The Template method
- new_handler = this->make_handler ();
- if (new_handler == 0)
- {
- error = 1;
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Asynch_Connector::handle_connect : Making of new handler failed")));
- }
- }
-
- // If no errors
- if (!error)
- {
- // Update the Proactor.
- new_handler->proactor (this->proactor ());
-
- // Pass the addresses
- if (this->pass_addresses_)
- new_handler->addresses (remote_address,
- local_address);
-
- // Pass the ACT
- if (result.act () != 0)
- new_handler->act (result.act ());
-
- // Set up the handler's new handle value
- new_handler->handle (result.connect_handle ());
-
- ACE_Message_Block mb;
-
- // Initiate the handler with empty message block;
- new_handler->open (result.connect_handle (), mb);
- }
-
- // On failure, no choice but to close the socket
- if (error &&
- result.connect_handle() != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (result.connect_handle ());
-}
-
-template <class HANDLER> int
-ACE_Asynch_Connector<HANDLER>::validate_connection
- (const ACE_Asynch_Connect::Result &,
- const ACE_INET_Addr & /* remote_address */,
- const ACE_INET_Addr & /* local_address */)
-{
- // Default implementation always validates the remote address.
- return 0;
-}
-
-template <class HANDLER> int
-ACE_Asynch_Connector<HANDLER>::cancel (void)
-{
- return this->asynch_connect_.cancel ();
-}
-
-template <class HANDLER> void
-ACE_Asynch_Connector<HANDLER>::parse_address (const ACE_Asynch_Connect::Result &result,
- ACE_INET_Addr &remote_address,
- ACE_INET_Addr &local_address)
-{
- // Getting the addresses.
- sockaddr_in local_addr;
- sockaddr_in remote_addr;
-
- // Get the length.
- int local_size = sizeof (local_addr);
- int remote_size = sizeof (remote_addr);
-
- // Get the local address.
- if (ACE_OS::getsockname (result.connect_handle (),
- ACE_reinterpret_cast (sockaddr *,
- &local_addr),
- &local_size) < 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT("%p\n"),
- ACE_LIB_TEXT("ACE_Asynch_Connector::<getsockname> failed")));
-
- // Get the remote address.
- if (ACE_OS::getpeername (result.connect_handle (),
- ACE_reinterpret_cast (sockaddr *,
- &remote_addr),
- &remote_size) < 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT("%p\n"),
- ACE_LIB_TEXT("ACE_Asynch_Connector::<getpeername> failed")));
-
- // Set the addresses.
- local_address.set (&local_addr, local_size);
- remote_address.set (&remote_addr, remote_size);
-
-#if 0
- // @@ Just debugging.
- char local_address_buf [BUFSIZ];
- char remote_address_buf [BUFSIZ];
-
- if (local_address.addr_to_string (local_address_buf,
- sizeof local_address_buf) == -1)
- ACE_ERROR ((LM_ERROR,
- "Error:%p:can't obtain local_address's address string"));
-
- ACE_DEBUG ((LM_DEBUG,
- "ACE_Asynch_Connector<HANDLER>::parse_address : "\
- "Local address %s\n",
- local_address_buf));
-
- if (remote_address.addr_to_string (remote_address_buf,
- sizeof remote_address_buf) == -1)
- ACE_ERROR ((LM_ERROR,
- "Error:%p:can't obtain remote_address's address string"));
-
- ACE_DEBUG ((LM_DEBUG,
- "ACE_Asynch_Connector<HANDLER>::parse_address : "\
- "Remote address %s\n",
- remote_address_buf));
-#endif /* 0 */
-
- return;
-}
-
-
-template <class HANDLER> ACE_Asynch_Connect &
-ACE_Asynch_Connector<HANDLER>::asynch_connect (void)
-{
- return this->asynch_connect_;
-}
-
-template <class HANDLER> HANDLER *
-ACE_Asynch_Connector<HANDLER>::make_handler (void)
-{
- // Default behavior
- HANDLER *handler = 0;
- ACE_NEW_RETURN (handler, HANDLER, 0);
- return handler;
-}
-
-template <class HANDLER> int
-ACE_Asynch_Connector<HANDLER>::pass_addresses (void) const
-{
- return this->pass_addresses_;
-}
-
-template <class HANDLER> void
-ACE_Asynch_Connector<HANDLER>::pass_addresses (int new_value)
-{
- this->pass_addresses_ = new_value;
-}
-
-template <class HANDLER> int
-ACE_Asynch_Connector<HANDLER>::validate_new_connection (void) const
-{
- return this->validate_new_connection_;
-}
-
-template <class HANDLER> void
-ACE_Asynch_Connector<HANDLER>::validate_new_connection (int new_value)
-{
- this->validate_new_connection_ = new_value;
-}
-
-#endif /* ACE_WIN32 || ACE_HAS_AIO_CALLS */
-#endif /* ACE_ASYNCH_CONNECTOR_C */
diff --git a/ace/Asynch_Connector.h b/ace/Asynch_Connector.h
deleted file mode 100644
index eeb3c3f3818..00000000000
--- a/ace/Asynch_Connector.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Asynch_Connector.h
- *
- * $Id$
- *
- * @author Alexander Libman <alibman@ihug.com.au>
- */
-//=============================================================================
-
-#ifndef ACE_ASYNCH_CONNECTOR_H
-#define ACE_ASYNCH_CONNECTOR_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-// This only works on platforms that support async i/o.
-
-#include "ace/Asynch_IO.h"
-#include "ace/INET_Addr.h"
-
-// Forward declarations
-class ACE_Message_Block;
-
-/**
- * @class ACE_Asynch_Connector
- *
- * @brief This class is an example of the Connector pattern. This class
- * will establish new connections and create new HANDLER objects to handle
- * the new connections.
- *
- * Unlike the ACE_Connector, however, this class is designed to
- * be used asynchronously with the ACE Proactor framework.
- */
-
-template <class HANDLER>
-class ACE_Asynch_Connector : public ACE_Handler
-{
-public:
-
- /// A do nothing constructor.
- ACE_Asynch_Connector (void);
-
- /// Virtual destruction
- virtual ~ACE_Asynch_Connector (void);
-
- /**
- * This opens asynch connector
- */
- virtual int open (int pass_addresses = 0,
- ACE_Proactor *proactor = 0,
- int validate_new_connection = 1);
-
- /// This initiates a new asynchronous connect
- virtual int connect (const ACE_INET_Addr &remote_sap,
- const ACE_INET_Addr &local_sap =
- ACE_INET_Addr ((u_short)0),
- int reuse_addr = 1,
- const void *act = 0);
-
- /**
- * This cancels all pending accepts operations that were issued by
- * the calling thread.
- *
- * @note On Windows, this method does not cancel connect operations
- * issued by other threads.
- *
- * @note On POSIX, delegates cancelation to ACE_POSIX_Asynch_Connect.
- */
- virtual int cancel (void);
-
-
- /**
- * Template method to validate peer before service is opened.
- * This method is called when the connection attempt completes,
- * whether it succeeded or failed, if the @a validate_connection
- * argument to @c open() was non-zero or the @c validate_new_connection()
- * method is called to turn this feature on. The default implementation
- * returns 0. Users can (and probably should) reimplement this method
- * to learn about the success or failure of the connection attempt.
- * If the connection completed successfully, this method can be used to
- * perform validation of the peer using it's address, running an
- * authentication procedure (such as SSL) or anything else necessary or
- * desireable. The return value from this method determines whether or
- * not ACE will continue opening the service or abort the connection.
- *
- * @param result Result of the connection acceptance. Use
- * result.success() to determine success or failure of
- * the connection attempt.
- * @param remote Peer's address. If the connection failed, this object
- * is undefined.
- * @param local Local address connection was completed from. If the
- * connection failed, this object is undefined.
- *
- * @retval -1 ACE_Asynch_Connector will close the connection, and
- * the service will not be opened.
- * @retval 0 Service opening will proceeed.
- * @return Return value is ignored if the connection attempt failed.
- */
- virtual int validate_connection (const ACE_Asynch_Connect::Result& result,
- const ACE_INET_Addr &remote,
- const ACE_INET_Addr& local);
-
- //
- // These are low level tweaking methods
- //
-
- /// Set and get flag that indicates if parsing and passing of
- /// addresses to the service_handler is necessary.
- virtual int pass_addresses (void) const;
- virtual void pass_addresses (int new_value);
-
- /// Set and get flag that indicates if address validation is
- /// required.
- virtual int validate_new_connection (void) const;
- virtual void validate_new_connection (int new_value);
-
-protected:
-
- /// This is called when an outstanding accept completes.
- virtual void handle_connect (const ACE_Asynch_Connect::Result &result);
-
-
- /// This parses the address from read buffer.
- void parse_address (const ACE_Asynch_Connect::Result &result,
- ACE_INET_Addr &remote_address,
- ACE_INET_Addr &local_address);
-
- /// Return the asynch Connect object.
- ACE_Asynch_Connect & asynch_connect (void);
-
- /**
- * This is the template method used to create new handler.
- * Subclasses must overwrite this method if a new handler creation
- * strategy is required.
- */
- virtual HANDLER *make_handler (void);
-
-private:
-
- /// Asynch_Connect used to make life easier :-)
- ACE_Asynch_Connect asynch_connect_;
-
- /// Flag that indicates if parsing of addresses is necessary.
- int pass_addresses_;
-
- /// Flag that indicates if address validation is required.
- int validate_new_connection_;
-
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Asynch_Connector.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Asynch_Connector.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* ACE_WIN32 || ACE_HAS_AIO_CALLS */
-#include "ace/post.h"
-#endif /* ACE_ASYNCH_CONNECTOR_H */
diff --git a/ace/Asynch_IO.cpp b/ace/Asynch_IO.cpp
deleted file mode 100644
index 25c7610c60a..00000000000
--- a/ace/Asynch_IO.cpp
+++ /dev/null
@@ -1,1452 +0,0 @@
-// $Id$
-
-#include "ace/Asynch_IO.h"
-
-ACE_RCSID(ace, Asynch_IO, "$Id$")
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS))
-// This only works on platforms with Asynchronous IO
-
-#include "ace/Proactor.h"
-#include "ace/Message_Block.h"
-#include "ace/INET_Addr.h"
-#include "ace/Asynch_IO_Impl.h"
-
-size_t
-ACE_Asynch_Result::bytes_transferred (void) const
-{
- return this->implementation ()->bytes_transferred ();
-}
-
-const void *
-ACE_Asynch_Result::act (void) const
-{
- return this->implementation ()->act ();
-}
-
-int
-ACE_Asynch_Result::success (void) const
-{
- return this->implementation ()->success ();
-}
-
-const void *
-ACE_Asynch_Result::completion_key (void) const
-{
- return this->implementation ()->completion_key ();
-}
-
-u_long
-ACE_Asynch_Result::error (void) const
-{
- return this->implementation ()->error ();
-}
-
-ACE_HANDLE
-ACE_Asynch_Result::event (void) const
-{
- return this->implementation ()->event ();
-}
-
-u_long
-ACE_Asynch_Result::offset (void) const
-{
- return this->implementation ()->offset ();
-}
-
-u_long
-ACE_Asynch_Result::offset_high (void) const
-{
- return this->implementation ()->offset_high ();
-}
-
-int
-ACE_Asynch_Result::priority (void) const
-{
- return this->implementation ()->priority ();
-}
-
-int
-ACE_Asynch_Result::signal_number (void) const
-{
- return this->implementation ()->signal_number ();
-}
-
-ACE_Asynch_Result::ACE_Asynch_Result (ACE_Asynch_Result_Impl *implementation)
- : implementation_ (implementation)
-{
-}
-
-ACE_Asynch_Result::~ACE_Asynch_Result (void)
-{
- // Proactor deletes the implementation when the <complete> finishes.
-}
-
-ACE_Asynch_Result_Impl *
-ACE_Asynch_Result::implementation (void) const
-{
- return this->implementation_;
-}
-
-// *********************************************************************
-
-int
-ACE_Asynch_Operation::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- return this->implementation ()->open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_Asynch_Operation::cancel (void)
-{
- return this->implementation ()->cancel ();
-}
-
-ACE_Proactor *
-ACE_Asynch_Operation::proactor (void) const
-{
- return this->implementation ()->proactor ();
-}
-
-ACE_Asynch_Operation_Impl *
-ACE_Asynch_Operation::implementation (void) const
-{
- return this->implementation_;
-}
-
-ACE_Asynch_Operation::ACE_Asynch_Operation (void)
- : implementation_ (0)
-{
-}
-
-ACE_Asynch_Operation::~ACE_Asynch_Operation (void)
-{
- delete this->implementation_;
- this->implementation_ = 0;
-}
-
-void
-ACE_Asynch_Operation::implementation (ACE_Asynch_Operation_Impl *implementation)
-{
- this->implementation_ = implementation;
-}
-
-ACE_Proactor *
-ACE_Asynch_Operation::get_proactor (ACE_Proactor *user_proactor,
- ACE_Handler &handler) const
-{
- if (user_proactor == 0)
- {
- // Grab the singleton proactor if <handler->proactor> is zero
- user_proactor = handler.proactor ();
- if (user_proactor == 0)
- user_proactor = ACE_Proactor::instance ();
- }
-
- return user_proactor;
-}
-
-// ************************************************************
-
-ACE_Asynch_Read_Stream::ACE_Asynch_Read_Stream (void)
- : implementation_ (0)
-{
-}
-
-ACE_Asynch_Read_Stream::~ACE_Asynch_Read_Stream (void)
-{
-}
-
-int
-ACE_Asynch_Read_Stream::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- // Get a proactor for/from the user.
- proactor = this->get_proactor (proactor, handler);
-
- // Delete the old implementation.
- delete this->implementation_;
- this->implementation_ = 0;
-
- // Now let us get the implementation initialized.
- ACE_Asynch_Read_Stream_Impl *implementation = proactor->create_asynch_read_stream ();
- if (implementation == 0)
- return -1;
-
- // Set the implementation class
- this->implementation (implementation);
-
- // Call the <open> method of the base class.
- return ACE_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_Asynch_Read_Stream::read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number)
-{
- return this->implementation ()->read (message_block,
- bytes_to_read,
- act,
- priority,
- signal_number);
-}
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
-int
-ACE_Asynch_Read_Stream::readv (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number)
-{
- return this->implementation ()->readv (message_block,
- bytes_to_read,
- act,
- priority,
- signal_number);
-}
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) */
-
-ACE_Asynch_Read_Stream_Impl *
-ACE_Asynch_Read_Stream::implementation (void) const
-{
- return implementation_;
-}
-
-void
-ACE_Asynch_Read_Stream::implementation (ACE_Asynch_Read_Stream_Impl *implementation)
-{
- this->implementation_ = implementation;
-
- // Init the base class' implementation also.
- ACE_Asynch_Operation::implementation (this->implementation_);
-}
-
-// ************************************************************
-
-size_t
-ACE_Asynch_Read_Stream::Result::bytes_to_read (void) const
-{
- return this->implementation ()->bytes_to_read ();
-}
-
-ACE_Message_Block &
-ACE_Asynch_Read_Stream::Result::message_block (void) const
-{
- return this->implementation ()->message_block ();
-}
-
-ACE_HANDLE
-ACE_Asynch_Read_Stream::Result::handle (void) const
-{
- return this->implementation ()->handle ();
-}
-
-ACE_Asynch_Read_Stream::Result::Result (ACE_Asynch_Read_Stream_Result_Impl *implementation)
- : ACE_Asynch_Result (implementation),
- implementation_ (implementation)
-{
-}
-
-ACE_Asynch_Read_Stream::Result::~Result (void)
-{
- // Proactor will delete the implementation after <complete> is
- // finished.
-}
-
-ACE_Asynch_Read_Stream_Result_Impl *
-ACE_Asynch_Read_Stream::Result::implementation (void) const
-{
- return this->implementation_;
-}
-
-// ***************************************************
-
-ACE_Asynch_Write_Stream::ACE_Asynch_Write_Stream (void)
- : implementation_ (0)
-{
-}
-
-ACE_Asynch_Write_Stream::~ACE_Asynch_Write_Stream (void)
-{
-}
-
-int
-ACE_Asynch_Write_Stream::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- // Get a proactor for/from the user.
- proactor = this->get_proactor (proactor, handler);
-
- // Delete the old implementation.
- delete this->implementation_;
- this->implementation_ = 0;
-
- // Now let us get the implementation initialized.
- ACE_Asynch_Write_Stream_Impl *implementation = proactor->create_asynch_write_stream ();
- if (implementation == 0)
- return -1;
-
- // Set the implementation class
- this->implementation (implementation);
-
- // Call the <open> method of the base class.
- return ACE_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_Asynch_Write_Stream::write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number)
-{
- return this->implementation ()->write (message_block,
- bytes_to_write,
- act,
- priority,
- signal_number);
-}
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
-int
-ACE_Asynch_Write_Stream::writev (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number)
-{
- return this->implementation ()->writev (message_block,
- bytes_to_write,
- act,
- priority,
- signal_number);
-}
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) */
-
-ACE_Asynch_Write_Stream_Impl *
-ACE_Asynch_Write_Stream::implementation (void) const
-{
- return this->implementation_;
-}
-
-void
-ACE_Asynch_Write_Stream::implementation (ACE_Asynch_Write_Stream_Impl *implementation)
-{
- this->implementation_ = implementation;
-
- // Init the base class' implementation also.
- ACE_Asynch_Operation::implementation (this->implementation_);
-}
-
-// ************************************************************
-
-size_t
-ACE_Asynch_Write_Stream::Result::bytes_to_write (void) const
-{
- return this->implementation ()->bytes_to_write ();
-}
-
-ACE_Message_Block &
-ACE_Asynch_Write_Stream::Result::message_block (void) const
-{
- return this->implementation ()->message_block ();
-}
-
-ACE_HANDLE
-ACE_Asynch_Write_Stream::Result::handle (void) const
-{
- return this->implementation ()->handle ();
-}
-
-ACE_Asynch_Write_Stream::Result::Result (ACE_Asynch_Write_Stream_Result_Impl *implementation)
- : ACE_Asynch_Result (implementation),
- implementation_ (implementation)
-{
-}
-
-ACE_Asynch_Write_Stream::Result::~Result (void)
-{
- // Proactor will delte the implementation when the <complete> call
- // finishes.
-}
-
-ACE_Asynch_Write_Stream_Result_Impl *
-ACE_Asynch_Write_Stream::Result::implementation (void) const
-{
- return this->implementation_;
-}
-
-// ************************************************************
-
-ACE_Asynch_Read_File::ACE_Asynch_Read_File (void)
- : implementation_ (0)
-{
-}
-
-ACE_Asynch_Read_File::~ACE_Asynch_Read_File (void)
-{
-}
-
-int
-ACE_Asynch_Read_File::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- // Get a proactor for/from the user.
- proactor = this->get_proactor (proactor, handler);
-
- // Delete the old implementation.
- delete this->implementation_;
- this->implementation_ = 0;
-
- // Now let us get the implementation initialized.
- ACE_Asynch_Read_File_Impl *implementation = proactor->create_asynch_read_file ();
- if (implementation == 0)
- return -1;
-
- // Set the implementation class
- this->implementation (implementation);
-
- // Call the <open> method of the base class.
- return ACE_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_Asynch_Read_File::read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number)
-{
- return this->implementation ()->read (message_block,
- bytes_to_read,
- offset,
- offset_high,
- act,
- priority,
- signal_number);
-}
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
-int
-ACE_Asynch_Read_File::readv (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number)
-{
- return this->implementation ()->readv (message_block,
- bytes_to_read,
- offset,
- offset_high,
- act,
- priority,
- signal_number);
-}
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */
-
-ACE_Asynch_Read_File_Impl *
-ACE_Asynch_Read_File::implementation (void) const
-{
- return this->implementation_;
-}
-
-void
-ACE_Asynch_Read_File::implementation (ACE_Asynch_Read_File_Impl *implementation)
-{
- this->implementation_ = implementation;
-
- // Set also the base class' implementation.
- ACE_Asynch_Read_Stream::implementation (implementation);
-}
-
-// ************************************************************
-
-ACE_Asynch_Read_File::Result::Result (ACE_Asynch_Read_File_Result_Impl *implementation)
- : ACE_Asynch_Read_Stream::Result (implementation),
- implementation_ (implementation)
-{
-}
-
-ACE_Asynch_Read_File::Result::~Result (void)
-{
- // Proactor will delete the implementation when <complete> call
- // completes.
-}
-
-ACE_Asynch_Read_File_Result_Impl *
-ACE_Asynch_Read_File::Result::implementation (void) const
-{
- return this->implementation_;
-}
-
-// ************************************************************
-
-ACE_Asynch_Write_File::ACE_Asynch_Write_File (void)
- : implementation_ (0)
-{
-}
-
-ACE_Asynch_Write_File::~ACE_Asynch_Write_File (void)
-{
-}
-
-int
-ACE_Asynch_Write_File::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- // Get a proactor for/from the user.
- proactor = this->get_proactor (proactor, handler);
-
- // Delete the old implementation.
- delete this->implementation_;
- this->implementation_ = 0;
-
- // Now let us get the implementation initialized.
- ACE_Asynch_Write_File_Impl *implementation = proactor->create_asynch_write_file ();
- if (implementation == 0)
- return -1;
-
- // Set the implementation class
- this->implementation (implementation);
-
- // Call the <open> method of the base class.
- return ACE_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_Asynch_Write_File::write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number)
-{
- return this->implementation ()->write (message_block,
- bytes_to_write,
- offset,
- offset_high,
- act,
- priority,
- signal_number);
-}
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
-int
-ACE_Asynch_Write_File::writev (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number)
-{
- return this->implementation ()->writev (message_block,
- bytes_to_write,
- offset,
- offset_high,
- act,
- priority,
- signal_number);
-}
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */
-
-ACE_Asynch_Write_File_Impl *
-ACE_Asynch_Write_File::implementation (void) const
-{
- return this->implementation_;
-}
-
-void
-ACE_Asynch_Write_File::implementation (ACE_Asynch_Write_File_Impl *implementation)
-{
- this->implementation_ = implementation;
-
- // Init the base class' implementation also.
- ACE_Asynch_Write_Stream::implementation (implementation);
-}
-
-// ************************************************************
-
-ACE_Asynch_Write_File::Result::Result (ACE_Asynch_Write_File_Result_Impl *implementation)
- : ACE_Asynch_Write_Stream::Result (implementation),
- implementation_ (implementation)
-{
-}
-
-ACE_Asynch_Write_File::Result::~Result (void)
-{
- // Proactor will delete the implementation when the <complete> call
- // completes.
-}
-
-ACE_Asynch_Write_File_Result_Impl *
-ACE_Asynch_Write_File::Result::implementation (void) const
-{
- return this->implementation_;
-}
-
-// *********************************************************************
-
-ACE_Asynch_Accept::ACE_Asynch_Accept (void)
- : implementation_ (0)
-{
-}
-
-ACE_Asynch_Accept::~ACE_Asynch_Accept (void)
-{
-}
-
-int
-ACE_Asynch_Accept::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- // Get a proactor for/from the user.
- proactor = this->get_proactor (proactor, handler);
-
- // Delete the old implementation.
- delete this->implementation_;
- this->implementation_ = 0;
-
- // Now let us get the implementation initialized.
- ACE_Asynch_Accept_Impl *implementation = proactor->create_asynch_accept ();
- if (implementation == 0)
- return -1;
-
- // Set the implementation class
- this->implementation (implementation);
-
- // Call the <open> method of the base class.
- return ACE_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_Asynch_Accept::accept (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- ACE_HANDLE accept_handle,
- const void *act,
- int priority,
- int signal_number)
-{
- return this->implementation ()->accept (message_block,
- bytes_to_read,
- accept_handle,
- act,
- priority,
- signal_number);
-}
-
-ACE_Asynch_Accept_Impl *
-ACE_Asynch_Accept::implementation (void) const
-{
- return this->implementation_;
-}
-
-void
-ACE_Asynch_Accept::implementation (ACE_Asynch_Accept_Impl *implementation)
-{
- this->implementation_ = implementation;
- // Set the implementation in the base class.
- ACE_Asynch_Operation::implementation (implementation);
-}
-
-// ************************************************************
-
-size_t
-ACE_Asynch_Accept::Result::bytes_to_read (void) const
-{
- return this->implementation ()->bytes_to_read ();
-}
-
-ACE_Message_Block &
-ACE_Asynch_Accept::Result::message_block (void) const
-{
- return this->implementation ()->message_block ();
-}
-
-ACE_HANDLE
-ACE_Asynch_Accept::Result::listen_handle (void) const
-{
- return this->implementation ()->listen_handle ();
-}
-
-ACE_HANDLE
-ACE_Asynch_Accept::Result::accept_handle (void) const
-{
- return this->implementation ()->accept_handle ();
-}
-
-ACE_Asynch_Accept::Result::Result (ACE_Asynch_Accept_Result_Impl *implementation)
- : ACE_Asynch_Result (implementation),
- implementation_ (implementation)
-{
-}
-
-ACE_Asynch_Accept::Result::~Result (void)
-{
- // Proactor will delete the implementation when the <complete> call
- // completes.
-}
-
-ACE_Asynch_Accept_Result_Impl *
-ACE_Asynch_Accept::Result::implementation (void) const
-{
- return this->implementation_;
-}
-
-
-
-// *********************************************************************
-
-ACE_Asynch_Connect::ACE_Asynch_Connect (void)
- : implementation_ (0)
-{
-}
-
-ACE_Asynch_Connect::~ACE_Asynch_Connect (void)
-{
-}
-
-int
-ACE_Asynch_Connect::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- // Get a proactor for/from the user.
- proactor = this->get_proactor (proactor, handler);
-
- // Delete the old implementation.
- delete this->implementation_;
- this->implementation_ = 0;
-
- // Now let us get the implementation initialized.
- ACE_Asynch_Connect_Impl *implementation = proactor->create_asynch_connect ();
- if (implementation == 0)
- return -1;
-
- // Set the implementation class
- this->implementation (implementation);
-
- // Call the <open> method of the base class.
- return ACE_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_Asynch_Connect::connect (ACE_HANDLE connect_handle,
- const ACE_Addr & remote_sap,
- const ACE_Addr & local_sap,
- int reuse_addr,
- const void *act,
- int priority,
- int signal_number)
-{
- return this->implementation ()->connect (connect_handle,
- remote_sap,
- local_sap,
- reuse_addr,
- act,
- priority,
- signal_number);
-}
-
-ACE_Asynch_Connect_Impl *
-ACE_Asynch_Connect::implementation (void) const
-{
- return this->implementation_;
-}
-
-void
-ACE_Asynch_Connect::implementation (ACE_Asynch_Connect_Impl *implementation)
-{
- this->implementation_ = implementation;
- // Set the implementation in the base class.
- ACE_Asynch_Operation::implementation (implementation);
-}
-
-// ************************************************************
-
-ACE_Asynch_Connect::Result::Result (ACE_Asynch_Connect_Result_Impl *implementation)
- : ACE_Asynch_Result (implementation),
- implementation_ (implementation)
-{
-}
-
-ACE_Asynch_Connect::Result::~Result (void)
-{
- // Proactor will delete the implementation when the <complete> call
- // completes.
-}
-
-ACE_HANDLE
-ACE_Asynch_Connect::Result::connect_handle (void) const
-{
- return this->implementation ()->connect_handle ();
-}
-
-
-ACE_Asynch_Connect_Result_Impl *
-ACE_Asynch_Connect::Result::implementation (void) const
-{
- return this->implementation_;
-}
-
-// ************************************************************
-
-ACE_Asynch_Transmit_File::ACE_Asynch_Transmit_File (void)
- : implementation_ (0)
-{
-}
-
-ACE_Asynch_Transmit_File::~ACE_Asynch_Transmit_File (void)
-{
-}
-
-int
-ACE_Asynch_Transmit_File::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- // Get a proactor for/from the user.
- proactor = this->get_proactor (proactor, handler);
-
- // Delete the old implementation.
- delete this->implementation_;
- this->implementation_ = 0;
-
- // Now let us get the implementation initialized.
- ACE_Asynch_Transmit_File_Impl *implementation = proactor->create_asynch_transmit_file ();
- if (implementation == 0)
- return -1;
-
- // Set the implementation class
- this->implementation (implementation);
-
- // Call the <open> method of the base class.
- return ACE_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_Asynch_Transmit_File::transmit_file (ACE_HANDLE file,
- Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- int priority,
- int signal_number)
-{
- return this->implementation ()->transmit_file (file,
- header_and_trailer,
- bytes_to_write,
- offset,
- offset_high,
- bytes_per_send,
- flags,
- act,
- priority,
- signal_number);
-}
-
-ACE_Asynch_Transmit_File_Impl *
-ACE_Asynch_Transmit_File::implementation (void) const
-{
- return this->implementation_;
-}
-
-void
-ACE_Asynch_Transmit_File::implementation (ACE_Asynch_Transmit_File_Impl *implementation)
-{
- this->implementation_ = implementation;
- // Set the base class' implementation also.
- ACE_Asynch_Operation::implementation (this->implementation_);
-}
-
-// ***********************************************************************************
-
-ACE_HANDLE
-ACE_Asynch_Transmit_File::Result::socket (void) const
-{
- return this->implementation ()->socket ();
-}
-
-ACE_HANDLE
-ACE_Asynch_Transmit_File::Result::file (void) const
-{
- return this->implementation ()->file ();
-}
-
-ACE_Asynch_Transmit_File::Header_And_Trailer *
-ACE_Asynch_Transmit_File::Result::header_and_trailer (void) const
-{
- return this->implementation ()->header_and_trailer ();
-}
-
-size_t
-ACE_Asynch_Transmit_File::Result::bytes_to_write (void) const
-{
- return this->implementation ()->bytes_to_write ();
-}
-
-size_t
-ACE_Asynch_Transmit_File::Result::bytes_per_send (void) const
-{
- return this->implementation ()->bytes_per_send ();
-}
-
-u_long
-ACE_Asynch_Transmit_File::Result::flags (void) const
-{
- return this->implementation ()->flags ();
-}
-
-ACE_Asynch_Transmit_File::Result::Result (ACE_Asynch_Transmit_File_Result_Impl *implementation)
- : ACE_Asynch_Result (implementation),
- implementation_ (implementation)
-{
-}
-
-ACE_Asynch_Transmit_File::Result::~Result (void)
-{
-}
-
-ACE_Asynch_Transmit_File_Result_Impl *
-ACE_Asynch_Transmit_File::Result::implementation (void) const
-{
- return this->implementation_;
-}
-
-// ************************************************************
-
-ACE_Asynch_Transmit_File::Header_And_Trailer::Header_And_Trailer (ACE_Message_Block *header,
- size_t header_bytes,
- ACE_Message_Block *trailer,
- size_t trailer_bytes)
- : header_ (header),
- header_bytes_ (header_bytes),
- trailer_ (trailer),
- trailer_bytes_ (trailer_bytes)
-{
-}
-
-ACE_Asynch_Transmit_File::Header_And_Trailer::~Header_And_Trailer (void)
-{
-}
-
-void
-ACE_Asynch_Transmit_File::Header_And_Trailer::header_and_trailer (ACE_Message_Block *header,
- size_t header_bytes,
- ACE_Message_Block *trailer,
- size_t trailer_bytes)
-{
- this->header (header);
- this->header_bytes (header_bytes);
- this->trailer (trailer);
- this->trailer_bytes (trailer_bytes);
-}
-
-ACE_Message_Block *
-ACE_Asynch_Transmit_File::Header_And_Trailer::header (void) const
-{
- return this->header_;
-}
-
-void
-ACE_Asynch_Transmit_File::Header_And_Trailer::header (ACE_Message_Block *message_block)
-{
- this->header_ = message_block;
-}
-
-size_t
-ACE_Asynch_Transmit_File::Header_And_Trailer::header_bytes (void) const
-{
- return this->header_bytes_;
-}
-
-void
-ACE_Asynch_Transmit_File::Header_And_Trailer::header_bytes (size_t bytes)
-{
- this->header_bytes_ = bytes;
-}
-
-ACE_Message_Block *
-ACE_Asynch_Transmit_File::Header_And_Trailer::trailer (void) const
-{
- return this->trailer_;
-}
-
-void
-ACE_Asynch_Transmit_File::Header_And_Trailer::trailer (ACE_Message_Block *message_block)
-{
- this->trailer_ = message_block;
-}
-
-size_t
-ACE_Asynch_Transmit_File::Header_And_Trailer::trailer_bytes (void) const
-{
- return this->trailer_bytes_;
-}
-
-void
-ACE_Asynch_Transmit_File::Header_And_Trailer::trailer_bytes (size_t bytes)
-{
- this->trailer_bytes_ = bytes;
-}
-
-ACE_LPTRANSMIT_FILE_BUFFERS
-ACE_Asynch_Transmit_File::Header_And_Trailer::transmit_buffers (void)
-{
- // If both are zero, return zero
- if (this->header_ == 0 && this->trailer_ == 0)
- return 0;
- else
- {
- // Something is valid
-
- // If header is valid, set the fields
- if (this->header_ != 0)
- {
- this->transmit_buffers_.Head = this->header_->rd_ptr ();
-#if defined(ACE_WIN64)
- this->transmit_buffers_.HeadLength =
- ACE_static_cast (DWORD, this->header_bytes_);
-#else
- this->transmit_buffers_.HeadLength = this->header_bytes_;
-#endif /* ACE_WIN64 */
- }
- else
- {
- this->transmit_buffers_.Head = 0;
- this->transmit_buffers_.HeadLength = 0;
- }
-
- // If trailer is valid, set the fields
- if (this->trailer_ != 0)
- {
- this->transmit_buffers_.Tail = this->trailer_->rd_ptr ();
-#if defined(ACE_WIN64)
- this->transmit_buffers_.TailLength =
- ACE_static_cast (DWORD, this->trailer_bytes_);
-#else
- this->transmit_buffers_.TailLength = this->trailer_bytes_;
-#endif /* ACE_WIN64 */
- }
- else
- {
- this->transmit_buffers_.Tail = 0;
- this->transmit_buffers_.TailLength = 0;
- }
-
- // Return the transmit buffers
- return &this->transmit_buffers_;
- }
-}
-
-// *********************************************************************
-
-ACE_Handler::ACE_Handler (void)
- : proactor_ (0), handle_ (ACE_INVALID_HANDLE)
-{
-}
-
-ACE_Handler::ACE_Handler (ACE_Proactor *d)
- : proactor_ (d), handle_ (ACE_INVALID_HANDLE)
-{
-}
-
-ACE_Handler::~ACE_Handler (void)
-{
-}
-
-void
-ACE_Handler::handle_read_stream (const ACE_Asynch_Read_Stream::Result & /* result */)
-{
-}
-
-void
-ACE_Handler::handle_write_stream (const ACE_Asynch_Write_Stream::Result & /* result */)
-{
-}
-
-void
-ACE_Handler::handle_write_dgram (const ACE_Asynch_Write_Dgram::Result & /* result */)
-{
-}
-
-void
-ACE_Handler::handle_read_dgram (const ACE_Asynch_Read_Dgram::Result & /* result */)
-{
-}
-
-void
-ACE_Handler::handle_accept (const ACE_Asynch_Accept::Result & /* result */)
-{
-}
-
-void
-ACE_Handler::handle_connect (const ACE_Asynch_Connect::Result & /* result */)
-{
-}
-
-void
-ACE_Handler::handle_transmit_file (const ACE_Asynch_Transmit_File::Result & /* result */)
-{
-}
-
-void
-ACE_Handler::handle_read_file (const ACE_Asynch_Read_File::Result & /* result */)
-{
-}
-
-void
-ACE_Handler::handle_write_file (const ACE_Asynch_Write_File::Result & /* result */)
-{
-}
-
-void
-ACE_Handler::handle_time_out (const ACE_Time_Value & /* tv */,
- const void * /* act */)
-{
-}
-
-void
-ACE_Handler::handle_wakeup (void)
-{
-}
-
-ACE_Proactor *
-ACE_Handler::proactor (void)
-{
- return this->proactor_;
-}
-
-void
-ACE_Handler::proactor (ACE_Proactor *p)
-{
- this->proactor_ = p;
-}
-
-ACE_HANDLE
-ACE_Handler::handle (void) const
-{
- return this->handle_;
-}
-
-void
-ACE_Handler::handle (ACE_HANDLE h)
-{
- this->handle_ = h;
-}
-
-// ************************************************************
-
-ACE_Service_Handler::ACE_Service_Handler (void)
-{
-}
-
-ACE_Service_Handler::~ACE_Service_Handler (void)
-{
-}
-
-void
-ACE_Service_Handler::addresses (const ACE_INET_Addr & /* remote_address */,
- const ACE_INET_Addr & /* local_address */ )
-{
-}
-
-void
-ACE_Service_Handler::act (const void *)
-{
-}
-
-void
-ACE_Service_Handler::open (ACE_HANDLE,
- ACE_Message_Block &)
-{
-}
-
-
-// ************************************************************
-
-ACE_Asynch_Read_Dgram::ACE_Asynch_Read_Dgram (void)
- : implementation_ (0)
-{
-}
-
-ACE_Asynch_Read_Dgram::~ACE_Asynch_Read_Dgram (void)
-{
-}
-
-int
-ACE_Asynch_Read_Dgram::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- // Get a proactor for/from the user.
- proactor = this->get_proactor (proactor, handler);
-
- // Delete the old implementation.
- delete this->implementation_;
- this->implementation_ = 0;
-
- // Now let us get the implementation initialized.
- ACE_Asynch_Read_Dgram_Impl *implementation = proactor->create_asynch_read_dgram ();
- if (implementation == 0)
- return -1;
-
- // Set the implementation class
- this->implementation (implementation);
-
- // Call the <open> method of the base class.
- return ACE_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-ssize_t
-ACE_Asynch_Read_Dgram::recv (ACE_Message_Block *message_block,
- size_t &number_of_bytes_recvd,
- int flags,
- int protocol_family,
- const void *act,
- int priority,
- int signal_number)
-{
- return this->implementation ()->recv (message_block,
- number_of_bytes_recvd,
- flags,
- protocol_family,
- act,
- priority,
- signal_number);
-}
-
-ACE_Asynch_Read_Dgram_Impl *
-ACE_Asynch_Read_Dgram::implementation (void) const
-{
- return implementation_;
-}
-
-void
-ACE_Asynch_Read_Dgram::implementation (ACE_Asynch_Read_Dgram_Impl *implementation)
-{
- this->implementation_ = implementation;
-
- // Init the bas class' implementation also.
- ACE_Asynch_Operation::implementation(this->implementation_);
-}
-
-// ************************************************************
-
-int
-ACE_Asynch_Read_Dgram::Result::remote_address (ACE_Addr& addr) const
-{
- return this->implementation ()->remote_address (addr);
-}
-
-ACE_Message_Block*
-ACE_Asynch_Read_Dgram::Result::message_block (void) const
-{
- return this->implementation ()->message_block ();
-}
-
-int
-ACE_Asynch_Read_Dgram::Result::flags (void) const
-{
- return this->implementation ()->flags ();
-}
-
-size_t
-ACE_Asynch_Read_Dgram::Result::bytes_to_read (void) const
-{
- return this->implementation ()->bytes_to_read ();
-}
-
-ACE_HANDLE
-ACE_Asynch_Read_Dgram::Result::handle (void) const
-{
- return this->implementation ()->handle();
-}
-
-ACE_Asynch_Read_Dgram::Result::Result (ACE_Asynch_Read_Dgram_Result_Impl *implementation)
-: ACE_Asynch_Result (implementation),
- implementation_ (implementation)
-{
-}
-
-ACE_Asynch_Read_Dgram::Result::~Result (void)
-{
-}
-
-ACE_Asynch_Read_Dgram_Result_Impl *
-ACE_Asynch_Read_Dgram::Result::implementation (void) const
-{
- return this->implementation_;
-}
-
-// ************************************************************
-
-
-ACE_Asynch_Write_Dgram::ACE_Asynch_Write_Dgram (void)
- : implementation_ (0)
-{
-}
-
-ACE_Asynch_Write_Dgram::~ACE_Asynch_Write_Dgram (void)
-{
-}
-
-int
-ACE_Asynch_Write_Dgram::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- // Get a proactor for/from the user.
- proactor = this->get_proactor (proactor, handler);
-
- // Delete the old implementation.
- delete this->implementation_;
- this->implementation_ = 0;
-
- // Now let us get the implementation initialized.
- ACE_Asynch_Write_Dgram_Impl *implementation = proactor->create_asynch_write_dgram ();
- if (implementation == 0)
- return -1;
-
- // Set the implementation class
- this->implementation (implementation);
-
- // Call the <open> method of the base class.
- return ACE_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-ssize_t
-ACE_Asynch_Write_Dgram::send (ACE_Message_Block *message_block,
- size_t &number_of_bytes_sent,
- int flags,
- const ACE_Addr& remote_addr,
- const void *act,
- int priority,
- int signal_number)
-{
- return this->implementation ()->send (message_block,
- number_of_bytes_sent,
- flags,
- remote_addr,
- act,
- priority,
- signal_number);
-}
-
-ACE_Asynch_Write_Dgram_Impl *
-ACE_Asynch_Write_Dgram::implementation (void) const
-{
- return this->implementation_;
-}
-
-void
-ACE_Asynch_Write_Dgram::implementation (ACE_Asynch_Write_Dgram_Impl *implementation)
-{
- this->implementation_ = implementation;
-
- // Init the base class' implementation also.
- ACE_Asynch_Operation::implementation (this->implementation_);
-}
-
-// ************************************************************
-
-size_t
-ACE_Asynch_Write_Dgram::Result::bytes_to_write (void) const
-{
- return this->implementation ()->bytes_to_write ();
-}
-
-ACE_Message_Block*
-ACE_Asynch_Write_Dgram::Result::message_block () const
-{
- return this->implementation ()->message_block ();
-}
-
-int
-ACE_Asynch_Write_Dgram::Result::flags (void) const
-{
- return this->implementation ()->flags ();
-}
-
-ACE_HANDLE
-ACE_Asynch_Write_Dgram::Result::handle (void) const
-{
- return this->implementation ()->handle ();
-}
-
-ACE_Asynch_Write_Dgram_Result_Impl *
-ACE_Asynch_Write_Dgram::Result::implementation (void) const
-{
- return this->implementation_;
-}
-
-ACE_Asynch_Write_Dgram::Result::Result (ACE_Asynch_Write_Dgram_Result_Impl *implementation)
-: ACE_Asynch_Result (implementation),
- implementation_ (implementation)
-{
-}
-
-ACE_Asynch_Write_Dgram::Result::~Result (void)
-{
-}
-
-#endif /* ACE_WIN32 || ACE_HAS_AIO_CALLS */
diff --git a/ace/Asynch_IO.h b/ace/Asynch_IO.h
deleted file mode 100644
index 14d2e3d22cf..00000000000
--- a/ace/Asynch_IO.h
+++ /dev/null
@@ -1,1608 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Asynch_IO.h
- *
- * $Id$
- *
- * This works on Win32 (#if defined (ACE_WIN32) && !defined
- * (ACE_HAS_WINCE)) platforms and on POSIX4 platforms with <aio_*>
- * routines (#if defined (ACE_HAS_AIO_CALLS))
- *
- * On Win32 platforms, the implementation of
- * <ACE_Asynch_Transmit_File> and <ACE_Asynch_Accept> are only
- * supported if ACE_HAS_WINSOCK2 is defined or you are on WinNT 4.0
- * or higher.
- *
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- * @author Tim Harrison <harrison@cs.wustl.edu>
- * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
- * @author Roger Tragin <r.tragin@computer.org>
- * @author Alexander Libman <alibman@ihug.com.au>
- */
-//=============================================================================
-
-#ifndef ACE_ASYNCH_IO_H
-#define ACE_ASYNCH_IO_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS))
-
-#include "ace/OS.h"
-
-// Forward declarations
-class ACE_Proactor;
-class ACE_Handler;
-class ACE_Message_Block;
-class ACE_INET_Addr;
-class ACE_Addr;
-
-// Forward declarations
-class ACE_Asynch_Result_Impl;
-
-/**
- * @class ACE_Asynch_Result
- *
- * @brief An interface base class which allows users access to common
- * information related to an asynchronous operation.
- *
- * An interface base class from which you can obtain some basic
- * information like the number of bytes transferred, the ACT
- * associated with the asynchronous operation, indication of
- * success or failure, etc. Subclasses may want to store more
- * information that is particular to the asynchronous operation
- * it represents.
- */
-class ACE_Export ACE_Asynch_Result
-{
-
-public:
- /// Number of bytes transferred by the operation.
- size_t bytes_transferred (void) const;
-
- /// ACT associated with the operation.
- const void *act (void) const;
-
- /// Did the operation succeed?
- int success (void) const;
-
- /**
- * This is the ACT associated with the handle on which the
- * Asynch_Operation takes place.
- *
- * On WIN32, this returns the ACT associated with the handle when it
- * was registered with the I/O completion port.
- *
- * @@ This is not implemented for POSIX4 platforms. Returns 0.
- */
- const void *completion_key (void) const;
-
- /// Error value if the operation fails.
- u_long error (void) const;
-
- /**
- * On WIN32, this returns the event associated with the OVERLAPPED
- * structure.
- *
- * This returns ACE_INVALID_HANDLE on POSIX4-Unix platforms.
- */
- ACE_HANDLE event (void) const;
-
- /**
- * This really makes sense only when doing file I/O.
- *
- * On WIN32, these are represented in the OVERLAPPED datastructure.
- *
- * @@ On POSIX4-Unix, offset_high should be supported using
- * aiocb64.
- */
- u_long offset (void) const;
- u_long offset_high (void) const;
-
- /**
- * Priority of the operation.
- *
- * On POSIX4-Unix, this is supported. Priority works like <nice> in
- * Unix. Negative values are not allowed. 0 means priority of the
- * operation same as the process priority. 1 means priority of the
- * operation is one less than process. And so forth.
- *
- * On Win32, this is a no-op.
- */
- int priority (void) const;
-
- /**
- * POSIX4 real-time signal number to be used for the
- * operation. <signal_number> ranges from ACE_SIGRTMIN to ACE_SIGRTMAX. By
- * default, ACE_SIGRTMIN is used to issue <aio_> calls. This is a no-op
- * on non-POSIX4 systems and returns 0.
- */
- int signal_number (void) const;
-
-
- /// Destructor.
- virtual ~ACE_Asynch_Result (void);
-
-protected:
- /// Constructor. This implementation will not be deleted. The
- /// implementation will be deleted by the Proactor.
- ACE_Asynch_Result (ACE_Asynch_Result_Impl *implementation);
-
- /// Get the implementation class.
- ACE_Asynch_Result_Impl *implementation (void) const;
-
- /// Implementation class.
- ACE_Asynch_Result_Impl *implementation_;
-};
-
-// Forward declarations
-class ACE_Asynch_Operation_Impl;
-
-/**
- * @class ACE_Asynch_Operation
- *
- * @brief This is an interface base class for all asynch
- * operations. The resposiblility of this class is to forward
- * all methods to its delegation/implementation class, e.g.,
- * <ACE_WIN32_Asynch_Operation> or <ACE_POSIX_Asynch_Operation>.
- *
- * There are some attributes and functionality which is common
- * to all asychronous operations. The delegation classes of this
- * class will factor out this code.
- */
-class ACE_Export ACE_Asynch_Operation
-{
-
-public:
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor);
-
- /**
- * (Attempts to) cancel the asynchronous operation pending against
- * the <handle> registered with this Operation.
- *
- * All completion notifications for the I/O operations will occur
- * normally.
- *
- * = Return Values:
- *
- * -1 : Operation failed. (can get only in POSIX).
- * 0 : All the operations were cancelled.
- * 1 : All the operations were already finished in this
- * handle. Unable to cancel them.
- * 2 : Atleast one of the requested operations cannot be
- * cancelled.
- *
- * There is slight difference in the semantics between NT and POSIX
- * platforms which is given below.
- *
- * = Win32 :
- *
- * cancels all pending accepts operations that were issued by the
- * calling thread. The function does not cancel asynchronous
- * operations issued by other threads.
- * All I/O operations that are canceled will complete with the
- * error ERROR_OPERATION_ABORTED.
- *
- * = POSIX:
- *
- * Attempts to cancel one or more asynchronous I/O requests
- * currently outstanding against the <handle> registered in this
- * operation.
- * For requested operations that are successfully canceled, the
- * associated error status is set to ECANCELED.
- */
- int cancel (void);
-
-
- // = Access methods.
-
- /// Return the underlying proactor.
- ACE_Proactor* proactor (void) const;
-
- /// Destructor.
- virtual ~ACE_Asynch_Operation (void);
-
-protected:
- /// Constructor.
- ACE_Asynch_Operation (void);
-
- /// Return the underlying implementation class.
- ACE_Asynch_Operation_Impl *implementation (void) const;
-
- /// Set the implementation class.
- void implementation (ACE_Asynch_Operation_Impl *implementation);
-
- /// Get a proactor for/from the user
- ACE_Proactor *get_proactor (ACE_Proactor *user_proactor,
- ACE_Handler &handler) const;
-
- /// Implementation class.
- ACE_Asynch_Operation_Impl *implementation_;
-};
-
-// Forward declarations
-class ACE_Asynch_Read_Stream_Result_Impl;
-class ACE_Asynch_Read_Stream_Impl;
-
-/**
- * @class ACE_Asynch_Read_Stream
- *
- * @brief This class is a factory for starting off asynchronous reads
- * on a stream. This class forwards all methods to its
- * implementation class.
- *
- * Once <open> is called, multiple asynchronous <read>s can
- * started using this class. An ACE_Asynch_Read_Stream::Result
- * will be passed back to the <handler> when the asynchronous
- * reads completes through the <ACE_Handler::handle_read_stream>
- * callback.
- */
-class ACE_Export ACE_Asynch_Read_Stream : public ACE_Asynch_Operation
-{
-
-public:
- /// A do nothing constructor.
- ACE_Asynch_Read_Stream (void);
-
- /// Destructor
- virtual ~ACE_Asynch_Read_Stream (void);
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle = ACE_INVALID_HANDLE,
- const void *completion_key = 0,
- ACE_Proactor *proactor = 0);
-
- /**
- * This starts off an asynchronous read. Upto <bytes_to_read> will
- * be read and stored in the <message_block>. <message_block>'s
- * <wr_ptr> will be updated to reflect the added bytes if the read
- * operation is successful completed. Priority of the
- * operation is specified by <priority>. On POSIX4-Unix, this is
- * supported. Works like <nice> in Unix. Negative values are not
- * allowed. 0 means priority of the operation same as the process
- * priority. 1 means priority of the operation is one less than
- * process. And so forth. On Win32, <priority> is a no-op.
- * <signal_number> is the POSIX4 real-time signal number to be used
- * for the operation. <signal_number> ranges from ACE_SIGRTMIN to
- * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems.
- */
- int read (ACE_Message_Block &message_block,
- size_t num_bytes_to_read,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
- /**
- * Same as above but with scatter support, through chaining of composite
- * message blocks using the continuation field.
- */
- int readv (ACE_Message_Block &message_block,
- size_t num_bytes_to_read,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) */
-
- /// Return the underlying implementation class.
- ACE_Asynch_Read_Stream_Impl *implementation (void) const;
-
-protected:
- /// Set the implementation class.
- void implementation (ACE_Asynch_Read_Stream_Impl *implementation);
-
- /// Implementation class that all methods will be forwarded to.
- ACE_Asynch_Read_Stream_Impl *implementation_;
-
-public:
-/**
- * @class Result
- *
- * @brief This is the class which will be passed back to the
- * <handler> when the asynchronous read completes. This class
- * forwards all the methods to the implementation classes.
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous read.
- */
- class ACE_Export Result : public ACE_Asynch_Result
- {
-
- /// The concrete implementation result classes only construct this
- /// class.
- friend class ACE_POSIX_Asynch_Read_Stream_Result;
- friend class ACE_WIN32_Asynch_Read_Stream_Result;
-
- public:
- /// The number of bytes which were requested at the start of the
- /// asynchronous read.
- size_t bytes_to_read (void) const;
-
- /// Message block which contains the read data.
- ACE_Message_Block &message_block (void) const;
-
- /// I/O handle used for reading.
- ACE_HANDLE handle (void) const;
-
- /// Get the implementation class.
- ACE_Asynch_Read_Stream_Result_Impl *implementation (void) const;
-
- protected:
- /// Constructor.
- Result (ACE_Asynch_Read_Stream_Result_Impl *implementation);
-
- /// Destructor.
- virtual ~Result (void);
-
- /// The implementation class.
- ACE_Asynch_Read_Stream_Result_Impl *implementation_;
- };
-};
-
-// Forward declarations
-class ACE_Asynch_Write_Stream_Impl;
-class ACE_Asynch_Write_Stream_Result_Impl;
-
-/**
- * @class ACE_Asynch_Write_Stream
- *
- * @brief This class is a factory for starting off asynchronous writes
- * on a stream. This class forwards all methods to its
- * implementation class.
- *
- * Once <open> is called, multiple asynchronous <writes>s can
- * started using this class. An ACE_Asynch_Write_Stream::Result
- * will be passed back to the <handler> when the asynchronous
- * write completes through the
- * <ACE_Handler::handle_write_stream> callback.
- */
-class ACE_Export ACE_Asynch_Write_Stream : public ACE_Asynch_Operation
-{
-
-public:
- /// A do nothing constructor.
- ACE_Asynch_Write_Stream (void);
-
- /// Destructor.
- virtual ~ACE_Asynch_Write_Stream (void);
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle = ACE_INVALID_HANDLE,
- const void *completion_key = 0,
- ACE_Proactor *proactor = 0);
-
- /**
- * This starts off an asynchronous write. Upto <bytes_to_write>
- * will be written from the <message_block>. Upon successful completion
- * of the write operation, <message_block>'s <rd_ptr> is updated to
- * reflect the data that was written. Priority of the
- * operation is specified by <priority>. On POSIX4-Unix, this is
- * supported. Works like <nice> in Unix. Negative values are not
- * allowed. 0 means priority of the operation same as the process
- * priority. 1 means priority of the operation is one less than
- * process. And so forth. On Win32, this argument is a no-op.
- * <signal_number> is the POSIX4 real-time signal number to be used
- * for the operation. <signal_number> ranges from ACE_SIGRTMIN to
- * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems.
- */
- int write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
- /**
- * Same as above but with gather support, through chaining of composite
- * message blocks using the continuation field.
- */
- int writev (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */
-
- /// Return the underlying implementation class.
- ACE_Asynch_Write_Stream_Impl *implementation (void) const;
-
-protected:
- /// Set the implementation class.
- void implementation (ACE_Asynch_Write_Stream_Impl *implementation);
-
- /// Implementation class that all methods will be forwarded to.
- ACE_Asynch_Write_Stream_Impl *implementation_;
-
-public:
-/**
- * @class Result
- *
- * @brief This is that class which will be passed back to the
- * <handler> when the asynchronous write completes. This class
- * forwards all the methods to the implementation class.
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous write.
- */
- class ACE_Export Result : public ACE_Asynch_Result
- {
-
- /// The concrete implementation result classes only construct this
- /// class.
- friend class ACE_POSIX_Asynch_Write_Stream_Result;
- friend class ACE_WIN32_Asynch_Write_Stream_Result;
-
- public:
- /// The number of bytes which were requested at the start of the
- /// asynchronous write.
- size_t bytes_to_write (void) const;
-
- /// Message block that contains the data to be written.
- ACE_Message_Block &message_block (void) const;
-
- /// I/O handle used for writing.
- ACE_HANDLE handle (void) const;
-
- /// Get the implementation class.
- ACE_Asynch_Write_Stream_Result_Impl *implementation (void) const;
-
- protected:
- /// Constructor.
- Result (ACE_Asynch_Write_Stream_Result_Impl *implementation);
-
- /// Destructor.
- virtual ~Result (void);
-
- /// Implementation class.
- ACE_Asynch_Write_Stream_Result_Impl *implementation_;
- };
-};
-
-// Forward declarations
-class ACE_Asynch_Read_File_Impl;
-class ACE_Asynch_Read_File_Result_Impl;
-
-/**
- * @class ACE_Asynch_Read_File
- *
- * @brief This class is a factory for starting off asynchronous reads
- * on a file. This class forwards all methods to its
- * implementation class.
- *
- * Once <open> is called, multiple asynchronous <read>s can
- * started using this class. An ACE_Asynch_Read_File::Result
- * will be passed back to the <handler> when the asynchronous
- * reads completes through the <ACE_Handler::handle_read_file>
- * callback.
- * This class differs slightly from ACE_Asynch_Read_Stream as it
- * allows the user to specify an offset for the read.
- */
-class ACE_Export ACE_Asynch_Read_File : public ACE_Asynch_Read_Stream
-{
-
-public:
- /// A do nothing constructor.
- ACE_Asynch_Read_File (void);
-
- /// Destructor.
- virtual ~ACE_Asynch_Read_File (void);
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle = ACE_INVALID_HANDLE,
- const void *completion_key = 0,
- ACE_Proactor *proactor = 0);
-
- /**
- * This starts off an asynchronous read. Upto <bytes_to_read> will
- * be read and stored in the <message_block>. The read will start
- * at <offset> from the beginning of the file. Priority of the
- * operation is specified by <priority>. On POSIX4-Unix, this is
- * supported. Works like <nice> in Unix. Negative values are not
- * allowed. 0 means priority of the operation same as the process
- * priority. 1 means priority of the operation is one less than
- * process. And so forth. On Win32, this argument is a no-op.
- * <signal_number> is the POSIX4 real-time signal number to be used
- * for the operation. <signal_number> ranges from ACE_SIGRTMIN to
- * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems.
- */
- int read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- u_long offset = 0,
- u_long offset_high = 0,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
- /**
- * Same as above but with scatter support, through chaining of composite
- * message blocks using the continuation field.
- * NOTE: In win32 Each data block payload must be at least the size of a system
- * memory page and must be aligned on a system memory page size boundary
- */
- int readv (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- u_long offset = 0,
- u_long offset_high = 0,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */
-
- /// Return the underlying implementation class.
- ACE_Asynch_Read_File_Impl *implementation (void) const;
-
-protected:
- /// Set the implementation class.
- void implementation (ACE_Asynch_Read_File_Impl *implementation);
-
- /// Delegation/implementation class that all methods will be
- /// forwarded to.
- ACE_Asynch_Read_File_Impl *implementation_;
-
-public:
-/**
- * @class Result
- *
- * @brief This is that class which will be passed back to the
- * <handler> when the asynchronous read completes. This class
- * forwards all the methods to the implementation class.
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous read.
- * This class differs slightly from
- * ACE_Asynch_Read_Stream::Result as it calls back
- * <ACE_Handler::handle_read_file> on the <handler> instead of
- * <ACE_Handler::handle_read_stream>. No additional state is
- * required by this class as ACE_Asynch_Result can store the
- * <offset>.
- */
- class ACE_Export Result : public ACE_Asynch_Read_Stream::Result
- {
-
- /// The concrete implementation result classes only construct this
- /// class.
- friend class ACE_POSIX_Asynch_Read_File_Result;
- friend class ACE_WIN32_Asynch_Read_File_Result;
-
- public:
- /// Get the implementation class.
- ACE_Asynch_Read_File_Result_Impl *implementation (void) const;
-
- protected:
- /// Constructor. This implementation will not be deleted.
- Result (ACE_Asynch_Read_File_Result_Impl *implementation);
-
- /// Destructor.
- virtual ~Result (void);
-
- /// The implementation class.
- ACE_Asynch_Read_File_Result_Impl *implementation_;
-
- private:
- /// Here just to provide an dummpy implementation, since the
- /// one auto generated by MSVC is flagged as infinitely recursive
- void operator= (Result &) {}
- };
-};
-
-// Forward declarations
-class ACE_Asynch_Write_File_Impl;
-class ACE_Asynch_Write_File_Result_Impl;
-
-/**
- * @class ACE_Asynch_Write_File
- *
- * @brief This class is a factory for starting off asynchronous writes
- * on a file. This class forwards all methods to its
- * implementation class.
- *
- * Once <open> is called, multiple asynchronous <write>s can be
- * started using this class. A ACE_Asynch_Write_File::Result
- * will be passed back to the <handler> when the asynchronous
- * writes completes through the <ACE_Handler::handle_write_file>
- * callback.
- * This class differs slightly from ACE_Asynch_Write_Stream as
- * it allows the user to specify an offset for the write.
- */
-class ACE_Export ACE_Asynch_Write_File : public ACE_Asynch_Write_Stream
-{
-
-public:
- /// A do nothing constructor.
- ACE_Asynch_Write_File (void);
-
- /// Destructor.
- virtual ~ACE_Asynch_Write_File (void);
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle = ACE_INVALID_HANDLE,
- const void *completion_key = 0,
- ACE_Proactor *proactor = 0);
-
- /**
- * This starts off an asynchronous write. Upto <bytes_to_write>
- * will be written from the <message_block>, starting at the
- * block's <rd_ptr>. The write will go to the file, starting
- * <offset> bytes from the beginning of the file. Priority of the
- * operation is specified by <priority>. On POSIX4-Unix, this is
- * supported. Works like <nice> in Unix. Negative values are not
- * allowed. 0 means priority of the operation same as the process
- * priority. 1 means priority of the operation is one less than
- * process. And so forth. On Win32, this is a no-op.
- * <signal_number> is the POSIX4 real-time signal number to be used
- * for the operation. <signal_number> ranges from ACE_SIGRTMIN to
- * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems.
- */
- int write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- u_long offset = 0,
- u_long offset_high = 0,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
- /**
- * Same as above but with gather support, through chaining of composite
- * message blocks using the continuation field.
- * NOTE: In win32 Each data block payload must be at least the size of a system
- * memory page and must be aligned on a system memory page size boundary
- */
- int writev (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- u_long offset = 0,
- u_long offset_high = 0,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */
-
- /// Return the underlying implementation class.
- ACE_Asynch_Write_File_Impl *implementation (void) const;
-
-protected:
- /// Set the implementation.
- void implementation (ACE_Asynch_Write_File_Impl *implementation);
-
- /// Implementation object.
- ACE_Asynch_Write_File_Impl *implementation_;
-
-public:
-/**
- * @class Result
- *
- * @brief This is that class which will be passed back to the
- * <handler> when the asynchronous write completes. This class
- * forwards all the methods to the implementation class.
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous write.
- * This class differs slightly from
- * ACE_Asynch_Write_Stream::Result as it calls back
- * <ACE_Handler::handle_write_file> on the <handler> instead
- * of <ACE_Handler::handle_write_stream>. No additional state
- * is required by this class as ACE_Asynch_Result can store
- * the <offset>.
- */
- class ACE_Export Result : public ACE_Asynch_Write_Stream::Result
- {
-
- /// The concrete implementation result classes only construct this
- /// class.
- friend class ACE_POSIX_Asynch_Write_File_Result;
- friend class ACE_WIN32_Asynch_Write_File_Result;
-
- public:
- /// Get the implementation class.
- ACE_Asynch_Write_File_Result_Impl *implementation (void) const;
-
- protected:
- /// Constructor. This implementation will not be deleted.
- Result (ACE_Asynch_Write_File_Result_Impl *implementation);
-
- /// Destructor.
- virtual ~Result (void);
-
- /// The implementation class.
- ACE_Asynch_Write_File_Result_Impl *implementation_;
-
- private:
- /// Here just to provide an dummpy implementation, since the
- /// one auto generated by MSVC is flagged as infinitely recursive
- void operator= (Result &) {};
- };
-};
-
-// Forward declarations
-class ACE_Asynch_Accept_Result_Impl;
-class ACE_Asynch_Accept_Impl;
-
-/**
- * @class ACE_Asynch_Accept
- *
- * @brief This class is a factory for starting off asynchronous accepts
- * on a listen handle. This class forwards all methods to its
- * implementation class.
- *
- * Once <open> is called, multiple asynchronous <accept>s can
- * started using this class. A ACE_Asynch_Accept::Result will
- * be passed back to the <handler> when the asynchronous accept
- * completes through the <ACE_Handler::handle_accept>
- * callback.
- */
-class ACE_Export ACE_Asynch_Accept : public ACE_Asynch_Operation
-{
-
-public:
- /// A do nothing constructor.
- ACE_Asynch_Accept (void);
-
- /// Destructor.
- virtual ~ACE_Asynch_Accept (void);
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle = ACE_INVALID_HANDLE,
- const void *completion_key = 0,
- ACE_Proactor *proactor = 0);
-
- /**
- * This starts off an asynchronous accept. The asynchronous accept
- * call also allows any initial data to be returned to the
- * <handler>. Upto <bytes_to_read> will be read and stored in the
- * <message_block>. The <accept_handle> will be used for the
- * <accept> call. If (<accept_handle> == INVALID_HANDLE), a new
- * handle will be created. Priority of the
- * operation is specified by <priority>. On POSIX4-Unix, this is
- * supported. Works like <nice> in Unix. Negative values are not
- * allowed. 0 means priority of the operation same as the process
- * priority. 1 means priority of the operation is one less than
- * process. And so forth. On Win32, this is a no-op.
- *
- * <message_block> must be specified. This is because the address of
- * the new connection is placed at the end of this buffer.
- * <signal_number> is the POSIX4 real-time signal number to be used
- * for the operation. <signal_number> ranges from ACE_SIGRTMIN to
- * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems.
- */
- int accept (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- ACE_HANDLE accept_handle = ACE_INVALID_HANDLE,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Return the underlying implementation class.
- ACE_Asynch_Accept_Impl *implementation (void) const;
-
-protected:
- /// Set the implementation class.
- void implementation (ACE_Asynch_Accept_Impl *implementation);
-
- /// Delegation/implementation class that all methods will be
- /// forwarded to.
- ACE_Asynch_Accept_Impl *implementation_;
-
-public:
-/**
- * @class Result
- *
- * @brief This is that class which will be passed back to the
- * <handler> when the asynchronous accept completes.
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous accept.
- */
- class ACE_Export Result : public ACE_Asynch_Result
- {
-
- /// The concrete implementation result classes only construct this
- /// class.
- friend class ACE_POSIX_Asynch_Accept_Result;
- friend class ACE_WIN32_Asynch_Accept_Result;
-
- public:
- /// The number of bytes which were requested at the start of the
- /// asynchronous accept.
- size_t bytes_to_read (void) const;
-
- /// Message block which contains the read data.
- ACE_Message_Block &message_block (void) const;
-
- /// I/O handle used for accepting new connections.
- ACE_HANDLE listen_handle (void) const;
-
- /// I/O handle for the new connection.
- ACE_HANDLE accept_handle (void) const;
-
- /// Get the implementation.
- ACE_Asynch_Accept_Result_Impl *implementation (void) const;
-
- protected:
- /// Contructor. Implementation will not be deleted.
- Result (ACE_Asynch_Accept_Result_Impl *implementation);
-
- /// Destructor.
- virtual ~Result (void);
-
- /// Impelmentation class.
- ACE_Asynch_Accept_Result_Impl *implementation_;
- };
-};
-// Forward declarations
-class ACE_Asynch_Connect_Result_Impl;
-class ACE_Asynch_Connect_Impl;
-
-/**
- * @class ACE_Asynch_Connect
- *
- * @brief This class is a factory for starting off asynchronous connects
- * This class forwards all methods to its implementation class.
- *
- * Once @c open is called, multiple asynchronous connect operationss can
- * started using this class. A ACE_Asynch_Connect::Result will
- * be passed back to the associated ACE_Handler when the asynchronous connect
- * completes through the ACE_Handler::handle_connect() callback.
- */
-class ACE_Export ACE_Asynch_Connect : public ACE_Asynch_Operation
-{
-
-public:
- /// A do nothing constructor.
- ACE_Asynch_Connect (void);
-
- /// Destructor.
- virtual ~ACE_Asynch_Connect (void);
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call.
- *
- * @note @arg handle is ignored and should be @c ACE_INVALID_HANDLE.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle = ACE_INVALID_HANDLE,
- const void *completion_key = 0,
- ACE_Proactor *proactor = 0);
-
- /**
- * This starts off an asynchronous Connect.
- */
- int connect (ACE_HANDLE connect_handle,
- const ACE_Addr & remote_sap,
- const ACE_Addr & local_sap,
- int reuse_addr,
- const void *act=0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Return the underlying implementation class.
- ACE_Asynch_Connect_Impl *implementation (void) const;
-
-protected:
- /// Set the implementation class.
- void implementation (ACE_Asynch_Connect_Impl *implementation);
-
- /// Delegation/implementation class that all methods will be
- /// forwarded to.
- ACE_Asynch_Connect_Impl *implementation_;
-
-public:
-/**
- * @class Result
- *
- * @brief This is that class which will be passed back to the
- * handler when the asynchronous connect completes.
- *
- * This class has all the information necessary for the
- * handler to uniquely identify the completion of the
- * asynchronous connect.
- */
- class ACE_Export Result : public ACE_Asynch_Result
- {
-
- /// The concrete implementation result classes only construct this
- /// class.
- friend class ACE_POSIX_Asynch_Connect_Result;
- friend class ACE_WIN32_Asynch_Connect_Result;
-
- public:
-
- /// I/O handle for the connection.
- ACE_HANDLE connect_handle (void) const;
-
- /// Get the implementation.
- ACE_Asynch_Connect_Result_Impl *implementation (void) const;
-
- protected:
- /// Contructor. Implementation will not be deleted.
- Result (ACE_Asynch_Connect_Result_Impl *implementation);
-
- /// Destructor.
- virtual ~Result (void);
-
- /// Impelmentation class.
- ACE_Asynch_Connect_Result_Impl *implementation_;
- };
-};
-
-// Forward declarations
-class ACE_Asynch_Transmit_File_Result_Impl;
-class ACE_Asynch_Transmit_File_Impl;
-
-/**
- * @class ACE_Asynch_Transmit_File
- *
- * @brief This class is a factory for starting off asynchronous
- * transmit files on a stream.
- *
- * Once <open> is called, multiple asynchronous <transmit_file>s
- * can started using this class. A
- * ACE_Asynch_Transmit_File::Result will be passed back to the
- * <handler> when the asynchronous transmit file completes
- * through the <ACE_Handler::handle_transmit_file> callback.
- * The transmit_file function transmits file data over a
- * connected network connection. The function uses the operating
- * system's cache manager to retrieve the file data. This
- * function provides high-performance file data transfer over
- * network connections. This function would be of great use in
- * a Web Server, Image Server, etc.
- */
-class ACE_Export ACE_Asynch_Transmit_File : public ACE_Asynch_Operation
-{
-
-public:
- // Forward declarations
- class Header_And_Trailer;
-
- /// A do nothing constructor.
- ACE_Asynch_Transmit_File (void);
-
- /// Destructor.
- virtual ~ACE_Asynch_Transmit_File (void);
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle = ACE_INVALID_HANDLE,
- const void *completion_key = 0,
- ACE_Proactor *proactor = 0);
-
- /**
- * This starts off an asynchronous transmit file. The <file> is a
- * handle to an open file. <header_and_trailer> is a pointer to a
- * data structure that contains pointers to data to send before and
- * after the file data is sent. Set this parameter to 0 if you only
- * want to transmit the file data. Upto <bytes_to_write> will be
- * written to the <socket>. If you want to send the entire file,
- * let <bytes_to_write> = 0. <bytes_per_send> is the size of each
- * block of data sent per send operation. Please read the Win32
- * documentation on what the flags should be. Priority of the
- * operation is specified by <priority>. On POSIX4-Unix, this is
- * supported. Works like <nice> in Unix. Negative values are not
- * allowed. 0 means priority of the operation same as the process
- * priority. 1 means priority of the operation is one less than
- * process. And so forth. On Win32, this is a no-op.
- * <signal_number> is the POSIX4 real-time signal number to be used
- * for the operation. <signal_number> ranges from ACE_SIGRTMIN to
- * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems.
- */
- int transmit_file (ACE_HANDLE file,
- Header_And_Trailer *header_and_trailer = 0,
- size_t bytes_to_write = 0,
- u_long offset = 0,
- u_long offset_high = 0,
- size_t bytes_per_send = 0,
- u_long flags = 0,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Return the underlying implementation class.
- ACE_Asynch_Transmit_File_Impl *implementation (void) const;
-
-protected:
- /// Set the implementation.
- void implementation (ACE_Asynch_Transmit_File_Impl *);
-
- /// The implementation class.
- ACE_Asynch_Transmit_File_Impl *implementation_;
-
-public:
-/**
- * @class Result
- *
- * @brief This is that class which will be passed back to the
- * <handler> when the asynchronous transmit file completes.
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous transmit file.
- */
- class ACE_Export Result : public ACE_Asynch_Result
- {
-
- /// The concrete implementation result classes only construct this
- /// class.
- friend class ACE_POSIX_Asynch_Transmit_File_Result;
- friend class ACE_WIN32_Asynch_Transmit_File_Result;
-
- public:
- /// Socket used for transmitting the file.
- ACE_HANDLE socket (void) const;
-
- /// File from which the data is read.
- ACE_HANDLE file (void) const;
-
- /// Header and trailer data associated with this transmit file.
- Header_And_Trailer *header_and_trailer (void) const;
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous transmit file.
- size_t bytes_to_write (void) const;
-
- /// Number of bytes per send requested at the start of the transmit
- /// file.
- size_t bytes_per_send (void) const;
-
- /// Flags which were passed into transmit file.
- u_long flags (void) const;
-
- /// Get the implementation class.
- ACE_Asynch_Transmit_File_Result_Impl *implementation (void) const;
-
- protected:
- /// Constructor.
- Result (ACE_Asynch_Transmit_File_Result_Impl *implementation);
-
- /// Destructor.
- virtual ~Result (void);
-
- /// The implementation class.
- ACE_Asynch_Transmit_File_Result_Impl *implementation_;
- };
-
-/**
- * @class Header_And_Trailer
- *
- * @brief The class defines a data structure that contains pointers
- * to data to send before and after the file data is sent.
- *
- * This class provides a wrapper over TRANSMIT_FILE_BUFFERS
- * and provided a consistent use of ACE_Message_Blocks.
- */
- class ACE_Export Header_And_Trailer
- {
-
- public:
- /// Constructor.
- Header_And_Trailer (ACE_Message_Block *header = 0,
- size_t header_bytes = 0,
- ACE_Message_Block *trailer = 0,
- size_t trailer_bytes = 0);
-
- /// Destructor
- virtual ~Header_And_Trailer (void);
-
- /// This method allows all the member to be set in one fell swoop.
- void header_and_trailer (ACE_Message_Block *header = 0,
- size_t header_bytes = 0,
- ACE_Message_Block *trailer = 0,
- size_t trailer_bytes = 0);
-
- /// Get header which goes before the file data.
- ACE_Message_Block *header (void) const;
-
- /// Set header which goes before the file data.
- void header (ACE_Message_Block *message_block);
-
- /// Get size of the header data.
- size_t header_bytes (void) const;
-
- /// Set size of the header data.
- void header_bytes (size_t bytes);
-
- /// Get trailer which goes after the file data.
- ACE_Message_Block *trailer (void) const;
-
- /// Set trailer which goes after the file data.
- void trailer (ACE_Message_Block *message_block);
-
- /// Get size of the trailer data.
- size_t trailer_bytes (void) const;
-
- /// Set size of the trailer data.
- void trailer_bytes (size_t bytes);
-
- /// Conversion routine.
- ACE_LPTRANSMIT_FILE_BUFFERS transmit_buffers (void);
-
- protected:
- /// Header data.
- ACE_Message_Block *header_;
-
- /// Size of header data.
- size_t header_bytes_;
-
- /// Trailer data.
- ACE_Message_Block *trailer_;
-
- /// Size of trailer data.
- size_t trailer_bytes_;
-
- /// Target data structure.
- ACE_TRANSMIT_FILE_BUFFERS transmit_buffers_;
- };
-};
-
-
-// Forward declarations
-class ACE_Asynch_Read_Dgram_Result_Impl;
-class ACE_Asynch_Read_Dgram_Impl;
-class ACE_Addr;
-
-/**
- * @class ACE_Asynch_Read_Dgram
- *
- * @brief This class is a factory for starting off asynchronous reads
- * on a UDP socket. This class forwards all methods to its
- * implementation class.
- *
- * Once <open> is called, multiple asynchronous <read>s can be
- * started using this class. An ACE_Asynch_Read_Dgram::Result
- * will be passed back to the <handler> when the asynchronous
- * reads completes through the <ACE_Handler::handle_read_dgram>
- * callback.
- */
-class ACE_Export ACE_Asynch_Read_Dgram : public ACE_Asynch_Operation
-{
-
-public:
- /// A do nothing constructor.
- ACE_Asynch_Read_Dgram (void);
-
- /// Destructor
- virtual ~ACE_Asynch_Read_Dgram (void);
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle = ACE_INVALID_HANDLE,
- const void *completion_key = 0,
- ACE_Proactor *proactor = 0);
-
- /** This starts off an asynchronous read. Upto
- * <message_block->total_size()> will be read and stored in the
- * <message_block>. <message_block>'s <wr_ptr> will be updated to reflect
- * the added bytes if the read operation is successfully completed.
- * Return code of 1 means immediate success and <number_of_bytes_recvd>
- * will contain number of bytes read. The <ACE_Handler::handle_read_dgram>
- * method will still be called. Return code of 0 means the IO will
- * complete proactively. Return code of -1 means there was an error, use
- * errno to get the error code.
- *
- * Scatter/gather is supported on WIN32 by using the <message_block->cont()>
- * method. Up to ACE_IOV_MAX <message_block>'s are supported. Upto
- * <message_block->size()> bytes will be read into each <message block> for
- * a total of <message_block->total_size()> bytes. All <message_block>'s
- * <wr_ptr>'s will be updated to reflect the added bytes for each
- * <message_block>
- *
- * Priority of the operation is specified by <priority>. On POSIX4-Unix,
- * this is supported. Works like <nice> in Unix. Negative values are not
- * allowed. 0 means priority of the operation same as the process
- * priority. 1 means priority of the operation is one less than
- * process. And so forth. On Win32, <priority> is a no-op.
- * <signal_number> is the POSIX4 real-time signal number to be used
- * for the operation. <signal_number> ranges from ACE_SIGRTMIN to
- * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems.
- */
- ssize_t recv (ACE_Message_Block *message_block,
- size_t &number_of_bytes_recvd,
- int flags,
- int protocol_family = PF_INET,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Return the underlying implementation class.
- ACE_Asynch_Read_Dgram_Impl *implementation (void) const;
-
-protected:
- /// Set the implementation class.
- void implementation (ACE_Asynch_Read_Dgram_Impl *implementation);
-
- /// Implementation class that all methods will be forwarded to.
- ACE_Asynch_Read_Dgram_Impl *implementation_;
-
-public:
-/**
- * @class Result
- *
- * @brief This is the class which will be passed back to the
- * <handler> when the asynchronous read completes. This class
- * forwards all the methods to the implementation classes.
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous read.
- */
- class ACE_Export Result : public ACE_Asynch_Result
- {
-
- /// The concrete implementation result classes only construct this
- /// class.
- friend class ACE_POSIX_Asynch_Read_Dgram_Result;
- friend class ACE_WIN32_Asynch_Read_Dgram_Result;
-
- public:
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous read.
- size_t bytes_to_read (void) const;
-
- /// Message block which contains the read data
- ACE_Message_Block *message_block (void) const;
-
- /// The flags used in the read
- int flags (void) const;
-
- /// The address of where the packet came from
- int remote_address (ACE_Addr& addr) const;
-
- /// I/O handle used for reading.
- ACE_HANDLE handle (void) const;
-
- /// Get the implementation class.
- ACE_Asynch_Read_Dgram_Result_Impl *implementation (void) const;
-
- protected:
- /// Constructor.
- Result (ACE_Asynch_Read_Dgram_Result_Impl *implementation);
-
- /// Destructor.
- virtual ~Result (void);
-
- /// The implementation class.
- ACE_Asynch_Read_Dgram_Result_Impl *implementation_;
- };
-};
-
-// Forward declarations
-class ACE_Asynch_Write_Dgram_Impl;
-class ACE_Asynch_Write_Dgram_Result_Impl;
-
-/**
- * @class ACE_Asynch_Write_Dgram
- *
- * @brief This class is a factory for starting off asynchronous writes
- * on a UDP socket. This class forwards all methods to its
- * implementation class.
- *
- * Once <open> is called, multiple asynchronous <writes>s can
- * started using this class. An ACE_Asynch_Write_Dgram::Result
- * will be passed back to the <handler> when the asynchronous
- * write completes through the
- * <ACE_Handler::handle_write_dgram> callback.
- */
-class ACE_Export ACE_Asynch_Write_Dgram : public ACE_Asynch_Operation
-{
-
-public:
- /// A do nothing constructor.
- ACE_Asynch_Write_Dgram (void);
-
- /// Destructor.
- virtual ~ACE_Asynch_Write_Dgram (void);
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle = ACE_INVALID_HANDLE,
- const void *completion_key = 0,
- ACE_Proactor *proactor = 0);
-
- /** This starts off an asynchronous send. Upto
- * <message_block->total_length()> will be sent. <message_block>'s
- * <rd_ptr> will be updated to reflect the sent bytes if the send operation
- * is successfully completed.
- * Return code of 1 means immediate success and <number_of_bytes_sent>
- * is updated to number of bytes sent. The <ACE_Handler::handle_write_dgram>
- * method will still be called. Return code of 0 means the IO will
- * complete proactively. Return code of -1 means there was an error, use
- * errno to get the error code.
- *
- * Scatter/gather is supported on WIN32 by using the <message_block->cont()>
- * method. Up to ACE_IOV_MAX <message_block>'s are supported. Upto
- * <message_block->length()> bytes will be sent from each <message block>
- * for a total of <message_block->total_length()> bytes. All
- * <message_block>'s <rd_ptr>'s will be updated to reflect the bytes sent
- * from each <message_block>.
- *
- * Priority of the operation is specified by <priority>. On POSIX4-Unix,
- * this is supported. Works like <nice> in Unix. Negative values are not
- * allowed. 0 means priority of the operation same as the process
- * priority. 1 means priority of the operation is one less than
- * process. And so forth. On Win32, this argument is a no-op.
- * <signal_number> is the POSIX4 real-time signal number to be used
- * for the operation. <signal_number> ranges from ACE_SIGRTMIN to
- * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems.
- */
- ssize_t send (ACE_Message_Block *message_block,
- size_t &number_of_bytes_sent,
- int flags,
- const ACE_Addr& remote_addr,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Return the underlying implementation class.
- ACE_Asynch_Write_Dgram_Impl *implementation (void) const;
-
-protected:
- /// Set the implementation class.
- void implementation (ACE_Asynch_Write_Dgram_Impl *implementation);
-
- /// Implementation class that all methods will be forwarded to.
- ACE_Asynch_Write_Dgram_Impl *implementation_;
-
-public:
-/**
- * @class Result
- *
- * @brief This is that class which will be passed back to the
- * <handler> when the asynchronous write completes. This class
- * forwards all the methods to the implementation class.
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous write.
- */
- class ACE_Export Result : public ACE_Asynch_Result
- {
-
- /// The concrete implementation result classes only construct this
- /// class.
- friend class ACE_POSIX_Asynch_Write_Dgram_Result;
- friend class ACE_WIN32_Asynch_Write_Dgram_Result;
-
- public:
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous write.
- size_t bytes_to_write (void) const;
-
- /// Message block which contains the sent data
- ACE_Message_Block *message_block (void) const;
-
- /// The flags using in the write
- int flags (void) const;
-
- /// I/O handle used for writing.
- ACE_HANDLE handle (void) const;
-
- /// Get the implementation class.
- ACE_Asynch_Write_Dgram_Result_Impl *implementation (void) const;
-
- protected:
- /// Constructor.
- Result (ACE_Asynch_Write_Dgram_Result_Impl *implementation);
-
- /// Destructor.
- virtual ~Result (void);
-
- /// Implementation class.
- ACE_Asynch_Write_Dgram_Result_Impl *implementation_;
- };
-};
-
-
-/**
- * @class ACE_Handler
- *
- * @brief This base class defines the interface for receiving the
- * results of asynchronous operations.
- *
- * Subclasses of this class will fill in appropriate methods.
- */
-class ACE_Export ACE_Handler
-{
-public:
- /// A do nothing constructor.
- ACE_Handler (void);
-
- /// A do nothing constructor which allows proactor to be set to \<p\>.
- ACE_Handler (ACE_Proactor *p);
-
- /// Virtual destruction.
- virtual ~ACE_Handler (void);
-
- /// This method will be called when an asynchronous read completes on
- /// a stream.
- virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result);
-
- /// This method will be called when an asynchronous write completes
- /// on a UDP socket.
- virtual void handle_write_dgram (const ACE_Asynch_Write_Dgram::Result &result);
-
- /// This method will be called when an asynchronous read completes on
- /// a UDP socket.
- virtual void handle_read_dgram (const ACE_Asynch_Read_Dgram::Result &result);
-
- /// This method will be called when an asynchronous write completes
- /// on a stream.
- virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result);
-
- /// This method will be called when an asynchronous read completes on
- /// a file.
- virtual void handle_read_file (const ACE_Asynch_Read_File::Result &result);
-
- /// This method will be called when an asynchronous write completes
- /// on a file.
- virtual void handle_write_file (const ACE_Asynch_Write_File::Result &result);
-
- /// This method will be called when an asynchronous accept completes.
- virtual void handle_accept (const ACE_Asynch_Accept::Result &result);
-
- /// This method will be called when an asynchronous connect completes.
- virtual void handle_connect (const ACE_Asynch_Connect::Result &result);
-
- /// This method will be called when an asynchronous transmit file
- /// completes.
- virtual void handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result);
-
- /// Called when timer expires. <tv> was the requested time value and
- /// <act> is the ACT passed when scheduling the timer.
- virtual void handle_time_out (const ACE_Time_Value &tv,
- const void *act = 0);
-
- /**
- * This is method works with the <run_event_loop> of the
- * ACE_Proactor. A special <Wake_Up_Completion> is used to wake up
- * all the threads that are blocking for completions.
- */
- virtual void handle_wakeup (void);
-
- /// Get the proactor associated with this handler.
- ACE_Proactor *proactor (void);
-
- /// Set the proactor.
- void proactor (ACE_Proactor *p);
-
- /**
- * Get the I/O handle used by this <handler>. This method will be
- * called by the ACE_Asynch_* classes when an ACE_INVALID_HANDLE is
- * passed to <open>.
- */
- virtual ACE_HANDLE handle (void) const;
-
- /// Set the ACE_HANDLE value for this Handler.
- virtual void handle (ACE_HANDLE);
-
-protected:
- /// The proactor associated with this handler.
- ACE_Proactor *proactor_;
-
- /// The ACE_HANDLE in use with this handler.
- ACE_HANDLE handle_;
-};
-
-// Forward declarations
-class ACE_INET_Addr;
-
-// Forward declarations
-template <class HANDLER>
-class ACE_Asynch_Acceptor;
-
-/**
- * @class ACE_Service_Handler
- *
- * @brief This base class defines the interface for the
- * ACE_Asynch_Acceptor to call into when new connection are
- * accepted.
- *
- * Subclasses of this class will fill in appropriate methods to
- * define application specific behavior.
- */
-class ACE_Export ACE_Service_Handler : public ACE_Handler
-{
-
- /// The Acceptor is the factory and therefore should have special
- /// privileges.
- friend class ACE_Asynch_Acceptor<ACE_Service_Handler>;
-
-public:
- /// A do nothing constructor.
- ACE_Service_Handler (void);
-
- /// Virtual destruction.
- virtual ~ACE_Service_Handler (void);
-
- /**
- * <open> is called by ACE_Asynch_Acceptor to initialize a new
- * instance of ACE_Service_Handler that has been created after the
- * new connection is accepted. The handle for the new connection is
- * passed along with the initial data that may have shown up.
- */
- virtual void open (ACE_HANDLE new_handle,
- ACE_Message_Block &message_block);
-
- // protected:
- // This should be corrected after the correct semantics of the
- // friend has been figured out.
-
- /// Called by ACE_Asynch_Acceptor to pass the addresses of the new
- /// connections.
- virtual void addresses (const ACE_INET_Addr &remote_address,
- const ACE_INET_Addr &local_address);
-
- /// Called by ACE_Asynch_Acceptor to pass the act.
- virtual void act (const void *);
-};
-
-#endif /* ACE_WIN32 || ACE_HAS_AIO_CALLS*/
-#include "ace/post.h"
-#endif /* ACE_ASYNCH_IO_H */
diff --git a/ace/Asynch_IO_Impl.cpp b/ace/Asynch_IO_Impl.cpp
deleted file mode 100644
index 8f26d82ae4b..00000000000
--- a/ace/Asynch_IO_Impl.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-// $Id$
-
-#include "ace/Asynch_IO_Impl.h"
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS))
-// This only works on Win32 platforms and on Unix platforms supporting
-// aio calls.
-#include "ace/OS.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Asynch_IO_Impl.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_Asynch_Result_Impl::~ACE_Asynch_Result_Impl (void)
-{
-}
-
-ACE_Asynch_Operation_Impl::~ACE_Asynch_Operation_Impl (void)
-{
-}
-
-ACE_Asynch_Read_Stream_Impl::~ACE_Asynch_Read_Stream_Impl (void)
-{
-}
-
-ACE_Asynch_Read_Stream_Result_Impl::~ACE_Asynch_Read_Stream_Result_Impl (void)
-{
-}
-
-ACE_Asynch_Write_Stream_Impl::~ACE_Asynch_Write_Stream_Impl (void)
-{
-}
-
-ACE_Asynch_Write_Stream_Result_Impl::~ACE_Asynch_Write_Stream_Result_Impl (void)
-{
-}
-
-ACE_Asynch_Read_File_Impl::~ACE_Asynch_Read_File_Impl (void)
-{
-}
-
-ACE_Asynch_Write_File_Impl::~ACE_Asynch_Write_File_Impl (void)
-{
-}
-
-ACE_Asynch_Read_File_Result_Impl::~ACE_Asynch_Read_File_Result_Impl (void)
-{
-}
-
-ACE_Asynch_Write_File_Result_Impl::~ACE_Asynch_Write_File_Result_Impl (void)
-{
-}
-
-ACE_Asynch_Accept_Result_Impl::~ACE_Asynch_Accept_Result_Impl (void)
-{
-}
-
-ACE_Asynch_Connect_Result_Impl::~ACE_Asynch_Connect_Result_Impl (void)
-{
-}
-
-ACE_Asynch_Accept_Impl::~ACE_Asynch_Accept_Impl (void)
-{
-}
-
-ACE_Asynch_Connect_Impl::~ACE_Asynch_Connect_Impl (void)
-{
-}
-
-ACE_Asynch_Transmit_File_Impl::~ACE_Asynch_Transmit_File_Impl (void)
-{
-}
-
-ACE_Asynch_Transmit_File_Result_Impl::~ACE_Asynch_Transmit_File_Result_Impl (void)
-{
-}
-
-ACE_Asynch_Read_Dgram_Impl::~ACE_Asynch_Read_Dgram_Impl (void)
-{
-}
-
-ACE_Asynch_Read_Dgram_Impl::ACE_Asynch_Read_Dgram_Impl (void)
-{
-}
-
-ACE_Asynch_Write_Dgram_Impl::~ACE_Asynch_Write_Dgram_Impl (void)
-{
-}
-
-ACE_Asynch_Write_Dgram_Impl::ACE_Asynch_Write_Dgram_Impl (void)
-{
-}
-
-//***********************************************
-
-ACE_Asynch_Read_Dgram_Result_Impl::~ACE_Asynch_Read_Dgram_Result_Impl (void)
-{
-}
-
-ACE_Asynch_Read_Dgram_Result_Impl::ACE_Asynch_Read_Dgram_Result_Impl (void)
-{
-}
-
-//***********************************************
-
-ACE_Asynch_Write_Dgram_Result_Impl::~ACE_Asynch_Write_Dgram_Result_Impl (void)
-{
-}
-
-ACE_Asynch_Write_Dgram_Result_Impl::ACE_Asynch_Write_Dgram_Result_Impl (void)
-{
-}
-
-
-
-
-#endif /* ACE_WIN32 || ACE_HAS_WINCE */
diff --git a/ace/Asynch_IO_Impl.h b/ace/Asynch_IO_Impl.h
deleted file mode 100644
index f28823f4eb0..00000000000
--- a/ace/Asynch_IO_Impl.h
+++ /dev/null
@@ -1,820 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Asynch_IO_Impl.h
- *
- * $Id$
- *
- *
- * This class contains asbtract base classes for all the concrete
- * implementation classes for the various asynchronous operations
- * that are used with the Praoctor.
- *
- *
- * @author Irfan Pyarali (irfan@cs.wustl.edu)
- * @author Tim Harrison (harrison@cs.wustl.edu)
- * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
- * @author Roger Tragin <r.tragin@computer.org>
- * @author Alexander Libman <alibman@ihug.com.au>
- */
-//=============================================================================
-
-#ifndef ACE_ASYNCH_IO_IMPL_H
-#define ACE_ASYNCH_IO_IMPL_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS))
-// This only works on Win32 platforms and on Unix platforms supporting
-// aio calls.
-
-#include "ace/Asynch_IO.h"
-
-// Forward declaration.
-class ACE_Proactor_Impl;
-
-/**
- * @class ACE_Asynch_Result_Impl
- *
- * @brief Abstract base class for the all the classes that provide
- * concrete implementations for ACE_Asynch_Result.
- *
- */
-class ACE_Export ACE_Asynch_Result_Impl
-{
-public:
- virtual ~ACE_Asynch_Result_Impl (void);
-
- /// Number of bytes transferred by the operation.
- virtual size_t bytes_transferred (void) const = 0;
-
- /// ACT associated with the operation.
- virtual const void *act (void) const = 0;
-
- /// Did the operation succeed?
- virtual int success (void) const = 0;
-
- /// This ACT is not the same as the ACT associated with the
- /// asynchronous operation.
- virtual const void *completion_key (void) const = 0;
-
- /// Error value if the operation fail.
- virtual u_long error (void) const = 0;
-
- /// Event associated with the OVERLAPPED structure.
- virtual ACE_HANDLE event (void) const = 0;
-
- /// This really make sense only when doing file I/O.
- virtual u_long offset (void) const = 0;
- virtual u_long offset_high (void) const = 0;
-
- /// Priority of the operation.
- virtual int priority (void) const = 0;
-
- /**
- * POSIX4 real-time signal number to be used for the
- * operation. <signal_number> ranges from SIGRTMIN to SIGRTMAX. By
- * default, SIGRTMIN is used to issue <aio_> calls. This is a no-op
- * on non-POSIX4 systems and returns 0.
- */
- virtual int signal_number (void) const = 0;
-
- // protected:
- //
- // These two should really be protected. But sometimes it
- // simplifies code to be able to "fake" a result. Use carefully.
- /// This is called when the asynchronous operation completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error = 0) = 0;
-
- /// Post <this> to the Proactor's completion port.
- virtual int post_completion (ACE_Proactor_Impl *proactor) = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Result_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Operation_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Operation.
- */
-class ACE_Export ACE_Asynch_Operation_Impl
-{
-public:
- virtual ~ACE_Asynch_Operation_Impl (void);
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- virtual int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor) = 0;
-
- /**
- * This cancels all pending accepts operations that were issued by
- * the calling thread. The function does not cancel asynchronous
- * operations issued by other threads.
- */
- virtual int cancel (void) = 0;
-
- // = Access methods.
-
- /// Return the underlying proactor.
- virtual ACE_Proactor* proactor (void) const = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Operation_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Read_Stream_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Read_Stream
- *
- */
-class ACE_Export ACE_Asynch_Read_Stream_Impl : public virtual ACE_Asynch_Operation_Impl
-{
-public:
- virtual ~ACE_Asynch_Read_Stream_Impl (void);
-
- /// This starts off an asynchronous read. Upto <bytes_to_read> will
- /// be read and stored in the <message_block>.
- virtual int read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number) = 0;
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
- /**
- * Same as above but with scatter support, through chaining of composite
- * message blocks using the continuation field.
- */
- virtual int readv (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number) = 0;
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Read_Stream_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Read_Stream_Result_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Read_Stream::Result class.
- *
- */
-class ACE_Export ACE_Asynch_Read_Stream_Result_Impl : public virtual ACE_Asynch_Result_Impl
-{
-public:
- virtual ~ACE_Asynch_Read_Stream_Result_Impl (void);
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous read.
- virtual size_t bytes_to_read (void) const = 0;
-
- /// Message block which contains the read data.
- virtual ACE_Message_Block &message_block (void) const = 0;
-
- /// I/O handle used for reading.
- virtual ACE_HANDLE handle (void) const = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Read_Stream_Result_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Write_Stream_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Write_Stream class.
- *
- */
-class ACE_Export ACE_Asynch_Write_Stream_Impl : public virtual ACE_Asynch_Operation_Impl
-{
-public:
- virtual ~ACE_Asynch_Write_Stream_Impl (void);
-
- /// This starts off an asynchronous write. Upto <bytes_to_write>
- /// will be written from the <message_block>.
- virtual int write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number) = 0;
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
- /**
- * Same as above but with gather support, through chaining of composite
- * message blocks using the continuation field.
- */
- virtual int writev (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number) = 0;
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Write_Stream_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Write_Stream_Result_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Write_Stream::Result.
- *
- */
-class ACE_Export ACE_Asynch_Write_Stream_Result_Impl : public virtual ACE_Asynch_Result_Impl
-{
-public:
- virtual ~ACE_Asynch_Write_Stream_Result_Impl (void);
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous write.
- virtual size_t bytes_to_write (void) const = 0;
-
- /// Message block that contains the data to be written.
- virtual ACE_Message_Block &message_block (void) const = 0;
-
- /// I/O handle used for writing.
- virtual ACE_HANDLE handle (void) const = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Write_Stream_Result_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Read_File_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Read_File::Result.
- *
- */
-class ACE_Export ACE_Asynch_Read_File_Impl : public virtual ACE_Asynch_Read_Stream_Impl
-{
-public:
- virtual ~ACE_Asynch_Read_File_Impl (void);
-
- /**
- * This starts off an asynchronous read. Upto <bytes_to_read> will
- * be read and stored in the <message_block>. The read will start
- * at <offset> from the beginning of the file.
- */
- virtual int read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number) = 0;
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
- /**
- * Same as above but with scatter support, through chaining of composite
- * message blocks using the continuation field.
- * NOTE: In win32 Each data block payload must be at least the size of a system
- * memory page and must be aligned on a system memory page size boundary
- */
- virtual int readv (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number) = 0;
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */
-
- // We don;t need to redefine the following function again because it
- // has already been defined in ACE_Asynch_Read_Stream_Impl. But we
- // still need it here to supress a overwriting pure virtual function
- // warning in KAI compiler.
- /// This starts off an asynchronous read. Upto <bytes_to_read> will
- /// be read and stored in the <message_block>.
- virtual int read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number) = 0;
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
- /**
- * Same as above but with scatter support, through chaining of composite
- * message blocks using the continuation field.
- */
- virtual int readv (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number) = 0;
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Read_File_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Read_File_Result_Impl
- *
- * @brief This is the abstract base class for all the concrete
- * implementation classes for ACE_Asynch_Read_File::Result.
- *
- */
-class ACE_Export ACE_Asynch_Read_File_Result_Impl : public virtual ACE_Asynch_Read_Stream_Result_Impl
-{
-public:
- /// Destructor.
- virtual ~ACE_Asynch_Read_File_Result_Impl (void);
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Read_File_Result_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Write_File_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Write_File.
- *
- */
-class ACE_Export ACE_Asynch_Write_File_Impl : public virtual ACE_Asynch_Write_Stream_Impl
-{
-public:
- virtual ~ACE_Asynch_Write_File_Impl (void);
-
- /**
- * This starts off an asynchronous write. Upto <bytes_to_write>
- * will be write and stored in the <message_block>. The write will
- * start at <offset> from the beginning of the file.
- */
- virtual int write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number) = 0;
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
- /**
- * Same as above but with gather support, through chaining of composite
- * message blocks using the continuation field.
- * NOTE: In win32 Each data block payload must be at least the size of a system
- * memory page and must be aligned on a system memory page size boundary
- */
- virtual int writev (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number) = 0;
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */
-
-
- // We don;t need to redefine the following function again because it
- // has already been defined in ACE_Asynch_Write_Stream_Impl. But we
- // still need it here to supress a overwriting pure virtual function
- // warning in KAI compiler.
- /// This starts off an asynchronous write. Upto <bytes_to_write>
- /// will be written from the <message_block>.
- virtual int write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number) = 0;
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
- /**
- * Same as above but with gather support, through chaining of composite
- * message blocks using the continuation field.
- */
- virtual int writev (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number) = 0;
-#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Write_File_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Write_File_Result_Impl
- *
- * @brief This is the abstract base class for all the concrete
- * implementation classes that provide different implementations
- * for the ACE_Asynch_Write_File::Result.
- *
- */
-class ACE_Export ACE_Asynch_Write_File_Result_Impl : public virtual ACE_Asynch_Write_Stream_Result_Impl
-{
-public:
- virtual ~ACE_Asynch_Write_File_Result_Impl (void);
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Write_File_Result_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Accept_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Accept.
- *
- */
-class ACE_Export ACE_Asynch_Accept_Impl : public virtual ACE_Asynch_Operation_Impl
-{
-public:
- virtual ~ACE_Asynch_Accept_Impl (void);
-
- /**
- * This starts off an asynchronous accept. The asynchronous accept
- * call also allows any initial data to be returned to the
- * <handler>. Upto <bytes_to_read> will be read and stored in the
- * <message_block>. The <accept_handle> will be used for the
- * <accept> call. If (<accept_handle> == INVALID_HANDLE), a new
- * handle will be created.
- *
- * <message_block> must be specified. This is because the address of
- * the new connection is placed at the end of this buffer.
- */
- virtual int accept (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- ACE_HANDLE accept_handle,
- const void *act,
- int priority,
- int signal_number) = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Accept_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Accept_Result_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Accept.
- *
- */
-class ACE_Export ACE_Asynch_Accept_Result_Impl : public virtual ACE_Asynch_Result_Impl
-{
-public:
- virtual ~ACE_Asynch_Accept_Result_Impl (void);
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous accept.
- virtual size_t bytes_to_read (void) const = 0;
-
- /// Message block which contains the read data.
- virtual ACE_Message_Block &message_block (void) const = 0;
-
- /// I/O handle used for accepting new connections.
- virtual ACE_HANDLE listen_handle (void) const = 0;
-
- /// I/O handle for the new connection.
- virtual ACE_HANDLE accept_handle (void) const = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Accept_Result_Impl (void);
-};
-
-
-/**
- * @class ACE_Asynch_Connect_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Connect.
- *
- */
-class ACE_Export ACE_Asynch_Connect_Impl : public virtual ACE_Asynch_Operation_Impl
-{
-public:
- virtual ~ACE_Asynch_Connect_Impl (void);
-
- /**
- * This starts off an asynchronous connect
- */
- virtual int connect (ACE_HANDLE connect_handle,
- const ACE_Addr & remote_sap,
- const ACE_Addr & local_sap,
- int reuse_addr,
- const void *act,
- int priority,
- int signal_number) = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Connect_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Connect_Result_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Connect.
- *
- */
-class ACE_Export ACE_Asynch_Connect_Result_Impl : public virtual ACE_Asynch_Result_Impl
-{
-public:
- virtual ~ACE_Asynch_Connect_Result_Impl (void);
-
- /// I/O handle for the connection.
- virtual ACE_HANDLE connect_handle (void) const = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Connect_Result_Impl (void);
-};
-
-
-/**
- * @class ACE_Asynch_Transmit_File_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Transmit_File.
- *
- */
-class ACE_Asynch_Transmit_File_Impl : public virtual ACE_Asynch_Operation_Impl
-{
-public:
- virtual ~ACE_Asynch_Transmit_File_Impl (void);
-
- /// This starts off an asynchronous transmit file.
- virtual int transmit_file (ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- int priority,
- int signal_number) = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Transmit_File_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Transmit_File_Result_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Transmit_File::Result.
- *
- */
-class ACE_Export ACE_Asynch_Transmit_File_Result_Impl : public virtual ACE_Asynch_Result_Impl
-{
-public:
- virtual ~ACE_Asynch_Transmit_File_Result_Impl (void);
-
- /// Socket used for transmitting the file.
- virtual ACE_HANDLE socket (void) const = 0;
-
- /// File from which the data is read.
- virtual ACE_HANDLE file (void) const = 0;
-
- /// Header and trailer data associated with this transmit file.
- virtual ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer (void) const = 0;
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous transmit file.
- virtual size_t bytes_to_write (void) const = 0;
-
- /// Number of bytes per send requested at the start of the transmit
- /// file.
- virtual size_t bytes_per_send (void) const = 0;
-
- /// Flags which were passed into transmit file.
- virtual u_long flags (void) const = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Transmit_File_Result_Impl (void);
-};
-
-
-/**
- * @class ACE_Asynch_Read_Dgram_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Read_Dgram
- *
- */
-class ACE_Export ACE_Asynch_Read_Dgram_Impl : public virtual ACE_Asynch_Operation_Impl
-{
-public:
- virtual ~ACE_Asynch_Read_Dgram_Impl (void);
-
- /** This starts off an asynchronous read. Upto
- * <message_block->total_size()> will be read and stored in the
- * <message_block>. <message_block>'s <wr_ptr> will be updated to reflect
- * the added bytes if the read operation is successful completed.
- * Return code of 1 means immediate success and <number_of_bytes_recvd>
- * will contain number of bytes read. The <ACE_Handler::handle_read_dgram>
- * method will still be called. Return code of 0 means the IO will
- * complete proactively. Return code of -1 means there was an error, use
- * errno to get the error code.
- *
- * Scatter/gather is supported on WIN32 by using the <message_block->cont()>
- * method. Up to ACE_IOV_MAX <message_block>'s are supported. Upto
- * <message_block->size()> bytes will be read into each <message block> for
- * a total of <message_block->total_size()> bytes. All <message_block>'s
- * <wr_ptr>'s will be updated to reflect the added bytes for each
- * <message_block>
- *
- * Priority of the operation is specified by <priority>. On POSIX4-Unix,
- * this is supported. Works like <nice> in Unix. Negative values are not
- * allowed. 0 means priority of the operation same as the process
- * priority. 1 means priority of the operation is one less than
- * process. And so forth. On Win32, <priority> is a no-op.
- * <signal_number> is the POSIX4 real-time signal number to be used
- * for the operation. <signal_number> ranges from ACE_SIGRTMIN to
- * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems.
- */
- virtual ssize_t recv (ACE_Message_Block *message_block,
- size_t &number_of_bytes_recvd,
- int flags,
- int protocol_family,
- const void *act,
- int priority,
- int signal_number) = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Read_Dgram_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Read_Dgram_Result_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Read_Dgram::Result class.
- *
- */
-class ACE_Export ACE_Asynch_Read_Dgram_Result_Impl : public virtual ACE_Asynch_Result_Impl
-{
-public:
- virtual ~ACE_Asynch_Read_Dgram_Result_Impl (void);
-
- /// Message block which contains the read data
- virtual ACE_Message_Block *message_block (void) const = 0;
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous read.
- virtual size_t bytes_to_read (void) const = 0;
-
- /// The address of where the packet came from
- virtual int remote_address (ACE_Addr& addr) const = 0;
-
- /// The flags used in the read
- virtual int flags (void) const = 0;
-
- /// I/O handle used for reading.
- virtual ACE_HANDLE handle (void) const = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Read_Dgram_Result_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Write_Dgram_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Write_Dgram class.
- *
- */
-class ACE_Export ACE_Asynch_Write_Dgram_Impl : public virtual ACE_Asynch_Operation_Impl
-{
-public:
- virtual ~ACE_Asynch_Write_Dgram_Impl (void);
-
- /** This starts off an asynchronous send. Upto
- * <message_block->total_length()> will be sent. <message_block>'s
- * <rd_ptr> will be updated to reflect the sent bytes if the send operation
- * is successful completed.
- * Return code of 1 means immediate success and <number_of_bytes_sent>
- * is updated to number of bytes sent. The <ACE_Handler::handle_write_dgram>
- * method will still be called. Return code of 0 means the IO will
- * complete proactively. Return code of -1 means there was an error, use
- * errno to get the error code.
- *
- * Scatter/gather is supported on WIN32 by using the <message_block->cont()>
- * method. Up to ACE_IOV_MAX <message_block>'s are supported. Upto
- * <message_block->length()> bytes will be sent from each <message block>
- * for a total of <message_block->total_length()> bytes. All
- * <message_block>'s <rd_ptr>'s will be updated to reflect the bytes sent
- * from each <message_block>.
- *
- * Priority of the operation is specified by <priority>. On POSIX4-Unix,
- * this is supported. Works like <nice> in Unix. Negative values are not
- * allowed. 0 means priority of the operation same as the process
- * priority. 1 means priority of the operation is one less than
- * process. And so forth. On Win32, this argument is a no-op.
- * <signal_number> is the POSIX4 real-time signal number to be used
- * for the operation. <signal_number> ranges from ACE_SIGRTMIN to
- * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems.
- */
- virtual ssize_t send (ACE_Message_Block *message_block,
- size_t &number_of_bytes_sent,
- int flags,
- const ACE_Addr &addr,
- const void *act,
- int priority,
- int signal_number) = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Write_Dgram_Impl (void);
-};
-
-/**
- * @class ACE_Asynch_Write_Dgram_Result_Impl
- *
- * @brief Abstract base class for all the concrete implementation
- * classes that provide different implementations for the
- * ACE_Asynch_Write_Dgram::Result class.
- *
- */
-class ACE_Export ACE_Asynch_Write_Dgram_Result_Impl : public virtual ACE_Asynch_Result_Impl
-{
-public:
- virtual ~ACE_Asynch_Write_Dgram_Result_Impl (void);
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous write.
- virtual size_t bytes_to_write (void) const = 0;
-
- /// Message block which contains the sent data
- virtual ACE_Message_Block *message_block (void) const = 0;
-
- /// The flags using in the write
- virtual int flags (void) const = 0;
-
- /// I/O handle used for writing.
- virtual ACE_HANDLE handle (void) const = 0;
-
-protected:
- /// Do-nothing constructor.
- ACE_Asynch_Write_Dgram_Result_Impl (void);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Asynch_IO_Impl.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_AIO_CALLS || !ACE_HAS_WINCE && ACE_WIN32 */
-#include "ace/post.h"
-#endif /* ACE_ASYNCH_IO_IMPL_H */
diff --git a/ace/Asynch_IO_Impl.i b/ace/Asynch_IO_Impl.i
deleted file mode 100644
index 3d61fae7942..00000000000
--- a/ace/Asynch_IO_Impl.i
+++ /dev/null
@@ -1,100 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_Asynch_Result_Impl::ACE_Asynch_Result_Impl (void)
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Operation_Impl::ACE_Asynch_Operation_Impl (void)
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Read_Stream_Impl::ACE_Asynch_Read_Stream_Impl (void)
- : ACE_Asynch_Operation_Impl ()
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Read_Stream_Result_Impl::ACE_Asynch_Read_Stream_Result_Impl (void)
- : ACE_Asynch_Result_Impl ()
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Write_Stream_Impl::ACE_Asynch_Write_Stream_Impl (void)
- : ACE_Asynch_Operation_Impl ()
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Write_Stream_Result_Impl::ACE_Asynch_Write_Stream_Result_Impl (void)
- : ACE_Asynch_Result_Impl ()
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Read_File_Impl::ACE_Asynch_Read_File_Impl (void)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Read_Stream_Impl ()
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Read_File_Result_Impl::ACE_Asynch_Read_File_Result_Impl (void)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Read_Stream_Result_Impl ()
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Write_File_Impl::ACE_Asynch_Write_File_Impl (void)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Write_Stream_Impl ()
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Write_File_Result_Impl::ACE_Asynch_Write_File_Result_Impl (void)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Write_Stream_Result_Impl ()
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Accept_Impl::ACE_Asynch_Accept_Impl (void)
- : ACE_Asynch_Operation_Impl ()
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Accept_Result_Impl::ACE_Asynch_Accept_Result_Impl (void)
- : ACE_Asynch_Result_Impl ()
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Connect_Impl::ACE_Asynch_Connect_Impl (void)
- : ACE_Asynch_Operation_Impl ()
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Connect_Result_Impl::ACE_Asynch_Connect_Result_Impl (void)
- : ACE_Asynch_Result_Impl ()
-{
-}
-
-
-ACE_INLINE
-ACE_Asynch_Transmit_File_Impl::ACE_Asynch_Transmit_File_Impl (void)
- : ACE_Asynch_Operation_Impl ()
-{
-}
-
-ACE_INLINE
-ACE_Asynch_Transmit_File_Result_Impl::ACE_Asynch_Transmit_File_Result_Impl (void)
- : ACE_Asynch_Result_Impl ()
-{
-}
diff --git a/ace/Asynch_Pseudo_Task.cpp b/ace/Asynch_Pseudo_Task.cpp
deleted file mode 100644
index 1e795b8c7e9..00000000000
--- a/ace/Asynch_Pseudo_Task.cpp
+++ /dev/null
@@ -1,313 +0,0 @@
-// $Id$
-
-#include "ace/Asynch_Pseudo_Task.h"
-
-ACE_RCSID(ace, Asynch_Pseudo_Task, "$Id$")
-
-ACE_Asynch_Pseudo_Task::ACE_Asynch_Pseudo_Task()
- : flg_active_ (0),
- select_reactor_ (), // should be initialized before reactor_
- reactor_ (&select_reactor_, 0), // don't delete implementation
- token_ (select_reactor_.lock ()), // we can use reactor token
- finish_count_ (0)
-{
-}
-
-ACE_Asynch_Pseudo_Task::~ACE_Asynch_Pseudo_Task()
-{
- stop();
-}
-
-int
-ACE_Asynch_Pseudo_Task::is_active (void)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_Lock, ace_mon, this->token_, -1));
- return flg_active_;
-}
-
-int
-ACE_Asynch_Pseudo_Task::start (void)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_Lock, ace_mon, this->token_, -1));
-
- if (this->flg_active_)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:%p\n"),
- ACE_LIB_TEXT ("ACE_Asynch_Pseudo_Task::start already started")),
- -1);
-
- if (this->reactor_.initialized () == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:%p\n"),
- ACE_LIB_TEXT ("ACE_Asynch_Pseudo_Task::start reactor is not initialized")),
- -1);
-
-
- if (this->activate (THR_NEW_LWP | THR_JOINABLE, 1) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:%p\n"),
- ACE_LIB_TEXT ("ACE_Asynch_Pseudo_Task::start failed")),
- -1);
-
- this->flg_active_ = 1;
- return 0;
-}
-
-int
-ACE_Asynch_Pseudo_Task::stop (void)
-{
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Lock, ace_mon, this->token_, -1));
-
- if (this->flg_active_ == 0) // already stopped
- return 0;
-
- reactor_.end_reactor_event_loop ();
- }
-
- int rc = this->wait ();
-
- if (rc != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:%p\n"),
- ACE_LIB_TEXT ("ACE_Asynch_Pseudo_Task::stop failed")),
- -1);
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Lock, ace_mon, this->token_, -1));
- this->flg_active_ = 0;
-
- if (this->reactor_.initialized ())
- this->reactor_.close ();
-
- while (finish_count_ > 0)
- {
- ACE_MT (ace_mon.release ());
- finish_event_.wait ();
-
- ACE_MT (ace_mon.acquire ());
- finish_event_.reset ();
- }
- }
-
- return rc;
-}
-
-int
-ACE_Asynch_Pseudo_Task::lock_finish (void)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_Lock, ace_mon, this->token_, -1));
- finish_count_ ++;
- return 0;
-}
-
-int
-ACE_Asynch_Pseudo_Task::unlock_finish (void)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_Lock, ace_mon, this->token_, -1));
-
- --finish_count_;
- finish_event_.signal ();
-
- return 0;
-}
-
-int
-ACE_Asynch_Pseudo_Task::svc (void)
-{
-#if !defined (ACE_WIN32)
-
- sigset_t RT_signals;
-
- if (sigemptyset (&RT_signals) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Error:(%P | %t):%p\n"),
- ACE_LIB_TEXT ("sigemptyset failed")));
-
- int member = 0;
-
- for (int si = ACE_SIGRTMIN; si <= ACE_SIGRTMAX; si++)
- {
- member = sigismember (& RT_signals , si);
- if (member == 1)
- {
- sigaddset (&RT_signals, si);
- }
- }
-
- if (ACE_OS::pthread_sigmask (SIG_BLOCK, &RT_signals, 0) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Error:(%P | %t):%p\n"),
- ACE_LIB_TEXT ("pthread_sigmask failed")));
-#endif
-
- reactor_.owner (ACE_Thread::self());
-
- reactor_.run_reactor_event_loop ();
-
- return 0;
-}
-
-
-
-int
-ACE_Asynch_Pseudo_Task::register_io_handler (ACE_HANDLE handle,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask,
- int flg_suspend)
-{
- // Return codes :
- // 0 success
- // -1 reactor errors
- // -2 task not active
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Lock, ace_mon, this->token_, -1));
-
- if (this->flg_active_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_Asynch_Pseudo_Task::register_io_handler \n")
- ACE_LIB_TEXT ("task not active \n")),
- -2);
-
- // Register the handler with the reactor.
- int retval = this->reactor_.register_handler (handle, handler, mask);
-
- if (retval == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_Asynch_Pseudo_Task::register_io_handler \n")
- ACE_LIB_TEXT ("register_handler failed \n")),
- -1);
-
- if (flg_suspend == 0 )
- return 0;
-
- // Suspend the <handle> now. Enable only when the <accept> is issued
- // by the application.
- retval = this->reactor_.suspend_handler (handle);
-
- if (retval == -1)
- {
- this->reactor_.remove_handler (handle,
- ACE_Event_Handler::ALL_EVENTS_MASK
- | ACE_Event_Handler::DONT_CALL);
-
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_Asynch_Pseudo_Task::register_io_handler \n")
- ACE_LIB_TEXT ("suspend_handler failed \n")),
- -1);
- }
-
- return 0;
-}
-
-int
-ACE_Asynch_Pseudo_Task::remove_io_handler (ACE_HANDLE handle)
-{
- // Return codes :
- // 0 success
- // -1 reactor errors
- // -2 task not active
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Lock, ace_mon, this->token_, -1));
-
- if (this->flg_active_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_Asynch_Pseudo_Task::remove_io_handler \n")
- ACE_LIB_TEXT ("task not active \n")),
- -2);
-
- int retval =
- this->reactor_.remove_handler (handle ,
- ACE_Event_Handler::ALL_EVENTS_MASK
- | ACE_Event_Handler::DONT_CALL);
- if (retval == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_Asynch_Pseudo_Task::remove_io_handler \n")
- ACE_LIB_TEXT ("remove_handler failed \n")),
- -1);
-
- return 0;
-}
-
-int
-ACE_Asynch_Pseudo_Task::remove_io_handler (ACE_Handle_Set &set)
-{
- // Return codes :
- // 0 success
- // -1 reactor errors
- // -2 task not active
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Lock, ace_mon, this->token_, -1));
-
- if (this->flg_active_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_Asynch_Pseudo_Task::remove_io_handler \n")
- ACE_LIB_TEXT ("task not active \n")),
- -2);
-
- int retval =
- this->reactor_.remove_handler (set ,
- ACE_Event_Handler::ALL_EVENTS_MASK
- | ACE_Event_Handler::DONT_CALL);
- if (retval == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_Asynch_Pseudo_Task::remove_io_handler \n")
- ACE_LIB_TEXT ("remove_handler failed \n")),
- -1);
-
- return 0;
-}
-
-int
-ACE_Asynch_Pseudo_Task::suspend_io_handler (ACE_HANDLE handle)
-{
- // Return codes :
- // 0 success
- // -1 reactor errors
- // -2 task not active
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Lock, ace_mon, this->token_, -1));
-
- if (this->flg_active_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_Asynch_Pseudo_Task::suspend_io_handler \n")
- ACE_LIB_TEXT ("task not active \n")),
- -2);
-
- int retval = this->reactor_.suspend_handler (handle);
-
- if (retval == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_Asynch_Pseudo_Task::suspend_io_handler \n")
- ACE_LIB_TEXT ("suspend_handler failed \n")),
- -1);
-
- return 0;
-}
-
-int
-ACE_Asynch_Pseudo_Task::resume_io_handler (ACE_HANDLE handle)
-{
- // Return codes :
- // 0 success
- // -1 reactor errors
- // -2 task not active
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Lock, ace_mon, this->token_, -1));
-
- if (this->flg_active_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_Asynch_Pseudo_Task::resume_io_handler \n")
- ACE_LIB_TEXT ("task not active \n")),
- -2);
-
- int retval = this->reactor_.resume_handler (handle);
-
- if (retval == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_Asynch_Pseudo_Task::resume_io_handler \n")
- ACE_LIB_TEXT ("resume_handler failed \n")),
- -1);
-
- return 0;
-}
diff --git a/ace/Asynch_Pseudo_Task.h b/ace/Asynch_Pseudo_Task.h
deleted file mode 100644
index 66d1866a664..00000000000
--- a/ace/Asynch_Pseudo_Task.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Asynch_Pseudo_Task.h
- *
- * $Id$
- *
- * @author Alexander Libman <alibman@ihug.com.au>
- */
-//=============================================================================
-
-#ifndef ACE_ASYNCH_PSEUDO_TASK_H
-#define ACE_ASYNCH_PSEUDO_TASK_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Reactor.h"
-#include "ace/Select_Reactor.h"
-#include "ace/Task.h"
-
-
-/**
- * @class ACE_Asynch_Pseudo_Task
- *
- */
-class ACE_Export ACE_Asynch_Pseudo_Task : public ACE_Task<ACE_SYNCH>
-{
- friend class ACE_POSIX_Asynch_Accept;
- friend class ACE_POSIX_Asynch_Connect;
- friend class ACE_WIN32_Asynch_Connect;
-
-public:
-
- ACE_Asynch_Pseudo_Task();
- virtual ~ACE_Asynch_Pseudo_Task();
-
- int start (void);
- int stop (void);
-
- virtual int svc (void);
-
- int is_active (void);
-
- int register_io_handler (ACE_HANDLE handle,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask,
- int flg_suspend);
-
- int remove_io_handler (ACE_HANDLE handle);
- int remove_io_handler (ACE_Handle_Set &set);
- int resume_io_handler (ACE_HANDLE handle);
- int suspend_io_handler (ACE_HANDLE handle);
-
-protected:
-
- int lock_finish (void);
- int unlock_finish (void);
-
- int flg_active_;
-
- ACE_Select_Reactor select_reactor_;
- // should be initialized before reactor_
-
- ACE_Reactor reactor_;
-
- ACE_Lock &token_;
-
- int finish_count_;
- ACE_Manual_Event finish_event_;
-};
-
-#include "ace/post.h"
-#endif /* ACE_ASYNCH_PSEUDO_TASK_H */
diff --git a/ace/Atomic_Op.cpp b/ace/Atomic_Op.cpp
deleted file mode 100644
index 371bb372ce4..00000000000
--- a/ace/Atomic_Op.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-// $Id$
-
-#include "ace/Atomic_Op.h"
-#include "ace/OS.h"
-
-ACE_RCSID(ace, Atomic_Op, "$Id$")
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Atomic_Op.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_HAS_BUILTIN_ATOMIC_OP)
-
-long (*ACE_Atomic_Op<ACE_Thread_Mutex, long>::increment_fn_) (volatile long *) = 0;
-long (*ACE_Atomic_Op<ACE_Thread_Mutex, long>::decrement_fn_) (volatile long *) = 0;
-long (*ACE_Atomic_Op<ACE_Thread_Mutex, long>::exchange_fn_) (volatile long *, long) = 0;
-long (*ACE_Atomic_Op<ACE_Thread_Mutex, long>::exchange_add_fn_) (volatile long *, long) = 0;
-
-void
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::init_functions (void)
-{
- if (ACE_OS::num_processors () == 1)
- {
- increment_fn_ = single_cpu_increment;
- decrement_fn_ = single_cpu_decrement;
- exchange_fn_ = single_cpu_exchange;
- exchange_add_fn_ = single_cpu_exchange_add;
- }
- else
- {
- increment_fn_ = multi_cpu_increment;
- decrement_fn_ = multi_cpu_decrement;
- exchange_fn_ = multi_cpu_exchange;
- exchange_add_fn_ = multi_cpu_exchange_add;
- }
-}
-
-void
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#if defined (_MSC_VER)
-// Disable "no return value" warning, as we will be putting
-// the return values directly into the EAX register.
-#pragma warning (push)
-#pragma warning (disable: 4035)
-#endif /* _MSC_VER */
-
-long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::single_cpu_increment (volatile long *value)
-{
-#if defined (__GNUC__) && defined (ACE_HAS_PENTIUM)
- long tmp = 1;
- unsigned long addr = ACE_reinterpret_cast (unsigned long, value);
- asm( "xadd %0, (%1)" : "+r"(tmp) : "r"(addr) );
- return tmp + 1;
-#else /* __GNUC__ && ACE_HAS_PENTIUM */
- ACE_UNUSED_ARG (value);
- ACE_NOTSUP_RETURN (-1);
-#endif /* __GNUC__ && ACE_HAS_PENTIUM */
-}
-
-long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::single_cpu_decrement (volatile long *value)
-{
-#if defined (__GNUC__) && defined (ACE_HAS_PENTIUM)
- long tmp = -1;
- unsigned long addr = ACE_reinterpret_cast (unsigned long, value);
- asm( "xadd %0, (%1)" : "+r"(tmp) : "r"(addr) );
- return tmp - 1;
-#else /* __GNUC__ && ACE_HAS_PENTIUM */
- ACE_UNUSED_ARG (value);
- ACE_NOTSUP_RETURN (-1);
-#endif /* __GNUC__ && ACE_HAS_PENTIUM */
-}
-
-long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::single_cpu_exchange (
- volatile long *value,
- long rhs)
-{
-#if defined (__GNUC__) && defined (ACE_HAS_PENTIUM)
- unsigned long addr = ACE_reinterpret_cast (unsigned long, value);
- asm( "xchg %0, (%1)" : "+r"(rhs) : "r"(addr) );
- return rhs;
-#else /* __GNUC__ && ACE_HAS_PENTIUM */
- ACE_UNUSED_ARG (value);
- ACE_UNUSED_ARG (rhs);
- ACE_NOTSUP_RETURN (-1);
-#endif /* __GNUC__ && ACE_HAS_PENTIUM */
-}
-
-long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::single_cpu_exchange_add (volatile long *value,
- long rhs)
-{
-#if defined (__GNUC__) && defined (ACE_HAS_PENTIUM)
- unsigned long addr = ACE_reinterpret_cast (unsigned long, value);
- asm( "xadd %0, (%1)" : "+r"(rhs) : "r"(addr) );
- return rhs;
-#elif defined (WIN32) && !defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
-# if defined (_MSC_VER)
- __asm
- {
- mov eax, rhs
- mov edx, value
- xadd [edx], eax
- }
- // Return value is already in EAX register.
-# elif defined (__BORLANDC__)
- _EAX = rhs;
- _EDX = ACE_reinterpret_cast (unsigned long, value);
- __emit__(0x0F, 0xC1, 0x02); // xadd [edx], eax
- // Return value is already in EAX register.
-# else /* _MSC_VER */
- ACE_UNUSED_ARG (value);
- ACE_UNUSED_ARG (rhs);
- ACE_NOTSUP_RETURN (-1);
-# endif /* _MSC_VER */
-#else /* __GNUC__ && ACE_HAS_PENTIUM */
- ACE_UNUSED_ARG (value);
- ACE_UNUSED_ARG (rhs);
- ACE_NOTSUP_RETURN (-1);
-#endif /* __GNUC__ && ACE_HAS_PENTIUM */
-}
-
-long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::multi_cpu_increment (volatile long *value)
-{
-#if defined (__GNUC__) && defined (ACE_HAS_PENTIUM)
- long tmp = 1;
- unsigned long addr = ACE_reinterpret_cast (unsigned long, value);
- asm( "lock ; xadd %0, (%1)" : "+r"(tmp) : "r"(addr) );
- return tmp + 1;
-#else /* __GNUC__ && ACE_HAS_PENTIUM */
- ACE_UNUSED_ARG (value);
- ACE_NOTSUP_RETURN (-1);
-#endif /* __GNUC__ && ACE_HAS_PENTIUM */
-}
-
-long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::multi_cpu_decrement (volatile long *value)
-{
-#if defined (__GNUC__) && defined (ACE_HAS_PENTIUM)
- long tmp = -1;
- unsigned long addr = ACE_reinterpret_cast (unsigned long, value);
- asm( "lock ; xadd %0, (%1)" : "+r"(tmp) : "r"(addr) );
- return tmp - 1;
-#else /* __GNUC__ && ACE_HAS_PENTIUM */
- ACE_UNUSED_ARG (value);
- ACE_NOTSUP_RETURN (-1);
-#endif /* __GNUC__ && ACE_HAS_PENTIUM */
-}
-
-long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::multi_cpu_exchange (
- volatile long *value,
- long rhs)
-{
-#if defined (__GNUC__) && defined (ACE_HAS_PENTIUM)
- unsigned long addr = ACE_reinterpret_cast (unsigned long, value);
- // The XCHG instruction automatically follows LOCK semantics
- asm( "xchg %0, (%1)" : "+r"(rhs) : "r"(addr) );
- return rhs;
-#else /* __GNUC__ && ACE_HAS_PENTIUM */
- ACE_UNUSED_ARG (value);
- ACE_UNUSED_ARG (rhs);
- ACE_NOTSUP_RETURN (-1);
-#endif /* __GNUC__ && ACE_HAS_PENTIUM */
-}
-
-long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::multi_cpu_exchange_add (volatile long *value,
- long rhs)
-{
-#if defined (__GNUC__) && defined (ACE_HAS_PENTIUM)
- unsigned long addr = ACE_reinterpret_cast (unsigned long, value);
- asm( "lock ; xadd %0, (%1)" : "+r"(rhs) : "r"(addr) );
- return rhs;
-#elif defined (WIN32) && !defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
-# if defined (_MSC_VER)
- __asm
- {
- mov eax, rhs
- mov edx, value
- lock xadd [edx], eax
- }
- // Return value is already in EAX register.
-# elif defined (__BORLANDC__)
- _EAX = rhs;
- _EDX = ACE_reinterpret_cast (unsigned long, value);
- __emit__(0xF0, 0x0F, 0xC1, 0x02); // lock xadd [edx], eax
- // Return value is already in EAX register.
-# else /* _MSC_VER */
- ACE_UNUSED_ARG (value);
- ACE_UNUSED_ARG (rhs);
- ACE_NOTSUP_RETURN (-1);
-# endif /* _MSC_VER */
-#else /* __GNUC__ && ACE_HAS_PENTIUM */
- ACE_UNUSED_ARG (value);
- ACE_UNUSED_ARG (rhs);
- ACE_NOTSUP_RETURN (-1);
-#endif /* __GNUC__ && ACE_HAS_PENTIUM */
-}
-
-#if defined (_MSC_VER)
-#pragma warning (pop)
-#endif /* _MSC_VER */
-
-#endif /* ACE_HAS_BUILTIN_ATOMIC_OP */
-
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-# if !defined (ACE_HAS_BUILTIN_ATOMIC_OP)
-template class ACE_Atomic_Op<ACE_Thread_Mutex, long>;
-# endif /* !ACE_HAS_BUILTIN_ATOMIC_OP */
-template class ACE_Atomic_Op_Ex<ACE_Thread_Mutex, long>;
-# elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# if !defined (ACE_HAS_BUILTIN_ATOMIC_OP)
-# pragma instantiate ACE_Atomic_Op<ACE_Thread_Mutex, long>
-# endif /* !ACE_HAS_BUILTIN_ATOMIC_OP */
-# pragma instantiate ACE_Atomic_Op_Ex<ACE_Thread_Mutex, long>
-# endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /* ACE_HAS_THREADS */
diff --git a/ace/Atomic_Op.h b/ace/Atomic_Op.h
deleted file mode 100644
index c84697b6e12..00000000000
--- a/ace/Atomic_Op.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Atomic_Op.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_ATOMIC_OP_H
-#define ACE_ATOMIC_OP_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-
-
-// Include the templates here.
-#include "ace/Atomic_Op_T.h"
-
-// Determine whether builtin atomic op support is
-// available on this platform.
-#if defined (ACE_HAS_THREADS)
-# if defined (WIN32)
-# if defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
-# define ACE_HAS_BUILTIN_ATOMIC_OP
-# else /* ACE_HAS_INTERLOCKED_EXCHANGEADD */
- // Inline assembly emulation of InterlockedExchangeAdd
- // is currently only implemented for MSVC (x86 only) and Borland.
-# if (defined (_MSC_VER) && defined (_M_IX86)) || defined (__BORLANDC__)
-# define ACE_HAS_BUILTIN_ATOMIC_OP
-# endif /* _MSC_VER || __BORLANDC__ */
-# endif /* ACE_HAS_INTERLOCKED_EXCHANGEADD */
-# elif defined (__GNUC__) && defined (ACE_HAS_PENTIUM)
-# define ACE_HAS_BUILTIN_ATOMIC_OP
-# endif /* WIN32 */
-#endif /* ACE_HAS_THREADS */
-
-#if defined (ACE_HAS_BUILTIN_ATOMIC_OP)
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Atomic_Op<ACE_Thread_Mutex, long>
- *
- * @brief Specialization of ACE_Atomic_Op for platforms that
- * support atomic integer operations.
- *
- * Specialization of ACE_Atomic_Op for platforms that support atomic
- * integer operations.
- */
-class ACE_Export ACE_Atomic_Op<ACE_Thread_Mutex, long>
-{
-public:
- /// Initialize <value_> to 0.
- ACE_Atomic_Op (void);
-
- /// Initialize <value_> to c.
- ACE_Atomic_Op (long c);
-
- /// Manage copying...
- ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, long> &c);
-
- /// Atomically pre-increment <value_>.
- long operator++ (void);
-
- /// Atomically post-increment <value_>.
- long operator++ (int);
-
- /// Atomically increment <value_> by rhs.
- long operator+= (long rhs);
-
- /// Atomically pre-decrement <value_>.
- long operator-- (void);
-
- /// Atomically post-decrement <value_>.
- long operator-- (int);
-
- /// Atomically decrement <value_> by rhs.
- long operator-= (long rhs);
-
- /// Atomically compare <value_> with rhs.
- int operator== (long rhs) const;
-
- /// Atomically compare <value_> with rhs.
- int operator!= (long rhs) const;
-
- /// Atomically check if <value_> greater than or equal to rhs.
- int operator>= (long rhs) const;
-
- /// Atomically check if <value_> greater than rhs.
- int operator> (long rhs) const;
-
- /// Atomically check if <value_> less than or equal to rhs.
- int operator<= (long rhs) const;
-
- /// Atomically check if <value_> less than rhs.
- int operator< (long rhs) const;
-
- /// Atomically assign rhs to <value_>.
- void operator= (long rhs);
-
- /// Atomically assign <rhs> to <value_>.
- void operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, long> &rhs);
-
- /// Explicitly return <value_>.
- long value (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Explicitly return <value_> (by reference).
- volatile long &value_i (void);
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
- /// Used during ACE object manager initialization to optimize the fast
- /// atomic op implementation according to the number of CPUs.
- static void init_functions (void);
-
-private:
- // This function cannot be supported by this template specialization.
- // If you need access to an underlying lock, use the ACE_Atomic_Op_Ex
- // template instead.
- ACE_UNIMPLEMENTED_FUNC (ACE_Thread_Mutex &mutex (void))
-
- /// Current object decorated by the atomic op.
- volatile long value_;
-
- // Single-cpu atomic op implementations.
- static long single_cpu_increment (volatile long *value);
- static long single_cpu_decrement (volatile long *value);
- static long single_cpu_exchange (volatile long *value, long rhs);
- static long single_cpu_exchange_add (volatile long *value, long rhs);
-
- // Multi-cpu atomic op implementations.
- static long multi_cpu_increment (volatile long *value);
- static long multi_cpu_decrement (volatile long *value);
- static long multi_cpu_exchange (volatile long *value, long rhs);
- static long multi_cpu_exchange_add (volatile long *value, long rhs);
-
- // Pointers to selected atomic op implementations.
- static long (*increment_fn_) (volatile long *);
- static long (*decrement_fn_) (volatile long *);
- static long (*exchange_fn_) (volatile long *, long);
- static long (*exchange_add_fn_) (volatile long *, long);
-};
-#endif /* ACE_HAS_BUILTIN_ATOMIC_OP */
-
-
-#if defined (__ACE_INLINE__)
-#include "ace/Atomic_Op.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /*ACE_ATOMIC_OP_H*/
diff --git a/ace/Atomic_Op.i b/ace/Atomic_Op.i
deleted file mode 100644
index dfae7e33526..00000000000
--- a/ace/Atomic_Op.i
+++ /dev/null
@@ -1,150 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-
-#if defined (ACE_HAS_BUILTIN_ATOMIC_OP)
-
-ACE_INLINE
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (void)
- : value_ (0)
-{
-}
-
-ACE_INLINE
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (long c)
- : value_ (c)
-{
-}
-
-ACE_INLINE
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (
- const ACE_Atomic_Op<ACE_Thread_Mutex, long> &rhs)
- : value_ (rhs.value_)
-{
-}
-
-ACE_INLINE long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator++ (void)
-{
-#if defined (WIN32)
- return ::InterlockedIncrement (ACE_const_cast (long *, &this->value_));
-#else /* WIN32 */
- return (*increment_fn_) (&this->value_);
-#endif /* WIN32 */
-}
-
-ACE_INLINE long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator++ (int)
-{
- return ++*this - 1;
-}
-
-ACE_INLINE long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-- (void)
-{
-#if defined (WIN32)
- return ::InterlockedDecrement (ACE_const_cast (long *, &this->value_));
-#else /* WIN32 */
- return (*decrement_fn_) (&this->value_);
-#endif /* WIN32 */
-}
-
-ACE_INLINE long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-- (int)
-{
- return --*this + 1;
-}
-
-ACE_INLINE long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator+= (long rhs)
-{
-#if defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
- return ::InterlockedExchangeAdd (ACE_const_cast (long *, &this->value_),
- rhs) + rhs;
-#else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
- return (*exchange_add_fn_) (&this->value_, rhs) + rhs;
-#endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
-}
-
-ACE_INLINE long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-= (long rhs)
-{
-#if defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
- return ::InterlockedExchangeAdd (ACE_const_cast (long *, &this->value_),
- -rhs) - rhs;
-#else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
- return (*exchange_add_fn_) (&this->value_, -rhs) - rhs;
-#endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
-}
-
-ACE_INLINE int
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator== (long rhs) const
-{
- return (this->value_ == rhs);
-}
-
-ACE_INLINE int
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator!= (long rhs) const
-{
- return (this->value_ != rhs);
-}
-
-ACE_INLINE int
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator>= (long rhs) const
-{
- return (this->value_ >= rhs);
-}
-
-ACE_INLINE int
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator> (long rhs) const
-{
- return (this->value_ > rhs);
-}
-
-ACE_INLINE int
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator<= (long rhs) const
-{
- return (this->value_ <= rhs);
-}
-
-ACE_INLINE int
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator< (long rhs) const
-{
- return (this->value_ < rhs);
-}
-
-ACE_INLINE void
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (long rhs)
-{
-#if defined (WIN32)
- ::InterlockedExchange (ACE_const_cast (long *, &this->value_), rhs);
-#else /* WIN32 */
- (*exchange_fn_) (&this->value_, rhs);
-#endif /* WIN32 */
-}
-
-ACE_INLINE void
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (
- const ACE_Atomic_Op<ACE_Thread_Mutex, long> &rhs)
-{
-#if defined (WIN32)
- ::InterlockedExchange (ACE_const_cast (long *, &this->value_), rhs.value_);
-#else /* WIN32 */
- (*exchange_fn_) (&this->value_, rhs.value_);
-#endif /* WIN32 */
-}
-
-ACE_INLINE long
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::value (void) const
-{
- return this->value_;
-}
-
-ACE_INLINE volatile long &
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::value_i (void)
-{
- return this->value_;
-}
-
-#endif /* ACE_HAS_BUILTIN_ATOMIC_OP */
diff --git a/ace/Atomic_Op_T.cpp b/ace/Atomic_Op_T.cpp
deleted file mode 100644
index e9c7f5a9cb4..00000000000
--- a/ace/Atomic_Op_T.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef ACE_ATOMIC_OP_T_C
-#define ACE_ATOMIC_OP_T_C
-
-#include "ace/Atomic_Op_T.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Atomic_Op_T.i"
-#endif /* __ACE_INLINE__ */
-
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Atomic_Op_Ex)
-ACE_ALLOC_HOOK_DEFINE(ACE_Atomic_Op)
-
-ACE_RCSID(ace, Atomic_Op_T, "$Id$")
-
-// *************************************************
-template <class ACE_LOCK, class TYPE> ACE_LOCK &
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::mutex (void)
-{
- // ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::mutex");
- return this->mutex_;
-}
-
-template <class ACE_LOCK, class TYPE> void
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::dump (void) const
-{
- // ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->mutex_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class ACE_LOCK, class TYPE>
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::ACE_Atomic_Op_Ex
- (ACE_LOCK &mtx)
- : mutex_ (mtx),
- value_ (0)
-{
- // ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::ACE_Atomic_Op_Ex");
-}
-
-template <class ACE_LOCK, class TYPE>
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::ACE_Atomic_Op_Ex
- (ACE_LOCK &mtx, const TYPE &c)
- : mutex_ (mtx),
- value_ (c)
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::ACE_Atomic_Op_Ex");
-}
-
-// ****************************************************************
-
-template <class ACE_LOCK, class TYPE>
-ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op (void)
- : impl_ (this->own_mutex_)
-{
- // ACE_TRACE ("ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op");
-}
-
-template <class ACE_LOCK, class TYPE>
-ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op (const TYPE &c)
- : impl_ (this->own_mutex_, c)
-{
- // ACE_TRACE ("ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op");
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE
-ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op
- (const ACE_Atomic_Op<ACE_LOCK, TYPE> &rhs)
- : impl_ (this->own_mutex_, rhs.value ())
-{
-// ACE_TRACE ("ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op");
-}
-
-#endif /* ACE_ATOMIC_OP_T_C */
diff --git a/ace/Atomic_Op_T.h b/ace/Atomic_Op_T.h
deleted file mode 100644
index 47f9c9bce28..00000000000
--- a/ace/Atomic_Op_T.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Atomic_Op_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_ATOMIC_OP_T_H
-#define ACE_ATOMIC_OP_T_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-
-
-/**
- * @class ACE_Atomic_Op_Ex
- *
- * @brief Transparently parameterizes synchronization into basic
- * arithmetic operations.
- *
- * This class is described in an article in the July/August 1994
- * issue of the C++ Report magazine. It implements a
- * templatized version of the Decorator pattern from the GoF book.
- *
- * ACE_Atomic_Op_Ex objects must be constructed with a reference
- * to an existing lock. A single lock can be shared between
- * multiple ACE_Atomic_Op_Ex objects. If you do not require this
- * ability consider using the ACE_Atomic_Op class instead, which
- * may be able to take advantage of platform-specific
- * optimisations to provide atomic operations without requiring a
- * lock.
- */
-template <class ACE_LOCK, class TYPE>
-class ACE_Atomic_Op_Ex
-{
-public:
- // = Initialization methods.
-
- /// Initialize <value_> to 0.
- ACE_Atomic_Op_Ex (ACE_LOCK &mtx);
-
- /// Initialize <value_> to c.
- ACE_Atomic_Op_Ex (ACE_LOCK &mtx, const TYPE &c);
-
- // = Accessors.
-
- /// Atomically pre-increment <value_>.
- TYPE operator++ (void);
-
- /// Atomically post-increment <value_>.
- TYPE operator++ (int);
-
- /// Atomically increment <value_> by rhs.
- TYPE operator+= (const TYPE &rhs);
-
- /// Atomically pre-decrement <value_>.
- TYPE operator-- (void);
-
- /// Atomically post-decrement <value_>.
- TYPE operator-- (int);
-
- /// Atomically decrement <value_> by rhs.
- TYPE operator-= (const TYPE &rhs);
-
- /// Atomically compare <value_> with rhs.
- int operator== (const TYPE &rhs) const;
-
- /// Atomically compare <value_> with rhs.
- int operator!= (const TYPE &rhs) const;
-
- /// Atomically check if <value_> greater than or equal to rhs.
- int operator>= (const TYPE &rhs) const;
-
- /// Atomically check if <value_> greater than rhs.
- int operator> (const TYPE &rhs) const;
-
- /// Atomically check if <value_> less than or equal to rhs.
- int operator<= (const TYPE &rhs) const;
-
- /// Atomically check if <value_> less than rhs.
- int operator< (const TYPE &rhs) const;
-
- /// Atomically assign rhs to <value_>.
- void operator= (const TYPE &rhs);
-
- /// Atomically assign <rhs> to <value_>.
- void operator= (const ACE_Atomic_Op_Ex<ACE_LOCK, TYPE> &rhs);
-
- /// Explicitly return <value_>.
- TYPE value (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
- /// Manage copying...
- ACE_Atomic_Op_Ex (const ACE_Atomic_Op_Ex<ACE_LOCK, TYPE> &);
-
- /**
- * Returns a reference to the underlying <ACE_LOCK>. This makes it
- * possible to acquire the lock explicitly, which can be useful in
- * some cases if you instantiate the <ACE_Atomic_Op_Ex> with an
- * <ACE_Recursive_Mutex> or <ACE_Process_Mutex>. NOTE: the right
- * name would be lock_, but HP/C++ will choke on that!
- */
- ACE_LOCK &mutex (void);
-
- /**
- * Explicitly return <value_> (by reference). This gives the user
- * full, unrestricted access to the underlying value. This method
- * will usually be used in conjunction with explicit access to the
- * lock. Use with care ;-)
- */
- TYPE &value_i (void);
-
-private:
- /// Type of synchronization mechanism.
- ACE_LOCK &mutex_;
-
- /// Current object decorated by the atomic op.
- TYPE value_;
-};
-
-/**
- * @class ACE_Atomic_Op
- *
- * @brief Transparently parameterizes synchronization into basic
- * arithmetic operations.
- *
- * This class is described in an article in the July/August 1994
- * issue of the C++ Report magazine. It implements a
- * templatized version of the Decorator pattern from the GoF book.
- *
- * Certain platforms may provide a template specialization for
- * ACE_Atomic_Op <ACE_Thread_Mutex, long> that provides optimized
- * atomic integer operations without actually requiring a mutex.
- */
-template <class ACE_LOCK, class TYPE>
-class ACE_Atomic_Op
-{
-public:
- /// Initialize <value_> to 0.
- ACE_Atomic_Op (void);
-
- /// Initialize <value_> to c.
- ACE_Atomic_Op (const TYPE &c);
-
- /// Manage copying...
- ACE_Atomic_Op (const ACE_Atomic_Op<ACE_LOCK, TYPE> &c);
-
- /// Atomically assign rhs to <value_>.
- void operator= (const TYPE &rhs);
-
- /// Atomically assign <rhs> to <value_>.
- void operator= (const ACE_Atomic_Op<ACE_LOCK, TYPE> &rhs);
-
- /// Atomically pre-increment <value_>.
- TYPE operator++ (void);
-
- /// Atomically post-increment <value_>.
- TYPE operator++ (int);
-
- /// Atomically increment <value_> by rhs.
- TYPE operator+= (const TYPE &rhs);
-
- /// Atomically pre-decrement <value_>.
- TYPE operator-- (void);
-
- /// Atomically post-decrement <value_>.
- TYPE operator-- (int);
-
- /// Atomically decrement <value_> by rhs.
- TYPE operator-= (const TYPE &rhs);
-
- /// Atomically compare <value_> with rhs.
- int operator== (const TYPE &rhs) const;
-
- /// Atomically compare <value_> with rhs.
- int operator!= (const TYPE &rhs) const;
-
- /// Atomically check if <value_> greater than or equal to rhs.
- int operator>= (const TYPE &rhs) const;
-
- /// Atomically check if <value_> greater than rhs.
- int operator> (const TYPE &rhs) const;
-
- /// Atomically check if <value_> less than or equal to rhs.
- int operator<= (const TYPE &rhs) const;
-
- /// Atomically check if <value_> less than rhs.
- int operator< (const TYPE &rhs) const;
-
- /// Explicitly return <value_>.
- TYPE value (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /**
- * Returns a reference to the underlying <ACE_LOCK>. This makes it
- * possible to acquire the lock explicitly, which can be useful in
- * some cases if you instantiate the <ACE_Atomic_Op> with an
- * <ACE_Recursive_Mutex> or <ACE_Process_Mutex>.
- *
- * NOTE: This member function is deprecated and so may go away in
- * the future. If you need access to the underlying mutex, consider
- * using the ACE_Atomic_Op_Ex template instead.
- */
- ACE_LOCK &mutex (void);
-
- /**
- * Explicitly return <value_> (by reference). This gives the user
- * full, unrestricted access to the underlying value. This method
- * will usually be used in conjunction with explicit access to the
- * lock. Use with care ;-)
- */
- TYPE &value_i (void);
-
-private:
- /// Type of synchronization mechanism.
- ACE_LOCK own_mutex_;
-
- /// Underlying atomic op implementation.
- ACE_Atomic_Op_Ex <ACE_LOCK, TYPE> impl_;
-};
-
-
-#if defined (__ACE_INLINE__)
-#include "ace/Atomic_Op_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "Atomic_Op_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Atomic_Op_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /*ACE_ATOMIC_OP_T_H*/
diff --git a/ace/Atomic_Op_T.i b/ace/Atomic_Op_T.i
deleted file mode 100644
index 45d06384256..00000000000
--- a/ace/Atomic_Op_T.i
+++ /dev/null
@@ -1,262 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-//
-// ACE_Atomic_Op_Ex inline functions
-//
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator++ (void)
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator++");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_);
- return ++this->value_;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator+= (const TYPE &rhs)
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator+=");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_);
- return this->value_ += rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator-- (void)
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator--");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_);
- return --this->value_;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator-= (const TYPE &rhs)
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator-=");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_);
- return this->value_ -= rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::ACE_Atomic_Op_Ex (const ACE_Atomic_Op_Ex<ACE_LOCK, TYPE> &rhs)
- : mutex_ (rhs.mutex_)
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::ACE_Atomic_Op_Ex");
- *this = rhs; // Invoke the assignment operator.
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator++ (int)
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator++");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_);
- return this->value_++;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator-- (int)
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator--");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_);
- return this->value_--;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE int
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator== (const TYPE &rhs) const
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator==");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, (ACE_LOCK &) this->mutex_, 0);
- return this->value_ == rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE int
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator!= (const TYPE &rhs) const
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator!=");
- return !(*this == rhs);
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE int
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator>= (const TYPE &rhs) const
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator>=");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, (ACE_LOCK &) this->mutex_, 0);
- return this->value_ >= rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE int
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator> (const TYPE &rhs) const
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator>");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, (ACE_LOCK &) this->mutex_, 0);
- return this->value_ > rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE int
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator<= (const TYPE &rhs) const
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator<=");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, (ACE_LOCK &) this->mutex_, 0);
- return this->value_ <= rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE int
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator< (const TYPE &rhs) const
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator<");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, (ACE_LOCK &) this->mutex_, 0);
- return this->value_ < rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE void
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator= (const ACE_Atomic_Op_Ex<ACE_LOCK, TYPE> &rhs)
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator=");
- if (&rhs == this)
- return; // Avoid deadlock...
- ACE_GUARD (ACE_LOCK, ace_mon, this->mutex_);
- // This will call ACE_Atomic_Op_Ex::TYPE(), which will ensure the value
- // of <rhs> is acquired atomically.
-
- this->value_ = rhs.value ();
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::value (void) const
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::value");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, (ACE_LOCK &) this->mutex_, this->value_);
- return this->value_;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE &
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::value_i (void)
-{
- // Explicitly return <value_> (by reference). This gives the user
- // full, unrestricted access to the underlying value. This method
- // will usually be used in conjunction with explicit access to the
- // lock. Use with care ;-)
- return this->value_;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE void
-ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator= (const TYPE &rhs)
-{
-// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator=");
- ACE_GUARD (ACE_LOCK, ace_mon, this->mutex_);
- this->value_ = rhs;
-}
-
-//
-// ACE_Atomic_Op inline functions
-//
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE void
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator= (const TYPE &i)
-{
- this->impl_ = i;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE void
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator= (const ACE_Atomic_Op<ACE_LOCK, TYPE> &rhs)
-{
- this->impl_ = rhs.impl_;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator++ (void)
-{
- return ++this->impl_;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator++ (int)
-{
- return this->impl_++;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator+= (const TYPE &rhs)
-{
- return this->impl_ += rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator-- (void)
-{
- return --this->impl_;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator-- (int)
-{
- return this->impl_--;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator-= (const TYPE &rhs)
-{
- return this->impl_ -= rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE int
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator== (const TYPE &rhs) const
-{
- return this->impl_ == rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE int
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator!= (const TYPE &rhs) const
-{
- return this->impl_ != rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE int
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator>= (const TYPE &rhs) const
-{
- return this->impl_ >= rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE int
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator> (const TYPE &rhs) const
-{
- return this->impl_ > rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE int
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator<= (const TYPE &rhs) const
-{
- return this->impl_ <= rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE int
-ACE_Atomic_Op<ACE_LOCK, TYPE>::operator< (const TYPE &rhs) const
-{
- return this->impl_ < rhs;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE
-ACE_Atomic_Op<ACE_LOCK, TYPE>::value (void) const
-{
- return this->impl_.value ();
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE void
-ACE_Atomic_Op<ACE_LOCK, TYPE>::dump (void) const
-{
- this->impl_.dump ();
- return;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE ACE_LOCK &
-ACE_Atomic_Op<ACE_LOCK, TYPE>::mutex (void)
-{
- return this->own_mutex_;
-}
-
-template <class ACE_LOCK, class TYPE> ACE_INLINE TYPE &
-ACE_Atomic_Op<ACE_LOCK, TYPE>::value_i (void)
-{
- return this->impl_.value_i ();
-}
diff --git a/ace/Auto_IncDec_T.cpp b/ace/Auto_IncDec_T.cpp
deleted file mode 100644
index 2ca06874a2e..00000000000
--- a/ace/Auto_IncDec_T.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-// $Id$
-
-#ifndef ACE_AUTO_INCDEC_T_C
-#define ACE_AUTO_INCDEC_T_C
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Auto_IncDec_T.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, Auto_IncDec_T, "Auto_IncDec_T.cpp, by Edan Ayal")
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Auto_IncDec_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Auto_IncDec)
-
-template <class ACE_SAFELY_INCREMENTABLE_DECREMENTABLE> void
-ACE_Auto_IncDec<ACE_SAFELY_INCREMENTABLE_DECREMENTABLE>::dump (void) const
-{
-// ACE_TRACE ("ACE_Auto_IncDec<ACE_SAFELY_INCREMENTABLE_DECREMENTABLE>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#endif /* ACE_AUTO_INCDEC_T_C */
diff --git a/ace/Auto_IncDec_T.h b/ace/Auto_IncDec_T.h
deleted file mode 100644
index 3d8ad8da17b..00000000000
--- a/ace/Auto_IncDec_T.h
+++ /dev/null
@@ -1,88 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Auto_IncDec_T.h
- *
- * $Id$
- *
- * @author Edan Ayal <EdanA@cti2.com>
- */
-//=============================================================================
-
-
-#ifndef ACE_AUTO_INCDEC_T_H
-#define ACE_AUTO_INCDEC_T_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Global_Macros.h"
-
-/**
- * @class ACE_Auto_IncDec
- *
- * @brief This class automatically increments and decrements a
- * parameterized counter.
- *
- * This data structure is meant to be used within a method,
- * function, or scope. The actual parameter given for the
- * <ACE_SAFELY_INCREMENTABLE_DECREMENTABLE> template parameter
- * must provide at least operators ++ and --.
- */
-template <class ACE_SAFELY_INCREMENTABLE_DECREMENTABLE>
-class ACE_Auto_IncDec
-{
-public:
-
- /// Implicitly increment the counter.
- ACE_Auto_IncDec (ACE_SAFELY_INCREMENTABLE_DECREMENTABLE &counter);
-
- /// Implicitly decrement the counter.
- ~ACE_Auto_IncDec (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
-protected:
- /// Reference to the <ACE_SAFELY_INCREMENTABLE_DECREMENTABLE> counter
- /// we're incrementing/decrementing.
- ACE_SAFELY_INCREMENTABLE_DECREMENTABLE &counter_;
-
-private:
- // = Prevent assignment and initialization.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const
- ACE_Auto_IncDec<ACE_SAFELY_INCREMENTABLE_DECREMENTABLE> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Auto_IncDec (const
- ACE_Auto_IncDec<ACE_SAFELY_INCREMENTABLE_DECREMENTABLE> &))
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Auto_IncDec_T.i"
-// On non-Win32 platforms, this code will be inlined
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Auto_IncDec_T.cpp"
-// On Win32 platforms, this code will be included as template source
-// code and will not be inlined. Therefore, we first turn off
-// ACE_INLINE, set it to be nothing, include the code, and then turn
-// ACE_INLINE back to its original setting. All this nonsense is
-// necessary, since the generic template code that needs to be
-// specialized cannot be inlined, else the compiler will ignore the
-// specialization code. Also, the specialization code *must* be
-// inlined or the compiler will ignore the specializations.
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Auto_IncDec_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_AUTO_INCDEC_T_H */
diff --git a/ace/Auto_IncDec_T.i b/ace/Auto_IncDec_T.i
deleted file mode 100644
index 96658ed76c5..00000000000
--- a/ace/Auto_IncDec_T.i
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Implicitly and automatically increment the counter.
-
-template <class ACE_SAFELY_INCREMENTABLE_DECREMENTABLE> ACE_INLINE
-ACE_Auto_IncDec<ACE_SAFELY_INCREMENTABLE_DECREMENTABLE>::ACE_Auto_IncDec
- (ACE_SAFELY_INCREMENTABLE_DECREMENTABLE &counter)
- : counter_ (counter)
-{
- ++this->counter_;
-}
-
-// Implicitly and automatically decrement the counter.
-
-template <class ACE_SAFELY_INCREMENTABLE_DECREMENTABLE> ACE_INLINE
-ACE_Auto_IncDec<ACE_SAFELY_INCREMENTABLE_DECREMENTABLE>::~ACE_Auto_IncDec (void)
-{
- --this->counter_;
-}
-
diff --git a/ace/Auto_Ptr.cpp b/ace/Auto_Ptr.cpp
deleted file mode 100644
index 888a65d02e7..00000000000
--- a/ace/Auto_Ptr.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// Auto_Ptr.cpp
-// $Id$
-
-#if !defined (ACE_AUTO_PTR_C)
-#define ACE_AUTO_PTR_C
-
-#include "ace/Auto_Ptr.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Auto_Ptr.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Auto_Ptr, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Auto_Basic_Ptr)
-
-template<class X> void
-ACE_Auto_Basic_Ptr<X>::dump (void) const
-{
- ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::dump");
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Auto_Basic_Array_Ptr)
-
-template<class X> void
-ACE_Auto_Basic_Array_Ptr<X>::dump (void) const
-{
- ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::dump");
-}
-
-#if defined (__MINGW32__)
-# if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && \
- (ACE_HAS_STANDARD_CPP_LIBRARY != 0)
-# if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template alloc;
-# elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate alloc
-# endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-# endif /* ACE_HAS_STANDARD_CPP_LIBRARY != 0 */
-#endif /* __MINGW32__ */
-
-#endif /* ACE_AUTO_PTR_C */
diff --git a/ace/Auto_Ptr.h b/ace/Auto_Ptr.h
deleted file mode 100644
index bc86ef1fd86..00000000000
--- a/ace/Auto_Ptr.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Auto_Ptr.h
- *
- * $Id$
- *
- * @author Doug Schmidt <schmidt@uci.edu>
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- * @author Jack Reeves <jack@fx.com>
- * @author Dr. Harald M. Mueller <mueller@garwein.hai.siemens.co.at>
- */
-//=============================================================================
-
-#ifndef ACE_AUTO_PTR_H
-#define ACE_AUTO_PTR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Trace.h"
-
-#if defined (_MSC_VER)
-// Suppress warning e.g. "return type for
-// 'ACE_Auto_Array_Pointer<type>::operator ->' is 'type *' (i.e., not a UDT
-// or reference to a UDT. Will produce errors if applied using infix
-// notation)"
-# pragma warning(push)
-# pragma warning(disable: 4284)
-#endif /* _MSC_VER */
-
-/**
- * @class ACE_Auto_Basic_Ptr
- *
- * @brief Implements the draft C++ standard auto_ptr abstraction.
- * This class allows one to work on non-object (basic) types
- */
-template <class X>
-class ACE_Auto_Basic_Ptr
-{
-public:
- // = Initialization and termination methods
- ACE_EXPLICIT ACE_Auto_Basic_Ptr (X *p = 0) : p_ (p) {}
-
- ACE_Auto_Basic_Ptr (ACE_Auto_Basic_Ptr<X> &ap);
- ACE_Auto_Basic_Ptr<X> &operator= (ACE_Auto_Basic_Ptr<X> &rhs);
- ~ACE_Auto_Basic_Ptr (void);
-
- // = Accessor methods.
- X &operator *() const;
- X *get (void) const;
- X *release (void);
- void reset (X *p = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- X *p_;
-};
-
-#if !defined (ACE_LACKS_AUTO_PTR) && \
- defined (ACE_HAS_STANDARD_CPP_LIBRARY) && \
- (ACE_HAS_STANDARD_CPP_LIBRARY != 0)
-#include <memory>
-#if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) && \
- (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB != 0)
-using std::auto_ptr;
-#endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
-#else /* ACE_HAS_STANDARD_CPP_LIBRARY */
-
-/**
- * @class auto_ptr
- *
- * @brief Implements the draft C++ standard auto_ptr abstraction.
- */
-template <class X>
-class auto_ptr : public ACE_Auto_Basic_Ptr <X>
-{
-public:
- // = Initialization and termination methods
- ACE_EXPLICIT auto_ptr (X *p = 0) : ACE_Auto_Basic_Ptr<X> (p) {}
-
- X *operator-> () const;
-};
-
-#endif /* ACE_HAS_STANDARD_CPP_LIBRARY */
-
-/**
- * @class ACE_Auto_Basic_Array_Ptr
- *
- * @brief Implements an extension to the draft C++ standard auto_ptr
- * abstraction. This class allows one to work on non-object
- * (basic) types that must be treated as an array, e.g.,
- * deallocated via "delete [] foo".
- */
-template<class X>
-class ACE_Auto_Basic_Array_Ptr
-{
-public:
- // = Initialization and termination methods.
- ACE_EXPLICIT ACE_Auto_Basic_Array_Ptr (X *p = 0) : p_ (p) {}
-
- ACE_Auto_Basic_Array_Ptr (ACE_Auto_Basic_Array_Ptr<X> &ap);
- ACE_Auto_Basic_Array_Ptr<X> &operator= (ACE_Auto_Basic_Array_Ptr<X> &rhs);
- ~ACE_Auto_Basic_Array_Ptr (void);
-
- // = Accessor methods.
- X &operator* () const;
- X &operator[] (int i) const;
- X *get (void) const;
- X *release (void);
- void reset (X *p = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- X *p_;
-};
-
-/**
- * @class ACE_Auto_Array_Ptr
- *
- * @brief Implements an extension to the draft C++ standard auto_ptr
- * abstraction.
- */
-template<class X>
-class ACE_Auto_Array_Ptr : public ACE_Auto_Basic_Array_Ptr<X>
-{
-public:
- // = Initialization and termination methods.
- ACE_EXPLICIT ACE_Auto_Array_Ptr (X *p = 0)
- : ACE_Auto_Basic_Array_Ptr<X> (p) {}
-
- X *operator-> () const;
-};
-
-// Some platforms have an older version of auto_ptr
-// support, which lacks reset, and cannot be disabled
-// easily. Portability to these platforms requires
-// use of the following ACE_AUTO_PTR_RESET macro.
-# if defined (ACE_AUTO_PTR_LACKS_RESET)
-# define ACE_AUTO_PTR_RESET(X,Y,Z) \
- do { \
- if (Y != X.get ()) \
- { \
- X.release (); \
- X = auto_ptr<Z> (Y); \
- } \
- } while (0)
-# else /* ! ACE_AUTO_PTR_LACKS_RESET */
-# define ACE_AUTO_PTR_RESET(X,Y,Z) \
- do { \
- X.reset (Y); \
- } while (0)
-# endif /* ACE_AUTO_PTR_LACKS_RESET */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Auto_Ptr.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Auto_Ptr.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Auto_Ptr.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#if defined (_MSC_VER)
-// Restore the warning state to what it was before entry.
-# pragma warning(pop)
-#endif /* _MSC_VER */
-
-#include "ace/post.h"
-#endif /* ACE_AUTO_PTR_H */
diff --git a/ace/Auto_Ptr.i b/ace/Auto_Ptr.i
deleted file mode 100644
index 7fba5b4edfa..00000000000
--- a/ace/Auto_Ptr.i
+++ /dev/null
@@ -1,144 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Auto_Ptr.i
-
-template<class X> ACE_INLINE
-ACE_Auto_Basic_Ptr<X>::ACE_Auto_Basic_Ptr (ACE_Auto_Basic_Ptr<X> &rhs)
- : p_ (rhs.release ())
-{
- ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::ACE_Auto_Basic_Ptr");
-}
-
-template<class X> ACE_INLINE X *
-ACE_Auto_Basic_Ptr<X>::get (void) const
-{
- ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::get");
- return this->p_;
-}
-
-template<class X> ACE_INLINE X *
-ACE_Auto_Basic_Ptr<X>::release (void)
-{
- ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::release");
- X *old = this->p_;
- this->p_ = 0;
- return old;
-}
-
-template<class X> ACE_INLINE void
-ACE_Auto_Basic_Ptr<X>::reset (X *p)
-{
- ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::reset");
- if (this->get () != p)
- delete this->get ();
- this->p_ = p;
-}
-
-template<class X> ACE_INLINE ACE_Auto_Basic_Ptr<X> &
-ACE_Auto_Basic_Ptr<X>::operator= (ACE_Auto_Basic_Ptr<X> &rhs)
-{
- ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::operator=");
- if (this != &rhs)
- {
- this->reset (rhs.release ());
- }
- return *this;
-}
-
-template<class X> ACE_INLINE
-ACE_Auto_Basic_Ptr<X>::~ACE_Auto_Basic_Ptr (void)
-{
- ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::~ACE_Auto_Basic_Ptr");
- delete this->get ();
-}
-
-template<class X> ACE_INLINE X &
-ACE_Auto_Basic_Ptr<X>::operator *() const
-{
- ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::operator *()");
- return *this->get ();
-}
-
-#if defined (ACE_LACKS_AUTO_PTR) || \
- !defined (ACE_HAS_STANDARD_CPP_LIBRARY) || \
- (ACE_HAS_STANDARD_CPP_LIBRARY == 0)
-
-template<class X> ACE_INLINE X *
-auto_ptr<X>::operator-> () const
-{
- ACE_TRACE ("auto_ptr<X>::operator->");
- return this->get ();
-}
-
-#endif /* ACE_HAS_STANDARD_CPP_LIBRARY */
-
-template<class X> ACE_INLINE X *
-ACE_Auto_Basic_Array_Ptr<X>::get (void) const
-{
- ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::get");
- return this->p_;
-}
-
-template<class X> ACE_INLINE X *
-ACE_Auto_Basic_Array_Ptr<X>::release (void)
-{
- ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::release");
- X *old = this->p_;
- this->p_ = 0;
- return old;
-}
-
-template<class X> ACE_INLINE void
-ACE_Auto_Basic_Array_Ptr<X>::reset (X *p)
-{
- ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::reset");
- if (this->get () != p)
- delete [] this->get ();
- this->p_ = p;
-}
-
-template<class X> ACE_INLINE
-ACE_Auto_Basic_Array_Ptr<X>::ACE_Auto_Basic_Array_Ptr (ACE_Auto_Basic_Array_Ptr<X> &rhs)
- : p_ (rhs.release ())
-{
- ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::ACE_Auto_Basic_Array_Ptr");
-}
-
-template<class X> ACE_INLINE ACE_Auto_Basic_Array_Ptr<X> &
-ACE_Auto_Basic_Array_Ptr<X>::operator= (ACE_Auto_Basic_Array_Ptr<X> &rhs)
-{
- ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::operator=");
- if (this != &rhs)
- {
- this->reset (rhs.release ());
- }
- return *this;
-}
-
-template<class X> ACE_INLINE
-ACE_Auto_Basic_Array_Ptr<X>::~ACE_Auto_Basic_Array_Ptr (void)
-{
- ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::~ACE_Auto_Basic_Array_Ptr");
- delete [] this->get ();
-}
-
-template<class X> ACE_INLINE X &
-ACE_Auto_Basic_Array_Ptr<X>::operator *() const
-{
- return *this->get ();
-}
-
-template<class X> ACE_INLINE X &
-ACE_Auto_Basic_Array_Ptr<X>::operator[](int i) const
-{
- X *array = this->get ();
- return array[i];
-}
-
-template<class X> ACE_INLINE X *
-ACE_Auto_Array_Ptr<X>::operator->() const
-{
- return this->get ();
-}
-
diff --git a/ace/Base_Thread_Adapter.cpp b/ace/Base_Thread_Adapter.cpp
deleted file mode 100644
index b2f1326cf00..00000000000
--- a/ace/Base_Thread_Adapter.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-// $Id$
-
-#include "ace/Base_Thread_Adapter.h"
-#include "ace/OS.h"
-
-ACE_RCSID(ace, Base_Thread_Adapter, "$Id$")
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "ace/Base_Thread_Adapter.inl"
-#endif /* ACE_HAS_INLINED_OS_CALLS */
-
-ACE_INIT_LOG_MSG_HOOK ACE_Base_Thread_Adapter::init_log_msg_hook_ = 0;
-ACE_INHERIT_LOG_MSG_HOOK ACE_Base_Thread_Adapter::inherit_log_msg_hook_ = 0;
-ACE_CLOSE_LOG_MSG_HOOK ACE_Base_Thread_Adapter::close_log_msg_hook_ = 0;
-ACE_SYNC_LOG_MSG_HOOK ACE_Base_Thread_Adapter::sync_log_msg_hook_ = 0;
-ACE_THR_DESC_LOG_MSG_HOOK ACE_Base_Thread_Adapter::thr_desc_log_msg_hook_ = 0;
-
-ACE_Base_Thread_Adapter::ACE_Base_Thread_Adapter (
- ACE_THR_FUNC user_func,
- void *arg,
- ACE_THR_C_FUNC entry_point,
- ACE_OS_Thread_Descriptor *td
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- , ACE_SEH_EXCEPT_HANDLER selector
- , ACE_SEH_EXCEPT_HANDLER handler
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- )
- : user_func_ (user_func)
- , arg_ (arg)
- , entry_point_ (entry_point)
- , thr_desc_ (td)
-{
- ACE_OS_TRACE ("ACE_Base_Thread_Adapter::ACE_Base_Thread_Adapter");
-
- if (ACE_Base_Thread_Adapter::init_log_msg_hook_ != 0)
- (*ACE_Base_Thread_Adapter::init_log_msg_hook_) (
- this->log_msg_attributes_
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- , selector
- , handler
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- );
-}
-
-ACE_Base_Thread_Adapter::~ACE_Base_Thread_Adapter (void)
-{
-}
-
-void
-ACE_Base_Thread_Adapter::inherit_log_msg (void)
-{
- if (ACE_Base_Thread_Adapter::inherit_log_msg_hook_ != 0)
- (*ACE_Base_Thread_Adapter::inherit_log_msg_hook_)(
- this->thr_desc_,
- this->log_msg_attributes_);
-}
-
-void
-ACE_Base_Thread_Adapter::close_log_msg (void)
-{
- if (ACE_Base_Thread_Adapter::close_log_msg_hook_ != 0)
- (*ACE_Base_Thread_Adapter::close_log_msg_hook_) ();
-}
-
-void
-ACE_Base_Thread_Adapter::sync_log_msg (const ACE_TCHAR *prg)
-{
- if (ACE_Base_Thread_Adapter::sync_log_msg_hook_ != 0)
- (*ACE_Base_Thread_Adapter::sync_log_msg_hook_) (prg);
-}
-
-ACE_OS_Thread_Descriptor *
-ACE_Base_Thread_Adapter::thr_desc_log_msg (void)
-{
- if (ACE_Base_Thread_Adapter::thr_desc_log_msg_hook_ != 0)
- return (*ACE_Base_Thread_Adapter::thr_desc_log_msg_hook_) ();
- return 0;
-}
-
-// Run the thread entry point for the <ACE_Thread_Adapter>. This must
-// be an extern "C" to make certain compilers happy...
-
-#if defined (ACE_PSOS)
-extern "C" void
-ace_thread_adapter (unsigned long args)
-{
- ACE_OS_TRACE ("ace_thread_adapter");
-
-#if defined (ACE_HAS_TSS_EMULATION)
- // As early as we can in the execution of the new thread, allocate
- // its local TS storage. Allocate it on the stack, to save dynamic
- // allocation/dealloction.
- void *ts_storage[ACE_TSS_Emulation::ACE_TSS_THREAD_KEYS_MAX];
- ACE_TSS_Emulation::tss_open (ts_storage);
-#endif /* ACE_HAS_TSS_EMULATION */
-
- ACE_Base_Thread_Adapter *thread_args =
- ACE_static_cast(ACE_Base_Thread_Adapter *, args);
-
- // Invoke the user-supplied function with the args.
- thread_args->invoke ();
-}
-#else /* ! defined (ACE_PSOS) */
-extern "C" ACE_THR_FUNC_RETURN
-ace_thread_adapter (void *args)
-{
- ACE_OS_TRACE ("ace_thread_adapter");
-
-#if defined (ACE_HAS_TSS_EMULATION)
- // As early as we can in the execution of the new thread, allocate
- // its local TS storage. Allocate it on the stack, to save dynamic
- // allocation/dealloction.
- void *ts_storage[ACE_TSS_Emulation::ACE_TSS_THREAD_KEYS_MAX];
- ACE_TSS_Emulation::tss_open (ts_storage);
-#endif /* ACE_HAS_TSS_EMULATION */
-
- ACE_Base_Thread_Adapter *thread_args =
- ACE_static_cast (ACE_Base_Thread_Adapter *, args);
-
- // Invoke the user-supplied function with the args.
- ACE_THR_FUNC_RETURN status = thread_args->invoke ();
-
- return status;
-}
-#endif /* ACE_PSOS */
diff --git a/ace/Base_Thread_Adapter.h b/ace/Base_Thread_Adapter.h
deleted file mode 100644
index 7661e061206..00000000000
--- a/ace/Base_Thread_Adapter.h
+++ /dev/null
@@ -1,167 +0,0 @@
-//=============================================================================
-/**
- * @file Base_Thread_Adapter.h
- *
- * $Id$
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_BASE_THREAD_ADAPTER_H
-#define ACE_BASE_THREAD_ADAPTER_H
-#include "ace/pre.h"
-
-#include "ace/OS_Log_Msg_Attributes.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS_Export.h"
-
-// Run the thread entry point for the <ACE_Thread_Adapter>. This must
-// be an extern "C" to make certain compilers happy...
-#if defined (ACE_PSOS)
-extern "C" void ace_thread_adapter (unsigned long args);
-#else /* ! defined (ACE_PSOS) */
-extern "C" ACE_OS_Export ACE_THR_FUNC_RETURN ace_thread_adapter (void *args);
-#endif /* ACE_PSOS */
-
-/**
- * @class ACE_OS_Thread_Descriptor
- *
- * @brief Parent class of all ACE_Thread_Descriptor classes.
- * =
- * Container for ACE_Thread_Descriptor members that are
- * used in ACE_OS.
- */
-class ACE_OS_Export ACE_OS_Thread_Descriptor
-{
-public:
- /// Get the thread creation flags.
- long flags (void) const;
-
-protected:
- /// For use by ACE_Thread_Descriptor.
- ACE_OS_Thread_Descriptor (long flags = 0);
-
- /**
- * Keeps track of whether this thread was created "detached" or not.
- * If a thread is *not* created detached then if someone calls
- * <ACE_Thread_Manager::wait>, we need to join with that thread (and
- * close down the handle).
- */
- long flags_;
-};
-
-/**
- * @class ACE_Base_Thread_Adapter
- *
- * @brief Base class for all the Thread_Adapters.
- *
- * Converts a C++ function into a function that can be
- * called from a thread creation routine
- * (e.g., pthread_create() or _beginthreadex()) that expects an
- * extern "C" entry point. This class also makes it possible to
- * transparently provide hooks to register a thread with an
- * ACE_Thread_Manager.
- * This class is used in ACE_OS::thr_create(). In general, the
- * thread that creates an object of this class is different from
- * the thread that calls @c invoke() on this object. Therefore,
- * the @c invoke() method is responsible for deleting itself.
- */
-class ACE_OS_Export ACE_Base_Thread_Adapter
-{
-public:
- /// Constructor.
- ACE_Base_Thread_Adapter (ACE_THR_FUNC user_func,
- void *arg,
- ACE_THR_C_FUNC entry_point = (ACE_THR_C_FUNC) ace_thread_adapter,
- ACE_OS_Thread_Descriptor *td = 0
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- , ACE_SEH_EXCEPT_HANDLER selector = 0
- , ACE_SEH_EXCEPT_HANDLER handler = 0
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- );
-
- /// Virtual method invoked by the thread entry point.
- virtual ACE_THR_FUNC_RETURN invoke (void) = 0;
-
- /// Accessor for the C entry point function to the OS thread creation
- /// routine.
- ACE_THR_C_FUNC entry_point (void);
-
- /// Invoke the close_log_msg_hook, if it is present
- static void close_log_msg (void);
-
- /// Invoke the sync_log_msg_hook, if it is present
- static void sync_log_msg (const ACE_TCHAR *prog_name);
-
- /// Invoke the thr_desc_log_msg_hook, if it is present
- static ACE_OS_Thread_Descriptor *thr_desc_log_msg (void);
-
-protected:
- /// Destructor, making it private ensures that objects of this class
- /// are allocated on the heap.
- virtual ~ACE_Base_Thread_Adapter (void);
-
- /// Inherit the logging features if the parent thread has an
- /// <ACE_Log_Msg>.
- void inherit_log_msg (void);
-
-private:
- /// The hooks to inherit and cleanup the Log_Msg attributes
- static ACE_INIT_LOG_MSG_HOOK init_log_msg_hook_;
- static ACE_INHERIT_LOG_MSG_HOOK inherit_log_msg_hook_;
- static ACE_CLOSE_LOG_MSG_HOOK close_log_msg_hook_;
- static ACE_SYNC_LOG_MSG_HOOK sync_log_msg_hook_;
- static ACE_THR_DESC_LOG_MSG_HOOK thr_desc_log_msg_hook_;
-
- /// Set the Log_Msg hooks
- static void set_log_msg_hooks (ACE_INIT_LOG_MSG_HOOK init_hook,
- ACE_INHERIT_LOG_MSG_HOOK inherit_hook,
- ACE_CLOSE_LOG_MSG_HOOK close_hook,
- ACE_SYNC_LOG_MSG_HOOK sync_hook,
- ACE_THR_DESC_LOG_MSG_HOOK thr_desc);
-
- /// Allow the ACE_Log_Msg class to set its hooks.
- friend class ACE_Log_Msg;
-
-protected:
- /// Thread startup function passed in by the user (C++ linkage).
- ACE_THR_FUNC user_func_;
-
- /// Argument to thread startup function.
- void *arg_;
-
- /// Entry point to the underlying OS thread creation call (C
- /// linkage).
- ACE_THR_C_FUNC entry_point_;
-
- /**
- * Optional thread descriptor. Passing this pointer in will force
- * the spawned thread to cache this location in <Log_Msg> and wait
- * until <Thread_Manager> fills in all information in thread
- * descriptor.
- */
- ACE_OS_Thread_Descriptor *thr_desc_;
-
- /// The ACE_Log_Msg attributes.
- ACE_OS_Log_Msg_Attributes log_msg_attributes_;
-
- /// Friend declaration to avoid compiler warning: only defines a private
- /// destructor and has no friends.
- friend class ACE_Thread_Adapter_Has_Private_Destructor;
-};
-
-# if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "ace/Base_Thread_Adapter.inl"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#include "ace/post.h"
-#endif /* ACE_BASE_THREAD_ADAPTER_H */
diff --git a/ace/Base_Thread_Adapter.inl b/ace/Base_Thread_Adapter.inl
deleted file mode 100644
index 1d0d6ba7a49..00000000000
--- a/ace/Base_Thread_Adapter.inl
+++ /dev/null
@@ -1,34 +0,0 @@
-// $Id$
-
-ACE_INLINE long
-ACE_OS_Thread_Descriptor::flags (void) const
-{
- return flags_;
-}
-
-ACE_INLINE
-ACE_OS_Thread_Descriptor::ACE_OS_Thread_Descriptor (long flags)
- : flags_ (flags)
-{
-}
-
-ACE_INLINE void
-ACE_Base_Thread_Adapter::set_log_msg_hooks (
- ACE_INIT_LOG_MSG_HOOK init_hook,
- ACE_INHERIT_LOG_MSG_HOOK inherit_hook,
- ACE_CLOSE_LOG_MSG_HOOK close_hook,
- ACE_SYNC_LOG_MSG_HOOK sync_hook,
- ACE_THR_DESC_LOG_MSG_HOOK thr_desc_hook)
-{
- ACE_Base_Thread_Adapter::init_log_msg_hook_ = init_hook;
- ACE_Base_Thread_Adapter::inherit_log_msg_hook_ = inherit_hook;
- ACE_Base_Thread_Adapter::close_log_msg_hook_ = close_hook;
- ACE_Base_Thread_Adapter::sync_log_msg_hook_ = sync_hook;
- ACE_Base_Thread_Adapter::thr_desc_log_msg_hook_ = thr_desc_hook;
-}
-
-ACE_INLINE ACE_THR_C_FUNC
-ACE_Base_Thread_Adapter::entry_point (void)
-{
- return this->entry_point_;
-}
diff --git a/ace/Based_Pointer_Repository.cpp b/ace/Based_Pointer_Repository.cpp
deleted file mode 100644
index d3b5193610a..00000000000
--- a/ace/Based_Pointer_Repository.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-// $Id$
-
-#include "ace/Map_Manager.h"
-#include "ace/Based_Pointer_Repository.h"
-
-/**
- * @class ACE_Based_Pointer_Repository_Rep
- *
- * @brief Implementation for the <ACE_Based_Pointer_Repository>.
- *
- * Every memory pool in ACE binds it's mapping base address and
- * the mapped size to this repository every time it maps/remaps a
- * new chunk of memory successfully.
- */
-class ACE_Based_Pointer_Repository_Rep
-{
-public:
- // Useful typedefs.
- typedef ACE_Map_Manager <void *, size_t, ACE_Null_Mutex> MAP_MANAGER;
- typedef ACE_Map_Iterator < void *, size_t, ACE_Null_Mutex> MAP_ITERATOR;
- typedef ACE_Map_Entry <void *, size_t> MAP_ENTRY;
-
- /// Keeps track of the mapping between addresses and their associated
- /// values.
- MAP_MANAGER addr_map_;
-
- /// Synchronize concurrent access to the map.
- ACE_SYNCH_MUTEX lock_;
-};
-
-ACE_Based_Pointer_Repository::ACE_Based_Pointer_Repository (void)
-{
- ACE_TRACE ("ACE_Based_Pointer_Repository::ACE_Based_Pointer_Repository");
- ACE_NEW (this->rep_,
- ACE_Based_Pointer_Repository_Rep);
-}
-
-ACE_Based_Pointer_Repository::~ACE_Based_Pointer_Repository (void)
-{
- ACE_TRACE ("ACE_Based_Pointer_Repository::~ACE_Based_Pointer_Repository");
- delete this->rep_;
-}
-
-// Search for appropriate base address in repository
-
-int
-ACE_Based_Pointer_Repository::find (void *addr,
- void *&base_addr)
-{
- ACE_TRACE ("ACE_Based_Pointer_Repository::find");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, mon, this->rep_->lock_, -1);
- ACE_Based_Pointer_Repository_Rep::MAP_ENTRY *ce = 0;
-
- for (ACE_Based_Pointer_Repository_Rep::MAP_ITERATOR iter (this->rep_->addr_map_);
- iter.next (ce) != 0;
- iter.advance ())
- // Check to see if <addr> is within any of the regions.
- if (addr >= ce->ext_id_
- && addr < ((char *) ce->ext_id_ + ce->int_id_))
- {
- // Assign the base address.
- base_addr = ce->ext_id_;
- return 1;
- }
-
- // Assume base address 0 (e.g., if new'ed).
- base_addr = 0;
- return 0;
-}
-
-// Bind a new entry to the repository or update the size of an
-// existing entry.
-
-int
-ACE_Based_Pointer_Repository::bind (void *addr,
- size_t size)
-{
- ACE_TRACE ("ACE_Based_Pointer_Repository::bind");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, mon, this->rep_->lock_, -1);
-
- return this->rep_->addr_map_.rebind (addr, size);
-}
-
-// Unbind a base from the repository.
-
-int
-ACE_Based_Pointer_Repository::unbind (void *addr)
-{
- ACE_TRACE ("ACE_Based_Pointer_Repository::unbind");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, mon, this->rep_->lock_, -1);
- ACE_Based_Pointer_Repository_Rep::MAP_ENTRY *ce = 0;
-
- // Search for service handlers that requested notification.
-
- for (ACE_Based_Pointer_Repository_Rep::MAP_ITERATOR iter (this->rep_->addr_map_);
- iter.next (ce) != 0;
- iter.advance ())
- {
- // Check to see if <addr> is within any of the regions and if
- // so, unbind the key from the map.
- if (addr >= ce->ext_id_
- && addr < ((char *) ce->ext_id_ + ce->int_id_))
- // Unbind base address.
- return this->rep_->addr_map_.unbind (ce->ext_id_);
- }
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <ACE_Based_Pointer_Repository, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Entry<void *, size_t>;
-template class ACE_Map_Manager<void *, size_t, ACE_Null_Mutex>;
-template class ACE_Map_Iterator<void *, size_t, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<void *, size_t, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<void *, size_t, ACE_Null_Mutex>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <ACE_Based_Pointer_Repository, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Entry<void *, size_t>
-#pragma instantiate ACE_Map_Manager<void *, size_t, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator<void *, size_t, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Reverse_Iterator<void *, size_t, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator_Base<void *, size_t, ACE_Null_Mutex>
-#elif defined (__GNUC__) && (defined (_AIX) || defined (__hpux) || defined (VXWORKS))
-template ACE_Singleton<ACE_Based_Pointer_Repository, ACE_SYNCH_RW_MUTEX> *
- ACE_Singleton<ACE_Based_Pointer_Repository, ACE_SYNCH_RW_MUTEX>::singleton_;
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Based_Pointer_Repository.h b/ace/Based_Pointer_Repository.h
deleted file mode 100644
index 82c950838af..00000000000
--- a/ace/Based_Pointer_Repository.h
+++ /dev/null
@@ -1,79 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Based_Pointer_Repository.h
- *
- * $Id$
- *
- * @author Dietrich Quehl <Dietrich.Quehl@med.siemens.de>
- * @author Douglas C. Schmidt <schmidt@.cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_BASED_POINTER_REPOSITORY_H
-#define ACE_BASED_POINTER_REPOSITORY_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-// Forward decl., using the "Cheshire Cat" technique.
-class ACE_Based_Pointer_Repository_Rep;
-
-/**
- * @class ACE_Based_Pointer_Repository
- *
- * @brief Maps pointers to the base address of the region to which each
- * pointer belongs.
- */
-class ACE_Export ACE_Based_Pointer_Repository
-{
-public:
- // = Use <ACE_Null_Mutex> to allow locking while iterating.
-
- // = Initialization and termination methods.
- ACE_Based_Pointer_Repository (void);
- ~ACE_Based_Pointer_Repository (void);
-
- // = Search structure methods.
- /**
- * Return the appropriate <base_addr> region that contains <addr>.
- * Returns 1 on success and 0 if the <addr> isn't contained in any
- * <base_addr> region.
- */
- int find (void *addr,
- void *&base_addr);
-
- /// Bind a new entry to the repository or update the size of an
- /// existing entry. Returns 0 on success and -1 on failure.
- int bind (void *addr,
- size_t size);
-
- /// Unbind from the repository the <base_addr> that <addr> is
- /// contained within.
- int unbind (void *addr);
-
-private:
-
- /// Use the "Cheshire-Cat" technique to hide the implementation in
- /// order to avoid circular #include dependencies.
- ACE_Based_Pointer_Repository_Rep *rep_;
-
-};
-
-#include "ace/Singleton.h"
-
-/// Provide a Singleton access point to the based pointer repository.
-typedef ACE_Singleton<ACE_Based_Pointer_Repository, ACE_SYNCH_RW_MUTEX>
- ACE_BASED_POINTER_REPOSITORY;
-
-#include "ace/post.h"
-
-#endif /* ACE_BASED_POINTER_REPOSITORY_H */
diff --git a/ace/Based_Pointer_T.cpp b/ace/Based_Pointer_T.cpp
deleted file mode 100644
index 5bf6352b406..00000000000
--- a/ace/Based_Pointer_T.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// $Id$
-
-#ifndef ACE_BASED_POINTER_T_CPP
-#define ACE_BASED_POINTER_T_CPP
-
-#include "ace/Based_Pointer_T.h"
-#include "ace/Based_Pointer_Repository.h"
-#include "ace/Log_Msg.h"
-
-# define ACE_TRACEX(X) ACE_Trace ____ (ACE_LIB_TEXT (X), __LINE__, ACE_LIB_TEXT (__FILE__))
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Based_Pointer_T.i"
-#endif /* __ACE_INLINE__ */
-
-template <class CONCRETE>
-ACE_Based_Pointer<CONCRETE>::ACE_Based_Pointer (void)
-{
- ACE_TRACE ("ACE_Based_Pointer<CONCRETE>::ACE_Based_Pointer");
-}
-
-template <class CONCRETE> void
-ACE_Based_Pointer_Basic<CONCRETE>::dump (void) const
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ntarget_ = %d\n"), this->target_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("base_offset_ = %d\n"), this->base_offset_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("computed pointer = %x\n"), (CONCRETE *)(ACE_COMPUTE_BASED_POINTER (this))));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class CONCRETE>
-ACE_Based_Pointer<CONCRETE>::ACE_Based_Pointer (CONCRETE *initial)
- : ACE_Based_Pointer_Basic<CONCRETE> (initial)
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::ACE_Based_Pointer_Basic");
-}
-
-template <class CONCRETE>
-ACE_Based_Pointer<CONCRETE>::ACE_Based_Pointer (const void* base_addr, int)
- : ACE_Based_Pointer_Basic<CONCRETE> (base_addr, 0)
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::ACE_Based_Pointer_Basic");
-}
-
-template <class CONCRETE>
-ACE_Based_Pointer_Basic<CONCRETE>::ACE_Based_Pointer_Basic (void)
- : target_ (0),
- base_offset_ (0)
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::ACE_Based_Pointer_Basic");
- void *base_addr = 0;
-
- // Find the base address associated with our <this> pointer. Note
- // that it's ok for <find> to return 0, which simply indicates that
- // the address is not in memory-mapped virtual address space.
- ACE_BASED_POINTER_REPOSITORY::instance ()->find (this,
- base_addr);
- this->base_offset_ = (char *) this - (char *) base_addr;
-}
-
-template <class CONCRETE>
-ACE_Based_Pointer_Basic<CONCRETE>::ACE_Based_Pointer_Basic (const void *base_addr, int)
- : target_ (0),
- base_offset_ (0)
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::ACE_Based_Pointer_Basic");
- this->base_offset_ = (char *) this - (char *) base_addr;
-}
-
-template <class CONCRETE>
-ACE_Based_Pointer_Basic<CONCRETE>::ACE_Based_Pointer_Basic (CONCRETE *rhs)
- : target_ (0),
- base_offset_ (0)
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::ACE_Based_Pointer_Basic");
-
- if (rhs == 0)
- // Store a value of <target_> that indicate "NULL" pointer.
- this->target_ = -1;
- else
- {
- void *base_addr = 0;
-
- // Find the base address associated with the <addr> pointer.
- // Note that it's ok for <find> to return 0, which simply
- // indicates that the address is not in memory-mapped virtual
- // address space.
- ACE_BASED_POINTER_REPOSITORY::instance ()->find (this,
- base_addr);
- this->base_offset_ = (char *) this - (char *) base_addr;
- this->target_ = ((char *) rhs - (char *) base_addr);
- }
-}
-
-template <class CONCRETE>
-ACE_Based_Pointer_Basic<CONCRETE>::ACE_Based_Pointer_Basic (const ACE_Based_Pointer_Basic<CONCRETE> &)
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::ACE_Based_Pointer_Basic");
-
- ACE_ASSERT (0); // not implemented.
-}
-
-template <class CONCRETE>
-ACE_Based_Pointer<CONCRETE>::ACE_Based_Pointer (const ACE_Based_Pointer<CONCRETE> &rhs)
- : ACE_Based_Pointer_Basic<CONCRETE> (rhs)
-{
- ACE_TRACE ("ACE_Based_Pointer<CONCRETE>::ACE_Based_Pointer");
- ACE_ASSERT (0); // not implemented.
-}
-
-#endif /* ACE_BASED_POINTER_T_CPP */
diff --git a/ace/Based_Pointer_T.h b/ace/Based_Pointer_T.h
deleted file mode 100644
index 4c0cdd9b183..00000000000
--- a/ace/Based_Pointer_T.h
+++ /dev/null
@@ -1,201 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Based_Pointer_T.h
- *
- * $Id$
- *
- * @author Dietrich Quehl <Dietrich.Quehl@med.siemens.de>
- * @author Douglas C. Schmidt <schmidt@.cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_BASED_POINTER_T_H
-#define ACE_BASED_POINTER_T_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-#include "ace/Trace.h"
-
-#if defined (_MSC_VER)
-// Suppress warning e.g. "return type for
-// 'ACE_Based_Pointer<long>::operator ->' is 'long *' (i.e., not a UDT
-// or reference to a UDT. Will produce errors if applied using infix
-// notation)"
-#pragma warning(disable: 4284)
-#endif /* _MSC_VER */
-
-/**
- * @class ACE_Based_Pointer_Basic
- *
- * @brief A proxy that keeps track of the relative offset of a "pointer"
- * from its base address.
- * This class makes it possible to transparently use "pointers" in
- * shared memory as easily as programming with pointers to local
- * memory. In particular, we don't need to ensure that the base
- * addresses of all the pointers are mapped into separate
- * processes at the same absolute memory base address.
- */
-template <class CONCRETE>
-class ACE_Based_Pointer_Basic
-{
-public:
- /**
- * This constructor initializes the <base_offset_> by asking the
- * <ACE_BASED_POINTER_REPOSITORY> Singleton for the base address of
- * the memory region within which it is instantiated. Two results
- * are possible:
- *
- * 1. An <ACE_*_Memory_Pool> has stored a base address/size pair and the
- * new based-pointer instance is located between the base address and
- * the base address + size - 1. In this case, the repository
- * returns the base address.
- *
- * 2. No suitable address/size pair was found. The repository
- * assumes an address in the regular (not mapped) virtual address
- * space of the process and returns 0. In this case, the
- * based-pointer uses its address as an offset to it's base
- * address 0.
- */
- ACE_Based_Pointer_Basic (void);
-
- /**
- * Initialize this object using the <initial> pointer. This
- * constructor initializes the <base_offset_> by asking the
- * <ACE_BASED_POINTER_REPOSITORY> Singleton for the base address of
- * the memory region within which it is instantiated. Three results
- * are possible:
- *
- * 1. An <ACE_*_Memory_Pool> has stored a base address/size pair and the
- * new based-pointer instance is located between the base address and
- * the base address + size - 1. In this case, the repository
- * returns the base address.
- *
- * 2. No suitable address/size pair was found. The repository
- * assumes an address in the regular (not mapped) virtual address
- * space of the process and returns 0. In this case, the
- * based-pointer uses its address as an offset to its base
- * address 0.
- *
- * 3. If <initial> is 0 then set the value of <target_> to -1, which
- * indicates a "NULL" pointer.
- */
- ACE_Based_Pointer_Basic (CONCRETE *initial);
-
- /// Copy constructor.
- ACE_Based_Pointer_Basic (const ACE_Based_Pointer_Basic<CONCRETE> &);
-
- /// Constructor for know base address. <o> is only used to
- /// resolve overload ambiguity.
- ACE_Based_Pointer_Basic (const void *base_addr, int o);
-
- /// Pseudo-assignment operator.
- void operator = (CONCRETE *from);
-
- /// Pseudo-assignment operator.
- void operator = (const ACE_Based_Pointer_Basic<CONCRETE> &);
-
- /// Dereference operator.
- CONCRETE operator * (void) const;
-
- /// Less than operator.
- int operator < (const ACE_Based_Pointer_Basic<CONCRETE> &) const;
-
- /// Less than or equal operator.
- int operator <= (const ACE_Based_Pointer_Basic<CONCRETE> &) const;
-
- /// Greater than operator.
- int operator > (const ACE_Based_Pointer_Basic<CONCRETE> &) const;
-
- /// Greater than or equal operator.
- int operator >= (const ACE_Based_Pointer_Basic<CONCRETE> &) const;
-
- /// Equality operator.
- int operator == (const ACE_Based_Pointer_Basic<CONCRETE> &) const;
-
- /// Inequality operator.
- int operator != (const ACE_Based_Pointer_Basic<CONCRETE> &) const;
-
- /// Subscript operator.
- CONCRETE operator [](int index) const;
-
- /// Increment operator.
- void operator+= (int index);
-
- /// Returns the underlying memory address of the smart pointer.
- operator CONCRETE *() const;
-
- /// Returns the underlying memory address of the smart pointer.
- CONCRETE *addr (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /// Dump the state of the object.
- void dump (void) const;
-
-protected:
- long target_;
-
- /// Keep track of our offset from the base pointer.
- long base_offset_;
-};
-
-/**
- * @class ACE_Based_Pointer
- *
- * @brief A smart proxy that keeps track of the relative offset of a
- * "pointer" from its base address.
- *
- * This class makes it possible to transparently use "pointers" in
- * shared memory as easily as programming with pointers to local
- * memory by overloading the C++ delegation operator ->().
- */
-template <class CONCRETE>
-class ACE_Based_Pointer : public ACE_Based_Pointer_Basic<CONCRETE>
-{
-public:
- // = Initialization method.
- /// Constructor. See constructor for <ACE_Based_Pointer_Basic> for
- /// details.
- ACE_Based_Pointer (void);
-
- /// Initialize this object using the <initial> pointer. See
- /// constructor for <ACE_Based_Pointer_Basic> for details.
- ACE_Based_Pointer (CONCRETE *initial);
-
- /// Initialize this object with known <base_addr>. <dummy> is
- /// a dummy value used to resolve overload ambiguity and it
- /// otherwise ignored.
- ACE_Based_Pointer (const void *base_addr, int dummy);
-
- /// Copy constructor (not implemented yet).
- ACE_Based_Pointer (const ACE_Based_Pointer<CONCRETE> &);
-
- /// Assignment operator.
- void operator = (const ACE_Based_Pointer<CONCRETE> &);
-
- /// Pseudo-assignment operator.
- void operator = (CONCRETE *from);
-
- /// The C++ "delegation operator".
- CONCRETE *operator-> (void);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Based_Pointer_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Based_Pointer_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Based_Pointer_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_BASED_POINTER_T_H */
diff --git a/ace/Based_Pointer_T.i b/ace/Based_Pointer_T.i
deleted file mode 100644
index 1d99f9ecaa8..00000000000
--- a/ace/Based_Pointer_T.i
+++ /dev/null
@@ -1,136 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#define ACE_COMPUTE_BASED_POINTER(P) (((char *) (P) - (P)->base_offset_) + (P)->target_)
-
-template <class CONCRETE> ACE_INLINE CONCRETE *
-ACE_Based_Pointer<CONCRETE>::operator->(void)
-{
- ACE_TRACE ("ACE_Based_Pointer<CONCRETE>::operator->");
- return (CONCRETE *)(ACE_COMPUTE_BASED_POINTER (this));
-}
-
-template <class CONCRETE> ACE_INLINE void
-ACE_Based_Pointer_Basic<CONCRETE>::operator = (CONCRETE *rhs)
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::operator =");
- if (rhs == 0)
- // Store a value of <target_> that indicate "NULL" pointer.
- this->target_ = -1;
- else
- this->target_ = ((char *) rhs
- - ((char *) this - this->base_offset_));
-}
-
-template <class CONCRETE> ACE_INLINE void
-ACE_Based_Pointer<CONCRETE>::operator = (CONCRETE *rhs)
-{
- ACE_TRACE ("ACE_Based_Pointer<CONCRETE>::operator =");
- if (rhs == 0)
- // Store a value of <target_> that indicate "NULL" pointer.
- this->target_ = -1;
- else
- this->target_ = ((char *) rhs
- - ((char *) this - this->base_offset_));
-}
-
-template <class CONCRETE> ACE_INLINE CONCRETE
-ACE_Based_Pointer_Basic<CONCRETE>::operator *(void) const
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::operator *");
- return *ACE_reinterpret_cast (CONCRETE *,
- ACE_COMPUTE_BASED_POINTER (this));
-}
-
-template <class CONCRETE> ACE_INLINE CONCRETE *
-ACE_Based_Pointer_Basic<CONCRETE>::addr (void) const
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::addr");
-
- if (this->target_ == -1)
- return 0;
- else
- return ACE_reinterpret_cast (CONCRETE *,
- ACE_COMPUTE_BASED_POINTER (this));
-}
-
-template <class CONCRETE> ACE_INLINE
-ACE_Based_Pointer_Basic<CONCRETE>::operator CONCRETE *() const
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::operator CONCRETE *()");
-
- return this->addr ();
-}
-
-template <class CONCRETE> ACE_INLINE CONCRETE
-ACE_Based_Pointer_Basic<CONCRETE>::operator [] (int index) const
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::operator []");
- CONCRETE *c = ACE_reinterpret_cast (CONCRETE *,
- ACE_COMPUTE_BASED_POINTER (this));
- return c[index];
-}
-
-template <class CONCRETE> ACE_INLINE void
-ACE_Based_Pointer_Basic<CONCRETE>::operator += (int index)
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::operator +=");
- this->base_offset_ += (index * sizeof (CONCRETE));
-}
-
-template <class CONCRETE> ACE_INLINE int
-ACE_Based_Pointer_Basic<CONCRETE>::operator == (const ACE_Based_Pointer_Basic<CONCRETE> &rhs) const
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::operator ==");
- return ACE_COMPUTE_BASED_POINTER (this) == ACE_COMPUTE_BASED_POINTER (&rhs);
-}
-
-template <class CONCRETE> ACE_INLINE int
-ACE_Based_Pointer_Basic<CONCRETE>::operator != (const ACE_Based_Pointer_Basic<CONCRETE> &rhs) const
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::operator !=");
- return !(*this == rhs);
-}
-
-template <class CONCRETE> ACE_INLINE int
-ACE_Based_Pointer_Basic<CONCRETE>::operator < (const ACE_Based_Pointer_Basic<CONCRETE> &rhs) const
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::operator <");
- return ACE_COMPUTE_BASED_POINTER (this) < ACE_COMPUTE_BASED_POINTER (&rhs);
-}
-
-template <class CONCRETE> ACE_INLINE int
-ACE_Based_Pointer_Basic<CONCRETE>::operator <= (const ACE_Based_Pointer_Basic<CONCRETE> &rhs) const
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::operator <=");
- return ACE_COMPUTE_BASED_POINTER (this) <= ACE_COMPUTE_BASED_POINTER (&rhs);
-}
-
-template <class CONCRETE> ACE_INLINE int
-ACE_Based_Pointer_Basic<CONCRETE>::operator > (const ACE_Based_Pointer_Basic<CONCRETE> &rhs) const
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::operator >");
- return ACE_COMPUTE_BASED_POINTER (this) > ACE_COMPUTE_BASED_POINTER (&rhs);
-}
-
-template <class CONCRETE> ACE_INLINE int
-ACE_Based_Pointer_Basic<CONCRETE>::operator >= (const ACE_Based_Pointer_Basic<CONCRETE> &rhs) const
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::operator >=");
- return ACE_COMPUTE_BASED_POINTER (this) >= ACE_COMPUTE_BASED_POINTER (&rhs);
-}
-
-template <class CONCRETE> ACE_INLINE void
-ACE_Based_Pointer_Basic<CONCRETE>::operator= (const ACE_Based_Pointer_Basic<CONCRETE> &rhs)
-{
- ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::operator=");
- *this = rhs.addr ();
-}
-
-template <class CONCRETE> ACE_INLINE void
-ACE_Based_Pointer<CONCRETE>::operator= (const ACE_Based_Pointer<CONCRETE> &rhs)
-{
- ACE_TRACE ("ACE_Based_Pointer<CONCRETE>::operator=");
- *this = rhs.addr ();
-}
-
diff --git a/ace/Basic_Stats.cpp b/ace/Basic_Stats.cpp
deleted file mode 100644
index 00509d827ce..00000000000
--- a/ace/Basic_Stats.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$
-
-#include "ace/Basic_Stats.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Basic_Stats.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Basic_Stats, "$Id$")
-
-void
-ACE_Basic_Stats::accumulate (const ACE_Basic_Stats &rhs)
-{
- if (rhs.samples_count_ == 0)
- return;
-
- if (this->samples_count_ == 0)
- {
- this->samples_count_ = rhs.samples_count_;
-
- this->min_ = rhs.min_;
- this->max_ = rhs.max_;
- this->sum_ = rhs.sum_;
- this->sum2_ = rhs.sum2_;
-
- return;
- }
- this->samples_count_ += rhs.samples_count_;
-
- if (this->min_ > rhs.min_)
- this->min_ = rhs.min_;
- if (this->max_ < rhs.max_)
- this->max_ = rhs.max_;
-
- this->sum_ += rhs.sum_;
- this->sum2_ += rhs.sum2_;
-}
-
-void
-ACE_Basic_Stats::dump_results (const ACE_TCHAR *msg,
- ACE_UINT32 sf) const
-{
- if (this->samples_count () == 0u)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("%s : no data collected\n"), msg));
- return;
- }
-
- ACE_UINT64 avg = this->sum_ / this->samples_count_;
- ACE_UINT64 dev =
-#if defined ACE_LACKS_LONGLONG_T
- ACE_static_cast (ACE_U_LongLong,
- this->sum2_ / this->samples_count_)
- - avg * ACE_U64_TO_U32(avg);
-#else /* ! ACE_LACKS_LONGLONG_T */
- this->sum2_ / this->samples_count_ - avg * avg;
-#endif /* ! ACE_LACKS_LONGLONG_T */
-
- double l_min = ACE_CU64_TO_CU32 (this->min_) / sf;
- double l_max = ACE_CU64_TO_CU32 (this->max_) / sf;
- double l_avg = ACE_CU64_TO_CU32 (avg) / sf;
- double l_dev = ACE_CU64_TO_CU32 (dev) / (sf * sf);
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("%s latency : %.2f[%d]/%.2f/%.2f[%d]/%.2f (min/avg/max/var^2)\n"),
- msg,
- l_min, this->min_at_,
- l_avg,
- l_max, this->max_at_,
- l_dev));
-}
diff --git a/ace/Basic_Stats.h b/ace/Basic_Stats.h
deleted file mode 100644
index 79fe5bc08ac..00000000000
--- a/ace/Basic_Stats.h
+++ /dev/null
@@ -1,87 +0,0 @@
-
-//=============================================================================
-/**
- * @file Basic_Stats.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_BASIC_STATS_H
-#define ACE_BASIC_STATS_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-#include "ace/Basic_Types.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/// Collect basic stats about a series of samples
-/**
- * Compute the average and standard deviation (aka jitter) for an
- * arbitrary number of samples, using constant space.
- * Normally used for latency statistics.
- */
-class ACE_Export ACE_Basic_Stats
-{
-public:
- /// Constructor
- /**
- * The number of samples is pre-allocated, and cannot changes once
- * the class is initialized.
- */
- ACE_Basic_Stats (void);
-
- /// The number of samples received so far
- ACE_UINT32 samples_count (void) const;
-
- /// Record one sample.
- void sample (ACE_UINT64 value);
-
- /// Update the values to reflect the stats in @a rhs.
- void accumulate (const ACE_Basic_Stats &rhs);
-
- /// Dump all the samples
- /**
- * Prints out the results, using @a msg as a prefix for each message and
- * scaling all the numbers by @a scale_factor. The latter is useful because
- * high resolution timer samples are acquired in clock ticks, but often
- * presented in microseconds.
- */
- void dump_results (const ACE_TCHAR *msg,
- ACE_UINT32 scale_factor) const;
-
-private:
- /// The number of samples
- ACE_UINT32 samples_count_;
-
- /// The minimum value
- ACE_UINT64 min_;
-
- /// The number of the sample that had the minimum value
- ACE_UINT32 min_at_;
-
- /// The maximum value
- ACE_UINT64 max_;
-
- /// The number of the sample that had the maximum value
- ACE_UINT32 max_at_;
-
- /// The sum of all the values
- ACE_UINT64 sum_;
-
- /// The sum of the square of all the values
- ACE_UINT64 sum2_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Basic_Stats.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_BASIC_STATS_H */
diff --git a/ace/Basic_Stats.inl b/ace/Basic_Stats.inl
deleted file mode 100644
index 4ed1baca459..00000000000
--- a/ace/Basic_Stats.inl
+++ /dev/null
@@ -1,59 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_Basic_Stats::ACE_Basic_Stats (void)
- : samples_count_ (0)
- , min_ (0)
- , min_at_ (0)
- , max_ (0)
- , max_at_ (0)
- , sum_ (0)
- , sum2_ (0)
-{
-}
-
-ACE_INLINE ACE_UINT32
-ACE_Basic_Stats::samples_count (void) const
-{
- return this->samples_count_;
-}
-
-ACE_INLINE void
-ACE_Basic_Stats::sample (ACE_UINT64 value)
-{
- ++this->samples_count_;
-
- if (this->samples_count_ == 1u)
- {
- this->min_ = value;
- this->min_at_ = this->samples_count_;
- this->max_ = value;
- this->max_at_ = this->samples_count_;
- this->sum_ = value;
-#if defined ACE_LACKS_LONGLONG_T
- this->sum2_ = value * ACE_U64_TO_U32 (value);
-#else /* ! ACE_LACKS_LONGLONG_T */
- this->sum2_ = value * value;
-#endif /* ! ACE_LACKS_LONGLONG_T */
- }
- else
- {
- if (this->min_ > value)
- {
- this->min_ = value;
- this->min_at_ = this->samples_count_;
- }
- if (this->max_ < value)
- {
- this->max_ = value;
- this->max_at_ = this->samples_count_;
- }
-
- this->sum_ += value;
-#if defined ACE_LACKS_LONGLONG_T
- this->sum2_ += value * ACE_U64_TO_U32 (value);
-#else /* ! ACE_LACKS_LONGLONG_T */
- this->sum2_ += value * value;
-#endif /* ! ACE_LACKS_LONGLONG_T */
- }
-}
diff --git a/ace/Basic_Types.cpp b/ace/Basic_Types.cpp
deleted file mode 100644
index f58419f09e8..00000000000
--- a/ace/Basic_Types.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-#include "ace/OS.h"
-
-#if !defined (__ACE_INLINE__)
-# include "ace/Basic_Types.i"
-#endif /* ! __ACE_INLINE__ */
-
-
-ACE_RCSID (ace,
- Basic_Types,
- "$Id$")
-
-
-#if defined (ACE_LACKS_LONGLONG_T)
-# include "ace/Log_Msg.h"
-# if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
-# include "ace/streams.h"
-# endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-
-void
-ACE_U_LongLong::output (FILE *file) const
-{
- if (h_ () > 0)
- ACE_OS::fprintf (file, "0x%lx%0*lx", h_ (), 2 * sizeof l_ (), l_ ());
- else
- ACE_OS::fprintf (file, "0x%lx", l_ ());
-}
-
-
-ACE_TCHAR *
-ACE_U_LongLong::as_string (ACE_TCHAR *output,
- unsigned int base,
- unsigned int uppercase) const
-{
- if (*this == 0)
- {
- ACE_OS::strcpy(output, "0");
- }
- else
- {
- switch(base)
- {
- case 8:
- {
- unsigned int index = 0;
- int bshift = 31;
- while(bshift >= 1)
- {
- unsigned int sval = (this->h_ () >> bshift) & 7;
- if (sval > 0 || index != 0)
- {
- output[index] = sval + '0';
- index++;
- }
- bshift -= 3;
- }
- bshift = 30;
- while(bshift >= 0)
- {
- unsigned int sval = (this->l_ () >> bshift) & 7;
- // Combine the last bit of hi with the first 3-bit digit
- if (bshift == 30)
- {
- sval |= (this->h_ () & 1) << 2;
- }
- if (sval > 0 || index != 0)
- {
- output[index] = sval + '0';
- index++;
- }
- bshift -= 3;
- }
- output[index] = '\0';
- break;
- }
- case 10:
- {
- ACE_OS::sprintf(output, "%.0f", *this / 1.0);
- break;
- }
- case 16:
- {
- if (this->h_ () != 0)
- {
- ACE_OS::sprintf(output,
- (uppercase ? "%lX%0*lX" : "%lx%0*lx"),
- this->h_ (), 2 * sizeof this->l_ (),
- this->l_ ());
- }
- else
- {
- ACE_OS::sprintf(output,
- (uppercase ? "%lX" : "%lx"), this->l_ ());
-
- }
- break;
- }
- default:
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Unsupported base = %u\n"), base));
- output[0] = '\0';
- }
- }
- }
-
- return output;
-}
-
-
-# if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
-ostream&
-operator<< (ostream& os, const ACE_U_LongLong& ll)
-{
- unsigned long flags = os.setf(0);
- char buffer[32];
-
- if ((flags & ios::oct) != 0)
- os << ll.as_string (buffer, 8);
- else if ((flags & ios::hex) != 0)
- os << ll.as_string (buffer, 16, (flags & ios::uppercase));
- else
- os << ll.as_string (buffer);
- return os;
-}
-# endif
-
-
-#endif /* ACE_LACKS_LONGLONG_T */
-
-// Explicit template instantiation file
-#include "ace/Template_Instantiations.cpp"
diff --git a/ace/Basic_Types.h b/ace/Basic_Types.h
deleted file mode 100644
index 97369369461..00000000000
--- a/ace/Basic_Types.h
+++ /dev/null
@@ -1,668 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Basic_Types.h
- *
- * $Id$
- *
- * @author David L. Levine
- *
- * #defines the list of preprocessor macros below. The config.h file can
- * pre-define any of these to short-cut the definitions. This is usually
- * only necessary if the preprocessor does all of its math using integers.
- *
- * Sizes of built-in types:
- * - ACE_SIZEOF_CHAR
- * - ACE_SIZEOF_WCHAR
- * - ACE_SIZEOF_SHORT
- * - ACE_SIZEOF_INT
- * - ACE_SIZEOF_LONG
- * - ACE_SIZEOF_LONG_LONG
- * - ACE_SIZEOF_VOID_P
- * - ACE_SIZEOF_FLOAT
- * - ACE_SIZEOF_DOUBLE
- * - ACE_SIZEOF_LONG_DOUBLE
- *
- * Wrappers for built-in types of specific sizes:
- * - ACE_USHORT16 (For backward compatibility. Use ACE_UINT16 instead.)
- * - ACE_INT16
- * - ACE_UINT16
- * - ACE_INT32
- * - ACE_UINT32
- * - ACE_UINT64
- * (Note: ACE_INT64 is not defined, because there is no ACE_LongLong for
- * platforms that don't have a native 8-byte integer type.)
- *
- * Byte-order (endian-ness) determination:
- * ACE_BYTE_ORDER, to either ACE_BIG_ENDIAN or ACE_LITTLE_ENDIAN
- *
- *
- */
-//=============================================================================
-
-#ifndef ACE_BASIC_TYPES_H
-# define ACE_BASIC_TYPES_H
-
-# include "ace/pre.h"
-
-# include "ace/config-all.h"
-
-# if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-# endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Pull in definitions
-# include /**/ <limits.h> // Integer limits
-# include /**/ <float.h> // Floating point limits
-# include /**/ <stdlib.h> // Other types
-
-# if defined(ACE_LACKS_LONGLONG_T)
-# include /**/ <stdarg.h> // LynxOS requires this before stdio.h
-# include /**/ <stdio.h> // For long long emulation
-# endif /* ACE_LACKS_LONGLONG_T */
-
-# if !defined (ACE_LACKS_SYS_TYPES_H)
-# include /**/ <sys/types.h>
-# endif /* ACE_LACKS_SYS_TYPES_H */
-
-# if !defined (ACE_LACKS_PARAM_H)
-# include /**/ <sys/param.h>
-# endif /* ACE_LACKS_PARAM_H */
-
-# include "ace/ACE_export.h"
-
-// Pick up MAXPATHLEN without need of OS.h.
-#if !defined (MAXPATHLEN)
-# if defined (ACE_WIN32)
-# define MAXPATHLEN _MAX_PATH
-# elif defined (_POSIX_PATH_MAX)
-# define MAXPATHLEN _POSIX_PATH_MAX
-# else
-# define MAXPATHLEN 1024
-# endif /* ACE_WIN32 */
-#endif /* MAXPATHLEN */
-
-// A char always has 1 byte, by definition.
-# define ACE_SIZEOF_CHAR 1
-
-// Unfortunately, there isn't a portable way to determine the size of a wchar.
-// So we just define them on a platform basis.
-# if defined (ACE_HAS_WCHAR)
-# if !defined (ACE_SIZEOF_WCHAR)
-# if defined (ACE_HAS_XPG4_MULTIBYTE_CHAR)
-# define ACE_SIZEOF_WCHAR sizeof (wchar_t)
-# else
-// 0 so the Basic_Types test will catch this.
-# define ACE_SIZEOF_WCHAR 0
-# endif /* ACE_HAS_XPG4_MULTIBYTE_CHAR */
-# endif /* !ACE_SIZEOF_WCHAR */
-# endif /* ACE_HAS_WCHAR */
-
-// The number of bytes in a short.
-# if !defined (ACE_SIZEOF_SHORT)
-# if (USHRT_MAX) == 255U
-# define ACE_SIZEOF_SHORT 1
-# elif (USHRT_MAX) == 65535U
-# define ACE_SIZEOF_SHORT 2
-# elif (USHRT_MAX) == 4294967295U
-# define ACE_SIZEOF_SHORT 4
-# elif (USHRT_MAX) == 18446744073709551615U
-# define ACE_SIZEOF_SHORT 8
-# else
-# error: unsupported short size, must be updated for this platform!
-# endif /* USHRT_MAX */
-# endif /* !defined (ACE_SIZEOF_SHORT) */
-
-// The number of bytes in an int.
-# if !defined (ACE_SIZEOF_INT)
-# if (UINT_MAX) == 65535U
-# define ACE_SIZEOF_INT 2
-# elif (UINT_MAX) == 4294967295U
-# define ACE_SIZEOF_INT 4
-# elif (UINT_MAX) == 18446744073709551615U
-# define ACE_SIZEOF_INT 8
-# else
-# error: unsupported int size, must be updated for this platform!
-# endif /* UINT_MAX */
-# endif /* !defined (ACE_SIZEOF_INT) */
-
-// The number of bytes in a long.
-// NOTE - since preprocessors only need to do integer math, this is a likely
-// place for a preprocessor to not properly support being able to figure out
-// the proper size. HP aC++ and GNU gcc have this difficulty so watch out.
-# if !defined (ACE_SIZEOF_LONG)
-# if (ULONG_MAX) == 65535UL
-# define ACE_SIZEOF_LONG 2
-# elif ((ULONG_MAX) == 4294967295UL)
-# define ACE_SIZEOF_LONG 4
-# elif ((ULONG_MAX) == 18446744073709551615UL)
-# define ACE_SIZEOF_LONG 8
-# else
-# error: unsupported long size, must be updated for this platform!
-# endif /* ULONG_MAX */
-# endif /* !defined (ACE_SIZEOF_LONG) */
-
-// The number of bytes in a long long.
-# if !defined (ACE_SIZEOF_LONG_LONG)
-# if defined (ACE_LACKS_LONGLONG_T)
-# define ACE_SIZEOF_LONG_LONG 8
-# else /* ! ACE_WIN32 && ! ACE_LACKS_LONGLONG_T */
-# if ACE_SIZEOF_LONG == 8
-# define ACE_SIZEOF_LONG_LONG 8
- typedef unsigned long ACE_UINT64;
-# elif defined (ULLONG_MAX) && !defined (__GNUG__)
- // Some compilers use ULLONG_MAX and others, e.g. Irix, use
- // ULONGLONG_MAX.
-# if (ULLONG_MAX) == 18446744073709551615ULL
-# define ACE_SIZEOF_LONG_LONG 8
-# elif (ULLONG_MAX) == 4294967295ULL
-# define ACE_SIZEOF_LONG_LONG 4
-# else
-# error Unsupported long long size needs to be updated for this platform
-# endif
- typedef unsigned long long ACE_UINT64;
-# elif defined (ULONGLONG_MAX) && !defined (__GNUG__)
- // Irix 6.x, for example.
-# if (ULONGLONG_MAX) == 18446744073709551615ULL
-# define ACE_SIZEOF_LONG_LONG 8
-# elif (ULONGLONG_MAX) == 4294967295ULL
-# define ACE_SIZEOF_LONG_LONG 4
-# else
-# error Unsupported long long size needs to be updated for this platform
-# endif
- typedef unsigned long long ACE_UINT64;
-# else
- // ACE_SIZEOF_LONG_LONG is not yet known, but the platform doesn't
- // claim ACE_LACKS_LONGLONG_T, so assume it has 8-byte long longs.
-# define ACE_SIZEOF_LONG_LONG 8
-# if defined (sun) && !defined (ACE_LACKS_U_LONGLONG_T)
- // sun #defines u_longlong_t, maybe other platforms do also.
- // Use it, at least with g++, so that its -pedantic doesn't
- // complain about no ANSI C++ long long.
- typedef u_longlong_t ACE_UINT64;
-# else
- // LynxOS 2.5.0 and Linux don't have u_longlong_t.
- typedef unsigned long long ACE_UINT64;
-# endif /* sun */
-# endif /* ULLONG_MAX && !__GNUG__ */
-# endif /* ! ACE_WIN32 && ! ACE_LACKS_LONGLONG_T */
-# endif /* !defined (ACE_SIZEOF_LONG_LONG) */
-
-// The sizes of the commonly implemented types are now known. Set up
-// typedefs for whatever we can. Some of these are needed for certain cases
-// of ACE_UINT64, so do them before the 64-bit stuff.
-
-# if ACE_SIZEOF_SHORT == 2
- typedef short ACE_INT16;
- typedef unsigned short ACE_UINT16;
-# elif ACE_SIZEOF_INT == 2
- typedef int ACE_INT16;
- typedef unsigned int ACE_UINT16;
-# elif (ACE_SIZEOF_SHORT) == 4 && defined(_CRAYMPP)
- // mpp cray - uses Alpha processors
- // Use the real 32-bit quantity for ACE_INT32's, and use a "long"
- // for ACE_INT16's. This gets around conflicts with size_t in some ACE
- // method signatures, among other things.
- typedef long ACE_INT16;
- typedef unsigned long ACE_UINT16;
- typedef short ACE_INT32;
- typedef unsigned short ACE_UINT32;
-# elif (ACE_SIZEOF_SHORT) == 8 && defined(_UNICOS)
- // vector cray - hard 64-bit, all 64 bit types
- typedef short ACE_INT16;
- typedef unsigned short ACE_UINT16;
-# else
-# error Have to add to the ACE_UINT16 type setting
-# endif
-
-typedef ACE_UINT16 ACE_USHORT16; // @@ Backward compatibility.
-
-// Define a generic byte for use in codecs
-typedef unsigned char ACE_Byte;
-
-// Define a pseudo wide character type when wchar is not supported so we
-// can support basic wide character string operations.
-
-# if defined (ACE_HAS_WCHAR) || defined (ACE_HAS_XPG4_MULTIBYTE_CHAR)
-# define ACE_WINT_T wint_t
-# define ACE_WCHAR_T wchar_t
-# else
-# define ACE_WINT_T ACE_UINT16
-# define ACE_WCHAR_T ACE_UINT16
-# endif /* ACE_HAS_WCHAR */
-
-# if ACE_SIZEOF_INT == 4
- typedef int ACE_INT32;
- typedef unsigned int ACE_UINT32;
-# if defined (__KCC) && !defined (ACE_LACKS_LONGLONG_T)
- typedef unsigned long long ACE_UINT64;
-# endif /* __KCC */
-# elif ACE_SIZEOF_LONG == 4
- typedef long ACE_INT32;
- typedef unsigned long ACE_UINT32;
-# elif (ACE_SIZEOF_INT) == 8 && defined(_UNICOS)
- // vector cray - hard 64-bit, all 64 bit types
-# if !defined(_CRAYMPP)
- typedef int ACE_INT32;
- typedef unsigned int ACE_UINT32;
-# endif
- typedef unsigned long long ACE_UINT64;
-# else
-# error Have to add to the ACE_UINT32 type setting
-# endif
-
-// The number of bytes in a void *.
-# ifndef ACE_SIZEOF_VOID_P
-# define ACE_SIZEOF_VOID_P ACE_SIZEOF_LONG
-# endif /* ACE_SIZEOF_VOID_P */
-
-// Type for doing arithmetic on pointers ... as elsewhere, we assume
-// that unsigned versions of a type are the same size as the signed
-// version of the same type.
-#if ACE_SIZEOF_VOID_P == ACE_SIZEOF_INT
-# if defined (__SUNPRO_CC)
- // For unknown reasons, Sun CC 5.0 won't allow a reintepret cast
- // of a 64-bit pointer to a 64-bit int.
- typedef unsigned long ptr_arith_t;
-# else /* ! __SUNPRO_CC */
- typedef unsigned int ptr_arith_t;
-# endif /* ! __SUNPRO_CC */
-#elif ACE_SIZEOF_VOID_P == ACE_SIZEOF_LONG
- typedef unsigned long ptr_arith_t;
-#elif ACE_SIZEOF_VOID_P == ACE_SIZEOF_LONG_LONG
- typedef unsigned long long ptr_arith_t;
-#else
-# error "Can't find a suitable type for doing pointer arithmetic."
-#endif /* ACE_SIZEOF_VOID_P */
-
-// Byte-order (endian-ness) determination.
-# if defined (BYTE_ORDER)
-# if (BYTE_ORDER == LITTLE_ENDIAN)
-# define ACE_LITTLE_ENDIAN 0x0123
-# define ACE_BYTE_ORDER ACE_LITTLE_ENDIAN
-# elif (BYTE_ORDER == BIG_ENDIAN)
-# define ACE_BIG_ENDIAN 0x3210
-# define ACE_BYTE_ORDER ACE_BIG_ENDIAN
-# else
-# error: unknown BYTE_ORDER!
-# endif /* BYTE_ORDER */
-# elif defined (_BYTE_ORDER)
-# if (_BYTE_ORDER == _LITTLE_ENDIAN)
-# define ACE_LITTLE_ENDIAN 0x0123
-# define ACE_BYTE_ORDER ACE_LITTLE_ENDIAN
-# elif (_BYTE_ORDER == _BIG_ENDIAN)
-# define ACE_BIG_ENDIAN 0x3210
-# define ACE_BYTE_ORDER ACE_BIG_ENDIAN
-# else
-# error: unknown _BYTE_ORDER!
-# endif /* _BYTE_ORDER */
-# elif defined (__BYTE_ORDER)
-# if (__BYTE_ORDER == __LITTLE_ENDIAN)
-# define ACE_LITTLE_ENDIAN 0x0123
-# define ACE_BYTE_ORDER ACE_LITTLE_ENDIAN
-# elif (__BYTE_ORDER == __BIG_ENDIAN)
-# define ACE_BIG_ENDIAN 0x3210
-# define ACE_BYTE_ORDER ACE_BIG_ENDIAN
-# else
-# error: unknown __BYTE_ORDER!
-# endif /* __BYTE_ORDER */
-# else /* ! BYTE_ORDER && ! __BYTE_ORDER */
- // We weren't explicitly told, so we have to figure it out . . .
-# if defined (i386) || defined (__i386__) || defined (_M_IX86) || \
- defined (vax) || defined (__alpha) || defined (__LITTLE_ENDIAN__) ||\
- defined (ARM) || defined (_M_IA64)
- // We know these are little endian.
-# define ACE_LITTLE_ENDIAN 0x0123
-# define ACE_BYTE_ORDER ACE_LITTLE_ENDIAN
-# else
- // Otherwise, we assume big endian.
-# define ACE_BIG_ENDIAN 0x3210
-# define ACE_BYTE_ORDER ACE_BIG_ENDIAN
-# endif
-# endif /* ! BYTE_ORDER && ! __BYTE_ORDER */
-
-#if defined (ACE_LACKS_LONGLONG_T)
- // This throws away the high 32 bits. It's very unlikely that a
- // pointer will be more than 32 bits wide if the platform does not
- // support 64-bit integers.
-# define ACE_LONGLONG_TO_PTR(PTR_TYPE, L) \
- ACE_reinterpret_cast (PTR_TYPE, L.lo ())
-#else /* ! ACE_LACKS_LONGLONG_T */
-# define ACE_LONGLONG_TO_PTR(PTR_TYPE, L) \
- ACE_reinterpret_cast (PTR_TYPE, ACE_static_cast (ptr_arith_t, L))
-#endif /* ! ACE_LACKS_LONGLONG_T */
-
-// If the platform lacks a long long, define one.
-# if defined (ACE_LACKS_LONGLONG_T)
-# if defined (ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION)
-// Forward declaration for streams
-# include "ace/iosfwd.h"
-# else /* ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION */
-// Else they will get all the stream header files
-# include "ace/streams.h"
-# endif /* ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION */
-
-/**
- * @class ACE_U_LongLong
- *
- * @brief Unsigned long long for platforms that don't have one.
- *
- * Provide our own unsigned long long. This is intended to be
- * use with ACE_High_Res_Timer, so the division operator assumes
- * that the quotient fits into a u_long.
- * Please note that the constructor takes (optionally) two values.
- * The high one contributes 0x100000000 times its value. So,
- * for example, (0, 2) is _not_ 20000000000, but instead
- * 0x200000000. To emphasize this, the default values are expressed
- * in hex, and output () dumps the value in hex.
- */
- class ACE_Export ACE_U_LongLong
- {
- public:
- // = Initialization and termination methods.
- ACE_U_LongLong (const ACE_UINT32 lo = 0x0, const ACE_UINT32 hi = 0x0);
- ACE_U_LongLong (const ACE_U_LongLong &);
- ACE_U_LongLong &operator= (const ACE_U_LongLong &);
- ACE_U_LongLong &operator= (const ACE_INT32 &);
- ACE_U_LongLong &operator= (const ACE_UINT32 &);
- ~ACE_U_LongLong (void);
-
- // = Overloaded relation operators.
- int operator== (const ACE_U_LongLong &) const;
- int operator== (const ACE_UINT32) const;
- int operator!= (const ACE_U_LongLong &) const;
- int operator!= (const ACE_UINT32) const;
- int operator< (const ACE_U_LongLong &) const;
- int operator< (const ACE_UINT32) const;
- int operator<= (const ACE_U_LongLong &) const;
- int operator<= (const ACE_UINT32) const;
- int operator> (const ACE_U_LongLong &) const;
- int operator> (const ACE_UINT32) const;
- int operator>= (const ACE_U_LongLong &) const;
- int operator>= (const ACE_UINT32) const;
-
- ACE_U_LongLong operator+ (const ACE_U_LongLong &) const;
- ACE_U_LongLong operator+ (const ACE_UINT32) const;
- ACE_U_LongLong operator- (const ACE_U_LongLong &) const;
- ACE_U_LongLong operator- (const ACE_UINT32) const;
- ACE_U_LongLong operator* (const ACE_UINT32) const;
- ACE_U_LongLong &operator*= (const ACE_UINT32);
-
- ACE_U_LongLong operator<< (const unsigned int) const;
- ACE_U_LongLong &operator<<= (const unsigned int);
- ACE_U_LongLong operator>> (const unsigned int) const;
- ACE_U_LongLong &operator>>= (const unsigned int);
-
- double operator/ (const double) const;
-
- ACE_U_LongLong &operator+= (const ACE_U_LongLong &);
- ACE_U_LongLong &operator+= (const ACE_UINT32);
- ACE_U_LongLong &operator-= (const ACE_U_LongLong &);
- ACE_U_LongLong &operator-= (const ACE_UINT32);
- ACE_U_LongLong &operator++ ();
- ACE_U_LongLong &operator-- ();
- const ACE_U_LongLong operator++ (int);
- const ACE_U_LongLong operator-- (int);
- ACE_U_LongLong &operator|= (const ACE_U_LongLong);
- ACE_U_LongLong &operator|= (const ACE_UINT32);
- ACE_U_LongLong &operator&= (const ACE_U_LongLong);
- ACE_U_LongLong &operator&= (const ACE_UINT32);
-
- // Note that the following take ACE_UINT32 arguments. These are
- // typical use cases, and easy to implement. But, they limit the
- // return values to 32 bits as well. There are no checks for
- // overflow.
- ACE_UINT32 operator/ (const ACE_UINT32) const;
- ACE_UINT32 operator% (const ACE_UINT32) const;
-
- // The following only operate on the lower 32 bits (they take only
- // 32 bit arguments).
- ACE_UINT32 operator| (const ACE_INT32) const;
- ACE_UINT32 operator& (const ACE_INT32) const;
-
- // The following operators convert their arguments to
- // ACE_UINT32. So, there may be information loss if they are
- // used.
- ACE_U_LongLong operator* (const ACE_INT32) const;
- ACE_U_LongLong &operator*= (const ACE_INT32);
- ACE_UINT32 operator/ (const ACE_INT32) const;
-# if ACE_SIZEOF_INT == 4
- ACE_UINT32 operator/ (const unsigned long) const;
- ACE_UINT32 operator/ (const long) const;
-# else /* ACE_SIZEOF_INT != 4 */
- ACE_UINT32 operator/ (const unsigned int) const;
- ACE_UINT32 operator/ (const int) const;
-# endif /* ACE_SIZEOF_INT != 4 */
-
- // = Helper methods.
- /// Outputs the value to the FILE, in hex.
- void output (FILE * = stdout) const;
-
- ACE_TCHAR *as_string (ACE_TCHAR *string,
- unsigned int base = 10,
- unsigned int uppercase = 0) const;
-
- ACE_UINT32 hi (void) const;
- ACE_UINT32 lo (void) const;
-
- void hi (const ACE_UINT32 hi);
- void lo (const ACE_UINT32 lo);
-
- private:
- union
- {
- struct
- {
-# if defined (ACE_BIG_ENDIAN)
- /// High 32 bits.
- ACE_UINT32 hi_;
-
- /// Low 32 bits.
- ACE_UINT32 lo_;
-# else
- /// Low 32 bits.
- ACE_UINT32 lo_;
-
- /// High 32 bits.
- ACE_UINT32 hi_;
-# endif /* ! ACE_BIG_ENDIAN */
-
- } data_;
-
- /// To ensure alignment on 8-byte boundary.
- /**
- * @note "double" isn't usually usable with
- * ACE_LACKS_FLOATING_POINT, but this seems OK.
- */
- double for_alignment_;
- };
-
- // NOTE: the following four accessors are inlined here in
- // order to minimize the extent of the data_ struct. It's
- // only used here; the .i and .cpp files use the accessors.
-
- /// Internal utility function to hide access through struct.
- const ACE_UINT32 &h_ () const { return data_.hi_; }
-
- /// Internal utility function to hide access through struct.
- ACE_UINT32 &h_ () { return data_.hi_; }
-
- /// Internal utility function to hide access through struct.
- const ACE_UINT32 &l_ () const { return data_.lo_; }
-
- /// Internal utility function to hide access through struct.
- ACE_UINT32 &l_ () { return data_.lo_; }
-
- // NOTE: the above four accessors are inlined here in
- // order to minimize the extent of the data_ struct. It's
- // only used here; the .i and .cpp files use the accessors.
-
- /// These functions are used to implement multiplication.
- ACE_UINT32 ul_shift (ACE_UINT32 a,
- ACE_UINT32 c_in,
- ACE_UINT32 *c_out) const;
- ACE_U_LongLong ull_shift (ACE_U_LongLong a,
- ACE_UINT32 c_in,
- ACE_UINT32 *c_out) const;
- ACE_U_LongLong ull_add (ACE_U_LongLong a,
- ACE_U_LongLong b,
- ACE_UINT32 *carry) const;
- ACE_U_LongLong ull_mult (ACE_U_LongLong a,
- ACE_UINT32 b,
- ACE_UINT32 *carry) const;
- };
-
- typedef ACE_U_LongLong ACE_UINT64;
-
-#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
- ostream &operator<< (ostream &, const ACE_U_LongLong &);
-#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-
-# endif /* ACE_LACKS_LONGLONG_T */
-
-// Conversions from ACE_UINT64 to ACE_UINT32. ACE_CU64_TO_CU32 should
-// be used on const ACE_UINT64's.
-# if defined (ACE_LACKS_LONGLONG_T)
-# define ACE_U64_TO_U32(n) ((n).lo ())
-# define ACE_CU64_TO_CU32(n) ((n).lo ())
-# else /* ! ACE_LACKS_LONGLONG_T */
-# define ACE_U64_TO_U32(n) (ACE_static_cast (ACE_UINT32, (n)))
-# define ACE_CU64_TO_CU32(n) \
- (ACE_static_cast (ACE_CAST_CONST ACE_UINT32, (n)))
-# endif /* ! ACE_LACKS_LONGLONG_T */
-
-// 64-bit literals require special marking on some platforms.
-# if defined (ACE_LACKS_LONGLONG_T)
- // Can only specify 32-bit arguments.
-# define ACE_UINT64_LITERAL(n) (ACE_U_LongLong (n))
- // This one won't really work, but it'll keep
- // some compilers happy until we have better support
-# define ACE_INT64_LITERAL(n) (ACE_U_LongLong (n))
-# elif defined (ACE_WIN32)
-# if defined (__IBMCPP__) && (__IBMCPP__ >= 400)
-# define ACE_UINT64_LITERAL(n) n ## LL
-# define ACE_INT64_LITERAL(n) n ## LL
-# elif defined (__MINGW32__)
-# define ACE_UINT64_LITERAL(n) n ## ull
-# define ACE_INT64_LITERAL(n) n ## ll
-# else
-# define ACE_UINT64_LITERAL(n) n ## ui64
-# define ACE_INT64_LITERAL(n) n ## i64
-# endif /* defined (__IBMCPP__) && (__IBMCPP__ >= 400) */
-# else /* ! ACE_WIN32 && ! ACE_LACKS_LONGLONG_T */
-# define ACE_UINT64_LITERAL(n) n ## ull
-# define ACE_INT64_LITERAL(n) n ## ll
-# endif /* ! ACE_WIN32 && ! ACE_LACKS_LONGLONG_T */
-
-#if !defined (ACE_UINT64_FORMAT_SPECIFIER)
-# define ACE_UINT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%llu")
-#endif /* ACE_UINT64_FORMAT_SPECIFIER */
-
-#if !defined (ACE_INT64_FORMAT_SPECIFIER)
-# define ACE_INT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%lld")
-#endif /* ACE_INT64_FORMAT_SPECIFIER */
-
-#if !defined (ACE_SSIZE_T_FORMAT_SPECIFIER)
-# if defined (ACE_WIN64)
-# define ACE_SSIZE_T_FORMAT_SPECIFIER ACE_LIB_TEXT ("%I64d")
-# else
-# define ACE_SSIZE_T_FORMAT_SPECIFIER ACE_LIB_TEXT ("%d")
-# endif /* ACE_WIN64 */
-#endif /* ACE_SSIZE_T_FORMAT_SPECIFIER */
-
-#if !defined (ACE_SIZE_T_FORMAT_SPECIFIER)
-# if defined (ACE_WIN64)
-# define ACE_SIZE_T_FORMAT_SPECIFIER ACE_LIB_TEXT ("%I64u")
-# else
-# define ACE_SIZE_T_FORMAT_SPECIFIER ACE_LIB_TEXT ("%u")
-# endif /* ACE_WIN64 */
-#endif /* ACE_SIZE_T_FORMAT_SPECIFIER */
-
-// Cast from UINT64 to a double requires an intermediate cast to INT64
-// on some platforms.
-# if defined (ACE_LACKS_LONGLONG_T)
- // Only use the low 32 bits.
-# define ACE_UINT64_DBLCAST_ADAPTER(n) ACE_U64_TO_U32 (n)
-# elif defined (ACE_WIN32)
-# define ACE_UINT64_DBLCAST_ADAPTER(n) ACE_static_cast (__int64, n)
-# else /* ! ACE_WIN32 && ! ACE_LACKS_LONGLONG_T */
-# define ACE_UINT64_DBLCAST_ADAPTER(n) (n)
-# endif /* ! ACE_WIN32 && ! ACE_LACKS_LONGLONG_T */
-
-
-// The number of bytes in a float.
-# ifndef ACE_SIZEOF_FLOAT
-# if FLT_MAX_EXP == 128
-# define ACE_SIZEOF_FLOAT 4
-# elif FLT_MAX_EXP == 1024
-# define ACE_SIZEOF_FLOAT 8
-# else
-# error: unsupported float size, must be updated for this platform!
-# endif /* FLT_MAX_EXP */
-# endif /* ACE_SIZEOF_FLOAT */
-
-// The number of bytes in a double.
-# ifndef ACE_SIZEOF_DOUBLE
-# if DBL_MAX_EXP == 128
-# define ACE_SIZEOF_DOUBLE 4
-# elif DBL_MAX_EXP == 1024
-# define ACE_SIZEOF_DOUBLE 8
-# else
-# error: unsupported double size, must be updated for this platform!
-# endif /* DBL_MAX_EXP */
-# endif /* ACE_SIZEOF_DOUBLE */
-
-// The number of bytes in a long double.
-# ifndef ACE_SIZEOF_LONG_DOUBLE
-# if LDBL_MAX_EXP == 128
-# define ACE_SIZEOF_LONG_DOUBLE 4
-# elif LDBL_MAX_EXP == 1024
-# define ACE_SIZEOF_LONG_DOUBLE 8
-# elif LDBL_MAX_EXP == 16384
-# if defined (LDBL_DIG) && LDBL_DIG == 18
-# if defined (__ia64)
-# define ACE_SIZEOF_LONG_DOUBLE 16
-# else /* ! __ia64 */
-# define ACE_SIZEOF_LONG_DOUBLE 12
-# endif /* __ia64 */
-# else /* ! LDBL_DIG || LDBL_DIG != 18 */
-# define ACE_SIZEOF_LONG_DOUBLE 16
-# endif /* ! LDBL_DIG || LDBL_DIG != 18 */
-# else
-# error: unsupported double size, must be updated for this platform!
-# endif /* LDBL_MAX_EXP */
-# endif /* ACE_SIZEOF_LONG_DOUBLE */
-
-// Max and min sizes for the ACE integer types.
-#define ACE_CHAR_MAX 0x7F
-#define ACE_CHAR_MIN -(ACE_CHAR_MAX)-1
-#define ACE_OCTET_MAX 0xFF
-#define ACE_INT16_MAX 0x7FFF
-#define ACE_INT16_MIN -(ACE_INT16_MAX)-1
-#define ACE_UINT16_MAX 0xFFFF
-#define ACE_WCHAR_MAX ACE_UINT16_MAX
-#define ACE_INT32_MAX 0x7FFFFFFF
-#define ACE_INT32_MIN -(ACE_INT32_MAX)-1
-#define ACE_UINT32_MAX 0xFFFFFFFF
-#define ACE_INT64_MAX ACE_INT64_LITERAL(0x7FFFFFFFFFFFFFFF)
-#define ACE_INT64_MIN -(ACE_INT64_MAX)-1
-#define ACE_UINT64_MAX ACE_UINT64_LITERAL(0xFFFFFFFFFFFFFFFF)
-// These use ANSI/IEEE format.
-#define ACE_FLT_MAX 3.402823466e+38F
-#define ACE_DBL_MAX 1.7976931348623158e+308
-
-#if !defined (ACE_HAS_SSIZE_T)
-# if defined (ACE_WIN64)
- typedef SSIZE_T ssize_t;
-# else
- typedef int ssize_t;
-# endif /* ACE_WIN64 */
-#endif /* ACE_HAS_SSIZE_T */
-
-# if defined (__ACE_INLINE__)
-# include "ace/Basic_Types.i"
-# endif /* __ACE_INLINE__ */
-
-# include "ace/post.h"
-#endif /* ACE_BASIC_TYPES_H */
diff --git a/ace/Basic_Types.i b/ace/Basic_Types.i
deleted file mode 100644
index ec6c5f2d664..00000000000
--- a/ace/Basic_Types.i
+++ /dev/null
@@ -1,529 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-#if defined (ACE_LACKS_LONGLONG_T)
-
-ACE_INLINE
-ACE_U_LongLong::ACE_U_LongLong (const ACE_UINT32 lo, const ACE_UINT32 hi)
-{
- h_ () = hi;
- l_ () = lo;
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::hi (void) const
-{
- return h_ ();
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::lo (void) const
-{
- return l_ ();
-}
-
-ACE_INLINE void
-ACE_U_LongLong::hi (const ACE_UINT32 hi)
-{
- h_ () = hi;
-}
-
-ACE_INLINE void
-ACE_U_LongLong::lo (const ACE_UINT32 lo)
-{
- l_ () = lo;
-}
-
-ACE_INLINE
-ACE_U_LongLong::~ACE_U_LongLong (void)
-{
-}
-
-ACE_INLINE int
-ACE_U_LongLong::operator== (const ACE_U_LongLong &n) const
-{
- return h_ () == n.h_ () && l_ () == n.l_ ();
-}
-
-ACE_INLINE int
-ACE_U_LongLong::operator== (const ACE_UINT32 n) const
-{
- return h_ () == 0 && l_ () == n;
-}
-
-ACE_INLINE int
-ACE_U_LongLong::operator!= (const ACE_U_LongLong &n) const
-{
- return ! (*this == n);
-}
-
-ACE_INLINE int
-ACE_U_LongLong::operator!= (const ACE_UINT32 n) const
-{
- return ! (*this == n);
-}
-
-ACE_INLINE int
-ACE_U_LongLong::operator< (const ACE_U_LongLong &n) const
-{
- return h_ () < n.h_ () ? 1
- : h_ () > n.h_ () ? 0
- : l_ () < n.l_ ();
-}
-
-ACE_INLINE int
-ACE_U_LongLong::operator< (const ACE_UINT32 n) const
-{
- return operator< (ACE_static_cast (const ACE_U_LongLong, n));
-}
-
-ACE_INLINE int
-ACE_U_LongLong::operator<= (const ACE_U_LongLong &n) const
-{
- return h_ () < n.h_ () ? 1
- : h_ () > n.h_ () ? 0
- : l_ () <= n.l_ ();
-}
-
-ACE_INLINE int
-ACE_U_LongLong::operator<= (const ACE_UINT32 n) const
-{
- return operator<= (ACE_static_cast (const ACE_U_LongLong, n));
-}
-
-ACE_INLINE int
-ACE_U_LongLong::operator> (const ACE_U_LongLong &n) const
-{
- return h_ () > n.h_ () ? 1
- : h_ () < n.h_ () ? 0
- : l_ () > n.l_ ();
-}
-
-ACE_INLINE int
-ACE_U_LongLong::operator> (const ACE_UINT32 n) const
-{
- return operator> (ACE_static_cast (const ACE_U_LongLong, n));
-}
-
-ACE_INLINE int
-ACE_U_LongLong::operator>= (const ACE_U_LongLong &n) const
-{
- return h_ () > n.h_ () ? 1
- : h_ () < n.h_ () ? 0
- : l_ () >= n.l_ ();
-}
-
-ACE_INLINE int
-ACE_U_LongLong::operator>= (const ACE_UINT32 n) const
-{
- return operator>= (ACE_static_cast (const ACE_U_LongLong, n));
-}
-
-ACE_INLINE
-ACE_U_LongLong::ACE_U_LongLong (const ACE_U_LongLong &n)
-{
- h_ () = n.h_ ();
- l_ () = n.l_ ();
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator= (const ACE_U_LongLong &n)
-{
- h_ () = n.h_ ();
- l_ () = n.l_ ();
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator= (const ACE_INT32 &rhs)
-{
- if (rhs >= 0)
- {
- l_ () = ACE_static_cast (ACE_UINT32, rhs);
- h_ () = 0;
- }
- else
- {
- // We do not handle the case where a negative 32 bit integer is
- // assigned to this representation of a 64 bit unsigned integer.
- // The "undefined behavior" behavior performed by this
- // implementation is to simply set all bits to zero.
- l_ () = 0;
- h_ () = 0;
- }
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator= (const ACE_UINT32 &rhs)
-{
- l_ () = rhs;
- h_ () = 0;
-
- return *this;
-}
-
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator+ (const ACE_U_LongLong &n) const
-{
- ACE_U_LongLong ret (l_ () + n.l_ (), h_ () + n.h_ ());
- if (ret.l_ () < n.l_ ()) /* carry */ ++ret.h_ ();
-
- return ret;
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator+ (const ACE_UINT32 n) const
-{
- return operator+ (ACE_static_cast (const ACE_U_LongLong, n));
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator- (const ACE_U_LongLong &n) const
-{
- ACE_U_LongLong ret (l_ () - n.l_ (), h_ () - n.h_ ());
- if (l_ () < n.l_ ()) /* borrow */ --ret.h_ ();
-
- return ret;
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator- (const ACE_UINT32 n) const
-{
- return operator- (ACE_static_cast (const ACE_U_LongLong, n));
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator<< (const u_int n) const
-{
- const ACE_UINT32 carry_mask = l_ () >> (32 - n);
- ACE_U_LongLong ret (n < 32 ? l_ () << n : 0,
- n < 32 ? (h_ () << n) | carry_mask : carry_mask);
-
- return ret;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator<<= (const u_int n)
-{
- const ACE_UINT32 carry_mask = l_ () >> (32 - n);
- h_ () = n < 32 ? (h_ () << n) | carry_mask : carry_mask;
-
- // g++ 2.7.2.3/Solaris 2.5.1 doesn't modify l_ () if shifted by 32.
- l_ () = n < 32 ? l_ () << n : 0;
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator>> (const u_int n) const
-{
- const ACE_UINT32 carry_mask = h_ () << (32 - n);
- ACE_U_LongLong ret (n < 32 ? (l_ () >> n) | carry_mask : 0,
- n < 32 ? h_ () >> n : 0);
-
- return ret;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator>>= (const u_int n)
-{
- const ACE_UINT32 carry_mask = h_ () << (32 - n);
- l_ () = n < 32 ? (l_ () >> n) | carry_mask : carry_mask;
- h_ () = n < 32 ? h_ () >> n : 0;
-
- return *this;
-}
-
-ACE_INLINE double
-ACE_U_LongLong::operator/ (const double n) const
-{
- // See the derivation above in operator/ (const ACE_UINT32).
-
- return ((double) 0xffffffffu - n + 1.0) / n * h_ () +
- (double) h_ () + (double) l_ () / n;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator+= (const ACE_U_LongLong &n)
-{
- h_ () += n.h_ ();
- l_ () += n.l_ ();
- if (l_ () < n.l_ ()) /* carry */ ++h_ ();
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator+= (const ACE_UINT32 n)
-{
- return operator+= (ACE_static_cast (const ACE_U_LongLong, n));
-}
-
-#define ACE_HIGHBIT (~(~0UL >> 1))
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::ul_shift (ACE_UINT32 a, ACE_UINT32 c_in, ACE_UINT32 *c_out) const
-{
- const ACE_UINT32 b = (a << 1) | c_in;
- *c_out = (*c_out << 1) + ((a & ACE_HIGHBIT) > 0);
-
- return b;
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::ull_shift (ACE_U_LongLong a,
- ACE_UINT32 c_in,
- ACE_UINT32 *c_out) const
-{
- ACE_U_LongLong b;
-
- b.l_ () = (a.l_ () << 1) | c_in;
- c_in = ((a.l_ () & ACE_HIGHBIT) > 0);
- b.h_ () = (a.h_ () << 1) | c_in;
- *c_out = (*c_out << 1) + ((a.h_ () & ACE_HIGHBIT) > 0);
-
- return b;
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::ull_add (ACE_U_LongLong a, ACE_U_LongLong b, ACE_UINT32 *carry) const
-{
- ACE_U_LongLong r (0, 0);
- ACE_UINT32 c1, c2, c3, c4;
-
- c1 = a.l_ () % 2;
- c2 = b.l_ () % 2;
- c3 = 0;
-
- r.l_ () = a.l_ ()/2 + b.l_ ()/2 + (c1+c2)/2;
- r.l_ () = ul_shift (r.l_ (), (c1+c2)%2, &c3);
-
- c1 = a.h_ () % 2;
- c2 = b.h_ () % 2;
- c4 = 0;
-
- r.h_ () = a.h_ ()/2 + b.h_ ()/2 + (c1+c2+c3)/2;
- r.h_ () = ul_shift (r.h_ (), (c1+c2+c3)%2, &c4);
-
- *carry = c4;
-
- return r;
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::ull_mult (ACE_U_LongLong a, ACE_UINT32 b, ACE_UINT32 *carry) const
-{
- register ACE_UINT32 mask = ACE_HIGHBIT;
- const ACE_U_LongLong zero (0, 0);
- ACE_U_LongLong accum (0, 0);
- ACE_UINT32 c;
-
- *carry = 0;
- if (b > 0)
- do
- {
- accum = ull_shift (accum, 0U, carry);
- if (b & mask)
- accum = ull_add (accum, a, &c);
- else
- accum = ull_add (accum, zero, &c);
- *carry += c;
- mask >>= 1;
- }
- while (mask > 0);
-
- return accum;
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator* (const ACE_UINT32 n) const
-{
- ACE_UINT32 carry; // will throw the carry away
-
- return ull_mult (*this, n, &carry);
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator*= (const ACE_UINT32 n)
-{
- ACE_UINT32 carry; // will throw the carry away
-
- return *this = ull_mult (*this, n, &carry);
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator-= (const ACE_U_LongLong &n)
-{
- h_ () -= n.h_ ();
- if (l_ () < n.l_ ()) /* borrow */ --h_ ();
- l_ () -= n.l_ ();
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator-= (const ACE_UINT32 n)
-{
- return operator-= (ACE_static_cast (const ACE_U_LongLong, n));
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator++ ()
-{
- ++l_ ();
- if (l_ () == 0) /* carry */ ++h_ ();
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator-- ()
-{
- if (l_ () == 0) /* borrow */ --h_ ();
- --l_ ();
-
- return *this;
-}
-
-ACE_INLINE const ACE_U_LongLong
-ACE_U_LongLong::operator++ (int)
-{
- // Post-increment operator should always be implemented in terms of
- // the pre-increment operator to enforce consistent semantics.
- ACE_U_LongLong temp (*this);
- ++*this;
- return temp;
-}
-
-ACE_INLINE const ACE_U_LongLong
-ACE_U_LongLong::operator-- (int)
-{
- // Post-decrement operator should always be implemented in terms of
- // the pre-decrement operator to enforce consistent semantics.
- ACE_U_LongLong temp (*this);
- --*this;
- return temp;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator|= (const ACE_U_LongLong n)
-{
- l_ () |= n.l_ ();
- h_ () |= n.h_ ();
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator|= (const ACE_UINT32 n)
-{
- return operator|= (ACE_static_cast (const ACE_U_LongLong, n));
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator&= (const ACE_U_LongLong n)
-{
- l_ () &= n.l_ ();
- h_ () &= n.h_ ();
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator&= (const ACE_UINT32 n)
-{
- return operator&= (ACE_static_cast (const ACE_U_LongLong, n));
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::operator/ (const ACE_UINT32 n) const
-{
- // This takes advantage of the fact that the return type has only 32
- // bits. Replace 0x100000000 with 0xffffffff + 1 because the former
- // has 33 bits.
- // Quotient = (0x100000000u * hi_ + lo_) / n
- // = ((0x100000000u - n + n) * hi_ + lo_) / n
- // = ((0x100000000u - n) / n * hi_ + hi_ * n / n + lo_ / n
- // = (0x100000000u - n) / n * hi_ + hi_ + lo_ / n
- // = (0xffffffffu - n + 1) / n * hi_ + hi_ + lo_ / n
-
- return (0xffffffffu - n + 1) / n * h_ () + h_ () + l_ () / n;
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::operator% (const ACE_UINT32 n) const
-{
- // Because the argument is an ACE_UINT32, the result can never be
- // bigger than 32 bits. Replace 0x100000000 with 0xffffffff + 1
- // because the former has 33 bits.
- // Mod = (0x100000000u * hi_ + lo_) % n
- // = (0x100000000u % n * hi_ + lo_ % n) % n
- // = ((0x100000000u - n) % n * hi_ + lo_ % n) % n
- // = ((0xffffffffu - n + 1) % n * hi_ + lo_ % n) % n
-
- return ((0xffffffff - n + 1) % n * h_ () + l_ () % n) % n;
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::operator| (const ACE_INT32 n) const
-{
- return l_ () | n;
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::operator& (const ACE_INT32 n) const
-{
- return l_ () & n;
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator* (const ACE_INT32 n) const
-{
- return operator* ((ACE_UINT32) n);
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator*= (const ACE_INT32 n)
-{
- return operator*= ((ACE_UINT32) n);
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::operator/ (const ACE_INT32 n) const
-{
- return operator/ ((ACE_UINT32) n);
-}
-
-#if ACE_SIZEOF_INT == 4
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::operator/ (const u_long n) const
-{
- return operator/ ((ACE_UINT32) n);
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::operator/ (const long n) const
-{
- return operator/ ((ACE_UINT32) n);
-}
-
-#else /* ACE_SIZEOF_INT != 4 */
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::operator/ (const u_int n) const
-{
- return operator/ ((ACE_UINT32) n);
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::operator/ (const int n) const
-{
- return operator/ ((ACE_UINT32) n);
-}
-#endif /* ACE_SIZEOF_INT != 4 */
-
-#endif /* ACE_LACKS_LONGLONG_T */
diff --git a/ace/Bound_Ptr.h b/ace/Bound_Ptr.h
deleted file mode 100644
index a5b381c69e7..00000000000
--- a/ace/Bound_Ptr.h
+++ /dev/null
@@ -1,338 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Bound_Ptr.h
- *
- * $Id$
- *
- * @author Christopher Kohlhoff <chris@kohlhoff.com>
- */
-//=============================================================================
-
-#ifndef ACE_BOUND_PTR_H
-#define ACE_BOUND_PTR_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Auto_Ptr.h"
-
-/**
- * @class ACE_Bound_Ptr_Counter
- *
- * @brief An ACE_Bound_Ptr_Counter<ACE_LOCK> object encapsulates an
- * object reference count.
- *
- * Do not use this class directly, use ACE_Strong_Bound_Ptr or
- * ACE_Weak_Bound_Ptr instead.
- */
-template <class ACE_LOCK>
-class ACE_Bound_Ptr_Counter
-{
-public:
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- ACE_Bound_Ptr_Counter (int init_obj_ref_count = 0);
- ~ACE_Bound_Ptr_Counter (void);
-
- /// Create a ACE_Bound_Ptr_Counter<ACE_LOCK> and initialize the
- /// reference count to indicate ownership by a strong pointer.
- static ACE_Bound_Ptr_Counter<ACE_LOCK> *create_strong (void);
-
- /// Increase both the object and counter reference counts and return
- /// the new object reference count. A return value of -1 indicates
- /// that the object has already been destroyed.
- static int attach_strong (ACE_Bound_Ptr_Counter<ACE_LOCK> *counter);
-
- /// Decreases both the object and counter reference counts and
- /// deletes whichever has no more references. Returns the new object
- /// reference count.
- static int detach_strong (ACE_Bound_Ptr_Counter<ACE_LOCK> *counter);
-
- /// Create a ACE_Bound_Ptr_Counter<ACE_LOCK> and initialize the
- /// reference count to indicate no ownership.
- static ACE_Bound_Ptr_Counter<ACE_LOCK> *create_weak (void);
-
- /// Increase the counter reference count and return argument.
- static void attach_weak (ACE_Bound_Ptr_Counter<ACE_LOCK> *counter);
-
- /// Decreases the counter reference count and deletes the counter if
- /// it has no more references.
- static void detach_weak (ACE_Bound_Ptr_Counter<ACE_LOCK> *counter);
-
- /// Determine whether the object has been deleted.
- static int object_was_deleted (ACE_Bound_Ptr_Counter<ACE_LOCK> *counter);
-
-private:
-
- /// Allocate a new ACE_Bound_Ptr_Counter<ACE_LOCK> instance,
- /// returning NULL if it cannot be created.
- static ACE_Bound_Ptr_Counter<ACE_LOCK> *internal_create (int init_obj_ref_count);
-
-private:
-
- /// Reference count of underlying object. Is set to -1 once the
- /// object has been destroyed to indicate to all weak pointers that
- /// it is no longer valid.
- int obj_ref_count_;
-
- /// Reference count of this counter.
- int self_ref_count_;
-
- /// Mutex variable to synchronize access to the reference counts.
- ACE_LOCK lock_;
-};
-
-// Forward decl.
-template <class X, class ACE_LOCK> class ACE_Weak_Bound_Ptr;
-
-/**
- * @class ACE_Strong_Bound_Ptr
- *
- * @brief This class implements support for a reference counted
- * pointer.
- *
- * Assigning or copying instances of an ACE_Strong_Bound_Ptr will
- * automatically increment the reference count of the underlying object.
- * When the last instance of an ACE_Strong_Bound_Ptr that references a
- * particular object is destroyed or overwritten, it will invoke delete
- * on its underlying pointer.
- */
-template <class X, class ACE_LOCK>
-class ACE_Strong_Bound_Ptr
-{
-public:
- /// Constructor that initializes an ACE_Strong_Bound_Ptr to point to the
- /// object \<p\> immediately.
- ACE_EXPLICIT ACE_Strong_Bound_Ptr (X *p = 0);
-
- /// Constructor that initializes an ACE_Strong_Bound_Ptr by stealing
- /// ownership of an object from an auto_ptr.
- ACE_EXPLICIT ACE_Strong_Bound_Ptr (auto_ptr<X> p);
-
- /// Copy constructor binds <this> and <r> to the same object.
- ACE_Strong_Bound_Ptr (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r);
-
- /// Constructor binds <this> and <r> to the same object.
- ACE_Strong_Bound_Ptr (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r);
-
- /// Destructor.
- ~ACE_Strong_Bound_Ptr (void);
-
- /// Assignment operator that binds <this> and <r> to the same object.
- void operator = (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r);
-
- /// Assignment operator that binds <this> and <r> to the same object.
- void operator = (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r);
-
- /// Equality operator that returns 1 if both ACE_Strong_Bound_Ptr
- /// instances point to the same underlying object.
- /**
- * @note It also returns 1 if both objects have just been
- * instantiated and not used yet.
- */
- int operator == (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r) const;
-
- /// Equality operator that returns 1 if the ACE_Strong_Bound_Ptr and
- /// ACE_Weak_Bound_Ptr objects point to the same underlying object.
- /**
- *
- * @note It also returns 1 if both objects have just been
- * instantiated and not used yet.
- */
- int operator == (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r) const;
-
- /// Equality operator that returns 1 if the ACE_Strong_Bound_Ptr and
- /// the raw pointer point to the same underlying object.
- int operator == (X *p) const;
-
- /// Inequality operator, which is the opposite of equality.
- int operator != (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r) const;
-
- /// Inequality operator, which is the opposite of equality.
- int operator != (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r) const;
-
- /// Inequality operator, which is the opposite of equality.
- int operator != (X *p) const;
-
- /// Redirection operator
- X *operator-> (void) const;
-
- /// Dereference operator
- X &operator * (void) const;
-
- /// Get the pointer value.
- X *get (void) const;
-
- /// Resets the ACE_Strong_Bound_Ptr to refer to a different
- /// underlying object.
- void reset (X *p = 0);
-
- /// Resets the ACE_Strong_Bound_Ptr to refer to a different
- /// underlying object, ownership of which is stolen from the
- /// auto_ptr.
- void reset (auto_ptr<X> p);
-
- /// Allows us to check for NULL on all ACE_Strong_Bound_Ptr
- /// objects.
- int null (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- friend class ACE_Weak_Bound_Ptr<X, ACE_LOCK>;
-
- /// The ACE_Bound_Ptr_Counter type.
- typedef ACE_Bound_Ptr_Counter<ACE_LOCK> COUNTER;
-
- /// The reference counter.
- COUNTER *counter_;
-
- /// The underlying object.
- X *ptr_;
-};
-
-/**
- * @class ACE_Weak_Bound_Ptr
- *
- * @brief This class implements support for a weak pointer that complements
- * ACE_Strong_Bound_Ptr.
- *
- * Unlike ACE_Strong_Bound_Ptr, assigning or copying instances of an
- * ACE_Weak_Bound_Ptr will not automatically increment the reference
- * count of the underlying object. What ACE_Weak_Bound_Ptr does is
- * preserve the knowledge that the object is in fact reference
- * counted, and thus provides an alternative to raw pointers where
- * non-ownership associations must be maintained. When the last
- * instance of an ACE_Strong_Bound_Ptr that references a particular
- * object is destroyed or overwritten, the corresponding
- * ACE_Weak_Bound_Ptr instances are set to NULL.
- */
-template <class X, class ACE_LOCK>
-class ACE_Weak_Bound_Ptr
-{
-public:
- /// Constructor that initializes an ACE_Weak_Bound_Ptr to point to
- /// the object \<p\> immediately.
- ACE_EXPLICIT ACE_Weak_Bound_Ptr (X *p = 0);
-
- /// Copy constructor binds <this> and <r> to the same object.
- ACE_Weak_Bound_Ptr (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r);
-
- /// Constructor binds <this> and <r> to the same object.
- ACE_Weak_Bound_Ptr (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r);
-
- /// Destructor.
- ~ACE_Weak_Bound_Ptr (void);
-
- /// Assignment operator that binds <this> and <r> to the same object.
- void operator = (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r);
-
- /// Assignment operator that binds <this> and <r> to the same object.
- void operator = (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r);
-
- /// Equality operator that returns 1 if both ACE_Weak_Bound_Ptr
- /// objects point to the same underlying object.
- /**
- * @note It also returns 1 if both objects have just been
- * instantiated and not used yet.
- */
- int operator == (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r) const;
-
- /// Equality operator that returns 1 if the ACE_Weak_Bound_Ptr and
- /// ACE_Strong_Bound_Ptr objects point to the same underlying
- /// object.
- /**
- * @note It also returns 1 if both objects have just been
- * instantiated and not used yet.
- */
- int operator == (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r) const;
-
- /// Equality operator that returns 1 if the ACE_Weak_Bound_Ptr and
- /// the raw pointer point to the same underlying object.
- int operator == (X *p) const;
-
- /// Inequality operator, which is the opposite of equality.
- int operator != (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r) const;
-
- /// Inequality operator, which is the opposite of equality.
- int operator != (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r) const;
-
- /// Inequality operator, which is the opposite of equality.
- int operator != (X *p) const;
-
- /// Redirection operator.
- /**
- * It returns a temporary strong pointer and makes use of the
- * chaining properties of operator-> to ensure that the underlying
- * object does not disappear while you are using it. If you are
- * certain of the lifetimes of the object, and do not want to incur
- * the locking overhead, then use the unsafe_get method instead.
- */
- ACE_Strong_Bound_Ptr<X, ACE_LOCK> operator-> (void) const;
-
- /// Obtain a strong pointer corresponding to this weak pointer. This
- /// function is useful to create a temporary strong pointer for
- /// conversion to a reference.
- ACE_Strong_Bound_Ptr<X, ACE_LOCK> strong (void) const;
-
- /// Get the pointer value. Warning: this does not affect the
- /// reference count of the underlying object, so it may disappear on
- /// you while you are using it if you are not careful.
- X *unsafe_get (void) const;
-
- /// Resets the ACE_Weak_Bound_Ptr to refer to a different underlying
- /// object.
- void reset (X *p = 0);
-
- /// Increment the reference count on the underlying object.
- /**
- * Returns the new reference count on the object. This function may
- * be used to integrate the bound pointers into an external
- * reference counting mechanism such as those used by COM or CORBA
- * servants.
- */
- int add_ref (void);
-
- /// Decrement the reference count on the underlying object, which is deleted
- /// if the count has reached zero.
- /**
- * Returns the new reference count on the object. This function may
- * be used to integrate the bound pointers into an external
- * reference counting mechanism such as those used by COM or CORBA
- * servants.
- */
- int remove_ref (void);
-
- /// Allows us to check for NULL on all ACE_Weak_Bound_Ptr objects.
- int null (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- friend class ACE_Strong_Bound_Ptr<X, ACE_LOCK>;
-
- /// The ACE_Bound_Ptr_Counter type.
- typedef ACE_Bound_Ptr_Counter<ACE_LOCK> COUNTER;
-
- /// The reference counter.
- COUNTER *counter_;
-
- /// The underlying object.
- X *ptr_;
-};
-
-#include "ace/Bound_Ptr.i"
-
-#include "ace/post.h"
-
-#endif /* ACE_BOUND_PTR_H */
diff --git a/ace/Bound_Ptr.i b/ace/Bound_Ptr.i
deleted file mode 100644
index 92229126592..00000000000
--- a/ace/Bound_Ptr.i
+++ /dev/null
@@ -1,481 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Bound_Ptr.i
-
-#include "Synch_T.h"
-
-template <class ACE_LOCK> inline ACE_Bound_Ptr_Counter<ACE_LOCK> *
-ACE_Bound_Ptr_Counter<ACE_LOCK>::internal_create (int init_obj_ref_count)
-{
- ACE_Bound_Ptr_Counter<ACE_LOCK> *temp = 0;
- ACE_NEW_RETURN (temp,
- ACE_Bound_Ptr_Counter<ACE_LOCK> (init_obj_ref_count),
- 0);
- return temp;
-}
-
-template <class ACE_LOCK> inline ACE_Bound_Ptr_Counter<ACE_LOCK> *
-ACE_Bound_Ptr_Counter<ACE_LOCK>::create_strong (void)
-{
- // Set initial object reference count to 1.
- ACE_Bound_Ptr_Counter<ACE_LOCK> *temp = internal_create (1);
-#if defined (ACE_NEW_THROWS_EXCEPTIONS)
- if (temp == 0)
- ACE_throw_bad_alloc;
-#else
- ACE_ASSERT (temp != 0);
-#endif /* ACE_NEW_THROWS_EXCEPTIONS */
- return temp;
-}
-
-
-
-template <class ACE_LOCK> inline int
-ACE_Bound_Ptr_Counter<ACE_LOCK>::attach_strong (ACE_Bound_Ptr_Counter<ACE_LOCK>* counter)
-{
- ACE_GUARD_RETURN (ACE_LOCK, guard, counter->lock_, -1);
-
- // Can't attach a strong pointer to an object that has already been deleted.
- if (counter->obj_ref_count_ == -1)
- return -1;
-
- int new_obj_ref_count = ++counter->obj_ref_count_;
- ++counter->self_ref_count_;
-
- return new_obj_ref_count;
-}
-
-template <class ACE_LOCK> inline int
-ACE_Bound_Ptr_Counter<ACE_LOCK>::detach_strong (ACE_Bound_Ptr_Counter<ACE_LOCK>* counter)
-{
- ACE_Bound_Ptr_Counter<ACE_LOCK> *counter_del = 0;
- int new_obj_ref_count;
-
- {
- ACE_GUARD_RETURN (ACE_LOCK, guard, counter->lock_, -1);
-
- if ((new_obj_ref_count = --counter->obj_ref_count_) == 0)
- // Change the object reference count to -1 to indicate that the
- // object has been deleted, as opposed to a weak pointer that
- // simply hasn't had any strong pointers created from it yet.
- counter->obj_ref_count_ = -1;
-
- if (--counter->self_ref_count_ == 0)
- // Since counter contains the lock held by the ACE_Guard, the
- // guard needs to be released before freeing the memory holding
- // the lock. So save the pointer to free, then release, then
- // free.
- counter_del = counter;
-
- } // Release the lock
-
- delete counter_del;
-
- return new_obj_ref_count;
-}
-
-template <class ACE_LOCK> inline ACE_Bound_Ptr_Counter<ACE_LOCK> *
-ACE_Bound_Ptr_Counter<ACE_LOCK>::create_weak (void)
-{
- // Set initial object reference count to 0.
-
- ACE_Bound_Ptr_Counter<ACE_LOCK> *temp = internal_create (0);
-#if defined (ACE_NEW_THROWS_EXCEPTIONS)
- if (temp == 0)
- ACE_throw_bad_alloc;
-#else
- ACE_ASSERT (temp != 0);
-#endif /* ACE_NEW_THROWS_EXCEPTIONS */
- return temp;
-}
-
-template <class ACE_LOCK> inline void
-ACE_Bound_Ptr_Counter<ACE_LOCK>::attach_weak (ACE_Bound_Ptr_Counter<ACE_LOCK>* counter)
-{
- ACE_GUARD (ACE_LOCK, guard, counter->lock_);
-
- ++counter->self_ref_count_;
-}
-
-template <class ACE_LOCK> inline void
-ACE_Bound_Ptr_Counter<ACE_LOCK>::detach_weak (ACE_Bound_Ptr_Counter<ACE_LOCK>* counter)
-{
- ACE_Bound_Ptr_Counter<ACE_LOCK> *counter_del = 0;
-
- {
- ACE_GUARD (ACE_LOCK, guard, counter->lock_);
-
- if (--counter->self_ref_count_ == 0)
- // Since counter contains the lock held by the ACE_Guard, the
- // guard needs to be released before freeing the memory holding
- // the lock. So save the pointer to free, then release, then
- // free.
- counter_del = counter;
-
- } // Release the lock
-
- delete counter_del;
-}
-
-template <class ACE_LOCK> inline int
-ACE_Bound_Ptr_Counter<ACE_LOCK>::object_was_deleted (ACE_Bound_Ptr_Counter<ACE_LOCK> *counter)
-{
- ACE_GUARD_RETURN (ACE_LOCK, guard, counter->lock_, 0);
-
- return counter->obj_ref_count_ == -1;
-}
-
-template <class ACE_LOCK> inline
-ACE_Bound_Ptr_Counter<ACE_LOCK>::ACE_Bound_Ptr_Counter (int init_obj_ref_count)
- : obj_ref_count_ (init_obj_ref_count),
- self_ref_count_ (1)
-{
-}
-
-template <class ACE_LOCK> inline
-ACE_Bound_Ptr_Counter<ACE_LOCK>::~ACE_Bound_Ptr_Counter (void)
-{
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::ACE_Strong_Bound_Ptr (X *p)
- : counter_ (COUNTER::create_strong ()),
- ptr_ (p)
-{
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::ACE_Strong_Bound_Ptr (auto_ptr<X> p)
- : counter_ (COUNTER::create_strong ()),
- ptr_ (p.release())
-{
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::ACE_Strong_Bound_Ptr (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r)
- : counter_ (r.counter_),
- ptr_ (r.ptr_)
-{
- COUNTER::attach_strong (this->counter_);
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::ACE_Strong_Bound_Ptr (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r)
- : counter_ (r.counter_),
- ptr_ (r.ptr_)
-{
- // When creating a strong pointer from a weak one we can't assume that the
- // underlying object still exists. Therefore we must check for a return value
- // of -1, which indicates that the object has been destroyed.
- if (COUNTER::attach_strong (this->counter_) == -1)
- {
- // Underlying object has already been deleted, so set this pointer to null.
- this->counter_ = COUNTER::create_strong ();
- this->ptr_ = 0;
- }
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::~ACE_Strong_Bound_Ptr (void)
-{
- if (COUNTER::detach_strong (this->counter_) == 0)
- delete this->ptr_;
-}
-
-template <class X, class ACE_LOCK> inline void
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::operator = (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &rhs)
-{
- // This will work if &r == this, by first increasing the ref count
-
- COUNTER *new_counter = rhs.counter_;
- X* new_ptr = rhs.ptr_;
- COUNTER::attach_strong (new_counter);
- if (COUNTER::detach_strong (this->counter_) == 0)
- delete this->ptr_;
- this->counter_ = new_counter;
- this->ptr_ = new_ptr;
-}
-
-template <class X, class ACE_LOCK> inline void
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::operator = (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &rhs)
-{
- // This will work if &r == this, by first increasing the ref count
-
- COUNTER *new_counter = rhs.counter_;
- X* new_ptr = rhs.ptr_;
-
- // When creating a strong pointer from a weak one we can't assume that the
- // underlying object still exists. Therefore we must check for a return value
- // of -1, which indicates that the object has been destroyed.
- if (COUNTER::attach_strong (new_counter) == -1)
- {
- // Underlying object has already been deleted, so set this pointer to null.
- new_counter = COUNTER::create_strong ();
- new_ptr = 0;
- }
-
- if (COUNTER::detach_strong (this->counter_) == 0)
- delete this->ptr_;
- this->counter_ = new_counter;
- this->ptr_ = new_ptr;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::operator== (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r) const
-{
- return this->ptr_ == r.ptr_;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::operator== (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r) const
-{
- // Use the weak pointer's operator== since it will check for null.
- return r == *this;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::operator== (X *p) const
-{
- return this->ptr_ == p;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::operator!= (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r) const
-{
- return this->ptr_ != r.ptr_;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::operator!= (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r) const
-{
- // Use the weak pointer's operator!= since it will check for null.
- return r != *this;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::operator!= (X *p) const
-{
- return this->ptr_ != p;
-}
-
-template <class X, class ACE_LOCK> inline X *
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::operator-> (void) const
-{
- return this->ptr_;
-}
-
-template<class X, class ACE_LOCK> inline X &
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::operator *() const
-{
- return *this->ptr_;
-}
-
-template <class X, class ACE_LOCK> inline X*
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::get (void) const
-{
- return this->ptr_;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::null (void) const
-{
- return this->ptr_ == 0;
-}
-
-template<class X, class ACE_LOCK> inline void
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::reset (X *p)
-{
- COUNTER *old_counter = this->counter_;
- X* old_ptr = this->ptr_;
- this->counter_ = COUNTER::create_strong ();
- this->ptr_ = p;
- if (COUNTER::detach_strong (old_counter) == 0)
- delete old_ptr;
-}
-
-template<class X, class ACE_LOCK> inline void
-ACE_Strong_Bound_Ptr<X, ACE_LOCK>::reset (auto_ptr<X> p)
-{
- COUNTER *old_counter = this->counter_;
- X* old_ptr = this->ptr_;
- this->counter_ = COUNTER::create_strong ();
- this->ptr_ = p.release ();
- if (COUNTER::detach_strong (old_counter) == 0)
- delete old_ptr;
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::ACE_Weak_Bound_Ptr (X *p)
- : counter_ (COUNTER::create_weak ()),
- ptr_ (p)
-{
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::ACE_Weak_Bound_Ptr (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r)
- : counter_ (r.counter_),
- ptr_ (r.ptr_)
-{
- COUNTER::attach_weak (this->counter_);
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::ACE_Weak_Bound_Ptr (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r)
- : counter_ (r.counter_),
- ptr_ (r.ptr_)
-{
- COUNTER::attach_weak (this->counter_);
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::~ACE_Weak_Bound_Ptr (void)
-{
- COUNTER::detach_weak (this->counter_);
-}
-
-template <class X, class ACE_LOCK> inline void
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::operator = (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &rhs)
-{
- // This will work if &rhs == this, by first increasing the ref count
- COUNTER *new_counter = rhs.counter_;
- COUNTER::attach_weak (new_counter);
- COUNTER::detach_weak (this->counter_);
- this->counter_ = new_counter;
- this->ptr_ = rhs.ptr_;
-}
-
-template <class X, class ACE_LOCK> inline void
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::operator = (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &rhs)
-{
- // This will work if &rhs == this, by first increasing the ref count
- COUNTER *new_counter = rhs.counter_;
- COUNTER::attach_weak (new_counter);
- COUNTER::detach_weak (this->counter_);
- this->counter_ = new_counter;
- this->ptr_ = rhs.ptr_;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::operator== (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r) const
-{
- // A weak pointer must behave as though it is automatically set to null
- // if the underlying object has been deleted.
- if (COUNTER::object_was_deleted (this->counter_))
- return r.ptr_ == 0;
-
- return this->ptr_ == r.ptr_;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::operator== (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r) const
-{
- // A weak pointer must behave as though it is automatically set to null
- // if the underlying object has been deleted.
- if (COUNTER::object_was_deleted (this->counter_))
- return r.ptr_ == 0;
-
- return this->ptr_ == r.ptr_;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::operator== (X *p) const
-{
- // A weak pointer must behave as though it is automatically set to null
- // if the underlying object has been deleted.
- if (COUNTER::object_was_deleted (this->counter_))
- return p == 0;
-
- return this->ptr_ == p;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::operator!= (const ACE_Weak_Bound_Ptr<X, ACE_LOCK> &r) const
-{
- // A weak pointer must behave as though it is automatically set to null
- // if the underlying object has been deleted.
- if (COUNTER::object_was_deleted (this->counter_))
- return r.ptr_ != 0;
-
- return this->ptr_ != r.ptr_;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::operator!= (const ACE_Strong_Bound_Ptr<X, ACE_LOCK> &r) const
-{
- // A weak pointer must behave as though it is automatically set to null
- // if the underlying object has been deleted.
- if (COUNTER::object_was_deleted (this->counter_))
- return r.ptr_ != 0;
-
- return this->ptr_ != r.ptr_;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::operator!= (X *p) const
-{
- // A weak pointer must behave as though it is automatically set to null
- // if the underlying object has been deleted.
- if (COUNTER::object_was_deleted (this->counter_))
- return p != 0;
-
- return this->ptr_ != p;
-}
-
-template <class X, class ACE_LOCK> inline ACE_Strong_Bound_Ptr<X, ACE_LOCK>
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::operator-> (void) const
-{
- return ACE_Strong_Bound_Ptr<X, ACE_LOCK> (*this);
-}
-
-template <class X, class ACE_LOCK> inline ACE_Strong_Bound_Ptr<X, ACE_LOCK>
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::strong (void) const
-{
- return ACE_Strong_Bound_Ptr<X, ACE_LOCK> (*this);
-}
-
-template <class X, class ACE_LOCK> inline X*
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::unsafe_get (void) const
-{
- // We do not check if the object has been deleted, since this operation
- // is defined to be unsafe!
- return this->ptr_;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::null (void) const
-{
- // A weak pointer must behave as though it is automatically set to null
- // if the underlying object has been deleted.
- if (COUNTER::object_was_deleted (this->counter_))
- return 1;
-
- return this->ptr_ == 0;
-}
-
-template<class X, class ACE_LOCK> inline void
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::reset (X *p)
-{
- COUNTER *old_counter = this->counter_;
- this->counter_ = COUNTER::create_weak ();
- this->ptr_ = p;
- COUNTER::detach_weak (old_counter);
-}
-
-template<class X, class ACE_LOCK> inline int
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::add_ref ()
-{
- return COUNTER::attach_strong (counter_);
-}
-
-template<class X, class ACE_LOCK> inline int
-ACE_Weak_Bound_Ptr<X, ACE_LOCK>::remove_ref ()
-{
- int new_obj_ref_count = COUNTER::detach_strong (counter_);
- if (new_obj_ref_count == 0)
- {
- delete this->ptr_;
- this->ptr_ = 0;
- }
- return new_obj_ref_count;
-}
diff --git a/ace/CDR_Base.cpp b/ace/CDR_Base.cpp
deleted file mode 100644
index 402d3b2d139..00000000000
--- a/ace/CDR_Base.cpp
+++ /dev/null
@@ -1,592 +0,0 @@
-#include "ace/CDR_Base.h"
-#include "ace/Message_Block.h"
-#include "ace/OS.h"
-
-#if !defined (__ACE_INLINE__)
-# include "ace/CDR_Base.inl"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID (ace,
- CDR_Base,
- "$Id$")
-
-//
-// See comments in CDR_Base.inl about optimization cases for swap_XX_array.
-//
-
-void
-ACE_CDR::swap_2_array (const char* orig, char* target, size_t n)
-{
- // ACE_ASSERT(n > 0); The caller checks that n > 0
-
- // Later, we try to read in 32 or 64 bit chunks,
- // so make sure we don't do that for unaligned addresses.
-#if ACE_SIZEOF_LONG == 8
- const char* const o8 = ACE_ptr_align_binary (orig, 8);
- while (orig < o8 && n > 0)
- {
- ACE_CDR::swap_2 (orig, target);
- orig += 2;
- target += 2;
- --n;
- }
-#else
- const char* const o4 = ACE_ptr_align_binary (orig, 4);
- // this is an _if_, not a _while_. The mistmatch can only be by 2.
- if (orig != o4)
- {
- ACE_CDR::swap_2 (orig, target);
- orig += 2;
- target += 2;
- --n;
- }
-#endif
- if (n == 0)
- return;
-
- //
- // Loop unrolling. Here be dragons.
- //
-
- // (n & (~3)) is the greatest multiple of 4 not bigger than n.
- // In the while loop ahead, orig will move over the array by 8 byte
- // increments (4 elements of 2 bytes).
- // end marks our barrier for not falling outside.
- const char* const end = orig + 2 * (n & (~3));
-
- // See if we're aligned for writting in 64 or 32 bit chunks...
-#if ACE_SIZEOF_LONG == 8
- if (target == ACE_ptr_align_binary (target, 8))
-#else
- if (target == ACE_ptr_align_binary (target, 4))
-#endif
- {
- while (orig < end)
- {
-#if defined (ACE_HAS_PENTIUM) && defined (__GNUG__)
- unsigned int a =
- * ACE_reinterpret_cast (const unsigned int*, orig);
- unsigned int b =
- * ACE_reinterpret_cast (const unsigned int*, orig + 4);
- asm ( "bswap %1" : "=r" (a) : "0" (a) );
- asm ( "bswap %1" : "=r" (b) : "0" (b) );
- asm ( "rol $16, %1" : "=r" (a) : "0" (a) );
- asm ( "rol $16, %1" : "=r" (b) : "0" (b) );
- * ACE_reinterpret_cast (unsigned int*, target) = a;
- * ACE_reinterpret_cast (unsigned int*, target + 4) = b;
-#elif defined(ACE_HAS_PENTIUM) \
- && (defined(_MSC_VER) || defined(__BORLANDC__)) \
- && !defined(ACE_LACKS_INLINE_ASSEMBLY)
- __asm mov ecx, orig;
- __asm mov edx, target;
- __asm mov eax, [ecx];
- __asm mov ebx, 4[ecx];
- __asm bswap eax;
- __asm bswap ebx;
- __asm rol eax, 16;
- __asm rol ebx, 16;
- __asm mov [edx], eax;
- __asm mov 4[edx], ebx;
-#elif ACE_SIZEOF_LONG == 8
- // 64 bit architecture.
- register unsigned long a =
- * ACE_reinterpret_cast (const unsigned long*, orig);
-
- register unsigned long a1 = (a & 0x00ff00ff00ff00ffUL) << 8;
- register unsigned long a2 = (a & 0xff00ff00ff00ff00UL) >> 8;
-
- a = (a1 | a2);
-
- * ACE_reinterpret_cast (unsigned long*, target) = a;
-#else
- register ACE_UINT32 a =
- * ACE_reinterpret_cast (const ACE_UINT32*, orig);
- register ACE_UINT32 b =
- * ACE_reinterpret_cast (const ACE_UINT32*, orig + 4);
-
- register ACE_UINT32 a1 = (a & 0x00ff00ffU) << 8;
- register ACE_UINT32 b1 = (b & 0x00ff00ffU) << 8;
- register ACE_UINT32 a2 = (a & 0xff00ff00U) >> 8;
- register ACE_UINT32 b2 = (b & 0xff00ff00U) >> 8;
-
- a = (a1 | a2);
- b = (b1 | b2);
-
- * ACE_reinterpret_cast (ACE_UINT32*, target) = a;
- * ACE_reinterpret_cast (ACE_UINT32*, target + 4) = b;
-#endif
- orig += 8;
- target += 8;
- }
- }
- else
- {
- // We're out of luck. We have to write in 2 byte chunks.
- while (orig < end)
- {
-#if defined (ACE_HAS_PENTIUM) && defined (__GNUG__)
- unsigned int a =
- * ACE_reinterpret_cast (const unsigned int*, orig);
- unsigned int b =
- * ACE_reinterpret_cast (const unsigned int*, orig + 4);
- asm ( "bswap %1" : "=r" (a) : "0" (a) );
- asm ( "bswap %1" : "=r" (b) : "0" (b) );
- // We're little endian.
- * ACE_reinterpret_cast (unsigned short*, target + 2)
- = (unsigned short) (a & 0xffff);
- * ACE_reinterpret_cast (unsigned short*, target + 6)
- = (unsigned short) (b & 0xffff);
- asm ( "shrl $16, %1" : "=r" (a) : "0" (a) );
- asm ( "shrl $16, %1" : "=r" (b) : "0" (b) );
- * ACE_reinterpret_cast (unsigned short*, target + 0)
- = (unsigned short) (a & 0xffff);
- * ACE_reinterpret_cast (unsigned short*, target + 4)
- = (unsigned short) (b & 0xffff);
-#elif defined (ACE_HAS_PENTIUM) \
- && (defined (_MSC_VER) || defined (__BORLANDC__)) \
- && !defined (ACE_LACKS_INLINE_ASSEMBLY)
- __asm mov ecx, orig;
- __asm mov edx, target;
- __asm mov eax, [ecx];
- __asm mov ebx, 4[ecx];
- __asm bswap eax;
- __asm bswap ebx;
- // We're little endian.
- __asm mov 2[edx], ax;
- __asm mov 6[edx], bx;
- __asm shr eax, 16;
- __asm shr ebx, 16;
- __asm mov 0[edx], ax;
- __asm mov 4[edx], bx;
-#elif ACE_SIZEOF_LONG == 8
- // 64 bit architecture.
- register unsigned long a =
- * ACE_reinterpret_cast (const unsigned long*, orig);
-
- register unsigned long a1 = (a & 0x00ff00ff00ff00ffUL) << 8;
- register unsigned long a2 = (a & 0xff00ff00ff00ff00UL) >> 8;
-
- a = (a1 | a2);
-
- ACE_UINT16 b1 = ACE_static_cast (ACE_UINT16, (a >> 48));
- ACE_UINT16 b2 = ACE_static_cast (ACE_UINT16, ((a >> 32) & 0xffff));
- ACE_UINT16 b3 = ACE_static_cast (ACE_UINT16, ((a >> 16) & 0xffff));
- ACE_UINT16 b4 = ACE_static_cast (ACE_UINT16, (a & 0xffff));
-
-#if defined(ACE_LITTLE_ENDIAN)
- * ACE_reinterpret_cast (ACE_UINT16*, target) = b4;
- * ACE_reinterpret_cast (ACE_UINT16*, target + 2) = b3;
- * ACE_reinterpret_cast (ACE_UINT16*, target + 4) = b2;
- * ACE_reinterpret_cast (ACE_UINT16*, target + 6) = b1;
-#else
- * ACE_reinterpret_cast (ACE_UINT16*, target) = b1;
- * ACE_reinterpret_cast (ACE_UINT16*, target + 2) = b2;
- * ACE_reinterpret_cast (ACE_UINT16*, target + 4) = b3;
- * ACE_reinterpret_cast (ACE_UINT16*, target + 6) = b4;
-#endif
-#else
- register ACE_UINT32 a =
- * ACE_reinterpret_cast (const ACE_UINT32*, orig);
- register ACE_UINT32 b =
- * ACE_reinterpret_cast (const ACE_UINT32*, orig + 4);
-
- register ACE_UINT32 a1 = (a & 0x00ff00ff) << 8;
- register ACE_UINT32 b1 = (b & 0x00ff00ff) << 8;
- register ACE_UINT32 a2 = (a & 0xff00ff00) >> 8;
- register ACE_UINT32 b2 = (b & 0xff00ff00) >> 8;
-
- a = (a1 | a2);
- b = (b1 | b2);
-
- ACE_UINT32 c1 = ACE_static_cast (ACE_UINT16, (a >> 16));
- ACE_UINT32 c2 = ACE_static_cast (ACE_UINT16, (a & 0xffff));
- ACE_UINT32 c3 = ACE_static_cast (ACE_UINT16, (b >> 16));
- ACE_UINT32 c4 = ACE_static_cast (ACE_UINT16, (b & 0xffff));
-
-#if defined(ACE_LITTLE_ENDIAN)
- * ACE_reinterpret_cast (ACE_UINT16*, target) = c2;
- * ACE_reinterpret_cast (ACE_UINT16*, target + 2) = c1;
- * ACE_reinterpret_cast (ACE_UINT16*, target + 4) = c4;
- * ACE_reinterpret_cast (ACE_UINT16*, target + 6) = c3;
-#else
- * ACE_reinterpret_cast (ACE_UINT16*, target) = c1;
- * ACE_reinterpret_cast (ACE_UINT16*, target + 2) = c2;
- * ACE_reinterpret_cast (ACE_UINT16*, target + 4) = c3;
- * ACE_reinterpret_cast (ACE_UINT16*, target + 6) = c4;
-#endif
-#endif
-
- orig += 8;
- target += 8;
- }
- }
-
- // (n & 3) == (n % 4).
- switch (n&3) {
- case 3:
- ACE_CDR::swap_2 (orig, target);
- orig += 2;
- target += 2;
- case 2:
- ACE_CDR::swap_2 (orig, target);
- orig += 2;
- target += 2;
- case 1:
- ACE_CDR::swap_2 (orig, target);
- }
-}
-
-void
-ACE_CDR::swap_4_array (const char* orig, char* target, size_t n)
-{
- // ACE_ASSERT(n > 0); The caller checks that n > 0
-
-#if ACE_LONG_SIZE == 8
- // Later, we read from *orig in 64 bit chunks,
- // so make sure we don't generate unaligned readings.
- const char* const o8 = ACE_ptr_align_binary(orig, 8);
- // The mistmatch can only be by 4.
- if (orig != o8)
- {
- ACE_CDR::swap_4 (orig, target);
- orig += 4;
- target += 4;
- --n;
- }
-#endif
- if (n == 0)
- return;
-
- //
- // Loop unrolling. Here be dragons.
- //
-
- // (n & (~3)) is the greatest multiple of 4 not bigger than n.
- // In the while loop, orig will move over the array by 16 byte
- // increments (4 elements of 4 bytes).
- // ends marks our barrier for not falling outside.
- const char* const end = orig + 4*(n & (~3));
-
-#if ACE_LONG_SIZE == 8
- // 64 bits architecture.
- // See if we can write in 8 byte chunks.
- if (target == ACE_ptr_align_binary(target, 8))
- {
- while (orig < end)
- {
- register unsigned long a =
- * ACE_reinterpret_cast (const long*, orig);
- register unsigned long b =
- * ACE_reinterpret_cast (const long*, orig + 8);
-
- register unsigned long a84 = (a & 0x000000ff000000ffL) << 24;
- register unsigned long b84 = (b & 0x000000ff000000ffL) << 24;
- register unsigned long a73 = (a & 0x0000ff000000ff00L) << 8;
- register unsigned long b73 = (b & 0x0000ff000000ff00L) << 8;
- register unsigned long a62 = (a & 0x00ff000000ff0000L) >> 8;
- register unsigned long b62 = (b & 0x00ff000000ff0000L) >> 8;
- register unsigned long a51 = (a & 0xff000000ff000000L) >> 24;
- register unsigned long b51 = (b & 0xff000000ff000000L) >> 24;
-
- a = (a84 | a73 | a62 | a51);
- b = (b84 | b73 | b62 | b51);
-
- * ACE_reinterpret_cast (long*, target) = a;
- * ACE_reinterpret_cast (long*, target + 8) = b;
-
- orig += 16;
- target += 16;
- }
- }
- else
- {
- // We are out of luck, we have to write in 4 byte chunks.
- while (orig < end)
- {
- register unsigned long a =
- * ACE_reinterpret_cast (const long*, orig);
- register unsigned long b =
- * ACE_reinterpret_cast (const long*, orig + 8);
-
- register unsigned long a84 = (a & 0x000000ff000000ffL) << 24;
- register unsigned long b84 = (b & 0x000000ff000000ffL) << 24;
- register unsigned long a73 = (a & 0x0000ff000000ff00L) << 8;
- register unsigned long b73 = (b & 0x0000ff000000ff00L) << 8;
- register unsigned long a62 = (a & 0x00ff000000ff0000L) >> 8;
- register unsigned long b62 = (b & 0x00ff000000ff0000L) >> 8;
- register unsigned long a51 = (a & 0xff000000ff000000L) >> 24;
- register unsigned long b51 = (b & 0xff000000ff000000L) >> 24;
-
- a = (a84 | a73 | a62 | a51);
- b = (b84 | b73 | b62 | b51);
-
- ACE_UINT32 c1 = ACE_static_cast (ACE_UINT32, (a >> 32));
- ACE_UINT32 c2 = ACE_static_cast (ACE_UINT32, (a & 0xffffffff));
- ACE_UINT32 c3 = ACE_static_cast (ACE_UINT32, (b >> 32));
- ACE_UINT32 c4 = ACE_static_cast (ACE_UINT32, (b & 0xffffffff));
-
-#if defined(ACE_LITTLE_ENDIAN)
- * ACE_reinterpret_cast (ACE_UINT32*, target + 0) = c2;
- * ACE_reinterpret_cast (ACE_UINT32*, target + 4) = c1;
- * ACE_reinterpret_cast (ACE_UINT32*, target + 8) = c4;
- * ACE_reinterpret_cast (ACE_UINT32*, target + 12) = c3;
-#else
- * ACE_reinterpret_cast (ACE_UINT32*, target + 0) = c1;
- * ACE_reinterpret_cast (ACE_UINT32*, target + 4) = c2;
- * ACE_reinterpret_cast (ACE_UINT32*, target + 8) = c3;
- * ACE_reinterpret_cast (ACE_UINT32*, target + 12) = c4;
-#endif
- orig += 16;
- target += 16;
- }
- }
-
-#else /* ACE_LONG_SIZE != 8 */
-
- while (orig < end)
- {
-#if defined(ACE_HAS_PENTIUM) && defined(__GNUG__)
- register unsigned int a =
- *ACE_reinterpret_cast (const unsigned int*, orig);
- register unsigned int b =
- *ACE_reinterpret_cast (const unsigned int*, orig + 4);
- register unsigned int c =
- *ACE_reinterpret_cast (const unsigned int*, orig + 8);
- register unsigned int d =
- *ACE_reinterpret_cast (const unsigned int*, orig + 12);
-
- asm ("bswap %1" : "=r" (a) : "0" (a));
- asm ("bswap %1" : "=r" (b) : "0" (b));
- asm ("bswap %1" : "=r" (c) : "0" (c));
- asm ("bswap %1" : "=r" (d) : "0" (d));
-
- *ACE_reinterpret_cast (unsigned int*, target) = a;
- *ACE_reinterpret_cast (unsigned int*, target + 4) = b;
- *ACE_reinterpret_cast (unsigned int*, target + 8) = c;
- *ACE_reinterpret_cast (unsigned int*, target + 12) = d;
-#elif defined(ACE_HAS_PENTIUM) \
- && (defined(_MSC_VER) || defined(__BORLANDC__)) \
- && !defined(ACE_LACKS_INLINE_ASSEMBLY)
- __asm mov eax, orig
- __asm mov esi, target
- __asm mov edx, [eax]
- __asm mov ecx, 4[eax]
- __asm mov ebx, 8[eax]
- __asm mov eax, 12[eax]
- __asm bswap edx
- __asm bswap ecx
- __asm bswap ebx
- __asm bswap eax
- __asm mov [esi], edx
- __asm mov 4[esi], ecx
- __asm mov 8[esi], ebx
- __asm mov 12[esi], eax
-#else
- register ACE_UINT32 a =
- * ACE_reinterpret_cast (const ACE_UINT32*, orig);
- register ACE_UINT32 b =
- * ACE_reinterpret_cast (const ACE_UINT32*, orig + 4);
- register ACE_UINT32 c =
- * ACE_reinterpret_cast (const ACE_UINT32*, orig + 8);
- register ACE_UINT32 d =
- * ACE_reinterpret_cast (const ACE_UINT32*, orig + 12);
-
- // Expect the optimizer reordering this A LOT.
- // We leave it this way for clarity.
- a = (a << 24) | ((a & 0xff00) << 8) | ((a & 0xff0000) >> 8) | (a >> 24);
- b = (b << 24) | ((b & 0xff00) << 8) | ((b & 0xff0000) >> 8) | (b >> 24);
- c = (c << 24) | ((c & 0xff00) << 8) | ((c & 0xff0000) >> 8) | (c >> 24);
- d = (d << 24) | ((d & 0xff00) << 8) | ((d & 0xff0000) >> 8) | (d >> 24);
-
- * ACE_reinterpret_cast (ACE_UINT32*, target) = a;
- * ACE_reinterpret_cast (ACE_UINT32*, target + 4) = b;
- * ACE_reinterpret_cast (ACE_UINT32*, target + 8) = c;
- * ACE_reinterpret_cast (ACE_UINT32*, target + 12) = d;
-#endif
-
- orig += 16;
- target += 16;
- }
-
-#endif /* ACE_LONG_SIZE == 8 */
-
- // (n & 3) == (n % 4).
- switch (n&3) {
- case 3:
- ACE_CDR::swap_4 (orig, target);
- orig += 4;
- target += 4;
- case 2:
- ACE_CDR::swap_4 (orig, target);
- orig += 4;
- target += 4;
- case 1:
- ACE_CDR::swap_4 (orig, target);
- }
-}
-
-//
-// We don't benefit from unrolling in swap_8_array and swap_16_array
-// (swap_8 and swap_16 are big enough).
-//
-void
-ACE_CDR::swap_8_array (const char* orig, char* target, size_t n)
-{
- // ACE_ASSERT(n > 0); The caller checks that n > 0
-
- const char* const end = orig + 8*n;
- while (orig < end)
- {
- swap_8 (orig, target);
- orig += 8;
- target += 8;
- }
-}
-
-void
-ACE_CDR::swap_16_array (const char* orig, char* target, size_t n)
-{
- // ACE_ASSERT(n > 0); The caller checks that n > 0
-
- const char* const end = orig + 16*n;
- while (orig < end)
- {
- swap_16 (orig, target);
- orig += 16;
- target += 16;
- }
-}
-
-void
-ACE_CDR::mb_align (ACE_Message_Block *mb)
-{
- char *start = ACE_ptr_align_binary (mb->base (),
- ACE_CDR::MAX_ALIGNMENT);
- mb->rd_ptr (start);
- mb->wr_ptr (start);
-}
-
-int
-ACE_CDR::grow (ACE_Message_Block *mb, size_t minsize)
-{
- size_t newsize =
- ACE_CDR::first_size (minsize + ACE_CDR::MAX_ALIGNMENT);
-
- if (newsize <= mb->size ())
- return 0;
-
- ACE_Data_Block *db =
- mb->data_block ()->clone_nocopy ();
-
- if (db->size (newsize) == -1)
- return -1;
-
- ACE_Message_Block tmp (db);
- ACE_CDR::mb_align (&tmp);
-
- tmp.copy (mb->rd_ptr (), mb->length());
- mb->data_block (tmp.data_block ()->duplicate ());
- mb->rd_ptr (tmp.rd_ptr ());
- mb->wr_ptr (tmp.wr_ptr ());
-
- // Remove the DONT_DELETE flags from mb
- mb->clr_self_flags (ACE_Message_Block::DONT_DELETE);
-
- return 0;
-}
-
-size_t
-ACE_CDR::total_length (const ACE_Message_Block* begin,
- const ACE_Message_Block* end)
-{
- size_t l = 0;
- // Compute the total size.
- for (const ACE_Message_Block *i = begin;
- i != end;
- i = i->cont ())
- l += i->length ();
- return l;
-}
-
-void
-ACE_CDR::consolidate (ACE_Message_Block *dst,
- const ACE_Message_Block *src)
-{
- if (src == 0)
- return;
-
- size_t newsize =
- ACE_CDR::first_size (ACE_CDR::total_length (src, 0)
- + ACE_CDR::MAX_ALIGNMENT);
- dst->size (newsize);
-
- // We must copy the contents of <src> into the new buffer, but
- // respecting the alignment.
- ptrdiff_t srcalign =
- ptrdiff_t(src->rd_ptr ()) % ACE_CDR::MAX_ALIGNMENT;
- ptrdiff_t dstalign =
- ptrdiff_t(dst->rd_ptr ()) % ACE_CDR::MAX_ALIGNMENT;
- int offset = srcalign - dstalign;
- if (offset < 0)
- offset += ACE_CDR::MAX_ALIGNMENT;
- dst->rd_ptr (offset);
- dst->wr_ptr (dst->rd_ptr ());
-
- for (const ACE_Message_Block* i = src;
- i != 0;
- i = i->cont ())
- {
- dst->copy (i->rd_ptr (), i->length ());
- }
-}
-
-#if defined (NONNATIVE_LONGLONG)
-int
-ACE_CDR::LongLong::operator== (const ACE_CDR::LongLong &rhs) const
-{
- return this->h == rhs.h && this->l == rhs.l;
-}
-
-int
-ACE_CDR::LongLong::operator!= (const ACE_CDR::LongLong &rhs) const
-{
- return this->l != rhs.l || this->h != rhs.h;
-}
-#endif /* NONNATIVE_LONGLONG */
-
-#if defined (NONNATIVE_LONGDOUBLE)
-int
-ACE_CDR::LongDouble::operator== (const ACE_CDR::LongDouble &rhs) const
-{
- return ACE_OS::memcmp (this->ld, rhs.ld, 16) == 0;
-}
-
-int
-ACE_CDR::LongDouble::operator!= (const ACE_CDR::LongDouble &rhs) const
-{
- return ACE_OS::memcmp (this->ld, rhs.ld, 16) != 0;
-}
-#endif /* NONNATIVE_LONGDOUBLE */
-
-#if defined(_UNICOS) && !defined(_CRAYMPP)
-// placeholders to get things compiling
-ACE_CDR::Float::Float (void)
-{
-}
-
-ACE_CDR::Float::Float (const float & /* init */)
-{
-}
-
-ACE_CDR::Float &
-ACE_CDR::Float::operator= (const float & /* rhs */)
-{
- return *this;
-}
-
-int
-ACE_CDR::Float::operator!= (const ACE_CDR::Float & /* rhs */) const
-{
- return 0;
-}
-#endif /* _UNICOS */
diff --git a/ace/CDR_Base.h b/ace/CDR_Base.h
deleted file mode 100644
index a33217aa3ed..00000000000
--- a/ace/CDR_Base.h
+++ /dev/null
@@ -1,298 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file CDR_Base.h
- *
- * $Id$
- *
- * ACE Common Data Representation (CDR) basic types.
- *
- * The current implementation assumes that the host has 1-byte,
- * 2-byte and 4-byte integral types, and that it has single
- * precision and double precision IEEE floats.
- * Those assumptions are pretty good these days, with Crays being
- * the only known exception.
- *
- *
- * @author TAO version by
- * @author Aniruddha Gokhale <gokhale@cs.wustl.edu>
- * @author Carlos O'Ryan<coryan@cs.wustl.edu>
- * @author ACE version by
- * @author Jeff Parsons <parsons@cs.wustl.edu>
- * @author Istvan Buki <istvan.buki@euronet.be>
- */
-//=============================================================================
-
-
-#ifndef ACE_CDR_BASE_H
-#define ACE_CDR_BASE_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Basic_Types.h"
-#include "ace/Default_Constants.h"
-
-
-class ACE_Message_Block;
-
-/**
- * @class ACE_CDR
- *
- * @brief Keep constants and some routines common to both Output and
- * Input CDR streams.
- */
-class ACE_Export ACE_CDR
-{
-public:
- // = Constants defined by the CDR protocol.
- // By defining as many of these constants as possible as enums we
- // ensure they get inlined and avoid pointless static memory
- // allocations.
-
- enum
- {
- // Note that some of these get reused as part of the standard
- // binary format: unsigned is the same size as its signed cousin,
- // float is LONG_SIZE, and double is LONGLONG_SIZE.
-
- OCTET_SIZE = 1,
- SHORT_SIZE = 2,
- LONG_SIZE = 4,
- LONGLONG_SIZE = 8,
- LONGDOUBLE_SIZE = 16,
-
- OCTET_ALIGN = 1,
- SHORT_ALIGN = 2,
- LONG_ALIGN = 4,
- LONGLONG_ALIGN = 8,
- /// @note the CORBA LongDouble alignment requirements do not
- /// match its size...
- LONGDOUBLE_ALIGN = 8,
-
- /// Maximal CDR 1.1 alignment: "quad precision" FP (i.e. "CDR::Long
- /// double", size as above).
- MAX_ALIGNMENT = 8,
-
- /// The default buffer size.
- /**
- * @todo We want to add options to control this
- * default value, so this constant should be read as the default
- * default value ;-)
- */
- DEFAULT_BUFSIZE = ACE_DEFAULT_CDR_BUFSIZE,
-
- /// The buffer size grows exponentially until it reaches this size;
- /// afterwards it grows linearly using the next constant
- EXP_GROWTH_MAX = ACE_DEFAULT_CDR_EXP_GROWTH_MAX,
-
- /// Once exponential growth is ruled out the buffer size increases
- /// in chunks of this size, note that this constants have the same
- /// value right now, but it does not need to be so.
- LINEAR_GROWTH_CHUNK = ACE_DEFAULT_CDR_LINEAR_GROWTH_CHUNK
- };
-
- /**
- * Do byte swapping for each basic IDL type size. There exist only
- * routines to put byte, halfword (2 bytes), word (4 bytes),
- * doubleword (8 bytes) and quadword (16 byte); because those are
- * the IDL basic type sizes.
- */
- static void swap_2 (const char *orig, char *target);
- static void swap_4 (const char *orig, char *target);
- static void swap_8 (const char *orig, char *target);
- static void swap_16 (const char *orig, char *target);
- static void swap_2_array (const char *orig,
- char *target,
- size_t length);
- static void swap_4_array (const char *orig,
- char *target,
- size_t length);
- static void swap_8_array (const char *orig,
- char *target,
- size_t length);
- static void swap_16_array (const char *orig,
- char *target,
- size_t length);
-
- /// Align the message block to ACE_CDR::MAX_ALIGNMENT,
- /// set by the CORBA spec at 8 bytes.
- static void mb_align (ACE_Message_Block *mb);
-
- /**
- * Compute the size of the smallest buffer that can contain at least
- * <minsize> bytes.
- * To understand how a "best fit" is computed look at the
- * algorithm in the code.
- * Basically the buffers grow exponentially, up to a certain point,
- * then the buffer size grows linearly.
- * The advantage of this algorithm is that is rapidly grows to a
- * large value, but does not explode at the end.
- */
- static size_t first_size (size_t minsize);
-
- /// Compute not the smallest, but the second smallest buffer that
- /// will fir <minsize> bytes.
- static size_t next_size (size_t minsize);
-
- /**
- * Increase the capacity of mb to contain at least <minsize> bytes.
- * If <minsize> is zero the size is increased by an amount at least
- * large enough to contain any of the basic IDL types. Return -1 on
- * failure, 0 on success.
- */
- static int grow (ACE_Message_Block *mb, size_t minsize);
-
- /// Copy a message block chain into a single message block,
- /// preserving the alignment of the first message block of the
- /// original stream, not the following message blocks.
- static void consolidate (ACE_Message_Block *dst,
- const ACE_Message_Block *src);
-
- static size_t total_length (const ACE_Message_Block *begin,
- const ACE_Message_Block *end);
-
- // Definitions of the IDL basic types, for use in the CDR
- // classes. The cleanest way to avoid complaints from all compilers
- // is to define them all.
-# if defined (CHORUS) && defined (ghs) && !defined (__STANDARD_CXX)
- // This is non-compliant, but a nasty bout with
- // Green Hills C++68000 1.8.8 forces us into it.
- typedef unsigned long Boolean;
-# else /* ! (CHORUS && ghs 1.8.8) */
- typedef unsigned char Boolean;
-# endif /* ! (CHORUS && ghs 1.8.8) */
-
- typedef unsigned char Octet;
- typedef char Char;
- typedef ACE_WCHAR_T WChar;
- typedef ACE_INT16 Short;
- typedef ACE_UINT16 UShort;
- typedef ACE_INT32 Long;
- typedef ACE_UINT32 ULong;
- typedef ACE_UINT64 ULongLong;
-
-# if (defined (_MSC_VER) && (_MSC_VER >= 900)) \
- || (defined (__BORLANDC__) && (__BORLANDC__ >= 0x530))
- typedef __int64 LongLong;
-# elif ACE_SIZEOF_LONG == 8 && !defined(_CRAYMPP)
- typedef long LongLong;
-# elif ACE_SIZEOF_LONG_LONG == 8 && !defined (ACE_LACKS_LONGLONG_T)
-# if defined (sun) && !defined (ACE_LACKS_U_LONGLONG_T) && !defined (__KCC)
- // sun #defines u_longlong_t, maybe other platforms do also.
- // Use it, at least with g++, so that its -pedantic doesn't
- // complain about no ANSI C++ long long.
- typedef longlong_t LongLong;
-# else
- // LynxOS 2.5.0 and Linux don't have u_longlong_t.
- typedef long long LongLong;
-# endif /* sun */
-# else /* no native 64 bit integer type */
-# define NONNATIVE_LONGLONG
- struct ACE_Export LongLong
- {
-# if defined (ACE_BIG_ENDIAN)
- ACE_CDR::Long h;
- ACE_CDR::Long l;
-# else
- ACE_CDR::Long l;
- ACE_CDR::Long h;
-# endif /* ! ACE_BIG_ENDIAN */
-
- /**
- * @name Overloaded Relation Operators.
- *
- * The canonical comparison operators.
- */
- //@{
- int operator== (const LongLong &rhs) const;
- int operator!= (const LongLong &rhs) const;
- //@}
- };
-# endif /* no native 64 bit integer type */
-
-# if defined (NONNATIVE_LONGLONG)
-# define ACE_CDR_LONGLONG_INITIALIZER {0,0}
-# else
-# define ACE_CDR_LONGLONG_INITIALIZER 0
-# endif /* NONNATIVE_LONGLONG */
-
-# if ACE_SIZEOF_FLOAT == 4
- typedef float Float;
-# else /* ACE_SIZEOF_FLOAT != 4 */
- struct Float
- {
-# if ACE_SIZEOF_INT == 4
- // Use unsigned int to get word alignment.
- unsigned int f;
-# else /* ACE_SIZEOF_INT != 4 */
- // Applications will probably have trouble with this.
- char f[4];
-# if defined(_UNICOS) && !defined(_CRAYMPP)
- Float (void);
- Float (const float &init);
- Float & operator= (const float &rhs);
- int operator!= (const Float &rhs) const;
-# endif /* _UNICOS */
-# endif /* ACE_SIZEOF_INT != 4 */
- };
-# endif /* ACE_SIZEOF_FLOAT != 4 */
-
-# if ACE_SIZEOF_DOUBLE == 8
- typedef double Double;
-# else /* ACE_SIZEOF_DOUBLE != 8 */
- struct Double
- {
-# if ACE_SIZEOF_LONG == 8
- // Use u long to get word alignment.
- unsigned long f;
-# else /* ACE_SIZEOF_INT != 8 */
- // Applications will probably have trouble with this.
- char f[8];
-# endif /* ACE_SIZEOF_INT != 8 */
- };
-# endif /* ACE_SIZEOF_DOUBLE != 8 */
-
- // 94-9-32 Appendix A defines a 128 bit floating point "long
- // double" data type, with greatly extended precision and four
- // more bits of exponent (compared to "double"). This is an IDL
- // extension, not yet standard.
-
-# if ACE_SIZEOF_LONG_DOUBLE == 16
- typedef long double LongDouble;
-# define ACE_CDR_LONG_DOUBLE_INITIALIZER 0
-# else
-# define NONNATIVE_LONGDOUBLE
-# define ACE_CDR_LONG_DOUBLE_INITIALIZER {{0}}
- struct ACE_Export LongDouble
- {
- char ld[16];
- int operator== (const LongDouble &rhs) const;
- int operator!= (const LongDouble &rhs) const;
- // @@ also need other comparison operators.
- };
-# endif /* ACE_SIZEOF_LONG_DOUBLE != 16 */
-
-#if !defined (ACE_CDR_GIOP_MAJOR_VERSION)
-# define ACE_CDR_GIOP_MAJOR_VERSION 1
-#endif /*ACE_CDR_GIOP_MAJOR_VERSION */
-
-#if !defined (ACE_CDR_GIOP_MINOR_VERSION)
-# define ACE_CDR_GIOP_MINOR_VERSION 2
-#endif /* ACE_CDR_GIOP_MINOR_VERSION */
-};
-
-#if defined (__ACE_INLINE__)
-# include "ace/CDR_Base.inl"
-#endif /* __ACE_INLINE__ */
-
-
-#include "ace/post.h"
-
-#endif /* ACE_CDR_BASE_H */
diff --git a/ace/CDR_Base.inl b/ace/CDR_Base.inl
deleted file mode 100644
index 613a7a64a38..00000000000
--- a/ace/CDR_Base.inl
+++ /dev/null
@@ -1,196 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-//
-// The ACE_CDR::swap_X and ACE_CDR::swap_X_array routines are broken
-// in 4 cases for optimization:
-//
-// * x86 Pentium CPU + gnu g++
-// (ACE_HAS_PENTIUM && __GNUG__)
-// => gcc x86 inline assembly.
-//
-// * x86 Pentium CPU and (_MSC_VER) or BORLAND C++)
-// (ACE_HAS_PENTIUM && ( _MSC_VER || __BORLANDC__ )
-// => MSC x86 inline assembly.
-//
-// * 64 bit architecture
-// (ACE_SIZEOF_LONG == 8)
-// => shift/masks using 64bit words.
-//
-// * default
-// (none of the above)
-// => shift/masks using 32bit words.
-//
-//
-// Some things you could find useful to know if you intend to mess
-// with this optimizations for swaps:
-//
-// * MSVC++ don't assume register values are conserved between
-// statements. So you can clobber any register you want,
-// whenever you want (well not *anyone* really, see manual).
-// The MSVC++ optimizer will try to pick different registers
-// for the C++ statements sorrounding your asm block, and if
-// it's not possible will use the stack.
-//
-// * If you clobber registers with asm statements in gcc, you
-// better do it in an asm-only function, or save/restore them
-// before/after in the stack. If not, sorrounding C statements
-// could end using the same registers and big-badda-bum (been
-// there, done that...). The big-badda-bum could happen *even
-// if you specify the clobbered register in your asm's*.
-// Even better, use gcc asm syntax for detecting the register
-// asigned to a certain variable so you don't have to clobber any
-// register directly.
-//
-
-ACE_INLINE void
-ACE_CDR::swap_2 (const char *orig, char* target)
-{
-#if defined(ACE_HAS_PENTIUM)
-# if defined(__GNUG__)
- unsigned short a =
- *ACE_reinterpret_cast(const unsigned short*, orig);
- asm( "rolw $8, %0" : "=r" (a) : "0" (a) );
- *ACE_reinterpret_cast(unsigned short*, target) = a;
-# elif (defined(_MSC_VER) || defined(__BORLANDC__)) \
- && !defined(ACE_LACKS_INLINE_ASSEMBLY)
- __asm mov ebx, orig;
- __asm mov ecx, target;
- __asm mov ax, [ebx];
- __asm rol ax, 8;
- __asm mov [ecx], ax;
-# else
- // For CISC Platforms this is faster than shift/masks.
- target[1] = orig[0];
- target[0] = orig[1];
-# endif
-#else
- register ACE_UINT16 usrc = * ACE_reinterpret_cast(const ACE_UINT16*, orig);
- register ACE_UINT16* udst = ACE_reinterpret_cast(ACE_UINT16*, target);
- *udst = (usrc << 8) | (usrc >> 8);
-#endif /* ACE_HAS_PENTIUM */
-}
-
-ACE_INLINE void
-ACE_CDR::swap_4 (const char* orig, char* target)
-{
-#if defined(ACE_HAS_PENTIUM) && defined(__GNUG__)
- // We have ACE_HAS_PENTIUM, so we know the sizeof's.
- register unsigned int j =
- *ACE_reinterpret_cast(const unsigned int*, orig);
- asm ("bswap %1" : "=r" (j) : "0" (j));
- *ACE_reinterpret_cast(unsigned int*, target) = j;
-#elif defined(ACE_HAS_PENTIUM) \
- && (defined(_MSC_VER) || defined(__BORLANDC__)) \
- && !defined(ACE_LACKS_INLINE_ASSEMBLY)
- __asm mov ebx, orig;
- __asm mov ecx, target;
- __asm mov eax, [ebx];
- __asm bswap eax;
- __asm mov [ecx], eax;
-#else
- register ACE_UINT32 x = * ACE_reinterpret_cast(const ACE_UINT32*, orig);
- x = (x << 24) | ((x & 0xff00) << 8) | ((x & 0xff0000) >> 8) | (x >> 24);
- * ACE_reinterpret_cast(ACE_UINT32*, target) = x;
-#endif
-}
-
-ACE_INLINE void
-ACE_CDR::swap_8 (const char* orig, char* target)
-{
-#if defined(ACE_HAS_PENTIUM) && defined(__GNUG__)
- register unsigned int i =
- *ACE_reinterpret_cast(const unsigned int*, orig);
- register unsigned int j =
- *ACE_reinterpret_cast(const unsigned int*, orig + 4);
- asm ("bswap %1" : "=r" (i) : "0" (i));
- asm ("bswap %1" : "=r" (j) : "0" (j));
- *ACE_reinterpret_cast(unsigned int*, target + 4) = i;
- *ACE_reinterpret_cast(unsigned int*, target) = j;
-#elif defined(ACE_HAS_PENTIUM) \
- && (defined(_MSC_VER) || defined(__BORLANDC__)) \
- && !defined(ACE_LACKS_INLINE_ASSEMBLY)
- __asm mov ecx, orig;
- __asm mov edx, target;
- __asm mov eax, [ecx];
- __asm mov ebx, 4[ecx];
- __asm bswap eax;
- __asm bswap ebx;
- __asm mov 4[edx], eax;
- __asm mov [edx], ebx;
-#elif ACE_SIZEOF_LONG == 8
- // 64 bit architecture.
- register unsigned long x =
- * ACE_reinterpret_cast(const unsigned long*, orig);
- register unsigned long x84 = (x & 0x000000ff000000ffUL) << 24;
- register unsigned long x73 = (x & 0x0000ff000000ff00UL) << 8;
- register unsigned long x62 = (x & 0x00ff000000ff0000UL) >> 8;
- register unsigned long x51 = (x & 0xff000000ff000000UL) >> 24;
- x = (x84 | x73 | x62 | x51);
- x = (x << 32) | (x >> 32);
- *ACE_reinterpret_cast(unsigned long*, target) = x;
-#else
- register ACE_UINT32 x =
- * ACE_reinterpret_cast(const ACE_UINT32*, orig);
- register ACE_UINT32 y =
- * ACE_reinterpret_cast(const ACE_UINT32*, orig + 4);
- x = (x << 24) | ((x & 0xff00) << 8) | ((x & 0xff0000) >> 8) | (x >> 24);
- y = (y << 24) | ((y & 0xff00) << 8) | ((y & 0xff0000) >> 8) | (y >> 24);
- * ACE_reinterpret_cast(ACE_UINT32*, target) = y;
- * ACE_reinterpret_cast(ACE_UINT32*, target + 4) = x;
-#endif
-}
-
-ACE_INLINE void
-ACE_CDR::swap_16 (const char* orig, char* target)
-{
- swap_8 (orig + 8, target);
- swap_8 (orig, target + 8);
-}
-
-ACE_INLINE size_t
-ACE_CDR::first_size (size_t minsize)
-{
- if (minsize == 0)
- return ACE_CDR::DEFAULT_BUFSIZE;
-
- size_t newsize = ACE_CDR::DEFAULT_BUFSIZE;
- while (newsize < minsize)
- {
- if (newsize < ACE_CDR::EXP_GROWTH_MAX)
- {
- // We grow exponentially at the beginning, this is fast and
- // reduces the number of allocations.
- newsize *= 2;
- }
- else
- {
- // but continuing with exponential growth can result in over
- // allocations and easily yield an allocation failure.
- // So we grow linearly when the buffer is too big.
- newsize += ACE_CDR::LINEAR_GROWTH_CHUNK;
- }
- }
- return newsize;
-}
-
-ACE_INLINE size_t
-ACE_CDR::next_size (size_t minsize)
-{
- size_t newsize =
- ACE_CDR::first_size (minsize);
-
- if (newsize == minsize)
- {
- // If necessary increment the size
- if (newsize < ACE_CDR::EXP_GROWTH_MAX)
- newsize *= 2;
- else
- newsize += ACE_CDR::LINEAR_GROWTH_CHUNK;
- }
-
- return newsize;
-}
-
-// ****************************************************************
diff --git a/ace/CDR_Stream.cpp b/ace/CDR_Stream.cpp
deleted file mode 100644
index 226c38c2806..00000000000
--- a/ace/CDR_Stream.cpp
+++ /dev/null
@@ -1,1617 +0,0 @@
-#include "ace/CDR_Stream.h"
-#include "ace/SString.h"
-
-#if !defined (__ACE_INLINE__)
-# include "ace/CDR_Stream.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID (ace,
- CDR_Stream,
- "$Id$")
-
-
-// ****************************************************************
-
-int ACE_OutputCDR::wchar_maxbytes_ = sizeof (ACE_CDR::WChar);
-
-ACE_OutputCDR::ACE_OutputCDR (size_t size,
- int byte_order,
- ACE_Allocator *buffer_allocator,
- ACE_Allocator *data_block_allocator,
- ACE_Allocator *message_block_allocator,
- size_t memcpy_tradeoff,
- ACE_CDR::Octet major_version,
- ACE_CDR::Octet minor_version)
- : start_ ((size ? size : (size_t) ACE_CDR::DEFAULT_BUFSIZE) + ACE_CDR::MAX_ALIGNMENT,
- ACE_Message_Block::MB_DATA,
- 0,
- 0,
- buffer_allocator,
- 0,
- 0,
- ACE_Time_Value::zero,
- ACE_Time_Value::max_time,
- data_block_allocator,
- message_block_allocator),
- current_is_writable_ (1),
- current_alignment_ (0),
- do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER),
- good_bit_ (1),
- memcpy_tradeoff_ (memcpy_tradeoff),
- major_version_ (major_version),
- minor_version_ (minor_version),
- char_translator_ (0),
- wchar_translator_ (0)
-
-{
- ACE_CDR::mb_align (&this->start_);
- this->current_ = &this->start_;
-}
-
-ACE_OutputCDR::ACE_OutputCDR (char *data, size_t size,
- int byte_order,
- ACE_Allocator *buffer_allocator,
- ACE_Allocator *data_block_allocator,
- ACE_Allocator *message_block_allocator,
- size_t memcpy_tradeoff,
- ACE_CDR::Octet major_version,
- ACE_CDR::Octet minor_version)
- : start_ (size,
- ACE_Message_Block::MB_DATA,
- 0,
- data,
- buffer_allocator,
- 0,
- 0,
- ACE_Time_Value::zero,
- ACE_Time_Value::max_time,
- data_block_allocator,
- message_block_allocator),
- current_is_writable_ (1),
- current_alignment_ (0),
- do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER),
- good_bit_ (1),
- memcpy_tradeoff_ (memcpy_tradeoff),
- major_version_ (major_version),
- minor_version_ (minor_version),
- char_translator_ (0),
- wchar_translator_ (0)
-{
- // We cannot trust the buffer to be properly aligned
- ACE_CDR::mb_align (&this->start_);
- this->current_ = &this->start_;
-}
-
-ACE_OutputCDR::ACE_OutputCDR (ACE_Message_Block *data,
- int byte_order,
- size_t memcpy_tradeoff,
- ACE_CDR::Octet major_version,
- ACE_CDR::Octet minor_version)
- : start_ (data->data_block ()->duplicate ()),
- current_is_writable_ (1),
- current_alignment_ (0),
- do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER),
- good_bit_ (1),
- memcpy_tradeoff_ (memcpy_tradeoff),
- major_version_ (major_version),
- minor_version_ (minor_version),
- char_translator_ (0),
- wchar_translator_ (0)
-{
- // We cannot trust the buffer to be properly aligned
- ACE_CDR::mb_align (&this->start_);
- this->current_ = &this->start_;
-}
-
-/*static*/ void
-ACE_OutputCDR::wchar_maxbytes (int maxbytes)
-{
- ACE_OutputCDR::wchar_maxbytes_ = maxbytes;
-}
-
-/*static*/ int
-ACE_OutputCDR::wchar_maxbytes ()
-{
- return ACE_OutputCDR::wchar_maxbytes_;
-}
-
-int
-ACE_OutputCDR::grow_and_adjust (size_t size,
- size_t align,
- char*& buf)
-{
- if (!this->current_is_writable_
- || this->current_->cont () == 0
- || this->current_->cont ()->size () < size + ACE_CDR::MAX_ALIGNMENT)
- {
- // Calculate the new buffer's length; if growing for encode, we
- // don't grow in "small" chunks because of the cost.
- size_t cursize = this->current_->size ();
- if (this->current_->cont () != 0)
- cursize = this->current_->cont ()->size ();
-
- size_t minsize = size + ACE_CDR::MAX_ALIGNMENT;
- // Make sure that there is enough room for <minsize> bytes, but
- // also make it bigger than whatever our current size is.
- if (minsize < cursize)
- minsize = cursize;
-
- size_t newsize =
- ACE_CDR::next_size (minsize);
-
- this->good_bit_ = 0;
- ACE_Message_Block* tmp;
- ACE_NEW_RETURN (tmp,
- ACE_Message_Block (newsize,
- ACE_Message_Block::MB_DATA,
- 0,
- 0,
- this->current_->data_block ()->allocator_strategy (),
- 0,
- 0,
- ACE_Time_Value::zero,
- ACE_Time_Value::max_time,
- this->current_->data_block ()->data_block_allocator ()),
- -1);
- this->good_bit_ = 1;
-
- // The new block must start with the same alignment as the
- // previous block finished.
- ptrdiff_t tmpalign =
- ptrdiff_t(tmp->rd_ptr ()) % ACE_CDR::MAX_ALIGNMENT;
- ptrdiff_t curalign =
- ptrdiff_t(this->current_alignment_) % ACE_CDR::MAX_ALIGNMENT;
- int offset = curalign - tmpalign;
- if (offset < 0)
- offset += ACE_CDR::MAX_ALIGNMENT;
- tmp->rd_ptr (offset);
- tmp->wr_ptr (tmp->rd_ptr ());
-
- // grow the chain and set the current block.
- tmp->cont (this->current_->cont ());
- this->current_->cont (tmp);
- }
- this->current_ = this->current_->cont ();
- this->current_is_writable_ = 1;
-
- return this->adjust (size, align, buf);
-}
-
-ACE_CDR::Boolean
-ACE_OutputCDR::write_wchar (ACE_CDR::WChar x)
-{
- if (this->wchar_translator_ != 0)
- return (this->good_bit_ = this->wchar_translator_->write_wchar (*this, x));
- if (ACE_OutputCDR::wchar_maxbytes_ == 0)
- {
- errno = EACCES;
- return (this->good_bit_ = 0);
- }
- if (ACE_static_cast (ACE_CDR::Short, major_version_) == 1
- && ACE_static_cast (ACE_CDR::Short, minor_version_) == 2)
- {
- ACE_CDR::Octet len = ACE_static_cast (ACE_CDR::Octet, ACE_OutputCDR::wchar_maxbytes_);
- if (this->write_1 (&len))
- {
- if (ACE_OutputCDR::wchar_maxbytes_ == sizeof(ACE_CDR::WChar))
- return this->write_octet_array (ACE_reinterpret_cast
- (const ACE_CDR::Octet*, &x),
- ACE_static_cast (ACE_CDR::ULong, len));
- else
- if (ACE_OutputCDR::wchar_maxbytes_ == 2)
- {
- ACE_CDR::Short sx = ACE_static_cast(ACE_CDR::Short,x);
- return this->write_octet_array(ACE_reinterpret_cast
- (const ACE_CDR::Octet*, &sx),
- ACE_static_cast (ACE_CDR::ULong, len));
- }
- else
- {
- ACE_CDR::Octet ox = ACE_static_cast(ACE_CDR::Octet,x);
- return this->write_octet_array(ACE_reinterpret_cast
- (const ACE_CDR::Octet*, &ox),
- ACE_static_cast (ACE_CDR::ULong, len));
- }
- }
- }
- else if (ACE_static_cast (ACE_CDR::Short, minor_version_) == 0)
- { // wchar is not allowed with GIOP 1.0.
- errno = EINVAL;
- return (this->good_bit_ = 0);
- }
- if (ACE_OutputCDR::wchar_maxbytes_ == sizeof (ACE_CDR::WChar))
- return this->write_4 (ACE_reinterpret_cast (const ACE_CDR::ULong *, &x));
- else if (ACE_OutputCDR::wchar_maxbytes_ == 2)
- {
- ACE_CDR::Short sx = ACE_static_cast(ACE_CDR::Short,x);
- return this->write_2 (ACE_reinterpret_cast (const ACE_CDR::UShort *,
- &sx));
- }
- ACE_CDR::Octet ox = ACE_static_cast (ACE_CDR::Octet,x);
- return this->write_1 (ACE_reinterpret_cast (const ACE_CDR::Octet *, &ox));
-}
-
-ACE_CDR::Boolean
-ACE_OutputCDR::write_string (ACE_CDR::ULong len,
- const ACE_CDR::Char *x)
-{
- // @@ This is a slight violation of "Optimize for the common case",
- // i.e. normally the translator will be 0, but OTOH the code is
- // smaller and should be better for the cache ;-) ;-)
- if (this->char_translator_ != 0)
- return this->char_translator_->write_string (*this, len, x);
-
- if (len != 0)
- {
- if (this->write_ulong (len + 1))
- return this->write_char_array (x, len + 1);
- }
- else
- {
- // Be nice to programmers: treat nulls as empty strings not
- // errors. (OMG-IDL supports languages that don't use the C/C++
- // notion of null v. empty strings; nulls aren't part of the OMG-IDL
- // string model.)
- if (this->write_ulong (1))
- return this->write_char (0);
- }
-
- return (this->good_bit_ = 0);
-}
-
-ACE_CDR::Boolean
-ACE_OutputCDR::write_string (const ACE_CString &x)
-{
- // @@ Leave this method in here, not the `.i' file so that we don't
- // have to unnecessarily pull in the `ace/SString.h' header.
- return this->write_string (ACE_static_cast (ACE_CDR::ULong, x.length()),
- x.c_str());
-}
-
-ACE_CDR::Boolean
-ACE_OutputCDR::write_wstring (ACE_CDR::ULong len,
- const ACE_CDR::WChar *x)
-{
- // @@ This is a slight violation of "Optimize for the common case",
- // i.e. normally the translator will be 0, but OTOH the code is
- // smaller and should be better for the cache ;-) ;-)
- // What do we do for GIOP 1.2???
- if (this->wchar_translator_ != 0)
- return this->wchar_translator_->write_wstring (*this, len, x);
- if (ACE_OutputCDR::wchar_maxbytes_ == 0)
- {
- errno = EACCES;
- return (this->good_bit_ = 0);
- }
-
- if (ACE_static_cast (ACE_CDR::Short, this->major_version_) == 1
- && ACE_static_cast (ACE_CDR::Short, this->minor_version_) == 2)
- {
- if (x != 0)
- {
- //In GIOP 1.2 the length field contains the number of bytes
- //the wstring occupies rather than number of wchars
- //Taking sizeof might not be a good way! This is a temporary fix.
- if (this->write_ulong (ACE_OutputCDR::wchar_maxbytes_ * len))
- return this->write_wchar_array (x, len);
- }
- else
- //In GIOP 1.2 zero length wstrings are legal
- return this->write_ulong (0);
- }
-
- else
- if (x != 0)
- {
- if (this->write_ulong (len + 1))
- return this->write_wchar_array (x, len + 1);
- }
- else if (this->write_ulong (1))
- return this->write_wchar (0);
- return (this->good_bit_ = 0);
-}
-
-ACE_CDR::Boolean
-ACE_OutputCDR::write_octet_array_mb (const ACE_Message_Block* mb)
-{
- // If the buffer is small and it fits in the current message
- // block it is be cheaper just to copy the buffer.
- for (const ACE_Message_Block* i = mb;
- i != 0;
- i = i->cont ())
- {
- size_t length = i->length ();
-
- // If the mb does not own its data we are forced to make a copy.
- if (ACE_BIT_ENABLED (i->flags (),
- ACE_Message_Block::DONT_DELETE))
- {
- if (! this->write_array (i->rd_ptr (),
- ACE_CDR::OCTET_SIZE,
- ACE_CDR::OCTET_ALIGN,
- ACE_static_cast (ACE_CDR::ULong, length)))
- return (this->good_bit_ = 0);
- continue;
- }
-
- if (length < this->memcpy_tradeoff_
- && this->current_->wr_ptr () + length < this->current_->end ())
- {
- if (! this->write_array (i->rd_ptr (),
- ACE_CDR::OCTET_SIZE,
- ACE_CDR::OCTET_ALIGN,
- ACE_static_cast (ACE_CDR::ULong, length)))
- return (this->good_bit_ = 0);
- continue;
- }
-
- ACE_Message_Block* cont;
- this->good_bit_ = 0;
- ACE_NEW_RETURN (cont,
- ACE_Message_Block (i->data_block ()->duplicate ()),
- 0);
- this->good_bit_ = 1;
-
- if (cont != 0)
- {
- if (this->current_->cont () != 0)
- ACE_Message_Block::release (this->current_->cont ());
- cont->rd_ptr (i->rd_ptr ());
- cont->wr_ptr (i->wr_ptr ());
-
- this->current_->cont (cont);
- this->current_ = cont;
- this->current_is_writable_ = 0;
- this->current_alignment_ =
- (this->current_alignment_ + cont->length ()) % ACE_CDR::MAX_ALIGNMENT;
- }
- else
- {
- this->good_bit_ = 0;
- return 0;
- }
- }
- return 1;
-}
-
-ACE_CDR::Boolean
-ACE_OutputCDR::write_1 (const ACE_CDR::Octet *x)
-{
- char *buf;
- if (this->adjust (1, buf) == 0)
- {
- *ACE_reinterpret_cast(ACE_CDR::Octet*, buf) = *x;
- return 1;
- }
-
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_OutputCDR::write_2 (const ACE_CDR::UShort *x)
-{
- char *buf;
- if (this->adjust (ACE_CDR::SHORT_SIZE, buf) == 0)
- {
-#if !defined (ACE_ENABLE_SWAP_ON_WRITE)
- *ACE_reinterpret_cast(ACE_CDR::UShort*,buf) = *x;
- return 1;
-#else
- if (!this->do_byte_swap_)
- {
- *ACE_reinterpret_cast (ACE_CDR::UShort *, buf) = *x;
- return 1;
- }
- else
- {
- ACE_CDR::swap_2 (ACE_reinterpret_cast (const char*, x), buf);
- return 1;
- }
-#endif /* ACE_ENABLE_SWAP_ON_WRITE */
- }
-
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_OutputCDR::write_4 (const ACE_CDR::ULong *x)
-{
- char *buf;
- if (this->adjust (ACE_CDR::LONG_SIZE, buf) == 0)
- {
-#if !defined (ACE_ENABLE_SWAP_ON_WRITE)
- *ACE_reinterpret_cast(ACE_CDR::ULong*,buf) = *x;
- return 1;
-#else
- if (!this->do_byte_swap_)
- {
- *ACE_reinterpret_cast (ACE_CDR::ULong *, buf) = *x;
- return 1;
- }
- else
- {
- ACE_CDR::swap_4 (ACE_reinterpret_cast (const char*, x), buf);
- return 1;
- }
-#endif /* ACE_ENABLE_SWAP_ON_WRITE */
- }
-
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_OutputCDR::write_8 (const ACE_CDR::ULongLong *x)
-{
- char *buf;
-
- if (this->adjust (ACE_CDR::LONGLONG_SIZE, buf) == 0)
- {
-#if defined (__arm__)
- // Convert to Intel format (12345678 => 56781234)
- const char *orig = ACE_reinterpret_cast (const char *, x);
- char *target = buf;
- register ACE_UINT32 x =
- *ACE_reinterpret_cast (const ACE_UINT32 *, orig);
- register ACE_UINT32 y =
- *ACE_reinterpret_cast (const ACE_UINT32 *, orig + 4);
- *ACE_reinterpret_cast (ACE_UINT32 *, target) = y;
- *ACE_reinterpret_cast (ACE_UINT32 *, target + 4) = x;
- return 1;
-#else
-# if !defined (ACE_ENABLE_SWAP_ON_WRITE)
- *ACE_reinterpret_cast (ACE_CDR::ULongLong *,buf) = *x;
- return 1;
-# else
- if (!this->do_byte_swap_)
- {
- *ACE_reinterpret_cast (ACE_CDR::ULongLong *, buf) = *x;
- return 1;
- }
- else
- {
- ACE_CDR::swap_8 (ACE_reinterpret_cast (const char*, x), buf);
- return 1;
- }
-# endif /* ACE_ENABLE_SWAP_ON_WRITE */
-#endif /* !__arm__ */
- }
-
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_OutputCDR::write_16 (const ACE_CDR::LongDouble *x)
-{
- char* buf;
- if (this->adjust (ACE_CDR::LONGDOUBLE_SIZE,
- ACE_CDR::LONGDOUBLE_ALIGN,
- buf) == 0)
- {
-#if !defined (ACE_ENABLE_SWAP_ON_WRITE)
- *ACE_reinterpret_cast(ACE_CDR::LongDouble*,buf) = *x;
- return 1;
-#else
- if (!this->do_byte_swap_)
- {
- *ACE_reinterpret_cast (ACE_CDR::LongDouble *, buf) = *x;
- return 1;
- }
- else
- {
- ACE_CDR::swap_16 (ACE_reinterpret_cast (const char*, x), buf);
- return 1;
- }
-#endif /* ACE_ENABLE_SWAP_ON_WRITE */
- }
-
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_OutputCDR::write_wchar_array_i (const ACE_CDR::WChar *x,
- ACE_CDR::ULong length)
-{
- if (length == 0)
- return 1;
- char* buf;
- size_t align = (ACE_OutputCDR::wchar_maxbytes_ == 2) ?
- ACE_CDR::SHORT_ALIGN :
- ACE_CDR::OCTET_ALIGN;
-
- if (this->adjust (ACE_OutputCDR::wchar_maxbytes_ * length, align, buf) == 0)
- {
- if (ACE_OutputCDR::wchar_maxbytes_ == 2)
- {
- ACE_CDR::UShort *sb = ACE_reinterpret_cast(ACE_CDR::UShort *, buf);
- for (size_t i = 0; i < length; i++)
-#if !defined (ACE_ENABLE_SWAP_ON_WRITE)
- sb[i] = ACE_static_cast (ACE_CDR::UShort, x[i]);
-#else
- if (!this->do_byte_swap_)
- sb[i] = ACE_static_cast (ACE_CDR::UShort, x[i]);;
- else
- {
- ACE_CDR::UShort sx = ACE_static_cast (ACE_CDR::UShort, x[i]);
- ACE_CDR::swap_2 (ACE_reinterpret_cast(char *,&sx),&buf[i*2]);
- }
-#endif /* ACE_DISABLE_SWAP_ON_READ */
- }
- else
- {
- for (size_t i = 0; i < length; i++)
- buf[i] = ACE_static_cast (ACE_CDR::Octet, x[i]);
- }
- return this->good_bit_;
- }
- return 0;
-}
-
-
-ACE_CDR::Boolean
-ACE_OutputCDR::write_array (const void *x,
- size_t size,
- size_t align,
- ACE_CDR::ULong length)
-{
- if (length == 0)
- return 1;
- char *buf;
- if (this->adjust (size * length, align, buf) == 0)
- {
-#if !defined (ACE_ENABLE_SWAP_ON_WRITE)
- ACE_OS::memcpy (buf, x, size*length);
- return 1;
-#else
- if (!this->do_byte_swap_ || size == 1)
- {
- ACE_OS::memcpy (buf, x, size*length);
- return 1;
- }
- else
- {
- const char *source = ACE_reinterpret_cast (const char *, x);
- switch (size)
- {
- case 2:
- ACE_CDR::swap_2_array (source, buf, length);
- return 1;
- case 4:
- ACE_CDR::swap_4_array (source, buf, length);
- return 1;
- case 8:
- ACE_CDR::swap_8_array (source, buf, length);
- return 1;
- case 16:
- ACE_CDR::swap_16_array (source, buf, length);
- return 1;
- default:
- // TODO: print something?
- this->good_bit_ = 0;
- return 0;
- }
- }
-#endif /* ACE_ENABLE_SWAP_ON_WRITE */
- }
- this->good_bit_ = 0;
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_OutputCDR::write_boolean_array (const ACE_CDR::Boolean* x,
- ACE_CDR::ULong length)
-{
- // It is hard to optimize this, the spec requires that on the wire
- // booleans be represented as a byte with value 0 or 1, but in
- // memoery it is possible (though very unlikely) that a boolean has
- // a non-zero value (different from 1).
- // We resort to a simple loop.
- const ACE_CDR::Boolean* end = x + length;
-
- for (const ACE_CDR::Boolean* i = x;
- i != end && this->good_bit ();
- ++i)
- this->write_boolean (*i);
-
- return this->good_bit ();
-}
-
-// ****************************************************************
-
-ACE_InputCDR::ACE_InputCDR (const char *buf,
- size_t bufsiz,
- int byte_order,
- ACE_CDR::Octet major_version,
- ACE_CDR::Octet minor_version)
- : start_ (buf, bufsiz),
- do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER),
- good_bit_ (1),
- major_version_ (major_version),
- minor_version_ (minor_version),
- char_translator_ (0),
- wchar_translator_ (0)
-{
- this->start_.wr_ptr (bufsiz);
-}
-
-ACE_InputCDR::ACE_InputCDR (size_t bufsiz,
- int byte_order,
- ACE_CDR::Octet major_version,
- ACE_CDR::Octet minor_version)
- : start_ (bufsiz),
- do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER),
- good_bit_ (1),
- major_version_ (major_version),
- minor_version_ (minor_version),
- char_translator_ (0),
- wchar_translator_ (0)
-{
-}
-
-ACE_InputCDR::ACE_InputCDR (const ACE_Message_Block *data,
- int byte_order,
- ACE_CDR::Octet major_version,
- ACE_CDR::Octet minor_version)
- : start_ (),
- good_bit_ (1),
- major_version_ (major_version),
- minor_version_ (minor_version),
- char_translator_ (0),
- wchar_translator_ (0)
-
-{
- this->reset (data, byte_order);
-}
-
-ACE_InputCDR::ACE_InputCDR (ACE_Data_Block *data,
- ACE_Message_Block::Message_Flags flag,
- int byte_order,
- ACE_CDR::Octet major_version,
- ACE_CDR::Octet minor_version)
- : start_ (data, flag),
- do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER),
- good_bit_ (1),
- major_version_ (major_version),
- minor_version_ (minor_version),
- char_translator_ (0),
- wchar_translator_ (0)
-
-{
-}
-
-ACE_InputCDR::ACE_InputCDR (ACE_Data_Block *data,
- ACE_Message_Block::Message_Flags flag,
- size_t rd_pos,
- size_t wr_pos,
- int byte_order,
- ACE_CDR::Octet major_version,
- ACE_CDR::Octet minor_version)
- : start_ (data, flag),
- do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER),
- good_bit_ (1),
- major_version_ (major_version),
- minor_version_ (minor_version),
- char_translator_ (0),
- wchar_translator_ (0)
-
-{
- // Set the read pointer
- this->start_.rd_ptr (rd_pos);
-
- // Set the write pointer after doing a sanity check.
- char* wrpos = this->start_.base () + wr_pos;
-
- if (this->start_.end () >= wrpos)
- {
- this->start_.wr_ptr (wr_pos);
- }
-}
-
-
-ACE_InputCDR::ACE_InputCDR (const ACE_InputCDR& rhs,
- size_t size,
- ACE_CDR::Long offset)
- : start_ (rhs.start_,
- ACE_CDR::MAX_ALIGNMENT),
- do_byte_swap_ (rhs.do_byte_swap_),
- good_bit_ (1),
- major_version_ (rhs.major_version_),
- minor_version_ (rhs.minor_version_),
- char_translator_ (rhs.char_translator_),
- wchar_translator_ (rhs.wchar_translator_)
-
-{
- // Align the base pointer assuming that the incoming stream is also
- // aligned the way we are aligned
- char *incoming_start = ACE_ptr_align_binary (rhs.start_.base (),
- ACE_CDR::MAX_ALIGNMENT);
-
- size_t newpos =
- (rhs.start_.rd_ptr() - incoming_start) + offset;
-
- if (newpos <= this->start_.space ()
- && newpos + size <= this->start_.space ())
- {
- this->start_.rd_ptr (newpos);
- this->start_.wr_ptr (newpos + size);
- }
- else
- this->good_bit_ = 0;
-}
-
-ACE_InputCDR::ACE_InputCDR (const ACE_InputCDR& rhs,
- size_t size)
- : start_ (rhs.start_,
- ACE_CDR::MAX_ALIGNMENT),
- do_byte_swap_ (rhs.do_byte_swap_),
- good_bit_ (1),
- major_version_ (rhs.major_version_),
- minor_version_ (rhs.minor_version_),
- char_translator_ (rhs.char_translator_),
- wchar_translator_ (rhs.wchar_translator_)
-
-{
- // Align the base pointer assuming that the incoming stream is also
- // aligned the way we are aligned
- char *incoming_start = ACE_ptr_align_binary (rhs.start_.base (),
- ACE_CDR::MAX_ALIGNMENT);
-
- size_t newpos =
- rhs.start_.rd_ptr() - incoming_start;
-
- if (newpos <= this->start_.space ()
- && newpos + size <= this->start_.space ())
- {
- // Notice that ACE_Message_Block::duplicate may leave the
- // wr_ptr() with a higher value that what we actually want.
- this->start_.rd_ptr (newpos);
- this->start_.wr_ptr (newpos + size);
-
- ACE_CDR::Octet byte_order;
- this->read_octet (byte_order);
- this->do_byte_swap_ = (byte_order != ACE_CDR_BYTE_ORDER);
- }
- else
- this->good_bit_ = 0;
-}
-
-ACE_InputCDR::ACE_InputCDR (const ACE_InputCDR& rhs)
- : start_ (rhs.start_,
- ACE_CDR::MAX_ALIGNMENT),
- do_byte_swap_ (rhs.do_byte_swap_),
- good_bit_ (1),
- major_version_ (rhs.major_version_),
- minor_version_ (rhs.minor_version_),
- char_translator_ (rhs.char_translator_),
- wchar_translator_ (rhs.wchar_translator_)
-{
- char *buf = ACE_ptr_align_binary (rhs.start_.base (),
- ACE_CDR::MAX_ALIGNMENT);
-
- size_t rd_offset = rhs.start_.rd_ptr () - buf;
- size_t wr_offset = rhs.start_.wr_ptr () - buf;
- this->start_.rd_ptr (rd_offset);
- this->start_.wr_ptr (wr_offset);
-}
-
-ACE_InputCDR::ACE_InputCDR (ACE_InputCDR::Transfer_Contents x)
- : start_ (x.rhs_.start_.data_block ()),
- do_byte_swap_ (x.rhs_.do_byte_swap_),
- good_bit_ (1),
- major_version_ (x.rhs_.major_version_),
- minor_version_ (x.rhs_.minor_version_),
- char_translator_ (x.rhs_.char_translator_),
- wchar_translator_ (x.rhs_.wchar_translator_)
-{
-
- this->start_.rd_ptr (x.rhs_.start_.rd_ptr ());
- this->start_.wr_ptr (x.rhs_.start_.wr_ptr ());
-
- ACE_Data_Block* db = this->start_.data_block ()->clone_nocopy ();
- (void) x.rhs_.start_.replace_data_block (db);
-}
-
-ACE_InputCDR&
-ACE_InputCDR::operator= (const ACE_InputCDR& rhs)
-{
- if (this != &rhs)
- {
- this->start_.data_block (rhs.start_.data_block ()->duplicate ());
- this->start_.rd_ptr (rhs.start_.rd_ptr ());
- this->start_.wr_ptr (rhs.start_.wr_ptr ());
- this->do_byte_swap_ = rhs.do_byte_swap_;
- this->good_bit_ = 1;
- this->char_translator_ = rhs.char_translator_;
- this->major_version_ = rhs.major_version_;
- this->minor_version_ = rhs.minor_version_;
- }
- return *this;
-}
-
-ACE_InputCDR::ACE_InputCDR (const ACE_OutputCDR& rhs,
- ACE_Allocator* buffer_allocator,
- ACE_Allocator* data_block_allocator,
- ACE_Allocator* message_block_allocator)
- : start_ (rhs.total_length () + ACE_CDR::MAX_ALIGNMENT,
- ACE_Message_Block::MB_DATA,
- 0,
- 0,
- buffer_allocator,
- 0,
- 0,
- ACE_Time_Value::zero,
- ACE_Time_Value::max_time,
- data_block_allocator,
- message_block_allocator),
- do_byte_swap_ (rhs.do_byte_swap_),
- good_bit_ (1),
- major_version_ (rhs.major_version_),
- minor_version_ (rhs.minor_version_),
- char_translator_ (rhs.char_translator_),
- wchar_translator_ (rhs.wchar_translator_)
-{
- ACE_CDR::mb_align (&this->start_);
- for (const ACE_Message_Block *i = rhs.begin ();
- i != rhs.end ();
- i = i->cont ())
- this->start_.copy (i->rd_ptr (), i->length ());
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::skip_wchar (void)
-{
- if (ACE_static_cast (ACE_CDR::Short, major_version_) == 1
- && ACE_static_cast (ACE_CDR::Short, minor_version_) == 2)
- {
- ACE_CDR::Octet len;
- if (this->read_1 (&len))
- return this->skip_bytes (ACE_static_cast (size_t, len));
- }
- else
- {
- ACE_CDR::WChar x;
- if (sizeof (ACE_CDR::WChar) == 2)
- return this->read_2 (ACE_reinterpret_cast (ACE_CDR::UShort *,&x));
- else
- return this->read_4 (ACE_reinterpret_cast (ACE_CDR::ULong *,&x));
- }
-
- return (this->good_bit_ = 0);
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::read_wchar (ACE_CDR::WChar& x)
-{
- if (this->wchar_translator_ != 0)
- {
- this->good_bit_ = this->wchar_translator_->read_wchar (*this,x);
- return this->good_bit_;
- }
- if (ACE_OutputCDR::wchar_maxbytes_ == 0)
- {
- errno = EACCES;
- return (this->good_bit_ = 0);
- }
-
- if (ACE_OutputCDR::wchar_maxbytes_ == sizeof (ACE_CDR::WChar))
- {
- if (ACE_static_cast (ACE_CDR::Short, major_version_) == 1
- && ACE_static_cast (ACE_CDR::Short, minor_version_) == 2)
- {
- ACE_CDR::Octet len;
-
- if (this->read_1 (&len))
- return this->read_octet_array
- (ACE_reinterpret_cast (ACE_CDR::Octet*, &x),
- ACE_static_cast (ACE_CDR::ULong, len));
- else
- return (this->good_bit_ = 0);
- }
-
- if (sizeof (ACE_CDR::WChar) == 2)
- return this->read_2 (ACE_reinterpret_cast (ACE_CDR::UShort *, &x));
- else
- return this->read_4 (ACE_reinterpret_cast (ACE_CDR::ULong *, &x));
- }
-
- if (ACE_static_cast (ACE_CDR::Short, major_version_) == 1
- && ACE_static_cast (ACE_CDR::Short, minor_version_) == 2)
- {
- ACE_CDR::Octet len;
-
- if (this->read_1 (&len))
- {
- if (len == 2)
- {
- ACE_CDR::Short sx;
- if (this->read_octet_array
- (ACE_reinterpret_cast (ACE_CDR::Octet*, &sx),
- ACE_static_cast (ACE_CDR::ULong, len)))
- {
- x = ACE_static_cast(ACE_CDR::WChar, sx);
- return 1;
- }
- }
- else
- {
- ACE_CDR::Octet ox;
- if (this->read_octet_array
- (ACE_reinterpret_cast (ACE_CDR::Octet*, &ox),
- ACE_static_cast (ACE_CDR::ULong, len)))
- {
- x = ACE_static_cast(ACE_CDR::WChar, ox);
- return 1;
- }
- }
- }
- }
- else
- {
- if (ACE_OutputCDR::wchar_maxbytes_ == 2)
- {
- ACE_CDR::UShort sx;
- if (this->read_2 (ACE_reinterpret_cast (ACE_CDR::UShort *, &sx)))
- {
- x = ACE_static_cast(ACE_CDR::WChar, sx);
- return 1;
- }
- }
- else
- {
- ACE_CDR::Octet ox;
- if (this->read_1 (&ox))
- {
- x = ACE_static_cast(ACE_CDR::WChar, ox);
- return 1;
- }
-
- }
- }
- return (this->good_bit_ = 0);
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::read_string (ACE_CDR::Char *&x)
-{
- // @@ This is a slight violation of "Optimize for the common case",
- // i.e. normally the translator will be 0, but OTOH the code is
- // smaller and should be better for the cache ;-) ;-)
- if (this->char_translator_ != 0)
- {
- this->good_bit_ = this->char_translator_->read_string (*this, x);
- return this->good_bit_;
- }
-
- ACE_CDR::ULong len;
-
- this->read_ulong (len);
- // A check for the length being too great is done later in the
- // call to read_char_array but we want to have it done before
- // the memory is allocated.
- if (len > 0 && len <= this->length())
- {
- ACE_NEW_RETURN (x,
- ACE_CDR::Char[len],
- 0);
- if (this->read_char_array (x, len))
- return 1;
-
- delete [] x;
- }
- else if (len == 0)
- {
- // Convert any null strings to empty strings since empty
- // strings can cause crashes. (See bug 58.)
- ACE_NEW_RETURN (x,
- ACE_CDR::Char[1],
- 0);
- ACE_OS::strcpy (ACE_const_cast (char *&, x), "");
- return 1;
- }
-
- x = 0;
- return (this->good_bit_ = 0);
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::read_string (ACE_CString &x)
-{
- ACE_CDR::Char *data;
- if (this->read_string (data))
- {
- x = data;
- delete [] data;
- return 1;
- }
-
- x = "";
- return (this->good_bit_ = 0);
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::read_wstring (ACE_CDR::WChar*& x)
-{
- // @@ This is a slight violation of "Optimize for the common case",
- // i.e. normally the translator will be 0, but OTOH the code is
- // smaller and should be better for the cache ;-) ;-)
- if (this->wchar_translator_ != 0)
- {
- this->good_bit_ = this->wchar_translator_->read_wstring (*this, x);
- return this->good_bit_;
- }
- if (ACE_OutputCDR::wchar_maxbytes_ == 0)
- {
- errno = EACCES;
- return (this->good_bit_ = 0);
- }
-
- ACE_CDR::ULong len;
- if (!this->read_ulong (len))
- return 0;
-
- // A check for the length being too great is done later in the
- // call to read_char_array but we want to have it done before
- // the memory is allocated.
- if (len > 0 && len <= this->length())
- {
-
- if (ACE_static_cast (ACE_CDR::Short, this->major_version_) == 1
- && ACE_static_cast (ACE_CDR::Short, this->minor_version_) == 2)
- {
- len /= ACE_OutputCDR::wchar_maxbytes_;
-
- //allocating one extra for the null character needed by applications
- ACE_NEW_RETURN (x,
- ACE_CDR::WChar [len + 1],
- 0);
-
- if (this->read_wchar_array (x, len))
- {
-
- //Null character used by applications to find the end of
- //the wstring
- //Is this okay with the GIOP 1.2 spec??
- x[len] = '\x00';
-
- return 1;
- }
- }
- else
- {
- ACE_NEW_RETURN (x,
- ACE_CDR::WChar [len],
- 0);
-
- if (this->read_wchar_array (x, len))
- return 1;
- }
-
- delete [] x;
- }
- else if (len == 0)
- {
- // Convert any null strings to empty strings since empty
- // strings can cause crashes. (See bug 58.)
- ACE_NEW_RETURN (x,
- ACE_CDR::WChar[1],
- 0);
- x[0] = '\x00';
- return 1;
- }
-
- this->good_bit_ = 0;
- x = 0;
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::read_array (void* x,
- size_t size,
- size_t align,
- ACE_CDR::ULong length)
-{
- if (length == 0)
- return 1;
- char* buf;
-
- if (this->adjust (size * length, align, buf) == 0)
- {
-#if defined (ACE_DISABLE_SWAP_ON_READ)
- ACE_OS::memcpy (x, buf, size*length);
-#else
- if (!this->do_byte_swap_ || size == 1)
- ACE_OS::memcpy (x, buf, size*length);
- else
- {
- char *target = ACE_reinterpret_cast (char*, x);
- switch (size)
- {
- case 2:
- ACE_CDR::swap_2_array (buf, target, length);
- break;
- case 4:
- ACE_CDR::swap_4_array (buf, target, length);
- break;
- case 8:
- ACE_CDR::swap_8_array (buf, target, length);
- break;
- case 16:
- ACE_CDR::swap_16_array (buf, target, length);
- break;
- default:
- // TODO: print something?
- this->good_bit_ = 0;
- return 0;
- }
- }
-#endif /* ACE_DISABLE_SWAP_ON_READ */
- return this->good_bit_;
- }
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::read_wchar_array_i (ACE_CDR::WChar* x,
- ACE_CDR::ULong length)
-{
- if (length == 0)
- return 1;
- char* buf;
- size_t align = (ACE_OutputCDR::wchar_maxbytes_ == 2) ?
- ACE_CDR::SHORT_ALIGN :
- ACE_CDR::OCTET_ALIGN;
-
- if (this->adjust (ACE_OutputCDR::wchar_maxbytes_ * length, align, buf) == 0)
- {
- if (ACE_OutputCDR::wchar_maxbytes_ == 2)
- {
- ACE_CDR::UShort *sb = ACE_reinterpret_cast(ACE_CDR::UShort *, buf);
- for (size_t i = 0; i < length; i++)
-#if defined (ACE_DISABLE_SWAP_ON_READ)
- x[i] = ACE_static_cast (ACE_CDR::WChar, sb[i]);
-#else
- if (!this->do_byte_swap_)
- x[i] = ACE_static_cast (ACE_CDR::WChar, sb[i]);
- else
- {
- ACE_CDR::UShort sx;
- ACE_CDR::swap_2 (&buf[i*2], ACE_reinterpret_cast(char *,&sx));
- x[i] = ACE_static_cast (ACE_CDR::WChar,sx);
- }
-#endif /* ACE_DISABLE_SWAP_ON_READ */
- }
- else
- {
- for (size_t i = 0; i < length; i++)
- x[i] = ACE_static_cast (ACE_CDR::Octet, buf[i]);
- }
- return this->good_bit_;
- }
- return 0;
-}
-
-
-ACE_CDR::Boolean
-ACE_InputCDR::read_boolean_array (ACE_CDR::Boolean *x,
- ACE_CDR::ULong length)
-{
- // Make sure the length of the array isn't greater than the length of
- // the stream.
- if (length > this->length())
- {
- this->good_bit_ = 0;
- return 0;
- }
-
- // It is hard to optimize this, the spec requires that on the wire
- // booleans be represented as a byte with value 0 or 1, but in
- // memoery it is possible (though very unlikely) that a boolean has
- // a non-zero value (different from 1).
- // We resort to a simple loop.
- for (ACE_CDR::ULong i = 0; i != length && this->good_bit_; ++i)
- this->read_boolean (x[i]);
-
- return this->good_bit_;
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::read_1 (ACE_CDR::Octet *x)
-{
- if (this->rd_ptr () < this->wr_ptr ())
- {
- *x = *ACE_reinterpret_cast (ACE_CDR::Octet*,this->rd_ptr ());
- this->start_.rd_ptr (1);
- return 1;
- }
-
- this->good_bit_ = 0;
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::read_2 (ACE_CDR::UShort *x)
-{
- char *buf;
- if (this->adjust (ACE_CDR::SHORT_SIZE, buf) == 0)
- {
-#if !defined (ACE_DISABLE_SWAP_ON_READ)
- if (!this->do_byte_swap_)
- *x = *ACE_reinterpret_cast (ACE_CDR::UShort*, buf);
- else
- ACE_CDR::swap_2 (buf, ACE_reinterpret_cast (char*, x));
-#else
- *x = *ACE_reinterpret_cast(ACE_CDR::UShort*,buf);
-#endif /* ACE_DISABLE_SWAP_ON_READ */
- return 1;
- }
- this->good_bit_ = 0;
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::read_4 (ACE_CDR::ULong *x)
-{
- char *buf;
- if (this->adjust (ACE_CDR::LONG_SIZE, buf) == 0)
- {
-#if !defined (ACE_DISABLE_SWAP_ON_READ)
- if (!this->do_byte_swap_)
- *x = *ACE_reinterpret_cast (ACE_CDR::ULong*, buf);
- else
- ACE_CDR::swap_4 (buf, ACE_reinterpret_cast (char*, x));
-#else
- *x = *ACE_reinterpret_cast(ACE_CDR::ULong*,buf);
-#endif /* ACE_DISABLE_SWAP_ON_READ */
- return 1;
- }
- this->good_bit_ = 0;
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::read_8 (ACE_CDR::ULongLong *x)
-{
- char *buf;
-
- if (this->adjust (ACE_CDR::LONGLONG_SIZE, buf) == 0)
- {
-#if !defined (ACE_DISABLE_SWAP_ON_READ)
-# if defined (__arm__)
- if (!this->do_byte_swap_)
- {
- // Convert from Intel format (12345678 => 56781234)
- const char *orig = buf;
- char *target = ACE_reinterpret_cast (char *, x);
- register ACE_UINT32 x =
- *ACE_reinterpret_cast (const ACE_UINT32 *, orig);
- register ACE_UINT32 y =
- *ACE_reinterpret_cast (const ACE_UINT32 *, orig + 4);
- *ACE_reinterpret_cast (ACE_UINT32 *, target) = y;
- *ACE_reinterpret_cast (ACE_UINT32 *, target + 4) = x;
- }
- else
- {
- // Convert from Sparc format (12345678 => 43218765)
- const char *orig = buf;
- char *target = ACE_reinterpret_cast (char *, x);
- register ACE_UINT32 x =
- *ACE_reinterpret_cast (const ACE_UINT32 *, orig);
- register ACE_UINT32 y =
- *ACE_reinterpret_cast (const ACE_UINT32 *, orig + 4);
- x = (x << 24) | ((x & 0xff00) << 8) | ((x & 0xff0000) >> 8) | (x >> 24);
- y = (y << 24) | ((y & 0xff00) << 8) | ((y & 0xff0000) >> 8) | (y >> 24);
- *ACE_reinterpret_cast (ACE_UINT32 *, target) = x;
- *ACE_reinterpret_cast (ACE_UINT32 *, target + 4) = y;
- }
-# else
- if (!this->do_byte_swap_)
- *x = *ACE_reinterpret_cast (ACE_CDR::ULongLong *, buf);
- else
- ACE_CDR::swap_8 (buf, ACE_reinterpret_cast (char *, x));
-# endif /* !__arm__ */
-#else
- *x = *ACE_reinterpret_cast (ACE_CDR::ULongLong *, buf);
-#endif /* ACE_DISABLE_SWAP_ON_READ */
- return 1;
- }
-
- this->good_bit_ = 0;
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::read_16 (ACE_CDR::LongDouble *x)
-{
- char *buf;
- if (this->adjust (ACE_CDR::LONGLONG_SIZE,
- ACE_CDR::LONGLONG_ALIGN,
- buf) == 0)
- {
-#if !defined (ACE_DISABLE_SWAP_ON_READ)
- if (!this->do_byte_swap_)
- *x = *ACE_reinterpret_cast (ACE_CDR::LongDouble *, buf);
- else
- ACE_CDR::swap_16 (buf, ACE_reinterpret_cast (char*, x));
-#else
- *x = *ACE_reinterpret_cast(ACE_CDR::LongDouble*,buf);
-#endif /* ACE_DISABLE_SWAP_ON_READ */
- return 1;
- }
-
- this->good_bit_ = 0;
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::skip_string (void)
-{
- ACE_CDR::ULong len;
- if (this->read_ulong (len))
- {
- if (this->rd_ptr () + len <= this->wr_ptr ())
- {
- this->rd_ptr (len);
- return 1;
- }
- this->good_bit_ = 0;
- }
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::skip_wstring (void)
-{
- ACE_CDR::Boolean continue_skipping = 1;
- ACE_CDR::ULong len;
-
- continue_skipping = read_ulong (len);
-
- if (continue_skipping != 0 && len != 0)
- {
- if (ACE_static_cast (ACE_CDR::Short, this->major_version_) == 1
- && ACE_static_cast (ACE_CDR::Short, this->minor_version_) == 2)
- continue_skipping = this->skip_bytes ((size_t)len);
- else
- while (continue_skipping != 0 && len--)
- continue_skipping = this->skip_wchar ();
- }
- return continue_skipping;
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::skip_bytes (size_t len)
-{
- if (this->rd_ptr () + len <= this->wr_ptr ())
- {
- this->rd_ptr (len);
- return 1;
- }
- this->good_bit_ = 0;
- return 0;
-}
-
-int
-ACE_InputCDR::grow (size_t newsize)
-{
- if (ACE_CDR::grow (&this->start_, newsize) == -1)
- return -1;
-
- ACE_CDR::mb_align (&this->start_);
- this->start_.wr_ptr (newsize);
- return 0;
-}
-
-void
-ACE_InputCDR::reset (const ACE_Message_Block* data,
- int byte_order)
-{
- this->reset_byte_order (byte_order);
- ACE_CDR::consolidate (&this->start_, data);
-}
-
-void
-ACE_InputCDR::steal_from (ACE_InputCDR &cdr)
-{
- this->do_byte_swap_ = cdr.do_byte_swap_;
- this->start_.data_block (cdr.start_.data_block ()->duplicate ());
-
- // If the message block had a DONT_DELETE flags, just clear it off..
- this->start_.clr_self_flags (ACE_Message_Block::DONT_DELETE);
- this->start_.rd_ptr (cdr.start_.rd_ptr ());
-
- this->start_.wr_ptr (cdr.start_.wr_ptr ());
- this->major_version_ = cdr.major_version_;
- this->minor_version_ = cdr.minor_version_;
- cdr.reset_contents ();
-}
-
-void
-ACE_InputCDR::exchange_data_blocks (ACE_InputCDR &cdr)
-{
- // Exchange byte orders
- int byte_order = cdr.do_byte_swap_;
- cdr.do_byte_swap_ = this->do_byte_swap_;
- this->do_byte_swap_ = byte_order;
-
- // Get the destination read and write pointers
- size_t drd_pos =
- cdr.start_.rd_ptr () - cdr.start_.base ();
- size_t dwr_pos =
- cdr.start_.wr_ptr () - cdr.start_.base ();
-
- // Get the source read & write pointers
- size_t srd_pos =
- this->start_.rd_ptr () - this->start_.base ();
- size_t swr_pos =
- this->start_.wr_ptr () - this->start_.base ();
-
- // Exchange data_blocks. Dont release any of the data blocks.
- ACE_Data_Block *dnb =
- this->start_.replace_data_block (cdr.start_.data_block ());
- cdr.start_.replace_data_block (dnb);
-
- // Exchange the flags information..
- ACE_Message_Block::Message_Flags df = cdr.start_.self_flags ();
- ACE_Message_Block::Message_Flags sf = this->start_.self_flags ();
-
- cdr.start_.clr_self_flags (df);
- this->start_.clr_self_flags (sf);
-
- cdr.start_.set_self_flags (sf);
- this->start_.set_self_flags (df);
-
- // Reset the <cdr> pointers to zero before it is set again.
- cdr.start_.reset ();
- this->start_.reset ();
-
- // Set the read and write pointers.
- if (cdr.start_.size () >= srd_pos)
- cdr.start_.rd_ptr (srd_pos);
-
- if (cdr.start_.size () >= swr_pos)
- cdr.start_.wr_ptr (swr_pos);
-
- if (this->start_.size () >= drd_pos)
- this->start_.rd_ptr (drd_pos);
-
- if (this->start_.size () >= dwr_pos)
- this->start_.wr_ptr (dwr_pos);
-
- ACE_CDR::Octet dmajor = cdr.major_version_;
- ACE_CDR::Octet dminor = cdr.minor_version_;
-
- // Exchange the GIOP version info
- cdr.major_version_ = this->major_version_;
- cdr.minor_version_ = this->minor_version_;
-
- this->major_version_ = dmajor;
- this->minor_version_ = dminor;
-}
-
-ACE_Data_Block *
-ACE_InputCDR::clone_from (ACE_InputCDR &cdr)
-{
- this->do_byte_swap_ = cdr.do_byte_swap_;
-
- // Replace our data block by using the incoming CDR stream.
- ACE_Data_Block *db =
- this->start_.replace_data_block (cdr.start_.data_block ()->clone_nocopy ());
-
- // Align the start_ message block.
- ACE_CDR::mb_align (&this->start_);
-
- // Clear the DONT_DELETE flag if it has been set
- this->start_.clr_self_flags (ACE_Message_Block::DONT_DELETE);
-
- // Get the read & write pointer positions in the incoming CDR
- // streams
- char *rd_ptr = cdr.start_.rd_ptr ();
- char *wr_ptr = cdr.start_.wr_ptr ();
-
- // Now reset the incoming CDR stream
- cdr.start_.reset ();
-
- // As we have reset the stream, try to align the underlying message
- // block in the incoming stream
- ACE_CDR::mb_align (&cdr.start_);
-
- // Get the read & write pointer positions again
- char *nrd_ptr = cdr.start_.rd_ptr ();
- char *nwr_ptr = cdr.start_.wr_ptr ();
-
- // Actual length of the stream is..
- // @todo: This will look idiotic, but we dont seem to have much of a
- // choice. How do we calculate the length of the incoming stream?
- // Calling the method before calling reset () would give us the
- // wrong length of the stream that needs copying. So we do the
- // calulation like this
- // (1) We get the <rd_ptr> and <wr_ptr> positions of the incoming
- // stream.
- // (2) Then we reset the <incoming> stream and then align it.
- // (3) We get the <rd_ptr> and <wr_ptr> positions again. (Points #1
- // thru #3 has been done already)
- // (4) The difference in the <rd_ptr> and <wr_ptr> positions gives
- // us the following, the actual bytes traversed by the <rd_ptr> and
- // <wr_ptr>.
- // (5) The bytes traversed by the <wr_ptr> is the actual length of
- // the stream.
-
- // Actual bytes traversed
- size_t rd_bytes = rd_ptr - nrd_ptr;
- size_t wr_bytes = wr_ptr - nwr_ptr;
-
- // Now do the copy
- (void) ACE_OS::memcpy (this->start_.wr_ptr (),
- cdr.start_.rd_ptr (),
- wr_bytes);
-
- // Set the read pointer position to the same point as that was in
- // <incoming> cdr.
- this->start_.rd_ptr (rd_bytes);
- this->start_.wr_ptr (wr_bytes);
-
- // We have changed the read & write pointers for the incoming
- // stream. Set them back to the positions that they were before..
- cdr.start_.rd_ptr (rd_bytes);
- cdr.start_.wr_ptr (wr_bytes);
-
- this->major_version_ = cdr.major_version_;
- this->minor_version_ = cdr.minor_version_;
-
- return db;
-}
-
-ACE_Message_Block*
-ACE_InputCDR::steal_contents (void)
-{
- ACE_Message_Block* block =
- this->start_.clone ();
- this->start_.data_block (block->data_block ()->clone ());
-
- // If at all our message had a DONT_DELETE flag set, just clear it
- // off.
- this->start_.clr_self_flags (ACE_Message_Block::DONT_DELETE);
-
- ACE_CDR::mb_align (&this->start_);
-
- return block;
-}
-
-void
-ACE_InputCDR::reset_contents (void)
-{
- this->start_.data_block (this->start_.data_block ()->clone_nocopy
- ());
-
- // Reset the flags...
- this->start_.clr_self_flags (ACE_Message_Block::DONT_DELETE);
-}
-
-// --------------------------------------------------------------
-
-#if defined (VXWORKS) && defined (ghs)
-ACE_CDR::Boolean
-ACE_OutputCDR::write_float (ACE_CDR::Float x)
-{
- return this->write_4 (ACE_reinterpret_cast (const ACE_CDR::ULong*, &x));
-}
-
-ACE_CDR::Boolean
-ACE_InputCDR::read_float (ACE_CDR::Float &x)
-{
- return this->read_4 (ACE_reinterpret_cast (ACE_CDR::ULong*, &x));
-}
-#endif /* VXWORKS && ghs */
-
-ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, const ACE_CString &x)
-{
- os.write_string (x);
- return os.good_bit ();
-}
-
-ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_CString &x)
-{
- is.read_string (x);
- return is.good_bit ();
-}
diff --git a/ace/CDR_Stream.h b/ace/CDR_Stream.h
deleted file mode 100644
index dad0d9f6ea5..00000000000
--- a/ace/CDR_Stream.h
+++ /dev/null
@@ -1,1238 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file CDR_Stream.h
- *
- * $Id$
- *
- * ACE Common Data Representation (CDR) marshaling and demarshaling
- * classes.
- *
- * This implementation was inspired in the CDR class in SunSoft's
- * IIOP engine, but has a completely different implementation and a
- * different interface too.
- *
- * The current implementation assumes that the host has 1-byte,
- * 2-byte and 4-byte integral types, and that it has single
- * precision and double precision IEEE floats.
- * Those assumptions are pretty good these days, with Crays beign
- * the only known exception.
- *
- * @author TAO version by Aniruddha Gokhale <gokhale@cs.wustl.edu>
- * @author Carlos O'Ryan <coryan@cs.wustl.edu>
- * @author ACE version by Jeff Parsons <parsons@cs.wustl.edu>
- * @author Istvan Buki <istvan.buki@euronet.be>
- * @author Codeset translation by Jim Rogers <jrogers@viasoft.com>
- */
-//=============================================================================
-
-#ifndef ACE_CDR_STREAM_H
-#define ACE_CDR_STREAM_H
-
-#include "ace/pre.h"
-
-#include "ace/CDR_Base.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SStringfwd.h"
-#include "ace/OS_Memory.h"
-#include "ace/OS_String.h"
-#include "ace/Message_Block.h"
-
-
-// Stuff used by the ACE CDR classes.
-#if defined ACE_LITTLE_ENDIAN
-# define ACE_CDR_BYTE_ORDER 1
-// little endian encapsulation byte order has value = 1
-#else /* ! ACE_LITTLE_ENDIAN */
-# define ACE_CDR_BYTE_ORDER 0
-// big endian encapsulation byte order has value = 0
-#endif /* ! ACE_LITTLE_ENDIAN */
-
-
-class ACE_Char_Codeset_Translator;
-class ACE_WChar_Codeset_Translator;
-
-class ACE_InputCDR;
-
-/**
- * @class ACE_OutputCDR
- *
- * @brief A CDR stream for writing, i.e. for marshalling.
- *
- * This class is based on the the CORBA spec for Java (98-02-29),
- * java class omg.org.CORBA.portable.OutputStream. It diverts in
- * a few ways:
- * + Operations taking arrays don't have offsets, because in C++
- * it is easier to describe an array starting from x+offset.
- * + Operations return an error status, because exceptions are
- * not widely available in C++ (yet).
- */
-class ACE_Export ACE_OutputCDR
-{
-public:
- /**
- * The Codeset translators need access to some private members to
- * efficiently marshal arrays
- * For reading from an output CDR stream.
- */
- friend class ACE_Char_Codeset_Translator;
- friend class ACE_WChar_Codeset_Translator;
- friend class ACE_InputCDR;
-
- /// Default constructor, allocates <size> bytes in the internal
- /// buffer, if <size> == 0 it allocates the default size.
- ACE_OutputCDR (size_t size = 0,
- int byte_order = ACE_CDR_BYTE_ORDER,
- ACE_Allocator* buffer_allocator = 0,
- ACE_Allocator* data_block_allocator = 0,
- ACE_Allocator* message_block_allocator = 0,
- size_t memcpy_tradeoff =
- ACE_DEFAULT_CDR_MEMCPY_TRADEOFF,
- ACE_CDR::Octet major_version =
- ACE_CDR_GIOP_MAJOR_VERSION,
- ACE_CDR::Octet minor_version =
- ACE_CDR_GIOP_MINOR_VERSION);
-
- /// Build a CDR stream with an initial buffer, it will *not* remove
- /// <data>, since it did not allocated it. It's important to be careful
- /// with the alignment of <data>.
- /**
- * Create an output stream from an arbitrary buffer, care must be
- * exercised with alignment, because this contructor will align if
- * needed. In this case <data> will not point to the start off the
- * output stream. begin()->rd_prt() points to the start off the
- * output stream. See ACE_ptr_align_binary() to properly align a
- * pointer and use ACE_CDR::MAX_ALIGNMENT for the correct alignment.
- */
- ACE_OutputCDR (char *data,
- size_t size,
- int byte_order = ACE_CDR_BYTE_ORDER,
- ACE_Allocator* buffer_allocator = 0,
- ACE_Allocator* data_block_allocator = 0,
- ACE_Allocator* message_block_allocator = 0,
- size_t memcpy_tradeoff=
- ACE_DEFAULT_CDR_MEMCPY_TRADEOFF,
- ACE_CDR::Octet giop_major_version =
- ACE_CDR_GIOP_MAJOR_VERSION,
- ACE_CDR::Octet giop_minor_version =
- ACE_CDR_GIOP_MINOR_VERSION);
-
- /// Build a CDR stream with an initial Message_Block chain, it will
- /// *not* remove <data>, since it did not allocate it.
- ACE_OutputCDR (ACE_Message_Block *data,
- int byte_order = ACE_CDR_BYTE_ORDER,
- size_t memcpy_tradeoff=
- ACE_DEFAULT_CDR_MEMCPY_TRADEOFF,
- ACE_CDR::Octet giop_major_version =
- ACE_CDR_GIOP_MAJOR_VERSION,
- ACE_CDR::Octet giop_minor_version =
- ACE_CDR_GIOP_MINOR_VERSION);
-
- /// destructor
- ~ACE_OutputCDR (void);
-
- /**
- * Disambiguate overload when inserting booleans, octets, chars, and
- * bounded strings.
- */
- //@{ @name Helper classes
-
- struct ACE_Export from_boolean
- {
- from_boolean (ACE_CDR::Boolean b);
- ACE_CDR::Boolean val_;
- };
-
- struct ACE_Export from_octet
- {
- from_octet (ACE_CDR::Octet o);
- ACE_CDR::Octet val_;
- };
-
- struct ACE_Export from_char
- {
- from_char (ACE_CDR::Char c);
- ACE_CDR::Char val_;
- };
-
- struct ACE_Export from_wchar
- {
- from_wchar (ACE_CDR::WChar wc);
- ACE_CDR::WChar val_;
- };
-
- struct ACE_Export from_string
- {
- from_string (ACE_CDR::Char* s,
- ACE_CDR::ULong b,
- ACE_CDR::Boolean nocopy = 0);
- from_string (const ACE_CDR::Char* s,
- ACE_CDR::ULong b,
- ACE_CDR::Boolean nocopy = 0);
- ACE_CDR::Char *val_;
- ACE_CDR::ULong bound_;
- ACE_CDR::Boolean nocopy_;
- };
-
- struct ACE_Export from_wstring
- {
- from_wstring (ACE_CDR::WChar* ws,
- ACE_CDR::ULong b,
- ACE_CDR::Boolean nocopy = 0);
- from_wstring (const ACE_CDR::WChar* ws,
- ACE_CDR::ULong b,
- ACE_CDR::Boolean nocopy = 0);
- ACE_CDR::WChar *val_;
- ACE_CDR::ULong bound_;
- ACE_CDR::Boolean nocopy_;
- };
- //@}
-
- // Return 0 on failure and 1 on success.
- //@{ @name Write operations
- ACE_CDR::Boolean write_boolean (ACE_CDR::Boolean x);
- ACE_CDR::Boolean write_char (ACE_CDR::Char x);
- ACE_CDR::Boolean write_wchar (ACE_CDR::WChar x);
- ACE_CDR::Boolean write_octet (ACE_CDR::Octet x);
- ACE_CDR::Boolean write_short (ACE_CDR::Short x);
- ACE_CDR::Boolean write_ushort (ACE_CDR::UShort x);
- ACE_CDR::Boolean write_long (ACE_CDR::Long x);
- ACE_CDR::Boolean write_ulong (ACE_CDR::ULong x);
- ACE_CDR::Boolean write_longlong (const ACE_CDR::LongLong &x);
- ACE_CDR::Boolean write_ulonglong (const ACE_CDR::ULongLong &x);
- ACE_CDR::Boolean write_float (ACE_CDR::Float x);
- ACE_CDR::Boolean write_double (const ACE_CDR::Double &x);
- ACE_CDR::Boolean write_longdouble (const ACE_CDR::LongDouble &x);
-
- /// For string we offer methods that accept a precomputed length.
- ACE_CDR::Boolean write_string (const ACE_CDR::Char *x);
- ACE_CDR::Boolean write_string (ACE_CDR::ULong len,
- const ACE_CDR::Char *x);
- ACE_CDR::Boolean write_string (const ACE_CString &x);
- ACE_CDR::Boolean write_wstring (const ACE_CDR::WChar *x);
- ACE_CDR::Boolean write_wstring (ACE_CDR::ULong length,
- const ACE_CDR::WChar *x);
- //@}
-
- /// Note: the portion written starts at <x> and ends
- /// at <x + length>.
- /// The length is *NOT* stored into the CDR stream.
- //@{ @name Array write operations
- ACE_CDR::Boolean write_boolean_array (const ACE_CDR::Boolean *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean write_char_array (const ACE_CDR::Char *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean write_wchar_array (const ACE_CDR::WChar* x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean write_octet_array (const ACE_CDR::Octet* x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean write_short_array (const ACE_CDR::Short *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean write_ushort_array (const ACE_CDR::UShort *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean write_long_array (const ACE_CDR::Long *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean write_ulong_array (const ACE_CDR::ULong *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean write_longlong_array (const ACE_CDR::LongLong* x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean write_ulonglong_array (const ACE_CDR::ULongLong *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean write_float_array (const ACE_CDR::Float *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean write_double_array (const ACE_CDR::Double *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean write_longdouble_array (const ACE_CDR::LongDouble* x,
- ACE_CDR::ULong length);
-
- /// Write an octet array contained inside a MB, this can be optimized
- /// to minimize copies.
- ACE_CDR::Boolean write_octet_array_mb (const ACE_Message_Block* mb);
- //@}
-
- /**
- * Return 0 on failure and 1 on success.
- */
- //@{ @name Append contents of own CDR stream to another
- ACE_CDR::Boolean append_boolean (ACE_InputCDR &);
- ACE_CDR::Boolean append_char (ACE_InputCDR &);
- ACE_CDR::Boolean append_wchar (ACE_InputCDR &);
- ACE_CDR::Boolean append_octet (ACE_InputCDR &);
- ACE_CDR::Boolean append_short (ACE_InputCDR &);
- ACE_CDR::Boolean append_ushort (ACE_InputCDR &);
- ACE_CDR::Boolean append_long (ACE_InputCDR &);
- ACE_CDR::Boolean append_ulong (ACE_InputCDR &);
- ACE_CDR::Boolean append_longlong (ACE_InputCDR &);
- ACE_CDR::Boolean append_ulonglong (ACE_InputCDR &);
- ACE_CDR::Boolean append_float (ACE_InputCDR &);
- ACE_CDR::Boolean append_double (ACE_InputCDR &);
- ACE_CDR::Boolean append_longdouble (ACE_InputCDR &);
-
- ACE_CDR::Boolean append_wstring (ACE_InputCDR &);
- ACE_CDR::Boolean append_string (ACE_InputCDR &);
- //@}
-
- /// Returns 0 if an error has ocurred, the only expected error is to
- /// run out of memory.
- int good_bit (void) const;
-
- /// Reuse the CDR stream to write on the old buffer.
- void reset (void);
-
- /// Add the length of each message block in the chain.
- size_t total_length (void) const;
-
- /**
- * Return the start of the message block chain for this CDR stream.
- * NOTE: The complete CDR stream is represented by a chain of
- * message blocks.
- */
- const ACE_Message_Block *begin (void) const;
-
- /// Return the last message in the chain that is is use.
- const ACE_Message_Block *end (void) const;
-
- /// Return the <current_> message block in chain.
- const ACE_Message_Block *current (void) const;
-
- /**
- * Access the underlying buffer (read only). NOTE: This
- * method only returns a pointer to the first block in the
- * chain.
- */
- const char *buffer (void) const;
-
- /**
- * Return the start and size of the internal buffer.NOTE: This
- * method only returns information about the first block in the
- * chain.
- */
- size_t length (void) const;
-
- /**
- * Utility function to allow the user more flexibility.
- * Pads the stream up to the nearest <alignment>-byte boundary.
- * Argument MUST be a power of 2.
- * Returns 0 on success and -1 on failure.
- */
- int align_write_ptr (size_t alignment);
-
- /// Access the codeset translators. They can be null!
- ACE_Char_Codeset_Translator *char_translator (void) const;
- ACE_WChar_Codeset_Translator *wchar_translator (void) const;
-
- /// Set the char codeset translator.
- void char_translator (ACE_Char_Codeset_Translator *);
- /// Set the wchar codeset translator.
- void wchar_translator (ACE_WChar_Codeset_Translator *);
-
- /// set the global size of serialized wchars. This may be different
- /// than the size of a wchar_t.
- static void wchar_maxbytes (int );
-
- /// access the serialized size of wchars.
- static int wchar_maxbytes (void);
-
- /**
- * Return alignment of the wr_ptr(), with respect to the start of
- * the CDR stream. This is not the same as the alignment of
- * current->wr_ptr()!
- */
- size_t current_alignment (void) const;
-
- /**
- * Returns (in <buf>) the next position in the buffer aligned to
- * <size>, it advances the Message_Block wr_ptr past the data
- * (i.e., <buf> + <size>). If necessary it grows the Message_Block
- * buffer. Sets the good_bit to 0 and returns a -1 on failure.
- */
- int adjust (size_t size,
- char *&buf);
-
- /// As above, but now the size and alignment requirements may be
- /// different.
- int adjust (size_t size,
- size_t align,
- char *&buf);
-
- /// If non-zero then this stream is writing in non-native byte order,
- /// this is only meaningful if ACE_ENABLE_SWAP_ON_WRITE is defined.
- int do_byte_swap (void) const;
-
- /// For use by a gateway, which creates the output stream for the
- /// reply to the client in its native byte order, but which must
- /// send the reply in the byte order of the target's reply to the
- /// gateway.
- void reset_byte_order (int byte_order);
-
- /// set GIOP version info
- int set_version (ACE_CDR::Octet major,
- ACE_CDR::Octet minor);
-
- /// Set the underlying GIOP version..
- int get_version (ACE_CDR::Octet &major,
- ACE_CDR::Octet &minor);
-private:
- /// disallow copying...
- ACE_OutputCDR (const ACE_OutputCDR& rhs);
- ACE_OutputCDR& operator= (const ACE_OutputCDR& rhs);
-
- ACE_CDR::Boolean write_1 (const ACE_CDR::Octet *x);
- ACE_CDR::Boolean write_2 (const ACE_CDR::UShort *x);
- ACE_CDR::Boolean write_4 (const ACE_CDR::ULong *x);
- ACE_CDR::Boolean write_8 (const ACE_CDR::ULongLong *x);
- ACE_CDR::Boolean write_16 (const ACE_CDR::LongDouble *x);
-
- /**
- * write an array of <length> elements, each of <size> bytes and the
- * start aligned at a multiple of <align>. The elements are assumed
- * to be packed with the right alignment restrictions. It is mostly
- * designed for buffers of the basic types.
- *
- * This operation uses <memcpy>; as explained above it is expected
- * that using assignment is faster that <memcpy> for one element,
- * but for several elements <memcpy> should be more efficient, it
- * could be interesting to find the break even point and optimize
- * for that case, but that would be too platform dependent.
- */
- ACE_CDR::Boolean write_array (const void *x,
- size_t size,
- size_t align,
- ACE_CDR::ULong length);
-
-
- ACE_CDR::Boolean write_wchar_array_i (const ACE_CDR::WChar* x,
- ACE_CDR::ULong length);
-
-
- /**
- * Grow the CDR stream. When it returns <buf> contains a pointer to
- * memory in the CDR stream, with at least <size> bytes ahead of it
- * and aligned to an <align> boundary. It moved the <wr_ptr> to <buf
- * + size>.
- */
- int grow_and_adjust (size_t size,
- size_t align,
- char *&buf);
-
-private:
- /// The start of the chain of message blocks.
- ACE_Message_Block start_;
-
- /// The current block in the chain were we are writing.
- ACE_Message_Block *current_;
-
- /**
- * Is the current block writable. When we steal a buffer from the
- * user and just chain it into the message block we are not supposed
- * to write on it, even if it is past the start and end of the
- * buffer.
- */
- int current_is_writable_;
-
- /**
- * The current alignment as measured from the start of the buffer.
- * Usually this coincides with the alignment of the buffer in
- * memory, but, when we chain another buffer this "quasi invariant"
- * is broken.
- * The current_alignment is used to readjust the buffer following
- * the stolen message block.
- */
- size_t current_alignment_;
-
- /**
- * If not zero swap bytes at writing so the created CDR stream byte
- * order does *not* match the machine byte order. The motivation
- * for such a beast is that in some setting a few (fast) machines
- * can be serving hundreds of slow machines with the opposite byte
- * order, so it makes sense (as a load balancing device) to put the
- * responsability in the writers. THIS IS NOT A STANDARD IN CORBA,
- * USE AT YOUR OWN RISK
- */
- int do_byte_swap_;
-
- /// Set to 0 when an error ocurrs.
- int good_bit_;
-
- /// Break-even point for copying.
- size_t memcpy_tradeoff_;
-
-protected:
- /// GIOP version information
- ACE_CDR::Octet major_version_;
- ACE_CDR::Octet minor_version_;
-
- /// If not nil, invoke for translation of character and string data.
- ACE_Char_Codeset_Translator *char_translator_;
- ACE_WChar_Codeset_Translator *wchar_translator_;
-
- /**
- * Some wide char codesets may be defined with a maximum number
- * of bytes that is smaller than the size of a wchar_t. This means
- * that the CDR cannot simply memcpy a block of wchars to and from
- * the stream, but must instead realign the bytes appropriately.
- * In cases when wchar i/o is not allowed, such as with GIOP 1.0,
- * or not having a native wchar codeset defined, the maxbytes is
- * set to zero, indicating no wchar data is allowed.
- */
- static int wchar_maxbytes_;
-};
-
-// ****************************************************************
-
-/**
- * @class ACE_InputCDR
- *
- * @brief A CDR stream for reading, i.e. for demarshalling.
- *
- * This class is based on the the CORBA spec for Java (98-02-29),
- * java class omg.org.CORBA.portable.InputStream. It diverts in a
- * few ways:
- * + Operations to retrieve basic types take parameters by
- * reference.
- * + Operations taking arrays don't have offsets, because in C++
- * it is easier to describe an array starting from x+offset.
- * + Operations return an error status, because exceptions are
- * not widely available in C++ (yet).
- */
-class ACE_Export ACE_InputCDR
-{
-public:
- /// The translator need privileged access to efficiently demarshal
- /// arrays and the such
- friend class ACE_Char_Codeset_Translator;
- friend class ACE_WChar_Codeset_Translator;
-
- /**
- * Create an input stream from an arbitrary buffer. The buffer must
- * be properly aligned because this contructor will *not* work if
- * the buffer is aligned unproperly.See ACE_ptr_align_binary() for
- * instructions on how to align a pointer properly and use
- * ACE_CDR::MAX_ALIGNMENT for the correct alignment.
- */
- ACE_InputCDR (const char *buf,
- size_t bufsiz,
- int byte_order = ACE_CDR_BYTE_ORDER,
- ACE_CDR::Octet major_version =
- ACE_CDR_GIOP_MAJOR_VERSION,
- ACE_CDR::Octet minor_version =
- ACE_CDR_GIOP_MINOR_VERSION);
-
- /// Create an empty input stream. The caller is responsible for
- /// putting the right data and providing the right alignment.
- ACE_InputCDR (size_t bufsiz,
- int byte_order = ACE_CDR_BYTE_ORDER,
- ACE_CDR::Octet major_version =
- ACE_CDR_GIOP_MAJOR_VERSION,
- ACE_CDR::Octet minor_version =
- ACE_CDR_GIOP_MINOR_VERSION);
-
- /// Create an input stream from an ACE_Message_Block
- /**
- * The alignment of the @arg data block is carried into the new
- * ACE_InputCDR object. This constructor either increments the
- * @arg data reference count, or copies the data (if it's a compound
- * message block) so the caller can release the block immediately
- * upon return.
- */
- ACE_InputCDR (const ACE_Message_Block *data,
- int byte_order = ACE_CDR_BYTE_ORDER,
- ACE_CDR::Octet major_version =
- ACE_CDR_GIOP_MAJOR_VERSION,
- ACE_CDR::Octet minor_version =
- ACE_CDR_GIOP_MINOR_VERSION);
-
- /// Create an input stream from an ACE_Data_Block. The <flag>
- /// indicates whether the <data> can be deleted by the CDR stream
- /// or not
- ACE_InputCDR (ACE_Data_Block *data,
- ACE_Message_Block::Message_Flags flag = 0,
- int byte_order = ACE_CDR_BYTE_ORDER,
- ACE_CDR::Octet major_version =
- ACE_CDR_GIOP_MAJOR_VERSION,
- ACE_CDR::Octet minor_version =
- ACE_CDR_GIOP_MINOR_VERSION);
-
- /// Create an input stream from an ACE_Data_Block. It also sets the
- /// read and write pointers at the desired positions. This would be
- /// helpful if the applications desires to create a new CDR stream
- /// from a semi-processed datablock.
- ACE_InputCDR (ACE_Data_Block *data,
- ACE_Message_Block::Message_Flags flag,
- size_t read_pointer_position,
- size_t write_pointer_position,
- int byte_order = ACE_CDR_BYTE_ORDER,
- ACE_CDR::Octet major_version =
- ACE_CDR_GIOP_MAJOR_VERSION,
- ACE_CDR::Octet minor_version =
- ACE_CDR_GIOP_MINOR_VERSION);
-
- /**
- * These make a copy of the current stream state, but do not copy
- * the internal buffer, so the same stream can be read multiple
- * times efficiently.
- */
- ACE_InputCDR (const ACE_InputCDR& rhs);
-
- ACE_InputCDR& operator= (const ACE_InputCDR& rhs);
-
- /// When interpreting indirected TypeCodes it is useful to make a
- /// "copy" of the stream starting in the new position.
- ACE_InputCDR (const ACE_InputCDR& rhs,
- size_t size,
- ACE_CDR::Long offset);
-
- /// This creates an encapsulated stream, the first byte must be (per
- /// the spec) the byte order of the encapsulation.
- ACE_InputCDR (const ACE_InputCDR& rhs,
- size_t size);
-
- /// Create an input CDR from an output CDR.
- ACE_InputCDR (const ACE_OutputCDR& rhs,
- ACE_Allocator* buffer_allocator = 0,
- ACE_Allocator* data_block_allocator = 0,
- ACE_Allocator* message_block_allocator = 0);
-
- /// Helper class to transfer the contents from one input CDR to
- /// another without requiring any extra memory allocations, data
- /// copies or too many temporaries.
- struct ACE_Export Transfer_Contents
- {
- Transfer_Contents (ACE_InputCDR &rhs);
-
- ACE_InputCDR &rhs_;
- };
- /// Transfer the contents from <rhs> to a new CDR
- ACE_InputCDR (Transfer_Contents rhs);
-
- /// Destructor
- ~ACE_InputCDR (void);
-
- /// Disambiguate overloading when extracting octets, chars,
- /// booleans, and bounded strings
- //@{ @name Helper classes
-
- struct ACE_Export to_boolean
- {
- to_boolean (ACE_CDR::Boolean &b);
- ACE_CDR::Boolean &ref_;
- };
-
- struct ACE_Export to_char
- {
- to_char (ACE_CDR::Char &c);
- ACE_CDR::Char &ref_;
- };
-
- struct ACE_Export to_wchar
- {
- to_wchar (ACE_CDR::WChar &wc);
- ACE_CDR::WChar &ref_;
- };
-
- struct ACE_Export to_octet
- {
- to_octet (ACE_CDR::Octet &o);
- ACE_CDR::Octet &ref_;
- };
-
- struct ACE_Export to_string
- {
- /// The constructor taking a non-const string is
- /// now deprecated (C++ mapping 00-01-02), but we
- /// keep it around for backward compatibility.
- to_string (ACE_CDR::Char *&s,
- ACE_CDR::ULong b);
- to_string (const ACE_CDR::Char *&s,
- ACE_CDR::ULong b);
- const ACE_CDR::Char *&val_;
- ACE_CDR::ULong bound_;
- };
-
- struct ACE_Export to_wstring
- {
- /// The constructor taking a non-const wstring is
- /// now deprecated (C++ mapping 00-01-02), but we
- /// keep it around for backward compatibility.
- to_wstring (ACE_CDR::WChar *&ws,
- ACE_CDR::ULong b);
- to_wstring (const ACE_CDR::WChar *&ws,
- ACE_CDR::ULong b);
- const ACE_CDR::WChar *&val_;
- ACE_CDR::ULong bound_;
- };
- //@}
-
- /**
- * Return 0 on failure and 1 on success.
- */
- //@{ @name Read basic IDL types
- ACE_CDR::Boolean read_boolean (ACE_CDR::Boolean& x);
- ACE_CDR::Boolean read_char (ACE_CDR::Char &x);
- ACE_CDR::Boolean read_wchar (ACE_CDR::WChar& x);
- ACE_CDR::Boolean read_octet (ACE_CDR::Octet& x);
- ACE_CDR::Boolean read_short (ACE_CDR::Short &x);
- ACE_CDR::Boolean read_ushort (ACE_CDR::UShort &x);
- ACE_CDR::Boolean read_long (ACE_CDR::Long &x);
- ACE_CDR::Boolean read_ulong (ACE_CDR::ULong &x);
- ACE_CDR::Boolean read_longlong (ACE_CDR::LongLong& x);
- ACE_CDR::Boolean read_ulonglong (ACE_CDR::ULongLong& x);
- ACE_CDR::Boolean read_float (ACE_CDR::Float &x);
- ACE_CDR::Boolean read_double (ACE_CDR::Double &x);
- ACE_CDR::Boolean read_longdouble (ACE_CDR::LongDouble &x);
-
- ACE_CDR::Boolean read_string (ACE_CDR::Char *&x);
- ACE_CDR::Boolean read_string (ACE_CString &x);
- ACE_CDR::Boolean read_wstring (ACE_CDR::WChar*& x);
- //@}
-
- /**
- * The buffer <x> must be large enough to contain <length>
- * elements.
- * Return 0 on failure and 1 on success.
- */
- //@{ @name Read basic IDL types arrays
- ACE_CDR::Boolean read_boolean_array (ACE_CDR::Boolean* x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean read_char_array (ACE_CDR::Char *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean read_wchar_array (ACE_CDR::WChar* x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean read_octet_array (ACE_CDR::Octet* x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean read_short_array (ACE_CDR::Short *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean read_ushort_array (ACE_CDR::UShort *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean read_long_array (ACE_CDR::Long *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean read_ulong_array (ACE_CDR::ULong *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean read_longlong_array (ACE_CDR::LongLong* x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean read_ulonglong_array (ACE_CDR::ULongLong* x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean read_float_array (ACE_CDR::Float *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean read_double_array (ACE_CDR::Double *x,
- ACE_CDR::ULong length);
- ACE_CDR::Boolean read_longdouble_array (ACE_CDR::LongDouble* x,
- ACE_CDR::ULong length);
- //@}
-
- /**
- * Return 0 on failure and 1 on success.
- */
- //@{ @name Skip elements
- ACE_CDR::Boolean skip_boolean (void);
- ACE_CDR::Boolean skip_char (void);
- ACE_CDR::Boolean skip_wchar (void);
- ACE_CDR::Boolean skip_octet (void);
- ACE_CDR::Boolean skip_short (void);
- ACE_CDR::Boolean skip_ushort (void);
- ACE_CDR::Boolean skip_long (void);
- ACE_CDR::Boolean skip_ulong (void);
- ACE_CDR::Boolean skip_longlong (void);
- ACE_CDR::Boolean skip_ulonglong (void);
- ACE_CDR::Boolean skip_float (void);
- ACE_CDR::Boolean skip_double (void);
- ACE_CDR::Boolean skip_longdouble (void);
- //@}
-
- /**
- * The next field must be a string, this method skips it. It is
- * useful in parsing a TypeCode.
- * Return 0 on failure and 1 on success.
- */
- ACE_CDR::Boolean skip_wstring (void);
- ACE_CDR::Boolean skip_string (void);
-
- /// Skip <n> bytes in the CDR stream.
- /// Return 0 on failure and 1 on success.
- ACE_CDR::Boolean skip_bytes (size_t n);
-
- /// returns zero if a problem has been detected.
- int good_bit (void) const;
-
- /**
- * Return the start of the message block chain for this CDR stream.
- * NOTE: In the current implementation the chain has length 1, but
- * we are planning to change that.
- */
- const ACE_Message_Block* start (void) const;
-
- // = The following functions are useful to read the contents of the
- // CDR stream from a socket or file.
-
- /**
- * Grow the internal buffer, reset <rd_ptr> to the first byte in the
- * new buffer that is properly aligned, and set <wr_ptr> to <rd_ptr>
- * + newsize
- */
- int grow (size_t newsize);
-
- /**
- * After reading and partially parsing the contents the user can
- * detect a change in the byte order, this method will let him
- * change it.
- */
- void reset_byte_order (int byte_order);
-
- /// Re-initialize the CDR stream, copying the contents of the chain
- /// of message_blocks starting from <data>.
- void reset (const ACE_Message_Block *data,
- int byte_order);
-
- /// Steal the contents from the current CDR.
- ACE_Message_Block *steal_contents (void);
-
- /// Steal the contents of <cdr> and make a shallow copy into this
- /// stream.
- void steal_from (ACE_InputCDR &cdr);
-
- /// Exchange data blocks with the caller of this method. The read
- /// and write pointers are also exchanged.
- /// Note: We now do only with the start_ message block.
- void exchange_data_blocks (ACE_InputCDR &cdr);
-
- /// Copy the data portion from the <cdr> to this cdr and return the
- /// data content (ie. the ACE_Data_Block) from this CDR to the
- /// caller. The caller is responsible for managing the memory of the
- /// returned ACE_Data_Block.
- ACE_Data_Block* clone_from (ACE_InputCDR &cdr);
-
- /// Re-initialize the CDR stream, forgetting about the old contents
- /// of the stream and allocating a new buffer (from the allocators).
- void reset_contents (void);
-
- /// Returns the current position for the rd_ptr....
- char* rd_ptr (void);
-
- /// Returns the current position for the wr_ptr....
- char* wr_ptr (void);
-
- /// Return how many bytes are left in the stream.
- size_t length (void) const;
-
- /**
- * Utility function to allow the user more flexibility.
- * Skips up to the nearest <alignment>-byte boundary.
- * Argument MUST be a power of 2.
- * Returns 0 on success and -1 on failure.
- */
- int align_read_ptr (size_t alignment);
-
- /// If non-zero then this stream is writing in non-native byte order,
- /// this is only meaningful if ACE_ENABLE_SWAP_ON_WRITE is defined.
- int do_byte_swap (void) const;
-
- /// If <do_byte_swap> returns 0, this returns ACE_CDR_BYTE_ORDER else
- /// it returns !ACE_CDR_BYTE_ORDER.
- int byte_order (void) const;
-
- /// Access the codeset translators. They can be nil!
- ACE_Char_Codeset_Translator *char_translator (void) const;
- ACE_WChar_Codeset_Translator *wchar_translator (void) const;
-
- /// Set the codeset translators.
- void char_translator (ACE_Char_Codeset_Translator *);
- void wchar_translator (ACE_WChar_Codeset_Translator *);
-
- /**
- * Returns (in <buf>) the next position in the buffer aligned to
- * <size>, it advances the Message_Block rd_ptr past the data
- * (i.e., <buf> + <size>). Sets the good_bit to 0 and returns a -1
- * on failure.
- */
- int adjust (size_t size,
- char *&buf);
-
- /// As above, but now the size and alignment requirements may be
- /// different.
- int adjust (size_t size,
- size_t align,
- char *&buf);
-
- /// Set the underlying GIOP version..
- int set_version (ACE_CDR::Octet major,
- ACE_CDR::Octet minor);
-
- /// Set the underlying GIOP version..
- int get_version (ACE_CDR::Octet &major,
- ACE_CDR::Octet &minor);
-protected:
- /// The start of the chain of message blocks, even though in the
- /// current version the chain always has length 1.
- ACE_Message_Block start_;
-
- /// The CDR stream byte order does not match the one on the machine,
- /// swapping is needed while reading.
- int do_byte_swap_;
-
- /// set to 0 when an error occurs.
- int good_bit_;
-
- /// The GIOP versions for this stream
- ACE_CDR::Octet major_version_;
- ACE_CDR::Octet minor_version_;
-
- /// If not nil, invoke for translation of character and string data.
- ACE_Char_Codeset_Translator *char_translator_;
- ACE_WChar_Codeset_Translator *wchar_translator_;
-
-private:
- ACE_CDR::Boolean read_1 (ACE_CDR::Octet *x);
- ACE_CDR::Boolean read_2 (ACE_CDR::UShort *x);
- ACE_CDR::Boolean read_4 (ACE_CDR::ULong *x);
- ACE_CDR::Boolean read_8 (ACE_CDR::ULongLong *x);
- ACE_CDR::Boolean read_16 (ACE_CDR::LongDouble *x);
-
- // Several types can be read using the same routines, since TAO
- // tries to use native types with known size for each CORBA type.
- // We could use void* or char* to make the interface more
- // consistent, but using native types let us exploit the strict
- // alignment requirements of CDR streams and implement the
- // operations using asignment.
-
- /**
- * Read an array of <length> elements, each of <size> bytes and the
- * start aligned at a multiple of <align>. The elements are assumed
- * to be packed with the right alignment restrictions. It is mostly
- * designed for buffers of the basic types.
- *
- * This operation uses <memcpy>; as explained above it is expected
- * that using assignment is faster that <memcpy> for one element,
- * but for several elements <memcpy> should be more efficient, it
- * could be interesting to find the break even point and optimize
- * for that case, but that would be too platform dependent.
- */
- ACE_CDR::Boolean read_array (void* x,
- size_t size,
- size_t align,
- ACE_CDR::ULong length);
-
- /**
- * On those occasions when the native codeset for wchar is smaller than
- * the size of a wchar_t, such as using UTF-16 with a 4-byte wchar_t, a
- * special form of reading the array is needed. Actually, this should be
- * a default translator.
- */
- ACE_CDR::Boolean read_wchar_array_i (ACE_CDR::WChar * x,
- ACE_CDR::ULong length);
-
- /// Move the rd_ptr ahead by <offset> bytes.
- void rd_ptr (size_t offset);
-
- /// Points to the continuation field of the current message block.
- char* end (void);
-};
-
-// ****************************************************************
-
-/**
- * @class ACE_Char_Codeset_Translator
- *
- * @brief Codeset translation routines common to both Output and Input
- * CDR streams.
- *
- * This class is a base class for defining codeset translation
- * routines to handle the character set translations required by
- * both CDR Input streams and CDR Output streams.
- *
- * Translators are reference counted. This allows for stateful as well
- * as stateless translators. Stateless translators will be allocated
- * once whereas CDR Streams own their own copy of a stateful translator.
- */
-class ACE_Export ACE_Char_Codeset_Translator
-{
-public:
- virtual ~ACE_Char_Codeset_Translator () {};
-
- /// Read a single character from the stream, converting from the
- /// stream codeset to the native codeset
- virtual ACE_CDR::Boolean read_char (ACE_InputCDR&,
- ACE_CDR::Char&) = 0;
-
- /// Read a string from the stream, including the length, converting
- /// the characters from the stream codeset to the native codeset
- virtual ACE_CDR::Boolean read_string (ACE_InputCDR&,
- ACE_CDR::Char *&) = 0;
-
- /// Read an array of characters from the stream, converting the
- /// characters from the stream codeset to the native codeset.
- virtual ACE_CDR::Boolean read_char_array (ACE_InputCDR&,
- ACE_CDR::Char*,
- ACE_CDR::ULong) = 0;
-
- /// Write a single character to the stream, converting from the
- /// native codeset to the stream codeset
- virtual ACE_CDR::Boolean write_char (ACE_OutputCDR&,
- ACE_CDR::Char) = 0;
-
- /// Write a string to the stream, including the length, converting
- /// from the native codeset to the stream codeset
- virtual ACE_CDR::Boolean write_string (ACE_OutputCDR&,
- ACE_CDR::ULong,
- const ACE_CDR::Char*) = 0;
-
- /// Write an array of characters to the stream, converting from the
- /// native codeset to the stream codeset
- virtual ACE_CDR::Boolean write_char_array (ACE_OutputCDR&,
- const ACE_CDR::Char*,
- ACE_CDR::ULong) = 0;
-
- virtual ACE_CDR::ULong ncs () = 0;
- virtual ACE_CDR::ULong tcs () = 0;
-protected:
- /// Children have access to low-level routines because they cannot
- /// use read_char or something similar (it would recurse).
- ACE_CDR::Boolean read_1 (ACE_InputCDR& input,
- ACE_CDR::Octet *x);
- ACE_CDR::Boolean write_1 (ACE_OutputCDR& output,
- const ACE_CDR::Octet *x);
-
- /// Efficiently read <length> elements of size <size> each from
- /// <input> into <x>; the data must be aligned to <align>.
- ACE_CDR::Boolean read_array (ACE_InputCDR& input,
- void* x,
- size_t size,
- size_t align,
- ACE_CDR::ULong length);
-
- /**
- * Efficiently write <length> elements of size <size> from <x> into
- * <output>. Before inserting the elements enough padding is added
- * to ensure that the elements will be aligned to <align> in the
- * stream.
- */
- ACE_CDR::Boolean write_array (ACE_OutputCDR& output,
- const void *x,
- size_t size,
- size_t align,
- ACE_CDR::ULong length);
-
- /**
- * Exposes the stream implementation of <adjust>, this is useful in
- * many cases to minimize memory allocations during marshaling.
- * On success <buf> will contain a contiguous area in the CDR stream
- * that can hold <size> bytes aligned to <align>.
- * Results
- */
- int adjust (ACE_OutputCDR& out,
- size_t size,
- size_t align,
- char *&buf);
-
- /// Used by derived classes to set errors in the CDR stream.
- void good_bit (ACE_OutputCDR& out, int bit);
-
- /// Obtain the CDR Stream's major & minor version values.
- ACE_CDR::Octet major_version (ACE_InputCDR& input);
- ACE_CDR::Octet minor_version (ACE_InputCDR& input);
- ACE_CDR::Octet major_version (ACE_OutputCDR& output);
- ACE_CDR::Octet minor_version (ACE_OutputCDR& output);
-};
-
-// ****************************************************************
-
-/**
- * @class ACE_WChar_Codeset_Translator
- *
- * @brief Codeset translation routines common to both Output and Input
- * CDR streams.
- *
- * This class is a base class for defining codeset translation
- * routines to handle the character set translations required by
- * both CDR Input streams and CDR Output streams.
- */
-class ACE_Export ACE_WChar_Codeset_Translator
-{
-public:
- virtual ~ACE_WChar_Codeset_Translator () {}
-
- virtual ACE_CDR::Boolean read_wchar (ACE_InputCDR&,
- ACE_CDR::WChar&) = 0;
- virtual ACE_CDR::Boolean read_wstring (ACE_InputCDR&,
- ACE_CDR::WChar *&) = 0;
- virtual ACE_CDR::Boolean read_wchar_array (ACE_InputCDR&,
- ACE_CDR::WChar*,
- ACE_CDR::ULong) = 0;
- virtual ACE_CDR::Boolean write_wchar (ACE_OutputCDR&,
- ACE_CDR::WChar) = 0;
- virtual ACE_CDR::Boolean write_wstring (ACE_OutputCDR&,
- ACE_CDR::ULong,
- const ACE_CDR::WChar*) = 0;
- virtual ACE_CDR::Boolean write_wchar_array (ACE_OutputCDR&,
- const ACE_CDR::WChar*,
- ACE_CDR::ULong) = 0;
-
- virtual ACE_CDR::ULong ncs () = 0;
- virtual ACE_CDR::ULong tcs () = 0;
-protected:
- /// Children have access to low-level routines because they cannot
- /// use read_char or something similar (it would recurse).
- ACE_CDR::Boolean read_1 (ACE_InputCDR& input,
- ACE_CDR::Octet *x);
- ACE_CDR::Boolean read_2 (ACE_InputCDR& input,
- ACE_CDR::UShort *x);
- ACE_CDR::Boolean read_4 (ACE_InputCDR& input,
- ACE_CDR::ULong *x);
- ACE_CDR::Boolean write_1 (ACE_OutputCDR& output,
- const ACE_CDR::Octet *x);
- ACE_CDR::Boolean write_2 (ACE_OutputCDR& output,
- const ACE_CDR::UShort *x);
- ACE_CDR::Boolean write_4 (ACE_OutputCDR& output,
- const ACE_CDR::ULong *x);
-
- /// Efficiently read <length> elements of size <size> each from
- /// <input> into <x>; the data must be aligned to <align>.
- ACE_CDR::Boolean read_array (ACE_InputCDR& input,
- void* x,
- size_t size,
- size_t align,
- ACE_CDR::ULong length);
-
- /**
- * Efficiently write <length> elements of size <size> from <x> into
- * <output>. Before inserting the elements enough padding is added
- * to ensure that the elements will be aligned to <align> in the
- * stream.
- */
- ACE_CDR::Boolean write_array (ACE_OutputCDR& output,
- const void *x,
- size_t size,
- size_t align,
- ACE_CDR::ULong length);
-
- /**
- * Exposes the stream implementation of <adjust>, this is useful in
- * many cases to minimize memory allocations during marshaling.
- * On success <buf> will contain a contiguous area in the CDR stream
- * that can hold <size> bytes aligned to <align>.
- * Results
- */
- int adjust (ACE_OutputCDR& out,
- size_t size,
- size_t align,
- char *&buf);
-
- /// Used by derived classes to set errors in the CDR stream.
- void good_bit (ACE_OutputCDR& out, int bit);
-
- /// Obtain the CDR Stream's major & minor version values.
- ACE_CDR::Octet major_version (ACE_InputCDR& input);
- ACE_CDR::Octet minor_version (ACE_InputCDR& input);
- ACE_CDR::Octet major_version (ACE_OutputCDR& output);
- ACE_CDR::Octet minor_version (ACE_OutputCDR& output);
-
-};
-
-// @@ These operators should not be inlined since they force SString.h
-// to be included in this header.
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- const ACE_CString &x);
-
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_CString &x);
-
-
-#if defined (__ACE_INLINE__)
-# include "ace/CDR_Stream.i"
-#else /* __ACE_INLINE__ */
-
-// Not used by CORBA or TAO
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_CDR::Char x);
-// CDR output operators for primitive types
-
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_CDR::Short x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_CDR::UShort x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_CDR::Long x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_CDR::ULong x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_CDR::LongLong x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_CDR::ULongLong x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR& os,
- ACE_CDR::LongDouble x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_CDR::Float x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_CDR::Double x);
-
-// CDR output operator from helper classes
-
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_OutputCDR::from_boolean x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_OutputCDR::from_char x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_OutputCDR::from_wchar x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_OutputCDR::from_octet x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_OutputCDR::from_string x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- ACE_OutputCDR::from_wstring x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- const ACE_CDR::Char* x);
-extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os,
- const ACE_CDR::WChar* x);
-
-// Not used by CORBA or TAO
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_CDR::Char &x);
-// CDR input operators for primitive types
-
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_CDR::Short &x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_CDR::UShort &x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_CDR::Long &x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_CDR::ULong &x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_CDR::LongLong &x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_CDR::ULongLong &x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_CDR::LongDouble &x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_CDR::Float &x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_CDR::Double &x);
-
-// CDR input operator from helper classes
-
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_InputCDR::to_boolean x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_InputCDR::to_char x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_InputCDR::to_wchar x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_InputCDR::to_octet x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_InputCDR::to_string x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_InputCDR::to_wstring x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_CDR::Char*& x);
-extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
- ACE_CDR::WChar*& x);
-
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_CDR_STREAM_H */
diff --git a/ace/CDR_Stream.i b/ace/CDR_Stream.i
deleted file mode 100644
index fc018de19c7..00000000000
--- a/ace/CDR_Stream.i
+++ /dev/null
@@ -1,1648 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-// ****************************************************************
-
-// implementing the special types
-ACE_INLINE
-ACE_OutputCDR::from_boolean::from_boolean (ACE_CDR::Boolean b)
- : val_ (b)
-{
-}
-
-ACE_INLINE
-ACE_InputCDR::to_boolean::to_boolean (ACE_CDR::Boolean &b)
- : ref_ (b)
-{
-}
-
-ACE_INLINE
-ACE_OutputCDR::from_octet::from_octet (ACE_CDR::Octet o)
- : val_ (o)
-{
-}
-
-ACE_INLINE
-ACE_InputCDR::to_octet::to_octet (ACE_CDR::Octet &o)
- : ref_ (o)
-{
-}
-
-ACE_INLINE
-ACE_OutputCDR::from_char::from_char (ACE_CDR::Char c)
- : val_ (c)
-{
-}
-
-ACE_INLINE
-ACE_InputCDR::to_char::to_char (ACE_CDR::Char &c)
- : ref_ (c)
-{
-}
-
-ACE_INLINE
-ACE_OutputCDR::from_wchar::from_wchar (ACE_CDR::WChar wc)
- : val_ (wc)
-{
-}
-
-ACE_INLINE
-ACE_InputCDR::to_wchar::to_wchar (ACE_CDR::WChar &wc)
- : ref_ (wc)
-{
-}
-
-ACE_INLINE
-ACE_OutputCDR::from_string::from_string (ACE_CDR::Char *s,
- ACE_CDR::ULong b,
- ACE_CDR::Boolean nocopy)
- : val_ (s),
- bound_ (b),
- nocopy_ (nocopy)
-{
-}
-
-ACE_INLINE
-ACE_OutputCDR::from_string::from_string (const ACE_CDR::Char *s,
- ACE_CDR::ULong b,
- ACE_CDR::Boolean nocopy)
- : val_ (ACE_const_cast (ACE_CDR::Char *, s)),
- bound_ (b),
- nocopy_ (nocopy)
-{
-}
-
-ACE_INLINE
-ACE_InputCDR::to_string::to_string (ACE_CDR::Char *&s,
- ACE_CDR::ULong b)
- : val_ (ACE_const_cast (const ACE_CDR::Char *&, s)),
- bound_ (b)
-{
-}
-
-ACE_INLINE
-ACE_InputCDR::to_string::to_string (const ACE_CDR::Char *&s,
- ACE_CDR::ULong b)
- : val_ (s),
- bound_ (b)
-{
-}
-
-ACE_INLINE
-ACE_OutputCDR::from_wstring::from_wstring (ACE_CDR::WChar *ws,
- ACE_CDR::ULong b,
- ACE_CDR::Boolean nocopy)
- : val_ (ws),
- bound_ (b),
- nocopy_ (nocopy)
-{
-}
-
-ACE_INLINE
-ACE_OutputCDR::from_wstring::from_wstring (const ACE_CDR::WChar *ws,
- ACE_CDR::ULong b,
- ACE_CDR::Boolean nocopy)
- : val_ (ACE_const_cast (ACE_CDR::WChar *, ws)),
- bound_ (b),
- nocopy_ (nocopy)
-{
-}
-
-ACE_INLINE
-ACE_InputCDR::to_wstring::to_wstring (ACE_CDR::WChar *&ws,
- ACE_CDR::ULong b)
- : val_ (ACE_const_cast (const ACE_CDR::WChar *&, ws)),
- bound_ (b)
-{
-}
-
-ACE_INLINE
-ACE_InputCDR::to_wstring::to_wstring (const ACE_CDR::WChar *&ws,
- ACE_CDR::ULong b)
- : val_ (ws),
- bound_ (b)
-{
-}
-
-ACE_INLINE
-ACE_InputCDR::Transfer_Contents::Transfer_Contents (ACE_InputCDR &rhs)
- : rhs_ (rhs)
-{
-}
-
-// ****************************************************************
-
-ACE_INLINE
-ACE_OutputCDR::~ACE_OutputCDR (void)
-{
- if (this->start_.cont () != 0)
- {
- ACE_Message_Block::release (this->start_.cont ());
- this->start_.cont (0);
- }
- this->current_ = 0;
-}
-
-ACE_INLINE void
-ACE_OutputCDR::reset (void)
-{
- this->current_ = &this->start_;
- this->current_is_writable_ = 1;
- ACE_CDR::mb_align (&this->start_);
- this->current_alignment_ = 0;
-
- // It is tempting not to remove the memory, but we need to do so to
- // release any potential user buffers chained in the continuation
- // field.
-
- ACE_Message_Block *cont = this->start_.cont ();
- if (cont != 0)
- {
- ACE_Message_Block::release (cont);
- this->start_.cont (0);
- }
-
-}
-
-// Encode the CDR stream.
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_octet (ACE_CDR::Octet x)
-{
- return this->write_1 (ACE_reinterpret_cast (const ACE_CDR::Octet *, &x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_boolean (ACE_CDR::Boolean x)
-{
- return (ACE_CDR::Boolean) this->write_octet (x ? (ACE_CDR::Octet) 1 : (ACE_CDR::Octet) 0);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_char (ACE_CDR::Char x)
-{
- if (this->char_translator_ == 0)
- return this->write_1 (ACE_reinterpret_cast (const ACE_CDR::Octet*, &x));
- return this->char_translator_->write_char (*this, x);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_short (ACE_CDR::Short x)
-{
- return this->write_2 (ACE_reinterpret_cast (const ACE_CDR::UShort*, &x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_ushort (ACE_CDR::UShort x)
-{
- return this->write_2 (ACE_reinterpret_cast (const ACE_CDR::UShort*, &x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_long (ACE_CDR::Long x)
-{
- return this->write_4 (ACE_reinterpret_cast (const ACE_CDR::ULong*, &x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_ulong (ACE_CDR::ULong x)
-{
- return this->write_4 (ACE_reinterpret_cast (const ACE_CDR::ULong*, &x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_longlong (const ACE_CDR::LongLong &x)
-{
- return this->write_8 (ACE_reinterpret_cast (const ACE_CDR::ULongLong*, &x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_ulonglong (const ACE_CDR::ULongLong &x)
-{
- return this->write_8 (ACE_reinterpret_cast (const ACE_CDR::ULongLong*,&x));
-}
-
-#if !defined (VXWORKS) || !defined (ghs)
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_float (ACE_CDR::Float x)
-{
- return this->write_4 (ACE_reinterpret_cast (const ACE_CDR::ULong*, &x));
-}
-#endif /* !VXWORKS || !ghs */
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_double (const ACE_CDR::Double &x)
-{
- return this->write_8 (ACE_reinterpret_cast (const ACE_CDR::ULongLong*, &x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_longdouble (const ACE_CDR::LongDouble &x)
-{
- return this->write_16 (ACE_reinterpret_cast (const ACE_CDR::LongDouble*,&x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_string (const ACE_CDR::Char *x)
-{
- if (x != 0)
- {
- ACE_CDR::ULong len =
- ACE_static_cast (ACE_CDR::ULong, ACE_OS_String::strlen (x));
- return this->write_string (len, x);
- }
- return this->write_string (0, 0);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_wstring (const ACE_CDR::WChar *x)
-{
- if (x != 0)
- return this->write_wstring (ACE_OS_String::strlen (x), x);
- return this->write_wstring (0, 0);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_char_array (const ACE_CDR::Char *x,
- ACE_CDR::ULong length)
-{
- if (this->char_translator_ == 0)
- return this->write_array (x,
- ACE_CDR::OCTET_SIZE,
- ACE_CDR::OCTET_ALIGN,
- length);
- return this->char_translator_->write_char_array (*this, x, length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_wchar_array (const ACE_CDR::WChar* x,
- ACE_CDR::ULong length)
-{
- if (this->wchar_translator_)
- return this->wchar_translator_->write_wchar_array (*this, x, length);
- if (ACE_OutputCDR::wchar_maxbytes_ == 0)
- {
- errno = EACCES;
- return (this->good_bit_ = 0);
- }
- if (ACE_OutputCDR::wchar_maxbytes_ == sizeof (ACE_CDR::WChar))
- return this->write_array (x,
- sizeof (ACE_CDR::WChar),
- sizeof (ACE_CDR::WChar) == 2
- ? ACE_CDR::SHORT_ALIGN
- : ACE_CDR::LONG_ALIGN,
- length);
- return this->write_wchar_array_i (x,length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_octet_array (const ACE_CDR::Octet* x,
- ACE_CDR::ULong length)
-{
- return this->write_array (x,
- ACE_CDR::OCTET_SIZE,
- ACE_CDR::OCTET_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_short_array (const ACE_CDR::Short *x,
- ACE_CDR::ULong length)
-{
- return this->write_array (x,
- ACE_CDR::SHORT_SIZE,
- ACE_CDR::SHORT_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_ushort_array (const ACE_CDR::UShort *x,
- ACE_CDR::ULong length)
-{
- return this->write_array (x,
- ACE_CDR::SHORT_SIZE,
- ACE_CDR::SHORT_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_long_array (const ACE_CDR::Long *x,
- ACE_CDR::ULong length)
-{
- return this->write_array (x,
- ACE_CDR::LONG_SIZE,
- ACE_CDR::LONG_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_ulong_array (const ACE_CDR::ULong *x,
- ACE_CDR::ULong length)
-{
- return this->write_array (x,
- ACE_CDR::LONG_SIZE,
- ACE_CDR::LONG_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_longlong_array (const ACE_CDR::LongLong *x,
- ACE_CDR::ULong length)
-{
- return this->write_array (x,
- ACE_CDR::LONGLONG_SIZE,
- ACE_CDR::LONGLONG_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_ulonglong_array (const ACE_CDR::ULongLong *x,
- ACE_CDR::ULong length)
-{
- return this->write_array (x,
- ACE_CDR::LONGLONG_SIZE,
- ACE_CDR::LONGLONG_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_float_array (const ACE_CDR::Float *x,
- ACE_CDR::ULong length)
-{
- return this->write_array (x,
- ACE_CDR::LONG_SIZE,
- ACE_CDR::LONG_ALIGN,
- length);
-}
-
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_double_array (const ACE_CDR::Double *x,
- ACE_CDR::ULong length)
-{
- return this->write_array (x,
- ACE_CDR::LONGLONG_SIZE,
- ACE_CDR::LONGLONG_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::write_longdouble_array (const ACE_CDR::LongDouble* x,
- ACE_CDR::ULong length)
-{
- return this->write_array (x,
- ACE_CDR::LONGDOUBLE_SIZE,
- ACE_CDR::LONGDOUBLE_ALIGN,
- length);
-}
-
-ACE_INLINE int
-ACE_OutputCDR::good_bit (void) const
-{
- return this->good_bit_;
-}
-
-ACE_INLINE int
-ACE_OutputCDR::adjust (size_t size,
- size_t align,
- char*& buf)
-{
- if (!this->current_is_writable_)
- return this->grow_and_adjust (size, align, buf);
-
- size_t offset =
- ACE_align_binary (this->current_alignment_, align)
- - this->current_alignment_;
-
- buf = this->current_->wr_ptr () + offset;
- char *end = buf + size;
-
- if (end <= this->current_->end () &&
- end >= buf)
- {
- this->current_alignment_ += offset + size;
- this->current_->wr_ptr (end);
- return 0;
- }
-
- return this->grow_and_adjust (size, align, buf);
-}
-
-ACE_INLINE int
-ACE_OutputCDR::adjust (size_t size, char*& buf)
-{
- return this->adjust (size, size, buf);
-}
-
-ACE_INLINE int
-ACE_OutputCDR::set_version (ACE_CDR::Octet major, ACE_CDR::Octet minor)
-{
- this->major_version_ = major;
- this->minor_version_ = minor;
- return 0;
-}
-
-ACE_INLINE int
-ACE_OutputCDR::get_version (ACE_CDR::Octet &major,
- ACE_CDR::Octet &minor)
-{
- major = this->major_version_;
- minor = this->minor_version_;
- return 0;
-}
-
-
-ACE_INLINE const ACE_Message_Block*
-ACE_OutputCDR::begin (void) const
-{
- return &this->start_;
-}
-
-ACE_INLINE const ACE_Message_Block*
-ACE_OutputCDR::end (void) const
-{
- return this->current_->cont ();
-}
-
-ACE_INLINE const ACE_Message_Block*
-ACE_OutputCDR::current (void) const
-{
- return this->current_;
-}
-
-ACE_INLINE size_t
-ACE_OutputCDR::total_length (void) const
-{
- return ACE_CDR::total_length (this->begin (), this->end ());
-}
-
-ACE_INLINE const char*
-ACE_OutputCDR::buffer (void) const
-{
- return this->start_.rd_ptr ();
-}
-
-ACE_INLINE size_t
-ACE_OutputCDR::length (void) const
-{
- return this->start_.length ();
-}
-
-ACE_INLINE int
-ACE_OutputCDR::do_byte_swap (void) const
-{
- return this->do_byte_swap_;
-}
-
-ACE_INLINE void
-ACE_OutputCDR::reset_byte_order (int byte_order)
-{
- this->do_byte_swap_ = (byte_order != ACE_CDR_BYTE_ORDER);
-}
-
-ACE_INLINE size_t
-ACE_OutputCDR::current_alignment (void) const
-{
- return this->current_alignment_;
-}
-
-ACE_INLINE int
-ACE_OutputCDR::align_write_ptr (size_t alignment)
-{
- char *dummy;
- return this->adjust (0, alignment, dummy);
-}
-
-ACE_INLINE ACE_Char_Codeset_Translator *
-ACE_OutputCDR::char_translator (void) const
-{
- return this->char_translator_;
-}
-
-ACE_INLINE ACE_WChar_Codeset_Translator *
-ACE_OutputCDR::wchar_translator (void) const
-{
- return this->wchar_translator_;
-}
-
-ACE_INLINE void
-ACE_OutputCDR::char_translator (ACE_Char_Codeset_Translator * ctran)
-{
- this->char_translator_ = ctran;
-}
-
-ACE_INLINE void
-ACE_OutputCDR::wchar_translator (ACE_WChar_Codeset_Translator * wctran)
-{
- this->wchar_translator_ = wctran;
-}
-
-// ****************************************************************
-
-ACE_INLINE
-ACE_InputCDR::~ACE_InputCDR (void)
-{
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_octet (ACE_CDR::Octet& x)
-{
- return this->read_1 (&x);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_boolean (ACE_CDR::Boolean& x)
-{
- ACE_CDR::Octet tmp;
- this->read_octet (tmp);
- x = tmp ? (ACE_CDR::Boolean) 1 : (ACE_CDR::Boolean) 0;
- return (ACE_CDR::Boolean) this->good_bit_;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_char (ACE_CDR::Char &x)
-{
- if (this->char_translator_ == 0)
- return this->read_1 (ACE_reinterpret_cast (ACE_CDR::Octet*, &x));
- return this->char_translator_->read_char (*this, x);
-}
-
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_short (ACE_CDR::Short &x)
-{
- return this->read_2 (ACE_reinterpret_cast (ACE_CDR::UShort*, &x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_ushort (ACE_CDR::UShort &x)
-{
- return this->read_2 (ACE_reinterpret_cast (ACE_CDR::UShort*, &x));
-}
-
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_long (ACE_CDR::Long &x)
-{
- return this->read_4 (ACE_reinterpret_cast (ACE_CDR::ULong*, &x));
-}
-
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_ulong (ACE_CDR::ULong &x)
-{
- return this->read_4 (ACE_reinterpret_cast (ACE_CDR::ULong*, &x));
-}
-
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_longlong (ACE_CDR::LongLong &x)
-{
- return this->read_8 (ACE_reinterpret_cast (ACE_CDR::ULongLong*, &x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_ulonglong (ACE_CDR::ULongLong &x)
-{
- return this->read_8 (ACE_reinterpret_cast (ACE_CDR::ULongLong*,&x));
-}
-
-#if !defined (VXWORKS) || !defined (ghs)
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_float (ACE_CDR::Float &x)
-{
- return this->read_4 (ACE_reinterpret_cast (ACE_CDR::ULong*, &x));
-}
-#endif /* !VXWORKS || !ghs */
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_double (ACE_CDR::Double &x)
-{
- return this->read_8 (ACE_reinterpret_cast (ACE_CDR::ULongLong*, &x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_longdouble (ACE_CDR::LongDouble &x)
-{
- return this->read_16 (ACE_reinterpret_cast (ACE_CDR::LongDouble*,&x));
-}
-
-ACE_INLINE size_t
-ACE_InputCDR::length (void) const
-{
- return this->start_.length ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_char_array (ACE_CDR::Char* x,
- ACE_CDR::ULong length)
-{
- // Make sure the length of the array isn't greater than the length of
- // the stream.
- if (length > this->length())
- {
- this->good_bit_ = 0;
- return 0;
- }
-
- if (this->char_translator_ == 0)
- return this->read_array (x,
- ACE_CDR::OCTET_SIZE,
- ACE_CDR::OCTET_ALIGN,
- length);
- return this->char_translator_->read_char_array (*this, x, length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_wchar_array (ACE_CDR::WChar* x,
- ACE_CDR::ULong length)
-{
- // Make sure the length of the array isn't greater than the length of
- // the stream.
- if (length * ACE_OutputCDR::wchar_maxbytes_ > this->length())
- {
- this->good_bit_ = 0;
- return 0;
- }
-
- if (this->wchar_translator_ != 0)
- return this->wchar_translator_->read_wchar_array (*this, x, length);
- if (ACE_OutputCDR::wchar_maxbytes_ != sizeof (ACE_CDR::WChar))
- return this->read_wchar_array_i (x, length);
- return this->read_array (x,
- sizeof (ACE_CDR::WChar),
- sizeof (ACE_CDR::WChar) == 2
- ? ACE_CDR::SHORT_ALIGN
- : ACE_CDR::LONG_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_octet_array (ACE_CDR::Octet* x,
- ACE_CDR::ULong length)
-{
- // Make sure the length of the array isn't greater than the length of
- // the stream.
- if (length * ACE_CDR::OCTET_SIZE > this->length())
- {
- this->good_bit_ = 0;
- return 0;
- }
-
- return this->read_array (x,
- ACE_CDR::OCTET_SIZE,
- ACE_CDR::OCTET_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_short_array (ACE_CDR::Short *x,
- ACE_CDR::ULong length)
-{
- // Make sure the length of the array isn't greater than the length of
- // the stream.
- if (length * ACE_CDR::SHORT_SIZE > this->length())
- {
- this->good_bit_ = 0;
- return 0;
- }
-
- return this->read_array (x,
- ACE_CDR::SHORT_SIZE,
- ACE_CDR::SHORT_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_ushort_array (ACE_CDR::UShort *x,
- ACE_CDR::ULong length)
-{
- // Make sure the length of the array isn't greater than the length of
- // the stream.
- if (length * ACE_CDR::SHORT_SIZE > this->length())
- {
- this->good_bit_ = 0;
- return 0;
- }
-
- return this->read_array (x,
- ACE_CDR::SHORT_SIZE,
- ACE_CDR::SHORT_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_long_array (ACE_CDR::Long *x,
- ACE_CDR::ULong length)
-{
- // Make sure the length of the array isn't greater than the length of
- // the stream.
- if (length * ACE_CDR::LONG_SIZE > this->length())
- {
- this->good_bit_ = 0;
- return 0;
- }
-
- return this->read_array (x,
- ACE_CDR::LONG_SIZE,
- ACE_CDR::LONG_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_ulong_array (ACE_CDR::ULong *x,
- ACE_CDR::ULong length)
-{
- // Make sure the length of the array isn't greater than the length of
- // the stream.
- if (length * ACE_CDR::LONG_SIZE > this->length())
- {
- this->good_bit_ = 0;
- return 0;
- }
-
- return this->read_array (x,
- ACE_CDR::LONG_SIZE,
- ACE_CDR::LONG_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_longlong_array (ACE_CDR::LongLong *x,
- ACE_CDR::ULong length)
-{
- // Make sure the length of the array isn't greater than the length of
- // the stream.
- if (length * ACE_CDR::LONGLONG_SIZE > this->length())
- {
- this->good_bit_ = 0;
- return 0;
- }
-
- return this->read_array (x,
- ACE_CDR::LONGLONG_SIZE,
- ACE_CDR::LONGLONG_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_ulonglong_array (ACE_CDR::ULongLong *x,
- ACE_CDR::ULong length)
-{
- // Make sure the length of the array isn't greater than the length of
- // the stream.
- if (length * ACE_CDR::LONGLONG_SIZE > this->length())
- {
- this->good_bit_ = 0;
- return 0;
- }
-
- return this->read_array (x,
- ACE_CDR::LONGLONG_SIZE,
- ACE_CDR::LONGLONG_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_float_array (ACE_CDR::Float *x,
- ACE_CDR::ULong length)
-{
- // Make sure the length of the array isn't greater than the length of
- // the stream.
- if (length * ACE_CDR::LONG_SIZE > this->length())
- {
- this->good_bit_ = 0;
- return 0;
- }
-
- return this->read_array (x,
- ACE_CDR::LONG_SIZE,
- ACE_CDR::LONG_ALIGN,
- length);
-}
-
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_double_array (ACE_CDR::Double *x,
- ACE_CDR::ULong length)
-{
- // Make sure the length of the array isn't greater than the length of
- // the stream.
- if (length * ACE_CDR::LONGLONG_SIZE > this->length())
- {
- this->good_bit_ = 0;
- return 0;
- }
-
- return this->read_array (x,
- ACE_CDR::LONGLONG_SIZE,
- ACE_CDR::LONGLONG_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::read_longdouble_array (ACE_CDR::LongDouble* x,
- ACE_CDR::ULong length)
-{
- // Make sure the length of the array isn't greater than the length of
- // the stream.
- if (length * ACE_CDR::LONGDOUBLE_SIZE > this->length())
- {
- this->good_bit_ = 0;
- return 0;
- }
- return this->read_array (x,
- ACE_CDR::LONGDOUBLE_SIZE,
- ACE_CDR::LONGDOUBLE_ALIGN,
- length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::skip_char (void)
-{
- ACE_CDR::Char x;
- return this->read_1 (ACE_reinterpret_cast (ACE_CDR::Octet*,&x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::skip_octet (void)
-{
- ACE_CDR::Octet x;
- return this->read_1 (&x);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::skip_boolean (void)
-{
- ACE_CDR::Octet tmp;
- this->read_octet (tmp);
- return (ACE_CDR::Boolean) this->good_bit_;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::skip_short (void)
-{
- ACE_CDR::Short x;
- return this->read_2 (ACE_reinterpret_cast (ACE_CDR::UShort*,&x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::skip_ushort (void)
-{
- ACE_CDR::UShort x;
- return this->read_2 (ACE_reinterpret_cast (ACE_CDR::UShort*,&x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::skip_long (void)
-{
- ACE_CDR::Long x;
- return this->read_4 (ACE_reinterpret_cast (ACE_CDR::ULong*,&x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::skip_ulong (void)
-{
- ACE_CDR::ULong x;
- return this->read_4 (ACE_reinterpret_cast (ACE_CDR::ULong*,&x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::skip_longlong (void)
-{
- ACE_CDR::LongLong x;
- return this->read_8 (ACE_reinterpret_cast (ACE_CDR::ULongLong*,&x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::skip_ulonglong (void)
-{
- ACE_CDR::ULongLong x;
- return this->read_8 (ACE_reinterpret_cast (ACE_CDR::ULongLong*,&x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::skip_float (void)
-{
- // Changing this removes the warning for GHS and it
- // stops the compiler from getting an internal error.
- ACE_CDR::ULong value;
- return this->read_4 (&value);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::skip_double (void)
-{
- double x;
- return this->read_8 (ACE_reinterpret_cast (ACE_CDR::ULongLong*,&x));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_InputCDR::skip_longdouble (void)
-{
- ACE_CDR::LongDouble x;
- return this->read_16 (ACE_reinterpret_cast (ACE_CDR::LongDouble*,&x));
-}
-
-ACE_INLINE char*
-ACE_InputCDR::end (void)
-{
- return this->start_.end ();
-}
-
-ACE_INLINE void
-ACE_InputCDR::rd_ptr (size_t offset)
-{
- this->start_.rd_ptr (offset);
-}
-
-ACE_INLINE char*
-ACE_InputCDR::rd_ptr (void)
-{
- return this->start_.rd_ptr ();
-}
-
-ACE_INLINE char*
-ACE_InputCDR::wr_ptr (void)
-{
- return this->start_.wr_ptr ();
-}
-
-ACE_INLINE int
-ACE_InputCDR::adjust (size_t size,
- size_t align,
- char*& buf)
-{
- buf = ACE_ptr_align_binary (this->rd_ptr (), align);
- char *end = buf + size;
- if (end <= this->wr_ptr ())
- {
- this->start_.rd_ptr (end);
- return 0;
- }
-
- this->good_bit_ = 0;
- return -1;
-}
-
-ACE_INLINE int
-ACE_InputCDR::adjust (size_t size,
- char*& buf)
-{
- return this->adjust (size, size, buf);
-}
-
-ACE_INLINE const ACE_Message_Block*
-ACE_InputCDR::start (void) const
-{
- return &this->start_;
-}
-
-ACE_INLINE int
-ACE_InputCDR::good_bit (void) const
-{
- return this->good_bit_;
-}
-
-// ****************************************************************
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_CDR::Char x)
-{
- os.write_char (x);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_CDR::Short x)
-{
- os.write_short (x);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_CDR::UShort x)
-{
- os.write_ushort (x);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_CDR::Long x)
-{
- os.write_long (x);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_CDR::ULong x)
-{
- os.write_ulong (x);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_CDR::LongLong x)
-{
- os.write_longlong (x);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_CDR::ULongLong x)
-{
- os.write_ulonglong (x);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_CDR::LongDouble x)
-{
- os.write_longdouble (x);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_CDR::Float x)
-{
- os.write_float (x);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_CDR::Double x)
-{
- os.write_double (x);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, const ACE_CDR::Char *x)
-{
- os.write_string (x);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, const ACE_CDR::WChar *x)
-{
- os.write_wstring (x);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-// The following use the helper classes
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_boolean x)
-{
- os.write_boolean (x.val_);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_char x)
-{
- os.write_char (x.val_);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_wchar x)
-{
- os.write_wchar (x.val_);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_octet x)
-{
- os.write_octet (x.val_);
- return (ACE_CDR::Boolean) os.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_string x)
-{
- ACE_CDR::ULong len = 0;
- if (x.val_ != 0)
- len = ACE_static_cast (ACE_CDR::ULong, ACE_OS_String::strlen (x.val_));
- os.write_string (len, x.val_);
- return os.good_bit () && (len <= x.bound_);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_wstring x)
-{
- ACE_CDR::ULong len = 0;;
- if (x.val_ != 0)
- len = ACE_OS_String::strlen (x.val_);
- os.write_wstring (len, x.val_);
- return os.good_bit () && (len <= x.bound_);
-}
-
-// ****************************************************************
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_CDR::Char &x)
-{
- is.read_char (x);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_CDR::Short &x)
-{
- is.read_short (x);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_CDR::UShort &x)
-{
- is.read_ushort (x);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>>(ACE_InputCDR &is, ACE_CDR::Long &x)
-{
- is.read_long (x);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_CDR::ULong &x)
-{
- is.read_ulong (x);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR& is, ACE_CDR::LongLong &x)
-{
- is.read_longlong (x);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR& is, ACE_CDR::ULongLong &x)
-{
- is.read_ulonglong (x);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR& is, ACE_CDR::LongDouble &x)
-{
- is.read_longdouble (x);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_CDR::Float &x)
-{
- is.read_float (x);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_CDR::Double &x)
-{
- is.read_double (x);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_CDR::Char *&x)
-{
- is.read_string (x);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_CDR::WChar *&x)
-{
- is.read_wstring (x);
- return is.good_bit ();
-}
-
-// The following use the helper classes
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_InputCDR::to_boolean x)
-{
- is.read_boolean (x.ref_);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_InputCDR::to_char x)
-{
- is.read_char (x.ref_);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_InputCDR::to_wchar x)
-{
- is.read_wchar (x.ref_);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_InputCDR::to_octet x)
-{
- is.read_octet (x.ref_);
- return is.good_bit ();
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_InputCDR::to_string x)
-{
- is.read_string (ACE_const_cast (char *&, x.val_));
- // check if the bounds are satisfied
- return (is.good_bit () &&
- (ACE_OS_String::strlen (x.val_) <= x.bound_));
-}
-
-ACE_INLINE ACE_CDR::Boolean
-operator>> (ACE_InputCDR &is, ACE_InputCDR::to_wstring x)
-{
- is.read_wstring (ACE_const_cast (ACE_CDR::WChar *&, x.val_));
- // check if the bounds are satisfied
- return (is.good_bit () &&
- (ACE_OS_String::strlen (x.val_) <= x.bound_));
-}
-
-// ***************************************************************************
-// We must define these methods here because they use the "read_*" inlined
-// methods of the ACE_InputCDR class
-// ***************************************************************************
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_boolean (ACE_InputCDR &stream)
-{
- ACE_CDR::Boolean x;
- return stream.read_boolean (x) ? this->write_boolean (x) : (ACE_CDR::Boolean) 0;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_char (ACE_InputCDR &stream)
-{
- ACE_CDR::Char x;
- return stream.read_char (x) ? this->write_char (x) : (ACE_CDR::Boolean) 0;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_wchar (ACE_InputCDR &stream)
-{
- ACE_CDR::WChar x;
- return stream.read_wchar (x) ? this->write_wchar (x) : (ACE_CDR::Boolean) 0;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_octet (ACE_InputCDR &stream)
-{
- ACE_CDR::Octet x;
- return stream.read_octet (x) ? this->write_octet (x) : (ACE_CDR::Boolean) 0;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_short (ACE_InputCDR &stream)
-{
- ACE_CDR::Short x;
- return stream.read_short (x) ? this->write_short (x) : (ACE_CDR::Boolean) 0;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_ushort (ACE_InputCDR &stream)
-{
- ACE_CDR::UShort x;
- return stream.read_ushort (x) ? this->write_ushort (x) : (ACE_CDR::Boolean) 0;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_long (ACE_InputCDR &stream)
-{
- ACE_CDR::Long x;
- return stream.read_long (x) ? this->write_long (x) : (ACE_CDR::Boolean) 0;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_ulong (ACE_InputCDR &stream)
-{
- ACE_CDR::ULong x;
- return stream.read_ulong (x) ? this->write_ulong (x) : (ACE_CDR::Boolean) 0;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_longlong (ACE_InputCDR &stream)
-{
- ACE_CDR::LongLong x;
- return stream.read_longlong (x) ? this->write_longlong (x) : (ACE_CDR::Boolean) 0;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_ulonglong (ACE_InputCDR &stream)
-{
- ACE_CDR::ULongLong x;
- return stream.read_ulonglong (x) ? this->write_ulonglong (x) : (ACE_CDR::Boolean) 0;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_float (ACE_InputCDR &stream)
-{
- ACE_CDR::Float x;
- return stream.read_float (x) ? this->write_float (x) : (ACE_CDR::Boolean) 0;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_double (ACE_InputCDR &stream)
-{
- ACE_CDR::Double x;
- return stream.read_double (x) ? this->write_double (x) : (ACE_CDR::Boolean) 0;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_longdouble (ACE_InputCDR &stream)
-{
- ACE_CDR::LongDouble x;
- return stream.read_longdouble (x) ? this->write_longdouble (x) : (ACE_CDR::Boolean) 0;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_string (ACE_InputCDR &stream)
-{
- ACE_CDR::Char *x;
- ACE_CDR::Boolean flag =
- (stream.read_string (x) ? this->write_string (x) : (ACE_CDR::Boolean) 0);
- delete [] x;
- return flag;
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_OutputCDR::append_wstring (ACE_InputCDR &stream)
-{
- ACE_CDR::WChar *x;
- ACE_CDR::Boolean flag =
- (stream.read_wstring (x) ? this->write_wstring (x) : (ACE_CDR::Boolean) 0);
- delete [] x;
- return flag;
-}
-
-ACE_INLINE void
-ACE_InputCDR::reset_byte_order (int byte_order)
-{
- this->do_byte_swap_ = (byte_order != ACE_CDR_BYTE_ORDER);
-}
-
-ACE_INLINE int
-ACE_InputCDR::do_byte_swap (void) const
-{
- return this->do_byte_swap_;
-}
-
-ACE_INLINE int
-ACE_InputCDR::byte_order (void) const
-{
- if (this->do_byte_swap ())
- return !ACE_CDR_BYTE_ORDER;
- else
- return ACE_CDR_BYTE_ORDER;
-}
-
-ACE_INLINE int
-ACE_InputCDR::align_read_ptr (size_t alignment)
-{
- char *buf = ACE_ptr_align_binary (this->rd_ptr (),
- alignment);
-
- if (buf <= this->wr_ptr ())
- {
- this->start_.rd_ptr (buf);
- return 0;
- }
-
- this->good_bit_ = 0;
- return -1;
-}
-
-ACE_INLINE int
-ACE_InputCDR::set_version (ACE_CDR::Octet major,
- ACE_CDR::Octet minor)
-{
- this->major_version_ = major;
- this->minor_version_ = minor;
- return 0;
-}
-
-ACE_INLINE int
-ACE_InputCDR::get_version (ACE_CDR::Octet &major,
- ACE_CDR::Octet &minor)
-{
- major = this->major_version_;
- minor = this->minor_version_;
- return 0;
-}
-
-ACE_INLINE ACE_Char_Codeset_Translator *
-ACE_InputCDR::char_translator (void) const
-{
- return this->char_translator_;
-}
-
-ACE_INLINE ACE_WChar_Codeset_Translator *
-ACE_InputCDR::wchar_translator (void) const
-{
- return this->wchar_translator_;
-}
-
-
-ACE_INLINE void
-ACE_InputCDR::char_translator (ACE_Char_Codeset_Translator * ctran)
-{
- this->char_translator_ = ctran;
-}
-
-ACE_INLINE void
-ACE_InputCDR::wchar_translator (ACE_WChar_Codeset_Translator * wctran)
-{
- this->wchar_translator_ = wctran;
-}
-
-// ****************************************************************
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_Char_Codeset_Translator::read_1 (ACE_InputCDR& input,
- ACE_CDR::Octet *x)
-{
- return input.read_1 (x);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_Char_Codeset_Translator::write_1 (ACE_OutputCDR& output,
- const ACE_CDR::Octet *x)
-{
- return output.write_1 (x);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_Char_Codeset_Translator::read_array (ACE_InputCDR& in,
- void* x,
- size_t size,
- size_t align,
- ACE_CDR::ULong length)
-{
- return in.read_array (x, size, align, length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_Char_Codeset_Translator::write_array (ACE_OutputCDR& out,
- const void *x,
- size_t size,
- size_t align,
- ACE_CDR::ULong length)
-{
- return out.write_array(x, size, align, length);
-}
-
-ACE_INLINE int
-ACE_Char_Codeset_Translator::adjust (ACE_OutputCDR& out,
- size_t size,
- size_t align,
- char *&buf)
-{
- return out.adjust(size, align, buf);
-}
-
-ACE_INLINE void
-ACE_Char_Codeset_Translator::good_bit (ACE_OutputCDR& out, int bit)
-{
- out.good_bit_ = bit;
-}
-
-ACE_INLINE ACE_CDR::Octet
-ACE_Char_Codeset_Translator::major_version (ACE_InputCDR& input)
-{
- return input.major_version_;
-}
-
-ACE_INLINE ACE_CDR::Octet
-ACE_Char_Codeset_Translator::minor_version (ACE_InputCDR& input)
-{
- return input.minor_version_;
-}
-
-ACE_INLINE ACE_CDR::Octet
-ACE_Char_Codeset_Translator::major_version (ACE_OutputCDR& output)
-{
- return output.major_version_;
-}
-
-ACE_INLINE ACE_CDR::Octet
-ACE_Char_Codeset_Translator::minor_version (ACE_OutputCDR& output)
-{
- return output.minor_version_;
-}
-
-// ****************************************************************
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_WChar_Codeset_Translator::read_1 (ACE_InputCDR& input,
- ACE_CDR::Octet *x)
-{
- return input.read_1 (x);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_WChar_Codeset_Translator::read_2 (ACE_InputCDR& input,
- ACE_CDR::UShort *x)
-{
- return input.read_2 (x);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_WChar_Codeset_Translator::read_4 (ACE_InputCDR& input,
- ACE_CDR::ULong *x)
-{
- return input.read_4 (x);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_WChar_Codeset_Translator::write_1 (ACE_OutputCDR& output,
- const ACE_CDR::Octet *x)
-{
- return output.write_1 (x);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_WChar_Codeset_Translator::write_2 (ACE_OutputCDR& output,
- const ACE_CDR::UShort *x)
-{
- return output.write_2 (x);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_WChar_Codeset_Translator::write_4 (ACE_OutputCDR& output,
- const ACE_CDR::ULong *x)
-{
- return output.write_4 (x);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_WChar_Codeset_Translator::read_array (ACE_InputCDR& in,
- void* x,
- size_t size,
- size_t align,
- ACE_CDR::ULong length)
-{
- return in.read_array (x, size, align, length);
-}
-
-ACE_INLINE ACE_CDR::Boolean
-ACE_WChar_Codeset_Translator::write_array (ACE_OutputCDR& out,
- const void *x,
- size_t size,
- size_t align,
- ACE_CDR::ULong length)
-{
- return out.write_array(x, size, align, length);
-}
-
-ACE_INLINE int
-ACE_WChar_Codeset_Translator::adjust (ACE_OutputCDR& out,
- size_t size,
- size_t align,
- char *&buf)
-{
- return out.adjust(size, align, buf);
-}
-
-ACE_INLINE void
-ACE_WChar_Codeset_Translator::good_bit (ACE_OutputCDR& out, int bit)
-{
- out.good_bit_ = bit;
-}
-
-ACE_INLINE ACE_CDR::Octet
-ACE_WChar_Codeset_Translator::major_version (ACE_InputCDR& input)
-{
- return input.major_version_;
-}
-
-ACE_INLINE ACE_CDR::Octet
-ACE_WChar_Codeset_Translator::minor_version (ACE_InputCDR& input)
-{
- return input.minor_version_;
-}
-
-ACE_INLINE ACE_CDR::Octet
-ACE_WChar_Codeset_Translator::major_version (ACE_OutputCDR& output)
-{
- return output.major_version_;
-}
-
-ACE_INLINE ACE_CDR::Octet
-ACE_WChar_Codeset_Translator::minor_version (ACE_OutputCDR& output)
-{
- return output.minor_version_;
-}
diff --git a/ace/CE_Screen_Output.cpp b/ace/CE_Screen_Output.cpp
deleted file mode 100644
index dd36a8385bb..00000000000
--- a/ace/CE_Screen_Output.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-#include "ace/CE_Screen_Output.h"
-#if defined (ACE_HAS_WINCE)
-
-#include "ace/Log_Msg.h"
-
-ACE_CE_Screen_Output::ACE_CE_Screen_Output(HWND hEdit)
-: handler_(hEdit)
-, pFile_(0)
-{
-}
-
-ACE_CE_Screen_Output::ACE_CE_Screen_Output()
-: handler_(0)
-, pFile_(0)
-{
-}
-
-ACE_CE_Screen_Output::~ACE_CE_Screen_Output()
-{
- if (pFile_ != 0) {
- fclose(pFile_);
- }
-}
-
-void ACE_CE_Screen_Output::log(ACE_Log_Record &log_record)
-{
- ACE_TCHAR verbose_msg[ACE_Log_Record::MAXVERBOSELOGMSGLEN];
- int result = log_record.format_msg (ACE_LIB_TEXT("WindozeCE"), // host name
- 0, // verbose flag
- verbose_msg);
-
- if (result == 0)
- {
- verbose_msg[ ACE_OS::strlen(verbose_msg) - 1 ] = 0; // CE does not like '\n' by itself.
- *this << verbose_msg << endl;
- }
-}
-
-void ACE_CE_Screen_Output::SetOutputWindow(HWND hEdit)
-{
- handler_ = hEdit;
-}
-
-void ACE_CE_Screen_Output::clear()
-{
- SetWindowText(handler_, 0);
-}
-
-ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (ACE_TCHAR* output)
-{
- int length = GetWindowTextLength(handler_);
- SendMessage(handler_, EM_SETSEL, length, length);
- SendMessage(handler_, EM_REPLACESEL, 0, (LPARAM)output);
-
- if (pFile_ != 0)
- {
- fwprintf(pFile_, L"%s", output);
- }
-
- return *this;
-}
-
-ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (const ACE_TCHAR* output)
-{
- ACE_TCHAR* buffer = ACE_OS::strdup(output);
- if (buffer != 0)
- {
- *this << buffer;
- delete buffer;
- }
- return *this;
-}
-
-ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (ACE_ANTI_TCHAR* output)
-{
- *this << ACE_TEXT_CHAR_TO_TCHAR(output);
- return *this;
-}
-
-ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (const ACE_ANTI_TCHAR* output)
-{
- *this << ACE_TEXT_CHAR_TO_TCHAR(output);
- return *this;
-}
-
-ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (char output)
-{
- *this << (int)output;
- return *this;
-}
-
-ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (unsigned char output)
-{
- *this << (int)output;
- return *this;
-}
-
-ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (unsigned short output)
-{
- ACE_TCHAR buffer[20];
- wsprintf(buffer, ACE_LIB_TEXT("%u"), output);
- *this << buffer;
- return *this;
-}
-
-ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (int output)
-{
- ACE_TCHAR buffer[20];
- wsprintf(buffer, ACE_LIB_TEXT("%d"), output);
- *this << buffer;
- return *this;
-}
-
-ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (unsigned int output)
-{
- ACE_TCHAR buffer[20];
- wsprintf(buffer, ACE_LIB_TEXT("%du"), output);
- *this << buffer;
- return *this;
-}
-
-ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (float output)
-{
- ACE_TCHAR buffer[20];
- swprintf(buffer, ACE_LIB_TEXT("%f"), output);
- *this << buffer;
- return *this;
-}
-
-ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (long output)
-{
- ACE_TCHAR buffer[20];
- wsprintf(buffer, ACE_LIB_TEXT("%l"), output);
- *this << buffer;
- return *this;
-}
-
-ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (unsigned long output)
-{
- ACE_TCHAR buffer[20];
- wsprintf(buffer, ACE_LIB_TEXT("%lu"), output);
- *this << buffer;
- return *this;
-}
-
-ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (FILE* pFile)
-{
- pFile_ = pFile;
- return *this;
-}
-
-#endif // ACE_HAS_WINCE
diff --git a/ace/CE_Screen_Output.h b/ace/CE_Screen_Output.h
deleted file mode 100644
index 0571fe39b88..00000000000
--- a/ace/CE_Screen_Output.h
+++ /dev/null
@@ -1,103 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file CE_Screen_Output.h
- *
- * $Id$
- *
- * @author Si Mong Park <spark@ociweb.com>
- */
-//=============================================================================
-
-#ifndef ACE_CE_SCREEN_OUTPUT_H
-#define ACE_CE_SCREEN_OUTPUT_H
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_WINCE)
-
-#include "ace/OS.h"
-#include "ace/Log_Msg_Callback.h"
-#include "ace/Log_Record.h"
-
-const ACE_TCHAR endl[] = ACE_LIB_TEXT("\r\n");
-const ACE_TCHAR tab[] = ACE_LIB_TEXT("\t");
-
-/**
- * @class ACE_CE_Screen_Output
- *
- * @brief Replacement of text output for Windows CE.
- *
- * This class allows standard text output to be displayed on
- * text window for Windows CE. Generally, all ACE output will
- * go through under CE if and only if user uses WindozeCE
- * implementation by using main_ce instead of main.
- * Also, for the easier debugging purpose, object pointer of
- * this class can be gotten from ACE_Log_Msg::msg_callback()
- * and then can be used directly by user just like cout stream.
- */
-class ACE_Export ACE_CE_Screen_Output : public ACE_Log_Msg_Callback
-{
-public:
-
- ACE_CE_Screen_Output (HWND hEdit);
-
- ACE_CE_Screen_Output (void);
-
- virtual ~ACE_CE_Screen_Output();
-
- /// Implementation of pure virtual function from ACE_Log_Msg_Callback.
- virtual void log (ACE_Log_Record &log_record);
-
- /// Interface to specify active window handle.
- void SetOutputWindow (HWND hWnd);
-
- void clear (void);
-
- /// Stream insertion operator that performs actual print out.
- /**
- * @note This is the only one operator that performs output. All
- * other perators convert the type and use this operator
- * underneath.
- */
- ACE_CE_Screen_Output& operator << (ACE_TCHAR*);
- ACE_CE_Screen_Output& operator << (const ACE_TCHAR*);
-
- ACE_CE_Screen_Output& operator << (ACE_ANTI_TCHAR* output);
- ACE_CE_Screen_Output& operator << (const ACE_ANTI_TCHAR* output);
-
- ACE_CE_Screen_Output& operator << (char output);
- ACE_CE_Screen_Output& operator << (unsigned char output);
-
- ACE_CE_Screen_Output& operator << (unsigned short output);
-
- ACE_CE_Screen_Output& operator << (int output);
- ACE_CE_Screen_Output& operator << (unsigned int output);
-
- ACE_CE_Screen_Output& operator << (float output);
-
- ACE_CE_Screen_Output& operator << (long output);
- ACE_CE_Screen_Output& operator << (unsigned long output);
-
- ACE_CE_Screen_Output& operator << (FILE* pFile);
-
-private:
-
- ACE_CE_Screen_Output(ACE_CE_Screen_Output&);
-
-private:
-
- HWND handler_;
-
- /// FILE pointer that used to save output to file. This class does
- /// not own the file handler pointer.
- FILE* pFile_;
-};
-
-#endif // ACE_HAS_WINCE
-#endif // ACE_CE_SCREEN_OUTPUT_H
diff --git a/ace/CLASSIX/CLASSIX_Addr.cpp b/ace/CLASSIX/CLASSIX_Addr.cpp
deleted file mode 100644
index faafc29109d..00000000000
--- a/ace/CLASSIX/CLASSIX_Addr.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Defines the ClassiX IPC address family address format.
-
-#define ACE_BUILD_DLL
-#include "ace/CLASSIX/CLASSIX_Addr.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_Addr)
diff --git a/ace/CLASSIX/CLASSIX_Addr.h b/ace/CLASSIX/CLASSIX_Addr.h
deleted file mode 100644
index 21089659649..00000000000
--- a/ace/CLASSIX/CLASSIX_Addr.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE
-//
-// = FILENAME
-// CLASSIX_Addr.h
-//
-// = AUTHOR
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_ADDR_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_ADDR_H
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Addr.h"
-
-#include <ipc/chIpc.h>
-#include <ace/CLASSIX/CLASSIX_OS.h>
-
-class ACE_Export ACE_CLASSIX_Addr : public ACE_Addr
-{
- // = TITLE
- // Defines the ClassiX IPC address format.
- //
- // = DESCRIPTION
- // This class defines basic interfaces for "ACE-like" address for
- // Chorus port.
-public:
- enum
- {
- ACE_CLASSIX_ADDR_UNKNOWN = ACE_INVALID_HANDLE, /* K_NONEPORT */
- ACE_CLASSIX_ADDR_DEFAULT = K_DEFAULTPORT,
- AF_CLASSIX = AF_MAX + 1
- };
-
- enum Addr_Type
- {
- PORT, // use Peer_Port
- GROUP, // use Peer_Group
- STAMP, // use peer_Stamp
- DYNAMIC, // use Peer_Group
- UNDEFINED
- };
-
-
- /* -----------------------------------------------------*/
- // = INITIALIZATION
- ACE_CLASSIX_Addr(int /* size of the underlying address structure*/);
- virtual ~ACE_CLASSIX_Addr (void);
-
-
- /* -----------------------------------------------------*/
- // = Direct initialization methods (useful after the object has been
- // constructed).
- // Returns 0 on success, -1 otherwise.
- //
-
- /* -----------------------------------------------------*/
- // = ACCESS
- //
- virtual const KnUniqueId& get_id (void) const;
- // Returns a reference to the unique identifier
-
- virtual ACE_HANDLE get_port_number(void) const;
- virtual ACE_HANDLE get_handle(void) const;
- // Returns the local port no( can be used as an ACE_HANDLE)
-
- virtual int is_configured(void) const;
- // Returns 1, if address information is proper; Returns 0 otherwise
- virtual ACE_CLASSIX_Addr::Addr_Type is_type(void) const;
- // returns the type of the address
-
- // = HELPER
- virtual void dump(void) const;
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declares the dynamic allocation hooks.
-
-private:
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_ADDR_H */
diff --git a/ace/CLASSIX/CLASSIX_Addr.i b/ace/CLASSIX/CLASSIX_Addr.i
deleted file mode 100644
index 13cc5fd48e3..00000000000
--- a/ace/CLASSIX/CLASSIX_Addr.i
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// CLASSIX_Addr.i
-
-ACE_INLINE
-ACE_CLASSIX_Addr::ACE_CLASSIX_Addr(int theSize)
- : ACE_Addr (AF_CLASSIX, theSize)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Addr::~ACE_CLASSIX_Addr(void)
-{
-}
-
-ACE_INLINE
-const KnUniqueId&
-ACE_CLASSIX_Addr::get_id(void) const
-{
- return ACE_CLASSIX_OS::null_KnUniqueId();
-}
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_Addr::get_handle(void) const
-{
- return ACE_INVALID_HANDLE;
-}
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_Addr::get_port_number(void) const
-{
- return get_handle();
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Addr::is_configured(void) const
-{
- return 0;
-}
-
-ACE_INLINE
-ACE_CLASSIX_Addr::Addr_Type
-ACE_CLASSIX_Addr::is_type(void) const
-{
- return ACE_CLASSIX_Addr::UNDEFINED;
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Addr::dump(void) const
-{
-}
diff --git a/ace/CLASSIX/CLASSIX_CLD_Connector.cpp b/ace/CLASSIX/CLASSIX_CLD_Connector.cpp
deleted file mode 100644
index 1baf897b75b..00000000000
--- a/ace/CLASSIX/CLASSIX_CLD_Connector.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-// $Id$
-/*
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_CLD_Connector.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-//
-// ============================================================================
-*/
-#define ACE_BUILD_DLL
-#include "ace/CLASSIX/CLASSIX_CLD_Connector.h"
-#include "ace/CLASSIX/CLASSIX_Addr.h"
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_CLD_Connector)
-
-#if !defined (__ACE_INLINE__)
-#include "CLASSIX_CLD_Connector.i"
-#endif /* __ACE_INLINE__ */
-/* ------------------------------------------------------------------------- */
-
-ACE_CLASSIX_CLD_Connector::ACE_CLASSIX_CLD_Connector (
- ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms,
- int protocol_family,
- int protocol)
-{
- ACE_TRACE ("ACE_CLASSIX_CLD_Connector::ACE_CLASSIX_CLD_Connector");
- if (this->connect (new_stream, remote_sap, timeout, local_sap,
- reuse_addr, flags, perms,
- protocol_family, protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%p\n"), ACE_TEXT
- ("ACE_CLASSIX_CLD_Connector::ACE_CLASSIX_CLD_Connector")));
-}
-
-// Set up remote port information
-int
-ACE_CLASSIX_CLD_Connector::connect (ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr & theRemote,/* remote_sap */
- ACE_Time_Value *, /* timeout */
- const ACE_Addr & theLocal,
- int, /* reuse_addr */
- int theFlag, /* flags */
- int, /* perms */
- int theProtocolFamily,
- int /* protocol */)
-
-{
- ACE_TRACE ("ACE_CLASSIX_CLD_Connector::connect");
- //
- // Set up peer SAP
- //
- if (theRemote == ACE_Addr::sap_any ||
- new_stream.set_peer_sap(theRemote) != 0)
- ACE_ERROR_RETURN((LM_ERROR, "ACE_CLASSIX_CLD_Connector::connect()::"
- "Invalid Connector SAP\n"), -1);
-
- //
- // Set up local SAP
- //
- if (theLocal == ACE_Addr::sap_any)
- {
- // if local sap has not been configured
- // create a port and use it as the local SAP
- new_stream.open();
- }
- else
- {
- // replace the local SAP information
- new_stream.close();
- new_stream.open(theLocal);
- }
-
- //
- // Make the local SAP "selectable", if requested via the flag
- //
- if (new_stream.local_sap().is_configured() &&
- new_stream.peer_sap().is_configured() && /* remote sap info exist */
- theProtocolFamily == ACE_CLASSIX_Addr::AF_CLASSIX)
- {
- new_stream.control();
- // setup the default delivery mode, if applicable
- if (theFlag & ACE_CLASSIX_CLD_Connector::ENABLE)
- {
- if (new_stream.selectable() == 0)
- return 0;
- else
- return -1;
- }
- return 0;
- }
- else
- {
- return -1;
- }
-}
-
-void
-ACE_CLASSIX_CLD_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_CLASSIX_CLD_Connector::dump");
-}
-
-/* ------------------------------------------------------------------------- */
diff --git a/ace/CLASSIX/CLASSIX_CLD_Connector.h b/ace/CLASSIX/CLASSIX_CLD_Connector.h
deleted file mode 100644
index 324d484e65e..00000000000
--- a/ace/CLASSIX/CLASSIX_CLD_Connector.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/*
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_CLD_Connector.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-*/
-
-#ifndef ACE_CLASSIX_CLD_CONNECTOR_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_CLD_CONNECTOR_H
-
-#include "ace/CLASSIX/CLASSIX_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/* ------------------------------------------------------------------------- */
-
-class ACE_CLASSIX_CLD_Connector
- // = TITLE
- // Defines an CLASSIX IPC connectionless connection factory for the
- // template methods in <ACE_Connector>.
- //
- // = DESCRIPTION
- // This is used when a client needs to communicate with a server
- // whose SAP address is known beforehand.
- //
- // Although there is a connection
- // procedure, no connection is actually taken place
- // between the client and server, since Chorus IPC does not have
- // connection semantics.
- // The connect procedure is necessary for
- // compatibility with <ACE_SOCK_Connector> class.
- //
- // This class will simplify the client's
- // program, since it provides connection-like communication
- // mechanism.
- //
- // = NOTES
- // The server in this case trusts everyone who lands on the
- // server's SAP.
- //
- // = SEE ALSO
- // ACE_CLASSIX_COD_Connector
-{
- public:
- // = Connect options
- enum OPTIONS
- {
- // Do not enable the local SAP
- // (so that the Reactor will not monitor the port)
- ENABLE = 0x1
- };
-
- // = Initialization routines.
- ACE_CLASSIX_CLD_Connector (void);
- // Default constructor.
-
- ACE_CLASSIX_CLD_Connector (ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr &remote_sap
- = ACE_Addr::sap_any,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0,
- int protocol_family
- = ACE_CLASSIX_Addr::AF_CLASSIX,
- int protocol = 0);
- // Emulates connection semantics so that it can be plugged into
- // <ACE_Connector>
- // Actively connect local SAP and remote SAP togeter.
- // Produce a <new_stream> if things go well.
- //
- // <remote_sap> is the peer's address. In ACE_SOCK_Connector it refers to
- // the acceptor's address. In connectionless mode, we do not have
- // an acceptor. The <remote_sap> address will be copied to the new stream
- // if things goes well.
- //
- // If <local_sap> refers to any address, a port will be
- // allocated and will be used as a local SAP.
- //
- // The rest parameters are there so that this class can be plugged into
- // <ACE_Connector>.
-
- virtual int connect (ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr &remote_sap = ACE_Addr::sap_any,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0,
- int protocol_family = ACE_CLASSIX_Addr::AF_CLASSIX,
- int protocol = 0);
-
- // Factory method used in <ACE_Connector>::connect_svc_handler()
-
- // Initialization method when default constructor is used.
- // See the comments for the corresponding constructor
-
- virtual int reset_new_handle (ACE_HANDLE handle);
- // Factory method used in ACE_Connector::handle_output().
- // Meant for resetting any event associations on this handle
- // Does nothig.
-
- // = HELPER
- void dump(void) const;
-
- private:
-
- ACE_CLASSIX_CLD_Connector(ACE_CLASSIX_CLD_Connector const&);
- ACE_CLASSIX_CLD_Connector const& operator=(ACE_CLASSIX_CLD_Connector const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_CLD_Connector.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_CLD_CONNECTOR_H */
diff --git a/ace/CLASSIX/CLASSIX_CLD_Connector.i b/ace/CLASSIX/CLASSIX_CLD_Connector.i
deleted file mode 100644
index 8592b7825d2..00000000000
--- a/ace/CLASSIX/CLASSIX_CLD_Connector.i
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-//
-// CLASSIX/CLD_Connector.i
-/* ------------------------------------------------------------------------- */
-
-// Do-nothing constructor...
-
-ACE_INLINE
-ACE_CLASSIX_CLD_Connector::ACE_CLASSIX_CLD_Connector (void)
-{
- ACE_TRACE ("ACE_CLASSIX_CLD_Connector::ACE_CLASSIX_CLD_Connector");
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_CLD_Connector::reset_new_handle (ACE_HANDLE /* handle */)
-{
- return 0;
-}
-
-/* ------------------------------------------------------------------------- */
-
-
diff --git a/ace/CLASSIX/CLASSIX_CO_Acceptor.cpp b/ace/CLASSIX/CLASSIX_CO_Acceptor.cpp
deleted file mode 100644
index b46d594c262..00000000000
--- a/ace/CLASSIX/CLASSIX_CO_Acceptor.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "CLASSIX_CO_Acceptor.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "CLASSIX_CO_Acceptor.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/Synch.h"
-
-ACE_ALLOC_HOOK_DEFINE (ACE_CLASSIX_CO_Acceptor)
-
-// General purpose routine for performing server creation.
-
-ACE_CLASSIX_CO_Acceptor::ACE_CLASSIX_CO_Acceptor (const ACE_Addr &local_sap,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol,
- ACE_Reactor* theReactor)
- : port_ (0),
- reactor_ (theReactor)
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Acceptor::ACE_CLASSIX_CO_Acceptor");
- if (this->open (local_sap, reuse_addr, protocol_family,
- backlog, protocol, theReactor) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("ACE_CLASSIX_CO_Acceptor")));
-}
-
-// General purpose routine for performing server creation.
-
-int
-ACE_CLASSIX_CO_Acceptor::open (const ACE_Addr & theLocalSap,
- int /* reuse_addr */,
- int theProtocolFamily,
- int /* backlog */,
- int /* protocol */,
- ACE_Reactor* theReactor)
-{
- // make sure that the client requests for a "CLASSIX" family.
-
- if (theProtocolFamily != ACE_CLASSIX_Addr::AF_CLASSIX)
- return -1;
-
- // Setup local address
-
- int error = 0;
- if (theLocalSap == ACE_Addr::sap_any)
- {
- this->port_ = new ACE_CLASSIX_Port_Core ();
- ACE_ASSERT (this->port_);
- error = this->addr_.set (*this->port_);
- }
- else
- error = this->addr_.set (theLocalSap);
-
- if (error != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "ACE_CLASSIX_CO_Acceptor::open ()::"
- "Cannot setup address\n"), -1);
-
- // Make the port "selectable"
-
- if (this->addr_.selectable () != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "ACE_CLASSIX_CO_Acceptor::open ()::"
- "Cannot enable port\n"), -1);
-
- this->reactor_ = theReactor;
- return 0;
-}
-
-// General purpose routine for accepting new connections.
-
-int
-ACE_CLASSIX_CO_Acceptor::accept (ACE_CLASSIX_Stream &new_stream,
- ACE_Addr *remote_addr,
- ACE_Time_Value* /* timeout */,
- int /* restart */,
- int /* reset_new_handle */) const
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Acceptor::accept");
-
- // Get peer's address info
-
- size_t size = 0;
- if (this->reactor_->current_info (this->get_handle (), size)
- == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "ACE_CLASSIX_CO_Acceptor:.accept ()::"
- "Cannot get peer addr\n"), -1);
-
- ACE_CLASSIX_CO_Acceptor::Peer_Union data;
- ACE_CLASSIX_Msg rmsg (&data, sizeof (ACE_CLASSIX_CO_Acceptor::Peer_Union));
- if (size != sizeof (ACE_CLASSIX_CO_Acceptor::Peer_Union)
- || ::ipcGetData (rmsg.get ()) != size)
- ACE_ERROR_RETURN ((LM_ERROR, "%t"
- "ACE_CLASSIX_CO_Acceptor::accept::ipcGetData (%d)\n",
- size),
- -1);
-
- // Set up Peer SAP
-
- int error = 0;
- switch (data.type)
- {
- case ACE_CLASSIX_Addr::PORT:
- error = new_stream.set_peer_sap (data.choose.port.peer);
- break;
-
- case ACE_CLASSIX_Addr::GROUP:
- error = new_stream.set_peer_sap (data.choose.group.peer);
- break;
-
- case ACE_CLASSIX_Addr::STAMP:
- error = new_stream.set_peer_sap (data.choose.stamp.peer);
- break;
-
- case ACE_CLASSIX_Addr::DYNAMIC:
- error = new_stream.set_peer_sap (data.choose.group.peer);
- break;
-
- default:
- ACE_ERROR_RETURN ((LM_ERROR, "ACE_CLASSIX_CO_Accept::accept ()::"
- "Invalid peer address\n"), -1);
- }
-
- if (error != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "ACE_CLASSIX_CO_Accept::accept ()::"
- "cannot set peer address\n"), -1);
-
- // Set up local SAP & tell the peer
-
- data.type = ACE_CLASSIX_Addr::UNDEFINED;
-
- if (remote_addr != 0)
- {
- if (remote_addr->get_type () == ACE_CLASSIX_Addr::AF_CLASSIX &&
- ((ACE_CLASSIX_Addr*) remote_addr)->is_type ==
- ACE_CLASSIX_Addr::PORT)
- {
- new_stream.get_local_sap ().set (*remote_addr);
- data.type = ACE_CLASSIX_Addr::PORT;
- }
- }
- else
- {
- ACE_CLASSIX_Port_Core *port = new ACE_CLASSIX_Port_Core ();
- if (new_stream.set_local_port (port) == 0)
- data.type = ACE_CLASSIX_Addr::PORT;;
- }
-
- data.choose.port.peer =
- new_stream.get_local_sap ().get_addr ().get_id ();
-
- ACE_CLASSIX_Msg smsg (&data, sizeof (ACE_CLASSIX_CO_Acceptor::Peer_Union));
-
- if (::ipcReply (smsg.get ()) != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "ACE_CLASSIX_CO_Accept::accept ()::"
- "cannot deliver server address to peer\n"), -1);
-
- // Make new_stream's local SAP selectable.
- if (new_stream.selectable () != 0)
- return -1;
-
- return 0;
-}
-
-int
-ACE_CLASSIX_CO_Acceptor::close (void)
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Acceptor::close");
- int result = 0;
-
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- delete this->port_;
- this->port_ = 0;
- ((ACE_CLASSIX_Port) this->addr_.get_addr ()).clear ();
- }
- return 0;
-}
-
-
-int
-ACE_CLASSIX_CO_Acceptor::get_local_addr (ACE_Addr &theAddr) const
-{
- int size = theAddr.get_size ();
- if (size < this->addr_.get_addr ().get_size ())
- return -1;
-
- return this->addr_.get_addr (theAddr);
-}
-
-void
-ACE_CLASSIX_CO_Acceptor::dump (void) const
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Acceptor::dump");
-}
diff --git a/ace/CLASSIX/CLASSIX_CO_Acceptor.h b/ace/CLASSIX/CLASSIX_CO_Acceptor.h
deleted file mode 100644
index b095b394ba7..00000000000
--- a/ace/CLASSIX/CLASSIX_CO_Acceptor.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE
-//
-// = FILENAME
-// CLASSIX_CO_Acceptor.h
-//
-// = AUTHOR
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_CO_ACCEPTOR_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_CO_ACCEPTOR_H
-
-#include "ace/CLASSIX/CLASSIX_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Time_Value.h"
-
-class ACE_Export ACE_CLASSIX_CO_Acceptor
-{
- // = TITLE
- // Defines the format and interface for a connection
- // oriented <ACE_CLASSIX_Stream> acceptor.
- //
- // = DESCRIPTION
- // This class is the counter part of the <ACE_CLASSIX_Connector>
- // class. It exchanges SAP information to set up a logical
- // connection.
- //
- // Data format passed between a connector and this class uses
- // Peer_Union structure.
- //
- // = SEE ALSO
- // ACE_CLASSIX_Connector
- //
-public:
- struct Peer_Port
- {
- KnUniqueId peer;
- };
-
- struct Peer_Group
- {
- KnCap peer;
- };
-
- struct Peer_Stamp
- {
- int peer;
- };
-
- struct Peer_Union
- {
- int type;
- union
- {
- Peer_Port port;
- Peer_Group group;
- Peer_Stamp stamp;
- }choose;
- };
-
- // = Initialization methods.
- ACE_CLASSIX_CO_Acceptor (ACE_Reactor* = ACE_Reactor::instance());
- // Default constructor.
-
- ACE_CLASSIX_CO_Acceptor (const ACE_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = ACE_CLASSIX_Addr::AF_CLASSIX,
- int backlog = 0,
- int protocol = 0,
- ACE_Reactor* = ACE_Reactor::instance());
- // Initiate a passive mode socket.
-
- virtual ~ACE_CLASSIX_CO_Acceptor (void);
- // Default dtor.
-
- int open (const ACE_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = ACE_CLASSIX_Addr::AF_CLASSIX,
- int backlog = 5,
- int protocol = 0,
- ACE_Reactor* = ACE_Reactor::instance());
- // Initiate a passive mode socket.
- int close (void);
- // Closes down the listening port.
-
- // = Passive connection acceptance method.
- int accept (ACE_CLASSIX_Stream &new_stream,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
- // Accept a new data transfer connection. A <timeout> of 0 means
- // block forever, a <timeout> of {0, 0} means poll. <restart> == 1
- // means "restart if interrupted."
-
- // = ACCESS
- ACE_HANDLE get_handle (void) const;
- // Get the underlying descriptor.
- int get_local_addr (ACE_Addr &) const;
- // Return the local endpoint address in the referenced ACE_Addr.
- // Returns 0 if successful, else -1.
-
- void reactor(ACE_Reactor*);
- // reset the reactor
-
- // = META-TYPE info
- typedef ACE_CLASSIX_Addr PEER_ADDR;
- typedef ACE_CLASSIX_Stream PEER_STREAM;
-
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-protected:
-
-private:
-
- ACE_CLASSIX_Port_Core *port_;
- // optional port.
- // If 0, default port is used.
- ACE_CLASSIX_SAP addr_;
-
- ACE_Reactor *reactor_;
- // for reference only. Does not own it
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/CLASSIX/CLASSIX_CO_Acceptor.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_CO_ACCEPTOR_H */
diff --git a/ace/CLASSIX/CLASSIX_CO_Acceptor.i b/ace/CLASSIX/CLASSIX_CO_Acceptor.i
deleted file mode 100644
index d15dedd007d..00000000000
--- a/ace/CLASSIX/CLASSIX_CO_Acceptor.i
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Do nothing routine for constructor.
-ACE_INLINE
-ACE_CLASSIX_CO_Acceptor::ACE_CLASSIX_CO_Acceptor (ACE_Reactor* theReactor)
- : port_ (0),
- reactor_ (theReactor)
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Acceptor::ACE_CLASSIX_CO_Acceptor");
-}
-
-ACE_INLINE
-ACE_CLASSIX_CO_Acceptor::~ACE_CLASSIX_CO_Acceptor(void)
-{
- delete this->port_;
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_CO_Acceptor::reactor(ACE_Reactor* theReactor)
-{
- this->reactor_ = theReactor;
-}
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_CO_Acceptor::get_handle(void) const
-{
- return this->addr_.get_handle();
-}
diff --git a/ace/CLASSIX/CLASSIX_CO_Connector.cpp b/ace/CLASSIX/CLASSIX_CO_Connector.cpp
deleted file mode 100644
index 12280142b2b..00000000000
--- a/ace/CLASSIX/CLASSIX_CO_Connector.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-// $Id$
-/*
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_CO_Connector.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-*/
-#define ACE_BUILD_DLL
-#include "ace/CLASSIX/CLASSIX_CO_Connector.h"
-#include "ace/CLASSIX/CLASSIX_CO_Acceptor.h"
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_CO_Connector)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_CO_Connector.i"
-#endif /* __ACE_INLINE__ */
-/* ------------------------------------------------------------------------- */
-
-// Set up remote port information
-
-int
-ACE_CLASSIX_CO_Connector::connect (ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr & theAcceptor,/* acceptor */
- ACE_Time_Value * theTimeout, /* timeout */
- const ACE_Addr & theLocal,
- int theReuse,
- int theFlag,
- int thePerm,
- int theProtocolFamily,
- int theProtocol)
-
-{
- //
- // set up local SAP and connector info in <new_stream>
- //
- if (this->ACE_CLASSIX_CLD_Connector::
- connect(new_stream,
- theAcceptor,
- theTimeout,
- theLocal,
- theReuse,
- theFlag & (~ACE_CLASSIX_CLD_Connector::ENABLE),
- thePerm,
- theProtocolFamily,
- theProtocol) != 0)
- return -1;
-
- //
- // make a connection
- //
- // Tell the connector my own SAP
- ACE_CLASSIX_CO_Acceptor::Peer_Union peer;
- size_t size = sizeof (ACE_CLASSIX_CO_Acceptor::Peer_Union);
- peer.type = ACE_CLASSIX_Addr::PORT;
- peer.choose.port.peer = new_stream.local_sap().get_addr().get_id();
-
- if (new_stream.send((void*) &peer, size) != size)
- ACE_ERROR_RETURN((LM_ERROR, "%t|%P|%p\n",
- "ACE_CLASSIX_Connector::connect()::send:"), -1);
- // Wait for peer SAP information from the acceptor
- if (new_stream.ipcRecv((void*) &peer, size, 0, theTimeout) != size)
- ACE_ERROR_RETURN((LM_ERROR, "ACE_CLASSIX_Connector::connect()::"
- "unable to receive connect response\n"), -1);
-
- int error = 0;
- switch (peer.type)
- {
- case ACE_CLASSIX_Addr::PORT:
- error = new_stream.set_peer_sap(peer.choose.port.peer);
- break;
-
- case ACE_CLASSIX_Addr::GROUP:
- error = new_stream.set_peer_sap(peer.choose.group.peer);
- break;
-
- case ACE_CLASSIX_Addr::STAMP:
- error = new_stream.set_peer_sap(peer.choose.stamp.peer);
- break;
-
- case ACE_CLASSIX_Addr::DYNAMIC:
- error = new_stream.set_peer_sap(peer.choose.group.peer);
- break;
-
- default:
- ACE_ERROR_RETURN((LM_ERROR, "ACE_CLASSIX_Connect::connect()::"
- "Invalid peer address\n"), -1);
- }
-
- if (error != 0)
- ACE_ERROR_RETURN((LM_ERROR, "ACE_CLASSIX_Connector::connect()::"
- "unable to receive connect response\n"), -1);
-
-
- //
- // Make the local SAP "selectable"
- //
- if (theFlag & ACE_CLASSIX_CO_Connector::ENABLE &&
- new_stream.selectable() != 0)
- return -1;
-
- return 0;
-}
-
-void
-ACE_CLASSIX_CO_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Connector::dump");
-}
-
-/* ------------------------------------------------------------------------- */
diff --git a/ace/CLASSIX/CLASSIX_CO_Connector.h b/ace/CLASSIX/CLASSIX_CO_Connector.h
deleted file mode 100644
index b59e04a72e2..00000000000
--- a/ace/CLASSIX/CLASSIX_CO_Connector.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/*
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_CO_Connector.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-*/
-
-#ifndef ACE_CLASSIX_CO_CONNECTOR_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_CO_CONNECTOR_H
-
-#include "ace/CLASSIX/CLASSIX_CLD_Connector.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/* ------------------------------------------------------------------------- */
-
-class ACE_CLASSIX_CO_Connector : public ACE_CLASSIX_CLD_Connector
- // = TITLE
- // Defines an CLASSIX IPC connection factory for the
- // template methods in <ACE_Connector>.
- //
- // = DESCRIPTION
- // This is used when a client needs to communicate with a server
- // whose SAP address is unknown.
- //
- // <ACE_CLASSIX_Connect> and <ACE_CLASSIX_Acceptor> exchanges
- // address(SAP) information to establish a logical link.
- //
- // = NOTES
- // There is no other identifier and sequence information
- // passed between the acceptor and the connector.
- // Some applications may need to have a
- // reliable protocol for the connection setup procedure.
- //
- // = SEE ALSO
- // ACE_CLASSIX_CLD_Connector
- // ACE_CLASSIX_Acceptor
- //
-{
- public:
- // = Initialization routines.
- ACE_CLASSIX_CO_Connector (void);
- // Default constructor.
-
- ACE_CLASSIX_CO_Connector (ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr &remote_sap
- = ACE_Addr::sap_any,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0,
- int protocol_family
- = ACE_CLASSIX_Addr::AF_CLASSIX,
- int protocol = 0);
- // Emulates connection semantics so that it can be plugged into
- // <ACE_Connector>
- // Actively connect local SAP and remote SAP togeter.
- // Produce a <new_stream> if things go well.
- //
- // <remote_sap> is the peer's address. In ACE_SOCK_Connector it refers to
- // the acceptor's address. In connectionless mode, we do not have
- // an acceptor. The <remote_sap> address will be copied to the new stream
- // if things goes well.
- //
- // If <local_sap> refers to any address, a port will be
- // allocated and will be used as a local SAP.
- //
- // The rest parameters are there so that this class can be plugged into
- // <ACE_Connector>.
-
- int connect (ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr &remote_sap = ACE_Addr::sap_any,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0,
- int protocol_family = ACE_CLASSIX_Addr::AF_CLASSIX,
- int protocol = 0);
-
- // Factory method used in <ACE_Connector>::connect_svc_handler()
-
- // Initialization method when default constructor is used.
- // See the comments for the corresponding constructor
-
- // = HELPER
- void dump(void) const;
-
-
- private:
-
- ACE_CLASSIX_CO_Connector(ACE_CLASSIX_CO_Connector const&);
- ACE_CLASSIX_CO_Connector const& operator=(ACE_CLASSIX_CO_Connector const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_CO_Connector.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_CO_CONNECTOR_H */
diff --git a/ace/CLASSIX/CLASSIX_CO_Connector.i b/ace/CLASSIX/CLASSIX_CO_Connector.i
deleted file mode 100644
index 7f28a66719f..00000000000
--- a/ace/CLASSIX/CLASSIX_CO_Connector.i
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-//
-// CLASSIX_CO_Connector.i
-/* ------------------------------------------------------------------------- */
-
-ACE_INLINE
-ACE_CLASSIX_CO_Connector::ACE_CLASSIX_CO_Connector (
- ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms,
- int protocol_family,
- int protocol)
- : ACE_CLASSIX_CLD_Connector(new_stream, remote_sap, timeout, local_sap,
- reuse_addr, flags, perms,
- protocol_family, protocol)
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Connector::ACE_CLASSIX_CO_Connector");
-}
-
-// Do-nothing constructor...
-
-ACE_INLINE
-ACE_CLASSIX_CO_Connector::ACE_CLASSIX_CO_Connector (void)
- : ACE_CLASSIX_CLD_Connector()
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Connector::ACE_CLASSIX_CO_Connector");
-}
-
-/* ------------------------------------------------------------------------- */
-
-
diff --git a/ace/CLASSIX/CLASSIX_Dgram_Mcast.cpp b/ace/CLASSIX/CLASSIX_Dgram_Mcast.cpp
deleted file mode 100644
index 112d25956b7..00000000000
--- a/ace/CLASSIX/CLASSIX_Dgram_Mcast.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// IPP
-//
-// = FILENAME
-// CLASSIX/Dgram_Mcast.cpp
-//
-// = AUTHOR(S)
-// Wei Chiang
-//
-// = COPYRIGHT
-// Copyright 1998 Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Dgram_Mcast.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Dgram_Mcast.i"
-#endif /* __ACE_INLINE__ */
-/* ------------------------------------------------------------------------- */
-int
-ACE_CLASSIX_Dgram_Mcast::set_saps(int theStamp,
- const ACE_CLASSIX_Port& thePort)
-{
- this->local_sap_.set_addr(thePort);
- if (this->peer_sap_.set(theStamp) != 0)
- {
- errno = EADDRNOTAVAIL;
- ACE_ERROR_RETURN((LM_ERROR, "ACE_CLASSIX_Dgram_Mcast- "
- "failed to set up peer sap address \n"), -1);
- }
- else
- {
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
- return 0;
- }
-}
-
-
-int
-ACE_CLASSIX_Dgram_Mcast::set_mode_(u_int theMode, int theSite)
-{
- int result = K_EFAULT;
- if (theMode <= K_FUNCXMODE &&
- (result =::uiSite(&this->dest_.coTarget, theSite)) == 0)
- result = ::ipcTarget(&this->dest_.target, theMode);
-
- if (result != 0)
- {
- errno = ACE_CLASSIX_OS::convert_io_error(result);
- result = -1;
- }
- return result;
-}
-
-int
-ACE_CLASSIX_Dgram_Mcast::set_mode_(u_int theMode)
-{
- int result = K_EFAULT;
- if (theMode <= K_FUNCXMODE )
- result = ::ipcTarget(&this->dest_.target, theMode);
-
- if (result < 0)
- {
- errno = ACE_CLASSIX_OS::convert_io_error(result);
- result = -1;
- }
- return result;
-}
-
-
-void
-ACE_CLASSIX_Dgram_Mcast::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Dgram_Mcast...\n"));
- this->ACE_CLASSIX_Stream::dump();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Dgram_Mcast.h b/ace/CLASSIX/CLASSIX_Dgram_Mcast.h
deleted file mode 100644
index 35166b99ca0..00000000000
--- a/ace/CLASSIX/CLASSIX_Dgram_Mcast.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Dgram_Mcast.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_DGRAM_MCAST_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_DGRAM_MCAST_H
-
-/* ------------------------------------------------------------------------- */
-#include <ace/CLASSIX/CLASSIX_Stream.h>
-
-class ACE_CLASSIX_Dgram_Mcast : public ACE_CLASSIX_Stream
- // = TITLE
- // Provides Dgram_Mcast interfaces for CLASSIX IPC communications.
- //
- // = DESCRIPTION
- // This class represents multiple end-points for message delivery.
- // All the remote ports are belong to the same group identified by
- // a stamp.
- // It uses the broadcast mode provided by ipcSend() to deliver
- // messages.
- //
- // This class is most likely used in the server.
- //
-{
- public:
- // = INITIALIZATION
- ACE_CLASSIX_Dgram_Mcast(void);
- // Default constructor, does not setup anything
-
- ACE_CLASSIX_Dgram_Mcast(int /* stamp */,
- const ACE_CLASSIX_Port& =
- *ACE_CLASSIX_DEFAULT_PORT::instance());
- // remote SAP = port group, local SAP = default port
-
- int set_saps(int /* stamp */,
- const ACE_CLASSIX_Port& =
- *ACE_CLASSIX_DEFAULT_PORT::instance());
- // remote SAP = port group, local SAP = default port
-
- //virtual ssize_t send (const void *, /* buf */
- // size_t /* n */) const;
-
-
- // = HELPER
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
- protected:
-
- virtual int set_mode_(u_int = K_BROADMODE); /* theMode */
- // Sets the addressing mode with the current setting of coTarget
- virtual int set_mode_(u_int, /* mode */ int /* site */);
- // Sets the addressing mode as well as the coTarget
-
- // Site information for delivery mode, see <ACE_CLASSIX_Stream::dest_ >
- // Can be changed by control()/set_mode_()
- int dest_site_;
-
-
- private:
- // Disable copy constructor
- ACE_CLASSIX_Dgram_Mcast(ACE_CLASSIX_Dgram_Mcast const&);
- ACE_CLASSIX_Dgram_Mcast const& operator=(ACE_CLASSIX_Dgram_Mcast const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Dgram_Mcast.i"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_DGRAM_MCAST_H */
diff --git a/ace/CLASSIX/CLASSIX_Dgram_Mcast.i b/ace/CLASSIX/CLASSIX_Dgram_Mcast.i
deleted file mode 100644
index 5d9fd3df0d3..00000000000
--- a/ace/CLASSIX/CLASSIX_Dgram_Mcast.i
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-//
-// ace/CLASSIX_Dgram_Mcast.i
-/* ------------------------------------------------------------------------- */
-ACE_INLINE
-ACE_CLASSIX_Dgram_Mcast::ACE_CLASSIX_Dgram_Mcast(void)
- : ACE_CLASSIX_Stream()
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Dgram_Mcast::ACE_CLASSIX_Dgram_Mcast (int theStamp,
- const ACE_CLASSIX_Port& thePort)
- : ACE_CLASSIX_Stream()
-{
- this->set_saps(theStamp, thePort);
-}
-
-
-/* ------------------------------------------------------------------------- */
diff --git a/ace/CLASSIX/CLASSIX_Group.cpp b/ace/CLASSIX/CLASSIX_Group.cpp
deleted file mode 100644
index cb0064d3298..00000000000
--- a/ace/CLASSIX/CLASSIX_Group.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Group.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Group.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Group.i"
-#endif /* __ACE_INLINE__ */
-/* ------------------------------------------------------------------------- */
-
-void
-ACE_CLASSIX_Group::init_(void)
-{
- this->clear_config_();
- this->addr_.group_.ui.uiHead = this->addr_.group_.ui.uiTail = 0;
- this->addr_.group_.key.keyHead = this->addr_.group_.key.keyTail = 0;
-}
-
-void
-ACE_CLASSIX_Group::set_addr(void* theSrc, int theLen)
-{
- if (theLen > this->get_size())
- return;
-
- ACE_OS::memcpy ((void *) &this->addr_,
- (void *) theSrc, theLen);
-}
-
-void
-ACE_CLASSIX_Group::set_addr(const KnCap& thePeer)
-{
- this->addr_.group_ = thePeer;
- this->set_config_();
-}
-
-
-int
-ACE_CLASSIX_Group::insert(const ACE_CLASSIX_Port* thePort)
-{
- if (this->is_configured())
- return ::grpPortInsert((KnCap*) &this->get_cap(),
- (KnUniqueId*) &thePort->get_id());
- else
- return K_EINVAL;
-}
-
-int
-ACE_CLASSIX_Group::remove(const ACE_CLASSIX_Port* thePort)
-{
- if (this->is_configured())
- return ::grpPortRemove((KnCap*) &this->get_cap(),
- (KnUniqueId*) &thePort->get_id());
- else
- return K_EINVAL;
-}
-
-void
-ACE_CLASSIX_Group::dump(void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Group...\n"));
- char s[200];
- if (!this->is_configured())
- ACE_OS::sprintf(s, "Group has not been setup\n");
- else
- {
- const KnCap &group = this->get_cap();
- ACE_OS::sprintf (s, "id head = %d(%x), id tail = %d(%x)\n"
- "key head = %d(%x) key tail = %d(%x)\n",
- group.ui.uiHead, group.ui.uiHead,
- group.ui.uiTail, group.ui.uiTail,
- group.key.keyHead, group.key.keyHead,
- group.key.keyTail, group.key.keyTail);
- }
- ACE_DEBUG ((LM_DEBUG, "\n%s", s));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Group.h b/ace/CLASSIX/CLASSIX_Group.h
deleted file mode 100644
index 5c4c6dfabc5..00000000000
--- a/ace/CLASSIX/CLASSIX_Group.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX/Group.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_GROUP_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_GROUP_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/CLASSIX/CLASSIX_Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/CLASSIX/CLASSIX_Port.h"
-
-class ACE_CLASSIX_Group : public ACE_CLASSIX_Addr
- // = TITLE
- // Wrapper over Chorus's Group concept.
- //
- // = DESCRIPTION
- // Provides interface to insert and remove ports in the group which is
- // created based on a given KnCap. This"<KnCap> is the unique
- // identifier of the group.
- //
- // = NOTE
- // Chorus does not provide facility to remove a group from the system,
- // nor explicitly create a group.
- // As such, the wrapper allows users to freely change from one group
- // to the other within the same <ACE_CLASSIX_Group> instance.
- //
- // = SEE ALSO
- // <ACE_CLASSIX_Group_Stamp>, <ACE_CLASSIX_Group_Dynamic>
- //
-{
- public:
- // = INITIALIZATION
- ACE_CLASSIX_Group(void*, /* group id */ int /* len */);
- // Sets up the group wrapper using the supplied group id.
- ACE_CLASSIX_Group(const KnCap&);
- // Sets up the group wrapper using the supplied KnCap
-
- // = ACCESS
- int is_configured(void) const;
- // Returns 1, if it contains valid group id; 0, otherwise.
- virtual ACE_CLASSIX_Addr::Addr_Type is_type(void) const;
- // returns GROUP type
- void* get_addr(void) const;
- // Returns the group id
- virtual const KnUniqueId& get_id (void) const;
- // Returns a reference to the unique identifier
- virtual void set_addr(void* /* source */, int /* len */);
- // Sets the group information according to the supplied data
- // in raw format.
- virtual void set_addr(const KnCap&);
- // Sets the group information according to the supplied KnCap.
- const KnCap& get_cap(void) const;
- // Returns the capability to the supplied location
- // If the address is not configured, the return value is unpredictable.
- int insert(const ACE_CLASSIX_Port*);
- int remove (const ACE_CLASSIX_Port*);
- // Inserts/removes the specified port in to the group
- // Returns 0, if successful; returns a negative value otherwise
-
- int operator == (const ACE_CLASSIX_Group &) const;
- int operator != (const ACE_CLASSIX_Group &) const;
-
- // = HELPER
- void dump(void) const;
-
- protected:
- // = INITIALIZATION
- ACE_CLASSIX_Group();
- // default constructor, does nothing but init.
-
- void init_(void);
- // Initializes the structure.
-
- void set_config_();
- // Sets the group configured.
- void clear_config_();
- // Sets the group not-configured.
-
- struct group_addr
- {
- int config_; // 1, if the following fields are valid
- KnCap group_;
- };
- group_addr addr_;
-
- private:
-
- // disable copy/assignment constructor
- ACE_CLASSIX_Group(ACE_CLASSIX_Group const&);
- ACE_CLASSIX_Group const& operator=(ACE_CLASSIX_Group const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Group.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_GROUP_H */
diff --git a/ace/CLASSIX/CLASSIX_Group.i b/ace/CLASSIX/CLASSIX_Group.i
deleted file mode 100644
index e3650502a10..00000000000
--- a/ace/CLASSIX/CLASSIX_Group.i
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Group::ACE_CLASSIX_Group()
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Group::group_addr))
-{
- this->init_();
-}
-
-ACE_INLINE
-ACE_CLASSIX_Group::ACE_CLASSIX_Group(void* theSrc, int theLen)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Group::group_addr))
-{
- this->set_addr(theSrc, theLen);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Group::ACE_CLASSIX_Group(const KnCap& thePeer)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Group::group_addr))
-{
- this->set_addr(thePeer);
-}
-
-ACE_INLINE
-void *
-ACE_CLASSIX_Group::get_addr(void) const
-{
- return (void*) &this->addr_;
-}
-
-ACE_INLINE
-const KnUniqueId&
-ACE_CLASSIX_Group::get_id(void) const
-{
- return this->addr_.group_.ui;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Group::is_configured(void) const
-{
- return this->addr_.config_ == 1;
-}
-
-ACE_INLINE
-ACE_CLASSIX_Addr::Addr_Type
-ACE_CLASSIX_Group::is_type(void) const
-{
- return ACE_CLASSIX_Addr::GROUP;
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Group::set_config_(void)
-{
- this->addr_.config_ = 1;
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Group::clear_config_(void)
-{
- this->addr_.config_ = 0;
-}
-
-ACE_INLINE
-const KnCap&
-ACE_CLASSIX_Group::get_cap(void) const
-{
- return this->addr_.group_;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Group::operator ==(const ACE_CLASSIX_Group & theRhs) const
-{
- return
- this->is_configured() &&
- theRhs.is_configured() &&
- ((KnCap) (this->get_cap()) == (KnCap) (theRhs.get_cap()));
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Group::operator !=(const ACE_CLASSIX_Group & theRhs) const
-{
- return !(*this == theRhs);
-}
diff --git a/ace/CLASSIX/CLASSIX_Group_Dynamic.cpp b/ace/CLASSIX/CLASSIX_Group_Dynamic.cpp
deleted file mode 100644
index a0ecbe357e6..00000000000
--- a/ace/CLASSIX/CLASSIX_Group_Dynamic.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Group_Creator.cpp.1
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Group_Dynamic.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Group_Dynamic.i"
-#endif /* __ACE_INLINE__ */
diff --git a/ace/CLASSIX/CLASSIX_Group_Dynamic.h b/ace/CLASSIX/CLASSIX_Group_Dynamic.h
deleted file mode 100644
index eb469fcf81a..00000000000
--- a/ace/CLASSIX/CLASSIX_Group_Dynamic.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Group_Dynamic.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_GROUP_DYNAMIC_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_GROUP_DYNAMIC_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/CLASSIX/CLASSIX_Group.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_CLASSIX_Group_Dynamic : public ACE_CLASSIX_Group
- // = TITLE
- // Wrapper over Chorus's Group which is created dynamically and not named
- // by a <Stamp>.
- //
- // = DESCRIPTION
- // This is a subclass of <ACE_CLASSIX_Group>.
- //
- // Its encapsulated group is created dynamically and the
- // <KnCap> is the name as well as the unique identifier.
- //
- // = SEE ALSO
- // <ACE_CLASSIX_Group>, <ACE_CLASSIX_Group_Stamp>
-{
- public:
-
- ACE_CLASSIX_Group_Dynamic(void);
- // default constructor... create a group use Chorus IPC's K_DYNAMIC option
-
- virtual ACE_CLASSIX_Addr::Addr_Type is_type(void) const;
- // returns Dynamic type
-
- private:
-
- ACE_CLASSIX_Group_Dynamic(ACE_CLASSIX_Group_Dynamic const&);
- ACE_CLASSIX_Group_Dynamic const& operator=(ACE_CLASSIX_Group_Dynamic const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Group_Dynamic.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_GROUP_DYNAMIC_H */
diff --git a/ace/CLASSIX/CLASSIX_Group_Dynamic.i b/ace/CLASSIX/CLASSIX_Group_Dynamic.i
deleted file mode 100644
index a7974ce45c1..00000000000
--- a/ace/CLASSIX/CLASSIX_Group_Dynamic.i
+++ /dev/null
@@ -1,16 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Group_Dynamic::ACE_CLASSIX_Group_Dynamic(void)
-{
- if (::grpAllocate( K_DYNAMIC, &this->addr_.group_, 0) == 0)
- this->set_config_();
-}
-
-ACE_INLINE
-ACE_CLASSIX_Addr::Addr_Type
-ACE_CLASSIX_Group_Dynamic::is_type(void) const
-{
- return ACE_CLASSIX_Addr::DYNAMIC;
-}
diff --git a/ace/CLASSIX/CLASSIX_Group_Stamp.cpp b/ace/CLASSIX/CLASSIX_Group_Stamp.cpp
deleted file mode 100644
index b1205ca66ec..00000000000
--- a/ace/CLASSIX/CLASSIX_Group_Stamp.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// ace/CLASSIX_Group_Stamp.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Group_Stamp.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Group_Stamp.i"
-#endif /* __ACE_INLINE__ */
-/* ------------------------------------------------------------------------- */
-void
-ACE_CLASSIX_Group_Stamp::set_addr(void* theStamp, int)
-{
- // Get the group capability
- this->stamp_ = *((u_int*)theStamp);
- KnActorPrivilege actor;
- actorPrivilege(K_MYACTOR, &actor, NULL);
- if (::grpAllocate((actor == K_SUPACTOR) ? K_STATSYS : K_STATUSER,
- &this->addr_.group_,
- this->stamp_) < 0 )
- {
- ACE_DEBUG((LM_DEBUG, "ACE_CLASSIX_Group_Stamp()::"
- "group allocation failed\n"));
- this->init_();
- this->stamp_ = ACE_CLASSIX_Group_Stamp::ILLEGAL_STAMP;
- }
- else
- {
- this->set_config_();
- }
-}
-
-void
-ACE_CLASSIX_Group_Stamp::dump(void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Group_Stamp...\n"));
- ACE_DEBUG ((LM_DEBUG, "\nStamp = %d\n", this->get_stamp()));
- this->ACE_CLASSIX_Group::dump();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Group_Stamp.h b/ace/CLASSIX/CLASSIX_Group_Stamp.h
deleted file mode 100644
index f71149616d3..00000000000
--- a/ace/CLASSIX/CLASSIX_Group_Stamp.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Group_Stamp.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_GROUP_STAMP_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_GROUP_STAMP_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/CLASSIX/CLASSIX_Group.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_CLASSIX_Group_Stamp : public ACE_CLASSIX_Group
- // = TITLE
- // Wrapper over Chorus's Group using <Stamp> for naming the group.
- //
- // = DESCRIPTION
- // This is a subclass of <ACE_CLASSIX_Group>.
- //
- // Its encapsulated group is named by a <stamp>. However,
- // <KnCap> is still the unique identifier of the group.
- //
- // = NOTE
- // As at the time of writing, The stamp is contained in the ui.uiTail
- // field of <KnCap>.
- //
- // = SEE ALSO
- // <ACE_CLASSIX_Group>, <ACE_CLASSIX_Group_Dynamic>
- //
-{
- public:
- enum
- {
- ILLEGAL_STAMP = 0
- /* Have we defined the range of valid stamps? */
- };
-
- // = INITIALIZATION
- ACE_CLASSIX_Group_Stamp();
- // default constructor. Does not contain group information..
- ACE_CLASSIX_Group_Stamp(int /* stamp */);
- // creates a group use the specfied stamp
- virtual void set_addr(void*, /* pointer to the stamp */
- int = 0 /* not used */);
- // Replaces the existing group according to the supplied stamp
-
- // = ACCESS
- virtual ACE_CLASSIX_Addr::Addr_Type is_type(void) const;
- // returns STAMP type
-
- int get_stamp() const;
- // Returns the stamp
- // If the address is not configured, the return value is unpredictable.
-
- // = HELPER
- void dump(void) const;
-
-
-
- private:
- u_int stamp_;
-
- // disable copy/assignment constructor
- ACE_CLASSIX_Group_Stamp(ACE_CLASSIX_Group_Stamp const&);
- ACE_CLASSIX_Group_Stamp const& operator=(ACE_CLASSIX_Group_Stamp const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Group_Stamp.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_GROUP_STAMP_H */
diff --git a/ace/CLASSIX/CLASSIX_Group_Stamp.i b/ace/CLASSIX/CLASSIX_Group_Stamp.i
deleted file mode 100644
index 0c03d8ab17a..00000000000
--- a/ace/CLASSIX/CLASSIX_Group_Stamp.i
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Group_Stamp::ACE_CLASSIX_Group_Stamp()
- : ACE_CLASSIX_Group (),
- stamp_ (0)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Group_Stamp::ACE_CLASSIX_Group_Stamp(int theStamp)
- : ACE_CLASSIX_Group ()
-{
- this->set_addr(&theStamp);
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Group_Stamp::get_stamp() const
-{
- return this->stamp_;
-
-// return this->addr_.group_.ui.uiTail;
-}
-
-ACE_INLINE
-ACE_CLASSIX_Addr::Addr_Type
-ACE_CLASSIX_Group_Stamp::is_type(void) const
-{
- return ACE_CLASSIX_Addr::STAMP;
-}
diff --git a/ace/CLASSIX/CLASSIX_OS.cpp b/ace/CLASSIX/CLASSIX_OS.cpp
deleted file mode 100644
index 2ec4b6af6d8..00000000000
--- a/ace/CLASSIX/CLASSIX_OS.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_OS.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_OS.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_OS.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/CLASSIX/CLASSIX_Select_Reactor.h"
-
-/* ------------------------------------------------------------------------- */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_OS)
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_Msg)
-
-#if 0
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_Mgr)
-ACE_CLASSIX_Mgr::ACE_CLASSIX_Mgr(void)
-{
-}
-
-ACE_CLASSIX_Mgr::~ACE_CLASSIX_Mgr(void)
-{
-}
-
-ACE_SYNCH_RECURSIVE_MUTEXT&
-ACE_CLASSIX_Mgr::ref_lock(void) const;
-{
- return port_lock_;
-}
-#endif
-/* ------------------------------------------------------------------------- */
-KnUniqueId ACE_CLASSIX_OS::null_KnUniqueId_;
-ACE_Recursive_Thread_Mutex ACE_CLASSIX_OS::lock_;
-
-ACE_CLASSIX_OS::ACE_CLASSIX_OS(void)
-{
- // Create a actor-wide CLASSIX reactor
- ACE_Reactor *r =
- ACE_Reactor::instance
- (new ACE_Reactor(new ACE_CLASSIX_Select_Reactor(), 1), 1);
- delete r;
-
- // Fills in a null KnUniqueId so that it can be referenced when required
- this->null_KnUniqueId_.uiHead = this->null_KnUniqueId_.uiTail = 0;
-}
-
-ssize_t
-ACE_CLASSIX_OS::convert_io_error(ssize_t theOriginal)
-{
- switch (theOriginal)
- {
- case K_EFULL:
- return ENOBUFS;
-
- case K_EINVAL:
- return EFTYPE;
-
- case K_EFAULT:
- return EFAULT;
-
- case K_ETOOMUCH:
- return EMSGSIZE;
-
- case K_EUNKNOWN:
- return EBADF;
-
- case K_ENOPORT:
- return EBADF;
-
- case K_ETIMEOUT:
- return ETIMEOUT;
-
- case K_EABORT:
- return EINTR;
-
- default:
- ACE_DEBUG((LM_DEBUG, "unknonw error: %d\n", theOriginal));
- return EFAULT;
- }
-}
-
-
-
-/* ------------------------------------------------------------------------- */
-
-void
-ACE_CLASSIX_Msg::dump(void) const
-{
- ACE_DEBUG ((LM_INFO, ACE_BEGIN_DUMP, this));
-
- char s[100];
- ACE_OS::sprintf (s, "flag = %x\n"
- "body size = %d\t addr = %x\n"
- "annex addr = %x\n"
- "seq no = %d\n",
- this->msg_.flags,
- this->msg_.bodySize, this->msg_.bodyAddr,
- this->msg_.annexAddr,
- this->msg_.seqNum);
- ACE_DEBUG ((LM_INFO, "%s", s));
- ACE_DEBUG ((LM_INFO, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_OS.h b/ace/CLASSIX/CLASSIX_OS.h
deleted file mode 100644
index 7f2118d5089..00000000000
--- a/ace/CLASSIX/CLASSIX_OS.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_OS.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_OS_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_OS_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Select_Reactor.h"
-#include "ace/Singleton.h"
-#include "ace/CLASSIX/CLASSIX_Port_Core.h"
-
-#include <ipc/chIpc.h>
-
-
-#if 0
-class ACE_Export ACE_CLASSIX_Mgr
- // = TITLE
- // Class to manage resouces, especially static resources
- //
- // = DESCRIPTION
- // It is intended that one <ACE_CLASSIX_Mgr> per actor
- //
-{
- public:
- friend ACE_Singleton<ACE_CLASSIX_Mgr, ACE_SYNCH_NULL_MUTEX>;
-
- ACE_SYNCH_RECURSIVE_MUTEXT& ref_lock(const) const;
-
- protected:
- // = Initialization
- ACE_CLASSIX_Mgr(void);
- // Only allow its fried to instantiate, since it is meant as a
- // singleton class.
- // This class shall be instanti
-
-private:
- ACE_SYNCH_RECURSIVE_MUTEX *port_lock_;
-};
-#endif
-
-class ACE_Export ACE_CLASSIX_OS
-{
-public:
-
- ACE_CLASSIX_OS();
-
- static const KnUniqueId& null_KnUniqueId();
- static ssize_t convert_io_error (ssize_t /* CLASSIX' error no */);
- // conver CLASSIX's errno no to Posix no.
-
-protected:
-
-private:
- friend class ACE_CLASSIX_Port_Core;
- friend class ACE_CLASSIX_Port;
- static ACE_Recursive_Thread_Mutex& get_lock_(void);
- // Returns CLASSIX environment-wide lock
-
- static KnUniqueId null_KnUniqueId_;
- // Null-filled KnUniqueId
-
- static ACE_Recursive_Thread_Mutex lock_;
-};
-
-/* ------------------------------------------------------------------------- */
-
-
-class ACE_CLASSIX_Msg
- // = TITLE
- // Class wrapper over Chorus's KnMsgDesc structure
- //
- // = DESCRIPTION
- // Provides initialization and reset methods to construct a KnMsgDesc.
- //
- // The flags in the <flags> field of the KnMsgDesc structure is always
- // set to 0. Therefore, the message body will always be copied and
- // the message is assumed to be part of the user(kernel) address
- // space when the caller is a USER(SUPERVISOR) thread.
- // (Chorus may not support the options defined in the flag, so we
- // choose not to use the flag, i.e. set it to null).
- //
- // The message annex is not used.
-
- // = SEE ALSO
- // ipcSend(2)
-{
- public:
- // = initialization
- ACE_CLASSIX_Msg();
- // default constructor
- ACE_CLASSIX_Msg(const void * /* body address */, int /* msg length */);
-
- KnMsgDesc* get(void);
- // get CLASSIX' message structure
- void set (const void* /* body address */, int /* msg length*/);
- // Reset the message. The original message will be overwritten.
-
- void dump(void) const;
-
- ACE_ALLOC_HOOK_DECLARE;
- // declare the dynamic allocation hooks
-
- private:
- KnMsgDesc msg_;
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_OS.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_OS_H */
diff --git a/ace/CLASSIX/CLASSIX_OS.i b/ace/CLASSIX/CLASSIX_OS.i
deleted file mode 100644
index d5ded0cc75a..00000000000
--- a/ace/CLASSIX/CLASSIX_OS.i
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/* ------------------------------------------------------------------------- */
-ACE_INLINE
-const KnUniqueId&
-ACE_CLASSIX_OS::null_KnUniqueId(void)
-{
- return null_KnUniqueId_;
-}
-
-
-ACE_INLINE
-ACE_Recursive_Thread_Mutex&
-ACE_CLASSIX_OS::get_lock_(void)
-{
- return lock_;
-}
-
-/* ------------------------------------------------------------------------- */
-ACE_INLINE
-ACE_CLASSIX_Msg::ACE_CLASSIX_Msg(void)
-{
- // Make a null-filled message
- this->msg_.flags = 0;
- this->msg_.bodySize = 0;
- this->msg_.bodyAddr = 0;
- this->msg_.annexAddr = 0;
- this->msg_.seqNum = 0;
-}
-
-ACE_INLINE
-ACE_CLASSIX_Msg::ACE_CLASSIX_Msg(const void* theBuf, int theLen)
-{
- this->msg_.flags = 0;
- this->msg_.annexAddr = 0;
- this->msg_.seqNum = 0;
-
- this->msg_.bodySize = theLen;
- this->msg_.bodyAddr = (VmAddr) theBuf;
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Msg::set(const void* theBuf, int theLen)
-{
- this->msg_.bodySize = theLen;
- this->msg_.bodyAddr = (VmAddr) theBuf;
-}
-
-ACE_INLINE
-KnMsgDesc*
-ACE_CLASSIX_Msg::get(void)
-{
- return &this->msg_;
-}
diff --git a/ace/CLASSIX/CLASSIX_Peer_SAP.cpp b/ace/CLASSIX/CLASSIX_Peer_SAP.cpp
deleted file mode 100644
index 9dbddf9c0b1..00000000000
--- a/ace/CLASSIX/CLASSIX_Peer_SAP.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Peer_SAP.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Peer_SAP.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Peer_SAP.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/CLASSIX/CLASSIX_Group_Stamp.h"
-/* ------------------------------------------------------------------------- */
-int
-ACE_CLASSIX_Peer_SAP::set(const ACE_CLASSIX_Port_Core& thePeer)
-{
- delete this->peer_addr_;
- this->peer_addr_ = new ACE_CLASSIX_Port (thePeer);
- ACE_ASSERT(this->peer_addr_);
- return 0;
-}
-
-int
-ACE_CLASSIX_Peer_SAP::set(const ACE_Addr& thePeer)
-{
- delete this->peer_addr_;
- this->peer_addr_ = new ACE_CLASSIX_Port (thePeer);
- ACE_ASSERT(this->peer_addr_);
- return 0;
-}
-
-int
-ACE_CLASSIX_Peer_SAP::set(const KnUniqueId& thePeer)
-{
- delete this->peer_addr_;
- this->peer_addr_ = new ACE_CLASSIX_Port (thePeer);
- ACE_ASSERT(this->peer_addr_);
- return 0;
-}
-
-int
-ACE_CLASSIX_Peer_SAP::set(const KnCap& thePeer)
-{
- delete this->peer_addr_;
- this->peer_addr_ = new ACE_CLASSIX_Group (thePeer);
- ACE_ASSERT(this->peer_addr_);
- return 0;
-}
-
-int
-ACE_CLASSIX_Peer_SAP::set(int theStamp)
-{
- delete this->peer_addr_;
- this->peer_addr_ = new ACE_CLASSIX_Group_Stamp (theStamp);
- ACE_ASSERT(this->peer_addr_);
- return 0;
-}
-
-void
-ACE_CLASSIX_Peer_SAP::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Peer_SAP...\n"));
- if (this->peer_addr_)
- this->peer_addr_->dump();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Peer_SAP.h b/ace/CLASSIX/CLASSIX_Peer_SAP.h
deleted file mode 100644
index 93e65996763..00000000000
--- a/ace/CLASSIX/CLASSIX_Peer_SAP.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Peer_SAP.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_PEER_SAP_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_PEER_SAP_H
-
-/* ------------------------------------------------------------------------- */
-#include <ace/CLASSIX/CLASSIX_SAP.h>
-#include <ace/CLASSIX/CLASSIX_Port_Default.h>
-
-class ACE_CLASSIX_Peer_SAP
- // = TITLE
- // Class implementing the peer SAP.
- //
- // = DESCRIPTION
- //
- // In CLASSIX, a local SAP is always a port, a peer SAP can be
- // a port or a group of port. This class is for peer SAP and
- // <ACE_SAP> is for local SAP.
- //
- // = SEE ALSO
- // <ACE_SAP>
-{
- public:
- // = INITIALIZATION
- ACE_CLASSIX_Peer_SAP(void);
- // Default constructor.
- // Needs to be initialized by a set() operation.
- ACE_CLASSIX_Peer_SAP(const ACE_CLASSIX_Port_Core&);/* peer port */
-
- ACE_CLASSIX_Peer_SAP(const ACE_CLASSIX_Port&);/* peer port address */
- ACE_CLASSIX_Peer_SAP(const ACE_Addr&); /* peer port address */
-
- ACE_CLASSIX_Peer_SAP(const KnUniqueId&); /* peer port address */
- ACE_CLASSIX_Peer_SAP(const KnCap&); /* peer group address */
- ACE_CLASSIX_Peer_SAP(int /* stamp */); /* stamp for peer group */
-
- ~ACE_CLASSIX_Peer_SAP(void);
-
- int set(const ACE_CLASSIX_Port_Core&); /* peer port */
-
- int set(const ACE_Addr&); /* peer port address */
-
- int set(const KnUniqueId&); /* peer port address */
- int set(const KnCap&); /* peer group address */
- int set(int /* stamp */); /* stamp for the peer group */
-
- // = ACCESS
- const ACE_CLASSIX_Addr* get_addr(void) const;
- // Returns peer's address, either a port or a group of ports
- int is_configured(void) const;
- // Returns 1, if address information is proper; Returns 0 otherwise
-
- // = CONTROL
-#if 0
- int control(u_int = K_BROADMODE);
- int control(u_int, /* mode */ int /* site */ );
- // Interface for CLASSIX' send mode
-#endif
- // = HELPER
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
- protected:
-#if 0
- virtual set_mode_(u_int = K_BROADMODE); /* theMode */
- // Sets the addressing mode with the current setting of coTarget
- virtual set_mode_(u_int, /* mode */ int /* site */);
- // Sets the addressing mode as well as the coTarget
-#endif
- ACE_CLASSIX_Addr *peer_addr_;
-
- private:
- // Disable copy constructor
- ACE_CLASSIX_Peer_SAP(ACE_CLASSIX_Peer_SAP const&);
- ACE_CLASSIX_Peer_SAP const& operator=(ACE_CLASSIX_Peer_SAP const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Peer_SAP.i"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_PEER_SAP_H */
diff --git a/ace/CLASSIX/CLASSIX_Peer_SAP.i b/ace/CLASSIX/CLASSIX_Peer_SAP.i
deleted file mode 100644
index a10bcfd12b5..00000000000
--- a/ace/CLASSIX/CLASSIX_Peer_SAP.i
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::ACE_CLASSIX_Peer_SAP(void)
- : peer_addr_ (0)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::ACE_CLASSIX_Peer_SAP(const ACE_CLASSIX_Port_Core&
- thePeer)
- : peer_addr_ (0)
-{
- this->set(thePeer);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::ACE_CLASSIX_Peer_SAP(const ACE_CLASSIX_Port& thePeer)
- : peer_addr_ (0)
-{
- this->set(thePeer);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::ACE_CLASSIX_Peer_SAP(const ACE_Addr& thePeer)
- : peer_addr_ (0)
-{
- this->set(thePeer);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::ACE_CLASSIX_Peer_SAP(const KnUniqueId& thePeer)
- : peer_addr_ (0)
-{
- this->set(thePeer);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::ACE_CLASSIX_Peer_SAP(int theStamp)
- : peer_addr_ (0)
-{
- this->set(theStamp);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::~ACE_CLASSIX_Peer_SAP(void)
-{
- delete this->peer_addr_;
-}
-
-
-ACE_INLINE
-const ACE_CLASSIX_Addr*
-ACE_CLASSIX_Peer_SAP::get_addr(void) const
-{
- return this->peer_addr_;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Peer_SAP::is_configured(void) const
-{
- if (this->peer_addr_)
- return this->peer_addr_->is_configured();
- else
- return 0;
-}
-
-#if 0
-ACE_INLINE
-int
-ACE_CLASSIX_Peer_SAP::control(u_int theMode)
-{
- return this->peer_addr_->set_mode_(theMode);
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Peer_SAP::control(u_int theMode, int theSite)
-{
- return this->set_mode_(theMode, theSite);
-}
-
-
-ACE_INLINE
-int
-ACE_CLASSIX_Peer_SAP::set_mode_(u_int)
-{
- return K_EFAULT;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Peer_SAP::set_mode_(u_int, int)
-{
- return K_EFAULT;
-}
-#endif
diff --git a/ace/CLASSIX/CLASSIX_Port.cpp b/ace/CLASSIX/CLASSIX_Port.cpp
deleted file mode 100644
index e819e1abcfd..00000000000
--- a/ace/CLASSIX/CLASSIX_Port.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Defines the ClassiX IPC address family address format.
-
-#define ACE_BUILD_DLL
-#include "ace/CLASSIX/CLASSIX_Port.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Port.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_Port)
-
-
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(void* thePort, int theLen)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- if (thePort && theLen == this->get_size())
- {
- ACE_CLASSIX_Port_Core::Addr *port =
- (ACE_CLASSIX_Port_Core::Addr*) thePort;
- this->addr_.handle = port->handle;
- this->addr_.id = port->id;
- }
- else
- {
- this->clear();
- }
-}
-
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(ACE_Addr const& theAddr)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- if (theAddr.get_size() == this->get_size() &&
- theAddr.get_type() == this->get_type())
- this->set_(theAddr);
- else
- this->clear();
-}
-
-void
-ACE_CLASSIX_Port::clear(void)
-{
- this->addr_.handle = ACE_CLASSIX_ADDR_UNKNOWN;
- this->addr_.id.uiHead = this->addr_.id.uiTail = 0;
-}
-
-int
-ACE_CLASSIX_Port::set_(const ACE_Addr& theAddr)
-{
- ACE_CLASSIX_Port_Core::Addr *src =
- ((ACE_CLASSIX_Port_Core::Addr*) theAddr.get_addr());
- this->addr_.id = src->id;
- this->addr_.handle = src->handle;
-
- return 0;
-}
-
-int
-ACE_CLASSIX_Port::set(const KnUniqueId& thePort)
-{
- int no = ::portLi((KnUniqueId*) &thePort);
-
- // update the port no only if the no is valid
- if (no < 0)
- // Assume this is a remote port
- no = ACE_INVALID_HANDLE;
-
- this->addr_.handle = no;
- this->addr_.id = thePort;
- return 0;
-}
-
-int
-ACE_CLASSIX_Port::set_handle(ACE_HANDLE thePort)
-{
- if (thePort == ACE_INVALID_HANDLE &&
- ::portUi(&this->addr_.id, thePort) < 0)
- return -1;
-
- this->addr_.handle = thePort;
- return 0;
-}
-
-void
-ACE_CLASSIX_Port::set_addr(void* theSrc, int theLen)
-{
- // Remove self owned first and Make sure no memory overflow
- if (theSrc && theLen > this->get_size())
- return;
-
- ACE_OS::memcpy ((void *) &this->addr_,
- (void *) theSrc, theLen);
-
-}
-
-ACE_CLASSIX_Port const&
-ACE_CLASSIX_Port::operator =(ACE_Addr const& theAddr)
-{
- if (theAddr.get_size() == this->get_size() &&
- theAddr.get_type() == this->get_type())
- {
-
- this->set_(theAddr);
- }
- return *this;
-}
-
-int
-ACE_CLASSIX_Port::addr_to_string (ACE_TCHAR s[], size_t) const
-{
- ACE_OS::sprintf (s, ACE_TEXT ("%d:%d"),
- ACE_TEXT_CHAR_TO_TCHAR (::agetId()),
- this->get_port_number ());
-}
-
-void
-ACE_CLASSIX_Port::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Port...\n"));
- ACE_Addr::dump();
- char s[100];
- ACE_OS::sprintf (s, "handle = %d;\tid head = %x, id tail = %x\n",
- this->get_handle(),
- this->get_id().uiHead, this->get_id().uiTail);
- ACE_DEBUG ((LM_DEBUG, "%s", s));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Port.h b/ace/CLASSIX/CLASSIX_Port.h
deleted file mode 100644
index 94402bf16ca..00000000000
--- a/ace/CLASSIX/CLASSIX_Port.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Port.h
-//
-// = AUTHOR
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_PORT_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_PORT_H
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/CLASSIX/CLASSIX_OS.h"
-#include "ace/CLASSIX/CLASSIX_Addr.h"
-
-
-class ACE_Export ACE_CLASSIX_Port : public ACE_CLASSIX_Addr
-{
- // = TITLE
- // Defines the ClassiX IPC Port address format for "ACE Socket" like
- // interfaces
- //
- // = DESCRIPTION
- // The port address contains two fields:
- // a global unique identifier and a local identifier.
- // The global unique identifier is also referred to as the port address
- // and the local identifier as the port no.
- //
- // = NOTE
- // In Chorus, one can always convert from a port unique identifier to
- // a port no and vice versa. This class is implemented based on this
- // premise.
- //
- // = SEE ALSO
- // <ACE_CLASSIX_PORT_Default>, <ACE_CLASSIX_Port_Core>
- //
-public:
- /* -----------------------------------------------------*/
- // = Initialization methods.
- ACE_CLASSIX_Port ();
- // Default constructor.
- // The address corresponds to the default port of the actor.
-
- ACE_CLASSIX_Port (const ACE_CLASSIX_Port &);
- // Copy constructor.
- ACE_CLASSIX_Port (const ACE_Addr &);
- // Copy constructor.
-
- ACE_CLASSIX_Port (const ACE_CLASSIX_Port_Core&);
- // Creates an <ACE_CLASSIX_Port> from <ACE_CLASSIX_Port_Core>
-
- ACE_CLASSIX_Port (const KnUniqueId& /* port_id */);
- // Creates an <ACE_CLASSIX_Port> from the given <port_id>
-
- ACE_CLASSIX_Port (ACE_HANDLE /* port_no */);
- // Creates an <ACE_CLASSIX_Port> from the given <port_no>
-
- ACE_CLASSIX_Port (void* /* location */, int /* length */);
- // Create an <ACE_CLASSIX_Port> from the address in raw format.
-
- ACE_CLASSIX_Port const& operator =(ACE_Addr const&);
-
-
- /* -----------------------------------------------------*/
- // = ACCESS
-
- virtual int addr_to_string (ACE_TCHAR addr[], size_t) const;
- // Transform the current <ACE_CLASSIX_Port> address into string format,
- // which is in the form "actor-id:port-number"
-
- int set (const KnUniqueId& /* port_id */);
- // Sets the <ACE_CLASSIX_Port_Basic> from a <port_id>
-
- virtual void set_addr (void * /* addr location */,
- int /* len */);
- // Set the address as the one pointed to by the location pointer.
- // The address contains <len> bytes.
- // Would prefer to return the status, but the base class uses void.
- int set_handle (ACE_HANDLE /* port_no */);
- // Sets the <addr_> field from a <port_no>
-
- virtual void *get_addr (void) const;
- // Returns a pointer to the address:,
- // <ACE_CLASSIX_Port_Core::ipp_port_addr>
- virtual const KnUniqueId& get_id (void) const;
- // Returns a reference to the port id.
- virtual ACE_HANDLE get_handle (void) const;
- // Returns the port no.
- int is_configured(void) const;
- // Returns 1, if address information is proper; Returns 0 otherwise
- virtual ACE_CLASSIX_Addr::Addr_Type is_type(void) const;
- // returns PORT type
-
- /* -----------------------------------------------------*/
- // = Control
- //
- virtual int enable(int /* receive priority */) const;
- // Puts the port into the set of monitored ports.
- virtual int disable(void) const;
- // Removes the port from the set of monitored ports.
- virtual void clear(void);
- // Remove port information
-
- /* -----------------------------------------------------*/
- // = Comparison
- //
- int operator == (const ACE_CLASSIX_Port &) const;
- // Compare two addresses for equality. The addresses are considered
- // equal if they have the same content in the KnUniqueId address structure.
-
- int operator != (const ACE_CLASSIX_Port &) const;
- // Compare two addresses for inequality.
-
- /* -----------------------------------------------------*/
- // = Helper
- //
- void dump (void) const;
- // Dump the state of an object.
-
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-private:
- /* -----------------------------------------------------*/
- // = Direct initialization methods (useful after the object has been
- // constructed).
- // Will create/reset the port only if the port no was <ACE_CLASSIX_ANY>
- // Returns 0 on success, -1 otherwise.
- //
-
- int set_ (const ACE_Addr &);
- // Sets the <ACE_CLASSIX_Port_Basic> from another <ACE_CLASSIX_Port_Basic>.
-
-
-
-private:
- ACE_CLASSIX_Port_Core::Addr addr_;
-};
-
-/* ------------------------------------------------------------------------- */
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Port.i"
-#endif /* __ACE_INLINE__ */
-
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_PORT_H */
diff --git a/ace/CLASSIX/CLASSIX_Port.i b/ace/CLASSIX/CLASSIX_Port.i
deleted file mode 100644
index 762f6ec5794..00000000000
--- a/ace/CLASSIX/CLASSIX_Port.i
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(void)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- this->set_handle(K_DEFAULTPORT);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(const ACE_CLASSIX_Port& theSrc)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- this->set_(theSrc);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(const KnUniqueId& thePort)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- this->set(thePort);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(ACE_HANDLE thePort)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- this->set_handle(thePort);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(const ACE_CLASSIX_Port_Core& thePort)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- this->addr_.handle = thePort.get_handle();
- this->addr_.id = thePort.get_id();
-}
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_Port::get_handle(void) const
-{
- return this->addr_.handle;
-}
-
-ACE_INLINE
-const KnUniqueId&
-ACE_CLASSIX_Port::get_id(void) const
-{
- return this->addr_.id;
-}
-
-ACE_INLINE
-void *
-ACE_CLASSIX_Port::get_addr(void) const
-{
- return (void*) &this->addr_;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Port::is_configured(void) const
-{
- return (this->addr_.handle != ACE_CLASSIX_ADDR_UNKNOWN);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Addr::Addr_Type
-ACE_CLASSIX_Port::is_type(void) const
-{
- return ACE_CLASSIX_Addr::PORT;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Port::enable(int thePriority) const
-{
- if (ACE_Reactor::instance()->notify() == 0)
- return ::portEnable(K_MYACTOR, this->get_handle(), thePriority);
- else
- return -1;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Port::disable(void) const
-{
- if (ACE_Reactor::instance()->notify() == 0)
- return ::portDisable(K_MYACTOR, this->get_handle());
- else
- return -1;
-}
-
-// Compare two addresses for equality.
-ACE_INLINE
-int
-ACE_CLASSIX_Port::operator==(const ACE_CLASSIX_Port &theSrc) const
-{
- return
- this->ACE_Addr::operator == (theSrc) &&
- this->addr_.id.uiHead == theSrc.addr_.id.uiHead &&
- this->addr_.id.uiTail == theSrc.addr_.id.uiTail &&
- this->addr_.handle == theSrc.addr_.handle;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Port::operator != (const ACE_CLASSIX_Port &sap) const
-{
- return !((*this) == sap);
-}
diff --git a/ace/CLASSIX/CLASSIX_Port_Core.cpp b/ace/CLASSIX/CLASSIX_Port_Core.cpp
deleted file mode 100644
index 4d1903939b9..00000000000
--- a/ace/CLASSIX/CLASSIX_Port_Core.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Port_Core.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Port_Core.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Port_Core.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Synch_T.h"
-#include "ace/CLASSIX/CLASSIX_OS.h"
-/* ------------------------------------------------------------------------- */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_Port_Core)
-
-ACE_CLASSIX_Port_Core::ACE_CLASSIX_Port_Core(void)
-{
- if ((this->addr_.handle = ::portCreate(K_MYACTOR, &this->addr_.id)) < 0)
- this->clear_config_();
- else
- {
- this->set_config_();
- }
-}
-
-ACE_CLASSIX_Port_Core::~ACE_CLASSIX_Port_Core(void)
-{
- if (this->is_configured())
- if (int result = ::portDelete(K_MYACTOR, this->get_handle()) < 0)
- ACE_ERROR((LM_DEBUG,
- "ACE_CLASSIX_Port_Core::~ACE_CLASSIX_PORT_CORE()- "
- "failed to delete port, error = %d", result));
-}
-
-void
-ACE_CLASSIX_Port_Core::clear_config_(void)
-{
- this->config_ = 0;
- this->addr_.id.uiHead = this->addr_.id.uiTail = 0;
- this->addr_.handle = ACE_INVALID_HANDLE;
-}
-
-
-void
-ACE_CLASSIX_Port_Core::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Port_Core...\n"));
- char s[100];
- if (!this->is_configured())
- ACE_OS::sprintf(s, "Port has not been allocated\n");
- else
- ACE_OS::sprintf (s, "handle = %d;\tid head = %x, id tail = %x\n",
- this->get_handle(),
- this->get_id().uiHead, this->get_id().uiTail);
- ACE_DEBUG ((LM_DEBUG, "%s", s));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Port_Core.h b/ace/CLASSIX/CLASSIX_Port_Core.h
deleted file mode 100644
index beef0356c63..00000000000
--- a/ace/CLASSIX/CLASSIX_Port_Core.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Port_Core.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_PORT_CORE_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_PORT_CORE_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include <ipc/chIpc.h>
-
-
-/* ------------------------------------------------------------------------- */
-class ACE_Export ACE_CLASSIX_Port_Core
-{
- // = TITLE
- // Defines interfaces for allocation/deallocation of a Chorus
- // IPC port
- //
- // = DESCRIPTION
- // This class allocates a port in the constructor and deallocates it in
- // the destructor.
-
-public:
- /* -----------------------------------------------------*/
- // = Initialization methods.
- ACE_CLASSIX_Port_Core (void);
- // Allocates a port from the OS
- //
- virtual ~ACE_CLASSIX_Port_Core (void);
- // Deallocates the port from the OS.
-
- virtual const KnUniqueId& get_id (void) const;
- // Returns a reference to the port id.
- virtual ACE_HANDLE get_handle (void) const;
- // Returns the port no(used as an ACE_HANDLE)
- virtual void* get_addr(void) const;
- // Returns a pointer to the location containing the raw
- // address of the port.
- int is_configured(void) const;
- // Returns 1, if the port has been successfully created.
-
-#if 0
- int enable(int /* priority */) const;
- int disable (int) const;
- // Puts/Removes the port into/from the set of monitored ports.
-#endif
- /* -----------------------------------------------------*/
- // = Helper
- //
- void dump (void) const;
- // Dump the state of an object.
-
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
- struct Addr
- {
- KnUniqueId id; // port address: unique identifier
- ACE_HANDLE handle;// port no: local identifier.
-
- };
-
-protected:
- void clear_config_();
- // Indicates that port has been allocated.
- void set_config_();
-
- ACE_CLASSIX_Port_Core::Addr addr_;
- int config_; // Sets to 1, if configured;
- // 0 otherwise
-private:
- // Disallow copy constructor/assignment
- ACE_CLASSIX_Port_Core(ACE_CLASSIX_Port_Core const&);
- ACE_CLASSIX_Port_Core const& operator =(ACE_CLASSIX_Port_Core const&);
-};
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Port_Core.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_PORT_CORE_H */
diff --git a/ace/CLASSIX/CLASSIX_Port_Core.i b/ace/CLASSIX/CLASSIX_Port_Core.i
deleted file mode 100644
index 7fd3694d8de..00000000000
--- a/ace/CLASSIX/CLASSIX_Port_Core.i
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-void
-ACE_CLASSIX_Port_Core::set_config_(void)
-{
- this->config_ = 1;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Port_Core::is_configured(void) const
-{
- return this->config_ == 1;
-}
-
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_Port_Core::get_handle(void) const
-{
- return this->addr_.handle;
-}
-
-ACE_INLINE
-const KnUniqueId&
-ACE_CLASSIX_Port_Core::get_id(void) const
-{
- return this->addr_.id;
-}
-
-ACE_INLINE
-void*
-ACE_CLASSIX_Port_Core::get_addr(void) const
-{
- return (void*) (&this->addr_);
-}
diff --git a/ace/CLASSIX/CLASSIX_Port_Default.cpp b/ace/CLASSIX/CLASSIX_Port_Default.cpp
deleted file mode 100644
index e18d55971e2..00000000000
--- a/ace/CLASSIX/CLASSIX_Port_Default.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Defines the ClassiX IPC address family address format.
-
-#define ACE_BUILD_DLL
-#include "ace/CLASSIX/CLASSIX_Port_Default.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Port_Default.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_Port_Default)
-
-/* ------------------------------------------------------------------------- */
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Singleton<ACE_CLASSIX_Port_Default,
- ACE_SYNCH_NULL_MUTEX>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiation ACE_Singleton<ACE_CLASSIX_Port_Default,
- ACE_SYNCH_NULL_MUTEX>
-
-#endif
diff --git a/ace/CLASSIX/CLASSIX_Port_Default.h b/ace/CLASSIX/CLASSIX_Port_Default.h
deleted file mode 100644
index ce237daceb3..00000000000
--- a/ace/CLASSIX/CLASSIX_Port_Default.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Port_Default.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_PORT_DEFAULT_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_PORT_DEFAULT_H
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/CLASSIX/CLASSIX_Port.h"
-
-class ACE_CLASSIX_Port_Default : public ACE_CLASSIX_Port
-{
- // = TITLE
- // Implements the address wrapper of an actor's default port.
- //
- // = DESCRIPTION
- // This corresponds to the address of an actor's default port
- // which does not change
- // in the life time of the actor. Therefore the address information
- // in this class can not be modified once it is created.
- //
- // Each actor has one and only one default port. Therefore an instance
- // of this class is a singleton. The protected constructor and the
- // friendship with the ACE_Singleton preventys this class from being
- // instantiated by other classes.
- //
- // = NOTE
- //
- // = SEE ALSO
- // <ACE_CLASSIX_PORT>
- //
- friend class ACE_Singleton<ACE_CLASSIX_Port_Default, ACE_SYNCH_NULL_MUTEX>;
-
- /* -----------------------------------------------------*/
- // = Access
- virtual void set_addr(void*, int);
- ACE_CLASSIX_Port const& operator =(ACE_CLASSIX_Port const&);
- ACE_CLASSIX_Port const& operator =(ACE_Addr const&);
- // Does nothing...The default port's address cannot be changed
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-protected:
- /* -----------------------------------------------------*/
- // = Initialization methods.
- ACE_CLASSIX_Port_Default ();
- // Wrapper for the Actor's default port
-};
-
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Port_Default.i"
-#endif /* __ACE_INLINE__ */
-
-/* ------------------------------------------------------------------------- */
-typedef ACE_Singleton<ACE_CLASSIX_Port_Default, ACE_SYNCH_NULL_MUTEX>
- ACE_CLASSIX_DEFAULT_PORT;
-/* ------------------------------------------------------------------------- */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_PORT_DEFAULT_H */
diff --git a/ace/CLASSIX/CLASSIX_Port_Default.i b/ace/CLASSIX/CLASSIX_Port_Default.i
deleted file mode 100644
index fac497bace0..00000000000
--- a/ace/CLASSIX/CLASSIX_Port_Default.i
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Port_Default::ACE_CLASSIX_Port_Default(void)
- : ACE_CLASSIX_Port()
-{
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Port_Default::set_addr(void*, int)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Port const&
-ACE_CLASSIX_Port_Default::operator =(ACE_CLASSIX_Port const&)
-{
- return *this;
-}
-
-ACE_INLINE
-ACE_CLASSIX_Port const&
-ACE_CLASSIX_Port_Default::operator =(ACE_Addr const&)
-{
- return *this;
-}
diff --git a/ace/CLASSIX/CLASSIX_SAP.cpp b/ace/CLASSIX/CLASSIX_SAP.cpp
deleted file mode 100644
index 55a9c8183a0..00000000000
--- a/ace/CLASSIX/CLASSIX_SAP.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_SAP.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_SAP.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_SAP.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_SAP)
-/* ------------------------------------------------------------------------- */
-int
-ACE_CLASSIX_SAP::get_addr(ACE_Addr& theAddr) const
-{
- if (theAddr.get_size() < this->local_addr_.get_size() ||
- theAddr.get_type() != this->local_addr_.get_type())
- {
- return -1;
- }
- else
- {
- theAddr.set_addr(this->local_addr_.get_addr(),
- this->local_addr_.get_size());
- return 0;
- }
-}
-
-void
-ACE_CLASSIX_SAP::set_addr(const ACE_Addr& theAddr)
-{
- this->local_addr_.set_addr(theAddr.get_addr(), theAddr.get_size());
-}
-
-
-void
-ACE_CLASSIX_SAP::set_addr(const ACE_CLASSIX_Port_Core& thePort)
-{
- this->local_addr_.set_addr(thePort.get_addr(),
- sizeof (ACE_CLASSIX_Port_Core::Addr));
-}
-
-int
-ACE_CLASSIX_SAP::set(const KnUniqueId& theId)
-{
- return this->local_addr_.set(theId);
-}
-
-void
-ACE_CLASSIX_SAP::set_handle(ACE_HANDLE theHandle)
-{
- if (this->local_addr_.set_handle(theHandle) == -1)
- ACE_DEBUG((LM_DEBUG, "ACE_CLASSIX_SAP::set_handle()::"
- "Handle invalid\n"));
-}
-
-int
-ACE_CLASSIX_SAP::set(const ACE_Addr& theAddr)
-{
- this->set_addr(theAddr);
- return 0;
-}
-
-int
-ACE_CLASSIX_SAP::open(const ACE_Addr& theAddr)
-{
- this->set_addr(theAddr);
- return 0;
-}
-
-
-int
-ACE_CLASSIX_SAP::set(const ACE_CLASSIX_Port_Core& thePort)
-{
- this->set_addr(thePort);
- return 0;
-}
-
-
-int
-ACE_CLASSIX_SAP::open(const ACE_CLASSIX_Port_Core* thePort)
-{
- if (thePort)
- {
- this->set_addr(ACE_CLASSIX_Port(*thePort));
- return 0;
- }
- else
- return -1;
-}
-
-int
-ACE_CLASSIX_SAP::close(void)
-{
- // Disable receiving
- this->unselectable();
- //*** Do something to flush out potential messages on the local port
- // e.g. have a separte thread call ipcReceive on each disabled SAP.
-
- this->local_addr_.clear();
- return 0;
-}
-
-int
-ACE_CLASSIX_SAP::selectable(int thePriority)
-{
- if (!this->enabled_)
- {
- int result = this->local_addr_.enable(thePriority);
- if (result == 0)
- this->enabled_ = 1;
- return result;
- }
- else
- return 0;
-}
-
-int
-ACE_CLASSIX_SAP::unselectable(int)
-{
- if (this->enabled_)
- {
- int result = this->local_addr_.disable();
- if (result == 0)
- this->enabled_ = 0;
- return result;
- }
- else
- return 0;
-}
-
-
-void
-ACE_CLASSIX_SAP::dump(void) const
-{
- ACE_DEBUG ((LM_INFO, "ACE_CLASSIX_SAP...\n"));
-
- this->local_addr_.dump();
-
- ACE_DEBUG ((LM_INFO, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_SAP.h b/ace/CLASSIX/CLASSIX_SAP.h
deleted file mode 100644
index c8c5df0e18e..00000000000
--- a/ace/CLASSIX/CLASSIX_SAP.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_SAP.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_SAP_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_SAP_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/CLASSIX/CLASSIX_Port.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_CLASSIX_SAP
- // = TITLE
- // Class implementing the SAP over a Chorus port.
- //
- // = DESCRIPTION
- // A SAP has a port which is referred to as the local port.
- // This class provides methods to manipulate this port.
- //
- // The SAP will always put the port in DISABLED state on exit.
- //
- // In CLASSIX, a local SAP is always a port, a peer SAP can be
- // a port or a group of port. This class is for local SAP and
- // <ACE_Peer_SAP> is for peer SAP.
- //
- // = SEE ALSO
- // <ACE_Peer_SAP>
- //
-{
- public:
- enum
- {
- DEFAULT_PRIORITY = 10
- };
-
- // = INITIALIZATION
- ACE_CLASSIX_SAP(void);
- // Creates a SAP, using the address of the actor's default port.
- ACE_CLASSIX_SAP(const ACE_Addr&);
- // Creates a SAP, using the specified address as the local address.
- virtual ~ACE_CLASSIX_SAP(void);
-
- // = ACCESS
- void set_addr(const ACE_Addr&);
- void set_addr(const ACE_CLASSIX_Port_Core&);
- // Sets the <local_addr_> based on the given address information.
- // The caller should make sure that the original address can be removed!
- int set(const ACE_Addr&);
- // Returns 0, if successful; returns -1, otherwise
- // same as set_addr(const ACE_Addr&);
- int set(const ACE_CLASSIX_Port_Core&);
- // Returns 0, if successful; returns -1, otherwise
- // same as void set_addr(const ACE_CLASSIX_Port_Core&);
- int set (const KnUniqueId&);
- // Returns 0, if successful; returns -1, otherwise
-
- void set_handle (ACE_HANDLE /* port_no */);
- // Sets the port address according to <port_no>
-
- int get_addr(ACE_Addr& /* return_addr */) const;
- // Returns address information to the supplied location.
- // if successful, return 0 and the return_addr parameter contains the
- // address info.
- // Otherwise, return -1
- const ACE_CLASSIX_Port& get_addr(void) const;
- // Returns a reference to the address information
- ACE_HANDLE get_handle(void) const;
- // Get handles that the Reactor uses
- virtual int is_configured(void) const;
- // Returns 1, if address information is proper; Returns 0 otherwise
- int is_selectable(void) const;
- // Retruns 1, if the local SAP is enabled.
-
- // = CONTROL
- int selectable(int = ACE_CLASSIX_SAP::DEFAULT_PRIORITY /* priority */);
- // Puts the SAP in the ENABLED state so that data the port associated
- // with its local addess can be monitored by the CLASSIX's Reactor.
-
- int unselectable(int = 0 /* not used */);
- // Makes the SAP DISABLED and therefore the SAP can not be monitored
- // by the CLASSIX's Reactor..
- int open(const ACE_Addr&);
- int open(const ACE_CLASSIX_Port_Core*);
- // Sets the address information according to the supplied port
- // Returns 0 on success; returns -1 otherwise
- int close(void);
- // removes the port information
- // Returns 0 on success (always); returns -1 otherwise
-
- void clear(void);
- // erase local port info
-
-#if 0
- int control(u_int = K_BROADMODE);
- int control(u_int, /* mode */ int /* site */ );
- // Interface for CLASSIX' send mode
-#endif
-
-
- // = HELPER
- void dump(void) const;
- // dump the state of an object
-
- ACE_ALLOC_HOOK_DECLARE;
- // declare the dynamic allocation hooks
-
- protected:
-#if 0
- virtual set_mode_(u_int = K_BROADMODE); /* theMode */
- // Sets the addressing mode with the current setting of coTarget
- virtual set_mode_(u_int, /* mode */ int /* site */);
- // Sets the addressing mode as well as the coTarget
-#endif
- // Disable copy constructor/assignment
- ACE_CLASSIX_SAP(ACE_CLASSIX_SAP const&);
- ACE_CLASSIX_SAP const& operator=(ACE_CLASSIX_SAP const&);
-
- ACE_CLASSIX_Port local_addr_;
- int enabled_; // 1 if enabled, 0 if disabled (Default)
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_SAP.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_SAP_H */
diff --git a/ace/CLASSIX/CLASSIX_SAP.i b/ace/CLASSIX/CLASSIX_SAP.i
deleted file mode 100644
index 105570b363b..00000000000
--- a/ace/CLASSIX/CLASSIX_SAP.i
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_SAP::ACE_CLASSIX_SAP(void)
- :local_addr_ (),
- enabled_ (0)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_SAP::ACE_CLASSIX_SAP(const ACE_Addr& theAddr)
- :local_addr_ (theAddr.get_addr(), theAddr.get_size()),
- enabled_ (0)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_SAP::~ACE_CLASSIX_SAP(void)
-{
- this->unselectable();
-}
-
-ACE_INLINE
-const ACE_CLASSIX_Port&
-ACE_CLASSIX_SAP::get_addr(void) const
-{
- return this->local_addr_;
-}
-
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_SAP::get_handle(void) const
-{
- return this->local_addr_.get_handle();
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_SAP::is_configured(void) const
-{
- return this->local_addr_.is_configured();
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_SAP::is_selectable(void) const
-{
- return this->enabled_ == 1;
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_SAP::clear(void)
-{
- this->local_addr_.clear();
-}
diff --git a/ace/CLASSIX/CLASSIX_Select_Reactor.cpp b/ace/CLASSIX/CLASSIX_Select_Reactor.cpp
deleted file mode 100644
index 960e76358aa..00000000000
--- a/ace/CLASSIX/CLASSIX_Select_Reactor.cpp
+++ /dev/null
@@ -1,337 +0,0 @@
-// $Id$
-/*
-// ============================================================================
-//
-// = LIBRARY
-// ACE
-//
-// = FILENAME
-// CLASSIX_Reactor.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-*/
-#include "ace/CLASSIX/CLASSIX_Select_Reactor.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Select_Reactor.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/CLASSIX/CLASSIX_OS.h"
-/* ------------------------------------------------------------------------- */
-int
-ACE_CLASSIX_Select_Reactor::wait_for_multiple_events
-(ACE_Select_Reactor_Handle_Set &theDispatchSet,
- ACE_Time_Value *max_wait_time)
-{
-
- ACE_Time_Value timer_buf (0);
- ACE_Time_Value *this_timeout = &timer_buf;
-
- int number_of_active_handles = this->any_ready (theDispatchSet);
-
- // If there are any bits enabled in the <ready_set_> then we'll
- // handle those first, otherwise we'll block in select().
-
- if (number_of_active_handles == 0)
- {
- int port = K_ANYENABLED;
- do
- {
- // Monitor all enabled ports
- // CLASSIX uses -1 rathre than 0 for blocked receive
- int msec = -1;
- if (this->timer_queue_->calculate_timeout (max_wait_time,
- this_timeout) != 0)
- {
- if ((msec = this_timeout->msec()) == 0)
- {
- msec = -1;
- this_timeout = 0;
- }
- }
- else
- this_timeout = 0;
-
- ACE_CLASSIX_Msg rmsg(0, 0);
- port = K_ANYENABLED;
- ssize_t size = ::ipcReceive(rmsg.get(), &port, msec);
-#if 0
- ACE_DEBUG((LM_DEBUG,
- "(%t)ACE_CLASSIX_Select_Reactor::"
- "return from ipcReceive():ret = %d"
- ", port = %d, timeout = %d\n",
- size, port, msec));
-#endif
- if (size >= 0)
- {
- // Is 0 valid ???
- // Keep info about which handler this message is for and
- // its size.
- if (this->set_current_info_(port, size) == 0)
- {
- theDispatchSet.rd_mask_.set_bit(port);
- number_of_active_handles = 1;
- }
- else
- {
- ACE_DEBUG((LM_DEBUG,
- "Synchronization problem in Reactor???\n"));
- number_of_active_handles = -1;
- errno = K_EFAULT;
- }
- }
- else
- {
- // make the current message information invalid
- this->set_current_info_(ACE_INVALID_HANDLE, 0);
- if ((errno = size) == K_ETIMEOUT)
- number_of_active_handles = 0;
- else
- number_of_active_handles = -1;
- }
- }
- while (number_of_active_handles == -1 &&
- this->handle_error_ (port) > 0);
- }
- // Return the number of events to dispatch.
- return number_of_active_handles;
-}
-
-int
-ACE_CLASSIX_Select_Reactor::set_current_info_(ACE_HANDLE thePort,
- size_t theSize)
-{
- ACE_MT(ACE_GUARD_RETURN (ACE_SELECT_REACTOR_MUTEX, ace_mon,
- this->token_, -1));
-
- this->current_handle_ = thePort;
- this->current_msg_size_ = theSize;
- return 0;
-}
-
-int
-ACE_CLASSIX_Select_Reactor::current_info(ACE_HANDLE thePort,
- size_t& theSize)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_MUTEX,
- ace_mon, this->token_, -1));
-
- if (this->current_handle_ == thePort)
- {
- theSize = this->current_msg_size_;
- this->current_msg_size_ = 0;
- this->current_handle_ = ACE_INVALID_HANDLE;
- return 0;
- }
- else
- {
- theSize = 0;
- return -1;
- }
-}
-
-int
-ACE_CLASSIX_Select_Reactor::handle_error_ (int thePort)
-{
-
- // The thread has been aborted
- if (errno == K_EABORT)
- return this->restart_;
- // No port or a (Chorus) handler is attached to the port
- else if (errno == K_ENOPORT || errno == K_EINVAL)
- return this->check_handles_ (thePort);
- else
- return -1;
-}
-
-int
-ACE_CLASSIX_Select_Reactor::check_handles_ (int thePort)
-{
- ACE_TRACE ("ACE_CLASSIX_Select_Reactor::check_handles_");
- if (thePort == K_ANYENABLED)
- return -1;
- else
- // Don't know how to check if a Chorus port has been disabled or deleted.
- return 0;
-}
-
-/* ------------------------------------------------------------------------- */
-void
-ACE_CLASSIX_Select_Reactor_Notify::dump (void) const
-{
- ACE_TRACE ("ACE_CLASSIX_Select_Reactor_Notify::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_CLASSIX_select_reactor_ = %x"),
- this->select_reactor_));
- this->notification_sap_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-int
-ACE_CLASSIX_Select_Reactor_Notify::open (ACE_Reactor_Impl *theReactor,
- ACE_Timer_Queue*,
- int the_disable_notify_pipe)
-{
- if (the_disable_notify_pipe == 0)
- {
- this->select_reactor_ = ACE_dynamic_cast
- (ACE_CLASSIX_Select_Reactor *, theReactor);
-
- if (this->notification_sap_.open (&this->notification_port_) != 0 ||
- this->notification_sap_.selectable() != 0)
- return -1;
-
- return this->select_reactor_->register_handler
- (this->notification_sap_.get_handle (),
- this,
- ACE_Event_Handler::READ_MASK);
- }
- else
- {
- this->select_reactor_ = 0;
- }
-}
-
-ssize_t
-ACE_CLASSIX_Select_Reactor_Notify::notify (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask,
- ACE_Time_Value *timeout)
-{
- ACE_Notification_Buffer buffer (eh, mask);
- ACE_CLASSIX_Msg msg(&buffer, sizeof (buffer));
- KnIpcDest dest;
- dest.target = this->notification_sap_.get_addr().get_id();
-
- ssize_t n = ipcSend (msg.get(), K_DEFAULTPORT, &dest);
- if (n < 0)
- ACE_DEBUG((LM_DEBUG, "ipcSend() error = %d\n", n));
- return n == 0 ? 0 : -1;
-}
-
-// Handles pending threads (if any) that are waiting to unblock the
-// Select_Reactor.
-
-int
-ACE_CLASSIX_Select_Reactor_Notify::dispatch_notifications (
- int & number_of_active_handles,
- const ACE_Handle_Set &rd_mask)
-{
- ACE_TRACE ("(%t) ACE_CLASSIX_Select_Reactor_Notify::dispatch_notifications");
-
- ACE_HANDLE read_handle =
- this->notification_sap_.get_handle ();
-
- if (rd_mask.is_set (read_handle))
- {
- number_of_active_handles--;
- return this->handle_input (read_handle);
- }
- else
- return 0;
-}
-
-// Special trick to unblock select() when updates occur in somewhere
-// other than the main ACE_Select_Reactor thread. All we do is write data to
-// a pipe that the ACE_Select_Reactor is listening on. Thanks to Paul
-// Stephenson for suggesting this approach.
-
-int
-ACE_CLASSIX_Select_Reactor_Notify::handle_input (ACE_HANDLE handle)
-{
- // Precondition: this->select_reactor_.token_.current_owner () ==
- // ACE_Thread::self ();
-
- if (handle != this->notification_sap_.get_handle())
- {
- ACE_DEBUG((LM_DEBUG, "ACE_CLASSIX_Select_Reator_Notify::"
- "handle_input() Not my handle\n"));
- return 0;
- }
-
- ssize_t n = 0;
- size_t n1= 0;
-
- int number_dispatched = 0;
-
- ACE_Notification_Buffer buffer;
- ACE_CLASSIX_Msg rmsg(&buffer, sizeof (buffer));
-
- if (this->select_reactor_->current_info(handle, n1) == -1 ||
- n1 != sizeof buffer)
- {
- // I'm not quite sure what to do at this point. It's
- // probably best just to return -1.
- ACE_DEBUG((LM_DEBUG,
- "ACE_CLASSIX_Select_Reactor_Notify:: "
- "read not expected by the reactor\n", n1));
- return -1;
- }
-
- while ((n = ::ipcGetData(rmsg.get())) > 0)
- {
- if (n != sizeof buffer)
- {
- // I'm not sure quite what to do at this point. It's
- // probably best just to return -1.
- ACE_DEBUG((LM_DEBUG,
- "ACE_CLASSIX_Select_Reactor_Notify::ipcGetDAta() "
- "incorrect read(%d)\n", n));
- return -1;
- }
-
- // If eh == 0 then another thread is unblocking the ACE_Select_Reactor
- // to update the ACE_Select_Reactor's internal structures. Otherwise,
- // we need to dispatch the appropriate handle_* method on the
- // ACE_Event_Handler pointer we've been passed.
- if (buffer.eh_ != 0)
- {
- int result = 0;
-
- switch (buffer.mask_)
- {
- case ACE_Event_Handler::READ_MASK:
- case ACE_Event_Handler::ACCEPT_MASK:
- result = buffer.eh_->handle_input (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::WRITE_MASK:
- result = buffer.eh_->handle_output (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::EXCEPT_MASK:
- result = buffer.eh_->handle_exception (ACE_INVALID_HANDLE);
- break;
- default:
- // Should we bail out if we get an invalid mask?
- ACE_ERROR ((LM_ERROR, ACE_TEXT ("invalid mask = %d\n"), buffer.mask_));
- }
- if (result == -1)
- buffer.eh_->handle_close (ACE_INVALID_HANDLE,
- ACE_Event_Handler::EXCEPT_MASK);
- }
-
- number_dispatched++;
-
- // Bail out if we've reached the <notify_threshold_>. Note that
- // by default <notify_threshold_> is -1, so we'll loop until all
- // the notifications in the pipe have been dispatched.
- if (number_dispatched == this->select_reactor_->max_notify_iterations())
- break;
- }
-
- // Reassign number_dispatched to -1 if things have gone seriously
- // wrong.
- if (n < 0)
- number_dispatched = -1;
-
-
- // Enqueue ourselves into the list of waiting threads. When we
- // reacquire the token we'll be off and running again with ownership
- // of the token. The postcondition of this call is that
- // this->select_reactor_.token_.current_owner () == ACE_Thread::self ();
- this->select_reactor_->renew();
- return number_dispatched;
-}
-/* ------------------------------------------------------------------------- */
diff --git a/ace/CLASSIX/CLASSIX_Select_Reactor.h b/ace/CLASSIX/CLASSIX_Select_Reactor.h
deleted file mode 100644
index 98063a60c1f..00000000000
--- a/ace/CLASSIX/CLASSIX_Select_Reactor.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/*
-// ============================================================================
-//
-// = LIBRARY
-// ACE
-//
-// = FILENAME
-// CLASSIX_Reactor.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-*/
-
-#ifndef ACE_CLASSIX_REACTOR_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_REACTOR_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/Timer_Queue.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Select_Reactor.h"
-#include "ace/Message_Block.h"
-#include "ace/CLASSIX/CLASSIX_SAP.h"
-
-class ACE_CLASSIX_Select_Reactor;
-
-class ACE_Export ACE_CLASSIX_Select_Reactor_Notify :
- public ACE_Reactor_Notify
-{
- // = TITLE
- // Unblock the <ACE_CLASSIX_Select_Reactor> from its event loop.
- //
- // = DESCRIPTION
- // This replaces <ACE_Select_Reactor_Notify> class.
- // Instead of using pipe, this class uses an Chorus IPC port to
- // trigger the unblock event.
- //
-public:
- // = Initialization and termination methods.
- ACE_CLASSIX_Select_Reactor_Notify(void);
- ~ACE_CLASSIX_Select_Reactor_Notify(void);
-
- virtual int open (ACE_Reactor_Impl *,
- ACE_Timer_Queue * = 0,
- int = 0 /* dusable_notify_pip */);
- // Enables the notification port and register it with the reactor
- virtual int close (void);
- // Disables the notification port
-
- int dispatch_notifications (int &number_of_active_handles,
- const ACE_Handle_Set &rd_mask);
- // Handles pending threads (if any) that are waiting to unblock the
- // Select_Reactor.
-
- ssize_t notify (ACE_Event_Handler * = 0,
- ACE_Reactor_Mask = ACE_Event_Handler::EXCEPT_MASK,
- ACE_Time_Value * = 0);
- // Called by a thread when it wants to unblock the Select_Reactor.
- // This wakeups the <ACE_Select_Reactor> if currently blocked in
- // select()/poll(). Pass over both the <Event_Handler> *and* the
- // <mask> to allow the caller to dictate which <Event_Handler>
- // method the <Select_Reactor> will invoke. The <ACE_Time_Value>
- // indicates how long to blocking trying to notify the
- // <Select_Reactor>. If <timeout> == 0, the caller will block until
- // action is possible, else will wait until the relative time
- // specified in *<timeout> elapses).
-
- virtual int handle_input (ACE_HANDLE handle);
- // Called back by the Select_Reactor when a thread wants to unblock us.
-
- virtual void max_notify_iterations (int);
- // Set the maximum number of times that the
- // <ACE_CLASSIX_Reactor_Notify::handle_input> method will iterate
- // Always 1.
-
- virtual int max_notify_iterations (void);
- // Get the maximum number of times that the
- // <ACE_Select_Reactor_Notify::handle_input> method will iterate.
- // Always 1
-
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-private:
- ACE_CLASSIX_Select_Reactor *select_reactor_;
- // Keep a back pointer to the <ACE_Select_Reactor>. If this value
- // if NULL then the <ACE_Select_Reactor> has been initialized with
- // <disable_notify_pipe>.
- ACE_CLASSIX_Port_Core notification_port_; // CLASSIX' IPC port
- ACE_CLASSIX_SAP notification_sap_;
- // The HANDLE that the Select_Reactor is listening on and
- // the HANDLE that threads wanting the attention of the
- // Select_Reactor will write t are the same.
- // It can be seen that the notification port is implicitly connected to the
- // port from where the notification is written. In many cases, it will be
- // the actor's default port.
-};
-
-class ACE_CLASSIX_Select_Reactor : public ACE_Select_Reactor
- // = TITLE
- // Implementing a Reactor for monitoring incoming data
- //
- // = DESCRIPTION
- // This class redefines the wait_for_events() method of
- // <ACE_Select_Reactor> class.
- //
- // The wait_for_events() method uses ipcReceive() to monitor
- // all ENABLED ports for incoming messages. The ipcReceive() is
- // set up such that it will find out the size of the message but will
- // not read the message. The Chorus OS provides an ipcGetData()
- // to read the message that has just been detected on the same
- // thread.
- // Once a message is detected on a particular
- // port, the reactor will invoke the port handler's
- // handle_input() method on the same thread. It is important that
- // handle_input() shall immediately retrieve(use ipcGetData())
- // the message on the same
- // thread and it shall not hold up this thread in the handle_input()
- // routine for too long. This will allow the Reactor to respond to
- // events more quickly.
- //
- // = NOTE
- // Since chorus does not allow ipcReceive to monitor a subset of
- // ENABLED ports. One cannot have two ACE_CLASSIX_Select_Reactors
- // in one actor.
- //
-{
- public:
-
-
- // = CURRENT MESSAGE
- // The following message should be called in the handler's
- // handle_input() routine.
- // The handle_input() routine should not hold the reactor for too long.
- virtual int current_info(ACE_HANDLE /* port */,
- size_t& /* msg size */);
- // Retruns the current messageage to the caleer if the supplied
- // handle id is the same as the <current_handle_>
- // Returns 0, if <msg size> constains the size of the message
- // that the handler shall read.
- // Returns -1, if the caller is not the expected handler.
-
- protected:
- // = INITIALIZATION
- ACE_CLASSIX_Select_Reactor (ACE_Timer_Queue * = 0);
- // Initializes <ACE_CLASSIX_Select__Reactor> with the handler
- // repository of the default size.
-
- ACE_CLASSIX_Select_Reactor (size_t size,
- int restart = 0,
- ACE_Timer_Queue * = 0);
- // Initializes <ACE_CLASSIX_Select_Reactor> with the handler repository of
- // size <size>.
-
- // multiplexer
- virtual int wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &,
- ACE_Time_Value *);
- // Wait for events to occur.
-
- virtual int set_current_info_(ACE_HANDLE /* handle */,
- size_t /* size of data */);
- // record the handler and the size of the message that the handler shall
- // read next.
-
-
- // ACE_Recursive_Thread_Mutex lock_current_;
- // lock for data relating to the current message.
- // use token lock
-
- size_t current_msg_size_;
- // size of the message that has just been detected.
-
- ACE_HANDLE current_handle_;
- // handler id of the current address.
-
- friend class ACE_CLASSIX_Select_Reactor_Notify;
- friend class ACE_CLASSIX_OS;
- // for constructors
-
- private:
- int handle_error_(int /* port handle */);
- // Takes corrective action when errors occur.
- int check_handles_(int /* port handle */);
- // Makes sure the handler is valid.
-
- ACE_CLASSIX_Select_Reactor(ACE_CLASSIX_Select_Reactor const&);
- ACE_CLASSIX_Select_Reactor const& operator=(ACE_CLASSIX_Select_Reactor const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Select_Reactor.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_REACTOR_H */
diff --git a/ace/CLASSIX/CLASSIX_Select_Reactor.i b/ace/CLASSIX/CLASSIX_Select_Reactor.i
deleted file mode 100644
index af4e995cb87..00000000000
--- a/ace/CLASSIX/CLASSIX_Select_Reactor.i
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-//
-// CLASSIX/Reactor.i
-/* ------------------------------------------------------------------------- */
-
-/* ------------------------------------------------------------------------- */
-ACE_INLINE
-ACE_CLASSIX_Select_Reactor_Notify::ACE_CLASSIX_Select_Reactor_Notify(void)
- : ACE_Reactor_Notify()
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Select_Reactor_Notify::~ACE_CLASSIX_Select_Reactor_Notify(void)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Select_Reactor::ACE_CLASSIX_Select_Reactor(
- ACE_Timer_Queue *theTimeQ)
- : ACE_Select_Reactor(0, theTimeQ, 0,
- new ACE_CLASSIX_Select_Reactor_Notify()),
- current_msg_size_ (0),
- current_handle_ (ACE_INVALID_HANDLE)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Select_Reactor::ACE_CLASSIX_Select_Reactor (
- size_t theSize,
- int theRs,
- ACE_Timer_Queue *theTimeQ)
- : ACE_Select_Reactor (theSize, theRs, 0, theTimeQ, 0,
- new ACE_CLASSIX_Select_Reactor_Notify() ),
- current_msg_size_ (0),
- current_handle_ (ACE_INVALID_HANDLE)
-{
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Select_Reactor_Notify::close (void)
-{
- // deregister handle ???
- return this->notification_sap_.close ();
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Select_Reactor_Notify::max_notify_iterations (int iterations)
-{
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Select_Reactor_Notify::max_notify_iterations (void)
-{
- return 1;
-}
-
-
-/* ------------------------------------------------------------------------- */
diff --git a/ace/CLASSIX/CLASSIX_Stream.cpp b/ace/CLASSIX/CLASSIX_Stream.cpp
deleted file mode 100644
index 5d1ba095853..00000000000
--- a/ace/CLASSIX/CLASSIX_Stream.cpp
+++ /dev/null
@@ -1,362 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Stream.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Stream.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Stream.i"
-#endif /* __ACE_INLINE__ */
-/* ------------------------------------------------------------------------- */
-ACE_CLASSIX_Stream::ACE_CLASSIX_Stream(void)
- : local_sap_ (),
- local_sap_closed_ (0),
- local_port_ (0),
- peer_sap_ (),
- peer_sap_closed_ (1)
-// dest_site_ (-1)
-{
-}
-
-ACE_CLASSIX_Stream::ACE_CLASSIX_Stream
- (const ACE_CLASSIX_Port_Core& thePeer,
- const ACE_CLASSIX_Port& theLocal)
- : local_sap_ (theLocal),
- local_sap_closed_ (0),
- local_port_ (0),
- peer_sap_ (thePeer),
- peer_sap_closed_ (1)
-// dest_site_ (-1)
-{
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
-}
-
-ACE_CLASSIX_Stream::ACE_CLASSIX_Stream(const ACE_CLASSIX_Port& thePeer,
- const ACE_CLASSIX_Port& theLocal)
- : local_sap_ (theLocal),
- local_sap_closed_(0),
- local_port_ (0),
- peer_sap_ (thePeer),
- peer_sap_closed_ (1)
-// dest_site_ (-1)
-{
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
-}
-
-
-ACE_CLASSIX_Stream::ACE_CLASSIX_Stream(const KnUniqueId& thePeer,
- const ACE_CLASSIX_Port& theLocal)
- : local_sap_ (theLocal),
- local_sap_closed_(0),
- local_port_ (0),
- peer_sap_ (thePeer),
- peer_sap_closed_ (1)
-// dest_site_ (-1)
-{
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
-}
-
-int
-ACE_CLASSIX_Stream::set_local_port(ACE_CLASSIX_Port_Core* thePort)
-{
- delete this->local_port_;
- if (this->local_sap_.open(thePort) == 0)
- {
- this->local_port_ = thePort;
- return 0;
- }
- else
- {
- this->local_port_ = 0;
- this->local_sap_.clear();
- return -1;
- }
-}
-
-int
-ACE_CLASSIX_Stream::open(void)
-{
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
- this->open_writer();
-
- if (!this->local_sap().is_configured() ||
- this->local_sap().get_handle() ==
- ACE_CLASSIX_DEFAULT_PORT::instance()->get_handle())
- {
- delete this->local_port_;
- ACE_NEW_RETURN(this->local_port_, ACE_CLASSIX_Port_Core(), -1);
- return this->local_sap_.open(this->local_port_);
- }
-
- return 0;
-}
-
-int
-ACE_CLASSIX_Stream::open(const ACE_Addr& theAddr)
-{
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
- this->open_writer();
-
- if (!this->local_sap().is_configured() ||
- this->local_sap().get_handle() ==
- ACE_CLASSIX_DEFAULT_PORT::instance()->get_handle())
- {
- delete this->local_port_;
- if (theAddr.get_size() != this->local_sap().get_addr().get_size())
- return -1;
- return this->local_sap_.open(theAddr);
- }
- return 0;
-}
-
-int
-ACE_CLASSIX_Stream::close_writer(void)
-{
- if (this->peer_sap_closed_ == 0)
- {
- if (this->send_n(0, 0) < 0)
- ACE_DEBUG((LM_DEBUG, "failed to send a zero byte msg\n"));
- this->peer_sap_closed_ = 1;
- }
- return 0;
-}
-
-void
-ACE_CLASSIX_Stream::open_writer(void)
-{
- this->peer_sap_closed_ = 0;
-}
-
-int
-ACE_CLASSIX_Stream::close(void)
-{
- this->close_writer();
-
- this->local_sap_.close();
- if (this->local_port_)
- {
- delete this->local_port_;
- this->local_port_ = 0;
- }
- this->dest_.target = ACE_CLASSIX_OS::null_KnUniqueId();
- return 0;
-}
-
-void
-ACE_CLASSIX_Stream::set_target_()
-{
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
-}
-
-int
-ACE_CLASSIX_Stream::set_peer_sap(const ACE_Addr& theAddr)
-{
- if (this->peer_sap_.set(theAddr) == 0)
- {
- this->set_target_();
- return 0;
- }
- return -1;
-}
-
-int
-ACE_CLASSIX_Stream::set_peer_sap(const ACE_CLASSIX_Port_Core& theAddr)
-{
- if (this->peer_sap_.set(theAddr) == 0)
- {
- this->set_target_();
- return 0;
- }
- return -1;
-}
-
-int
-ACE_CLASSIX_Stream::set_peer_sap(const KnUniqueId& theAddr)
-{
- if (this->peer_sap_.set(theAddr) == 0)
- {
- this->set_target_();
- return 0;
- }
- return -1;
-}
-
-int
-ACE_CLASSIX_Stream::set_peer_sap(const KnCap& theAddr)
-{
- if (this->peer_sap_.set(theAddr) == 0)
- {
- this->set_target_();
- return 0;
- }
- return -1;
-}
-
-ssize_t
-ACE_CLASSIX_Stream::send_n(const void* theBuf, size_t theLen, int theFlags)
-{
- if (!this->is_writer_closed())
- {
- this->set_mode_(theFlags);
- return this->send_n(theBuf, theLen);
- }
- else
- return 0;
-}
-
-ssize_t
-ACE_CLASSIX_Stream::send_n(const void* theBuf, size_t theLen) const
-{
- if (!this->is_writer_closed())
- {
- ACE_CLASSIX_Msg msg(theBuf, theLen);
- int result = 0;
- if ((result = ::ipcSend((KnMsgDesc*) msg.get(),
- this->local_sap().get_handle(),
- (KnIpcDest*) &this->dest_)) == 0)
- return theLen;
- else
- {
- errno = ACE_CLASSIX_OS::convert_io_error(result);
- return -1;
- }
- }
- else
- {
- return 0;
- }
-}
-
-ssize_t
-ACE_CLASSIX_Stream::reply(const void* theBuf, size_t theLen) const
-{
- if (!this->is_writer_closed())
- {
- ACE_CLASSIX_Msg msg(theBuf, theLen);
- if (int result = ::ipcReply((KnMsgDesc*) msg.get()) == 0)
- return theLen;
- else
- {
- errno = ACE_CLASSIX_OS::convert_io_error(result);
- return -1;
- }
- }
- else
- return 0;
-}
-
-ssize_t
-ACE_CLASSIX_Stream::ipcRecv(void* theBuf, size_t theLen,
- int theFlag, ACE_Time_Value* theTimeout) const
-{
- if (!this->is_reader_closed())
- {
- // In chorus environment, a negative value means block
- // until recv is possible
- int timeout = theTimeout == 0 ? -1 : theTimeout->msec();
- if (timeout == 0)
- timeout = -1;
-
- if (theFlag & MSG_PEEK)
- {
- theBuf = 0;
- theLen = 0;
- }
-
- ACE_CLASSIX_Msg rmsg(theBuf, theLen);
- int handle = this->local_sap().get_handle();
- int result = ::ipcReceive((KnMsgDesc*) rmsg.get(), &handle,
- timeout);
- if (result < 0)
- {
- errno = ACE_CLASSIX_OS::convert_io_error(result);
- return -1;
- }
- else
- return result;
- }
- else
- {
- errno = ENOTCONN;
- return -1;
- }
-}
-
-ssize_t
-ACE_CLASSIX_Stream::ipcRecv_n(void* theBuf, size_t theLen,
- int theFlag, ACE_Time_Value* theTimeout) const
-{
- // Timeout value applies to each around of receive.
- // ....Should be adjusted after each round!
- int len = 0;
- void *next = theBuf;
- size_t more = theLen;
- for (int n = 0;
- more > 0;
- len += n, next += n, more -=n)
- {
- if ((n = this->ipcRecv(next, more, theFlag, theTimeout)) == -1)
- break;
- }
- return len;
-}
-
-ssize_t
-ACE_CLASSIX_Stream::recv(void* theBuf, int theLen) const
-{
- if (!this->is_reader_closed())
- {
- ACE_CLASSIX_Msg rmsg(theBuf, theLen);
- int result = ::ipcGetData(rmsg.get());
- if (result >= 0)
- return result;
- else if (result == K_EINVAL)
- errno = EWOULDBLOCK;
- else
- errno = EFAULT;
-
- return -1;
- }
- else
- return 0;
-}
-
-
-
-void
-ACE_CLASSIX_Stream::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Stream...\n"));
- ACE_DEBUG ((LM_DEBUG, "...local sap(%s)\n",
- this->is_writer_closed() == 1 ? "closed" : "opened"));
- if (this->local_port_)
- ACE_DEBUG ((LM_DEBUG, "\towns the local port(%x)\n",
- this->local_port_));
- this->local_sap().dump();
-
- ACE_DEBUG ((LM_DEBUG, "...Peer sap(%s & %s)\n",
- this->is_reader_closed() == 1 ? "closed" : "opened",
- this->is_selectable() ? "enabled" : "disabled"));
- this->peer_sap().dump();
- ACE_DEBUG((LM_DEBUG, "Dest- Target\n head = %x tail = %x\n",
- this->dest_.target.uiHead,
- this->dest_.target.uiTail
- /* this->dest_site_ */));
- ACE_DEBUG((LM_DEBUG, "Dest- coTarget\n head = %x tail = %x\n",
- this->dest_.coTarget.uiHead,
- this->dest_.coTarget.uiTail
- /* this->dest_site_ */));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Stream.h b/ace/CLASSIX/CLASSIX_Stream.h
deleted file mode 100644
index 0ebced26877..00000000000
--- a/ace/CLASSIX/CLASSIX_Stream.h
+++ /dev/null
@@ -1,272 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Stream.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_STREAM_H
-#include "ace/pre.h"
-#define ACE_CLASSIX_STREAM_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/CLASSIX/CLASSIX_SAP.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/CLASSIX/CLASSIX_Peer_SAP.h"
-#include "ace/CLASSIX/CLASSIX_Port_Default.h"
-
-class ACE_CLASSIX_Stream
- // = TITLE
- // Provides the stream interface for CLASSIX IPC communications.
- //
- // = DESCRIPTION
- // This classes provides a stream wrapper over CLASSIX'
- // IPC. It is designed to be an alternative to Stream type of
- // communication in the UNIX AF_INET environment.
- //
- // To the user, the stream is connection-oriented. The stream
- // is implemented on top of IPC, it is connectionless and its
- // reliability is as good as what the raw IPC can offer.
- //
- // Since CLASSIX IPC is not intended to go across wide area network,
- // it can be seen as an
- // alternative to AF_INET's connection oriented stream, even though
- // the CLASSIX IPC is connectionless.
- //
- // This class contains a local sap, peer sap and data holding
- // delivery mode information.
- //
- // When a stream is created, the peer SAP information must be provided.
- // The local SAP information may be provided in the constructor or
- // open(). The local SAP information given in open() overrides the
- // existing one. If the local SAP address is not given at all, it will
- // allocate a port and use it as the local SAP.
- //
-{
- public:
- ACE_CLASSIX_Stream(void);
- // Default constructor, does not setup anything
- ACE_CLASSIX_Stream(const ACE_CLASSIX_Port_Core&, /* remote port */
- const ACE_CLASSIX_Port& =
- *ACE_CLASSIX_DEFAULT_PORT::instance()); /* local address */
-
- ACE_CLASSIX_Stream(const ACE_CLASSIX_Port&, /* remote port address */
- const ACE_CLASSIX_Port& =
- *ACE_CLASSIX_DEFAULT_PORT::instance());/* local address */
-
- ACE_CLASSIX_Stream(const KnUniqueId&, /* remote port address */
- const ACE_CLASSIX_Port& =
- *ACE_CLASSIX_DEFAULT_PORT::instance());/* local address */
-
- // = IO
- // Returns -1, if fault has occured during receive. errno contains
- // the error condition.
- // Returns no of bytes received/sent, otherwise.
- //
- virtual ssize_t send_n (const void *, /* buf */
- size_t, /* n */
- int /* flags */);
- // Sends exactly n bytes (keep trying until n bytes are sent)
- virtual ssize_t send_n (const void *, /* buf */ size_t /* n */) const;
- // Sends n bytes(keep trying until n bytes are sent)
- // Uses the current addressing mode
- virtual ssize_t send (const void *, /* buf */
- size_t, /* n */
- int /* flags */);
- // Sends n bytes. Same as send_n(buf, n, flag)
- virtual ssize_t send (const void *, /* buf */
- size_t /* n */) const;
- // Sends n bytes. same as send_n(buf, n).
- virtual ssize_t reply (const void *, /* buf */
- size_t /* n */) const;
- // Sends n bytes to the sender of the cureent thread's current message.
-
- ssize_t ipcRecv (void *, /* buffer */
- size_t, /* length */
- int = 0, /* flag: 0 or MSG_PEEK */
- ACE_Time_Value* = 0) const; /* timeout */
- // Recv an <n> byte buffer
- // Wait up to <timeout> amount of time to receive up to <n> bytes
- // into <buf> from <handle> (uses the <recv> call). If <recv> times
- // out a -1 is returned with <errno == ETIMEOUT>. If it succeeds the
- // number of bytes received is returned.
- // If <timeout> == 0, the caller
- // will block until action is possible, else will wait until the
- // relative time specified in *<timeout> elapses).
- ssize_t ipcRecv_n (void *, /* buffer */
- size_t, /* length */
- int = 0, /* flag: 0 or MSG_PEEK */
- ACE_Time_Value* = 0) const; /* timeout */
- // Continue until receives n bytes of data or an error has occurred.
- // Retruns the no of bytes actually received.
- // If it is less than expected, errno contains error info.
-
- ssize_t peek(ACE_Time_Value* = 0 /* timeout */) const;
- // It is the same as recv(0, 0, MSG_PEEK, timeout)
- // This must be followd by get_data() in order to read the peeked message
- ssize_t recv(void* /*buf */, int /* len */) const;
- // Gets data which have been peeked
- ssize_t recv_n(void* /*buf */, int /* len */) const;
- // Gets data which have been peeked
-
- // = ACCESS
- virtual ACE_HANDLE get_handle (void) const;
- // virtual void set_handle (ACE_HANDLE);
- virtual void set_handle(ACE_HANDLE);
- // set the local port's address according to the supplied handle
-
- const ACE_CLASSIX_SAP& local_sap(void) const;
- // Returns read-only local sap
- const ACE_CLASSIX_Peer_SAP& peer_sap(void) const;
- // Returns read-only peer sap
- int get_remote_addr (ACE_Addr & /* dest */) const;
- // Returns 0, if the remote address has been setup, else -1.
- // The <dest> parameter is not changed.
- // This method is here for compatability with SOCK_Stream.
- // Since the remote addr may be a port or a group and since the
- // address formats are different between a port and a group, the caller
- // cannot provide an appropriate buffer for recording the address. The
- // <dest> parameter is therefore not used.
-
-
- const ACE_CLASSIX_Port& local_addr(void) const;
- // Returns local address in <ACE_CLASSIX_Port> format
-
- int is_selectable(void) const;
- // Retruns 1, if the local SAP is enabled.
- int is_writer_closed(void) const;
- // Retruns 1, if writer side is closed.
- int is_reader_closed(void) const;
- // Retruns 1, if reader side is closed.
-
-
- // = CONTROL
- int set_peer_sap(const ACE_Addr&);
- // Returns 0, if successful; returns -1, otherwise
- // same as set_addr(const ACE_Addr&);
- int set_peer_sap(const ACE_CLASSIX_Port_Core&);
- // Returns 0, if successful; returns -1, otherwise
- // same as void set_addr(const ACE_CLASSIX_Port_Core&);
- int set_peer_sap (const KnUniqueId&);
- // Returns 0, if successful; returns -1, otherwise
- int set_peer_sap (const KnCap&);
- // Returns 0, if successful; returns -1, otherwise
-
- virtual int enable(int) const;
- virtual int disable(int) const;
- // These two methods do nothing. They are here to maintain the same
- // interface as other type of Stream class, e.g. ACE_SOCK_Stream
-
- int selectable(int = ACE_CLASSIX_SAP::DEFAULT_PRIORITY);
- int unselectable(void);
- // Enables/Disables the local port to be monitored (by a CLASSIX reactor)
- // Default = DISABLED
- virtual void open_writer(void);
- virtual int close_writer(void);
- // Closes down the writer
- // Returns -1, if it fails; returns 0, otherwise
- // Subclass can overwrite this with sophisticated mechanism, such as
- // exchange protocol information with the peer.
- virtual int close_reader(void);
- // Closes down the writer
- // Returns -1, if it fails; returns 0, otherwise
- // Subclass can overwrite this with sophisticated mechanism, such as
- // exchange protocol information with the peer.
-
- virtual int open(void);
- // for local SAP...
- // Creates a port and uses it as a SAP.
- // A port can be created if the local_sap is not configured or
- // it is configured and the local_sap uses the actor's default port.
- // Returns -1, if it fails; returns 0, otherwise
- virtual int open(const ACE_Addr&);
- // for local SAP...
- // Uses the supplied port information for the local SAP.
- virtual int close(void);
- // for local SAP...
- // Deletes the optional local port and clears the local SAP infomration.
-
- // = OPTIONS
- int control(u_int = K_BROADMODE);
- int control(u_int, /* mode */ int /* site */ );
- // Interface for CLASSIX' send mode
-
- // = HELPER
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
- protected:
- friend class ACE_CLASSIX_CLD_Connector;
- friend class ACE_CLASSIX_CO_Connector;
- friend class ACE_CLASSIX_CO_Acceptor;
- ACE_CLASSIX_SAP& get_local_sap(void);
- // Returns local sap
- ACE_CLASSIX_Peer_SAP& get_peer_sap(void);
- // Returns peer sap
- int set_local_port(ACE_CLASSIX_Port_Core*);
- // Uses the supplied port as the local port and assumes the ownership
- // of the port. The existing local port, if any, will be deleted.
- // Returns 0, if it is successful.
- // Returns -1, otherwise. The setting of the original local port
- // will be erased.
-
- void set_target_(void);
- // set the delivery target structure using the existing peer information
-
- virtual int set_mode_(u_int = K_BROADMODE); /* theMode */
- // Sets the addressing mode with the current setting of coTarget
- virtual int set_mode_(u_int, /* mode */ int /* site */);
- // Sets the addressing mode as well as the coTarget
-
- ACE_CLASSIX_SAP local_sap_;
- int local_sap_closed_;
- // 0 if it's not closed(default),
- // 1 if it's closed.
- ACE_CLASSIX_Port_Core *local_port_;
- // if non-zero, it will be
- // deleted on exit.
-
- ACE_CLASSIX_Peer_SAP peer_sap_;
- int peer_sap_closed_;
- // 0 if it's not closed(default),
- // 1 if it's closed.
-
- // Mode applied destination address
- // Can be changed by control()/set_mode_()
- // Mode is applicable in IPC classes other than the Stream class.
- // It is here since it is the destination format used by ipcSend.
-
- // with/without additional site information
- // int dest_site_;
- KnIpcDest dest_;
-
- private:
- // Disable copy constructor
- ACE_CLASSIX_Stream(ACE_CLASSIX_Stream const&);
- ACE_CLASSIX_Stream const& operator=(ACE_CLASSIX_Stream const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Stream.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CLASSIX_Stream_H */
diff --git a/ace/CLASSIX/CLASSIX_Stream.i b/ace/CLASSIX/CLASSIX_Stream.i
deleted file mode 100644
index a876a3d78c9..00000000000
--- a/ace/CLASSIX/CLASSIX_Stream.i
+++ /dev/null
@@ -1,182 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Stream::~ACE_CLASSIX_Stream(void)
-{
- this->close();
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::control(u_int theMode)
-{
- return this->set_mode_(theMode);
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::control(u_int theMode, int theSite)
-{
- return this->set_mode_(theMode, theSite);
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::set_mode_(u_int theMode)
-{
- return 0;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::set_mode_(u_int theMode, int theSite)
-{
- return 0;
-}
-
-ACE_INLINE
-ssize_t
-ACE_CLASSIX_Stream::peek(ACE_Time_Value* theTimeout) const
-{
- return this->ipcRecv(0, 0, MSG_PEEK, theTimeout);
-}
-
-ACE_INLINE
-ssize_t
-ACE_CLASSIX_Stream::send(const void *theBuf, size_t theLen) const
-{
- return this->send_n(theBuf, theLen);
-}
-
-ACE_INLINE
-ssize_t
-ACE_CLASSIX_Stream::send(const void *theBuf,size_t theLen, int theFlag)
-{
- return this->send_n(theBuf, theLen, theFlag);
-}
-
-ACE_INLINE
-ssize_t
-ACE_CLASSIX_Stream::recv_n(void* theBuf, int theLen) const
-{
- return this->recv_n(theBuf, theLen);
-}
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_Stream::get_handle(void) const
-{
- return this->local_sap_.get_handle();
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Stream::set_handle(ACE_HANDLE theHandle)
-{
- this->local_sap_.set_handle(theHandle);
-}
-
-ACE_INLINE
-const ACE_CLASSIX_SAP&
-ACE_CLASSIX_Stream::local_sap(void) const
-{
- return this->local_sap_;
-}
-
-ACE_INLINE
-const ACE_CLASSIX_Peer_SAP&
-ACE_CLASSIX_Stream::peer_sap(void) const
-{
- return this->peer_sap_;
-}
-
-ACE_INLINE
-ACE_CLASSIX_SAP&
-ACE_CLASSIX_Stream::get_local_sap(void)
-{
- return this->local_sap_;
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP&
-ACE_CLASSIX_Stream::get_peer_sap(void)
-{
- return this->peer_sap_;
-}
-
-ACE_INLINE
-const ACE_CLASSIX_Port&
-ACE_CLASSIX_Stream::local_addr(void) const
-{
- return this->local_sap_.get_addr();
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::selectable(int thePriority)
-{
- return this->local_sap_.selectable(thePriority);
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::unselectable(void)
-{
- return this->local_sap_.unselectable();
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::is_selectable(void) const
-{
- return this->local_sap_.is_selectable();
-}
-
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::is_writer_closed(void) const
-{
-
- return (this->peer_sap_closed_ == 1);
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::close_reader(void)
-{
- this->local_sap_closed_ = 1;
- return 0;
-}
-
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::is_reader_closed(void) const
-{
-
- return this->local_sap_closed_ == 1;
-}
-
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::enable(int) const
-{
- return 0;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::disable(int) const
-{
- return 0;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::get_remote_addr(ACE_Addr&) const
-{
- return this->peer_sap_closed_ == 0;
-}
diff --git a/ace/CLASSIX/Makefile b/ace/CLASSIX/Makefile
deleted file mode 100644
index a207ce3da0e..00000000000
--- a/ace/CLASSIX/Makefile
+++ /dev/null
@@ -1,544 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the entire ACE release
-#----------------------------------------------------------------------------
-
-MAKEFILE = Makefile
-LIB = libCLASSIX.a
-
-FILES = \
- CLASSIX_OS \
- CLASSIX_Select_Reactor \
- CLASSIX_Addr \
- CLASSIX_Port_Core \
- CLASSIX_Port \
- CLASSIX_Port_Default \
- CLASSIX_Group \
- CLASSIX_Group_Stamp \
- CLASSIX_Group_Dynamic \
- CLASSIX_SAP \
- CLASSIX_Peer_SAP \
- CLASSIX_Stream \
- CLASSIX_Dgram_Mcast \
- CLASSIX_CO_Acceptor \
- CLASSIX_CO_Connector \
- CLASSIX_CLD_Connector
-
-DEFS = $(addsuffix .h,$(FILES)) Svc_Conf_Tokens.h
-DEFS += $(addsuffix .i,$(FILES))
-LSRC = $(addsuffix .cpp,$(FILES))
-
-BUILD = $(VLIB)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-#### Disable installs in this ($(ACE_ROOT)/ace) directory, because this
-#### is the (default) destination of installs anyways. And this will prevent
-#### creation of a link from the ACE library to itself when the build of
-#### the ACE library fails.
-INSTALL =
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#### Setting ACELIB to null allows it to be used for building shared libraries,
-#### including libACE.$(SOEXT,) on certain platforms.
-ACELIB =
-
-
-ifeq ($(SUPPRESS_DASH_G),1)
-#### Build this target without -g on some platforms.
- $(COMPILE-NO_DASH_G.cc) -o $@ $<
-endif # SUPPRESS_DASH_G
-
-ifeq ($(CHORUS),1)
- ifeq ($(CC),$(GHS_DIR)/build -driver ch68)
- #### Build this target without -g, because it causes ghs 1.8.8 to core
- #### dump.
- $(VDIR)Select_Reactor.o .obj/Select_Reactor.so .shobj/Select_Reactor.o .shobj/Select_Reactor.so:
- $(COMPILE-NO_DASH_G.cc) -o $@ $<
- endif # CC
-endif # CHORUS
-
-ifneq ($(GHS),)
- ifeq ($(CPU),86)
- $(VDIR)gethrtime.$(OBJEXT):
- make $@ ghs=0
- endif # 86
-endif # GHS
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/CLASSIX_OS.o .obj/CLASSIX_OS.so .shobj/CLASSIX_OS.o .shobj/CLASSIX_OS.so: CLASSIX_OS.cpp \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_OS.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Select_Reactor.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Token.h \
- $(ACE_ROOT)/ace/Token.i \
- $(ACE_ROOT)/ace/Pipe.h \
- $(ACE_ROOT)/ace/Pipe.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Select_Reactor.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port_Core.h \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port_Core.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_OS.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Select_Reactor.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_SAP.h \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port.h \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Addr.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_SAP.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Select_Reactor.i
-.obj/CLASSIX_Select_Reactor.o .obj/CLASSIX_Select_Reactor.so .shobj/CLASSIX_Select_Reactor.o .shobj/CLASSIX_Select_Reactor.so: CLASSIX_Select_Reactor.cpp \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Select_Reactor.h \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Select_Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Token.h \
- $(ACE_ROOT)/ace/Token.i \
- $(ACE_ROOT)/ace/Pipe.h \
- $(ACE_ROOT)/ace/Pipe.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Select_Reactor.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_SAP.h \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_OS.h \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port_Core.h \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port_Core.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_OS.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Addr.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_SAP.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Select_Reactor.i
-.obj/CLASSIX_Addr.o .obj/CLASSIX_Addr.so .shobj/CLASSIX_Addr.o .shobj/CLASSIX_Addr.so: CLASSIX_Addr.cpp \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Addr.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Addr.i
-.obj/CLASSIX_Port_Core.o .obj/CLASSIX_Port_Core.so .shobj/CLASSIX_Port_Core.o .shobj/CLASSIX_Port_Core.so: CLASSIX_Port_Core.cpp \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port_Core.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port_Core.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_OS.h \
- $(ACE_ROOT)/ace/Select_Reactor.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Token.h \
- $(ACE_ROOT)/ace/Token.i \
- $(ACE_ROOT)/ace/Pipe.h \
- $(ACE_ROOT)/ace/Pipe.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Select_Reactor.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_OS.i
-.obj/CLASSIX_Port.o .obj/CLASSIX_Port.so .shobj/CLASSIX_Port.o .shobj/CLASSIX_Port.so: CLASSIX_Port.cpp \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_OS.h \
- $(ACE_ROOT)/ace/Select_Reactor.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Token.h \
- $(ACE_ROOT)/ace/Token.i \
- $(ACE_ROOT)/ace/Pipe.h \
- $(ACE_ROOT)/ace/Pipe.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Select_Reactor.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port_Core.h \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port_Core.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_OS.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Addr.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port.i
-.obj/CLASSIX_Port_Default.o .obj/CLASSIX_Port_Default.so .shobj/CLASSIX_Port_Default.o .shobj/CLASSIX_Port_Default.so: CLASSIX_Port_Default.cpp \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port_Default.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port.h \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_OS.h \
- $(ACE_ROOT)/ace/Select_Reactor.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Token.h \
- $(ACE_ROOT)/ace/Token.i \
- $(ACE_ROOT)/ace/Pipe.h \
- $(ACE_ROOT)/ace/Pipe.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Select_Reactor.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port_Core.h \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port_Core.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_OS.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Addr.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port_Default.i
-.obj/CLASSIX_Group.o .obj/CLASSIX_Group.so .shobj/CLASSIX_Group.o .shobj/CLASSIX_Group.so: CLASSIX_Group.cpp \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Group.h \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Addr.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Addr.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port.h \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Port.i \
- $(ACE_ROOT)/ace/CLASSIX/CLASSIX_Group.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ace/CORBA_macros.h b/ace/CORBA_macros.h
deleted file mode 100644
index 7e76e2fa941..00000000000
--- a/ace/CORBA_macros.h
+++ /dev/null
@@ -1,547 +0,0 @@
-// -*- C++ -*-
-
-// ============================================================================
-/**
- * @file CORBA_macros.h
- *
- * $Id$
- *
- * Writing code that is portable between platforms with or without
- * native C++ exceptions is hard. The following macros offer some
- * help on this task, mostly oriented to making the ORB code and the
- * IDL generated code portable.
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- * @author Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
- * @author Carlos O'Ryan <coryan@uci.edu>, et al.
- */
-// ============================================================================
-
-// Macros for handling CORBA exceptions.
-
-#ifndef ACE_CORBA_MACROS_H
-#define ACE_CORBA_MACROS_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-# if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-# endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#define ACE_ENV_POLLUTE_NAMES
-
-#include "ace/Exception_Macros.h"
-
-// If you wish to you use these macros for emulating exceptions on
-// platforms which lack native exception support, you need to do the
-// following:
-// 1. Define a class Exception. You can name it as you please. This class
-// should be at the root of the inheritance hierarchy of all the
-// exceptions used in your application. It should define at a minimum
-// the following pure virtual methods:
-// a) _downcast () - Which allows narrowing of the base exception type to a
-// derived type.
-// b) _raise() - Which throws an exception of type Exception.
-//
-// Classes which derive from these should implement these operations.
-//
-// 2. Define a class Environment. You can name it as you please. This class
-// is an exception holder. This class is always on the stack. It should
-// support at a minimum the following methods:
-// a) exception() - Which returns the Exception held in the current
-// Environment.
-// b) exception (Exception* foo) - Which replaces/sets the Exception
-// held in the current Environment with foo.
-// b) clear() - Which resets a particular instance of Environment.
-// c) A copy constructor and an assignment operator.
-//
-// Note that the above description assumes that you use the following
-// macros only within a particular domain. For example, if your
-// application has to interoperate across domains, then you need to define
-// an exception adapter to translate exceptions from one domain to
-// exceptions in the other. Please refer to Stroustrup's book on how to do
-// this. If your use case is this complex, you would be better off with
-// going with native exceptions rather than emulated exceptions, though
-// the macros should still work if you defined your adapter class as
-// ACE_EXCEPTION_TYPE.
-
-
-// The following macros assume that an environment variable is passed
-// in/out of each function that can throw an exception. The type of the
-// environment variable is defined by ACE_ENV_TYPE.
-
-#if !defined (ACE_ENV_TYPE)
-# define ACE_ENV_TYPE CORBA::Environment
-#endif /* ACE_ENV_TYPE */
-
-// The name of the variable is defined by ACE_TRY_ENV. Below is the name
-// that we use by default. If you wish to change it you can redefine
-// ACE_TRY_ENV to change the default name. Also ACE_ADOPT_ENV allows the
-// use of non-standard name within a scope.
-
-#if !defined (ACE_TRY_ENV)
-# define ACE_TRY_ENV _ACE_CORBA_Environment_variable
-#endif /* ACE_TRY_ENV */
-
-// The base type of Exception from which all the other exception types are
-// derived. You can set this to any type as you please. By default, it is
-// set to CORBA::Exception.
-
-#if !defined (ACE_EXCEPTION_TYPE)
-# define ACE_EXCEPTION_TYPE CORBA::Exception
-#endif /* ACE_EXCEPTION_TYPE */
-
-// This method is used to get the default value of the Environment
-// variable. In the case of TAO, this variable is part of the TSS ORB
-// resources and the method TAO_default_environment() returns the
-// Environment variable.
-
-#if !defined (ACE_DEFAULT_GET_ENV_METHOD)
-# define ACE_DEFAULT_GET_ENV_METHOD TAO_default_environment
-#endif /* ACE_DEFAULT_GET_ENV_METHOD */
-
-// This is the exception caught by ACE_CATCHANY.
-#if !defined (ACE_ANY_EXCEPTION)
-# define ACE_ANY_EXCEPTION ex
-#endif /* ACE_ANY_EXCEPTION */
-
-// Declare a new environment variable on the stack. The type of the
-// environment variable is determined by ACE_ENV_TYPE.
-#define ACE_DECLARE_NEW_ENV \
- ACE_ENV_TYPE ACE_TRY_ENV
-
-// Provided for backward compatibility purposes. Don't use it in new code.
-// Use the definition above along with defining ACE_ENV_TYPE.
-
-#if defined (ACE_ENV_POLLUTE_NAMES)
-# define ACE_DECLARE_NEW_CORBA_ENV ACE_ENV_TYPE ACE_TRY_ENV
-#endif /* ACE_ENV_POLLUTE_NAMES */
-
-#if defined (ACE_USES_NATIVE_EXCEPTIONS)
-// -----------------------------------------------------------------
-
-// Provided for backward compatibility purposes. Don't use it in new code.
-#if defined (ACE_ENV_POLLUTE_NAMES)
-# define ACE_ADOPT_CORBA_ENV(ENV)
-#endif /* ACE_ENV_POLLUTE_NAMES */
-
-#define ACE_ADOPT_ENV (ENV)
-
-// No need to check. Native exceptions handle the control flow
-// automatically when an exception occurs.
-# define ACE_CHECK
-
-// Used when the function requires a return value.
-# define ACE_CHECK_RETURN(RETV)
-
-// ACE_THROW_INT should not be used by the user.
-# define ACE_THROW_INT(EXCEPTION) \
- throw EXCEPTION
-
-// Throwing an exception is easy. These two macros should _NOT_ be
-// used within try blocks.
-# define ACE_THROW(EXCEPTION) \
- throw EXCEPTION
-
-// Throwing an exception when the function reqires a return value.
-# if defined (WIN32) || defined (__HP_aCC)
-# define ACE_THROW_RETURN(EXCEPTION, RETV) \
- do \
- { \
- throw EXCEPTION; \
- return RETV; \
- } while (0)
-# else /* WIN32 */
-# define ACE_THROW_RETURN(EXCEPTION,RETV) \
- throw EXCEPTION
-# endif /* WIN32 */
-
-// For compilers with native exceptions, we can simply use try to try. ;-)
-// do {} while (0) is required to avoid compilation warnings.
-# define ACE_TRY \
- do \
- { \
- try \
- {
-# define ACE_TRY_NEW_ENV \
- do \
- { \
- ACE_ENV_TYPE ACE_TRY_ENV; \
- try \
- {
-# define ACE_TRY_EX(LABEL) \
- do \
- { \
- try \
- {
-
-// No need to check for exceptions within try block for compilers with
-// native exceptions.
-# define ACE_TRY_CHECK
-# define ACE_TRY_CHECK_EX(LABEL)
-
-// Likewise, throwing exceptions within try blocks is easy.
-# define ACE_TRY_THROW(EXCEPTION) throw EXCEPTION
-# define ACE_TRY_THROW_EX(EXCEPTION,LABEL) throw EXCEPTION
-
-// Same thing for catch.
-# define ACE_CATCH(EXCEPTION,VAR) \
- } \
- catch (EXCEPTION & VAR) \
- { \
- ACE_UNUSED_ARG (VAR);
-
-# define ACE_CATCHANY \
- ACE_CATCH(ACE_EXCEPTION_TYPE, ACE_ANY_EXCEPTION)
-
-# define ACE_CATCHALL \
- } \
- catch (...) \
- {
-
-# if defined (ACE_HAS_DEPRECATED_ACE_RETHROW)
-# define ACE_RETHROW throw
-# endif /* ACE_HAS_DEPRECATED_ACE_RETHROW */
-
-// Rethrowing the exception from catch blocks.
-# define ACE_RE_THROW throw
-# define ACE_RE_THROW_EX(LABEL) throw
-
-// Close the catch block.
-# define ACE_ENDTRY \
- } \
- } while (0)
-
-#else /* ! ACE_USES_NATIVE_EXCEPTIONS */
-// -----------------------------------------------------------------
-
-// When handling compilers without native exceptions, things get a bit
-// hairy. Exceptions are simulated using ACE_ENV_TYPE. The trick here is to
-// make sure the flow-of-control can simulate the case when native
-// exceptions occur...
-
-#if defined (ACE_ENV_POLLUTE_NAMES)
-# define ACE_ADOPT_CORBA_ENV(ENV) ACE_ENV_TYPE &ACE_TRY_ENV = ENV
-#endif /* ACE_ENV_POLLUTE_NAMES */
-
-# define ACE_ADOPT_ENV(ENV) ACE_ENV_TYPE &ACE_TRY_ENV = ENV
-
-// Follow every statement that could throw exceptions with ACE_CHECK or
-// ACE_CHECK_RETURN. These two macros should _NOT_ be used within try
-// blocks. Use ACE_TRY_CHECK or ACE_TRY_CHECK_EX instead.
-# define ACE_CHECK \
- if (ACE_TRY_ENV . exception () != 0) \
- return
-// When function requires a return value
-# define ACE_CHECK_RETURN(RETV) \
- if (ACE_TRY_ENV . exception () != 0) \
- return RETV
-
-// ACE_THROW_INT should not be used by the user.
-# define ACE_THROW_INT(EXCEPTION) ACE_TRY_ENV.exception (new EXCEPTION)
-
-// Throwing exceptions will inevitably cause a return from the current
-// function. These two macros should _NOT_ be used within try blocks. Use
-// ACE_TRY_THROW or ACE_TRY_THROW_EX instead.
-# define ACE_THROW(EXCEPTION) \
- do \
- { \
- ACE_TRY_ENV.exception (new EXCEPTION); \
- return; \
- } while (0)
-
-# define ACE_THROW_RETURN(EXCEPTION,RETV) \
- do \
- { \
- ACE_TRY_ENV.exception (new EXCEPTION); \
- return RETV; \
- } while (0)
-
-// ACE_TRY sets up flags to control program flow. ACE_TRY_FLAG acts like a
-// one-shot flip-flop. When an exception occurs (detected using
-// ACE_TRY_CHECK,) ACE_TRY_FLAG will be reset and the control goes back
-// into ACE_TRY_LABEL. Since ACE_TRY_FLAG is reset, the try block won't get
-// executed again and the control proceeds to the following catch blocks.
-// ACE_EXCEPTION_NOT_CAUGHT flag is used to prevent catching an exception
-// twice. This macro assumes there's already an ACE_ENV_TYPE variable
-// ACE_TRY_ENV defined (which should be the case normally)
-# define ACE_TRY \
- do { \
- int ACE_TRY_FLAG = 1; \
- int ACE_EXCEPTION_NOT_CAUGHT = 1; \
- ACE_TRY_LABEL: \
- if (ACE_TRY_FLAG) \
- do {
-
-// ACE_TRY_NEW_ENV functions like the macro ACE_TRY but defines a new
-// ACE_ENV_TYPE variable ACE_TRY_ENV. It is most often used in the outer
-// most function where no ACE_TRY_ENV is available.
-# define ACE_TRY_NEW_ENV \
- do { \
- ACE_ENV_TYPE ACE_TRY_ENV;\
- int ACE_TRY_FLAG = 1; \
- int ACE_EXCEPTION_NOT_CAUGHT = 1; \
- ACE_TRY_LABEL: \
- if (ACE_TRY_FLAG) \
- do {
-
-// ACE_TRY_EX works exactly like ACE_TRY macro except the label used in the
-// try block is customizable to avoid name clashing. It should be used when
-// nested try blocks or multiple try blocks are required, in the same
-// function.
-# define ACE_TRY_EX(LABEL) \
- do { \
- int ACE_TRY_FLAG = 1; \
- int ACE_EXCEPTION_NOT_CAUGHT = 1; \
- ACE_TRY_LABEL ## LABEL: \
- if (ACE_TRY_FLAG) \
- do {
-
-// Check for exceptions within try blocks.
-# define ACE_TRY_CHECK \
- { \
- if (ACE_TRY_ENV.exception () != 0) \
- { \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL; \
- } \
- }
-
-// Checking exception within EX try blocks.
-# define ACE_TRY_CHECK_EX(LABEL) \
- { \
- if (ACE_TRY_ENV.exception () != 0) \
- { \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL ## LABEL; \
- } \
- }
-
-// Throwing exception within TRY blocks.
-# define ACE_TRY_THROW(EXCEPTION) \
- { \
- ACE_TRY_ENV.exception (new EXCEPTION); \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL; \
- }
-
-# define ACE_TRY_THROW_EX(EXCEPTION,LABEL) \
- { \
- ACE_TRY_ENV.exception (new EXCEPTION); \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL ## LABEL; \
- }
-
-// When exceptions occur or try block finishes execution without exception,
-// control will continue in the catch block. This macro first checks if
-// there's any uncaught exception left. If all the conditions are met, we
-// have caught an exception. It then resets ACE_EXCEPTION_NOT_CAUGHT to
-// prevent subsequent catch blocks from catching the same exception again,
-// and extracts out the underlying exception in ACE_TRY_ENV. We also make a
-// copy of ACE_TRY_ENV in ACE_CAUGHT_ENV, in case we want to rethrow the
-// exception. ACE_TRY_ENV is cleared out after the exception is caught so
-// you should not use ACE_TRY_ENV within the catch block(You should use the
-// exception directly).
-# define ACE_CATCH(TYPE,VAR) \
- } while (0); \
- do \
- if (ACE_TRY_ENV.exception () != 0 && ACE_EXCEPTION_NOT_CAUGHT && \
- TYPE::_downcast(ACE_TRY_ENV.exception ()) != 0) \
- { \
- ACE_ENV_TYPE ACE_CAUGHT_ENV = ACE_TRY_ENV;\
- ACE_EXCEPTION_NOT_CAUGHT = 0; \
- TYPE &VAR = *TYPE::_downcast (ACE_CAUGHT_ENV.exception ()); \
- ACE_UNUSED_ARG (VAR); \
- ACE_TRY_ENV.clear ();
-
-// ACE_CATCHANY uses ACE_CATCH to catch all exceptions derived from
-// ACE_EXCEPTION_TYPE
-# define ACE_CATCHANY ACE_CATCH (ACE_EXCEPTION_TYPE, ACE_ANY_EXCEPTION)
-
-// Since there's no other exception for compilers without exception
-// support, we simply catch all ACE_EXCEPTION_TYPE exceptions for
-// ACE_CATCHALL.
-# define ACE_CATCHALL ACE_CATCHANY
-
-# if defined (ACE_HAS_DEPRECATED_ACE_RETHROW)
-# define ACE_RETHROW \
- do \
- ACE_TRY_ENV = ACE_CAUGHT_ENV; \
- while (0)
-# endif /* ACE_HAS_DEPRECATED_ACE_RETHROW */
-
-// Rethrowing exception within catch blocks. Notice that we depend on the
-// ACE_CHECK/ACE_CHECK_RETURN following the ACE_ENDTRY, or ACE_TRY_CHECK/
-// ACE_TRY_CHECK_EX following the ACE_ENDTRY when the catch block is within
-// another try block, to do the "Right Thing[TM]."
-# define ACE_RE_THROW \
- do {\
- ACE_TRY_ENV = ACE_CAUGHT_ENV; \
- goto ACE_TRY_LABEL; \
- } while (0)
-# define ACE_RE_THROW_EX(LABEL) \
- do {\
- ACE_TRY_ENV = ACE_CAUGHT_ENV; \
- goto ACE_TRY_LABEL ## LABEL; \
- } while (0)
-
-// Close the try block. Since exceptions may not get caught, and exceptions
-// can also be rethrown from the catch block, it's always a good idea to
-// follow ACE_ENDTRY with ACE_CHECK or ACE_TRY_CHECK (depending on the
-// context.)
-# define ACE_ENDTRY \
- } while (0); \
- } while (0)
-
-#endif /* ! ACE_CORBA_HAS_EXCEPTIONS */
-
-// ACE_HAS_EXCEPTIONS is not the same as ACE_NEW_THROWS_EXCEPTIONS.
-#if defined(ACE_NEW_THROWS_EXCEPTIONS)
-
-# define ACE_NEW_THROW_EX(POINTER,CONSTRUCTOR,EXCEPTION) \
- do { try { POINTER = new CONSTRUCTOR; } \
- catch (ACE_bad_alloc) { errno = ENOMEM; ACE_THROW_INT (EXCEPTION); } \
- } while (0)
-
-#else /* ! ACE_NEW_THROWS_EXCEPTIONS */
-
-# define ACE_NEW_THROW_EX(POINTER,CONSTRUCTOR,EXCEPTION) \
- do { POINTER = new CONSTRUCTOR; \
- if (POINTER == 0) { errno = ENOMEM; ACE_THROW_INT (EXCEPTION); } \
- } while (0)
-
-#endif /* ACE_NEW_THROWS_EXCEPTIONS */
-
-# define ACE_GUARD_THROW_EX(MUTEX,OBJ,LOCK,EXCEPTION) \
- ACE_Guard< MUTEX > OBJ (LOCK); \
- if (OBJ.locked () == 0) ACE_THROW_INT (EXCEPTION);
-
-# define ACE_READ_GUARD_THROW_EX(MUTEX,OBJ,LOCK,EXCEPTION) \
- ACE_Read_Guard< MUTEX > OBJ (LOCK); \
- if (OBJ.locked () == 0) ACE_THROW_INT (EXCEPTION);
-
-# define ACE_WRITE_GUARD_THROW_EX(MUTEX,OBJ,LOCK,EXCEPTION) \
- ACE_Write_Guard< MUTEX > OBJ (LOCK); \
- if (OBJ.locked () == 0) ACE_THROW_INT (EXCEPTION);
-
-//@{
-/**
- * @name Native C++ exceptions portability macros.
- *
- * The following macros are used to write code portable between platforms
- * with and without native C++ exception support. Their main goal is to
- * hide the presence of the ACE_ENV_TYPE argument, but they collaborate
- * with the ACE_TRY_* macros to emulate the try/catch blocks.
- */
-
-/// Define a macro to emit code only when ACE_ENV_TYPE is used
-#if !defined (ACE_USES_NATIVE_EXCEPTIONS) || defined (ACE_ENV_BKWD_COMPAT)
-# define ACE_ENV_EMIT_CODE(X) X
-#else
-# define ACE_ENV_EMIT_CODE(X)
-#endif /* ACE_USES_NATIVE_EXCEPTIONS && ! ACE_ENV_BKWD_COMPAT */
-
-/// Another macro to emit code only when ACE_ENV_TYPE is used
-#if !defined (ACE_USES_NATIVE_EXCEPTIONS) || defined (ACE_ENV_BKWD_COMPAT)
-# define ACE_ENV_EMIT_CODE2(X,Y) X,Y
-#else
-# define ACE_ENV_EMIT_CODE2(X,Y)
-#endif /* ACE_USES_NATIVE_EXCEPTIONS && ! ACE_ENV_BKWD_COMPAT */
-
-/// Helper macro
-#define ACE_ENV_EMIT_DUMMY
-
-/// Declare a ACE_ENV_TYPE argument as the last argument of a
-/// function
-/**
- * Normally this macro is used as follows:
- *
- * <CODE>void my_funct (int x, int y ACE_ENV_ARG_DECL);</CODE>
- *
- * Its purpose is to provide developers (and users) with a mechanism to
- * write code that is portable to platforms with and without native C++
- * exceptions.
- */
-#define ACE_ENV_ARG_DECL \
- ACE_ENV_EMIT_CODE2(ACE_ENV_EMIT_DUMMY, \
- ACE_ENV_TYPE &ACE_TRY_ENV)
-
-/// Declare a ACE_ENV_TYPE argument with the default value obtained from
-/// the ORB/application.
-/**
- * It is similar to ACE_ENV_ARG_DECL. The name of the default environment
- * getter method needs to be changed when switching ORBs or when used with
- * another application.
- */
-#define ACE_ENV_ARG_DECL_WITH_DEFAULTS \
- ACE_ENV_EMIT_CODE2(ACE_ENV_EMIT_DUMMY, \
- ACE_ENV_TYPE &ACE_TRY_ENV = \
- ACE_DEFAULT_GET_ENV_METHOD ())
-
-/// Declare a ACE_ENV_TYPE argument that is not used by the
-/// function definition.
-/**
- * Similar to ACE_ENV_ARG_DECL, but the formal parameter name is dropped to
- * avoid warnings about unused parameters
- */
-#define ACE_ENV_ARG_DECL_NOT_USED \
- ACE_ENV_EMIT_CODE2(ACE_ENV_EMIT_DUMMY, \
- ACE_ENV_TYPE &)
-
-/// Declare a ACE_ENV_TYPE argument for methods that do not take any other
-/// parameters
-#define ACE_ENV_SINGLE_ARG_DECL \
- ACE_ENV_EMIT_CODE(ACE_ENV_TYPE &ACE_TRY_ENV)
-
-/// Declare a ACE_ENV_TYPE argument with a default value for methods that
-/// do not take any other parameters. The name of the default environment
-/// getter method needs to be changed when switching ORBs or when used in
-/// another application.
-#define ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS \
- ACE_ENV_EMIT_CODE(ACE_ENV_TYPE &ACE_TRY_ENV = \
- ACE_DEFAULT_GET_ENV_METHOD ())
-
-/// Declare a ACE_ENV_TYPE argument for methods which don't use it.
-#define ACE_ENV_SINGLE_ARG_DECL_NOT_USED \
- ACE_ENV_EMIT_CODE(ACE_ENV_TYPE &)
-
-/// Use the ACE_ENV_TYPE argument in a nested call
-#define ACE_ENV_ARG_PARAMETER \
- ACE_ENV_EMIT_CODE2(ACE_ENV_EMIT_DUMMY, \
- ACE_TRY_ENV)
-
-/// Use the ACE_ENV_TYPE argument in a nested call, assuming that the
-/// called function takes only the ACE_TRY_ENV argument.
-#define ACE_ENV_SINGLE_ARG_PARAMETER \
- ACE_ENV_EMIT_CODE(ACE_TRY_ENV)
-
-/// Eliminate unused argument warnings about ACE_TRY_ENV
-#define ACE_ENV_ARG_NOT_USED \
- ACE_ENV_EMIT_CODE(ACE_UNUSED_ARG(ACE_TRY_ENV))
-//@}
-
-#if !defined (ACE_USES_NATIVE_EXCEPTIONS)
-// This thing can be moved above when we drop ACE_ENV_BKWD_COMPAT.
-# define ACE_ENV_RAISE(ex) ACE_TRY_ENV.exception (ex)
-#else
-# define ACE_ENV_RAISE(ex) (ex)->_raise ()
-#endif /* ACE_CORBA_HAS_EXCEPTIONS */
-
-// ============================================================
-
-// Print out a TAO exception. This is not CORBA compliant.
-# define ACE_PRINT_TAO_EXCEPTION(EX,INFO) \
- EX._tao_print_exception (INFO)
-
-// Print out a CORBA exception. There is not portable way to
-// dump a CORBA exception. If you are using other ORB implementation,
-// redefine the macro to get what you want.
-# if !defined ACE_PRINT_EXCEPTION
-# define ACE_PRINT_EXCEPTION(EX,INFO) ACE_PRINT_TAO_EXCEPTION(EX,INFO)
-# endif /* ACE_PRINT_EXCEPTION */
-
-#include "ace/post.h"
-
-#endif /* ACE_CORBA_MACROS_H */
diff --git a/ace/Cache_Map_Manager_T.cpp b/ace/Cache_Map_Manager_T.cpp
deleted file mode 100644
index 9460c2df16d..00000000000
--- a/ace/Cache_Map_Manager_T.cpp
+++ /dev/null
@@ -1,420 +0,0 @@
-// $Id$
-
-#ifndef ACE_CACHE_MAP_MANAGER_T_C
-#define ACE_CACHE_MAP_MANAGER_T_C
-
-#include "ace/Cache_Map_Manager_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#define ACE_LACKS_PRAGMA_ONCE
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Malloc.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Cache_Map_Manager_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Cache_Map_Manager_T, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Cache_Map_Manager)
-
-#if !defined (ACE_HAS_BROKEN_EXTENDED_TEMPLATES)
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Cache_Map_Iterator)
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Cache_Map_Reverse_Iterator)
-
-#define ACE_T1 class KEY, class VALUE, class MAP, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, MAP, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES
-
-#else
-
-#define ACE_T1 class KEY, class VALUE, class MAP, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, MAP, CACHING_STRATEGY, ATTRIBUTES
-
-#endif /* ACE_HAS_BROKEN_EXTENDED_TEMPLATES */
-
-template <ACE_T1>
-ACE_Cache_Map_Manager<ACE_T2>::ACE_Cache_Map_Manager (CACHING_STRATEGY &caching_s,
- size_t size,
- ACE_Allocator *alloc)
- : caching_strategy_ (caching_s)
-{
- if (this->open (size, alloc) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Cache_Map_Manager::ACE_Cache_Map_Manager")));
-
-}
-
-template <ACE_T1>
-ACE_Cache_Map_Manager<ACE_T2>::~ACE_Cache_Map_Manager (void)
-{
- this->close ();
-}
-
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::open (size_t length,
- ACE_Allocator *alloc)
-{
- return this->map_.open (length,
- alloc);
-}
-
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::close (void)
-{
- return this->map_.close ();
-}
-
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::bind (const KEY &key,
- const VALUE &value)
-{
- // Insert an entry which has the <key> and the <cache_value> which
- // is the combination of the <value> and the attributes of the
- // caching strategy.
- CACHE_VALUE cache_value (value,
- this->caching_strategy_.attributes ());
-
- int bind_result = this->map_.bind (key,
- cache_value);
-
- if (bind_result != -1)
- {
-
- int result = this->caching_strategy_.notify_bind (bind_result,
- cache_value.second ());
-
- if (result == -1)
- {
-
- this->map_.unbind (key);
-
- // Unless the notification goes thru the bind operation is
- // not complete.
- bind_result = -1;
-
- }
-
- }
-
- return bind_result;
-}
-
-
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
- const VALUE &value)
-{
- CACHE_VALUE cache_value (value,
- this->caching_strategy_.attributes ());
-
- int rebind_result = this->map_.rebind (key,
- cache_value);
-
- if (rebind_result != -1)
- {
-
- int result = this->caching_strategy_.notify_rebind (rebind_result,
- cache_value.second ());
-
- if (result == -1)
- {
-
- // Make sure the unbind operation is done only when the
- // notification fails after a bind which is denoted by
- // rebind_result = 0
- if (rebind_result == 0)
- this->map_.unbind (key);
-
- // Unless the notification goes thru the rebind operation is
- // not complete.
- rebind_result = -1;
-
- }
-
- }
-
- return rebind_result;
-}
-
-
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value)
-{
- CACHE_VALUE cache_value (value,
- this->caching_strategy_.attributes ());
-
- CACHE_VALUE old_cache_value (old_value,
- this->caching_strategy_.attributes ());
-
- int rebind_result = this->map_.rebind (key,
- cache_value,
- old_cache_value);
-
- if (rebind_result != -1)
- {
-
- int result = this->caching_strategy_.notify_rebind (rebind_result,
- cache_value.second ());
-
- if (result == -1)
- {
-
- // Make sure the unbind operation is done only when the
- // notification fails after a bind which is denoted by
- // rebind_result = 0
- if (rebind_result == 0)
- this->map_.unbind (key);
-
- // Unless the notification goes thru the rebind operation is
- // not complete.
- rebind_result = -1;
-
- }
- else
- {
-
- old_value = old_cache_value.first ();
-
- }
-
- }
-
- return rebind_result;
-}
-
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value)
-{
- CACHE_VALUE cache_value (value,
- this->caching_strategy_.attributes ());
-
- CACHE_VALUE old_cache_value (old_value,
- this->caching_strategy_.attributes ());
-
- int rebind_result = this->map_.rebind (key,
- cache_value,
- old_key,
- old_cache_value);
-
- if (rebind_result != -1)
- {
-
- int result = this->caching_strategy_.notify_rebind (rebind_result,
- cache_value.second ());
-
- if (result == -1)
- {
-
- // Make sure the unbind operation is done only when the
- // notification fails after a bind which is denoted by
- // rebind_result = 0
- if (rebind_result == 0)
- this->map_.unbind (key);
-
- // Unless the notification goes thru the rebind operation is
- // not complete.
- rebind_result = -1;
-
- }
- else
- {
-
- old_value = old_cache_value.first ();
-
- }
-
- }
-
- return rebind_result;
-}
-
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::trybind (const KEY &key,
- VALUE &value)
-{
- CACHE_VALUE cache_value (value,
- this->caching_strategy_.attributes ());
-
- int trybind_result = this->map_.trybind (key,
- cache_value);
-
- if (trybind_result != -1)
- {
-
- int result = this->caching_strategy_.notify_trybind (trybind_result,
- cache_value.second ());
-
- if (result == -1)
- {
-
- // If the entry has got inserted into the map, it is removed
- // due to failure.
- if (trybind_result == 0)
- this->map_.unbind (key);
-
- trybind_result = -1;
-
- }
- else
- {
-
- // If an attempt is made to bind an existing entry the value
- // is overwritten with the value from the map.
- if (trybind_result == 1)
- value = cache_value.first ();
-
- }
-
- }
-
- return trybind_result;
-}
-
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
- VALUE &value)
-{
- // Lookup the key and populate the <value>.
- CACHE_VALUE cache_value;
-
- int find_result = this->map_.find (key,
- cache_value);
-
- if (find_result != -1)
- {
-
- int result = this->caching_strategy_.notify_find (find_result,
- cache_value.second ());
-
- // Unless the find and notification operations go thru, this
- // method is not successful.
- if (result == -1)
- find_result = -1;
- else
- {
-
- // Since the <cache_value> has now changed after the
- // notification, we need to bind to the map again.
- int rebind_result = this->map_.rebind (key,
- cache_value);
- if (rebind_result == -1)
- find_result = -1;
- else
- value = cache_value.first ();
-
- }
-
- }
-
- return find_result;
-}
-
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::find (const KEY &key)
-{
- // Lookup the key and populate the <value>.
- CACHE_VALUE cache_value;
-
- int find_result = this->map_.find (key,
- cache_value);
-
- if (find_result != -1)
- {
-
- int result = this->caching_strategy_.notify_find (find_result,
- cache_value.second ());
-
- // Unless the find and notification operations go thru, this
- // method is not successful.
- if (result == -1)
- find_result = -1;
- else
- {
-
- // Since the <cache_value> has now changed after the
- // notification, we need to bind to the map again.
- int rebind_result = this->map_.rebind (key,
- cache_value);
-
- if (rebind_result == -1)
- find_result = -1;
-
- }
-
- }
-
- return find_result;
-}
-
-
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key)
-{
- // Remove the entry from the cache.
- CACHE_VALUE cache_value;
-
- int unbind_result = this->map_.unbind (key,
- cache_value);
-
- if (unbind_result != -1)
- {
-
- int result = this->caching_strategy_.notify_unbind (unbind_result,
- cache_value.second ());
-
- if (result == -1)
- unbind_result = -1;
-
- }
-
- return unbind_result;
-}
-
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key,
- VALUE &value)
-{
- // Remove the entry from the cache.
- CACHE_VALUE cache_value;
-
- int unbind_result = this->map_.unbind (key,
- cache_value);
-
- if (unbind_result != -1)
- {
-
- int result = this->caching_strategy_.notify_unbind (unbind_result,
- cache_value.second ());
-
- if (result == -1)
- unbind_result = -1;
- else
- value = cache_value.first ();
-
- }
-
- return unbind_result;
-}
-
-
-template <ACE_T1> void
-ACE_Cache_Map_Manager<ACE_T2>::dump (void) const
-{
- this->map_.dump ();
-
- this->caching_strategy_.dump ();
-}
-
-#undef ACE_T1
-#undef ACE_T2
-
-#endif /* ACE_CACHE_MAP_MANAGER_T_C */
diff --git a/ace/Cache_Map_Manager_T.h b/ace/Cache_Map_Manager_T.h
deleted file mode 100644
index 7b5a3052463..00000000000
--- a/ace/Cache_Map_Manager_T.h
+++ /dev/null
@@ -1,428 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Cache_Map_Manager_T.h
- *
- * $Id$
- *
- * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_CACHE_MAP_MANAGER_T_H
-#define ACE_CACHE_MAP_MANAGER_T_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Default_Constants.h"
-#include "ace/Global_Macros.h"
-#include "ace/Pair_T.h"
-
-// Forward declaration.
-class ACE_Allocator;
-
-#if !defined (ACE_HAS_BROKEN_EXTENDED_TEMPLATES)
-
-#define ACE_Cache_Map_Iterator ACMI
-#define ACE_Cache_Map_Reverse_Iterator ACMRI
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class CACHING_STRATEGY, class ATTRIBUTES>
-class ACE_Cache_Map_Iterator;
-
-template <class KEY, class VALUE, class REVERSE_IMPLEMENTATION, class CACHING_STRATEGY, class ATTRIBUTES>
-class ACE_Cache_Map_Reverse_Iterator;
-
-#define ACE_T1 class KEY, class VALUE, class MAP, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, MAP, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES
-
-#else
-
-#define ACE_T1 class KEY, class VALUE, class MAP, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, MAP, CACHING_STRATEGY, ATTRIBUTES
-
-#endif /* ACE_HAS_BROKEN_EXTENDED_TEMPLATES */
-
-// For linkers that cant grok long names.
-#define ACE_Cache_Map_Manager ACMM
-
-/**
- * @class ACE_Cache_Map_Manager
- *
- * @brief Defines a abstraction that will purge entries from a map.
- *
- * The <ACE_Cache_Map_Manager> will manage the map it contains
- * and provide purging on demand from the map. The strategy for
- * caching is decided by the user and provided to the Cache
- * Manager. The Cache Manager acts as a agent and communicates
- * between the Map and the Strategy for purging entries from the
- * map.
- * No locking mechanism provided since locking at this level
- * isn't efficient. Locking has to be provided by the
- * application.
- */
-template <ACE_T1>
-class ACE_Cache_Map_Manager
-{
-public:
-
- // = Traits.
- typedef KEY key_type;
- typedef VALUE mapped_type;
- typedef MAP map_type;
- typedef CACHING_STRATEGY caching_strategy_type;
-
-#if !defined (ACE_HAS_BROKEN_EXTENDED_TEMPLATES)
-
- typedef ITERATOR_IMPL ITERATOR_IMPLEMENTATION;
- typedef REVERSE_ITERATOR_IMPL REVERSE_ITERATOR_IMPLEMENTATION;
-
- friend class ACE_Cache_Map_Iterator<KEY, VALUE, ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES>;
- friend class ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES>;
-
- // = ACE-style iterator typedefs.
- typedef ACE_Cache_Map_Iterator<KEY, VALUE, ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES>
- ITERATOR;
- typedef ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES>
- REVERSE_ITERATOR;
-
- // = STL-style iterator typedefs.
- typedef ITERATOR
- iterator;
- typedef REVERSE_ITERATOR
- reverse_iterator;
-
-#endif /* ACE_HAS_BROKEN_EXTENDED_TEMPLATES */
-
- /**
- * The actual value mapped to the key in the map. The <attributes>
- * are used by the strategy and is transparent to the user of this
- * class.
- */
- typedef ACE_Pair<VALUE, ATTRIBUTES> CACHE_VALUE;
-
- // = Initialization and termination methods.
-
- /// Initialize a <Cache_Map_Manager> with <caching_strategy> and
- /// <size> entries.
- ACE_Cache_Map_Manager (CACHING_STRATEGY &caching_strategy,
- size_t size = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- /// Close down a <Cache_Map_Manager> and release dynamically allocated
- /// resources.
- virtual ~ACE_Cache_Map_Manager (void);
-
- /// Initialize a cache with size <length>.
- int open (size_t length = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- /// Close down a cache and release dynamically allocated resources.
- int close (void);
-
- /**
- * Associate <key> with <value>. If <key> is already in the MAP
- * then the ENTRY is not changed. Returns 0 if a new entry is bound
- * successfully, returns 1 if an attempt is made to bind an existing
- * entry, and returns -1 if failures occur.
- */
- int bind (const KEY &key,
- const VALUE &value);
-
- /**
- * Lookup entry<key,value> in the cache. If it is not found, returns -1.
- * If the <key> is located in the MAP object, the CACHING_STRATEGY is
- * notified of it via notify_find (int result, ATTRIBUTES &attribute).
- * If notify_find also returns 0 (success), then this function returns
- * 0 (success) and sets the cached value in <value>.
- */
- int find (const KEY &key,
- VALUE &value);
-
- /**
- * Lookup entry<key,value> in the cache. If it is not found, returns -1.
- * If the <key> is located in the MAP object, the CACHING_STRATEGY is
- * notified of it via notify_find (int result, ATTRIBUTES &attribute).
- * If notify_find also returns 0 (success), then this function returns
- * 0 (success).
- */
- int find (const KEY &key);
-
- /**
- * Reassociate the <key> with <value>. If the <key> already exists
- * in the cache then returns 1, on a new bind returns 0 and returns
- * -1 in case of any failures.
- */
- int rebind (const KEY &key,
- const VALUE &value);
-
- /**
- * Reassociate <key> with <value>, storing the old value into the
- * "out" parameter <old_value>. The function fails if <key> is not
- * in the cache for caches that do not allow user specified keys.
- * However, for caches that allow user specified keys, if the key is
- * not in the cache, a new <key>/<value> association is created.
- */
- int rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value);
-
- /**
- * Reassociate <key> with <value>, storing the old key and value
- * into the "out" parameters <old_key> and <old_value>. The
- * function fails if <key> is not in the cache for caches that do
- * not allow user specified keys. However, for caches that allow
- * user specified keys, if the key is not in the cache, a new
- * <key>/<value> association is created.
- */
- int rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value);
-
- /**
- * Associate <key> with <value> if and only if <key> is not in the
- * cache. If <key> is already in the cache, then the <value>
- * parameter is overwritten with the existing value in the
- * cache. Returns 0 if a new <key>/<value> association is created.
- * Returns 1 if an attempt is made to bind an existing entry. This
- * function fails for maps that do not allow user specified keys.
- */
- int trybind (const KEY &key,
- VALUE &value);
-
- /// Remove <key> from the cache.
- int unbind (const KEY &key);
-
- /// Remove <key> from the cache, and return the <value> associated with
- /// <key>.
- int unbind (const KEY &key,
- VALUE &value);
-
- /// Remove entries from the cache depending upon the strategy.
- int purge (void);
-
- /// Return the current size of the cache.
- size_t current_size (void) const;
-
- /// Return the total size of the cache.
- size_t total_size (void) const;
-
- /// Dumps the state of the object.
- void dump (void) const;
-
-#if !defined (ACE_HAS_BROKEN_EXTENDED_TEMPLATES)
-
- // = STL styled iterator factory functions.
-
- /// Return forward iterator.
- ITERATOR begin (void);
- ITERATOR end (void);
-
- /// Return reverse iterator.
- REVERSE_ITERATOR rbegin (void);
- REVERSE_ITERATOR rend (void);
-
-#endif /* ACE_HAS_BROKEN_EXTENDED_TEMPLATES */
-
- /// The map managed by the Cache_Map_Manager.
- MAP &map (void);
-
- /// The caching strategy used on the cache.
- CACHING_STRATEGY &caching_strategy (void);
-
-protected:
-
- /// The underlying map which needs to be cached.
- MAP map_;
-
- /// The strategy to be followed for caching entries in the map.
- CACHING_STRATEGY &caching_strategy_;
-
-private:
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Cache_Map_Manager<ACE_T2> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Cache_Map_Manager (const ACE_Cache_Map_Manager<ACE_T2> &))
-
-};
-
-#if !defined (ACE_HAS_BROKEN_EXTENDED_TEMPLATES)
-
-/**
- * @class ACE_Cache_Map_Iterator
- *
- * @brief Defines a iterator for the Cache_Map_Manager.
- *
- * Implementation to be provided by the iterator of the map
- * managed by the ACE_Cache_Map_Manager.
- */
-template <class KEY, class VALUE, class IMPLEMENTATION, class CACHING_STRATEGY, class ATTRIBUTES>
-class ACE_Cache_Map_Iterator
-{
-
-public:
-
- // = Traits.
- /// The actual value mapped to the key in the cache. The <attributes>
- /// are used by the strategy and is transperant to the cache user.
- typedef ACE_Reference_Pair<KEY, VALUE>
- value_type;
- typedef ACE_Pair <VALUE, ATTRIBUTES>
- CACHE_VALUE;
-
- // = Initialisation and termination methods.
-
- ACE_Cache_Map_Iterator (const IMPLEMENTATION &iterator_impl);
-
- /// Copy constructor.
- ACE_Cache_Map_Iterator (const ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &rhs);
-
- virtual ~ACE_Cache_Map_Iterator (void);
-
- // = Iteration methods.
-
- /// assignment operator.
- ACE_Cache_Map_Iterator <KEY, VALUE, IMPLEMENTATION,
- CACHING_STRATEGY, ATTRIBUTES> &operator=
- (const ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION,
- CACHING_STRATEGY, ATTRIBUTES> &rhs);
-
- /// Comparision operators.
- int operator== (const ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &rhs) const;
- int operator!= (const ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &rhs) const;
-
- /// Returns a reference to the internal element <this> is pointing
- /// to.
- ACE_Reference_Pair<KEY, VALUE> operator* (void) const;
-
- // = STL styled iteration, compare, and reference functions.
-
- /// Prefix advance
- ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &operator++ (void);
-
- /// Postfix advance.
- ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> operator++ (int);
-
- /// Prefix reverse.
- ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &operator-- (void);
-
- /// Postfix reverse.
- ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> operator-- (int);
-
- /// Returns the iterator of the internal map in the custody of the
- /// Cache_Map_Manager.
- IMPLEMENTATION &iterator_implementation (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// The actual iterator which iterates internally on the map
- /// belonging to the Cache_Map_Manager.
- IMPLEMENTATION iterator_implementation_;
-};
-
-/**
- * @class ACE_Cache_Map_Reverse_Iterator
- *
- * @brief Defines a reverse iterator for the Cache_Map_Manager.
- *
- * Implementation to be provided by the reverse iterator of the map
- * managed by thr Cache_Map_manager.
- */
-template <class KEY, class VALUE, class REVERSE_IMPLEMENTATION, class CACHING_STRATEGY, class ATTRIBUTES>
-class ACE_Cache_Map_Reverse_Iterator
-{
-public:
-
- // = Traits.
- /// The actual value mapped to the key in the cache. The <attributes>
- /// are used by the strategy and is transperant to the cache user.
- typedef ACE_Reference_Pair<KEY, VALUE> value_type;
- typedef ACE_Pair <VALUE, ATTRIBUTES> CACHE_VALUE;
-
- // = Initialisation and termination methods.
-
- ACE_Cache_Map_Reverse_Iterator (const REVERSE_IMPLEMENTATION &iterator_impl);
-
- /// Copy constructor.
- ACE_Cache_Map_Reverse_Iterator (const ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &rhs);
-
- ~ACE_Cache_Map_Reverse_Iterator (void);
-
- // = Iteration methods.
-
- /// Assignment operator.
- ACE_Cache_Map_Reverse_Iterator <KEY, VALUE, REVERSE_IMPLEMENTATION,
- CACHING_STRATEGY, ATTRIBUTES> &operator=
- (const ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_IMPLEMENTATION,
- CACHING_STRATEGY, ATTRIBUTES> &rhs);
-
- /// Comparision operators.
- int operator== (const ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &rhs) const;
- int operator!= (const ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &rhs) const;
-
- /// Returns a reference to the internal element <this> is pointing
- /// to.
- ACE_Reference_Pair<KEY, VALUE> operator* (void) const;
-
- // = STL styled iteration, compare, and reference functions.
-
- /// Prefix advance
- ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &operator++ (void);
-
- /// Postfix advance.
- ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> operator++ (int);
-
- /// Prefix reverse.
- ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &operator-- (void);
-
- /// Postfix reverse.
- ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> operator-- (int);
-
- /// Returns the iterator of the internal map in the custody of the
- /// Cache_Map_Manager.
- REVERSE_IMPLEMENTATION &iterator_implementation (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// The actual iterator which iterates internally on the map
- /// belonging to the Cache_Map_Manager.
- REVERSE_IMPLEMENTATION reverse_iterator_implementation_;
-};
-
-#endif /* ACE_HAS_BROKEN_EXTENDED_TEMPLATES */
-
-#undef ACE_T1
-#undef ACE_T2
-
-#if defined (__ACE_INLINE__)
-#include "ace/Cache_Map_Manager_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Cache_Map_Manager_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Cache_Map_Manager_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_CACHE_MAP_MANAGER_T_H */
diff --git a/ace/Cache_Map_Manager_T.i b/ace/Cache_Map_Manager_T.i
deleted file mode 100644
index ab90786fe1b..00000000000
--- a/ace/Cache_Map_Manager_T.i
+++ /dev/null
@@ -1,273 +0,0 @@
-/* -*- C++ -*- */
-//$Id$
-
-#if !defined (ACE_HAS_BROKEN_EXTENDED_TEMPLATES)
-
-#define ACE_T1 class KEY, class VALUE, class MAP, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, MAP, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES
-
-#else
-
-#define ACE_T1 class KEY, class VALUE, class MAP, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, MAP, CACHING_STRATEGY, ATTRIBUTES
-
-#endif /* ACE_HAS_BROKEN_EXTENDED_TEMPLATES */
-
-template <ACE_T1> ACE_INLINE int
-ACE_Cache_Map_Manager<ACE_T2>::purge (void)
-{
- return this->caching_strategy ().caching_utility ().clear_cache (this->map_,
- this->caching_strategy ().purge_percent ());
-}
-
-template <ACE_T1> ACE_INLINE size_t
-ACE_Cache_Map_Manager<ACE_T2>::current_size (void) const
-{
- return this->map_.current_size ();
-}
-
-template <ACE_T1> ACE_INLINE size_t
-ACE_Cache_Map_Manager<ACE_T2>::total_size (void) const
-{
- return this->map_.total_size ();
-}
-
-template <ACE_T1> ACE_INLINE MAP &
-ACE_Cache_Map_Manager<ACE_T2>::map (void)
-{
- return this->map_;
-}
-
-template <ACE_T1> ACE_INLINE CACHING_STRATEGY &
-ACE_Cache_Map_Manager<ACE_T2>::caching_strategy (void)
-{
- return this->caching_strategy_;
-}
-
-#if !defined (ACE_HAS_BROKEN_EXTENDED_TEMPLATES)
-
-template <ACE_T1> ACE_INLINE ACE_Cache_Map_Iterator<KEY, VALUE, ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>
-ACE_Cache_Map_Manager<ACE_T2>::begin (void)
-{
- return ITERATOR (this->map_.begin ());
-}
-
-template <ACE_T1> ACE_INLINE ACE_Cache_Map_Iterator<KEY, VALUE, ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>
-ACE_Cache_Map_Manager<ACE_T2>::end (void)
-{
- return ITERATOR (this->map_.end ());
-}
-
-template <ACE_T1> ACE_INLINE ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>
-ACE_Cache_Map_Manager<ACE_T2>::rbegin (void)
-{
- return REVERSE_ITERATOR (this->map_.rbegin ());
-}
-template <ACE_T1> ACE_INLINE ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>
-ACE_Cache_Map_Manager<ACE_T2>::rend (void)
-{
- return REVERSE_ITERATOR (this->map_.rend ());
-}
-
-#undef ACE_T1
-#undef ACE_T2
-
-////////////////////////////////////////////////////////////////////////////////
-
-#define ACE_T1 class KEY, class VALUE, class IMPLEMENTATION, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Iterator<ACE_T2>::ACE_Cache_Map_Iterator (const ACE_Cache_Map_Iterator <ACE_T2> &rhs)
- : iterator_implementation_ (rhs.iterator_implementation_)
-{
-}
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Iterator<ACE_T2>::~ACE_Cache_Map_Iterator (void)
-{
-}
-
-template <ACE_T1> ACE_INLINE ACE_Cache_Map_Iterator<ACE_T2> &
-ACE_Cache_Map_Iterator<ACE_T2>::operator= (const ACE_Cache_Map_Iterator<ACE_T2> &rhs)
-{
- this->iterator_implementation_ = rhs.iterator_implementation_;
- return *this;
-}
-
-template <ACE_T1> ACE_INLINE int
-ACE_Cache_Map_Iterator<ACE_T2>::operator== (const ACE_Cache_Map_Iterator<ACE_T2> &rhs) const
-{
- return this->iterator_implementation_ == rhs.iterator_implementation_;
-}
-
-template <ACE_T1> ACE_INLINE int
-ACE_Cache_Map_Iterator<ACE_T2>::operator!= (const ACE_Cache_Map_Iterator<ACE_T2> &rhs) const
-{
- return this->iterator_implementation_ != rhs.iterator_implementation_;
-}
-
-template <ACE_T1> ACE_INLINE ACE_Reference_Pair<KEY, VALUE>
-ACE_Cache_Map_Iterator<ACE_T2>::operator* (void) const
-{
- value_type retn ((*this->iterator_implementation_).ext_id_,
- (*this->iterator_implementation_).int_id_.first ());
- return retn;
-}
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Iterator<ACE_T2> &
-ACE_Cache_Map_Iterator<ACE_T2>::operator++ (void)
-{
- ++this->iterator_implementation_;
- return *this;
-}
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Iterator<ACE_T2>
-ACE_Cache_Map_Iterator<ACE_T2>::operator++ (int)
-{
- ACE_Cache_Map_Iterator<ACE_T2> retn = *this;
- ++this->iterator_implementation_;
- return retn;
-}
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Iterator<ACE_T2> &
-ACE_Cache_Map_Iterator<ACE_T2>::operator-- (void)
-{
- --this->iterator_implementation_;
- return *this;
-}
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Iterator<ACE_T2>
-ACE_Cache_Map_Iterator<ACE_T2>::operator-- (int)
-{
- ACE_Cache_Map_Iterator<ACE_T2> retn = *this;
- --this->iterator_implementation_;
- return retn;
-}
-
-
-template <ACE_T1> ACE_INLINE void
-ACE_Cache_Map_Iterator<ACE_T2>::dump (void) const
-{
- this->iterator_implementation_.dump ();
-}
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Iterator<ACE_T2>::ACE_Cache_Map_Iterator (const IMPLEMENTATION &iterator_impl)
- : iterator_implementation_ (iterator_impl)
-{
-}
-
-template <ACE_T1> ACE_INLINE IMPLEMENTATION &
-ACE_Cache_Map_Iterator<ACE_T2>::iterator_implementation (void)
-{
- return this->iterator_implementation_;
-}
-
-#undef ACE_T1
-#undef ACE_T2
-
-////////////////////////////////////////////////////////////////////////////////
-
-#define ACE_T1 class KEY, class VALUE, class REVERSE_IMPLEMENTATION, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, REVERSE_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>::ACE_Cache_Map_Reverse_Iterator (const ACE_Cache_Map_Reverse_Iterator <ACE_T2> &rhs)
- : reverse_iterator_implementation_ (rhs.reverse_iterator_implementation_)
-{
-}
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>::~ACE_Cache_Map_Reverse_Iterator (void)
-{
-}
-
-template <ACE_T1> ACE_INLINE ACE_Cache_Map_Reverse_Iterator<ACE_T2> &
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>::operator= (const ACE_Cache_Map_Reverse_Iterator<ACE_T2> &rhs)
-{
- this->reverse_iterator_implementation_ = rhs.reverse_iterator_implementation_;
- return *this;
-}
-
-template <ACE_T1> ACE_INLINE int
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>::operator== (const ACE_Cache_Map_Reverse_Iterator<ACE_T2> &rhs) const
-{
- return this->reverse_iterator_implementation_ == rhs.reverse_iterator_implementation_;
-}
-
-template <ACE_T1> ACE_INLINE int
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>::operator!= (const ACE_Cache_Map_Reverse_Iterator<ACE_T2> &rhs) const
-{
- return this->reverse_iterator_implementation_ != rhs.reverse_iterator_implementation_;
-}
-
-template <ACE_T1> ACE_INLINE ACE_Reference_Pair<KEY, VALUE>
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>::operator* (void) const
-{
- value_type retv ((*this->reverse_iterator_implementation_).ext_id_,
- (*this->reverse_iterator_implementation_).int_id_.first ());
- return retv;
-}
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Reverse_Iterator<ACE_T2> &
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>::operator++ (void)
-{
- ++this->reverse_iterator_implementation_;
- return *this;
-}
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>::operator++ (int)
-{
- ACE_Cache_Map_Reverse_Iterator<ACE_T2> retn = *this;
- ++this->reverse_iterator_implementation_;
- return retn;
-}
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Reverse_Iterator<ACE_T2> &
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>::operator-- (void)
-{
- --this->reverse_iterator_implementation_;
- return *this;
-}
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>::operator-- (int)
-{
- ACE_Cache_Map_Reverse_Iterator<ACE_T2> retn = *this;
- --this->reverse_iterator_implementation_;
- return retn;
-}
-
-
-template <ACE_T1> ACE_INLINE void
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>::dump (void) const
-{
- this->reverse_iterator_implementation_.dump ();
-}
-
-template <ACE_T1> ACE_INLINE
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>::ACE_Cache_Map_Reverse_Iterator (const REVERSE_IMPLEMENTATION &iterator_impl)
- : reverse_iterator_implementation_(iterator_impl)
-{
-}
-
-template <ACE_T1> ACE_INLINE REVERSE_IMPLEMENTATION &
-ACE_Cache_Map_Reverse_Iterator<ACE_T2>::iterator_implementation (void)
-{
- return this->reverse_iterator_implementation_;
-}
-
-#endif /* ACE_HAS_BROKEN_EXTENDED_TEMPLATES */
-
-#undef ACE_T1
-#undef ACE_T2
diff --git a/ace/Cached_Connect_Strategy_T.cpp b/ace/Cached_Connect_Strategy_T.cpp
deleted file mode 100644
index 0086f9d001f..00000000000
--- a/ace/Cached_Connect_Strategy_T.cpp
+++ /dev/null
@@ -1,775 +0,0 @@
-//$Id$
-
-#ifndef CACHED_CONNECT_STRATEGY_T_C
-#define CACHED_CONNECT_STRATEGY_T_C
-
-#include "ace/Cached_Connect_Strategy_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#define ACE_LACKS_PRAGMA_ONCE
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/ACE.h"
-#include "ace/Service_Repository.h"
-#include "ace/Synch.h"
-#include "ace/Service_Types.h"
-#include "ace/Thread_Manager.h"
-#include "ace/WFMO_Reactor.h"
-#include "ace/Pair_T.h"
-
-ACE_RCSID(ace, Cached_Connect_Strategy_T, "$Id$")
-
-#define ACE_T1 class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX
-#define ACE_T2 SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX
-
-template <ACE_T1>
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::ACE_Cached_Connect_Strategy_Ex
-(CACHING_STRATEGY &caching_s,
- ACE_Creation_Strategy<SVC_HANDLER> *cre_s,
- ACE_Concurrency_Strategy<SVC_HANDLER> *con_s,
- ACE_Recycling_Strategy<SVC_HANDLER> *rec_s,
- MUTEX *lock,
- int delete_lock)
- : CCSBASE (cre_s, con_s, rec_s, lock, delete_lock),
- connection_cache_ (caching_s)
-{
- if (this->open (cre_s, con_s, rec_s) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Cached_Connect_Strategy_Ex<ACE_T2>\n")));
-}
-
-template <ACE_T1>
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::~ACE_Cached_Connect_Strategy_Ex (void)
-{
- cleanup ();
-}
-
-
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::check_hint_i
-(SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
- int &found)
-{
- ACE_UNUSED_ARG (remote_addr);
- ACE_UNUSED_ARG (timeout);
- ACE_UNUSED_ARG (local_addr);
- ACE_UNUSED_ARG (reuse_addr);
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (perms);
-
- found = 0;
-
- // Get the recycling act for the svc_handler
- CONNECTION_CACHE_ENTRY *possible_entry = (CONNECTION_CACHE_ENTRY *) sh->recycling_act ();
-
- // Check to see if the hint svc_handler has been closed down
- if (possible_entry->ext_id_.recycle_state () == ACE_RECYCLABLE_CLOSED)
- {
- // If close, decrement refcount
- if (possible_entry->ext_id_.decrement () == 0)
- {
- // If refcount goes to zero, close down the svc_handler
- possible_entry->int_id_.first ()->recycler (0, 0);
- possible_entry->int_id_.first ()->close ();
- this->purge_i (possible_entry);
- }
-
- // Hint not successful
- found = 0;
-
- // Reset hint
- sh = 0;
- }
-
- // If hint is not closed, see if it is connected to the correct
- // address and is recyclable
- else if ((possible_entry->ext_id_.recycle_state () == ACE_RECYCLABLE_IDLE_AND_PURGABLE ||
- possible_entry->ext_id_.recycle_state () == ACE_RECYCLABLE_IDLE_BUT_NOT_PURGABLE) &&
- possible_entry->ext_id_.subject () == remote_addr)
- {
- // Hint successful
- found = 1;
-
- // Tell the <svc_handler> that it should prepare itself for
- // being recycled.
- this->prepare_for_recycling (sh);
-
- //
- // Update the caching attributes directly since we don't do a
- // find() on the cache map.
- //
-
- // Indicates successful find.
- int find_result = 0;
-
- int result = this->caching_strategy ().notify_find (find_result,
- possible_entry->int_id_.second ());
-
- if (result == -1)
- return result;
- }
- else
- {
- // This hint will not be used.
- possible_entry->ext_id_.decrement ();
-
- // Hint not successful
- found = 0;
-
- // If <sh> is not connected to the correct address or is busy,
- // we will not use it.
- sh = 0;
- }
-
- if (found)
- entry = possible_entry;
-
- return 0;
-}
-
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::find_or_create_svc_handler_i
-(SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
- int &found)
-{
- REFCOUNTED_HASH_RECYCLABLE_ADDRESS search_addr (remote_addr);
-
- // Try to find the address in the cache. Only if we don't find it
- // do we create a new <SVC_HANDLER> and connect it with the server.
- while (this->find (search_addr, entry) != -1)
- {
- // We found a cached svc_handler.
- // Get the cached <svc_handler>
- sh = entry->int_id_.first ();
-
- // Is the connection clean?
- int state_result =
- ACE::handle_ready (sh->peer ().get_handle (),
- &ACE_Time_Value::zero,
- 1, // read ready
- 0, // write ready
- 1);// exception ready
-
- if (state_result == 1)
- {
-
- if (sh->close () == -1)
- return -1;
-
- sh = 0;
-
- // Cycle it once again..
- }
- else if ((state_result == -1) && (errno == ETIME))
- {
- // Found!!!
- // Set the flag
- found = 1;
-
- // Tell the <svc_handler> that it should prepare itself for
- // being recycled.
- if (this->prepare_for_recycling (sh) == -1)
- return -1;
-
- return 0;
- }
- else
- {
- return -1;
- }
- }
-
- // Not found...
-
- // Set the flag
- found = 0;
-
- // We need to use a temporary variable here since we are not
- // allowed to change <sh> because other threads may use this
- // when we let go of the lock during the OS level connect.
- //
- // Note that making a new svc_handler, connecting remotely,
- // binding to the map, and assigning of the hint and recycler
- // should be atomic to the outside world.
- SVC_HANDLER *potential_handler = 0;
-
- // Create a new svc_handler
- if (this->make_svc_handler (potential_handler) == -1)
- return -1;
-
- // Connect using the svc_handler.
- if (this->cached_connect (potential_handler,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms) == -1)
- {
- // Close the svc handler.
- potential_handler->close (0);
-
- return -1;
- }
- else
- {
- // Insert the new SVC_HANDLER instance into the cache.
- if (this->connection_cache_.bind (search_addr,
- potential_handler,
- entry) == -1)
- {
- // Close the svc handler and reset <sh>.
- potential_handler->close (0);
-
- return -1;
- }
-
- // Everything succeeded as planned. Assign <sh> to
- // <potential_handler>.
- sh = potential_handler;
-
- // Set the recycler and the recycling act
-
- this->assign_recycler (sh, this, entry);
- }
-
- return 0;
-}
-
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cached_connect (SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms)
-{
- // Actively establish the connection. This is a timed blocking
- // connect.
- if (this->new_connection (sh,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms) == -1)
- {
- // If connect() failed because of timeouts, we have to reject
- // the connection entirely. This is necessary since currently
- // there is no way for the non-blocking connects to complete and
- // for the <Connector> to notify the cache of the completion of
- // connect().
-
- if (errno == EWOULDBLOCK)
- errno = ENOTSUP;
- else if (ACE::out_of_handles (errno))
- {
- // If the connect failed due to the process running out of
- // file descriptors then, auto_purging of some connections
- // are done from the CONNECTION_CACHE. This frees the
- // descriptors which get used in the connect process and
- // hence the same method is called again!
- if (this->purge_connections () == -1)
- return -1;
-
- // Try connecting again.
- if (this->new_connection (sh,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms) == -1)
- {
- if (errno == EWOULDBLOCK)
- errno = ENOTSUP;
- return -1;
- }
- }
- else
- {
- return -1;
- }
- }
-
- return 0;
-
-}
-
-
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::connect_svc_handler_i
-(SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- int& found)
-{
- CONNECTION_CACHE_ENTRY *entry = 0;
-
- // Check if the user passed a hint svc_handler
- if (sh != 0)
- {
-
- int result = this->check_hint_i (sh,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms,
- entry,
- found);
- if (result != 0)
- return result;
- }
-
- // If not found
- if (!found)
- {
- int result = this->find_or_create_svc_handler_i (sh,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms,
- entry,
- found);
-
- if (result != 0)
- return result;
-
- }
-
- // For all successful cases: mark the <svc_handler> in the cache
- // as being <in_use>. Therefore recyclable is BUSY.
- entry->ext_id_.recycle_state (ACE_RECYCLABLE_BUSY);
-
- // And increment the refcount
- entry->ext_id_.increment ();
-
- return 0;
-}
-
-
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cache_i (const void *recycling_act)
-{
- // The wonders and perils of ACT
- CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
-
- // Mark the <svc_handler> in the cache as not being <in_use>.
- // Therefore recyclable is IDLE.
- entry->ext_id_.recycle_state (ACE_RECYCLABLE_IDLE_AND_PURGABLE);
-
- return 0;
-}
-
-template<ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::recycle_state_i (const void *recycling_act,
- ACE_Recyclable_State new_state)
-{
- // The wonders and perils of ACT
- CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
-
- // Mark the <svc_handler> in the cache as not being <in_use>.
- // Therefore recyclable is IDLE.
- entry->ext_id_.recycle_state (new_state);
-
- return 0;
-}
-
-template<ACE_T1> ACE_Recyclable_State
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::recycle_state_i (const void *recycling_act) const
-{
- // The wonders and perils of ACT
- CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
-
- // Mark the <svc_handler> in the cache as not being <in_use>.
- // Therefore recyclable is IDLE.
- return entry->ext_id_.recycle_state ();
-}
-
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::purge_i (const void *recycling_act)
-{
- // The wonders and perils of ACT
- CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
-
- return this->connection_cache_.unbind (entry);
-}
-
-
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::mark_as_closed_i (const void *recycling_act)
-{
- // The wonders and perils of ACT
- CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
-
- // Mark the <svc_handler> in the cache as CLOSED.
- entry->ext_id_.recycle_state (ACE_RECYCLABLE_CLOSED);
-
- return 0;
-}
-
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cleanup_hint_i (const void *recycling_act,
- void **act_holder)
-{
- // Reset the <*act_holder> in the confines and protection of the
- // lock.
- if (act_holder)
- *act_holder = 0;
-
- // The wonders and perils of ACT
- CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
-
- // Decrement the refcount on the <svc_handler>.
- int refcount = entry->ext_id_.decrement ();
-
- // If the svc_handler state is closed and the refcount == 0, call
- // close() on svc_handler.
- if (entry->ext_id_.recycle_state () == ACE_RECYCLABLE_CLOSED &&
- refcount == 0)
- {
- entry->int_id_.first ()->recycler (0, 0);
- entry->int_id_.first ()->close ();
- this->purge_i (entry);
- }
-
- return 0;
-}
-
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::purge_connections (void)
-{
- return this->connection_cache_.purge ();
-}
-
-template <ACE_T1> CACHING_STRATEGY &
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::caching_strategy (void)
-{
- return this->connection_cache_.caching_strategy ();
-}
-
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::find (ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR> &search_addr,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry)
-{
- typedef ACE_Hash_Map_Bucket_Iterator<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,
- ACE_Pair<SVC_HANDLER *, ATTRIBUTES>,
- ACE_Hash<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
- ACE_Equal_To<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
- ACE_Null_Mutex>
- CONNECTION_CACHE_BUCKET_ITERATOR;
-
- CONNECTION_CACHE_BUCKET_ITERATOR iterator (this->connection_cache_.map (),
- search_addr);
-
- CONNECTION_CACHE_BUCKET_ITERATOR end (this->connection_cache_.map (),
- search_addr,
- 1);
-
- for (;
- iterator != end;
- ++iterator)
- {
- REFCOUNTED_HASH_RECYCLABLE_ADDRESS &addr = (*iterator).ext_id_;
-
- if (addr.recycle_state () != ACE_RECYCLABLE_IDLE_AND_PURGABLE &&
- addr.recycle_state () != ACE_RECYCLABLE_IDLE_BUT_NOT_PURGABLE)
- continue;
-
- if (addr.subject () != search_addr.subject ())
- continue;
-
- entry = &(*iterator);
-
- //
- // Update the caching attributes directly since we don't do a
- // find() on the cache map.
- //
-
- // Indicates successful find.
- int find_result = 0;
-
- int result = this->caching_strategy ().notify_find (find_result,
- entry->int_id_.second ());
-
- if (result == -1)
- return result;
-
- return 0;
- }
-
- return -1;
-}
-
-template <ACE_T1> void
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cleanup (void)
-{
- // Excluded other threads from changing the cache while we cleanup
- ACE_GUARD (MUTEX, ace_mon, *this->lock_);
- // Close down all cached service handlers.
-#if defined (ACE_HAS_BROKEN_EXTENDED_TEMPLATES)
-
- typedef ACE_Hash_Map_Iterator_Ex<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,
- ACE_Pair<SVC_HANDLER *, ATTRIBUTES>,
- ACE_Hash<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
- ACE_Equal_To<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
- ACE_Null_Mutex>
- CONNECTION_MAP_ITERATOR;
-
- // CONNECTION_MAP_ITERATOR end = this->connection_cache_.map ().end ();
- CONNECTION_MAP_ITERATOR iter = this->connection_cache_.map ().begin ();
-
-
- while (iter != this->connection_cache_.map ().end ())
- {
- if ((*iter).int_id_.first () != 0)
- {
- // save entry for future use
- CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *)
- (*iter).int_id_.first ()->recycling_act ();
-
- // close handler
- (*iter).int_id_.first ()->recycler (0, 0);
- (*iter).int_id_.first ()->close ();
-
- // remember next iter
- CONNECTION_MAP_ITERATOR next_iter = iter;
- ++next_iter;
-
- // purge the item from the hash
- this->purge_i (entry);
-
- // assign next iter
- iter = next_iter;
- }
- else
- ++iter;
- }
-#else /* ACE_HAS_BROKEN_EXTENDED_TEMPLATES */
- ACE_TYPENAME CONNECTION_CACHE::ITERATOR iter =
- this->connection_cache_.begin ();
- while (iter != this->connection_cache_.end ())
- {
- if ((*iter).second () != 0)
- {
- // save entry for future use
- CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *)
- (*iter).second ()->recycling_act ();
-
- // close handler
- (*iter).second ()->recycler (0, 0);
- (*iter).second ()->close ();
-
- // remember next iter
- ACE_TYPENAME CONNECTION_CACHE::ITERATOR next_iter = iter;
- ++next_iter;
-
- // purge the item from the hash
- this->purge_i (entry);
-
- // assign next iter
- iter = next_iter;
- }
- else
- ++iter;
- }
-#endif /* ACE_HAS_BROKEN_EXTENDED_TEMPLATES */
-
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Cached_Connect_Strategy_Ex)
-/////////////////////////////////////////////////////////////////////////
-
-template <ACE_T1>
-ACE_Bounded_Cached_Connect_Strategy<ACE_T2>::ACE_Bounded_Cached_Connect_Strategy
-(size_t max_size,
- CACHING_STRATEGY &caching_s,
- ACE_Creation_Strategy<SVC_HANDLER> *cre_s,
- ACE_Concurrency_Strategy<SVC_HANDLER> *con_s,
- ACE_Recycling_Strategy<SVC_HANDLER> *rec_s,
- MUTEX *lock,
- int delete_lock)
- : CCSEBASE (caching_s, cre_s, con_s, rec_s, lock, delete_lock),
- max_size_ (max_size)
-{
-}
-
-template <ACE_T1>
-ACE_Bounded_Cached_Connect_Strategy<ACE_T2>::~ACE_Bounded_Cached_Connect_Strategy(void)
-{
-}
-
-template <ACE_T1>
-int
-ACE_Bounded_Cached_Connect_Strategy<ACE_T2>::find_or_create_svc_handler_i
-(SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>,
- ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
- int &found)
-{
-
- REFCOUNTED_HASH_RECYCLABLE_ADDRESS search_addr (remote_addr);
-
- // Try to find the address in the cache. Only if we don't find it
- // do we create a new <SVC_HANDLER> and connect it with the server.
- while (this->find (search_addr, entry) != -1)
- {
- // We found a cached svc_handler.
- // Get the cached <svc_handler>
- sh = entry->int_id_.first ();
-
- // Is the connection clean?
- int state_result= ACE::handle_ready (sh->peer ().get_handle (),
- &ACE_Time_Value::zero,
- 1, // read ready
- 0, // write ready
- 1);// exception ready
-
- if (state_result == 1)
- {
- // The connection was disconnected during idle.
- // close the svc_handler down.
- if (sh->close () == -1)
- {
- ACE_ASSERT (0);
- return -1;
- }
- sh = 0;
- // and rotate once more...
- }
- else if ((state_result == -1) && (errno == ETIME))
- {
- // Found!!!
- // Set the flag
- found = 1;
-
- // Tell the <svc_handler> that it should prepare itself for
- // being recycled.
- if (this->prepare_for_recycling (sh) == -1)
- {
- ACE_ASSERT (0);
- return -1;
- }
-
- return 0;
- }
- else // some other return value or error...
- {
- ACE_ASSERT (0); // just to see it coming
-
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("(%t)ACE_Bounded_Cached_Connect_Strategy<>::")
- ACE_LIB_TEXT ("find_or_create_svc_handler_i - ")
- ACE_LIB_TEXT ("error polling server socket state.\n")));
-
- return -1;
- }
- }
-
- // Not found...
-
- // Set the flag
- found = 0;
-
- // Check the limit of handlers...
- if ((this->max_size_ > 0) &&
- (this->connection_cache_.current_size () >= this->max_size_))
- {
- // Try to purge idle connections
- if (this->purge_connections () == -1)
- return -1;
-
- // Check limit again.
- if (this->connection_cache_.current_size () >= this->max_size_)
- // still too much!
- return -1;
-
- // OK, we have room now...
- }
-
- // We need to use a temporary variable here since we are not
- // allowed to change <sh> because other threads may use this
- // when we let go of the lock during the OS level connect.
- //
- // Note that making a new svc_handler, connecting remotely,
- // binding to the map, and assigning of the hint and recycler
- // should be atomic to the outside world.
- SVC_HANDLER *potential_handler = 0;
-
- // Create a new svc_handler
- if (this->make_svc_handler (potential_handler) == -1)
- return -1;
-
- // Connect using the svc_handler.
- if (this->cached_connect (potential_handler,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms) == -1)
- {
- // Close the svc handler.
- potential_handler->close (0);
- return -1;
- }
- else
- {
- // Insert the new SVC_HANDLER instance into the cache.
- if (this->connection_cache_.bind (search_addr,
- potential_handler,
- entry) == -1)
- {
- // Close the svc handler and reset <sh>.
- potential_handler->close (0);
-
- return -1;
- }
-
- // Everything succeeded as planned. Assign <sh> to
- // <potential_handler>.
- sh = potential_handler;
-
- // Set the recycler and the recycling act
- this->assign_recycler (sh, this, entry);
- }
-
- return 0;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Bounded_Cached_Connect_Strategy)
-
-#undef ACE_T1
-#undef ACE_T2
-
-#endif /* CACHED_CONNECT_STRATEGY_T_C */
diff --git a/ace/Cached_Connect_Strategy_T.h b/ace/Cached_Connect_Strategy_T.h
deleted file mode 100644
index 67a04d90fe8..00000000000
--- a/ace/Cached_Connect_Strategy_T.h
+++ /dev/null
@@ -1,260 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Cached_Connect_Strategy_T.h
- *
- * $Id$
- *
- * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef CACHED_CONNECT_STRATEGY_T_H
-#define CACHED_CONNECT_STRATEGY_T_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Strategies_T.h"
-#include "ace/Hash_Cache_Map_Manager_T.h"
-#include "ace/Caching_Strategies_T.h"
-#include "ace/Functor_T.h"
-#include "ace/Pair_T.h"
-#include "ace/Synch.h"
-
-// For linkers which cant grok long names...
-#define ACE_Cached_Connect_Strategy_Ex ACCSE
-
-/**
- * @class ACE_Cached_Connect_Strategy_Ex
- *
- * @brief A connection strategy which caches connections to peers
- * (represented by <SVC_HANDLER> instances), thereby allowing
- * subsequent re-use of unused, but available, connections.
- *
- * <Cached_Connect_Strategy> is intended to be used as a
- * plug-in connection strategy for <ACE_Strategy_Connector>.
- * It's added value is re-use of established connections and
- * tweaking the role of the cache as per the caching strategy.
- */
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX>
-class ACE_Cached_Connect_Strategy_Ex
- : public ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>
-{
-public:
- /// Constructor
- ACE_Cached_Connect_Strategy_Ex (
- CACHING_STRATEGY &caching_s,
- ACE_Creation_Strategy<SVC_HANDLER> *cre_s = 0,
- ACE_Concurrency_Strategy<SVC_HANDLER> *con_s = 0,
- ACE_Recycling_Strategy<SVC_HANDLER> *rec_s = 0,
- MUTEX *lock = 0,
- int delete_lock = 0);
-
- /// Destructor
- virtual ~ACE_Cached_Connect_Strategy_Ex (void);
-
- /// Explicit purging of connection entries from the connection cache.
- virtual int purge_connections (void);
-
- /// Mark as closed (non-locking version). This is used during the cleanup of the
- /// connections purged.
- virtual int mark_as_closed_i (const void *recycling_act);
-
- /**
- * Since g++ version < 2.8 arent happy with templates, this special
- * method had to be devised to avoid memory leaks and perform
- * cleanup of the <connection_cache_>.
- */
- void cleanup (void);
-
- // = Typedefs for managing the map
- typedef ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>
- REFCOUNTED_HASH_RECYCLABLE_ADDRESS;
- typedef ACE_Hash_Cache_Map_Manager<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,
- SVC_HANDLER *,
- ACE_Hash<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
- ACE_Equal_To<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
- CACHING_STRATEGY,
- ATTRIBUTES>
- CONNECTION_CACHE;
- typedef ACE_TYPENAME CONNECTION_CACHE::CACHE_ENTRY CONNECTION_CACHE_ENTRY;
- typedef ACE_TYPENAME CONNECTION_CACHE::key_type KEY;
- typedef ACE_TYPENAME CONNECTION_CACHE::mapped_type VALUE;
-
- typedef ACE_Recyclable_Handler_Cleanup_Strategy<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,
- ACE_Pair<SVC_HANDLER *, ATTRIBUTES>,
- ACE_Hash_Map_Manager_Ex<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,
- ACE_Pair<SVC_HANDLER *, ATTRIBUTES>,
- ACE_Hash<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
- ACE_Equal_To<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
- MUTEX> >
- CLEANUP_STRATEGY;
-
- typedef ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>
- CCSBASE;
-
- // = Accessor.
- CACHING_STRATEGY &caching_strategy (void);
-
-protected:
-
- /// Find an idle handle.
- int find (ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR> &search_addr,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry);
-
- /// Remove from cache (non-locking version).
- virtual int purge_i (const void *recycling_act);
-
- /// Add to cache (non-locking version).
- virtual int cache_i (const void *recycling_act);
-
- /// Get/Set <recycle_state> (non-locking version).
- virtual int recycle_state_i (const void *recycling_act,
- ACE_Recyclable_State new_state);
- virtual ACE_Recyclable_State recycle_state_i (const void *recycling_act) const;
-
- /// Cleanup hint and reset <*act_holder> to zero if <act_holder != 0>.
- virtual int cleanup_hint_i (const void *recycling_act,
- void **act_holder);
-
- // = Helpers
- int check_hint_i (SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
- int &found);
-
- virtual int find_or_create_svc_handler_i (SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
- int &found);
-
- virtual int connect_svc_handler_i (SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- int &found);
-
- /**
- * Connection of the svc_handler with the remote host. This method
- * also encapsulates the connection done with auto_purging under the
- * hood. If the connect failed due to the process running out of
- * file descriptors then, auto_purging of some connections are done
- * from the CONNECTION_CACHE. This frees the descriptors which get
- * used in the connect process and hence the connect operation can
- * succeed.
- */
- virtual int cached_connect (SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms);
-
- /// Table that maintains the cache of connected <SVC_HANDLER>s.
- CONNECTION_CACHE connection_cache_;
-};
-
-/////////////////////////////////////////////////////////////////////////////
-
-// For linkers which cant grok long names...
-#define ACE_Bounded_Cached_Connect_Strategy ABCCS
-
-/**
- * @class ACE_Bounded_Cached_Connect_Strategy
- *
- * @brief A connection strategy which caches connections to peers
- * (represented by <SVC_HANDLER> instances), thereby allowing
- * subsequent re-use of unused, but available, connections.
- * This strategy should be used when the cache is bounded by
- * maximum size.
- *
- * <Bounded_Cached_Connect_Strategy> is intended to be used as a
- * plug-in connection strategy for <ACE_Strategy_Connector>.
- * It's added value is re-use of established connections and
- * tweaking the role of the cache as per the caching strategy.
- * Thanks to Edan Ayal <edana@bandwiz.com> for contributing this
- * class and Susan Liebeskind <shl@janis.gtri.gatech.edu> for
- * brainstorming about it.
- */
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1,
- class CACHING_STRATEGY, class ATTRIBUTES,
- class MUTEX>
-class ACE_Bounded_Cached_Connect_Strategy
- : public ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>
-{
-
- typedef ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>
- CCSEBASE;
-
- // = Typedefs for managing the map
- typedef ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>
- REFCOUNTED_HASH_RECYCLABLE_ADDRESS;
-
-public:
-
- /// Constructor
- ACE_Bounded_Cached_Connect_Strategy (size_t max_size,
- CACHING_STRATEGY &caching_s,
- ACE_Creation_Strategy<SVC_HANDLER> *cre_s = 0,
- ACE_Concurrency_Strategy<SVC_HANDLER> *con_s = 0,
- ACE_Recycling_Strategy<SVC_HANDLER> *rec_s = 0,
- MUTEX *lock = 0,
- int delete_lock = 0);
-
- /// Destructor
- virtual ~ACE_Bounded_Cached_Connect_Strategy (void);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
-
- virtual int find_or_create_svc_handler_i (SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>,
- ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
- int &found);
-
-protected:
-
- /// max items in the cache, used as a bound for the creation of svc_handlers.
- size_t max_size_;
-};
-
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Cached_Connect_Strategy_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Cached_Connect_Strategy_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* CACHED_CONNECT_STRATEGY_T_H */
diff --git a/ace/Caching_Strategies_T.cpp b/ace/Caching_Strategies_T.cpp
deleted file mode 100644
index 0d4f389c966..00000000000
--- a/ace/Caching_Strategies_T.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-//$Id$
-
-#ifndef CACHING_STRATEGIES_T_C
-#define CACHING_STRATEGIES_T_C
-
-#include "ace/Caching_Strategies_T.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Caching_Strategies_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#define ACE_LACKS_PRAGMA_ONCE
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, Caching_Strategies_T, "$Id$")
-
-template<class ATTRIBUTES, class CACHING_UTILITY>
-ACE_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::~ACE_Caching_Strategy (void)
-{
-}
-
-//////////////////////////////////////////////////////////////////////////////////
-
-template<class ATTRIBUTES, class CACHING_UTILITY>
-ACE_LRU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::ACE_LRU_Caching_Strategy (void)
- : timer_ (0),
- purge_percent_ (10)
-{
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-template<class ATTRIBUTES, class CACHING_UTILITY>
-ACE_LFU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::ACE_LFU_Caching_Strategy (void)
- : purge_percent_ (10)
-{
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-template<class ATTRIBUTES, class CACHING_UTILITY>
-ACE_FIFO_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::ACE_FIFO_Caching_Strategy (void)
- : order_ (0),
- purge_percent_ (10)
-{
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-ACE_ALLOC_HOOK_DEFINE(ACE_LRU_Caching_Strategy)
-ACE_ALLOC_HOOK_DEFINE(ACE_LFU_Caching_Strategy)
-ACE_ALLOC_HOOK_DEFINE(ACE_FIFO_Caching_Strategy)
-ACE_ALLOC_HOOK_DEFINE(ACE_Null_Caching_Strategy)
-
-#endif /* CACHING_STRATEGIES_T_C */
diff --git a/ace/Caching_Strategies_T.h b/ace/Caching_Strategies_T.h
deleted file mode 100644
index c637119087c..00000000000
--- a/ace/Caching_Strategies_T.h
+++ /dev/null
@@ -1,548 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Caching_Strategies_T.h
- *
- * $Id$
- *
- * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_CACHING_STRATEGIES_H
-#define ACE_CACHING_STRATEGIES_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-#include "ace/Caching_Utility_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined(_MSC_VER)
-#pragma warning(disable:4503)
-#endif /* _MSC_VER */
-
-// For linkers that cant grok long names.
-#define ACE_Caching_Strategy ACS
-
-/**
- * @class ACE_Caching_Strategy
- *
- * @brief This class is an abstract base class for a caching strategy.
- *
- * This class consists of all the interfaces a caching strategy should
- * have and is used in association with the
- * ACE_Caching_Strategy_Adaptor.
- */
-template <class ATTRIBUTES, class CACHING_UTILITY>
-class ACE_Caching_Strategy
-{
-public:
- /// Destructor.
- virtual ~ACE_Caching_Strategy (void);
-
- /// Accessor method for the timer attributes.
- virtual ATTRIBUTES attributes (void) = 0;
-
- /// Get the percentage of entries to purge.
- virtual double purge_percent (void) = 0;
-
- /// Set the percentage of entries to purge.
- virtual void purge_percent (double percentage) = 0;
-
- // = Strategy related Operations
-
- /// This method acts as a notification about the CONTAINERs bind
- /// method call.
- virtual int notify_bind (int result,
- const ATTRIBUTES &attr) = 0;
-
- /// This method acts as a notification about the CONTAINERs find
- /// method call
- virtual int notify_find (int result,
- ATTRIBUTES &attr) = 0;
-
- /// This method acts as a notification about the CONTAINERs unbind
- /// method call
- virtual int notify_unbind (int result,
- const ATTRIBUTES &attr) = 0;
-
- /// This method acts as a notification about the CONTAINERs trybind
- /// method call
- virtual int notify_trybind (int result,
- ATTRIBUTES &attr) = 0;
-
- /// This method acts as a notification about the CONTAINERs rebind
- /// method call
- virtual int notify_rebind (int result,
- const ATTRIBUTES &attr) = 0;
-
- /// Purge the cache.
- virtual CACHING_UTILITY &caching_utility (void) = 0;
-
- /// Dumps the state of the object.
- virtual void dump (void) const = 0;
-};
-
-//////////////////////////////////////////////////////////////////////////
-
-#define ACE_Caching_Strategy_Adapter ACSA
-
-/**
- * @class ACE_Caching_Strategy_Adapter
- *
- * @brief This class follows the Adaptor pattern and is used to provide
- * External Polymorphism by deriving from ACE_Caching_Strategy.
- *
- * This class simply delegates all requests to the
- * IMPLEMNETATION object within. This class should be passed in
- * place of the the abstract base ACE_Caching_Strategy class as
- * part of the External Polymorphism pattern.
- */
-template <class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION>
-class ACE_Caching_Strategy_Adapter
- : public ACE_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>
-{
-
-public:
-
- /// Constructor.
- ACE_Caching_Strategy_Adapter (IMPLEMENTATION *implementation = 0,
- int delete_implementation = 0);
-
- /// Destructor.
- ~ACE_Caching_Strategy_Adapter (void);
-
- /// Accessor method for the timer attributes.
- ATTRIBUTES attributes (void);
-
- /// Get the percentage of entries to purge.
- double purge_percent (void);
-
- /// Set the percentage of entries to purge.
- void purge_percent (double percentage);
-
- // = Strategy related Operations
-
- /// This method acts as a notification about the CONTAINERs bind
- /// method call.
- int notify_bind (int result,
- const ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs find
- /// method call
- int notify_find (int result,
- ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs unbind
- /// method call
- int notify_unbind (int result,
- const ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs trybind
- /// method call
- int notify_trybind (int result,
- ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs rebind
- /// method call
- int notify_rebind (int result,
- const ATTRIBUTES &attr);
-
- /// Accessor to the implementation.
- IMPLEMENTATION &implementation (void);
-
- /// Purge the cache.
- CACHING_UTILITY &caching_utility (void);
-
- /// Dumps the state of the object.
- void dump (void) const;
-
-private:
-
- /// Implementation class.
- IMPLEMENTATION *implementation_;
-
- /// Do we need to delete the implementation?
- int delete_implementation_;
-};
-
-//////////////////////////////////////////////////////////////////////////
-#define ACE_LRU_Caching_Strategy ALRU
-
-/**
- * @class ACE_LRU_Caching_Strategy
- *
- * @brief Defines a Least Recently Used strategy which will decide on
- * the item to be removed from the cache.
- *
- * This is a strategy which makes use of a virtual timer which
- * is updated whenever an item is inserted or looked up in the
- * container. When the need of purging entries arises, the items
- * with the lowest timer values are removed.
- * Explanation of the template parameter list:
- * CONTAINER is any map with entries of type <KEY, VALUE>.
- * The ATTRIBUTES are the deciding factor for purging of entries
- * and should logically be included with the VALUE. Some ways of
- * doing this are: As being a member of the VALUE or VALUE being
- * ACE_Pair<x, ATTRIBUTES>. The CACHING_UTILITY is the
- * class which can be plugged in and which decides the entries
- * to purge.
- */
-template <class ATTRIBUTES, class CACHING_UTILITY>
-class ACE_LRU_Caching_Strategy
-{
-public:
-
- // Traits.
- typedef ATTRIBUTES CACHING_ATTRIBUTES;
-
- // = Initialisation and termination.
-
- /**
- * The <container> is the map in which the entries reside. The
- * timer attribute is initialed to zero in this constructor. And
- * the <purge_percent> field denotes the percentage of the entries
- * in the cache which can be purged automagically and by default is
- * set to 10%.
- */
- ACE_LRU_Caching_Strategy (void);
-
- // = Operations of the strategy.
-
- /// Accessor method for the timer attributes.
- ATTRIBUTES attributes (void);
-
- /// Get the percentage of entries to purge.
- double purge_percent (void);
-
- /// Set the percentage of entries to purge.
- void purge_percent (double percentage);
-
- // = Strategy related Operations
-
- /// This method acts as a notification about the CONTAINERs bind
- /// method call.
- int notify_bind (int result,
- const ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs find
- /// method call
- int notify_find (int result,
- ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs unbind
- /// method call
- int notify_unbind (int result,
- const ATTRIBUTES &attr);
-
-
- /// This method acts as a notification about the CONTAINERs trybind
- /// method call
- int notify_trybind (int result,
- ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs rebind
- /// method call
- int notify_rebind (int result,
- const ATTRIBUTES &attr);
-
- /// Purge the cache.
- CACHING_UTILITY &caching_utility (void);
-
- /// Dumps the state of the object.
- void dump (void) const;
-
-private:
-
- /// This element is the one which is the deciding factor for purging
- /// of an ITEM.
- ATTRIBUTES timer_;
-
- /// The level about which the purging will happen automagically.
- double purge_percent_;
-
- /// This is the helper class which will decide and expunge entries
- /// from the cache.
- CACHING_UTILITY caching_utility_;
-};
-
-//////////////////////////////////////////////////////////////////////////
-#define ACE_LFU_Caching_Strategy ALFU
-
-/**
- * @class ACE_LFU_Caching_Strategy
- *
- * @brief Defines a Least Frequently Used strategy for which will decide on
- * the item to be removed from the cache.
- *
- * A attribute is tagged to each item which increments whenever
- * the item is bound or looked up in the cache. Thus it denotes
- * the frequency of use. According to the value of the attribute
- * the item is removed from the CONTAINER i.e cache.
- * Explanation of the template parameter list:
- * CONTAINER is any map with entries of type <KEY, VALUE>.
- * The ATTRIBUTES are the deciding factor for purging of entries
- * and should logically be included with the VALUE. Some ways of
- * doing this are: As being a member of the VALUE or VALUE being
- * ACE_Pair<x, ATTRIBUTES>. The CACHING_UTILITY is the
- * class which can be plugged in and which decides the entries
- * to purge.
- */
-template <class ATTRIBUTES, class CACHING_UTILITY>
-class ACE_LFU_Caching_Strategy
-{
-
-public:
-
- // Traits.
- typedef ATTRIBUTES CACHING_ATTRIBUTES;
-
- // = Initialisation and termination methods.
-
- /**
- * The <container> is the map in which the entries reside. The
- * timer attribute is initialed to zero in this constructor. And
- * the <purge_percent> field denotes the percentage of the entries
- * in the cache which can be purged automagically and by default is
- * set to 10%.
- */
- ACE_LFU_Caching_Strategy (void);
-
- // = Strategy methods.
-
- /// Access the attributes.
- ATTRIBUTES attributes (void);
-
- /// Get the percentage of entries to purge.
- double purge_percent (void);
-
- /// Set the percentage of entries to purge.
- void purge_percent (double percentage);
-
- // = Strategy related Operations
-
- /// This method acts as a notification about the CONTAINERs bind
- /// method call.
- int notify_bind (int result,
- const ATTRIBUTES &attr);
-
- /// Lookup notification.
- int notify_find (int result,
- ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs unbind
- /// method call
- int notify_unbind (int result,
- const ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs trybind
- /// method call
- int notify_trybind (int result,
- ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs rebind
- /// method call
- int notify_rebind (int result,
- const ATTRIBUTES &attr);
-
- /// Purge the cache.
- CACHING_UTILITY &caching_utility (void);
-
- /// Dumps the state of the object.
- void dump (void) const;
-
-private:
-
- /// The level about which the purging will happen automagically.
- double purge_percent_;
-
- /// This is the helper class which will decide and expunge entries
- /// from the cache.
- CACHING_UTILITY caching_utility_;
-};
-
-/////////////////////////////////////////////////////////////
-#define ACE_FIFO_Caching_Strategy AFIFO
-
-/**
- * @class ACE_FIFO_Caching_Strategy
- *
- * @brief The First In First Out strategy is implemented wherein each
- * item is ordered.
- *
- * The order tag of each item is used to decide the item to be
- * removed from the cache. The items with least order are removed.
- * Explanation of the template parameter list:
- * CONTAINER is any map with entries of type <KEY, VALUE>.
- * The ATTRIBUTES are the deciding factor for purging of entries
- * and should logically be included with the VALUE. Some ways of
- * doing this are: As being a member of the VALUE or VALUE being
- * ACE_Pair<x, ATTRIBUTES>. The CACHING_UTILITY is the
- * class which can be plugged in and which decides the entries
- * to purge.
- */
-template<class ATTRIBUTES, class CACHING_UTILITY>
-class ACE_FIFO_Caching_Strategy
-{
-
-public:
-
- typedef ATTRIBUTES CACHING_ATTRIBUTES;
-
- // = Initialisation and termination.
-
- /**
- * The <container> is the map in which the entries reside. The
- * timer attribute is initialed to zero in this constructor. And
- * the <purge_percent> field denotes the percentage of the entries
- * in the cache which can be purged automagically and by default is
- * set to 10%.
- */
- ACE_FIFO_Caching_Strategy (void);
-
- // = Strategy methods.
-
- /// Accessor method.
- ATTRIBUTES attributes (void);
-
- /// Get the percentage of entries to purge.
- double purge_percent (void);
-
- /// Set the percentage of entries to purge.
- void purge_percent (double percentage);
-
- // = Strategy related Operations
-
- /// Notification for an item getting bound into the cache.
- int notify_bind (int result,
- const ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs find
- /// method call
- int notify_find (int result,
- ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs unbind
- /// method call
- int notify_unbind (int result,
- const ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs trybind
- /// method call
- int notify_trybind (int result,
- ATTRIBUTES &attr);
-
- /// Notification for an item getting bound again into the cache.
- int notify_rebind (int result,
- const ATTRIBUTES &attr);
-
- /// Purge the cache.
- CACHING_UTILITY &caching_utility (void);
-
- /// Dumps the state of the object.
- void dump (void) const;
-
-private:
-
- /// The order is the deciding factor for the item to be removed from
- /// the cache.
- ATTRIBUTES order_;
-
- /// The level about which the purging will happen automagically.
- double purge_percent_;
-
- /// This is the helper class which will decide and expunge entries
- /// from the cache.
- CACHING_UTILITY caching_utility_;
-};
-
-//////////////////////////////////////////////////////////////////////
-#define ACE_Null_Caching_Strategy ANULL
-
-/**
- * @class ACE_Null_Caching_Strategy
- *
- * @brief The is a special caching strategy which doesnt have the purging
- * feature.
- *
- * No purging provided. To be used when purging might be too expensive
- * an operation.
- */
-template<class ATTRIBUTES, class CACHING_UTILITY>
-class ACE_Null_Caching_Strategy
-{
-
-public:
-
- // = Traits.
- typedef ATTRIBUTES CACHING_ATTRIBUTES;
-
- // = Strategy methods. All are NO_OP methods!!!
-
- /// Accessor method.
- ATTRIBUTES attributes (void);
-
- /// Get the percentage of entries to purge.
- double purge_percent (void);
-
- /// Set the percentage of entries to purge.
- void purge_percent (double percentage);
-
- // = Strategy related Operations
-
- /// Notification for an item getting bound into the cache.
- int notify_bind (int result,
- const ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs find
- /// method call
- int notify_find (int result,
- ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs unbind
- /// method call
- int notify_unbind (int result,
- const ATTRIBUTES &attr);
-
- /// This method acts as a notification about the CONTAINERs trybind
- /// method call
- int notify_trybind (int result,
- ATTRIBUTES &attr);
-
- /// Notification for an item getting bound again into the cache.
- int notify_rebind (int result,
- const ATTRIBUTES &attr);
-
- /// Purge the cache.
- CACHING_UTILITY &caching_utility (void);
-
- /// Dumps the state of the object.
- void dump (void) const;
-
-private:
-
- /// This is the helper class which will decide and expunge entries
- /// from the cache.
- CACHING_UTILITY caching_utility_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Caching_Strategies_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Caching_Strategies_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Caching_Strategies_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_CACHING_STRATEGIES_H */
diff --git a/ace/Caching_Strategies_T.i b/ace/Caching_Strategies_T.i
deleted file mode 100644
index b57b9fc4f38..00000000000
--- a/ace/Caching_Strategies_T.i
+++ /dev/null
@@ -1,448 +0,0 @@
-/* -*-C++-*- */
-//$Id$
-
-//////////////////////////////////////////////////////////////////////////////////
-
-template<class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION> ACE_INLINE
-ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, IMPLEMENTATION>::ACE_Caching_Strategy_Adapter (IMPLEMENTATION *implementation,
- int delete_implementation)
- : implementation_ (implementation),
- delete_implementation_ (delete_implementation)
-{
- if (this->implementation_ == 0)
- {
- ACE_NEW (this->implementation_,
- IMPLEMENTATION);
- this->delete_implementation_ = 1;
- }
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION> ACE_INLINE
-ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, IMPLEMENTATION>::~ACE_Caching_Strategy_Adapter (void)
-{
- if (this->delete_implementation_)
- {
- delete this->implementation_;
- this->delete_implementation_ = 0;
- this->implementation_ = 0;
- }
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION> ACE_INLINE ATTRIBUTES
-ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, IMPLEMENTATION>::attributes (void)
-{
- return this->implementation_->attributes ();
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION> ACE_INLINE double
-ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, IMPLEMENTATION>::purge_percent (void)
-{
- return this->implementation_->purge_percent ();
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION> ACE_INLINE void
-ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, IMPLEMENTATION>::purge_percent (double percentage)
-{
- this->implementation_->purge_percent (percentage);
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION> ACE_INLINE int
-ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, IMPLEMENTATION>::notify_bind (int result,
- const ATTRIBUTES &attr)
-{
- return this->implementation_->notify_bind (result,
- attr);
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION> ACE_INLINE int
-ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, IMPLEMENTATION>::notify_find (int result,
- ATTRIBUTES &attr)
-{
- return this->implementation_->notify_find (result,
- attr);
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION> ACE_INLINE int
-ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, IMPLEMENTATION>::notify_unbind (int result,
- const ATTRIBUTES &attr)
-{
- return this->implementation_->notify_unbind (result,
- attr);
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION> ACE_INLINE int
-ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, IMPLEMENTATION>::notify_trybind (int result,
- ATTRIBUTES &attr)
-{
- return this->implementation_->notify_trybind (result,
- attr);
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION> ACE_INLINE int
-ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, IMPLEMENTATION>::notify_rebind (int result,
- const ATTRIBUTES &attr)
-{
- return this->implementation_->notify_rebind (result,
- attr);
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION> ACE_INLINE IMPLEMENTATION &
-ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, IMPLEMENTATION>::implementation (void)
-{
- return *this->implementation_;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION> ACE_INLINE CACHING_UTILITY &
-ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, IMPLEMENTATION>::caching_utility (void)
-{
- return this->implementation_->caching_utility ();
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY, class IMPLEMENTATION> ACE_INLINE void
-ACE_Caching_Strategy_Adapter<ATTRIBUTES, CACHING_UTILITY, IMPLEMENTATION>::dump (void) const
-{
- ACE_TRACE ("ACE_Caching_Strategy_Adapter::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-//////////////////////////////////////////////////////////////////////////////////
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE ATTRIBUTES
-ACE_LRU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::attributes (void)
-{
- return this->timer_;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE double
-ACE_LRU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::purge_percent (void)
-{
- return this->purge_percent_;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE void
-ACE_LRU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::purge_percent (double percentage)
-{
- this->purge_percent_ = percentage;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_LRU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_bind (int result,
- const ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- if (result == 0)
- ++this->timer_;
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_LRU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_find (int result,
- ATTRIBUTES &attr)
-{
- if (result == 0)
- {
- attr = this->timer_;
- ++this->timer_;
- }
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_LRU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_unbind (int result,
- const ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_LRU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_trybind (int result,
- ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_LRU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_rebind (int result,
- const ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- if (result == 0)
- ++this->timer_;
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE CACHING_UTILITY &
-ACE_LRU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::caching_utility (void)
-{
- return this->caching_utility_;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE void
-ACE_LRU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::dump (void) const
-{
- ACE_TRACE ("ACE_LRU_Caching_Strategy::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("timer_ = %d "), this->timer_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-//////////////////////////////////////////////////////////////////////////////////
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE ATTRIBUTES
-ACE_LFU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::attributes (void)
-{
- return 0;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE double
-ACE_LFU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::purge_percent (void)
-{
- return this->purge_percent_;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE void
-ACE_LFU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::purge_percent (double percentage)
-{
- this->purge_percent_ = percentage;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_LFU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_bind (int result,
- const ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_LFU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_find (int result,
- ATTRIBUTES &attr)
-{
- if (result == 0)
- ++attr;
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_LFU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_trybind (int result,
- ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_LFU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_rebind (int result,
- const ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_LFU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_unbind (int result,
- const ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE CACHING_UTILITY &
-ACE_LFU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::caching_utility (void)
-{
- return this->caching_utility_;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE void
-ACE_LFU_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::dump (void) const
-{
- ACE_TRACE ("ACE_LFU_Caching_Strategy::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-//////////////////////////////////////////////////////////////////////////////////////
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE ATTRIBUTES
-ACE_FIFO_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::attributes (void)
-{
- return this->order_;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE double
-ACE_FIFO_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::purge_percent (void)
-{
- return this->purge_percent_;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE void
-ACE_FIFO_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::purge_percent (double percentage)
-{
- this->purge_percent_ = percentage;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_FIFO_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_bind (int result,
- const ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- if (result == 0)
- ++this->order_;
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_FIFO_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_find (int result,
- ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_FIFO_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_unbind (int result,
- const ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_FIFO_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_trybind (int result,
- ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_FIFO_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_rebind (int result,
- const ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- if (result == 0)
- ++this->order_;
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE CACHING_UTILITY &
-ACE_FIFO_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::caching_utility (void)
-{
- return this->caching_utility_;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE void
-ACE_FIFO_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::dump (void) const
-{
- ACE_TRACE ("ACE_FIFO_Caching_Strategy::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("order_ = %d "), this->order_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-//////////////////////////////////////////////////////////////////////////////////
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE ATTRIBUTES
-ACE_Null_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::attributes (void)
-{
- return 0;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE double
-ACE_Null_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::purge_percent (void)
-{
- return 0;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE void
-ACE_Null_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::purge_percent (double percentage)
-{
- ACE_UNUSED_ARG (percentage);
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_Null_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_bind (int result,
- const ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_Null_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_find (int result,
- ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_Null_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_unbind (int result,
- const ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_Null_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_trybind (int result,
- ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE int
-ACE_Null_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::notify_rebind (int result,
- const ATTRIBUTES &attr)
-{
- ACE_UNUSED_ARG (attr);
-
- return result;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE CACHING_UTILITY &
-ACE_Null_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::caching_utility (void)
-{
- return this->caching_utility_;
-}
-
-template<class ATTRIBUTES, class CACHING_UTILITY> ACE_INLINE void
-ACE_Null_Caching_Strategy<ATTRIBUTES, CACHING_UTILITY>::dump (void) const
-{
- ACE_TRACE ("ACE_Null_Caching_Strategy::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-//////////////////////////////////////////////////////////////////////////////////
diff --git a/ace/Caching_Utility_T.cpp b/ace/Caching_Utility_T.cpp
deleted file mode 100644
index 351255c1dfa..00000000000
--- a/ace/Caching_Utility_T.cpp
+++ /dev/null
@@ -1,502 +0,0 @@
-// $Id$
-
-#ifndef CACHING_UTILITY_T_C
-#define CACHING_UTILITY_T_C
-
-#include "ace/Caching_Utility_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#define ACE_LACKS_PRAGMA_ONCE
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Min_Max.h"
-#include "ace/OS_Memory.h"
-// #include "ace/Strategies.h"
-#include "ace/Recyclable.h"
-
-ACE_RCSID(ace, Caching_Utility_T, "$Id$")
-
-//////////////////////////////////////////////////////////////////////////////
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-ACE_Pair_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::ACE_Pair_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy,
- int delete_cleanup_strategy)
- : cleanup_strategy_ (cleanup_strategy),
- delete_cleanup_strategy_ (delete_cleanup_strategy)
-{
- if (cleanup_strategy == 0)
- {
- ACE_NEW (this->cleanup_strategy_,
- CLEANUP_STRATEGY);
- this->delete_cleanup_strategy_ = 1;
- }
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-ACE_Pair_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::~ACE_Pair_Caching_Utility (void)
-{
- if (this->delete_cleanup_strategy_)
- delete this->cleanup_strategy_;
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> int
-ACE_Pair_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_cache (CONTAINER &container,
- double purge_percent)
-{
- // Check that the purge_percent is non-zero.
- if (purge_percent == 0)
- return 0;
-
- // Get the number of entries in the container.
- size_t current_map_size = container.current_size ();
-
- // Also whether the number of entries in the cache!
- // Oops! then there is no way out but exiting. So return an error.
- if (current_map_size == 0)
- return 0;
-
- // Calculate the no of entries to remove from the cache depending
- // upon the <purge_percent>.
- size_t entries_to_remove
- = ACE_MAX (ACE_static_cast (size_t, 1),
- ACE_static_cast (size_t,
- ACE_static_cast(double, purge_percent)
- / 100 * current_map_size));
- KEY *key_to_remove = 0;
- VALUE *value_to_remove = 0;
-
- for (size_t i = 0; i < entries_to_remove ; ++i)
- {
- this->minimum (container,
- key_to_remove,
- value_to_remove);
-
- // Simply verifying that the key is non-zero.
- // This is important for strategies where the minimum
- // entry cant be found due to constraints on the type of entry
- // to remove.
- if (key_to_remove == 0)
- return 0;
-
- if (this->cleanup_strategy_->cleanup (container,
- key_to_remove,
- value_to_remove) == -1)
- return -1;
-
- }
-
- return 0;
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> void
-ACE_Pair_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (CONTAINER &container,
- KEY *&key_to_remove,
- VALUE *&value_to_remove)
-{
- // Starting values.
- ITERATOR iter = container.begin ();
- ITERATOR end = container.end ();
- ATTRIBUTES min = (*iter).int_id_.second ();
- key_to_remove = &(*iter).ext_id_;
- value_to_remove = &(*iter).int_id_;
-
- // The iterator moves thru the container searching for the entry
- // with the lowest ATTRIBUTES.
- for (++iter;
- iter != end;
- ++iter)
- {
- if (min > (*iter).int_id_.second ())
- {
- // Ah! an item with lower ATTTRIBUTES...
- min = (*iter).int_id_.second ();
- key_to_remove = &(*iter).ext_id_;
- value_to_remove = &(*iter).int_id_;
- }
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-ACE_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::ACE_Recyclable_Handler_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy,
- int delete_cleanup_strategy)
- : cleanup_strategy_ (cleanup_strategy),
- delete_cleanup_strategy_ (delete_cleanup_strategy)
-{
- if (cleanup_strategy == 0)
- {
- ACE_NEW (this->cleanup_strategy_,
- CLEANUP_STRATEGY);
- this->delete_cleanup_strategy_ = 1;
- }
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-ACE_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::~ACE_Recyclable_Handler_Caching_Utility (void)
-{
- if (this->delete_cleanup_strategy_)
- delete this->cleanup_strategy_;
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> int
-ACE_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_cache (CONTAINER &container,
- double purge_percent)
-{
- // Check that the purge_percent is non-zero.
- if (purge_percent == 0)
- return 0;
-
- // Get the number of entries in the container.
- size_t current_map_size = container.current_size ();
-
- // Also whether the number of entries in the cache is just one!
- // Oops! then there is no way out but exiting. So return an error.
- // if (current_map_size <= 1)
- if (current_map_size == 0)
- return 0;
-
- // Calculate the no of entries to remove from the cache depending
- // upon the <purge_percent>.
- size_t entries_to_remove
- = ACE_MAX (ACE_static_cast (size_t, 1),
- ACE_static_cast(size_t,
- ACE_static_cast(double, purge_percent)
- / 100 * current_map_size));
-
- KEY *key_to_remove = 0;
- VALUE *value_to_remove = 0;
-
- for (size_t i = 0; i < entries_to_remove ; ++i)
- {
- this->minimum (container,
- key_to_remove,
- value_to_remove);
-
- // Simply verifying that the key is non-zero.
- // This is important for strategies where the minimum
- // entry cant be found due to constraints on the type of entry
- // to remove.
- if (key_to_remove == 0)
- return 0;
-
- if (this->cleanup_strategy_->cleanup (container,
- key_to_remove,
- value_to_remove) == -1)
- return -1;
- }
-
- return 0;
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> void
-ACE_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (CONTAINER &container,
- KEY *&key_to_remove,
- VALUE *&value_to_remove)
-{
- // Starting values.
- ITERATOR end = container.end ();
- ITERATOR iter = container.begin ();
- ATTRIBUTES min = (*iter).int_id_.second ();
- key_to_remove = 0;
- value_to_remove = 0;
- // Found the minimum entry to be purged?
- int found = 0;
-
- // The iterator moves thru the container searching for the entry
- // with the lowest ATTRIBUTES.
- for (;
- iter != end;
- ++iter)
- {
- // If the <min> entry isnt IDLE_AND_PURGABLE continue until you reach
- // the first entry which can be purged. This is the minimum with
- // which you will compare the rest of the purgable entries.
- if ((*iter).ext_id_.recycle_state () == ACE_RECYCLABLE_IDLE_AND_PURGABLE ||
- (*iter).ext_id_.recycle_state () == ACE_RECYCLABLE_PURGABLE_BUT_NOT_IDLE)
- {
- if (found == 0)
- {
- min = (*iter).int_id_.second ();
- key_to_remove = &(*iter).ext_id_;
- value_to_remove = &(*iter).int_id_;
- found = 1;
- }
- else
- {
- // Ah! an entry with lower ATTTRIBUTES...
- if (min > (*iter).int_id_.second ())
- {
- min = (*iter).int_id_.second ();
- key_to_remove = &(*iter).ext_id_;
- value_to_remove = &(*iter).int_id_;
- }
- }
- }
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::ACE_Refcounted_Recyclable_Handler_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy,
- int delete_cleanup_strategy)
- : cleanup_strategy_ (cleanup_strategy),
- delete_cleanup_strategy_ (delete_cleanup_strategy),
- marked_as_closed_entries_ (0)
-{
- if (cleanup_strategy == 0)
- {
- ACE_NEW (this->cleanup_strategy_,
- CLEANUP_STRATEGY);
- this->delete_cleanup_strategy_ = 1;
- }
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::~ACE_Refcounted_Recyclable_Handler_Caching_Utility (void)
-{
- if (this->delete_cleanup_strategy_)
- delete this->cleanup_strategy_;
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> int
-ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_cache (CONTAINER &container,
- double purge_percent)
-{
- // Check that the purge_percent is non-zero.
- if (purge_percent == 0)
- return 0;
-
- // Get the number of entries in the container which can be considered for purging.
- size_t available_entries = container.current_size () - this->marked_as_closed_entries_;
-
- // Also whether the number of entries in the cache zero.
- // Oops! then there is no way out but exiting.
- if (available_entries <= 0)
- return 0;
-
- // Calculate the no of entries to remove from the cache depending
- // upon the <purge_percent>.
- size_t entries_to_remove
- = ACE_MAX (ACE_static_cast (size_t, 1),
- ACE_static_cast(size_t,
- ACE_static_cast(double, purge_percent)
- / 100 * available_entries));
-
- if (entries_to_remove >= available_entries ||
- entries_to_remove == 0)
- entries_to_remove = available_entries - 1;
-
- KEY *key_to_remove = 0;
- VALUE *value_to_remove = 0;
-
- for (size_t i = 0; i < entries_to_remove ; ++i)
- {
- this->minimum (container,
- key_to_remove,
- value_to_remove);
-
- // Simply verifying that the key is non-zero.
- // This is important for strategies where the minimum
- // entry cant be found due to constraints on the type of entry
- // to remove.
- if (key_to_remove == 0)
- return 0;
-
- if (this->cleanup_strategy_->cleanup (container,
- key_to_remove,
- value_to_remove) == -1)
- return -1;
-
- ++this->marked_as_closed_entries_;
- }
-
- return 0;
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> void
-ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (CONTAINER &container,
- KEY *&key_to_remove,
- VALUE *&value_to_remove)
-{
- // Starting values.
- ITERATOR end = container.end ();
- ITERATOR iter = container.begin ();
- ATTRIBUTES min = (*iter).int_id_.second ();
- key_to_remove = 0;
- value_to_remove = 0;
- // Found the minimum entry to be purged?
- int found = 0;
-
- // The iterator moves thru the container searching for the entry
- // with the lowest ATTRIBUTES.
- for (;
- iter != end;
- ++iter)
- {
- // If the <min> entry isnt IDLE_AND_PURGABLE continue until you reach
- // the first entry which can be purged. This is the minimum with
- // which you will compare the rest of the purgable entries.
- if ((*iter).ext_id_.recycle_state () == ACE_RECYCLABLE_IDLE_AND_PURGABLE ||
- (*iter).ext_id_.recycle_state () == ACE_RECYCLABLE_PURGABLE_BUT_NOT_IDLE)
- {
- if (found == 0)
- {
- min = (*iter).int_id_.second ();
- key_to_remove = &(*iter).ext_id_;
- value_to_remove = &(*iter).int_id_;
- found = 1;
- }
- else
- {
- // Ah! an entry with lower ATTTRIBUTES...
- if (min > (*iter).int_id_.second ())
- {
- min = (*iter).int_id_.second ();
- key_to_remove = &(*iter).ext_id_;
- value_to_remove = &(*iter).int_id_;
- }
- }
- }
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-ACE_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::ACE_Handler_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy,
- int delete_cleanup_strategy)
- : cleanup_strategy_ (cleanup_strategy),
- delete_cleanup_strategy_ (delete_cleanup_strategy)
-{
- if (cleanup_strategy == 0)
- {
- ACE_NEW (this->cleanup_strategy_,
- CLEANUP_STRATEGY);
- this->delete_cleanup_strategy_ = 1;
- }
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-ACE_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::~ACE_Handler_Caching_Utility (void)
-{
- if (this->delete_cleanup_strategy_)
- delete this->cleanup_strategy_;
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> int
-ACE_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_cache (CONTAINER &container,
- double purge_percent)
-{
- // Check that the purge_percent is non-zero.
- if (purge_percent == 0)
- return 0;
-
- // Get the number of entries in the container.
- size_t current_map_size = container.current_size ();
-
- // Also whether the number of entries in the cache is just one!
- // Oops! then there is no way out but exiting. So return an error.
- if (current_map_size == 0)
- return 0;
-
- // Calculate the no of entries to remove from the cache depending
- // upon the <purge_percent>.
- size_t entries_to_remove
- = ACE_MAX (ACE_static_cast (size_t, 1),
- ACE_static_cast(size_t,
- ACE_static_cast(double, purge_percent)
- / 100 * current_map_size));
-
- KEY *key_to_remove = 0;
- VALUE *value_to_remove = 0;
-
- for (size_t i = 0; i < entries_to_remove ; ++i)
- {
- this->minimum (container,
- key_to_remove,
- value_to_remove);
-
- if (this->cleanup_strategy_->cleanup (container,
- key_to_remove,
- value_to_remove) == -1)
- return -1;
- }
-
- return 0;
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> void
-ACE_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (CONTAINER &container,
- KEY *&key_to_remove,
- VALUE *&value_to_remove)
-{
- // Starting values.
- ITERATOR iter = container.begin ();
- ITERATOR end = container.end ();
- ATTRIBUTES min = (*iter).int_id_->caching_attributes ();
- key_to_remove = &(*iter).ext_id_;
- value_to_remove = &(*iter).int_id_;
-
- // The iterator moves thru the container searching for the entry
- // with the lowest ATTRIBUTES.
- for (++iter;
- iter != end;
- ++iter)
- {
- if (min > (*iter).int_id_->caching_attributes () &&
- (*iter).int_id_->active () != 1)
- {
- // Ah! an item with lower ATTTRIBUTES...
- min = (*iter).int_id_->caching_attributes ();
- key_to_remove = &(*iter).ext_id_;
- value_to_remove = &(*iter).int_id_;
- }
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-ACE_Null_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::ACE_Null_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy,
- int delete_cleanup_strategy)
- : cleanup_strategy_ (cleanup_strategy),
- delete_cleanup_strategy_ (delete_cleanup_strategy)
-{
- if (cleanup_strategy == 0)
- {
- ACE_NEW (this->cleanup_strategy_,
- CLEANUP_STRATEGY);
- this->delete_cleanup_strategy_ = 1;
- }
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-ACE_Null_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::~ACE_Null_Caching_Utility (void)
-{
- if (this->delete_cleanup_strategy_)
- delete this->cleanup_strategy_;
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> int
-ACE_Null_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_cache (CONTAINER &container,
- double purge_percent)
-{
- ACE_UNUSED_ARG (container);
- ACE_UNUSED_ARG (purge_percent);
-
- return 0;
-}
-
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> void
-ACE_Null_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (CONTAINER &container,
- KEY *&key_to_remove,
- VALUE *&value_to_remove)
-{
- ACE_UNUSED_ARG (container);
- ACE_UNUSED_ARG (key_to_remove);
- ACE_UNUSED_ARG (value_to_remove);
-}
-
-#endif /* CACHING_UTILITY_T_C */
diff --git a/ace/Caching_Utility_T.h b/ace/Caching_Utility_T.h
deleted file mode 100644
index 8201934fba4..00000000000
--- a/ace/Caching_Utility_T.h
+++ /dev/null
@@ -1,343 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Caching_Utility_T.h
- *
- * $Id$
- *
- * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_CACHING_UTILITY_H
-#define ACE_CACHING_UTILITY_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Global_Macros.h"
-#include "ace/Cleanup_Strategies_T.h"
-
-// For linkers that cant grok long names.
-#define ACE_Pair_Caching_Utility APUTIL
-
-/**
- * @class ACE_Pair_Caching_Utility
- *
- * @brief Defines a helper class for the Caching Strategies.
- *
- * This class defines the methods commonly used by the different
- * caching strategies. For instance: <clear_cache> method which
- * decides and purges the entry from the container. Note: This
- * class helps in the caching_strategies using a container
- * containing entries of <KEY, ACE_Pair<VALUE, attributes>>
- * kind. The attributes helps in deciding the entries to be
- * purged. The Cleanup_Strategy is the callback class to which the
- * entries to be cleaned up will be delegated.
- */
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-class ACE_Pair_Caching_Utility
-{
-public:
-
- typedef ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY;
-
- /// Constructor.
- ACE_Pair_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0,
- int delete_cleanup_strategy = 0);
-
- /// Destructor.
- ~ACE_Pair_Caching_Utility (void);
-
- /**
- * Purge entries from the <container>. The Cleanup_Strategy will do the actual
- * job of cleanup once the entries to be cleaned up are decided.
- */
- int clear_cache (CONTAINER &container,
- double purge_percent);
-
-protected:
-
- /// Find the entry with minimum caching attributes.
- void minimum (CONTAINER &container,
- KEY *&key_to_remove,
- VALUE *&value_to_remove);
-
- /// The cleanup strategy which can be used to destroy the entries of
- /// the container.
- CLEANUP_STRATEGY *cleanup_strategy_;
-
- /// Whether the cleanup_strategy should be destroyed or not.
- int delete_cleanup_strategy_;
-
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Pair_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Pair_Caching_Utility (const ACE_Pair_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
-};
-
-////////////////////////////////////////////////////////////////////////////////
-#define ACE_Recyclable_Handler_Caching_Utility ARHUTIL
-
-/**
- * @class ACE_Recyclable_Handler_Caching_Utility
- *
- * @brief Defines a helper class for the Caching Strategies.
- *
- * This class defines the methods commonly used by the different
- * caching strategies. For instance: <clear_cache> method which
- * decides and purges the entry from the container. Note: This
- * class helps in the caching_strategies using a container
- * containing entries of <KEY, Svc_Handler> kind. The attributes
- * helps in deciding the entries to be purged. The
- * Cleanup_Strategy is the callback class to which the entries to
- * be cleaned up will be delegated.
- */
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-class ACE_Recyclable_Handler_Caching_Utility
-{
-
-public:
-
- typedef ACE_Recyclable_Handler_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY;
- typedef ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY_BASE;
-
- /// Constructor.
- ACE_Recyclable_Handler_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0,
- int delete_cleanup_strategy = 0);
-
- /// Destructor.
- ~ACE_Recyclable_Handler_Caching_Utility (void);
-
- /**
- * Purge entries from the <container>. The Cleanup_Strategy will do
- * the actual job of cleanup once the entries to be cleaned up are
- * decided.
- */
- int clear_cache (CONTAINER &container,
- double purge_percent);
-
-protected:
-
- /// Find the entry with minimum caching attributes.
- void minimum (CONTAINER &container,
- KEY *&key_to_remove,
- VALUE *&value_to_remove);
-
- /// This is the default Cleanup Strategy for this utility.
- CLEANUP_STRATEGY_BASE *cleanup_strategy_;
-
- /// Whether the cleanup_strategy should be destroyed or not.
- int delete_cleanup_strategy_;
-
-private:
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Recyclable_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Recyclable_Handler_Caching_Utility (const ACE_Recyclable_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
-};
-
-///////////////////////////////////////////////////////////////////////////
-#define ACE_Refcounted_Recyclable_Handler_Caching_Utility ARRHUTIL
-
-/**
- * @class ACE_Refcounted_Recyclable_Handler_Caching_Utility
- *
- * @brief Defines a helper class for the Caching Strategies.
- *
- * This class defines the methods commonly used by the different
- * caching strategies. For instance: clear_cache () method which
- * decides and purges the entry from the container. Note: This
- * class helps in the caching_strategies using a container
- * containing entries of <Refcounted_KEY,
- * Recyclable_Connection_Handler> kind. The attributes helps in
- * deciding the entries to be purged. The Cleanup_Strategy is the
- * callback class to which the entries to be cleaned up will be
- * delegated.
- */
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-class ACE_Refcounted_Recyclable_Handler_Caching_Utility
-{
-
-public:
-
- typedef ACE_Refcounted_Recyclable_Handler_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY;
- typedef ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY_BASE;
-
- /// Constructor.
- ACE_Refcounted_Recyclable_Handler_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0,
- int delete_cleanup_strategy = 0);
-
- /// Destructor.
- ~ACE_Refcounted_Recyclable_Handler_Caching_Utility (void);
-
- /**
- * Purge entries from the <container>. The Cleanup_Strategy will do
- * the actual job of cleanup once the entries to be cleaned up are
- * decided.
- */
- int clear_cache (CONTAINER &container,
- double purge_percent);
-
-protected:
-
- /// Find the entry with minimum caching attributes.
- void minimum (CONTAINER &container,
- KEY *&key_to_remove,
- VALUE *&value_to_remove);
-
- /// This is the default Cleanup Strategy for this utility.
- CLEANUP_STRATEGY_BASE *cleanup_strategy_;
-
- /// Whether the cleanup_strategy should be destroyed or not.
- int delete_cleanup_strategy_;
-
- /**
- * This figure denotes the number of entries are there in the
- * container which have been marked as closed already but might
- * not have been unbound from the container.
- */
- size_t marked_as_closed_entries_;
-
-private:
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Refcounted_Recyclable_Handler_Caching_Utility (const ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
-};
-
-////////////////////////////////////////////////////////////////////////////////////////
-
-/**
- * @class ACE_Handler_Caching_Utility
- *
- * @brief Defines a helper class for the Caching Strategies.
- *
- * This class defines the methods commonly used by the different
- * caching strategies. For instance: <clear_cache> method which
- * decides and purges the entry from the container. Note: This
- * class helps in the caching_strategies using a container
- * containing entries of <KEY, HANDLER> kind where the HANDLER
- * contains the caching attributes which help in deciding the
- * entries to be purged. The Cleanup_Strategy is the callback
- * class to which the entries to be cleaned up will be delegated.
- */
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-class ACE_Handler_Caching_Utility
-{
-public:
-
- typedef ACE_Handler_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY;
- typedef ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY_BASE;
-
- /// Constructor.
- ACE_Handler_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0,
- int delete_cleanup_strategy = 0);
-
- /// Destructor.
- ~ACE_Handler_Caching_Utility (void);
-
- /**
- * Purge entries from the <container>. The Cleanup_Strategy will do
- * the actual job of cleanup once the entries to be cleaned up are
- * decided.
- */
- int clear_cache (CONTAINER &container,
- double purge_percent);
-
-protected:
-
- /**
- * Find the entry with minimum caching attributes. This is handler
- * specific since this utility is to be used very specifically for
- * handler who have caching_attributes for server side acched
- * connection management.
- */
- void minimum (CONTAINER &container,
- KEY *&key_to_remove,
- VALUE *&value_to_remove);
-
- /// The cleanup strategy which can be used to destroy the entries of
- /// the container.
- CLEANUP_STRATEGY_BASE *cleanup_strategy_;
-
- /// Whether the cleanup_strategy should be destroyed or not.
- int delete_cleanup_strategy_;
-
-private:
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Handler_Caching_Utility (const ACE_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
-};
-
-///////////////////////////////////////////////////////////////////////////
-#define ACE_Null_Caching_Utility ANUTIL
-/**
- * @class ACE_Null_Caching_Utility
- *
- * @brief Defines a dummy helper class for the Caching Strategies.
- *
- * This class defines the methods commonly used by the different
- * caching strategies. For instance: <clear_cache> method which
- * decides and purges the entry from the container. Note: This
- * class is be used with the Null_Caching_Strategy. The
- * Cleanup_Strategy is the callback class to which the entries to
- * be cleaned up will be delegated.
- */
-template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-class ACE_Null_Caching_Utility
-{
-public:
-
- typedef ACE_Null_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY;
- typedef ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY_BASE;
-
- /// Constructor.
- ACE_Null_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0,
- int delete_cleanup_strategy = 0);
-
- /// Destructor.
- ~ACE_Null_Caching_Utility (void);
-
- /**
- * Purge entries from the <container>. The Cleanup_Strategy will do
- * the actual job of cleanup once the entries to be cleaned up are
- * decided. Note: Here it is a no-op.
- */
- int clear_cache (CONTAINER &container,
- double purge_percent);
-
-protected:
-
- /**
- * Find the entry with minimum caching attributes. This is handler
- * specific since this utility is to be used very specifically for
- * handler who have caching_attributes for server side acched
- * connection management.Note: Here it is a no-op.
- */
- void minimum (CONTAINER &container,
- KEY *&key_to_remove,
- VALUE *&value_to_remove);
-
- /// The cleanup strategy which can be used to destroy the entries of
- /// the container.
- CLEANUP_STRATEGY_BASE *cleanup_strategy_;
-
- /// Whether the cleanup_strategy should be destroyed or not.
- int delete_cleanup_strategy_;
-
-private:
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Null_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Null_Caching_Utility (const ACE_Null_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Caching_Utility_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Caching_Utility_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_CACHING_UTILITY_H */
diff --git a/ace/Capabilities.cpp b/ace/Capabilities.cpp
deleted file mode 100644
index 9f5db74fc7d..00000000000
--- a/ace/Capabilities.cpp
+++ /dev/null
@@ -1,367 +0,0 @@
-#include "ace/Capabilities.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Capabilities.i"
-#endif /* !__ACE_INLINE__ */
-
-
-ACE_RCSID (ace,
- Capabilities,
- "$Id$")
-
-
-#define ACE_ESC ((ACE_TCHAR)0x1b)
-
-
-ACE_CapEntry::~ACE_CapEntry (void)
-{
-}
-
-ACE_Capabilities::ACE_Capabilities (void)
- : caps_ ()
-{
-}
-
-ACE_Capabilities::~ACE_Capabilities (void)
-{
- this->resetcaps ();
-}
-
-const ACE_TCHAR *
-ACE_Capabilities::parse (const ACE_TCHAR *buf, ACE_TString &cap)
-{
- while (*buf != ACE_LIB_TEXT ('\0') && *buf != ACE_LIB_TEXT (','))
- {
- if (*buf == ACE_LIB_TEXT ('\\'))
- {
- buf++;
- if (*buf == ACE_LIB_TEXT ('E') || *buf == ACE_LIB_TEXT ('e'))
- {
- cap += ACE_ESC;
- buf++;
- continue;
- }
- else if (*buf == ACE_LIB_TEXT ('r'))
- {
- cap += ACE_LIB_TEXT ('\r');
- buf++;
- continue;
- }
- else if (*buf == ACE_LIB_TEXT ('n'))
- {
- cap += ACE_LIB_TEXT ('\n');
- buf++;
- continue;
- }
- else if (*buf == ACE_LIB_TEXT ('t'))
- {
- cap += ACE_LIB_TEXT ('\t');
- buf++;
- continue;
- }
- else if (*buf == ACE_LIB_TEXT ('\\'))
- {
- cap += *buf++;
- continue;
- }
- if (isdigit(*buf))
- {
- // @@ UNICODE Does this work with unicode?
- int oc = 0;
- for (int i = 0;
- i < 3 && *buf && isdigit (*buf);
- i++)
- oc = oc * 8 + (*buf++ - ACE_LIB_TEXT ('0'));
-
- cap += (ACE_TCHAR) oc;
- continue;
- }
- }
- cap += *buf++;
- }
- return buf;
-}
-
-const ACE_TCHAR *
-ACE_Capabilities::parse (const ACE_TCHAR *buf, int &cap)
-{
- int n = 0;
-
- while (*buf && isdigit (*buf))
- n = n * 10 + (*buf++ - ACE_LIB_TEXT ('0'));
-
- cap = n;
-
- return buf;
-}
-
-void
-ACE_Capabilities::resetcaps (void)
-{
- for (MAP::ITERATOR iter (this->caps_);
- !iter.done ();
- iter.advance ())
- {
- MAP::ENTRY *entry;
- iter.next (entry);
- delete entry->int_id_;
- }
-
- this->caps_.close ();
- this->caps_.open ();
-}
-
-int
-ACE_Capabilities::fillent (const ACE_TCHAR *buf)
-{
- this->resetcaps ();
- while (*buf)
- {
- ACE_TString s;
- int n;
- ACE_TString name;
- ACE_CapEntry *ce;
-
- // Skip blanks
- while (*buf && isspace(*buf)) buf++;
- // If we get end of line return
-
- if (*buf == ACE_LIB_TEXT ('\0'))
- break;
-
- if (*buf == ACE_LIB_TEXT ('#'))
- {
- while (*buf && *buf != ACE_LIB_TEXT ('\n'))
- buf++;
- if (*buf == ACE_LIB_TEXT ('\n'))
- buf++;
- continue;
- }
- while(*buf && *buf != ACE_LIB_TEXT ('=')
- && *buf!= ACE_LIB_TEXT ('#')
- && *buf != ACE_LIB_TEXT (','))
- name += *buf++;
-
- // If name is null.
- switch (*buf)
- {
- case ACE_LIB_TEXT ('='):
- // String property
- buf = this->parse (buf + 1, s);
- ACE_NEW_RETURN (ce,
- ACE_StringCapEntry (s),
- -1);
- if (this->caps_.bind (name, ce) == -1)
- {
- delete ce;
- return -1;
- }
- break;
- case ACE_LIB_TEXT ('#'):
- // Integer property
- buf = this->parse (buf + 1, n);
- ACE_NEW_RETURN (ce,
- ACE_IntCapEntry (n),
- -1);
- if (this->caps_.bind (name, ce) == -1)
- {
- delete ce;
- return -1;
- }
- break;
- case ACE_LIB_TEXT (','):
- // Boolean
- ACE_NEW_RETURN (ce,
- ACE_BoolCapEntry (1),
- -1);
- if (this->caps_.bind (name, ce) == -1)
- {
- delete ce;
- return -1;
- }
- break;
- default:
- return 0;
- }
-
- if (*buf++ != ACE_LIB_TEXT (','))
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_Capabilities::is_entry (const ACE_TCHAR *name, const ACE_TCHAR *line)
-{
- for (;;)
- {
- // Skip blanks or irrelevant characters
- while (*line && isspace(*line))
- line++;
-
- // End of line reached
- if (*line == ACE_LIB_TEXT ('\0'))
- break;
-
- // Build the entry name
- ACE_TString nextname;
- while (*line && *line != ACE_LIB_TEXT ('|') && *line != ACE_LIB_TEXT (','))
- nextname += *line++;
-
- // We have found the required entry?
- if (ACE_OS::strcmp (nextname.c_str (), name) == 0)
- return 1;
-
- // Skip puntuaction char if neccesary.
- if (*line == ACE_LIB_TEXT ('|') || *line == ACE_LIB_TEXT (','))
- line++;
- else
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Invalid entry\n")));
- break;
- }
- }
- return 0;
-}
-
-int
-ACE_Capabilities::getline (FILE *fp, ACE_TString &line)
-{
- int ch;
-
- line.set (0, 0);
-
- while ((ch = fgetc (fp)) != EOF && ch != ACE_LIB_TEXT ('\n'))
- line += (ACE_TCHAR) ch;
-
- if (ch == EOF && line.length () == 0)
- return -1;
- else
- return 0;
-}
-
-int
-ACE_Capabilities::getval (const ACE_TCHAR *keyname, ACE_TString &val)
-{
- ACE_CapEntry* cap;
- if (this->caps_.find (keyname, cap) == -1)
- return -1;
-
- ACE_StringCapEntry *scap =
- ACE_dynamic_cast (ACE_StringCapEntry *, cap);
- if (scap == 0)
- return -1;
-
- val = scap->getval ();
- return 0;
-}
-
-int
-ACE_Capabilities::getval (const ACE_TCHAR *keyname, int &val)
-{
- ACE_CapEntry *cap;
- if (this->caps_.find (keyname, cap) == -1)
- return -1;
-
- ACE_IntCapEntry *icap =
- ACE_dynamic_cast (ACE_IntCapEntry *, cap);
- if (icap != 0)
- {
- val = icap->getval ();
- return 0;
- }
-
- ACE_BoolCapEntry *bcap =
- ACE_dynamic_cast (ACE_BoolCapEntry *, cap);
-
- if (bcap == 0)
- return -1;
-
- val = bcap->getval ();
- return 0;
-}
-
-#if !defined (ACE_IS_SPLITTING)
-static int
-is_empty (const ACE_TCHAR *line)
-{
- while (*line && isspace (*line))
- line++;
-
- return *line == ACE_LIB_TEXT ('\0') || *line == ACE_LIB_TEXT ('#');
-}
-
-static int
-is_line (const ACE_TCHAR *line)
-{
- while (*line && isspace (*line))
- line++;
-
- return *line != ACE_LIB_TEXT ('\0');
-}
-#endif /* !ACE_IS_SPLITTING */
-
-int
-ACE_Capabilities::getent (const ACE_TCHAR *fname, const ACE_TCHAR *name)
-{
- FILE *fp = ACE_OS::fopen (fname, ACE_LIB_TEXT ("r"));
-
- if (fp == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Can't open %s file\n"),
- fname),
- -1);
-
- int done;
- ACE_TString line;
-
- while (!(done = (this->getline (fp, line) == -1))
- && is_empty (line.c_str ()))
- continue;
-
- while (!done)
- {
- ACE_TString newline;
- ACE_TString description;
-
- while (!(done = (this->getline (fp, newline) == -1)))
- if (is_line (newline.c_str ()))
- description += newline;
- else
- break;
-
- if (this->is_entry (name, line.c_str()))
- {
- ACE_OS::fclose (fp);
- return this->fillent (description.c_str ());
- }
-
- line = newline;
- while (!done && is_empty (line.c_str ()))
- done = this->getline (fp, line) == -1;
- }
-
- ACE_OS::fclose (fp);
- return -1;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Hash_Map_Entry<ACE_TString,ACE_CapEntry*>;
-template class ACE_Hash_Map_Manager_Ex<ACE_TString,ACE_CapEntry*,ACE_Hash<ACE_TString>,ACE_Equal_To<ACE_TString>,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Base_Ex<ACE_TString,ACE_CapEntry*,ACE_Hash<ACE_TString>,ACE_Equal_To<ACE_TString>,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<ACE_TString,ACE_CapEntry*,ACE_Hash<ACE_TString>,ACE_Equal_To<ACE_TString>,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_TString,ACE_CapEntry*,ACE_Hash<ACE_TString>,ACE_Equal_To<ACE_TString>,ACE_Null_Mutex>;
-template class ACE_Hash<ACE_TString>;
-template class ACE_Equal_To<ACE_TString>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Hash_Map_Entry<ACE_TString,ACE_CapEntry*>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_TString,ACE_CapEntry*,ACE_Hash<ACE_TString>,ACE_Equal_To<ACE_TString>,ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_TString,ACE_CapEntry*,ACE_Hash<ACE_TString>,ACE_Equal_To<ACE_TString>,ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_TString,ACE_CapEntry*,ACE_Hash<ACE_TString>,ACE_Equal_To<ACE_TString>,ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_TString,ACE_CapEntry*,ACE_Hash<ACE_TString>,ACE_Equal_To<ACE_TString>,ACE_Null_Mutex>
-#pragma instantiate ACE_Hash<ACE_TString>
-#pragma instantiate ACE_Equal_To<ACE_TString>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Capabilities.h b/ace/Capabilities.h
deleted file mode 100644
index 550a2fb71c2..00000000000
--- a/ace/Capabilities.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Capabilities.h
- *
- * $Id$
- *
- * @author Arturo Montes <mitosys@colomsat.net.co>
- */
-//=============================================================================
-
-
-#ifndef ACE_CAPABILITIES_H
-#define ACE_CAPABILITIES_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/Hash_Map_Manager_T.h"
-#include "ace/Containers.h"
-#include "ace/SString.h"
-
-/**
- * @class ACE_CapEntry
- *
- * @brief This class is the base class for all ACE Capabilities entry
- * subclasses.
- *
- * This class is not instantiable and does not provide accessors
- * or methods. If you want to add a new kind of attribute subclass
- * this class and dynamic_cast to proper subclass.
- */
-class ACE_Export ACE_CapEntry
-{
-public:
-
- virtual ~ACE_CapEntry (void);
-
-protected:
-
- enum
- {
- ACE_INTCAP = 0,
- ACE_STRINGCAP = 1,
- ACE_BOOLCAP = 2
- };
-
- ACE_CapEntry (int captype);
-
-protected:
-
- int captype_;
-
-};
-
-/**
- * @class ACE_IntCapEntry
- *
- * @brief This class implement the ACE Integer Capability subclass.
- *
- * This is a container class for ACE Capabilities integer container
- * values.
- */
-class ACE_Export ACE_IntCapEntry : public ACE_CapEntry
-{
-public:
- ACE_IntCapEntry (int val);
- int getval (void) const;
-
-protected:
- int val_;
-};
-
-/**
- * @class ACE_StringCapEntry
- *
- * @brief This class implement the ACE String Capability subclass.
- *
- * This is a container class for ACE Capabilities String container
- * values.
- */
-class ACE_Export ACE_StringCapEntry : public ACE_CapEntry
-{
-public:
- ACE_StringCapEntry (const ACE_TString &val);
- ACE_TString getval (void) const;
-
-protected:
- ACE_TString val_;
-};
-
-/**
- * @class ACE_BoolCapEntry
- *
- * @brief This class implement the ACE Bool Capability subclass.
- *
- * This is a container class for ACE Capabilities bool container
- * values.
- */
-class ACE_Export ACE_BoolCapEntry : public ACE_CapEntry
-{
-public:
- ACE_BoolCapEntry (int val);
- int getval (void) const;
-
-protected:
- int val_;
-};
-
-/**
- * @class ACE_Capabilities
- *
- * @brief This class implement the ACE Capabilities.
- *
- * This is a container class for ACE Capabilities
- * values. Currently exist three different capability values:
- * <ACE_IntCapEntry> (integer), <ACE_BoolCapEntry> (bool) and
- * <ACE_StringCapEntry> (String). An <ACE_Capabilities> is a
- * unordered set of pair = (<String>, <ACE_CapEntry> *). Where
- * the first component is the name of capability and the second
- * component is a pointer to the capability value container. A
- * <FILE> is a container for <ACE_Capabilities>, the
- * <ACE_Capabilities> has a name in the file, as a termcap file.
- */
-class ACE_Export ACE_Capabilities
-{
-public:
-
- typedef ACE_Hash_Map_Manager_Ex<ACE_TString, ACE_CapEntry *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex> MAP;
-
- /// The Constructor
- ACE_Capabilities (void);
-
- /// The Destructor
- ~ACE_Capabilities(void);
-
-public:
-
- /// Get a string entry.
- int getval (const ACE_TCHAR *ent, ACE_TString &val);
-
- /// Get an integer entry.
- int getval (const ACE_TCHAR *ent, int &val);
-
- /// Get the ACE_Capabilities name from FILE fname and load the
- /// associated capabitily entries in map.
- int getent (const ACE_TCHAR *fname, const ACE_TCHAR *name);
-
-protected:
-
- /// Parse an integer property
- const ACE_TCHAR *parse (const ACE_TCHAR *buf, int &cap);
-
- /// Parse a string property
- const ACE_TCHAR *parse (const ACE_TCHAR *buf, ACE_TString &cap);
-
- /// Fill the ACE_Capabilities with description in ent.
- int fillent(const ACE_TCHAR *ent);
-
- /// Parse a cap entry
- int parseent (const ACE_TCHAR *name, ACE_TCHAR *line);
-
- /// Get a line from FILE input stream
- int getline (FILE* fp,
- ACE_TString &line);
-
- /// Is a valid entry
- int is_entry (const ACE_TCHAR *name, const ACE_TCHAR *line);
-
- /// Reset the set of capabilities
- void resetcaps (void);
-
-private:
-
- /// This is the set of ACE_CapEntry.
- MAP caps_;
-
-};
-
-#if defined (ACE_IS_SPLITTING)
-int
-is_empty (const ACE_TCHAR *line)
-{
- while (*line && isspace (*line))
- line++;
-
- return *line == ACE_LIB_TEXT ('\0') || *line == ACE_LIB_TEXT ('#');
-}
-
-int
-is_line (const ACE_TCHAR *line)
-{
- while (*line && isspace (*line))
- line++;
-
- return *line != ACE_LIB_TEXT ('\0');
-}
-#endif /* ACE_IS_SPLITTING */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Capabilities.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* __ACE_CAPABILITIES_H__ */
diff --git a/ace/Capabilities.i b/ace/Capabilities.i
deleted file mode 100644
index ca168c0491a..00000000000
--- a/ace/Capabilities.i
+++ /dev/null
@@ -1,48 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-ACE_INLINE
-ACE_CapEntry::ACE_CapEntry (int captype)
- : captype_ (captype)
-{
-}
-
-ACE_INLINE
-ACE_IntCapEntry::ACE_IntCapEntry (int val)
- : ACE_CapEntry (ACE_INTCAP),
- val_ (val)
-{
-}
-
-ACE_INLINE int
-ACE_IntCapEntry::getval (void) const
-{
- return val_;
-}
-
-ACE_INLINE
-ACE_StringCapEntry::ACE_StringCapEntry (const ACE_TString &val)
- : ACE_CapEntry (ACE_STRINGCAP),
- val_ (val)
-{
-}
-
-ACE_INLINE ACE_TString
-ACE_StringCapEntry::getval (void) const
-{
- return val_;
-}
-
-ACE_INLINE
-ACE_BoolCapEntry::ACE_BoolCapEntry (int val)
- : ACE_CapEntry (ACE_BOOLCAP),
- val_(val)
-{
-}
-
-ACE_INLINE int
-ACE_BoolCapEntry::getval (void) const
-{
- return val_;
-}
diff --git a/ace/Cleanup_Strategies_T.cpp b/ace/Cleanup_Strategies_T.cpp
deleted file mode 100644
index 84b20f9035a..00000000000
--- a/ace/Cleanup_Strategies_T.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//$Id$
-
-#ifndef CLEANUP_STRATEGIES_T_C
-#define CLEANUP_STRATEGIES_T_C
-
-#include "ace/Cleanup_Strategies_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#define ACE_LACKS_PRAGMA_ONCE
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, Cleanup_Strategies_T, "$Id$")
-
-////////////////////////////////////////////////////////////////////////////
-
-template <class KEY, class VALUE, class CONTAINER> int
-ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER>::cleanup (CONTAINER &container,
- KEY *key,
- VALUE *value)
-{
- ACE_UNUSED_ARG (value);
-
- return container.unbind (*key);
-}
-
-////////////////////////////////////////////////////////////////////////////
-
-template <class KEY, class VALUE, class CONTAINER> int
-ACE_Recyclable_Handler_Cleanup_Strategy<KEY, VALUE, CONTAINER>::cleanup (CONTAINER &container,
- KEY *key,
- VALUE *)
-{
- VALUE value;
-
- if (container.unbind (*key, value) == -1)
- return -1;
-
- value.first ()->recycler (0, 0);
-
- value.first ()->close ();
-
- return 0;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-
-template <class KEY, class VALUE, class CONTAINER> int
-ACE_Refcounted_Recyclable_Handler_Cleanup_Strategy<KEY, VALUE, CONTAINER>::cleanup (CONTAINER &,
- KEY *,
- VALUE *value)
-{
- return value->first ()->handle_close_i ();
-}
-
-////////////////////////////////////////////////////////////////////////////
-
-template <class KEY, class VALUE, class CONTAINER> int
-ACE_Handler_Cleanup_Strategy<KEY, VALUE, CONTAINER>::cleanup (CONTAINER &container,
- KEY *key,
- VALUE *value)
-{
- // Remove the item from cache only if the handler isnt in use.
- if ((*value)->active () == 0)
- {
- (*value)->close ();
-
- if (container.unbind (*key) == -1)
- return -1;
-
- }
-
- return 0;
-}
-
-////////////////////////////////////////////////////////////////////////////
-
-template <class KEY, class VALUE, class CONTAINER> int
-ACE_Null_Cleanup_Strategy<KEY, VALUE, CONTAINER>::cleanup (CONTAINER &container,
- KEY *key,
- VALUE *value)
-{
- ACE_UNUSED_ARG (container);
- ACE_UNUSED_ARG (key);
- ACE_UNUSED_ARG (value);
-
- return 0;
-}
-
-#endif /* CLEANUP_STRATEGIES_T_C */
diff --git a/ace/Cleanup_Strategies_T.h b/ace/Cleanup_Strategies_T.h
deleted file mode 100644
index 935b0271753..00000000000
--- a/ace/Cleanup_Strategies_T.h
+++ /dev/null
@@ -1,148 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Cleanup_Strategies_T.h
- *
- * $Id$
- *
- * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef CLEANUP_STRATEGIES_H
-#define CLEANUP_STRATEGIES_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// For linkers that cant grok long names.
-#define ACE_Cleanup_Strategy ACLE
-
-/**
- * @class ACE_Cleanup_Strategy
- *
- * @brief Defines a default strategy to be followed for cleaning up
- * entries from a map which is the container.
- *
- * By default the entry to be cleaned up is removed from the
- * container.
- */
-template <class KEY, class VALUE, class CONTAINER>
-class ACE_Cleanup_Strategy
-{
-
-public:
-
- /// The method which will do the cleanup of the entry in the container.
- virtual int cleanup (CONTAINER &container, KEY *key, VALUE *value);
-};
-
-//////////////////////////////////////////////////////////////////////
-#define ACE_Recyclable_Handler_Cleanup_Strategy ARHCLE
-
-/**
- * @class ACE_Recyclable_Handler_Cleanup_Strategy
- *
- * @brief Defines a strategy to be followed for cleaning up
- * entries which are svc_handlers from a container.
- *
- * The entry to be cleaned up is removed from the container.
- * Here, since we are dealing with svc_handlers specifically, we
- * perform a couple of extra operations. Note: To be used when
- * the handler is recyclable.
- */
-template <class KEY, class VALUE, class CONTAINER>
-class ACE_Recyclable_Handler_Cleanup_Strategy : public ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER>
-{
-
-public:
-
- /// The method which will do the cleanup of the entry in the container.
- virtual int cleanup (CONTAINER &container, KEY *key, VALUE *value);
-};
-
-//////////////////////////////////////////////////////////////////////
-#define ACE_Refcounted_Recyclable_Handler_Cleanup_Strategy ARRHCLE
-
-/**
- * @class ACE_Refcounted_Recyclable_Handler_Cleanup_Strategy
- *
- * @brief Defines a strategy to be followed for cleaning up
- * entries which are svc_handlers from a container.
- *
- * The entry to be cleaned up is removed from the container.
- * Here, since we are dealing with recyclable svc_handlers with
- * addresses which are refcountable specifically, we perform a
- * couple of extra operations and do so without any locking.
- */
-template <class KEY, class VALUE, class CONTAINER>
-class ACE_Refcounted_Recyclable_Handler_Cleanup_Strategy : public ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER>
-{
-
-public:
-
- /// The method which will do the cleanup of the entry in the container.
- virtual int cleanup (CONTAINER &container, KEY *key, VALUE *value);
-};
-
-//////////////////////////////////////////////////////////////////////
-
-/**
- * @class ACE_Handler_Cleanup_Strategy
- *
- * @brief Defines a strategy to be followed for cleaning up
- * entries which are svc_handlers from a container.
- *
- * The entry to be cleaned up is removed from the container.
- * Here, since we are dealing with svc_handlers specifically, we
- * perform a couple of extra operations. Note: This cleanup strategy
- * should be used in the case when the handler has the caching
- * attributes.
- */
-template <class KEY, class VALUE, class CONTAINER>
-class ACE_Handler_Cleanup_Strategy : public ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER>
-{
-
-public:
-
- /// The method which will do the cleanup of the entry in the container.
- virtual int cleanup (CONTAINER &container, KEY *key, VALUE *value);
-};
-
-//////////////////////////////////////////////////////////////////////
-#define ACE_Null_Cleanup_Strategy ANCLE
-
-/**
- * @class ACE_Null_Cleanup_Strategy
- *
- * @brief Defines a do-nothing implementation of the cleanup strategy.
- *
- * This class simply does nothing at all! Can be used to nullify
- * the effect of the Cleanup Strategy.
- */
-template <class KEY, class VALUE, class CONTAINER>
-class ACE_Null_Cleanup_Strategy : public ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER>
-{
-
-public:
-
- /// The dummy cleanup method.
- virtual int cleanup (CONTAINER &container, KEY *key, VALUE *value);
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Cleanup_Strategies_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Cleanup_Strategies_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* CLEANUP_STRATEGIES_H */
diff --git a/ace/Codecs.cpp b/ace/Codecs.cpp
deleted file mode 100644
index 8d0aad7555d..00000000000
--- a/ace/Codecs.cpp
+++ /dev/null
@@ -1,210 +0,0 @@
-#include "ace/OS.h"
-#include "ace/Codecs.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID (ace,
- Codecs,
- "$Id$")
-
-const ACE_Byte ACE_Base64::alphabet_[] =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-const ACE_Byte ACE_Base64::pad_ = '=';
-
-int ACE_Base64::init_ = 0;
-
-int ACE_Base64::max_columns_ = 72;
-
-ACE_Byte ACE_Base64::decoder_[256];
-
-ACE_Byte ACE_Base64::member_[256];
-
-ACE_Byte*
-ACE_Base64::encode (const ACE_Byte* input,
- const size_t input_len,
- size_t* output_len)
-{
- if (!ACE_Base64::init_)
- ACE_Base64::init();
-
- if (!input)
- return 0;
-
- ACE_Byte* result = 0;
-
- size_t length = ((input_len + 2) / 3) * 4;
- size_t num_lines = length / ACE_Base64::max_columns_ + 1;
- length += num_lines + 1;
- ACE_NEW_RETURN (result, ACE_Byte[length], 0);
-
- int char_count = 0;
- int bits = 0;
- size_t pos = 0;
- int cols = 0;
-
- for (size_t i = 0; i < input_len; ++i)
- {
- bits += input[i];
- char_count++;
-
- if (char_count == 3)
- {
- result[pos++] = ACE_Base64::alphabet_[bits >> 18];
- result[pos++] = ACE_Base64::alphabet_[(bits >> 12) & 0x3f];
- result[pos++] = ACE_Base64::alphabet_[(bits >> 6) & 0x3f];
- result[pos++] = ACE_Base64::alphabet_[bits & 0x3f];
- cols += 4;
- if (cols == ACE_Base64::max_columns_) {
- result[pos++] = '\n';
- cols = 0;
- }
- bits = 0;
- char_count = 0;
- }
- else
- {
- bits <<= 8;
- }
- }
-
- if (char_count != 0)
- {
- bits <<= (16 - (8 * char_count));
- result[pos++] = ACE_Base64::alphabet_[bits >> 18];
- result[pos++] = ACE_Base64::alphabet_[(bits >> 12) & 0x3f];
- if (char_count == 1)
- {
- result[pos++] = pad_;
- result[pos++] = pad_;
- }
- else
- {
- result[pos++] = ACE_Base64::alphabet_[(bits >> 6) & 0x3f];
- result[pos++] = pad_;
- }
- if (cols > 0)
- result[pos++] = '\n';
- }
- result[pos] = 0;
- *output_len = pos;
- return result;
-}
-
-size_t
-ACE_Base64::length (const ACE_Byte* input)
-{
- if (!ACE_Base64::init_)
- ACE_Base64::init();
-
- ACE_Byte* ptr = ACE_const_cast (ACE_Byte*, input);
- while (*ptr != 0 &&
- (member_[*(ptr)] == 1 || *ptr == pad_
- || ACE_OS_String::ace_isspace (*ptr)))
- ptr++;
- size_t len = ptr - input;
- len = ((len + 3) / 4) * 3 + 1 ;
- return len;
-}
-
-ACE_Byte*
-ACE_Base64::decode (const ACE_Byte* input, size_t* output_len)
-{
- if (!ACE_Base64::init_)
- ACE_Base64::init();
-
- if (!input)
- return 0;
-
- size_t result_len = ACE_Base64::length (input);
- ACE_Byte* result = 0;
- ACE_NEW_RETURN (result, ACE_Byte[result_len], 0);
-
- ACE_Byte* ptr = ACE_const_cast (ACE_Byte*, input);
- while (*ptr != 0 &&
- (member_[*(ptr)] == 1 || *ptr == pad_
- || ACE_OS_String::ace_isspace (*ptr)))
- ptr++;
- size_t input_len = ptr - input;
-
- int char_count = 0;
- int bits = 0;
- size_t pos = 0;
-
- size_t i = 0;
- for (; i < input_len; ++i)
- {
- if (input[i] == pad_)
- break;
- if (!ACE_Base64::member_[input[i]])
- continue;
- bits += decoder_[input[i]];
- char_count++;
-
- if (char_count == 4)
- {
- result[pos++] = bits >> 16;
- result[pos++] = (bits >> 8) & 0xff;
- result[pos++] = bits & 0xff;
- bits = 0;
- char_count = 0;
- }
- else
- {
- bits <<= 6;
- }
- }
-
- int errors = 0;
- if ( i == input_len)
- {
- if (char_count)
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_TEXT ("Decoding incomplete: atleast %d bits truncated\n"),
- (4 - char_count) * 6));
- errors++;
- }
- }
- else
- {
- switch (char_count)
- {
- case 1:
- ACE_DEBUG ((LM_ERROR,
- ACE_TEXT ("Decoding incomplete: atleast 2 bits missing\n")));
- errors++;
- break;
- case 2:
- result[pos++] = bits >> 10;
- break;
- case 3:
- result[pos++] = bits >> 16;
- result[pos++] = (bits >> 8) & 0xff;
- break;
- }
- }
-
- if (errors)
- {
- delete[] result;
- return 0;
- }
- result[pos] = 0;
- *output_len = pos;
- return result;
-}
-
-void
-ACE_Base64::init ()
-{
- if (!ACE_Base64::init_)
- {
- for (ACE_Byte i = 0; i < sizeof (ACE_Base64::alphabet_); ++i)
- {
- ACE_Base64::decoder_[ACE_Base64::alphabet_[i]] = i;
- ACE_Base64::member_[ACE_Base64::alphabet_[i]] = 1;
- }
- ACE_Base64::init_ = 1;
- }
- return;
-}
diff --git a/ace/Codecs.h b/ace/Codecs.h
deleted file mode 100644
index 7e25cee826e..00000000000
--- a/ace/Codecs.h
+++ /dev/null
@@ -1,110 +0,0 @@
-// -*- C++ -*-
-
-/**
- * @file Codecs.h
- *
- * $Id$
- *
- * @author Krishnakumar B <kitty@cs.wustl.edu>
- *
- * Codecs is a generic wrapper for various encoding and decoding
- * mechanisms. Currently it includes Base64 content transfer-encoding as
- * specified by RFC 2045, Multipurpose Internet Mail Extensions (MIME) Part
- * One: Format of Internet Message Bodies.
- *
- */
-
-#ifndef ACE_CODECS_H
-#define ACE_CODECS_H
-#include "ace/pre.h"
-
-#include "ace/Basic_Types.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Base64
- *
- * @brief Encode/Decode a stream of bytes according to Base64 encoding.
- *
- * This class provides methods to encode or decode a stream of bytes
- * to/from Base64 encoding. It doesn't convert the input stream to a
- * canonical form before encoding.
- *
- */
-class ACE_Export ACE_Base64
-{
- friend class ace_dewarn_gplusplus;
-public:
-
- //@{
-
- /**
- * Encodes a stream of bytes to Base64 data
- *
- * @param input Binary data in byte stream.
- * @param input_len Length of the byte stream.
- * @param output_len Length of the encoded Base64 byte stream.
- * @return Encoded Base64 data in byte stream or NULL if input data cannot
- * be encoded.
- */
-
- static ACE_Byte* encode (const ACE_Byte* input,
- const size_t input_len,
- size_t* output_len);
- /**
- * Decodes a stream of Base64 to bytes data
- *
- * @param input Encoded Base64 data in byte stream.
- * @param output_len Length of the binary byte stream.
- * @return Binary data in byte stream or NULL if input data cannot
- * be encoded.
- */
- static ACE_Byte* decode (const ACE_Byte* input,
- size_t* output_len);
-
- /**
- * Return the length of the encoded input data
- *
- * @param input Encoded Base64 data in byte stream.
- * @return Length of the encoded Base64 data.
- *
- */
- static size_t length (const ACE_Byte* input);
-
- //@}
-
-private:
-
- /// Initialize the tables for encoding/decoding.
- static void init();
-
- // Prevent construction in any form
- ACE_UNIMPLEMENTED_FUNC (ACE_Base64 ())
- ACE_UNIMPLEMENTED_FUNC (ACE_Base64 (const ACE_Base64&))
-
- /// Symbols which form the Base64 alphabet (Defined as per RFC 2045)
- static const ACE_Byte alphabet_[];
-
- /// Alphabet used for decoding i.e decoder_[alphabet_[i = 0..63]] = i
- static ACE_Byte decoder_[];
-
- /// Alphabet used to check valid range of encoded input i.e
- /// member_[alphabet_[0..63]] = 1
- static ACE_Byte member_[];
-
- /// The padding character used in the encoding
- static const ACE_Byte pad_;
-
- /// Boolean to denote whether initialization is complete
- static int init_;
-
- /// Number of columns per line of encoded output (Can have a max value of 76)
- static int max_columns_;
-
-};
-
-#include "ace/post.h"
-#endif /* ACE_CODECS_H */
diff --git a/ace/Codeset_IBM1047.cpp b/ace/Codeset_IBM1047.cpp
deleted file mode 100644
index e529f1b15ee..00000000000
--- a/ace/Codeset_IBM1047.cpp
+++ /dev/null
@@ -1,309 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Codeset_IBM1047.cpp
-//
-// = DESCRIPTION
-// Defines the arrays required to convert between ISO8859 (aka
-// Latin/1) and IBM1047 (aka EBCDIC).
-//
-// = AUTHOR
-// Jim Rogers (jrogers@viasoft.com)
-//
-// ============================================================================
-
-#include "ace/Codeset_IBM1047.h"
-
-#if defined(ACE_MVS)
-
-ACE_RCSID(ace, Codeset_IBM1047, "$Id$")
-
-// ****************************************************************
-
-ACE_IBM1047_ISO8859::ACE_IBM1047_ISO8859 (void)
-{
-}
-
-ACE_IBM1047_ISO8859::~ACE_IBM1047_ISO8859 (void)
-{
-}
-
-ACE_CDR::ULong
-ACE_IBM1047_ISO8859::ncs ()
-{
- return 0x10020417;
-}
-
-ACE_CDR::ULong
-ACE_IBM1047_ISO8859::tcs ()
-{
- return 0x00010001;
-}
-
-ACE_CDR::Boolean
-ACE_IBM1047_ISO8859::read_char (ACE_InputCDR &in,
- ACE_CDR::Char &x)
-{
- if (this->read_1 (in, ACE_reinterpret_cast (ACE_CDR::Octet*, &x)))
- {
- x = ACE_to_IBM1047[x];
- return 1;
- }
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_IBM1047_ISO8859::read_string (ACE_InputCDR& in,
- ACE_CDR::Char *& x)
-{
- ACE_CDR::ULong len;
-
- in.read_ulong (len);
-
- if (len > 0)
- {
- ACE_NEW_RETURN (x,
- ACE_CDR::Char[len],
- 0);
-
- if (this->read_char_array (in, x, len))
- return 1;
-
- delete [] x;
- }
-
- x = 0;
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_IBM1047_ISO8859::read_char_array (ACE_InputCDR& in,
- ACE_CDR::Char* x,
- ACE_CDR::ULong len)
-{
- if (this->read_array (in,
- x,
- ACE_CDR::OCTET_SIZE,
- ACE_CDR::OCTET_ALIGN,
- len))
- {
- for (ACE_CDR::ULong i = 0; i != len; ++i)
- x[i] = ACE_to_IBM1047[x[i]];
-
- return 1;
- }
-
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_IBM1047_ISO8859::write_char (ACE_OutputCDR& out,
- ACE_CDR::Char x)
-{
- return this->write_1 (out,
- ACE_reinterpret_cast (const ACE_CDR::Octet*,
- &ACE_from_IBM1047[x]));
-}
-
-ACE_CDR::Boolean
-ACE_IBM1047_ISO8859::write_string (ACE_OutputCDR& out,
- ACE_CDR::ULong len,
- const ACE_CDR::Char* x)
-{
- if (out.write_ulong (len + 1))
- return this->write_char_array (out, x, len + 1);
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_IBM1047_ISO8859::write_char_array (ACE_OutputCDR& out,
- const ACE_CDR::Char* x,
- ACE_CDR::ULong len)
-{
- char *buf;
- if (this->adjust (out, len, 1, buf) == 0)
- {
- ACE_OS::memcpy (buf, x, len);
-
- for (ACE_CDR::ULong i = 0; i != len; ++i)
- buf[i] = ACE_from_IBM1047[buf[i]];
-
- return 1;
- }
-
- this->good_bit(out, 0);
- return 0;
-}
-
-// ****************************************************************
-
-ACE_ISO8859_IBM1047::ACE_ISO8859_IBM1047 (void)
-{
-}
-
-ACE_ISO8859_IBM1047::~ACE_ISO8859_IBM1047 (void)
-{
-}
-
-ACE_CDR::ULong
-ACE_ISO8859_IBM1047::ncs ()
-{
- return 0x00010001;
-}
-
-ACE_CDR::ULong
-ACE_ISO8859_IBM1047::tcs ()
-{
- return 0x10020417;
-}
-
-
-ACE_CDR::Boolean
-ACE_ISO8859_IBM1047::read_char (ACE_InputCDR& in,
- ACE_CDR::Char& x)
-{
- if (this->read_1 (in, ACE_reinterpret_cast (ACE_CDR::Octet*, &x)))
- {
- x = ACE_from_IBM1047[x];
- return 1;
- }
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_ISO8859_IBM1047::read_string (ACE_InputCDR &in,
- ACE_CDR::Char *&x)
-{
- ACE_CDR::ULong len;
-
- in.read_ulong (len);
-
- if (len > 0)
- {
- ACE_NEW_RETURN (x,
- ACE_CDR::Char[len],
- 0);
-
- if (this->read_char_array (in, x, len))
- return 1;
-
- delete [] x;
- }
-
- x = 0;
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_ISO8859_IBM1047::read_char_array (ACE_InputCDR &in,
- ACE_CDR::Char *x,
- ACE_CDR::ULong len)
-{
- if (this->read_array (in,
- x,
- ACE_CDR::OCTET_SIZE,
- ACE_CDR::OCTET_ALIGN,
- len))
- {
- for (ACE_CDR::ULong i = 0; i != len; ++i)
- x[i] = ACE_from_IBM1047[x[i]];
-
- return 1;
- }
-
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_ISO8859_IBM1047::write_char (ACE_OutputCDR &out,
- ACE_CDR::Char x)
-{
- return this->write_1 (out,
- ACE_reinterpret_cast (const ACE_CDR::Octet *,
- &ACE_to_IBM1047[x]));
-}
-
-ACE_CDR::Boolean
-ACE_ISO8859_IBM1047::write_string (ACE_OutputCDR& out,
- ACE_CDR::ULong len,
- const ACE_CDR::Char* x)
-{
- if (out.write_ulong (len + 1))
- return this->write_char_array (out, x, len + 1);
- else
- return 0;
-}
-
-ACE_CDR::Boolean
-ACE_ISO8859_IBM1047::write_char_array (ACE_OutputCDR &out,
- const ACE_CDR::Char *x,
- ACE_CDR::ULong len)
-{
- char *buf;
-
- if (this->adjust (out, len, 1, buf) == 0)
- {
- ACE_OS::memcpy (buf, x, len);
-
- for (ACE_CDR::ULong i = 0; i != len; ++i)
- buf[i] = ACE_to_IBM1047[buf[i]];
-
- return 1;
- }
-
- this->good_bit (out, 0);
- return 0;
-}
-
-// ****************************************************************
-
-char ACE_to_IBM1047[257] =
-{
- "\x00\x01\x02\x03\x37\x2D\x2E\x2F\x16\x05\x25\x0B\x0C\x0D\x0E\x0F" // 00-0F
- "\x10\x11\x12\x13\x3C\x3D\x32\x26\x18\x19\x3F\x27\x22\x1D\x35\x1F" // 10-1F
- "\x40\x5A\x7F\x7B\x5B\x6C\x50\x7D\x4D\x5D\x5C\x4E\x6B\x60\x4B\x61" // 20-2F
- "\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\x7A\x5E\x4C\x7E\x6E\x6F" // 30-3F
- "\x7C\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xD1\xD2\xD3\xD4\xD5\xD6" // 40-4F
- "\xD7\xD8\xD9\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xAD\xE0\xBD\x5F\x6D" // 50-5F
- "\x79\x81\x82\x83\x84\x85\x86\x87\x88\x89\x91\x92\x93\x94\x95\x96" // 60-6F
- "\x97\x98\x99\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xC0\x4F\xD0\xA1\x07" // 70-7F
- "\x43\x20\x21\x1C\x23\xEB\x24\x9B\x71\x28\x38\x49\x90\xBA\xEC\xDF" // 80-8F
- "\x45\x29\x2A\x9D\x72\x2B\x8A\x9A\x67\x56\x64\x4A\x53\x68\x59\x46" // 90-9F
- "\xEA\xDA\x2C\xDE\x8B\x55\x41\xFE\x58\x51\x52\x48\x69\xDB\x8E\x8D" // A0-AF
- "\x73\x74\x75\xFA\x15\xB0\xB1\xB3\xB4\xB5\x6A\xB7\xB8\xB9\xCC\xBC" // B0-BF
- "\xAB\x3E\x3B\x0A\xBF\x8F\x3A\x14\xA0\x17\xCB\xCA\x1A\x1B\x9C\x04" // C0-CF
- "\x34\xEF\x1E\x06\x08\x09\x77\x70\xBE\xBB\xAC\x54\x63\x65\x66\x62" // D0-DF
- "\x30\x42\x47\x57\xEE\x33\xB6\xE1\xCD\xED\x36\x44\xCE\xCF\x31\xAA" // E0-EF
- "\xFC\x9E\xAE\x8C\xDD\xDC\x39\xFB\x80\xAF\xFD\x78\x76\xB2\x9F\xFF" // F0-FF
-};
-
-char ACE_from_IBM1047[257] =
-{
- "\x00\x01\x02\x03\xCF\x09\xD3\x7F\xD4\xD5\xC3\x0B\x0C\x0D\x0E\x0F" // 00-0F
- "\x10\x11\x12\x13\xC7\xB4\x08\xC9\x18\x19\xCC\xCD\x83\x1D\xD2\x1F" // 10-1F
- "\x81\x82\x1C\x84\x86\x0A\x17\x1B\x89\x91\x92\x95\xA2\x05\x06\x07" // 20-2F
- "\x20\xEE\x16\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\xC1\x1A" // 30-3F
- "\x20\xA6\xE1\x80\xEB\x90\x9F\xE2\xAB\x8B\x9B\x2E\x3C\x28\x2B\x7C" // 40-4F
- "\x26\xA9\xAA\x9C\xDB\xA5\x99\xE3\xA8\x9E\x21\x24\x2A\x29\x3B\x5E" // 50-5F
- "\x2D\x2F\xDF\xDC\x9A\xDD\xDE\x98\x9D\xAC\xBA\x2C\x25\x5F\x3E\x3F" // 60-6F
- "\xD7\x88\x94\xB0\xB1\xB2\xFC\xD6\xFB\x60\x3A\x23\x40\x27\x3D\x22" // 70-7F
- "\xF8\x61\x62\x63\x64\x65\x66\x67\x68\x69\x96\xA4\xF3\xAF\xAE\xC5" // 80-8F
- "\x8C\x6A\x6B\x6C\x6D\x6E\x6F\x70\x71\x72\x97\x87\xCE\x93\xF1\xFE" // 90-9F
- "\xC8\x7E\x73\x74\x75\x76\x77\x78\x79\x7A\xEF\xC0\xDA\x5B\xF2\xF9" // A0-AF
- "\xB5\xB6\xFD\xB7\xB8\xB9\xE6\xBB\xBC\xBD\x8D\xD9\xBF\x5D\xD8\xC4" // B0-BF
- "\x7B\x41\x42\x43\x44\x45\x46\x47\x48\x49\xCB\xCA\xBE\xE8\xEC\xED" // C0-CF
- "\x7D\x4A\x4B\x4C\x4D\x4E\x4F\x50\x51\x52\xA1\xAD\xF5\xF4\xA3\x8F" // D0-DF
- "\x5C\xE7\x53\x54\x55\x56\x57\x58\x59\x5A\xA0\x85\x8E\xE9\xE4\xD1" // E0-EF
- "\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\xB3\xF7\xF0\xFA\xA7\xFF" // F0-FF
-};
-
-#elif defined (__HP_aCC)
-// Make aC++ stop complaining about an empty translation unit
-static int shut_up_aCC = 0;
-#endif /* ACE_MVS */
diff --git a/ace/Codeset_IBM1047.h b/ace/Codeset_IBM1047.h
deleted file mode 100644
index a9a10739836..00000000000
--- a/ace/Codeset_IBM1047.h
+++ /dev/null
@@ -1,126 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Codeset_IBM1047.h
- *
- * $Id$
- *
- * Declares the arrays required to convert between ISO8859 (aka
- * Latin/1) and IBM1047 (aka EBCDIC).
- *
- *
- * @author Jim Rogers (jrogers@viasoft.com)
- */
-//=============================================================================
-
-
-#ifndef ACE_CODESET_IMB1047_H
-#define ACE_CODESET_IMB1047_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined(ACE_MVS)
-
-#include "ace/CDR_Stream.h"
-
-extern ACE_Export char ACE_to_IBM1047[257];
-extern ACE_Export char ACE_from_IBM1047[257];
-
-// ****************************************************************
-
-/**
- * @class ACE_IBM1047_ISO8859
- *
- * @brief Codeset translation specialization.
- *
- * This class performs the codeset translation:
- * - Native: IBM_1047 (i.e. EBCDIC)
- * - Stream: ISO-8859 (i.e. Latin/1)
- */
-class ACE_Export ACE_IBM1047_ISO8859 : public ACE_Char_Codeset_Translator
-{
-public:
- /// A do nothing constructor.
- ACE_IBM1047_ISO8859 (void);
-
- /// Virtual destruction
- virtual ~ACE_IBM1047_ISO8859 (void);
-
- // = Documented in $ACE_ROOT/ace/CDR_Stream.h
- virtual ACE_CDR::Boolean read_char (ACE_InputCDR &,
- ACE_CDR::Char &);
- virtual ACE_CDR::Boolean read_string (ACE_InputCDR &,
- ACE_CDR::Char *&);
- virtual ACE_CDR::Boolean read_char_array (ACE_InputCDR &,
- ACE_CDR::Char *,
- ACE_CDR::ULong);
- virtual ACE_CDR::Boolean write_char (ACE_OutputCDR &,
- ACE_CDR::Char);
- virtual ACE_CDR::Boolean write_string (ACE_OutputCDR &,
- ACE_CDR::ULong,
- const ACE_CDR::Char *);
- virtual ACE_CDR::Boolean write_char_array (ACE_OutputCDR &,
- const ACE_CDR::Char *,
- ACE_CDR::ULong);
-
- /// return the native codeset ID as defined in the OSF code and character
- /// set registry, 0x10020417
- virtual ACE_CDR::ULong ncs ();
- /// return the translated codeset ID as defined in the OSF code and character
- /// set registry, 0x00010001
- virtual ACE_CDR::ULong tcs ();
-};
-
-/**
- * @class ACE_ISO8859_IBM1047
- *
- * @brief Codeset translation specialization.
- *
- * This class performs the codeset translation:
- * - Native: ISO-8859 (i.e. Latin/1)
- * - Stream: IBM-1047 (i.e. EBCDIC)
- */
-class ACE_Export ACE_ISO8859_IBM1047 : public ACE_Char_Codeset_Translator
-{
-public:
- /// A do nothing constructor.
- ACE_ISO8859_IBM1047 (void);
-
- /// Virtual destruction
- virtual ~ACE_ISO8859_IBM1047 (void);
-
- // = Documented in $ACE_ROOT/ace/CDR_Stream.h
- virtual ACE_CDR::Boolean read_char (ACE_InputCDR &,
- ACE_CDR::Char &);
- virtual ACE_CDR::Boolean read_string (ACE_InputCDR &,
- ACE_CDR::Char *&);
- virtual ACE_CDR::Boolean read_char_array (ACE_InputCDR &,
- ACE_CDR::Char *,
- ACE_CDR::ULong);
- virtual ACE_CDR::Boolean write_char (ACE_OutputCDR &,
- ACE_CDR::Char);
- virtual ACE_CDR::Boolean write_string (ACE_OutputCDR &,
- ACE_CDR::ULong,
- const ACE_CDR::Char *);
- virtual ACE_CDR::Boolean write_char_array (ACE_OutputCDR &,
- const ACE_CDR::Char *,
- ACE_CDR::ULong);
-
- /// return the native codeset ID as defined in the OSF code and character
- /// set registry, 0x00010001
- virtual ACE_CDR::ULong ncs ();
- /// return the translated codeset ID as defined in the OSF code and character
- /// set registry, 0x10020417
- virtual ACE_CDR::ULong tcs ();
-};
-
-#endif /* ACE_MVS */
-
-#include "ace/post.h"
-#endif /* ACE_CODESET_IMB1047_H */
diff --git a/ace/Codeset_Registry.cpp b/ace/Codeset_Registry.cpp
deleted file mode 100644
index be7df8bc8d9..00000000000
--- a/ace/Codeset_Registry.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-//=============================================================================
-/**
- * @file Codeset_Registry.cpp
- *
- * $Id$
- *
- * emulated codset regstry functions
- *
- *
- * @author Phil Mesnier <mesnier_p@ociweb.com>
- */
-//=============================================================================
-
-#include "ace/Codeset_Registry.h"
-
-// $Id$
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Codeset_Registry.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Codeset_Registry, "$Id$");
-
-
-int
-ACE_Codeset_Registry::locale_to_registry_i (const ACE_CString &locale,
- ACE_CDR::ULong &codeset_id,
- ACE_CDR::UShort *num_sets,
- ACE_CDR::UShort **char_sets)
-{
- registry_entry* element = 0;
- for (size_t i = 0; element == 0 && i < num_registry_entries_; i++)
- if (ACE_OS::strcmp(registry_db_[i].loc_name_,locale.c_str()) == 0)
- element = &registry_db_[i];
- if (element == 0)
- return 0;
- codeset_id = element->codeset_id_;
- if (num_sets != 0)
- *num_sets = element->num_sets_;
- if (char_sets != 0)
- {
- ACE_NEW_RETURN (*char_sets,ACE_CDR::UShort[element->num_sets_],0);
- ACE_OS::memcpy (element->char_sets_,
- *char_sets,
- element->num_sets_ * sizeof (ACE_CDR::UShort));
- }
- return 1;
-}
-
-int
-ACE_Codeset_Registry::registry_to_locale_i (ACE_CDR::ULong codeset_id,
- ACE_CString &locale,
- ACE_CDR::UShort *num_sets,
- ACE_CDR::UShort **char_sets)
-{
- registry_entry* element = 0;
- for (size_t i = 0; element == 0 && i < num_registry_entries_; i++)
- if (codeset_id == registry_db_[i].codeset_id_)
- element = &registry_db_[i];
- if (element == 0)
- return 0;
- locale.set(element->loc_name_);
- if (num_sets != 0)
- *num_sets = element->num_sets_;
- if (char_sets != 0)
- {
- ACE_NEW_RETURN (*char_sets,ACE_CDR::UShort[element->num_sets_],0);
- ACE_OS::memcpy (element->char_sets_,
- *char_sets,
- element->num_sets_ * sizeof (ACE_CDR::UShort));
- }
- return 1;
-}
-
-int
-ACE_Codeset_Registry::is_compatible_i (ACE_CDR::ULong codeset_id,
- ACE_CDR::ULong other)
-{
- registry_entry* lhs = 0;
- registry_entry* rhs = 0;
- for (size_t i = 0; (lhs == 0 || rhs == 0) && i < num_registry_entries_; i++)
- {
- if (codeset_id == registry_db_[i].codeset_id_)
- lhs = &registry_db_[i];
- if (other == registry_db_[i].codeset_id_)
- rhs = &registry_db_[i];
- }
-
- if (lhs == 0 || rhs == 0)
- return 0;
-
- for (ACE_CDR::UShort l = 0; l < lhs->num_sets_; l++)
- for (ACE_CDR::UShort r = 0; r < rhs->num_sets_; r++)
- if (rhs->char_sets_[r] == lhs->char_sets_[l])
- return 1;
- return 0;
-}
-
-ACE_CDR::Short
-ACE_Codeset_Registry::get_max_bytes_i (ACE_CDR::ULong codeset_id)
-{
- for (size_t i = 0; i < num_registry_entries_; i++)
- if (codeset_id == registry_db_[i].codeset_id_)
- return registry_db_[i].max_bytes_;
- return 0;
-}
diff --git a/ace/Codeset_Registry.h b/ace/Codeset_Registry.h
deleted file mode 100644
index 6f7ad62ac7d..00000000000
--- a/ace/Codeset_Registry.h
+++ /dev/null
@@ -1,99 +0,0 @@
-// -*- C++ -*-
-//=============================================================================
-/**
- * @file Codeset_Registry.h
- *
- * $Id$
- *
- * ACE wrapper around access functions for the OSF's DCE codeset registry
- * access functions
- *
- * For environments that intrinsicly support the DCE defined access functions,
- * the methods in this class are simply wrappers. On other platforms, emulation
- * is provided. The motivation for this class is to support interoperability
- * via translators and the CDR streams, primarily in TAO, but this capability
- * is not restricted to CORBA.
- *
- * The emulated functionalty supports Open Group RFC #40, currently RFC 40.2,
- * www.opengroup.org/tech/rfc/rfc40.2.html
- *
- * @author Phil Mesnier <mesnier_p@ociweb.com>
- */
-//=============================================================================
-
-#ifndef ACE_CODESET_REGISTRY_H
-#define ACE_CODESET_REGISTRY_H
-
-#include "ace/pre.h"
-#include "ace/SString.h"
-#include "ace/CDR_Base.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_DCE_CODESET_REGISTRY)
-#include /**/ <dce/rpc.h>
-#endif /* ACE_HAS_DCE_CODESET_REGISTRY */
-
-class ACE_Export ACE_Codeset_Registry
-{
-public:
-
- // based on a locale string, find the registry value and optional codeset
- // collection. This wraps the dce_cs_loc_to_rgy function, or emulates it.
- static int locale_to_registry (const ACE_CString &locale,
- ACE_CDR::ULong &codeset_id,
- ACE_CDR::UShort * = 0,
- ACE_CDR::UShort ** = 0);
-
- // based on a registry value, find the locale string and optional codeset
- // collection. This wraps the dce_cs_rgy_to_loc function, or emulates it.
- static int registry_to_locale (ACE_CDR::ULong codeset_id,
- ACE_CString &locale,
- ACE_CDR::UShort * = 0,
- ACE_CDR::UShort ** = 0);
-
- // tell if two codesets are compatible. This wraps the
- //rpc_cs_char_set_compat_check function.
- static int is_compatible (ACE_CDR::ULong codeset_id,
- ACE_CDR::ULong other);
-
- // return the max number of bytes required to represent a single character.
- // This wraps the rpc_rgy_get_max_bytes function.
- static ACE_CDR::Short get_max_bytes (ACE_CDR::ULong codeset_id);
-
- enum {max_charsets_ = 5};
-protected:
- typedef struct {
- const char * desc_;
- const char * loc_name_;
- ACE_CDR::ULong codeset_id_;
- ACE_CDR::UShort num_sets_;
- ACE_CDR::UShort char_sets_[max_charsets_];
- ACE_CDR::UShort max_bytes_;
- } registry_entry;
-
-private:
- static size_t num_registry_entries_;
- static registry_entry registry_db_[];
-
- static int locale_to_registry_i (const ACE_CString &locale,
- ACE_CDR::ULong &codeset_id,
- ACE_CDR::UShort * = 0,
- ACE_CDR::UShort ** = 0);
- static int registry_to_locale_i (ACE_CDR::ULong codeset_id,
- ACE_CString &locale,
- ACE_CDR::UShort * = 0,
- ACE_CDR::UShort ** = 0);
- static int is_compatible_i (ACE_CDR::ULong codeset_id,
- ACE_CDR::ULong other);
- static ACE_CDR::Short get_max_bytes_i (ACE_CDR::ULong codeset_id);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Codeset_Registry.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_CODESET_REGISTRY_H */
diff --git a/ace/Codeset_Registry.inl b/ace/Codeset_Registry.inl
deleted file mode 100644
index 47aaf7280ca..00000000000
--- a/ace/Codeset_Registry.inl
+++ /dev/null
@@ -1,98 +0,0 @@
-// -*- C++ -*-
-//=============================================================================
-/**
- * @file Codeset_Registry.inl
- *
- * $Id$
- *
- * ACE wrapper around access functions for the OSF's DCE codeset registry
- * access functions - the inline functions either call the system supplied
- * DCE based codeset regsitry function, or calls the emulation
- *
- *
- * @author Phil Mesnier <mesnier_p@ociweb.com>
- */
-//=============================================================================
-
-ACE_INLINE
-int
-ACE_Codeset_Registry::locale_to_registry(const ACE_CString &locale,
- ACE_CDR::ULong &codeset_id,
- ACE_CDR::UShort *num_sets,
- ACE_CDR::UShort **char_sets)
-{
-#if defined (ACE_HAS_DCE_CODESET_REGISTRY)
- error_status_t result;
- dce_cs_loc_to_rgy (locale.c_str(),
- &codeset_id,
- num_sets,
- char_sets,
- &result);
- return (result == dce_cs_c_ok) ? 1 : 0;
-#else
- return ACE_Codeset_Registry::locale_to_registry_i (locale,
- codeset_id,
- num_sets,
- char_sets);
-#endif /* ACE_HAS_DCE_CODESET_REGISTRY */
-}
-
-// based on a registry value, find the locale string and optional codeset
-// collection. This wraps the dce_cs_rgy_to_loc function, or emulates it.
-ACE_INLINE
-int
-ACE_Codeset_Registry::registry_to_locale(ACE_CDR::ULong codeset_id,
- ACE_CString &locale,
- ACE_CDR::UShort *num_sets,
- ACE_CDR::UShort **char_sets)
-{
-#if defined (ACE_HAS_DCE_CODESET_REGISTRY)
- error_status_t result;
- char *buffer;
- dce_cs_rgy_to_loc (codeset_id,
- &buffer,
- num_sets,
- char_sets,
- &result);
- locale.set(buffer); // does a copy :-(
- free (buffer);
- return (result == dce_cs_c_ok) ? 1 : 0;
-#else
- return ACE_Codeset_Registry::registry_to_locale_i (codeset_id,
- locale,
- num_sets,
- char_sets);
-#endif /* ACE_HAS_DCE_CODESET_REGISTRY */
-}
-
-// tell if two codesets are compatible. This wraps the
-//rpc_cs_char_set_compat_check function.
-ACE_INLINE
-int
-ACE_Codeset_Registry::is_compatible (ACE_CDR::ULong codeset_id,
- ACE_CDR::ULong other)
-{
-#if defined (ACE_HAS_DCE_CODESET_REGISTRY)
- error_status_t result;
- rpc_cs_char_set_compat_check(codeset_id,other,&result);
- return (result == rpc_s_ok) ? 1 : 0;
-#else
- return ACE_Codeset_Registry::is_compatible_i (codeset_id,other);
-#endif /* ACE_HAS_DCE_CODESET_REGISTRY */
-}
-
-// return the max number of bytes required to represent a single character.
-// This wraps the rpc_rgy_get_max_bytes function.
-ACE_INLINE
-ACE_CDR::Short
-ACE_Codeset_Registry::get_max_bytes (ACE_CDR::ULong codeset_id)
-{
-#if defined (ACE_HAS_DCE_CODESET_REGISTRY)
- error_status_t result;
- short max_bytes;
- rpc_rgy_get_max_bytes(codeset_id,&max_bytes,&result);
- return (result == rpc_s_ok) ? (short)max_bytes : 0;
-#else
- return ACE_Codeset_Registry::get_max_bytes_i (codeset_id);
-#endif /* ACE_HAS_DCE_CODESET_REGISTRY */
-}
diff --git a/ace/Codeset_Registry_db.cpp b/ace/Codeset_Registry_db.cpp
deleted file mode 100644
index 7386ba39e5e..00000000000
--- a/ace/Codeset_Registry_db.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-/* $Id$
- * Codeset registry DB, generated Fri Feb 28 21:01:30 2003
- * source: code_set_registry1.2g.txt
- *
- * To populate the registry_db, construct a codeset registry text file based
- * on the OSF's Character and Code Set Registry. See DCE RFC 40.1 for details
- * on obtaining the full text for the current registry. Once you have composed
- * a text file containing all the desired codeset information, build and run
- * mkcsregdb. The source is in $ACE_ROOT/apps/mkcsregdb. It will generate a new
- * copy of this file, with the registry_db_ array properly initialized.
- */
-
-#include "ace/Codeset_Registry.h"
-
-ACE_Codeset_Registry::registry_entry
-ACE_Codeset_Registry::registry_db_[] =
-{
- {"ISO 8859-1:1987; Latin Alphabet No. 1","ASCII",0x00010001,1,{0x0011},1},
- {"IBM-1047 (CCSID 01047); Latin-1 Open System","EBCDIC",0x10020417,1,{0x0011},1},
- {"ISO/IEC 10646-1:1993; UCS-4, Level 1","UCS-4",0x00010104,1,{0x1000},4},
- {"ISO/IEC 10646-1:1993; UTF-16, UCS Transformation Format 16-bit form","Unicode",0x00010109,1,{0x1000},2}
-};
-
-size_t ACE_Codeset_Registry::num_registry_entries_ = 4;
diff --git a/ace/Configuration.cpp b/ace/Configuration.cpp
deleted file mode 100644
index 4cf75a0833e..00000000000
--- a/ace/Configuration.cpp
+++ /dev/null
@@ -1,2180 +0,0 @@
-// $Id$
-#include "ace/Configuration.h"
-#include "ace/Auto_Ptr.h"
-
-// Can remove this when import_config and export_config are removed from
-// ACE_Configuration. They're deprecated at ACE 5.2.
-#include "ace/Configuration_Import_Export.h"
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-#if defined (ACE_HAS_THREADS)
-// ACE_SYNCH_MUTEX should not be used in the template instantiations
-// because the resulting template instantiation for the
-// single-threaded case already exists in ACE.
-template class ACE_Allocator_Adapter<ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_Thread_Mutex> >;
-template class ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_Thread_Mutex>;
-template class ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_Thread_Mutex, ACE_Control_Block>;
-#endif /* ACE_HAS_THREADS */
-template class ACE_Hash_Map_Entry<ACE_Configuration_ExtId, ACE_Configuration_Section_IntId>;
-template class ACE_Hash_Map_Entry<ACE_Configuration_ExtId, ACE_Configuration_Value_IntId>;
-template class ACE_Hash_Map_Entry<ACE_Configuration_ExtId, int>;
-template class ACE_Hash_Map_Iterator_Base_Ex<ACE_Configuration_ExtId, ACE_Configuration_Section_IntId, ACE_Hash<ACE_Configuration_ExtId>, ACE_Equal_To<ACE_Configuration_ExtId>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Base_Ex<ACE_Configuration_ExtId, ACE_Configuration_Value_IntId, ACE_Hash<ACE_Configuration_ExtId>, ACE_Equal_To<ACE_Configuration_ExtId>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Base_Ex<ACE_Configuration_ExtId, int, ACE_Hash<ACE_Configuration_ExtId>, ACE_Equal_To<ACE_Configuration_ExtId>, ACE_Null_Mutex>;
-
-
-// Added to fix problems in SunOS CC5.0
-template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_Configuration_ExtId,ACE_Configuration_Value_IntId,ACE_Hash<ACE_Configuration_ExtId>,ACE_Equal_To<ACE_Configuration_ExtId>,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<ACE_Configuration_ExtId,ACE_Configuration_Value_IntId,ACE_Hash<ACE_Configuration_ExtId>,ACE_Equal_To<ACE_Configuration_ExtId>,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<ACE_Configuration_ExtId,int,ACE_Hash<ACE_Configuration_ExtId>,ACE_Equal_To<ACE_Configuration_ExtId>,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<ACE_Configuration_ExtId,ACE_Configuration_Section_IntId,ACE_Hash<ACE_Configuration_ExtId>,ACE_Equal_To<ACE_Configuration_ExtId>,ACE_Null_Mutex>;
-template class ACE_Equal_To<ACE_Configuration_ExtId>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_Configuration_ExtId,ACE_Configuration_Section_IntId,ACE_Hash<ACE_Configuration_ExtId>,ACE_Equal_To<ACE_Configuration_ExtId>,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_Configuration_ExtId,int,ACE_Hash<ACE_Configuration_ExtId>,ACE_Equal_To<ACE_Configuration_ExtId>,ACE_Null_Mutex>;
-template class ACE_Hash<ACE_Configuration_ExtId>;
-
-template class ACE_Hash_Map_Manager_Ex<ACE_Configuration_ExtId, ACE_Configuration_Section_IntId, ACE_Hash<ACE_Configuration_ExtId>, ACE_Equal_To<ACE_Configuration_ExtId>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Manager_Ex<ACE_Configuration_ExtId, ACE_Configuration_Value_IntId, ACE_Hash<ACE_Configuration_ExtId>, ACE_Equal_To<ACE_Configuration_ExtId>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Manager_Ex<ACE_Configuration_ExtId, int, ACE_Hash<ACE_Configuration_ExtId>, ACE_Equal_To<ACE_Configuration_ExtId>, ACE_Null_Mutex>;
-
-template class ACE_Hash_Map_With_Allocator<ACE_Configuration_ExtId, ACE_Configuration_Section_IntId>;
-template class ACE_Hash_Map_With_Allocator<ACE_Configuration_ExtId, ACE_Configuration_Value_IntId>;
-template class ACE_Hash_Map_With_Allocator<ACE_Configuration_ExtId, int>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#if defined (ACE_HAS_THREADS)
-// ACE_SYNCH_MUTEX should not be used in the template instantiations
-// because the resulting template instantiation for the
-// single-threaded case already exists in ACE.
-#pragma instantiate ACE_Allocator_Adapter<ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_Thread_Mutex> >
-#pragma instantiate ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_Thread_Mutex>
-#pragma instantiate ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_Thread_Mutex, ACE_Control_Block>
-#endif /* ACE_HAS_THREADS */
-#pragma instantiate ACE_Hash_Map_Entry<ACE_Configuration_ExtId, ACE_Configuration_Section_IntId>
-#pragma instantiate ACE_Hash_Map_Entry<ACE_Configuration_ExtId, ACE_Configuration_Value_IntId>
-#pragma instantiate ACE_Hash_Map_Entry<ACE_Configuration_ExtId, int>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_Configuration_ExtId, ACE_Configuration_Section_IntId, ACE_Hash<ACE_Configuration_ExtId>, ACE_Equal_To<ACE_Configuration_ExtId>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_Configuration_ExtId, ACE_Configuration_Value_IntId, ACE_Hash<ACE_Configuration_ExtId>, ACE_Equal_To<ACE_Configuration_ExtId>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_Configuration_ExtId, int, ACE_Hash<ACE_Configuration_ExtId>, ACE_Equal_To<ACE_Configuration_ExtId>, ACE_Null_Mutex>
-
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_Configuration_ExtId,ACE_Configuration_Value_IntId,ACE_Hash<ACE_Configuration_ExtId>,ACE_Equal_To<ACE_Configuration_ExtId>,ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_Configuration_ExtId,ACE_Configuration_Value_IntId,ACE_Hash<ACE_Configuration_ExtId>,ACE_Equal_To<ACE_Configuration_ExtId>,ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_Configuration_ExtId,int,ACE_Hash<ACE_Configuration_ExtId>,ACE_Equal_To<ACE_Configuration_ExtId>,ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_Configuration_ExtId,ACE_Configuration_Section_IntId,ACE_Hash<ACE_Configuration_ExtId>,ACE_Equal_To<ACE_Configuration_ExtId>,ACE_Null_Mutex>
-#pragma instantiate ACE_Equal_To<ACE_Configuration_ExtId>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_Configuration_ExtId,ACE_Configuration_Section_IntId,ACE_Hash<ACE_Configuration_ExtId>,ACE_Equal_To<ACE_Configuration_ExtId>,ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_Configuration_ExtId,int,ACE_Hash<ACE_Configuration_ExtId>,ACE_Equal_To<ACE_Configuration_ExtId>,ACE_Null_Mutex>
-#pragma instantiate ACE_Hash<ACE_Configuration_ExtId>
-
-#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_Configuration_ExtId, ACE_Configuration_Section_IntId, ACE_Hash<ACE_Configuration_ExtId>, ACE_Equal_To<ACE_Configuration_ExtId>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_Configuration_ExtId, ACE_Configuration_Value_IntId, ACE_Hash<ACE_Configuration_ExtId>, ACE_Equal_To<ACE_Configuration_ExtId>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_Configuration_ExtId, int, ACE_Hash<ACE_Configuration_ExtId>, ACE_Equal_To<ACE_Configuration_ExtId>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_With_Allocator<ACE_Configuration_ExtId, ACE_Configuration_Section_IntId>
-#pragma instantiate ACE_Hash_Map_With_Allocator<ACE_Configuration_ExtId, ACE_Configuration_Value_IntId>
-#pragma instantiate ACE_Hash_Map_With_Allocator<ACE_Configuration_ExtId, int>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-ACE_Section_Key_Internal::ACE_Section_Key_Internal (void)
- : ref_count_ (0)
-{
-}
-
-ACE_Section_Key_Internal::~ACE_Section_Key_Internal (void)
-{
-}
-
-int
-ACE_Section_Key_Internal::add_ref (void)
-{
- ++ref_count_;
- return 0;
-}
-
-int
-ACE_Section_Key_Internal::dec_ref (void)
-{
- if (!--ref_count_)
- delete this;
- return 0;
-}
-
-ACE_Configuration_Section_Key::ACE_Configuration_Section_Key (void)
- : key_ (0)
-{
-}
-
-ACE_Configuration_Section_Key::~ACE_Configuration_Section_Key (void)
-{
- if (key_)
- key_->dec_ref ();
-}
-
-ACE_Configuration_Section_Key::ACE_Configuration_Section_Key (ACE_Section_Key_Internal* key)
- : key_ (key)
-{
- if (key_)
- key_->add_ref ();
-}
-
-ACE_Configuration_Section_Key::ACE_Configuration_Section_Key (const ACE_Configuration_Section_Key& rhs)
- : key_ (rhs.key_)
-{
- if (key_)
- key_->add_ref ();
-}
-
-ACE_Configuration_Section_Key&
-ACE_Configuration_Section_Key::operator= (const ACE_Configuration_Section_Key& rhs)
-{
- if (this != &rhs)
- {
- if (key_)
- key_->dec_ref ();
-
- key_ = rhs.key_;
-
- if (key_)
- key_->add_ref ();
- }
- return *this;
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-ACE_TCHAR ACE_Configuration::NULL_String_ = '\0';
-
-ACE_Configuration::ACE_Configuration (void)
- : root_ ()
-{
-}
-
-ACE_Configuration::~ACE_Configuration (void)
-{
-}
-
-ACE_Section_Key_Internal*
-ACE_Configuration::get_internal_key (const ACE_Configuration_Section_Key& key)
-{
- return key.key_;
-}
-
-int
-ACE_Configuration::expand_path (const ACE_Configuration_Section_Key& key,
- const ACE_TString& path_in,
- ACE_Configuration_Section_Key& key_out,
- int create)
-{
- // Make a copy of key
- ACE_Configuration_Section_Key current_section = key;
- ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> pData (path_in.rep ());
- ACE_Tokenizer parser (pData.get ());
- parser.delimiter_replace ('\\', '\0');
- parser.delimiter_replace ('/', '\0');
-
- for (ACE_TCHAR *temp = parser.next ();
- temp != 0;
- temp = parser.next ())
- {
- // Open the section
- if (open_section (current_section,
- temp,
- create,
- key_out))
- return -1;
-
- current_section = key_out;
- }
-
- return 0;
-
-}
-
-// import_config and export_config are here for backward compatibility,
-// and have been deprecated.
-int
-ACE_Configuration::export_config (const ACE_TCHAR* filename)
-{
- ACE_Registry_ImpExp exporter (*this);
- return exporter.export_config (filename);
-}
-
-int
-ACE_Configuration::import_config (const ACE_TCHAR* filename)
-{
- ACE_Registry_ImpExp importer (*this);
- return importer.import_config (filename);
-}
-
-int
-ACE_Configuration::validate_name (const ACE_TCHAR* name, int allow_path)
-{
- // Invalid character set
- const ACE_TCHAR* reject =
- allow_path ? ACE_LIB_TEXT ("][") : ACE_LIB_TEXT ("\\][");
-
- // Position of the first invalid character or terminating null.
- size_t pos = ACE_OS_String::strcspn (name, reject);
-
- // Check if it is an invalid character.
- if (name[pos] != ACE_LIB_TEXT ('\0'))
- {
- errno = EINVAL;
- return -1;
- }
-
- // The first character can never be a path separator.
- if (name[0] == ACE_LIB_TEXT ('\\'))
- {
- errno = EINVAL;
- return -1;
- }
-
- // Validate length.
- if (pos == 0 || pos > 255)
- {
- errno = ENAMETOOLONG;
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_Configuration::validate_value_name (const ACE_TCHAR* name)
-{
- if (name == 0 || *name == this->NULL_String_)
- return 0;
-
- return this->validate_name (name);
-}
-
-const ACE_Configuration_Section_Key&
-ACE_Configuration::root_section (void) const
-{
- return root_;
-}
-
-/**
- * Determine if the contents of this object is the same as the
- * contents of the object on the right hand side.
- * Returns 1 (True) if they are equal and 0 (False) if they are not equal
- */
-int ACE_Configuration::operator== (const ACE_Configuration& rhs) const
-{
- int rc = 1;
- int sectionIndex = 0;
- ACE_TString sectionName;
- ACE_Configuration *nonconst_this = ACE_const_cast (ACE_Configuration*, this);
- ACE_Configuration &nonconst_rhs = ACE_const_cast (ACE_Configuration&, rhs);
-
- const ACE_Configuration_Section_Key& rhsRoot = rhs.root_section ();
- ACE_Configuration_Section_Key rhsSection;
- ACE_Configuration_Section_Key thisSection;
-
- // loop through each section in this object
- while ((rc) && (!nonconst_this->enumerate_sections (this->root_,
- sectionIndex,
- sectionName)))
- {
- // find that section in the rhs object
- if (nonconst_rhs.open_section (rhsRoot,
- sectionName.c_str (),
- 0,
- rhsSection) != 0)
- {
- // If the rhs object does not contain the section then we are
- // not equal.
- rc = 0;
- }
- else if (nonconst_this->open_section (this->root_,
- sectionName.c_str (),
- 0,
- thisSection) != 0)
- {
- // if there is some error opening the section in this object
- rc = 0;
- }
- else
- {
- // Well the sections match
- int valueIndex = 0;
- ACE_TString valueName;
- VALUETYPE valueType;
- VALUETYPE rhsType;
-
- // Enumerate each value in this section
- while ((rc) && nonconst_this->enumerate_values (thisSection,
- valueIndex,
- valueName,
- valueType))
- {
- // look for the same value in the rhs section
- if (nonconst_rhs.find_value (rhsSection,
- valueName.c_str (),
- rhsType) != 0)
- {
- // We're not equal if the same value cannot
- // be found in the rhs object.
- rc = 0;
- }
- else if (valueType != rhsType)
- {
- // we're not equal if the types do not match.
- rc = 0;
- }
- else
- {
- // finally compare values.
- if (valueType == STRING)
- {
- ACE_TString thisString, rhsString;
- if (nonconst_this->get_string_value (thisSection,
- valueName.c_str (),
- thisString) != 0)
- {
- // we're not equal if we cannot get this string
- rc = 0;
- }
- else if (nonconst_rhs.get_string_value (rhsSection,
- valueName.c_str (),
- rhsString) != 0)
- {
- // we're not equal if we cannot get rhs string
- rc = 0;
- }
- rc = thisString == rhsString;
- }
- else if (valueType == INTEGER)
- {
- u_int thisInt, rhsInt;
- if (nonconst_this->get_integer_value (thisSection,
- valueName.c_str (),
- thisInt) != 0)
- {
- // we're not equal if we cannot get this int
- rc = 0;
- }
- else if (nonconst_rhs.get_integer_value (rhsSection,
- valueName.c_str (),
- rhsInt) != 0)
- {
- // we're not equal if we cannot get rhs int
- rc = 0;
- }
- rc = thisInt == rhsInt;
- }
- else if (valueType == BINARY)
- {
- void* thisData = 0;
- void* rhsData = 0;
- size_t thisLength, rhsLength;
- if (nonconst_this->get_binary_value (thisSection,
- valueName.c_str (),
- thisData,
- thisLength) != 0)
- {
- // we're not equal if we cannot get this data
- rc = 0;
- }
- else if (nonconst_rhs.get_binary_value (rhsSection,
- valueName.c_str (),
- rhsData,
- rhsLength) != 0)
- {
- // we're not equal if we cannot get this data
- rc = 0;
- }
-
- rc = thisLength == rhsLength;
- // are the length's the same?
-
- if (rc)
- {
- unsigned char* thisCharData = (unsigned char*)thisData;
- unsigned char* rhsCharData = (unsigned char*)rhsData;
- // yes, then check each element
- for (size_t count = 0;
- (rc) && (count < thisLength);
- count++)
- {
- rc = (* (thisCharData + count) == * (rhsCharData + count));
- }
-
- delete [] thisCharData;
- delete [] rhsCharData;
- }// end if the length's match
-
-
- }
- // We should never have valueTypes of INVALID, therefore
- // we're not comparing them. How would we since we have
- // no get operation for invalid types.
- // So, if we have them, we guess they are equal.
-
- }// end else if values match.
-
- valueIndex++;
-
- }// end value while loop
-
- // look in the rhs for values not in this
- valueIndex = 0;
- while ((rc) &&
- (!nonconst_rhs.enumerate_values (rhsSection,
- valueIndex,
- valueName,
- rhsType)))
- {
- // look for the same value in this section
- if (nonconst_this->find_value (thisSection,
- valueName.c_str (),
- valueType) != 0)
- {
- // We're not equal if the same value cannot
- // be found in the rhs object.
- rc = 0;
- }
- valueIndex++;
- }// end while for rhs values not in this.
-
- }// end else if sections match.
-
- sectionIndex++;
-
- }// end section while loop
-
- // Finally, make sure that there are no sections in rhs that do not
- // exist in this
- sectionIndex = 0;
- while ((rc)
- && (!nonconst_rhs.enumerate_sections (rhsRoot,
- sectionIndex,
- sectionName)))
- {
- // find the section in this
- if (nonconst_this->open_section (this->root_,
- sectionName.c_str (),
- 0,
- thisSection) != 0)
- {
- // if there is some error opening the section in this object
- rc = 0;
- }
- else if (nonconst_rhs.open_section (rhsRoot,
- sectionName.c_str (),
- 0,
- rhsSection) != 0)
- {
- // If the rhs object does not contain the section then we
- // are not equal.
- rc = 0;
- }
- sectionIndex++;
- }
- return rc;
-}
-
-
-//////////////////////////////////////////////////////////////////////////////
-
-#if defined (WIN32)
-
-static const int ACE_DEFAULT_BUFSIZE = 256;
-
-static const ACE_TCHAR *temp_name (const ACE_TCHAR *name)
-{
- if (name && *name == ACE_Configuration::NULL_String_)
- return 0;
- return name;
-}
-
-ACE_Section_Key_Win32::ACE_Section_Key_Win32 (HKEY hKey)
- : hKey_ (hKey)
-{
-}
-
-ACE_Section_Key_Win32::~ACE_Section_Key_Win32 (void)
-{
- ::RegCloseKey (hKey_);
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-int
-ACE_Configuration_Win32Registry::operator== (const ACE_Configuration_Win32Registry &rhs) const
-{
- ACE_UNUSED_ARG (rhs);
- return 1;
-}
-
-int
-ACE_Configuration_Win32Registry::operator!= (const ACE_Configuration_Win32Registry &rhs) const
-{
- ACE_UNUSED_ARG (rhs);
- return 1;
-}
-
-ACE_Configuration_Win32Registry::ACE_Configuration_Win32Registry (HKEY hKey)
-{
- ACE_Section_Key_Win32 *temp;
-
- ACE_NEW (temp, ACE_Section_Key_Win32 (hKey));
-
- root_ = ACE_Configuration_Section_Key (temp);
-}
-
-
-ACE_Configuration_Win32Registry::~ACE_Configuration_Win32Registry (void)
-{
-}
-
-int
-ACE_Configuration_Win32Registry::open_section (const ACE_Configuration_Section_Key& base,
- const ACE_TCHAR* sub_section,
- int create,
- ACE_Configuration_Section_Key& result)
-{
- if (validate_name (sub_section, 1))
- return -1;
-
- HKEY base_key;
- if (load_key (base, base_key))
- return -1;
-
- HKEY result_key;
- if (ACE_TEXT_RegOpenKeyEx (base_key,
- sub_section,
- 0,
- KEY_ALL_ACCESS,
- &result_key) != ERROR_SUCCESS)
- {
- if (!create)
- return -1;
-
- if (ACE_TEXT_RegCreateKeyEx (base_key,
- sub_section,
- 0,
- 0,
- REG_OPTION_NON_VOLATILE,
- KEY_ALL_ACCESS,
- 0,
- &result_key,
- 0
- ) != ERROR_SUCCESS)
- return -1;
- }
-
- ACE_Section_Key_Win32 *temp;
-
- ACE_NEW_RETURN (temp, ACE_Section_Key_Win32 (result_key), -1);
- result = ACE_Configuration_Section_Key (temp);
- return 0;
-}
-
-int
-ACE_Configuration_Win32Registry::remove_section (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* sub_section,
- int recursive)
-{
- if (validate_name (sub_section))
- return -1;
-
- HKEY base_key;
- if (load_key (key, base_key))
- return -1;
-
- if (recursive)
- {
- ACE_Configuration_Section_Key section;
- if (open_section (key, sub_section, 0, section))
- return -1;
-
- HKEY sub_key;
- if (load_key (section, sub_key))
- return -1;
-
- ACE_TCHAR name_buffer[ACE_DEFAULT_BUFSIZE];
- DWORD buffer_size = ACE_DEFAULT_BUFSIZE;
- // Note we don't increment the index because the
- // enumeration becomes invalid if we change the
- // subkey, which we do when we delete it. By leaving
- // it 0, we always delete the top entry
- while (ACE_TEXT_RegEnumKeyEx (sub_key,
- 0,
- name_buffer,
- &buffer_size,
- 0,
- 0,
- 0,
- 0) == ERROR_SUCCESS)
- {
- remove_section (section, name_buffer, 1);
- buffer_size = ACE_DEFAULT_BUFSIZE;
- }
- }
-
-#if (ACE_HAS_WINNT4 != 0)
- if (ACE_TEXT_RegDeleteKey (base_key, sub_section) != ERROR_SUCCESS)
- return -1;
-#else
- if (!recursive)
- {
- ACE_Configuration_Section_Key section;
- if (open_section (key, sub_section, 0, section))
- return -1;
-
- HKEY sub_key;
- if (load_key (section, sub_key))
- return -1;
-
- ACE_TCHAR name_buffer[ACE_DEFAULT_BUFSIZE];
- DWORD buffer_size = ACE_DEFAULT_BUFSIZE;
- // Check for a an entry under the sub_key
- if (ACE_TEXT_RegEnumKeyEx (sub_key,
- 0,
- name_buffer,
- &buffer_size,
- 0,
- 0,
- 0,
- 0) == ERROR_SUCCESS)
- return -1;
- }
- if (ACE_TEXT_RegDeleteKey (base_key, sub_section) != ERROR_SUCCESS)
- return -1;
-#endif
-
- return 0;
-}
-
-int
-ACE_Configuration_Win32Registry::enumerate_values (const ACE_Configuration_Section_Key& key,
- int index,
- ACE_TString& name,
- VALUETYPE& type)
-{
- HKEY base_key;
- if (load_key (key, base_key))
- return -1;
-
- ACE_TCHAR name_buffer[ACE_DEFAULT_BUFSIZE];
- DWORD buffer_size = ACE_DEFAULT_BUFSIZE;
- DWORD value_type;
-
- int rc = ACE_TEXT_RegEnumValue (base_key,
- index,
- name_buffer,
- &buffer_size,
- 0,
- &value_type,
- 0,
- 0);
- if (rc == ERROR_NO_MORE_ITEMS)
- return 1;
- else if (rc != ERROR_SUCCESS)
- return -1;
-
- name = name_buffer;
-
- switch (value_type)
- {
- case REG_BINARY:
- type = BINARY;
- break;
- case REG_SZ:
- type = STRING;
- break;
- case REG_DWORD:
- type = INTEGER;
- break;
- default:
- type = INVALID;
- }
-
- return 0;
-}
-
-int
-ACE_Configuration_Win32Registry::enumerate_sections (const ACE_Configuration_Section_Key& key,
- int index,
- ACE_TString& name)
-{
- HKEY base_key;
- if (load_key (key, base_key))
- return -1;
-
- ACE_TCHAR name_buffer[ACE_DEFAULT_BUFSIZE];
- DWORD buffer_size = ACE_DEFAULT_BUFSIZE;
- int rc = ACE_TEXT_RegEnumKeyEx (base_key,
- index,
- name_buffer,
- &buffer_size,
- 0,
- 0,
- 0,
- 0);
- if (rc == ERROR_NO_MORE_ITEMS)
- return 1;
- else if (rc != ERROR_MORE_DATA && rc != ERROR_SUCCESS)
- return -1;
-
- name = name_buffer;
-
- return 0;
-}
-
-int
-ACE_Configuration_Win32Registry::set_string_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- const ACE_TString& value)
-{
- const ACE_TCHAR *t_name = temp_name (name);
- if (validate_value_name (t_name))
- return -1;
-
- HKEY base_key;
- if (load_key (key, base_key))
- return -1;
-
- DWORD len = ACE_static_cast (DWORD, value.length () + 1);
- len *= sizeof (ACE_TCHAR);
- if (ACE_TEXT_RegSetValueEx (base_key,
- t_name,
- 0,
- REG_SZ,
- (BYTE *) value.fast_rep (),
- len)
- != ERROR_SUCCESS)
- return -1;
-
- return 0;
-}
-
-int
-ACE_Configuration_Win32Registry::set_integer_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- u_int value)
-{
- const ACE_TCHAR *t_name = temp_name (name);
- if (validate_value_name (t_name))
- return -1;
-
- HKEY base_key;
- if (load_key (key, base_key))
- return -1;
-
- if (ACE_TEXT_RegSetValueEx (base_key,
- t_name,
- 0,
- REG_DWORD,
- (BYTE *) &value,
- sizeof (value)) != ERROR_SUCCESS)
- return -1;
-
- return 0;
-}
-
-int
-ACE_Configuration_Win32Registry::set_binary_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- const void* data,
- size_t length)
-{
- const ACE_TCHAR *t_name = temp_name (name);
- if (validate_value_name (t_name))
- return -1;
-
- HKEY base_key;
- if (load_key (key, base_key))
- return -1;
-
- if (ACE_TEXT_RegSetValueEx (base_key,
- t_name,
- 0,
- REG_BINARY,
- (BYTE *) data,
- ACE_static_cast (DWORD, length))
- != ERROR_SUCCESS)
- return -1;
-
- return 0;
-}
-
-int
-ACE_Configuration_Win32Registry::get_string_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- ACE_TString& value)
-{
- const ACE_TCHAR *t_name = temp_name (name);
- if (validate_value_name (t_name))
- return -1;
-
- HKEY base_key;
- if (load_key (key, base_key))
- return -1;
-
- // Get the size of the binary data from windows
- DWORD buffer_length = 0;
- DWORD type;
- if (ACE_TEXT_RegQueryValueEx (base_key,
- t_name,
- 0,
- &type,
- (BYTE *) 0,
- &buffer_length) != ERROR_SUCCESS)
- return -1;
-
- if (type != REG_SZ)
- {
- errno = 0; ACE_OS::last_error (ERROR_INVALID_DATATYPE);
- return -1;
- }
-
- ACE_TCHAR *temp = 0;
- ACE_NEW_RETURN (temp,
- ACE_TCHAR[buffer_length],
- -1);
-
- ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer (temp);
-
- if (ACE_TEXT_RegQueryValueEx (base_key,
- t_name,
- 0,
- &type,
- (BYTE *) buffer.get (),
- &buffer_length) != ERROR_SUCCESS)
- {
- return -1;
- }
-
- value = buffer.get ();
- return 0;
-}
-
-int
-ACE_Configuration_Win32Registry::get_integer_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- u_int& value)
-{
- const ACE_TCHAR *t_name = temp_name (name);
- if (validate_value_name (t_name))
- return -1;
-
- HKEY base_key;
- if (load_key (key, base_key))
- return -1;
-
- DWORD length = sizeof (value);
- DWORD type;
- if (ACE_TEXT_RegQueryValueEx (base_key,
- t_name,
- 0,
- &type,
- (BYTE *) &value,
- &length) != ERROR_SUCCESS)
- return -1;
-
- if (type != REG_DWORD)
- {
- errno = 0; ACE_OS::last_error (ERROR_INVALID_DATATYPE);
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_Configuration_Win32Registry::get_binary_value (const ACE_Configuration_Section_Key &key,
- const ACE_TCHAR *name,
- void *&data,
- size_t &length)
-{
- const ACE_TCHAR *t_name = temp_name (name);
- if (validate_value_name (t_name))
- return -1;
-
- HKEY base_key;
- if (load_key (key, base_key))
- return -1;
-
- // Get the size of the binary data from windows
- DWORD buffer_length = 0;
- DWORD type;
- if (ACE_TEXT_RegQueryValueEx (base_key,
- t_name,
- 0,
- &type,
- (BYTE *) 0,
- &buffer_length) != ERROR_SUCCESS)
- return -1;
-
- if (type != REG_BINARY)
- {
- errno = 0; ACE_OS::last_error (ERROR_INVALID_DATATYPE);
- return -1;
- }
-
- length = buffer_length;
-
- ACE_NEW_RETURN (data, BYTE[length], -1);
-
- if (ACE_TEXT_RegQueryValueEx (base_key,
- t_name,
- 0,
- &type,
- (BYTE *) data,
- &buffer_length) != ERROR_SUCCESS)
- {
- delete [] (BYTE *) data;
- data = 0;
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_Configuration_Win32Registry::find_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- VALUETYPE& type_out)
-{
- const ACE_TCHAR *t_name = temp_name (name);
- if (validate_value_name (t_name))
- return -1;
-
- HKEY base_key;
- if (load_key (key, base_key))
- return -1;
-
- DWORD buffer_length=0;
- DWORD type;
- int result=ACE_TEXT_RegQueryValueEx (base_key,
- t_name,
- 0,
- &type,
- 0,
- &buffer_length);
- if (result != ERROR_SUCCESS)
- return -1;
-
- switch (type)
- {
- case REG_SZ:
- type_out = STRING;
- break;
- case REG_DWORD:
- type_out = INTEGER;
- break;
- case REG_BINARY:
- type_out = BINARY;
- break;
- default:
- return -1; // unknown type
- }
-
- return 0;
-}
-
-int
-ACE_Configuration_Win32Registry::remove_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name)
-{
- const ACE_TCHAR *t_name = temp_name (name);
- if (validate_value_name (t_name))
- return -1;
-
- HKEY base_key;
- if (load_key (key, base_key))
- return -1;
-
- if (ACE_TEXT_RegDeleteValue (base_key, t_name) != ERROR_SUCCESS)
- return -1;
-
- return 0;
-}
-
-
-int
-ACE_Configuration_Win32Registry::load_key (const ACE_Configuration_Section_Key& key,
- HKEY& hKey)
-{
- ACE_Section_Key_Win32* pKey = ACE_dynamic_cast (ACE_Section_Key_Win32*,
- get_internal_key (key));
- if (!pKey)
- return -1;
-
- hKey = pKey->hKey_;
- return 0;
-}
-
-HKEY
-ACE_Configuration_Win32Registry::resolve_key (HKEY hKey,
- const ACE_TCHAR* path,
- int create)
-{
- HKEY result = 0;
- // Make a copy of hKey
-#if defined (ACE_HAS_WINCE)
- if (::RegOpenKeyEx (hKey, 0, 0, 0, &result) != ERROR_SUCCESS)
-#else
- if (::RegOpenKey (hKey, 0, &result) != ERROR_SUCCESS)
-#endif // ACE_HAS_WINCE
- return 0;
-
- // recurse through the path
- ACE_TCHAR *temp_path = 0;
- ACE_NEW_RETURN (temp_path,
- ACE_TCHAR[ACE_OS::strlen (path) + 1],
- 0);
- ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> pData (temp_path);
- ACE_OS::strcpy (pData.get (), path);
- ACE_Tokenizer parser (pData.get ());
- parser.delimiter_replace ('\\', '\0');
- parser.delimiter_replace ('/', '\0');
-
- for (ACE_TCHAR *temp = parser.next ();
- temp != 0;
- temp = parser.next ())
- {
- // Open the key
- HKEY subkey;
-
-#if defined (ACE_HAS_WINCE)
- if (ACE_TEXT_RegOpenKeyEx (result,
- temp,
- 0,
- 0,
- &subkey) != ERROR_SUCCESS)
-#else
- if (ACE_TEXT_RegOpenKey (result,
- temp,
- &subkey) != ERROR_SUCCESS)
-#endif // ACE_HAS_WINCE
- {
- // try creating it
- if (!create || ACE_TEXT_RegCreateKeyEx (result,
- temp,
- 0,
- 0,
- 0,
- KEY_ALL_ACCESS,
- 0,
- &subkey,
-#if defined (__MINGW32__)
- (PDWORD) 0
-#else
- 0
-#endif /* __MINGW32__ */
- ) != ERROR_SUCCESS)
- {
- // error
- ::RegCloseKey (result);
- return 0;
- }
- }
- // release our open key handle
- ::RegCloseKey (result);
- result = subkey;
- }
-
- return result;
-}
-
-#endif /* WIN_32 */
-
-///////////////////////////////////////////////////////////////
-
-ACE_Configuration_Value_IntId::ACE_Configuration_Value_IntId (void)
- : type_ (ACE_Configuration::INVALID),
- length_ (0)
-{
- this->data_.ptr_ = 0;
-}
-
-ACE_Configuration_Value_IntId::ACE_Configuration_Value_IntId (ACE_TCHAR* string)
- : type_ (ACE_Configuration::STRING),
- length_ (0)
-{
- this->data_.ptr_ = string;
-}
-
-ACE_Configuration_Value_IntId::ACE_Configuration_Value_IntId (u_int integer)
- : type_ (ACE_Configuration::INTEGER),
- length_ (0)
-{
- this->data_.int_ = integer;
-}
-
-ACE_Configuration_Value_IntId::ACE_Configuration_Value_IntId (void* data, size_t length)
- : type_ (ACE_Configuration::BINARY),
- length_ (length)
-{
- this->data_.ptr_ = data;
-}
-
-ACE_Configuration_Value_IntId::ACE_Configuration_Value_IntId (const ACE_Configuration_Value_IntId& rhs)
- : type_ (rhs.type_),
- data_ (rhs.data_),
- length_ (rhs.length_)
-{
-}
-
-ACE_Configuration_Value_IntId::~ACE_Configuration_Value_IntId (void)
-{
-}
-
-ACE_Configuration_Value_IntId& ACE_Configuration_Value_IntId::operator= (const ACE_Configuration_Value_IntId& rhs)
-{
- if (this != &rhs)
- {
- type_ = rhs.type_;
- data_ = rhs.data_;
- length_ = rhs.length_;
- }
- return *this;
-}
-
-void
-ACE_Configuration_Value_IntId::free (ACE_Allocator *alloc)
-{
- if (this->type_ == ACE_Configuration::STRING
- || this->type_ == ACE_Configuration::BINARY)
- alloc->free (data_.ptr_);
- // Do nothing in other cases...
-}
-
-ACE_Configuration_ExtId::ACE_Configuration_ExtId (void)
- : name_ (0)
-{
-}
-
-ACE_Configuration_ExtId::ACE_Configuration_ExtId (const ACE_TCHAR* name)
- : name_ (name)
-{
-}
-
-ACE_Configuration_ExtId::ACE_Configuration_ExtId (const ACE_Configuration_ExtId& rhs)
- : name_ (rhs.name_)
-{
-}
-
-ACE_Configuration_ExtId::~ACE_Configuration_ExtId (void)
-{
-}
-
-ACE_Configuration_ExtId& ACE_Configuration_ExtId::operator= (const ACE_Configuration_ExtId& rhs)
-{
- if (this != &rhs)
- name_ = rhs.name_;
-
- return *this;
-}
-
-int
-ACE_Configuration_ExtId::operator == (const ACE_Configuration_ExtId& rhs) const
-{
- return (ACE_OS::strcmp (name_, rhs.name_) == 0);
-}
-
-int
-ACE_Configuration_ExtId::operator != (const ACE_Configuration_ExtId& rhs) const
-{
- return (ACE_OS::strcmp (name_, rhs.name_) != 0);
-}
-
-u_long
-ACE_Configuration_ExtId::hash (void) const
-{
- ACE_TString temp (name_, 0, 0);
- return temp.hash ();
-}
-
-const ACE_TCHAR*
-ACE_Configuration_ExtId::name (void)
-{
- return name_;
-}
-
-void
-ACE_Configuration_ExtId::free (ACE_Allocator *alloc)
-{
- alloc->free ((void *) (name_));
-}
-
-///////////////////////////////////////////////////////////////////////
-
-ACE_Configuration_Section_IntId::ACE_Configuration_Section_IntId (void)
- : value_hash_map_ (0),
- section_hash_map_ (0)
-{
-}
-
-ACE_Configuration_Section_IntId::ACE_Configuration_Section_IntId (VALUE_MAP* value_hash_map, SUBSECTION_MAP* section_hash_map)
- : value_hash_map_ (value_hash_map),
- section_hash_map_ (section_hash_map)
-{
-}
-
-ACE_Configuration_Section_IntId::ACE_Configuration_Section_IntId (const ACE_Configuration_Section_IntId& rhs)
- : value_hash_map_ (rhs.value_hash_map_),
- section_hash_map_ (rhs.section_hash_map_)
-{
-
-}
-
-ACE_Configuration_Section_IntId::~ACE_Configuration_Section_IntId ()
-{
-}
-
-ACE_Configuration_Section_IntId&
-ACE_Configuration_Section_IntId::operator= (const ACE_Configuration_Section_IntId& rhs)
-{
- if (this != &rhs)
- {
- value_hash_map_ = rhs.value_hash_map_;
- section_hash_map_ = rhs.section_hash_map_;
- }
- return *this;
-}
-
-void
-ACE_Configuration_Section_IntId::free (ACE_Allocator *alloc)
-{
- alloc->free ((void *) (value_hash_map_));
- alloc->free ((void *) (section_hash_map_));
-}
-
-ACE_Configuration_Section_Key_Heap::ACE_Configuration_Section_Key_Heap (const ACE_TCHAR* path)
- : path_ (0),
- value_iter_ (0),
- section_iter_ (0)
-{
- path_ = ACE_OS::strdup (path);
-}
-
-ACE_Configuration_Section_Key_Heap::~ACE_Configuration_Section_Key_Heap ()
-{
- delete value_iter_;
- delete section_iter_;
- ACE_OS::free (path_);
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-ACE_Configuration_Heap::ACE_Configuration_Heap (void)
- : allocator_ (0),
- index_ (0),
- default_map_size_ (0)
-{
- ACE_Configuration_Section_Key_Heap *temp = 0;
-
- ACE_NEW (temp, ACE_Configuration_Section_Key_Heap (ACE_LIB_TEXT ("")));
- root_ = ACE_Configuration_Section_Key (temp);
-}
-
-ACE_Configuration_Heap::~ACE_Configuration_Heap (void)
-{
- if (allocator_)
- allocator_->sync ();
-
- delete allocator_;
-}
-
-int
-ACE_Configuration_Heap::open (int default_map_size)
-{
- default_map_size_ = default_map_size;
- // Create the allocator with the appropriate options.
- // The name used for the lock is the same as one used
- // for the file.
- ACE_NEW_RETURN (this->allocator_,
- HEAP_ALLOCATOR (),
- -1);
- return create_index ();
-}
-
-
-int
-ACE_Configuration_Heap::open (const ACE_TCHAR* file_name,
- void* base_address,
- int default_map_size)
-{
- default_map_size_ = default_map_size;
-
- // Make sure that the file name is of the legal length.
- if (ACE_OS::strlen (file_name) >= MAXNAMELEN + MAXPATHLEN)
- {
- errno = ENAMETOOLONG;
- return -1;
- }
-
-#if !defined (CHORUS)
- ACE_MMAP_Memory_Pool::OPTIONS options (base_address);
-#else
- // Use base address == 0, don't use a fixed address.
- ACE_MMAP_Memory_Pool::OPTIONS options (0,
- 0,
- 0,
- ACE_CHORUS_LOCAL_NAME_SPACE_T_SIZE);
-#endif /* CHORUS */
-
- // Create the allocator with the appropriate options. The name used
- // for the lock is the same as one used for the file.
- ACE_NEW_RETURN (this->allocator_,
- PERSISTENT_ALLOCATOR (file_name,
- file_name,
- &options),
- -1);
-
-#if !defined (ACE_LACKS_ACCESS)
- // Now check if the backing store has been created successfully.
- if (ACE_OS::access (file_name, F_OK) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("create_index\n")),
- -1);
-#endif /* ACE_LACKS_ACCESS */
-
- return create_index ();
-}
-
-int
-ACE_Configuration_Heap::create_index (void)
-{
- void *section_index = 0;
-
- // This is the easy case since if we find hash table in the
- // memory-mapped file we know it's already initialized.
- if (this->allocator_->find (ACE_CONFIG_SECTION_INDEX, section_index) == 0)
- this->index_ = (SECTION_MAP *) section_index;
-
- // Create a new <index_> (because we've just created a new
- // memory-mapped file).
- else
- {
- size_t index_size = sizeof (SECTION_MAP);
- section_index = this->allocator_->malloc (index_size);
-
- if (section_index == 0
- || create_index_helper (section_index) == -1
- || this->allocator_->bind (ACE_CONFIG_SECTION_INDEX,
- section_index) == -1)
- {
- // Attempt to clean up.
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("create_index\n")));
- this->allocator_->remove ();
- return -1;
- }
- // Add the root section
- return new_section (ACE_LIB_TEXT (""), root_);
- }
- return 0;
-}
-
-int
-ACE_Configuration_Heap::create_index_helper (void *buffer)
-{
- ACE_ASSERT (this->allocator_);
- this->index_ = new (buffer) SECTION_MAP (this->allocator_);
- return 0;
-}
-
-int
-ACE_Configuration_Heap::load_key (const ACE_Configuration_Section_Key& key,
- ACE_TString& name)
-{
- ACE_ASSERT (this->allocator_);
- ACE_Configuration_Section_Key_Heap* pKey =
- ACE_dynamic_cast (ACE_Configuration_Section_Key_Heap*,
- get_internal_key (key));
-
- if (!pKey)
- {
- return -1;
- }
-
- ACE_TString temp (pKey->path_, 0, 0);
- name.assign_nocopy (temp);
- return 0;
-}
-
-
-int
-ACE_Configuration_Heap::add_section (const ACE_Configuration_Section_Key& base,
- const ACE_TCHAR* sub_section,
- ACE_Configuration_Section_Key& result)
-{
- ACE_ASSERT (this->allocator_);
- ACE_TString section;
- if (load_key (base, section))
- return -1;
-
- // Find the base section
- ACE_Configuration_ExtId ExtId (section.fast_rep ());
- ACE_Configuration_Section_IntId IntId;
- if (index_->find (ExtId, IntId, allocator_))
- return -1;
-
- // See if this section already exists
- ACE_Configuration_ExtId SubSectionExtId (sub_section);
- int ignored = 0;
-
- if (!IntId.section_hash_map_->find (SubSectionExtId, ignored, allocator_))
- {
- // already exists!
- errno = EEXIST;
- return -1;
- }
-
- // Create the new section name
- // only prepend a separater if were not at the root
- if (section.length ())
- section += ACE_LIB_TEXT ("\\");
-
- section += sub_section;
-
- // Add it to the base section
- ACE_TCHAR* pers_name = (ACE_TCHAR *) allocator_->malloc ((ACE_OS::strlen (sub_section) + 1) * sizeof (ACE_TCHAR));
- ACE_OS::strcpy (pers_name, sub_section);
- ACE_Configuration_ExtId SSExtId (pers_name);
- if (IntId.section_hash_map_->bind (SSExtId, ignored, allocator_))
- {
- allocator_->free (pers_name);
- return -1;
- }
- return (new_section (section, result));
-}
-
-int
-ACE_Configuration_Heap::new_section (const ACE_TString& section,
- ACE_Configuration_Section_Key& result)
-{
- ACE_ASSERT (this->allocator_);
- // Create a new section and add it to the global list
-
- // Allocate memory for items to be stored in the table.
- size_t section_len = section.length () + 1;
- ACE_TCHAR *ptr = (ACE_TCHAR*) this->allocator_->malloc (section_len * sizeof (ACE_TCHAR));
-
- int return_value = -1;
-
- if (ptr == 0)
- return -1;
- else
- {
- // Populate memory with data.
- ACE_OS::strcpy (ptr, section.fast_rep ());
-
- void *value_hash_map = 0;
- size_t map_size = sizeof (VALUE_MAP);
- value_hash_map = this->allocator_->malloc (map_size);
-
- // If allocation failed ...
- if (value_hash_map == 0)
- return -1;
-
- // Initialize allocated hash map through placement new.
- if (value_open_helper (default_map_size_, value_hash_map ) == -1)
- {
- this->allocator_->free (value_hash_map );
- return -1;
- }
-
- // create the section map
- void* section_hash_map = 0;
- map_size = sizeof (SUBSECTION_MAP);
- section_hash_map = this->allocator_->malloc (map_size);
-
- // If allocation failed
- if (section_hash_map == 0)
- return -1;
-
- // initialize allocated hash map through placement new
- if (section_open_helper (default_map_size_, section_hash_map) == -1)
- {
- this->allocator_->free (value_hash_map );
- this->allocator_->free (section_hash_map);
- return -1;
- }
-
- ACE_Configuration_ExtId name (ptr);
- ACE_Configuration_Section_IntId entry ((VALUE_MAP*) value_hash_map,
- (SUBSECTION_MAP*) section_hash_map);
-
- // Do a normal bind. This will fail if there's already an
- // entry with the same name.
- return_value = this->index_->bind (name, entry, this->allocator_);
-
- if (return_value == 1)
- {
- // Entry already existed so bind failed. Free our dynamically
- // allocated memory.
- this->allocator_->free ((void *) ptr);
- return return_value;
- }
-
- if (return_value == -1)
- // Free our dynamically allocated memory.
- this->allocator_->free ((void *) ptr);
- else
- // If bind () succeed, it will automatically sync
- // up the map manager entry. However, we must sync up our
- // name/value memory.
- this->allocator_->sync (ptr, section_len);
-
- }
-
- // set the result
- ACE_Configuration_Section_Key_Heap *temp;
- ACE_NEW_RETURN (temp,
- ACE_Configuration_Section_Key_Heap (ptr),
- -1);
- result = ACE_Configuration_Section_Key (temp);
- return return_value;
-}
-
-int
-ACE_Configuration_Heap::value_open_helper (size_t hash_table_size,
- void *buffer)
-{
- ACE_ASSERT (this->allocator_);
- new (buffer) VALUE_MAP (hash_table_size, this->allocator_);
- return 0;
-}
-
-int
-ACE_Configuration_Heap::section_open_helper (size_t hash_table_size,
- void *buffer)
-{
- ACE_ASSERT (this->allocator_);
- new (buffer) SUBSECTION_MAP (hash_table_size, this->allocator_);
- return 0;
-}
-
-int
-ACE_Configuration_Heap::open_section (const ACE_Configuration_Section_Key& base,
- const ACE_TCHAR* sub_section,
- int create,
- ACE_Configuration_Section_Key& result)
-{
- ACE_ASSERT (this->allocator_);
- if (validate_name (sub_section, 1)) // 1 == allow_path
- return -1;
-
- result = base;
-
- for (const ACE_TCHAR* separator;
- (separator = ACE_OS_String::strchr (sub_section, ACE_TEXT ('\\'))) != 0;
- )
- {
- ACE_TString simple_section (sub_section, separator - sub_section);
- int ret_val =
- open_simple_section (result, simple_section.c_str (), create, result);
- if (ret_val)
- return ret_val;
- sub_section = separator + 1;
- }
-
- return open_simple_section (result, sub_section, create, result);
-}
-
-int
-ACE_Configuration_Heap::open_simple_section (const ACE_Configuration_Section_Key& base,
- const ACE_TCHAR* sub_section,
- int create,
- ACE_Configuration_Section_Key& result)
-{
- ACE_TString section (0, 0, 0);
-
- if (load_key (base, section))
- {
- return -1;
- }
-
- // Only add the \\ if were not at the root
- if (section.length ())
- {
- section += ACE_LIB_TEXT ("\\");
- }
-
- section += sub_section;
-
- // resolve the section
- ACE_Configuration_ExtId ExtId (section.fast_rep ());
- ACE_Configuration_Section_IntId IntId;
-
- if (index_->find (ExtId, IntId, allocator_))
- {
- if (!create)
- {
- errno = ENOENT;
- return -1;
- }
-
- return add_section (base, sub_section, result);
- }
-
- ACE_Configuration_Section_Key_Heap *temp;
- ACE_NEW_RETURN (temp,
- ACE_Configuration_Section_Key_Heap (section.fast_rep ()),
- -1);
- result = ACE_Configuration_Section_Key (temp);
- return 0;
-}
-
-int
-ACE_Configuration_Heap::remove_section (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* sub_section,
- int recursive)
-{
- ACE_ASSERT (this->allocator_);
- if (validate_name (sub_section))
- return -1;
-
- ACE_TString section;
- if (load_key (key, section))
- return -1;
-
- // Find this key
- ACE_Configuration_ExtId ParentExtId (section.fast_rep ());
- ACE_Configuration_Section_IntId ParentIntId;
- if (index_->find (ParentExtId, ParentIntId, allocator_))
- return -1;// no parent key
-
- // Find this subkey
- if (section.length ())
- section += ACE_LIB_TEXT ("\\");
-
- section += sub_section;
- ACE_Configuration_ExtId SectionExtId (section.fast_rep ());
- SECTION_HASH::ENTRY* section_entry;
- SECTION_HASH* hashmap = index_;
- if (hashmap->find (SectionExtId, section_entry))
- return -1;
-
- if (recursive)
- {
- ACE_Configuration_Section_Key section;
- if (open_section (key, sub_section, 0, section))
- return -1;
-
- int index = 0;
- ACE_TString name;
- while (!enumerate_sections (section, index, name))
- {
- if (remove_section (section, name.fast_rep (), 1))
- return -1;
-
- index++;
- }
- }
-
- // Now make sure we dont have any subkeys
- if (section_entry->int_id_.section_hash_map_->current_size ())
- {
- errno = ENOTEMPTY;
- return -1;
- }
-
- // Now remove subkey from parent key
- ACE_Configuration_ExtId SubSExtId (sub_section);
- SUBSECTION_HASH::ENTRY* subsection_entry;
- if (((SUBSECTION_HASH*)ParentIntId.section_hash_map_)->
- find (SubSExtId, subsection_entry))
- return -1;
-
- if (ParentIntId.section_hash_map_->unbind (SubSExtId, allocator_))
- return -1;
-
- subsection_entry->ext_id_.free (allocator_);
-
- // Remember the pointers so we can free them after we unbind
- ACE_Configuration_ExtId ExtIdToFree (section_entry->ext_id_);
- ACE_Configuration_Section_IntId IntIdToFree (section_entry->int_id_);
-
- // iterate over all values and free memory
- VALUE_HASH* value_hash_map = section_entry->int_id_.value_hash_map_;
- VALUE_HASH::ITERATOR value_iter = value_hash_map->begin ();
- while (!value_iter.done ())
- {
- VALUE_HASH::ENTRY* value_entry;
- if (!value_iter.next (value_entry))
- return 1;
-
- value_entry->ext_id_.free (allocator_);
- value_entry->int_id_.free (allocator_);
-
- value_iter.advance ();
- }
-
- // remove it
- if (index_->unbind (SectionExtId, allocator_))
- return -1;
-
- value_hash_map->close ();
- section_entry->int_id_.section_hash_map_->close (allocator_);
-
- // Free the memory
- ExtIdToFree.free (allocator_);
- IntIdToFree.free (allocator_);
-
- return 0;
-}
-
-int
-ACE_Configuration_Heap::enumerate_values (const ACE_Configuration_Section_Key& key,
- int index,
- ACE_TString& name,
- VALUETYPE& type)
-{
- ACE_ASSERT (this->allocator_);
- ACE_Configuration_Section_Key_Heap* pKey =
- ACE_dynamic_cast (ACE_Configuration_Section_Key_Heap*,
- get_internal_key (key));
- if (!pKey)
- return -1;
-
- name = pKey->path_;
-
- // resolve the section
- ACE_Configuration_ExtId ExtId (pKey->path_);
- ACE_Configuration_Section_IntId IntId;
- if (index_->find (ExtId, IntId, allocator_))
- return -1;
-
- // Handle iterator resets
- if (index == 0)
- {
- ACE_Hash_Map_Manager_Ex<ACE_Configuration_ExtId ,
- ACE_Configuration_Value_IntId,
- ACE_Hash<ACE_Configuration_ExtId>,
- ACE_Equal_To<ACE_Configuration_ExtId>,
- ACE_Null_Mutex>* hash_map = IntId.value_hash_map_;
- delete pKey->value_iter_;
-
- ACE_NEW_RETURN (pKey->value_iter_,
- VALUE_HASH::ITERATOR (hash_map->begin ()),
- -1);
- }
-
- // Get the next entry
- ACE_Hash_Map_Entry<ACE_Configuration_ExtId, ACE_Configuration_Value_IntId>* entry;
-
- if (!pKey->value_iter_->next (entry))
- return 1;
-
- // Return the value of the iterator and advance it
- name = entry->ext_id_.name_;
- type = entry->int_id_.type_;
- pKey->value_iter_->advance ();
-
- return 0;
-}
-
-int
-ACE_Configuration_Heap::enumerate_sections (const ACE_Configuration_Section_Key& key,
- int index,
- ACE_TString& name)
-{
- ACE_ASSERT (this->allocator_);
- // cast to a heap section key
- ACE_Configuration_Section_Key_Heap* pKey =
- ACE_dynamic_cast (ACE_Configuration_Section_Key_Heap*,
- get_internal_key (key));
- if (!pKey)
- return -1; // not a heap key!
-
- // resolve the section
- ACE_Configuration_ExtId ExtId (pKey->path_);
- ACE_Configuration_Section_IntId IntId;
- if (index_->find (ExtId, IntId, allocator_))
- return -1; // unknown section
-
- // Handle iterator resets
- if (index == 0)
- {
- if (pKey->section_iter_)
- delete pKey->section_iter_;
-
- ACE_NEW_RETURN (pKey->section_iter_,
- SUBSECTION_HASH::ITERATOR (IntId.section_hash_map_->begin ()),
- -1);
- }
-
- // Get the next entry
- ACE_Hash_Map_Entry<ACE_Configuration_ExtId, int>* entry;
- if (!pKey->section_iter_->next (entry))
- return 1;
-
- // Return the value of the iterator and advance it
- pKey->section_iter_->advance ();
- name = entry->ext_id_.name_;
-
- return 0;
-}
-
-int
-ACE_Configuration_Heap::set_string_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- const ACE_TString& value)
-{
- ACE_ASSERT (this->allocator_);
- const ACE_TCHAR *t_name = name ? name : &this->NULL_String_;
- if (validate_value_name (t_name))
- return -1;
-
- ACE_TString section;
- if (load_key (key, section))
- return -1;
-
- ACE_Configuration_ExtId section_ext (section.fast_rep ());
- ACE_Configuration_Section_IntId section_int;
- if (index_->find (section_ext, section_int, allocator_))
- return -1;
-
- // Get the entry for this item (if it exists)
- VALUE_HASH::ENTRY* entry;
- ACE_Configuration_ExtId item_name (name);
- if (section_int.value_hash_map_->VALUE_HASH::find (item_name, entry) == 0)
- {
- // found item, replace it
- // Free the old value
- entry->int_id_.free (allocator_);
- // Allocate the new value in this heap
- ACE_TCHAR* pers_value =
- (ACE_TCHAR *) allocator_->malloc ((value.length () + 1) * sizeof (ACE_TCHAR));
- ACE_OS::strcpy (pers_value, value.fast_rep ());
- ACE_Configuration_Value_IntId new_value_int (pers_value);
- entry->int_id_ = new_value_int;
- }
- else
- {
- // it doesn't exist, bind it
- ACE_TCHAR* pers_name =
- (ACE_TCHAR *) allocator_->malloc ((ACE_OS::strlen (t_name) + 1) * sizeof (ACE_TCHAR));
- ACE_OS::strcpy (pers_name, t_name);
- ACE_TCHAR* pers_value =
- (ACE_TCHAR *) allocator_->malloc ((value.length () + 1) * sizeof (ACE_TCHAR));
- ACE_OS::strcpy (pers_value, value.fast_rep ());
- ACE_Configuration_ExtId item_name (pers_name);
- ACE_Configuration_Value_IntId item_value (pers_value);
- if (section_int.value_hash_map_->bind (item_name, item_value, allocator_))
- {
- allocator_->free (pers_value);
- allocator_->free (pers_name);
- return -1;
- }
- return 0;
- }
-
- return 0;
-}
-
-int
-ACE_Configuration_Heap::set_integer_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- u_int value)
-{
- ACE_ASSERT (this->allocator_);
- const ACE_TCHAR *t_name = name ? name : &this->NULL_String_;
- if (validate_value_name (t_name))
- return -1;
-
- // Get the section name from the key
- ACE_TString section;
- if (load_key (key, section))
- return -1;
-
- // Find this section
- ACE_Configuration_ExtId section_ext (section.fast_rep ());
- ACE_Configuration_Section_IntId section_int;
- if (index_->find (section_ext, section_int, allocator_))
- return -1; // section does not exist
-
- // Get the entry for this item (if it exists)
- VALUE_HASH::ENTRY* entry;
- ACE_Configuration_ExtId item_name (name);
- if (section_int.value_hash_map_->VALUE_HASH::find (item_name, entry) == 0)
- {
- // found item, replace it
- ACE_Configuration_Value_IntId new_value_int (value);
- entry->int_id_ = new_value_int;
- }
- else
- {
- // it doesn't exist, bind it
- ACE_TCHAR* pers_name =
- (ACE_TCHAR *) allocator_->malloc ((ACE_OS::strlen (t_name) + 1) * sizeof (ACE_TCHAR));
- ACE_OS::strcpy (pers_name, t_name);
- ACE_Configuration_ExtId item_name (pers_name);
- ACE_Configuration_Value_IntId item_value (value);
- if (section_int.value_hash_map_->bind (item_name, item_value, allocator_))
- {
- allocator_->free (pers_name);
- return -1;
- }
- return 0;
- }
-
- return 0;
-}
-
-int
-ACE_Configuration_Heap::set_binary_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- const void* data,
- size_t length)
-{
- ACE_ASSERT (this->allocator_);
- const ACE_TCHAR *t_name = name ? name : &this->NULL_String_;
- if (validate_value_name (t_name))
- return -1;
-
- // Get the section name from the key
- ACE_TString section;
- if (load_key (key, section))
- return -1;
-
- // Find this section
- ACE_Configuration_ExtId section_ext (section.fast_rep ());
- ACE_Configuration_Section_IntId section_int;
- if (index_->find (section_ext, section_int, allocator_))
- return -1; // section does not exist
-
- // Get the entry for this item (if it exists)
- VALUE_HASH::ENTRY* entry;
- ACE_Configuration_ExtId item_name (name);
- if (section_int.value_hash_map_->VALUE_HASH::find (item_name, entry) == 0)
- {
- // found item, replace it
- // Free the old value
- entry->int_id_.free (allocator_);
- // Allocate the new value in this heap
- ACE_TCHAR* pers_value = (ACE_TCHAR *) allocator_->malloc (length);
- ACE_OS::memcpy (pers_value, data, length);
- ACE_Configuration_Value_IntId new_value_int (pers_value, length);
- entry->int_id_ = new_value_int;
- }
- else
- {
- // it doesn't exist, bind it
- ACE_TCHAR* pers_name =
- (ACE_TCHAR *) allocator_->malloc ((ACE_OS::strlen (t_name) + 1) * sizeof (ACE_TCHAR));
- ACE_OS::strcpy (pers_name, t_name);
- ACE_TCHAR* pers_value = (ACE_TCHAR *) allocator_->malloc (length);
- ACE_OS::memcpy (pers_value, data, length);
- ACE_Configuration_ExtId item_name (pers_name);
- ACE_Configuration_Value_IntId item_value (pers_value, length);
- if (section_int.value_hash_map_->bind (item_name, item_value, allocator_))
- {
- allocator_->free (pers_value);
- allocator_->free (pers_name);
- return -1;
- }
- return 0;
- }
-
- return 0;
-}
-
-int
-ACE_Configuration_Heap::get_string_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- ACE_TString& value)
-{
- ACE_ASSERT (this->allocator_);
- const ACE_TCHAR *t_name = name ? name : &this->NULL_String_;
- if (validate_value_name (t_name))
- return -1;
-
- // Get the section name from the key
- ACE_TString section;
- if (load_key (key, section))
- return -1;
-
- // Find this section
- ACE_Configuration_ExtId ExtId (section.fast_rep ());
- ACE_Configuration_Section_IntId IntId;
- if (index_->find (ExtId, IntId, allocator_))
- return -1; // section does not exist
-
- // See if it exists first
- ACE_Configuration_ExtId VExtId (t_name);
- ACE_Configuration_Value_IntId VIntId;
- if (IntId.value_hash_map_->find (VExtId, VIntId, allocator_))
- return -1; // unknown value
-
- // Check type
- if (VIntId.type_ != ACE_Configuration::STRING)
- {
- errno = ENOENT;
- return -1;
- }
-
- // everythings ok, return the data
- value = ACE_static_cast (ACE_TCHAR*, VIntId.data_.ptr_);
- return 0;
-}
-
-int
-ACE_Configuration_Heap::get_integer_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- u_int& value)
-{
- ACE_ASSERT (this->allocator_);
-
- const ACE_TCHAR *t_name = name ? name : &this->NULL_String_;
- if (validate_value_name (t_name))
- return -1;
-
- // Get the section name from the key
- ACE_TString section (0, 0, 0);
-
- if (this->load_key (key, section) != 0)
- {
- return -1;
- }
-
- // Find this section
- ACE_Configuration_ExtId ExtId (section.fast_rep ());
- ACE_Configuration_Section_IntId IntId;
-
- if (index_->find (ExtId, IntId, allocator_) != 0)
- {
- return -1; // section does not exist
- }
-
-
- // See if it exists first
- ACE_Configuration_ExtId VExtId (t_name);
- ACE_Configuration_Value_IntId VIntId;
-
- if (IntId.value_hash_map_->find (VExtId, VIntId, allocator_) != 0)
- {
- return -1; // unknown value
- }
-
- // Check type
- if (VIntId.type_ != ACE_Configuration::INTEGER)
- {
- errno = ENOENT;
- return -1;
- }
-
- // Everythings ok, return the data
- value = VIntId.data_.int_;
- return 0;
-}
-
-int
-ACE_Configuration_Heap::get_binary_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- void*& data,
- size_t& length)
-{
- ACE_ASSERT (this->allocator_);
- const ACE_TCHAR *t_name = name ? name : &this->NULL_String_;
- if (validate_value_name (t_name))
- return -1;
-
- // Get the section name from the key
- ACE_TString section;
- if (load_key (key, section))
- return -1;
-
- // Find this section
- ACE_Configuration_ExtId ExtId (section.fast_rep ());
- ACE_Configuration_Section_IntId IntId;
- if (index_->find (ExtId, IntId, allocator_))
- return -1; // section does not exist
-
- ACE_Configuration_ExtId VExtId (t_name);
- ACE_Configuration_Value_IntId VIntId;
- // See if it exists first
- if (IntId.value_hash_map_->find (VExtId, VIntId, allocator_))
- return -1; // unknown value
-
- // Check type
- if (VIntId.type_ != ACE_Configuration::BINARY)
- {
- errno = ENOENT;
- return -1;
- }
-
- // Make a copy
- ACE_NEW_RETURN (data, char[VIntId.length_], -1);
- ACE_OS::memcpy (data, VIntId.data_.ptr_, VIntId.length_);
- length = VIntId.length_;
- return 0;
-}
-
-int
-ACE_Configuration_Heap::find_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- VALUETYPE& type_out)
-{
- ACE_ASSERT (this->allocator_);
- const ACE_TCHAR *t_name = name ? name : &this->NULL_String_;
- if (validate_value_name (t_name))
- return -1;
-
- // Get the section name from the key
- ACE_TString section;
- if (load_key (key, section))
- return -1;
-
- // Find this section
- ACE_Configuration_ExtId ExtId (section.fast_rep ());
- ACE_Configuration_Section_IntId IntId;
- if (index_->find (ExtId, IntId, allocator_))
- return -1; // section does not exist
-
- // Find it
- ACE_Configuration_ExtId ValueExtId (name);
- VALUE_HASH::ENTRY* value_entry;
- if (((VALUE_HASH *) IntId.value_hash_map_)->find (ValueExtId, value_entry))
- return -1; // value does not exist
-
- type_out = value_entry->int_id_.type_;
- return 0;
-}
-
-int
-ACE_Configuration_Heap::remove_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name)
-{
- ACE_ASSERT (this->allocator_);
- const ACE_TCHAR *t_name = name ? name : &this->NULL_String_;
- if (validate_value_name (t_name))
- return -1;
-
- // Get the section name from the key
- ACE_TString section;
- if (load_key (key, section))
- return -1;
-
- // Find this section
- ACE_Configuration_ExtId ExtId (section.fast_rep ());
- ACE_Configuration_Section_IntId IntId;
- if (index_->find (ExtId, IntId, allocator_))
- return -1; // section does not exist
-
- // Find it
- ACE_Configuration_ExtId ValueExtId (name);
- VALUE_HASH::ENTRY* value_entry;
- if (((VALUE_HASH *) IntId.value_hash_map_)->find (ValueExtId, value_entry))
- return -1;
-
- // free it
- value_entry->ext_id_.free (allocator_);
- value_entry->int_id_.free (allocator_);
-
- // Unbind it
- if (IntId.value_hash_map_->unbind (ValueExtId, allocator_))
- return -1;
-
- return 0;
-}
diff --git a/ace/Configuration.h b/ace/Configuration.h
deleted file mode 100644
index 2d2cbc177b4..00000000000
--- a/ace/Configuration.h
+++ /dev/null
@@ -1,884 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Configuration.h
- *
- * $Id$
- *
- * @author Chris Hafey <chafey@stentor.com>
- *
- * The ACE configuration API provides a portable abstraction for
- * program configuration similar to the Microsoft Windows registry.
- * The API supports a tree based hierarchy of configuration sections. Each
- * section contains other sections or values. Values may contain string,
- * unsigned integer and binary data.
- *
- * @note These classes are not thread safe, if multiple threads use these
- * classes, you are responsible for serializing access.
- *
- * For examples of using this class, see:
- * -# The test code in ACE_wrappers/test
- * -# wxConfigViewer, a Windows like Registry Editor for ACE_Configuration
- * -# TAO's IFR, it makes extensive use of ACE_Configuration
- *
- * @todo Templatize this class with an ACE_LOCK to provide thread safety
- *
- */
-//=============================================================================
-
-#ifndef ACE_CONFIGURATION_H
-#define ACE_CONFIGURATION_H
-#include "ace/pre.h"
-
-#include "ace/SString.h"
-#include "ace/Hash_Map_With_Allocator_T.h"
-#include "ace/Malloc.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// configurable parameters
-
-#if !defined (ACE_CONFIG_SECTION_INDEX)
-# define ACE_CONFIG_SECTION_INDEX "Config_Section_Index"
-#endif /* ! ACE_CONFIG_SECTION_INDEX */
-
-#if !defined (ACE_DEFAULT_CONFIG_SECTION_SIZE)
-#define ACE_DEFAULT_CONFIG_SECTION_SIZE 16
-#endif /* ACE_DEFAULT_CONFIG_SECTION_SIZE */
-
-/**
- * @class ACE_Section_Key_Internal
- *
- * @internal
- *
- * @brief A base class for internal handles to section keys for
- * configuration implementations
- *
- * Implementations subclass this base class to represent a
- * section key.
- *
- */
-class ACE_Export ACE_Section_Key_Internal
-{
-public:
- /// Virtual destructor, make sure descendants are virtual!
- virtual ~ACE_Section_Key_Internal (void);
-
- /// Increment reference count
- virtual int add_ref (void);
-
- /// Decrement reference count. Will delete this if count gets to 0
- virtual int dec_ref (void);
-protected:
- ACE_Section_Key_Internal (void);
- ACE_Section_Key_Internal (const ACE_Section_Key_Internal& rhs);
- ACE_Section_Key_Internal& operator= (ACE_Section_Key_Internal& rhs);
-
- u_int ref_count_;
-};
-
-/**
- * @class ACE_Configuration_Section_Key
- *
- * @brief Reference counted wrapper for ACE_Section_Key_Internal.
- *
- * Reference counted wrapper class for the abstract internal
- * section key. A user gets one of these to represent a section
- * in the configuration database.
- */
-class ACE_Export ACE_Configuration_Section_Key
-{
- friend class ACE_Configuration;
-public:
- /// Default constructor.
- ACE_Configuration_Section_Key (void);
-
- /// Constructor that initializes to a pointer to a concrete internal key.
- /**
- * @param key The section key to reference. Calls add_ref() with @a key.
- */
- ACE_EXPLICIT ACE_Configuration_Section_Key (ACE_Section_Key_Internal *key);
-
- /// Copy constructor, increments the reference count on the key.
- ACE_Configuration_Section_Key (const ACE_Configuration_Section_Key &rhs);
-
- /// Destructor, decrements reference count on the referenced key.
- ~ACE_Configuration_Section_Key (void);
-
- /// Assignment operator, increments reference count for this object
- /// and decrements it on @a rhs.
- ACE_Configuration_Section_Key &
- operator= (const ACE_Configuration_Section_Key &rhs);
-private:
- ACE_Section_Key_Internal *key_;
-};
-
-/**
- * @class ACE_Configuration
- *
- * @internal
- *
- * @brief Base class for configuration databases
- *
- * This class provides an interface for configuration databases. A concrete
- * class is required that implements the interface.
- *
- * @sa ACE_Configuration_Heap
- * @sa ACE_Configuration_Win32Registry
- */
-class ACE_Export ACE_Configuration
-{
-public:
- /// Enumeration for the various types of values we can store.
- enum VALUETYPE
- {
- STRING,
- INTEGER,
- BINARY,
- INVALID
- };
-
- /// Destructor
- virtual ~ACE_Configuration (void);
-
- /// Obtain a reference to the root section of this configuration.
- /*
- * @return Reference to the configuration's root section. Note that
- * it is a const reference.
- */
- virtual const ACE_Configuration_Section_Key& root_section (void) const;
-
- /**
- * Opens a named section in an existing section.
- *
- * @param base Existing section in which to open the named section.
- * @param sub_section Name of the section to open.
- * @param create If zero, the named section must exist. If non-zero,
- * the named section will be created if it does not exist.
- * @param result Reference; receives the section key for the new
- * section.
- *
- * @retval 0 for success.
- * @retval -1 for error; ACE_OS::last_error() retrieves error code.
- */
- virtual int open_section (const ACE_Configuration_Section_Key &base,
- const ACE_TCHAR *sub_section,
- int create,
- ACE_Configuration_Section_Key& result) = 0;
-
- /// Removes a named section.
- /**
- * @param key Section key to remove the named section from.
- * @param sub_section Name of the section to remove.
- * @param recursive If non zero, any subkeys below @a sub_section are
- * removed as well.
- *
- * @retval 0 for success.
- * @retval -1 for error; ACE_OS::last_error() retrieves error code.
- */
- virtual int remove_section (const ACE_Configuration_Section_Key &key,
- const ACE_TCHAR *sub_section,
- int recursive) = 0;
-
- /**
- * Enumerates through the values in a section.
- *
- * @param key Section key to iterate through.
- * @param index Iteration position. Must be zero on the first call to
- * iterate through @a key. Increment @a index by one on each
- * successive call to this method.
- * @param name Receives the value's name.
- * @param type Receives the value's data type.
- *
- * @note You may not delete or add values while enumerating. If the
- * section is modified during enumeration, results are undefined;
- * you must restart the enumeration from index 0.
- *
- * @retval 0 for success, @a name and @a type are valid.
- * @retval 1 there are no more values in the section.
- * @retval -1 for error; ACE_OS::last_error() retrieves error code.
- */
- virtual int enumerate_values (const ACE_Configuration_Section_Key& key,
- int index,
- ACE_TString& name,
- VALUETYPE& type) = 0;
-
- /**
- * Enumerates through the subsections in a section.
- *
- * @param key Section key to iterate through.
- * @param index Iteration position. Must be zero on the first call to
- * iterate through @a key. Increment @a index by one on each
- * successive call to this method.
- * @param name Receives the subsection's name.
- *
- * @note You may not modify the @a key section while enumerating. If the
- * section is modified during enumeration, results are undefined;
- * you must restart the enumeration from index 0.
- *
- * @retval 0 for success, @a name has a valid name.
- * @retval 1 there are no more subsections in the section.
- * @retval -1 for error; ACE_OS::last_error() retrieves error code.
- */
- virtual int enumerate_sections (const ACE_Configuration_Section_Key& key,
- int index, ACE_TString& name) = 0;
-
- /// Sets a string-typed value.
- /**
- * @param key Configuration section to set the value in.
- * @param name Name of the configuration value to set. If a value with
- * the specified name exists, it is replaced.
- * @param value The string to set the configuration value to.
- *
- * @retval 0 for success.
- * @retval -1 for error; ACE_OS::last_error() retrieves error code.
- */
- virtual int set_string_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- const ACE_TString& value) = 0;
-
- /// Sets a integer-typed value.
- /**
- * @param key Configuration section to set the value in.
- * @param name Name of the configuration value to set. If a value with
- * the specified name exists, it is replaced.
- * @param value The integer to set the configuration value to.
- *
- * @retval 0 for success.
- * @retval -1 for error; ACE_OS::last_error() retrieves error code.
- */
- virtual int set_integer_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- u_int value) = 0;
-
- /// Sets a binary-typed value.
- /**
- * @param key Configuration section to set the value in.
- * @param name Name of the configuration value to set. If a value with
- * the specified name exists, it is replaced.
- * @param data Pointer to the binary data for the value.
- * @param length Number of bytes for the new value.
- *
- * @retval 0 for success.
- * @retval -1 for error; ACE_OS::last_error() retrieves error code.
- */
- virtual int set_binary_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- const void* data,
- size_t length) = 0;
-
- /// Gets a string-typed value.
- /**
- * @param key Configuration section to get the value from.
- * @param name Name of the configuration value to get.
- * @param value Receives the configuration value if it exists and
- * has type STRING.
- *
- * @retval 0 for success.
- * @retval -1 for error; ACE_OS::last_error() retrieves error code.
- */
- virtual int get_string_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- ACE_TString& value) = 0;
-
- /// Gets an integer-typed value.
- /**
- * @param key Configuration section to get the value from.
- * @param name Name of the configuration value to get.
- * @param value Receives the configuration value if it exists and
- * has type INTEGER.
- *
- * @retval 0 for success.
- * @retval -1 for error; ACE_OS::last_error() retrieves error code.
- */
- virtual int get_integer_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- u_int& value) = 0;
-
- /// Gets a binary-typed value.
- /**
- * @param key Configuration section to get the value from.
- * @param name Name of the configuration value to get.
- * @param data Receives a pointer to memory holding the binary data
- * for the value. This method allocates the memory pointed
- * to using operator new[]. The caller is responsible for
- * freeing the memory using operator delete[].
- * @param length Receives the number of bytes in the value.
- *
- * @retval 0 for success; caller is responsible for freeing the
- * returned memory.
- * @retval -1 for error; ACE_OS::last_error() retrieves error code.
- */
- virtual int get_binary_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- void*& data,
- size_t& length) = 0;
-
- /**
- * Retrieves the type of a named configuration value.
- *
- * @param key Configuration section to look up the name in.
- * @param name Name of the configuration value to get the type of.
- * @param type Receives the data type of the named value, if it exists.
- *
- * @retval 0 for success.
- * @retval -1 for error; ACE_OS::last_error() retrieves error code.
- */
- virtual int find_value(const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- VALUETYPE& type) = 0;
-
- /// Removes a named value.
- /**
- * @param key Configuration section to remove the named value from.
- * @param name Name of the configuration value to remove.
- *
- * @retval 0 for success.
- * @retval -1 for error; ACE_OS::last_error() retrieves error code.
- */
- virtual int remove_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name) = 0;
-
- /**
- * Expands <path_in> to <key_out> from <key>. If create is true,
- * the subsections are created. Returns 0 on success, non zero on
- * error The path consists of sections separated by the backslash
- * '\' or forward slash '/'.
- * Returns 0 on success, -1 if <create) is 0 and the path refers
- * a nonexistant section
- */
- int expand_path (const ACE_Configuration_Section_Key& key,
- const ACE_TString& path_in,
- ACE_Configuration_Section_Key& key_out,
- int create = 1);
-
- /**
- * @deprecated Exports the configuration database to filename.
- * If @a filename is already present, it is overwritten. This function is
- * deprecated and will be removed in a future version of ACE. Please use
- * either ACE_Registry_ImpExp or ACE_Ini_ImpExp instead.
- */
- int export_config (const ACE_TCHAR* filename);
-
- /**
- * @deprecated Imports the configuration database from filename. Any
- * existing data is not removed. This function is deprecated and will be
- * removed in a future version of ACE. Please use ACE_Registry_ImpExp
- * or ACE_Ini_ImpExp instead.
- */
- int import_config (const ACE_TCHAR* filename);
-
- /**
- * Determine if the contents of this object is the same as the
- * contents of the object on the right hand side.
- * Returns 1 (True) if they are equal and 0 (False) if they are not equal
- */
- int operator==(const ACE_Configuration& rhs) const;
-
- /**
- * Determine if the contents of this object are different from the
- * contents of the object on the right hand side.
- * Returns 0 (False) if they are equal and 1 (True) if they are not equal
- */
- int operator!=(const ACE_Configuration& rhs) const {return !(*this == rhs);}
-
- /**
- * * Represents the "NULL" string to simplify the internal logic.
- * */
- static ACE_TCHAR NULL_String_;
-
-protected:
- /// Default ctor
- ACE_Configuration (void);
-
- /// Resolves the internal key from a section key
- ACE_Section_Key_Internal* get_internal_key
- (const ACE_Configuration_Section_Key& key);
-
- /**
- * Tests to see if <name> is valid. <name> must be < 255 characters
- * and not contain the path separator '\', brackets [] or = (maybe
- * just restrict to alphanumeric?) returns non zero if name is not
- * valid. The path separator is allowed, except for the first character,
- * if <allow_path> is true.
- */
- int validate_name (const ACE_TCHAR* name, int allow_path = 0);
-
- /**
- * Test to see if <name> is valid. The default value for a key can be
- * unnamed, which means either <name> is == 0 or <name> == '\0` is
- * valid. Otherwise, it calls validate_name() to test <name> for the
- * same rules that apply to keys.
- */
- int validate_value_name (const ACE_TCHAR* name);
-
- // Not used
- ACE_Configuration (const ACE_Configuration& rhs);
- ACE_Configuration& operator= (const ACE_Configuration& rhs);
-
-
- ACE_Configuration_Section_Key root_;
-};
-
-#if defined (ACE_WIN32)
-
-/**
- * @class ACE_Section_Key_Win32
- *
- * @brief The Win32 registry implementation of an internal section key.
- *
- * Holds the HKEY for a section (registry key).
- */
-class ACE_Export ACE_Section_Key_Win32 : public ACE_Section_Key_Internal
-{
-public:
- /// Constructor based on an HKEY
- ACE_Section_Key_Win32 (HKEY hKey);
-
- HKEY hKey_;
-
-protected:
- /// Destructor - invokes <RegCloseKey>
- virtual ~ACE_Section_Key_Win32 (void);
-
- // Not used
- ACE_Section_Key_Win32 (const ACE_Section_Key_Win32& rhs);
- ACE_Section_Key_Win32& operator= (const ACE_Section_Key_Win32& rhs);
-};
-
-/**
- * @class ACE_Configuration_Win32Registry
- *
- * @brief The win32 registry implementation of a configuration database
- *
- * The win32 implementation basically makes calls through to the
- * registry functions. The API is very similar so very little
- * work must be done
- */
-class ACE_Export ACE_Configuration_Win32Registry : public ACE_Configuration
-{
-public:
-
- /**
- * Constructor for registry configuration database. hKey is the
- * base registry key to attach to. This class takes ownership of
- * hKey, it will invoke <RegCloseKey> on it upon destruction.
- */
- ACE_EXPLICIT ACE_Configuration_Win32Registry (HKEY hKey);
-
- /// Destructor
- virtual ~ACE_Configuration_Win32Registry (void);
-
- virtual int open_section (const ACE_Configuration_Section_Key& base,
- const ACE_TCHAR* sub_section,
- int create,
- ACE_Configuration_Section_Key& result);
-
- virtual int remove_section (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* sub_section,
- int recursive);
-
- virtual int enumerate_values (const ACE_Configuration_Section_Key& key,
- int index,
- ACE_TString& name,
- VALUETYPE& type);
-
- virtual int enumerate_sections (const ACE_Configuration_Section_Key& key,
- int index,
- ACE_TString& name);
-
- virtual int set_string_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- const ACE_TString& value);
-
- virtual int set_integer_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- u_int value);
-
- virtual int set_binary_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- const void* data,
- size_t length);
-
- virtual int get_string_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- ACE_TString& value);
-
- virtual int get_integer_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- u_int& value);
-
- virtual int get_binary_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- void*& data,
- size_t& length);
-
- virtual int find_value(const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- VALUETYPE& type);
-
- /// Removes the the value <name> from <key>. returns non zero on error
- virtual int remove_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name);
-
- /**
- * This method traverses <path> through <hKey>. It is useful when
- * you want the HKEY for a specific registry key, especially when
- * initializing this implementation. Caller is responsible for
- * closeing this key when it is no longer used. If create is 1
- * (default) the keys are create if they don't already exist.
- * Returns 0 on error
- */
- static HKEY resolve_key (HKEY hKey,
- const ACE_TCHAR* path,
- int create = 1);
- virtual int operator== (const ACE_Configuration_Win32Registry &rhs) const;
- virtual int operator!= (const ACE_Configuration_Win32Registry &rhs) const;
-
-protected:
-
- /// Gets the HKEY for a configuration section
- int load_key (const ACE_Configuration_Section_Key& key, HKEY& hKey);
-
- // Not used
- ACE_Configuration_Win32Registry (void);
- ACE_Configuration_Win32Registry (const ACE_Configuration_Win32Registry& rhs);
- ACE_Configuration_Win32Registry& operator= (const ACE_Configuration_Win32Registry& rhs);
-};
-#endif /* ACE_WIN32 */
-
-// ACE_Allocator version
-
-typedef ACE_Allocator_Adapter <ACE_Malloc <ACE_MMAP_MEMORY_POOL,
- ACE_SYNCH_MUTEX> >
- PERSISTENT_ALLOCATOR;
-typedef ACE_Allocator_Adapter <ACE_Malloc <ACE_LOCAL_MEMORY_POOL,
- ACE_SYNCH_MUTEX> >
- HEAP_ALLOCATOR;
-
-/**
- * @class ACE_Configuration_ExtId
- *
- * @brief External ID for the section and value hash
- *
- * Contains a pointer to the section or value name.
- */
-class ACE_Export ACE_Configuration_ExtId
-{
-public:
- /// Defeault ctor
- ACE_Configuration_ExtId (void);
-
- /// Named constructor
- ACE_EXPLICIT ACE_Configuration_ExtId (const ACE_TCHAR* name);
-
- /// Copy ctor
- ACE_Configuration_ExtId (const ACE_Configuration_ExtId& rhs);
-
- /// destructor
- ~ACE_Configuration_ExtId (void);
-
- /// Assignment operator
- ACE_Configuration_ExtId& operator= (const ACE_Configuration_ExtId& rhs);
-
- /// Equality comparison operator (must match name_).
- int operator== (const ACE_Configuration_ExtId &rhs) const;
-
- /// Inequality comparison operator.
- int operator!= (const ACE_Configuration_ExtId &rhs) const;
-
- /// Frees the name of the value. needed since we don't know the
- /// allocator name_ was created in
- void free (ACE_Allocator *alloc);
-
- /// <hash> function is required in order for this class to be usable by
- /// ACE_Hash_Map_Manager.
- u_long hash (void) const;
-
- // = Data members.
-
- const ACE_TCHAR * name_;
-
- // Accessors
- const ACE_TCHAR *name (void);
-};
-
-typedef ACE_Hash_Map_With_Allocator<ACE_Configuration_ExtId, int>
- SUBSECTION_MAP;
-typedef ACE_Hash_Map_Manager_Ex<ACE_Configuration_ExtId,
- int,
- ACE_Hash<ACE_Configuration_ExtId>,
- ACE_Equal_To<ACE_Configuration_ExtId>,
- ACE_Null_Mutex>
- SUBSECTION_HASH;
-
-// Deprecated typedef. Use the SUBSECTION_HASH::ENTRY trait instead.
-typedef SUBSECTION_HASH::ENTRY SUBSECTION_ENTRY;
-
-/**
- * @class ACE_Configuration_Value_IntId
- *
- * @brief The section hash table internal value class
- *
- * This class is present as the internal portion of a section's
- * value hash table It may store string, integer or binary data.
- */
-class ACE_Export ACE_Configuration_Value_IntId
-{
-public:
- /// Default constructor
- ACE_Configuration_Value_IntId (void);
-
- /// String constructor, takes ownership of string
- ACE_EXPLICIT ACE_Configuration_Value_IntId (ACE_TCHAR* string);
-
- /// Integer constructor
- ACE_EXPLICIT ACE_Configuration_Value_IntId (u_int integer);
-
- /// Binary constructor, takes ownership of data
- ACE_Configuration_Value_IntId (void* data, size_t length);
-
- /// Copy ctor
- ACE_Configuration_Value_IntId (const ACE_Configuration_Value_IntId& rhs);
-
- /// Destructor
- ~ACE_Configuration_Value_IntId (void);
-
- /// Assignment operator
- ACE_Configuration_Value_IntId& operator= (
- const ACE_Configuration_Value_IntId& rhs);
-
- void free (ACE_Allocator *alloc);
-
- // = Data members.
-
- /**
- * Points to the string value or binary data or IS the integer
- * Length is only used when type_ == BINARY
- */
- ACE_Configuration::VALUETYPE type_;
- union {
- void * ptr_;
- u_int int_;
- } data_;
- size_t length_;
-};
-
-typedef ACE_Hash_Map_With_Allocator<ACE_Configuration_ExtId,
- ACE_Configuration_Value_IntId>
- VALUE_MAP;
-typedef ACE_Hash_Map_Manager_Ex<ACE_Configuration_ExtId,
- ACE_Configuration_Value_IntId,
- ACE_Hash<ACE_Configuration_ExtId>,
- ACE_Equal_To<ACE_Configuration_ExtId>,
- ACE_Null_Mutex>
- VALUE_HASH;
-
-// Deprecated typedef. Use the VALUE_HASH::ENTRY trait instead.
-typedef VALUE_HASH::ENTRY VALUE_ENTRY;
-
-/**
- * @class ACE_Configuration_Section_IntId
- *
- * @brief The internal ID for a section hash table
- *
- * Contains a hash table containing value name/values
- */
-class ACE_Export ACE_Configuration_Section_IntId
-{
-public:
- /// Default ctor
- ACE_Configuration_Section_IntId (void);
-
- /// Named ctor
- ACE_EXPLICIT ACE_Configuration_Section_IntId (VALUE_MAP* value_hash_map,
- SUBSECTION_MAP* section_hash_map);
-
- /// Copy ctor
- ACE_Configuration_Section_IntId (const ACE_Configuration_Section_IntId& rhs);
-
- /// Destructor
- ~ACE_Configuration_Section_IntId (void);
-
- /// Assignment operator
- ACE_Configuration_Section_IntId& operator= (
- const ACE_Configuration_Section_IntId& rhs);
-
- /// Frees the hash table and all its values
- void free (ACE_Allocator *alloc);
-
- // = Data Members.
- VALUE_MAP* value_hash_map_;
-
- SUBSECTION_MAP* section_hash_map_;
-};
-
-typedef ACE_Hash_Map_With_Allocator<ACE_Configuration_ExtId,
- ACE_Configuration_Section_IntId>
- SECTION_MAP;
-typedef ACE_Hash_Map_Manager_Ex<ACE_Configuration_ExtId,
- ACE_Configuration_Section_IntId,
- ACE_Hash<ACE_Configuration_ExtId>,
- ACE_Equal_To<ACE_Configuration_ExtId>,
- ACE_Null_Mutex>
- SECTION_HASH;
-
-// Deprecated typedef. Use the SECTION_HASH::ENTRY trait instead.
-typedef SECTION_HASH::ENTRY SECTION_ENTRY;
-
-/**
- * @class ACE_Configuration_Section_Key_Heap
- *
- * @brief Internal section key class for heap based configuration
- * database.
- *
- * Contains a value iterator and full path name of section.
- */
-class ACE_Export ACE_Configuration_Section_Key_Heap
- : public ACE_Section_Key_Internal
-{
-public:
- /// Constructor based on the full path of the section
- ACE_Configuration_Section_Key_Heap (const ACE_TCHAR* path);
-
- /// The path itself
- ACE_TCHAR* path_;
-
- /// The value iterator
- VALUE_HASH::ITERATOR* value_iter_;
-
- /// The sub section iterator
- SUBSECTION_HASH::ITERATOR* section_iter_;
-protected:
- /// Destructor - will delete the iterators
- virtual ~ACE_Configuration_Section_Key_Heap (void);
-
- // Not used
- ACE_Configuration_Section_Key_Heap (const ACE_Configuration_Section_Key_Heap& rhs);
- ACE_Configuration_Section_Key_Heap& operator= (const ACE_Configuration_Section_Key_Heap& rhs);
-};
-
-/**
- * @class ACE_Configuration_Heap
- *
- * @brief The concrete implementation of a allocator based
- * configuration database
- *
- * This class uses ACE's Allocators to manage a memory
- * representation of a configuraiton database. A persistent heap
- * may be used to store configurations persistently
- *
- * Note: Before using this class you must call one of the open methods.
- *
- * @todo
- * - Need to investigate what happens if memory mapped file gets mapped to
- * a location different than it was created with.
- */
-class ACE_Export ACE_Configuration_Heap : public ACE_Configuration
-{
-public:
-
- /// Default ctor
- ACE_Configuration_Heap (void);
-
- /// Destructor
- virtual ~ACE_Configuration_Heap (void);
-
- /// Opens a configuration based on a file name
- int open (const ACE_TCHAR* file_name,
- void* base_address = ACE_DEFAULT_BASE_ADDR,
- int default_map_size = ACE_DEFAULT_CONFIG_SECTION_SIZE);
-
- /// Opens a heap based configuration
- int open (int default_map_size = ACE_DEFAULT_CONFIG_SECTION_SIZE);
-
- virtual int open_section (const ACE_Configuration_Section_Key& base,
- const ACE_TCHAR* sub_section,
- int create, ACE_Configuration_Section_Key& result);
-
- virtual int remove_section (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* sub_section,
- int recursive);
-
- virtual int enumerate_values (const ACE_Configuration_Section_Key& key,
- int index,
- ACE_TString& name,
- VALUETYPE& type);
-
- virtual int enumerate_sections (const ACE_Configuration_Section_Key& key,
- int index,
- ACE_TString& name);
-
- virtual int set_string_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- const ACE_TString& value);
-
- virtual int set_integer_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- u_int value);
-
- virtual int set_binary_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- const void* data,
- size_t length);
-
- virtual int get_string_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- ACE_TString& value);
-
- virtual int get_integer_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- u_int& value);
-
- virtual int get_binary_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- void* &data,
- size_t &length);
-
- virtual int find_value(const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name,
- VALUETYPE& type);
-
- /// Removes the the value <name> from <key>. returns non zero on error
- virtual int remove_value (const ACE_Configuration_Section_Key& key,
- const ACE_TCHAR* name);
-
-private:
- /// <sub_section> may not contain path separators
- int open_simple_section (const ACE_Configuration_Section_Key &base,
- const ACE_TCHAR *sub_section,
- int create, ACE_Configuration_Section_Key &result);
- /// Adds a new section
- int add_section (const ACE_Configuration_Section_Key &base,
- const ACE_TCHAR *sub_section,
- ACE_Configuration_Section_Key &result);
-
- /// Helper for the <open> method.
- int create_index (void);
-
- /// Helper for create_index() method: places hash table into an
- /// allocated space.
- int create_index_helper (void *buffer);
-
- int value_open_helper (size_t hash_table_size, void *buffer);
-
- int section_open_helper (size_t hash_table_size, void *buffer);
-
- int load_key (const ACE_Configuration_Section_Key& key, ACE_TString& name);
-
- int new_section (const ACE_TString& section,
- ACE_Configuration_Section_Key& result);
-
- ACE_Configuration_Heap (const ACE_Configuration_Heap& rhs);
- ACE_Configuration_Heap& operator= (const ACE_Configuration_Heap& rhs);
-
- ACE_Allocator *allocator_;
- SECTION_MAP *index_;
- int default_map_size_;
-};
-
-#include "ace/post.h"
-#endif /* ACE_CONFIGURATION_H */
diff --git a/ace/Configuration_Import_Export.cpp b/ace/Configuration_Import_Export.cpp
deleted file mode 100644
index 7f338f7c437..00000000000
--- a/ace/Configuration_Import_Export.cpp
+++ /dev/null
@@ -1,609 +0,0 @@
-// $Id$
-
-#include "ace/Configuration_Import_Export.h"
-
-ACE_Config_ImpExp_Base::ACE_Config_ImpExp_Base (ACE_Configuration& config)
- : config_ (config)
-{
-}
-
-ACE_Config_ImpExp_Base::~ACE_Config_ImpExp_Base (void)
-{
-}
-
-ACE_Registry_ImpExp::ACE_Registry_ImpExp (ACE_Configuration& config)
- : ACE_Config_ImpExp_Base (config)
-{
-}
-
-ACE_Registry_ImpExp::~ACE_Registry_ImpExp (void)
-{
-}
-
-// Imports the configuration database from filename.
-// No existing data is removed.
-int
-ACE_Registry_ImpExp::import_config (const ACE_TCHAR* filename)
-{
- if (0 == filename)
- {
- errno = EINVAL;
- return -1;
- }
- FILE* in = ACE_OS::fopen (filename, ACE_LIB_TEXT ("r"));
- if (!in)
- return -1;
-
- // @@ XXX - change this to a dynamic buffer
- ACE_TCHAR buffer[4096];
- ACE_Configuration_Section_Key section;
- while (ACE_OS::fgets (buffer, 4096, in))
- {
- // Check for a comment
- if (buffer[0] == ACE_LIB_TEXT (';') || buffer[0] == ACE_LIB_TEXT ('#'))
- continue;
-
- if (buffer[0] == ACE_LIB_TEXT ('['))
- {
- // We have a new section here, strip out the section name
- ACE_TCHAR* end = ACE_OS::strrchr (buffer, ACE_LIB_TEXT (']'));
- if (!end)
- {
- ACE_OS::fclose (in);
- return -3;
- }
- *end = 0;
-
- if (config_.expand_path (config_.root_section (), buffer + 1, section, 1))
- {
- ACE_OS::fclose (in);
- return -3;
- }
- continue;
- } // end if firs char is a [
-
- if (buffer[0] == ACE_LIB_TEXT ('"'))
- {
- // we have a value
- ACE_TCHAR* end = ACE_OS::strchr (buffer+1, '"');
- if (!end) // no closing quote, not a value so just skip it
- continue;
-
- // null terminate the name
- *end = 0;
- ACE_TCHAR* name = buffer + 1;
- end+=2;
- // determine the type
- if (*end == '\"')
- {
- // string type
- // truncate trailing "
- ++end;
- ACE_TCHAR* trailing = ACE_OS::strrchr (end, '"');
- if (trailing)
- *trailing = 0;
- if (config_.set_string_value (section, name, end))
- {
- ACE_OS::fclose (in);
- return -4;
- }
- }
- else if (ACE_OS::strncmp (end, ACE_LIB_TEXT ("dword:"), 6) == 0)
- {
- // number type
- ACE_TCHAR* endptr = 0;
- u_int value = ACE_OS::strtoul (end + 6, &endptr, 16);
- if (config_.set_integer_value (section, name, value))
- {
- ACE_OS::fclose (in);
- return -4;
- }
- }
- else if (ACE_OS::strncmp (end, ACE_LIB_TEXT ("hex:"), 4) == 0)
- {
- // binary type
- size_t string_length = ACE_OS::strlen (end + 4);
- // divide by 3 to get the actual buffer length
- size_t length = string_length / 3;
- size_t remaining = length;
- u_char* data = 0;
- ACE_NEW_RETURN (data,
- u_char[length],
- -1);
- u_char* out = data;
- ACE_TCHAR* inb = end + 4;
- ACE_TCHAR* endptr = 0;
- while (remaining)
- {
- u_char charin = (u_char) ACE_OS::strtoul (inb, &endptr, 16);
- *out = charin;
- ++out;
- --remaining;
- inb += 3;
- }
- if (config_.set_binary_value (section, name, data, length))
- {
- ACE_OS::fclose (in);
- return -4;
- }
- }
- else
- {
- // invalid type, ignore
- continue;
- }
- }// end if first char is a "
- else
- {
- // if the first character is not a ", [, ;, or # we may be
- // processing a file in the old format.
- // Try and process the line as such and if it fails,
- // return an error
- int rc;
- if ((rc = process_previous_line_format (buffer, section)) != 0)
- {
- ACE_OS::fclose (in);
- return rc;
- }
- } // end if maybe old format
- } // end while fgets
-
- if (ferror (in))
- {
- ACE_OS::fclose (in);
- return -1;
- }
-
- ACE_OS::fclose (in);
- return 0;
-}
-
-// This method exports the entire configuration database to <filename>.
-// Once the file is opened this method calls 'export_section' passing
-// the root section.
-int
-ACE_Registry_ImpExp::export_config (const ACE_TCHAR* filename)
-{
- if (0 == filename)
- {
- errno = EINVAL;
- return -1;
- }
- int result = -1;
-
- FILE* out = ACE_OS::fopen (filename, ACE_LIB_TEXT ("w"));
- if (out)
- {
- result = this->export_section (config_.root_section (),
- ACE_LIB_TEXT (""),
- out);
- ACE_OS::fclose (out);
- }
- return result;
-}
-
-// Method provided by derived classes in order to write one section
-// to the file specified. Called by export_config when exporting
-// the entire configuration object.
-
-int
-ACE_Registry_ImpExp::export_section (const ACE_Configuration_Section_Key& section,
- const ACE_TString& path,
- FILE* out)
-{
- // don't export the root
- if (path.length ())
- {
- // Write out the section header
- ACE_TString header = ACE_LIB_TEXT ("[");
- header += path;
- header += ACE_LIB_TEXT ("]");
- header += ACE_LIB_TEXT (" \n");
- if (ACE_OS::fputs (header.fast_rep (), out) < 0)
- return -1;
- // Write out each value
- int index = 0;
- ACE_TString name;
- ACE_Configuration::VALUETYPE type;
- ACE_TString line;
- ACE_TCHAR int_value[32];
- ACE_TCHAR bin_value[3];
- void* binary_data;
- size_t binary_length;
- ACE_TString string_value;
- while (!config_.enumerate_values (section, index, name, type))
- {
- line = ACE_LIB_TEXT ("\"") + name + ACE_LIB_TEXT ("\"=");
- switch (type)
- {
- case ACE_Configuration::INTEGER:
- {
- u_int value;
- if (config_.get_integer_value (section, name.fast_rep (), value))
- return -2;
- ACE_OS::sprintf (int_value, ACE_LIB_TEXT ("%08x"), value);
- line += ACE_LIB_TEXT ("dword:");
- line += int_value;
- break;
- }
- case ACE_Configuration::STRING:
- {
- if (config_.get_string_value (section,
- name.fast_rep (),
- string_value))
- return -2;
- line += ACE_LIB_TEXT ("\"");
- line += string_value + ACE_LIB_TEXT ("\"");
- break;
- }
-#ifdef _WIN32
- case ACE_Configuration::INVALID:
- break; // JDO added break. Otherwise INVALID is processed
- // like BINARY. If that's correct, please remove the
- // break and these comments
-#endif
- case ACE_Configuration::BINARY:
- {
- // not supported yet - maybe use BASE64 codeing?
- if (config_.get_binary_value (section,
- name.fast_rep (),
- binary_data,
- binary_length))
- return -2;
- line += ACE_LIB_TEXT ("hex:");
- unsigned char* ptr = (unsigned char*)binary_data;
- while (binary_length)
- {
- if (ptr != binary_data)
- {
- line += ACE_LIB_TEXT (",");
- }
- ACE_OS::sprintf (bin_value, ACE_LIB_TEXT ("%02x"), *ptr);
- line += bin_value;
- --binary_length;
- ++ptr;
- }
- delete [] (char*) binary_data;
- break;
- }
- default:
- return -3;
- }
- line += ACE_LIB_TEXT ("\n");
- if (ACE_OS::fputs (line.fast_rep (), out) < 0)
- return -4;
- index++;
- }
- }
- // Export all sub sections
- int index = 0;
- ACE_TString name;
- ACE_Configuration_Section_Key sub_key;
- ACE_TString sub_section;
- while (!config_.enumerate_sections (section, index, name))
- {
- ACE_TString sub_section (path);
- if (path.length ())
- sub_section += ACE_LIB_TEXT ("\\");
- sub_section += name;
- if (config_.open_section (section, name.fast_rep (), 0, sub_key))
- return -5;
- if (export_section (sub_key, sub_section.fast_rep (), out))
- return -6;
- index++;
- }
- return 0;
-}
-
-//
-// This method read the line format origionally used in ACE 5.1
-//
-int
-ACE_Registry_ImpExp::process_previous_line_format (ACE_TCHAR* buffer,
- ACE_Configuration_Section_Key& section)
-{
- // Chop any cr/lf at the end of the line.
- ACE_TCHAR *endp = ACE_OS_String::strpbrk (buffer, ACE_LIB_TEXT ("\r\n"));
- if (endp != 0)
- *endp = '\0';
-
- // assume this is a value, read in the value name
- ACE_TCHAR* end = ACE_OS::strchr (buffer, '=');
- if (end) // no =, not a value so just skip it
- {
- // null terminate the name
- *end = 0;
- end++;
- // determine the type
- if (*end == '\"')
- {
- // string type
- if(config_.set_string_value (section, buffer, end + 1))
- return -4;
- }
- else if (*end == '#')
- {
- // number type
- u_int value = ACE_OS::atoi (end + 1);
- if (config_.set_integer_value (section, buffer, value))
- return -4;
- }
- }
- return 0;
-} // end read_previous_line_format
-
-
-ACE_Ini_ImpExp::ACE_Ini_ImpExp (ACE_Configuration& config)
- : ACE_Config_ImpExp_Base (config)
-{
-}
-
-ACE_Ini_ImpExp::~ACE_Ini_ImpExp (void)
-{
-}
-
-// Method to read file and populate object.
-int
-ACE_Ini_ImpExp::import_config (const ACE_TCHAR* filename)
-{
- if (0 == filename)
- {
- errno = EINVAL;
- return -1;
- }
- FILE* in = ACE_OS::fopen (filename, ACE_LIB_TEXT ("r"));
- if (!in)
- return -1;
-
- // @@ Make this a dynamic size!
- ACE_TCHAR buffer[4096];
- ACE_Configuration_Section_Key section;
- while (ACE_OS::fgets (buffer, sizeof buffer, in))
- {
- ACE_TCHAR *line = this->squish (buffer);
- // Check for a comment and blank line
- if (line[0] == ACE_LIB_TEXT (';') ||
- line[0] == ACE_LIB_TEXT ('#') ||
- line[0] == '\0')
- continue;
-
- if (line[0] == ACE_LIB_TEXT ('['))
- {
- // We have a new section here, strip out the section name
- ACE_TCHAR* end = ACE_OS::strrchr (line, ACE_LIB_TEXT (']'));
- if (!end)
- {
- ACE_OS::fclose (in);
- return -3;
- }
- *end = 0;
-
- if (config_.expand_path (config_.root_section (),
- line + 1,
- section,
- 1))
- {
- ACE_OS::fclose (in);
- return -3;
- }
-
- continue;
- }
-
- // We have a line; name ends at equal sign.
- ACE_TCHAR *end = ACE_OS::strchr (line, ACE_LIB_TEXT ('='));
- if (end == 0) // No '='
- {
- ACE_OS::fclose (in);
- return -3;
- }
- *end++ = '\0';
- ACE_TCHAR *name = this->squish (line);
-#if 0
- if (ACE_OS::strlen (name) == 0) // No name; just an '='
- {
- ACE_OS::fclose (in);
- return -3;
- }
-#endif
- // Now find the start of the value
- ACE_TCHAR *value = this->squish (end);
- size_t value_len = ACE_OS::strlen (value);
- if (value_len > 0)
- {
- // ACE 5.2 (and maybe earlier) exported strings may be enclosed
- // in quotes. If string is quote-delimited, strip the quotes.
- // Newer exported files don't have quote delimiters.
- if (value[0] == ACE_LIB_TEXT ('"') &&
- value[value_len - 1] == ACE_LIB_TEXT ('"'))
- {
- // Strip quotes off both ends.
- value[value_len - 1] = '\0';
- value++;
- }
- }
-
- if (config_.set_string_value (section, name, value))
- {
- ACE_OS::fclose (in);
- return -4;
- }
- } // end while fgets
-
- if (ferror (in))
- {
- ACE_OS::fclose (in);
- return -1;
- }
-
- ACE_OS::fclose (in);
- return 0;
-}
-
-// This method exports the entire configuration database to <filename>.
-// Once the file is opened this method calls 'export_section' passing
-// the root section.
-int
-ACE_Ini_ImpExp::export_config (const ACE_TCHAR* filename)
-{
- if (0 == filename)
- {
- errno = EINVAL;
- return -1;
- }
- int result = -1;
-
- FILE* out = ACE_OS::fopen (filename, ACE_LIB_TEXT ("w"));
- if (out)
- {
- result = this->export_section (config_.root_section (),
- ACE_LIB_TEXT (""),
- out);
- ACE_OS::fclose (out);
- }
- return result;
-}
-
-// Method provided by derived classes in order to write one section to the
-// file specified. Called by export_config when exporting the entire
-// configuration objet
-
-int
-ACE_Ini_ImpExp::export_section (const ACE_Configuration_Section_Key& section,
- const ACE_TString& path,
- FILE* out)
-{
- // don't export the root
- if (path.length ())
- {
- // Write out the section header
- ACE_TString header = ACE_LIB_TEXT ("[");
- header += path;
- header += ACE_LIB_TEXT ("]\n");
- if (ACE_OS::fputs (header.fast_rep (), out) < 0)
- return -1;
- // Write out each value
- int index = 0;
- ACE_TString name;
- ACE_Configuration::VALUETYPE type;
- ACE_TString line;
- ACE_TCHAR int_value[32];
- ACE_TCHAR bin_value[3];
- void* binary_data;
- size_t binary_length;
- ACE_TString string_value;
- while (!config_.enumerate_values (section, index, name, type))
- {
- line = name + ACE_LIB_TEXT ("=");
- switch (type)
- {
- case ACE_Configuration::INTEGER:
- {
- u_int value;
- if (config_.get_integer_value (section, name.fast_rep (), value))
- return -2;
- ACE_OS::sprintf (int_value, ACE_LIB_TEXT ("%08x"), value);
- line += int_value;
- break;
- }
- case ACE_Configuration::STRING:
- {
- if (config_.get_string_value (section,
- name.fast_rep (),
- string_value))
- return -2;
- line += string_value;
- break;
- }
-#ifdef _WIN32
- case ACE_Configuration::INVALID:
- break; // JDO added break. Otherwise INVALID is processed
- // like BINARY. If that's correct, please remove the
- // break and these comments
-#endif
- case ACE_Configuration::BINARY:
- {
- // not supported yet - maybe use BASE64 codeing?
- if (config_.get_binary_value (section,
- name.fast_rep (),
- binary_data,
- binary_length))
- return -2;
- line += ACE_LIB_TEXT ("\"");
- unsigned char* ptr = (unsigned char*)binary_data;
- while (binary_length)
- {
- if (ptr != binary_data)
- {
- line += ACE_LIB_TEXT (",");
- }
- ACE_OS::sprintf (bin_value, ACE_LIB_TEXT ("%02x"), *ptr);
- line += bin_value;
- --binary_length;
- ++ptr;
- }
- line += ACE_LIB_TEXT ("\"");
- delete [] (char *) binary_data;
- break;
- }
- default:
- return -3;
-
- }// end switch on type
-
- line += ACE_LIB_TEXT ("\n");
- if (ACE_OS::fputs (line.fast_rep (), out) < 0)
- return -4;
- index++;
- }// end while enumerating values
- }
- // Export all sub sections
- int index = 0;
- ACE_TString name;
- ACE_Configuration_Section_Key sub_key;
- ACE_TString sub_section;
- while (!config_.enumerate_sections (section, index, name))
- {
- ACE_TString sub_section (path);
- if (path.length ())
- sub_section += ACE_LIB_TEXT ("\\");
- sub_section += name;
- if (config_.open_section (section, name.fast_rep (), 0, sub_key))
- return -5;
- if (export_section (sub_key, sub_section.fast_rep (), out))
- return -6;
- index++;
- }
- return 0;
-
-}
-
-// Method to squish leading and trailing whitespaces from a string.
-// Whitespace is defined as: spaces (' '), tabs ('\t') or end-of-line
-// (cr/lf). The terminating nul is moved up to expunge trailing
-// whitespace and the returned pointer points at the first
-// non-whitespace character in the string, which may be the nul
-// terminator if the string is all whitespace.
-
-ACE_TCHAR *
-ACE_Ini_ImpExp::squish (ACE_TCHAR *src)
-{
- ACE_TCHAR *cp;
-
- if (src == 0)
- return 0;
-
- // Start at the end and work backwards over all whitespace.
- for (cp = src + ACE_OS_String::strlen (src) - 1;
- cp != src;
- --cp)
- if (!ACE_OS_String::ace_isspace (*cp))
- break;
- cp[1] = '\0'; // Chop trailing whitespace
-
- // Now start at the beginning and move over all whitespace.
- for (cp = src; ACE_OS_String::ace_isspace (*cp); ++cp)
- continue;
-
- return cp;
-}
diff --git a/ace/Configuration_Import_Export.h b/ace/Configuration_Import_Export.h
deleted file mode 100644
index 921eba5f8c5..00000000000
--- a/ace/Configuration_Import_Export.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Configuration_Import_Export.h
- *
- * $Id$
- *
- * @author Jerry D. Odenwelder Jr. <jerry.o@mindspring.com>
- * Chris Hafey <chris@stentorsoft.com>
- *
- * Classes defined in this file provide the ability to import and export
- * ACE Configuration objects to/from disk files. The base class
- * ACE_Config_ImpExp_Base provides the common functionality and the derived
- * classes implement the import/export functionality for the specific format.
- *
- * @todo
- * - Add locking for thread safety.
- * - Provide ability to read file in one format and write in another.
- * - See todo's in each class
- */
-//=============================================================================
-
-#ifndef ACE_CONFIGURATION_IMPORT_EXPORT_H
-#define ACE_CONFIGURATION_IMPORT_EXPORT_H
-#include "ace/pre.h"
-
-#include "ace/Configuration.h"
-#include "ace/SString.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Config_ImpExp_Base
- *
- * @brief Base class for file import/export configuration.
- *
- * This class provides base functionality for configuration objects
- * that are persisted in files. It takes an ACE_Configuration
- * object that it populates with the data read.
- *
- */
-class ACE_Export ACE_Config_ImpExp_Base
-{
-public:
- /// Constructor taking the ACE_Configuration to import/export to
- ACE_Config_ImpExp_Base (ACE_Configuration& config);
-
- /**
- * Destructor
- */
- virtual ~ACE_Config_ImpExp_Base (void);
-
- /**
- * Imports the configuration database from @a filename.
- * No existing data is removed.
- */
- virtual int import_config (const ACE_TCHAR* filename) = 0;
-
- /**
- * This method exports the entire configuration database to @a filename.
- * Once the file is opened this method calls 'export_section' passing
- * the root section.
- */
- virtual int export_config (const ACE_TCHAR* filename) = 0;
-
-protected:
- ACE_Configuration &config_;
-
-private:
- ACE_Config_ImpExp_Base (const ACE_Config_ImpExp_Base&);
- ACE_Config_ImpExp_Base& operator= (const ACE_Config_ImpExp_Base&);
-};
-
-/**
- * @class ACE_Registry_ImpExp
- *
- * @brief Configuration object that imports/exports data to a file formatted
- * using the Win32 Registry file export format. This format looks like
- * [Section]
- * "key"="String Data"
- * "key"=dword: numeric data
- * "key"=hex: binary data
- *
- * @todo
- * - Add dynamic buffer when importing. currently it will not allow
- * importing of values greater than a fixed ammount (4096 bytes)
- *
- */
-class ACE_Export ACE_Registry_ImpExp : public ACE_Config_ImpExp_Base
-{
-public:
- /// Construction
- ACE_Registry_ImpExp (ACE_Configuration&);
-
- /// Destruction.
- virtual ~ACE_Registry_ImpExp (void);
-
- /**
- * Imports the configuration database from filename.
- * No existing data is removed.
- */
- virtual int import_config (const ACE_TCHAR* filename);
-
- /**
- * This method exports the entire configuration database to @a filename.
- * Once the file is opened this method calls export_section() passing
- * the root section.
- */
- virtual int export_config (const ACE_TCHAR* filename);
-
-private:
- int export_section (const ACE_Configuration_Section_Key& section,
- const ACE_TString& path,
- FILE* out);
-
- int process_previous_line_format (ACE_TCHAR* buffer,
- ACE_Configuration_Section_Key& section);
-
- ACE_Registry_ImpExp ( const ACE_Registry_ImpExp&);
- ACE_Registry_ImpExp& operator= ( const ACE_Registry_ImpExp&);
-};
-
-/**
- * @class ACE_Ini_ImpExp
- *
- * @brief Imports the configuration database from filename as strings.
- * Allows non-typed values. (no #, dword: hex:, etc. prefixes) and
- * skips whitespace (tabs and spaces) as in standard .ini and .conf
- * files. Values (to right of equal sign) can be double quote
- * delimited to embed tabs and spaces in the string.
- * Caller must convert string to type.
- *
- * This method allows for lines in the .ini or .conf file like this:
- *
- * TimeToLive = 100
- * Delay = FALSE
- * Flags = FF34
- * Heading = "ACE - Adaptive Communication Environment"
- *
- * (note leading whitespace (tabs) in examples below)
- *
- * SeekIndex = 14
- * TraceLevel = 6 # Can comment lines like this
- * Justification = left_justified
- *
- * The caller can then retrieve the string with the regular
- * <get_string_value> function and convert the string to the
- * desired data type.
- *
- * @todo
- * - Strings with embedded newlines cause the import to fail
- * - Strings with embedded quotes " cause the import to fail
- * - Importing/exporting for values in the root section does not work
- * - Add dynamic buffer when importing. currently it will not allow
- * importing of values greater than a fixed ammount (4096 bytes)
-*/
-class ACE_Export ACE_Ini_ImpExp : public ACE_Config_ImpExp_Base
-{
-public:
- /**
- * Construction
- */
- ACE_Ini_ImpExp (ACE_Configuration&);
-
- /**
- * Destructor
- */
- virtual ~ACE_Ini_ImpExp (void);
-
- /**
- * Imports the configuration database from filename.
- * No existing data is removed.
- */
- virtual int import_config (const ACE_TCHAR* filename);
-
- /**
- * This method exports the entire configuration database to @a filename.
- * Once the file is opened this method calls export_section() passing
- * the root section.
- */
- virtual int export_config (const ACE_TCHAR* filename);
-
-private:
- /**
- * Method provided by derived classes in order to write one section
- * to the file specified. Called by export_config() when exporting
- * the entire configuration object.
- */
- int export_section (const ACE_Configuration_Section_Key& section,
- const ACE_TString& path,
- FILE* out);
-
- /**
- * Method to squish leading and trailing whitespaces in a string.
- * Whitespace is defined as: spaces (' '), tabs ('\\t') or cr/lf.
- * Returns a pointer to the first non-whitespace character in the
- * buffer provided, or a pointer to the terminating null if the string
- * is all whitespace. The terminating null is moved forward to the
- * first character past the last non-whitespace.
- */
- ACE_TCHAR *squish (ACE_TCHAR *src);
-
- ACE_Ini_ImpExp (const ACE_Ini_ImpExp&);
- ACE_Ini_ImpExp& operator= (const ACE_Ini_ImpExp&);
-};
-
-#include "ace/post.h"
-#endif /* ACE_CONFIGURATION_IMPORT_EXPORT_H */
diff --git a/ace/Connection_Recycling_Strategy.cpp b/ace/Connection_Recycling_Strategy.cpp
deleted file mode 100644
index 351dde2ea52..00000000000
--- a/ace/Connection_Recycling_Strategy.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "ace/Connection_Recycling_Strategy.h"
-
-
-ACE_RCSID(ace, Connection_Recycling_Strategy, "$Id$")
-
-
-ACE_Connection_Recycling_Strategy::ACE_Connection_Recycling_Strategy (void)
-{
-}
-
-ACE_Connection_Recycling_Strategy::~ACE_Connection_Recycling_Strategy (void)
-{
-}
diff --git a/ace/Connection_Recycling_Strategy.h b/ace/Connection_Recycling_Strategy.h
deleted file mode 100644
index 71a328e7d10..00000000000
--- a/ace/Connection_Recycling_Strategy.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Connection_Recycling_Strategy.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-#ifndef ACE_CONNECTION_RECYCLING_STRATEGY_H
-#define ACE_CONNECTION_RECYCLING_STRATEGY_H
-#include "ace/pre.h"
-
-#include "ace/Recyclable.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-
-
-
-/**
- * @class ACE_Connection_Recycling_Strategy
- *
- * @brief Defines the interface for a connection recycler.
- */
-
-class ACE_Export ACE_Connection_Recycling_Strategy
-{
-public:
- /// Virtual Destructor
- virtual ~ACE_Connection_Recycling_Strategy (void);
-
- /// Remove from cache.
- virtual int purge (const void *recycling_act) = 0;
-
- /// Add to cache.
- virtual int cache (const void *recycling_act) = 0;
-
- virtual int recycle_state (const void *recycling_act,
- ACE_Recyclable_State new_state) = 0;
-
- /// Get/Set <recycle_state>.
- virtual ACE_Recyclable_State recycle_state (const void *recycling_act) const = 0;
-
- /// Mark as closed.
- virtual int mark_as_closed (const void *recycling_act) = 0;
-
- /// Mark as closed.(non-locking version)
- virtual int mark_as_closed_i (const void *recycling_act) = 0;
-
- /// Cleanup hint and reset <*act_holder> to zero if <act_holder != 0>.
- virtual int cleanup_hint (const void *recycling_act,
- void **act_holder = 0) = 0;
-
-protected:
- /// Default ctor.
- ACE_Connection_Recycling_Strategy (void);
-};
-
-
-
-#include "ace/post.h"
-#endif /*ACE_CONNECTION_RECYCLING_STRATEGY*/
diff --git a/ace/Connector.cpp b/ace/Connector.cpp
deleted file mode 100644
index 52651212c74..00000000000
--- a/ace/Connector.cpp
+++ /dev/null
@@ -1,1079 +0,0 @@
-#ifndef ACE_CONNECTOR_CPP
-#define ACE_CONNECTOR_CPP
-
-#include "ace/Connector.h"
-#include "ace/Svc_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID (ace,
- Connector,
- "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Connector)
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> void
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::dump (void) const
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nclosing_ = %d"), this->closing_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nflags_ = %d"), this->flags_));
- this->handler_map_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Bridge method for creating a SVC_HANDLER. The strategy for
-// creating a SVC_HANDLER are configured into the Acceptor via it's
-// <creation_strategy_>. The default is to create a new SVC_HANDLER.
-// However, subclasses can override this strategy to perform
-// SVC_HANDLER creation in any way that they like (such as creating
-// subclass instances of SVC_HANDLER, using a singleton, dynamically
-// linking the handler, etc.).
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::make_svc_handler (SVC_HANDLER *&sh)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::make_svc_handler");
-
- if (sh == 0)
- ACE_NEW_RETURN (sh,
- SVC_HANDLER,
- -1);
-
- // Set the reactor of the newly created <SVC_HANDLER> to the same
- // reactor that this <Connector> is using.
- sh->reactor (this->reactor ());
- return 0;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::activate_svc_handler (SVC_HANDLER *svc_handler)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::activate_svc_handler");
- // No errors initially
- int error = 0;
-
- // See if we should enable non-blocking I/O on the <svc_handler>'s
- // peer.
- if (ACE_BIT_ENABLED (this->flags_, ACE_NONBLOCK) != 0)
- {
- if (svc_handler->peer ().enable (ACE_NONBLOCK) == -1)
- error = 1;
- }
- // Otherwise, make sure it's disabled by default.
- else if (svc_handler->peer ().disable (ACE_NONBLOCK) == -1)
- error = 1;
-
- // We are connected now, so try to open things up.
- if (error || svc_handler->open ((void *) this) == -1)
- {
- // Make sure to close down the <svc_handler> to avoid descriptor
- // leaks.
- svc_handler->close (0);
- return -1;
- }
- else
- return 0;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> ACE_PEER_CONNECTOR &
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connector (void) const
-{
- return ACE_const_cast (ACE_PEER_CONNECTOR &, this->connector_);
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_svc_handler (
- SVC_HANDLER *&svc_handler,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_svc_handler");
-
- return this->connector_.connect (svc_handler->peer (),
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms);
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_svc_handler (
- SVC_HANDLER *&svc_handler,
- SVC_HANDLER *&sh_copy,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_svc_handler");
-
- sh_copy = svc_handler;
- return this->connector_.connect (svc_handler->peer (),
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms);
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::open (ACE_Reactor *r, int flags)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::open");
- this->reactor (r);
- this->flags_ = flags;
- this->closing_ = 0;
- return 0;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1>
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::ACE_Connector (ACE_Reactor *r, int flags)
- : handler_map_ (ACE_CONNECTOR_HANDLER_MAP_SIZE)
- , connector_ ()
- , closing_ (0)
- , flags_ (0)
- , mutex_ ()
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::ACE_Connector");
- (void) this->open (r, flags);
-}
-
-template <class SVC_HANDLER>
-ACE_Svc_Tuple<SVC_HANDLER>::ACE_Svc_Tuple (
- SVC_HANDLER *sh,
- ACE_HANDLE handle,
- const void *arg,
- long id)
- : svc_handler_ (sh),
- handle_ (handle),
- arg_ (arg),
- cancellation_id_ (id),
- refcount_ (1)
-{
- ACE_TRACE ("ACE_Svc_Tuple<SVC_HANDLER>::ACE_Svc_Tuple");
-}
-
-template <class SVC_HANDLER>
-ACE_Svc_Tuple<SVC_HANDLER>::~ACE_Svc_Tuple (void)
-{
-}
-
-template <class SVC_HANDLER> SVC_HANDLER *
-ACE_Svc_Tuple<SVC_HANDLER>::svc_handler (void)
-{
- ACE_TRACE ("ACE_Svc_Tuple<SVC_HANDLER>::svc_handler");
- return this->svc_handler_;
-}
-
-template <class SVC_HANDLER> const void *
-ACE_Svc_Tuple<SVC_HANDLER>::arg (void)
-{
- ACE_TRACE ("ACE_Svc_Tuple<SVC_HANDLER>::arg");
- return this->arg_;
-}
-
-template <class SVC_HANDLER> void
-ACE_Svc_Tuple<SVC_HANDLER>::arg (const void *v)
-{
- ACE_TRACE ("ACE_Svc_Tuple<SVC_HANDLER>::arg");
- this->arg_ = v;
-}
-
-template <class SVC_HANDLER> ACE_HANDLE
-ACE_Svc_Tuple<SVC_HANDLER>::handle (void)
-{
- ACE_TRACE ("ACE_Svc_Tuple<SVC_HANDLER>::handle");
- return this->handle_;
-}
-
-template <class SVC_HANDLER> void
-ACE_Svc_Tuple<SVC_HANDLER>::handle (ACE_HANDLE h)
-{
- ACE_TRACE ("ACE_Svc_Tuple<SVC_HANDLER>::handle");
- this->handle_ = h;
-}
-
-template <class SVC_HANDLER> long
-ACE_Svc_Tuple<SVC_HANDLER>::cancellation_id (void)
-{
- ACE_TRACE ("ACE_Svc_Tuple<SVC_HANDLER>::cancellation_id");
- return this->cancellation_id_;
-}
-
-template <class SVC_HANDLER> void
-ACE_Svc_Tuple<SVC_HANDLER>::cancellation_id (long id)
-{
- ACE_TRACE ("ACE_Svc_Tuple<SVC_HANDLER>::cancellation_id");
- this->cancellation_id_ = id;
-}
-
-template <class SVC_HANDLER> long
-ACE_Svc_Tuple<SVC_HANDLER>::incr_refcount (void)
-{
- ACE_TRACE ("ACE_Svc_Tuple<SVC_HANDLER>::incr_refcount");
- return ++this->refcount_;
-}
-
-template <class SVC_HANDLER> long
-ACE_Svc_Tuple<SVC_HANDLER>::decr_refcount (void)
-{
- ACE_TRACE ("ACE_Svc_Tuple<SVC_HANDLER>::decr_refcount");
- if (--this->refcount_ > 0)
- return this->refcount_;
-
- ACE_ASSERT (this->refcount_ == 0);
-
- delete this;
-
- return 0;
-}
-
-template <class SVC_HANDLER> void
-ACE_Svc_Tuple<SVC_HANDLER>::dump (void) const
-{
- ACE_TRACE ("ACE_Svc_Tuple<SVC_HANDLER>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("svc_handler_ = %x"), this->svc_handler_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\narg_ = %x"), this->arg_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncancellation_id_ = %d"), this->cancellation_id_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// This method is called if a connection times out before completing.
-// In this case, we call our cleanup_AST() method to cleanup the
-// descriptor from the ACE_Connector's table.
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::handle_timeout (
- const ACE_Time_Value &tv,
- const void *arg)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::handle_timeout");
- AST *ast = 0;
-
- if (this->cleanup_AST (((AST *) arg)->handle (),
- ast) == -1)
- {
- // Matches the creation time refcount for AST, which is 1
- this->decr_ast_refcount ((AST *) arg);
- return -1;
- }
- else
- {
- ACE_ASSERT (((AST *) arg) == ast);
-
- // We may need this seemingly unnecessary assignment to work
- // around a bug with MSVC++?
- SVC_HANDLER *sh = ast->svc_handler ();
-
- // Forward to the SVC_HANDLER the <arg> that was passed in as a
- // magic cookie during ACE_Connector::connect(). This gives the
- // SVC_HANDLER an opportunity to take corrective action (e.g.,
- // wait a few milliseconds and try to reconnect again.
- int result = sh->handle_timeout (tv, ast->arg ());
-
- // Matches the creation time refcount for AST, which is 1.
- this->decr_ast_refcount (ast);
-
- if (result == -1)
- sh->handle_close (sh->get_handle (),
- ACE_Event_Handler::TIMER_MASK);
-
- return 0;
- }
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::cleanup_AST (
- ACE_HANDLE handle,
- ACE_Svc_Tuple<SVC_HANDLER> *&ast)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::cleanup_AST");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
- ace_mon,
- this->mutex_,
- -1));
-
- // Locate the ACE_Svc_Handler corresponding to the socket
- // descriptor.
- if (this->handler_map_.unbind (handle, ast) == -1)
- {
- // Error, entry not found in map.
- errno = ENOENT;
- return -1;
- }
-
- // Matches incr_refcount () in create_AST () after registering
- // with the map.
- ast->decr_refcount ();
-
- // Try to remove from ACE_Timer_Queue but if it's not there we
- // ignore the error.
- if (this->reactor ()->cancel_timer (ast->cancellation_id ()))
- {
- // Matches incr_refcount () in create_AST () after registering
- // the timer
- ast->decr_refcount ();
- }
-
-
- ACE_Reactor_Mask m =
- ACE_Event_Handler::ALL_EVENTS_MASK | ACE_Event_Handler::DONT_CALL;
-
- // Remove ACE_HANDLE from ACE_Reactor.
- if (this->reactor ()->remove_handler (handle, m) == 0)
- {
- // Matches incr_refcount () in create_AST () after registering
- // with the Reactor.
- ast->decr_refcount ();
- }
- return 0;
-}
-
-// Called when a failure occurs during asynchronous connection
-// establishment. Simply delegate all work to this->handle_output().
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::handle_input (ACE_HANDLE h)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::handle_input");
- AST *ast = 0;
-
- if (this->cleanup_AST (h, ast) != -1)
- {
- ACE_ASSERT (ast != 0);
- ast->svc_handler ()->close (0);
-
- // Matches the creation time refcount for AST, which is 1
- this->decr_ast_refcount (ast);
- }
-
- return 0; // Already removed from the ACE_Reactor.
-}
-
-// Finalize a connection established in non-blocking mode. When a
-// non-blocking connect *succeeds* the descriptor becomes enabled for
-// writing... Likewise, it is generally the case that when a
-// non-blocking connect *fails* the descriptor becomes enabled for
-// reading.
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::handle_output (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::handle_output");
- AST *ast = 0;
-
- if (this->cleanup_AST (handle, ast) == -1)
- {
- return 0;
- }
- ACE_ASSERT (ast != 0); // This shouldn't happen!
-
- // Try to find out if the reactor uses event associations for the
- // handles it waits on. If so we need to reset it.
- int reset_new_handle = this->reactor ()->uses_event_associations ();
-
- if (reset_new_handle)
- this->connector_.reset_new_handle (handle);
-
- // Transfer ownership of the ACE_HANDLE to the SVC_HANDLER.
- ast->svc_handler ()->set_handle (handle);
-
- ACE_PEER_CONNECTOR_ADDR raddr;
-
- // Check to see if we're connected.
- if (ast->svc_handler ()->peer ().get_remote_addr (raddr) != -1)
- this->activate_svc_handler (ast->svc_handler ());
- else // Somethings gone wrong, so close down...
- {
-#if defined (ACE_WIN32)
- // ACE_DEBUG ((LM_DEBUG, "errno %d; Sleeping to retry get_remote_addr\n", errno));
- // Win32 (at least prior to Windows 2000) has a timing problem.
- // If you check to see if the connection has completed too fast,
- // it will fail - so wait 35 milliseconds to let it catch up.
- ACE_Time_Value tv (0, ACE_NON_BLOCKING_BUG_DELAY);
- ACE_OS::sleep (tv);
- if (ast->svc_handler ()->peer ().get_remote_addr (raddr) != -1)
- this->activate_svc_handler (ast->svc_handler ());
- else // do the svc handler close below...
-#endif /* ACE_WIN32 */
- ast->svc_handler ()->close (0);
- }
- // Matches the creation time refcount for AST, which is 1
- this->decr_ast_refcount (ast);
- return 0;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::resume_handler (void)
-{
- return ACE_Event_Handler::ACE_EVENT_HANDLER_NOT_RESUMED;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::handle_exception (ACE_HANDLE h)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::handle_exception");
-
- // On Win32, the except mask must also be set for asynchronous
- // connects.
-
- return this->handle_output (h);
-}
-
-// Initiate connection to peer.
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect (
- SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- const ACE_Synch_Options &synch_options,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms)
-{
- return this->connect_i (sh,
- 0,
- remote_addr,
- synch_options,
- local_addr,
- reuse_addr,
- flags,
- perms);
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect (
- SVC_HANDLER *&sh,
- SVC_HANDLER *&sh_copy,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- const ACE_Synch_Options &synch_options,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms)
-{
- return this->connect_i (sh,
- &sh_copy,
- remote_addr,
- synch_options,
- local_addr,
- reuse_addr,
- flags,
- perms);
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_i (
- SVC_HANDLER *&sh,
- SVC_HANDLER **sh_copy,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- const ACE_Synch_Options &synch_options,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_i");
-
- // If the user hasn't supplied us with a <SVC_HANDLER> we'll use the
- // factory method to create one. Otherwise, things will remain as
- // they are...
- if (this->make_svc_handler (sh) == -1)
- return -1;
-
- ACE_Time_Value *timeout;
- int use_reactor = synch_options[ACE_Synch_Options::USE_REACTOR];
-
- if (use_reactor)
- timeout = (ACE_Time_Value *) &ACE_Time_Value::zero;
- else
- timeout = (ACE_Time_Value *) synch_options.time_value ();
-
- int result;
- if (sh_copy == 0)
- result = this->connect_svc_handler (sh,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms);
- else
- result = this->connect_svc_handler (sh,
- *sh_copy,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms);
-
- // Delegate to connection strategy.
- if (result == -1)
- {
- if (use_reactor && errno == EWOULDBLOCK)
- {
- // If the connection hasn't completed and we are using
- // non-blocking semantics then register ourselves with the
- // ACE_Reactor so that it will call us back when the
- // connection is complete or we timeout, whichever comes
- // first...
- int result;
-
- if (sh_copy == 0)
- result = this->create_AST (sh, synch_options);
- else
- result = this->create_AST (*sh_copy, synch_options);
-
- // If for some reason the <create_AST> call failed, then
- // <errno> will be set to the new error. If the call
- // succeeds, however, we need to make sure that <errno>
- // remains set to <EWOULDBLOCK>.
- if (result == 0)
- errno = EWOULDBLOCK;
- }
- else
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- // Make sure to close down the service handler to avoid
- // handle leaks.
- if (sh_copy == 0)
- {
- if (sh)
- sh->close (0);
- }
- else if (*sh_copy)
- (*sh_copy)->close (0);
- }
- return -1;
- }
- else
- // Activate immediately if we are connected.
- return this->activate_svc_handler (sh);
-}
-
-// Initiate connection to peer.
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_n (
- size_t n,
- SVC_HANDLER *sh[],
- ACE_PEER_CONNECTOR_ADDR remote_addrs[],
- ACE_TCHAR *failed_svc_handlers,
- const ACE_Synch_Options &synch_options)
-{
- int result = 0;
-
- for (size_t i = 0; i < n; i++)
- {
- if (this->connect (sh[i], remote_addrs[i], synch_options) == -1
- && !(synch_options[ACE_Synch_Options::USE_REACTOR]
- && errno == EWOULDBLOCK))
- {
- result = -1;
- if (failed_svc_handlers != 0)
- // Mark this entry as having failed.
- failed_svc_handlers[i] = 1;
- }
- else if (failed_svc_handlers != 0)
- // Mark this entry as having succeeded.
- failed_svc_handlers[i] = 0;
- }
-
- return result;
-}
-
-// Cancel a <svc_handler> that was started asynchronously.
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::cancel (SVC_HANDLER *sh)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::cancel");
- MAP_ITERATOR mi (this->handler_map_);
-
- for (MAP_ENTRY *me = 0;
- mi.next (me) != 0;
- mi.advance ())
- if (me->int_id_->svc_handler () == sh)
- {
- AST *ast = 0;
-
- if (this->cleanup_AST (me->ext_id_, ast) != -1)
- this->decr_ast_refcount (ast);
-
- return 0;
- }
-
- return -1;
-}
-
-// Register the pending SVC_HANDLER with the map so that it can be
-// activated later on when the connection complets.
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::create_AST (
- SVC_HANDLER *sh,
- const ACE_Synch_Options &synch_options)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::create_AST");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
- ace_mon,
- this->mutex_,
- -1));
-
- ACE_HANDLE handle = sh->get_handle ();
- AST *ast;
-
- // AST is created with a refcount
- ACE_NEW_RETURN (ast,
- AST (sh,
- handle,
- synch_options.arg (), -1),
- -1);
-
- // Register this with the reactor for connection events.
- ACE_Reactor_Mask mask = ACE_Event_Handler::CONNECT_MASK;
-
- // Bind ACE_Svc_Tuple with the ACE_HANDLE we're trying to connect.
- if (this->handler_map_.bind (handle, ast) == -1)
- goto fail1;
-
- // Increment the refcount of the AST to indicate registration with
- // the map.
- ast->incr_refcount ();
-
- if (this->reactor ()->register_handler (handle,
- this,
- mask) == -1)
- goto fail2;
-
- // Increment the refcount of the AST. This increment is for access
- // from the Reactor. Though we register <this> with the Reactor,
- // every dispatch from the Reactor actually looks for <ast> and
- // hence the refcount increment.
- (void) ast->incr_refcount ();
-
- {
- // If we're starting connection under timer control then we need to
- // schedule a timeout with the ACE_Reactor.
- ACE_Time_Value *tv =
- ACE_const_cast (ACE_Time_Value *,
- synch_options.time_value ());
- if (tv != 0)
- {
- int cancellation_id =
- this->reactor ()->schedule_timer
- (this,
- (const void *) ast,
- *tv);
- if (cancellation_id == -1)
- goto fail3;
-
- // Increment the refcount of the AST. This increment is for access
- // from the timer queue. The same argument used for Rector
- // registration holds true here too.
- (void) ast->incr_refcount ();
-
- ast->cancellation_id (cancellation_id);
- return 0;
- }
- }
- return 0; // Ok, everything worked just fine...
-
- // Undo previous actions using the ol' "goto label and fallthru"
- // trick...
-fail3:
- this->reactor ()->remove_handler
- (this, mask | ACE_Event_Handler::DONT_CALL);
- /* FALLTHRU */
-fail2:
- this->handler_map_.unbind (handle);
- /* FALLTHRU */
-fail1:
-
- // Close the svc_handler
- sh->close (0);
-
- ast->decr_refcount ();
- return -1;
-}
-
-// Terminate the Client ACE_Connector by iterating over any
-// unconnected ACE_Svc_Handler's and removing them from the
-// ACE_Reactor. Note that we can't call handle_close() back at this
-// point since we own these things and we'll just get called
-// recursively!
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::close (void)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::close");
- return this->handle_close ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::handle_close");
-
- if (this->reactor () != 0 && this->closing_ == 0)
- {
- // We're closing down now, so make sure not to call ourselves
- // recursively via other calls to handle_close() (e.g., from the
- // Timer_Queue).
- this->closing_ = 1;
-
- for (;;)
- {
- // Create an iterator.
- MAP_ITERATOR iterator = this->handler_map_.begin ();
-
- // If we reach the end of the map, break the loop.
- if (iterator == this->handler_map_.end ())
- break;
-
- // Get the first handle.
- ACE_HANDLE handle = (*iterator).ext_id_;
-
- // Clean it up.
- AST *ast = 0;
- int r = this->cleanup_AST (handle, ast);
-
- // Close the svc_handler.
- if (r != -1)
- {
- ACE_ASSERT (ast != 0);
- ast->svc_handler ()->close (0);
-
- // Zap the ast.
- this->decr_ast_refcount (ast);
- }
-
-
- }
- }
-
- return 0;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::fini (void)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::fini");
-
- // Make sure to call close here since our destructor might not be
- // called if we're being dynamically linked via the svc.conf.
- this->handler_map_.close ();
-
- // Make sure we call our handle_close(), not a subclass's!
- return ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::handle_close ();
-}
-
-// Hook called by the explicit dynamic linking facility.
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::init (int, ACE_TCHAR *[])
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::init");
- return -1;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::suspend (void)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::suspend");
- return -1;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::resume (void)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::resume");
- return -1;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::info (ACE_TCHAR **strp, size_t length) const
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::info");
- ACE_TCHAR buf[BUFSIZ];
-
- ACE_OS::sprintf (buf,
- ACE_LIB_TEXT ("%s\t %s"),
- ACE_LIB_TEXT ("ACE_Connector"),
- ACE_LIB_TEXT ("# connector factory\n"));
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strsncpy (*strp, buf, length);
- return ACE_static_cast (int, ACE_OS::strlen (buf));
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1>
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::~ACE_Connector (void)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::~ACE_Connector");
- // We will call our handle_close(), not a subclass's, due to the way
- // that C++ destructors work.
- this->handle_close ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> long
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::incr_ast_refcount (
- ACE_Svc_Tuple<SVC_HANDLER> *ast)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::incr_ast_refcount");
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
- ace_mon,
- this->mutex_,
- -1));
-
- return ast->incr_refcount ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> long
-ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::decr_ast_refcount (
- ACE_Svc_Tuple<SVC_HANDLER> *ast)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::decr_ast_refcount");
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
- ace_mon,
- this->mutex_,
- -1));
-
- return ast->decr_refcount ();
-}
-
-/***********************************************************/
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::open (ACE_Reactor *r, int flags)
-{
- ACE_TRACE ("ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::open");
- return this->open (r, 0, 0, 0, flags);
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::open
- (ACE_Reactor *r,
- ACE_Creation_Strategy<SVC_HANDLER> *cre_s,
- ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2> *conn_s,
- ACE_Concurrency_Strategy<SVC_HANDLER> *con_s,
- int flags)
-{
- ACE_TRACE ("ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::open");
-
- this->reactor (r);
-
- // @@ Not implemented yet.
- // this->flags_ = flags;
- ACE_UNUSED_ARG (flags);
-
- // Initialize the creation strategy.
-
- // First we decide if we need to clean up.
- if (this->creation_strategy_ != 0 &&
- this->delete_creation_strategy_ != 0 &&
- cre_s != 0)
- {
- delete this->creation_strategy_;
- this->creation_strategy_ = 0;
- this->delete_creation_strategy_ = 0;
- }
-
- if (cre_s != 0)
- this->creation_strategy_ = cre_s;
- else if (this->creation_strategy_ == 0)
- {
- ACE_NEW_RETURN (this->creation_strategy_,
- CREATION_STRATEGY,
- -1);
- this->delete_creation_strategy_ = 1;
- }
-
-
- // Initialize the accept strategy.
-
- if (this->connect_strategy_ != 0 &&
- this->delete_connect_strategy_ != 0 &&
- conn_s != 0)
- {
- delete this->connect_strategy_;
- this->connect_strategy_ = 0;
- this->delete_connect_strategy_ = 0;
- }
-
- if (conn_s != 0)
- this->connect_strategy_ = conn_s;
- else if (this->connect_strategy_ == 0)
- {
- ACE_NEW_RETURN (this->connect_strategy_,
- CONNECT_STRATEGY,
- -1);
- this->delete_connect_strategy_ = 1;
- }
-
- // Initialize the concurrency strategy.
-
- if (this->concurrency_strategy_ != 0 &&
- this->delete_concurrency_strategy_ != 0 &&
- con_s != 0)
- {
- delete this->concurrency_strategy_;
- this->concurrency_strategy_ = 0;
- this->delete_concurrency_strategy_ = 0;
- }
-
- if (con_s != 0)
- this->concurrency_strategy_ = con_s;
- else if (this->concurrency_strategy_ == 0)
- {
- ACE_NEW_RETURN (this->concurrency_strategy_,
- CONCURRENCY_STRATEGY,
- -1);
- this->delete_concurrency_strategy_ = 1;
- }
-
- return 0;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1>
-ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::ACE_Strategy_Connector
- (ACE_Reactor *reactor,
- ACE_Creation_Strategy<SVC_HANDLER> *cre_s,
- ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2> *conn_s,
- ACE_Concurrency_Strategy<SVC_HANDLER> *con_s,
- int flags)
- : creation_strategy_ (0),
- delete_creation_strategy_ (0),
- connect_strategy_ (0),
- delete_connect_strategy_ (0),
- concurrency_strategy_ (0),
- delete_concurrency_strategy_ (0)
-{
- ACE_TRACE ("ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::ACE_Strategy_Connector");
-
- if (this->open (reactor, cre_s, conn_s, con_s, flags) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_Strategy_Connector::ACE_Strategy_Connector")));
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1>
-ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::~ACE_Strategy_Connector (void)
-{
- ACE_TRACE ("ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::~ACE_Strategy_Connector");
-
- // Close down
- this->close ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::close (void)
-{
- if (this->delete_creation_strategy_)
- delete this->creation_strategy_;
- this->delete_creation_strategy_ = 0;
- this->creation_strategy_ = 0;
-
- if (this->delete_connect_strategy_)
- delete this->connect_strategy_;
- this->delete_connect_strategy_ = 0;
- this->connect_strategy_ = 0;
-
- if (this->delete_concurrency_strategy_)
- delete this->concurrency_strategy_;
- this->delete_concurrency_strategy_ = 0;
- this->concurrency_strategy_ = 0;
-
- return SUPER::close ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::make_svc_handler (SVC_HANDLER *&sh)
-{
- return this->creation_strategy_->make_svc_handler (sh);
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_svc_handler
- (SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms)
-{
- return this->connect_strategy_->connect_svc_handler (sh,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms);
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_svc_handler
- (SVC_HANDLER *&sh,
- SVC_HANDLER *&sh_copy,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms)
-{
- return this->connect_strategy_->connect_svc_handler (sh,
- sh_copy,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms);
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::activate_svc_handler (SVC_HANDLER *svc_handler)
-{
- return this->concurrency_strategy_->activate_svc_handler (svc_handler, this);
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> ACE_Creation_Strategy<SVC_HANDLER> *
-ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::creation_strategy (void) const
-{
- return this->creation_strategy_;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2> *
-ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_strategy (void) const
-{
- return this->connect_strategy_;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> ACE_Concurrency_Strategy<SVC_HANDLER> *
-ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::concurrency_strategy (void) const
-{
- return this->concurrency_strategy_;
-}
-
-#endif /* ACE_CONNECTOR_C */
diff --git a/ace/Connector.h b/ace/Connector.h
deleted file mode 100644
index 8fd528e383a..00000000000
--- a/ace/Connector.h
+++ /dev/null
@@ -1,583 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Connector.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_CONNECTOR_H
-#define ACE_CONNECTOR_H
-
-#include "ace/pre.h"
-
-#include "ace/Service_Object.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Map_Manager.h"
-#include "ace/Strategies_T.h"
-#include "ace/Synch_Options.h"
-
-
-/**
- * @class ACE_Svc_Tuple
- *
- * @brief Holds the ACE_Svc_Handler and its argument and
- * <ACE_Timer_Handle> until an asynchronous connection completes.
- *
- * This is a no-brainer...
- */
-template <class SVC_HANDLER>
-class ACE_Svc_Tuple
-{
-public:
-
- // = Initialization methods.
- ACE_Svc_Tuple (SVC_HANDLER *,
- ACE_HANDLE,
- const void * = 0,
- long timer_id = -1);
-
- /// Get SVC_HANDLER.
- SVC_HANDLER *svc_handler (void);
-
- // = Get/set handle.
- /// Get handle.
- ACE_HANDLE handle (void);
-
- /// Set handle.
- void handle (ACE_HANDLE);
-
- // = Get/set argument.
- /// Get argument.
- const void *arg (void);
-
- /// Set argument.
- void arg (const void *);
-
- // = Set/get timer cancellation handle.
- /// Get cancellation id.
- long cancellation_id (void);
-
- /// Set cancellation id.
- void cancellation_id (long timer_id);
-
- /// Increment and decrement refcount within the context of the lock
- /// on the ACE_Connector
- long incr_refcount (void);
-
- long decr_refcount (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Prevent direct deletion
- ~ACE_Svc_Tuple (void);
-
-private:
- /// Associated SVC_HANDLER.
- SVC_HANDLER *svc_handler_;
-
- /// IPC <HANDLE> that we are trying to connect.
- ACE_HANDLE handle_;
-
- /// Associated argument.
- const void *arg_;
-
- /// Associated cancellation id.
- long cancellation_id_;
-
- /// Reference count manipulated within the context of the connector
- /// lock.
- /// @@ TODO: Things will change after 5.3 goes out of the way.
- long refcount_;
-};
-
-/**
- * @class ACE_Connector
- *
- * @brief Generic factory for actively connecting clients and creating
- * service handlers (SVC_HANDLERs).
- *
- * Implements the strategy for actively establishing connections
- * with clients. An ACE_Connector is parameterized by concrete
- * types that conform to the interfaces of PEER_CONNECTOR and
- * SVC_HANDLER. The PEER_CONNECTOR is instantiated with a
- * transport mechanism that passively establishes connections.
- * The SVC_HANDLER is instantiated with a concrete type that
- * performs the application-specific service. An ACE_Connector
- * inherits from ACE_Service_Object, which in turn inherits from
- * ACE_Event_Handler. This enables the ACE_Reactor to dispatch
- * the ACE_Connector's handle_output method when connections
- * complete asynchronously. The handle_output method performs
- * the connector's active connection establishment and service
- * activation strategy.
- */
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1>
-class ACE_Connector : public ACE_Service_Object
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_TYPENAME SVC_HANDLER::addr_type addr_type;
- typedef ACE_PEER_CONNECTOR connector_type;
- typedef SVC_HANDLER handler_type;
- typedef ACE_TYPENAME SVC_HANDLER::stream_type stream_type;
-
-
- // typedef ACE_TYPENAME ACE_PEER_CONNECTOR_ADDR PEER_ADDR;
-#if defined (ACE_HAS_TYPENAME_KEYWORD)
- typedef ACE_PEER_CONNECTOR_ADDR ACE_PEER_ADDR_TYPEDEF;
-#endif /* ACE_HAS_TYPENAME_KEYWORD */
-
- typedef ACE_TYPENAME _ACE_PEER_CONNECTOR::PEER_ADDR
- ACE_TYPENAME_ACE_PEER_CONNECTOR_PEER_ADDR;
-
- /**
- * Initialize a connector. @a flags indicates how <SVC_HANDLER>'s
- * should be initialized prior to being activated. Right now, the
- * only flag that is processed is <ACE_NONBLOCK>, which enabled
- * non-blocking I/O on the <SVC_HANDLER> when it is opened.
- */
- ACE_Connector (ACE_Reactor *r = ACE_Reactor::instance (),
- int flags = 0);
-
- /**
- * Initialize a connector. @a flags indicates how <SVC_HANDLER>'s
- * should be initialized prior to being activated. Right now, the
- * only flag that is processed is <ACE_NONBLOCK>, which enabled
- * non-blocking I/O on the <SVC_HANDLER> when it is opened.
- */
- virtual int open (ACE_Reactor *r = ACE_Reactor::instance (),
- int flags = 0);
-
- /// Shutdown a connector and release resources.
- virtual ~ACE_Connector (void);
-
- // = Connection establishment methods.
-
- /**
- * Initiate connection of <svc_handler> to peer at <remote_addr>
- * using <synch_options>. If the caller wants to designate the
- * selected <local_addr> they can (and can also insist that the
- * <local_addr> be reused by passing a value <reuse_addr> ==
- * 1). <flags> and <perms> can be used to pass any flags that are
- * needed to perform specific operations such as opening a file
- * within connect with certain permissions. If the connection fails
- * the <close> hook on the <svc_handler> will be called
- * automatically to prevent resource leaks.
- */
- virtual int connect (SVC_HANDLER *&svc_handler,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- const ACE_Synch_Options &synch_options = ACE_Synch_Options::defaults,
- const ACE_PEER_CONNECTOR_ADDR &local_addr
- = (ACE_TYPENAME_ACE_PEER_CONNECTOR_PEER_ADDR &) ACE_PEER_CONNECTOR_ADDR_ANY,
- int reuse_addr = 0,
- int flags = O_RDWR,
- int perms = 0);
-
- /**
- * This is a variation on the previous <connect> method. On cached
- * connectors the <svc_handler_hint> variable can be used as a hint
- * for future lookups. Since this variable is modified in the
- * context of the internal cache its use is thread-safe. But the
- * actual svc_handler for the current connection is returned in the
- * second parameter <svc_handler>. If the connection fails the
- * <close> hook on the <svc_handler> will be called automatically to
- * prevent resource leaks.
- */
- virtual int connect (SVC_HANDLER *&svc_handler_hint,
- SVC_HANDLER *&svc_handler,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- const ACE_Synch_Options &synch_options = ACE_Synch_Options::defaults,
- const ACE_PEER_CONNECTOR_ADDR &local_addr
- = (ACE_TYPENAME_ACE_PEER_CONNECTOR_PEER_ADDR &) ACE_PEER_CONNECTOR_ADDR_ANY,
- int reuse_addr = 0,
- int flags = O_RDWR,
- int perms = 0);
-
- /**
- * Initiate connection of <n> <svc_handlers> to peers at
- * <remote_addrs> using <synch_options>. Returns -1 if failure
- * occurs and 0 otherwise. If <failed_svc_handlers> is non-NULL, a
- * 1 is placed in the corresponding index of <failed_svc_handler>
- * for each <svc_handlers[i]> that failed to connect, else a 0 is
- * placed in that index.
- */
- virtual int connect_n (size_t n,
- SVC_HANDLER *svc_handlers[],
- ACE_PEER_CONNECTOR_ADDR remote_addrs[],
- ACE_TCHAR *failed_svc_handlers = 0,
- const ACE_Synch_Options &synch_options =
- ACE_Synch_Options::defaults);
-
- /**
- * Cancel a <svc_handler> that was started asynchronously. Note that
- * this is the only case when the Connector does not actively close
- * the <svc_handler>. It is left up to the caller of <cancel> to
- * decide the fate of the <svc_handler>.
- */
- virtual int cancel (SVC_HANDLER *svc_handler);
-
- /// Close down the Connector
- virtual int close (void);
-
- /// Return the underlying PEER_CONNECTOR object.
- virtual ACE_PEER_CONNECTOR &connector (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Helpful typedefs.
-
- typedef ACE_Svc_Tuple<SVC_HANDLER>
- AST;
-
- typedef ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<SVC_HANDLER> *, ACE_SYNCH_RW_MUTEX>
- MAP_MANAGER;
- typedef ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<SVC_HANDLER> *, ACE_SYNCH_RW_MUTEX>
- MAP_ITERATOR;
- typedef ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<SVC_HANDLER> *>
- MAP_ENTRY;
-
- // = The following two methods define the Connector's strategies for
- // creating, connecting, and activating SVC_HANDLER's, respectively.
-
- /**
- * Bridge method for creating a SVC_HANDLER. The default is to
- * create a new SVC_HANDLER only if <sh> == 0, else <sh> is
- * unchanged. However, subclasses can override this policy to
- * perform SVC_HANDLER creation in any way that they like (such as
- * creating subclass instances of SVC_HANDLER, using a singleton,
- * dynamically linking the handler, etc.). Returns -1 if failure,
- * else 0.
- */
- virtual int make_svc_handler (SVC_HANDLER *&sh);
-
- /**
- * Bridge method for connecting the <svc_handler> to the
- * <remote_addr>. The default behavior delegates to the
- * <PEER_CONNECTOR::connect>.
- */
- virtual int connect_svc_handler (SVC_HANDLER *&svc_handler,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms);
- virtual int connect_svc_handler (SVC_HANDLER *&svc_handler,
- SVC_HANDLER *&sh_copy,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms);
-
- /**
- * Bridge method for activating a <svc_handler> with the appropriate
- * concurrency strategy. The default behavior of this method is to
- * activate the SVC_HANDLER by calling its <open> method (which
- * allows the SVC_HANDLER to define its own concurrency strategy).
- * However, subclasses can override this strategy to do more
- * sophisticated concurrency activations (such as creating the
- * SVC_HANDLER as an "active object" via multi-threading or
- * multi-processing).
- */
- virtual int activate_svc_handler (SVC_HANDLER *svc_handler);
-
- /// Called by ACE_Reactor when asynchronous connections fail.
- virtual int handle_input (ACE_HANDLE);
-
- /// Called by ACE_Reactor when asynchronous connections succeed.
- virtual int handle_output (ACE_HANDLE);
-
- virtual int resume_handler (void);
-
- /// Called by ACE_Reactor when asynchronous connections complete (on
- /// some platforms only).
- virtual int handle_exception (ACE_HANDLE fd = ACE_INVALID_HANDLE);
-
- // = Dynamic linking hooks.
- /// Default version does no work and returns -1. Must be overloaded
- /// by application developer to do anything meaningful.
- virtual int init (int argc, ACE_TCHAR *argv[]);
-
- /// Calls <handle_close> to shutdown the Connector gracefully.
- virtual int fini (void);
-
- /// Default version returns address info in <buf>.
- virtual int info (ACE_TCHAR **, size_t) const;
-
- // = Demultiplexing hooks.
- /**
- * Terminate the Client ACE_Connector by iterating over any
- * unconnected ACE_Svc_Handler's and removing them from the
- * ACE_Reactor.
- */
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
-
- /// This method is called if a connection times out before
- /// completing.
- virtual int handle_timeout (const ACE_Time_Value &tv,
- const void *arg);
-
- // = Service management hooks.
- /// Default version does no work and returns -1. Must be overloaded
- /// by application developer to do anything meaningful.
- virtual int suspend (void);
-
- /// Default version does no work and returns -1. Must be overloaded
- /// by application developer to do anything meaningful.
- virtual int resume (void);
-
- /// Creates and inserts an ACE_Svc_Tuple into the <handler_map_>.
- /// so that we can continue accepting this connection asynchronously.
- int create_AST (SVC_HANDLER *,
- const ACE_Synch_Options &);
-
- /// Cleanup the <handler_map_> and returns the appropriate
- /// ACE_Svc_Tuple (which is 0 if there is no associated tuple).
- int cleanup_AST (ACE_HANDLE handle, AST *&ast);
-
- /// Implementation the <connect> methods.
- virtual int connect_i (SVC_HANDLER *&svc_handler,
- SVC_HANDLER **sh_copy,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- const ACE_Synch_Options &synch_options,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms);
-
-
- /// Helper method for manipulating the refcount on AST. It holds the
- /// lock before manipulating the refcount on AST.
- /// @@ TODO: Needs to be out after 5.3
- long incr_ast_refcount (AST *ast);
- long decr_ast_refcount (AST *ast);
-
- /// Lookup table that maps an I/O handle to a SVC_HANDLER *.
- MAP_MANAGER handler_map_;
-private:
- /// This is the concrete connector factory (it keeps no state so the
- /// <ACE_Connector> is reentrant).
- ACE_PEER_CONNECTOR connector_;
-
- /// Keeps track of whether we are in the process of closing (required
- /// to avoid circular calls to <handle_close>).
- char closing_;
-
- /**
- * Flags that indicate how <SVC_HANDLER>'s should be initialized
- * prior to being activated. Right now, the only flag that is
- * processed is <ACE_NONBLOCK>, which enabled non-blocking I/O on
- * the <SVC_HANDLER> when it is opened.
- */
- int flags_;
-
- /// Lock to synchronize access to the internal state of the
- /// connector.
- /// @@TODO: This needs to go after 1.3
- ACE_SYNCH_MUTEX mutex_;
-};
-
-/**
- * @class ACE_Strategy_Connector
- *
- * @brief Abstract factory for creating a service handler
- * (SVC_HANDLER), connecting the SVC_HANDLER, and activating the
- * SVC_HANDLER.
- *
- * Implements a flexible and extensible set of strategies for
- * actively establishing connections with clients. There are
- * three main strategies: (1) creating a SVC_HANDLER, (2)
- * actively initiating a new connection from the client,
- * and (3) activating the SVC_HANDLER with a
- * particular concurrency mechanism after the connection is established.
- */
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1>
-class ACE_Strategy_Connector
- : public ACE_Connector <SVC_HANDLER, ACE_PEER_CONNECTOR_2>
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_Creation_Strategy<SVC_HANDLER>
- creation_strategy_type;
- typedef ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>
- connect_strategy_type;
- typedef ACE_Concurrency_Strategy<SVC_HANDLER>
- concurrency_strategy_type;
- typedef ACE_Connector <SVC_HANDLER, ACE_PEER_CONNECTOR_2>
- base_type;
-
- // = Define some useful (old style) traits.
- typedef ACE_Creation_Strategy<SVC_HANDLER>
- CREATION_STRATEGY;
- typedef ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>
- CONNECT_STRATEGY;
- typedef ACE_Concurrency_Strategy<SVC_HANDLER>
- CONCURRENCY_STRATEGY;
- typedef ACE_Connector <SVC_HANDLER, ACE_PEER_CONNECTOR_2>
- SUPER;
-
- /**
- * Initialize a connector. <flags> indicates how <SVC_HANDLER>'s
- * should be initialized prior to being activated. Right now, the
- * only flag that is processed is <ACE_NONBLOCK>, which enabled
- * non-blocking I/O on the <SVC_HANDLER> when it is opened.
- */
- ACE_Strategy_Connector (ACE_Reactor *r = ACE_Reactor::instance (),
- ACE_Creation_Strategy<SVC_HANDLER> * = 0,
- ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2> * = 0,
- ACE_Concurrency_Strategy<SVC_HANDLER> * = 0,
- int flags = 0);
-
- /**
- * Initialize a connector. <flags> indicates how <SVC_HANDLER>'s
- * should be initialized prior to being activated. Right now, the
- * only flag that is processed is <ACE_NONBLOCK>, which enabled
- * non-blocking I/O on the <SVC_HANDLER> when it is opened.
- * Default strategies would be created and used.
- */
- virtual int open (ACE_Reactor *r,
- int flags);
-
- /**
- * Initialize a connector. <flags> indicates how <SVC_HANDLER>'s
- * should be initialized prior to being activated. Right now, the
- * only flag that is processed is <ACE_NONBLOCK>, which enabled
- * non-blocking I/O on the <SVC_HANDLER> when it is opened.
- */
- virtual int open (ACE_Reactor *r = ACE_Reactor::instance (),
- ACE_Creation_Strategy<SVC_HANDLER> * = 0,
- ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2> * = 0,
- ACE_Concurrency_Strategy<SVC_HANDLER> * = 0,
- int flags = 0);
-
- /// Shutdown a connector and release resources.
- virtual ~ACE_Strategy_Connector (void);
-
- /// Close down the Connector
- virtual int close (void);
-
- // = Strategies accessors
- virtual ACE_Creation_Strategy<SVC_HANDLER> *creation_strategy (void) const;
- virtual ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2> *connect_strategy (void) const;
- virtual ACE_Concurrency_Strategy<SVC_HANDLER> *concurrency_strategy (void) const;
-
-protected:
- // = The following three methods define the <Connector>'s strategies
- // for creating, connecting, and activating <SVC_HANDLER>'s,
- // respectively.
-
- /**
- * Bridge method for creating a <SVC_HANDLER>. The strategy for
- * creating a <SVC_HANDLER> are configured into the Connector via
- * it's <creation_strategy_>. The default is to create a new
- * <SVC_HANDLER> only if <sh> == 0, else <sh> is unchanged.
- * However, subclasses can override this policy to perform
- * <SVC_HANDLER> creation in any way that they like (such as
- * creating subclass instances of <SVC_HANDLER>, using a singleton,
- * dynamically linking the handler, etc.). Returns -1 if failure,
- * else 0.
- */
- virtual int make_svc_handler (SVC_HANDLER *&sh);
-
- /**
- * Bridge method for connecting the new connection into the
- * <SVC_HANDLER>. The default behavior delegates to the
- * <PEER_CONNECTOR::connect> in the <Connect_Strategy>.
- */
- virtual int connect_svc_handler (SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms);
-
- /**
- * Bridge method for connecting the new connection into the
- * <SVC_HANDLER>. The default behavior delegates to the
- * <PEER_CONNECTOR::connect> in the <Connect_Strategy>.
- * <sh_copy> is used to obtain a copy of the <sh> pointer, but that
- * can be kept in the stack; the motivation is a bit too long to
- * include here, but basically we want to modify <sh> safely, using
- * the internal locks in the Connect_Strategy, while saving a TSS
- * copy in <sh_copy>, usually located in the stack.
- */
- virtual int connect_svc_handler (SVC_HANDLER *&sh,
- SVC_HANDLER *&sh_copy,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms);
-
- /**
- * Bridge method for activating a <SVC_HANDLER> with the appropriate
- * concurrency strategy. The default behavior of this method is to
- * activate the <SVC_HANDLER> by calling its <open> method (which
- * allows the <SVC_HANDLER> to define its own concurrency strategy).
- * However, subclasses can override this strategy to do more
- * sophisticated concurrency activations (such as creating the
- * <SVC_HANDLER> as an "active object" via multi-threading or
- * multi-processing).
- */
- virtual int activate_svc_handler (SVC_HANDLER *svc_handler);
-
- // = Strategy objects.
-
- /// Creation strategy for an <Connector>.
- CREATION_STRATEGY *creation_strategy_;
-
- /// 1 if <Connector> created the creation strategy and thus should
- /// delete it, else 0.
- int delete_creation_strategy_;
-
- /// Connect strategy for a <Connector>.
- CONNECT_STRATEGY *connect_strategy_;
-
- /// 1 if <Connector> created the connect strategy and thus should
- /// delete it, else 0.
- int delete_connect_strategy_;
-
- /// Concurrency strategy for an <Connector>.
- CONCURRENCY_STRATEGY *concurrency_strategy_;
-
- /// 1 if <Connector> created the concurrency strategy and thus should
- /// delete it, else 0.
- int delete_concurrency_strategy_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Connector.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Connector.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_CONNECTOR_H */
diff --git a/ace/Containers.cpp b/ace/Containers.cpp
deleted file mode 100644
index 2d6815e3c35..00000000000
--- a/ace/Containers.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// $Id$
-
-#include "ace/Containers.h"
-
-ACE_RCSID (ace,
- Containers,
- "$Id$")
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Containers.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Double_Linked_List<ACE_DLList_Node>;
-template class ACE_Double_Linked_List_Iterator_Base<ACE_DLList_Node>;
-template class ACE_Double_Linked_List_Iterator<ACE_DLList_Node>;
-template class ACE_Double_Linked_List_Reverse_Iterator<ACE_DLList_Node>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Double_Linked_List<ACE_DLList_Node>
-#pragma instantiate ACE_Double_Linked_List_Iterator_Base<ACE_DLList_Node>
-#pragma instantiate ACE_Double_Linked_List_Iterator<ACE_DLList_Node>
-#pragma instantiate ACE_Double_Linked_List_Reverse_Iterator<ACE_DLList_Node>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/ace/Containers.h b/ace/Containers.h
deleted file mode 100644
index 512df2cc55d..00000000000
--- a/ace/Containers.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Containers.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_CONTAINERS_H
-#define ACE_CONTAINERS_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-template <class T>
-class ACE_Double_Linked_List;
-
-template <class T>
-class ACE_Double_Linked_List_Iterator_Base;
-template <class T>
-class ACE_Double_Linked_List_Iterator;
-template <class T>
-class ACE_Double_Linked_List_Reverse_Iterator;
-
-/**
- * @class ACE_DLList_Node
- *
- * @brief Base implementation of element in a DL list. Needed for
- * ACE_Double_Linked_List.
- */
-class ACE_Export ACE_DLList_Node
-{
-public:
- friend class ACE_Double_Linked_List<ACE_DLList_Node>;
- friend class ACE_Double_Linked_List_Iterator_Base<ACE_DLList_Node>;
- friend class ACE_Double_Linked_List_Iterator<ACE_DLList_Node>;
- friend class ACE_Double_Linked_List_Reverse_Iterator<ACE_DLList_Node>;
-
- ACE_DLList_Node (void *&i,
- ACE_DLList_Node *n = 0,
- ACE_DLList_Node *p = 0);
- ~ACE_DLList_Node (void);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- void *item_;
-
- ACE_DLList_Node *next_;
- ACE_DLList_Node *prev_;
-
-protected:
- ACE_DLList_Node (void);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Containers.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Containers_T.h"
-
-#include "ace/post.h"
-
-#endif /* ACE_CONTAINERS_H */
diff --git a/ace/Containers.i b/ace/Containers.i
deleted file mode 100644
index 1312f2a47a6..00000000000
--- a/ace/Containers.i
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_DLList_Node::ACE_DLList_Node (void)
- : item_ (0),
- next_ (0),
- prev_ (0)
-{
-}
-
-ACE_INLINE
-ACE_DLList_Node::ACE_DLList_Node (void *&i,
- ACE_DLList_Node *n,
- ACE_DLList_Node *p)
- : item_ (i),
- next_ (n),
- prev_ (p)
-{
-}
-
-ACE_INLINE
-ACE_DLList_Node::~ACE_DLList_Node (void)
-{
-}
diff --git a/ace/Containers_T.cpp b/ace/Containers_T.cpp
deleted file mode 100644
index 94f79ea66bc..00000000000
--- a/ace/Containers_T.cpp
+++ /dev/null
@@ -1,1878 +0,0 @@
-// $Id$
-
-#ifndef ACE_CONTAINERS_T_C
-#define ACE_CONTAINERS_T_C
-
-#include "ace/Log_Msg.h"
-#include "ace/Malloc_Base.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Containers.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Containers_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Containers_T, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Bounded_Stack)
-
-template <class T> void
-ACE_Bounded_Stack<T>::dump (void) const
-{
- ACE_TRACE ("ACE_Bounded_Stack<T>::dump");
-}
-
-template<class T>
-ACE_Bounded_Stack<T>::ACE_Bounded_Stack (size_t size)
- : size_ (size),
- top_ (0)
-{
- ACE_NEW (this->stack_,
- T[size]);
- ACE_TRACE ("ACE_Bounded_Stack<T>::ACE_Bounded_Stack");
-}
-
-template<class T>
-ACE_Bounded_Stack<T>::ACE_Bounded_Stack (const ACE_Bounded_Stack<T> &s)
- : size_ (s.size_),
- top_ (s.top_)
-{
- ACE_NEW (this->stack_,
- T[s.size_]);
-
- ACE_TRACE ("ACE_Bounded_Stack<T>::ACE_Bounded_Stack");
-
- for (size_t i = 0; i < this->top_; i++)
- this->stack_[i] = s.stack_[i];
-}
-
-template<class T> void
-ACE_Bounded_Stack<T>::operator= (const ACE_Bounded_Stack<T> &s)
-{
- ACE_TRACE ("ACE_Bounded_Stack<T>::operator=");
-
- if (&s != this)
- {
- if (this->size_ < s.size_)
- {
- delete [] this->stack_;
- ACE_NEW (this->stack_,
- T[s.size_]);
- this->size_ = s.size_;
- }
- this->top_ = s.top_;
-
- for (size_t i = 0; i < this->top_; i++)
- this->stack_[i] = s.stack_[i];
- }
-}
-
-template<class T>
-ACE_Bounded_Stack<T>::~ACE_Bounded_Stack (void)
-{
- ACE_TRACE ("ACE_Bounded_Stack<T>::~ACE_Bounded_Stack");
- delete [] this->stack_;
-}
-
-// ----------------------------------------
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Fixed_Stack)
-
-template <class T, size_t ACE_SIZE> void
-ACE_Fixed_Stack<T, ACE_SIZE>::dump (void) const
-{
- ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::dump");
-}
-
-template<class T, size_t ACE_SIZE>
-ACE_Fixed_Stack<T, ACE_SIZE>::ACE_Fixed_Stack (void)
- : size_ (ACE_SIZE),
- top_ (0)
-{
- ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::ACE_Fixed_Stack");
-}
-
-template<class T, size_t ACE_SIZE>
-ACE_Fixed_Stack<T, ACE_SIZE>::ACE_Fixed_Stack (const ACE_Fixed_Stack<T, ACE_SIZE> &s)
- : size_ (s.size_),
- top_ (s.top_)
-{
- ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::ACE_Fixed_Stack");
- for (size_t i = 0; i < this->top_; i++)
- this->stack_[i] = s.stack_[i];
-}
-
-template<class T, size_t ACE_SIZE> void
-ACE_Fixed_Stack<T, ACE_SIZE>::operator= (const ACE_Fixed_Stack<T, ACE_SIZE> &s)
-{
- ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::operator=");
-
- if (&s != this)
- {
- this->top_ = s.top_;
-
- for (size_t i = 0; i < this->top_; i++)
- this->stack_[i] = s.stack_[i];
- }
-}
-
-template<class T, size_t ACE_SIZE>
-ACE_Fixed_Stack<T, ACE_SIZE>::~ACE_Fixed_Stack (void)
-{
- ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::~ACE_Fixed_Stack");
-}
-
-//----------------------------------------
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Unbounded_Stack)
-
-template <class T> void
-ACE_Unbounded_Stack<T>::dump (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Stack<T>::dump");
-}
-
-template<class T>
-ACE_Unbounded_Stack<T>::ACE_Unbounded_Stack (ACE_Allocator *alloc)
- : head_ (0),
- cur_size_ (0),
- allocator_ (alloc)
-{
- // ACE_TRACE ("ACE_Unbounded_Stack<T>::ACE_Unbounded_Stack");
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- ACE_NEW_MALLOC (this->head_,
- (ACE_Node<T> *) this->allocator_->malloc (sizeof (ACE_Node<T>)),
- ACE_Node<T>);
- this->head_->next_ = this->head_;
-}
-
-template<class T> void
-ACE_Unbounded_Stack<T>::delete_all_nodes (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Stack<T>::delete_all_nodes");
-
- while (this->is_empty () == 0)
- {
- ACE_Node<T> *temp = this->head_->next_;
- this->head_->next_ = temp->next_;
- ACE_DES_FREE_TEMPLATE (temp, this->allocator_->free,
- ACE_Node, <T>);
- }
-
- this->cur_size_ = 0;
-
- ACE_ASSERT (this->head_ == this->head_->next_
- && this->is_empty ());
-}
-
-template<class T> void
-ACE_Unbounded_Stack<T>::copy_all_nodes (const ACE_Unbounded_Stack<T> &s)
-{
- // ACE_TRACE ("ACE_Unbounded_Stack<T>::copy_all_nodes");
-
- ACE_ASSERT (this->head_ == this->head_->next_);
-
- ACE_Node<T> *temp = this->head_;
-
- for (ACE_Node<T> *s_temp = s.head_->next_;
- s_temp != s.head_;
- s_temp = s_temp->next_)
- {
- ACE_Node<T> *nptr = temp->next_;
- ACE_NEW_MALLOC (temp->next_,
- (ACE_Node<T> *) this->allocator_->malloc (sizeof (ACE_Node<T>)),
- ACE_Node<T> (s_temp->item_, nptr));
- temp = temp->next_;
- }
- this->cur_size_ = s.cur_size_;
-}
-
-template<class T>
-ACE_Unbounded_Stack<T>::ACE_Unbounded_Stack (const ACE_Unbounded_Stack<T> &s)
- : head_ (0),
- cur_size_ (0),
- allocator_ (s.allocator_)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- ACE_NEW_MALLOC (this->head_,
- (ACE_Node<T> *) this->allocator_->malloc (sizeof (ACE_Node<T>)),
- ACE_Node<T>);
- this->head_->next_ = this->head_;
-
- // ACE_TRACE ("ACE_Unbounded_Stack<T>::ACE_Unbounded_Stack");
- this->copy_all_nodes (s);
-}
-
-template<class T> void
-ACE_Unbounded_Stack<T>::operator= (const ACE_Unbounded_Stack<T> &s)
-{
- // ACE_TRACE ("ACE_Unbounded_Stack<T>::operator=");
-
- if (this != &s)
- {
- this->delete_all_nodes ();
- this->copy_all_nodes (s);
- }
-}
-
-template<class T>
-ACE_Unbounded_Stack<T>::~ACE_Unbounded_Stack (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Stack<T>::~ACE_Unbounded_Stack");
-
- this->delete_all_nodes ();
- ACE_DES_FREE_TEMPLATE (head_,
- this->allocator_->free,
- ACE_Node,
- <T>);
-}
-
-template<class T> int
-ACE_Unbounded_Stack<T>::push (const T &new_item)
-{
- // ACE_TRACE ("ACE_Unbounded_Stack<T>::push");
-
- ACE_Node<T> *temp;
-
- ACE_NEW_MALLOC_RETURN (temp,
- ACE_static_cast(ACE_Node<T> *,
- this->allocator_->malloc (sizeof (ACE_Node<T>))),
- ACE_Node<T> (new_item, this->head_->next_),
- -1);
- this->head_->next_ = temp;
- this->cur_size_++;
- return 0;
-}
-
-template<class T> int
-ACE_Unbounded_Stack<T>::pop (T &item)
-{
- // ACE_TRACE ("ACE_Unbounded_Stack<T>::pop");
-
- if (this->is_empty ())
- return -1;
- else
- {
- ACE_Node<T> *temp = this->head_->next_;
- item = temp->item_;
- this->head_->next_ = temp->next_;
-
- ACE_DES_FREE_TEMPLATE (temp,
- this->allocator_->free,
- ACE_Node,
- <T>);
- this->cur_size_--;
- return 0;
- }
-}
-
-template <class T> int
-ACE_Unbounded_Stack<T>::find (const T &item) const
-{
- // ACE_TRACE ("ACE_Unbounded_Stack<T>::find");
- // Set <item> into the dummy node.
- this->head_->item_ = item;
-
- ACE_Node<T> *temp = this->head_->next_;
-
- // Keep looping until we find the item.
- while (!(temp->item_ == item))
- temp = temp->next_;
-
- // If we found the dummy node then it's not really there, otherwise,
- // it is there.
- return temp == this->head_ ? -1 : 0;
-}
-
-template <class T> int
-ACE_Unbounded_Stack<T>::insert (const T &item)
-{
- // ACE_TRACE ("ACE_Unbounded_Stack<T>::insert");
-
- if (this->find (item) == 0)
- return 1;
- else
- return this->push (item);
-}
-
-template <class T> int
-ACE_Unbounded_Stack<T>::remove (const T &item)
-{
- // ACE_TRACE ("ACE_Unbounded_Stack<T>::remove");
-
- // Insert the item to be founded into the dummy node.
- this->head_->item_ = item;
-
- ACE_Node<T> *curr = this->head_;
-
- while (!(curr->next_->item_ == item))
- curr = curr->next_;
-
- if (curr->next_ == this->head_)
- return -1; // Item was not found.
- else
- {
- ACE_Node<T> *temp = curr->next_;
- // Skip over the node that we're deleting.
- curr->next_ = temp->next_;
- this->cur_size_--;
- ACE_DES_FREE_TEMPLATE (temp,
- this->allocator_->free,
- ACE_Node,
- <T>);
- return 0;
- }
-}
-
-//--------------------------------------------------
-ACE_ALLOC_HOOK_DEFINE(ACE_Double_Linked_List_Iterator_Base)
-
-template <class T>
-ACE_Double_Linked_List_Iterator_Base<T>::ACE_Double_Linked_List_Iterator_Base (const ACE_Double_Linked_List<T> &dll)
- : current_ (0), dllist_ (&dll)
-{
- // Do nothing
-}
-
-template <class T>
-ACE_Double_Linked_List_Iterator_Base<T>::ACE_Double_Linked_List_Iterator_Base (const ACE_Double_Linked_List_Iterator_Base<T> &iter)
- : current_ (iter.current_),
- dllist_ (iter.dllist_)
-{
- // Do nothing
-}
-
-
-template <class T> T *
-ACE_Double_Linked_List_Iterator_Base<T>::next (void) const
-{
- return this->not_done ();
-}
-
-template <class T> int
-ACE_Double_Linked_List_Iterator_Base<T>::next (T *&ptr) const
-{
- ptr = this->not_done ();
- return ptr ? 1 : 0;
-}
-
-
-template <class T> int
-ACE_Double_Linked_List_Iterator_Base<T>::done (void) const
-{
- return this->not_done () ? 0 : 1;
-}
-
-template <class T> T &
-ACE_Double_Linked_List_Iterator_Base<T>::operator* (void) const
-{
- return *(this->not_done ());
-}
-
-// @@ Is this a valid retasking? Make sure to check with Purify and
-// whatnot that we're not leaking memory or doing any other screwing things.
-template <class T> void
-ACE_Double_Linked_List_Iterator_Base<T>::reset (ACE_Double_Linked_List<T> &dll)
-{
- current_ = 0;
- dllist_ = &dll;
-}
-
- template <class T> int
-ACE_Double_Linked_List_Iterator_Base<T>::go_head (void)
-{
- this->current_ = ACE_static_cast (T*, dllist_->head_->next_);
- return this->current_ ? 1 : 0;
-}
-
-template <class T> int
-ACE_Double_Linked_List_Iterator_Base<T>::go_tail (void)
-{
- this->current_ = ACE_static_cast (T*, dllist_->head_->prev_);
- return this->current_ ? 1 : 0;
-}
-
-template <class T> T *
-ACE_Double_Linked_List_Iterator_Base<T>::not_done (void) const
-{
- if (this->current_ != this->dllist_->head_)
- return this->current_;
- else
- return 0;
-}
-
-template <class T> T *
-ACE_Double_Linked_List_Iterator_Base<T>::do_advance (void)
-{
- if (this->not_done ())
- {
- this->current_ = ACE_static_cast (T*, this->current_->next_);
- return this->not_done ();
- }
- else
- return 0;
-}
-
-template <class T> T *
-ACE_Double_Linked_List_Iterator_Base<T>::do_retreat (void)
-{
- if (this->not_done ())
- {
- this->current_ = ACE_static_cast (T*, this->current_->prev_);
- return this->not_done ();
- }
- else
- return 0;
-}
-
-template <class T> void
-ACE_Double_Linked_List_Iterator_Base<T>::dump_i (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("current_ = %x"), this->current_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-//--------------------------------------------------
-ACE_ALLOC_HOOK_DEFINE(ACE_Double_Linked_List_Iterator)
-
-template <class T>
-ACE_Double_Linked_List_Iterator<T>::ACE_Double_Linked_List_Iterator (const ACE_Double_Linked_List<T> &dll)
- : ACE_Double_Linked_List_Iterator_Base <T> (dll)
-{
- this->current_ = ACE_static_cast (T*, dll.head_->next_);
- // Advance current_ out of the null area and onto the first item in
- // the list
-}
-
-template <class T> void
-ACE_Double_Linked_List_Iterator<T>::reset (ACE_Double_Linked_List<T> &dll)
-{
- this->ACE_Double_Linked_List_Iterator_Base <T>::reset (dll);
- this->current_ = ACE_static_cast (T*, dll.head_->next_);
- // Advance current_ out of the null area and onto the first item in
- // the list
-}
-
-template <class T> int
-ACE_Double_Linked_List_Iterator<T>::first (void)
-{
- return this->go_head ();
-}
-
-template <class T> int
-ACE_Double_Linked_List_Iterator<T>::advance (void)
-{
- return this->do_advance () ? 1 : 0;
-}
-
-template <class T> T*
-ACE_Double_Linked_List_Iterator<T>::advance_and_remove (int dont_remove)
-{
- T* item = 0;
- if (dont_remove)
- this->do_advance ();
- else
- {
- item = this->next ();
- this->do_advance ();
- // It seems dangerous to remove nodes in an iterator, but so it goes...
- ACE_Double_Linked_List<T> *dllist = ACE_const_cast (ACE_Double_Linked_List<T> *, this->dllist_);
- dllist->remove (item);
- }
- return item;
-}
-
-template <class T> void
-ACE_Double_Linked_List_Iterator<T>::dump (void) const
-{
- this->dump_i ();
-}
-
-// Prefix advance.
-
-template <class T>
-ACE_Double_Linked_List_Iterator<T> &
-ACE_Double_Linked_List_Iterator<T>::operator++ (void)
-{
- this->do_advance ();
- return *this;
-}
-
-
-// Postfix advance.
-
-template <class T>
-ACE_Double_Linked_List_Iterator<T>
-ACE_Double_Linked_List_Iterator<T>::operator++ (int)
-{
- ACE_Double_Linked_List_Iterator<T> retv (*this);
- this->do_advance ();
- return retv;
-}
-
-
-// Prefix reverse.
-
-template <class T>
-ACE_Double_Linked_List_Iterator<T> &
-ACE_Double_Linked_List_Iterator<T>::operator-- (void)
-{
- this->do_retreat ();
- return *this;
-}
-
-
-// Postfix reverse.
-
-template <class T>
-ACE_Double_Linked_List_Iterator<T>
-ACE_Double_Linked_List_Iterator<T>::operator-- (int)
-{
- ACE_Double_Linked_List_Iterator<T> retv (*this);
- this->do_retreat ();
- return retv;
-}
-
-
-//--------------------------------------------------
-ACE_ALLOC_HOOK_DEFINE(ACE_Double_Linked_List_Reverse_Iterator)
-
- template <class T>
-ACE_Double_Linked_List_Reverse_Iterator<T>::ACE_Double_Linked_List_Reverse_Iterator (ACE_Double_Linked_List<T> &dll)
- : ACE_Double_Linked_List_Iterator_Base <T> (dll)
-{
- this->current_ = ACE_static_cast (T*, dll.head_->prev_);
- // Advance current_ out of the null area and onto the last item in
- // the list
-}
-
-template <class T> void
-ACE_Double_Linked_List_Reverse_Iterator<T>::reset (ACE_Double_Linked_List<T> &dll)
-{
- this->ACE_Double_Linked_List_Iterator_Base <T>::reset (dll);
- this->current_ = ACE_static_cast (T*, dll.head_->prev_);
- // Advance current_ out of the null area and onto the last item in
- // the list
-}
-
-template <class T> int
-ACE_Double_Linked_List_Reverse_Iterator<T>::first (void)
-{
- return this->go_tail ();
-}
-
-template <class T> int
-ACE_Double_Linked_List_Reverse_Iterator<T>::advance (void)
-{
- return this->do_retreat () ? 1 : 0;
-}
-
-template <class T> T*
-ACE_Double_Linked_List_Reverse_Iterator<T>::advance_and_remove (int dont_remove)
-{
- T* item = 0;
- if (dont_remove)
- this->do_retreat ();
- else
- {
- item = this->next ();
- this->do_retreat ();
- // It seems dangerous to remove nodes in an iterator, but so it goes...
- ACE_Double_Linked_List<T> *dllist = ACE_const_cast (ACE_Double_Linked_List<T> *, this->dllist_);
- dllist->remove (item);
- }
- return item;
-}
-
-template <class T> void
-ACE_Double_Linked_List_Reverse_Iterator<T>::dump (void) const
-{
- this->dump_i ();
-}
-
-// Prefix advance.
-
-template <class T>
-ACE_Double_Linked_List_Reverse_Iterator<T> &
-ACE_Double_Linked_List_Reverse_Iterator<T>::operator++ (void)
-{
- this->do_retreat ();
- return *this;
-}
-
-
-// Postfix advance.
-
-template <class T>
-ACE_Double_Linked_List_Reverse_Iterator<T>
-ACE_Double_Linked_List_Reverse_Iterator<T>::operator++ (int)
-{
- ACE_Double_Linked_List_Reverse_Iterator<T> retv (*this);
- this->do_retreat ();
- return retv;
-}
-
-
-// Prefix reverse.
-
-template <class T>
-ACE_Double_Linked_List_Reverse_Iterator<T> &
-ACE_Double_Linked_List_Reverse_Iterator<T>::operator-- (void)
-{
- this->do_advance ();
- return *this;
-}
-
-
-// Postfix reverse.
-
-template <class T>
-ACE_Double_Linked_List_Reverse_Iterator<T>
-ACE_Double_Linked_List_Reverse_Iterator<T>::operator-- (int)
-{
- ACE_Double_Linked_List_Reverse_Iterator<T> retv (*this);
- this->do_advance ();
- return retv;
-}
-
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Double_Linked_List)
-
- template <class T>
-ACE_Double_Linked_List<T>:: ACE_Double_Linked_List (ACE_Allocator *alloc)
- : size_ (0), allocator_ (alloc)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- ACE_NEW_MALLOC (this->head_,
- (T *) this->allocator_->malloc (sizeof (T)),
- T);
- this->init_head ();
-}
-
-template <class T>
-ACE_Double_Linked_List<T>::ACE_Double_Linked_List (const ACE_Double_Linked_List<T> &cx)
- : allocator_ (cx.allocator_)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- ACE_NEW_MALLOC (this->head_,
- (T *) this->allocator_->malloc (sizeof (T)),
- T);
- this->init_head ();
- this->copy_nodes (cx);
- this->size_ = cx.size_;
-}
-
-template <class T> void
-ACE_Double_Linked_List<T>::operator= (const ACE_Double_Linked_List<T> &cx)
-{
- if (this != &cx)
- {
- this->delete_nodes ();
- this->copy_nodes (cx);
- }
-}
-
-template <class T>
-ACE_Double_Linked_List<T>::~ACE_Double_Linked_List (void)
-{
- this->delete_nodes ();
-
- ACE_DES_FREE (head_,
- this->allocator_->free,
- T);
-
- this->head_ = 0;
-}
-
-template <class T> int
-ACE_Double_Linked_List<T>::is_empty (void) const
-{
- return this->size () ? 0 : 1;
-}
-
-template <class T> int
-ACE_Double_Linked_List<T>::is_full (void) const
-{
- return 0; // We have no bound.
-}
-
-template <class T> T *
-ACE_Double_Linked_List<T>::insert_tail (T *new_item)
-{
- // Insert it before <head_>, i.e., at tail.
- this->insert_element (new_item, 1);
- return new_item;
-}
-
-template <class T> T *
-ACE_Double_Linked_List<T>::insert_head (T *new_item)
-{
- this->insert_element (new_item); // Insert it after <head_>, i.e., at head.
- return new_item;
-}
-
-template <class T> T *
-ACE_Double_Linked_List<T>::delete_head (void)
-{
- T *temp;
-
- if (this->is_empty ())
- return 0;
-
- temp = ACE_static_cast (T *,
- this->head_->next_);
- // Detach it from the list.
- this->remove_element (temp);
- return temp;
-}
-
-template <class T> T *
-ACE_Double_Linked_List<T>::delete_tail (void)
-{
- T *temp;
-
- if (this->is_empty ())
- return 0;
-
- temp = ACE_static_cast (T *,
- this->head_->prev_);
- // Detach it from the list.
- this->remove_element (temp);
- return temp;
-}
-
-template <class T> void
-ACE_Double_Linked_List<T>::reset (void)
-{
- this->delete_nodes ();
-}
-
-template <class T> int
-ACE_Double_Linked_List<T>::get (T *&item, size_t slot)
-{
- ACE_Double_Linked_List_Iterator<T> iter (*this);
-
- for (size_t i = 0;
- i < slot && !iter.done ();
- i++)
- iter.advance ();
-
- item = iter.next ();
- return item ? 0 : -1;
-}
-
-template <class T> size_t
-ACE_Double_Linked_List<T>::size (void) const
-{
- return this->size_;
-}
-
-template <class T> void
-ACE_Double_Linked_List<T>::dump (void) const
-{
- // Dump the state of an object.
-}
-
-#if 0
-template <class T> T *
-ACE_Double_Linked_List<T>::find (const T &item)
-{
- for (ACE_Double_Linked_List_Iterator<T> iter (*this);
- !iter.done ();
- iter.advance ())
- {
- T *temp = iter.next ();
-
- if (*temp == item)
- return temp;
- }
-
- return 0;
-}
-
-template <class T> int
-ACE_Double_Linked_List<T>::remove (const T &item)
-{
- T *temp = this->find (item);
-
- if (temp != 0)
- return this->remove (temp);
- else
- return -1;
-}
-#endif /* 0 */
-
-template <class T> int
-ACE_Double_Linked_List<T>::remove (T *n)
-{
- return this->remove_element (n);
-}
-
-template <class T> void
-ACE_Double_Linked_List<T>::delete_nodes (void)
-{
- while (! this->is_empty ())
- {
- T * temp = ACE_static_cast (T*, this->head_->next_);
- this->remove_element (temp);
- ACE_DES_FREE (temp,
- this->allocator_->free,
- T);
- }
-}
-
-template <class T> void
-ACE_Double_Linked_List<T>::copy_nodes (const ACE_Double_Linked_List<T> &c)
-{
- for (ACE_Double_Linked_List_Iterator<T> iter (c);
- !iter.done ();
- iter.advance ())
- {
- T* temp = 0;
- ACE_NEW_MALLOC (temp,
- (T *)this->allocator_->malloc (sizeof (T)),
- T (*iter.next ()));
- this->insert_tail (temp);
- }
-}
-
-template <class T> void
-ACE_Double_Linked_List<T>::init_head (void)
-{
- this->head_->next_ = this->head_;
- this->head_->prev_ = this->head_;
-}
-
-template <class T> int
-ACE_Double_Linked_List<T>::insert_element (T *new_item,
- int before,
- T *old_item)
-{
- if (old_item == 0)
- old_item = this->head_;
-
- if (before)
- old_item = ACE_static_cast (T *,
- old_item->prev_);
-
- new_item->next_ = old_item->next_;
- new_item->next_->prev_ = new_item;
- new_item->prev_ = old_item;
- old_item->next_ = new_item;
- this->size_++;
- return 0; // Well, what will cause errors here?
-}
-
-template <class T> int
-ACE_Double_Linked_List<T>::remove_element (T *item)
-{
- // Notice that you have to ensure that item is an element of this
- // list. We can't do much checking here.
-
- if (item == this->head_ || item->next_ == 0
- || item->prev_ == 0 || this->size () == 0) // Can't remove head
- return -1;
-
- item->prev_->next_ = item->next_;
- item->next_->prev_ = item->prev_;
- item->next_ = item->prev_ = 0; // reset pointers to prevent double removal.
- this->size_--;
- return 0;
-}
-
-//--------------------------------------------------
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Fixed_Set)
-
- template <class T, size_t ACE_SIZE> size_t
-ACE_Fixed_Set<T, ACE_SIZE>::size (void) const
-{
- return this->cur_size_;
-}
-
-template <class T> size_t
-ACE_Bounded_Set<T>::size (void) const
-{
- ACE_TRACE ("ACE_Bounded_Set<T>::size");
- return this->cur_size_;
-}
-
-template <class T, size_t ACE_SIZE> void
-ACE_Fixed_Set<T, ACE_SIZE>::dump (void) const
-{
- ACE_TRACE ("ACE_Fixed_Set<T, ACE_SIZE>::dump");
-}
-
-template <class T, size_t ACE_SIZE>
-ACE_Fixed_Set<T, ACE_SIZE>::~ACE_Fixed_Set (void)
-{
- ACE_TRACE ("ACE_Fixed_Set<T, ACE_SIZE>::~ACE_Fixed_Set");
- this->cur_size_ = 0;
-}
-
-template <class T, size_t ACE_SIZE>
-ACE_Fixed_Set<T, ACE_SIZE>::ACE_Fixed_Set (const ACE_Fixed_Set<T, ACE_SIZE> &fs)
- : cur_size_ (fs.cur_size_)
-{
- ACE_TRACE ("ACE_Fixed_Set<T>::ACE_Fixed_Set");
-
- for (size_t i = 0; i < this->cur_size_; i++)
- this->search_structure_[i] = fs.search_structure_[i];
-}
-
-template <class T, size_t ACE_SIZE> void
-ACE_Fixed_Set<T, ACE_SIZE>::operator= (const ACE_Fixed_Set<T, ACE_SIZE> &fs)
-{
- ACE_TRACE ("ACE_Fixed_Set<T>::operator=");
-
- if (this != &fs)
- {
- this->cur_size_ = fs.cur_size_;
-
- for (size_t i = 0; i < this->cur_size_; i++)
- this->search_structure_[i] = fs.search_structure_[i];
- }
-}
-
-template <class T, size_t ACE_SIZE>
-ACE_Fixed_Set<T, ACE_SIZE>::ACE_Fixed_Set (void)
- : cur_size_ (0),
- max_size_ (ACE_SIZE)
-{
- ACE_TRACE ("ACE_Fixed_Set<T, ACE_SIZE>::ACE_Fixed_Set");
- for (size_t i = 0; i < this->max_size_; i++)
- this->search_structure_[i].is_free_ = 1;
-}
-
-template <class T, size_t ACE_SIZE> int
-ACE_Fixed_Set<T, ACE_SIZE>::find (const T &item) const
-{
- ACE_TRACE ("ACE_Fixed_Set<T, ACE_SIZE>::find");
-
- for (size_t i = 0; i < this->cur_size_; i++)
- if (this->search_structure_[i].item_ == item
- && this->search_structure_[i].is_free_ == 0)
- return 0;
-
- return -1;
-}
-
-template <class T, size_t ACE_SIZE> int
-ACE_Fixed_Set<T, ACE_SIZE>::insert (const T &item)
-{
- ACE_TRACE ("ACE_Fixed_Set<T, ACE_SIZE>::insert");
- ssize_t first_free = -1; // Keep track of first free slot.
- size_t i;
-
- for (i = 0; i < this->cur_size_; i++)
- // First, make sure we don't allow duplicates.
-
- if (this->search_structure_[i].item_ == item
- && this->search_structure_[i].is_free_ == 0)
- return 1;
- else if (this->search_structure_[i].is_free_
- && first_free == -1)
- first_free = i;
-
- // If we found a free spot let's reuse it.
- if (first_free > -1)
- {
- this->search_structure_[first_free].item_ = item;
- this->search_structure_[first_free].is_free_ = 0;
- return 0;
- }
- // Insert at the end of the active portion.
- else if (i < this->max_size_)
- {
- this->search_structure_[i].item_ = item;
- this->search_structure_[i].is_free_ = 0;
- this->cur_size_++;
- return 0;
- }
- else /* No more room! */
- {
- errno = ENOMEM;
- return -1;
- }
-}
-
-template <class T, size_t ACE_SIZE> int
-ACE_Fixed_Set<T, ACE_SIZE>::remove (const T &item)
-{
- ACE_TRACE ("ACE_Fixed_Set<T, ACE_SIZE>::remove");
-
- for (size_t i = 0; i < this->cur_size_; i++)
- if (this->search_structure_[i].item_ == item)
- {
- // Mark this entry as being free.
- this->search_structure_[i].is_free_ = 1;
-
- // If we just unbound the highest entry, then we need to
- // figure out where the next highest active entry is.
- if (i + 1 == this->cur_size_)
- {
- while (i > 0
- && this->search_structure_[--i].is_free_)
- continue;
-
- if (i == 0
- && this->search_structure_[i].is_free_)
- this->cur_size_ = 0;
- else
- this->cur_size_ = i + 1;
- }
- return 0;
- }
-
- return -1;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Fixed_Set_Iterator)
-
- template <class T, size_t ACE_SIZE> void
-ACE_Fixed_Set_Iterator<T, ACE_SIZE>::dump (void) const
-{
- ACE_TRACE ("ACE_Fixed_Set_Iterator<T, ACE_SIZE>::dump");
-}
-
-template <class T, size_t ACE_SIZE>
-ACE_Fixed_Set_Iterator<T, ACE_SIZE>::ACE_Fixed_Set_Iterator (ACE_Fixed_Set<T, ACE_SIZE> &s)
- : s_ (s),
- next_ (-1)
-{
- ACE_TRACE ("ACE_Fixed_Set_Iterator<T, ACE_SIZE>::ACE_Fixed_Set_Iterator");
- this->advance ();
-}
-
-template <class T, size_t ACE_SIZE> int
-ACE_Fixed_Set_Iterator<T, ACE_SIZE>::advance (void)
-{
- ACE_TRACE ("ACE_Fixed_Set_Iterator<T, ACE_SIZE>::advance");
-
- for (++this->next_;
- ACE_static_cast(size_t, this->next_) < this->s_.cur_size_
- && this->s_.search_structure_[this->next_].is_free_;
- ++this->next_)
- continue;
-
- return ACE_static_cast(size_t, this->next_) < this->s_.cur_size_;
-}
-
-template <class T, size_t ACE_SIZE> int
-ACE_Fixed_Set_Iterator<T, ACE_SIZE>::first (void)
-{
- ACE_TRACE ("ACE_Fixed_Set_Iterator<T, ACE_SIZE>::first");
-
- next_ = -1;
- return this->advance ();
-}
-
-template <class T, size_t ACE_SIZE> int
-ACE_Fixed_Set_Iterator<T, ACE_SIZE>::done (void) const
-{
- ACE_TRACE ("ACE_Fixed_Set_Iterator<T, ACE_SIZE>::done");
-
- return ACE_static_cast (ACE_CAST_CONST size_t, this->next_) >=
- this->s_.cur_size_;
-}
-
-template <class T, size_t ACE_SIZE> int
-ACE_Fixed_Set_Iterator<T, ACE_SIZE>::next (T *&item)
-{
- ACE_TRACE ("ACE_Fixed_Set_Iterator<T, ACE_SIZE>::next");
- if (ACE_static_cast (size_t, this->next_) < this->s_.cur_size_)
- {
- item = &this->s_.search_structure_[this->next_].item_;
- return 1;
- }
- else
- return 0;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Fixed_Set_Const_Iterator)
-
- template <class T, size_t ACE_SIZE> void
-ACE_Fixed_Set_Const_Iterator<T, ACE_SIZE>::dump (void) const
-{
- ACE_TRACE ("ACE_Fixed_Set_Const_Iterator<T, ACE_SIZE>::dump");
-}
-
-template <class T, size_t ACE_SIZE>
-ACE_Fixed_Set_Const_Iterator<T, ACE_SIZE>::ACE_Fixed_Set_Const_Iterator (const ACE_Fixed_Set<T, ACE_SIZE> &s)
- : s_ (s),
- next_ (-1)
-{
- ACE_TRACE ("ACE_Fixed_Set_Const_Iterator<T, ACE_SIZE>::ACE_Fixed_Set_Const_Iterator");
- this->advance ();
-}
-
-template <class T, size_t ACE_SIZE> int
-ACE_Fixed_Set_Const_Iterator<T, ACE_SIZE>::advance (void)
-{
- ACE_TRACE ("ACE_Fixed_Set_Const_Iterator<T, ACE_SIZE>::advance");
-
- for (++this->next_;
- ACE_static_cast(size_t, this->next_) < this->s_.cur_size_
- && this->s_.search_structure_[this->next_].is_free_;
- ++this->next_)
- continue;
-
- return ACE_static_cast(size_t, this->next_) < this->s_.cur_size_;
-}
-
-template <class T, size_t ACE_SIZE> int
-ACE_Fixed_Set_Const_Iterator<T, ACE_SIZE>::first (void)
-{
- ACE_TRACE ("ACE_Fixed_Set_Const_Iterator<T, ACE_SIZE>::first");
-
- next_ = -1;
- return this->advance ();
-}
-
-template <class T, size_t ACE_SIZE> int
-ACE_Fixed_Set_Const_Iterator<T, ACE_SIZE>::done (void) const
-{
- ACE_TRACE ("ACE_Fixed_Set_Const_Iterator<T, ACE_SIZE>::done");
-
- return ACE_static_cast (ACE_CAST_CONST size_t, this->next_) >=
- this->s_.cur_size_;
-}
-
-template <class T, size_t ACE_SIZE> int
-ACE_Fixed_Set_Const_Iterator<T, ACE_SIZE>::next (T *&item)
-{
- ACE_TRACE ("ACE_Fixed_Set_Const_Iterator<T, ACE_SIZE>::next");
- if (ACE_static_cast (size_t, this->next_) < this->s_.cur_size_)
- {
- item = &this->s_.search_structure_[this->next_].item_;
- return 1;
- }
- else
- return 0;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Bounded_Set)
-
- template <class T> void
-ACE_Bounded_Set<T>::dump (void) const
-{
- ACE_TRACE ("ACE_Bounded_Set<T>::dump");
-}
-
-template <class T>
-ACE_Bounded_Set<T>::~ACE_Bounded_Set (void)
-{
- ACE_TRACE ("ACE_Bounded_Set<T>::~ACE_Bounded_Set");
- delete [] this->search_structure_;
-}
-
-template <class T>
-ACE_Bounded_Set<T>::ACE_Bounded_Set (void)
- : cur_size_ (0),
- max_size_ (ACE_static_cast(size_t, ACE_Bounded_Set<T>::DEFAULT_SIZE))
-{
- ACE_TRACE ("ACE_Bounded_Set<T>::ACE_Bounded_Set");
-
- ACE_NEW (this->search_structure_,
- ACE_TYPENAME ACE_Bounded_Set<T>::Search_Structure[this->max_size_]);
-
- for (size_t i = 0; i < this->max_size_; i++)
- this->search_structure_[i].is_free_ = 1;
-}
-
-template <class T>
-ACE_Bounded_Set<T>::ACE_Bounded_Set (const ACE_Bounded_Set<T> &bs)
- : cur_size_ (bs.cur_size_),
- max_size_ (bs.max_size_)
-{
- ACE_TRACE ("ACE_Bounded_Set<T>::ACE_Bounded_Set");
-
- ACE_NEW (this->search_structure_,
- ACE_TYPENAME ACE_Bounded_Set<T>::Search_Structure[this->max_size_]);
-
- for (size_t i = 0; i < this->cur_size_; i++)
- this->search_structure_[i] = bs.search_structure_[i];
-}
-
-template <class T> void
-ACE_Bounded_Set<T>::operator= (const ACE_Bounded_Set<T> &bs)
-{
- ACE_TRACE ("ACE_Bounded_Set<T>::operator=");
-
- if (this != &bs)
- {
- if (this->max_size_ < bs.cur_size_)
- {
- delete [] this->search_structure_;
- ACE_NEW (this->search_structure_,
- ACE_TYPENAME ACE_Bounded_Set<T>::Search_Structure[bs.cur_size_]);
- this->max_size_ = bs.cur_size_;
- }
-
- this->cur_size_ = bs.cur_size_;
-
- for (size_t i = 0; i < this->cur_size_; i++)
- this->search_structure_[i] = bs.search_structure_[i];
- }
-}
-
-template <class T>
-ACE_Bounded_Set<T>::ACE_Bounded_Set (size_t size)
- : cur_size_ (0),
- max_size_ (size)
-{
- ACE_TRACE ("ACE_Bounded_Set<T>::ACE_Bounded_Set");
- ACE_NEW (this->search_structure_,
- ACE_TYPENAME ACE_Bounded_Set<T>::Search_Structure[size]);
-
- for (size_t i = 0; i < this->max_size_; i++)
- this->search_structure_[i].is_free_ = 1;
-}
-
-template <class T> int
-ACE_Bounded_Set<T>::find (const T &item) const
-{
- ACE_TRACE ("ACE_Bounded_Set<T>::find");
-
- for (size_t i = 0; i < this->cur_size_; i++)
- if (this->search_structure_[i].item_ == item
- && this->search_structure_[i].is_free_ == 0)
- return 0;
-
- return -1;
-}
-
-template <class T> int
-ACE_Bounded_Set<T>::insert (const T &item)
-{
- ACE_TRACE ("ACE_Bounded_Set<T>::insert");
- int first_free = -1; // Keep track of first free slot.
- size_t i;
-
- for (i = 0; i < this->cur_size_; i++)
- // First, make sure we don't allow duplicates.
-
- if (this->search_structure_[i].item_ == item
- && this->search_structure_[i].is_free_ == 0)
- return 1;
- else if (this->search_structure_[i].is_free_ && first_free == -1)
- first_free = i;
-
- if (first_free > -1) // If we found a free spot let's reuse it.
- {
- this->search_structure_[first_free].item_ = item;
- this->search_structure_[first_free].is_free_ = 0;
- return 0;
- }
- else if (i < this->max_size_) // Insert at the end of the active portion.
- {
- this->search_structure_[i].item_ = item;
- this->search_structure_[i].is_free_ = 0;
- this->cur_size_++;
- return 0;
- }
- else /* No more room! */
- {
- errno = ENOMEM;
- return -1;
- }
-}
-
-template <class T> int
-ACE_Bounded_Set<T>::remove (const T &item)
-{
- ACE_TRACE ("ACE_Bounded_Set<T>::remove");
- for (size_t i = 0; i < this->cur_size_; i++)
- if (this->search_structure_[i].item_ == item)
- {
- // Mark this entry as being free.
- this->search_structure_[i].is_free_ = 1;
-
- // If we just unbound the highest entry, then we need to
- // figure out where the next highest active entry is.
- if (i + 1 == this->cur_size_)
- {
- while (i > 0 && this->search_structure_[--i].is_free_)
- continue;
-
- if (i == 0 && this->search_structure_[i].is_free_)
- this->cur_size_ = 0;
- else
- this->cur_size_ = i + 1;
- }
- return 0;
- }
-
- return -1;
-}
-
-#if defined (__Lynx__)
-// LynxOS 3.0.0 native g++ compiler raises internal error with this inline.
-template <class T> int
-ACE_Bounded_Set<T>::is_full (void) const
-{
- ACE_TRACE ("ACE_Bounded_Set<T>::is_full");
- return this->cur_size_ == this->max_size_;
-}
-#endif /* __Lynx__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Bounded_Set_Iterator)
-
- template <class T> void
-ACE_Bounded_Set_Iterator<T>::dump (void) const
-{
- ACE_TRACE ("ACE_Bounded_Set_Iterator<T>::dump");
-}
-
-template <class T>
-ACE_Bounded_Set_Iterator<T>::ACE_Bounded_Set_Iterator (ACE_Bounded_Set<T> &s)
- : s_ (s),
- next_ (-1)
-{
- ACE_TRACE ("ACE_Bounded_Set_Iterator<T>::ACE_Bounded_Set_Iterator");
- this->advance ();
-}
-
-template <class T> int
-ACE_Bounded_Set_Iterator<T>::advance (void)
-{
- ACE_TRACE ("ACE_Bounded_Set_Iterator<T>::advance");
-
- for (++this->next_;
- ACE_static_cast(size_t, this->next_) < this->s_.cur_size_
- && this->s_.search_structure_[this->next_].is_free_;
- ++this->next_)
- continue;
-
- return ACE_static_cast(size_t, this->next_) < this->s_.cur_size_;
-}
-
-template <class T> int
-ACE_Bounded_Set_Iterator<T>::first (void)
-{
- ACE_TRACE ("ACE_Bounded_Set_Iterator<T>::first");
-
- next_ = -1;
- return this->advance ();
-}
-
-template <class T> int
-ACE_Bounded_Set_Iterator<T>::done (void) const
-{
- ACE_TRACE ("ACE_Bounded_Set_Iterator<T>::done");
-
- return ACE_static_cast (ACE_CAST_CONST size_t, this->next_) >=
- this->s_.cur_size_;
-}
-
-template <class T> int
-ACE_Bounded_Set_Iterator<T>::next (T *&item)
-{
- ACE_TRACE ("ACE_Bounded_Set_Iterator<T>::next");
- if (ACE_static_cast(size_t, this->next_) < this->s_.cur_size_)
- {
- item = &this->s_.search_structure_[this->next_].item_;
- return 1;
- }
- else
- return 0;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_DNode)
-
- template <class T>
-ACE_DNode<T>::ACE_DNode (const T &i, ACE_DNode<T> *n, ACE_DNode<T> *p)
- : next_ (n), prev_ (p), item_ (i)
-{
-}
-
-# if ! defined (ACE_HAS_BROKEN_NOOP_DTORS)
-template <class T>
-ACE_DNode<T>::~ACE_DNode (void)
-{
-}
-# endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */
-
-// ****************************************************************
-
-template <class T> void
-ACE_Unbounded_Stack_Iterator<T>::dump (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Stack_Iterator<T>::dump");
-}
-
-template <class T>
-ACE_Unbounded_Stack_Iterator<T>::ACE_Unbounded_Stack_Iterator (ACE_Unbounded_Stack<T> &q)
- : current_ (q.head_->next_),
- stack_ (q)
-{
- // ACE_TRACE ("ACE_Unbounded_Stack_Iterator<T>::ACE_Unbounded_Stack_Iterator");
-}
-
-template <class T> int
-ACE_Unbounded_Stack_Iterator<T>::advance (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Stack_Iterator<T>::advance");
- this->current_ = this->current_->next_;
- return this->current_ != this->stack_.head_;
-}
-
-template <class T> int
-ACE_Unbounded_Stack_Iterator<T>::first (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Stack_Iterator<T>::first");
- this->current_ = this->stack_.head_->next_;
- return this->current_ != this->stack_.head_;
-}
-
-template <class T> int
-ACE_Unbounded_Stack_Iterator<T>::done (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Stack_Iterator<T>::done");
-
- return this->current_ == this->stack_.head_;
-}
-
-template <class T> int
-ACE_Unbounded_Stack_Iterator<T>::next (T *&item)
-{
- // ACE_TRACE ("ACE_Unbounded_Stack_Iterator<T>::next");
- if (this->current_ == this->stack_.head_)
- return 0;
- else
- {
- item = &this->current_->item_;
- return 1;
- }
-}
-
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Ordered_MultiSet)
-
-
- template <class T>
-ACE_Ordered_MultiSet<T>::ACE_Ordered_MultiSet (ACE_Allocator *alloc)
- : head_ (0)
- , tail_ (0)
- , cur_size_ (0)
- , allocator_ (alloc)
-{
- // ACE_TRACE ("ACE_Ordered_MultiSet<T>::ACE_Ordered_MultiSet");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-}
-
-template <class T>
-ACE_Ordered_MultiSet<T>::ACE_Ordered_MultiSet (const ACE_Ordered_MultiSet<T> &us)
- : head_ (0)
- , tail_ (0)
- , cur_size_ (0)
- , allocator_ (us.allocator_)
-{
- ACE_TRACE ("ACE_Ordered_MultiSet<T>::ACE_Ordered_MultiSet");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- this->copy_nodes (us);
-}
-
-template <class T>
-ACE_Ordered_MultiSet<T>::~ACE_Ordered_MultiSet (void)
-{
- // ACE_TRACE ("ACE_Ordered_MultiSet<T>::~ACE_Ordered_MultiSet");
-
- this->delete_nodes ();
-}
-
-
-template <class T> void
-ACE_Ordered_MultiSet<T>::operator= (const ACE_Ordered_MultiSet<T> &us)
-{
- ACE_TRACE ("ACE_Ordered_MultiSet<T>::operator=");
-
- if (this != &us)
- {
- this->delete_nodes ();
- this->copy_nodes (us);
- }
-}
-
-
-template <class T> int
-ACE_Ordered_MultiSet<T>::insert (const T &item)
-{
- // ACE_TRACE ("ACE_Ordered_MultiSet<T>::insert");
-
- return this->insert_from (item, this->head_, 0);
-}
-
-template <class T> int
-ACE_Ordered_MultiSet<T>::insert (const T &new_item,
- ITERATOR &iter)
-{
- // ACE_TRACE ("ACE_Ordered_MultiSet<T>::insert using iterator");
-
- return this->insert_from (new_item, iter.current_, &iter.current_);
-}
-
-template <class T> int
-ACE_Ordered_MultiSet<T>::remove (const T &item)
-{
- // ACE_TRACE ("ACE_Ordered_MultiSet<T>::remove");
-
- ACE_DNode<T> *node = 0;
-
- int result = locate (item, 0, node);
-
- // if we found the node, remove from list and free it
- if (node && (result == 0))
- {
- if (node->prev_)
- node->prev_->next_ = node->next_;
- else
- head_ = node->next_;
-
- if (node->next_)
- node->next_->prev_ = node->prev_;
- else
- tail_ = node->prev_;
-
- this->cur_size_--;
-
- ACE_DES_FREE_TEMPLATE (node,
- this->allocator_->free,
- ACE_DNode,
- <T>);
- return 0;
- }
-
- return -1;
-}
-
-template <class T> int
-ACE_Ordered_MultiSet<T>::find (const T &item,
- ITERATOR &iter) const
-{
- // search an occurance of item, using iterator's current position as a hint
- ACE_DNode<T> *node = iter.current_;
- int result = locate (item, node, node);
-
- // if we found the node, update the iterator and indicate success
- if (node && (result == 0))
- {
- iter.current_ = node;
- return 0;
- }
-
- return -1;
-}
-
-
-
-template <class T> void
-ACE_Ordered_MultiSet<T>::reset (void)
-{
- ACE_TRACE ("reset");
-
- this->delete_nodes ();
-}
-
-template <class T> void
-ACE_Ordered_MultiSet<T>::dump (void) const
-{
- // ACE_TRACE ("ACE_Ordered_MultiSet<T>::dump");
- //
- // ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nhead_ = %u"), this->head_));
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nhead_->next_ = %u"), this->head_->next_));
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncur_size_ = %d\n"), this->cur_size_));
- //
- // T *item = 0;
- // size_t count = 1;
- //
- // for (ACE_Ordered_MultiSet_Iterator<T> iter (*(ACE_Ordered_MultiSet<T> *) this);
- // iter.next (item) != 0;
- // iter.advance ())
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("count = %d\n"), count++));
- //
- // ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class T> int
-ACE_Ordered_MultiSet<T>::insert_from (const T &item, ACE_DNode<T> *position,
- ACE_DNode<T> **new_position)
-{
- // ACE_TRACE ("ACE_Ordered_MultiSet<T>::insert_from");
-
- // create a new node
- ACE_DNode<T> *temp;
- ACE_NEW_MALLOC_RETURN (temp,
- ACE_static_cast(ACE_DNode<T>*,
- this->allocator_->malloc (sizeof (ACE_DNode<T>))),
- ACE_DNode<T> (item),
- -1);
- // obtain approximate location of the node
- int result = locate (item, position, position);
-
- // if there are nodes in the multiset
- if (position)
- {
- switch (result)
- {
- // insert after the approximate position
- case -1:
-
- // if there is a following node
- if (position->next_)
- {
- // link up with the following node
- position->next_->prev_ = temp;
- temp->next_ = position->next_;
- }
- else
- // appending to the end of the set
- tail_ = temp;
-
- // link up with the preceeding node
- temp->prev_ = position;
- position->next_ = temp;
-
- break;
-
- // insert before the position
- case 0:
- case 1:
-
- // if there is a preceeding node
- if (position->prev_)
- {
- // link up with the preceeding node
- position->prev_->next_ = temp;
- temp->prev_ = position->prev_;
- }
- else
- // prepending to the start of the set
- head_ = temp;
-
- // link up with the preceeding node
- temp->next_ = position;
- position->prev_ = temp;
-
- break;
-
- default:
- return -1;
- }
- }
- else
- {
- // point the head and tail to the new node.
- this->head_ = temp;
- this->tail_ = temp;
- }
-
- this->cur_size_++;
- if (new_position)
- *new_position = temp;
-
- return 0;
-}
-
-template <class T> int
-ACE_Ordered_MultiSet<T>::locate (const T &item, ACE_DNode<T> *start_position,
- ACE_DNode<T> *&new_position) const
-{
- if (! start_position)
- start_position = this->head_;
-
- // If starting before the item, move forward until at or just before
- // item.
- while (start_position && start_position->item_ < item &&
- start_position->next_)
- start_position = start_position->next_;
-
- // If starting after the item, move back until at or just after item
- while (start_position && item < start_position->item_ &&
- start_position->prev_)
- start_position = start_position->prev_;
-
- // Save the (approximate) location in the passed pointer.
- new_position = start_position;
-
- // Show the location is after (1), before (-1) , or at (0) the item
- if (!new_position)
- return 1;
- else if (item < new_position->item_)
- return 1;
- else if (new_position->item_ < item)
- return -1;
- else
- return 0;
-}
-
-// Looks for first occurance of <item> in the ordered set, using the
-// passed starting position as a hint: if there is such an instance,
-// it updates the new_position pointer to point to one such node and
-// returns 0; if there is no such node, then if there is a node before
-// where the item would have been, it updates the new_position pointer
-// to point to this node and returns -1; if there is no such node,
-// then if there is a node after where the item would have been, it
-// updates the new_position pointer to point to this node (or 0 if
-// there is no such node) and returns 1;
-
-template <class T> void
-ACE_Ordered_MultiSet<T>::copy_nodes (const ACE_Ordered_MultiSet<T> &us)
-{
- ACE_DNode<T> *insertion_point = this->head_;
-
- for (ACE_DNode<T> *curr = us.head_;
- curr != 0;
- curr = curr->next_)
- this->insert_from (curr->item_, insertion_point, &insertion_point);
-}
-
-template <class T> void
-ACE_Ordered_MultiSet<T>::delete_nodes (void)
-{
- // iterate through list, deleting nodes
- for (ACE_DNode<T> *curr = this->head_;
- curr != 0;
- )
- {
- ACE_DNode<T> *temp = curr;
- curr = curr->next_;
- ACE_DES_FREE_TEMPLATE (temp,
- this->allocator_->free,
- ACE_DNode,
- <T>);
- }
-
- this->head_ = 0;
- this->tail_ = 0;
- this->cur_size_ = 0;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Ordered_MultiSet_Iterator)
-
-template <class T>
-ACE_Ordered_MultiSet_Iterator<T>::ACE_Ordered_MultiSet_Iterator (ACE_Ordered_MultiSet<T> &s)
- : current_ (s.head_),
- set_ (s)
-{
- // ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::ACE_Ordered_MultiSet_Iterator");
-}
-
-template <class T> int
-ACE_Ordered_MultiSet_Iterator<T>::next (T *&item) const
-{
- // ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::next");
- if (this->current_)
- {
- item = &this->current_->item_;
- return 1;
- }
-
- return 0;
-}
-
-template <class T> T&
-ACE_Ordered_MultiSet_Iterator<T>::operator* (void)
-{
- //ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::operator*");
- T *retv = 0;
-
- int result = this->next (retv);
- ACE_ASSERT (result != 0);
- ACE_UNUSED_ARG (result);
-
- return *retv;
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_DLList_Node)
-
-template <class T> T *
-ACE_DLList<T>::insert_tail (T *new_item)
-{
- ACE_DLList_Node *temp1, *temp2;
- ACE_NEW_MALLOC_RETURN (temp1,
- ACE_static_cast(ACE_DLList_Node *,
- this->allocator_->malloc (sizeof (ACE_DLList_Node))),
- ACE_DLList_Node ((void *&)new_item),
- 0);
- temp2 = ACE_DLList_Base::insert_tail (temp1);
- return (T *) (temp2 ? temp2->item_ : 0);
-}
-
-template <class T> T *
-ACE_DLList<T>::insert_head (T *new_item)
-{
- ACE_DLList_Node *temp1;
- ACE_NEW_MALLOC_RETURN (temp1,
- (ACE_DLList_Node *) this->allocator_->malloc (sizeof (ACE_DLList_Node)),
- ACE_DLList_Node ((void *&)new_item), 0);
- ACE_DLList_Node *temp2 =
- ACE_DLList_Base::insert_head (temp1);
- return (T *) (temp2 ? temp2->item_ : 0);
-}
-
-template <class T> T *
-ACE_DLList<T>::delete_head (void)
-{
- ACE_DLList_Node *temp1 = ACE_DLList_Base::delete_head ();
- T *temp2 = (T *) (temp1 ? temp1->item_ : 0);
- ACE_DES_FREE (temp1,
- this->allocator_->free,
- ACE_DLList_Node);
-
- return temp2;
-}
-
-template <class T> T *
-ACE_DLList<T>::delete_tail (void)
-{
- ACE_DLList_Node *temp1 = ACE_DLList_Base::delete_tail ();
- T *temp2 = (T *) (temp1 ? temp1->item_ : 0);
- ACE_DES_FREE (temp1,
- this->allocator_->free,
- ACE_DLList_Node);
- return temp2;
-}
-
-// ****************************************************************
-
-// Compare this array with <s> for equality.
-
-template <class T> int
-ACE_Array<T>::operator== (const ACE_Array<T> &s) const
-{
- if (this == &s)
- return 1;
- else if (this->size () != s.size ())
- return 0;
-
- for (size_t slot = 0; slot < s.size (); slot++)
- if ((*this)[slot] != s[slot])
- return 0;
-
- return 1;
-}
-
-// ****************************************************************
-
-
-#endif /* ACE_CONTAINERS_T_C */
diff --git a/ace/Containers_T.h b/ace/Containers_T.h
deleted file mode 100644
index 1cd1e016d92..00000000000
--- a/ace/Containers_T.h
+++ /dev/null
@@ -1,1995 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Containers_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_CONTAINERS_T_H
-#define ACE_CONTAINERS_T_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Need by ACE_DLList_Node.
-#include "ace/Containers.h"
-
-// Shared with "ace/Unbounded_Set.h"
-#include "ace/Node.h"
-
-// Backwards compatibility, please include "ace/Array_Base.h" directly.
-#include "ace/Array_Base.h"
-
-// Backwards compatibility, please include "ace/Unbounded_Set.h" directly.
-#include "ace/Unbounded_Set.h"
-
-// Backwards compatibility, please include "ace/Unbounded_Queue.h" directly.
-#include "ace/Unbounded_Queue.h"
-
-class ACE_Allocator;
-
-
-/**
- * @class ACE_Bounded_Stack
- *
- * @brief Implement a generic LIFO abstract data type.
- *
- * This implementation of a Stack uses a bounded array
- * that is allocated dynamically. The Stack interface
- * provides the standard constant time push, pop, and top
- * operations.
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure
- * Dynamic array
- * - Duplicates allowed?
- * Yes
- * - Random access allowed?
- * No
- * - Search speed
- * N/A
- * - Insert/replace speed
- * N/A
- * - Iterator still valid after change to container?
- * N/A
- * - Frees memory for removed elements?
- * No
- * - Items inserted by
- * Value
- * - Requirements for contained type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- *
- */
-template <class T>
-class ACE_Bounded_Stack
-{
-public:
- // = Initialization, assignment, and termination methods.
-
- /// Initialize a new empty stack with the provided size..
- /**
- * Initialize and allocate space for a new Bounded_Stack with the provided
- * size.
- */
- ACE_Bounded_Stack (size_t size);
-
- /// Initialize the stack to be a copy of the stack provided.
- /**
- * Initialize the stack to be an exact copy of the Bounded_Stack provided
- * as a parameter.
- */
- ACE_Bounded_Stack (const ACE_Bounded_Stack<T> &s);
-
- /// Assignment operator
- /**
- * Perform a deep copy operation using the Bounded_Stack parameter. If the
- * capacity of the lhs isn't sufficient for the rhs, then the underlying data
- * structure will be reallocated to accomadate the larger number of elements.
- */
- void operator= (const ACE_Bounded_Stack<T> &s);
-
- /// Perform actions needed when stack goes out of scope.
- /**
- * Deallocate the memory used by the Bounded_Stack.
- */
- ~ACE_Bounded_Stack (void);
-
- // = Classic Stack operations.
-
- ///Add an element to the top of the stack.
- /**
- * Place a new item on top of the stack. Returns -1 if the stack
- * is already full, 0 if the stack is not already full, and -1 if
- * failure occurs.
- */
- int push (const T &new_item);
-
- ///Remove an item from the top of stack.
- /**
- * Remove and return the top stack item. Returns -1 if the stack is
- * already empty, 0 if the stack is not already empty, and -1 if
- * failure occurs.
- */
- int pop (T &item);
-
- ///Examine the contents of the top of stack.
- /**
- * Return top stack item without removing it. Returns -1 if the
- * stack is already empty, 0 if the stack is not already empty, and
- * -1 if failure occurs.
- */
- int top (T &item) const;
-
- // = Check boundary conditions.
-
- /// Returns 1 if the container is empty, otherwise returns 0.
- /**
- * Performs constant time check to determine if the stack is empty.
- */
- int is_empty (void) const;
-
- /// Returns 1 if the container is full, otherwise returns 0.
- /**
- * Performs constant time check to determine if the stack is at capacity.
- */
- int is_full (void) const;
-
- /// The number of items in the stack.
- /**
- * Return the number of items currently in the stack.
- */
- size_t size (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Size of the dynamically allocated data.
- size_t size_;
-
- /// Keeps track of the current top of stack.
- size_t top_;
-
- /// Holds the stack's contents.
- T *stack_;
-};
-
-//----------------------------------------
-
-
-/**
- * @class ACE_Fixed_Stack
- *
- * @brief Implement a generic LIFO abstract data type.
- *
- * This implementation of a Stack uses a fixed array
- * with the size fixed at instantiation time.
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure
- * Fixed array
- * - Duplicates allowed?
- * Yes
- * - Random access allowed?
- * No
- * - Search speed
- * N/A
- * - Insert/replace speed
- * N/A
- * - Iterator still valid after change to container?
- * N/A
- * - Frees memory for removed elements?
- * No
- * - Items inserted by
- * Value
- * - Requirements for contained type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- *
- */
-template <class T, size_t ACE_SIZE>
-class ACE_Fixed_Stack
-{
-public:
- // = Initialization, assignment, and termination methods.
- /// Initialize a new stack so that it is empty.
- /**
- * Initialize an empty stack.
- */
- ACE_Fixed_Stack (void);
-
- /// The copy constructor (performs initialization).
- /**
- * Initialize the stack and copy the provided stack into the current stack.
- */
- ACE_Fixed_Stack (const ACE_Fixed_Stack<T, ACE_SIZE> &s);
-
- /// Assignment operator (performs assignment).
- /**
- * Perform a deep copy of the provided stack.
- */
- void operator= (const ACE_Fixed_Stack<T, ACE_SIZE> &s);
-
- /// Perform actions needed when stack goes out of scope.
- /**
- * Destroy the stack.
- */
- ~ACE_Fixed_Stack (void);
-
- // = Classic Stack operations.
-
- ///Constant time placement of element on top of stack.
- /**
- * Place a new item on top of the stack. Returns -1 if the stack
- * is already full, 0 if the stack is not already full, and -1 if
- * failure occurs.
- */
- int push (const T &new_item);
-
- ///Constant time removal of top of stack.
- /**
- * Remove and return the top stack item. Returns -1 if the stack is
- * already empty, 0 if the stack is not already empty, and -1 if
- * failure occurs.
- */
- int pop (T &item);
-
- ///Constant time examination of top of stack.
- /**
- * Return top stack item without removing it. Returns -1 if the
- * stack is already empty, 0 if the stack is not already empty, and
- * -1 if failure occurs.
- */
- int top (T &item) const;
-
- // = Check boundary conditions.
-
- /// Returns 1 if the container is empty, otherwise returns 0.
- /**
- * Performs constant time check to see if stack is empty.
- */
- int is_empty (void) const;
-
- /// Returns 1 if the container is full, otherwise returns 0.
- /**
- * Performs constant time check to see if stack is full.
- */
- int is_full (void) const;
-
- /// The number of items in the stack.
- /**
- * Constant time access to the current size of the stack.
- */
- size_t size (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Size of the allocated data.
- size_t size_;
-
- /// Keeps track of the current top of stack.
- size_t top_;
-
- /// Holds the stack's contents.
- T stack_[ACE_SIZE];
-};
-
-//----------------------------------------
-
-template<class T> class ACE_Ordered_MultiSet;
-template<class T> class ACE_Ordered_MultiSet_Iterator;
-
-/**
- * @class ACE_DNode
- *
- * @brief Implementation element in a bilinked list.
- */
-template<class T>
-class ACE_DNode
-{
- friend class ACE_Ordered_MultiSet<T>;
- friend class ACE_Ordered_MultiSet_Iterator<T>;
-
-public:
-
-# if ! defined (ACE_HAS_BROKEN_NOOP_DTORS)
- /// This isn't necessary, but it keeps some compilers happy.
- ~ACE_DNode (void);
-# endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */
-
-private:
-
- // = Initialization methods
- ACE_DNode (const T &i, ACE_DNode<T> *n = 0, ACE_DNode<T> *p = 0);
-
- /// Pointer to next element in the list of <ACE_DNode>s.
- ACE_DNode<T> *next_;
-
- /// Pointer to previous element in the list of <ACE_DNode>s.
- ACE_DNode<T> *prev_;
-
- /// Current value of the item in this node.
- T item_;
-};
-
-
-
-/**
- * @class ACE_Unbounded_Stack
- *
- * @brief Implement a generic LIFO abstract data type.
- *
- * This implementation of an unbounded Stack uses a linked list.
- * If you use the <insert> or <remove> methods you should keep
- * in mind that duplicate entries aren't allowed. In general,
- * therefore, you should avoid the use of these methods since
- * they aren't really part of the ADT stack. The stack is implemented
- * as a doubly linked list.
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure
- * Double linked list
- * - Duplicates allowed?
- * No
- * - Random access allowed?
- * No
- * - Search speed
- * Linear
- * - Insert/replace speed
- * Linear
- * - Iterator still valid after change to container?
- * Yes
- * - Frees memory for removed elements?
- * Yes
- * - Items inserted by
- * Value
- * - Requirements for contained type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- *
- */
-template <class T>
-class ACE_Unbounded_Stack
-{
-public:
- friend class ACE_Unbounded_Stack_Iterator<T>;
-
- // Trait definition.
- typedef ACE_Unbounded_Stack_Iterator<T> ITERATOR;
-
- // = Initialization, assignment, and termination methods.
- /// Initialize a new stack so that it is empty. Use user defined
- /// allocation strategy if specified.
- /**
- * Initialize an empty stack using the user specified allocation strategy
- * if provided.
- */
- ACE_Unbounded_Stack (ACE_Allocator *alloc = 0);
-
- /// The copy constructor (performs initialization).
- /**
- * Initialize this stack to be an exact copy of <s>.
- */
- ACE_Unbounded_Stack (const ACE_Unbounded_Stack<T> &s);
-
- /// Assignment operator (performs assignment).
- /**
- * Perform a deep copy of the rhs into the lhs.
- */
- void operator= (const ACE_Unbounded_Stack<T> &s);
-
- /// Perform actions needed when stack goes out of scope.
- /**
- * Destroy the underlying list for the stack.
- */
- ~ACE_Unbounded_Stack (void);
-
- // = Classic Stack operations.
-
-
- ///Push an element onto the top of stack.
- /**
- * Place a new item on top of the stack. Returns -1 if the stack
- * is already full, 0 if the stack is not already full, and -1 if
- * failure occurs.
- */
- int push (const T &new_item);
-
- ///Pop the top element of the stack.
- /**
- * Remove and return the top stack item. Returns -1 if the stack is
- * already empty, 0 if the stack is not already empty, and -1 if
- * failure occurs.
- */
- int pop (T &item);
-
- ///Examine the top of the stack.
- /**
- * Return top stack item without removing it. Returns -1 if the
- * stack is already empty, 0 if the stack is not already empty, and
- * -1 if failure occurs.
- */
- int top (T &item) const;
-
- // = Check boundary conditions.
-
- /// Returns 1 if the container is empty, otherwise returns 0.
- /**
- * Constant time check to see if the stack is empty.
- */
- int is_empty (void) const;
-
- /// Returns 1 if the container is full, otherwise returns 0.
- /**
- * Always resturns 0 since the stack is unbounded.
- */
- int is_full (void) const;
-
- // = Auxiliary methods (not strictly part of the Stack ADT).
-
- ///Linear Insert of an item.
- /**
- * Insert <new_item> into the Stack at the head (but doesn't allow
- * duplicates). Returns -1 if failures occur, 1 if item is already
- * present (i.e., no duplicates are allowed), else 0.
- */
- int insert (const T &new_item);
-
- /// Remove @a item from the Stack. Returns 0 if it removes the item,
- /// -1 if it can't find the item, and -1 if a failure occurs.
- /**
- * Linear remove operation.
- */
- int remove (const T &item);
-
- /// Finds if @a item occurs the set. Returns 0 if finds, else -1.
- /**
- * Linear find operation.
- */
- int find (const T &item) const;
-
- /// The number of items in the stack.
- /**
- * Constant time access to the current stack size.
- */
- size_t size (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Delete all the nodes in the stack.
- void delete_all_nodes (void);
-
- /// Copy all nodes from <s> to <this>.
- void copy_all_nodes (const ACE_Unbounded_Stack<T> &s);
-
- /// Head of the linked list of Nodes.
- ACE_Node<T> *head_;
-
- /// Current size of the stack.
- size_t cur_size_;
-
- /// Allocation strategy of the stack.
- ACE_Allocator *allocator_;
-};
-
-/**
- * @class ACE_Unbounded_Stack_Iterator
- *
- * @brief Implement an iterator over an unbounded Stack.
- */
-template <class T>
-class ACE_Unbounded_Stack_Iterator
-{
-public:
- // = Initialization method.
- /// Move to the first element in the <stack>.
- ACE_Unbounded_Stack_Iterator (ACE_Unbounded_Stack<T> &stack);
-
- // = Iteration methods.
-
- /// Pass back the @a next_item that hasn't been seen in the Stack.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&next_item);
-
- /// Move forward by one element in the Stack. Returns 0 when all the
- /// items in the Stack have been seen, else 1.
- int advance (void);
-
- /// Move to the first element in the Stack. Returns 0 if the
- /// Stack is empty, else 1.
- int first (void);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Pointer to the current node in the iteration.
- ACE_Node<T> *current_;
-
- /// Pointer to the Stack we're iterating over.
- ACE_Unbounded_Stack<T> &stack_;
-};
-
-template <class T>
-class ACE_Double_Linked_List;
-
-/**
- * @class ACE_Double_Linked_List_Iterator_Base
- *
- * @brief Implements a common base class for iterators for a double
- * linked list ADT
- */
-template <class T>
-class ACE_Double_Linked_List_Iterator_Base
-{
-public:
- // = Iteration methods.
-
- /// Passes back the <entry> under the iterator. Returns 0 if the
- /// iteration has completed, otherwise 1
- int next (T *&) const;
-
- /**
- * @deprecated Return the address of next (current) unvisited item in
- * the list. 0 if there is no more element available.
- */
- T *next (void) const;
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// STL-like iterator dereference operator: returns a reference
- /// to the node underneath the iterator.
- T & operator* (void) const ;
-
- /**
- * Retasks the iterator to iterate over a new
- * Double_Linked_List. This allows clients to reuse an iterator
- * without incurring the constructor overhead. If you do use this,
- * be aware that if there are more than one reference to this
- * iterator, the other "clients" may be very bothered when their
- * iterator changes. @@ Here be dragons. Comments?
- */
- void reset (ACE_Double_Linked_List<T> &);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Initialization methods.
-
- /// Constructor
- ACE_Double_Linked_List_Iterator_Base (const ACE_Double_Linked_List<T> &);
-
- /// Copy constructor.
- ACE_Double_Linked_List_Iterator_Base (const
- ACE_Double_Linked_List_Iterator_Base<T>
- &iter);
-
- // = Iteration methods.
- /**
- * Move to the first element of the list. Returns 0 if the list is
- * empty, else 1. Note: the head of the ACE_DLList is actually a
- * null entry, so the first element is actually the 2n'd entry
- */
- int go_head (void);
-
- /// Move to the last element of the list. Returns 0 if the list is
- /// empty, else 1.
- int go_tail (void);
-
- /**
- * Check if we reach the end of the list. Can also be used to get
- * the *current* element in the list. Return the address of the
- * current item if there are still elements left , 0 if we run out
- * of element.
- */
- T *not_done (void) const ;
-
- /// Advance to the next element in the list. Return the address of the
- /// next element if there are more, 0 otherwise.
- T *do_advance (void);
-
- /// Retreat to the previous element in the list. Return the address
- /// of the previous element if there are more, 0 otherwise.
- T *do_retreat (void);
-
- /// Dump the state of an object.
- void dump_i (void) const;
-
- /// Remember where we are.
- T *current_;
-
- const ACE_Double_Linked_List<T> *dllist_;
-};
-
-/**
- * @class ACE_Double_Linked_List_Iterator
- *
- * @brief Implements an iterator for a double linked list ADT
- *
- * Iterate thru the double-linked list. This class provides
- * an interface that let users access the internal element
- * addresses directly. Notice <class T> must declare
- * ACE_Double_Linked_List<T>,
- * ACE_Double_Linked_List_Iterator_Base <T> and
- * ACE_Double_Linked_List_Iterator as friend classes and class T
- * should also have data members T* next_ and T* prev_.
- */
-template <class T>
-class ACE_Double_Linked_List_Iterator : public ACE_Double_Linked_List_Iterator_Base <T>
-{
-public:
- // = Initialization method.
- ACE_Double_Linked_List_Iterator (const ACE_Double_Linked_List<T> &);
-
- /**
- * Retasks the iterator to iterate over a new
- * Double_Linked_List. This allows clients to reuse an iterator
- * without incurring the constructor overhead. If you do use this,
- * be aware that if there are more than one reference to this
- * iterator, the other "clients" may be very bothered when their
- * iterator changes.
- * @@ Here be dragons. Comments?
- */
- void reset (ACE_Double_Linked_List<T> &);
-
- /// Move to the first element in the list. Returns 0 if the
- /// list is empty, else 1.
- int first (void);
-
- /// Move forward by one element in the list. Returns 0 when all the
- /// items in the list have been seen, else 1.
- int advance (void);
-
- /**
- * Advance the iterator while removing the original item from the
- * list. Return a pointer points to the original (removed) item.
- * If <dont_remove> equals 0, this function behaves like <advance>
- * but return 0 (NULL) instead.
- */
- T* advance_and_remove (int dont_remove);
-
- // = STL-style iteration methods
-
- /// Prefix advance.
- ACE_Double_Linked_List_Iterator<T> & operator++ (void);
-
- /// Postfix advance.
- ACE_Double_Linked_List_Iterator<T> operator++ (int);
-
- /// Prefix reverse.
- ACE_Double_Linked_List_Iterator<T> & operator-- (void);
-
- /// Postfix reverse.
- ACE_Double_Linked_List_Iterator<T> operator-- (int);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_Double_Linked_List_Reverse_Iterator
- *
- * @brief Implements a reverse iterator for a double linked list ADT
- *
- * Iterate backwards over the double-linked list. This class
- * provide an interface that let users access the internal
- * element addresses directly, which seems to break the
- * encapsulation. Notice <class T> must declare
- * ACE_Double_Linked_List<T>,
- * ACE_Double_Linked_List_Iterator_Base <T> and
- * ACE_Double_Linked_List_Iterator as friend classes and class T
- * should also have data members T* next_ and T* prev_.
- */
-template <class T>
-class ACE_Double_Linked_List_Reverse_Iterator : public ACE_Double_Linked_List_Iterator_Base <T>
-{
-public:
- // = Initialization method.
- ACE_Double_Linked_List_Reverse_Iterator (ACE_Double_Linked_List<T> &);
-
- /**
- * Retasks the iterator to iterate over a new
- * Double_Linked_List. This allows clients to reuse an iterator
- * without incurring the constructor overhead. If you do use this,
- * be aware that if there are more than one reference to this
- * iterator, the other "clients" may be very bothered when their
- * iterator changes.
- * @@ Here be dragons. Comments?
- */
- void reset (ACE_Double_Linked_List<T> &);
-
- /// Move to the first element in the list. Returns 0 if the
- /// list is empty, else 1.
- int first (void);
-
- /// Move forward by one element in the list. Returns 0 when all the
- /// items in the list have been seen, else 1.
- int advance (void);
-
- /**
- * Advance the iterator while removing the original item from the
- * list. Return a pointer points to the original (removed) item.
- * If <dont_remove> equals 0, this function behaves like <advance>
- * but return 0 (NULL) instead.
- */
- T* advance_and_remove (int dont_remove);
-
- // = STL-style iteration methods
-
- /// Prefix advance.
- ACE_Double_Linked_List_Reverse_Iterator<T> & operator++ (void);
-
- /// Postfix advance.
- ACE_Double_Linked_List_Reverse_Iterator<T> operator++ (int);
-
- /// Prefix reverse.
- ACE_Double_Linked_List_Reverse_Iterator<T> & operator-- (void);
-
- /// Postfix reverse.
- ACE_Double_Linked_List_Reverse_Iterator<T> operator-- (int);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-
-/**
- * @class ACE_Double_Linked_List
- *
- * @brief A double-linked list implementation.
- *
- * This implementation of an unbounded double-linked list uses a
- * circular linked list with a dummy node. It is pretty much
- * like the <ACE_Unbounded_Queue> except that it allows removing
- * of a specific element from a specific location.
- * Notice that this class is an implementation of a very simple
- * data structure. This is *NOT* a container class. You can use the
- * class to implement other contains classes but it is *NOT* a
- * general purpose container class.
- * The parameter class *MUST* have members T* prev and T* next
- * and users of this class are responsible to follow the general
- * rules of using double-linked lists to maintaining the list
- * integrity.
- * If you need a double linked container class, use the DLList
- * class which is a container but delegates to the Double_Linked_List
- * class.
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure
- * Double Linked List
- * - Duplicates allowed?
- * Yes
- * - Random access allowed?
- * No
- * - Search speed
- * N/A
- * - Insert/replace speed
- * Linear
- * - Iterator still valid after change to container?
- * Yes
- * - Frees memory for removed elements?
- * No
- * - Items inserted by
- * Value
- * - Requirements for contained type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- *
- */
-template <class T>
-class ACE_Double_Linked_List
-{
-public:
- friend class ACE_Double_Linked_List_Iterator_Base<T>;
- friend class ACE_Double_Linked_List_Iterator<T>;
- friend class ACE_Double_Linked_List_Reverse_Iterator<T>;
-
- // Trait definition.
- typedef ACE_Double_Linked_List_Iterator<T> ITERATOR;
- typedef ACE_Double_Linked_List_Reverse_Iterator<T> REVERSE_ITERATOR;
-
- // = Initialization and termination methods.
- /// construction. Use user specified allocation strategy
- /// if specified.
- /**
- * Initialize an empy list using the allocation strategy specified by the user.
- * If none is specified, then use default allocation strategy.
- */
- ACE_Double_Linked_List (ACE_Allocator *alloc = 0);
-
- /// Copy constructor.
- /**
- * Create a double linked list that is a copy of the provided
- * parameter.
- */
- ACE_Double_Linked_List (const ACE_Double_Linked_List<T> &);
-
- /// Assignment operator.
- /**
- * Perform a deep copy of the provided list by first deleting the nodes of the
- * lhs and then copying the nodes of the rhs.
- */
- void operator= (const ACE_Double_Linked_List<T> &);
-
- /// Destructor.
- /**
- * Clean up the memory allocated for the nodes of the list.
- */
- ~ACE_Double_Linked_List (void);
-
- // = Check boundary conditions.
-
- /// Returns 1 if the container is empty, 0 otherwise.
- /**
- * Performs constant time check to determine if the list is empty.
- */
- int is_empty (void) const;
-
- /// The list is unbounded, so this always returns 0.
- /**
- * Since the list is unbounded, the method simply returns 0.
- */
- int is_full (void) const;
-
- // = Classic queue operations.
-
- /// Adds <new_item> to the tail of the list. Returns the new item
- /// that was inserted.
- /**
- * Provides constant time insertion at the end of the list structure.
- */
- T *insert_tail (T *new_item);
-
- /// Adds <new_item> to the head of the list.Returns the new item that
- /// was inserted.
- /**
- * Provides constant time insertion at the head of the list.
- */
- T *insert_head (T *new_item);
-
- ///Removes the head of the list and returns a pointer to that item.
- /**
- * Removes and returns the first <item> in the list. Returns
- * internal node's address on success, 0 if the queue was empty.
- * This method will *not* free the internal node.
- */
- T* delete_head (void);
-
- ///Removes the tail of the list and returns a pointer to that item.
- /**
- * Removes and returns the last <item> in the list. Returns
- * internal nodes's address on success, 0 if the queue was
- * empty. This method will *not* free the internal node.
- */
- T *delete_tail (void);
-
- // = Additional utility methods.
-
- ///Empty the list.
- /**
- * Reset the <ACE_Double_Linked_List> to be empty.
- * Notice that since no one is interested in the items within,
- * This operation will delete all items.
- */
- void reset (void);
-
- /// Get the <slot>th element in the set. Returns -1 if the element
- /// isn't in the range {0..<size> - 1}, else 0.
- /**
- * Iterates through the list to the desired index and assigns the provides pointer
- * with the address of the node occupying that index.
- */
- int get (T *&item, size_t slot = 0);
-
- /// The number of items in the queue.
- /**
- * Constant time call to return the current size of the list.
- */
- size_t size (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Use DNode address directly.
- /**
- * Constant time removal of an item from the list using it's address.
- */
- int remove (T *n);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Delete all the nodes in the list.
- /**
- * Removes and deallocates memory for all of the list nodes.
- */
- void delete_nodes (void);
-
- /// Copy nodes from <rhs> into this list.
- /**
- * Copy the elements of the provided list by allocated new nodes and assigning
- * them with the proper data.
- */
- void copy_nodes (const ACE_Double_Linked_List<T> &rhs);
-
- /// Setup header pointer. Called after we create the head node in ctor.
- /**
- * Initialize the head pointer so that the list has a dummy node.
- */
- void init_head (void);
-
- ///Constant time insert a new item into the list structure.
- /**
- * Insert a @a new_item into the list. It will be added before
- * or after @a old_item. Default is to insert the new item *after*
- * <head_>. Return 0 if succeed, -1 if error occured.
- */
- int insert_element (T *new_item,
- int before = 0,
- T *old_item = 0);
-
- ///Constant time delete an item from the list structure.
- /**
- * Remove @a item from the list. Return 0 if succeed, -1 otherwise.
- * Notice that this function checks if item is <head_> and either its
- * <next_> or <prev_> is NULL. The function resets item's <next_> and
- * <prev_> to 0 to prevent clobbering the double-linked list if a user
- * tries to remove the same node again.
- */
- int remove_element (T *item);
-
- /// Head of the circular double-linked list.
- T *head_;
-
- /// Size of this list.
- size_t size_;
-
- /// Allocation Strategy of the queue.
- ACE_Allocator *allocator_;
-};
-
-
-template <class T> class ACE_DLList;
-template <class T> class ACE_DLList_Iterator;
-template <class T> class ACE_DLList_Reverse_Iterator;
-
-typedef ACE_Double_Linked_List<ACE_DLList_Node> ACE_DLList_Base;
-
-//typedef ACE_Double_Linked_List_Iterator <ACE_DLList_Node>
-// ACE_DLList_Iterator_Base;
-//typedef ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>
-// ACE_DLList_Reverse_Iterator_Base;
-//@@ These two typedefs (inherited from James Hu's original design)
-// have been removed because Sun CC 4.2 had problems with it. I guess
-// having the DLList_Iterators inheriting from a class which is
-// actually a typedef leads to problems. #define'ing rather than
-// typedef'ing worked, but as per Carlos's reccomendation, I'm just
-// replacing all references to the base classes with their actual
-// type. Matt Braun (6/15/99)
-
-/**
- * @class ACE_DLList
- *
- * @brief A double-linked list container class.
- *
- * This implementation uses ACE_Double_Linked_List to perform
- * the logic behind this container class. It delegates all of its
- * calls to ACE_Double_Linked_List.
- */
-template <class T>
-class ACE_DLList : public ACE_DLList_Base
-{
- friend class ACE_DLList_Node;
- friend class ACE_Double_Linked_List_Iterator<T>;
- friend class ACE_DLList_Iterator<T>;
- friend class ACE_DLList_Reverse_Iterator<T>;
-
-public:
-
- /// Delegates to ACE_Double_Linked_List.
- void operator= (const ACE_DLList<T> &l);
-
- // = Classic queue operations.
-
- /// Delegates to ACE_Double_Linked_List.
- T *insert_tail (T *new_item);
-
- /// Delegates to ACE_Double_Linked_List.
- T *insert_head (T *new_item);
-
- /// Delegates to ACE_Double_Linked_List.
- T *delete_head (void);
-
- /// Delegates to ACE_Double_Linked_List.
- T *delete_tail (void);
-
- // = Additional utility methods.
-
- /**
- * Delegates to <ACE_Double_Linked_List>, but where
- * <ACE_Double_Linked_List> returns the node as the item, this get
- * returns the contents of the node in item.
- */
- int get (T *&item, size_t slot = 0);
-
- /// Delegates to ACE_Double_Linked_List.
- void dump (void) const;
-
- /// Delegates to ACE_Double_Linked_List.
- int remove (ACE_DLList_Node *n);
-
-
- // = Initialization and termination methods.
-
- /// Delegates to ACE_Double_Linked_List.
- ACE_DLList (ACE_Allocator *alloc = 0);
-
- /// Delegates to ACE_Double_Linked_List.
- ACE_DLList (const ACE_DLList<T> &l);
-
- /// Deletes the list starting from the head.
- ~ACE_DLList (void);
-};
-
-/**
- * @class ACE_DLList_Iterator
- *
- * @brief A double-linked list container class iterator.
- *
- * This implementation uses ACE_Double_Linked_List_Iterator to
- * perform the logic behind this container class. It delegates
- * all of its calls to ACE_Double_Linked_List_Iterator.
- */
-template <class T>
-class ACE_DLList_Iterator : public ACE_Double_Linked_List_Iterator <ACE_DLList_Node>
-{
-
- friend class ACE_DLList<T>;
- friend class ACE_DLList_Node;
-
-public:
-
- // = Initialization method.
- ACE_DLList_Iterator (ACE_DLList<T> &l);
-
- /**
- * Retasks the iterator to iterate over a new
- * Double_Linked_List. This allows clients to reuse an iterator
- * without incurring the constructor overhead. If you do use this,
- * be aware that if there are more than one reference to this
- * iterator, the other "clients" may be very bothered when their
- * iterator changes.
- * @@ Here be dragons. Comments?
- */
- void reset (ACE_DLList<T> &l);
-
- // = Iteration methods.
- /// Move forward by one element in the list. Returns 0 when all the
- /// items in the list have been seen, else 1.
- int advance (void);
-
- /// Pass back the <next_item> that hasn't been seen in the list.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&);
-
- /**
- * @deprecated Delegates to ACE_Double_Linked_List_Iterator, except that
- * whereas the Double_Linked_List version of next returns the node, this next
- * returns the contents of the node
- */
- T *next (void) const;
-
- /**
- * Removes the current item (i.e., <next>) from the list.
- * Note that DLList iterators do not support <advance_and_remove>
- * directly (defined in its base class) and you will need to
- * release the element returned by it.
- */
- int remove (void);
-
- /// Delegates to ACE_Double_Linked_List_Iterator.
- void dump (void) const;
-
-private:
- ACE_DLList<T> *list_;
-};
-
-/**
- * @class ACE_DLList_Reverse_Iterator
- *
- * @brief A double-linked list container class iterator.
- *
- * This implementation uses ACE_Double_Linked_List_Iterator to
- * perform the logic behind this container class. It delegates
- * all of its calls to ACE_Double_Linked_List_Iterator.
- */
-template <class T>
-class ACE_DLList_Reverse_Iterator : public ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>
-{
-
- friend class ACE_DLList<T>;
- friend class ACE_DLList_Node;
-
-public:
-
- // = Initialization method.
- ACE_DLList_Reverse_Iterator (ACE_DLList<T> &l);
-
- /**
- * Retasks the iterator to iterate over a new
- * Double_Linked_List. This allows clients to reuse an iterator
- * without incurring the constructor overhead. If you do use this,
- * be aware that if there are more than one reference to this
- * iterator, the other "clients" may be very bothered when their
- * iterator changes.
- * @@ Here be dragons. Comments?
- */
- void reset (ACE_DLList<T> &l);
-
- // = Iteration methods.
- /// Move forward by one element in the list. Returns 0 when all the
- /// items in the list have been seen, else 1.
- int advance (void);
-
- /// Pass back the <next_item> that hasn't been seen in the list.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&);
-
- /// @deprecated Delegates to ACE_Double_Linked_List_Iterator.
- T *next (void) const;
-
- /// Removes the current item (i.e., <next>) from the list.
- /// Note that DLList iterators do not support <advance_and_remove>
- /// directly (defined in its base class) and you will need to
- /// release the element returned by it.
- int remove (void);
-
- /// Delegates to ACE_Double_Linked_List_Iterator.
- void dump (void) const;
-
-private:
- ACE_DLList<T> *list_;
-};
-
-// Forward declaration.
-template <class T, size_t ACE_SIZE>
-class ACE_Fixed_Set;
-
-/**
- * @class ACE_Fixed_Set_Iterator
- *
- * @brief Iterates through an unordered set.
- *
- * This implementation of an unordered set uses a fixed array.
- * Allows deletions while iteration is occurring.
- */
-template <class T, size_t ACE_SIZE>
-class ACE_Fixed_Set_Iterator
-{
-public:
- // = Initialization method.
- ACE_Fixed_Set_Iterator (ACE_Fixed_Set<T, ACE_SIZE> &s);
-
- // = Iteration methods.
-
- /// Pass back the <next_item> that hasn't been seen in the Set.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&next_item);
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Move to the first element in the set. Returns 0 if the
- /// set is empty, else 1.
- int first (void);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Set we are iterating over.
- ACE_Fixed_Set<T, ACE_SIZE> &s_;
-
- /// How far we've advanced over the set.
- ssize_t next_;
-};
-
-/**
- * @class ACE_Fixed_Set_Const_Iterator
- *
- * @brief Iterates through a const unordered set.
- *
- * This implementation of an unordered set uses a fixed array.
- */
-template <class T, size_t ACE_SIZE>
-class ACE_Fixed_Set_Const_Iterator
-{
-public:
- // = Initialization method.
- ACE_Fixed_Set_Const_Iterator (const ACE_Fixed_Set<T, ACE_SIZE> &s);
-
- // = Iteration methods.
-
- /// Pass back the <next_item> that hasn't been seen in the Set.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&next_item);
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Move to the first element in the set. Returns 0 if the
- /// set is empty, else 1.
- int first (void);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Set we are iterating over.
- const ACE_Fixed_Set<T, ACE_SIZE> &s_;
-
- /// How far we've advanced over the set.
- ssize_t next_;
-};
-
-
-/**
- * @class ACE_Fixed_Set
- *
- * @brief Implement a simple unordered set of <T> with maximum <ACE_SIZE>.
- *
- * This implementation of an unordered set uses a fixed array.
- * It does not allow duplicate members. The set provides linear insertion/deletion
- * operations.
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure
- * Fixed array
- * - Duplicates allowed?
- * No
- * - Random access allowed?
- * No
- * - Search speed
- * Linear
- * - Insert/replace speed
- * Linear
- * - Iterator still valid after change to container?
- * Yes
- * - Frees memory for removed elements?
- * No
- * - Items inserted by
- * Value
- * - Requirements for contained type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- * -# operator==
- *
- */
-template <class T, size_t ACE_SIZE>
-class ACE_Fixed_Set
-{
-public:
- friend class ACE_Fixed_Set_Iterator<T, ACE_SIZE>;
- friend class ACE_Fixed_Set_Const_Iterator<T, ACE_SIZE>;
-
- // Trait definition.
- typedef ACE_Fixed_Set_Iterator<T, ACE_SIZE> ITERATOR;
- typedef ACE_Fixed_Set_Iterator<T, ACE_SIZE> CONST_ITERATOR;
-
- // = Initialization and termination methods.
- /// Default Constructor.
- /**
- * Creates an empy set
- */
- ACE_Fixed_Set (void);
-
- /// Copy constructor.
- /**
- * Initializes a set to be a copy of the set parameter.
- */
- ACE_Fixed_Set (const ACE_Fixed_Set<T, ACE_SIZE> &);
-
- /// Assignment operator.
- /**
- * Deep copy of one set to another.
- */
- void operator= (const ACE_Fixed_Set<T, ACE_SIZE> &);
-
- /// Destructor.
- /**
- * Destroys a set.
- */
- ~ACE_Fixed_Set (void);
-
- // = Check boundary conditions.
-
- /// Returns 1 if the container is empty, otherwise returns 0.
- /**
- * Performs constant time check to determine if a set is empty.
- */
- int is_empty (void) const;
-
- /// Returns 1 if the container is full, otherwise returns 0.
- /**
- * Performs a constant time check to see if the set is full.
- */
- int is_full (void) const;
-
- // = Classic unordered set operations.
-
- ///Linear time insertion of an item unique to the set.
- /**
- * Insert @a new_item into the set (doesn't allow duplicates).
- * Returns -1 if failures occur, 1 if item is already present, else
- * 0.
- */
- int insert (const T &new_item);
-
- ///Linear time removal operation of an item.
- /**
- * Remove first occurrence of <item> from the set. Returns 0 if
- * it removes the item, -1 if it can't find the item, and -1 if a
- * failure occurs. Removal doesn't reclaim memory for the @a item.
- */
- int remove (const T &item);
-
- /// Finds if @a item occurs in the set. Returns 0 if finds, else -1.
- /**
- * Performs a linear find operation for the specified @a item.
- */
- int find (const T &item) const;
-
- /// Size of the set.
- /**
- * Returns the current size of the set.
- */
- size_t size (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Holds the contents of the set.
- struct
- {
- /// Item in the set.
- T item_;
-
- /// Keeps track of whether this item is in use or not.
- int is_free_;
- } search_structure_[ACE_SIZE];
-
- /// Current size of the set.
- size_t cur_size_;
-
- /// Maximum size of the set.
- size_t max_size_;
-};
-
-// Forward declaration.
-template <class T>
-class ACE_Bounded_Set;
-
-/**
- * @class ACE_Bounded_Set_Iterator
- *
- * @brief Iterates through an unordered set.
- *
- * This implementation of an unordered set uses a Bounded array.
- * Allows deletions while iteration is occurring.
- */
-template <class T>
-class ACE_Bounded_Set_Iterator
-{
-public:
- // = Initialization method.
- ACE_Bounded_Set_Iterator (ACE_Bounded_Set<T> &s);
-
- // = Iteration methods.
-
- /// Pass back the <next_item> that hasn't been seen in the Set.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&next_item);
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Move to the first element in the set. Returns 0 if the
- /// set is empty, else 1.
- int first (void);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Set we are iterating over.
- ACE_Bounded_Set<T> &s_;
-
- /// How far we've advanced over the set.
- ssize_t next_;
-};
-
-
-/**
- * @class ACE_Bounded_Set
- *
- * @brief Implement a simple unordered set of <T> with maximum
- * set at creation time.
- *
- * This implementation of an unordered set uses a Bounded array.
- * This implementation does not allow duplicates. It provides
- * linear insert/remove/find operations. Insertion/removal does not
- * invalidate iterators, but caution should be taken to ensure
- * expected behavior. Once initialized, the object has a maximum size
- * which can only be increased by the assignment of another larger Bounded_Set.
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure
- * Bounded array which can grow via assignment
- * - Duplicates allowed?
- * No
- * - Random access allowed?
- * No
- * - Search speed
- * Linear
- * - Insert/replace speed
- * Linear
- * - Iterator still valid after change to container?
- * Yes
- * - Frees memory for removed elements?
- * No
- * - Items inserted by
- * Value
- * - Requirements for contained type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- * -# operator==
- *
- */
-template <class T>
-class ACE_Bounded_Set
-{
-public:
- friend class ACE_Bounded_Set_Iterator<T>;
-
- // Trait definition.
- typedef ACE_Bounded_Set_Iterator<T> ITERATOR;
-
- enum
- {
- DEFAULT_SIZE = 10
- };
-
- // = Initialization and termination methods.
- /// Construct a Bounded_Set using the default size.
- /**
- * The default constructor initializes the Bounded_Set to a maximum size
- * specified by the DEFAULT_SIZE.
- */
- ACE_Bounded_Set (void);
-
- /// Construct a Bounded_Set with the provided sizeB.
- /**
- * Initialize the Bounded_Set to have a maximum size equal to the size
- * parameter specified.
- */
- ACE_Bounded_Set (size_t size);
-
- /// Construct a Bounded_Set that is a copy of the provides Bounded_Set.
- /**
- * Initialize the Bounded_Set to be a copy of the Bounded_Set parameter.
- */
- ACE_Bounded_Set (const ACE_Bounded_Set<T> &);
-
- /// Assignment operator.
- /**
- * The assignment will make a deep copy of the Bounded_Set provided. If the
- * rhs has more elements than the capacity of the lhs, then the lhs will be
- * deleted and reallocated to accomadate the larger number of elements.
- */
- void operator= (const ACE_Bounded_Set<T> &);
-
- /// Destructor
- /**
- * Clean up the underlying dynamically allocated memory that is used by
- * the Bounded_Set.
- */
- ~ACE_Bounded_Set (void);
-
- // = Check boundary conditions.
-
- /// Returns 1 if the container is empty, otherwise returns 0.
- /**
- * A constant time check is performed to determine if the Bounded_Set is
- * empty.
- */
- int is_empty (void) const;
-
- /// Returns 1 if the container is full, otherwise returns 0.
- /**
- * Performs a constant time check to determine if the Bounded_Set is at
- * capacity.
- */
- int is_full (void) const;
-
- // = Classic unordered set operations.
-
- ///Inserts a new element unique to the set.
- /**
- * Insert @a new_item into the set (doesn't allow duplicates) in linear
- * time.
- * Returns -1 if failures occur, 1 if item is already present, else
- * 0.
- */
- int insert (const T &new_item);
-
- ///Finds the specified element and removes it from the set.
- /**
- * Remove first occurrence of @a item from the set. Returns 0 if it
- * removes the item, -1 if it can't find the item, and -1 if a
- * failure occurs. The linear remove operation does not reclaim the
- * memory associated with the removed item.
- */
- int remove (const T &item);
-
- /// Finds if @a item occurs in the set. Returns 0 if finds, else -1.
- /**
- * find preforms a linear search for <item> and returns 0 on successful
- * find and -1 otherwise.
- */
- int find (const T &item) const;
-
- /// Size of the set.
- /**
- * Returns a size_t representing the current size of the set.
- */
- size_t size (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- struct Search_Structure
- {
- /// Item in the set.
- T item_;
-
- /// Keeps track of whether this item is in use or not.
- int is_free_;
- };
-
- /// Holds the contents of the set.
- Search_Structure *search_structure_;
-
- /// Current size of the set.
- size_t cur_size_;
-
- /// Maximum size of the set.
- size_t max_size_;
-};
-
-/**
- * @class ACE_Ordered_MultiSet_Iterator
- *
- * @brief Implement a bidirectional iterator over an ordered multiset.
- * This class template requires that < operator semantics be
- * defined for the parameterized type <T>, but does not impose
- * any restriction on how that ordering operator is implemented.
- */
-template <class T>
-class ACE_Ordered_MultiSet_Iterator
-{
-public:
- friend class ACE_Ordered_MultiSet<T>;
-
- // = Initialization method.
- ACE_Ordered_MultiSet_Iterator (ACE_Ordered_MultiSet<T> &s);
-
- // = Iteration methods.
-
- /// Pass back the <next_item> that hasn't been seen in the ordered multiset.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&next_item) const;
-
- /// Repositions the iterator at the first item in the ordered multiset
- /// Returns 0 if the list is empty else 1.
- int first (void);
-
- /// Repositions the iterator at the last item in the ordered multiset
- /// Returns 0 if the list is empty else 1.
- int last (void);
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Move backward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int retreat (void);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Returns a reference to the internal element <this> is pointing to.
- T& operator* (void);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
-
- /// Pointer to the current node in the iteration.
- ACE_DNode<T> *current_;
-
- /// Pointer to the set we're iterating over.
- ACE_Ordered_MultiSet<T> &set_;
-};
-
-
-/**
- * @class ACE_Ordered_MultiSet
- *
- * @brief Implement a simple ordered multiset of <T> of unbounded size
- * that allows duplicates. This class template requires that <
- * operator semantics be defined for the parameterized type <T>, but
- * does not impose any restriction on how that ordering operator is
- * implemented. The set is implemented as a linked list.
- *
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure
- * Double linked list
- * - Duplicates allowed?
- * Yes
- * - Random access allowed?
- * No
- * - Search speed
- * Linear
- * - Insert/replace speed
- * Linear
- * - Iterator still valid after change to container?
- * Yes
- * - Frees memory for removed elements?
- * Yes
- * - Items inserted by
- * Value
- * - Requirements for contained type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- * -# operator==
- * -# operator<
- *
- *
- */
-template <class T>
-class ACE_Ordered_MultiSet
-{
-public:
- friend class ACE_Ordered_MultiSet_Iterator<T>;
-
- // Trait definition.
- typedef ACE_Ordered_MultiSet_Iterator<T> ITERATOR;
-
- // = Initialization and termination methods.
- /// Constructor. Use user specified allocation strategy
- /// if specified.
- /**
- * Initialize the set using the allocation strategy specified. If none, use the
- * default strategy.
- */
- ACE_Ordered_MultiSet (ACE_Allocator *alloc = 0);
-
- /// Copy constructor.
- /**
- * Initialize the set to be a copy of the provided set.
- */
- ACE_Ordered_MultiSet (const ACE_Ordered_MultiSet<T> &);
-
- /// Destructor.
- /**
- * Delete the nodes of the set.
- */
- ~ACE_Ordered_MultiSet (void);
-
- /// Assignment operator.
- /**
- * Delete the nodes in lhs, and copy the nodes from the rhs.
- */
- void operator= (const ACE_Ordered_MultiSet<T> &);
-
- // = Check boundary conditions.
-
- /// Returns 1 if the container is empty, otherwise returns 0.
- /**
- * Constant time check to determine if the set is empty.
- */
- int is_empty (void) const;
-
- /// Size of the set.
- /**
- * Constant time check to determine the size of the set.
- */
- size_t size (void) const;
-
- // = Classic unordered set operations.
-
- /// Insert @a new_item into the ordered multiset.
- /// Returns -1 if failures occur, else 0.
- /**
- * Linear time, order preserving insert into the set beginning at the head.
- */
- int insert (const T &new_item);
-
- ///Linear time insert beginning at the point specified by the provided iterator.
- /**
- * Insert @a new_item into the ordered multiset, starting its search at
- * the node pointed to by the iterator, and if insertion was successful,
- * updates the iterator to point to the newly inserted node.
- * Returns -1 if failures occur, else 0.
- */
- int insert (const T &new_item, ITERATOR &iter);
-
- /// Remove first occurrence of @a item from the set. Returns 0 if
- /// it removes the item, -1 if it can't find the item.
- /**
- * Linear time search operation which removes the item from the set if found .
- */
- int remove (const T &item);
-
- ///Linear find operation.
- /**
- * Finds first occurrence of @a item in the multiset, using the iterator's
- * current position as a hint to improve performance. If find succeeds,
- * it positions the iterator at that node and returns 0, or if it cannot
- * locate the node, it leaves the iterator alone and just returns -1.
- */
- int find (const T &item, ITERATOR &iter) const;
-
- /// Reset the ACE_Ordered_MultiSet to be empty.
- /**
- * Delete the nodes inside the set.
- */
- void reset (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
-
- /**
- * Insert @a item, starting its search at the position given,
- * and if successful updates the passed pointer to point to
- * the newly inserted item's node.
- */
- int insert_from (const T &item, ACE_DNode<T> *start_position,
- ACE_DNode<T> **new_position);
-
- /**
- * Looks for first occurance of @a item in the ordered set, using the
- * passed starting position as a hint: if there is such an instance, it
- * updates the new_position pointer to point to this node and returns 0;
- * if there is no such node, then if there is a node before where the
- * item would have been, it updates the new_position pointer to point
- * to this node and returns -1; if there is no such node, then if there
- * is a node after where the item would have been, it updates the
- * new_position pointer to point to this node (or 0 if there is no such
- * node) and returns 1;
- */
- int locate (const T &item, ACE_DNode<T> *start_position,
- ACE_DNode<T> *&new_position) const;
-
- /// Delete all the nodes in the Set.
- void delete_nodes (void);
-
- /// Copy nodes into this set.
- void copy_nodes (const ACE_Ordered_MultiSet<T> &);
-
- /// Head of the bilinked list of Nodes.
- ACE_DNode<T> *head_;
-
- /// Head of the bilinked list of Nodes.
- ACE_DNode<T> *tail_;
-
- /// Current size of the set.
- size_t cur_size_;
-
- /// Allocation strategy of the set.
- ACE_Allocator *allocator_;
-};
-
-// ****************************************************************
-
-/**
- * @class ACE_Array
- *
- * @brief A dynamic array class.
- *
- * This class extends ACE_Array_Base, adding comparison operators.
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure
- * Dynamic array
- * - Duplicates allowed?
- * Yes
- * - Random access allowed?
- * Yes
- * - Search speed
- * N/A
- * - Insert/replace speed
- * O(1)
- * - Iterator still valid after change to container?
- * - In general, yes.
- * - If array size is changed during iteration, no.
- * - Frees memory for removed elements?
- * No
- * - Items inserted by
- * Value
- * - Requirements for contained type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- * -# operator!=
- *
- * @sa ACE_Array_Base. This class inherits its operations and requirements.
- */
-template <class T>
-class ACE_Array : public ACE_Array_Base<T>
-{
-public:
- // Define a "trait"
- typedef T TYPE;
-
- typedef ACE_Array_Iterator<T> ITERATOR;
-
- // = Exceptions.
-
- // = Initialization and termination methods.
-
- /// Dynamically create an uninitialized array.
- /**
- * Initialize an empty array of the specified size using the provided
- * allocation strategy.
- */
- ACE_Array (size_t size = 0,
- ACE_Allocator* alloc = 0);
-
- /// Dynamically initialize the entire array to the <default_value>.
- /**
- * Initialize an array the given size placing the default_value in each index.
- */
- ACE_Array (size_t size,
- const T &default_value,
- ACE_Allocator* alloc = 0);
-
- ///Copy constructor.
- /**
- * The copy constructor performs initialization by making an exact
- * copy of the contents of parameter <s>, i.e., *this == s will
- * return true.
- */
- ACE_Array (const ACE_Array<T> &s);
-
- ///Assignment operator
- /**
- * Assignment operator performs an assignment by making an exact
- * copy of the contents of parameter <s>, i.e., *this == s will
- * return true. Note that if the <max_size_> of <array_> is >= than
- * <s.max_size_> we can copy it without reallocating. However, if
- * <max_size_> is < <s.max_size_> we must delete the <array_>,
- * reallocate a new <array_>, and then copy the contents of <s>.
- */
- void operator= (const ACE_Array<T> &s);
-
- // = Compare operators
-
- ///Equality comparison operator.
- /**
- * Compare this array with <s> for equality. Two arrays are equal
- * if their <size>'s are equal and all the elements from 0 .. <size>
- * are equal.
- */
- int operator== (const ACE_Array<T> &s) const;
-
- ///Inequality comparison operator.
- /**
- * Compare this array with <s> for inequality such that <*this> !=
- * <s> is always the complement of the boolean return value of
- * <*this> == <s>.
- */
- int operator!= (const ACE_Array<T> &s) const;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Containers_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Containers_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Containers_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_CONTAINERS_T_H */
diff --git a/ace/Containers_T.i b/ace/Containers_T.i
deleted file mode 100644
index 6ec7895fce2..00000000000
--- a/ace/Containers_T.i
+++ /dev/null
@@ -1,469 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Containers.i
-
-template <class T> ACE_INLINE int
-ACE_Bounded_Stack<T>::is_empty (void) const
-{
- ACE_TRACE ("ACE_Bounded_Stack<T>::is_empty");
- return this->top_ == 0;
-}
-
-template <class T> ACE_INLINE int
-ACE_Bounded_Stack<T>::is_full (void) const
-{
- ACE_TRACE ("ACE_Bounded_Stack<T>::is_full");
- return this->top_ >= this->size_;
-}
-
-template <class T> ACE_INLINE int
-ACE_Bounded_Stack<T>::push (const T &new_item)
-{
- ACE_TRACE ("ACE_Bounded_Stack<T>::push");
- if (this->is_full () == 0)
- {
- this->stack_[this->top_++] = new_item;
- return 0;
- }
- else
- return -1;
-}
-
-template <class T> ACE_INLINE int
-ACE_Bounded_Stack<T>::pop (T &item)
-{
- ACE_TRACE ("ACE_Bounded_Stack<T>::pop");
- if (this->is_empty () == 0)
- {
- item = this->stack_[--this->top_];
- return 0;
- }
- else
- return -1;
-}
-
-template <class T> ACE_INLINE int
-ACE_Bounded_Stack<T>::top (T &item) const
-{
- ACE_TRACE ("ACE_Bounded_Stack<T>::top");
- if (this->is_empty () == 0)
- {
- item = this->stack_[this->top_ - 1];
- return 0;
- }
- else
- return -1;
-}
-
-template <class T> ACE_INLINE size_t
-ACE_Bounded_Stack<T>::size (void) const
-{
- return this->size_;
-}
-
-//----------------------------------------
-
-template <class T, size_t ACE_SIZE> ACE_INLINE int
-ACE_Fixed_Stack<T, ACE_SIZE>::is_empty (void) const
-{
- ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::is_empty");
- return this->top_ == 0;
-}
-
-template <class T, size_t ACE_SIZE> ACE_INLINE int
-ACE_Fixed_Stack<T, ACE_SIZE>::is_full (void) const
-{
- ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::is_full");
- return this->top_ >= this->size_;
-}
-
-template <class T, size_t ACE_SIZE> ACE_INLINE int
-ACE_Fixed_Stack<T, ACE_SIZE>::push (const T &new_item)
-{
- ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::push");
- if (this->is_full () == 0)
- {
- this->stack_[this->top_++] = new_item;
- return 0;
- }
- else
- return -1;
-}
-
-template <class T, size_t ACE_SIZE> ACE_INLINE int
-ACE_Fixed_Stack<T, ACE_SIZE>::pop (T &item)
-{
- ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::pop");
- if (this->is_empty () == 0)
- {
- item = this->stack_[--this->top_];
- return 0;
- }
- else
- return -1;
-}
-
-template <class T, size_t ACE_SIZE> ACE_INLINE int
-ACE_Fixed_Stack<T, ACE_SIZE>::top (T &item) const
-{
- ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::top");
- if (this->is_empty () == 0)
- {
- item = this->stack_[this->top_ - 1];
- return 0;
- }
- else
- return -1;
-}
-
-template <class T, size_t ACE_SIZE> ACE_INLINE size_t
-ACE_Fixed_Stack<T, ACE_SIZE>::size (void) const
-{
- return this->size_;
-}
-
-template <class T> ACE_INLINE int
-ACE_Unbounded_Stack<T>::is_empty (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Stack<T>::is_empty");
- return this->head_ == this->head_->next_;
-}
-
-template <class T> ACE_INLINE int
-ACE_Unbounded_Stack<T>::top (T &item) const
-{
- ACE_TRACE ("ACE_Unbounded_Stack<T>::top");
- if (this->is_empty () == 0)
- {
- item = this->head_->next_->item_;
- return 0;
- }
- else
- return -1;
-}
-
-template <class T> ACE_INLINE int
-ACE_Unbounded_Stack<T>::is_full (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Stack<T>::is_full");
- return 0; // ???
-}
-
-template <class T> ACE_INLINE size_t
-ACE_Unbounded_Stack<T>::size (void) const
-{
- return this->cur_size_;
-}
-
-// ---
-
-
-// ---
-
-template <class T, size_t ACE_SIZE> ACE_INLINE int
-ACE_Fixed_Set<T, ACE_SIZE>::is_empty (void) const
-{
- ACE_TRACE ("ACE_Fixed_Set<T>::is_empty");
- return this->cur_size_ == 0;
-}
-
-template <class T, size_t ACE_SIZE> ACE_INLINE int
-ACE_Fixed_Set<T, ACE_SIZE>::is_full (void) const
-{
- ACE_TRACE ("ACE_Fixed_Set<T, ACE_SIZE>::is_full");
- return this->cur_size_ == this->max_size_;
-}
-
-// ---
-
-template <class T> ACE_INLINE int
-ACE_Bounded_Set<T>::is_empty (void) const
-{
- ACE_TRACE ("ACE_Bounded_Set<T>::is_empty");
- return this->cur_size_ == 0;
-}
-
-#if !defined (__Lynx__)
- // LynxOS 3.0.0 native g++ compiler raises internal error with this inline.
-template <class T> ACE_INLINE int
-ACE_Bounded_Set<T>::is_full (void) const
-{
- ACE_TRACE ("ACE_Bounded_Set<T>::is_full");
- return this->cur_size_ == this->max_size_;
-}
-#endif /* ! __Lynx__ */
-
-// --
-
-template <class T> ACE_INLINE int
-ACE_Ordered_MultiSet_Iterator<T>::first (void)
-{
- ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::first");
- current_ = set_.head_;
-
- return (current_ ? 1 : 0);
-}
-
-template <class T> ACE_INLINE int
-ACE_Ordered_MultiSet_Iterator<T>::last (void)
-{
- ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::last");
- current_ = set_.tail_;
-
- return (current_ ? 1 : 0);
-}
-
-template <class T> ACE_INLINE int
-ACE_Ordered_MultiSet_Iterator<T>::advance (void)
-{
- ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::advance");
-
- current_ = current_ ? current_->next_ : 0;
-
- return (current_ ? 1 : 0);
-}
-
-template <class T> ACE_INLINE int
-ACE_Ordered_MultiSet_Iterator<T>::retreat (void)
-{
- ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::retreat");
-
- current_ = current_ ? current_->prev_ : 0;
-
- return (current_ ? 1 : 0);
-}
-
-template <class T> ACE_INLINE int
-ACE_Ordered_MultiSet_Iterator<T>::done (void) const
-{
- ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::done");
-
- return (current_ ? 0 : 1);
-}
-
-template <class T> ACE_INLINE void
-ACE_Ordered_MultiSet_Iterator<T>::dump (void) const
-{
-// ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::dump");
-}
-
-
-
-// --
-
-template <class T> ACE_INLINE int
-ACE_Ordered_MultiSet<T>::is_empty (void) const
-{
- ACE_TRACE ("ACE_Ordered_MultiSet<T>::is_empty");
- return this->cur_size_ > 0 ? 0 : 1;
-}
-
-template <class T> ACE_INLINE size_t
-ACE_Ordered_MultiSet<T>::size (void) const
-{
-// ACE_TRACE ("ACE_Ordered_MultiSet<T>::size");
- return this->cur_size_;
-}
-
-// ****************************************************************
-
-template <class T> ACE_INLINE
-ACE_Array<T>::ACE_Array (size_t size,
- ACE_Allocator *alloc)
- : ACE_Array_Base<T> (size, alloc)
-{
-}
-
-template <class T> ACE_INLINE
-ACE_Array<T>::ACE_Array (size_t size,
- const T &default_value,
- ACE_Allocator *alloc)
- : ACE_Array_Base<T> (size, default_value, alloc)
-{
-}
-
-// The copy constructor (performs initialization).
-
-template <class T> ACE_INLINE
-ACE_Array<T>::ACE_Array (const ACE_Array<T> &s)
- : ACE_Array_Base<T> (s)
-{
-}
-
-// Assignment operator (performs assignment).
-
-template <class T> ACE_INLINE void
-ACE_Array<T>::operator= (const ACE_Array<T> &s)
-{
- // Check for "self-assignment".
-
- if (this != &s)
- this->ACE_Array_Base<T>::operator= (s);
-}
-
-// Compare this array with <s> for inequality.
-
-template <class T> ACE_INLINE int
-ACE_Array<T>::operator!= (const ACE_Array<T> &s) const
-{
- return !(*this == s);
-}
-
-// ****************************************************************
-
-
-// ****************************************************************
-
-template <class T> ACE_INLINE void
-ACE_DLList<T>::operator= (const ACE_DLList<T> &l)
-{
- *(ACE_DLList_Base *) this = l;
-}
-
-template <class T> ACE_INLINE int
-ACE_DLList<T>::get (T *&item, size_t index)
-{
- ACE_DLList_Node *node;
- int result = ACE_DLList_Base::get (node, index);
- if (result != -1)
- item = (T *) node->item_;
- return result;
-}
-
-template <class T> ACE_INLINE void
-ACE_DLList<T>::dump (void) const
-{
- ACE_DLList_Base::dump ();
-}
-
-template <class T> ACE_INLINE int
-ACE_DLList<T>::remove (ACE_DLList_Node *n)
-{
- int result = ACE_DLList_Base::remove (n);
- ACE_DES_FREE (n,
- this->allocator_->free,
- ACE_DLList_Node);
- return result;
-}
-
-template <class T> ACE_INLINE
-ACE_DLList<T>::ACE_DLList (ACE_Allocator *alloc )
- : ACE_DLList_Base (alloc)
-{
-}
-
-template <class T> ACE_INLINE
-ACE_DLList<T>::ACE_DLList (const ACE_DLList<T> &l)
- : ACE_DLList_Base ((ACE_DLList<T> &) l)
-{
-}
-
-template <class T> ACE_INLINE
-ACE_DLList<T>::~ACE_DLList (void)
-{
- while (this->delete_head ()) ;
-}
-
-template <class T> ACE_INLINE int
-ACE_DLList_Iterator<T>::remove (void)
-{
- ACE_DLList_Node *temp = this->ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::next ();
- this->ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::advance ();
- return list_->remove (temp);
-}
-
-template <class T> ACE_INLINE
-ACE_DLList_Iterator<T>::ACE_DLList_Iterator (ACE_DLList<T> &l)
- : ACE_Double_Linked_List_Iterator <ACE_DLList_Node> ((ACE_DLList_Base &)l),
- list_ (&l)
-{
-}
-
-template <class T> ACE_INLINE void
-ACE_DLList_Iterator<T>::reset (ACE_DLList<T> &l)
-{
- list_ = &l;
- this->ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::reset ((ACE_DLList_Base &)l);
-}
-
-template <class T> ACE_INLINE int
-ACE_DLList_Iterator<T>::next (T *&ptr)
-{
- ACE_DLList_Node *temp =
- ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::next ();
- if (temp)
- ptr = (T *) temp->item_;
- return temp ? 1 : 0;
-}
-
-template <class T> ACE_INLINE T *
-ACE_DLList_Iterator<T>::next (void) const
-{
- ACE_DLList_Node *temp = ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::next ();
- return (T *) (temp ? temp->item_ : 0);
-}
-
-template <class T> ACE_INLINE int
-ACE_DLList_Iterator<T>::advance (void)
-{
- return this->ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::advance ();
-}
-
-template <class T> ACE_INLINE void
-ACE_DLList_Iterator<T>::dump (void) const
-{
- ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::dump ();
-}
-
-
-template <class T> ACE_INLINE int
-ACE_DLList_Reverse_Iterator<T>::remove (void)
-{
- ACE_DLList_Node *temp = ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::next ();
- this->ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::advance ();
- return list_->remove (temp);
-}
-
-template <class T> ACE_INLINE
-ACE_DLList_Reverse_Iterator<T>::ACE_DLList_Reverse_Iterator (ACE_DLList<T> &l)
- : ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node> ((ACE_DLList_Base &)l),
- list_ (&l)
-{
-}
-
-template <class T> ACE_INLINE void
-ACE_DLList_Reverse_Iterator<T>::reset (ACE_DLList<T> &l)
-{
- list_ = &l;
- this->ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::reset ((ACE_DLList_Base &)l);
-}
-
-template <class T> ACE_INLINE int
-ACE_DLList_Reverse_Iterator<T>::advance (void)
-{
- return ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::advance ();
-}
-
-template <class T> ACE_INLINE int
-ACE_DLList_Reverse_Iterator<T>::next (T *&ptr)
-{
- ACE_DLList_Node *temp =
- ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::next ();
- ptr = (T *) temp->item_;
- return ptr ? 1 : 0;
-}
-
-template <class T> ACE_INLINE T *
-ACE_DLList_Reverse_Iterator<T>::next (void) const
-{
- ACE_DLList_Node *temp = ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::next ();
- return (T *) (temp ? temp->item_ : 0);
-}
-
-
-template <class T> ACE_INLINE void
-ACE_DLList_Reverse_Iterator<T>::dump (void) const
-{
- ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::dump ();
-}
diff --git a/ace/Copy_Disabled.cpp b/ace/Copy_Disabled.cpp
deleted file mode 100644
index 26c3d36834e..00000000000
--- a/ace/Copy_Disabled.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- C++ -*- */
-/**
- * @file Copy_Disabled.cpp
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-
-#include "ace/Copy_Disabled.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, Copy_Disabled, "$Id$")
-
-ACE_Copy_Disabled::ACE_Copy_Disabled (void)
-{
-}
-
diff --git a/ace/Copy_Disabled.h b/ace/Copy_Disabled.h
deleted file mode 100644
index d408c013b86..00000000000
--- a/ace/Copy_Disabled.h
+++ /dev/null
@@ -1,60 +0,0 @@
-// -*- C++ -*-
-
-//===========================================================================
-/**
- * @file Copy_Disabled.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-//===========================================================================
-
-#ifndef ACE_COPY_DISABLED_H
-#define ACE_COPY_DISABLED_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Copy_Disabled
- *
- * @brief Helper class to disable copy construction and assignment
- *
- * Classes used to control OS and other resources are not "canonical",
- * i.e. they have their copy constructor and assignment operators
- * disabled.
- * This is often done by making the copy constructor and assignment
- * operators private, effectively disallowing copying by clients of
- * the class (including derived classes). If the copy constructor and
- * assingment operators are left unimplemented then the class itself
- * cannot make any copies of its instances, because it would result in
- * link errors.
- *
- * To use this class simply use private inheritance:
- *
- * class Foo : private ACE_Copy_Disabled
- * {
- * // code here
- * };
- *
- */
-class ACE_Export ACE_Copy_Disabled
-{
-public:
- /// Default constructor
- ACE_Copy_Disabled (void);
-
-private:
- ACE_Copy_Disabled (const ACE_Copy_Disabled &);
- ACE_Copy_Disabled &operator= (const ACE_Copy_Disabled &);
-};
-
-#include "ace/post.h"
-
-#endif /* ACE_COPY_DISABLED_H */
diff --git a/ace/DEV.cpp b/ace/DEV.cpp
deleted file mode 100644
index 0aa66003edb..00000000000
--- a/ace/DEV.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// DEV.cpp
-// $Id$
-
-
-#include "ace/DEV.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/DEV.i"
-#endif
-
-ACE_RCSID(ace, DEV, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_DEV)
-
-void
-ACE_DEV::dump (void) const
-{
- ACE_TRACE ("ACE_DEV::dump");
-}
-
-// This is the do-nothing constructor.
-
-ACE_DEV::ACE_DEV (void)
-{
- ACE_TRACE ("ACE_DEV::ACE_DEV");
-}
-
-// Close the device
-
-int
-ACE_DEV::close (void)
-{
- ACE_TRACE ("ACE_DEV::close");
- int result = ACE_OS::close (this->get_handle ());
- this->set_handle (ACE_INVALID_HANDLE);
- return result;
-}
diff --git a/ace/DEV.h b/ace/DEV.h
deleted file mode 100644
index 46213ececdf..00000000000
--- a/ace/DEV.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file DEV.h
- *
- * $Id$
- *
- * @author Gerhard Lenzer
- */
-//=============================================================================
-
-
-#ifndef ACE_DEV_H
-#define ACE_DEV_H
-#include "ace/pre.h"
-
-#include "ace/IO_SAP.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/DEV_Addr.h"
-
-// The following is necessary since many C++ compilers don't support
-// typedef'd types inside of classes used as formal template
-// arguments... ;-(. Luckily, using the C++ preprocessor I can hide
-// most of this nastiness!
-
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-#define ACE_DEV_CONNECTOR ACE_DEV_Connector
-#define ACE_DEV_STREAM ACE_DEV_Stream
-#else /* TEMPLATES are broken (must be a cfront-based compiler...) */
-#define ACE_DEV_CONNECTOR ACE_DEV_Connector, ACE_DEV_Addr
-#define ACE_DEV_STREAM ACE_DEV_Stream, ACE_DEV_Addr
-#endif /* ACE_TEMPLATE_TYPEDEFS */
-
-/**
- * @class ACE_DEV
- *
- * @brief Defines the member functions for the base class of the
- * ACE_DEV abstraction.
- */
-class ACE_Export ACE_DEV : public ACE_IO_SAP
-{
-public:
- /// Close down the DEVICE
- int close (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /**
- * Disable signal <signum>
- * This is here to prevent Win32 from
- * disabling SPIPE using socket calls
- */
- int disable (int signum) const ;
-
-protected:
- /// Ensure that this class is an abstract base class
- ACE_DEV (void);
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/DEV.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_DEV_H */
diff --git a/ace/DEV.i b/ace/DEV.i
deleted file mode 100644
index 529824f129c..00000000000
--- a/ace/DEV.i
+++ /dev/null
@@ -1,15 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// DEV.i
-
-ASYS_INLINE int
-ACE_DEV::disable (int signum) const
-{
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG (signum) ;
- return 0 ;
-#else /* ACE_WIN32 */
- return ACE_IO_SAP::disable (signum) ;
-#endif /* ACE_WIN32 */
-}
diff --git a/ace/DEV_Addr.cpp b/ace/DEV_Addr.cpp
deleted file mode 100644
index 43dde161857..00000000000
--- a/ace/DEV_Addr.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-// DEV_Addr.cpp
-// $Id$
-
-#include "ace/DEV_Addr.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/DEV_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, DEV_Addr, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_DEV_Addr)
-
-void
-ACE_DEV_Addr::dump (void) const
-{
- ACE_TRACE ("ACE_DEV_Addr::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("devname_ = %s"), this->devname_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Do nothing constructor.
-
-ACE_DEV_Addr::ACE_DEV_Addr (void)
- : ACE_Addr (AF_DEV, sizeof this->devname_)
-{
- ACE_TRACE ("ACE_DEV_Addr::ACE_DEV_Addr");
-
- (void) ACE_OS::memset ((void *) &this->devname_,
- 0, sizeof this->devname_);
-}
-
-int
-ACE_DEV_Addr::set (const ACE_DEV_Addr &sa)
-{
- this->base_set (sa.get_type (), sa.get_size ());
-
- if (sa.get_type () == AF_ANY)
- (void) ACE_OS::memset ((void *) &this->devname_,
- 0,
- sizeof this->devname_);
- else
- (void) ACE_OS::memcpy ((void *) &this->devname_,
- (void *) &sa.devname_,
- sa.get_size ());
- return 0;
-}
-
-// Copy constructor.
-
-ACE_DEV_Addr::ACE_DEV_Addr (const ACE_DEV_Addr &sa)
- : ACE_Addr (AF_DEV, sizeof this->devname_)
-{
- ACE_TRACE ("ACE_DEV_Addr::ACE_DEV_Addr");
-
- this->set (sa);
-}
-
-ACE_DEV_Addr::ACE_DEV_Addr (const ACE_TCHAR *devname)
- : ACE_Addr (AF_DEV, sizeof this->devname_)
-{
- ACE_TRACE ("ACE_DEV_Addr::ACE_DEV_Addr");
-
- this->set (devname);
-}
-
-ACE_DEV_Addr &
-ACE_DEV_Addr::operator= (const ACE_DEV_Addr &sa)
-{
- ACE_TRACE ("ACE_DEV_Addr::operator=");
-
- if (this != &sa)
- (void) ACE_OS::memcpy ((void *) &this->devname_,
- (void *) &sa.devname_,
- sa.get_size ());
- return *this;
-}
-
diff --git a/ace/DEV_Addr.h b/ace/DEV_Addr.h
deleted file mode 100644
index a549fb74b6d..00000000000
--- a/ace/DEV_Addr.h
+++ /dev/null
@@ -1,86 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file DEV_Addr.h
- *
- * $Id$
- *
- * @author Gerhard Lenzer and Douglas C. Schmidt
- */
-//==========================================================================
-
-
-#ifndef ACE_DEV_ADDR_H
-#define ACE_DEV_ADDR_H
-
-#include "ace/pre.h"
-
-#include "ace/Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_DEV_Addr
- *
- * @brief Defines device address family address format.
- */
-class ACE_Export ACE_DEV_Addr : public ACE_Addr
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_DEV_Addr (void);
-
- /// Copy constructor.
- ACE_DEV_Addr (const ACE_DEV_Addr &sa);
-
- /// Acts like a copy constructor.
- int set (const ACE_DEV_Addr &sa);
-
- /// Create a ACE_DEV_Addr from a device name.
- ACE_EXPLICIT ACE_DEV_Addr (const ACE_TCHAR *devname);
-
- /// Create a ACE_Addr from a ACE_DEV pathname.
- void set (const ACE_TCHAR *devname);
-
- /// Assignment operator.
- ACE_DEV_Addr &operator= (const ACE_DEV_Addr &);
-
- /// Return a pointer to the address.
- virtual void *get_addr (void) const;
-
- /// Transform the current address into string format.
- virtual int addr_to_string (ACE_TCHAR *addr, size_t) const;
-
- /// Compare two addresses for equality.
- int operator == (const ACE_DEV_Addr &SAP) const;
-
- /// Compare two addresses for inequality.
- int operator != (const ACE_DEV_Addr &SAP) const;
-
- /// Return the path name used for the rendezvous point.
- const ACE_TCHAR *get_path_name (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Name of the device.
- ACE_TCHAR devname_[MAXNAMLEN + 1];
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/DEV_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_DEV_ADDR_H */
diff --git a/ace/DEV_Addr.i b/ace/DEV_Addr.i
deleted file mode 100644
index 3be347d99b9..00000000000
--- a/ace/DEV_Addr.i
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/SString.h"
-
-ACE_INLINE void
-ACE_DEV_Addr::set (const ACE_TCHAR *devname)
-{
- ACE_TRACE ("ACE_DEV_Addr::set");
-
- this->ACE_Addr::base_set
- (AF_DEV, ACE_static_cast (int, ACE_OS::strlen (devname)));
- ACE_OS::strsncpy (this->devname_, devname, MAXNAMLEN);
-}
-
-// Transform the current address into string format.
-
-ACE_INLINE int
-ACE_DEV_Addr::addr_to_string (ACE_TCHAR *s, size_t len) const
-{
- ACE_TRACE ("ACE_DEV_Addr::addr_to_string");
-
- ACE_OS::strsncpy (s, this->devname_, len);
- return 0;
-}
-
-// Return a pointer to the address.
-
-ACE_INLINE void *
-ACE_DEV_Addr::get_addr (void) const
-{
- ACE_TRACE ("ACE_DEV_Addr::get_addr");
-
- return (void *) &this->devname_;
-}
-
-// Compare two addresses for equality.
-
-ACE_INLINE int
-ACE_DEV_Addr::operator == (const ACE_DEV_Addr &sap) const
-{
- ACE_TRACE ("ACE_DEV_Addr::operator ==");
-
- return ACE_OS::strcmp (this->devname_, sap.devname_) == 0;
-}
-
-// Compare two addresses for inequality.
-
-ACE_INLINE int
-ACE_DEV_Addr::operator != (const ACE_DEV_Addr &sap) const
-{
- ACE_TRACE ("ACE_DEV_Addr::operator !=");
-
- return !((*this) == sap); // This is lazy, of course... ;-).
-}
-
-// Return the path name used for the rendezvous point.
-
-ACE_INLINE const ACE_TCHAR *
-ACE_DEV_Addr::get_path_name (void) const
-{
- ACE_TRACE ("ACE_DEV_Addr::get_path_name");
-
- return this->devname_;
-}
diff --git a/ace/DEV_Connector.cpp b/ace/DEV_Connector.cpp
deleted file mode 100644
index 35463c05aaf..00000000000
--- a/ace/DEV_Connector.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// DEV_Connector.cpp
-// $Id$
-
-#include "ace/DEV_Connector.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/DEV_Connector.i"
-#endif
-
-ACE_RCSID(ace, DEV_Connector, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_DEV_Connector)
-
-void
-ACE_DEV_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_DEV_Connector::dump");
-}
-
-ACE_DEV_Connector::ACE_DEV_Connector (void)
-{
- ACE_TRACE ("ACE_DEV_Connector::ACE_DEV_Connector");
-}
-
-int
-ACE_DEV_Connector::connect (ACE_DEV_IO &new_io,
- const ACE_DEV_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &,
- int,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_DEV_Connector::connect");
-
- ACE_HANDLE handle = ACE_Handle_Ops::handle_timed_open (timeout,
- remote_sap.get_path_name (),
- flags, perms);
- new_io.set_handle (handle);
- new_io.addr_ = remote_sap; // class copy.
- return handle == ACE_INVALID_HANDLE ? -1 : 0;
-}
-
diff --git a/ace/DEV_Connector.h b/ace/DEV_Connector.h
deleted file mode 100644
index c43e726cd59..00000000000
--- a/ace/DEV_Connector.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file DEV_Connector.h
- *
- * $Id$
- *
- * @author Gerhard Lenzer and Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_DEV_CONNECTOR_H
-#define ACE_DEV_CONNECTOR_H
-#include "ace/pre.h"
-
-#include "ace/DEV_IO.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_DEV_Connector
- *
- * @brief Defines an active connection factory for the ACE_DEV wrappers.
- */
-class ACE_Export ACE_DEV_Connector
-{
-public:
- /// Default constructor.
- ACE_DEV_Connector (void);
-
- /**
- * Actively connect and produce a <new_stream> if things go well.
- * The <remote_sap> is the address that we are trying to connect
- * with. The <timeout> is the amount of time to wait to connect.
- * If it's 0 then we block indefinitely. If *timeout == {0, 0} then
- * the connection is done using non-blocking mode. In this case, if
- * the connection can't be made immediately the value of -1 is
- * returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then
- * this is the maximum amount of time to wait before timing out. If the
- * time expires before the connection is made <errno == ETIME>. The
- * <local_sap> is the value of local address to bind to. If it's
- * the default value of <ACE_Addr::sap_any> then the user is letting
- * the OS do the binding. If <reuse_addr> == 1 then the
- * <local_addr> is reused, even if it hasn't been cleanedup yet.
- * The <flags> and <perms> arguments are passed down to the <open>
- * method.
- */
- ACE_DEV_Connector (ACE_DEV_IO &new_io,
- const ACE_DEV_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = O_RDWR,
- int perms = 0);
-
- /**
- * Actively connect and produce a <new_stream> if things go well.
- * The <remote_sap> is the address that we are trying to connect
- * with. The <timeout> is the amount of time to wait to connect.
- * If it's 0 then we block indefinitely. If *timeout == {0, 0} then
- * the connection is done using non-blocking mode. In this case, if
- * the connection can't be made immediately the value of -1 is
- * returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then
- * this is the maximum amount of time to wait before timing out. If the
- * time expires before the connection is made <errno == ETIME>. The
- * <local_sap> is the value of local address to bind to. If it's
- * the default value of <ACE_Addr::sap_any> then the user is letting
- * the OS do the binding. If <reuse_addr> == 1 then the
- * <local_addr> is reused, even if it hasn't been cleanedup yet.
- * The <flags> and <perms> arguments are passed down to the <open>
- * method.
- */
- int connect (ACE_DEV_IO &new_io,
- const ACE_DEV_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = O_RDWR,
- int perms = 0);
-
- /// Resets any event associations on this handle
- int reset_new_handle (ACE_HANDLE handle);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- // = Meta-type info
- typedef ACE_DEV_Addr PEER_ADDR;
- typedef ACE_DEV_IO PEER_STREAM;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/DEV_Connector.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_DEV_CONNECTOR_H */
diff --git a/ace/DEV_Connector.i b/ace/DEV_Connector.i
deleted file mode 100644
index 8b2af2372f0..00000000000
--- a/ace/DEV_Connector.i
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Creates a Local ACE_DEV.
-
-ASYS_INLINE
-ACE_DEV_Connector::ACE_DEV_Connector (ACE_DEV_IO &new_io,
- const ACE_DEV_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_DEV_Connector::ACE_DEV_Connector");
- if (this->connect (new_io, remote_sap, timeout, local_sap,
- reuse_addr, flags, perms) == ACE_IO_SAP::INVALID_HANDLE
- && timeout != 0 && !(errno == EWOULDBLOCK || errno == ETIME))
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("address %s, %p\n"),
- remote_sap.get_path_name (), ACE_LIB_TEXT ("ACE_DEV_IO")));
-}
-
-ASYS_INLINE int
-ACE_DEV_Connector::reset_new_handle (ACE_HANDLE handle)
-{
- ACE_UNUSED_ARG (handle);
- // Nothing to do here since the handle is not a socket
- return 0;
-}
-
diff --git a/ace/DEV_IO.cpp b/ace/DEV_IO.cpp
deleted file mode 100644
index 221dc888e35..00000000000
--- a/ace/DEV_IO.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-// DEV_IO.cpp
-// $Id$
-
-#include "ace/DEV_IO.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/DEV_IO.i"
-#endif
-
-ACE_RCSID(ace, DEV_IO, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_DEV_IO)
-
-// Return the local endpoint address.
-
-int
-ACE_DEV_IO::get_local_addr (ACE_DEV_Addr &addr) const
-{
- ACE_TRACE ("ACE_DEV_IO::get_local_addr");
-
- addr = this->addr_;
- return 0;
-}
-
-// Return the address of the remotely connected peer (if there is
-// one).
-
-int
-ACE_DEV_IO::get_remote_addr (ACE_DEV_Addr &addr) const
-{
- ACE_TRACE ("ACE_DEV_IO::get_remote_addr");
- addr = this->addr_;
- return 0;
-}
-
-void
-ACE_DEV_IO::dump (void) const
-{
- ACE_TRACE ("ACE_DEV_IO::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->addr_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Simple-minded do nothing constructor.
-
-ACE_DEV_IO::ACE_DEV_IO (void)
-{
- ACE_TRACE ("ACE_DEV_IO::ACE_DEV_IO");
-}
-
-// Send N char *ptrs and int lengths. Note that the char *'s precede
-// the ints (basically, an varargs version of writev). The count N is
-// the *total* number of trailing arguments, *not* a couple of the
-// number of tuple pairs!
-
-ssize_t
-ACE_DEV_IO::send (size_t n, ...) const
-{
- ACE_TRACE ("ACE_DEV_IO::send");
- va_list argp;
- int total_tuples = ACE_static_cast (int, (n / 2));
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (int i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, int);
- }
-
- ssize_t result = ACE_OS::writev (this->get_handle (), iovp, total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
-}
-
-// This is basically an interface to ACE_OS::readv, that doesn't use the
-// struct iovec explicitly. The ... can be passed as an arbitrary
-// number of (char *ptr, int len) tuples. However, the count N is the
-// *total* number of trailing arguments, *not* a couple of the number
-// of tuple pairs!
-
-ssize_t
-ACE_DEV_IO::recv (size_t n, ...) const
-{
- ACE_TRACE ("ACE_DEV_IO::recv");
- va_list argp;
- int total_tuples = ACE_static_cast (int, (n / 2));
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (int i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, int);
- }
-
- ssize_t result = ACE_OS::readv (this->get_handle (), iovp, total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
-}
-
diff --git a/ace/DEV_IO.h b/ace/DEV_IO.h
deleted file mode 100644
index b0b593fb280..00000000000
--- a/ace/DEV_IO.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file DEV_IO.h
- *
- * $Id$
- *
- * @author Gerhard Lenzer
- * @author Douglas C. Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_DEV_IO_H
-#define ACE_DEV_IO_H
-#include "ace/pre.h"
-
-#include "ace/DEV.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/ACE.h"
-
-
-/**
- * @class ACE_DEV_IO
- *
- * @brief Read/Write operations on Devices.
- */
-class ACE_Export ACE_DEV_IO : public ACE_DEV
-{
-public:
- friend class ACE_DEV_Connector;
-
- /// Default constructor.
- ACE_DEV_IO (void);
-
- // = Various send operations.
- /// send upto <n> bytes in <buf>.
- ssize_t send (const void *buf, size_t n) const;
-
- /// Recv upto <n> bytes in <buf>.
- ssize_t recv (void *buf, size_t n) const;
-
- /// Send n bytes, keep trying until n are sent.
- ssize_t send_n (const void *buf, size_t n) const;
-
- /// Recv n bytes, keep trying until n are received.
- ssize_t recv_n (void *buf, size_t n) const;
-
-#if defined (ACE_HAS_STREAM_PIPES)
- /// Recv bytes via STREAM pipes using "band" mode.
- ssize_t recv (ACE_Str_Buf *cntl,
- ACE_Str_Buf *data,
- int *band,
- int *flags) const;
-
- /// Send bytes via STREAM pipes using "band" mode.
- ssize_t send (const ACE_Str_Buf *cntl,
- const ACE_Str_Buf *data,
- int band,
- int flags) const;
-
- /// Recv <cntl> and <data> via STREAM pipes.
- ssize_t recv (ACE_Str_Buf *cntl,
- ACE_Str_Buf *data,
- int *flags) const;
-
- /// Send <cntl> and <data> via STREAM pipes.
- ssize_t send (const ACE_Str_Buf *cntl,
- const ACE_Str_Buf *data,
- int flags = 0) const;
-#endif /* ACE_HAS_STREAM_PIPES */
-
- /// Send iovecs via <::writev>.
- ssize_t send (const iovec iov[], size_t n) const;
-
- /// Recv iovecs via <::readv>.
- ssize_t recv (iovec iov[], size_t n) const;
-
- /**
- * Send N char *ptrs and int lengths. Note that the char *'s
- * precede the ints (basically, an varargs version of writev). The
- * count N is the *total* number of trailing arguments, *not* a
- * couple of the number of tuple pairs!
- */
- ssize_t send (size_t n, ...) const;
-
- /**
- * This is an interface to ::readv, that doesn't use the struct
- * iovec explicitly. The ... can be passed as an arbitrary number
- * of (char *ptr, int len) tuples. However, the count N is the
- * *total* number of trailing arguments, *not* a couple of the
- * number of tuple pairs!
- */
- ssize_t recv (size_t n, ...) const;
-
- /// Send <n> bytes via Win32 WriteFile using overlapped I/O.
- ssize_t send (const void *buf, size_t n, ACE_OVERLAPPED *overlapped) const;
-
- /// Recv <n> bytes via Win32 ReadFile using overlapped I/O.
- ssize_t recv (void *buf, size_t n, ACE_OVERLAPPED *overlapped) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = The following two methods are no-ops to keep the
- // <ACE_Connector> happy.
- /// Return the local endpoint address.
- int get_local_addr (ACE_DEV_Addr &) const;
-
- /// Return the address of the remotely connected peer (if there is
- /// one).
- int get_remote_addr (ACE_DEV_Addr &) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- // = Meta-type info
- typedef ACE_DEV_Addr PEER_ADDR;
-
-private:
- /// Address of device we are connected to.
- ACE_DEV_Addr addr_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/DEV_IO.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_DEV_IO_H */
diff --git a/ace/DEV_IO.i b/ace/DEV_IO.i
deleted file mode 100644
index 0e18eee81ba..00000000000
--- a/ace/DEV_IO.i
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// DEV_IO.i
-
-// Send exactly N bytes from BUF to this device. Keeping trying until
-// this many bytes are sent.
-
-ASYS_INLINE ssize_t
-ACE_DEV_IO::send_n (const void *buf, size_t n) const
-{
- ACE_TRACE ("ACE_DEV_IO::send_n");
- return ACE::write_n (this->get_handle (), buf, n);
-}
-
-// Receive exactly N bytes from this file into BUF. Keep trying until
-// this many bytes are received.
-
-ASYS_INLINE ssize_t
-ACE_DEV_IO::recv_n (void *buf, size_t n) const
-{
- ACE_TRACE ("ACE_DEV_IO::recv_n");
- return ACE::read_n (this->get_handle (), buf, n);
-}
-
-ASYS_INLINE ssize_t
-ACE_DEV_IO::send (const void *buf, size_t n) const
-{
- ACE_TRACE ("ACE_DEV_IO::send");
- return ACE_OS::write (this->get_handle (), (const char *) buf, n);
-}
-
-ASYS_INLINE ssize_t
-ACE_DEV_IO::recv (void *buf, size_t n) const
-{
- ACE_TRACE ("ACE_DEV_IO::recv");
- return ACE_OS::read (this->get_handle (), (char *) buf, n);
-}
-
-ASYS_INLINE ssize_t
-ACE_DEV_IO::send (const iovec iov[], size_t n) const
-{
- ACE_TRACE ("ACE_DEV_IO::send");
- return ACE_OS::writev (this->get_handle (), iov, ACE_static_cast (int, n));
-}
-
-ASYS_INLINE ssize_t
-ACE_DEV_IO::recv (iovec iov[], size_t n) const
-{
- ACE_TRACE ("ACE_DEV_IO::recv");
- return ACE_OS::readv (this->get_handle (), iov, ACE_static_cast (int, n));
-}
-
-ASYS_INLINE ssize_t
-ACE_DEV_IO::send (const void *buf, size_t n,
- ACE_OVERLAPPED *overlapped) const
-{
- ACE_TRACE ("ACE_DEV_IO::send");
- return ACE_OS::write (this->get_handle (),
- (const char *) buf, n,
- overlapped);
-}
-
-ASYS_INLINE ssize_t
-ACE_DEV_IO::recv (void *buf, size_t n,
- ACE_OVERLAPPED *overlapped) const
-{
- ACE_TRACE ("ACE_DEV_IO::recv");
- return ACE_OS::read (this->get_handle (), (char *) buf, n,
- overlapped);
-}
-
-#if defined (ACE_HAS_STREAM_PIPES)
-ASYS_INLINE ssize_t
-ACE_DEV_IO::recv (ACE_Str_Buf *cntl, ACE_Str_Buf *data, int *band, int *flags) const
-{
- ACE_TRACE ("ACE_DEV_IO::recv");
- return ACE_OS::getpmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, band, flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_DEV_IO::send (const ACE_Str_Buf *cntl, const ACE_Str_Buf *data, int band, int flags) const
-{
- ACE_TRACE ("ACE_DEV_IO::send");
- return ACE_OS::putpmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, band, flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_DEV_IO::recv (ACE_Str_Buf *cntl, ACE_Str_Buf *data, int *flags) const
-{
- ACE_TRACE ("ACE_DEV_IO::recv");
- return ACE_OS::getmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_DEV_IO::send (const ACE_Str_Buf *cntl, const ACE_Str_Buf *data, int flags) const
-{
- ACE_TRACE ("ACE_DEV_IO::send");
- return ACE_OS::putmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, flags);
-}
-#endif /* ACE_HAS_STREAM_PIPES */
diff --git a/ace/DLL.cpp b/ace/DLL.cpp
deleted file mode 100644
index a07a9ff5c99..00000000000
--- a/ace/DLL.cpp
+++ /dev/null
@@ -1,220 +0,0 @@
-// DLL.cpp
-// $Id$
-
-#include "ace/DLL.h"
-
-#include "ace/Log_Msg.h"
-#include "ace/ACE.h"
-#include "ace/DLL_Manager.h"
-
-ACE_RCSID(ace, DLL, "$Id$")
-
-// Default constructor. Also, by default, the object will be closed
-// before it is destroyed.
-
-ACE_DLL::ACE_DLL (int close_on_destruction)
- : open_mode_ (0),
- dll_name_ (0),
- close_on_destruction_ (close_on_destruction),
- dll_handle_ (0),
- error_ (0)
-{
- ACE_TRACE ("ACE_DLL::ACE_DLL (int)");
-}
-
-ACE_DLL::ACE_DLL (const ACE_DLL &rhs)
-{
- ACE_TRACE ("ACE_DLL::ACE_DLL (const ACE_DLL &)");
-
- // Have to do this since open() calls close()...
- this->dll_handle_ = 0;
- this->dll_name_ = 0;
- this->close_on_destruction_ = 1;
- this->error_ = 0;
-
- if (rhs.dll_name_)
- // This will automatically up the refcount.
- if (this->open (rhs.dll_name_, rhs.open_mode_, this->close_on_destruction_) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL::copy_ctor: error: %s\n"),
- this->error ()));
-}
-
-// If the library name and the opening mode are specified than on
-// object creation the library is implicitly opened.
-
-ACE_DLL::ACE_DLL (const ACE_TCHAR *dll_name,
- int open_mode,
- int close_on_destruction)
- : open_mode_ (open_mode),
- dll_name_ (0),
- close_on_destruction_ (close_on_destruction),
- dll_handle_ (0),
- error_ (0)
-{
- ACE_TRACE ("ACE_DLL::ACE_DLL");
-
- if (this->open (dll_name, this->open_mode_, close_on_destruction) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL::open: error calling open: %s\n"),
- this->error ()));
-}
-
-// The library is closed before the class gets destroyed depending on
-// the close_on_destruction value specified which is stored in
-// close_on_destruction_.
-
-ACE_DLL::~ACE_DLL (void)
-{
- ACE_TRACE ("ACE_DLL::~ACE_DLL");
-
- this->close ();
-}
-
-// This method opens the library based on the mode specified using the
-// ACE_SHLIB_HANDLE which is obtained on making the ACE_OS::dlopen call.
-// The default mode is:
-// RTLD_LAZY Only references to data symbols are relocate when the
-// object is first loaded.
-// The other modes include:
-// RTLD_NOW All necessary relocations are performed when the
-// object is first loaded.
-// RTLD_GLOBAL The object symbols are made available for the
-// relocation processing of any other object.
-
-int
-ACE_DLL::open (const ACE_TCHAR *dll_filename,
- int open_mode,
- int close_on_destruction)
-{
- ACE_TRACE ("ACE_DLL::open");
-
- return open_i (dll_filename, open_mode, close_on_destruction);
-}
-
-int
-ACE_DLL::open_i (const ACE_TCHAR *dll_filename,
- int open_mode,
- int close_on_destruction,
- ACE_SHLIB_HANDLE handle)
-{
- ACE_TRACE ("ACE_DLL::open_i");
-
- this->error_ = 0;
-
- if (!dll_filename)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL::open_i: dll_name: %s\n"),
- this->dll_name_),
- -1);
-
- if (this->dll_handle_)
- {
- // If we have a good handle and its the same name, just return.
- if (ACE_OS_String::strcmp (this->dll_name_, dll_filename) == 0)
- return 0;
- else
- this->close ();
- }
- if (!this->dll_name_)
- {
- this->dll_name_ = ACE::strnew (dll_filename);
- }
- this->open_mode_ = open_mode;
- this->close_on_destruction_ = close_on_destruction;
-
- this->dll_handle_ = ACE_DLL_Manager::instance()->open_dll (this->dll_name_,
- this->open_mode_,
- handle);
-
- if (!this->dll_handle_)
- this->error_ = 1;
-
- return this->error_ ? -1 : 0;
-}
-
-// The symbol refernce of the name specified is obtained.
-
-void *
-ACE_DLL::symbol (const ACE_TCHAR *sym_name, int ignore_errors)
-{
- ACE_TRACE ("ACE_DLL::symbol");
-
- this->error_ = 0;
-
- void *sym = this->dll_handle_->symbol (sym_name, ignore_errors);
-
- if (!sym)
- this->error_ = 1;
-
- return sym;
-}
-
-// The library is closed using the ACE_SHLIB_HANDLE obejct. i.e. The
-// shared object is now disassociated form the current process.
-
-int
-ACE_DLL::close (void)
-{
- ACE_TRACE ("ACE_DLL::close");
- int retval = 0;
-
- if (this->close_on_destruction_ && this->dll_name_ &&
- (retval = ACE_DLL_Manager::instance ()->close_dll (this->dll_name_)) != 0)
- this->error_ = 1;
-
- // Even if close_dll() failed, go ahead and cleanup.
- this->dll_handle_ = 0;
- delete[] this->dll_name_;
- this->dll_name_ = 0;
- this->close_on_destruction_ = 0;
-
- return retval;
-}
-
-// This method is used return the last error of a library operation.
-
-ACE_TCHAR *
-ACE_DLL::error (void) const
-{
- ACE_TRACE ("ACE_DLL::error");
- if (this->error_)
- return ACE_const_cast (ACE_TCHAR *,
- ACE_LIB_TEXT ("Error: check log for details."));
-
- return 0;
-}
-
-// Return the handle to the user either temporarily or forever, thus
-// orphaning it. If 0 means the user wants the handle forever and if 1
-// means the user temporarily wants to take the handle.
-
-ACE_SHLIB_HANDLE
-ACE_DLL::get_handle (int become_owner) const
-{
- ACE_TRACE ("ACE_DLL::get_handle");
-
- ACE_SHLIB_HANDLE handle = ACE_SHLIB_INVALID_HANDLE;
-
- if (this->dll_handle_)
- handle = this->dll_handle_->get_handle (become_owner);
-
- return handle;
-}
-
-// Set the handle for the DLL. By default, the object will be closed
-// before it is destroyed.
-
-int
-ACE_DLL::set_handle (ACE_SHLIB_HANDLE handle,
- int close_on_destruction)
-{
- ACE_TRACE ("ACE_DLL::set_handle");
-
- // Create a unique name. Note that this name is only quaranteed
- // to be unique for the life of this object.
- ACE_TCHAR temp[ACE_UNIQUE_NAME_LEN];
- ACE_OS::unique_name (this, temp, ACE_UNIQUE_NAME_LEN);
-
- return this->open_i (temp, 1, close_on_destruction, handle);
-}
diff --git a/ace/DLL.h b/ace/DLL.h
deleted file mode 100644
index 07648499831..00000000000
--- a/ace/DLL.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file DLL.h
- *
- * $Id$
- *
- * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_DLL_H
-#define ACE_DLL_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_DLL_Handle;
-
-/**
- * @class ACE_DLL
- *
- * @brief Provides an abstract interface for handling various DLL
- * operations.
- *
- * This class is an wrapper over the various methods for utilizing
- * a dynamically linked library (DLL), which is called a shared
- * library on some platforms. Operations open(), close(), and
- * symbol() have been implemented to help opening/closing and
- * extracting symbol information from a DLL, respectively.
- */
-class ACE_Export ACE_DLL
-{
-public:
- // = Initialization and termination methods.
-
- /// Default constructor. By default, the close() operation on the
- /// object will be invoked before it is destroyed.
- ACE_DLL (int close_on_destruction = 1);
-
- /**
- * This constructor opens and dynamically links @a dll_name. The
- * default mode is <RTLD_LAZY>, which loads identifier symbols but
- * not the symbols for functions, which are loaded dynamically
- * on-demand. Other supported modes include: <RTLD_NOW>, which
- * performs all necessary relocations when @a dll_name is first
- * loaded and <RTLD_GLOBAL>, which makes symbols available for
- * relocation processing of any other DLLs.
- */
- ACE_DLL (const ACE_TCHAR *dll_name,
- int open_mode = ACE_DEFAULT_SHLIB_MODE,
- int close_on_destruction = 1);
-
- /// Copy constructor.
- ACE_DLL (const ACE_DLL &);
-
- /**
- * This method opens and dynamically links @a dll_name. The default
- * mode is <RTLD_LAZY>, which loads identifier symbols but not the
- * symbols for functions, which are loaded dynamically on-demand.
- * Other supported modes include: <RTLD_NOW>, which performs all
- * necessary relocations when @a dll_name>is first loaded and
- * <RTLD_GLOBAL>, which makes symbols available for relocation
- * processing of any other DLLs.
- * @param dll_name The name of the dll.
- * @param open_mode How the dll is opened.
- * @param close_on_destruction Close the handle in the destructor.
- * @retval -1 On failure
- * @retval 0 On success.
- */
- int open (const ACE_TCHAR *dll_name,
- int open_mode = ACE_DEFAULT_SHLIB_MODE,
- int close_on_destruction = 1);
-
- /// Call to close the DLL object.
- int close (void);
-
- /**
- * Called when the DLL object is destroyed -- invokes close() if the
- * <close_on_destruction> flag is set in the constructor or open()
- * method.
- */
- ~ACE_DLL (void);
-
- /// If @a symbol_name is in the symbol table of the DLL a pointer to
- /// the @a symbol_name is returned. Otherwise, returns 0. Setting
- /// ignore_errors = 1 allows you to probe a dll without generating
- /// error messages in the log. Handy for determining the capabilities
- /// of a library.
- void *symbol (const ACE_TCHAR *symbol_name, int ignore_errors = 0);
-
- /// Returns a pointer to a string explaining that an error occured. You
- /// will need to consult the error log for the actual error string
- /// returned by the OS.
- ACE_TCHAR *error (void) const;
-
- /**
- * Return the handle to the caller. If @a become_owner is non-0 then
- * caller assumes ownership of the handle and the ACE_DLL object
- * won't call close() when it goes out of scope, even if
- * <close_on_destruction> is set.
- */
- ACE_SHLIB_HANDLE get_handle (int become_owner = 0) const;
-
- /// Set the handle for the DLL object. By default, the close() operation on
- /// the object will be invoked before it is destroyed.
- int set_handle (ACE_SHLIB_HANDLE handle, int close_on_destruction = 1);
-
-private:
-
- int open_i (const ACE_TCHAR *dll_name,
- int open_mode = ACE_DEFAULT_SHLIB_MODE,
- int close_on_destruction = 1,
- ACE_SHLIB_HANDLE handle = 0);
-
-
- /// Open mode.
- int open_mode_;
-
- /// Keep track of the name of the loaded dll, so it can be used
- /// to remove framework components, singletons that live in the dll,
- /// prior to unloading the dll in the close() method.
- ACE_TCHAR *dll_name_;
-
- /// This flag keeps track of whether we should close the handle
- /// automatically when the destructor runs.
- int close_on_destruction_;
-
- ACE_DLL_Handle *dll_handle_;
-
- /// Flag to record if the last operation had an error.
- int error_;
-
- // = Disallow copying and assignment since we don't handle these.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_DLL &))
-};
-
-#include "ace/post.h"
-#endif /* ACE_DLL_H */
diff --git a/ace/DLL_Manager.cpp b/ace/DLL_Manager.cpp
deleted file mode 100644
index 93f6e4889a9..00000000000
--- a/ace/DLL_Manager.cpp
+++ /dev/null
@@ -1,496 +0,0 @@
-// DLL_Manager.cpp
-// $Id$
-
-#include "ace/DLL_Manager.h"
-
-#include "ace/Log_Msg.h"
-#include "ace/ACE.h"
-#include "ace/Framework_Component.h"
-
-#include "ace/OS.h"
-#include "ace/Lib_Find.h"
-#include "ace/Object_Manager.h"
-
-ACE_RCSID(ace, DLL, "$Id$")
-
-/******************************************************************/
-
-sig_atomic_t ACE_DLL_Handle::open_called_ = 0;
-
-ACE_DLL_Handle::ACE_DLL_Handle (void)
- : refcount_ (0),
- dll_name_ (0),
- handle_ (ACE_SHLIB_INVALID_HANDLE)
-{
- ACE_TRACE ("ACE_DLL_Handle::ACE_DLL_Handle");
-}
-
-ACE_DLL_Handle::~ACE_DLL_Handle (void)
-{
- ACE_TRACE ("ACE_DLL_Handle::~ACE_DLL_Handle");
- this->close (1);
- delete[] this->dll_name_;
-}
-
-const ACE_TCHAR *
-ACE_DLL_Handle::dll_name (void) const
-{
- ACE_TRACE ("ACE_DLL_Handle::dll_name");
- return this->dll_name_;
-}
-
-int
-ACE_DLL_Handle::open (const ACE_TCHAR *dll_name,
- int open_mode,
- ACE_SHLIB_HANDLE handle)
-{
- ACE_TRACE ("ACE_DLL_Handle::open");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0));
-
- //ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("dll_name: %s; open_mode: %d \n"),
- // dll_name,
- // open_mode));
-
- if (this->dll_name_)
- {
- // Once dll_name_ has been set, it can't be changed..
- if (ACE_OS_String::strcmp (this->dll_name_, dll_name) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL_Handle::open: error, ")
- ACE_LIB_TEXT ("tried to reopen %s with name %s\n"),
- this->dll_name_, dll_name),
- -1);
- }
- else
- this->dll_name_ = ACE::strnew (dll_name);
-
- if (!this->open_called_)
- this->open_called_ = 1;
-
- // If it hasn't been loaded yet, go ahead and do that now.
- if (this->handle_ == ACE_SHLIB_INVALID_HANDLE)
- {
- if (handle)
- this->handle_ = handle;
- else
- {
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_DLL_Handle::open: calling dlopen on ")
- ACE_LIB_TEXT ("\"%s\"\n"), dll_name));
- // Find out where the library is
- ACE_TCHAR dll_pathname[MAXPATHLEN + 1];
-
- // Transform the pathname into the appropriate dynamic link library
- // by searching the ACE_LD_SEARCH_PATH.
- ACE_Lib_Find::ldfind (dll_name,
- dll_pathname,
- (sizeof dll_pathname / sizeof (ACE_TCHAR)));
-
- // The ACE_SHLIB_HANDLE object is obtained.
- this->handle_ = ACE_OS::dlopen (dll_pathname,
- open_mode);
-
-#if defined (AIX)
- if (this->handle_ == ACE_SHLIB_INVALID_HANDLE)
- {
- // AIX often puts the shared library file (most often named shr.o)
- // inside an archive library. If this is an archive library
- // name, then try appending [shr.o] and retry.
- if (0 != ACE_OS_String::strstr (dll_pathname, ACE_LIB_TEXT (".a")))
- {
- ACE_OS_String::strcat (dll_pathname, ACE_LIB_TEXT ("(shr.o)"));
- open_mode |= RTLD_MEMBER;
- this->handle_ = ACE_OS::dlopen (dll_pathname, open_mode);
- }
- }
-#endif /* AIX */
-
- if (this->handle_ == ACE_SHLIB_INVALID_HANDLE)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL_Manager_Ex::open: Invalid handle: %s\n"),
- this->error ()->c_str ()),
- -1);
- }
- }
- }
-
- ++this->refcount_;
- return 0;
-}
-
-int
-ACE_DLL_Handle::close (int unload)
-{
- ACE_TRACE ("ACE_DLL_Handle::close");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0));
-
- int retval = 0;
-
- // Since we don't actually unload the dll as soon as the refcount
- // reaches zero, we need to make sure we don't decrement it below
- // zero.
- if (this->refcount_ > 0)
- --this->refcount_;
- else
- this->refcount_ = 0;
-
- if (this->refcount_ == 0 &&
- this->handle_ != ACE_SHLIB_INVALID_HANDLE &&
- unload == 1)
- {
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("ACE_DLL_Handle::close: unloading %s\n"),
- this->dll_name_));
- // First remove any associated Framework Components.
- ACE_Framework_Repository * frPtr= ACE_Framework_Repository::instance ();
-
- if (frPtr)
- {
- frPtr->remove_dll_components (this->dll_name_);
- }
-
- retval = ACE_OS::dlclose (this->handle_);
- this->handle_ = ACE_SHLIB_INVALID_HANDLE;
- }
-
- if (retval != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL_Handle::close error: \"%s\"."),
- this->error ()->c_str ()),
- retval);
- return retval;
-}
-
-sig_atomic_t
-ACE_DLL_Handle::refcount (void) const
-{
- return this->refcount_;
-}
-
-void *
-ACE_DLL_Handle::symbol (const ACE_TCHAR *sym_name, int ignore_errors)
-{
- ACE_TRACE ("ACE_DLL_Handle::symbol");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0));
-
- ACE_Auto_Array_Ptr <ACE_TCHAR> auto_name (ACE_Lib_Find::ldname (sym_name));
-
- void *sym = ACE_OS::dlsym (this->handle_, auto_name.get ());
-
- // Linux says that the symbol could be null and that it isn't an error.
- // So you should check the error message also, but since null symbols
- // won't do us much good anyway, let's still report an error.
- if (!sym && ignore_errors != 1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL_Handle::symbol (\"%s\") \"%s\"."),
- auto_name.get (), this->error ()->c_str ()),
- 0);
-
- return sym;
-}
-
-ACE_SHLIB_HANDLE
-ACE_DLL_Handle::get_handle (int become_owner)
-{
- ACE_TRACE ("ACE_DLL_Handle::get_handle");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0));
-
- ACE_SHLIB_HANDLE handle = ACE_SHLIB_INVALID_HANDLE;
-
- if (this->refcount_ == 0 && become_owner != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL_Handle::get_handle: ")
- ACE_LIB_TEXT ("cannot become owner, refcount == 0.\n")),
- ACE_SHLIB_INVALID_HANDLE);
- else if (become_owner != 0)
- {
- handle = this->handle_;
- if (--this->refcount_ == 0)
- this->handle_ = ACE_SHLIB_INVALID_HANDLE;
- }
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("ACE_DLL_Handle::get_handle: ")
- ACE_LIB_TEXT ("handle %s, refcount %d\n"),
- this->handle_ == ACE_SHLIB_INVALID_HANDLE ?
- ACE_LIB_TEXT ("invalid") : ACE_LIB_TEXT ("valid"),
- this->refcount_));
-
- return handle;
-}
-
-// This method is used return the last error of a library operation.
-
-auto_ptr <ACE_TString>
-ACE_DLL_Handle::error (void)
-{
- ACE_TRACE ("ACE_DLL_Handle::error");
- const ACE_TCHAR *error = ACE_OS::dlerror ();
- auto_ptr<ACE_TString> str
- (new ACE_TString (error ? error : ACE_LIB_TEXT ("no error")));
- return str;
-}
-
-/******************************************************************/
-
-// Pointer to the Singleton instance.
-ACE_DLL_Manager *ACE_DLL_Manager::instance_ = 0;
-
-
-ACE_DLL_Manager *
-ACE_DLL_Manager::instance (int size)
-{
- ACE_TRACE ("ACE_DLL_Manager::instance");
-
- if (ACE_DLL_Manager::instance_ == 0)
- {
- // Perform Double-Checked Locking Optimization.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
- if (ACE_DLL_Manager::instance_ == 0)
- {
- ACE_NEW_RETURN (ACE_DLL_Manager::instance_,
- ACE_DLL_Manager (size),
- 0);
- }
- }
-
- return ACE_DLL_Manager::instance_;
-}
-
-void
-ACE_DLL_Manager::close_singleton (void)
-{
- ACE_TRACE ("ACE_DLL_Manager::close_singleton");
-
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance ()));
-
- delete ACE_DLL_Manager::instance_;
- ACE_DLL_Manager::instance_ = 0;
-}
-
-ACE_DLL_Manager::ACE_DLL_Manager (int size)
- : handle_vector_ (0),
- current_size_ (0),
- total_size_ (0),
- unload_policy_ (ACE_DLL_UNLOAD_POLICY_PER_DLL)
-{
- ACE_TRACE ("ACE_DLL_Manager::ACE_DLL_Manager");
-
- if (this->open (size) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL_Manager ctor failed to allocate ")
- ACE_LIB_TEXT ("handle_vector_.\n")));
-}
-
-ACE_DLL_Manager::~ACE_DLL_Manager (void)
-{
- ACE_TRACE ("ACE_DLL_Manager::~ACE_DLL_Manager");
-
- if (this->close () != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL_Manager dtor failed to close ")
- ACE_LIB_TEXT ("properly.\n")));
-}
-
-ACE_DLL_Handle *
-ACE_DLL_Manager::open_dll (const ACE_TCHAR *dll_name,
- int open_mode,
- ACE_SHLIB_HANDLE handle)
-{
- ACE_TRACE ("ACE_DLL_Manager::open_dll");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0));
-
- ACE_DLL_Handle *dll_handle = this->find_dll (dll_name);
- if (!dll_handle)
- {
- if (this->current_size_ < this->total_size_)
- {
- ACE_NEW_RETURN (dll_handle,
- ACE_DLL_Handle,
- 0);
-
- this->handle_vector_[this->current_size_] = dll_handle;
- this->current_size_++;
- }
- }
-
- if (dll_handle)
- {
- if (dll_handle->open (dll_name, open_mode, handle) != 0)
- {
- // Don't worry about freeing the memory right now, since
- // the handle_vector_ will be cleaned up automatically later.
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL_Manager::open_dll: Could not ")
- ACE_LIB_TEXT ("open dll.\n")),
- 0);
- }
- }
- return dll_handle;
-}
-
-int
-ACE_DLL_Manager::close_dll (const ACE_TCHAR *dll_name)
-{
- ACE_TRACE ("ACE_DLL_Manager::close_dll");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0));
-
- ACE_DLL_Handle *handle = this->find_dll (dll_name);
- if (handle)
- {
- return this->unload_dll (handle, 0);
- }
-
- return -1;
-}
-
-u_long
-ACE_DLL_Manager::unload_policy (void) const
-{
- ACE_TRACE ("ACE_DLL_Manager::unload_policy");
- return this->unload_policy_;
-}
-
-void
-ACE_DLL_Manager::unload_policy (u_long unload_policy)
-{
- ACE_TRACE ("ACE_DLL_Manager::unload_policy");
- ACE_MT (ACE_GUARD (ACE_Thread_Mutex, ace_mon, this->lock_));
-
- u_long old_policy = this->unload_policy_;
- this->unload_policy_ = unload_policy;
-
- // If going from LAZY to EAGER or from PER_DLL to PER_PROCESS|EAGER,
- // call close(1) on all the ACE_DLL_Handle objects with refcount == 0
- // which will force those that are still loaded to be unloaded.
- if (this->handle_vector_)
- if (( ACE_BIT_ENABLED (old_policy, ACE_DLL_UNLOAD_POLICY_LAZY) &&
- ACE_BIT_DISABLED (this->unload_policy_, ACE_DLL_UNLOAD_POLICY_LAZY) ) ||
- ( ACE_BIT_DISABLED (this->unload_policy_, ACE_DLL_UNLOAD_POLICY_LAZY) &&
- ACE_BIT_ENABLED (old_policy, ACE_DLL_UNLOAD_POLICY_PER_DLL) &&
- ACE_BIT_DISABLED (this->unload_policy_, ACE_DLL_UNLOAD_POLICY_PER_DLL) ))
- {
- for (int i = this->current_size_ - 1; i >= 0; i--)
- {
- if (this->handle_vector_[i] &&
- this->handle_vector_[i]->refcount () == 0)
- this->handle_vector_[i]->close (1);
- }
- }
-}
-
-int
-ACE_DLL_Manager::open (int size)
-{
- ACE_TRACE ("ACE_DLL_Manager::open");
-
- ACE_DLL_Handle **temp;
-
- ACE_NEW_RETURN (temp,
- ACE_DLL_Handle *[size],
- -1);
-
- this->handle_vector_ = temp;
- this->total_size_ = size;
- return 0;
-}
-
-int
-ACE_DLL_Manager::close (void)
-{
- ACE_TRACE ("ACE_DLL_Manager::close");
-
- int force_close = 1;
-
- if (this->handle_vector_ != 0)
- {
- // Delete components in reverse order.
- for (int i = this->current_size_ - 1; i >= 0; i--)
- {
- if (this->handle_vector_[i])
- {
- ACE_DLL_Handle *s = ACE_const_cast (ACE_DLL_Handle *,
- this->handle_vector_[i]);
- this->handle_vector_[i] = 0;
- this->unload_dll (s, force_close);
- delete s;
- }
- }
-
- delete [] this->handle_vector_;
- this->handle_vector_ = 0;
- this->current_size_ = 0;
- }
- return 0;
-}
-
-ACE_DLL_Handle *
-ACE_DLL_Manager::find_dll (const ACE_TCHAR *dll_name) const
-{
- ACE_TRACE ("ACE_DLL_Manager::find_dll");
-
- int i;
- for (i = 0; i < this->current_size_; i++)
- if (this->handle_vector_[i] &&
- ACE_OS_String::strcmp (this->handle_vector_[i]->dll_name (), dll_name) == 0)
- {
- return this->handle_vector_[i];
- }
-
- return 0;
-}
-
-int
-ACE_DLL_Manager::unload_dll (ACE_DLL_Handle *dll_handle, int force_unload)
-{
- ACE_TRACE ("ACE_DLL_Manager::unload_dll");
-
- if (dll_handle)
- {
- int unload = force_unload;
- if (unload == 0)
- {
- // apply strategy
- if (ACE_BIT_DISABLED (this->unload_policy_,
- ACE_DLL_UNLOAD_POLICY_PER_DLL))
- {
- unload = ACE_BIT_DISABLED (this->unload_policy_,
- ACE_DLL_UNLOAD_POLICY_LAZY);
- }
- else
- {
- // Declare the type of the symbol:
- typedef int (*dll_unload_policy)(void);
- dll_unload_policy the_policy = 0;
- void *unload_policy_ptr =
- dll_handle->symbol (ACE_TEXT ("_get_dll_unload_policy"), 1);
- ptrdiff_t temp_p =
- ACE_reinterpret_cast (ptrdiff_t, unload_policy_ptr);
- the_policy =
- ACE_reinterpret_cast (dll_unload_policy, temp_p);
- if (the_policy != 0)
- unload = ACE_BIT_DISABLED (the_policy (),
- ACE_DLL_UNLOAD_POLICY_LAZY);
- else
- unload = ACE_BIT_DISABLED (this->unload_policy_,
- ACE_DLL_UNLOAD_POLICY_LAZY);
- }
- }
-
- if (dll_handle->close (unload) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL_Manager::unload error.\n")),
- -1);
- }
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL_Manager::unload_dll called with ")
- ACE_LIB_TEXT ("null pointer.\n")),
- -1);
-
- return 0;
-}
diff --git a/ace/DLL_Manager.h b/ace/DLL_Manager.h
deleted file mode 100644
index 136f3fa8d8a..00000000000
--- a/ace/DLL_Manager.h
+++ /dev/null
@@ -1,248 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file DLL_Manager.h
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- */
-//=============================================================================
-
-
-#ifndef ACE_DLL_MANAGER_H
-#define ACE_DLL_MANAGER_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-#include "ace/Synch_T.h"
-#include "ace/Auto_Ptr.h"
-#include "ace/SString.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#define ACE_DEFAULT_DLL_MANAGER_SIZE 1024
-
-/**
- * @class ACE_DLL_Handle
- *
- * @brief Provides an abstract interface for handling various DLL
- * operations.
- *
- * This class is an wrapper over the various methods for utilizing
- * a dynamically linked library (DLL), which is called a shared
- * library on some platforms. It is refcounted and managed by
- * ACE_DLL_Manager, so there will only be a single instance of this
- * class for each dll loaded, no matter how many instances of ACE_DLL
- * an application has open. Operations <open>, <close>, and
- * <symbol> have been implemented to help opening/closing and
- * extracting symbol information from a DLL, respectively.
- *
- * Most of this class came from the original ACE_DLL class.
- * ACE_DLL is now just an interface that passed all it's calls
- * either directly or via ACE_DLL_Manager to this class for
- * execution.
- *
- */
-class ACE_Export ACE_DLL_Handle
-{
-public:
-
- /// Default construtor.
- ACE_DLL_Handle (void);
-
- /// Destructor.
- ~ACE_DLL_Handle (void);
-
- /// Returns the name of the shared library (without prefixes or suffixes).
- const ACE_TCHAR *dll_name () const;
-
- /**
- * This method opens and dynamically links <dll_name>. The default
- * mode is <RTLD_LAZY>, which loads identifier symbols but not the
- * symbols for functions, which are loaded dynamically on-demand.
- * Other supported modes include: <RTLD_NOW>, which performs all
- * necessary relocations when <dll_name> is first loaded and
- * <RTLD_GLOBAL>, which makes symbols available for relocation
- * processing of any other DLLs. Returns -1 on failure and 0 on
- * success.
- */
- int open (const ACE_TCHAR *dll_name,
- int open_mode,
- ACE_SHLIB_HANDLE handle);
-
- /// Call to close the DLL object. If unload = 0, it only decrements
- /// the refcount, but if unload = 1, then it will actually unload
- /// the library when the refcount == 0;
- int close (int unload = 0);
-
- /// Return the current refcount.
- sig_atomic_t refcount (void) const;
-
- /// If <symbol_name> is in the symbol table of the DLL a pointer to
- /// the <symbol_name> is returned. Otherwise, returns 0. Set the
- /// ignore_errors flag to supress logging errors if symbol_name isn't
- /// found. This is nice if you just want to probe a dll to see what's
- /// available, since missing functions in that case aren't really errors.
- void *symbol (const ACE_TCHAR *symbol_name, int ignore_errors = 0);
-
- /**
- * Return the handle to the caller. If <become_owner> is non-0 then
- * caller assumes ownership of the handle so we decrement the retcount.
- */
- ACE_SHLIB_HANDLE get_handle (int become_owner = 0);
-
-private:
- /// Returns a pointer to a string explaining why <symbol> or <open>
- /// failed. This is used internal to print out the error to the log,
- /// but since this object is shared, we can't store or return the error
- /// to the caller.
- auto_ptr <ACE_TString> error (void);
-
- // Keep track of how many ACE_DLL objects have a reference to this
- // dll.
- sig_atomic_t refcount_;
-
- /// Name of the shared library.
- ACE_TCHAR *dll_name_;
-
- /// Handle to the actual library loaded by the OS.
- ACE_SHLIB_HANDLE handle_;
-
- /// Keeps track of whether or not open() has ever been called. This
- /// helps get around problem on Linux, and perhaps other OS's, that
- /// seg-fault if dlerror() is called before the ld library has been
- /// initialized by a call to dlopen().
- static sig_atomic_t open_called_;
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- /// Synchronization variable for the MT_SAFE Repository
- ACE_Thread_Mutex lock_;
-#endif /* ACE_MT_SAFE */
-
- // = Disallow copying and assignment since we don't handle these.
- ACE_UNIMPLEMENTED_FUNC (ACE_DLL_Handle (const ACE_DLL_Handle &))
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_DLL_Handle &))
-
-};
-
-class ACE_Framework_Repository;
-
-/**
- * @class ACE_DLL_Manager
- *
- * @brief This class is a singleton and serves as a factory and
- * repository for instances of ACE_DLL_Handle.
- *
- * This class is a singleton whose lifetime is managed by the
- * ACE_Framework_Repository. Although it is normally meant to be
- * used directly only by ACE_DLL, applications can call the unload_policy()
- * methods in order get/set the the dll unload policy. Unload policies include
- * per_process/per-dll and eager/lazy. Dlls can export set their own policy
- * by using the ACE_DLL_UNLOAD_POLICY macro found in config-all.h. If a dll
- * choses to set an unload policy, it will be used when the per-dll policy
- * (the default) is in effect. If the per-dll policy is in effect and a dll
- * has not chosen to set a policy, the current per-process policy will be
- * used.
- *
- * The following policy macros are provided in config-all.h:
- *
- * ACE_DLL_UNLOAD_POLICY_PER_PROCESS - Per-process policy that unloads dlls
- * eagerly.
- *
- * ACE_DLL_UNLOAD_POLICY_PER_DLL - Apply policy on a per-dll basis. If the
- * dll doesn't use one of the macros below, the current per-process policy
- * will be used.
- *
- * ACE_DLL_UNLOAD_POLICY_LAZY - Don't unload dll when refcount reaches
- * zero, i.e., wait for either an explicit unload request or program exit.
- *
- * ACE_DLL_UNLOAD_POLICY_DEFAULT - Default policy allows dlls to control
- * their own destinies, but will unload those that don't make a choice eagerly.
- *
- */
-class ACE_Export ACE_DLL_Manager
-{
-public:
- // This if to silence the compiler warnings, even though ACE_Framework_Repository
- // always uses the instance method.
- friend class ACE_Framework_Repository;
-
- enum
- {
- DEFAULT_SIZE = ACE_DEFAULT_DLL_MANAGER_SIZE
- };
-
- /// Return a unique instance
- static ACE_DLL_Manager *instance (int size = ACE_DLL_Manager::DEFAULT_SIZE);
-
- /// Factory for ACE_DLL_Handle objects. If one already exits,
- /// its refcount is incremented.
- ACE_DLL_Handle *open_dll (const ACE_TCHAR *dll_name,
- int openmode,
- ACE_SHLIB_HANDLE handle);
-
- /// Close the underlying dll. Decrements the refcount.
- int close_dll (const ACE_TCHAR *dll_name);
-
- /// Returns the current per-process UNLOAD_POLICY.
- u_long unload_policy (void) const;
-
- /// Set the per-process UNLOAD_POLICY. If the policy is changed from
- /// LAZY to EAGER, then it will also unload any dlls with zero
- /// refcounts.
- void unload_policy (u_long unload_policy);
-
-protected:
- // Allocate handle_vector_.
- int open (int size);
-
- // Close all open dlls and deallocate memory.
- int close (void);
-
- // Find dll in handle_vector_.
- ACE_DLL_Handle *find_dll (const ACE_TCHAR *dll_name) const;
-
- // Applies strategy for unloading dll.
- int unload_dll (ACE_DLL_Handle *dll_handle, int force_unload = 0);
-
-private:
- /// Default constructor.
- ACE_DLL_Manager (int size = ACE_DLL_Manager::DEFAULT_SIZE);
-
- /// Destructor.
- ~ACE_DLL_Manager (void);
-
- /// Close the singleton instance.
- static void close_singleton (void);
-
- /// Vector containing all loaded handle objects.
- ACE_DLL_Handle **handle_vector_;
-
- /// Current number of handles.
- int current_size_;
-
- /// Maximum number of handles.
- int total_size_;
-
- /// Unload strategy.
- u_long unload_policy_;
-
- /// Pointer to a process-wide <ACE_DLL_Manager>.
- static ACE_DLL_Manager *instance_;
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- /// Synchronization variable for the MT_SAFE Repository
- ACE_Thread_Mutex lock_;
-#endif /* ACE_MT_SAFE */
-
- // = Disallow copying and assignment since we don't handle these.
- ACE_UNIMPLEMENTED_FUNC (ACE_DLL_Manager (const ACE_DLL_Manager &))
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_DLL_Manager &))
-};
-
-#include "ace/post.h"
-#endif /* ACE_DLL_MANAGER_H */
diff --git a/ace/Date_Time.cpp b/ace/Date_Time.cpp
deleted file mode 100644
index 7eaa91b3f15..00000000000
--- a/ace/Date_Time.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-// Date_Time.cpp
-// $Id$
-
-#include "ace/Date_Time.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Date_Time.i"
-#endif
-
-ACE_RCSID(ace, Date_Time, "$Id$")
diff --git a/ace/Date_Time.h b/ace/Date_Time.h
deleted file mode 100644
index 4343059a2f3..00000000000
--- a/ace/Date_Time.h
+++ /dev/null
@@ -1,121 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Date_Time.h
- *
- * $Id$
- *
- * @author Tim Harrison (harrison@cs.wustl.edu) (and he's darn proud of this ;-))
- *
- */
-//==========================================================================
-
-#ifndef ACE_DATE_TIME_H
-#define ACE_DATE_TIME_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_Date_Time
- *
- * @brief System independent representation of date and time.
- */
-class ACE_Export ACE_Date_Time
-{
-public:
- /// Constructor initializes current time/date info.
- ACE_Date_Time (void);
-
- /// Constructor initializes with the given ACE_Time_Value
- ACE_EXPLICIT ACE_Date_Time (const ACE_Time_Value& timevalue);
-
- /// Constructor with init values, no check for validy
- /// Set/get portions of ACE_Date_Time, no check for validity.
- ACE_Date_Time (long day,
- long month = 0,
- long year = 0,
- long hour = 0,
- long minute = 0,
- long second = 0,
- long microsec = 0,
- long wday = 0);
-
- /// Update to the current time/date.
- void update (void);
-
- /// Update to the given ACE_Time_Value
- void update (const ACE_Time_Value& timevalue);
-
- /// Get day.
- long day (void) const;
-
- /// Set day.
- void day (long day);
-
- /// Get month.
- long month (void) const;
-
- /// Set month.
- void month (long month);
-
- /// Get year.
- long year (void) const;
-
- /// Set year.
- void year (long year);
-
- /// Get hour.
- long hour (void) const;
-
- /// Set hour.
- void hour (long hour);
-
- /// Get minute.
- long minute (void) const;
-
- /// Set minute.
- void minute (long minute);
-
- /// Get second.
- long second (void) const;
-
- /// Set second.
- void second (long second);
-
- /// Get microsec.
- long microsec (void) const;
-
- /// Set microsec.
- void microsec (long microsec);
-
- /// Get weekday.
- long weekday (void) const;
-
- /// Set weekday.
- void weekday (long wday);
-
-private:
- long day_;
- long month_;
- long year_;
- long hour_;
- long minute_;
- long second_;
- long microsec_;
- long wday_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Date_Time.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_DATE_TIME_H */
diff --git a/ace/Date_Time.i b/ace/Date_Time.i
deleted file mode 100644
index 2480a88001a..00000000000
--- a/ace/Date_Time.i
+++ /dev/null
@@ -1,194 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Date_Time.i
-
-ASYS_INLINE void
-ACE_Date_Time::update (void)
-{
- ACE_TRACE ("ACE_Date_Time::update");
-
- update(ACE_OS::gettimeofday ());
-}
-
-ASYS_INLINE void
-ACE_Date_Time::update (const ACE_Time_Value& timevalue)
-{
- time_t time = timevalue.sec ();
- struct tm tm_time;
- ACE_OS::localtime_r (&time, &tm_time);
- this->day_ = tm_time.tm_mday;
- this->month_ = tm_time.tm_mon + 1; // localtime's months are 0-11
- this->year_ = tm_time.tm_year + 1900; // localtime reports years since 1900
- this->hour_ = tm_time.tm_hour;
- this->minute_ = tm_time.tm_min;
- this->second_ = tm_time.tm_sec;
- this->microsec_ = timevalue.usec ();
- this->wday_ = tm_time.tm_wday;
-}
-
-ASYS_INLINE
-ACE_Date_Time::ACE_Date_Time (void)
-{
- ACE_TRACE ("ACE_Date_Time::ACE_Date_Time");
- this->update ();
-}
-
-ASYS_INLINE
-ACE_Date_Time::ACE_Date_Time (const ACE_Time_Value& timevalue)
-{
- ACE_TRACE ("ACE_Date_Time::ACE_Date_Time: timevalue");
- this->update (timevalue);
-}
-
-// Constructor with init values, no check for validy
-ASYS_INLINE
-ACE_Date_Time::ACE_Date_Time (long day,
- long month,
- long year,
- long hour,
- long minute,
- long second,
- long microsec,
- long wday)
- : day_ (day),
- month_ (month),
- year_ (year),
- hour_ (hour),
- minute_ (minute),
- second_ (second),
- microsec_ (microsec),
- wday_ (wday)
-{
- ACE_TRACE ("ACE_Date_Time::ACE_Date_Time");
-}
-
-// set/get portions of ACE_Date_Time, no check for validy
-
-// get day
-ASYS_INLINE long
-ACE_Date_Time::day (void) const
-{
- ACE_TRACE ("ACE_Date_Time::day");
- return day_;
-}
-
-// set day
-ASYS_INLINE void
-ACE_Date_Time::day (long day)
-{
- ACE_TRACE ("ACE_Date_Time::day");
- day_ = day;
-}
-
-// get month
-ASYS_INLINE long
-ACE_Date_Time::month (void) const
-{
- ACE_TRACE ("ACE_Date_Time::month");
- return month_;
-}
-
-// set month
-ASYS_INLINE void
-ACE_Date_Time::month (long month)
-{
- ACE_TRACE ("ACE_Date_Time::month");
- month_ = month;
-}
-
-// get year
-ASYS_INLINE long
-ACE_Date_Time::year (void) const
-{
- ACE_TRACE ("ACE_Date_Time::year");
- return year_;
-}
-
-// set year
-ASYS_INLINE void
-ACE_Date_Time::year (long year)
-{
- ACE_TRACE ("ACE_Date_Time::year");
- year_ = year;
-}
-
-// get hour
-ASYS_INLINE long
-ACE_Date_Time::hour (void) const
-{
- ACE_TRACE ("ACE_Date_Time::hour");
- return hour_;
-}
-
-// set hour
-ASYS_INLINE void
-ACE_Date_Time::hour (long hour)
-{
- ACE_TRACE ("ACE_Date_Time::hour");
- hour_ = hour;
-}
-
-// get minute
-ASYS_INLINE long
-ACE_Date_Time::minute (void) const
-{
- ACE_TRACE ("ACE_Date_Time::minute");
- return minute_;
-}
-
-// set minute
-ASYS_INLINE void
-ACE_Date_Time::minute (long minute)
-{
- ACE_TRACE ("ACE_Date_Time::minute");
- minute_ = minute;
-}
-
-// get second
-ASYS_INLINE long
-ACE_Date_Time::second (void) const
-{
- ACE_TRACE ("ACE_Date_Time::second");
- return second_;
-}
-
-// set second
-ASYS_INLINE void
-ACE_Date_Time::second (long second)
-{
- ACE_TRACE ("ACE_Date_Time::second");
- second_ = second;
-}
-
-// get microsec
-ASYS_INLINE long
-ACE_Date_Time::microsec (void) const
-{
- ACE_TRACE ("ACE_Date_Time::microsec");
- return microsec_;
-}
-
-// set microsec
-ASYS_INLINE void
-ACE_Date_Time::microsec (long microsec)
-{
- ACE_TRACE ("ACE_Date_Time::microsec");
- microsec_ = microsec;
-}
-
-// get wday
-ASYS_INLINE long
-ACE_Date_Time::weekday (void) const
-{
- ACE_TRACE ("ACE_Date_Time::weekday");
- return wday_;
-}
-
-// set wday
-ASYS_INLINE void
-ACE_Date_Time::weekday (long wday)
-{
- ACE_TRACE ("ACE_Date_Time::weekday");
- wday_ = wday;
-}
diff --git a/ace/Default_Constants.h b/ace/Default_Constants.h
deleted file mode 100644
index 87c0934d555..00000000000
--- a/ace/Default_Constants.h
+++ /dev/null
@@ -1,392 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Default_Constants.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author Jesper S. M|ller<stophph@diku.dk>
- * @author and a cast of thousands...
- *
- * This one is split from the famous OS.h
- */
-//=============================================================================
-
-#ifndef ACE_DEFAULT_CONSTANTS_H
-#define ACE_DEFAULT_CONSTANTS_H
-#include "ace/pre.h"
-
-// Included just keep compilers that see #pragma dierctive first
-// happy.
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-
-// Define the default constants for ACE. Many of these are used for
-// the ACE tests and applications. You can change these values by
-// defining the macros in your config.h file.
-# if !defined (ACE_DEFAULT_CLOSE_ALL_HANDLES)
-# define ACE_DEFAULT_CLOSE_ALL_HANDLES 1
-# endif /* ACE_DEFAULT_CLOSE_ALL_HANDLES */
-
-// The maximum length for a fully qualified Internet name.
-# if !defined(ACE_MAX_FULLY_QUALIFIED_NAME_LEN)
-# define ACE_MAX_FULLY_QUALIFIED_NAME_LEN 256
-# endif /* ACE_MAX_FULLY_QUALIFIED_NAME_LEN */
-
-#if !defined (ACE_DEFAULT_PAGEFILE_POOL_BASE)
-#define ACE_DEFAULT_PAGEFILE_POOL_BASE (void *) 0
-#endif /* ACE_DEFAULT_PAGEFILE_POOL_BASE */
-
-#if !defined (ACE_DEFAULT_PAGEFILE_POOL_SIZE)
-#define ACE_DEFAULT_PAGEFILE_POOL_SIZE (size_t) 0x01000000
-#endif /* ACE_DEFAULT_PAGEFILE_POOL_SIZE */
-
-#if !defined (ACE_DEFAULT_PAGEFILE_POOL_CHUNK)
-#define ACE_DEFAULT_PAGEFILE_POOL_CHUNK (size_t) 0x00010000
-#endif /* ACE_DEFAULT_PAGEFILE_POOL_CHUNK */
-
-#if !defined (ACE_DEFAULT_PAGEFILE_POOL_NAME)
-#define ACE_DEFAULT_PAGEFILE_POOL_NAME ACE_LIB_TEXT ("Default_ACE_Pagefile_Memory_Pool")
-#endif /* ACE_DEFAULT_PAGEFILE_POOL_NAME */
-
-#if !defined (ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY)
-#define ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY 0
-#endif /* ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY */
-
-#if !defined (ACE_DEFAULT_SERVICE_REPOSITORY_SIZE)
-#define ACE_DEFAULT_SERVICE_REPOSITORY_SIZE 1024
-#endif /* ACE_DEFAULT_SERVICE_REPOSITORY_SIZE */
-
-#if !defined (ACE_REACTOR_NOTIFICATION_ARRAY_SIZE)
-#define ACE_REACTOR_NOTIFICATION_ARRAY_SIZE 1024
-#endif /* ACE_REACTOR_NOTIFICATION_ARRAY_SIZE */
-
-# if !defined (ACE_DEFAULT_TIMEOUT)
-# define ACE_DEFAULT_TIMEOUT 5
-# endif /* ACE_DEFAULT_TIMEOUT */
-
-# if !defined (ACE_DEFAULT_BACKLOG)
-# define ACE_DEFAULT_BACKLOG 5
-# endif /* ACE_DEFAULT_BACKLOG */
-
-# if !defined (ACE_DEFAULT_THREADS)
-# define ACE_DEFAULT_THREADS 1
-# endif /* ACE_DEFAULT_THREADS */
-
-// The following 3 defines are used in the IP multicast and broadcast tests.
-# if !defined (ACE_DEFAULT_BROADCAST_PORT)
-# define ACE_DEFAULT_BROADCAST_PORT 20000
-# endif /* ACE_DEFAULT_BROADCAST_PORT */
-
-# if !defined (ACE_DEFAULT_MULTICAST_PORT)
-# define ACE_DEFAULT_MULTICAST_PORT 20001
-# endif /* ACE_DEFAULT_MULTICAST_PORT */
-
-# if !defined (ACE_DEFAULT_MULTICAST_ADDR)
-// This address MUST be within the range for host group addresses:
-// 224.0.0.0 to 239.255.255.255.
-# define ACE_DEFAULT_MULTICAST_ADDR "224.9.9.2"
-# endif /* ACE_DEFAULT_MULTICAST_ADDR */
-
-// Default port number for HTTP.
-# if !defined (ACE_DEFAULT_HTTP_SERVER_PORT)
-# define ACE_DEFAULT_HTTP_SERVER_PORT 80
-# endif /* ACE_DEFAULT_HTTP_SERVER_PORT */
-
-// Used in many IPC_SAP tests
-# if !defined (ACE_DEFAULT_SERVER_PORT)
-# define ACE_DEFAULT_SERVER_PORT 20002
-# endif /* ACE_DEFAULT_SERVER_PORT */
-
-# if !defined (ACE_DEFAULT_HTTP_PORT)
-# define ACE_DEFAULT_HTTP_PORT 80
-# endif /* ACE_DEFAULT_HTTP_PORT */
-
-# if !defined (ACE_DEFAULT_MAX_SOCKET_BUFSIZ)
-# define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65536
-# endif /* ACE_DEFAULT_MAX_SOCKET_BUFSIZ */
-
-# if !defined (ACE_DEFAULT_SERVER_PORT_STR)
-# define ACE_DEFAULT_SERVER_PORT_STR "20002"
-# endif /* ACE_DEFAULT_SERVER_PORT_STR */
-
-// Used for the Service_Directory test
-# if !defined (ACE_DEFAULT_SERVICE_PORT)
-# define ACE_DEFAULT_SERVICE_PORT 20003
-# endif /* ACE_DEFAULT_SERVICE_PORT */
-
-// Used for the ACE_Thread_Spawn test
-# if !defined (ACE_DEFAULT_THR_PORT )
-# define ACE_DEFAULT_THR_PORT 20004
-# endif /* ACE_DEFAULT_THR_PORT */
-
-// Used for <SOCK_Connect::connect> tests
-# if !defined (ACE_DEFAULT_LOCAL_PORT)
-# define ACE_DEFAULT_LOCAL_PORT 20005
-# endif /* ACE_DEFAULT_LOCAL_PORT */
-
-// Used for Connector tests
-# if !defined (ACE_DEFAULT_LOCAL_PORT_STR)
-# define ACE_DEFAULT_LOCAL_PORT_STR "20005"
-# endif /* ACE_DEFAULT_LOCAL_PORT_STR */
-
-// Used for the name server.
-# if !defined (ACE_DEFAULT_NAME_SERVER_PORT)
-# define ACE_DEFAULT_NAME_SERVER_PORT 20006
-# endif /* ACE_DEFAULT_NAME_SERVER_PORT */
-
-# if !defined (ACE_DEFAULT_NAME_SERVER_PORT_STR)
-# define ACE_DEFAULT_NAME_SERVER_PORT_STR "20006"
-# endif /* ACE_DEFAULT_NAME_SERVER_PORT_STR */
-
-// Used for the token server.
-# if !defined (ACE_DEFAULT_TOKEN_SERVER_PORT)
-# define ACE_DEFAULT_TOKEN_SERVER_PORT 20007
-# endif /* ACE_DEFAULT_TOKEN_SERVER_PORT */
-
-# if !defined (ACE_DEFAULT_TOKEN_SERVER_PORT_STR)
-# define ACE_DEFAULT_TOKEN_SERVER_PORT_STR "20007"
-# endif /* ACE_DEFAULT_TOKEN_SERVER_PORT_STR */
-
-// Used for the logging server.
-# if !defined (ACE_DEFAULT_LOGGING_SERVER_PORT)
-# define ACE_DEFAULT_LOGGING_SERVER_PORT 20008
-# endif /* ACE_DEFAULT_LOGGING_SERVER_PORT */
-
-# if !defined (ACE_DEFAULT_LOGGING_SERVER_PORT_STR)
-# define ACE_DEFAULT_LOGGING_SERVER_PORT_STR "20008"
-# endif /* ACE_DEFAULT_LOGGING_SERVER_PORT_STR */
-
-// Used for the logging server.
-# if !defined (ACE_DEFAULT_THR_LOGGING_SERVER_PORT)
-# define ACE_DEFAULT_THR_LOGGING_SERVER_PORT 20008
-# endif /* ACE_DEFAULT_THR_LOGGING_SERVER_PORT */
-
-# if !defined (ACE_DEFAULT_THR_LOGGING_SERVER_PORT_STR)
-# define ACE_DEFAULT_THR_LOGGING_SERVER_PORT_STR "20008"
-# endif /* ACE_DEFAULT_THR_LOGGING_SERVER_PORT_STR */
-
-// Used for the time server.
-# if !defined (ACE_DEFAULT_TIME_SERVER_PORT)
-# define ACE_DEFAULT_TIME_SERVER_PORT 20009
-# endif /* ACE_DEFAULT_TIME_SERVER_PORT */
-
-# if !defined (ACE_DEFAULT_TIME_SERVER_PORT_STR)
-# define ACE_DEFAULT_TIME_SERVER_PORT_STR "20009"
-# endif /* ACE_DEFAULT_TIME_SERVER_PORT_STR */
-
-# if !defined (ACE_DEFAULT_TIME_SERVER_STR)
-# define ACE_DEFAULT_TIME_SERVER_STR "ACE_TS_TIME"
-# endif /* ACE_DEFAULT_TIME_SERVER_STR */
-
-// Used by the FIFO tests and the Client_Logging_Handler netsvc.
-# if !defined (ACE_DEFAULT_RENDEZVOUS)
-# if defined (ACE_HAS_STREAM_PIPES)
-# define ACE_DEFAULT_RENDEZVOUS ACE_LIB_TEXT("/tmp/fifo.ace")
-# else
-# define ACE_DEFAULT_RENDEZVOUS ACE_LIB_TEXT("localhost:20010")
-# endif /* ACE_HAS_STREAM_PIPES */
-# endif /* ACE_DEFAULT_RENDEZVOUS */
-
-// Used for the UNIX syslog logging interface to ACE_Log_Msg.
-# ifndef ACE_DEFAULT_SYSLOG_FACILITY
-# define ACE_DEFAULT_SYSLOG_FACILITY LOG_USER
-# endif /* ACE_DEFAULT_SYSLOG_FACILITY */
-
-# if !defined (ACE_DEFAULT_LOGGER_KEY)
-
-# if defined (ACE_HAS_STREAM_PIPES)
-# define ACE_DEFAULT_LOGGER_KEY ACE_LIB_TEXT ("/tmp/server_daemon")
-# else
-# define ACE_DEFAULT_LOGGER_KEY ACE_LIB_TEXT ("localhost:20012")
-# endif /* ACE_HAS_STREAM_PIPES */
-# endif /* ACE_DEFAULT_LOGGER_KEY */
-
-// The way to specify the local host for loopback IP. This is usually
-// "localhost" but it may need changing on some platforms.
-# if !defined (ACE_LOCALHOST)
-# define ACE_LOCALHOST ACE_LIB_TEXT ("localhost")
-# endif
-
-# if !defined (ACE_DEFAULT_SERVER_HOST)
-# define ACE_DEFAULT_SERVER_HOST ACE_LOCALHOST
-# endif /* ACE_DEFAULT_SERVER_HOST */
-
-// Default shared memory key
-# if !defined (ACE_DEFAULT_SHM_KEY)
-# define ACE_DEFAULT_SHM_KEY 1234
-# endif /* ACE_DEFAULT_SHM_KEY */
-
-// Default segment size used by SYSV shared memory (128 K)
-# if !defined (ACE_DEFAULT_SEGMENT_SIZE)
-# define ACE_DEFAULT_SEGMENT_SIZE 1024 * 128
-# endif /* ACE_DEFAULT_SEGMENT_SIZE */
-
-// Maximum number of SYSV shared memory segments
-// (does anyone know how to figure out the right values?!)
-# if !defined (ACE_DEFAULT_MAX_SEGMENTS)
-# define ACE_DEFAULT_MAX_SEGMENTS 6
-# endif /* ACE_DEFAULT_MAX_SEGMENTS */
-
-// Name of the map that's stored in shared memory.
-# if !defined (ACE_NAME_SERVER_MAP)
-# define ACE_NAME_SERVER_MAP "Name Server Map"
-# endif /* ACE_NAME_SERVER_MAP */
-
-// Default file permissions.
-# if !defined (ACE_DEFAULT_FILE_PERMS)
-# if defined (ACE_WIN32)
-# if defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 == 1)
-# define ACE_DEFAULT_FILE_PERMS (FILE_SHARE_READ | FILE_SHARE_WRITE | \
- FILE_SHARE_DELETE)
-# else
-# define ACE_DEFAULT_FILE_PERMS (FILE_SHARE_READ | FILE_SHARE_WRITE)
-# endif /* ACE_HAS_WINNT4 */
-# elif defined (VXWORKS)
-# define ACE_DEFAULT_FILE_PERMS (S_IRUSR | S_IWUSR| S_IRGRP| S_IROTH)
-# else
-# define ACE_DEFAULT_FILE_PERMS 0644
-# endif /* ACE_WIN32 */
-# endif /* ACE_DEFAULT_FILE_PERMS */
-
-// Default directory permissions.
-# if !defined (ACE_DEFAULT_DIR_PERMS)
-# define ACE_DEFAULT_DIR_PERMS 0755
-# endif /* ACE_DEFAULT_DIR_PERMS */
-
-# if !defined (ACE_DEFAULT_TIMEPROBE_TABLE_SIZE)
-# define ACE_DEFAULT_TIMEPROBE_TABLE_SIZE 8 * 1024
-# endif /* ACE_DEFAULT_TIMEPROBE_TABLE_SIZE */
-
-// Default size of the ACE Map_Manager.
-# if !defined (ACE_DEFAULT_MAP_SIZE)
-# define ACE_DEFAULT_MAP_SIZE 1024
-# endif /* ACE_DEFAULT_MAP_SIZE */
-
-// Defaults for ACE Timer Wheel
-# if !defined (ACE_DEFAULT_TIMER_WHEEL_SIZE)
-# define ACE_DEFAULT_TIMER_WHEEL_SIZE 1024
-# endif /* ACE_DEFAULT_TIMER_WHEEL_SIZE */
-
-# if !defined (ACE_DEFAULT_TIMER_WHEEL_RESOLUTION)
-# define ACE_DEFAULT_TIMER_WHEEL_RESOLUTION 100
-# endif /* ACE_DEFAULT_TIMER_WHEEL_RESOLUTION */
-
-// Default size for ACE Timer Hash table
-# if !defined (ACE_DEFAULT_TIMER_HASH_TABLE_SIZE)
-# define ACE_DEFAULT_TIMER_HASH_TABLE_SIZE 1024
-# endif /* ACE_DEFAULT_TIMER_HASH_TABLE_SIZE */
-
-// Defaults for the ACE Free List
-# if !defined (ACE_DEFAULT_FREE_LIST_PREALLOC)
-# define ACE_DEFAULT_FREE_LIST_PREALLOC 0
-# endif /* ACE_DEFAULT_FREE_LIST_PREALLOC */
-
-# if !defined (ACE_DEFAULT_FREE_LIST_LWM)
-# define ACE_DEFAULT_FREE_LIST_LWM 0
-# endif /* ACE_DEFAULT_FREE_LIST_LWM */
-
-# if !defined (ACE_DEFAULT_FREE_LIST_HWM)
-# define ACE_DEFAULT_FREE_LIST_HWM 25000
-# endif /* ACE_DEFAULT_FREE_LIST_HWM */
-
-# if !defined (ACE_DEFAULT_FREE_LIST_INC)
-# define ACE_DEFAULT_FREE_LIST_INC 100
-# endif /* ACE_DEFAULT_FREE_LIST_INC */
-
-# if !defined (ACE_UNIQUE_NAME_LEN)
-# define ACE_UNIQUE_NAME_LEN 100
-# endif /* ACE_UNIQUE_NAME_LEN */
-
-# if !defined (ACE_MAX_DGRAM_SIZE)
- // This is just a guess. 8k is the normal limit on
- // most machines because that's what NFS expects.
-# define ACE_MAX_DGRAM_SIZE 8192
-# endif /* ACE_MAX_DGRAM_SIZE */
-
-# if !defined (ACE_DEFAULT_ARGV_BUFSIZ)
-# define ACE_DEFAULT_ARGV_BUFSIZ 1024 * 4
-# endif /* ACE_DEFAULT_ARGV_BUFSIZ */
-
-// A free list which create more elements when there aren't enough
-// elements.
-# define ACE_FREE_LIST_WITH_POOL 1
-
-// A simple free list which doen't allocate/deallocate elements.
-# define ACE_PURE_FREE_LIST 2
-
-# if defined (INTEGRITY)
-# define ACE_MAX_USERID 32
-# endif
-
-# if defined (ACE_WIN32)
-
-#define ACE_MAX_USERID 32
-
-// This is necessary to work around bugs with Win32 non-blocking
-// connects...
-# if !defined (ACE_NON_BLOCKING_BUG_DELAY)
-# define ACE_NON_BLOCKING_BUG_DELAY 35000
-# endif /* ACE_NON_BLOCKING_BUG_DELAY */
-# endif /*ACE_WIN32*/
-
-// Max size of an ACE Log Record data buffer. This can be reset in
-// the config.h file if you'd like to increase or decrease the size.
-# if !defined (ACE_MAXLOGMSGLEN)
-# define ACE_MAXLOGMSGLEN 4 * 1024
-# endif /* ACE_MAXLOGMSGLEN */
-
-// Max size of an ACE Token.
-# define ACE_MAXTOKENNAMELEN 40
-
-// Max size of an ACE Token client ID.
-# define ACE_MAXCLIENTIDLEN MAXHOSTNAMELEN + 20
-
-/**
- * @name Default values to control CDR classes memory allocation strategies
- */
-//@{
-
-/// Control the initial size of all CDR buffers, application
-/// developers may want to optimize this value to fit their request
-/// size
-#if !defined (ACE_DEFAULT_CDR_BUFSIZE)
-# define ACE_DEFAULT_CDR_BUFSIZE 512
-#endif /* ACE_DEFAULT_CDR_BUFSIZE */
-
-/// Stop exponential growth of CDR buffers to avoid overallocation
-#if !defined (ACE_DEFAULT_CDR_EXP_GROWTH_MAX)
-# define ACE_DEFAULT_CDR_EXP_GROWTH_MAX 65536
-#endif /* ACE_DEFAULT_CDR_EXP_GROWTH_MAX */
-
-/// Control CDR buffer growth after maximum exponential growth is
-/// reached
-#if !defined (ACE_DEFAULT_CDR_LINEAR_GROWTH_CHUNK)
-# define ACE_DEFAULT_CDR_LINEAR_GROWTH_CHUNK 65536
-#endif /* ACE_DEFAULT_CDR_LINEAR_GROWTH_CHUNK */
-//@}
-
-/// Control the zero-copy optimizations for octet sequences
-/**
- * Large octet sequences can be sent without any copies by chaining
- * them in the list of message blocks that represent a single CDR
- * stream. However, if the octet sequence is too small the zero copy
- * optimizations actually hurt performance. Octet sequences smaller
- * than this value will be copied.
- */
-#if !defined (ACE_DEFAULT_CDR_MEMCPY_TRADEOFF)
-#define ACE_DEFAULT_CDR_MEMCPY_TRADEOFF 256
-#endif /* ACE_DEFAULT_CDR_MEMCPY_TRADEOFF */
-
-#if !defined (ACE_CONNECTOR_HANDLER_MAP_SIZE)
-const unsigned int ACE_CONNECTOR_HANDLER_MAP_SIZE = 16;
-#endif /*ACE_CONNECTOR_HANDLER_MAP_SIZE*/
-
-#include "ace/post.h"
-#endif /*ACE_DEFAULT_CONSTANTS_H*/
diff --git a/ace/Dev_Poll_Reactor.cpp b/ace/Dev_Poll_Reactor.cpp
deleted file mode 100644
index e301d1e9940..00000000000
--- a/ace/Dev_Poll_Reactor.cpp
+++ /dev/null
@@ -1,2430 +0,0 @@
-// -*- C++ -*-
-
-#include "ace/Dev_Poll_Reactor.h"
-
-ACE_RCSID (ace,
- Dev_Poll_Reactor,
- "$Id$")
-
-#if defined (ACE_HAS_EVENT_POLL) || defined (ACE_HAS_DEV_POLL)
-
-# if defined (ACE_HAS_EVENT_POLL) && defined (linux)
-
-// #undef POLLIN
-// #undef POLLPRI
-// #undef POLLOUT
-// #undef POLLERR
-// #undef POLLHUP
-// #undef POLLNVAL
-
-# include /**/ <asm/page.h>
- //# include <asm/poll.h>
- // @@ UGLY HACK ... REMOVE ME
- // <asm/poll.h> and <sys/poll.h> conflict.
-# define POLLREMOVE 0x1000
-# include /**/ <linux/eventpoll.h>
-
-# elif defined (ACE_HAS_DEV_POLL)
-
-# if defined (sun)
-# include /**/ <sys/devpoll.h>
-# elif defined (linux)
-# include /**/ <linux/devpoll.h>
-# endif /* sun */
-
-# endif /* ACE_HAS_DEV_POLL */
-
-
-#if !defined (__ACE_INLINE__)
-# include "ace/Dev_Poll_Reactor.inl"
-#endif /* __ACE_INLINE__ */
-
-
-#include "ace/Handle_Set.h"
-#include "ace/Reactor.h"
-#include "ace/Timer_Heap.h"
-#include "ace/ACE.h"
-
-
-ACE_Dev_Poll_Reactor_Notify::ACE_Dev_Poll_Reactor_Notify (void)
- : dp_reactor_ (0)
- , notification_pipe_ ()
- , max_notify_iterations_ (-1)
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
- , alloc_queue_ ()
- , notify_queue_ ()
- , free_queue_ ()
- , notify_queue_lock_ ()
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-{
-}
-
-int
-ACE_Dev_Poll_Reactor_Notify::open (ACE_Reactor_Impl *r,
- ACE_Timer_Queue * /* timer_queue */,
- int disable_notify_pipe)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::open");
-
- if (disable_notify_pipe == 0)
- {
- this->dp_reactor_ = ACE_dynamic_cast (ACE_Dev_Poll_Reactor *, r);
-
- if (this->dp_reactor_ == 0)
- {
- errno = EINVAL;
- return -1;
- }
-
- if (this->notification_pipe_.open () == -1)
- return -1;
-
-#if defined (F_SETFD)
- // close-on-exec
- ACE_OS::fcntl (this->notification_pipe_.read_handle (), F_SETFD, 1);
- ACE_OS::fcntl (this->notification_pipe_.write_handle (), F_SETFD, 1);
-#endif /* F_SETFD */
-
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
- ACE_Notification_Buffer *temp;
-
- ACE_NEW_RETURN (temp,
- ACE_Notification_Buffer[ACE_REACTOR_NOTIFICATION_ARRAY_SIZE],
- -1);
-
- if (this->alloc_queue_.enqueue_head (temp) == -1)
- return -1;
-
- for (size_t i = 0; i < ACE_REACTOR_NOTIFICATION_ARRAY_SIZE; ++i)
- if (free_queue_.enqueue_head (temp + i) == -1)
- return -1;
-
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-
- // Set the read handle into non-blocking mode since we need to
- // perform a "speculative" read when determining if their are
- // notifications to dispatch.
- if (ACE::set_flags (this->notification_pipe_.read_handle (),
- ACE_NONBLOCK) == -1)
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor_Notify::close (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::close");
-
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
- // Free up the dynamically allocated resources.
- ACE_Notification_Buffer **b;
-
- for (ACE_Unbounded_Queue_Iterator<ACE_Notification_Buffer *> alloc_iter (this->alloc_queue_);
- alloc_iter.next (b) != 0;
- alloc_iter.advance ())
- {
- delete [] *b;
- *b = 0;
- }
-
- this->alloc_queue_.reset ();
- this->notify_queue_.reset ();
- this->free_queue_.reset ();
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-
- return this->notification_pipe_.close ();
-}
-
-ssize_t
-ACE_Dev_Poll_Reactor_Notify::notify (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::notify");
-
- // Just consider this method a "no-op" if there's no
- // ACE_Dev_Poll_Reactor configured.
- if (this->dp_reactor_ == 0)
- return 0;
-
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
- ACE_Notification_Buffer buffer (eh, mask);
- // int notification_required = 0;
-
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, mon, this->notify_queue_lock_, -1);
-
- // No pending notifications.
-
- // We will send notify for every message..
- // if (this->notify_queue_.is_empty ())
- // notification_required = 1;
-
- ACE_Notification_Buffer *temp = 0;
-
- if (free_queue_.dequeue_head (temp) == -1)
- {
- // Grow the queue of available buffers.
- ACE_Notification_Buffer *temp1;
-
- ACE_NEW_RETURN (temp1,
- ACE_Notification_Buffer[ACE_REACTOR_NOTIFICATION_ARRAY_SIZE],
- -1);
-
- if (this->alloc_queue_.enqueue_head (temp1) == -1)
- return -1;
-
- // Start at 1 and enqueue only
- // (ACE_REACTOR_NOTIFICATION_ARRAY_SIZE - 1) elements since
- // the first one will be used right now.
- for (size_t i = 1;
- i < ACE_REACTOR_NOTIFICATION_ARRAY_SIZE;
- ++i)
- this->free_queue_.enqueue_head (temp1 + i);
-
- temp = temp1;
- }
-
- ACE_ASSERT (temp != 0);
- *temp = buffer;
-
- if (notify_queue_.enqueue_tail (temp) == -1)
- return -1;
-
- // Let us send a notify for every message
- // if (notification_required)
- ssize_t n = ACE::send (this->notification_pipe_.write_handle (),
- (char *) &buffer,
- sizeof buffer,
- timeout);
- if (n == -1)
- return -1;
-
- return 0;
-#else
- ACE_Notification_Buffer buffer (eh, mask);
-
- ssize_t n = ACE::send (this->notification_pipe_.write_handle (),
- (char *) &buffer,
- sizeof buffer,
- timeout);
- if (n == -1)
- return -1;
-
- return 0;
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-}
-
-int
-ACE_Dev_Poll_Reactor_Notify::dispatch_notifications (
- int & /* number_of_active_handles */,
- ACE_Handle_Set & /* rd_mask */)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::dispatch_notifications");
-
- // This method is unimplemented in the ACE_Dev_Poll_Reactor.
- // Instead, the notification handler is invoked as part of the IO
- // event set. Doing so alters the some documented semantics that
- // state that the notifications are handled before IO events.
- // Enforcing such semantics does not appear to be beneficial, and
- // also serves to slow down event dispatching particularly with this
- // ACE_Dev_Poll_Reactor.
-
-#if 0
- ACE_HANDLE read_handle =
- this->notification_pipe_.read_handle ();
-
- // Note that we do not check if the handle has received any events.
- // Instead a non-blocking "speculative" read is performed. If the
- // read returns with errno == EWOULDBLOCK then no notifications are
- // dispatched. See ACE_Dev_Poll_Reactor_Notify::read_notify_pipe()
- // for details.
- if (read_handle != ACE_INVALID_HANDLE)
- {
- number_of_active_handles--;
-
- return this->handle_input (read_handle);
- }
- else
- return 0;
-#else
- ACE_NOTSUP_RETURN (-1);
-#endif /* 0 */
-}
-
-int
-ACE_Dev_Poll_Reactor_Notify::read_notify_pipe (ACE_HANDLE handle,
- ACE_Notification_Buffer &buffer)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::read_notify_pipe");
-
- // This is a (non-blocking) "speculative" read, i.e., we attempt to
- // read even if no event was polled on the read handle. A
- // speculative read is necessary since notifications must be
- // dispatched before IO events. We can avoid the speculative read
- // by "walking" the array of pollfd structures returned from
- // `/dev/poll' or `/dev/epoll' but that is potentially much more
- // expensive than simply checking for an EWOULDBLOCK.
-
- ssize_t n = ACE::recv (handle, (char *) &buffer, sizeof buffer);
-
- if (n > 0)
- {
- // Check to see if we've got a short read.
- if (n != sizeof buffer)
- {
- ssize_t remainder = sizeof buffer - n;
-
- // If so, try to recover by reading the remainder. If this
- // doesn't work we're in big trouble since the input stream
- // won't be aligned correctly. I'm not sure quite what to
- // do at this point. It's probably best just to return -1.
- if (ACE::recv (handle,
- ((char *) &buffer) + n,
- remainder) != remainder)
- return -1;
- }
-
-
- return 1;
- }
-
- // Return -1 if things have gone seriously wrong.
- if (n <= 0 && (errno != EWOULDBLOCK && errno != EAGAIN))
- return -1;
-
- return n;
-}
-
-
-int
-ACE_Dev_Poll_Reactor_Notify::handle_input (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::handle_input");
-
- // @@ We may end up dispatching this event handler twice: once when
- // performing the speculative read on the notification pipe
- // handle, and once more when dispatching the IO events.
-
- // Precondition: this->select_reactor_.token_.current_owner () ==
- // ACE_Thread::self ();
-
- int number_dispatched = 0;
- int result = 0;
- ACE_Notification_Buffer buffer;
-
- while ((result = this->read_notify_pipe (handle, buffer)) > 0)
- {
- // Dispatch the buffer
- // NOTE: We count only if we made any dispatches ie. upcalls.
- if (this->dispatch_notify (buffer) > 0)
- number_dispatched++;
-
- // Bail out if we've reached the <notify_threshold_>. Note that
- // by default <notify_threshold_> is -1, so we'll loop until all
- // the notifications in the pipe have been dispatched.
- if (number_dispatched == this->max_notify_iterations_)
- break;
- }
-
- if ((result == -1 && (errno != EWOULDBLOCK || errno != EAGAIN))
- || result == 0)
- {
- // Reassign number_dispatched to -1 if things have gone
- // seriously wrong.
- number_dispatched = -1;
- }
-
- // Enqueue ourselves into the list of waiting threads. When we
- // reacquire the token we'll be off and running again with ownership
- // of the token. The postcondition of this call is that
- // <select_reactor_.token_.current_owner> == <ACE_Thread::self>.
- //this->select_reactor_->renew ();
-
- return number_dispatched;
-}
-
-ACE_HANDLE
-ACE_Dev_Poll_Reactor_Notify::notify_handle (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::notify_handle");
-
- return this->notification_pipe_.read_handle ();
-}
-
-int
-ACE_Dev_Poll_Reactor_Notify::is_dispatchable (ACE_Notification_Buffer &)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::is_dispatchable");
-
- ACE_NOTSUP_RETURN (-1);
-}
-
-int
-ACE_Dev_Poll_Reactor_Notify::dispatch_notify (ACE_Notification_Buffer &buffer)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::dispatch_notify");
-
- int result = 0;
-
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
- // Dispatch all messages that are in the <notify_queue_>.
- {
- // We acquire the lock in a block to make sure we're not
- // holding the lock while delivering callbacks...
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, mon, this->notify_queue_lock_, -1);
-
- ACE_Notification_Buffer *temp;
-
- if (notify_queue_.is_empty ())
- return 0;
- else if (notify_queue_.dequeue_head (temp) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("dequeue_head")),
- -1);
- buffer = *temp;
- if (free_queue_.enqueue_head (temp) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("enqueue_head")),
- -1);
- }
-
- // If eh == 0 then another thread is unblocking the
- // ACE_Dev_Poll_Reactor to update the ACE_Dev_Poll_Reactor's
- // internal structures. Otherwise, we need to dispatch the
- // appropriate handle_* method on the ACE_Event_Handler
- // pointer we've been passed.
- if (buffer.eh_ != 0)
- {
-
- switch (buffer.mask_)
- {
- case ACE_Event_Handler::READ_MASK:
- case ACE_Event_Handler::ACCEPT_MASK:
- result = buffer.eh_->handle_input (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::WRITE_MASK:
- result = buffer.eh_->handle_output (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::EXCEPT_MASK:
- result = buffer.eh_->handle_exception (ACE_INVALID_HANDLE);
- break;
- default:
- // Should we bail out if we get an invalid mask?
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("invalid mask = %d\n"),
- buffer.mask_));
- }
- if (result == -1)
- buffer.eh_->handle_close (ACE_INVALID_HANDLE,
- ACE_Event_Handler::EXCEPT_MASK);
- }
-#else
- // If eh == 0 then another thread is unblocking the
- // ACE_Dev_Poll_Reactor to update the ACE_Dev_Poll_Reactor's
- // internal structures. Otherwise, we need to dispatch the
- // appropriate handle_* method on the ACE_Event_Handler
- // pointer we've been passed.
- if (buffer.eh_ != 0)
- {
- switch (buffer.mask_)
- {
- case ACE_Event_Handler::READ_MASK:
- case ACE_Event_Handler::ACCEPT_MASK:
- result = buffer.eh_->handle_input (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::WRITE_MASK:
- result = buffer.eh_->handle_output (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::EXCEPT_MASK:
- result = buffer.eh_->handle_exception (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::QOS_MASK:
- result = buffer.eh_->handle_qos (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::GROUP_QOS_MASK:
- result = buffer.eh_->handle_group_qos (ACE_INVALID_HANDLE);
- break;
- default:
- // Should we bail out if we get an invalid mask?
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("invalid mask = %d\n"),
- buffer.mask_));
- }
- if (result == -1)
- buffer.eh_->handle_close (ACE_INVALID_HANDLE,
- ACE_Event_Handler::EXCEPT_MASK);
- }
-
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-
- return 1;
-}
-
-void
-ACE_Dev_Poll_Reactor_Notify::max_notify_iterations (int iterations)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::max_notify_iterations");
-
- // Must always be > 0 or < 0 to optimize the loop exit condition.
- if (iterations == 0)
- iterations = 1;
-
- this->max_notify_iterations_ = iterations;
-}
-
-int
-ACE_Dev_Poll_Reactor_Notify::max_notify_iterations (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::max_notify_iterations");
-
- return this->max_notify_iterations_;
-}
-
-int
-ACE_Dev_Poll_Reactor_Notify::purge_pending_notifications (
- ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::purge_pending_notifications");
-
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
-
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, mon, this->notify_queue_lock_, -1);
-
- if (this->notify_queue_.is_empty ())
- return 0;
-
- ACE_Notification_Buffer *temp;
- ACE_Unbounded_Queue <ACE_Notification_Buffer *> local_queue;
-
- size_t queue_size = this->notify_queue_.size ();
- int number_purged = 0;
- size_t i;
- for (i = 0; i < queue_size; ++i)
- {
- if (-1 == this->notify_queue_.dequeue_head (temp))
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("dequeue_head")),
- -1);
-
- // If this is not a Reactor notify (it is for a particular
- // handler), and it matches the specified handler (or purging
- // all), and applying the mask would totally eliminate the
- // notification, then release it and count the number purged.
- if ((0 != temp->eh_) &&
- (0 == eh || eh == temp->eh_) &&
- ACE_BIT_DISABLED (temp->mask_, ~mask)) // The existing
- // notification mask
- // is left with
- // nothing when
- // applying the mask.
- {
- if (this->free_queue_.enqueue_head (temp) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("enqueue_head")),
- -1);
- ++number_purged;
- }
- else
- {
- // To preserve it, move it to the local_queue.
- // But first, if this is not a Reactor notify (it is for a
- // particular handler), and it matches the specified handler
- // (or purging all), then apply the mask.
- if ((0 != temp->eh_) &&
- (0 == eh || eh == temp->eh_))
- ACE_CLR_BITS(temp->mask_, mask);
- if (-1 == local_queue.enqueue_head (temp))
- return -1;
- }
- }
-
- if (this->notify_queue_.size ())
- {
- // Should be empty!
- ACE_ASSERT (0);
- return -1;
- }
-
- // Now put it back in the notify queue.
- queue_size = local_queue.size ();
- for (i = 0; i < queue_size; ++i)
- {
- if (-1 == local_queue.dequeue_head (temp))
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("dequeue_head")),
- -1);
-
- if (-1 == this->notify_queue_.enqueue_head (temp))
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("enqueue_head")),
- -1);
- }
-
- return number_purged;
-
-#else /* defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE) */
- ACE_UNUSED_ARG (eh);
- ACE_UNUSED_ARG (mask);
- ACE_NOTSUP_RETURN (-1);
-#endif /* defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE) */
-}
-
-void
-ACE_Dev_Poll_Reactor_Notify::dump (void) const
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("dp_reactor_ = 0x%x"),
- this->dp_reactor_));
- this->notification_pipe_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// -----------------------------------------------------------------
-
-ACE_Dev_Poll_Reactor_Handler_Repository::
-ACE_Dev_Poll_Reactor_Handler_Repository (void)
- : max_size_ (0),
- handlers_ (0)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::ACE_Dev_Poll_Reactor_Handler_Repository");
-}
-
-int
-ACE_Dev_Poll_Reactor_Handler_Repository::invalid_handle (
- ACE_HANDLE handle) const
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::invalid_handle");
-
- if (handle < 0 || handle >= this->max_size_)
- {
- errno = EINVAL;
- return 1;
- }
- else
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor_Handler_Repository::handle_in_range (
- ACE_HANDLE handle) const
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::handle_in_range");
-
- if (handle >= 0 && handle < this->max_size_)
- return 1;
- else
- {
- errno = EINVAL;
- return 0;
- }
-}
-
-int
-ACE_Dev_Poll_Reactor_Handler_Repository::open (size_t size)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::open");
-
- this->max_size_ = size;
-
- // Try to allocate the memory.
- ACE_NEW_RETURN (this->handlers_,
- ACE_Dev_Poll_Event_Tuple[size],
- -1);
-
- // Try to increase the number of handles if <size> is greater than
- // the current limit.
- return ACE::set_handle_limit (size);
-}
-
-int
-ACE_Dev_Poll_Reactor_Handler_Repository::unbind_all (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::unbind_all");
-
- // Unbind all of the event handlers.
- for (int handle = 0;
- handle < this->max_size_;
- ++handle)
- this->unbind (handle);
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor_Handler_Repository::close (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::close");
-
- if (this->handlers_ != 0)
- {
- this->unbind_all ();
-
- delete [] this->handlers_;
- this->handlers_ = 0;
- }
-
- return 0;
-}
-
-ACE_Event_Handler *
-ACE_Dev_Poll_Reactor_Handler_Repository::find (ACE_HANDLE handle,
- size_t *index_p)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::find");
-
- ACE_Event_Handler *eh = 0;
-
- // Only bother to search for the <handle> if it's in range.
- if (this->handle_in_range (handle))
- {
- eh = this->handlers_[handle].event_handler;
-
- if (eh != 0 && index_p != 0)
- *index_p = handle;
- else
- errno = ENOENT;
- }
-
- return eh;
-}
-
-int
-ACE_Dev_Poll_Reactor_Handler_Repository::bind (
- ACE_HANDLE handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::bind");
-
- if (handle == ACE_INVALID_HANDLE)
- handle = event_handler->get_handle ();
-
- if (this->invalid_handle (handle))
- return -1;
-
- this->handlers_[handle].event_handler = event_handler;
- this->handlers_[handle].mask = mask;
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor_Handler_Repository::unbind (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::unbind");
-
- if (this->find (handle) == 0)
- return -1;
-
- this->handlers_[handle].event_handler = 0;
- this->handlers_[handle].mask = ACE_Event_Handler::NULL_MASK;
- this->handlers_[handle].suspended = 0;
-
- return 0;
-}
-
-// -----------------------------------------------------------------
-
-ACE_Dev_Poll_Reactor::ACE_Dev_Poll_Reactor (ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq,
- int disable_notify_pipe,
- ACE_Reactor_Notify *notify,
- int mask_signals)
- : initialized_ (0)
- , poll_fd_ (ACE_INVALID_HANDLE)
- , size_ (0)
- // , ready_set_ ()
-#if defined (ACE_HAS_EVENT_POLL)
- , mmap_ (0)
-#else
- , dp_fds_ (0)
-#endif /* ACE_HAS_EVENT_POLL */
- , start_pfds_ (0)
- , end_pfds_ (0)
- , deactivated_ (0)
- , lock_ ()
- , lock_adapter_ (lock_)
- , timer_queue_ (0)
- , delete_timer_queue_ (0)
- , signal_handler_ (0)
- , delete_signal_handler_ (0)
- , notify_handler_ (0)
- , delete_notify_handler_ (0)
- , mask_signals_ (mask_signals)
- , restart_ (0)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::ACE_Dev_Poll_Reactor");
-
- if (this->open (ACE::max_handles (),
- 0,
- sh,
- tq,
- disable_notify_pipe,
- notify) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Dev_Poll_Reactor::open ")
- ACE_LIB_TEXT ("failed inside ")
- ACE_LIB_TEXT ("ACE_Dev_Poll_Reactor::CTOR")));
-}
-
-ACE_Dev_Poll_Reactor::ACE_Dev_Poll_Reactor (size_t size,
- int rs,
- ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq,
- int disable_notify_pipe,
- ACE_Reactor_Notify *notify,
- int mask_signals)
- : initialized_ (0)
- , poll_fd_ (ACE_INVALID_HANDLE)
- , size_ (0)
- // , ready_set_ ()
-#if defined (ACE_HAS_EVENT_POLL)
- , mmap_ (0)
-#else
- , dp_fds_ (0)
-#endif /* ACE_HAS_EVENT_POLL */
- , start_pfds_ (0)
- , end_pfds_ (0)
- , deactivated_ (0)
- , lock_ ()
- , lock_adapter_ (lock_)
- , timer_queue_ (0)
- , delete_timer_queue_ (0)
- , signal_handler_ (0)
- , delete_signal_handler_ (0)
- , notify_handler_ (0)
- , delete_notify_handler_ (0)
- , mask_signals_ (mask_signals)
- , restart_ (0)
-{
- if (this->open (size,
- rs,
- sh,
- tq,
- disable_notify_pipe,
- notify) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Dev_Poll_Reactor::open ")
- ACE_LIB_TEXT ("failed inside ACE_Dev_Poll_Reactor::CTOR")));
-}
-
-ACE_Dev_Poll_Reactor::~ACE_Dev_Poll_Reactor (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::~ACE_Dev_Poll_Reactor");
-
- (void) this->close ();
-}
-
-int
-ACE_Dev_Poll_Reactor::open (size_t size,
- int restart,
- ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq,
- int disable_notify_pipe,
- ACE_Reactor_Notify *notify)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::open");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- // Can't initialize ourselves more than once.
- if (this->initialized_ > 0)
- return -1;
-
- this->restart_ = restart;
- this->signal_handler_ = sh;
- this->timer_queue_ = tq;
- this->notify_handler_ = notify;
-
- int result = 0;
-
- // Allows the signal handler to be overridden.
- if (this->signal_handler_ == 0)
- {
- ACE_NEW_RETURN (this->signal_handler_,
- ACE_Sig_Handler,
- -1);
-
- if (this->signal_handler_ == 0)
- result = -1;
- else
- this->delete_signal_handler_ = 1;
- }
-
- // Allows the timer queue to be overridden.
- if (result != -1 && this->timer_queue_ == 0)
- {
- ACE_NEW_RETURN (this->timer_queue_,
- ACE_Timer_Heap,
- -1);
-
- if (this->timer_queue_ == 0)
- result = -1;
- else
- this->delete_timer_queue_ = 1;
- }
-
- // Allows the Notify_Handler to be overridden.
- if (result != -1 && this->notify_handler_ == 0)
- {
- ACE_NEW_RETURN (this->notify_handler_,
- ACE_Dev_Poll_Reactor_Notify,
- -1);
-
- if (this->notify_handler_ == 0)
- result = -1;
- else
- this->delete_notify_handler_ = 1;
- }
-
-#if defined (ACE_HAS_EVENT_POLL)
-
- // Open the `/dev/epoll' character device.
- this->poll_fd_ = ACE_OS::open ("/dev/epoll", O_RDWR);
- if (this->poll_fd_ == ACE_INVALID_HANDLE)
- result = -1;
-
- // Set the maximum number of file descriptors to expect.
- if (result != -1
- && ACE_OS::ioctl (this->poll_fd_, EP_ALLOC, (void *) size) == 0)
- {
- // Map an area of memory to which results will be fed.
- void *mm = ACE_OS::mmap (0,
- EP_MAP_SIZE (size),
- PROT_READ | PROT_WRITE,
- MAP_PRIVATE,
- this->poll_fd_,
- 0);
-
- if (mm == (void *) MAP_FAILED)
- result = -1;
- else
- this->mmap_ = ACE_static_cast (char *, mm);
- }
-#else
-
- // Allocate the array before opening the device to avoid a potential
- // resource leak if allocation fails.
- ACE_NEW_RETURN (this->dp_fds_,
- pollfd[size],
- -1);
-
- // Open the `/dev/poll' character device.
- this->poll_fd_ = ACE_OS::open ("/dev/poll", O_RDWR);
- if (this->poll_fd_ == ACE_INVALID_HANDLE)
- result = -1;
-
-#endif /* ACE_HAS_EVENT_POLL */
-
- if (result != -1 && this->handler_rep_.open (size) == -1)
- result = -1;
-
- // Registration of the notification handler must be done after the
- // /dev/poll device has been fully initialized.
- else if (this->notify_handler_->open (this,
- 0,
- disable_notify_pipe) == -1
- || this->register_handler_i (
- this->notify_handler_->notify_handle (),
- this->notify_handler_,
- ACE_Event_Handler::READ_MASK) == -1)
- result = -1;
-
- this->size_ = size;
-
- if (result != -1)
- // We're all set to go.
- this->initialized_ = 1;
- else
- // This will close down all the allocated resources properly.
- (void) this->close ();
-
- return result;
-}
-
-int
-ACE_Dev_Poll_Reactor::current_info (ACE_HANDLE, size_t & /* size */)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-
-int
-ACE_Dev_Poll_Reactor::set_sig_handler (ACE_Sig_Handler *signal_handler)
-{
- if (this->delete_signal_handler_ && this->signal_handler_)
- delete this->signal_handler_;
-
- this->signal_handler_ = signal_handler;
- this->delete_signal_handler_ = 0;
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::set_timer_queue (ACE_Timer_Queue *tq)
-{
- // @note This method is deprecated.
-
- return this->timer_queue (tq);
-}
-
-int
-ACE_Dev_Poll_Reactor::timer_queue (ACE_Timer_Queue *tq)
-{
- if (this->delete_timer_queue_ && this->timer_queue_)
- delete this->timer_queue_;
-
- this->timer_queue_ = tq;
- this->delete_timer_queue_ = 0;
-
- return 0;
-
-}
-
-ACE_Timer_Queue *
-ACE_Dev_Poll_Reactor::timer_queue (void) const
-{
- return this->timer_queue_;
-}
-
-int
-ACE_Dev_Poll_Reactor::close (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::close");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- int result = 0;
-
-#if defined (ACE_HAS_EVENT_POLL)
- if (this->mmap_ != 0)
- {
- (void) ACE_OS::munmap (this->mmap_, EP_MAP_SIZE (this->size_));
- this->mmap_ = 0;
- }
-#else
- delete [] this->dp_fds_;
- this->dp_fds_ = 0;
-#endif /* ACE_HAS_EVENT_POLL */
-
- if (this->poll_fd_ != ACE_INVALID_HANDLE)
- {
-#if defined (ACE_HAS_EVENT_POLL)
- (void) ACE_OS::ioctl (this->poll_fd_, EP_FREE, 0);
-#endif /* ACE_HAS_EVENT_POLL */
- result = ACE_OS::close (this->poll_fd_);
- }
-
- if (this->delete_signal_handler_)
- {
- delete this->signal_handler_;
- this->signal_handler_ = 0;
- this->delete_signal_handler_ = 0;
- }
-
- (void) this->handler_rep_.close ();
-
- if (this->delete_timer_queue_)
- {
- delete this->timer_queue_;
- this->timer_queue_ = 0;
- this->delete_timer_queue_ = 0;
- }
-
- if (this->notify_handler_ != 0)
- this->notify_handler_->close ();
-
- if (this->delete_notify_handler_)
- {
- delete this->notify_handler_;
- this->notify_handler_ = 0;
- this->delete_notify_handler_ = 0;
- }
-
- this->poll_fd_ = ACE_INVALID_HANDLE;
- this->start_pfds_ = 0;
- this->end_pfds_ = 0;
- this->initialized_ = 0;
-
- return result;
-}
-
-int
-ACE_Dev_Poll_Reactor::work_pending (const ACE_Time_Value & max_wait_time)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::work_pending");
-
- // Stash the current time
- //
- // The destructor of this object will automatically compute how much
- // time elapsed since this method was called.
- ACE_Time_Value mwt (max_wait_time);
- ACE_MT (ACE_Countdown_Time countdown (&mwt));
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- // Update the countdown to reflect time waiting for the mutex.
- ACE_MT (countdown.update ());
-
- return this->work_pending_i (&mwt);
-}
-
-int
-ACE_Dev_Poll_Reactor::work_pending_i (ACE_Time_Value * max_wait_time)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::work_pending_i");
-
- if (this->deactivated_)
- return 0;
-
- if (this->start_pfds_ != this->end_pfds_)
- return 1; // We still have work_pending() do not poll for
- // additional events.
-
- ACE_Time_Value timer_buf (0);
- ACE_Time_Value *this_timeout = 0;
-
- this_timeout = this->timer_queue_->calculate_timeout (max_wait_time,
- &timer_buf);
-
- // Check if we have timers to fire.
- int timers_pending =
- ((this_timeout != 0 && max_wait_time == 0)
- || (this_timeout != 0 && max_wait_time != 0
- && *this_timeout != *max_wait_time) ? 1 : 0);
-
- long timeout =
- (this_timeout == 0 ? -1 /* Infinity */ : this_timeout->msec ());
-
-#if defined (ACE_HAS_EVENT_POLL)
-
- struct evpoll evp;
-
- evp.ep_timeout = timeout; // Milliseconds
- evp.ep_resoff = 0;
-
- // Poll for events
- int nfds = ACE_OS::ioctl (this->poll_fd_, EP_POLL, &evp);
-
- // Retrieve the results from the memory map.
- this->start_pfds_ =
- ACE_reinterpret_cast (struct pollfd *,
- this->mmap_ + evp.ep_resoff);
-
-#else
-
- struct dvpoll dvp;
-
- dvp.dp_fds = this->dp_fds_;
- dvp.dp_nfds = this->size_;
- dvp.dp_timeout = timeout; // Milliseconds
-
- // Poll for events
- int nfds = ACE_OS::ioctl (this->poll_fd_, DP_POLL, &dvp);
-
- // Retrieve the results from the pollfd array.
- this->start_pfds_ = dvp.dp_fds;
-
-#endif /* ACE_HAS_EVENT_POLL */
-
- // If nfds == 0 then end_pfds_ == start_pfds_ meaning that there is
- // no work pending. If nfds > 0 then there is work pending.
- // Otherwise an error occurred.
- if (nfds > -1)
- this->end_pfds_ = this->start_pfds_ + nfds;
-
- // If timers are pending, override any timeout from the poll.
- return (nfds == 0 && timers_pending != 0 ? 1 : nfds);
-}
-
-
-int
-ACE_Dev_Poll_Reactor::handle_events (ACE_Time_Value *max_wait_time)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::handle_events");
-
- // Stash the current time
- //
- // The destructor of this object will automatically compute how much
- // time elapsed since this method was called.
- ACE_MT (ACE_Countdown_Time countdown (max_wait_time));
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- if (this->deactivated_)
- return -1;
-
- // Update the countdown to reflect time waiting for the mutex.
- ACE_MT (countdown.update ());
-
- return this->handle_events_i (max_wait_time);
-}
-
-int
-ACE_Dev_Poll_Reactor::handle_events_i (ACE_Time_Value *max_wait_time)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::handle_events_i");
-
- int result = 0;
- // int active_handle_count = 0;
-
- // Poll for events
- //
- // If the underlying ioctl() call was interrupted via the interrupt
- // signal (i.e. returned -1 with errno == EINTR) then the loop will
- // be restarted if so desired.
- do
- {
- result = this->work_pending_i (max_wait_time);
- }
- while (result == -1 && this->restart_ != 0 && errno == EINTR);
-
- if (result == 0 || (result == -1 && errno == ETIME))
- return 0;
- else if (result == -1)
- return -1;
-
- // Dispatch the events, if any.
- return this->dispatch ();
-}
-
-int
-ACE_Dev_Poll_Reactor::dispatch (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::dispatch");
-
- int io_handlers_dispatched = 0;
- int other_handlers_dispatched = 0;
- int signal_occurred = 0;
-
- // The following do/while loop keeps dispatching as long as there
- // are still active handles. Note that the only way we should ever
- // iterate more than once through this loop is if signals occur
- // while we're dispatching other handlers.
-
- do
- {
- // Note that we keep track of changes to our state. If any of
- // the dispatch_*() methods below return -1 it means that the
- // "interest set" state has changed as the result of an
- // ACE_Event_Handler being dispatched. This means that we
- // need to bail out and rerun the poll loop since our existing
- // notion of handles in dispatch set may no longer be correct.
- //
- // In the beginning, our state starts out unchanged. After
- // every iteration (i.e., due to signals), our state starts out
- // unchanged again.
-
- // this->state_changed_ = 0;
-
- // Perform the Template Method for dispatching all the handlers.
-
- // First check for interrupts.
- if (0 /* active_handle_count == -1 */)
- {
- // Bail out -- we got here since the poll (i.e. ioctl()) was
- // interrupted.
- if (ACE_Sig_Handler::sig_pending () != 0)
- {
- ACE_Sig_Handler::sig_pending (0);
-
-#if 0
- // If any HANDLES in the <ready_set_> are activated as a
- // result of signals they should be dispatched since
- // they may be time critical...
- pfds = this->ready_set_.pfds;
- active_handle_count = this->ready_set_.nfds;
-#endif /* 0 */
-
- // Record the fact that the Reactor has dispatched a
- // handle_signal() method. We need this to return the
- // appropriate count below.
- signal_occurred = 1;
- }
- else
- return -1;
- }
-
- // Handle timers early since they may have higher latency
- // constraints than I/O handlers. Ideally, the order of
- // dispatching should be a strategy...
- else if (this->dispatch_timer_handlers (other_handlers_dispatched) == -1)
- // State has changed or timer queue has failed, exit loop.
- break;
-
- // Check to see if there are no more I/O handles left to
- // dispatch AFTER we've handled the timers.
- else if (0 /* active_handle_count == 0 */)
- return io_handlers_dispatched
- + other_handlers_dispatched
- + signal_occurred;
-
-#if 0
- // Next dispatch the notification handlers (if there are any to
- // dispatch). These are required to handle multiple threads
- // that are trying to update the Reactor.
- else if (this->dispatch_notification_handlers (
- dispatch_set,
- active_handle_count,
- other_handlers_dispatched) == -1)
- // State has changed or a serious failure has occured, so exit
- // loop.
- break;
-#endif /* 0 */
-
- // Finally, dispatch the I/O handlers.
- else if (this->dispatch_io_events (io_handlers_dispatched) == -1)
- // State has changed, so exit loop.
- break;
- }
- while (0 /* active_handle_count > 0 */);
-
- return io_handlers_dispatched + other_handlers_dispatched + signal_occurred;
-}
-
-int
-ACE_Dev_Poll_Reactor::dispatch_timer_handlers (
- int &number_of_timers_cancelled)
-{
- // Release the lock during the upcall.
- ACE_Reverse_Lock<ACE_SYNCH_MUTEX> reverse_lock (this->lock_);
- ACE_GUARD_RETURN (ACE_Reverse_Lock<ACE_SYNCH_MUTEX>,
- reverse_guard,
- reverse_lock,
- -1);
-
- number_of_timers_cancelled += this->timer_queue_->expire ();
-
- return 0;
-}
-
-#if 0
-int
-ACE_Dev_Poll_Reactor::dispatch_notification_handlers (
- ACE_Select_Reactor_Handle_Set &dispatch_set,
- int &number_of_active_handles,
- int &number_of_handlers_dispatched)
-{
- // Check to see if the ACE_HANDLE associated with the
- // Dev_Poll_Reactor's notify hook is enabled. If so, it means that
- // one or more other threads are trying to update the
- // ACE_Dev_Poll_Reactor's internal tables or the notify pipe is
- // enabled. We'll handle all these threads and notifications, and
- // then break out to continue the event loop.
-
- int n =
- this->notify_handler_->dispatch_notifications (number_of_active_handles,
- dispatch_set.rd_mask_);
-
- if (n == -1)
- return -1;
- else
- number_of_handlers_dispatched += n;
-
- return /* this->state_changed_ ? -1 : */ 0;
-}
-#endif /* 0 */
-
-int
-ACE_Dev_Poll_Reactor::dispatch_io_events (int &io_handlers_dispatched)
-{
- // Since the underlying event demultiplexing mechansim (`/dev/poll'
- // or '/dev/epoll') is stateful, and since only one result buffer is
- // used, all pending events (i.e. those retrieved from a previous
- // poll) must be dispatched before any additional event can be
- // polled. As such, the Dev_Poll_Reactor keeps track of the
- // progress of events that have been dispatched.
-
- // Dispatch the events.
- //
- // The semantics of this loop in the presence of multiple threads is
- // non-trivial. this->start_pfds_ will be incremented each time an
- // event handler is dispatched, which may be done across multiple
- // threads. Multiple threads may change the loop variables. Care
- // must be taken to only change those variables with the reactor
- // lock held.
- //
- // Notice that pfds only contains file descriptors that have
- // received events.
- for (struct pollfd *& pfds = this->start_pfds_;
- pfds < this->end_pfds_;
- /* Nothing to do before next loop iteration */)
- {
- const ACE_HANDLE handle = pfds->fd;
- const short revents = pfds->revents;
-
- // Increment the pointer to the next pollfd element before we
- // release the lock. Otherwise event handlers end up being
- // dispatched multiple times for the same poll.
- ++pfds;
-
- ACE_Event_Handler *eh = this->handler_rep_.find (handle);
-
- {
- // Modify the reference count in an exception-safe way.
- ACE_Dev_Poll_Handler_Guard (this->handler_rep_, handle);
-
- // Release the lock during the upcall.
- ACE_Reverse_Lock<ACE_SYNCH_MUTEX> reverse_lock (this->lock_);
- ACE_GUARD_RETURN (ACE_Reverse_Lock<ACE_SYNCH_MUTEX>,
- reverse_guard,
- reverse_lock,
- -1);
-
- // Dispatch all output events.
- if (ACE_BIT_ENABLED (revents, POLLOUT))
- {
- int status =
- this->upcall (eh, &ACE_Event_Handler::handle_output, handle);
-
- if (status < 0)
- {
- // Note that the lock is reacquired in
- // remove_handler().
- return this->remove_handler (handle,
- ACE_Event_Handler::WRITE_MASK);
- }
-
- io_handlers_dispatched++;
- }
-
- // Dispatch all "high priority" (e.g. out-of-band data) events.
- if (ACE_BIT_ENABLED (revents, POLLPRI))
- {
- int status =
- this->upcall (eh, &ACE_Event_Handler::handle_exception, handle);
-
- if (status < 0)
- {
- // Note that the lock is reacquired in
- // remove_handler().
- return this->remove_handler (handle,
- ACE_Event_Handler::EXCEPT_MASK);
- }
-
- io_handlers_dispatched++;
- }
-
- // Dispatch all input events.
- if (ACE_BIT_ENABLED (revents, POLLIN))
- {
- int status =
- this->upcall (eh, &ACE_Event_Handler::handle_input, handle);
-
- if (status < 0)
- {
- // Note that the lock is reacquired in
- // remove_handler().
- return this->remove_handler (handle,
- ACE_Event_Handler::READ_MASK);
- }
-
- io_handlers_dispatched++;
- }
- } // The reactor lock is reacquired upon leaving this scope.
- }
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::alertable_handle_events (ACE_Time_Value *max_wait_time)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::alertable_handle_events");
-
- return this->handle_events (max_wait_time);
-}
-
-int
-ACE_Dev_Poll_Reactor::handle_events (ACE_Time_Value &max_wait_time)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::handle_events");
-
- return this->handle_events (&max_wait_time);
-}
-
-int
-ACE_Dev_Poll_Reactor::alertable_handle_events (ACE_Time_Value &max_wait_time)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::alertable_handle_events");
-
- return this->handle_events (max_wait_time);
-}
-
-int
-ACE_Dev_Poll_Reactor::deactivated (void)
-{
- return this->deactivated_;
-}
-
-void
-ACE_Dev_Poll_Reactor::deactivate (int do_stop)
-{
- this->deactivated_ = do_stop;
- this->wakeup_all_threads ();
-}
-
-int
-ACE_Dev_Poll_Reactor::register_handler (ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::register_handler");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->register_handler_i (handler->get_handle (),
- handler,
- mask);
-}
-
-int
-ACE_Dev_Poll_Reactor::register_handler (ACE_HANDLE handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::register_handler");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->register_handler_i (handle,
- event_handler,
- mask);
-};
-
-int
-ACE_Dev_Poll_Reactor::register_handler_i (ACE_HANDLE handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::register_handler_i");
-
- if (handle == ACE_INVALID_HANDLE
- || mask == ACE_Event_Handler::NULL_MASK
- || this->handler_rep_.find (handle) != 0)
- {
- errno = EINVAL;
- return -1;
- }
-
- // Add the event handler to the repository.
- if (this->handler_rep_.bind (handle, event_handler, mask) != 0)
- return -1;
-
- struct pollfd pfd;
-
- pfd.fd = handle;
- pfd.events = this->reactor_mask_to_poll_event (mask);
- pfd.revents = 0;
-
- // Add file descriptor to the "interest set."
- if (ACE_OS::write (this->poll_fd_, &pfd, sizeof (pfd)) != sizeof (pfd))
- {
- (void) this->handler_rep_.unbind (handle);
-
- return -1;
- }
-
- // Note the fact that we've changed the state of the wait_set_,
- // which is used by the dispatching loop to determine whether it can
- // keep going or if it needs to reconsult select().
- // this->state_changed_ = 1;
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::register_handler (
- ACE_HANDLE /* event_handle */,
- ACE_HANDLE /* io_handle */,
- ACE_Event_Handler * /* event_handler */,
- ACE_Reactor_Mask /* mask */)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-int
-ACE_Dev_Poll_Reactor::register_handler (const ACE_Handle_Set &handle_set,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::register_handler");
-
- ACE_Handle_Set_Iterator handle_iter (handle_set);
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- // @@ It might be more efficient to construct a pollfd array and
- // pass it to the write() call in register_handler_i() only once,
- // instead of calling write() (a system call) once for each file
- // descriptor.
-
- for (ACE_HANDLE h = handle_iter ();
- h != ACE_INVALID_HANDLE;
- h = handle_iter ())
- if (this->register_handler_i (h, event_handler, mask) == -1)
- return -1;
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::register_handler (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp,
- ACE_Event_Handler **old_sh,
- ACE_Sig_Action *old_disp)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::register_handler");
-
- return this->signal_handler_->register_handler (signum,
- new_sh,
- new_disp,
- old_sh,
- old_disp);
-}
-
-int
-ACE_Dev_Poll_Reactor::register_handler (const ACE_Sig_Set &sigset,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::register_handler");
-
- int result = 0;
-
-#if (ACE_NSIG > 0) && !defined (CHORUS)
-
- for (int s = 1; s < ACE_NSIG; ++s)
- if (sigset.is_member (s)
- && this->signal_handler_->register_handler (s,
- new_sh,
- new_disp) == -1)
- result = -1;
-
-#else /* ACE_NSIG <= 0 || CHORUS */
-
- ACE_UNUSED_ARG (sigset);
- ACE_UNUSED_ARG (new_sh);
- ACE_UNUSED_ARG (new_disp);
-
-#endif /* ACE_NSIG <= 0 || CHORUS */
-
- return result;
-}
-
-int
-ACE_Dev_Poll_Reactor::remove_handler (ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::remove_handler");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->remove_handler_i (handler->get_handle (), mask);
-}
-
-int
-ACE_Dev_Poll_Reactor::remove_handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::remove_handler");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->remove_handler_i (handle, mask);
-}
-
-int
-ACE_Dev_Poll_Reactor::remove_handler_i (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::remove_handler_i");
-
-
- ACE_Event_Handler *eh = this->handler_rep_.find (handle);
-
- if (eh == 0
- || this->mask_ops_i (handle, mask, ACE_Reactor::CLR_MASK) != 0)
- return -1;
-
- // If there are no longer any outstanding events on the given handle
- // then remove it from the handler repository.
- if (this->handler_rep_.mask (handle) == ACE_Event_Handler::NULL_MASK
- && this->handler_rep_.unbind (handle) != 0)
- return -1;
-
- if (ACE_BIT_DISABLED (mask, ACE_Event_Handler::DONT_CALL))
- (void) eh->handle_close (handle, mask);
-
- // Note the fact that we've changed the state of the wait_set,
- // i.e. the "interest set," which is used by the dispatching loop to
- // determine whether it can keep going or if it needs to reconsult
- // /dev/poll or /dev/epoll.
- // this->state_changed_ = 1;
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::remove_handler (const ACE_Handle_Set &handle_set,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::remove_handler");
-
- ACE_Handle_Set_Iterator handle_iter (handle_set);
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- // @@ It might be more efficient to construct a pollfd array and
- // pass it to the write() call in register_handler_i() only once,
- // instead of calling write() (a system call) once for each file
- // descriptor.
-
- for (ACE_HANDLE h = handle_iter ();
- h != ACE_INVALID_HANDLE;
- h = handle_iter ())
- if (this->remove_handler_i (h, mask) == -1)
- return -1;
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::remove_handler (int signum,
- ACE_Sig_Action *new_disp,
- ACE_Sig_Action *old_disp,
- int sigkey)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::remove_handler");
-
- return this->signal_handler_->remove_handler (signum,
- new_disp,
- old_disp,
- sigkey);
-}
-
-int
-ACE_Dev_Poll_Reactor::remove_handler (const ACE_Sig_Set &sigset)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::remove_handler");
-
- int result = 0;
-
-#if (ACE_NSIG > 0) && !defined (CHORUS)
-
- for (int s = 1; s < ACE_NSIG; ++s)
- if (sigset.is_member (s)
- && this->signal_handler_->remove_handler (s) == -1)
- result = -1;
-
-#else /* ACE_NSIG <= 0 || CHORUS */
-
- ACE_UNUSED_ARG (sigset);
-
-#endif /* ACE_NSIG <= 0 || CHORUS */
-
- return result;
-}
-
-int
-ACE_Dev_Poll_Reactor::suspend_handler (ACE_Event_Handler *event_handler)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::suspend_handler");
-
- if (event_handler == 0)
- {
- errno = EINVAL;
- return -1;
- }
-
- ACE_HANDLE handle = event_handler->get_handle ();
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->suspend_handler_i (handle);
-}
-
-int
-ACE_Dev_Poll_Reactor::suspend_handler (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::suspend_handler");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->suspend_handler_i (handle);
-}
-
-int
-ACE_Dev_Poll_Reactor::suspend_handler (const ACE_Handle_Set &handles)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::suspend_handler");
-
- ACE_Handle_Set_Iterator handle_iter (handles);
- ACE_HANDLE h;
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- while ((h = handle_iter ()) != ACE_INVALID_HANDLE)
- if (this->suspend_handler_i (h) == -1)
- return -1;
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::suspend_handlers (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::suspend_handlers");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- size_t len = this->handler_rep_.size ();
-
- for (size_t i = 0; i < len; ++i)
- if (this->handler_rep_.suspended (i) == 0
- && this->suspend_handler_i (i) != 0)
- return -1;
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::suspend_handler_i (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::suspend_handler_i");
-
- if (this->handler_rep_.find (handle) == 0)
- return -1;
-
- if (this->handler_rep_.suspended (handle))
- return 0; // Already suspended. @@ Should this be an error?
-
- struct pollfd pfd[1];
-
- pfd[0].fd = handle;
- pfd[0].events = POLLREMOVE;
- pfd[0].revents = 0;
-
- // Remove the handle from the "interest set."
- //
- // Note that the associated event handler is still in the handler
- // repository, but no events will be polled on the given handle thus
- // no event will be dispatched to the event handler.
- if (ACE_OS::write (this->poll_fd_, pfd, sizeof (pfd)) != sizeof (pfd))
- return -1;
-
- this->handler_rep_.suspend (handle);
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::resume_handler (ACE_Event_Handler *event_handler)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::resume_handler");
-
- if (event_handler == 0)
- {
- errno = EINVAL;
- return -1;
- }
-
- ACE_HANDLE handle = event_handler->get_handle ();
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->resume_handler_i (handle);
-}
-
-int
-ACE_Dev_Poll_Reactor::resume_handler (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::resume_handler");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->resume_handler_i (handle);
-}
-
-int
-ACE_Dev_Poll_Reactor::resume_handler (const ACE_Handle_Set &handles)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::resume_handler");
-
- ACE_Handle_Set_Iterator handle_iter (handles);
- ACE_HANDLE h;
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- while ((h = handle_iter ()) != ACE_INVALID_HANDLE)
- if (this->resume_handler_i (h) == -1)
- return -1;
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::resume_handlers (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::resume_handlers");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- size_t len = this->handler_rep_.size ();
-
- for (size_t i = 0; i < len; ++i)
- if (this->handler_rep_.suspended (i)
- && this->resume_handler_i (i) != 0)
- return -1;
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::resume_handler_i (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::resume_handler_i");
-
- if (this->handler_rep_.find (handle) == 0
- && this->handler_rep_.suspended (handle) == 0)
- return -1;
-
- ACE_Reactor_Mask mask = this->handler_rep_.mask (handle);
-
- if (mask == ACE_Event_Handler::NULL_MASK)
- return -1;
-
- struct pollfd pfd[1];
-
- pfd[0].fd = handle;
- pfd[0].events = this->reactor_mask_to_poll_event (mask);
- pfd[0].revents = 0;
-
- // Place the handle back in to the "interest set."
- //
- // Events for the given handle will once again be polled.
- if (ACE_OS::write (this->poll_fd_, pfd, sizeof (pfd)) != sizeof (pfd))
- return -1;
-
- this->handler_rep_.resume (handle);
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::resumable_handler (void)
-{
- // @@ Is this correct?
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::uses_event_associations (void)
-{
- // Since the Dev_Poll_Reactor does not do any event associations,
- // this method always return zero.
- return 0;
-}
-
-long
-ACE_Dev_Poll_Reactor::schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::schedule_timer");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->timer_queue_->schedule (
- event_handler,
- arg,
- this->timer_queue_->gettimeofday () + delay,
- interval);
-}
-
-int
-ACE_Dev_Poll_Reactor::reset_timer_interval (long timer_id,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::reset_timer_interval");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->timer_queue_->reset_interval (timer_id, interval);
-}
-
-int
-ACE_Dev_Poll_Reactor::cancel_timer (ACE_Event_Handler *event_handler,
- int dont_call_handle_close)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::cancel_timer");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return (this->timer_queue_ == 0
- ? 0
- : this->timer_queue_->cancel (event_handler,
- dont_call_handle_close));
-}
-
-int
-ACE_Dev_Poll_Reactor::cancel_timer (long timer_id,
- const void **arg,
- int dont_call_handle_close)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::cancel_timer");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return (this->timer_queue_ == 0
- ? 0
- : this->timer_queue_->cancel (timer_id,
- arg,
- dont_call_handle_close));
-}
-
-int
-ACE_Dev_Poll_Reactor::schedule_wakeup (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::schedule_wakeup");
-
- return this->mask_ops (eh->get_handle (), mask, ACE_Reactor::ADD_MASK);
-}
-
-int
-ACE_Dev_Poll_Reactor::schedule_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::schedule_wakeup");
-
- return this->mask_ops (handle, mask, ACE_Reactor::ADD_MASK);
-}
-
-int
-ACE_Dev_Poll_Reactor::cancel_wakeup (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::cancel_wakeup");
-
- return this->mask_ops (eh->get_handle (), mask, ACE_Reactor::CLR_MASK);
-}
-
-int
-ACE_Dev_Poll_Reactor::cancel_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::cancel_wakeup");
-
- return this->mask_ops (handle, mask, ACE_Reactor::CLR_MASK);
-}
-
-int
-ACE_Dev_Poll_Reactor::notify (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::notify");
-
- ssize_t n = 0;
-
- // Pass over both the Event_Handler *and* the mask to allow the
- // caller to dictate which Event_Handler method the receiver
- // invokes. Note that this call can timeout.
-
- n = this->notify_handler_->notify (eh, mask, timeout);
-
- return n == -1 ? -1 : 0;
-}
-
-void
-ACE_Dev_Poll_Reactor::max_notify_iterations (int iterations)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::max_notify_iterations");
-
- ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, this->lock_));
-
- this->notify_handler_->max_notify_iterations (iterations);
-}
-
-int
-ACE_Dev_Poll_Reactor::max_notify_iterations (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::max_notify_iterations");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->notify_handler_->max_notify_iterations ();
-}
-
-int
-ACE_Dev_Poll_Reactor::purge_pending_notifications (ACE_Event_Handler * eh,
- ACE_Reactor_Mask mask)
-{
- if (this->notify_handler_ == 0)
- return 0;
-
- return this->notify_handler_->purge_pending_notifications (eh, mask);
-}
-
-int
-ACE_Dev_Poll_Reactor::handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Event_Handler **event_handler)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::handler");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- ACE_Event_Handler *h = this->handler_rep_.find (handle);
-
- if (h != 0
- && ACE_BIT_CMP_MASK (this->handler_rep_.mask (handle),
- mask, // Compare all bits in the mask
- mask))
- {
- if (event_handler != 0)
- *event_handler = h;
-
- return 0;
- }
-
- return -1;
-}
-
-int
-ACE_Dev_Poll_Reactor::handler (int signum,
- ACE_Event_Handler **eh)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::handler");
-
- ACE_Event_Handler *handler = this->signal_handler_->handler (signum);
-
- if (handler == 0)
- return -1;
- else if (eh != 0)
- *eh = handler;
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::initialized (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::initialized");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->initialized_;
-}
-
-size_t
-ACE_Dev_Poll_Reactor::size (void) const
-{
- return this->size_;
-}
-
-ACE_Lock &
-ACE_Dev_Poll_Reactor::lock (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::lock");
-
- return this->lock_adapter_;
-}
-
-void
-ACE_Dev_Poll_Reactor::wakeup_all_threads (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::wakeup_all_threads");
-
-#if 0
- // Send a notification, but don't block if there's no one to receive
- // it.
- this->notify (0,
- ACE_Event_Handler::NULL_MASK,
- (ACE_Time_Value *) &ACE_Time_Value::zero);
-#endif /* 0 */
-}
-
-int
-ACE_Dev_Poll_Reactor::owner (ACE_thread_t /* new_owner */,
- ACE_thread_t * /* old_owner */)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::owner");
-
- // There is no need to set the owner of the event loop. Multiple
- // threads may invoke the event loop simulataneously.
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::owner (ACE_thread_t * /* owner */)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::owner");
-
- // There is no need to set the owner of the event loop. Multiple
- // threads may invoke the event loop simulataneously.
-
- return 0;
-}
-
-int
-ACE_Dev_Poll_Reactor::restart (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::restart");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->restart_;
-}
-
-int
-ACE_Dev_Poll_Reactor::restart (int r)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::restart");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- int current_value = this->restart_;
- this->restart_ = r;
- return current_value;
-}
-
-void
-ACE_Dev_Poll_Reactor::requeue_position (int)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::requeue_position");
-}
-
-int
-ACE_Dev_Poll_Reactor::requeue_position (void)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::requeue_position");
-
- ACE_NOTSUP_RETURN (-1);
-}
-
-int
-ACE_Dev_Poll_Reactor::mask_ops (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- int ops)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::mask_ops");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->mask_ops_i (event_handler->get_handle (), mask, ops);
-}
-
-int
-ACE_Dev_Poll_Reactor::mask_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::mask_ops");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- return this->mask_ops_i (handle, mask, ops);
-}
-
-int
-ACE_Dev_Poll_Reactor::mask_ops_i (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::mask_ops_i");
-
- if (this->handler_rep_.handle_in_range (handle) == 0)
- return -1;
-
- // Block out all signals until method returns.
- ACE_Sig_Guard sb;
-
- ACE_Reactor_Mask old_mask = this->handler_rep_.mask (handle);
- ACE_Reactor_Mask new_mask = old_mask;
-
- // Perform GET, CLR, SET, and ADD operations on the interest/wait
- // set and the suspend set (if necessary).
- //
- // GET = 1, Retrieve current value
- // SET = 2, Set value of bits to new mask (changes the entire mask)
- // ADD = 3, Bitwise "or" the value into the mask (only changes
- // enabled bits)
- // CLR = 4 Bitwise "and" the negation of the value out of the mask
- // (only changes enabled bits)
- //
- // Returns the original mask.
-
- switch (ops)
- {
- case ACE_Reactor::GET_MASK:
- // The work for this operation is done in all cases at the
- // begining of the function.
- return old_mask;
-
- case ACE_Reactor::CLR_MASK:
- ACE_CLR_BITS (new_mask, mask);
- break;
-
- case ACE_Reactor::SET_MASK:
- new_mask = mask;
- break;
-
- case ACE_Reactor::ADD_MASK:
- ACE_SET_BITS (new_mask, mask);
- break;
-
- default:
- return -1;
- }
-
- /// Reset the mask for the given handle.
- this->handler_rep_.mask (handle, new_mask);
-
- if (this->handler_rep_.suspended (handle) == 0)
- {
- // Only attempt to alter events for the handle from the
- // "interest set" if it hasn't been suspended.
-
- short events = this->reactor_mask_to_poll_event (new_mask);
-
-#if defined (sun)
- // Apparently events cannot be updated on-the-fly on Solaris so
- // remove the existing events, and then add the new ones.
- struct pollfd pfd[2];
-
- pfd[0].fd = handle;
- pfd[0].events = POLLREMOVE;
- pfd[0].revents = 0;
- pfd[1].fd = (events == POLLREMOVE ? ACE_INVALID_HANDLE : handle);
- pfd[1].events = events;
- pfd[1].revents = 0;
-#else
- pollfd pfd[1];
-
- pfd[0].fd = handle;
- pfd[0].events = events;
- pfd[0].revents = 0;
-#endif /* sun */
-
- // Change the events associated with the given file descriptor.
- if (ACE_OS::write (this->poll_fd_,
- pfd,
- sizeof (pfd)) != sizeof (pfd))
- return -1;
- }
-
- return old_mask;
-}
-
-int
-ACE_Dev_Poll_Reactor::ready_ops (ACE_Event_Handler * /* event_handler */,
- ACE_Reactor_Mask /* mask */,
- int /* ops */)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::ready_ops");
-
- // Since the Dev_Poll_Reactor uses the poll result buffer, the
- // ready_set cannot be directly manipulated outside of the event
- // loop.
- ACE_NOTSUP_RETURN (-1);
-}
-
-int
-ACE_Dev_Poll_Reactor::ready_ops (ACE_HANDLE /* handle */,
- ACE_Reactor_Mask /* mask */,
- int /* ops */)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::ready_ops");
-
- // Since the Dev_Poll_Reactor uses the poll result buffer, the
- // ready_set cannot be directly manipulated outside of the event
- // loop.
- ACE_NOTSUP_RETURN (-1);
-}
-
-void
-ACE_Dev_Poll_Reactor::dump (void) const
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("restart_ = %d\n"), this->restart_));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("initialized_ = %d"),
- this->initialized_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("poll_fd_ = %d"), this->poll_fd_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("size_ = %u"), this->size_));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("deactivated_ = %d"),
- this->deactivated_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-short
-ACE_Dev_Poll_Reactor::reactor_mask_to_poll_event (ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor::reactor_mask_to_poll_event");
-
- if (mask == ACE_Event_Handler::NULL_MASK)
- return POLLREMOVE; // No event. Remove from interest set.
-
- short events = 0;
-
- // READ, ACCEPT, and CONNECT flag will place the handle in the
- // read set.
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK)
- || ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK)
- || ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK))
- {
- ACE_SET_BITS (events, POLLIN);
- }
-
- // WRITE and CONNECT flag will place the handle in the write set.
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK)
- || ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK))
- {
- ACE_SET_BITS (events, POLLOUT);
- }
-
- // EXCEPT flag will place the handle in the except set.
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
- {
- ACE_SET_BITS (events, POLLPRI);
- }
-
- return events;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Lock_Adapter<ACE_SYNCH_MUTEX>;
-template class ACE_Reverse_Lock<ACE_SYNCH_MUTEX>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_Lock_Adapter<ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Reverse_Lock<ACE_SYNCH_MUTEX>;
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_HAS_EVENT_POLL || ACE_HAS_DEV_POLL */
diff --git a/ace/Dev_Poll_Reactor.h b/ace/Dev_Poll_Reactor.h
deleted file mode 100644
index 5461f3d66fb..00000000000
--- a/ace/Dev_Poll_Reactor.h
+++ /dev/null
@@ -1,1175 +0,0 @@
-// -*- C++ -*-
-
-// =========================================================================
-/**
- * @file Dev_Poll_Reactor.h
- *
- * $Id$
- *
- * EXPERIMENTAL /dev/poll (or Linux /dev/epoll) based Reactor
- * implementation.
- *
- * @author Ossama Othman <ossama@uci.edu>
- */
-// =========================================================================
-
-
-#ifndef ACE_DEV_POLL_REACTOR_H
-#define ACE_DEV_POLL_REACTOR_H
-
-#include "ace/pre.h"
-
-#include "ace/Reactor_Impl.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-
-#if defined (ACE_HAS_EVENT_POLL) && defined (ACE_HAS_DEV_POLL)
-# error ACE_HAS_EVENT_POLL and ACE_HAS_DEV_POLL are mutually exclusive.
-#endif /* ACE_HAS_EVENT_POLL && defined ACE_HAS_DEV_POLL */
-
-
-#if defined (ACE_HAS_EVENT_POLL) || defined (ACE_HAS_DEV_POLL)
-
-#include "ace/Pipe.h"
-
-// Forward declarations
-class ACE_Sig_Handler;
-class ACE_Dev_Poll_Reactor;
-
-/**
- * @class ACE_Dev_Poll_Event_Tuple
- *
- * @brief Class that associates specific event mask with a given event
- * handler.
- *
- * This class merely provides a means to associate an event mask
- * with an event handler. Such an association is needed since it is
- * not possible to retrieve the event mask from the "interest set"
- * stored in the `/dev/poll' or `/dev/epoll' driver. Without this
- * external association, it would not be possible keep track of the
- * event mask for a given event handler when suspending it or resuming
- * it.
- *
- * @note An ACE_Handle_Set is not used since the number of handles may
- * exceed its capacity (ACE_DEFAULT_SELECT_REACTOR_SIZE).
- */
-class ACE_Dev_Poll_Event_Tuple
-{
-public:
-
- /// Constructor.
- ACE_Dev_Poll_Event_Tuple (void);
-
-public:
-
- /// The event handler.
- ACE_Event_Handler *event_handler;
-
- /// The event mask for the above event handler.
- ACE_Reactor_Mask mask;
-
- /// Flag that states whether or not the event handler is suspended.
- char suspended;
-
- /// The number of outstanding upcalls occurring on the above event
- /// handler.
- /**
- * @todo The reference count should really be maintained within the
- * event handler. This approach was taken to allow for
- * backward compatibility and quick implementation. One
- * approach for maintaining backward compatibility while
- * implementing reference counting within the event handler is
- * to create an ACE_Ref_Counted_Event_Handler "mix-in" class
- * that concrete ACE_Event_Handlers can inherit from
- * (i.e. multiple inheritance). Thus, legacy non-reference
- * counted event handlers need not pay for reference counting
- * resources.
- */
- unsigned long refcount;
-
-};
-
-// ---------------------------------------------------------------------
-
-#if 0
-/**
- * @class ACE_Dev_Poll_Ready_Set
- *
- * @brief Class that contains the list of "ready" file descriptors.
- *
- * This class points to an array of pollfd structures corresponding to
- * "ready" file descriptors, such as those corresponding to event
- * handlers that request an additional callback after being initially
- * dispatched (i.e. return a value greater than zero).
- * @par
- * The idea is to store the "ready" set in an existing area of memory
- * that already contains pollfd instances. Doing so is safe since the
- * "ready" set is dispatched before polling for additional events,
- * thus avoiding being potentially overwritten during the event poll.
- * @par
- * When the "ready" set is dispatched, all that needs to be done is to
- * iterate over the contents of the array. There is no need to "walk"
- * the array in search of ready file descriptors since the array by
- * design only contains ready file descriptors. As such, this
- * implementation of a ready set is much more efficient in the
- * presence of a large number of file descriptors in terms of both
- * time and space than the one used in the Select_Reactor, for
- * example.
- */
-class ACE_Dev_Poll_Ready_Set
-{
-public:
-
- /// Constructor.
- ACE_Dev_Poll_Ready_Set (void);
-
-public:
-
- /// The array containing the pollfd structures corresponding to the
- /// "ready" file descriptors.
- struct pollfd *pfds;
-
- /// The number of "ready" file descriptors in the above array.
- int nfds;
-
-};
-#endif /* 0 */
-
-// ---------------------------------------------------------------------
-
-/**
- * @class ACE_Dev_Poll_Reactor_Notify
- *
- * @brief Event handler used for unblocking the ACE_Dev_Poll_Reactor
- * from its event loop.
- *
- * This event handler is used internally by the ACE_Dev_Poll_Reactor
- * as a means to allow a thread other then the one running the event
- * loop to unblock the event loop.
- */
-class ACE_Dev_Poll_Reactor_Notify : public ACE_Reactor_Notify
-{
-public:
-
- /// Constructor
- ACE_Dev_Poll_Reactor_Notify (void);
-
- /**
- * @name Initialization and Termination Methods
- *
- * Methods called when initializing and terminating this event
- * handler.
- */
- virtual int open (ACE_Reactor_Impl *,
- ACE_Timer_Queue *timer_queue = 0,
- int disable_notify = 0);
- virtual int close (void);
-
- /**
- * Called by a thread when it wants to unblock the Reactor_Impl.
- * This wakeups the Reactor_Impl if currently blocked. Pass over
- * both the Event_Handler *and* the mask to allow the caller to
- * dictate which Event_Handler method the Reactor_Impl will
- * invoke. The ACE_Time_Value indicates how long to blocking
- * trying to notify the Reactor_Impl. If timeout == 0, the
- * caller will block until action is possible, else will wait until
- * the relative time specified in *timeout elapses).
- */
- virtual ssize_t notify (ACE_Event_Handler * = 0,
- ACE_Reactor_Mask = ACE_Event_Handler::EXCEPT_MASK,
- ACE_Time_Value * = 0);
-
- /// Unimplemented method required by pure virtual method in abstract
- /// base class.
- /**
- * This method's interface is not very compatibile with this
- * Reactor's design. It's not clear why this method is pure virtual
- * either.
- */
- virtual int dispatch_notifications (int &number_of_active_handles,
- ACE_Handle_Set &rd_mask);
-
- /// Returns the ACE_HANDLE of the notify pipe on which the reactor
- /// is listening for notifications so that other threads can unblock
- /// the Reactor_Impl.
- virtual ACE_HANDLE notify_handle (void);
-
- /// Verify whether the buffer has dispatchable info or not.
- virtual int is_dispatchable (ACE_Notification_Buffer &buffer);
-
- /// Handle one of the notify call on the handle. This could be
- /// because of a thread trying to unblock the Reactor_Impl.
- virtual int dispatch_notify (ACE_Notification_Buffer &buffer);
-
- /// Read one of the notify call on the handle into the
- /// buffer. This could be because of a thread trying to unblock
- /// the Reactor_Impl.
- virtual int read_notify_pipe (ACE_HANDLE handle,
- ACE_Notification_Buffer &buffer);
-
- /// Called back by the ACE_Dev_Poll_Reactor when a thread wants to
- /// unblock us.
- virtual int handle_input (ACE_HANDLE handle);
-
- /**
- * Set the maximum number of times that the handle_input method
- * will iterate and dispatch the ACE_Event_Handlers that are
- * passed in via the notify queue before breaking out of the event
- * loop. By default, this is set to -1, which means "iterate until
- * the queue is empty." Setting this to a value like "1 or 2" will
- * increase "fairness" (and thus prevent starvation) at the expense
- * of slightly higher dispatching overhead.
- */
- virtual void max_notify_iterations (int);
-
- /**
- * Get the maximum number of times that the handle_input method
- * will iterate and dispatch the ACE_Event_Handlers that are
- * passed in via the notify queue before breaking out of its event
- * loop.
- */
- virtual int max_notify_iterations (void);
-
- /**
- * Purge any notifications pending in this reactor for the specified
- * ACE_Event_Handler object. Returns the number of notifications
- * purged. Returns -1 on error.
- */
- virtual int purge_pending_notifications (
- ACE_Event_Handler * = 0,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
-
-
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
-protected:
-
- /**
- * Keep a back pointer to the ACE_Dev_Poll_Reactor. If this value
- * if NULL then the ACE_Dev_Poll_Reactor has been initialized with
- * disable_notify_pipe.
- */
- ACE_Dev_Poll_Reactor *dp_reactor_;
-
- /**
- * Contains the ACE_HANDLE the ACE_Dev_Poll_Reactor is listening
- * on, as well as the ACE_HANDLE that threads wanting the attention
- * of the ACE_Dev_Poll_Reactor will write to.
- */
- ACE_Pipe notification_pipe_;
-
- /**
- * Keeps track of the maximum number of times that the
- * ACE_Dev_Poll_Reactor_Notify::handle_input method will iterate and
- * dispatch the ACE_Event_Handlers that are passed in via the
- * notify pipe before breaking out of its recv loop. By default,
- * this is set to -1, which means "iterate until the pipe is empty."
- */
- int max_notify_iterations_;
-
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
- /**
- * @name Reactor Notification Attributes
- *
- * This configuration queues up notifications in separate buffers
- * that are in user-space, rather than stored in a pipe in the OS
- * kernel. The kernel-level notifications are used only to trigger
- * the Reactor to check its notification queue. This enables many
- * more notifications to be stored than would otherwise be the
- * case.
- */
- //@{
-
- /// Keeps track of allocated arrays of type
- /// ACE_Notification_Buffer.
- ACE_Unbounded_Queue <ACE_Notification_Buffer *> alloc_queue_;
-
- /// Keeps track of all pending notifications.
- ACE_Unbounded_Queue <ACE_Notification_Buffer *> notify_queue_;
-
- /// Keeps track of all free buffers.
- ACE_Unbounded_Queue <ACE_Notification_Buffer *> free_queue_;
-
- /// Synchronization for handling of queues.
- ACE_SYNCH_MUTEX notify_queue_lock_;
-
- //@}
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-
-};
-
-// ---------------------------------------------------------------------
-
-/**
- * @class ACE_Dev_Poll_Reactor_Handler_Repository
- *
- * @brief Used to map ACE_HANDLEs onto the appropriate
- * ACE_Event_Handler *.
- *
- * This class is simply a container that maps a handle to its
- * corresponding event handler. It is not meant for use outside of
- * the Dev_Poll_Reactor.
- */
-class ACE_Dev_Poll_Reactor_Handler_Repository
-{
-public:
-
- /// Constructor.
- ACE_Dev_Poll_Reactor_Handler_Repository (void);
-
- /// Initialize a repository of the appropriate <size>.
- int open (size_t size);
-
- /// Close down the repository.
- int close (void);
-
- /**
- * @name Repository Manipulation Operations
- *
- * Methods used to search and modify the handler repository.
- */
- //@{
-
- /**
- * Return the ACE_Event_Handler associated with ACE_HANDLE. If
- * index_p is non-zero, then return the index location of the
- * handle, if found.
- */
- ACE_Event_Handler *find (ACE_HANDLE handle, size_t *index_p = 0);
-
- /// Set the event mask for event handler associated with the given
- /// handle.
- void mask (ACE_HANDLE handle, ACE_Reactor_Mask mask);
-
- /// Retrieve the event mask for the event handler associated with
- /// the given handle.
- ACE_Reactor_Mask mask (ACE_HANDLE handle);
-
- /// Mark the event handler associated with the given handle as
- /// "suspended."
- void suspend (ACE_HANDLE handle);
-
- /// Mark the event handler associated with the given handle as
- /// "resumed."
- void resume (ACE_HANDLE handle);
-
- /// Is the event handler for the given handle suspended?
- int suspended (ACE_HANDLE handle) const;
-
- /// Bind the ACE_Event_Handler to the ACE_HANDLE with the
- /// appropriate ACE_Reactor_Mask settings.
- int bind (ACE_HANDLE handle,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask);
-
- /// Remove the binding of ACE_HANDLE in accordance with the <mask>.
- int unbind (ACE_HANDLE handle);
-
- /// Remove all the (ACE_HANDLE, ACE_Event_Handler) tuples.
- int unbind_all (void);
-
- /// Increase the reference count on the event handler corresponding
- /// to the given file descriptor.
- /**
- * @return Returns the updated reference count.
- */
- unsigned long add_ref (ACE_HANDLE handle);
-
- /// Decrease the reference count on the event handler corresponding
- /// to the given file descriptor.
- /**
- * @return Returns the updated reference count.
- */
- unsigned long remove_ref (ACE_HANDLE handle);
- //@}
-
- /**
- * @name Sanity Checking
- *
- * Methods used to prevent "out-of-range" errors when indexing the
- * underlying handler array.
- */
- //@{
-
- // Check the <handle> to make sure it's a valid ACE_HANDLE that
- // within the range of legal handles (i.e., greater than or equal to
- // zero and less than max_size_).
- int invalid_handle (ACE_HANDLE handle) const;
-
- // Check the handle to make sure it's a valid ACE_HANDLE that is
- // within the range of currently registered handles (i.e., greater
- // than or equal to zero and less than max_handlep1_).
- int handle_in_range (ACE_HANDLE handle) const;
-
- //@}
-
- /// Returns the current table size.
- size_t size (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
-
- /// Maximum number of handles.
- int max_size_;
-
- /// The underlying array of event handlers.
- /**
- * The array of event handlers is directly indexed directly using
- * an ACE_HANDLE value. This is Unix-specific.
- */
- ACE_Dev_Poll_Event_Tuple *handlers_;
-
-};
-
-// ---------------------------------------------------------------------
-
-/**
- * @class ACE_Dev_Poll_Reactor
- *
- * @brief A `/dev/poll' or `/dev/epoll' based Reactor implemenatation.
- *
- * @note This reactor is EXPERIMENTAL.
- *
- * The ACE_Dev_Poll_Reactor uses the `/dev/poll' or '/dev/epoll'
- * character devices to demultiplex events on a given set of file
- * descriptors. Unlike select(), `/dev/poll' and `/dev/epoll' have no
- * hard-coded limit on the number of file descriptors that may be
- * handled at any given time. As such, the ACE_Dev_Poll_Reactor can
- * generally handle a much larger number of file descriptors than
- * select()-based reactors. Furthermore, since `/dev/poll' and
- * `/dev/epoll' both return a set of file descriptors that are active,
- * there is no need to "walk" the set of file descriptors to determine
- * which ones are active, such as what is done with the select() and
- * poll() system calls. All returned file descriptors are active.
- * This makes event dispatching very efficient.
- *
- * @note In general, this reactor may only be used to demultiplex
- * events on sockets. Demultiplexing events on pipes, for
- * example may not work. This is due to a limitation in the
- * underlying `/dev/poll' device driver.
- *
- * @note It is only possible to achieve millisecond timeout
- * resolutions with the ACE_Dev_Poll_Reactor. However, the
- * timeout resolution for timers is independent of the reactors
- * timeout resolution. As such, it may be possible to achieve
- * sub-millisecond timeout resolutions for timers but that is
- * entirely platform dependent.
- */
-class ACE_Export ACE_Dev_Poll_Reactor : public ACE_Reactor_Impl
-{
-public:
-
- /// Initialize ACE_Dev_Poll_Reactor with the default size.
- /**
- * The default size for the ACE_Dev_Poll_Reactor is the maximum
- * number of open file descriptors for the process.
- */
- ACE_Dev_Poll_Reactor (ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0,
- int disable_notify_pipe = 0,
- ACE_Reactor_Notify *notify = 0,
- int mask_signals = 1);
-
- /// Initialize ACE_Dev_Poll_Reactor with size "size."
- /**
- * @note On Unix platforms, the size parameter should be as large as
- * the maximum number of file descriptors allowed for a given
- * process. This is necessary since a file descriptor is used
- * to directly index the array of event handlers maintained by
- * the Reactor's handler repository. Direct indexing is used
- * for efficiency reasons. If the size parameter is less than
- * the process maximum, then the process maximum will be
- * decreased in order to prevent potential access violations.
- */
- ACE_Dev_Poll_Reactor (size_t size,
- int restart = 0,
- ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0,
- int disable_notify_pipe = 0,
- ACE_Reactor_Notify *notify = 0,
- int mask_signals = 1);
-
- /// Close down and release all resources.
- virtual ~ACE_Dev_Poll_Reactor (void);
-
- /// Initialization.
- virtual int open (size_t size,
- int restart = 0,
- ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0,
- int disable_notify_pipe = 0,
- ACE_Reactor_Notify * = 0);
-
- /**
- * Returns 0, if the size of the current message has been put in
- * size. Returns -1, if not. ACE_HANDLE allows the reactor to
- * check if the caller is valid.
- */
- virtual int current_info (ACE_HANDLE, size_t & /* size */);
-
- /// Use a user specified signal handler instead.
- virtual int set_sig_handler (ACE_Sig_Handler *signal_handler);
-
- /// Set a user specified timer queue.
- /**
- * @note This method is deprecated.
- * @see timer_queue
- */
- virtual int set_timer_queue (ACE_Timer_Queue *tq);
-
- /// Set a user-specified timer queue.
- virtual int timer_queue (ACE_Timer_Queue *tq);
-
- /// Return the current ACE_Timer_Queue.
- virtual ACE_Timer_Queue *timer_queue (void) const;
-
- /// Close down and release all resources.
- virtual int close (void);
-
- // = Event loop drivers.
- /**
- * Returns non-zero if there are I/O events "ready" for dispatching,
- * but does not actually dispatch the event handlers. By default,
- * don't block while checking this, i.e., "poll".
- *
- * @note It is only possible to achieve millisecond timeout
- * resolutions with the ACE_Dev_Poll_Reactor.
- */
- virtual int work_pending (
- const ACE_Time_Value &max_wait_time = ACE_Time_Value::zero);
-
- /**
- * This event loop driver blocks for up to max_wait_time before
- * returning. It will return earlier if events occur. Note that
- * max_wait_time can be 0, in which case this method blocks
- * indefinitely until events occur.
- * @par
- * max_wait_time is decremented to reflect how much time this call
- * took. For instance, if a time value of 3 seconds is passed to
- * handle_events and an event occurs after 2 seconds,
- * max_wait_time will equal 1 second. This can be used if an
- * application wishes to handle events for some fixed amount of
- * time.
- * @par
- * Returns the total number of ACE_Event_Handlers that were
- * dispatched, 0 if the max_wait_time elapsed without dispatching
- * any handlers, or -1 if an error occurs.
- * @par
- * The only difference between alertable_handle_events and
- * handle_events is that in the alertable case, the event loop
- * will return when the system queues an I/O completion routine or
- * an Asynchronous Procedure Call.
- *
- * @note It is only possible to achieve millisecond timeout
- * resolutions with the ACE_Dev_Poll_Reactor.
- */
- virtual int handle_events (ACE_Time_Value *max_wait_time = 0);
- virtual int alertable_handle_events (ACE_Time_Value *max_wait_time = 0);
-
- /**
- * This method is just like the one above, except the
- * max_wait_time value is a reference and can therefore never be
- * NULL.
- *
- * @note It is only possible to achieve millisecond timeout
- * resolutions with the ACE_Dev_Poll_Reactor.
- */
- virtual int handle_events (ACE_Time_Value &max_wait_time);
- virtual int alertable_handle_events (ACE_Time_Value &max_wait_time);
-
- // = Event handling control.
-
- /**
- * Return the status of Reactor. If this function returns 0, the
- * reactor is actively handling events. If it returns non-zero,
- * handle_events() and handle_alertable_events() return -1
- * immediately.
- */
- virtual int deactivated (void);
-
- /**
- * Control whether the Reactor will handle any more incoming events
- * or not. If do_stop == 1, the Reactor will be disabled. By
- * default, a reactor is in active state and can be
- * deactivated/reactived as desired.
- */
- virtual void deactivate (int do_stop);
-
- // = Register and remove Handlers.
-
- /// Register event_handler with mask. The I/O handle will always
- /// come from get_handle on the event_handler.
- virtual int register_handler (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /// Register event_handler with mask. The I/O handle is provided
- /// through the io_handle parameter.
- virtual int register_handler (ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /**
- * Register an <event_handler> that will be notified when
- * <event_handle> is signaled. <mask> specifies the network events
- * that the <event_handler> is interested in.
- */
- virtual int register_handler (ACE_HANDLE event_handle,
- ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /// Register <event_handler> with all the <handles> in the <Handle_Set>.
- virtual int register_handler (const ACE_Handle_Set &handles,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /**
- * Register <new_sh> to handle the signal <signum> using the
- * <new_disp>. Returns the <old_sh> that was previously registered
- * (if any), along with the <old_disp> of the signal handler.
- */
- virtual int register_handler (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp = 0,
- ACE_Event_Handler **old_sh = 0,
- ACE_Sig_Action *old_disp = 0);
-
- /// Registers <new_sh> to handle a set of signals <sigset> using the
- /// <new_disp>.
- virtual int register_handler (const ACE_Sig_Set &sigset,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp = 0);
-
- /**
- * Removes <event_handler>. Note that the I/O handle will be
- * obtained using <get_handle> method of <event_handler> . If
- * <mask> == <ACE_Event_Handler::DONT_CALL> then the <handle_close>
- * method of the <event_handler> is not invoked.
- */
- virtual int remove_handler (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /**
- * Removes <handle>. If <mask> == <ACE_Event_Handler::DONT_CALL>
- * then the <handle_close> method of the associated <event_handler>
- * is not invoked.
- */
- virtual int remove_handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
- /**
- * Removes all handles in <handle_set>. If <mask> ==
- * <ACE_Event_Handler::DONT_CALL> then the <handle_close> method of
- * the associated <event_handler>s is not invoked.
- */
- virtual int remove_handler (const ACE_Handle_Set &handle_set,
- ACE_Reactor_Mask mask);
-
- /**
- * Remove the ACE_Event_Handler currently associated with <signum>.
- * Install the new disposition (if given) and return the previous
- * disposition (if desired by the caller). Returns 0 on success and
- * -1 if <signum> is invalid.
- */
- virtual int remove_handler (int signum,
- ACE_Sig_Action *new_disp,
- ACE_Sig_Action *old_disp = 0,
- int sigkey = -1);
-
- /// Calls <remove_handler> for every signal in <sigset>.
- virtual int remove_handler (const ACE_Sig_Set &sigset);
-
- // = Suspend and resume Handlers.
-
- /// Suspend event_handler temporarily. Use
- /// ACE_Event_Handler::get_handle() to get the handle.
- virtual int suspend_handler (ACE_Event_Handler *event_handler);
-
- /// Suspend handle temporarily.
- virtual int suspend_handler (ACE_HANDLE handle);
-
- /// Suspend all handles in handle set temporarily.
- virtual int suspend_handler (const ACE_Handle_Set &handles);
-
- /// Suspend all handles temporarily.
- virtual int suspend_handlers (void);
-
- /// Resume event_handler. Use ACE_Event_Handler::get_handle() to
- /// get the handle.
- virtual int resume_handler (ACE_Event_Handler *event_handler);
-
- /// Resume handle.
- virtual int resume_handler (ACE_HANDLE handle);
-
- /// Resume all handles in handle set.
- virtual int resume_handler (const ACE_Handle_Set &handles);
-
- /// Resume all handles.
- virtual int resume_handlers (void);
-
- /// Does the reactor allow the application to resume the handle on
- /// its own, i.e., can it pass on the control of handle resumption to
- /// the application.
- virtual int resumable_handler (void);
-
- /// Return 1 if we any event associations were made by the reactor
- /// for the handles that it waits on, 0 otherwise.
- virtual int uses_event_associations (void);
-
- // = Timer management.
-
- /**
- * Schedule an ACE_Event_Handler that will expire after an amount
- * of time. The return value of this method, a timer_id value,
- * uniquely identifies the event_handler in the ACE_Reactor's
- * internal list of timers.
- * This timer_id value can be used to cancel the timer
- * with the cancel_timer() call.
- *
- * @see cancel_timer()
- * @see reset_timer_interval()
- *
- * @param event_handler event handler to schedule on reactor
- * @param arg argument passed to the handle_timeout() method of event_handler
- * @param delay time interval after which the timer will expire
- * @param interval time interval after which the timer will be automatically rescheduled
- * @return -1 on failure, a timer_id value on success
- */
- virtual long schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval = ACE_Time_Value::zero);
-
- /**
- * Resets the interval of the timer represented by <timer_id> to
- * <interval>, which is specified in relative time to the current
- * <gettimeofday>. If <interval> is equal to
- * <ACE_Time_Value::zero>, the timer will become a non-rescheduling
- * timer. Returns 0 if successful, -1 if not.
- */
- virtual int reset_timer_interval (long timer_id,
- const ACE_Time_Value &interval);
-
- /// Cancel all Event_Handlers that match the address of
- /// <event_handler>. Returns number of handlers cancelled.
- virtual int cancel_timer (ACE_Event_Handler *event_handler,
- int dont_call_handle_close = 1);
-
- /**
- * Cancel the single Event_Handler that matches the <timer_id> value
- * (which was returned from the schedule method). If arg is
- * non-NULL then it will be set to point to the ``magic cookie''
- * argument passed in when the Event_Handler was registered. This
- * makes it possible to free up the memory and avoid memory leaks.
- * Returns 1 if cancellation succeeded and 0 if the <timer_id>
- * wasn't found.
- */
- virtual int cancel_timer (long timer_id,
- const void **arg = 0,
- int dont_call_handle_close = 1);
-
- // = High-level Event_Handler scheduling operations
-
- /// Add <masks_to_be_added> to the <event_handler>'s entry.
- /// <event_handler> must already have been registered.
- virtual int schedule_wakeup (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask masks_to_be_added);
-
- /// Add <masks_to_be_added> to the <handle>'s entry. <event_handler>
- /// associated with <handle> must already have been registered.
- virtual int schedule_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask masks_to_be_added);
-
- /// Clear <masks_to_be_cleared> from the <event_handler>'s entry.
- virtual int cancel_wakeup (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask masks_to_be_cleared);
-
- /// Clear <masks_to_be_cleared> from the <handle>'s entry.
- virtual int cancel_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask masks_to_be_cleared);
-
- // = Notification methods.
-
- /**
- * Notify <event_handler> of <mask> event. The <ACE_Time_Value>
- * indicates how long to blocking trying to notify. If <timeout> ==
- * 0, the caller will block until action is possible, else will wait
- * until the relative time specified in <timeout> elapses).
- */
- virtual int notify (ACE_Event_Handler *event_handler = 0,
- ACE_Reactor_Mask mask = ACE_Event_Handler::EXCEPT_MASK,
- ACE_Time_Value * = 0);
-
- /**
- * Set the maximum number of times that ACE_Reactor_Impl will
- * iterate and dispatch the <ACE_Event_Handlers> that are passed in
- * via the notify queue before breaking out of its
- * <ACE_Message_Queue::dequeue> loop. By default, this is set to
- * -1, which means "iterate until the queue is empty." Setting this
- * to a value like "1 or 2" will increase "fairness" (and thus
- * prevent starvation) at the expense of slightly higher dispatching
- * overhead.
- */
- virtual void max_notify_iterations (int);
-
- /**
- * Get the maximum number of times that the ACE_Reactor_Impl will
- * iterate and dispatch the <ACE_Event_Handlers> that are passed in
- * via the notify queue before breaking out of its
- * <ACE_Message_Queue::dequeue> loop.
- */
- virtual int max_notify_iterations (void);
-
- /**
- * Purge any notifications pending in this reactor for the specified
- * <ACE_Event_Handler> object. Returns the number of notifications
- * purged. Returns -1 on error.
- */
- virtual int purge_pending_notifications (ACE_Event_Handler * = 0,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
-
- /**
- * Check to see if <handle> is associated with a valid Event_Handler
- * bound to <mask>. Return the <event_handler> associated with this
- * <handler> if <event_handler> != 0.
- */
- virtual int handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Event_Handler **event_handler = 0);
-
- /**
- * Check to see if <signum> is associated with a valid Event_Handler
- * bound to a signal. Return the <event_handler> associated with
- * this <handler> if <event_handler> != 0.
- */
- virtual int handler (int signum,
- ACE_Event_Handler ** = 0);
-
- /// Returns true if Reactor has been successfully initialized, else
- /// false.
- virtual int initialized (void);
-
- /// Returns the current size of the Reactor's internal descriptor
- /// table.
- virtual size_t size (void) const;
-
- /// Returns a reference to the Reactor's internal lock.
- virtual ACE_Lock &lock (void);
-
- /// Wake up all threads waiting in the event loop.
- virtual void wakeup_all_threads (void);
-
- /// Transfers ownership of Reactor_Impl to the new_owner.
- /**
- * @note There is no need to set the owner of the event loop for the
- * ACE_Dev_Poll_Reactor. Multiple threads may invoke the
- * event loop simulataneously. As such, this method is a
- * no-op.
- */
- virtual int owner (ACE_thread_t new_owner, ACE_thread_t *old_owner = 0);
-
- /// Return the ID of the "owner" thread.
- /**
- * @note There is no need to set the owner of the event loop for the
- * ACE_Dev_Poll_Reactor. Multiple threads may invoke the
- * event loop simulataneously. As such, this method is a
- * no-op.
- */
- virtual int owner (ACE_thread_t *owner);
-
- /// Get the existing restart value.
- virtual int restart (void);
-
- /// Set a new value for restart and return the original value.
- /**
- * @param r If zero, then the event loop will not be automatically
- * restarted if the underlying poll is interrupted via the
- * INTR (interrupt) signal.
- *
- * @return Returns the previous "restart" value.
- */
- virtual int restart (int r);
-
- /// Set position of the owner thread.
- /**
- * @note This is currently a no-op.
- */
- virtual void requeue_position (int);
-
- /// Get position of the owner thread.
- /**
- * @note This is currently a no-op.
- */
- virtual int requeue_position (void);
-
- /**
- * @name Low-level wait_set mask manipulation methods
- *
- * Low-level methods to manipulate the event/reactor mask associated
- * with a handle and event handler when polling for events.
- * @par
- * The "interest set," i.e. the wait set, can be directly
- * manipulated with these methods.
- */
- //@{
-
- /// GET/SET/ADD/CLR the dispatch mask "bit" bound with the
- /// event_handler and mask.
- virtual int mask_ops (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- int ops);
-
- /// GET/SET/ADD/CLR the dispatch MASK "bit" bound with the handle
- /// and mask.
- virtual int mask_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops);
-
- //@}
-
- /**
- * @name Low-level ready_set mask manipulation methods
- *
- * These methods are unimplemented.
- */
- //@{
-
- /// GET/SET/ADD/CLR the ready "bit" bound with the event_handler
- /// and mask.
- virtual int ready_ops (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- int ops);
-
- /// GET/SET/ADD/CLR the ready "bit" bound with the handle and mask.
- virtual int ready_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask,
- int ops);
-
- //@}
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
-
- /// Non-locking version of wait_pending().
- /**
- * Returns non-zero if there are I/O events "ready" for dispatching,
- * but does not actually dispatch the event handlers. By default,
- * don't block while checking this, i.e., "poll".
- *
- * @note It is only possible to achieve millisecond timeout
- * resolutions with the ACE_Dev_Poll_Reactor.
- */
- int work_pending_i (ACE_Time_Value *max_wait_time);
-
- /// Poll for events and return the number of event handlers that
- /// were dispatched.
- /**
- * This is a helper method called by all handle_events() methods.
- */
- int handle_events_i (ACE_Time_Value *max_wait_time);
-
- /// Perform the upcall with the given event handler method.
- int upcall (ACE_Event_Handler *event_handler,
- int (ACE_Event_Handler::*callback)(ACE_HANDLE),
- ACE_HANDLE handle);
-
- /**
- * Dispatch ACE_Event_Handlers for time events, I/O events, and
- * signal events. Returns the total number of ACE_Event_Handlers
- * that were dispatched or -1 if something goes wrong.
- */
- int dispatch (void);
-
- ///
- int dispatch_timer_handlers (int &number_of_handlers_dispatched);
-
- /// Dispatch all IO related events to their corresponding event
- /// handlers.
- int dispatch_io_events (int &io_handlers_dispatched);
-
- /// Register the given event handler with the reactor.
- int register_handler_i (ACE_HANDLE handle,
- ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask);
-
- /// Remove the event handler associated with the given handle and
- /// event mask from the "interest set."
- int remove_handler_i (ACE_HANDLE handle, ACE_Reactor_Mask mask);
-
- /// Temporarily remove the given handle from the "interest set."
- int suspend_handler_i (ACE_HANDLE handle);
-
- /// Place the given handle that was temporarily removed from the
- /// "interest set," i.e that was suspended, back in to the interest
- /// set. The given handle will once again be polled for events.
- int resume_handler_i (ACE_HANDLE handle);
-
- /// GET/SET/ADD/CLR the dispatch MASK "bit" bound with the handle
- /// and mask. This internal helper method acquires no lock.
- int mask_ops_i (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops);
-
- /// Convert a reactor mask to its corresponding poll() event mask.
- short reactor_mask_to_poll_event (ACE_Reactor_Mask mask);
-
-protected:
-
- /// Has the reactor been initialized.
- char initialized_;
-
- /// The file descriptor associated with the open `/dev/poll' or
- /// `/dev/epoll' device.
- /**
- * All interactions with the `/dev/poll' or `/dev/epoll' device are
- * done through this file descriptor.
- */
- ACE_HANDLE poll_fd_;
-
- /// The maximum number of file descriptors over which demultiplexing
- /// will occur.
- size_t size_;
-
- /// Track HANDLES we are interested in for various events that must
- /// be dispatched *without* polling.
- /// ACE_Dev_Poll_Ready_Set ready_set_;
-
-#if defined (ACE_HAS_EVENT_POLL)
- /// The memory map that `/dev/epoll' will feed its results to.
- char *mmap_;
-#else
- /// The pollfd array that `/dev/poll' will feed its results to.
- struct pollfd *dp_fds_;
-#endif /* ACE_HAS_EVENT_POLL */
-
- /// Pointer to the next pollfd array element that contains the next
- /// event to be dispatched.
- struct pollfd *start_pfds_;
-
- /// The last element in the pollfd array plus one.
- /**
- * The loop that dispatches IO events stops when this->start_pfds ==
- * this->end_pfds_.
- */
- struct pollfd *end_pfds_;
-
- /// This flag is used to keep track of whether we are actively handling
- /// events or not.
- sig_atomic_t deactivated_;
-
- /// Lock used for synchronization of reactor state.
- ACE_SYNCH_MUTEX lock_;
-
- /// Adapter used to return internal lock to outside world.
- ACE_Lock_Adapter<ACE_SYNCH_MUTEX> lock_adapter_;
-
- /// The repository that contains all registered event handlers.
- ACE_Dev_Poll_Reactor_Handler_Repository handler_rep_;
-
- /// Defined as a pointer to allow overriding by derived classes...
- ACE_Timer_Queue *timer_queue_;
-
- /// Keeps track of whether we should delete the timer queue (if we
- /// didn't create it, then we don't delete it).
- int delete_timer_queue_;
-
- /// Handle signals without requiring global/static variables.
- ACE_Sig_Handler *signal_handler_;
-
- /// Keeps track of whether we should delete the signal handler (if we
- /// didn't create it, then we don't delete it).
- int delete_signal_handler_;
-
- /// Callback object that unblocks the <ACE_Select_Reactor> if it's
- /// sleeping.
- ACE_Reactor_Notify *notify_handler_;
-
- /// Keeps track of whether we need to delete the notify handler (if
- /// we didn't create it, then we don't delete it).
- int delete_notify_handler_;
-
- /// Flag that determines if signals are masked during event
- /// dispatching.
- /**
- * If 0 then the Reactor will not mask the signals during the event
- * dispatching. This is useful for applications that do not
- * register any signal handlers and want to reduce the overhead
- * introduce by the kernel level locks required to change the mask.
- */
- int mask_signals_;
-
- /// Restart the handle_events event loop method automatically when
- /// polling function in use (ioctl() in this case) is interrupted
- /// via an EINTR signal.
- int restart_;
-
-};
-
-
-/**
- * @class ACE_Dev_Poll_Handler_Guard
- *
- * @brief Class used to make event handler reference count
- * manipulation exception-safe.
- *
- * This class makes the reference count manipulation that occurs
- * during an upcall exception-safe. Prior to dispatching the event
- * handler, the reference count is increased. Once the upcall for the
- * given event handler is complete, its reference count will be decreased.
- */
-class ACE_Dev_Poll_Handler_Guard
-{
-public:
-
- /// Constructor
- /**
- * The constructor increments the reference count on the event
- * handler corresponding to the given handle.
- */
- ACE_Dev_Poll_Handler_Guard (
- ACE_Dev_Poll_Reactor_Handler_Repository &repository,
- ACE_HANDLE handle);
-
- /// Destructor
- /**
- * The destructor decrements the reference count on the event
- * handler corresponding to the given handle.
- */
- ~ACE_Dev_Poll_Handler_Guard (void);
-
-private:
-
- /// Reference to the handler repository containing the event handler
- /// used during the upcall.
- ACE_Dev_Poll_Reactor_Handler_Repository &repository_;
-
- /// Handle corresponding to the event being dispatched.
- ACE_HANDLE handle_;
-
-};
-
-
-#if defined (__ACE_INLINE__)
-# include "ace/Dev_Poll_Reactor.inl"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_EVENT_POLL || ACE_HAS_DEV_POLL */
-
-#include "ace/post.h"
-
-#endif /* ACE_DEV_POLL_REACTOR_H */
diff --git a/ace/Dev_Poll_Reactor.inl b/ace/Dev_Poll_Reactor.inl
deleted file mode 100644
index 74ff5c2dc2a..00000000000
--- a/ace/Dev_Poll_Reactor.inl
+++ /dev/null
@@ -1,201 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-ACE_INLINE
-ACE_Dev_Poll_Event_Tuple::ACE_Dev_Poll_Event_Tuple (void)
- : event_handler (0),
- mask (ACE_Event_Handler::NULL_MASK),
- suspended (0),
- refcount (1)
-{
-}
-
-// ---------------------------------------------------------------------
-
-#if 0
-ACE_INLINE
-ACE_Dev_Poll_Ready_Set::ACE_Dev_Poll_Ready_Set (void)
- : pfds (0),
- nfds (0)
-{
-}
-#endif /* 0 */
-
-// ---------------------------------------------------------------------
-
-ACE_INLINE void
-ACE_Dev_Poll_Reactor_Handler_Repository::mask (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::mask");
-
- // Only bother to search for the handle if it's in range.
- if (this->handle_in_range (handle))
- this->handlers_[handle].mask = mask;
-}
-
-ACE_INLINE ACE_Reactor_Mask
-ACE_Dev_Poll_Reactor_Handler_Repository::mask (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::mask");
-
- ACE_Reactor_Mask mask = ACE_Event_Handler::NULL_MASK;
-
- // Only bother to search for the handle if it's in range.
- if (this->handle_in_range (handle))
- mask = this->handlers_[handle].mask;
-
- if (mask == ACE_Event_Handler::NULL_MASK)
- errno = ENOENT;
-
- return mask;
-}
-
-ACE_INLINE void
-ACE_Dev_Poll_Reactor_Handler_Repository::suspend (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::suspend");
-
- // Only bother to search for the handle if it's in range.
- if (this->handle_in_range (handle))
- this->handlers_[handle].suspended = 1;
-}
-
-ACE_INLINE void
-ACE_Dev_Poll_Reactor_Handler_Repository::resume (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::resume");
-
- // Only bother to search for the handle if it's in range.
- if (this->handle_in_range (handle))
- this->handlers_[handle].suspended = 0;
-}
-
-ACE_INLINE int
-ACE_Dev_Poll_Reactor_Handler_Repository::suspended (ACE_HANDLE handle) const
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::suspended");
-
- if (this->handle_in_range (handle))
- return this->handlers_[handle].suspended;
-
- return -1;
-}
-
-ACE_INLINE size_t
-ACE_Dev_Poll_Reactor_Handler_Repository::size (void) const
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::size");
-
- return this->max_size_;
-}
-
-ACE_INLINE unsigned long
-ACE_Dev_Poll_Reactor_Handler_Repository::add_ref (ACE_HANDLE handle)
-{
- // ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::add_ref");
-
- // Caller provides synchronization
-
- if (this->handle_in_range (handle))
- return this->handlers_[handle].refcount++;
-
- return 0;
-}
-
-ACE_INLINE unsigned long
-ACE_Dev_Poll_Reactor_Handler_Repository::remove_ref (ACE_HANDLE handle)
-{
- // ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::remove_ref");
-
- // Caller provides synchronization
-
- if (this->handle_in_range (handle))
- {
- unsigned long & refcount = this->handlers_[handle].refcount;
-
- ACE_ASSERT (refcount > 0);
-
- refcount--;
-
- if (refcount != 0)
- return refcount;
-
- // Reference count dropped to zero. Remove the event handler
- // from the repository.
- this->unbind (handle);
- }
-
- return 0;
-}
-
-// -----------------------------------------------------------------
-
-ACE_INLINE
-ACE_Dev_Poll_Handler_Guard::ACE_Dev_Poll_Handler_Guard (
- ACE_Dev_Poll_Reactor_Handler_Repository &repository,
- ACE_HANDLE handle)
- : repository_ (repository),
- handle_ (handle)
-{
- // Caller must provide synchronization.
-
- (void) repository.add_ref (handle);
-
- /**
- * @todo Suspend the handler so that other threads will not cause
- * an event that is already in an upcall from being dispatched
- * again.
- *
- * @note The naive approach would be to simply call
- * suspend_handler_i() on the reactor. However, that would
- * cause a system call (write()) to occur. Obviously this
- * can potentially have an adverse affect on performance.
- * Ideally, the handler would only be marked as "suspended" in
- * the handler repository. If an event arrives for a
- * suspended handler that event can be "queued" in a
- * "handle readiness queue." "Queued" is quoted since a real
- * queue need not be used since duplicate events can be
- * coalesced, thus avoiding unbounded queue growth. Event
- * coalescing is already done by Linux's event poll driver
- * (/dev/epoll) so Solaris' poll driver (/dev/poll) is the
- * main concern here. The largest the queue can be is the
- * same size as the number of handlers stored in the handler
- * repository.
- */
-}
-
-ACE_INLINE
-ACE_Dev_Poll_Handler_Guard::~ACE_Dev_Poll_Handler_Guard (void)
-{
- // Caller must provide synchronization.
-
- (void) this->repository_.remove_ref (this->handle_);
-
- /**
- * @todo Resume the handler so that other threads will be allowed to
- * dispatch the handler.
- */
-}
-
-// ---------------------------------------------------------------------
-
-ACE_INLINE int
-ACE_Dev_Poll_Reactor::upcall (ACE_Event_Handler *event_handler,
- int (ACE_Event_Handler::*callback)(ACE_HANDLE),
- ACE_HANDLE handle)
-{
- // If the handler returns positive value (requesting a reactor
- // callback) just call back as many times as the handler requests
- // it. Other threads are off handling other things.
- int status = 0;
-
- do
- {
- status = (event_handler->*callback) (handle);
- }
- while (status > 0);
-
- return status;
-}
diff --git a/ace/Dirent.cpp b/ace/Dirent.cpp
deleted file mode 100644
index d8a283a7368..00000000000
--- a/ace/Dirent.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// $Id$
-
-#include "ace/Dirent.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Dirent.i"
-#else
-#if defined (__hpux) && !defined (__GNUG__)
-static int shut_up_aCC = 0;
-#endif /* HPUX && !g++ */
-#endif /* __ACE_INLINE__ */
diff --git a/ace/Dirent.h b/ace/Dirent.h
deleted file mode 100644
index 65ee1198b80..00000000000
--- a/ace/Dirent.h
+++ /dev/null
@@ -1,118 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Dirent.h
- *
- * $Id$
- *
- * Define a portable C++ interface to ACE_OS_Dirent directory-entry
- * manipulation.
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_DIRENT_H
-#define ACE_DIRENT_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS_Dirent.h"
-
-/**
- * @class ACE_Dirent
- *
- * @brief Define a portable C++ directory-entry iterator based on the POSIX API.
- */
-class ACE_Export ACE_Dirent
-{
-public:
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_Dirent (void);
-
- /// Constructor calls <opendir>
- ACE_EXPLICIT ACE_Dirent (const ACE_TCHAR *dirname);
-
- /// Opens the directory named by filename and associates a directory
- /// stream with it.
- int open (const ACE_TCHAR *filename);
-
- /// Destructor calls <closedir>.
- ~ACE_Dirent (void);
-
- /// Closes the directory stream and frees the <ACE_DIR> structure.
- void close (void);
-
- // = Iterator methods.
- /**
- * Returns a pointer to a structure representing the directory entry
- * at the current position in the directory stream to which dirp
- * refers, and positions the directory stream at the next entry,
- * except on read-only filesystems. It returns a NULL pointer upon
- * reaching the end of the directory stream, or upon detecting an
- * invalid location in the directory. <readdir> shall not return
- * directory entries containing empty names. It is unspecified
- * whether entries are returned for dot or dot-dot. The pointer
- * returned by <readdir> points to data that may be overwritten by
- * another call to <readdir> on the same directory stream. This
- * data shall not be overwritten by another call to <readdir> on a
- * different directory stream. <readdir> may buffer several
- * directory entries per actual read operation; <readdir> marks for
- * update the st_atime field of the directory each time the
- * directory is actually read.
- */
- dirent *read (void);
-
- /**
- * Has the equivalent functionality as <readdir> except that an
- * <entry> and <result> buffer must be supplied by the caller to
- * store the result.
- */
- int read (struct dirent *entry,
- struct dirent **result);
-
- // = Manipulators.
- /// Returns the current location associated with the directory
- /// stream.
- long tell (void);
-
- /**
- * Sets the position of the next <readdir> operation on the
- * directory stream. The new position reverts to the position
- * associated with the directory stream at the time the <telldir>
- * operation that provides loc was performed. Values returned by
- * <telldir> are good only for the lifetime of the <ACE_DIR> pointer from
- * which they are derived. If the directory is closed and then
- * reopened, the <telldir> value may be invalidated due to
- * undetected directory compaction. It is safe to use a previous
- * <telldir> value immediately after a call to <opendir> and before
- * any calls to readdir.
- */
- void seek (long loc);
-
- /**
- * Resets the position of the directory stream to the beginning of
- * the directory. It also causes the directory stream to refer to
- * the current state of the corresponding directory, as a call to
- * <opendir> would.
- */
- void rewind (void);
-
-private:
- /// Pointer to the directory stream.
- ACE_DIR *dirp_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Dirent.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_DIRENT_H */
diff --git a/ace/Dirent.i b/ace/Dirent.i
deleted file mode 100644
index 4c731311c29..00000000000
--- a/ace/Dirent.i
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/Log_Msg.h"
-
-ACE_INLINE int
-ACE_Dirent::open (const ACE_TCHAR *dirname)
-{
- // If the directory stream is already open, close it to prevent
- // possible resource leaks.
-
- if (this->dirp_ != 0)
- {
- ACE_OS_Dirent::closedir (this->dirp_);
- this->dirp_ = 0;
- }
-
- this->dirp_ = ACE_OS_Dirent::opendir (dirname);
-
- if (this->dirp_ == 0)
- return -1;
- else
- return 0;
-}
-
-ACE_INLINE
-ACE_Dirent::ACE_Dirent (void)
- : dirp_ (0)
-{
-}
-
-ACE_INLINE
-ACE_Dirent::ACE_Dirent (const ACE_TCHAR *dirname)
- : dirp_ (0)
-{
- if (this->open (dirname) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("Dirent::Dirent")));
-}
-
-ACE_INLINE
-ACE_Dirent::~ACE_Dirent (void)
-{
- if (this->dirp_ != 0)
- ACE_OS_Dirent::closedir (this->dirp_);
-}
-
-ACE_INLINE dirent *
-ACE_Dirent::read (void)
-{
- return this->dirp_ ? ACE_OS_Dirent::readdir (this->dirp_) : 0;
-}
-
-ACE_INLINE int
-ACE_Dirent::read (struct dirent *entry,
- struct dirent **result)
-{
- return this->dirp_
- ? ACE_OS_Dirent::readdir_r (this->dirp_, entry, result)
- : 0;
-}
-
-ACE_INLINE void
-ACE_Dirent::close (void)
-{
- if (this->dirp_ != 0)
- {
- ACE_OS_Dirent::closedir (this->dirp_);
-
- // Prevent double closure
- this->dirp_ = 0;
- }
-}
-
-ACE_INLINE void
-ACE_Dirent::rewind (void)
-{
- if (this->dirp_)
- ACE_OS_Dirent::rewinddir (this->dirp_);
-}
-
-ACE_INLINE void
-ACE_Dirent::seek (long loc)
-{
- if (this->dirp_)
- ACE_OS_Dirent::seekdir (this->dirp_, loc);
-}
-
-ACE_INLINE long
-ACE_Dirent::tell (void)
-{
- return this->dirp_ ? ACE_OS_Dirent::telldir (this->dirp_) : 0;
-}
-
diff --git a/ace/Dirent_Selector.cpp b/ace/Dirent_Selector.cpp
deleted file mode 100644
index bef6c40a8d1..00000000000
--- a/ace/Dirent_Selector.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-#include "ace/Dirent_Selector.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Dirent_Selector.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID (ace,
- Dirent_Selector,
- "$Id$")
-
-// Construction/Destruction
-
-ACE_Dirent_Selector::ACE_Dirent_Selector (void)
- : namelist_ (0),
- n_ (0)
-{
-}
-
-ACE_Dirent_Selector::~ACE_Dirent_Selector (void)
-{
-}
-
-int
-ACE_Dirent_Selector::open (const ACE_TCHAR *dir,
- int (*sel)(const dirent *d),
- int (*cmp) (const dirent **d1,
- const dirent **d2))
-{
- n_ = ACE_OS::scandir (dir, &this->namelist_, sel, cmp);
- return n_;
-}
-
-int
-ACE_Dirent_Selector::close (void)
-{
- for (--n_; n_>=0; --n_)
- ACE_OS::free (this->namelist_[n_]);
-
- ACE_OS::free (this->namelist_);
- return 0;
-}
diff --git a/ace/Dirent_Selector.h b/ace/Dirent_Selector.h
deleted file mode 100644
index c5a1cb31d6f..00000000000
--- a/ace/Dirent_Selector.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Dirent_Selector.h
- *
- * $Id$
- *
- * Define a portable C++ interface to the <ACE_OS_Dirent::scandir> method.
- *
- * @author Rich Newman <RNewman@directv.com>
- */
-//=============================================================================
-
-#ifndef ACE_DIRENT_SELECTOR_H
-#define ACE_DIRENT_SELECTOR_H
-#include "ace/pre.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/ACE_export.h"
-
-/**
- * @class ACE_Dirent_Selector
- *
- * @brief Define a portable C++ directory-entry iterator based on the
- * POSIX scandir API.
- */
-class ACE_Export ACE_Dirent_Selector
-{
-public:
- /// Constructor
- ACE_Dirent_Selector (void);
-
- /// Destructor.
- virtual ~ACE_Dirent_Selector (void);
-
- /// Return the length of the list of matching directory entries.
- int length (void) const;
-
- /// Return the entry at @a index.
- dirent *operator[] (const int index) const;
-
- /// Free up resources.
- int close (void);
-
- /// Open the directory @a dir and populate the <namelist_> array with
- /// directory entries that match the @a selector and @a comparator.
- int open (const ACE_TCHAR *dir,
- int (*selector)(const dirent *d) = 0,
- int (*comparator)(const dirent **d1, const dirent **d2) = 0);
-
-protected:
- /// Ptr to the namelist array.
- dirent **namelist_;
-
- /// # of entries in the array.
- int n_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Dirent_Selector.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_DIRENT_SELECTOR_H */
diff --git a/ace/Dirent_Selector.inl b/ace/Dirent_Selector.inl
deleted file mode 100644
index 577c4db4584..00000000000
--- a/ace/Dirent_Selector.inl
+++ /dev/null
@@ -1,15 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-ACE_INLINE int
-ACE_Dirent_Selector::length (void) const
-{
- return n_;
-}
-
-ACE_INLINE dirent *
-ACE_Dirent_Selector::operator[] (const int n) const
-{
- return this->namelist_[n];
-}
diff --git a/ace/Dump.cpp b/ace/Dump.cpp
deleted file mode 100644
index 52786c00d99..00000000000
--- a/ace/Dump.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-// $Id$
-
-#include "ace/Synch_T.h"
-#include "ace/Dump.h"
-#include "ace/Object_Manager.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, Dump, "$Id$")
-
-// Implementations (very simple for now...)
-
-ACE_Dumpable::~ACE_Dumpable (void)
-{
- ACE_TRACE ("ACE_Dumpable::~ACE_Dumpable");
-}
-
-ACE_Dumpable::ACE_Dumpable (const void *this_ptr)
- : this_ (this_ptr)
-{
- ACE_TRACE ("ACE_Dumpable::ACE_Dumpable");
-}
-
-ACE_Dumpable_Ptr::ACE_Dumpable_Ptr (const ACE_Dumpable *dumper)
- : dumper_ (dumper)
-{
- ACE_TRACE ("ACE_Dumpable_Ptr::ACE_Dumpable_Ptr");
-}
-
-const ACE_Dumpable *
-ACE_Dumpable_Ptr::operator->() const
-{
- ACE_TRACE ("ACE_Dumpable_Ptr::operator->");
- return this->dumper_;
-}
-
-void
-ACE_Dumpable_Ptr::operator= (const ACE_Dumpable *dumper) const
-{
- ACE_TRACE ("ACE_Dumpable_Ptr::operator=");
- if (this->dumper_ != dumper)
- {
- delete (ACE_Dumpable *) this->dumper_;
- ((ACE_Dumpable_Ptr *) this)->dumper_ = dumper;
- }
-}
-
-ACE_ODB::ACE_ODB (void)
- // Let the Tuple default constructor initialize object_table_
- : current_size_ (0)
-{
- ACE_TRACE ("ACE_ODB::ACE_ODB");
-}
-
-ACE_ODB *
-ACE_ODB::instance (void)
-{
- ACE_TRACE ("ACE_ODB::instance");
-
- if (ACE_ODB::instance_ == 0)
- {
- ACE_MT (ACE_Thread_Mutex *lock =
- ACE_Managed_Object<ACE_Thread_Mutex>::get_preallocated_object
- (ACE_Object_Manager::ACE_DUMP_LOCK);
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, *lock, 0));
-
- if (ACE_ODB::instance_ == 0)
- ACE_NEW_RETURN (ACE_ODB::instance_,
- ACE_ODB,
- 0);
- }
-
- return ACE_ODB::instance_;
-}
-
-void
-ACE_ODB::dump_objects (void)
-{
- ACE_TRACE ("ACE_ODB::dump_objects");
- for (int i = 0; i < this->current_size_; i++)
- {
- if (this->object_table_[i].this_ != 0)
- // Dump the state of the object.
- this->object_table_[i].dumper_->dump ();
- }
-}
-
-// This method registers a new <dumper>. It detects
-// duplicates and simply overwrites them.
-
-void
-ACE_ODB::register_object (const ACE_Dumpable *dumper)
-{
- ACE_TRACE ("ACE_ODB::register_object");
- int i;
- int slot = 0;
-
- for (i = 0; i < this->current_size_; i++)
- {
- if (this->object_table_[i].this_ == 0)
- slot = i;
- else if (this->object_table_[i].this_ == dumper->this_)
- {
- slot = i;
- break;
- }
- }
-
- if (i == this->current_size_)
- {
- slot = this->current_size_++;
- ACE_ASSERT (this->current_size_ < ACE_ODB::MAX_TABLE_SIZE);
- }
- this->object_table_[slot].this_ = dumper->this_;
- this->object_table_[slot].dumper_ = dumper;
-}
-
-void
-ACE_ODB::remove_object (const void *this_ptr)
-{
- ACE_TRACE ("ACE_ODB::remove_object");
- int i;
-
- for (i = 0; i < this->current_size_; i++)
- {
- if (this->object_table_[i].this_ == this_ptr)
- break;
- }
-
- if (i < this->current_size_)
- {
- this->object_table_[i].this_ = 0;
- this->object_table_[i].dumper_ = 0;
- }
-}
-
-ACE_ODB *ACE_ODB::instance_ = 0;
diff --git a/ace/Dump.h b/ace/Dump.h
deleted file mode 100644
index b08d2d8d728..00000000000
--- a/ace/Dump.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Dump.h
- *
- * $Id$
- *
- *
- * A prototype mechanism that allow all ACE objects to be registered
- * with a central in-memory "database" that can dump the state of all
- * live ACE objects (e.g., from within a debugger).
- *
- * The macros which allow easy registration and removal of objects to be
- * dumped (ACE_REGISTER_OBJECT and ACE_REMOVE_OBJECT) are turned into
- * no-ops by compiling with the ACE_NDEBUG macro defined. This allows
- * usage to be removed in "release mode" builds without changing code.
- *
- * There are several interesting aspects to this design:
- *
- * 1. It uses the External Polymorphism pattern to avoid having to
- * derive all ACE classes from a common base class that has virtual
- * methods (this is crucial to avoid unnecessary overhead). In
- * addition, there is no additional space added to ACE objects
- * (this is crucial to maintain binary layout compatibility).
- *
- * 2. This mechanism can be conditionally compiled in order to
- * completely disable this feature entirely. Moreover, by
- * using macros there are relatively few changes to ACE code.
- *
- * 3. This mechanism copes with single-inheritance hierarchies of
- * dumpable classes. In such cases we typically want only one
- * dump, corresponding to the most derived instance. Thanks to
- * Christian Millour (chris@etca.fr) for illustrating how to do
- * this. Note, however, that this scheme doesn't generalize to
- * work with multiple-inheritance or virtual base classes.
- *
- * Future work includes:
- *
- * 1. Using a dynamic object table rather than a static table
- *
- * 2. Adding support to allow particular classes of objects to
- * be selectively dumped.
- *
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_DUMP_H
-#define ACE_DUMP_H
-#include "ace/pre.h"
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Dumpable
- *
- * @brief Base class that defines a uniform interface for all object
- * dumping.
- */
-class ACE_Export ACE_Dumpable
-{
-public:
- friend class ACE_ODB;
- friend class ACE_Dumpable_Ptr;
-
- /// Constructor.
- ACE_Dumpable (const void *);
-
- /// This pure virtual method must be filled in by a subclass.
- virtual void dump (void) const = 0;
-
-protected:
- virtual ~ACE_Dumpable (void);
-
-private:
- /// Pointer to the object that is being stored.
- const void *this_;
-};
-
-/**
- * @class ACE_Dumpable_Ptr
- *
- * @brief A smart pointer stored in the in-memory object database
- * ACE_ODB. The pointee (if any) is deleted when reassigned.
- */
-class ACE_Export ACE_Dumpable_Ptr
-{
-public:
- ACE_Dumpable_Ptr (const ACE_Dumpable *dumper = 0);
- const ACE_Dumpable *operator->() const;
- void operator= (const ACE_Dumpable *dumper) const;
-
-private:
- /// "Real" pointer to the underlying abstract base class
- /// pointer that does the real work.
- const ACE_Dumpable *dumper_;
-};
-
-/**
- * @class ACE_ODB
- *
- * @brief This is the object database (ODB) that keeps track of all
- * live ACE objects.
- */
-class ACE_Export ACE_ODB
-{
-public:
- /// @todo This is clearly inadequate and should be dynamic...
- enum {MAX_TABLE_SIZE = 100000};
-
- /// Iterates through the entire set of registered objects and
- /// dumps their state.
- void dump_objects (void);
-
- /// Add the tuple <dumper, this_> to the list of registered ACE objects.
- void register_object (const ACE_Dumpable *dumper);
-
- /// Use <this_> to locate and remove the associated <dumper> from the
- /// list of registered ACE objects.
- void remove_object (const void *this_);
-
- /// Interface to the Singleton instance of the object database.
- static ACE_ODB *instance (void);
-
-private:
- ACE_ODB (void); // Ensure we have a Singleton...
-
- struct Tuple
- {
- /// Pointer to the object that is registered.
- const void *this_;
-
- /// Smart pointer to the ACE_Dumpable object associated with this_.
- /// This uses an ACE_Dumpable_Ptr, instead of a bare pointer, to
- /// cope with hierarchies of dumpable classes. In such cases we
- /// typically want only one dump, corresponding to the most derived
- /// instance. To achieve this, the handle registered for the
- /// subobject corresponding to the base class is destroyed (hence
- /// on destruction of the subobject its handle won't exist anymore
- /// and we'll have to check for that).
- const ACE_Dumpable_Ptr dumper_;
-
- Tuple (void) : dumper_(0) {}
- };
-
- /// Singleton instance of this class.
- static ACE_ODB *instance_;
-
- /// The current implementation is very simple-minded and will be
- /// changed to be dynamic.
- Tuple object_table_[ACE_ODB::MAX_TABLE_SIZE];
-
- /// Current size of <object_table_>.
- int current_size_;
-};
-
-// Include the templates classes at this point.
-#include "ace/Dump_T.h"
-
-#include "ace/post.h"
-#endif /* ACE_DUMP_H */
diff --git a/ace/Dump_T.cpp b/ace/Dump_T.cpp
deleted file mode 100644
index 97386d4ba31..00000000000
--- a/ace/Dump_T.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-// Dump_T.cpp
-// $Id$
-
-#ifndef ACE_DUMP_T_C
-#define ACE_DUMP_T_C
-
-#include "ace/Dump_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, Dump_T, "$Id$")
-
-template <class Concrete>
-ACE_Dumpable_Adapter<Concrete>::~ACE_Dumpable_Adapter (void)
-{
- ACE_TRACE ("ACE_Dumpable_Adapter<Concrete>::~ACE_Dumpable_Adapter");
-}
-
-template <class Concrete>
-ACE_Dumpable_Adapter<Concrete>::ACE_Dumpable_Adapter (const Concrete *t)
- : ACE_Dumpable ((const void *) t), this_ (t)
-{
- ACE_TRACE ("ACE_Dumpable_Adapter<Concrete>::ACE_Dumpable_Adapter");
-}
-
-template <class Concrete> Concrete *
-ACE_Dumpable_Adapter<Concrete>::operator->() const
-{
- return (Concrete *) this->this_;
-}
-
-template <class Concrete> void
-ACE_Dumpable_Adapter<Concrete>::dump (void) const
-{
- ACE_TRACE ("ACE_Dumpable_Adapter<Concrete>::dump");
- this->this_->dump ();
-}
-
-#endif /* ACE_DUMP_T_C */
diff --git a/ace/Dump_T.h b/ace/Dump_T.h
deleted file mode 100644
index be283889da9..00000000000
--- a/ace/Dump_T.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Dump_T.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_DUMP_T_H
-#define ACE_DUMP_T_H
-#include "ace/pre.h"
-
-#include "ace/Dump.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Dumpable_Adapter
- *
- * @brief This class inherits the interface of the abstract ACE_Dumpable
- * class and is instantiated with the implementation of the
- * concrete component class <class Concrete>.
- *
- * This design is similar to the Adapter and Decorator patterns
- * from the ``Gang of Four'' book. Note that <class Concrete>
- * need not inherit from a common class since ACE_Dumpable
- * provides the uniform virtual interface!
- */
-template <class Concrete>
-class ACE_Dumpable_Adapter : public ACE_Dumpable
-{
-public:
- // = Initialization and termination methods.
- ACE_Dumpable_Adapter (const Concrete *t);
- ~ACE_Dumpable_Adapter (void);
-
- /// Concrete dump method (simply delegates to the <dump> method of
- /// <class Concrete>).
- virtual void dump (void) const;
-
- /// Delegate to methods in the Concrete class.
- Concrete *operator->() const;
-
-private:
- /// Pointer to <this> of <class Concrete>.
- const Concrete *this_;
-};
-
-// Some useful macros for conditionally compiling this feature...
-#if defined (ACE_NDEBUG)
-#define ACE_REGISTER_OBJECT(CLASS)
-#define ACE_REMOVE_OBJECT
-#else
-#define ACE_REGISTER_OBJECT(CLASS) \
- ACE_ODB::instance ()->register_object \
- (new ACE_Dumpable_Adapter<CLASS> (this));
-#define ACE_REMOVE_OBJECT \
- ACE_ODB::instance ()->remove_object \
- ((void *) this);
-#endif /* ACE_NDEBUG */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Dump_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Dump_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_DUMP_T_H */
diff --git a/ace/Dynamic.cpp b/ace/Dynamic.cpp
deleted file mode 100644
index 4042cd56402..00000000000
--- a/ace/Dynamic.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// Dynamic.cpp
-// $Id$
-
-#include "ace/Dynamic.h"
-#include "ace/Singleton.h"
-#include "ace/Synch_T.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Dynamic.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Dynamic, "$Id$")
-
-ACE_Dynamic::ACE_Dynamic (void)
- : is_dynamic_ (0)
-{
- ACE_TRACE ("ACE_Dynamic::ACE_Dynamic");
-}
-
-/* static */ ACE_Dynamic *
-ACE_Dynamic::instance (void)
-{
- return ACE_TSS_Singleton<ACE_Dynamic, ACE_SYNCH_NULL_MUTEX>::instance ();
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- template class ACE_TSS_Singleton<ACE_Dynamic, ACE_Null_Mutex>;
-# if (defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)))
- template class ACE_TSS<ACE_Dynamic>;
-# endif /* ACE_HAS_THREADS && (ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION) */
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
- #pragma instantiate ACE_TSS_Singleton<ACE_Dynamic, ACE_Null_Mutex>
-
-# if (defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)))
- #pragma instantiate ACE_TSS<ACE_Dynamic>
-# endif /* ACE_HAS_THREADS && (ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION) */
-
-#elif defined (__GNUC__) && (defined (_AIX) || defined (__hpux) || defined (VXWORKS))
-template ACE_TSS_Singleton<ACE_Dynamic, ACE_Null_Mutex> *
- ACE_TSS_Singleton<ACE_Dynamic, ACE_Null_Mutex>::singleton_;
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Dynamic.h b/ace/Dynamic.h
deleted file mode 100644
index 6c248b4f5a9..00000000000
--- a/ace/Dynamic.h
+++ /dev/null
@@ -1,71 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Dynamic.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- * @author Irfan Pyarali.
- */
-//==========================================================================
-
-#ifndef ACE_DYNAMIC_H
-#define ACE_DYNAMIC_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Dynamic
- *
- * @brief Checks to see if an object was dynamically allocated.
- *
- * This class holds the pointer in a thread-safe manner between
- * the call to operator new and the call to the constructor.
- */
-class ACE_Export ACE_Dynamic
-{
-public:
- // = Initialization and termination method.
- /// Constructor.
- ACE_Dynamic (void);
-
- /// Destructor.
- ~ACE_Dynamic (void);
-
- /**
- * Sets a flag that indicates that the object was dynamically
- * created. This method is usually called in operator new and then
- * checked and reset in the constructor.
- */
- void set (void);
-
- /// 1 if we were allocated dynamically, else 0.
- int is_dynamic (void);
-
- /// Resets state flag.
- void reset (void);
-
- static ACE_Dynamic *instance (void);
-
-private:
- /**
- * Flag that indicates that the object was dynamically created. This
- * method is usually called in operator new and then checked and
- * reset in the constructor.
- */
- int is_dynamic_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Dynamic.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_DYNAMIC_H */
diff --git a/ace/Dynamic.i b/ace/Dynamic.i
deleted file mode 100644
index 9d1595441d6..00000000000
--- a/ace/Dynamic.i
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Dynamic.i
-
-ACE_INLINE
-ACE_Dynamic::~ACE_Dynamic (void)
-{
- // ACE_TRACE ("ACE_Dynamic::~ACE_Dynamic");
-}
-
-ACE_INLINE void
-ACE_Dynamic::set (void)
-{
- // ACE_TRACE ("ACE_Dynamic::set");
- this->is_dynamic_ = 1;
-}
-
-ACE_INLINE int
-ACE_Dynamic::is_dynamic ()
-{
- // ACE_TRACE ("ACE_Dynamic::is_dynamic");
- return this->is_dynamic_;
-}
-
-ACE_INLINE void
-ACE_Dynamic::reset (void)
-{
- // ACE_TRACE ("ACE_Dynamic::reset");
- this->is_dynamic_ = 0;
-}
diff --git a/ace/Dynamic_Service.cpp b/ace/Dynamic_Service.cpp
deleted file mode 100644
index d475bd5a17b..00000000000
--- a/ace/Dynamic_Service.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// Dynamic_Service.cpp
-// $Id$
-
-#ifndef ACE_DYNAMIC_SERVICE_C
-#define ACE_DYNAMIC_SERVICE_C
-
-#include "ace/Dynamic_Service.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Service_Object.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Dynamic_Service.i"
-#endif /* __ACE_INLINE__ */
-
-template <class TYPE> TYPE *
-ACE_Dynamic_Service<TYPE>::instance (const ACE_TCHAR *name)
-{
- ACE_Service_Object *svc_obj =
- ACE_static_cast (ACE_Service_Object *, ACE_Dynamic_Service_Base::instance (name));
- return ACE_dynamic_cast (TYPE *, svc_obj);
-}
-
-ACE_RCSID(ace, Dynamic_Service, "$Id$")
-
-#endif /* ACE_DYNAMIC_SERVICE_C */
diff --git a/ace/Dynamic_Service.h b/ace/Dynamic_Service.h
deleted file mode 100644
index 55d45bdae78..00000000000
--- a/ace/Dynamic_Service.h
+++ /dev/null
@@ -1,64 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Dynamic_Service.h
- *
- * $Id$
- *
- * @author Prashant Jain <pjain@cs.wustl.edu>
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_DYNAMIC_SERVICE_H
-#define ACE_DYNAMIC_SERVICE_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Dynamic_Service_Base.h"
-
-class ACE_Service_Object;
-
-/**
- * @class ACE_Dynamic_Service
- *
- * @brief Provides a general interface to retrieve arbitrary objects
- * from the ACE service repository.
- *
- * Uses "name" for lookup in the ACE service repository. Obtains
- * the object and returns it as the appropriate type.
- */
-template <class TYPE>
-class ACE_Dynamic_Service : public ACE_Dynamic_Service_Base
-{
-public:
- /// Return instance using <name> to search the Service_Repository.
- static TYPE*instance (const ACE_TCHAR *name);
-
-#if defined (ACE_USES_WCHAR)
- static TYPE* instance (const ACE_ANTI_TCHAR *name);
-#endif // ACE_USES_WCHAR
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Dynamic_Service.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-# include "ace/Dynamic_Service.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-# pragma implementation ("Dynamic_Service.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_DYNAMIC_SERVICE_H */
diff --git a/ace/Dynamic_Service.i b/ace/Dynamic_Service.i
deleted file mode 100644
index f2ebfc81e1b..00000000000
--- a/ace/Dynamic_Service.i
+++ /dev/null
@@ -1,10 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if defined (ACE_USES_WCHAR)
-template <class TYPE> ACE_INLINE TYPE *
-ACE_Dynamic_Service<TYPE>::instance (const ACE_ANTI_TCHAR *name)
-{
- return instance (ACE_TEXT_CHAR_TO_TCHAR (name));
-}
-#endif // ACE_USES_WCHAR
diff --git a/ace/Dynamic_Service_Base.cpp b/ace/Dynamic_Service_Base.cpp
deleted file mode 100644
index ab4b1bc5a62..00000000000
--- a/ace/Dynamic_Service_Base.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-#include "ace/Dynamic_Service_Base.h"
-#include "ace/Service_Config.h"
-#include "ace/Service_Repository.h"
-#include "ace/Service_Types.h"
-#include "ace/Log_Msg.h"
-
-
-ACE_RCSID (ace,
- Dynamic_Service_Base,
- "$Id$")
-
-
-void
-ACE_Dynamic_Service_Base::dump (void) const
-{
- ACE_TRACE ("ACE_Dynamic_Service_Base::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Get the instance using <name>.
-
-void *
-ACE_Dynamic_Service_Base::instance (const ACE_TCHAR *name)
-{
- ACE_TRACE ("ACE_Dynamic_Service_Base::instance");
- const ACE_Service_Type *svc_rec;
-
- if (ACE_Service_Repository::instance ()->find (name,
- &svc_rec) == -1)
- return 0;
-
- const ACE_Service_Type_Impl *type = svc_rec->type ();
-
- if (type == 0)
- return 0;
-
- void *obj = type->object ();
- return obj;
-}
diff --git a/ace/Dynamic_Service_Base.h b/ace/Dynamic_Service_Base.h
deleted file mode 100644
index 4a67ce2ea3a..00000000000
--- a/ace/Dynamic_Service_Base.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Dynamic_Service_Base.h
- *
- * $Id$
- *
- * @author Prashant Jain <pjain@cs.wustl.edu>
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_DYNAMIC_SERVICE_BASE_H
-#define ACE_DYNAMIC_SERVICE_BASE_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-
-/**
- * @class ACE_Dynamic_Service_Base
- *
- * @brief Base class for all ACE_Dynamic_Service instantiations.
- *
- * Factors out common code shared by all ACE_Dynamic_Service
- * instantiations, this avoid code bloat.
- */
-class ACE_Export ACE_Dynamic_Service_Base
-{
-public:
- /// Dump the current static of the object
- void dump (void) const;
-
-protected:
- /// Return instance using <name> to search the Service_Repository.
- static void* instance (const ACE_TCHAR *name);
-};
-
-#include "ace/post.h"
-#endif /* ACE_DYNAMIC_SERVICE_BASE_H */
diff --git a/ace/Dynamic_Service_Base.i b/ace/Dynamic_Service_Base.i
deleted file mode 100644
index 6318deb79a0..00000000000
--- a/ace/Dynamic_Service_Base.i
+++ /dev/null
@@ -1,2 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
diff --git a/ace/Env_Value_T.cpp b/ace/Env_Value_T.cpp
deleted file mode 100644
index d99819ec6b9..00000000000
--- a/ace/Env_Value_T.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// $Id$
-
-#if !defined (ACE_ENV_VALUE_T_C)
-#define ACE_ENV_VALUE_T_C
-
-#include "ace/Env_Value_T.h"
-
-#if ! defined (__ACE_INLINE__)
-#include "ace/Env_Value_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Env_Value_T, "$Id$")
-
-#endif /* ACE_ENV_VALUE_T_C */
diff --git a/ace/Env_Value_T.h b/ace/Env_Value_T.h
deleted file mode 100644
index b13843d8451..00000000000
--- a/ace/Env_Value_T.h
+++ /dev/null
@@ -1,161 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Env_Value_T.h
- *
- * $Id$
- *
- * Template to encapsulate getting a value from an environment variable
- * and using a supplied default value if not in the environment.
- *
- *
- * @author Chris Cleeland (derived from work by Carlos O'Ryan)
- */
-//=============================================================================
-
-#ifndef ACE_ENV_VALUE_T_H
-#define ACE_ENV_VALUE_T_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_Env_Value
- *
- * @brief Enviroment Variable Value
- *
- * Reads a variable from the user enviroment, providing a default
- * value.
- */
-template <class T>
-class ACE_Env_Value
-{
-public:
- /**
- * Default constructor which isn't bound to a specific environment
- * variable name or a default value. Before being useful it must
- * <open>'d.
- */
- ACE_Env_Value (void);
-
- /// Constructor that calls <open>.
- ACE_Env_Value (const ACE_TCHAR *varname,
- const T &vardefault);
-
- /// Destroy the value.
- ~ACE_Env_Value (void);
-
- /// Returns the value as type T.
- operator T (void);
-
- /// The constructor, read <varname> from the environment, using
- /// <vardefault> as its value if it is not defined.
- void open (const ACE_TCHAR *varname, const T &defval);
-
- /// Returns the name of the variable being tracked.
- const ACE_TCHAR *varname (void) const;
-
-private:
- /// Disallow copying and assignment.
- ACE_UNIMPLEMENTED_FUNC (ACE_Env_Value(const ACE_Env_Value<T> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Env_Value<T> operator=(const ACE_Env_Value<T> &))
-
- void fetch_value (void);
-
- const ACE_TCHAR *varname_;
- T value_;
-};
-
-template <class T> void ACE_Convert (const ACE_TCHAR *s, T &t);
-// Function to convert a string <s> into type <T>.
-
-#if defined (__ACE_INLINE__)
-#include "ace/Env_Value_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Env_Value_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-
-// Default calls a CTOR on type T of the form 'T::T(const char*)', but
-// users can feel free to create their own specialized conversion
-// functions if necessary, as shown below. Note that for 'char*' the
-// default is used because a simple cast will be performed and no
-// conversion will be necessary.
-
-template <class T> inline void
-ACE_Convert (const ACE_TCHAR *s, T &t)
-{
- t = T (s);
-}
-
-inline void
-ACE_Convert (const ACE_TCHAR *s, ACE_TCHAR *&v)
-{
- v = (ACE_TCHAR *) s;
-}
-
-inline void
-ACE_Convert (const ACE_TCHAR *s, const ACE_TCHAR *&v)
-{
- v = (const ACE_TCHAR *) s;
-}
-
-inline void
-ACE_Convert (const ACE_TCHAR *s, short &si)
-{
- si = ACE_static_cast (short, ACE_OS::strtol (s, 0, 10));
-}
-
-inline void
-ACE_Convert (const ACE_TCHAR *s, u_short &us)
-{
- us = ACE_static_cast (u_short, ACE_OS::strtol (s, 0, 10));
-}
-
-inline void
-ACE_Convert (const ACE_TCHAR *s, u_int &i)
-{
- i = ACE_static_cast (u_int,
- ACE_OS::strtol (s, 0, 10));
-}
-
-inline void
-ACE_Convert (const ACE_TCHAR *s, long &l)
-{
- l = ACE_OS::strtol (s, 0, 10);
-}
-
-inline void
-ACE_Convert (const ACE_TCHAR *s, int &i)
-{
- i = ACE_static_cast (int, ACE_OS::strtol (s, 0, 10));
-}
-
-inline void
-ACE_Convert (const ACE_TCHAR *s, u_long &ul)
-{
- ul = ACE_OS::strtoul (s, 0, 10);
-}
-
-inline void
-ACE_Convert (const ACE_TCHAR *s, double &d)
-{
- d = ACE_OS::strtod (s, 0);
-}
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Env_Value_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_ENV_VALUE_T_H */
diff --git a/ace/Env_Value_T.i b/ace/Env_Value_T.i
deleted file mode 100644
index 9f98f0fdb45..00000000000
--- a/ace/Env_Value_T.i
+++ /dev/null
@@ -1,51 +0,0 @@
-// $Id$
-
-template <class T> ACE_INLINE
-ACE_Env_Value<T>::operator T (void)
-{
- return value_;
-}
-
-template <class T> ACE_INLINE
-ACE_Env_Value<T>::ACE_Env_Value (void)
- : varname_ (0)
-{
-}
-
-template <class T> ACE_INLINE
-ACE_Env_Value<T>::ACE_Env_Value (const ACE_TCHAR *varname,
- const T &defval)
- : varname_ (varname),
- value_(defval)
-{
- this->fetch_value ();
-}
-
-template <class T> ACE_INLINE void
-ACE_Env_Value<T>::open (const ACE_TCHAR *varname,
- const T &defval)
-{
- varname_ = varname;
- value_ = defval;
- this->fetch_value ();
-}
-
-template <class T> ACE_INLINE void
-ACE_Env_Value<T>::fetch_value (void)
-{
- const ACE_TCHAR *env = ACE_OS::getenv (varname_);
-
- if (env != 0)
- ACE_Convert (env, value_);
-}
-
-template <class T> ACE_INLINE const ACE_TCHAR*
-ACE_Env_Value<T>::varname (void) const
-{
- return varname_;
-}
-
-template <class T> ACE_INLINE
-ACE_Env_Value<T>::~ACE_Env_Value (void)
-{
-}
diff --git a/ace/Event_Handler.cpp b/ace/Event_Handler.cpp
deleted file mode 100644
index 11b1c48b38e..00000000000
--- a/ace/Event_Handler.cpp
+++ /dev/null
@@ -1,248 +0,0 @@
-// Event_Handler.cpp
-// $Id$
-
-#include "ace/Event_Handler.h"
-#include "ace/Message_Block.h"
-#include "ace/OS_Errno.h"
-#include "ace/Reactor.h"
-#include "ace/Thread_Manager.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Event_Handler.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Event_Handler, "$Id$")
-
-// Implement conceptually abstract virtual functions in the base class
-// so derived classes don't have to implement unused ones.
-
-ACE_Event_Handler::ACE_Event_Handler (ACE_Reactor *r,
- int p)
- : priority_ (p),
- reactor_ (r)
-{
- // ACE_TRACE ("ACE_Event_Handler::ACE_Event_Handler");
-}
-
-ACE_Event_Handler::~ACE_Event_Handler (void)
-{
- // ACE_TRACE ("ACE_Event_Handler::~ACE_Event_Handler");
- if (this->reactor_ != 0)
- {
- ACE_Errno_Guard guard (errno); // purge may get ENOTSUP
- this->reactor_->purge_pending_notifications (this);
- }
-}
-
-// Gets the file descriptor associated with this I/O device.
-
-ACE_HANDLE
-ACE_Event_Handler::get_handle (void) const
-{
- ACE_TRACE ("ACE_Event_Handler::get_handle");
- return ACE_INVALID_HANDLE;
-}
-
-// Sets the file descriptor associated with this I/O device.
-
-void
-ACE_Event_Handler::set_handle (ACE_HANDLE)
-{
- ACE_TRACE ("ACE_Event_Handler::set_handle");
-}
-
-// Gets the priority of this handler.
-
-int
-ACE_Event_Handler::priority (void) const
-{
- ACE_TRACE ("ACE_Event_Handler::priority");
- return this->priority_;
-}
-
-// Sets the priority
-
-void
-ACE_Event_Handler::priority (int priority)
-{
- ACE_TRACE ("ACE_Event_Handler::priority");
- this->priority_ = priority;
-}
-
-// Called when the object is about to be removed from the Dispatcher
-// tables.
-
-int
-ACE_Event_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_TRACE ("ACE_Event_Handler::handle_close");
- return -1;
-}
-
-// Called when input becomes available on fd.
-
-int
-ACE_Event_Handler::handle_input (ACE_HANDLE)
-{
- ACE_TRACE ("ACE_Event_Handler::handle_input");
- return -1;
-}
-
-// Called when output is possible on fd.
-
-int
-ACE_Event_Handler::handle_output (ACE_HANDLE)
-{
- ACE_TRACE ("ACE_Event_Handler::handle_output");
- return -1;
-}
-
-// Called when urgent data is available on fd.
-
-int
-ACE_Event_Handler::handle_exception (ACE_HANDLE)
-{
- ACE_TRACE ("ACE_Event_Handler::handle_exception");
- return -1;
-}
-
-// Called when timer expires, TV stores the current time.
-
-int
-ACE_Event_Handler::handle_timeout (const ACE_Time_Value &, const void *)
-{
- ACE_TRACE ("ACE_Event_Handler::handle_timeout");
- return -1;
-}
-
-// Called when a monitored Process exits
-
-int
-ACE_Event_Handler::handle_exit (ACE_Process *)
-{
- ACE_TRACE ("ACE_Event_Handler::handle_exit");
- return -1;
-}
-
-// Called when a registered signal occurs.
-
-int
-ACE_Event_Handler::handle_signal (int, siginfo_t *, ucontext_t *)
-{
- ACE_TRACE ("ACE_Event_Handler::handle_signal");
- return -1;
-}
-
-int
-ACE_Event_Handler::resume_handler (void)
-{
- ACE_TRACE ("ACE_Event_Handler::resume_handler");
-
- // Return a default value and allow the reactor to take care of
- // resuming the handler
- return ACE_Event_Handler::ACE_REACTOR_RESUMES_HANDLER;
-}
-
-
-int
-ACE_Event_Handler::handle_qos (ACE_HANDLE)
-{
- ACE_TRACE ("ACE_Event_Handler::handle_qos");
- return -1;
-}
-
-int
-ACE_Event_Handler::handle_group_qos (ACE_HANDLE)
-{
- ACE_TRACE ("ACE_Event_Handler::handle_group_qos");
- return -1;
-}
-
-void
-ACE_Event_Handler::reactor (ACE_Reactor *reactor)
-{
- ACE_TRACE ("ACE_Event_Handler::reactor");
- this->reactor_ = reactor;
-}
-
-ACE_Reactor *
-ACE_Event_Handler::reactor (void) const
-{
- ACE_TRACE ("ACE_Event_Handler::reactor");
- return this->reactor_;
-}
-
-#if !defined (ACE_HAS_WINCE)
-
-ACE_THR_FUNC_RETURN
-ACE_Event_Handler::read_adapter (void *args)
-{
- ACE_Event_Handler *this_ptr = (ACE_Event_Handler *) args;
-
- ACE_HANDLE handle = this_ptr->get_handle ();
- if (handle == ACE_INVALID_HANDLE)
- handle = ACE_STDIN;
-
- while (this_ptr->handle_input (handle) != -1)
- continue;
-
- this_ptr->handle_close (handle,
- ACE_Event_Handler::READ_MASK);
- this_ptr->reactor ()->notify ();
-
- return 0;
-}
-
-int
-ACE_Event_Handler::register_stdin_handler (ACE_Event_Handler *eh,
- ACE_Reactor *reactor,
- ACE_Thread_Manager *thr_mgr,
- int flags)
-{
-#if defined (ACE_WIN32) || defined (ACE_PSOS)
- ACE_UNUSED_ARG (reactor);
-
- eh->reactor (reactor);
- return thr_mgr->spawn (&read_adapter, (void *) eh, flags);
-#else
- // Keep compilers happy.
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (thr_mgr);
- return reactor->register_handler (ACE_STDIN,
- eh,
- ACE_Event_Handler::READ_MASK);
-#endif /* ACE_WIN32 || ACE_PSOS */
-}
-
-int
-ACE_Event_Handler::remove_stdin_handler (ACE_Reactor *reactor,
- ACE_Thread_Manager *thr_mgr)
-{
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG (reactor);
- ACE_UNUSED_ARG (thr_mgr);
-
- // What should we do here?
- ACE_NOTSUP_RETURN (-1);
-#else
- // Keep compilers happy.
- ACE_UNUSED_ARG (thr_mgr);
- return reactor->remove_handler (ACE_STDIN,
- ACE_Event_Handler::READ_MASK);
-#endif /* ACE_WIN32 */
-}
-
-#endif /* ACE_HAS_WINCE */
-
-ACE_Notification_Buffer::ACE_Notification_Buffer (void)
-{
- ACE_TRACE ("ACE_Notification_Buffer::ACE_Notification_Buffer");
-}
-
-ACE_Notification_Buffer::ACE_Notification_Buffer (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
- : eh_ (eh),
- mask_ (mask)
-{
- ACE_TRACE ("ACE_Notification_Buffer::ACE_Notification_Buffer");
-}
diff --git a/ace/Event_Handler.h b/ace/Event_Handler.h
deleted file mode 100644
index e5f0df47427..00000000000
--- a/ace/Event_Handler.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/* -*- C++ -*- */
-
-//==========================================================================
-/**
- * @file Event_Handler.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_EVENT_HANDLER_H
-#define ACE_EVENT_HANDLER_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-// Forward declaration.
-class ACE_Message_Block;
-class ACE_Reactor;
-class ACE_Thread_Manager;
-class ACE_Process;
-
-typedef u_long ACE_Reactor_Mask;
-
-/**
- * @class ACE_Event_Handler
- *
- * @brief Provides an abstract interface for handling various types of
- * I/O, timer, and signal events.
- *
- * Subclasses read/write input/output on an I/O descriptor,
- * handle an exception raised on an I/O descriptor, handle a
- * timer's expiration, or handle a signal.
- */
-class ACE_Export ACE_Event_Handler
-{
-public:
- enum
- {
- LO_PRIORITY = 0,
- HI_PRIORITY = 10,
- NULL_MASK = 0,
-#if defined (ACE_USE_POLL)
- READ_MASK = POLLIN,
- WRITE_MASK = POLLOUT,
- EXCEPT_MASK = POLLPRI,
-#else /* USE SELECT */
- READ_MASK = (1 << 0),
- WRITE_MASK = (1 << 1),
- EXCEPT_MASK = (1 << 2),
-#endif /* ACE_USE_POLL */
- ACCEPT_MASK = (1 << 3),
- CONNECT_MASK = (1 << 4),
- TIMER_MASK = (1 << 5),
- QOS_MASK = (1 << 6),
- GROUP_QOS_MASK = (1 << 7),
- SIGNAL_MASK = (1 << 8),
- ALL_EVENTS_MASK = READ_MASK |
- WRITE_MASK |
- EXCEPT_MASK |
- ACCEPT_MASK |
- CONNECT_MASK |
- TIMER_MASK |
- QOS_MASK |
- GROUP_QOS_MASK |
- SIGNAL_MASK,
- RWE_MASK = READ_MASK |
- WRITE_MASK |
- EXCEPT_MASK,
- DONT_CALL = (1 << 9)
- };
-
- /// Destructor is virtual to enable proper cleanup.
- virtual ~ACE_Event_Handler (void);
-
- /// Get the I/O handle.
- virtual ACE_HANDLE get_handle (void) const;
-
- /// Set the I/O handle.
- virtual void set_handle (ACE_HANDLE);
-
- // = Get/set priority
-
- // Priorities run from MIN_PRIORITY (which is the "lowest priority")
- // to MAX_PRIORITY (which is the "highest priority").
- /// Get the priority of the Event_Handler.
- virtual int priority (void) const;
-
- /// Set the priority of the Event_Handler.
- virtual void priority (int priority);
-
- /// Called when input events occur (e.g., connection or data).
- virtual int handle_input (ACE_HANDLE fd = ACE_INVALID_HANDLE);
-
- /// Called when output events are possible (e.g., when flow control
- /// abates or non-blocking connection completes).
- virtual int handle_output (ACE_HANDLE fd = ACE_INVALID_HANDLE);
-
- /// Called when an exceptional events occur (e.g., SIGURG).
- virtual int handle_exception (ACE_HANDLE fd = ACE_INVALID_HANDLE);
-
- /**
- * Called when timer expires. <current_time> represents the current
- * time that the <Event_Handler> was selected for timeout
- * dispatching and <act> is the asynchronous completion token that
- * was passed in when <schedule_timer> was invoked.
- */
- virtual int handle_timeout (const ACE_Time_Value &current_time,
- const void *act = 0);
-
- /// Called when a process exits.
- virtual int handle_exit (ACE_Process *);
-
- /// Called when a <handle_*()> method returns -1 or when the
- /// <remove_handler> method is called on an <ACE_Reactor>. The
- /// <close_mask> indicates which event has triggered the
- /// <handle_close> method callback on a particular <handle>.
- virtual int handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask close_mask);
-
- /// Called when object is signaled by OS (either via UNIX signals or
- /// when a Win32 object becomes signaled).
- virtual int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0);
-
- enum
- {
- /// The handler is not resumed at all. Could lead to deadlock..
- ACE_EVENT_HANDLER_NOT_RESUMED = -1,
- /// The reactor takes responsibility of resuming the handler and
- /// is the default
- ACE_REACTOR_RESUMES_HANDLER = 0,
- /// The application takes responsibility of resuming the handler
- ACE_APPLICATION_RESUMES_HANDLER
- };
- /* Called to figure out whether the handler needs to resumed by the
- * reactor or the application can take care of it. The default
- * value of 0 would be returned which would allow the reactor to
- * take care of resumption of the handler. The application can
- * return a value more than zero and decide to resume the handler
- * themseleves.
- */
- // @@ NOTE: This method is only useful for the ACE_TP_Reactor. Sad
- // that we have to have this method in a class that is supposed to
- // be used across different componets in ACE.
- virtual int resume_handler (void);
-
- virtual int handle_qos (ACE_HANDLE = ACE_INVALID_HANDLE);
- virtual int handle_group_qos (ACE_HANDLE = ACE_INVALID_HANDLE);
-
- // = Accessors to set/get the various event demultiplexors.
- /// Set the event demultiplexors.
- virtual void reactor (ACE_Reactor *reactor);
-
- /// Get the event demultiplexors.
- virtual ACE_Reactor *reactor (void) const;
-
-#if !defined (ACE_HAS_WINCE)
- /**
- * Used to read from non-socket ACE_HANDLEs in our own thread to
- * work around Win32 limitations that don't allow us to <select> on
- * non-sockets (such as ACE_STDIN). This is commonly used in
- * situations where the Reactor is used to demultiplex read events
- * on ACE_STDIN on UNIX. Note that <event_handler> must be a
- * subclass of <ACE_Event_Handler>. If the <get_handle> method of
- * this event handler returns <ACE_INVALID_HANDLE> we default to
- * reading from ACE_STDIN.
- */
- static ACE_THR_FUNC_RETURN read_adapter (void *event_handler);
-
- /**
- * Abstracts away from the differences between Win32 and ACE with
- * respect to reading from ACE_STDIN, which is non-<select>'able on
- * Win32.
- */
- static int register_stdin_handler (ACE_Event_Handler *eh,
- ACE_Reactor *reactor,
- ACE_Thread_Manager *thr_mgr,
- int flags = THR_DETACHED);
-
- /// Performs the inverse of the <register_stdin_handler> method.
- static int remove_stdin_handler (ACE_Reactor *reactor,
- ACE_Thread_Manager *thr_mgr);
-#endif /* ACE_HAS_WINCE */
-
-protected:
- /// Force ACE_Event_Handler to be an abstract base class.
- ACE_Event_Handler (ACE_Reactor * = 0,
- int priority = ACE_Event_Handler::LO_PRIORITY);
-
-private:
-
- /// Priority of this Event_Handler.
- int priority_;
-
- /// Pointer to the various event demultiplexors.
- ACE_Reactor *reactor_;
-};
-
-/**
- * @class ACE_Notification_Buffer
- *
- * @brief Simple wrapper for passing <ACE_Event_Handler *>s and
- * <ACE_Reactor_Mask>s between threads.
- */
-class ACE_Export ACE_Notification_Buffer
-{
-public:
- ACE_Notification_Buffer (void);
-
- ACE_Notification_Buffer (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask);
-
- /// Default dtor.
- ~ACE_Notification_Buffer (void);
-
- /// Pointer to the Event_Handler that will be dispatched
- /// by the main event loop.
- ACE_Event_Handler *eh_;
-
- /// Mask that indicates which method to call.
- ACE_Reactor_Mask mask_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Event_Handler.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_EVENT_HANDLER_H */
diff --git a/ace/Event_Handler.i b/ace/Event_Handler.i
deleted file mode 100644
index 6ecccb4b1db..00000000000
--- a/ace/Event_Handler.i
+++ /dev/null
@@ -1,10 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Event_Handler.i
-
-ACE_INLINE
-ACE_Notification_Buffer::~ACE_Notification_Buffer (void)
-{
-}
-
diff --git a/ace/Event_Handler_T.cpp b/ace/Event_Handler_T.cpp
deleted file mode 100644
index f0efd27b43f..00000000000
--- a/ace/Event_Handler_T.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-// Event_Handler_T.cpp
-// $Id$
-
-#ifndef EVENT_HANDLER_T_C
-#define EVENT_HANDLER_T_C
-
-#include "ace/Event_Handler_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, Event_Handler_T, "$Id$")
-
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Event_Handler_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Event_Handler_T)
-
-template <class T> void
-ACE_Event_Handler_T<T>::dump (void) const
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::dump");
-}
-
-template<class T>
-ACE_Event_Handler_T<T>::~ACE_Event_Handler_T (void)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::~ACE_Event_Handler_T");
- if (this->delete_handler_)
- delete this->op_handler_;
-}
-
-template <class T>
-ACE_Event_Handler_T<T>::ACE_Event_Handler_T (T *op_handler, int delete_handler,
- GET_HANDLE get_handle,
- IO_HANDLER input_h,
- CL_HANDLER close_h,
- SIG_HANDLER sig_h,
- TO_HANDLER timeout_h,
- IO_HANDLER output_h,
- SET_HANDLE set_handle,
- IO_HANDLER except_h)
- : op_handler_ (op_handler),
- input_handler_ (input_h),
- output_handler_ (output_h),
- except_handler_ (except_h),
- to_handler_ (timeout_h),
- cl_handler_ (close_h),
- sig_handler_ (sig_h),
- delete_handler_ (delete_handler),
- set_handle_ (set_handle),
- get_handle_ (get_handle)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::ACE_Event_Handler_T");
-}
-
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
-#endif /* EVENT_HANDLER_T_C */
diff --git a/ace/Event_Handler_T.h b/ace/Event_Handler_T.h
deleted file mode 100644
index 7dfc34f4ee6..00000000000
--- a/ace/Event_Handler_T.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Event_Handler_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_EVENT_HANDLER_T_H
-#define ACE_EVENT_HANDLER_T_H
-#include "ace/pre.h"
-
-#include "ace/Event_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-
-/**
- * @class ACE_Event_Handler_T
- *
- * @brief Enable a class that doesn't inherit from the
- * ACE_Event_Handler to be incorporated into the ACE_Reactor
- * framework. Thanks to Greg Lavender (g.lavender@isode.com)
- * for sharing this idea.
- *
- * It is sometimes the case that an application has a hierarchy
- * of operation dispatcher classes that have their own
- * inheritance hierarchy but also would like to integrate with
- * the ACE_Reactor. Rather than adopt a "mixin" approach, it is
- * often cleaner to define a template as a subclass of
- * ACE_Event_Handler and paramterize it with an operation
- * dispatcher type.
- * When constructing an instantiation of the ACE_Event_Handler_T
- * object, a set of pointers to member functions must be
- * provided so that when one of the handle_* methods is called
- * by the ACE_Reactor, the appropriate method is called on the
- * underlying operations object. This is done since in some
- * cases it is useful to map any event that happens to the same
- * method on an object.
- * The ACE_Event_Handler_T template is instantiated by an
- * operations object and registered with the ACE_Reactor, and it
- * then calls the appropriate op_handler. So, it's basically
- * just another level of indirection in event dispatching. The
- * coupling betweent the ultimate handler of the event and the
- * ACE_Event_Handler class is relaxed a bit by have this
- * intermediate <op_handler_> object of type <T> around. The
- * client object can then dynamically change the bindings for
- * the various handlers so that during the life of one of the
- * operation objects, it can change how it wants events to be
- * handled. It just instantiates a new instance of the template
- * with different bindings and reregisters this new object with
- * the ACE_Reactor.
- */
-template <class T>
-class ACE_Event_Handler_T : public ACE_Event_Handler
-{
-public:
- // = Typedefs to simplify pointer-to-member-function registration.
-
- // Get/set the underlying handle.
- typedef ACE_HANDLE (T::*GET_HANDLE) (void) const;
- typedef void (T::*SET_HANDLE) (ACE_HANDLE);
-
- /// Handle I/O events.
- typedef int (T::*IO_HANDLER) (ACE_HANDLE);
-
- /// Handle timeout events.
- typedef int (T::*TO_HANDLER) (const ACE_Time_Value &, const void *);
-
- /// Handle close events.
- typedef int (T::*CL_HANDLER) (ACE_HANDLE, ACE_Reactor_Mask);
-
- /// = Initialization and termination methods.
- typedef int (T::*SIG_HANDLER) (int, siginfo_t*, ucontext_t*);
-
- /// Initialize the op_handler.
- ACE_Event_Handler_T (T *op_handler,
- int delete_handler,
- GET_HANDLE get_handle = 0,
- IO_HANDLER input = 0,
- CL_HANDLER close = 0,
- SIG_HANDLER sig = 0,
- TO_HANDLER timeout = 0,
- IO_HANDLER output = 0,
- SET_HANDLE set_handle = 0,
- IO_HANDLER except = 0);
-
- /// Close down and delete the <op_handler>
- ~ACE_Event_Handler_T (void);
-
- // = Override all the ACE_Event_Handler methods.
-
- // These methods all delegate down to the <T> operations handler.
- virtual ACE_HANDLE get_handle (void) const;
- virtual void set_handle (ACE_HANDLE);
- virtual int handle_input (ACE_HANDLE fd = -1);
- virtual int handle_output (ACE_HANDLE fd = -1);
- virtual int handle_exception (ACE_HANDLE fd = -1);
- virtual int handle_timeout (const ACE_Time_Value &tv, const void *arg = 0);
- virtual int handle_close (ACE_HANDLE fd, ACE_Reactor_Mask close_mask);
- virtual int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0);
-
- // = Get/set the operations handler.
- T *op_handler (void);
- void op_handler (T *);
-
- // = Get/set the target pointer-to-method used for dispatching.
-
- GET_HANDLE handle_get (void);
- void handle_get (GET_HANDLE);
-
- SET_HANDLE handle_set (void);
- void handle_set (SET_HANDLE);
-
- IO_HANDLER input_handler (void);
- void input_handler (IO_HANDLER);
-
- IO_HANDLER output_handler (void);
- void output_handler (IO_HANDLER);
-
- IO_HANDLER except_handler (void);
- void except_handler (IO_HANDLER);
-
- TO_HANDLER to_handler (void);
- void to_handler (TO_HANDLER);
-
- CL_HANDLER cl_handler (void);
- void cl_handler (CL_HANDLER);
-
- SIG_HANDLER sig_handler (void);
- void sig_handler (SIG_HANDLER);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Pointer to the object that handles all the delegated operations.
- T *op_handler_;
-
- // = Handle input, output, and exception events.
- IO_HANDLER input_handler_;
- IO_HANDLER output_handler_;
- IO_HANDLER except_handler_;
-
- /// Handle timeout events.
- TO_HANDLER to_handler_;
-
- /// Handle close events.
- CL_HANDLER cl_handler_;
-
- /// Handle signal events.
- SIG_HANDLER sig_handler_;
-
- /// Keeps track of whether we need to delete the handler in the
- /// destructor.
- int delete_handler_;
-
- // = Get/set underlying handle.
- SET_HANDLE set_handle_;
- GET_HANDLE get_handle_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Event_Handler_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Event_Handler_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Event_Handler_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-#include "ace/post.h"
-#endif /* ACE_EVENT_HANDLER_H */
diff --git a/ace/Event_Handler_T.i b/ace/Event_Handler_T.i
deleted file mode 100644
index 31d030c555f..00000000000
--- a/ace/Event_Handler_T.i
+++ /dev/null
@@ -1,185 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-template<class T> ACE_INLINE void
-ACE_Event_Handler_T<T>::op_handler (T *op)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::op_handler");
- this->op_handler_ = op;
-}
-
-template<class T> ACE_INLINE T *
-ACE_Event_Handler_T<T>::op_handler (void)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::op_handler");
- return this->op_handler_;
-}
-
-template<class T> ACE_INLINE ACE_HANDLE
-ACE_Event_Handler_T<T>::get_handle (void) const
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::get_handle");
- return this->get_handle_ == 0 ? ACE_INVALID_HANDLE : (this->op_handler_->*get_handle_) ();
-}
-
-template<class T> ACE_INLINE void
-ACE_Event_Handler_T<T>::set_handle (ACE_HANDLE h)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::set_handle");
- if (this->set_handle_ != 0)
- (this->op_handler_->*set_handle_) (h);
-}
-
-template<class T> ACE_INLINE int
-ACE_Event_Handler_T<T>::handle_input (ACE_HANDLE fd)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::handle_input");
- return this->input_handler_ == 0 ? 0 : (this->op_handler_->*input_handler_) (fd);
-}
-
-template<class T> ACE_INLINE int
-ACE_Event_Handler_T<T>::handle_output (ACE_HANDLE fd)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::handle_output");
- return this->output_handler_ == 0 ? 0 : (this->op_handler_->*output_handler_) (fd);
-}
-
-template<class T> ACE_INLINE int
-ACE_Event_Handler_T<T>::handle_exception (ACE_HANDLE fd)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::handle_exception");
- return this->except_handler_ == 0 ? 0 : (this->op_handler_->*except_handler_) (fd);
-}
-
-template<class T> ACE_INLINE int
-ACE_Event_Handler_T<T>::handle_timeout (const ACE_Time_Value &tv, const void *arg)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::handle_timeout");
- return this->to_handler_ == 0 ? 0 : (this->op_handler_->*to_handler_) (tv, arg);
-}
-
-template<class T> ACE_INLINE int
-ACE_Event_Handler_T<T>::handle_close (ACE_HANDLE fd, ACE_Reactor_Mask close_mask)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::handle_close");
- return this->cl_handler_ == 0 ? 0 : (this->op_handler_->*cl_handler_) (fd, close_mask);
-}
-
-template<class T> ACE_INLINE int
-ACE_Event_Handler_T<T>::handle_signal (int signum, siginfo_t *s, ucontext_t *u)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::handle_signal");
- return this->sig_handler_ == 0 ? 0 : (this->op_handler_->*sig_handler_) (signum, s, u);
-}
-
-template<class T> ACE_INLINE ACE_TYPENAME ACE_Event_Handler_T<T>::GET_HANDLE
-ACE_Event_Handler_T<T>::handle_get (void)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::handle_get");
- return this->get_handle_;
-}
-
-template<class T> ACE_INLINE void
-ACE_Event_Handler_T<T>::handle_get (ACE_TYPENAME ACE_Event_Handler_T<T>::GET_HANDLE h)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::handle_get");
- this->get_handle_ = h;
-}
-
-template<class T> ACE_INLINE ACE_TYPENAME ACE_Event_Handler_T<T>::SET_HANDLE
-ACE_Event_Handler_T<T>::handle_set (void)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::handle_set");
- return this->set_handle_;
-}
-
-template<class T> ACE_INLINE void
-ACE_Event_Handler_T<T>::handle_set (ACE_TYPENAME ACE_Event_Handler_T<T>::SET_HANDLE h)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::handle_set");
- this->set_handle_ = h;
-}
-
-template<class T> ACE_INLINE ACE_TYPENAME ACE_Event_Handler_T<T>::IO_HANDLER
-ACE_Event_Handler_T<T>::input_handler (void)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::input_handler");
- return this->input_handler_;
-}
-
-template<class T> ACE_INLINE void
-ACE_Event_Handler_T<T>::input_handler (ACE_TYPENAME ACE_Event_Handler_T<T>::IO_HANDLER h)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::input_handler");
- this->input_handler_ = h;
-}
-
-template<class T> ACE_INLINE ACE_TYPENAME ACE_Event_Handler_T<T>::IO_HANDLER
-ACE_Event_Handler_T<T>::output_handler (void)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::output_handler");
- return this->output_handler_;
-}
-
-template<class T> ACE_INLINE void
-ACE_Event_Handler_T<T>::output_handler (ACE_TYPENAME ACE_Event_Handler_T<T>::IO_HANDLER h)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::output_handler");
- this->output_handler_ = h;
-}
-
-template<class T> ACE_INLINE ACE_TYPENAME ACE_Event_Handler_T<T>::IO_HANDLER
-ACE_Event_Handler_T<T>::except_handler (void)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::except_handler");
- return this->except_handler_;
-}
-
-template<class T> ACE_INLINE void
-ACE_Event_Handler_T<T>::except_handler (ACE_TYPENAME ACE_Event_Handler_T<T>::IO_HANDLER h)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::except_handler");
- this->except_handler_ = h;
-}
-
-template<class T> ACE_INLINE ACE_TYPENAME ACE_Event_Handler_T<T>::TO_HANDLER
-ACE_Event_Handler_T<T>::to_handler (void)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::to_handler");
- return this->to_handler_;
-}
-
-template<class T> ACE_INLINE void
-ACE_Event_Handler_T<T>::to_handler (ACE_TYPENAME ACE_Event_Handler_T<T>::TO_HANDLER h)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::to_handler");
- this->to_handler_ = h;
-}
-
-template<class T> ACE_INLINE ACE_TYPENAME ACE_Event_Handler_T<T>::CL_HANDLER
-ACE_Event_Handler_T<T>::cl_handler (void)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::cl_handler");
- return this->cl_handler_;
-}
-
-template<class T> ACE_INLINE void
-ACE_Event_Handler_T<T>::cl_handler (ACE_TYPENAME ACE_Event_Handler_T<T>::CL_HANDLER h)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::cl_handler");
- this->cl_handler_ = h;
-}
-
-template<class T> ACE_INLINE ACE_TYPENAME ACE_Event_Handler_T<T>::SIG_HANDLER
-ACE_Event_Handler_T<T>::sig_handler (void)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::sig_handler");
- return this->sig_handler_;
-}
-
-template<class T> ACE_INLINE void
-ACE_Event_Handler_T<T>::sig_handler (ACE_TYPENAME ACE_Event_Handler_T<T>::SIG_HANDLER h)
-{
- ACE_TRACE ("ACE_Event_Handler_T<T>::sig_handler");
- this->sig_handler_ = h;
-}
diff --git a/ace/Exception_Macros.h b/ace/Exception_Macros.h
deleted file mode 100644
index 115bb37f797..00000000000
--- a/ace/Exception_Macros.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// -*- C++ -*-
-
-// ============================================================================
-/**
- * @file Exception_Macros.h
- *
- * $Id$
- *
- * Writing code that is portable between platforms with or without
- * native C++ exceptions is hard. The following macros offer some
- * help on this task.
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- * @author Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
- * @author Carlos O'Ryan <coryan@uci.edu>
- * @author Krishnakumar B <kitty@cs.wustl.edu>, et al.
- */
-// ============================================================================
-
-// Macros for handling exceptions.
-
-#ifndef ACE_EXCEPTION_MACROS_H
-#define ACE_EXCEPTION_MACROS_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-# if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-# endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// By default, if the compiler supports native exception handling, assume
-// CORBA also support native exception handling. But it can be disabled by
-// defining ACE_CORBA_HAS_EXCEPTIONS=0. If the compiler does not support
-// exceptions handling, make sure native exception handling is disabled.
-#if defined (ACE_HAS_EXCEPTIONS)
-# if defined (ACE_CORBA_HAS_EXCEPTIONS)
-# if (ACE_CORBA_HAS_EXCEPTIONS == 0)
-# undef ACE_USES_NATIVE_EXCEPTIONS
-# else /* ACE_CORBA_HAS_EXCEPTIONS != 0 */
-# define ACE_USES_NATIVE_EXCEPTIONS
-# endif /* ACE_CORBA_HAS_EXCEPTIONS == 0 */
-# else
-# define ACE_USES_NATIVE_EXCEPTIONS
-# define ACE_CORBA_HAS_EXCEPTIONS
-# endif /* ACE_CORBA_HAS_EXCEPTIONS */
-#else /* ! ACE_HAS_EXCEPTIONS */
-# undef ACE_CORBA_HAS_EXCEPTIONS
-# undef ACE_USES_NATIVE_EXCEPTIONS
-#endif /* ACE_HAS_EXCEPTIONS */
-
-#include "ace/post.h"
-
-#endif /* ACE_EXCEPTION_MACROS_H */
diff --git a/ace/FIFO.cpp b/ace/FIFO.cpp
deleted file mode 100644
index 99016a7e93d..00000000000
--- a/ace/FIFO.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-// FIFO.cpp
-// $Id$
-
-#include "ace/FIFO.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/FIFO.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, FIFO, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_FIFO)
-
-void
-ACE_FIFO::dump (void) const
-{
- ACE_TRACE ("ACE_FIFO::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("rendezvous_ = %s"), this->rendezvous_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-int
-ACE_FIFO::open (const ACE_TCHAR *r, int flags, int perms,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_FIFO::open");
- ACE_OS::strsncpy (this->rendezvous_, r, MAXPATHLEN);
-
-#if defined (ACE_PSOS_DIAB_MIPS)
- if ( ACE_OS::mkfifo (this->rendezvous_, perms) == -1
- && !(errno == EEXIST))
- return -1;
-#else
- if ((flags & O_CREAT) != 0
- && ACE_OS::mkfifo (this->rendezvous_, perms) == -1
- && !(errno == EEXIST))
- return -1;
-#endif
-
- this->set_handle (ACE_OS::open (this->rendezvous_, flags, 0, sa));
- return this->get_handle () == ACE_INVALID_HANDLE ? -1 : 0;
-}
-
-ACE_FIFO::ACE_FIFO (const ACE_TCHAR *fifo_name,
- int flags,
- int perms,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_FIFO::ACE_FIFO");
- if (this->open (fifo_name, flags, perms, sa) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_FIFO")));
-}
-
-ACE_FIFO::ACE_FIFO (void)
-{
-// ACE_TRACE ("ACE_FIFO::ACE_FIFO");
-}
-
-int
-ACE_FIFO::close (void)
-{
- ACE_TRACE ("ACE_FIFO::close");
- int result = 0;
-
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- result = ACE_OS::close (this->get_handle ());
- this->set_handle (ACE_INVALID_HANDLE);
- }
- return result;
-}
diff --git a/ace/FIFO.h b/ace/FIFO.h
deleted file mode 100644
index fd94e7026bc..00000000000
--- a/ace/FIFO.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* -*- C++ -*- */
-
-//==========================================================================
-/**
- * @file FIFO.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//==========================================================================
-
-
-#ifndef ACE_FIFO_H
-#define ACE_FIFO_H
-#include "ace/pre.h"
-
-#include "ace/IPC_SAP.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_FIFO
- *
- * @brief Abstract base class for UNIX FIFOs
- *
- * UNIX FIFOs are also known Named Pipes, which are totally
- * unrelated to Win32 Named Pipes. If you want to use a local
- * IPC mechanism that will be portable to both UNIX and Win32,
- * take a look at the <ACE_SPIPE_*> classes.
- */
-class ACE_Export ACE_FIFO : public ACE_IPC_SAP
-{
-public:
- /// Open up the named pipe on the <rendezvous> in accordance with the
- /// flags.
- int open (const ACE_TCHAR *rendezvous, int flags, int perms,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Close down the ACE_FIFO without removing the rendezvous point.
- int close (void);
-
- /// Close down the ACE_FIFO and remove the rendezvous point from the
- /// file system.
- int remove (void);
-
- /// Return the local address of this endpoint.
- int get_local_addr (const ACE_TCHAR *&rendezvous) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Make these protected to ensure that the class is "abstract."
- /// Default constructor.
- ACE_FIFO (void);
-
- /// Open up the named pipe on the <rendezvous> in accordance with the
- /// flags.
- ACE_FIFO (const ACE_TCHAR *rendezvous, int flags, int perms,
- LPSECURITY_ATTRIBUTES sa = 0);
-
-private:
- /// Rendezvous point in the file system.
- ACE_TCHAR rendezvous_[MAXPATHLEN + 1];
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/FIFO.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_FIFO_H */
diff --git a/ace/FIFO.i b/ace/FIFO.i
deleted file mode 100644
index d640bb8141f..00000000000
--- a/ace/FIFO.i
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// FIFO.i
-
-ACE_INLINE int
-ACE_FIFO::get_local_addr (const ACE_TCHAR *&r) const
-{
- ACE_TRACE ("ACE_FIFO::get_local_addr");
- r = this->rendezvous_;
- return 0;
-}
-
-ACE_INLINE int
-ACE_FIFO::remove (void)
-{
- ACE_TRACE ("ACE_FIFO::remove");
- int result = this->close ();
- return ACE_OS::unlink (this->rendezvous_) == -1 || result == -1 ? -1 : 0;
-}
diff --git a/ace/FIFO_Recv.cpp b/ace/FIFO_Recv.cpp
deleted file mode 100644
index 7b10a89e017..00000000000
--- a/ace/FIFO_Recv.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// FIFO_Recv.cpp
-// $Id$
-
-#include "ace/FIFO_Recv.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FIFO_Recv.i"
-#endif
-
-ACE_RCSID(ace, FIFO_Recv, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_FIFO_Recv)
-
-void
-ACE_FIFO_Recv::dump (void) const
-{
- ACE_TRACE ("ACE_FIFO_Recv::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_FIFO::dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("aux_handle_ = %d"), this->aux_handle_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-int
-ACE_FIFO_Recv::close (void)
-{
- ACE_TRACE ("ACE_FIFO_Recv::close");
- int result = ACE_FIFO::close ();
-
- if (this->aux_handle_ != ACE_INVALID_HANDLE)
- return ACE_OS::close (this->aux_handle_);
- else
- return result;
-}
-
-// Note that persistent means "open fifo for writing, as well as
-// reading." This ensures that the fifo never gets EOF, even if there
-// aren't any writers at the moment!
-
-int
-ACE_FIFO_Recv::open (const ACE_TCHAR *fifo_name,
- int flags,
- int perms,
- int persistent,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_FIFO_Recv::open");
-
- if (ACE_FIFO::open (fifo_name, ACE_NONBLOCK | flags, perms, sa) == -1)
- return -1;
- else if (this->disable (ACE_NONBLOCK) == -1)
- return -1;
- else if (persistent
- && (this->aux_handle_ = ACE_OS::open (fifo_name, O_WRONLY, 0, sa)) == ACE_INVALID_HANDLE)
- return -1;
- else
- return this->get_handle () == ACE_INVALID_HANDLE ? -1 : 0;
-}
-
-ACE_FIFO_Recv::ACE_FIFO_Recv (void)
- : aux_handle_ (ACE_INVALID_HANDLE)
-{
- ACE_TRACE ("ACE_FIFO_Recv::ACE_FIFO_Recv");
-}
-
-ACE_FIFO_Recv::ACE_FIFO_Recv (const ACE_TCHAR *fifo_name,
- int flags,
- int perms,
- int persistent,
- LPSECURITY_ATTRIBUTES sa)
- : aux_handle_ (ACE_INVALID_HANDLE)
-{
- ACE_TRACE ("ACE_FIFO_Recv::ACE_FIFO_Recv");
-
- if (this->ACE_FIFO_Recv::open (fifo_name,
- flags,
- perms,
- persistent,
- sa) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_FIFO_Recv")));
-}
diff --git a/ace/FIFO_Recv.h b/ace/FIFO_Recv.h
deleted file mode 100644
index e0c9766cd46..00000000000
--- a/ace/FIFO_Recv.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file FIFO_Recv.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//==========================================================================
-
-
-#ifndef ACE_FIFO_RECV_H
-#define ACE_FIFO_RECV_H
-
-#include "ace/pre.h"
-
-#include "ace/FIFO.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/ACE.h"
-
-/**
- * @class ACE_FIFO_Recv
- *
- * @brief Receiver side of the bytestream C++ wrapper for UNIX
- * FIFOs.
- */
-class ACE_Export ACE_FIFO_Recv : public ACE_FIFO
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_FIFO_Recv (void);
-
- /// Open up a bytestream named pipe for reading.
- ACE_FIFO_Recv (const ACE_TCHAR *rendezvous,
- int flags = O_CREAT | O_RDONLY,
- int perms = ACE_DEFAULT_FILE_PERMS,
- int persistent = 1,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Open up a bytestream named pipe for reading.
- int open (const ACE_TCHAR *rendezvous,
- int flags = O_CREAT | O_RDONLY,
- int perms = ACE_DEFAULT_FILE_PERMS,
- int persistent = 1,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Close down the named pipe.
- int close (void);
-
- /// Recv <buf> of up to <len> bytes.
- ssize_t recv (void *buf, size_t len);
-
- /// Recv <buf> of exactly <len> bytes (block until done).
- ssize_t recv_n (void *buf, size_t len);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Auxiliary handle that is used to implement persistent FIFOs.
- ACE_HANDLE aux_handle_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FIFO_Recv.i"
-#endif
-
-#include "ace/post.h"
-
-#endif /* ACE_FIFO_RECV_H */
diff --git a/ace/FIFO_Recv.i b/ace/FIFO_Recv.i
deleted file mode 100644
index 693b2a944fe..00000000000
--- a/ace/FIFO_Recv.i
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// FIFO_Recv.i
-
-ASYS_INLINE ssize_t
-ACE_FIFO_Recv::recv (void *buf, size_t len)
-{
- ACE_TRACE ("ACE_FIFO_Recv::recv");
- return ACE_OS::read (this->get_handle (), (char *) buf, len);
-}
-
-ASYS_INLINE ssize_t
-ACE_FIFO_Recv::recv_n (void *buf, size_t n)
-{
- ACE_TRACE ("ACE_FIFO_Recv::recv_n");
- return ACE::recv_n (this->get_handle (), buf, n);
-}
diff --git a/ace/FIFO_Recv_Msg.cpp b/ace/FIFO_Recv_Msg.cpp
deleted file mode 100644
index 714cc43986f..00000000000
--- a/ace/FIFO_Recv_Msg.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-// FIFO_Recv_Msg.cpp
-// $Id$
-
-#include "ace/FIFO_Recv_Msg.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FIFO_Recv_Msg.i"
-#endif
-
-ACE_RCSID(ace, FIFO_Recv_Msg, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_FIFO_Recv_Msg)
-
-void
-ACE_FIFO_Recv_Msg::dump (void) const
-{
- ACE_TRACE ("ACE_FIFO_Recv_Msg::dump");
- ACE_FIFO_Recv::dump ();
-}
-
-// Note that persistent means "open FIFO for writing, as well as
-// reading." This ensures that the FIFO never gets EOF, even if there
-// aren't any writers at the moment!
-
-int
-ACE_FIFO_Recv_Msg::open (const ACE_TCHAR *fifo_name,
- int flags,
- int perms,
- int persistent,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_FIFO_Recv_Msg::open");
-
- return ACE_FIFO_Recv::open (fifo_name,
- flags,
- perms,
- persistent,
- sa);
-}
-
-ACE_FIFO_Recv_Msg::ACE_FIFO_Recv_Msg (void)
-{
- ACE_TRACE ("ACE_FIFO_Recv_Msg::ACE_FIFO_Recv_Msg");
-}
-
-ACE_FIFO_Recv_Msg::ACE_FIFO_Recv_Msg (const ACE_TCHAR *fifo_name,
- int flags,
- int perms,
- int persistent,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_FIFO_Recv_Msg::ACE_FIFO_Recv_Msg");
-
- if (this->ACE_FIFO_Recv_Msg::open (fifo_name,
- flags,
- perms,
- persistent,
- sa) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_FIFO_Recv_Msg")));
-}
diff --git a/ace/FIFO_Recv_Msg.h b/ace/FIFO_Recv_Msg.h
deleted file mode 100644
index 493ab63e436..00000000000
--- a/ace/FIFO_Recv_Msg.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file FIFO_Recv_Msg.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_FIFO_RECV_MSG_H
-#define ACE_FIFO_RECV_MSG_H
-#include "ace/pre.h"
-
-#include "ace/FIFO_Recv.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_FIFO_Recv_Msg
- *
- * @brief Receiver side for the record oriented C++ wrapper for UNIX FIFOs.
- *
- * This method works slightly differently on platforms with the
- * @c ACE_HAS_STREAM_PIPES configuration setting than those without.
- * With ACE_HAS_STREAM_PIPES, the @c getmsg() system function is used
- * and it preserves message boundaries internally. Without
- * @c ACE_HAS_STREAM_PIPES, the message boundaries are emulated by
- * this class and ACE_FIFO_Send_Msg cooperating. The sending class
- * first writes an integer number of bytes in the message, then the
- * message. ACE_FIFO_Recv_Msg reads the count, then the data.
- * The operational differences occur primarily when a message is larger
- * than what a caller of this class requests. See recv() for details.
- */
-class ACE_Export ACE_FIFO_Recv_Msg : public ACE_FIFO_Recv
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_FIFO_Recv_Msg (void);
-
- /// Open up a record-oriented named pipe for reading.
- ACE_FIFO_Recv_Msg (const ACE_TCHAR *rendezvous,
- int flags = O_CREAT | O_RDONLY,
- int perms = ACE_DEFAULT_FILE_PERMS,
- int persistent = 1,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Open up a record-oriented named pipe for reading.
- int open (const ACE_TCHAR *rendezvous,
- int flags = O_CREAT | O_RDONLY,
- int perms = ACE_DEFAULT_FILE_PERMS,
- int persistent = 1,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Receive a message based on attributes in an ACE_Str_Buf.
- /**
- * @param msg Reference to an ACE_Str_Buf whose @c buf member points
- * to the memory to receive the data and @c maxlen member
- * contains the maximum number of bytes to receive.
- * On return after successfully reading data, the
- * @c len member contains the number of bytes received and
- * placed in the buffer pointed to by @c msg.buf.
- *
- * @retval -1 Error; consult @c errno for specific error number.
- * @return If the @c ACE_HAS_STREAM_PIPES configuration setting is
- * defined, the return value is the number of bytes received
- * in the message and will be the same as @c buf.len.
- * The return value from the @c getmsg() system function
- * is discarded.
- * If @c ACE_HAS_STREAM_PIPES is not defined, the number
- * of bytes in the message read from the FIFO is returned.
- * If the message is larger than the maximum length
- * requested in @c msg.maxlen, the return value reflects
- * the entire message length, and the @c msg.len member
- * reflects how many bytes were actually placed in the
- * caller's buffer. Any part of the message longer than
- * @c msg.maxlen is discarded.
- */
- ssize_t recv (ACE_Str_Buf &msg);
-
- /// Receive a message based on buffer pointer and maximum size.
- /**
- * @param buf Pointer to the memory to receive the data.
- * @param len The maximum number of bytes to receive.
- *
- * @retval -1 Error; consult @c errno for specific error number.
- * @return The number of bytes received in the message. For messages
- * that are larger than the requested maximum size, the
- * behavior is different depending on the @c ACE_HAS_STREAM_PIPES
- * configuration setting. With @c ACE_HAS_STREAM_PIPES,
- * the return value will be the same as @arg len (this is
- * also possible if the message is exactly the same length
- * as @arg len, and the two cases are indistinguishable).
- * Without @c ACE_HAS_STREAM_PIPES, the return value is
- * the total length of the message, including bytes in
- * excess of @arg len. The excess bytes are discarded.
- */
- ssize_t recv (void *buf, size_t len);
-
-#if defined (ACE_HAS_STREAM_PIPES)
- /// Recv <data> and <cntl> message via Stream pipes.
- ssize_t recv (ACE_Str_Buf *data,
- ACE_Str_Buf *cntl,
- int *flags);
-
- /// Recv <data> and <cntl> message via Stream pipes in "band" mode.
- ssize_t recv (int *band,
- ACE_Str_Buf *data,
- ACE_Str_Buf *cntl,
- int *flags);
-#endif /* ACE_HAS_STREAM_PIPES */
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FIFO_Recv_Msg.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_FIFO_RECV_MSG_H */
diff --git a/ace/FIFO_Recv_Msg.i b/ace/FIFO_Recv_Msg.i
deleted file mode 100644
index 8ba99042003..00000000000
--- a/ace/FIFO_Recv_Msg.i
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// FIFO_Recv_Msg.i
-
-ASYS_INLINE ssize_t
-ACE_FIFO_Recv_Msg::recv (ACE_Str_Buf &recv_msg)
-{
- ACE_TRACE ("ACE_FIFO_Recv_Msg::recv");
-#if defined (ACE_HAS_STREAM_PIPES)
- int i = 0;
- if (ACE_OS::getmsg (this->get_handle (),
- (strbuf *) 0,
- (strbuf *) &recv_msg,
- &i) == -1)
- return -1;
- else
- return recv_msg.len;
-#else /* Do the ol' 2-read trick... */
- if (ACE_OS::read (this->get_handle (),
- (char *) &recv_msg.len,
- sizeof recv_msg.len) != sizeof recv_msg.len)
- return -1;
- else
- {
- size_t remaining = ACE_static_cast (size_t, recv_msg.len);
- size_t requested = ACE_static_cast (size_t, recv_msg.maxlen);
- ssize_t recv_len = ACE_OS::read (this->get_handle (),
- (char *) recv_msg.buf,
- ACE_MIN (remaining, requested));
- if (recv_len == -1)
- return -1;
- // Tell caller what's really in the buffer.
- recv_msg.len = ACE_static_cast (int, recv_len);
-
- // If there are more bytes remaining in the message, read them and
- // throw them away. Leaving them in the FIFO would make it difficult
- // to find the start of the next message in the fifo.
- // Since the ACE_HAS_STREAM_PIPES version of this method doesn't
- // return getmsg()'s indication of "data remaining", don't worry about
- // saving the indication here either to read the remainder later.
- size_t total_msg_size = remaining;
- remaining -= recv_len;
- while (remaining > 0)
- {
- const size_t throw_away = 1024;
- char dev_null[throw_away];
- recv_len = ACE_OS::read (this->get_handle (),
- dev_null,
- ACE_MIN (remaining, throw_away));
- if (recv_len == -1)
- break;
- remaining -= recv_len;
- }
- return total_msg_size;
- }
-#endif /* ACE_HAS_STREAM_PIPES */
-}
-
-ASYS_INLINE ssize_t
-ACE_FIFO_Recv_Msg::recv (void *buf, size_t max_len)
-{
- ACE_TRACE ("ACE_FIFO_Recv_Msg::recv");
- ACE_Str_Buf recv_msg ((char *) buf, 0, ACE_static_cast (int, max_len));
-
- return this->recv (recv_msg);
-}
-
-#if defined (ACE_HAS_STREAM_PIPES)
-ASYS_INLINE ssize_t
-ACE_FIFO_Recv_Msg::recv (ACE_Str_Buf *data,
- ACE_Str_Buf *cntl,
- int *flags)
-{
- ACE_TRACE ("ACE_FIFO_Recv_Msg::recv");
- if (ACE_OS::getmsg (this->get_handle (),
- (strbuf *) cntl,
- (strbuf *) data,
- flags) == -1)
- return -1;
- else
- return (cntl == 0 ? 0 : cntl->len) + (data == 0 ? 0 : data->len);
-}
-
-ASYS_INLINE ssize_t
-ACE_FIFO_Recv_Msg::recv (int *band,
- ACE_Str_Buf *data,
- ACE_Str_Buf *cntl,
- int *flags)
-{
- ACE_TRACE ("ACE_FIFO_Recv_Msg::recv");
- if (ACE_OS::getpmsg (this->get_handle (),
- (strbuf *) cntl,
- (strbuf *) data,
- band,
- flags) == -1)
- return -1;
- else
- return (cntl == 0 ? 0 : cntl->len) + (data == 0 ? 0 : data->len);
-}
-#endif /* ACE_HAS_STREAM_PIPES */
diff --git a/ace/FIFO_Send.cpp b/ace/FIFO_Send.cpp
deleted file mode 100644
index a51a16f5f96..00000000000
--- a/ace/FIFO_Send.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-// FIFO_Send.cpp
-// $Id$
-
-#include "ace/FIFO_Send.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FIFO_Send.i"
-#endif
-
-ACE_RCSID(ace, FIFO_Send, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_FIFO_Send)
-
-void
-ACE_FIFO_Send::dump (void) const
-{
- ACE_TRACE ("ACE_FIFO_Send::dump");
- ACE_FIFO::dump ();
-}
-
-ACE_FIFO_Send::ACE_FIFO_Send (void)
-{
-// ACE_TRACE ("ACE_FIFO_Send::ACE_FIFO_Send");
-}
-
-int
-ACE_FIFO_Send::open (const ACE_TCHAR *rendezvous_name,
- int flags,
- int perms,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_FIFO_Send::open");
- return ACE_FIFO::open (rendezvous_name,
- flags | O_WRONLY,
- perms,
- sa);
-}
-
-ACE_FIFO_Send::ACE_FIFO_Send (const ACE_TCHAR *fifo_name,
- int flags,
- int perms,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_FIFO_Send::ACE_FIFO_Send");
- if (this->ACE_FIFO_Send::open (fifo_name,
- flags,
- perms,
- sa) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_FIFO_Send::ACE_FIFO_Send")));
-}
diff --git a/ace/FIFO_Send.h b/ace/FIFO_Send.h
deleted file mode 100644
index 3f553deb88b..00000000000
--- a/ace/FIFO_Send.h
+++ /dev/null
@@ -1,70 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file FIFO_Send.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//==========================================================================
-
-
-#ifndef ACE_FIFO_SEND_H
-#define ACE_FIFO_SEND_H
-
-#include "ace/pre.h"
-
-#include "ace/FIFO.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/ACE.h"
-
-/**
- * @class ACE_FIFO_Send
- *
- * @brief Sender side for the bytestream C++ wrapper for UNIX FIFOs
- */
-class ACE_Export ACE_FIFO_Send : public ACE_FIFO
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_FIFO_Send (void);
-
- /// Open up a bytestream named pipe for writing.
- ACE_FIFO_Send (const ACE_TCHAR *rendezvous,
- int flags = O_WRONLY,
- int perms = ACE_DEFAULT_FILE_PERMS,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Open up a bytestream named pipe for writing.
- int open (const ACE_TCHAR *rendezvous,
- int flags = O_WRONLY,
- int perms = ACE_DEFAULT_FILE_PERMS,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Send <buf> of up to <len> bytes.
- ssize_t send (const void *buf, size_t len);
-
- /// Send <buf> of exactly <len> bytes (block until done).
- ssize_t send_n (const void *buf, size_t len);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FIFO_Send.i"
-#endif
-
-#include "ace/post.h"
-
-#endif /* ACE_FIFO_SEND_H */
diff --git a/ace/FIFO_Send.i b/ace/FIFO_Send.i
deleted file mode 100644
index c7e20eae8d2..00000000000
--- a/ace/FIFO_Send.i
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// FIFO_Send.i
-
-ASYS_INLINE ssize_t
-ACE_FIFO_Send::send (const void *buf, size_t len)
-{
- ACE_TRACE ("ACE_FIFO_Send::send");
- return ACE_OS::write (this->get_handle (), (const char *) buf, len);
-}
-
-ASYS_INLINE ssize_t
-ACE_FIFO_Send::send_n (const void *buf, size_t n)
-{
- ACE_TRACE ("ACE_FIFO_Send::send_n");
- return ACE::send_n (this->get_handle (), buf, n);
-}
diff --git a/ace/FIFO_Send_Msg.cpp b/ace/FIFO_Send_Msg.cpp
deleted file mode 100644
index 8d380c07d5e..00000000000
--- a/ace/FIFO_Send_Msg.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-// $Id$
-
-#include "ace/FIFO_Send_Msg.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FIFO_Send_Msg.i"
-#endif
-
-ACE_RCSID(ace, FIFO_Send_Msg, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_FIFO_Send_Msg)
-
-void
-ACE_FIFO_Send_Msg::dump (void) const
-{
- ACE_TRACE ("ACE_FIFO_Send_Msg::dump");
- ACE_FIFO_Send::dump ();
-}
-
-ssize_t
-ACE_FIFO_Send_Msg::send (const ACE_Str_Buf &send_msg)
-{
- // ACE_TRACE ("ACE_FIFO_Send_Msg::send");
-#if defined (ACE_HAS_STREAM_PIPES)
- if (ACE_OS::putmsg (this->get_handle (),
- (strbuf *) 0,
- (strbuf *) &send_msg,
- 0) == -1)
- return -1;
- else
- return send_msg.len;
-#else
- iovec iov[2];
-
- iov[0].iov_base = (char *) &send_msg.len;
- iov[0].iov_len = sizeof send_msg.len;
-
- iov[1].iov_base = (char *) send_msg.buf;
- iov[1].iov_len = ACE_static_cast (size_t, send_msg.len);
-
- ssize_t sent = ACE_OS::writev (this->get_handle (), iov, 2);
- if (sent > 0)
- sent -= iov[0].iov_len; // Don't count the length we added.
- return sent;
-#endif /* ACE_HAS_STREAM_PIPES */
-}
-
-ACE_FIFO_Send_Msg::ACE_FIFO_Send_Msg (void)
-{
-// ACE_TRACE ("ACE_FIFO_Send_Msg::ACE_FIFO_Send_Msg");
-}
-
-int
-ACE_FIFO_Send_Msg::open (const ACE_TCHAR *fifo_name,
- int flags,
- int perms,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_FIFO_Send_Msg::open");
- return ACE_FIFO_Send::open (fifo_name, flags | O_WRONLY, perms, sa);
-}
-
-ACE_FIFO_Send_Msg::ACE_FIFO_Send_Msg (const ACE_TCHAR *fifo_name,
- int flags,
- int perms,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_FIFO_Send_Msg::ACE_FIFO_Send_Msg");
- if (this->ACE_FIFO_Send_Msg::open (fifo_name, flags, perms, sa) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_FIFO_Send_Msg")));
-}
diff --git a/ace/FIFO_Send_Msg.h b/ace/FIFO_Send_Msg.h
deleted file mode 100644
index cc4ae785e41..00000000000
--- a/ace/FIFO_Send_Msg.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file FIFO_Send_Msg.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_FIFO_SEND_MSG_H
-#define ACE_FIFO_SEND_MSG_H
-#include "ace/pre.h"
-
-#include "ace/FIFO_Send.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_FIFO_Send_Msg
- *
- * @brief Sender side for the Record oriented C++ wrapper for UNIX
- * FIFOs.
- */
-class ACE_Export ACE_FIFO_Send_Msg : public ACE_FIFO_Send
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_FIFO_Send_Msg (void);
-
- /// Open up a record-oriented named pipe for writing.
- ACE_FIFO_Send_Msg (const ACE_TCHAR *rendezvous,
- int flags = O_WRONLY,
- int perms = ACE_DEFAULT_FILE_PERMS,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Open up a record-oriented named pipe for writing.
- int open (const ACE_TCHAR *rendezvous,
- int flags = O_WRONLY,
- int perms = ACE_DEFAULT_FILE_PERMS,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Send <buf> of up to <len> bytes.
- ssize_t send (const ACE_Str_Buf &msg);
-
- /// Send <buf> of exactly <len> bytes (block until done).
- ssize_t send (const void *buf, size_t len);
-
-#if defined (ACE_HAS_STREAM_PIPES)
- /// Send <data> and <cntl> message via Stream pipes.
- ssize_t send (const ACE_Str_Buf *data,
- const ACE_Str_Buf *cntl = 0,
- int flags = 0);
-
- /// Send <data> and <cntl> message via Stream pipes in "band" mode.
- ssize_t send (int band,
- const ACE_Str_Buf *data,
- const ACE_Str_Buf *cntl = 0,
- int flags = MSG_BAND);
-#endif /* ACE_HAS_STREAM_PIPES */
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FIFO_Send_Msg.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_FIFO_SEND_MSG_H */
diff --git a/ace/FIFO_Send_Msg.i b/ace/FIFO_Send_Msg.i
deleted file mode 100644
index 6e420151c39..00000000000
--- a/ace/FIFO_Send_Msg.i
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// FIFO_Send_Msg.i
-
-ASYS_INLINE ssize_t
-ACE_FIFO_Send_Msg::send (const void *buf, size_t len)
-{
- ACE_TRACE ("ACE_FIFO_Send_Msg::send");
- ACE_Str_Buf send_msg ((char *) buf, ACE_static_cast (int, len));
-
- return this->send (send_msg);
-}
-
-#if defined (ACE_HAS_STREAM_PIPES)
-ASYS_INLINE ssize_t
-ACE_FIFO_Send_Msg::send (const ACE_Str_Buf *data,
- const ACE_Str_Buf *cntl,
- int flags)
-{
- ACE_TRACE ("ACE_FIFO_Send_Msg::send");
- if (ACE_OS::putmsg (this->get_handle (),
- (strbuf *) cntl,
- (strbuf *) data,
- flags) == -1)
- return-1;
- else
- return (cntl == 0 ? 0 : cntl->len) + (data == 0 ? 0 : data->len);
-}
-
-ASYS_INLINE ssize_t
-ACE_FIFO_Send_Msg::send (int band,
- const ACE_Str_Buf *data,
- const ACE_Str_Buf *cntl,
- int flags)
-{
- ACE_TRACE ("ACE_FIFO_Send_Msg::send");
-
- if (ACE_OS::putpmsg (this->get_handle (),
- (strbuf *) cntl,
- (strbuf *) data,
- band,
- flags) == -1)
- return -1;
- else
- return (cntl == 0 ? 0 : cntl->len) + (data == 0 ? 0 : data->len);
-}
-#endif /* ACE_HAS_STREAM_PIPES */
diff --git a/ace/FILE.cpp b/ace/FILE.cpp
deleted file mode 100644
index ea5c7b950ec..00000000000
--- a/ace/FILE.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-// FILE.cpp
-// $Id$
-
-/* Defines the member functions for the base class of the ACE_IO_SAP
- ACE_FILE abstraction. */
-
-#include "ace/FILE.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FILE.i"
-#endif
-
-ACE_RCSID(ace, FILE, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_FILE)
-
-void
-ACE_FILE::dump (void) const
-{
- ACE_TRACE ("ACE_FILE::dump");
- ACE_IO_SAP::dump ();
-}
-
-// This is the do-nothing constructor.
-
-ACE_FILE::ACE_FILE (void)
-{
- ACE_TRACE ("ACE_FILE::ACE_FILE");
-}
-
-// Close the file
-
-int
-ACE_FILE::close (void)
-{
- ACE_TRACE ("ACE_FILE::close");
- int result = 0;
-
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- result = ACE_OS::close (this->get_handle ());
- this->set_handle (ACE_INVALID_HANDLE);
- }
- return result;
-}
-
-int
-ACE_FILE::get_info (ACE_FILE_Info *finfo)
-{
- ACE_TRACE ("ACE_FILE::get_info");
- ACE_stat filestatus;
-
- int result = ACE_OS::fstat (this->get_handle (),
- &filestatus);
-
- if (result == 0)
- {
- finfo->mode_ = filestatus.st_mode;
- finfo->nlink_ = filestatus.st_nlink;
- finfo->size_ = filestatus.st_size;
- }
-
- return result;
-}
-
-int
-ACE_FILE::get_info (ACE_FILE_Info &finfo)
-{
- ACE_TRACE ("ACE_FILE::get_info");
-
- return this->get_info (&finfo);
-}
-
-int
-ACE_FILE::truncate (off_t length)
-{
- ACE_TRACE ("ACE_FILE::truncate");
- return ACE_OS::ftruncate (this->get_handle(), length);
-}
-
-off_t
-ACE_FILE::seek (off_t offset, int startpos)
-{
- return ACE_OS::lseek (this->get_handle (),
- offset,
- startpos);
-}
-
-off_t
-ACE_FILE::position (long offset, int startpos)
-{
- ACE_TRACE ("ACE_FILE::position");
- return this->seek (offset, startpos);
-}
-
-off_t
-ACE_FILE::tell (void)
-{
- ACE_TRACE ("ACE_FILE::tell");
- return ACE_OS::lseek (this->get_handle (), 0, SEEK_CUR);
-}
-
-off_t
-ACE_FILE::position (void)
-{
- ACE_TRACE ("ACE_FILE::position");
- return this->tell ();
-}
-
-// Return the local endpoint address.
-
-int
-ACE_FILE::get_local_addr (ACE_Addr &addr) const
-{
- ACE_TRACE ("ACE_FILE::get_local_addr");
-
- // Perform the downcast since <addr> had better be an
- // <ACE_FILE_Addr>.
- ACE_FILE_Addr *file_addr =
- ACE_dynamic_cast (ACE_FILE_Addr *, &addr);
-
- if (file_addr == 0)
- return -1;
- else
- {
- *file_addr = this->addr_;
- return 0;
- }
-}
-
-// Return the same result as <get_local_addr>.
-
-int
-ACE_FILE::get_remote_addr (ACE_Addr &addr) const
-{
- ACE_TRACE ("ACE_FILE::get_remote_addr");
-
- return this->get_local_addr (addr);
-}
-
-int
-ACE_FILE::remove (void)
-{
- ACE_TRACE ("ACE_FILE::remove");
-
- this->close ();
- return ACE_OS::unlink (this->addr_.get_path_name ());
-}
-
-int
-ACE_FILE::unlink (void)
-{
- ACE_TRACE ("ACE_FILE::unlink");
-
- return ACE_OS::unlink (this->addr_.get_path_name ());
-}
diff --git a/ace/FILE.h b/ace/FILE.h
deleted file mode 100644
index 6a0a9dcae9c..00000000000
--- a/ace/FILE.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file FILE.h
- *
- * $Id$
- *
- * @author Gerhard Lenzer
- */
-//=============================================================================
-
-#ifndef ACE_FILE_H
-#define ACE_FILE_H
-#include "ace/pre.h"
-
-#include "ace/IO_SAP.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/FILE_Addr.h"
-
-// The following is necessary since many C++ compilers don't support
-// typedef'd types inside of classes used as formal template
-// arguments... ;-(. Luckily, using the C++ preprocessor I can hide
-// most of this nastiness!
-
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-#define ACE_FILE_CONNECTOR ACE_FILE_Connector
-#define ACE_FILE_STREAM ACE_FILE_IO
-#else /* TEMPLATES are broken (must be a cfront-based compiler...) */
-#define ACE_FILE_CONNECTOR ACE_FILE_Connector, ACE_FILE_Addr
-#define ACE_FILE_STREAM ACE_FILE_IO, ACE_FILE_Addr
-#endif /* ACE_TEMPLATE_TYPEDEFS */
-
-/**
- * @class ACE_FILE_Info
- *
- * @brief Abstracts basic OS FILE information.
- */
-class ACE_Export ACE_FILE_Info
-{
-public:
- /// Mode of file
- mode_t mode_;
-
- /// No of links
- nlink_t nlink_;
-
- /// Size of file
- off_t size_;
-};
-
-/**
- * @class ACE_FILE
- *
- * @brief Defines the core methods of the ACE_FILE abstraction.
- */
-class ACE_Export ACE_FILE : public ACE_IO_SAP
-{
-public:
- /// Close the ACE_FILE handle without removing the ACE_FILE from
- /// the file system.
- int close (void);
-
- /// Close and remove the ACE_FILE from the file system.
- int remove (void);
-
- /// Remove the ACE_FILE from the file system without closing the
- /// ACE_FILE handle.
- int unlink (void);
-
- /// Get information on this ACE_FILE.
- int get_info (ACE_FILE_Info *finfo);
-
- /// Get information on this <ACE_FILE>.
- int get_info (ACE_FILE_Info &finfo);
-
- /// Set filesize to length byte.
- int truncate (off_t length);
-
- /**
- * Sets the file pointer as follows:
- * o If <whence> is <SEEK_SET>, the pointer is set to <offset>
- * bytes.
- *
- * o If <whence> is <SEEK_CUR>, the pointer is set to its
- * current location plus <offset>.
- *
- * o If <whence> is <SEEK_END>, the pointer is set to the size
- * of the file plus offset.
- * Same as <seek>, but <position> is deprecated.
- */
- off_t seek (off_t offset,
- int whence = SEEK_CUR);
- off_t position (long offset, int startpos);
-
- /// Return an offset for the file handle.
- off_t tell (void);
-
- /**
- * @deprecated
- * Same as tell(), but position() is deprecated.
- */
- off_t position (void);
-
- /**
- * Disable signal @a signum
- * This is here to prevent Win32 from
- * disabling SPIPE using socket calls
- */
- int disable (int signum) const ;
-
- /// Return the local endpoint address in the referenced ACE_Addr.
- /// Returns 0 if successful, else -1.
- int get_local_addr (ACE_Addr &) const;
-
- /// Return the same thing as get_local_addr().
- int get_remote_addr (ACE_Addr &) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Ensure that this class is only created by the
- /// ACE_FILE_Connector.
- ACE_FILE (void);
-
- /// File we are "connected" with...
- ACE_FILE_Addr addr_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FILE.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-#endif /* ACE_FILE_H */
diff --git a/ace/FILE.i b/ace/FILE.i
deleted file mode 100644
index cf1f4986479..00000000000
--- a/ace/FILE.i
+++ /dev/null
@@ -1,16 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// FILE.i
-
-ASYS_INLINE int
-ACE_FILE::disable (int signum) const
-{
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG (signum) ;
- return 0 ;
-#else /* ACE_WIN32 */
- return ACE_IO_SAP::disable (signum) ;
-#endif /* ACE_WIN32 */
-}
-
diff --git a/ace/FILE_Addr.cpp b/ace/FILE_Addr.cpp
deleted file mode 100644
index bac74894feb..00000000000
--- a/ace/FILE_Addr.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// $Id$
-
-#include "ace/FILE_Addr.h"
-#include "ace/Lib_Find.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/FILE_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, FILE_Addr, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_FILE_Addr)
-
-ACE_FILE_Addr::ACE_FILE_Addr (void)
- : ACE_Addr (AF_FILE, sizeof this->filename_ / sizeof (ACE_TCHAR))
-{
- this->filename_[0] = '\0';
-}
-
-int
-ACE_FILE_Addr::set (const ACE_FILE_Addr &sa)
-{
- if (sa.get_type () == AF_ANY)
- {
-#if defined (ACE_DEFAULT_TEMP_FILE)
- // Create a temporary file.
- ACE_OS::strcpy (this->filename_,
- ACE_DEFAULT_TEMP_FILE);
-#else /* ACE_DEFAULT_TEMP_FILE */
- if (ACE_Lib_Find::get_temp_dir (this->filename_,
- MAXPATHLEN - 15) == -1)
- // -15 for ace-file-XXXXXX
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Temporary path too long, ")
- ACE_LIB_TEXT ("defaulting to current directory\n")));
- this->filename_[0] = 0;
- }
-
- // Add the filename to the end
- ACE_OS::strcat (this->filename_, ACE_LIB_TEXT ("ace-fileXXXXXX"));
-
-#endif /* ACE_DEFAULT_TEMP_FILE */
-
- if (ACE_OS::mktemp (this->filename_) == 0)
- return -1;
- this->base_set (AF_FILE,
- ACE_static_cast (int,
- ACE_OS::strlen (this->filename_) + 1));
- }
- else
- {
- (void) ACE_OS::strsncpy (this->filename_,
- sa.filename_,
- sa.get_size ());
-
- this->base_set (sa.get_type (),
- sa.get_size ());
- }
- return 0;
-}
-
-// Copy constructor.
-
-ACE_FILE_Addr::ACE_FILE_Addr (const ACE_FILE_Addr &sa)
- : ACE_Addr (AF_FILE, sizeof this->filename_)
-{
- this->set (sa);
-}
-
-int
-ACE_FILE_Addr::set (const ACE_TCHAR *filename)
-{
- this->ACE_Addr::base_set (AF_FILE,
- ACE_static_cast (int,
- ACE_OS::strlen (filename) + 1));
- (void) ACE_OS::strsncpy (this->filename_,
- filename,
- sizeof this->filename_ / sizeof (ACE_TCHAR));
- return 0;
-}
-
-ACE_FILE_Addr &
-ACE_FILE_Addr::operator= (const ACE_FILE_Addr &sa)
-{
- if (this != &sa)
- this->set (sa);
- return *this;
-}
-
-// Create a ACE_Addr from a ACE_FILE pathname.
-
-ACE_FILE_Addr::ACE_FILE_Addr (const ACE_TCHAR *filename)
-{
- this->set (filename);
-}
-
-int
-ACE_FILE_Addr::addr_to_string (ACE_TCHAR *s, size_t len) const
-{
- ACE_OS::strsncpy (s, this->filename_, len);
- return 0;
-}
-
-void
-ACE_FILE_Addr::dump (void) const
-{
- ACE_TRACE ("ACE_FILE_Addr::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("filename_ = %s"), this->filename_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/FILE_Addr.h b/ace/FILE_Addr.h
deleted file mode 100644
index b0307e6f856..00000000000
--- a/ace/FILE_Addr.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file FILE_Addr.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_FILE_ADDR_H
-#define ACE_FILE_ADDR_H
-#include "ace/pre.h"
-
-#include "ace/Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Flag_Manip.h"
-
-/**
- * @class ACE_FILE_Addr
- *
- * @brief Defines the FILE address family address format.
- */
-class ACE_Export ACE_FILE_Addr : public ACE_Addr
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_FILE_Addr (void);
-
- /// Copy constructor.
- ACE_FILE_Addr (const ACE_FILE_Addr &sa);
-
- /// Acts like a copy constructor. If <sa> == ACE_Addr::sap_any then
- /// create a temporary filename using <ACE_OS::mktemp>.
- int set (const ACE_FILE_Addr &sa);
-
- /// Create a ACE_FILE_Addr from a pathname.
- ACE_EXPLICIT ACE_FILE_Addr (const ACE_TCHAR *filename);
-
- /// Create a ACE_FILE_Addr from a pathname.
- int set (const ACE_TCHAR *filename);
-
- /// Assignment operator.
- ACE_FILE_Addr &operator= (const ACE_FILE_Addr &);
-
- /// Return a pointer to the address.
- virtual void *get_addr (void) const;
-
- /// Transform the current address into string format.
- virtual int addr_to_string (ACE_TCHAR *addr, size_t) const;
-
- /// Compare two addresses for equality.
- int operator == (const ACE_FILE_Addr &SAP) const;
-
- /// Compare two addresses for inequality.
- int operator != (const ACE_FILE_Addr &SAP) const;
-
- /// Return the path name used for the rendezvous point.
- const ACE_TCHAR *get_path_name (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Name of the file.
- ACE_TCHAR filename_[MAXNAMLEN + 1];
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/FILE_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_FILE_ADDR_H */
diff --git a/ace/FILE_Addr.i b/ace/FILE_Addr.i
deleted file mode 100644
index 6acce0515b8..00000000000
--- a/ace/FILE_Addr.i
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// FILE_Addr.i
-
-// Do nothing constructor.
-
-// Transform the current address into string format.
-
-#include "ace/SString.h"
-
-// Return the address.
-
-ACE_INLINE void *
-ACE_FILE_Addr::get_addr (void) const
-{
- return (void *) &this->filename_;
-}
-
-// Compare two addresses for equality.
-
-ACE_INLINE int
-ACE_FILE_Addr::operator == (const ACE_FILE_Addr &sap) const
-{
- return ACE_OS::strcmp (this->filename_, sap.filename_) == 0;
-}
-
-// Compare two addresses for inequality.
-
-ACE_INLINE int
-ACE_FILE_Addr::operator != (const ACE_FILE_Addr &sap) const
-{
- return !((*this) == sap); // This is lazy, of course... ;-)
-}
-
-// Return the path name used for the rendezvous point.
-
-ACE_INLINE const ACE_TCHAR *
-ACE_FILE_Addr::get_path_name (void) const
-{
- return this->filename_;
-}
-
diff --git a/ace/FILE_Connector.cpp b/ace/FILE_Connector.cpp
deleted file mode 100644
index d858fc68c5f..00000000000
--- a/ace/FILE_Connector.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-// FILE_Connector.cpp
-// $Id$
-
-#include "ace/FILE_Connector.h"
-#include "ace/Handle_Ops.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FILE_Connector.i"
-#endif
-
-ACE_RCSID(ace, FILE_Connector, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_FILE_Connector)
-
-void
-ACE_FILE_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_FILE_Connector::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_FILE_Connector::ACE_FILE_Connector (void)
-{
- ACE_TRACE ("ACE_FILE_Connector::ACE_FILE_Connector");
-}
-
-int
-ACE_FILE_Connector::connect (ACE_FILE_IO &new_io,
- const ACE_FILE_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &,
- int,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_FILE_Connector::connect");
- ACE_ASSERT (new_io.get_handle () == ACE_INVALID_HANDLE);
-
- ACE_HANDLE handle = ACE_INVALID_HANDLE;
-
- // Check to see if caller has requested that we create the filename.
- if (ACE_reinterpret_cast (const ACE_Addr &,
- ACE_const_cast (ACE_FILE_Addr &,
- remote_sap)) == ACE_Addr::sap_any)
- {
- // Create a new temporary file.
-#ifdef ACE_LACKS_MKSTEMP
- new_io.addr_ =
- ACE_FILE_Addr (ACE_sap_any_cast (ACE_FILE_Addr &)); // class copy.
-#else
- // Use ACE_OS::mkstemp() if it is available since it avoids a
- // race condition, and subsequently a security hole due to that
- // race condition (specifically, a denial-of-service attack).
- //
- // However, using mkstemp() prevents us from doing a timed open
- // since it opens the file for us. Better to avoid the race
- // condition.
- char filename[] = "ace-file-XXXXXX";
-
- handle = ACE_OS::mkstemp (filename); // mkstemp() replaces "XXXXXX"
-
- if (handle == ACE_INVALID_HANDLE
- || new_io.addr_.set (filename) != 0)
- return -1;
-
- new_io.set_handle (handle);
-
- return 0;
-#endif /* ACE_LACKS_MKSTEMP */
- }
- else
- new_io.addr_ = remote_sap; // class copy.
-
- handle = ACE_Handle_Ops::handle_timed_open (timeout,
- new_io.addr_.get_path_name (),
- flags,
- perms);
-
- new_io.set_handle (handle);
- return handle == ACE_INVALID_HANDLE ? -1 : 0;
-}
diff --git a/ace/FILE_Connector.h b/ace/FILE_Connector.h
deleted file mode 100644
index 859872b45d1..00000000000
--- a/ace/FILE_Connector.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file FILE_Connector.h
- *
- * $Id$
- *
- * @author Doug Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_FILE_CONNECTOR_H
-#define ACE_FILE_CONNECTOR_H
-#include "ace/pre.h"
-
-#include "ace/FILE_IO.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_FILE_Connector
- *
- * @brief Defines an active connection factory for the ACE_FILE wrappers.
- *
- * Note that the O_APPEND flag is only partly supported on Win32. If
- * you specify O_APPEND, then the file pointer will be positioned at
- * the end of the file initially during open, but it is not
- * re-positioned at the end prior to each write, as specified by
- * POSIX. This is generally good enough for typical situations, but
- * it is ``not quite right'' in its semantics.
- */
-class ACE_Export ACE_FILE_Connector
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_FILE_Connector (void);
-
- /**
- * Actively ``connect'' and produce a <new_io> <ACE_FILE_IO> object
- * if things go well. The <remote_sap> is the file that we are
- * trying to create/open. If it's the default value of
- * <ACE_Addr::sap_any> then the user is letting the OS create the
- * filename (via <ACE_OS::mktemp>). The <timeout> is the amount of
- * time to wait to create/open the file. If it's 0 then we block
- * indefinitely. If *timeout == {0, 0} then the file is created
- * using non-blocking mode. In this case, if the create/open can't
- * be done immediately the value of -1 is returned with <errno ==
- * EWOULDBLOCK>. If *timeout > {0, 0} then this is the maximum amount of
- * time to wait before timing out. If the time expires before the
- * connection is made <errno == ETIME>. The <local_sap> and
- * <reuse_addr> parameters are ignored. The <flags> and <perms>
- * arguments are passed down to the <ACE_OS::open> method.
- */
- ACE_FILE_Connector (ACE_FILE_IO &new_io,
- const ACE_FILE_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = O_RDWR | O_CREAT,
- int perms = ACE_DEFAULT_FILE_PERMS);
-
- /**
- * Actively ``connect'' and produce a <new_io> <ACE_FILE_IO> object
- * if things go well. The <remote_sap> is the file that we are
- * trying to create/open. If it's the default value of
- * <ACE_Addr::sap_any> then the user is letting the OS create the
- * filename (via <ACE_OS::mktemp>). The <timeout> is the amount of
- * time to wait to create/open the file. If it's 0 then we block
- * indefinitely. If *timeout == {0, 0} then the file is created
- * using non-blocking mode. In this case, if the create/open can't
- * be done immediately the value of -1 is returned with <errno ==
- * EWOULDBLOCK>. If *timeout > {0, 0} then this is the maximum amount of
- * time to wait before timing out. If the time expires before the
- * connection is made <errno == ETIME>. The <local_sap> and
- * <reuse_addr> parameters are ignored. The <flags> and <perms>
- * arguments are passed down to the <ACE_OS::open> method.
- */
- int connect (ACE_FILE_IO &new_io,
- const ACE_FILE_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = O_RDWR | O_CREAT,
- int perms = ACE_DEFAULT_FILE_PERMS);
-
- /// Resets any event associations on this handle
- int reset_new_handle (ACE_HANDLE handle);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- // = Meta-type "trait" information.
- typedef ACE_FILE_Addr PEER_ADDR;
- typedef ACE_FILE_IO PEER_STREAM;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FILE_Connector.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_FILE_CONNECTOR_H */
diff --git a/ace/FILE_Connector.i b/ace/FILE_Connector.i
deleted file mode 100644
index ccb5985899f..00000000000
--- a/ace/FILE_Connector.i
+++ /dev/null
@@ -1,33 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// FILE_Connector.i
-
-// Creates a Local ACE_FILE.
-
-ASYS_INLINE
-ACE_FILE_Connector::ACE_FILE_Connector (ACE_FILE_IO &new_io,
- const ACE_FILE_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_FILE_Connector::ACE_FILE_Connector");
- if (this->connect (new_io, remote_sap, timeout, local_sap,
- reuse_addr, flags, perms) == ACE_IO_SAP::INVALID_HANDLE
- && timeout != 0 && !(errno == EWOULDBLOCK || errno == ETIME))
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("address %s, %p\n"),
- remote_sap.get_path_name (),
- ACE_LIB_TEXT ("ACE_FILE_IO")));
-}
-
-ASYS_INLINE int
-ACE_FILE_Connector::reset_new_handle (ACE_HANDLE handle)
-{
- ACE_UNUSED_ARG (handle);
- // Nothing to do here since the handle is not a socket
- return 0;
-}
diff --git a/ace/FILE_IO.cpp b/ace/FILE_IO.cpp
deleted file mode 100644
index 3ae1137bd71..00000000000
--- a/ace/FILE_IO.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-// FILE_IO.cpp
-// $Id$
-
-#include "ace/FILE_IO.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FILE_IO.i"
-#endif
-
-ACE_RCSID(ace, FILE_IO, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_FILE_IO)
-
-void
-ACE_FILE_IO::dump (void) const
-{
- ACE_TRACE ("ACE_FILE_IO::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->addr_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Simple-minded do nothing constructor.
-
-ACE_FILE_IO::ACE_FILE_IO (void)
-{
- ACE_TRACE ("ACE_FILE_IO::ACE_FILE_IO");
-}
-
-// Send N char *ptrs and int lengths. Note that the char *'s precede
-// the ints (basically, an varargs version of writev). The count N is
-// the *total* number of trailing arguments, *not* a couple of the
-// number of tuple pairs!
-
-ssize_t
-ACE_FILE_IO::send (size_t n, ...) const
-{
- ACE_TRACE ("ACE_FILE_IO::send");
- va_list argp;
- int total_tuples = (ACE_static_cast (int, n)) / 2;
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (int i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, int);
- }
-
- ssize_t result = ACE_OS::writev (this->get_handle (),
- iovp,
- total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
-}
-
-// This is basically an interface to ACE_OS::readv, that doesn't use
-// the struct iovec explicitly. The ... can be passed as an arbitrary
-// number of (char *ptr, int len) tuples. However, the count N is the
-// *total* number of trailing arguments, *not* a couple of the number
-// of tuple pairs!
-
-ssize_t
-ACE_FILE_IO::recv (size_t n, ...) const
-{
- ACE_TRACE ("ACE_FILE_IO::recv");
- va_list argp;
- int total_tuples = ACE_static_cast (int, (n / 2));
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (int i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, int);
- }
-
- ssize_t result = ACE_OS::readv (this->get_handle (),
- iovp,
- total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
-}
-
-// Allows a client to read from a file without having to provide a
-// buffer to read. This method determines how much data is in the
-// file, allocates a buffer of this size, reads in the data, and
-// returns the number of bytes read.
-
-ssize_t
-ACE_FILE_IO::recvv (iovec *io_vec)
-{
- ACE_TRACE ("ACE_FILE_IO::recvv");
-
- io_vec->iov_base = 0;
- long length = ACE_OS::filesize (this->get_handle ());
-
- if (length > 0)
- {
- ACE_NEW_RETURN (io_vec->iov_base,
- char[length],
- -1);
- io_vec->iov_len = this->recv_n (io_vec->iov_base,
- length);
- return io_vec->iov_len;
- }
- else
- return length;
-}
diff --git a/ace/FILE_IO.h b/ace/FILE_IO.h
deleted file mode 100644
index d7bfcf63290..00000000000
--- a/ace/FILE_IO.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file FILE_IO.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_FILE_IO_H
-#define ACE_FILE_IO_H
-#include "ace/pre.h"
-
-#include "ace/FILE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/FILE_Addr.h"
-
-// Used in the FILE_IO.h file...
-#include "ace/ACE.h"
-
-// Forward decl.
-class ACE_Message_Block;
-
-/**
- * @class ACE_FILE_IO
- *
- * @brief Read/Write operations on Files
- */
-class ACE_Export ACE_FILE_IO : public ACE_FILE
-{
-public:
- friend class ACE_FILE_Connector;
-
- // = Initialization method.
- /// Default constructor.
- ACE_FILE_IO (void);
-
- /// send upto <n> bytes in <buf>.
- ssize_t send (const void *buf, size_t n) const;
-
- /// Recv upto <n> bytes in <buf>.
- ssize_t recv (void *buf, size_t n) const;
-
- /// Send n bytes, keep trying until n are sent.
- ssize_t send_n (const void *buf, size_t n) const;
-
- /// Send all the <message_block>s chained through their <next> and
- /// <cont> pointers. This call uses the underlying OS gather-write
- /// operation to reduce the domain-crossing penalty.
- ssize_t send_n (const ACE_Message_Block *message_block,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0);
-
- /// Recv n bytes, keep trying until n are received.
- ssize_t recv_n (void *buf, size_t n) const;
-
-#if defined (ACE_HAS_STREAM_PIPES)
- /// Send bytes via STREAM pipes.
- ssize_t send (const ACE_Str_Buf *cntl,
- const ACE_Str_Buf *data,
- int flags = 0) const;
-
- /// Recv bytes via STREAM pipes.
- ssize_t recv (ACE_Str_Buf *cntl,
- ACE_Str_Buf *data,
- int *flags) const;
-
- /// Send bytes via STREAM pipes using "band" mode.
- ssize_t send (const ACE_Str_Buf *cntl,
- const ACE_Str_Buf *data,
- int band,
- int flags) const;
-
- /// Recv bytes via STREAM pipes using "band" mode.
- ssize_t recv (ACE_Str_Buf *cntl,
- ACE_Str_Buf *data,
- int *band,
- int *flags) const;
-
-#endif /* ACE_HAS_STREAM_PIPES */
-
- /// Send iovecs via <::writev>.
- ssize_t send (const iovec iov[], int n) const;
-
- /// Recv iovecs via <::readv>.
- ssize_t recv (iovec iov[], int n) const;
-
- /**
- * Send N char *ptrs and int lengths. Note that the char *'s
- * precede the ints (basically, an varargs version of writev). The
- * count N is the *total* number of trailing arguments, *not* a
- * couple of the number of tuple pairs!
- */
- ssize_t send (size_t n, ...) const;
-
- /**
- * This is an interface to ::readv, that doesn't use the struct
- * iovec explicitly. The ... can be passed as an arbitrary number
- * of (char *ptr, int len) tuples. However, the count N is the
- * *total* number of trailing arguments, *not* a couple of the
- * number of tuple pairs!
- */
- ssize_t recv (size_t n, ...) const;
-
- /// Send <n> bytes via Win32 WriteFile using overlapped I/O.
- ssize_t send (const void *buf,
- size_t n,
- ACE_OVERLAPPED *overlapped) const;
-
- /// Recv <n> bytes via Win32 ReadFile using overlapped I/O.
- ssize_t recv (void *buf,
- size_t n,
- ACE_OVERLAPPED *overlapped) const;
-
- /// Send an <iovec> of size <n> to the file.
- ssize_t sendv (const iovec iov[],
- int n) const;
-
- /**
- * Allows a client to read from a file without having to provide a
- * buffer to read. This method determines how much data is in the
- * file, allocates a buffer of this size, reads in the data, and
- * returns the number of bytes read. The caller is responsible for
- * deleting the member in the <iov_base> field of <io_vec> using
- * delete [] io_vec->iov_base.
- */
- ssize_t recvv (iovec *io_vec);
-
- /// Send an <iovec> of size <n> to the file. Will block until all
- /// bytes are sent or an error occurs.
- ssize_t sendv_n (const iovec iov[],
- int n) const;
-
- /// Receive an <iovec> of size <n> to the file.
- ssize_t recvv_n (iovec iov[],
- int n) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- // = Meta-type info
- typedef ACE_FILE_Addr PEER_ADDR;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/FILE_IO.i"
-#endif /* !defined (ACE_LACKS_INLINE_FUNCTIONS) */
-
-#include "ace/post.h"
-#endif /* ACE_FILE_IO_H */
diff --git a/ace/FILE_IO.i b/ace/FILE_IO.i
deleted file mode 100644
index c987b604413..00000000000
--- a/ace/FILE_IO.i
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// FILE_IO.i
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::sendv_n (const iovec iov[], int n) const
-{
- ACE_TRACE ("ACE_FILE_IO::sendv_n");
- return ACE::writev_n (this->get_handle (),
- iov,
- n);
-}
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::send_n (const ACE_Message_Block *message_block,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred)
-{
- ACE_TRACE ("ACE_FILE_IO::send_n");
- ACE_UNUSED_ARG (timeout);
- return ACE::write_n (this->get_handle (),
- message_block,
- bytes_transferred);
-}
-
-// Recv an n byte message from the file.
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::recvv_n (iovec iov[], int n) const
-{
- ACE_TRACE ("ACE_FILE_IO::recvv_n");
- // @@ Carlos, can you please update this to call the
- // new ACE::recvv_n() method that you write?
- return ACE_OS::readv (this->get_handle (),
- iov,
- n);
-}
-
-// Send an <iovec> of size <n> to the file.
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::sendv (const iovec iov[], int n) const
-{
- ACE_TRACE ("ACE_FILE_IO::sendv");
- return ACE_OS::writev (this->get_handle (), iov, n);
-}
-
-// Send exactly N bytes from BUF to this file. Keeping trying until
-// this many bytes are sent.
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::send_n (const void *buf, size_t n) const
-{
- ACE_TRACE ("ACE_FILE_IO::send_n");
- return ACE::write_n (this->get_handle (), buf, n);
-}
-
-// Receive exactly N bytes from this file into BUF. Keep trying until
-// this many bytes are received.
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::recv_n (void *buf, size_t n) const
-{
- ACE_TRACE ("ACE_FILE_IO::recv_n");
- return ACE::read_n (this->get_handle (), buf, n);
-}
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::send (const void *buf, size_t n) const
-{
- ACE_TRACE ("ACE_FILE_IO::send");
- return ACE_OS::write (this->get_handle (), (const char *) buf, n);
-}
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::recv (void *buf, size_t n) const
-{
- ACE_TRACE ("ACE_FILE_IO::recv");
- return ACE_OS::read (this->get_handle (), (char *) buf, n);
-}
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::send (const iovec iov[], int n) const
-{
- ACE_TRACE ("ACE_FILE_IO::send");
- return ACE_OS::writev (this->get_handle (), iov, n);
-}
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::recv (iovec iov[], int n) const
-{
- ACE_TRACE ("ACE_FILE_IO::recv");
- return ACE_OS::readv (this->get_handle (), iov, n);
-}
-
-#if defined (ACE_HAS_STREAM_PIPES)
-ASYS_INLINE ssize_t
-ACE_FILE_IO::recv (ACE_Str_Buf *cntl, ACE_Str_Buf *data, int *band, int *flags) const
-{
- ACE_TRACE ("ACE_FILE_IO::recv");
- return ACE_OS::getpmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, band, flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::send (const ACE_Str_Buf *cntl, const ACE_Str_Buf *data, int band, int flags) const
-{
- ACE_TRACE ("ACE_FILE_IO::send");
- return ACE_OS::putpmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, band, flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::recv (ACE_Str_Buf *cntl, ACE_Str_Buf *data, int *flags) const
-{
- ACE_TRACE ("ACE_FILE_IO::recv");
- return ACE_OS::getmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::send (const ACE_Str_Buf *cntl, const ACE_Str_Buf *data, int flags) const
-{
- ACE_TRACE ("ACE_FILE_IO::send");
- return ACE_OS::putmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::send (const void *buf, size_t n,
- ACE_OVERLAPPED *overlapped) const
-{
- ACE_TRACE ("ACE_FILE_IO::send");
- return ACE_OS::write (this->get_handle (),
- (const char *) buf, n,
- overlapped);
-}
-
-ASYS_INLINE ssize_t
-ACE_FILE_IO::recv (void *buf, size_t n,
- ACE_OVERLAPPED *overlapped) const
-{
- ACE_TRACE ("ACE_FILE_IO::recv");
- return ACE_OS::read (this->get_handle (), (char *) buf, n,
- overlapped);
-}
-
-#endif /* ACE_HAS_STREAM_PIPES */
diff --git a/ace/File_Lock.cpp b/ace/File_Lock.cpp
deleted file mode 100644
index 7f9c3048aa7..00000000000
--- a/ace/File_Lock.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-// $Id$
-
-#include "ace/File_Lock.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/File_Lock.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, File_Lock, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_File_Lock)
-
-void
-ACE_File_Lock::dump (void) const
-{
-// ACE_TRACE ("ACE_File_Lock::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->lock_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_File_Lock::ACE_File_Lock (ACE_HANDLE h,
- int unlink_in_destructor)
- : removed_ (0),
- unlink_in_destructor_ (unlink_in_destructor)
-{
-// ACE_TRACE ("ACE_File_Lock::ACE_File_Lock");
- if (ACE_OS::flock_init (&this->lock_) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_File_Lock::ACE_File_Lock")));
- this->set_handle (h);
-}
-
-ACE_File_Lock::ACE_File_Lock (const ACE_TCHAR *name,
- int flags,
- mode_t perms,
- int unlink_in_destructor)
- : unlink_in_destructor_ (unlink_in_destructor)
-{
-// ACE_TRACE ("ACE_File_Lock::ACE_File_Lock");
-
- if (this->open (name, flags, perms) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p %s\n"),
- ACE_LIB_TEXT ("ACE_File_Lock::ACE_File_Lock"),
- name));
-}
-
-int
-ACE_File_Lock::open (const ACE_TCHAR *name,
- int flags,
- mode_t perms)
-{
-// ACE_TRACE ("ACE_File_Lock::open");
- this->removed_ = 0;
- return ACE_OS::flock_init (&this->lock_, flags, name, perms);
-}
-
-ACE_File_Lock::~ACE_File_Lock (void)
-{
-// ACE_TRACE ("ACE_File_Lock::~ACE_File_Lock");
- this->remove (this->unlink_in_destructor_);
-}
-
-// These are instantiated both with and without ACE_HAS_THREADS.
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-// template class ACE_Guard<ACE_File_Lock>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-// #pragma instantiate ACE_Guard<ACE_File_Lock>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/File_Lock.h b/ace/File_Lock.h
deleted file mode 100644
index afc549a0ff0..00000000000
--- a/ace/File_Lock.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file File_Lock.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_FILE_LOCK_H
-#define ACE_FILE_LOCK_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_File_Lock
- *
- * @brief A wrapper around the UNIX file locking mechanism.
- *
- * Allows us to "adapt" the UNIX file locking mechanisms to work
- * with all of our Guard stuff...
- */
-class ACE_Export ACE_File_Lock
-{
-public:
- /**
- * Set the <handle_> of the File_Lock to <handle>. Note that this
- * constructor assumes ownership of the <handle> and will close it
- * down in <remove>. If you want the <handle> to stay open when
- * <remove> is called make sure to call <dup> on the <handle>.
- * If you don't want the file unlinked in the destructor pass a
- * zero value for <unlink_in_destructor>.
- */
- ACE_File_Lock (ACE_HANDLE handle = ACE_INVALID_HANDLE,
- int unlink_in_destructor = 1);
-
- /// Open the <filename> with <flags> and <mode> and set the result
- /// to <handle_>. If you don't want the file unlinked in the
- /// destructor pass a zero value for <unlink_in_destructor>.
- ACE_File_Lock (const ACE_TCHAR *filename,
- int flags,
- mode_t mode = 0,
- int unlink_in_destructor = 1);
-
- /// Open the <filename> with <flags> and <mode> and set the result to
- /// <handle_>.
- int open (const ACE_TCHAR *filename,
- int flags,
- mode_t mode = 0);
-
- /// Remove a File lock by releasing it and closing down the <handle_>.
- ~ACE_File_Lock (void);
-
- /// Remove a File lock by releasing it and closing down the
- /// <handle_>. If <unlink_file> is non-0 then we unlink the file.
- int remove (int unlink_file = 1);
-
- /**
- * Note, for interface uniformity with other synchronization
- * wrappers we include the <acquire> method. This is implemented as
- * a write-lock to be on the safe-side...
- */
- int acquire (short whence = 0, off_t start = 0, off_t len = 1);
-
- /**
- * Note, for interface uniformity with other synchronization
- * wrappers we include the <tryacquire> method. This is implemented
- * as a write-lock to be on the safe-side... Returns -1 on failure.
- * If we "failed" because someone else already had the lock, <errno>
- * is set to <EBUSY>.
- */
- int tryacquire (short whence = 0, off_t start = 0, off_t len = 1);
-
- /// Unlock a readers/writer lock.
- int release (short whence = 0, off_t start = 0, off_t len = 1);
-
- /// Acquire a write lock, but block if any readers or a
- /// writer hold the lock.
- int acquire_write (short whence = 0, off_t start = 0, off_t len = 1);
-
- /**
- * Conditionally acquire a write lock (i.e., won't block). Returns
- * -1 on failure. If we "failed" because someone else already had
- * the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_write (short whence = 0, off_t start = 0, off_t len = 1);
-
- /**
- * Conditionally upgrade to a write lock (i.e., won't block). Returns
- * -1 on failure. If we "failed" because someone else already had
- * the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_write_upgrade (short whence = 0,
- off_t start = 0,
- off_t len = 1);
-
- /**
- * Acquire a read lock, but block if a writer hold the lock.
- * Returns -1 on failure. If we "failed" because someone else
- * already had the lock, <errno> is set to <EBUSY>.
- */
- int acquire_read (short whence = 0, off_t start = 0, off_t len = 1);
-
- /**
- * Conditionally acquire a read lock (i.e., won't block). Returns
- * -1 on failure. If we "failed" because someone else already had
- * the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_read (short whence = 0, off_t start = 0, off_t len = 1);
-
- /// Get underlying <ACE_HANDLE> for the file.
- ACE_HANDLE get_handle (void) const;
-
- /**
- * Set underlying <ACE_HANDLE>. Note that this method assumes
- * ownership of the <handle> and will close it down in <remove>. If
- * you want the <handle> to stay open when <remove> is called make
- * sure to call <dup> on the <handle> before closing it. You are
- * responsible for the closing the existing <handle> before
- * overwriting it.
- */
- void set_handle (ACE_HANDLE);
-
- /// Dump state of the object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Locking structure for OS record locks.
- ACE_OS::ace_flock_t lock_;
-
- /// Keeps track of whether <remove> has been called yet to avoid
- /// multiple <remove> calls, e.g., explicitly and implicitly in the
- /// destructor. This flag isn't protected by a lock, so make sure
- /// that you don't have multiple threads simultaneously calling
- /// <remove> on the same object, which is a bad idea anyway...
- int removed_;
-
- /// Keeps track of whether to unlink the underlying file in the
- /// destructor.
- int unlink_in_destructor_;
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_File_Lock &);
- ACE_File_Lock (const ACE_File_Lock &);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/File_Lock.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_FILE_LOCK_H */
diff --git a/ace/File_Lock.inl b/ace/File_Lock.inl
deleted file mode 100644
index a0dc79dcc7b..00000000000
--- a/ace/File_Lock.inl
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE int
-ACE_File_Lock::acquire_read (short whence, off_t start, off_t len)
-{
-// ACE_TRACE ("ACE_File_Lock::acquire_read");
- return ACE_OS::flock_rdlock (&this->lock_, whence, start, len);
-}
-
-ACE_INLINE int
-ACE_File_Lock::tryacquire_read (short whence, off_t start, off_t len)
-{
-// ACE_TRACE ("ACE_File_Lock::tryacquire_read");
- return ACE_OS::flock_tryrdlock (&this->lock_, whence, start, len);
-}
-
-ACE_INLINE int
-ACE_File_Lock::tryacquire_write (short whence, off_t start, off_t len)
-{
-// ACE_TRACE ("ACE_File_Lock::tryacquire_write");
- return ACE_OS::flock_trywrlock (&this->lock_, whence, start, len);
-}
-
-ACE_INLINE int
-ACE_File_Lock::tryacquire_write_upgrade (short whence, off_t start, off_t len)
-{
-// ACE_TRACE ("ACE_File_Lock::tryacquire_write_upgrade");
- return ACE_OS::flock_trywrlock (&this->lock_, whence, start, len);
-}
-
-ACE_INLINE int
-ACE_File_Lock::tryacquire (short whence, off_t start, off_t len)
-{
-// ACE_TRACE ("ACE_File_Lock::tryacquire");
- return this->tryacquire_write (whence, start, len);
-}
-
-ACE_INLINE int
-ACE_File_Lock::acquire_write (short whence, off_t start, off_t len)
-{
-// ACE_TRACE ("ACE_File_Lock::acquire_write");
- return ACE_OS::flock_wrlock (&this->lock_, whence, start, len);
-}
-
-ACE_INLINE int
-ACE_File_Lock::acquire (short whence, off_t start, off_t len)
-{
-// ACE_TRACE ("ACE_File_Lock::acquire");
- return this->acquire_write (whence, start, len);
-}
-
-ACE_INLINE int
-ACE_File_Lock::release (short whence, off_t start, off_t len)
-{
-// ACE_TRACE ("ACE_File_Lock::release");
- return ACE_OS::flock_unlock (&this->lock_, whence, start, len);
-}
-
-ACE_INLINE int
-ACE_File_Lock::remove (int unlink_file)
-{
-// ACE_TRACE ("ACE_File_Lock::remove");
-
- int result = 0;
-
- if (this->removed_ == 0)
- {
- this->removed_ = 1;
- result = ACE_OS::flock_destroy (&this->lock_,
- unlink_file);
- }
- return result;
-}
-
-ACE_INLINE ACE_HANDLE
-ACE_File_Lock::get_handle (void) const
-{
-// ACE_TRACE ("ACE_File_Lock::get_handle");
- return this->lock_.handle_;
-}
-
-ACE_INLINE void
-ACE_File_Lock::set_handle (ACE_HANDLE h)
-{
-// ACE_TRACE ("ACE_File_Lock::set_handle");
- this->lock_.handle_ = h;
- this->removed_ = 0;
-}
diff --git a/ace/Filecache.cpp b/ace/Filecache.cpp
deleted file mode 100644
index cd41b9f8e46..00000000000
--- a/ace/Filecache.cpp
+++ /dev/null
@@ -1,769 +0,0 @@
-// $Id$
-
-#include "ace/Filecache.h"
-#include "ace/Object_Manager.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, Filecache, "$Id$")
-
-#if defined (ACE_WIN32)
-// Specifies no sharing flags.
-#define R_MASK ACE_DEFAULT_OPEN_PERMS
-#define W_MASK 0
-#else
-#define R_MASK S_IRUSR|S_IRGRP|S_IROTH
-#define W_MASK S_IRUSR|S_IRGRP|S_IROTH|S_IWUSR|S_IWGRP|S_IWOTH
-#endif /* __BORLANDC__ */
-
-#if defined (ACE_WIN32)
-// See if you can get rid of some of these.
-#define READ_FLAGS (FILE_FLAG_SEQUENTIAL_SCAN | \
- FILE_FLAG_OVERLAPPED | \
- O_RDONLY)
-// static const int RCOPY_FLAGS = (FILE_FLAG_SEQUENTIAL_SCAN |
-// O_RDONLY);
-#define WRITE_FLAGS (FILE_FLAG_SEQUENTIAL_SCAN | \
- FILE_FLAG_OVERLAPPED | \
- O_RDWR | O_CREAT | O_TRUNC)
-// static const int WCOPY_FLAGS = (FILE_FLAG_SEQUENTIAL_SCAN |
-// O_RDWR | O_CREAT | O_TRUNC);
-#else
-#define READ_FLAGS O_RDONLY
-// static const int RCOPY_FLAGS = O_RDONLY;
-#define WRITE_FLAGS (O_RDWR | O_CREAT | O_TRUNC)
-// static const int WCOPY_FLAGS = O_RDWR | O_CREAT | O_TRUNC;
-#endif /* ACE_WIN32 */
-
-// static data members
-ACE_Filecache *ACE_Filecache::cvf_ = 0;
-
-void
-ACE_Filecache_Handle::init (void)
-{
- this->file_ = 0;
- this->handle_ = ACE_INVALID_HANDLE;
-}
-
-ACE_Filecache_Handle::ACE_Filecache_Handle (void)
- : file_ (0), handle_ (0), mapit_ (0)
-{
- this->init ();
-}
-
-ACE_Filecache_Handle::ACE_Filecache_Handle (const ACE_TCHAR *filename,
- ACE_Filecache_Flag mapit)
- : file_ (0), handle_ (0), mapit_ (mapit)
-{
- this->init ();
- // Fetch the file from the Virtual_Filesystem let the
- // Virtual_Filesystem do the work of cache coherency.
-
- // Filecache will also do the acquire, since it holds the lock at
- // that time.
- this->file_ = ACE_Filecache::instance ()->fetch (filename, mapit);
-}
-
-ACE_Filecache_Handle::ACE_Filecache_Handle (const ACE_TCHAR *filename,
- int size,
- ACE_Filecache_Flag mapit)
- : file_ (0), handle_ (0), mapit_ (mapit)
-{
- this->init ();
-
- if (size == 0)
- ACE_Filecache::instance ()->remove (filename);
- else
- {
- // Since this is being opened for a write, simply create a new
- // ACE_Filecache_Object now, and let the destructor add it into CVF
- // later
-
- // Filecache will also do the acquire, since it holds the lock at
- // that time.
- this->file_ = ACE_Filecache::instance ()->create (filename, size);
- }
-}
-
-ACE_Filecache_Handle::~ACE_Filecache_Handle (void)
-{
- if (this->handle_ != ACE_INVALID_HANDLE)
- // this was dup ()'d
- ACE_OS::close (this->handle_);
-
- ACE_Filecache::instance ()->finish (this->file_);
-}
-
-void *
-ACE_Filecache_Handle::address (void) const
-{
- return this->file_ == 0 ? 0 : this->file_->address ();
-}
-
-ACE_HANDLE
-ACE_Filecache_Handle::handle (void) const
-{
- if (this->handle_ == ACE_INVALID_HANDLE && this->file_ != 0)
- {
- ACE_Filecache_Handle *mutable_this =
- (ACE_Filecache_Handle *) this;
- mutable_this->handle_ = ACE_OS::dup (this->file_->handle ());
- }
- return this->handle_;
-}
-
-int
-ACE_Filecache_Handle::error (void) const
-{
- if (this->file_ == 0)
- return -1;
- else
- return this->file_->error ();
-}
-
-off_t
-ACE_Filecache_Handle::size (void) const
-{
- if (this->file_ == 0)
- return -1;
- else
- return this->file_->size ();
-}
-
-// ------------------
-// ACE_Filecache_Hash
-// ------------------
-
-#if defined (ACE_HAS_TEMPLATE_SPECIALIZATION)
-
-#define ACE_Filecache_Hash \
- ACE_Hash_Map_Manager_Ex<const ACE_TCHAR *, ACE_Filecache_Object *, ACE_Hash<const ACE_TCHAR *>, ACE_Equal_To<const ACE_TCHAR *>, ACE_Null_Mutex>
-#define ACE_Filecache_Hash_Entry \
- ACE_Hash_Map_Entry<const ACE_TCHAR *, ACE_Filecache_Object *>
-
-ACE_TEMPLATE_SPECIALIZATION
-ACE_Filecache_Hash_Entry::ACE_Hash_Map_Entry (const ACE_TCHAR *const &ext_id,
- ACE_Filecache_Object *const &int_id,
- ACE_Filecache_Hash_Entry *next,
- ACE_Filecache_Hash_Entry *prev)
- : ext_id_ (ext_id ? ACE_OS::strdup (ext_id) : ACE_OS::strdup (ACE_LIB_TEXT (""))),
- int_id_ (int_id),
- next_ (next),
- prev_ (prev)
-{
-}
-
-ACE_TEMPLATE_SPECIALIZATION
-ACE_Filecache_Hash_Entry::ACE_Hash_Map_Entry (ACE_Filecache_Hash_Entry *next,
- ACE_Filecache_Hash_Entry *prev)
- : ext_id_ (0),
- next_ (next),
- prev_ (prev)
-{
-}
-
-ACE_TEMPLATE_SPECIALIZATION
-ACE_Filecache_Hash_Entry::~ACE_Hash_Map_Entry (void)
-{
- ACE_OS::free ((void *) ext_id_);
-}
-
-// We need these template specializations since KEY is defined as a
-// ACE_TCHAR*, which doesn't have a hash() or equal() method defined on it.
-
-ACE_TEMPLATE_SPECIALIZATION
-unsigned long
-ACE_Filecache_Hash::hash (const ACE_TCHAR *const &ext_id)
-{
- return ACE::hash_pjw (ext_id);
-}
-
-ACE_TEMPLATE_SPECIALIZATION
-int
-ACE_Filecache_Hash::equal (const ACE_TCHAR *const &id1, const ACE_TCHAR *const &id2)
-{
- return ACE_OS::strcmp (id1, id2) == 0;
-}
-
-#undef ACE_Filecache_Hash
-#undef ACE_Filecache_Hash_Entry
-
-#endif /* ACE_HAS_TEMPLATE_SPECIALIZATION */
-
-
-// -------------
-// ACE_Filecache
-// -------------
-
-ACE_Filecache *
-ACE_Filecache::instance (void)
-{
- // Double check locking pattern.
- if (ACE_Filecache::cvf_ == 0)
- {
- ACE_SYNCH_RW_MUTEX &lock =
- *ACE_Managed_Object<ACE_SYNCH_RW_MUTEX>::get_preallocated_object
- (ACE_Object_Manager::ACE_FILECACHE_LOCK);
- ACE_GUARD_RETURN (ACE_SYNCH_RW_MUTEX, ace_mon, lock, 0);
-
- // @@ James, please check each of the ACE_NEW_RETURN calls to
- // make sure that it is safe to return if allocation fails.
- if (ACE_Filecache::cvf_ == 0)
- ACE_NEW_RETURN (ACE_Filecache::cvf_,
- ACE_Filecache,
- 0);
- }
-
- return ACE_Filecache::cvf_;
-}
-
-ACE_Filecache::ACE_Filecache (void)
- : size_ (ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE),
- hash_ (this->size_)
-{
-}
-
-ACE_Filecache::~ACE_Filecache (void)
-{
-}
-
-ACE_Filecache_Object *
-ACE_Filecache::insert_i (const ACE_TCHAR *filename,
- ACE_SYNCH_RW_MUTEX &filelock,
- int mapit)
-{
- ACE_Filecache_Object *handle = 0;
-
- if (this->hash_.find (filename, handle) == -1)
- {
- ACE_NEW_RETURN (handle,
- ACE_Filecache_Object (filename, filelock, 0, mapit),
- 0);
-
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" (%t) CVF: creating %s\n"), filename));
-
- if (this->hash_.bind (filename, handle) == -1)
- {
- delete handle;
- handle = 0;
- }
- }
- else
- handle = 0;
-
- return handle;
-}
-
-ACE_Filecache_Object *
-ACE_Filecache::remove_i (const ACE_TCHAR *filename)
-{
- ACE_Filecache_Object *handle = 0;
-
- // Disassociate file from the cache.
- if (this->hash_.unbind (filename, handle) == 0)
- {
- handle->stale_ = 1;
-
- // Try a lock. If it succeds, we can delete it now.
- // Otherwise, it will clean itself up later.
- if (handle->lock_.tryacquire_write () == 0)
- {
- delete handle;
- handle = 0;
- }
- }
- else
- handle = 0;
-
- return handle;
-}
-
-ACE_Filecache_Object *
-ACE_Filecache::update_i (const ACE_TCHAR *filename,
- ACE_SYNCH_RW_MUTEX &filelock,
- int mapit)
-{
- ACE_Filecache_Object *handle = 0;
-
- handle = this->remove_i (filename);
- handle = this->insert_i (filename, filelock, mapit);
-
- return handle;
-}
-
-int
-ACE_Filecache::find (const ACE_TCHAR *filename)
-{
- return this->hash_.find (filename);
-}
-
-
-ACE_Filecache_Object *
-ACE_Filecache::remove (const ACE_TCHAR *filename)
-{
- ACE_Filecache_Object *handle = 0;
-
- u_long loc = ACE::hash_pjw (filename) % this->size_;
- ACE_SYNCH_RW_MUTEX &hashlock = this->hash_lock_[loc];
- // ACE_SYNCH_RW_MUTEX &filelock = this->file_lock_[loc];
-
- if (this->hash_.find (filename, handle) != -1)
- {
- ACE_WRITE_GUARD_RETURN (ACE_SYNCH_RW_MUTEX,
- ace_mon,
- hashlock,
- 0);
-
- return this->remove_i (filename);
- }
-
- return 0;
-}
-
-
-ACE_Filecache_Object *
-ACE_Filecache::fetch (const ACE_TCHAR *filename, int mapit)
-{
- ACE_Filecache_Object *handle = 0;
-
- u_long loc = ACE::hash_pjw (filename) % this->size_;
- ACE_SYNCH_RW_MUTEX &hashlock = this->hash_lock_[loc];
- ACE_SYNCH_RW_MUTEX &filelock = this->file_lock_[loc];
-
- filelock.acquire_read ();
-
- if (this->hash_.find (filename, handle) == -1)
- {
- ACE_WRITE_GUARD_RETURN (ACE_SYNCH_RW_MUTEX,
- ace_mon,
- hashlock,
- 0);
-
- // Second check in the method call
- handle = this->insert_i (filename, filelock, mapit);
-
- if (handle == 0)
- filelock.release ();
- }
- else
- {
- if (handle->update ())
- {
- {
- // Double check locking pattern
- ACE_WRITE_GUARD_RETURN (ACE_SYNCH_RW_MUTEX,
- ace_mon,
- hashlock,
- 0);
-
- // Second check in the method call
- handle = this->update_i (filename, filelock, mapit);
-
- if (handle == 0)
- filelock.release ();
- }
- }
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" (%t) CVF: found %s\n"), filename));
- }
-
- return handle;
-}
-
-ACE_Filecache_Object *
-ACE_Filecache::create (const ACE_TCHAR *filename, int size)
-{
- ACE_Filecache_Object *handle = 0;
-
- u_long loc = ACE::hash_pjw (filename) % this->size_;
- ACE_SYNCH_RW_MUTEX &filelock = this->file_lock_[loc];
-
- ACE_NEW_RETURN (handle,
- ACE_Filecache_Object (filename, size, filelock),
- 0);
- handle->acquire ();
-
- return handle;
-}
-
-ACE_Filecache_Object *
-ACE_Filecache::finish (ACE_Filecache_Object *&file)
-{
- if (file == 0)
- return file;
-
- u_long loc = ACE::hash_pjw (file->filename_) % this->size_;
- ACE_SYNCH_RW_MUTEX &hashlock = this->hash_lock_[loc];
-
- if (file != 0)
- switch (file->action_)
- {
- case ACE_Filecache_Object::ACE_WRITING:
- {
- ACE_WRITE_GUARD_RETURN (ACE_SYNCH_RW_MUTEX,
- ace_mon,
- hashlock,
- 0);
-
- file->release ();
-
- this->remove_i (file->filename_);
-#if 0
- int result = this->hash_.bind (file->filename (), file);
-
- if (result == 0)
- file->acquire ();
-#else
- // Last one using a stale file is resposible for deleting it.
- if (file->stale_)
- {
- // Try a lock. If it succeds, we can delete it now.
- // Otherwise, it will clean itself up later.
- if (file->lock_.tryacquire_write () == 0)
- {
- delete file;
- file = 0;
- }
- }
-#endif
- }
-
- break;
- default:
- file->release ();
-
- // Last one using a stale file is resposible for deleting it.
- if (file->stale_)
- {
- // Try a lock. If it succeds, we can delete it now.
- // Otherwise, it will clean itself up later.
- if (file->lock_.tryacquire_write () == 0)
- {
- delete file;
- file = 0;
- }
- }
-
- break;
- }
-
- return file;
-}
-
-void
-ACE_Filecache_Object::init (void)
-{
- this->filename_[0] = '\0';
- this->handle_ = ACE_INVALID_HANDLE;
- this->error_ = ACE_SUCCESS;
- this->tempname_ = 0;
- this->size_ = 0;
-
- ACE_OS::memset (&(this->stat_), 0, sizeof (this->stat_));
-}
-
-ACE_Filecache_Object::ACE_Filecache_Object (void)
- : tempname_ (0),
- mmap_ (),
- handle_ (0),
- // stat_ (),
- size_ (0),
- action_ (0),
- error_ (0),
- stale_ (0),
- // sa_ (),
- junklock_ (),
- lock_ (junklock_)
-{
- this->init ();
-}
-
-ACE_Filecache_Object::ACE_Filecache_Object (const ACE_TCHAR *filename,
- ACE_SYNCH_RW_MUTEX &lock,
- LPSECURITY_ATTRIBUTES sa,
- int mapit)
- : tempname_ (0),
- mmap_ (),
- handle_ (0),
- // stat_ (),
- size_ (0),
- action_ (0),
- error_ (0),
- stale_ (0),
- sa_ (sa),
- junklock_ (),
- lock_ (lock)
-{
- this->init ();
-
- // ASSERT strlen(filename) < sizeof (this->filename_)
- ACE_OS::strcpy (this->filename_, filename);
- this->action_ = ACE_Filecache_Object::ACE_READING;
- // place ourselves into the READING state
-
- // Can we access the file?
- if (ACE_OS::access (this->filename_, R_OK) == -1)
- {
- this->error_i (ACE_Filecache_Object::ACE_ACCESS_FAILED);
- return;
- }
-
- // Can we stat the file?
- if (ACE_OS::stat (this->filename_, &this->stat_) == -1)
- {
- this->error_i (ACE_Filecache_Object::ACE_STAT_FAILED);
- return;
- }
-
- this->size_ = this->stat_.st_size;
- this->tempname_ = this->filename_;
-
- // Can we open the file?
- this->handle_ = ACE_OS::open (this->tempname_,
- READ_FLAGS, R_MASK, this->sa_);
- if (this->handle_ == ACE_INVALID_HANDLE)
- {
- this->error_i (ACE_Filecache_Object::ACE_OPEN_FAILED,
- ACE_LIB_TEXT ("ACE_Filecache_Object::ctor: open"));
- return;
- }
-
- if (mapit)
- {
- // Can we map the file?
- if (this->mmap_.map (this->handle_, -1,
- PROT_READ, ACE_MAP_PRIVATE, 0, 0, this->sa_) != 0)
- {
- this->error_i (ACE_Filecache_Object::ACE_MEMMAP_FAILED,
- ACE_LIB_TEXT ("ACE_Filecache_Object::ctor: map"));
- ACE_OS::close (this->handle_);
- this->handle_ = ACE_INVALID_HANDLE;
- return;
- }
- }
-
- // Ok, finished!
- this->action_ = ACE_Filecache_Object::ACE_READING;
-}
-
-ACE_Filecache_Object::ACE_Filecache_Object (const ACE_TCHAR *filename,
- off_t size,
- ACE_SYNCH_RW_MUTEX &lock,
- LPSECURITY_ATTRIBUTES sa)
- : stale_ (0),
- sa_ (sa),
- lock_ (lock)
-{
- this->init ();
-
- this->size_ = size;
- ACE_OS::strcpy (this->filename_, filename);
- this->action_ = ACE_Filecache_Object::ACE_WRITING;
-
- // Can we access the file?
- if (ACE_OS::access (this->filename_, R_OK|W_OK) == -1
- // Does it exist?
- && ACE_OS::access (this->filename_, F_OK) != -1)
- {
- // File exists, but we cannot access it.
- this->error_i (ACE_Filecache_Object::ACE_ACCESS_FAILED);
- return;
- }
-
- this->tempname_ = this->filename_;
-
- // Can we open the file?
- this->handle_ = ACE_OS::open (this->tempname_, WRITE_FLAGS, W_MASK, this->sa_);
- if (this->handle_ == ACE_INVALID_HANDLE)
- {
- this->error_i (ACE_Filecache_Object::ACE_OPEN_FAILED,
- ACE_LIB_TEXT ("ACE_Filecache_Object::acquire: open"));
- return;
- }
-
- // Can we write?
- if (ACE_OS::pwrite (this->handle_, "", 1, this->size_ - 1) != 1)
- {
- this->error_i (ACE_Filecache_Object::ACE_WRITE_FAILED,
- ACE_LIB_TEXT ("ACE_Filecache_Object::acquire: write"));
- ACE_OS::close (this->handle_);
- return;
- }
-
- // Can we map?
- if (this->mmap_.map (this->handle_, this->size_, PROT_RDWR, MAP_SHARED,
- 0, 0, this->sa_) != 0)
- {
- this->error_i (ACE_Filecache_Object::ACE_MEMMAP_FAILED,
- ACE_LIB_TEXT ("ACE_Filecache_Object::acquire: map"));
- ACE_OS::close (this->handle_);
- }
-
- // Ok, done!
-}
-
-ACE_Filecache_Object::~ACE_Filecache_Object (void)
-{
- if (this->error_ == ACE_SUCCESS)
- {
- this->mmap_.unmap ();
- ACE_OS::close (this->handle_);
- this->handle_ = ACE_INVALID_HANDLE;
- }
-}
-
-int
-ACE_Filecache_Object::acquire (void)
-{
- return this->lock_.tryacquire_read ();
-}
-
-int
-ACE_Filecache_Object::release (void)
-{
- if (this->action_ == ACE_WRITING)
- {
- // We are safe since only one thread has a writable Filecache_Object
-
-#if 0
- ACE_HANDLE original = ACE_OS::open (this->filename_, WRITE_FLAGS, W_MASK,
- this->sa_);
- if (original == ACE_INVALID_HANDLE)
- this->error_ = ACE_Filecache_Object::ACE_OPEN_FAILED;
- else if (ACE_OS::write (original, this->mmap_.addr (),
- this->size_) == -1)
- {
- this->error_ = ACE_Filecache_Object::ACE_WRITE_FAILED;
- ACE_OS::close (original);
- ACE_OS::unlink (this->filename_);
- }
- else if (ACE_OS::stat (this->filename_, &this->stat_) == -1)
- this->error_ = ACE_Filecache_Object::ACE_STAT_FAILED;
-#endif
-
- this->mmap_.unmap ();
- ACE_OS::close (this->handle_);
- this->handle_ = ACE_INVALID_HANDLE;
-
-#if 0
- // Leave the file in an acquirable state.
- this->handle_ = ACE_OS::open (this->tempname_, READ_FLAGS, R_MASK);
- if (this->handle_ == ACE_INVALID_HANDLE)
- {
- this->error_i (ACE_Filecache_Object::ACE_OPEN_FAILED,
- "ACE_Filecache_Object::acquire: open");
- }
- else if (this->mmap_.map (this->handle_, -1,
- PROT_READ,
- ACE_MAP_PRIVATE,
- 0,
- 0,
- this->sa_) != 0)
- {
- this->error_i (ACE_Filecache_Object::ACE_MEMMAP_FAILED,
- "ACE_Filecache_Object::acquire: map");
- ACE_OS::close (this->handle_);
- this->handle_ = ACE_INVALID_HANDLE;
- }
-
- this->action_ = ACE_Filecache_Object::ACE_READING;
-#endif
- }
-
- return this->lock_.release ();
-}
-
-int
-ACE_Filecache_Object::error (void) const
-{
- // The existence of the object means a read lock is being held.
- return this->error_;
-}
-
-int
-ACE_Filecache_Object::error_i (int error_value, const ACE_TCHAR *s)
-{
- s = s;
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p.\n"), s));
- this->error_ = error_value;
- return error_value;
-}
-
-const ACE_TCHAR *
-ACE_Filecache_Object::filename (void) const
-{
- // The existence of the object means a read lock is being held.
- return this->filename_;
-}
-
-off_t
-ACE_Filecache_Object::size (void) const
-{
- // The existence of the object means a read lock is being held.
- return this->size_;
-}
-
-ACE_HANDLE
-ACE_Filecache_Object::handle (void) const
-{
- // The existence of the object means a read lock is being held.
- return this->handle_;
-}
-
-void *
-ACE_Filecache_Object::address (void) const
-{
- // The existence of the object means a read lock is being held.
- return this->mmap_.addr ();
-}
-
-int
-ACE_Filecache_Object::update (void) const
-{
- // The existence of the object means a read lock is being held.
- int result;
- ACE_stat statbuf;
-
- if (ACE_OS::stat (this->filename_, &statbuf) == -1)
- result = 1;
- else
- // non-portable code may follow
-#if defined (ACE_HAS_WINCE)
- // Yup, non-portable... there's probably a way to safely implement
- // difftime() on WinCE, but for now, this will have to do. It flags
- // every file as having changed since cached.
- result = 1;
-#else
- result = ACE_OS::difftime (this->stat_.st_mtime, statbuf.st_mtime) < 0;
-#endif /* ACE_HAS_WINCE */
-
- return result;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-#if defined (ACE_HAS_TEMPLATE_SPECIALIZATION)
-template class ACE_Hash_Map_Entry<const ACE_TCHAR *, ACE_Filecache_Object *>;
-template class ACE_Hash_Map_Manager_Ex<const ACE_TCHAR *, ACE_Filecache_Object *, ACE_Hash<const ACE_TCHAR *>, ACE_Equal_To<const ACE_TCHAR *>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Base_Ex<const ACE_TCHAR *, ACE_Filecache_Object *, ACE_Hash<const ACE_TCHAR *>, ACE_Equal_To<const ACE_TCHAR *>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<const ACE_TCHAR *, ACE_Filecache_Object *, ACE_Hash<const ACE_TCHAR *>, ACE_Equal_To<const ACE_TCHAR *>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<const ACE_TCHAR *, ACE_Filecache_Object *, ACE_Hash<const ACE_TCHAR *>, ACE_Equal_To<const ACE_TCHAR *>, ACE_Null_Mutex>;
-#else
-template class ACE_Hash_Map_Entry<ACE_TString, ACE_Filecache_Object *>;
-template class ACE_Hash_Map_Manager_Ex<ACE_TString, ACE_Filecache_Object *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Base_Ex<ACE_TString, ACE_Filecache_Object *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<ACE_TString, ACE_Filecache_Object *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_TString, ACE_Filecache_Object *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex>;
-#endif /* ACE_HAS_TEMPLATE_SPECIALIZATION */
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#if defined (ACE_HAS_TEMPLATE_SPECIALIZATION)
-#pragma instantiate ACE_Hash_Map_Entry<const ACE_TCHAR *, ACE_Filecache_Object *>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<const ACE_TCHAR *, ACE_Filecache_Object *, ACE_Hash<const ACE_TCHAR *>, ACE_Equal_To<const ACE_TCHAR *>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<const ACE_TCHAR *, ACE_Filecache_Object *, ACE_Hash<const ACE_TCHAR *>, ACE_Equal_To<const ACE_TCHAR *>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<const ACE_TCHAR *, ACE_Filecache_Object *, ACE_Hash<const ACE_TCHAR *>, ACE_Equal_To<const ACE_TCHAR *>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<const ACE_TCHAR *, ACE_Filecache_Object *, ACE_Hash<const ACE_TCHAR *>, ACE_Equal_To<const ACE_TCHAR *>, ACE_Null_Mutex>
-#else
-#pragma instantiate ACE_Hash_Map_Entry<ACE_TString, ACE_Filecache_Object *>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_TString, ACE_Filecache_Object *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_TString, ACE_Filecache_Object *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_TString, ACE_Filecache_Object *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_TString, ACE_Filecache_Object *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex>
-#endif /* ACE_HAS_TEMPLATE_SPECIALIZATION */
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Filecache.h b/ace/Filecache.h
deleted file mode 100644
index 0bcd8264b79..00000000000
--- a/ace/Filecache.h
+++ /dev/null
@@ -1,360 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Filecache.h
- *
- * $Id$
- *
- * @author James Hu
- */
-//=============================================================================
-
-
-#ifndef ACE_FILECACHE_H
-#define ACE_FILECACHE_H
-
-#include "ace/pre.h"
-
-#include "ace/Mem_Map.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch_T.h"
-#include "ace/Hash_Map_Manager_T.h"
-#include "ace/SString.h"
-
-enum ACE_Filecache_Flag
-{
- ACE_NOMAP = 0,
- ACE_MAPIT = 1
-};
-
-class ACE_Filecache_Object;
-
-/**
- * @class ACE_Filecache_Handle
- *
- * @brief Abstraction over a real file. This is meant to be the entry
- * point into the Cached Virtual Filesystem.
- *
- * This is a cached filesystem implementation based loosely on the
- * implementation of JAWS_File. The interfaces will be nearly the
- * same. The under-the-hood implementation should hopefully be a
- * much faster thing.
- * These will be given their own implementations later. For now, we
- * borrow the implementation provided by JAWS.
- * On creation, the cache is checked, and reference count is
- * incremented. On destruction, reference count is decremented. If
- * the reference count is 0, the file is removed from the cache.
- * E.g. 1,
- * {
- * ACE_Filecache_Handle foo("foo.html");
- * this->peer ().send (foo.address (), foo.size ());
- * }
- * E.g. 2,
- * {
- * ACE_Filecache_Handle foo("foo.html");
- * io->transmitfile (foo.handle (), this->peer ().handle ());
- * }
- * E.g. 3,
- * {
- * ACE_Filecache_Handle foo("foo.html", content_length);
- * this->peer ().recv (foo.address (), content_length);
- * }
- * TODO:
- */
-class ACE_Export ACE_Filecache_Handle
-{
- // (1) Get rid of the useless copying of files when reading.
- // Although it does make sure the file you send isn't being changed,
- // it doesn't make sure the file is in a sensible state before
- // sending it.
- //
- // Alternative: if the file get's trashed while it is being shipped,
- // let the client request the file again. The cache should have an
- // updated copy by that point.
- //
- // (2) Use hashing for locating files. This means I need a hastable
- // implementation with buckets.
- //
- // (3) Only lock when absolutely necessary. JAWS_Virtual_Filesystem was
- // rather conservative, but for some reason it still ran into problems.
- // Since this design should be simpler, problems should be easier to spot.
- //
-public:
-
- /// Query cache for file, and acquire it. Assumes the file is being
- /// opened for reading.
- ACE_Filecache_Handle (const ACE_TCHAR *filename,
- ACE_Filecache_Flag mapit = ACE_MAPIT);
-
- /**
- * Create new entry, and acquire it. Presence of SIZE assumes the
- * file is being opened for writing. If SIZE is zero, assumes the
- * file is to be removed from the cache.
- */
- ACE_Filecache_Handle (const ACE_TCHAR *filename,
- int size,
- ACE_Filecache_Flag mapit = ACE_MAPIT);
-
- /// Closes any open handles, release acquired file.
- ~ACE_Filecache_Handle (void);
-
- /// Base address of memory mapped file.
- void *address (void) const;
-
- /// A handle (e.g., UNIX file descriptor, or NT file handle).
- ACE_HANDLE handle (void) const;
-
- /// Any associated error in handle creation and acquisition.
- int error (void) const;
-
- /// The size of the file.
- off_t size (void) const;
-
-protected:
- /// Default do nothing constructor. Prevent it from being called.
- ACE_Filecache_Handle (void);
-
- /// Common initializations for constructors.
- void init (void);
-
-public:
- /// These come from ACE_Filecache_Object, which is an internal class.
- enum
- {
- ACE_SUCCESS = 0,
- ACE_ACCESS_FAILED,
- ACE_OPEN_FAILED,
- ACE_COPY_FAILED,
- ACE_STAT_FAILED,
- ACE_MEMMAP_FAILED,
- ACE_WRITE_FAILED
- };
-
-private:
- /// A reference to the low level instance.
- ACE_Filecache_Object *file_;
-
- /// A <dup>'d version of the one from <file_>.
- ACE_HANDLE handle_;
-
- int mapit_;
-};
-
-#if defined (ACE_HAS_TEMPLATE_SPECIALIZATION)
-
-typedef ACE_Hash_Map_Manager_Ex<const ACE_TCHAR *, ACE_Filecache_Object *, ACE_Hash<const ACE_TCHAR *>, ACE_Equal_To<const ACE_TCHAR *>, ACE_Null_Mutex>
- ACE_Filecache_Hash;
-
-typedef ACE_Hash_Map_Entry<const ACE_TCHAR *, ACE_Filecache_Object *> ACE_Filecache_Hash_Entry;
-
-#else
-
-typedef ACE_Hash_Map_Manager_Ex<ACE_TString, ACE_Filecache_Object *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex>
- ACE_Filecache_Hash;
-
-typedef ACE_Filecache_Hash::ENTRY ACE_Filecache_Hash_Entry;
-
-#endif /* ACE_HAS_TEMPLATE_SPECIALIZATION */
-
-
-/**
- * @class ACE_Filecache
- *
- * @brief A hash table holding the information about entry point into
- * the Cached Virtual Filesystem. On insertion, the reference
- * count is incremented. On destruction, reference count is
- * decremented.
- */
-class ACE_Export ACE_Filecache
-{
-public:
- /// Singleton pattern.
- static ACE_Filecache *instance (void);
-
- ~ACE_Filecache (void);
-
- /// Returns 0 if the file associated with ``filename'' is in the cache,
- /// or -1 if not.
- int find (const ACE_TCHAR *filename);
-
- /// Return the file associated with ``filename'' if it is in the cache,
- /// or create if not.
- ACE_Filecache_Object *fetch (const ACE_TCHAR *filename, int mapit = 1);
-
- /// Remove the file associated with ``filename'' from the cache.
- ACE_Filecache_Object *remove (const ACE_TCHAR *filename);
-
- /// Create a new Filecache_Object, returns it.
- ACE_Filecache_Object *create (const ACE_TCHAR *filename, int size);
-
- /// Release an acquired Filecache_Object, returns it again or NULL if it
- /// was deleted.
- ACE_Filecache_Object *finish (ACE_Filecache_Object *&new_file);
-
-protected:
- ACE_Filecache_Object *insert_i (const ACE_TCHAR *filename,
- ACE_SYNCH_RW_MUTEX &filelock,
- int mapit);
- ACE_Filecache_Object *remove_i (const ACE_TCHAR *filename);
- ACE_Filecache_Object *update_i (const ACE_TCHAR *filename,
- ACE_SYNCH_RW_MUTEX &filelock,
- int mapit);
-
-public:
-
- enum
- {
- /// For this stupid implementation, use an array. Someday, use a
- /// balanced search tree, or real hash table.
- ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE = 512,
-
- /// This determines the highwater mark in megabytes for the cache.
- /// This will be ignored for now.
- ACE_DEFAULT_VIRTUAL_FILESYSTEM_CACHE_SIZE = 20
- };
-
-protected:
- /// Prevent it from being called.
- ACE_Filecache (void);
-
-private:
- int size_;
-
- /// The hash table
- ACE_Filecache_Hash hash_;
-
- /// The reference to the instance
- static ACE_Filecache *cvf_;
-
- // = Synchronization variables.
- ACE_SYNCH_RW_MUTEX hash_lock_[ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE];
- ACE_SYNCH_RW_MUTEX file_lock_[ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE];
-};
-
-/**
- * @class ACE_Filecache_Object
- *
- * @brief Abstraction over a real file. This is what the Virtual
- * Filesystem contains. This class is not intended for general
- * consumption. Please consult a physician before attempting to
- * use this class.
- */
-class ACE_Export ACE_Filecache_Object
-{
-public:
- friend class ACE_Filecache;
-
- /// Creates a file for reading.
- ACE_Filecache_Object (const ACE_TCHAR *filename,
- ACE_SYNCH_RW_MUTEX &lock,
- LPSECURITY_ATTRIBUTES sa = 0,
- int mapit = 1);
-
- /// Creates a file for writing.
- ACE_Filecache_Object (const ACE_TCHAR *filename,
- off_t size,
- ACE_SYNCH_RW_MUTEX &lock,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Only if reference count is zero should this be called.
- ~ACE_Filecache_Object (void);
-
- /// Increment the reference_count_.
- int acquire (void);
-
- /// Decrement the reference_count_.
- int release (void);
-
- // = error_ accessors
- int error (void) const;
- int error (int error_value,
- const ACE_TCHAR *s = ACE_LIB_TEXT ("ACE_Filecache_Object"));
-
- /// filename_ accessor
- const ACE_TCHAR *filename (void) const;
-
- /// handle_ accessor.
- ACE_HANDLE handle (void) const;
-
- /// Base memory address for memory mapped file.
- void *address (void) const;
-
- /// size_ accessor.
- off_t size (void) const;
-
- /// True if file on disk is newer than cached file.
- int update (void) const;
-
-protected:
- /// Prevent from being called.
- ACE_Filecache_Object (void);
-
- /// Common initialization code,
- void init (void);
-
-private:
- /// Internal error logging method, no locking.
- int error_i (int error_value,
- const ACE_TCHAR *s = ACE_LIB_TEXT ("ACE_Filecache_Object"));
-
-public:
-
- enum Creation_States
- {
- ACE_READING = 1,
- ACE_WRITING = 2
- };
-
- enum Error_Conditions
- {
- ACE_SUCCESS = 0,
- ACE_ACCESS_FAILED,
- ACE_OPEN_FAILED,
- ACE_COPY_FAILED,
- ACE_STAT_FAILED,
- ACE_MEMMAP_FAILED,
- ACE_WRITE_FAILED
- };
-
-private:
- /// The temporary file name and the real file name. The real file is
- /// copied into the temporary file for safety reasons.
- ACE_TCHAR *tempname_;
- ACE_TCHAR filename_[MAXPATHLEN + 1];
-
- /// Holds the memory mapped version of the temporary file.
- ACE_Mem_Map mmap_;
-
- /// The descriptor to the temporary file.
- ACE_HANDLE handle_;
-
- /// Used to compare against the real file to test if an update is needed.
- ACE_stat stat_;
- off_t size_;
-
- /// Status indicators.
- int action_;
- int error_;
-
- /// If set to 1, means the object is flagged for removal.
- int stale_;
-
- /// Security attribute object.
- LPSECURITY_ATTRIBUTES sa_;
-
- /// The default initializer
- ACE_SYNCH_RW_MUTEX junklock_;
-
- /// Provides a bookkeeping mechanism for users of this object.
- ACE_SYNCH_RW_MUTEX &lock_;
-};
-
-
-#include "ace/post.h"
-
-#endif /* ACE_FILECACHE_H */
diff --git a/ace/FlReactor.cpp b/ace/FlReactor.cpp
deleted file mode 100644
index 4ef65a42cc3..00000000000
--- a/ace/FlReactor.cpp
+++ /dev/null
@@ -1,331 +0,0 @@
-// $Id$
-
-#include "ace/FlReactor.h"
-
-ACE_RCSID(ace, FlReactor, "$Id$")
-
-#if defined (ACE_HAS_FL)
-
-#include "ace/Synch_T.h"
-#include /**/ <FL/Fl.h>
-
-ACE_ALLOC_HOOK_DEFINE (ACE_FlReactor)
-
-// Must be called with lock held
-ACE_FlReactor::ACE_FlReactor (size_t size,
- int restart,
- ACE_Sig_Handler *h)
- : ACE_Select_Reactor (size, restart, h)
-{
- // When the ACE_Select_Reactor is constructed it creates the notify
- // pipe and registers it with the register_handler_i() method. The
- // FlReactor overloads this method BUT because the
- // register_handler_i occurs when constructing the base class
- // ACE_Select_Reactor, the ACE_Select_Reactor register_handler_i()
- // is called not the FlReactor register_handler_i(). This means
- // that the notify pipe is registered with the ACE_Select_Reactor
- // event handling code not the FlReactor and so notfications don't
- // work. To get around this we simply close and re-opened the
- // notification handler in the constructor of the FlReactor.
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- this->notify_handler_->close ();
- this->notify_handler_->open (this, 0);
-#endif /* ACE_MT_SAFE */
-}
-
-ACE_FlReactor::~ACE_FlReactor (void)
-{
-}
-
-// This is just the <wait_for_multiple_events> from ace/Reactor.cpp
-// but we use the Fl functions to wait for an event, not <select>
-
-int
-ACE_FlReactor::wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &handle_set,
- ACE_Time_Value *max_wait_time)
-{
- ACE_TRACE ("ACE_FlReactor::wait_for_multiple_events");
- int nfound;
-
- do
- {
- max_wait_time = this->timer_queue_->calculate_timeout (max_wait_time);
-
- size_t width = this->handler_rep_.max_handlep1 ();
- handle_set.rd_mask_ = this->wait_set_.rd_mask_;
- handle_set.wr_mask_ = this->wait_set_.wr_mask_;
- handle_set.ex_mask_ = this->wait_set_.ex_mask_;
-
- // Check to make sure our handle's are all usable.
- ACE_Select_Reactor_Handle_Set temp_set = handle_set;
-
- ACE_Time_Value zero = ACE_Time_Value::zero;
- if (ACE_OS::select (width,
- temp_set.rd_mask_,
- temp_set.wr_mask_,
- temp_set.ex_mask_,
- &zero) == -1)
- return -1; // Bad file arguments...
-
- // Instead of waiting using <select>, just use the Fl mechanism
- // to wait for one or more events...
-
- // Wait for something to happen.
- double t = 0;
- if (max_wait_time != 0)
- t = max_wait_time->sec () + max_wait_time->usec () / 1000000.0F;
-
- while (t > 0) {
- t = Fl::wait (t);
- }
-
- // Reset the width, in case it changed during the upcalls.
- width = this->handler_rep_.max_handlep1 ();
-
- // Now actually read the result needed by the <Select_Reactor>
- // using <select>.
- zero = ACE_Time_Value::zero;
- nfound = ACE_OS::select (width,
- handle_set.rd_mask_,
- handle_set.wr_mask_,
- handle_set.ex_mask_,
- &zero);
-
- } while (nfound == -1 && this->handle_error () > 0);
-
- if (nfound > 0)
- {
-#if !defined (ACE_WIN32)
- handle_set.rd_mask_.sync (this->handler_rep_.max_handlep1 ());
- handle_set.wr_mask_.sync (this->handler_rep_.max_handlep1 ());
- handle_set.ex_mask_.sync (this->handler_rep_.max_handlep1 ());
-#endif /* ACE_WIN32 */
- }
- return nfound; // Timed out or input available
-}
-
-void
-ACE_FlReactor::fl_io_proc (int fd, void* reactor)
-{
- ACE_FlReactor *self = ACE_static_cast(ACE_FlReactor *, reactor);
- ACE_HANDLE handle = (ACE_HANDLE)fd; //ACE_reinterpret_cast(ACE_HANDLE, fd);
-
- // my copy isn't const.
- ACE_Time_Value zero = ACE_Time_Value::zero;
-
- ACE_Select_Reactor_Handle_Set wait_set;
-
- // Deal with one file event.
-
- // - read which kind of event
- if (self->wait_set_.rd_mask_.is_set (handle))
- wait_set.rd_mask_.set_bit (handle);
- if (self->wait_set_.wr_mask_.is_set (handle))
- wait_set.wr_mask_.set_bit (handle);
- if (self->wait_set_.ex_mask_.is_set (handle))
- wait_set.ex_mask_.set_bit (handle);
-
- int result = ACE_OS::select (fd + 1,
- wait_set.rd_mask_,
- wait_set.wr_mask_,
- wait_set.ex_mask_, &zero);
-
- ACE_Select_Reactor_Handle_Set dispatch_set;
-
- // - Use only that one file event (removes events for other files).
- if (result > 0)
- {
- if (wait_set.rd_mask_.is_set (handle))
- dispatch_set.rd_mask_.set_bit (handle);
- if (wait_set.wr_mask_.is_set (handle))
- dispatch_set.wr_mask_.set_bit (handle);
- if (wait_set.ex_mask_.is_set (handle))
- dispatch_set.ex_mask_.set_bit (handle);
-
- self->dispatch (1, dispatch_set);
- }
-}
-
-void
-ACE_FlReactor::fl_timeout_proc (void* reactor)
-{
- ACE_FlReactor *self = ACE_static_cast (ACE_FlReactor *, reactor);
-
- // Deal with any timer events
- ACE_Select_Reactor_Handle_Set handle_set;
- self->dispatch (0, handle_set);
- self->reset_timeout ();
-}
-
-
-int
-ACE_FlReactor::register_handler_i (ACE_HANDLE handle,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_FlReactor::register_handler_i");
-
- int result = ACE_Select_Reactor::register_handler_i (handle,
- handler, mask);
- if (result == -1)
- return -1;
-
- int condition = 0;
-
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK))
- ACE_SET_BITS (condition, FL_READ);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK))
- ACE_SET_BITS (condition, FL_WRITE);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
- ACE_SET_BITS (condition, FL_EXCEPT);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK))
- ACE_SET_BITS (condition, FL_READ);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK))
- {
- ACE_SET_BITS (condition, FL_WRITE); // connected, you may write
- ACE_SET_BITS (condition, FL_READ); // connected, you have data/err
- }
-
- if (condition != 0)
- {
- Fl::add_fd ((int)handle, // ACE_reinterpret_cast(int,handle),
- ACE_FlReactor::fl_io_proc,
- this);
- }
- return 0;
-}
-
-int
-ACE_FlReactor::register_handler_i (const ACE_Handle_Set &handles,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- return ACE_Select_Reactor::register_handler_i (handles,
- handler,
- mask);
-}
-
-int
-ACE_FlReactor::remove_handler_i (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_FlReactor::remove_handler_i");
-
- // In the registration phase we registered first with
- // ACE_Select_Reactor and then with X. Now we are now doing things
- // in reverse order.
-
- // First clean up the corresponding X11Input.
- Fl::remove_fd ((int)handle); // ACE_reinterpret_cast(int,handle));
-
- // Now let the reactor do its work.
- return ACE_Select_Reactor::remove_handler_i (handle,
- mask);
-}
-
-int
-ACE_FlReactor::remove_handler_i (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask mask)
-{
- return ACE_Select_Reactor::remove_handler_i (handles,
- mask);
-}
-
-// The following function ensures there's an Fl timeout for the first
-// timeout in the Reactor's Timer_Queue.
-
-void
-ACE_FlReactor::reset_timeout (void)
-{
- ACE_Time_Value *max_wait_time =
- this->timer_queue_->calculate_timeout (0);
-
- if (max_wait_time != 0)
- {
- float t = max_wait_time->sec ()
- + max_wait_time->usec () / 1000000.0F;
- Fl::add_timeout (t,
- ACE_FlReactor::fl_timeout_proc,
- this);
- }
-}
-
-int
-ACE_FlReactor::reset_timer_interval
- (long timer_id,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_FlReactor::reset_timer_interval");
- ACE_MT (ACE_GUARD_RETURN (ACE_Select_Reactor_Token, ace_mon, this->token_, -1));
-
- int result =
- ACE_Select_Reactor::reset_timer_interval (timer_id,
- interval);
-
- if (result == -1)
- return -1;
- else
- {
- this->reset_timeout ();
- return result;
- }
-}
-
-long
-ACE_FlReactor::schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_FlReactor::schedule_timer");
- ACE_MT (ACE_GUARD_RETURN (ACE_Select_Reactor_Token, ace_mon, this->token_, -1));
-
- long result = ACE_Select_Reactor::schedule_timer (event_handler,
- arg,
- delay,
- interval);
- if (result == -1)
- return -1;
- else
- {
- this->reset_timeout ();
- return result;
- }
-}
-
-int
-ACE_FlReactor::cancel_timer (ACE_Event_Handler *handler,
- int dont_call_handle_close)
-{
- ACE_TRACE ("ACE_FlReactor::cancel_timer");
-
- if (ACE_Select_Reactor::cancel_timer (handler,
- dont_call_handle_close) == -1)
- return -1;
- else
- {
- this->reset_timeout ();
- return 0;
- }
-}
-
-int
-ACE_FlReactor::cancel_timer (long timer_id,
- const void **arg,
- int dont_call_handle_close)
-{
- ACE_TRACE ("ACE_FlReactor::cancel_timer");
-
- if (ACE_Select_Reactor::cancel_timer (timer_id,
- arg,
- dont_call_handle_close) == -1)
- return -1;
- else
- {
- this->reset_timeout ();
- return 0;
- }
-}
-
-#endif /* ACE_HAS_FL */
diff --git a/ace/FlReactor.h b/ace/FlReactor.h
deleted file mode 100644
index 45a28dad46d..00000000000
--- a/ace/FlReactor.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file FlReactor.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@cs.wustl.edu>
- * @author Based in part in the ACE_XtReactor implementation by
- * @author Eric C. Newton's <ecn@clark.net>
- * @author Kirill Rybaltchenko <Kirill.Rybaltchenko@cern.ch>
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_FLREACTOR_H
-#define ACE_FLREACTOR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_FL)
-
-#include "ace/Select_Reactor.h"
-
-/**
- * @class ACE_FlReactor
- *
- * @brief A Reactor implementation that uses the Fast-Light (FL) toolkit
- * for event demultiplexing. This will let us integrate the FL
- * toolkit with ACE and/or TAO.
- *
- * As many other GUI toolkits FL supports a minimal set of
- * callbacks to handle event demultiplexing, namely simple methods
- * to add file descriptors to the event demuxing set or timeout
- * events. This class adapts this simple mechanisms so they are
- * compatible with ACE's Reactor.
- */
-class ACE_Export ACE_FlReactor : public ACE_Select_Reactor
-{
-
-public:
- // = Initialization and termination methods.
- ACE_FlReactor (size_t size = DEFAULT_SIZE,
- int restart = 0,
- ACE_Sig_Handler * = 0);
- virtual ~ACE_FlReactor (void);
-
- // = Timer operations.
- virtual long schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval);
- virtual int reset_timer_interval (long timer_id,
- const ACE_Time_Value &interval);
- virtual int cancel_timer (ACE_Event_Handler *handler,
- int dont_call_handle_close = 1);
- virtual int cancel_timer (long timer_id,
- const void **arg = 0,
- int dont_call_handle_close = 1);
-
-protected:
- // = Register timers/handles with Fl.
- /// Register a single <handler>.
- virtual int register_handler_i (ACE_HANDLE handle,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask);
-
- /// Register a set of <handlers>.
- virtual int register_handler_i (const ACE_Handle_Set &handles,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask);
-
- /// Remove the <handler> associated with this <handle>.
- virtual int remove_handler_i (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
- /// Remove a set of <handles>.
- virtual int remove_handler_i (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask);
-
- /// Wait for events to occur.
- virtual int wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &,
- ACE_Time_Value *);
-
-private:
- /// This method ensures there's an Fl timeout for the first timeout
- /// in the Reactor's Timer_Queue.
- void reset_timeout (void);
-
- // = Integrate with the FL callback function mechanism.
- static void fl_io_proc (int fd, void*);
- static void fl_timeout_proc (void*);
-
- /// Deny access since member-wise won't work...
- ACE_FlReactor (const ACE_FlReactor &);
- ACE_FlReactor &operator = (const ACE_FlReactor &);
-};
-
-#if defined(__ACE_INLINE__)
-#include "ace/FlReactor.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_FL */
-
-#include "ace/post.h"
-#endif /* ACE_FLREACTOR_H */
diff --git a/ace/FlReactor.i b/ace/FlReactor.i
deleted file mode 100644
index 74e88caa0c5..00000000000
--- a/ace/FlReactor.i
+++ /dev/null
@@ -1,2 +0,0 @@
-// $Id$
-
diff --git a/ace/Flag_Manip.cpp b/ace/Flag_Manip.cpp
deleted file mode 100644
index 0b644d88f9d..00000000000
--- a/ace/Flag_Manip.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-// $Id$
-
-#include "Flag_Manip.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Flag_Manip.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID(ace, Flag_Manip, "$Id$")
-
-// Flags are file status flags to turn on.
-
-int
-ACE_Flag_Manip::set_flags (ACE_HANDLE handle, int flags)
-{
- ACE_TRACE ("ACE_Flag_Manip::set_flags");
-#if defined (ACE_WIN32) || defined (VXWORKS) || defined (ACE_LACKS_FCNTL)
- switch (flags)
- {
- case ACE_NONBLOCK:
- // nonblocking argument (1)
- // blocking: (0)
- {
- u_long nonblock = 1;
- return ACE_OS::ioctl (handle, FIONBIO, &nonblock);
- }
- default:
- ACE_NOTSUP_RETURN (-1);
- }
-#else
- int val = ACE_OS::fcntl (handle, F_GETFL, 0);
-
- if (val == -1)
- return -1;
-
- // Turn on flags.
- ACE_SET_BITS (val, flags);
-
- if (ACE_OS::fcntl (handle, F_SETFL, val) == -1)
- return -1;
- else
- return 0;
-#endif /* ACE_WIN32 || ACE_LACKS_FCNTL */
-}
-
-// Flags are the file status flags to turn off.
-
-int
-ACE_Flag_Manip::clr_flags (ACE_HANDLE handle, int flags)
-{
- ACE_TRACE ("ACE_Flag_Manip::clr_flags");
-
-#if defined (ACE_WIN32) || defined (VXWORKS) || defined (ACE_LACKS_FCNTL)
- switch (flags)
- {
- case ACE_NONBLOCK:
- // nonblocking argument (1)
- // blocking: (0)
- {
- u_long nonblock = 0;
- return ACE_OS::ioctl (handle, FIONBIO, &nonblock);
- }
- default:
- ACE_NOTSUP_RETURN (-1);
- }
-#else
- int val = ACE_OS::fcntl (handle, F_GETFL, 0);
-
- if (val == -1)
- return -1;
-
- // Turn flags off.
- ACE_CLR_BITS (val, flags);
-
- if (ACE_OS::fcntl (handle, F_SETFL, val) == -1)
- return -1;
- else
- return 0;
-#endif /* ACE_WIN32 || ACE_LACKS_FCNTL */
-}
diff --git a/ace/Flag_Manip.h b/ace/Flag_Manip.h
deleted file mode 100644
index b9c5dc1cf91..00000000000
--- a/ace/Flag_Manip.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Flag_Manip.h
- *
- * $Id$
- *
- * This class includes the functions used for the Flag Manipulation.
- *
- * @author Priyanka Gontla <pgontla@doc.ece.uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_FLAG_MANIP_H
-#define ACE_FLAG_MANIP_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-class ACE_Export ACE_Flag_Manip
-{
- public:
-
- // = Set/get/clear various flags related to I/O HANDLE.
- /// Set flags associated with <handle>.
- static int set_flags (ACE_HANDLE handle,
- int flags);
-
- /// Clear flags associated with <handle>.
- static int clr_flags (ACE_HANDLE handle,
- int flags);
-
- /// Return the current setting of flags associated with <handle>.
- static int get_flags (ACE_HANDLE handle);
-
-
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Flag_Manip.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-#endif /* ACE_FLAG_MANIP_H */
diff --git a/ace/Flag_Manip.i b/ace/Flag_Manip.i
deleted file mode 100644
index b041e1f19d8..00000000000
--- a/ace/Flag_Manip.i
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Return flags currently associated with handle.
-
-ASYS_INLINE int
-ACE_Flag_Manip::get_flags (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Flag_Manip::get_flags");
-
-#if defined (ACE_LACKS_FCNTL)
- // ACE_OS::fcntl is not supported, e.g., on VxWorks. It
- // would be better to store ACE's notion of the flags
- // associated with the handle, but this works for now.
- ACE_UNUSED_ARG (handle);
- return 0;
-#else
- return ACE_OS::fcntl (handle, F_GETFL, 0);
-#endif /* ACE_LACKS_FCNTL */
-}
diff --git a/ace/Framework_Component.cpp b/ace/Framework_Component.cpp
deleted file mode 100644
index 9fd85b1e91d..00000000000
--- a/ace/Framework_Component.cpp
+++ /dev/null
@@ -1,272 +0,0 @@
-// Framework_Component.cpp
-// $Id$
-
-#include "ace/Framework_Component.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Framework_Component.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Object_Manager.h"
-#include "ace/Log_Msg.h"
-#include "ace/DLL_Manager.h"
-
-ACE_RCSID(ace, Framework_Component, "$Id$")
-
-ACE_Framework_Component::~ACE_Framework_Component (void)
-{
- ACE_TRACE ("ACE_Framework_Component::~ACE_Framework_Component");
-
- ACE::strdelete (ACE_const_cast (ACE_TCHAR*, this->dll_name_));
- ACE::strdelete (ACE_const_cast (ACE_TCHAR*, this->name_));
-}
-
-/***************************************************************/
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Framework_Repository)
-
-sig_atomic_t ACE_Framework_Repository::shutting_down_ = 0;
-
-// Pointer to the Singleton instance.
-ACE_Framework_Repository *ACE_Framework_Repository::repository_ = 0;
-
-ACE_Framework_Repository::~ACE_Framework_Repository (void)
-{
- ACE_TRACE ("ACE_Framework_Repository::~ACE_Framework_Repository");
- this->close ();
-}
-
-int
-ACE_Framework_Repository::open (int size)
-{
- ACE_TRACE ("ACE_Framework_Repository::open");
-
- ACE_Framework_Component **temp;
-
- ACE_NEW_RETURN (temp,
- ACE_Framework_Component *[size],
- -1);
-
- this->component_vector_ = temp;
- this->total_size_ = size;
- return 0;
-}
-
-int
-ACE_Framework_Repository::close (void)
-{
- ACE_TRACE ("ACE_Framework_Repository::close");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- this->shutting_down_ = 1;
-
- if (this->component_vector_ != 0)
- {
- // Delete components in reverse order.
- for (int i = this->current_size_ - 1; i >= 0; i--)
- if (this->component_vector_[i])
- {
- ACE_Framework_Component *s =
- ACE_const_cast (ACE_Framework_Component *,
- this->component_vector_[i]);
-
- this->component_vector_[i] = 0;
- delete s;
- }
-
- delete [] this->component_vector_;
- this->component_vector_ = 0;
- this->current_size_ = 0;
- }
-
- ACE_DLL_Manager::close_singleton ();
- return 0;
-}
-
-ACE_Framework_Repository *
-ACE_Framework_Repository::instance (int size)
-{
- ACE_TRACE ("ACE_Framework_Repository::instance");
-
- if (ACE_Framework_Repository::repository_ == 0)
- {
- // Perform Double-Checked Locking Optimization.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
- if (ACE_Framework_Repository::repository_ == 0)
- {
- if (ACE_Object_Manager::starting_up () ||
- !ACE_Object_Manager::shutting_down ())
- {
- ACE_NEW_RETURN (ACE_Framework_Repository::repository_,
- ACE_Framework_Repository (size),
- 0);
- }
- }
- }
-
- return ACE_Framework_Repository::repository_;
-}
-
-void
-ACE_Framework_Repository::close_singleton (void)
-{
- ACE_TRACE ("ACE_Framework_Repository::close_singleton");
-
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance ()));
-
- delete ACE_Framework_Repository::repository_;
- ACE_Framework_Repository::repository_ = 0;
-}
-
-int
-ACE_Framework_Repository::register_component (ACE_Framework_Component *fc)
-{
- ACE_TRACE ("ACE_Framework_Repository::register_component");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
- int i;
-
- // Check to see if it's already registered
- for (i = 0; i < this->current_size_; i++)
- if (this->component_vector_[i] &&
- fc->this_ == this->component_vector_[i]->this_)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("AFR::register_component: error, ")
- ACE_LIB_TEXT ("compenent already registered\n")),
- -1);
- }
-
- if (i < this->total_size_)
- {
- this->component_vector_[i] = fc;
- this->current_size_++;
- return 0;
- }
-
- return -1;
-}
-
-int
-ACE_Framework_Repository::remove_component (const ACE_TCHAR *name)
-{
- ACE_TRACE ("ACE_Framework_Repository::remove_component");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
- int i;
-
- for (i = 0; i < this->current_size_; i++)
- if (this->component_vector_[i] &&
- ACE_OS_String::strcmp (this->component_vector_[i]->name_, name) == 0)
- {
- delete this->component_vector_[i];
- this->component_vector_[i] = 0;
- this->compact ();
- return 0;
- }
-
- return -1;
-}
-
-int
-ACE_Framework_Repository::remove_dll_components (const ACE_TCHAR *dll_name)
-{
- ACE_TRACE ("ACE_Framework_Repository::remove_dll_components");
-
- if (this->shutting_down_)
- return this->remove_dll_components_i (dll_name);
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- return this->remove_dll_components_i (dll_name);
-}
-
-int
-ACE_Framework_Repository::remove_dll_components_i (const ACE_TCHAR *dll_name)
-{
- ACE_TRACE ("ACE_Framework_Repository::remove_dll_components_i");
-
- int i;
- int retval = -1;
-
- for (i = 0; i < this->current_size_; i++)
- if (this->component_vector_[i] &&
- ACE_OS_String::strcmp (this->component_vector_[i]->dll_name_, dll_name) == 0)
- {
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("AFR::remove_dll_components_i (%s) ")
- ACE_LIB_TEXT ("component \"%s\"\n"),
- dll_name, this->component_vector_[i]->name_));
- delete this->component_vector_[i];
- this->component_vector_[i] = 0;
- ++retval;
- }
-
- this->compact ();
-
- return retval == -1 ? -1 : 0;
-}
-
-void
-ACE_Framework_Repository::compact (void)
-{
- ACE_TRACE ("ACE_Framework_Repository::compact");
-
- int i;
- int start_hole;
- int end_hole;
-
- do
- {
- start_hole = this->current_size_;
- end_hole = this->current_size_;
-
- // Find hole
- for (i = 0; i < this->current_size_; ++i)
- {
- if (this->component_vector_[i] == 0)
- {
- if (start_hole == this->current_size_)
- {
- start_hole = i;
- end_hole = i;
- }
- else
- end_hole = i;
- }
- else if (end_hole != this->current_size_)
- break;
- }
-
- if (start_hole != this->current_size_)
- {
- // move the contents and reset current_size_
- while (end_hole + 1 < this->current_size_)
- {
- this->component_vector_[start_hole++] =
- this->component_vector_[++end_hole];
- }
- // Since start_hole is now one past the last
- // active slot.
- this->current_size_ = start_hole;
- }
-
- } while (start_hole != this->current_size_);
-}
-
-void
-ACE_Framework_Repository::dump (void) const
-{
- ACE_TRACE ("ACE_Framework_Repository::dump");
-}
-
-ACE_Framework_Repository::ACE_Framework_Repository (int size)
- : current_size_ (0)
-{
- ACE_TRACE ("ACE_Framework_Repository::ACE_Framework_Repository");
-
- if (this->open (size) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Framework_Repository")));
-}
diff --git a/ace/Framework_Component.h b/ace/Framework_Component.h
deleted file mode 100644
index f38204e1811..00000000000
--- a/ace/Framework_Component.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/* -*- C++ -*- */
-//=============================================================================
-/**
- * @file Framework_Component.h
- *
- * $Id$
- *
- * A prototype mechanism that allows framework components, singletons
- * such as ACE_Reactor, ACE_Proactor, etc, to be registered with a
- * central repository managed by the <ACE_Object_Manager> or
- * <ACE_Service_Config> that will handle destruction.
- *
- * This technique obviates changing ACE_Object_Manager and
- * ACE_Service_Config everytime a new framework is added. Which also
- * means that unused framework components don't need to linked into
- * the final application which is important for applications with
- * stringent footprint requirements.
- *
- * Framework components need only provide a static method,
- * close_singleton() and add the ACE_REGISTER_FRAMEWORK_COMPONENT macro
- * call to their instance() methods in order to participate. Components
- * that don't have a close_singleton() method can also participate via
- * template specialization of ACE_Framework_Component_T.
- *
- * This design uses the External Polymorphism pattern to avoid having
- * to derive all framework components from a common base class that
- * has virtual methods (this is crucial to avoid unnecessary overhead),
- * and is based on the dump debugging implementation found in
- * <ace/Dump.h>.
- *
- * @author Don Hinton <dhinton@ieee.org>.
- */
-//=============================================================================
-
-#ifndef ACE_FRAMEWORK_COMPONENT_H
-#define ACE_FRAMEWORK_COMPONENT_H
-#include "ace/pre.h"
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#define ACE_DEFAULT_FRAMEWORK_REPOSITORY_SIZE 1024
-
-/**
- * @class ACE_Framework_Component
- *
- * @brief Base class that defines a uniform interface for all managed
- * framework components.
- */
-class ACE_Export ACE_Framework_Component
-{
-public:
- friend class ACE_Framework_Repository;
-
- /// Constructor.
- ACE_Framework_Component (void *_this,
- const ACE_TCHAR *dll_name = 0,
- const ACE_TCHAR *name = 0);
-
- /// Close the contained singleton.
- virtual void close_singleton (void) = 0;
-
-protected:
- /// Destructor.
- virtual ~ACE_Framework_Component (void);
-
-private:
- /// Pointer to the actual component.
- const void *this_;
-
- /// Library associated with this component
- const ACE_TCHAR *dll_name_;
-
- /// Component name
- const ACE_TCHAR *name_;
-};
-
-/**
- * @class ACE_Framework_Repository
- *
- * @brief Contains all framework components used by an application.
- *
- * This class contains a vector of ACE_Framework_Component *'s. On
- * destruction, framework components are destroyed in the reverse order
- * that they were added originally.
- */
-class ACE_Export ACE_Framework_Repository
-{
-public:
- // This is just to silence a compiler warning about no public ctors
- friend class ACE_Framework_Component;
-
- enum
- {
- DEFAULT_SIZE = ACE_DEFAULT_FRAMEWORK_REPOSITORY_SIZE
- };
-
- /// Close down the repository and free up dynamically allocated
- /// resources.
- ~ACE_Framework_Repository (void);
-
- /// Initialize the repository.
- int open (int size = DEFAULT_SIZE);
-
- /// Close down the repository and free up dynamically allocated
- /// resources, also called by dtor.
- int close (void);
-
- /// Get pointer to a process-wide <ACE_Framework_Repository>.
- static ACE_Framework_Repository *instance
- (int size = ACE_Framework_Repository::DEFAULT_SIZE);
-
- /// Delete the dynamically allocated Singleton.
- static void close_singleton (void);
-
- // = Search structure operations (all acquire locks as necessary).
-
- /// Insert a new component. Returns -1 when the repository is full
- /// and 0 on success.
- int register_component (ACE_Framework_Component *fc);
-
- /// Remove a component. Returns -1 on error or if component not found
- /// and 0 on success.
- int remove_component (const ACE_TCHAR *name);
-
- /// Remove all components associated with a particular dll.
- int remove_dll_components (const ACE_TCHAR *dll_name);
-
- /// Return the current size of the repository.
- int current_size (void) const;
-
- /// Return the total size of the repository.
- int total_size (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- // = Initialization and termination methods.
-
- /// Initialize the repository.
- ACE_Framework_Repository (int size = ACE_Framework_Repository::DEFAULT_SIZE);
-
- /// Actually removes the dll components, must be called with locks held.
- int remove_dll_components_i (const ACE_TCHAR *dll_name);
-
- /// Compact component_vector_ after components have been removed__maintains
- /// order.
- void compact (void);
-
- /// Contains all the framework components.
- ACE_Framework_Component **component_vector_;
-
- /// Current number of components.
- int current_size_;
-
- /// Maximum number of components.
- int total_size_;
-
- /// Pointer to a process-wide ACE_Framework_Repository.
- static ACE_Framework_Repository *repository_;
-
- /// Flag set when repository is the process of shutting down. This
- /// is necessary to keep from self-deadlocking since some of
- /// the components might make calls back to the repository to
- /// unload their components, e.g., ACE_DLL_Manager.
- static sig_atomic_t shutting_down_;
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- /// Synchronization variable for the MT_SAFE Repository
- ACE_Thread_Mutex lock_;
-#endif /* ACE_MT_SAFE */
-
- /// Don't allow these to be called.
- ACE_UNIMPLEMENTED_FUNC (ACE_Framework_Repository (const ACE_Framework_Repository &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Framework_Repository &operator= (const ACE_Framework_Repository &))
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Framework_Component.inl"
-#endif /* __ACE_INLINE__ */
-
-// Include the templates classes at this point.
-#include "ace/Framework_Component_T.h"
-
-#include "ace/post.h"
-#endif /* ACE_FRAMEWORK_COMPONENT_H */
diff --git a/ace/Framework_Component.inl b/ace/Framework_Component.inl
deleted file mode 100644
index 30a30168ac7..00000000000
--- a/ace/Framework_Component.inl
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Framework_Component.inl
-
-#include "ace/ACE.h"
-
-ACE_INLINE
-ACE_Framework_Component::ACE_Framework_Component (void *_this,
- const ACE_TCHAR *dll_name,
- const ACE_TCHAR *name)
- : this_ (_this),
- dll_name_ (ACE::strnew (dll_name ? dll_name : ACE_LIB_TEXT (""))),
- name_ (ACE::strnew (name ? name : ACE_LIB_TEXT ("")))
-{
- ACE_TRACE ("ACE_Framework_Component::ctor");
-}
-
-/***************************************************************/
-
-ACE_INLINE int
-ACE_Framework_Repository::current_size (void) const
-{
- ACE_TRACE ("ACE_Framework_Repository::current_size");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, (ACE_Thread_Mutex &) this->lock_, -1));
- return this->current_size_;
-}
-
-ACE_INLINE int
-ACE_Framework_Repository::total_size (void) const
-{
- ACE_TRACE ("ACE_Framework_Repository::total_size");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, (ACE_Thread_Mutex &) this->lock_, -1));
- return this->total_size_;
-}
diff --git a/ace/Framework_Component_T.cpp b/ace/Framework_Component_T.cpp
deleted file mode 100644
index 4efef1ce831..00000000000
--- a/ace/Framework_Component_T.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-// Framework_Component_T.cpp
-// $Id$
-#ifndef ACE_FRAMEWORK_COMPONENT_T_CPP
-#define ACE_FRAMEWORK_COMPONENT_T_CPP
-
-#include "ace/Framework_Component_T.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Framework_Component_T.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Framework_Component_T, "$Id$")
-
-template <class Concrete>
-ACE_Framework_Component_T<Concrete>::ACE_Framework_Component_T (Concrete *concrete)
- : ACE_Framework_Component ((void *) concrete, concrete->dll_name (), concrete->name ())
-{
- ACE_TRACE ("ACE_Framework_Component_T<Concrete>::ctor");
-}
-
-template <class Concrete>
-ACE_Framework_Component_T<Concrete>::~ACE_Framework_Component_T (void)
-{
- ACE_TRACE ("ACE_Framework_Component_T<Concrete>::~ACE_Framework_Component_T");
- Concrete::close_singleton ();
-}
-
-template <class Concrete> void
-ACE_Framework_Component_T<Concrete>::close_singleton (void)
-{
- ACE_TRACE ("ACE_Framework_Component_T<Concrete>::close_singleton");
- Concrete::close_singleton ();
-}
-
-#endif /*ACE_FRAWORK_COMPONENT_T_CPP*/
diff --git a/ace/Framework_Component_T.h b/ace/Framework_Component_T.h
deleted file mode 100644
index 06267e9b7d7..00000000000
--- a/ace/Framework_Component_T.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- C++ -*- */
-//=============================================================================
-/**
- * @file Framework_Component_T.h
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- */
-//=============================================================================
-
-#ifndef ACE_FRAMEWORK_COMPONENT_T_H
-#define ACE_FRAMEWORK_COMPONENT_T_H
-#include "ace/pre.h"
-#include "ace/Framework_Component.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Framework_Component_T
- *
- * @brief This class inherits the interface of the abstract
- * ACE_Framework_Component class and is instantiated with the
- * implementation of the concrete component class <class Concrete>.
- *
- * This design is similar to the Adapter and Decorator patterns
- * from the ``Gang of Four'' book. Note that <class Concrete>
- * need not inherit from a common class since ACE_Framework_Component
- * provides the uniform virtual interface! (implementation based on
- * ACE_Dumpable_Adapter in <ace/Dump_T.h>.
- */
-template <class Concrete>
-class ACE_Framework_Component_T : public ACE_Framework_Component
-{
-public:
- // = Initialization and termination methods.
-
- /// Constructor.
- ACE_Framework_Component_T (Concrete *concrete);
-
- /// Destructor.
- ~ACE_Framework_Component_T (void);
-
- /// Close the contained singleton.
- void close_singleton (void);
-};
-
-// This macro should be called in the instance() method
-// of the Concrete class that will be managed. Along
-// with the appropriate template instantiation.
-#define ACE_REGISTER_FRAMEWORK_COMPONENT(CLASS, INSTANCE) \
- ACE_Framework_Repository::instance ()->register_component \
- (new ACE_Framework_Component_T<CLASS> (INSTANCE));
-
-#if defined (__ACE_INLINE__)
-#include "ace/Framework_Component_T.inl"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Framework_Component_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Framework_Component_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_FRAMEWORK_COMPONENT_T_H */
diff --git a/ace/Framework_Component_T.inl b/ace/Framework_Component_T.inl
deleted file mode 100644
index af30c0dde5d..00000000000
--- a/ace/Framework_Component_T.inl
+++ /dev/null
@@ -1,4 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Framework_Component_T.inl
diff --git a/ace/Free_List.cpp b/ace/Free_List.cpp
deleted file mode 100644
index 703e2f7f572..00000000000
--- a/ace/Free_List.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-// $Id$
-
-#ifndef ACE_FREE_LIST_C
-#define ACE_FREE_LIST_C
-
-#include "ace/Free_List.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Free_List.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Free_List, "$Id$")
-
-// Empty constructor
-
-template <class T>
-ACE_Free_List<T>::~ACE_Free_List (void)
-{
- // Nothing
-}
-
-// Default constructor that takes in a preallocation number
-// (<prealloc>), a low and high water mark (<lwm> and <hwm>) and an
-// increment value (<inc>)
-
-template <class T, class ACE_LOCK>
-ACE_Locked_Free_List<T, ACE_LOCK>::ACE_Locked_Free_List (int mode,
- size_t prealloc,
- size_t lwm,
- size_t hwm,
- size_t inc)
- : mode_ (mode),
- free_list_ (0),
- lwm_ (lwm),
- hwm_ (hwm),
- inc_ (inc),
- size_ (0)
-{
- this->alloc (prealloc);
-}
-
-// Destructor - removes all the elements from the free_list
-
-template <class T, class ACE_LOCK>
-ACE_Locked_Free_List<T, ACE_LOCK>::~ACE_Locked_Free_List (void)
-{
- if (this->mode_ != ACE_PURE_FREE_LIST)
- while (this->free_list_ != 0)
- {
- T *temp = this->free_list_;
- this->free_list_ = this->free_list_->get_next ();
- delete temp;
- }
-}
-
-// Allocates <n> extra nodes for the freelist
-
-template <class T, class ACE_LOCK> void
-ACE_Locked_Free_List<T, ACE_LOCK>::alloc (size_t n)
-{
- for (; n > 0; n--)
- {
- T *temp = 0;
- ACE_NEW (temp, T);
- temp->set_next (this->free_list_);
- this->free_list_ = temp;
- this->size_++;
- }
-}
-
-// Removes and frees <n> nodes from the freelist.
-
-template <class T, class ACE_LOCK> void
-ACE_Locked_Free_List<T, ACE_LOCK>::dealloc (size_t n)
-{
- for (; this->free_list_ != 0 && n > 0;
- n--)
- {
- T *temp = this->free_list_;
- this->free_list_ = this->free_list_->get_next ();
- delete temp;
- this->size_--;
- }
-}
-
-#endif /* ACE_FREE_LIST_C */
diff --git a/ace/Free_List.h b/ace/Free_List.h
deleted file mode 100644
index 339cc9b9200..00000000000
--- a/ace/Free_List.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Free_List.h
- *
- * $Id$
- *
- * @author Darrell Brunsch (brunsch@cs.wustl.edu)
- */
-//=============================================================================
-
-#ifndef ACE_FREE_LIST_H
-#define ACE_FREE_LIST_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch_T.h"
-
-/**
- * @class ACE_Free_List
- *
- * @brief Implements a free list.
- *
- * This class maintains a free list of nodes of type T.
- */
-template <class T>
-class ACE_Free_List
-{
-public:
- /// Destructor - removes all the elements from the free_list.
- virtual ~ACE_Free_List (void);
-
- /// Inserts an element onto the free list (if it isn't past the high
- /// water mark).
- virtual void add (T *element) = 0;
-
- /// Takes a element off the freelist and returns it. It creates
- /// <inc> new elements if the size is at or below the low water mark.
- virtual T *remove (void) = 0;
-
- /// Returns the current size of the free list.
- virtual size_t size (void) = 0;
-
- /// Resizes the free list to <newsize>.
- virtual void resize (size_t newsize) = 0;
-};
-
-/**
- * @class ACE_Locked_Free_List
- *
- * @brief Implements a free list.
- *
- * This class maintains a free list of nodes of type T. It
- * depends on the type T having a <get_next> and <set_next>
- * method. It maintains a mutex so the freelist can be used in
- * a multithreaded program .
- */
-template <class T, class ACE_LOCK>
-class ACE_Locked_Free_List : public ACE_Free_List<T>
-{
-public:
- // = Initialization and termination.
- /**
- * Constructor takes a <mode> (i.e., ACE_FREE_LIST_WITH_POOL or
- * ACE_PURE_FREE_LIST), a count of the number of nodes to
- * <prealloc>, a low and high water mark (<lwm> and <hwm>) that
- * indicate when to allocate more nodes, an increment value (<inc>)
- * that indicates how many nodes to allocate when the list must
- * grow.
- */
- ACE_Locked_Free_List (int mode = ACE_FREE_LIST_WITH_POOL,
- size_t prealloc = ACE_DEFAULT_FREE_LIST_PREALLOC,
- size_t lwm = ACE_DEFAULT_FREE_LIST_LWM,
- size_t hwm = ACE_DEFAULT_FREE_LIST_HWM,
- size_t inc = ACE_DEFAULT_FREE_LIST_INC);
-
- /// Destructor - removes all the elements from the free_list.
- virtual ~ACE_Locked_Free_List (void);
-
- /// Inserts an element onto the free list (if it isn't past the high
- /// water mark).
- virtual void add (T *element);
-
- /// Takes a element off the freelist and returns it. It creates
- /// <inc> new elements if the size is at or below the low water mark.
- virtual T *remove (void);
-
- /// Returns the current size of the free list.
- virtual size_t size (void);
-
- /// Resizes the free list to <newsize>.
- virtual void resize (size_t newsize);
-
-protected:
- /// Allocates <n> extra nodes for the freelist.
- virtual void alloc (size_t n);
-
- /// Removes and frees <n> nodes from the freelist.
- virtual void dealloc (size_t n);
-
- /// Free list operation mode, either ACE_FREE_LIST_WITH_POOL or
- /// ACE_PURE_FREE_LIST.
- int mode_;
-
- /// Pointer to the first node in the freelist.
- T *free_list_;
-
- /// Low water mark.
- size_t lwm_;
-
- /// High water mark.
- size_t hwm_;
-
- /// Increment value.
- size_t inc_;
-
- /// Keeps track of the size of the list.
- size_t size_;
-
- /// Synchronization variable for <ACE_Timer_Queue>.
- ACE_LOCK mutex_;
-
-private:
- // = Don't allow these operations for now.
- ACE_UNIMPLEMENTED_FUNC (ACE_Locked_Free_List (const ACE_Locked_Free_List<T, ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Locked_Free_List<T, ACE_LOCK> &))
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Free_List.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Free_List.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Free_List.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_FREE_LIST_H */
diff --git a/ace/Free_List.i b/ace/Free_List.i
deleted file mode 100644
index 7875592c8a9..00000000000
--- a/ace/Free_List.i
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// Inserts an element onto the free list (if we are allowed to manage
-// elements withing and it pasts the high water mark, delete the
-// element)
-
-template <class T, class ACE_LOCK> ACE_INLINE void
-ACE_Locked_Free_List<T, ACE_LOCK>::add (T *element)
-{
- ACE_MT (ACE_GUARD (ACE_LOCK, ace_mon, this->mutex_));
-
- // Check to see that we not at the high water mark.
- if (this->mode_ == ACE_PURE_FREE_LIST
- || this->size_ < this->hwm_)
- {
- element->set_next (this->free_list_);
- this->free_list_ = element;
- this->size_++;
- }
- else
- delete element;
-}
-
-// Takes a element off the freelist and returns it. It creates <inc>
-// new elements if we are allowed to do it and the size is at the low
-// water mark.
-
-template <class T, class ACE_LOCK> ACE_INLINE T *
-ACE_Locked_Free_List<T, ACE_LOCK>::remove (void)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, 0));
-
- // If we are at the low water mark, add some nodes
- if (this->mode_ != ACE_PURE_FREE_LIST && this->size_ <= this->lwm_)
- this->alloc (this->inc_);
-
- // Remove a node
- T *temp = this->free_list_;
-
- if (temp != 0)
- {
- this->free_list_ = this->free_list_->get_next ();
- this->size_--;
- }
-
- return temp;
-}
-
-
-// Returns the current size of the free list
-
-template <class T, class ACE_LOCK> ACE_INLINE size_t
-ACE_Locked_Free_List<T, ACE_LOCK>::size (void)
-{
- return this->size_;
-}
-
-// Resizes the free list to <newsize>
-
-template <class T, class ACE_LOCK> ACE_INLINE void
-ACE_Locked_Free_List<T, ACE_LOCK>::resize (size_t newsize)
-{
- ACE_MT (ACE_GUARD (ACE_LOCK, ace_mon, this->mutex_));
-
- // Check if we are allowed to resize
- if (this->mode_ != ACE_PURE_FREE_LIST)
- // Check to see if we grow or shrink
- if (newsize < this->size_)
- this->dealloc (this->size_ - newsize);
- else
- this->alloc (newsize - this->size_);
-}
-
-
diff --git a/ace/Functor.cpp b/ace/Functor.cpp
deleted file mode 100644
index d83ef473c6f..00000000000
--- a/ace/Functor.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Functor.cpp
-//
-// = DESCRIPTION
-// Non-inlinable method definitions for non-templatized classes
-// and template specializations implementing the GOF Command Pattern,
-// and STL-style functors.
-//
-// = AUTHOR
-// Chris Gill <cdgill@cs.wustl.edu>
-//
-// Based on Command Pattern implementations originally done by
-//
-// Carlos O'Ryan <coryan@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu> and
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// and on STL-style functor implementations originally done by
-//
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
-
-#if !defined (ACE_FUNCTOR_C)
-#define ACE_FUNCTOR_C
-
-#include "ace/Functor_T.h"
-#include "ace/Functor.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Functor.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Functor, "$Id$")
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_FUNCTOR_C */
diff --git a/ace/Functor.h b/ace/Functor.h
deleted file mode 100644
index 8a3d13df2a5..00000000000
--- a/ace/Functor.h
+++ /dev/null
@@ -1,464 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Functor.h
- *
- * $Id$
- *
- * Non-templatized classes and class template specializations for
- * implementing function objects that are used in various places
- * in ACE. There are currently two major categories of function
- * objects in ACE: GoF Command Pattern objects, and STL-style
- * functors for comparison of container elements. The command objects
- * are invoked via an execute () method, while the STL-style functors are
- * invoked via an operator() () method.
- * Non-templatized classes for implementing the GoF Command Pattern,
- * also known as functors or function objects.
- *
- *
- * @author Chris Gill <cdgill@cs.wustl.edu>
- * @author Based on Command Pattern implementations originally done by
- * @author Carlos O'Ryan <coryan@cs.wustl.edu>
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author Sergio Flores-Gaitan <sergio@cs.wustl.edu>
- * @author and on STL-style functor implementations originally done by
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- */
-//==========================================================================
-
-
-#ifndef ACE_FUNCTOR_H
-#define ACE_FUNCTOR_H
-#include "ace/pre.h"
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-//////////////////////////////////////////////////////////////
-// GOF Command Pattern Classes and Template Specializations //
-//////////////////////////////////////////////////////////////
-
-/**
- * @class ACE_Command_Base
- *
- * @brief Defines an abstract class that allows us to invoke commands
- * without knowing anything about the implementation.
- *
- * This class declares an interface to execute a command
- * independent of the effect of the command, or the objects used
- * to implement it.
- */
-class ACE_Export ACE_Command_Base
-{
-public:
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_Command_Base (void);
-
- /// Virtual destructor.
- virtual ~ACE_Command_Base (void);
-
- /**
- * Invokes the method encapsulated by the command, passing along the
- * passed argument (if any). Users of classes derived from this
- * class must ensure that the resulting invocation can tolerate a
- * null void pointer being passed, or otherwise ensure that this
- * will never occur.
- */
- virtual int execute (void *arg = 0) = 0;
-};
-
-////////////////////////////////////////////////////////////
-// STL-style Functor Classes and Template Specializations //
-////////////////////////////////////////////////////////////
-
-// Forward declaration since we are going to specialize that template
-// here. The template itself requires this file so every user of the
-// template should also see the specialization.
-template <class TYPE> class ACE_Hash;
-template <class TYPE> class ACE_Equal_To;
-template <class TYPE> class ACE_Less_Than;
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Hash<char>
- *
- * @brief Function object for hashing a char
- */
-class ACE_Export ACE_Hash<char>
-{
-public:
- /// Simply returns t
- u_long operator () (char t) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Hash<signed
- *
- * @brief Function object for hashing a signed char
- */
-class ACE_Export ACE_Hash<signed char>
-{
-public:
- /// Simply returns t
- u_long operator () (signed char t) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Hash<unsigned
- *
- * @brief Function object for hashing an unsigned char
- */
-class ACE_Export ACE_Hash<unsigned char>
-{
-public:
- /// Simply returns t
- u_long operator () (unsigned char t) const;
-};
-
-// @@ ADD HASHES FOR ACE TYPES
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Hash<ACE_INT16>
- *
- * @brief Function object for hashing a 16-bit signed number
- */
-class ACE_Export ACE_Hash<ACE_INT16>
-{
-public:
- /// Simply returns t
- u_long operator () (ACE_INT16 t) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Hash<ACE_UINT16>
- *
- * @brief Function object for hashing a 16-bit unsigned number
- */
-class ACE_Export ACE_Hash<ACE_UINT16>
-{
-public:
- /// Simply returns t
- u_long operator () (ACE_UINT16 t) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Hash<ACE_INT32>
- *
- * @brief Function object for hashing a 32-bit signed number
- */
-class ACE_Export ACE_Hash<ACE_INT32>
-{
-public:
- /// Simply returns t
- u_long operator () (ACE_INT32 t) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Hash<ACE_UINT32>
- *
- * @brief Function object for hashing a 32-bit unsigned number
- */
-class ACE_Export ACE_Hash<ACE_UINT32>
-{
-public:
- /// Simply returns t
- u_long operator () (ACE_UINT32 t) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Hash<ACE_UINT64>
- *
- * @brief Function object for hashing a 64-bit unsigned number
- */
-class ACE_Export ACE_Hash<ACE_UINT64>
-{
-public:
- /// Simply returns t
- u_long operator () (ACE_UINT64 t) const;
-};
-
-// @@ DONE ADDING HASHES FOR ACE TYPES
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Hash<const
- *
- * @brief Function object for hashing a const string
- */
-class ACE_Export ACE_Hash<const ACE_TCHAR *>
-{
-public:
- /// Calls ACE::hash_pjw
- u_long operator () (const ACE_TCHAR *t) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Hash<ACE_TCHAR
- *
- * @brief Function object for hashing a string
- */
-class ACE_Export ACE_Hash<ACE_TCHAR *>
-{
-public:
- /// Calls ACE::hash_pjw
- u_long operator () (const ACE_TCHAR *t) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Hash<void *>
- *
- * @brief Function object for hashing a void *
- */
-class ACE_Export ACE_Hash<void *>
-{
-public:
- u_long operator () (const void *) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Equal_To<const
- *
- * @brief Function object for determining whether two const strings are equal.
- */
-class ACE_Export ACE_Equal_To<const ACE_TCHAR *>
-{
-public:
- /// Simply calls ACE_OS::strcmp
- int operator () (const ACE_TCHAR *lhs,
- const ACE_TCHAR *rhs) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Equal_To<ACE_TCHAR
- *
- * @brief Function object for determining whether two non-const
- * strings are equal.
- */
-class ACE_Export ACE_Equal_To<ACE_TCHAR *>
-{
-public:
- /// Simply calls ACE_OS::strcmp
- int operator () (const ACE_TCHAR *lhs,
- const ACE_TCHAR *rhs) const;
-};
-
- ACE_TEMPLATE_SPECIALIZATION
- /**
- * @class ACE_Equal_To<ACE_UINT16>
- *
- * @brief Function object for determining whether two unsigned
- * 16 bit ints are equal.
- */
-class ACE_Export ACE_Equal_To<ACE_UINT16>
-{
-public:
- /// Simply calls built-in operators
- int operator () (const ACE_UINT16 lhs,
- const ACE_UINT16 rhs) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Equal_To<ACE_INT16>
- *
- * @brief Function object for determining whether two
- * 16 bit ints are equal.
- */
-class ACE_Export ACE_Equal_To<ACE_INT16>
-{
-public:
- /// Simply calls built-in operators
- int operator () (const ACE_INT16 lhs,
- const ACE_INT16 rhs) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Equal_To<ACE_UINT32>
- *
- * @brief Function object for determining whether two unsigned
- * 32 bit ints are equal.
- */
-class ACE_Export ACE_Equal_To<ACE_UINT32>
-{
-public:
- /// Simply calls built-in operators
- int operator () (const ACE_UINT32 lhs,
- const ACE_UINT32 rhs) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Equal_To<ACE_INT32>
- *
- * @brief Function object for determining whether two
- * 32 bit ints are equal.
- */
-class ACE_Export ACE_Equal_To<ACE_INT32>
-{
-public:
- /// Simply calls built-in operators
- int operator () (const ACE_INT32 lhs,
- const ACE_INT32 rhs) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Equal_To<ACE_UINT64>
- *
- * @brief Function object for determining whether two unsigned
- * 64 bit ints are equal.
- */
-class ACE_Export ACE_Equal_To<ACE_UINT64>
-{
-public:
- /// Simply calls built-in operators
- int operator () (const ACE_UINT64 lhs,
- const ACE_UINT64 rhs) const;
-};
-
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Less_Than<const
- *
- * @brief Function object for determining whether the first const string
- * is less than the second const string.
- */
-class ACE_Export ACE_Less_Than<const ACE_TCHAR *>
-{
-public:
- /// Simply calls ACE_OS::strcmp
- int operator () (const ACE_TCHAR *lhs,
- const ACE_TCHAR *rhs) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Less_Than<ACE_TCHAR
- *
- * @brief Function object for determining whether the first string
- * is less than the second string.
- */
-class ACE_Export ACE_Less_Than<ACE_TCHAR *>
-{
-public:
- /// Simply calls ACE_OS::strcmp
- int operator () (const ACE_TCHAR *lhs,
- const ACE_TCHAR *rhs) const;
-};
-
-#if defined (ACE_USES_WCHAR)
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Less_Than<const
- *
- * @brief Function object for determining whether the first const string
- * is less than the second const string.
- */
-class ACE_Export ACE_Less_Than<const ACE_ANTI_TCHAR *>
-{
-public:
- /// Simply calls ACE_OS::strcmp
- int operator () (const ACE_ANTI_TCHAR *lhs,
- const ACE_ANTI_TCHAR *rhs) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Less_Than<ACE_ANTI_TCHAR
- *
- * @brief Function object for determining whether the first string
- * is less than the second string.
- */
-class ACE_Export ACE_Less_Than<ACE_ANTI_TCHAR *>
-{
-public:
- /// Simply calls ACE_OS::strcmp
- int operator () (const ACE_ANTI_TCHAR *lhs,
- const ACE_ANTI_TCHAR *rhs) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Hash<const
- *
- * @brief Function object for hashing a const string
- */
-class ACE_Export ACE_Hash<const ACE_ANTI_TCHAR *>
-{
-public:
- /// Calls ACE::hash_pjw
- u_long operator () (const ACE_ANTI_TCHAR *t) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Hash<ACE_ANTI_TCHAR
- *
- * @brief Function object for hashing a string
- */
-class ACE_Export ACE_Hash<ACE_ANTI_TCHAR *>
-{
-public:
- /// Calls ACE::hash_pjw
- u_long operator () (const ACE_ANTI_TCHAR *t) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Equal_To<const
- *
- * @brief Function object for determining whether two const strings are equal.
- */
-class ACE_Export ACE_Equal_To<const ACE_ANTI_TCHAR *>
-{
-public:
- /// Simply calls ACE_OS::strcmp
- int operator () (const ACE_ANTI_TCHAR *lhs,
- const ACE_ANTI_TCHAR *rhs) const;
-};
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Equal_To<ACE_ANTI_TCHAR
- *
- * @brief Function object for determining whether two non-const
- * strings are equal.
- */
-class ACE_Export ACE_Equal_To<ACE_ANTI_TCHAR *>
-{
-public:
- /// Simply calls ACE_OS::strcmp
- int operator () (const ACE_ANTI_TCHAR *lhs,
- const ACE_ANTI_TCHAR *rhs) const;
-};
-
-#endif // ACE_USES_WCHAR
-
-#if defined (__ACE_INLINE__)
-#include "ace/Functor.i"
-#endif /* __ACE_INLINE__ */
-
-// Include the templates here.
-#include "ace/Functor_T.h"
-
-#include "ace/post.h"
-#endif /* ACE_FUNCTOR_H */
diff --git a/ace/Functor.i b/ace/Functor.i
deleted file mode 100644
index facd2c8916a..00000000000
--- a/ace/Functor.i
+++ /dev/null
@@ -1,241 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Functor.i
-//
-// = DESCRIPTION
-// Inlinable method definitions for non-templatized classes
-// and template specializations implementing the GOF Command Pattern,
-// and STL-style functors.
-//
-// = AUTHOR
-// Chris Gill <cdgill@cs.wustl.edu>
-//
-// Based on Command Pattern implementations originally done by
-//
-// Carlos O'Ryan <coryan@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu> and
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// and on STL-style functor implementations originally done by
-//
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
-
-//////////////////////////////////////////////////////////////
-// GOF Command Pattern Classes and Template Specializations //
-//////////////////////////////////////////////////////////////
-
-// Default constructor.
-
-ACE_INLINE
-ACE_Command_Base::ACE_Command_Base (void)
-{
-}
-
-// Virtaul destructor.
-
-ACE_INLINE
-ACE_Command_Base::~ACE_Command_Base (void)
-{
-}
-
-////////////////////////////////////////////////////////////
-// STL-style Functor Classes and Template Specializations //
-////////////////////////////////////////////////////////////
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE u_long
-ACE_Hash<char>::operator () (char t) const
-{
- return t;
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE u_long
-ACE_Hash<signed char>::operator () (signed char t) const
-{
- return t;
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE u_long
-ACE_Hash<unsigned char>::operator () (unsigned char t) const
-{
- return t;
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE u_long
-ACE_Hash<ACE_INT16>::operator () (ACE_INT16 t) const
-{
- return t;
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE u_long
-ACE_Hash<ACE_UINT16>::operator () (ACE_UINT16 t) const
-{
- return t;
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE u_long
-ACE_Hash<ACE_INT32>::operator () (ACE_INT32 t) const
-{
- return t;
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE u_long
-ACE_Hash<ACE_UINT32>::operator () (ACE_UINT32 t) const
-{
- return t;
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE u_long
-ACE_Hash<ACE_UINT64>::operator () (ACE_UINT64 t) const
-{
- return ACE_U64_TO_U32 (t);
-}
-
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE u_long
-ACE_Hash<const ACE_TCHAR *>::operator () (const ACE_TCHAR *t) const
-{
- return ACE::hash_pjw (t);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE u_long
-ACE_Hash<ACE_TCHAR *>::operator () (const ACE_TCHAR *t) const
-{
- return ACE::hash_pjw (t);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE u_long
-ACE_Hash<void *>::operator () (const void *t) const
-{
- return (u_long) t;
-}
-
-/***********************************************************************/
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE int
-ACE_Equal_To<const ACE_TCHAR *>::operator () (const ACE_TCHAR *lhs, const ACE_TCHAR *rhs) const
-{
- return !ACE_OS::strcmp (lhs, rhs);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE int
-ACE_Equal_To<ACE_TCHAR *>::operator () (const ACE_TCHAR *lhs, const ACE_TCHAR *rhs) const
-{
- return !ACE_OS::strcmp (lhs, rhs);
-}
-
-ACE_INLINE int
-ACE_Equal_To<ACE_UINT16>::operator () (const ACE_UINT16 lhs, const ACE_UINT16 rhs) const
-{
- return (lhs == rhs);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE int
-ACE_Equal_To<ACE_INT16>::operator () (const ACE_INT16 lhs, const ACE_INT16 rhs) const
-{
- return (lhs == rhs);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE int
-ACE_Equal_To<ACE_UINT32>::operator () (const ACE_UINT32 lhs, const ACE_UINT32 rhs) const
-{
- return (lhs == rhs);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE int
-ACE_Equal_To<ACE_INT32>::operator () (const ACE_INT32 lhs, const ACE_INT32 rhs) const
-{
- return (lhs == rhs);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE int
-ACE_Equal_To<ACE_UINT64>::operator () (const ACE_UINT64 lhs, const ACE_UINT64 rhs) const
-{
- return (lhs == rhs);
-}
-
-/****************************************************************************/
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE int
-ACE_Less_Than<const ACE_TCHAR *>::operator () (const ACE_TCHAR *lhs, const ACE_TCHAR *rhs) const
-{
- return (ACE_OS::strcmp (lhs, rhs) < 0) ? 1 : 0;
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE int
-ACE_Less_Than<ACE_TCHAR *>::operator () (const ACE_TCHAR *lhs, const ACE_TCHAR *rhs) const
-{
- return (ACE_OS::strcmp (lhs, rhs) < 0) ? 1 : 0;
-}
-
-
-#if defined (ACE_USES_WCHAR)
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE u_long
-ACE_Hash<const ACE_ANTI_TCHAR *>::operator () (const ACE_ANTI_TCHAR *t) const
-{
- return ACE::hash_pjw (t);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE u_long
-ACE_Hash<ACE_ANTI_TCHAR *>::operator () (const ACE_ANTI_TCHAR *t) const
-{
- return ACE::hash_pjw (t);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE int
-ACE_Equal_To<const ACE_ANTI_TCHAR *>::operator () (const ACE_ANTI_TCHAR *lhs, const ACE_ANTI_TCHAR *rhs) const
-{
- return !ACE_OS::strcmp (lhs, rhs);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE int
-ACE_Equal_To<ACE_ANTI_TCHAR *>::operator () (const ACE_ANTI_TCHAR *lhs, const ACE_ANTI_TCHAR *rhs) const
-{
- return !ACE_OS::strcmp (lhs, rhs);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE int
-ACE_Less_Than<const ACE_ANTI_TCHAR *>::operator () (const ACE_ANTI_TCHAR *lhs, const ACE_ANTI_TCHAR *rhs) const
-{
- return (ACE_OS::strcmp (lhs, rhs) < 0) ? 1 : 0;
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_INLINE int
-ACE_Less_Than<ACE_ANTI_TCHAR *>::operator () (const ACE_ANTI_TCHAR *lhs, const ACE_ANTI_TCHAR *rhs) const
-{
- return (ACE_OS::strcmp (lhs, rhs) < 0) ? 1 : 0;
-}
-
-#endif // ACE_USES_WCHAR
diff --git a/ace/Functor_T.cpp b/ace/Functor_T.cpp
deleted file mode 100644
index 73b183d0fd3..00000000000
--- a/ace/Functor_T.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_FUNCTOR_T_C
-#define ACE_FUNCTOR_T_C
-
-#include "ace/Functor_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Functor_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Functor_T, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Command_Callback)
-
-///////////////////////////////////
-// GOF Command Pattern Templates //
-///////////////////////////////////
-
-// Constructor.
-
-template <class RECEIVER, class ACTION>
-ACE_Command_Callback<RECEIVER, ACTION>::ACE_Command_Callback (RECEIVER &recvr,
- ACTION action)
- : receiver_ (recvr),
- action_ (action)
-{
-}
-
-template <class RECEIVER, class ACTION>
-ACE_Command_Callback<RECEIVER, ACTION>::~ACE_Command_Callback (void)
-{
-}
-
-// Invokes an operation.
-
-template <class RECEIVER, class ACTION> int
-ACE_Command_Callback<RECEIVER, ACTION>::execute (void *arg)
-{
- return (receiver_.*action_) (arg);
-}
-
-
-#endif /* ACE_FUNCTOR_T_C */
diff --git a/ace/Functor_T.h b/ace/Functor_T.h
deleted file mode 100644
index 32101c32abe..00000000000
--- a/ace/Functor_T.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Functor_T.h
- *
- * $Id$
- *
- * Templatized classes for implementing function objects that are
- * used in various places in ACE. There are currently two major
- * categories of function objects in ACE: GOF Command Pattern
- * objects, and STL-style functors for comparison of container
- * elements. The command objects are invoked via an <execute>
- * method, while the STL-style functors are invoked via an
- * <operator()> method.
- *
- *
- * @author Chris Gill <cdgill@cs.wustl.edu>
- * @author Based on Command Pattern implementations originally done by
- * @author Carlos O'Ryan <coryan@cs.wustl.edu>
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author Sergio Flores-Gaitan <sergio@cs.wustl.edu>
- * @author and on STL-style functor implementations originally done by
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_FUNCTOR_T_H
-#define ACE_FUNCTOR_T_H
-#include "ace/pre.h"
-
-#include "ace/Functor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-///////////////////////////////////
-// GOF Command Pattern Templates //
-///////////////////////////////////
-
-/**
- * @class ACE_Command_Callback
- *
- * @brief Defines a class template that allows us to invoke a GOF
- * command style callback to an object without knowing anything
- * about the object except its type.
- *
- * This class declares an interface to execute operations,
- * binding a RECEIVER object with an ACTION. The RECEIVER knows
- * how to implement the operation. A class can invoke operations
- * without knowing anything about it, or how it was implemented.
- */
-template <class RECEIVER, class ACTION>
-class ACE_Command_Callback : public ACE_Command_Base
-{
-public:
- /// Constructor: sets the <receiver_> of the Command to recvr, and the
- /// <action_> of the Command to <action>.
- ACE_Command_Callback (RECEIVER &recvr, ACTION action);
-
- /// Virtual destructor.
- virtual ~ACE_Command_Callback (void);
-
- /// Invokes the method <action_> from the object <receiver_>.
- virtual int execute (void *arg = 0);
-
-private:
- /// Object where the method resides.
- RECEIVER &receiver_;
-
- /// Method that is going to be invoked.
- ACTION action_;
-};
-
-/////////////////////////////////
-// STL-style Functor Templates //
-/////////////////////////////////
-
-/**
- * @class ACE_Hash
- *
- * @brief Function object for hashing
- */
-template <class TYPE>
-class ACE_Hash
-{
-public:
- /// Simply calls t.hash ()
- u_long operator () (const TYPE &t) const;
-};
-
-/**
- * @class ACE_Pointer_Hash
- *
- * @brief Function object for hashing pointers
- */
-template <class TYPE>
-class ACE_Pointer_Hash
-{
-public:
- /// Simply returns t.
- u_long operator () (TYPE t) const;
-};
-
-/**
- * @class ACE_Equal_To
- *
- * @brief Function object for comparing two objects of
- * the given type for equality.
- */
-template <class TYPE>
-class ACE_Equal_To
-{
-public:
- /// Simply calls operator==
- int operator () (const TYPE &lhs,
- const TYPE &rhs) const;
-};
-
-/**
- * @class ACE_Less_Than
- *
- * @brief Function object for determining whether the first object of
- * the given type is less than the second object of the same
- * type.
- */
-template <class TYPE>
-class ACE_Less_Than
-{
-public:
- /// Simply calls operator<
- int operator () (const TYPE &lhs,
- const TYPE &rhs) const;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Functor_T.i"
-#endif /* __ACE_INLINE__ */
-
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Functor_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Functor_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_FUNCTOR_T_H */
diff --git a/ace/Functor_T.i b/ace/Functor_T.i
deleted file mode 100644
index eaafc07e766..00000000000
--- a/ace/Functor_T.i
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-template <class TYPE> ACE_INLINE u_long
-ACE_Hash<TYPE>::operator () (const TYPE &t) const
-{
- return t.hash ();
-}
-
-template <class TYPE> ACE_INLINE u_long
-ACE_Pointer_Hash<TYPE>::operator () (TYPE t) const
-{
-#if defined (ACE_WIN64)
- // The cast below is legit... we only want a hash, and need not convert
- // the hash back to a pointer.
-# pragma warning(push)
-# pragma warning(disable : 4311) /* Truncate pointer to u_long */
-#endif /* ACE_WIN64 */
- return ACE_reinterpret_cast (u_long, t);
-#if defined (ACE_WIN64)
-# pragma warning(pop)
-#endif /* ACE_WIN64 */
-}
-
-template <class TYPE> ACE_INLINE int
-ACE_Equal_To<TYPE>::operator () (const TYPE &lhs,
- const TYPE &rhs) const
-{
- return lhs == rhs;
-}
-
-template <class TYPE> ACE_INLINE int
-ACE_Less_Than<TYPE>::operator () (const TYPE &lhs,
- const TYPE &rhs) const
-{
- return lhs < rhs ? 1 : 0;
-}
diff --git a/ace/Future.cpp b/ace/Future.cpp
deleted file mode 100644
index e50418cc804..00000000000
--- a/ace/Future.cpp
+++ /dev/null
@@ -1,444 +0,0 @@
-// $Id$
-
-#ifndef ACE_FUTURE_CPP
-#define ACE_FUTURE_CPP
-
-#include "ace/Future.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID (ace, Future, "$Id$")
-
-#if defined (ACE_HAS_THREADS)
-
-template <class T>
-ACE_Future_Holder<T>::ACE_Future_Holder (void)
-{
-}
-
-template <class T>
-ACE_Future_Holder<T>::ACE_Future_Holder (const ACE_Future<T> &item)
- : item_ (item)
-{
-}
-
-template <class T>
-ACE_Future_Holder<T>::~ACE_Future_Holder (void)
-{
-}
-
-template <class T>
-ACE_Future_Observer<T>::ACE_Future_Observer (void)
-{
-}
-
-template <class T>
-ACE_Future_Observer<T>::~ACE_Future_Observer (void)
-{
-}
-
-// Dump the state of an object.
-
-template <class T> void
-ACE_Future_Rep<T>::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG,
- "ref_count_ = %d\n",
- (int) this->ref_count_));
- ACE_DEBUG ((LM_INFO,"value_: \n"));
- if (this->value_)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" (NON-NULL)\n")));
- else
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" (NULL)\n")));
-
- ACE_DEBUG ((LM_INFO,"value_ready_: \n"));
- this->value_ready_.dump ();
- ACE_DEBUG ((LM_INFO,"value_ready_mutex_: \n"));
- this->value_ready_mutex_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class T> ACE_Future_Rep<T> *
-ACE_Future_Rep<T>::internal_create (void)
-{
- ACE_Future_Rep<T> *temp = 0;
- ACE_NEW_RETURN (temp,
- ACE_Future_Rep<T> (),
- 0);
- return temp;
-}
-
-template <class T> ACE_Future_Rep<T> *
-ACE_Future_Rep<T>::create (void)
-{
- // Yes set ref count to zero.
- ACE_Future_Rep<T> *temp = internal_create ();
-#if defined (ACE_NEW_THROWS_EXCEPTIONS)
- if (temp == 0)
- ACE_throw_bad_alloc;
-#else
- ACE_ASSERT (temp != 0);
-#endif /* ACE_NEW_THROWS_EXCEPTIONS */
- return temp;
- }
-
-
-template <class T> ACE_Future_Rep<T> *
-ACE_Future_Rep<T>::attach (ACE_Future_Rep<T>*& rep)
-{
- ACE_ASSERT (rep != 0);
- // Use value_ready_mutex_ for both condition and ref count management
- ACE_MT (ACE_Guard<ACE_Thread_Mutex> r_mon (rep->value_ready_mutex_));
- ++rep->ref_count_;
- return rep;
-}
-
-template <class T> void
-ACE_Future_Rep<T>::detach (ACE_Future_Rep<T>*& rep)
-{
- ACE_ASSERT (rep != 0);
- // Use value_ready_mutex_ for both condition and ref count management
- ACE_MT (ACE_GUARD (ACE_Thread_Mutex, r_mon, rep->value_ready_mutex_));
-
- if (rep->ref_count_-- == 0)
- {
- ACE_MT (r_mon.release ());
- // We do not need the lock when deleting the representation.
- // There should be no side effects from deleting rep and we don
- // not want to release a deleted mutex.
- delete rep;
- }
-}
-
-template <class T> void
-ACE_Future_Rep<T>::assign (ACE_Future_Rep<T>*& rep, ACE_Future_Rep<T>* new_rep)
-{
- ACE_ASSERT (rep != 0);
- ACE_ASSERT (new_rep != 0);
- // Use value_ready_mutex_ for both condition and ref count management
- ACE_MT (ACE_GUARD (ACE_Thread_Mutex, r_mon, rep->value_ready_mutex_));
-
- ACE_Future_Rep<T>* old = rep;
- rep = new_rep;
-
- // detached old last for exception safety
- if (old->ref_count_-- == 0)
- {
- ACE_MT (r_mon.release ());
- // We do not need the lock when deleting the representation.
- // There should be no side effects from deleting rep and we don
- // not want to release a deleted mutex.
- delete old;
- }
-}
-
-template <class T>
-ACE_Future_Rep<T>::ACE_Future_Rep (void)
- : value_ (0),
- ref_count_ (0),
- value_ready_ (this->value_ready_mutex_)
-{
-}
-
-template <class T>
-ACE_Future_Rep<T>::~ACE_Future_Rep (void)
-{
- delete this->value_;
-}
-
-template <class T> int
-ACE_Future_Rep<T>::ready (void) const
-{
- return this->value_ != 0;
-}
-
-template <class T> int
-ACE_Future_Rep<T>::set (const T &r,
- ACE_Future<T> &caller)
-{
- // If the value is already produced, ignore it...
- if (this->value_ == 0)
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex,
- ace_mon,
- this->value_ready_mutex_,
- -1));
- // Otherwise, create a new result value. Note the use of the
- // Double-checked locking pattern to avoid multiple allocations.
-
- if (this->value_ == 0) // Still no value, so proceed
- {
- ACE_NEW_RETURN (this->value_,
- T (r),
- -1);
-
- // Remove and notify all subscribed observers.
- ACE_TYPENAME OBSERVER_COLLECTION::iterator iterator =
- this->observer_collection_.begin ();
-
- ACE_TYPENAME OBSERVER_COLLECTION::iterator end =
- this->observer_collection_.end ();
-
- while (iterator != end)
- {
- OBSERVER *observer = *iterator++;
- observer->update (caller);
- }
-
- // Signal all the waiting threads.
- return this->value_ready_.broadcast ();
- }
- // Destructor releases the lock.
- }
- return 0;
-}
-
-template <class T> int
-ACE_Future_Rep<T>::get (T &value,
- ACE_Time_Value *tv) const
-{
- // If the value is already produced, return it.
- if (this->value_ == 0)
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon,
- ACE_const_cast (ACE_Thread_Mutex &, this->value_ready_mutex_),
- -1));
- // If the value is not yet defined we must block until the
- // producer writes to it.
-
- while (this->value_ == 0)
- // Perform a timed wait.
- if ((ACE_const_cast (ACE_Condition_Thread_Mutex &, this->value_ready_)).wait (tv) == -1)
- return -1;
-
- // Destructor releases the lock.
- }
-
- value = *this->value_;
- return 0;
-}
-
-template <class T> int
-ACE_Future_Rep<T>::attach (ACE_Future_Observer<T> *observer,
- ACE_Future<T> &caller)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->value_ready_mutex_, -1));
-
- // Otherwise, create a new result value. Note the use of the
- // Double-checked locking pattern to avoid corrupting the list.
-
- int result = 1;
-
- // If the value is already produced, then notify observer
- if (this->value_ == 0)
- result = this->observer_collection_.insert (observer);
- else
- observer->update (caller);
-
- return result;
-}
-
-template <class T> int
-ACE_Future_Rep<T>::detach (ACE_Future_Observer<T> *observer)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->value_ready_mutex_, -1));
-
- // Remove all occurrences of the specified observer from this
- // objects hash map.
- return this->observer_collection_.remove (observer);
-}
-
-template <class T>
-ACE_Future_Rep<T>::operator T ()
-{
- // If the value is already produced, return it.
- if (this->value_ == 0)
- {
- // Constructor of ace_mon acquires the mutex.
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->value_ready_mutex_, 0));
-
- // If the value is not yet defined we must block until the
- // producer writes to it.
-
- // Wait ``forever.''
-
- while (this->value_ == 0)
- if (this->value_ready_.wait () == -1)
- // What to do in this case since we've got to indicate
- // failure somehow? Exceptions would be nice, but they're
- // not portable...
- return 0;
-
- // Destructor releases the mutex
- }
-
- return *this->value_;
-}
-
-template <class T>
-ACE_Future<T>::ACE_Future (void)
- : future_rep_ (FUTURE_REP::create ())
-{
-}
-
-template <class T>
-ACE_Future<T>::ACE_Future (const ACE_Future<T> &r)
- : future_rep_ (FUTURE_REP::attach (((ACE_Future<T> &) r).future_rep_))
-{
-}
-
-template <class T>
-ACE_Future<T>::ACE_Future (const T &r)
- : future_rep_ (FUTURE_REP::create ())
-{
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT (" (%t) funny constructor\n")));
- this->future_rep_->set (r,
- *this);
-}
-
-template <class T>
-ACE_Future<T>::~ACE_Future (void)
-{
- FUTURE_REP::detach (future_rep_);
-}
-
-template <class T> int
-ACE_Future<T>::operator== (const ACE_Future<T> &r) const
-{
- return r.future_rep_ == this->future_rep_;
-}
-
-template <class T> int
-ACE_Future<T>::operator!= (const ACE_Future<T> &r) const
-{
- return r.future_rep_ != this->future_rep_;
-}
-
-template <class T> int
-ACE_Future<T>::cancel (const T &r)
-{
- this->cancel ();
- return this->future_rep_->set (r,
- *this);
-}
-
-template <class T> int
-ACE_Future<T>::cancel (void)
-{
- // If this ACE_Future is already attached to a ACE_Future_Rep,
- // detach it (maybe delete the ACE_Future_Rep).
- FUTURE_REP::assign (this->future_rep_,
- FUTURE_REP::create ());
- return 0;
-}
-
-template <class T> int
-ACE_Future<T>::set (const T &r)
-{
- // Give the pointer to the result to the ACE_Future_Rep.
- return this->future_rep_->set (r,
- *this);
-}
-
-template <class T> int
-ACE_Future<T>::ready (void) const
-{
- // We're ready if the ACE_Future_rep is ready...
- return this->future_rep_->ready ();
-}
-
-template <class T> int
-ACE_Future<T>::get (T &value,
- ACE_Time_Value *tv) const
-{
- // We return the ACE_Future_rep.
- return this->future_rep_->get (value, tv);
-}
-
-template <class T> int
-ACE_Future<T>::attach (ACE_Future_Observer<T> *observer)
-{
- return this->future_rep_->attach (observer, *this);
-}
-
-template <class T> int
-ACE_Future<T>::detach (ACE_Future_Observer<T> *observer)
-{
- return this->future_rep_->detach (observer);
-}
-
-template <class T>
-ACE_Future<T>::operator T ()
-{
- // note that this will fail (and COREDUMP!)
- // if future_rep_ == 0 !
- //
- // but...
- // this is impossible unless somebody is so stupid to
- // try something like this:
- //
- // Future<T> futT;
- // T t;
- // t = futT;
-
- // perform type conversion on Future_Rep.
- return *future_rep_;
-}
-
-template <class T> void
-ACE_Future<T>::operator = (const ACE_Future<T> &rhs)
-{
- // assignment:
- //
- // bind <this> to the same <ACE_Future_Rep> as <r>.
-
- // This will work if &r == this, by first increasing the ref count
- ACE_Future<T> &r = (ACE_Future<T> &) rhs;
- FUTURE_REP::assign (this->future_rep_,
- FUTURE_REP::attach (r.future_rep_));
-}
-
-template <class T> void
-ACE_Future<T>::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG,
- ACE_BEGIN_DUMP, this));
-
- if (this->future_rep_)
- this->future_rep_->dump ();
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_END_DUMP));
-}
-
-template <class T> ACE_Future_Rep<T> *
-ACE_Future<T>::get_rep ()
-{
- return this->future_rep_;
-}
-
-template <class T> void *
-ACE_Future<T>::operator new (size_t)
-{
- ACE_throw_bad_alloc;
-#if defined (__HP_aCC)
- return 0;
-#endif /* 0 */
-}
-
-template <class T> void
-ACE_Future<T>::operator delete (void *)
-{
-}
-
-template <class T> void
-ACE_Future<T>::operator & ()
-{
-}
-
-#endif /* ACE_HAS_THREADS */
-#endif /* ACE_FUTURE_CPP */
diff --git a/ace/Future.h b/ace/Future.h
deleted file mode 100644
index 4404d52feb6..00000000000
--- a/ace/Future.h
+++ /dev/null
@@ -1,385 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Future.h
- *
- * $Id$
- *
- * @author Andres Kruse <Andres.Kruse@cern.ch>
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author Per Andersson <Per.Andersson@hfera.ericsson.se> and
- * @author John Tucker <johnny_tucker@yahoo.com>
- */
-//=============================================================================
-
-#ifndef ACE_FUTURE_H
-#define ACE_FUTURE_H
-#include "ace/pre.h"
-
-#include "ace/Unbounded_Set.h"
-#include "ace/Synch.h"
-#include "ace/Strategies_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_THREADS)
-
-// Forward decl.
-template <class T> class ACE_Future_Holder;
-template <class T> class ACE_Future_Observer;
-template <class T> class ACE_Future_Rep;
-template <class T> class ACE_Future;
-
-/**
- * @class ACE_Future_Holder
- *
- * @brief Implementation of object which has holds ACE_Future.
- */
-template <class T>
-class ACE_Future_Holder
-{
-public:
- ACE_Future_Holder (const ACE_Future<T> &future);
- ~ACE_Future_Holder (void);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- ACE_Future<T> item_;
-
-protected:
- ACE_Future_Holder (void);
-};
-
-/**
- * @class ACE_Future_Observer
- *
- * @brief ACE_Future_Observer<T>
- *
- * An ACE_Future_Observer object implements an object that is
- * subscribed with an ACE_Future object so that it may be
- * notified when the value of the ACE_Future object is
- * written to by a writer thread.
- * It uses the Observer pattern
- */
-template <class T>
-class ACE_Future_Observer
-{
-public:
- /// Destructor
- virtual ~ACE_Future_Observer (void);
-
- /// Called by the ACE_Future in which we are subscribed to when
- /// its value is written to.
- virtual void update (const ACE_Future<T> &future) = 0;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-protected:
-
- /// Constructor
- ACE_Future_Observer (void);
-};
-
-/**
- * @class ACE_Future_Rep
- *
- * @internal
- *
- * @brief ACE_Future_Rep<T>
- *
- * An ACE_Future_Rep<T> object encapsules a pointer to an object
- * of class T which is the result of an asynchronous method
- * invocation. It is pointed to by ACE_Future<T> object[s] and
- * only accessible through them.
- */
-template <class T>
-class ACE_Future_Rep
-{
-private:
- friend class ACE_Future<T>;
-
- /**
- * Set the result value. The specified <caller> represents the
- * future that invoked this <set> method, which is used to notify
- * the list of future observers. Returns 0 for success, -1 on error.
- * This function only has an effect the first time it is called for
- * the object. Subsequent calls return 0 (success) but have no effect.
- */
- int set (const T &r,
- ACE_Future<T> &caller);
-
- /// Wait up to <tv> time to get the <value>. Note that <tv> must be
- /// specified in absolute time rather than relative time.
- int get (T &value,
- ACE_Time_Value *tv) const;
-
- /**
- * Attaches the specified observer to a subject (i.e., the <ACE_Future_Rep>).
- * The update method of the specified subject will be invoked with a copy of
- * the written-to <ACE_Future> as input when the result gets set.
- *
- * Returns 0 if the observer is successfully attached, 1 if the
- * observer is already attached, and -1 if failures occur.
- */
- int attach (ACE_Future_Observer<T> *observer,
- ACE_Future<T> &caller);
-
- /**
- * Detaches the specified observer from a subject (i.e., the <ACE_Future_Rep>).
- * The update method of the specified subject will not be invoked when the
- * <ACE_Future_Rep>s result gets set. Returns 1 if the specified observer was
- * actually attached to the subject prior to this call and 0 if was not.
- *
- * Returns 0 if the observer was successfully detached, and -1 if the
- * observer was not attached in the first place.
- */
- int detach (ACE_Future_Observer<T> *observer);
-
- /**
- * Type conversion. will block forever until the result is
- * available. Note that this method is going away in a subsequent
- * release since it doesn't distinguish between failure results and
- * success results (exceptions should be used, but they aren't
- * portable...). The <get> method should be used instead since it
- * separates the error value from the result, and also permits
- * timeouts.
- */
- operator T ();
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- // = Encapsulate reference count and object lifetime of instances.
-
- // These methods must go after the others to work around a bug with
- // Borland's C++ Builder...
-
- /// Allocate a new ACE_Future_Rep<T> instance, returning NULL if it
- /// cannot be created.
- static ACE_Future_Rep<T> *internal_create (void);
-
- /// Create a ACE_Future_Rep<T> and initialize the reference count.
- static ACE_Future_Rep<T> *create (void);
-
- /**
- * Increase the reference count and return argument. Uses the
- * attribute "value_ready_mutex_" to synchronize reference count
- * updating.
- *
- * Precondition (rep != 0).
- */
- static ACE_Future_Rep<T> *attach (ACE_Future_Rep<T> *&rep);
-
- /**
- * Decreases the reference count and deletes rep if there are no
- * more references to rep.
- *
- * Precondition (rep != 0)
- */
- static void detach (ACE_Future_Rep<T> *&rep);
-
- /**
- * Decreases the rep's reference count and deletes rep if there
- * are no more references to rep. Then assigns new_rep to rep.
- *
- * Precondition (rep != 0 && new_rep != 0)
- */
- static void assign (ACE_Future_Rep<T> *&rep,
- ACE_Future_Rep<T> *new_rep);
-
- /// Is result available?
- int ready (void) const;
-
- /// Pointer to the result.
- T *value_;
-
- /// Reference count.
- int ref_count_;
-
- typedef ACE_Future_Observer<T>
- OBSERVER;
-
- typedef ACE_Unbounded_Set<OBSERVER *>
- OBSERVER_COLLECTION;
-
- /// Keep a list of ACE_Future_Observers unread by client's reader thread.
- OBSERVER_COLLECTION observer_collection_;
-
- // = Condition variable and mutex that protect the <value_>.
- ACE_Thread_Mutex value_ready_mutex_;
- ACE_Condition_Thread_Mutex value_ready_;
-
-private:
- // = Constructor and destructor private.
- ACE_Future_Rep (void);
- ~ACE_Future_Rep (void);
-};
-
-/**
- * @class ACE_Future
- *
- * @brief This class implements a ``single write, multiple read''
- * pattern that can be used to return results from asynchronous
- * method invocations.
- */
-template <class T>
-class ACE_Future
-{
-public:
- // = Initialization and termination methods.
- /// Constructor.
- ACE_Future (void);
-
- /// Copy constructor binds @a this and @a r to the same
- /// ACE_Future_Rep. An ACE_Future_Rep is created if necessary.
- ACE_Future (const ACE_Future<T> &r);
-
- /// Constructor that initialises an ACE_Future to point to the
- /// result @a r immediately.
- ACE_Future (const T &r);
-
- /// Destructor.
- ~ACE_Future (void);
-
- /// Assignment operator that binds @a this and @a r to the same
- /// ACE_Future_Rep. An ACE_Future_Rep is created if necessary.
- void operator = (const ACE_Future<T> &r);
-
- /// Cancel an ACE_Future and assign the value @a r. It is used if a
- /// client does not want to wait for the value to be produced.
- int cancel (const T &r);
-
- /**
- * Cancel an ACE_Future. Put the future into its initial
- * state. Returns 0 on succes and -1 on failure. It is now possible
- * to reuse the ACE_Future. But remember, the ACE_Future
- * is now bound to a new ACE_Future_Rep.
- */
- int cancel (void);
-
- /**
- * Equality operator that returns 1 if both ACE_Future objects
- * point to the same ACE_Future_Rep object. Attention: It also
- * returns 1 if both objects have just been instantiated and not
- * used yet.
- */
- int operator == (const ACE_Future<T> &r) const;
-
- /// Inequality operator, which is the opposite of equality.
- int operator != (const ACE_Future<T> &r) const;
-
- /**
- * Make the result available. Is used by the server thread to give
- * the result to all waiting clients. Returns 0 for success, -1 on failure.
- * This function only has an effect the first time it is called for
- * the object (actually, the first time the underlying ACE_Future_Rep has a
- * value assigned to it). Subsequent calls return 0 (success) but have no
- * effect.
- */
- int set (const T &r);
-
- /**
- * Wait to get the object's value.
- *
- * @param value Receives the value of this ACE_Future when it is set.
- * @param tv Pointer to an ACE_Time_Value containing the absolute
- * time to wait until for the value to be set. If @a tv
- * is 0, the call waits indefinitely for the value to be
- * set, unless an error occurs.
- *
- * @retval 0 Success; @a value contains the value of the ACE_Future.
- * @retval -1 Error; check ACE_OS::last_error() for an error code.
- */
- int get (T &value,
- ACE_Time_Value *tv = 0) const;
-
- /**
- * @deprecated Note that this method is going away in a subsequent
- * release since it doesn't distinguish between failure
- * results and success results (exceptions should be
- * used, but they aren't portable...).
- * Type conversion, which obtains the result of the asynchronous
- * method invocation. Will block forever. The get() method should be
- * used instead since it separates the error value from the result,
- * and also permits timeouts.
- */
- operator T ();
-
- /// Check if the result is available.
- int ready (void) const;
-
- /**
- * Attaches the specified observer to a subject (this ACE_Future).
- * The update method of the specified subject will be invoked with a copy of
- * the associated ACE_Future as input when the result gets set. If the
- * result is already set when this method gets invoked, then the update
- * method of the specified subject will be invoked immediately.
- *
- * @param observer The observer to attach to the subject.
- *
- * @retval 0 Success.
- * @retval 1 The observer was already attached.
- * @retval -1 Error; check ACE_OS::last_error() for an error code.
- */
- int attach (ACE_Future_Observer<T> *observer);
-
- /**
- * Detaches the specified observer from a subject (this ACE_Future).
- * The update method of the specified subject will not be invoked when the
- * ACE_Future_Rep result gets set.
- *
- * @param observer The observer to attach to the subject.
- *
- * @retval 0 The observer was successfully detached.
- * @retval -1 Error, including the observer not attached prior
- * to calling this method.
- */
- int detach (ACE_Future_Observer<T> *observer);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /**
- * Get the underlying ACE_Future_Rep pointer. Note that this method should
- * rarely, if ever, be used and that modifying the underlying
- * ACE_Future_Rep should be done with extreme caution.
- */
- ACE_Future_Rep<T> *get_rep (void);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Do not allow new operator.
- void *operator new (size_t nbytes);
-
- /// Do not allow delete operator
- void operator delete (void *);
-
- /// Do not allow address-of operator.
- void operator & ();
-
- // the ACE_Future_Rep
- /// Protect operations on the <Future>.
- typedef ACE_Future_Rep<T> FUTURE_REP;
- FUTURE_REP *future_rep_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Future.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Future.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* ACE_HAS_THREADS */
-#include "ace/post.h"
-#endif /* ACE_FUTURE_H */
diff --git a/ace/Future_Set.cpp b/ace/Future_Set.cpp
deleted file mode 100644
index 5b0069fac4f..00000000000
--- a/ace/Future_Set.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-// Future.cpp
-// $Id$
-
-#ifndef ACE_FUTURE_SET_CPP
-#define ACE_FUTURE_SET_CPP
-
-#include "ace/Future_Set.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID (ace, Future_Set, "$Id$")
-
-#if defined (ACE_HAS_THREADS)
-
-template <class T>
-ACE_Future_Set<T>::ACE_Future_Set (ACE_Message_Queue<ACE_SYNCH> *new_queue)
- : delete_queue_ (0)
-{
- if (new_queue)
- this->future_notification_queue_ = new_queue;
- else
- {
- ACE_NEW (this->future_notification_queue_,
- ACE_Message_Queue<ACE_SYNCH>);
- this->delete_queue_ = 1;
- }
-}
-
-template <class T>
-ACE_Future_Set<T>::~ACE_Future_Set (void)
-{
- // Detach ourselves from all remaining futures, if any, in our map.
- ACE_TYPENAME FUTURE_HASH_MAP::iterator iterator =
- this->future_map_.begin ();
-
- ACE_TYPENAME FUTURE_HASH_MAP::iterator end =
- this->future_map_.end ();
-
- for (;
- iterator != end;
- ++iterator)
- {
- FUTURE_HOLDER *future_holder = (*iterator).int_id_;
- future_holder->item_.detach (this);
- delete future_holder;
- }
-
- if (this->delete_queue_ != 0)
- delete this->future_notification_queue_;
-}
-
-template <class T> int
-ACE_Future_Set<T>::is_empty () const
-{
- return (((ACE_Future_Set<T>*)this)->future_map_.current_size () == 0 );
-}
-
-template <class T> int
-ACE_Future_Set<T>::insert (ACE_Future<T> &future)
-{
- FUTURE_HOLDER *future_holder;
- ACE_NEW_RETURN (future_holder,
- FUTURE_HOLDER (future),
- -1);
-
- FUTURE_REP *future_rep = future.get_rep ();
- int result = this->future_map_.bind (future_rep,
- future_holder);
-
- // If a new map entry was created, then attach to the future,
- // otherwise we were already attached to the future or some error
- // occurred so just delete the future holder.
- if ( result == 0 )
- // Attach ourself to the ACE_Futures list of observer
- future.attach (this);
- else
- delete future_holder;
-
- return result;
-}
-
-template <class T> void
-ACE_Future_Set<T>::update (const ACE_Future<T> &future)
-{
- ACE_Message_Block *mb;
- FUTURE &local_future = ACE_const_cast (ACE_Future<T> &, future);
-
- ACE_NEW (mb,
- ACE_Message_Block ((char *) local_future.get_rep (), 0));
-
- // Enqueue in priority order.
- this->future_notification_queue_->enqueue (mb, 0);
-}
-
-template <class T> int
-ACE_Future_Set<T>::next_readable (ACE_Future<T> &future,
- ACE_Time_Value *tv)
-{
- if (this->is_empty ())
- return 0;
-
- ACE_Message_Block *mb = 0;
- FUTURE_REP *future_rep = 0;
-
- // Wait for a "readable future" signal from the message queue.
- if (this->future_notification_queue_->dequeue_head (mb,
- tv) != -1)
- {
- // Extract future rep from the message block.
- future_rep =
- ACE_reinterpret_cast (FUTURE_REP *,
- mb->base ());
-
- // Delete the message block.
- mb->release ();
- }
- else
- return 0;
-
- // Remove the hash map entry with the specified future rep from our map.
- FUTURE_HOLDER *future_holder;
- if ( this->future_map_.find (future_rep,
- future_holder) != -1 )
- {
- future = future_holder->item_;
- this->future_map_.unbind (future_rep);
- delete future_holder;
- return 1;
- }
-
- return 0;
-}
-
-#endif /* ACE_HAS_THREADS */
-#endif /* ACE_FUTURE_SET_CPP */
diff --git a/ace/Future_Set.h b/ace/Future_Set.h
deleted file mode 100644
index 14ad83245bd..00000000000
--- a/ace/Future_Set.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Future_Set.h
- *
- * $Id$
- *
- * @author John Tucker <jtucker@infoglide.com>
- */
-//=============================================================================
-
-#ifndef ACE_FUTURE_SET_H
-#define ACE_FUTURE_SET_H
-#include "ace/pre.h"
-
-#include "ace/Thread.h"
-#include "ace/Message_Queue.h"
-#include "ace/Future.h"
-#include "ace/Hash_Map_Manager_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_THREADS)
-
-/**
- * @class ACE_Future_Set
- *
- * @brief This class implements a mechanism which allows the values of
- * a collection of ACE_Future objects to be accessed by reader threads
- * as they become available. The caller(s) provide the ACE_Future_Set
- * (i.e. the observer...) with the collection of ACE_Future objects
- * (i.e. the subjects...) that are to be observed using the
- * the ACE_Future_Set::insert() method. The caller(s) may then iterate
- * over the collection in the order in which they become readable using
- * the ACE_Future_Set::next_readable() method.
- */
-template <class T>
-class ACE_Future_Set : public ACE_Future_Observer<T>
-{
-public:
- // = Initialization and termination methods.
-
- /// Constructor.
- ACE_Future_Set (ACE_Message_Queue<ACE_SYNCH> *future_notification_queue_ = 0);
-
- /// Destructor.
- ~ACE_Future_Set (void);
-
- /**
- * Return 1 if their are no ACE_Future objects left on its queue and
- * 0 otherwise.
- *
- * When an ACE_Future_Set has no ACE_Future>subjects to observe it is
- * empty. The ACE_Future_Set is in the empty state when either the caller(s)
- * have retrieved every readable ACE_Future subject assigned the
- * ACE_Future_Set via the ACE_Future_Set::next_readable() method,
- * or when the ACE_Future_Set has not been assigned any subjects.
- */
- int is_empty (void) const;
-
- /**
- * Enqueus the given ACE_Future into this objects queue when it is
- * readable.
- *
- * Returns 0 if the future is successfully inserted, 1 if the
- * future is already inserted, and -1 if failures occur.
- */
- int insert (ACE_Future<T> &future);
-
- /**
- * Wait up to <tv> time to get the <value>. Note that <tv> must be
- * specified in absolute time rather than relative time.); get the
- * next <ACE_Future> that is readable. If <tv> = 0, the will block
- * forever.
- *
- * If a readable future becomes available, then the input
- * <ACE_Future> object param will be assigned with it and 1 will
- * be returned. If the <ACE_Future_Set> is empty (i.e. see definition
- * of <ACE_Future_Set::is_empty>), then 0 is returned.
- *
- * When a readable <ACE_Future> object is retrieved via the
- * <ACE_Future_Set::next_readable> method, the <ACE_Future_Set> will
- * remove that <ACE_Future> object from its list of subjects.
- */
- int next_readable (ACE_Future<T> &result,
- ACE_Time_Value *tv = 0);
-
- /// Called by the ACE_Future subject in which we are subscribed to
- /// when its value is written to.
- virtual void update (const ACE_Future<T> &future);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Future_Set<T> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Future_Set (const ACE_Future_Set<T> &))
-
- typedef ACE_Future<T> FUTURE;
-
- typedef ACE_Future_Rep<T> FUTURE_REP;
-
- typedef ACE_Future_Holder<T> FUTURE_HOLDER;
-
- typedef ACE_Pointer_Hash<FUTURE_REP *> FUTURE_REP_HASH;
-
- typedef ACE_Equal_To<FUTURE_REP *> FUTURE_REP_COMPARE;
-
- typedef ACE_Hash_Map_Manager_Ex<FUTURE_REP *,
- FUTURE_HOLDER *,
- FUTURE_REP_HASH,
- FUTURE_REP_COMPARE,
- ACE_Null_Mutex> FUTURE_HASH_MAP;
-
- /// Map of <ACE_Futures>, subjects, which have not been written to by
- /// client's writer thread.
- FUTURE_HASH_MAP future_map_;
-
- /// Message queue for notifying the reader thread of <ACE_Futures> which
- /// have been written to by client's writer thread.
- ACE_Message_Queue<ACE_SYNCH> *future_notification_queue_;
-
- /// Keeps track of whether we need to delete the message queue.
- int delete_queue_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Future_Set.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Future_Set.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* ACE_HAS_THREADS */
-#include "ace/post.h"
-#endif /* ACE_FUTURE_SET_H */
diff --git a/ace/Get_Opt.cpp b/ace/Get_Opt.cpp
deleted file mode 100644
index a5096eaa122..00000000000
--- a/ace/Get_Opt.cpp
+++ /dev/null
@@ -1,726 +0,0 @@
-// Get_Opt.cpp
-// $Id$
-
-#include "ace/Get_Opt.h"
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-#include "ace/SString.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Get_Opt.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Get_Opt, "$Id$")
-
-/*
- * Copyright (c) 1987, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*-
- * Copyright (c) 2000 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Dieter Baron and Thomas Klausner.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the NetBSD
- * Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Get_Opt)
-
-ACE_Get_Opt::ACE_Get_Opt (int argc,
- ACE_TCHAR **argv,
- const ACE_TCHAR *optstring,
- int skip,
- int report_errors,
- int ordering,
- int long_only)
- : argc_ (argc),
- argv_ (argv),
- optind (skip),
- opterr (report_errors),
- optarg (0),
- optstring_ (0),
- long_only_ (long_only),
- has_colon_ (0),
- last_option_ (0),
- nextchar_ (0),
- optopt_ (0),
- ordering_ (ordering),
- nonopt_start_ (optind),
- nonopt_end_ (optind),
- long_option_ (0)
-{
- ACE_TRACE ("ACE_Get_Opt::ACE_Get_Opt");
-
- ACE_NEW (this->optstring_, ACE_TString (optstring));
- ACE_NEW (this->last_option_, ACE_TString (""));
-
- // First check to see if POSIXLY_CORRECT was set.
- if (ACE_OS::getenv (ACE_LIB_TEXT ("POSIXLY_CORRECT")) != 0)
- this->ordering_ = REQUIRE_ORDER;
-
- // Now, check to see if any or the following were passed at
- // the begining of optstring: '+' same as POSIXLY_CORRECT;
- // '-' turns off POSIXLY_CORRECT; or ':' which signifies we
- // should return ':' if a parameter is missing for an option.
- // We use a loop here, since a combination of "{+|-}:" in any
- // order should be legal.
- int done = 0;
- int offset = 0;
- while (!done)
- {
- switch (optstring[offset++])
- {
- case '+':
- this->ordering_ = REQUIRE_ORDER;
- break;
- case '-':
- this->ordering_ = RETURN_IN_ORDER;
- break;
- case ':':
- this->has_colon_ = 1;
- break;
- default:
- // Quit as soon as we see something else...
- done = 1;
- break;
- }
- }
-}
-
-ACE_Get_Opt::~ACE_Get_Opt (void)
-{
- ACE_TRACE ("ACE_Get_Opt::~ACE_Get_Opt");
-
- size_t i = 0;
- size_t size = this->long_opts_.size ();
- ACE_Get_Opt_Long_Option *option = 0;
- for (i = 0; i < size; ++i)
- {
- int retval = this->long_opts_.get (option, i);
- if (retval != 0)
- {
- // Should never happen.
- retval = 0;
- continue;
- }
- if (option)
- {
- delete option;
- option = 0;
- }
- }
- delete this->optstring_;
- delete this->last_option_;
-}
-
-int
-ACE_Get_Opt::nextchar_i (void)
-{
- ACE_TRACE ("ACE_Get_Opt::nextchar_i");
-
- if (this->ordering_ == PERMUTE_ARGS)
- if (this->permute () == EOF)
- return EOF;
-
- // Update scanning pointer.
- if (this->optind >= this->argc_)
- {
- // We're done...
- this->nextchar_ = 0;
- return EOF;
- }
- else if (*(this->nextchar_ = this->argv_[this->optind]) != '-'
- || this->nextchar_[1] == '\0')
- {
- // We didn't get an option.
-
- if (this->ordering_ == REQUIRE_ORDER
- || this->ordering_ == PERMUTE_ARGS)
- // If we permuted or require the options to be in order, we're done.
- return EOF;
-
- // It must be RETURN_IN_ORDER...
- this->optarg = this->argv_[this->optind++];
- this->nextchar_ = 0;
- return 1;
- }
- else if (this->nextchar_[1] != 0
- && *++this->nextchar_ == '-'
- && this->nextchar_[1] == 0)
- {
- // Found "--" so we're done...
- ++this->optind;
- this->nextchar_ = 0;
- return EOF;
- }
-
- // If it's a long option, and we allow long options advance nextchar_.
- if (*this->nextchar_ == '-' && this->long_opts_.size () != 0)
- this->nextchar_++;
-
- return 0;
-}
-
-int
-ACE_Get_Opt::long_option_i (void)
-{
- ACE_TRACE ("ACE_Get_Opt::long_option_i");
-
- ACE_Get_Opt_Long_Option *p;
- ACE_TCHAR *s = this->nextchar_;
- int hits = 0;
- int exact = 0;
- ACE_Get_Opt_Long_Option *pfound = 0;
- int indfound = 0;
-
- // Advance to the end of the long option name so we can use
- // it to get the length for a string compare.
- while (*s && *s != '=')
- s++;
-
- size_t len = s - this->nextchar_;
- // set last_option_ to nextchar_, up to the '='.
- this->last_option (ACE_TString (this->nextchar_, len));
-
- size_t size = this->long_opts_.size ();
- u_int option_index = 0;
- for (option_index = 0; option_index < size ; option_index++)
- {
- p = this->long_opts_[option_index];
- ACE_ASSERT (p);
-
- if (!ACE_OS::strncmp (p->name_, this->nextchar_, len))
- {
- // Got at least a partial match.
- pfound = p;
- indfound = option_index;
- hits += 1;
- if (len == ACE_OS::strlen(p->name_))
- {
- // And in fact, it's an exact match, so let's use it.
- exact = 1;
- break;
- }
- }
- }
-
- if ((hits > 1) && !exact)
- {
- // Great, we found a match, but unfortunately we found more than
- // one and it wasn't exact.
- if (this->opterr)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%s: option `%s' is ambiguous\n"),
- this->argv_[0], this->argv_[this->optind]));
- this->nextchar_ = 0;
- this->optind++;
- return '?';
- }
-
- if (pfound != 0)
- {
- // Okay, we found a good one (either a single hit or an exact match).
- option_index = indfound;
- this->optind++;
- if (*s)
- {
- // s must point to '=' which means there's an argument (well
- // close enough).
- if (pfound->has_arg_ != NO_ARG)
- // Good, we want an argument and here it is.
- this->optarg = ++s;
- else
- {
- // Whoops, we've got what looks like an argument, but we
- // don't want one.
- if (this->opterr)
- ACE_ERROR
- ((LM_ERROR,
- ACE_LIB_TEXT ("%s: long option `--%s' doesn't allow ")
- ACE_LIB_TEXT ("an argument\n"),
- this->argv_[0], pfound->name_));
- // The spec doesn't cover this, so we keep going and the program
- // doesn't know we ignored an argument if opt_err is off!!!
- }
- }
- else if (pfound->has_arg_ == ARG_REQUIRED)
- {
- // s didn't help us, but we need an argument. Note that
- // optional arguments for long options must use the "=" syntax,
- // so we won't get here in that case.
- if (this->optind < this->argc_)
- // We still have some elements left, so use the next one.
- this->optarg = this->argv_[this->optind++];
- else
- {
- // All out of elements, so we have to punt...
- if (this->opterr)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%s: long option '--%s' requires ")
- ACE_LIB_TEXT ("an argument\n"),
- this->argv_[0], pfound->name_));
- this->nextchar_ = 0;
- this->optopt_ = pfound->val_; // Remember matching short equiv
- return this->has_colon_ ? ':' : '?';
- }
- }
- this->nextchar_ = 0;
- this->long_option_ = pfound;
- // Since val_ has to be either a valid short option or 0, this works
- // great. If the user really wants to know if a long option was passed.
- this->optopt_ = pfound->val_;
- return pfound->val_;
- }
- if (!this->long_only_ || this->argv_[this->optind][1] == '-'
- || this->optstring_->find (*this->nextchar_) == ACE_TString::npos)
- {
- // Okay, we couldn't find a long option. If it isn't long_only (which
- // means try the long first, and if not found try the short) or a long
- // signature was passed, e.g. "--", or it's not a short (not sure when
- // this could happen) it's an error.
- if (this->opterr)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%s: illegal long option '--%s'\n"),
- this->argv_[0], this->nextchar_));
- this->nextchar_ = 0;
- this->optind++;
- return '?';
- }
- return this->short_option_i ();
-}
-
-int
-ACE_Get_Opt::short_option_i (void)
-{
- ACE_TRACE ("ACE_Get_Opt::short_option_i");
-
- /* Look at and handle the next option-character. */
- ACE_TCHAR opt = *this->nextchar_++;
- // Set last_option_ to opt
- this->last_option (opt);
-
- ACE_TCHAR *oli = 0;
- oli = ACE_const_cast (ACE_TCHAR*,
- ACE_OS::strchr (this->optstring_->c_str (), opt));
-
- /* Increment `optind' when we start to process its last character. */
- if (*this->nextchar_ == '\0')
- ++this->optind;
-
- if (oli == 0 || opt == ':')
- {
- if (this->opterr)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%s: illegal short option -- %c\n"),
- this->argv_[0], opt));
- return '?';
- }
- if (opt == 'W' && oli[1] == ';')
- {
- if (this->nextchar_[0] == 0)
- this->nextchar_ = this->argv_[this->optind];
- return long_option_i ();
- }
- this->optopt_ = oli[0]; // Remember the option that matched
- if (oli[1] == ':')
- {
- if (oli[2] == ':')
- {
- // Takes an optional argument, and since short option args must
- // must follow directly in the same argument, a NULL nextchar_
- // means we didn't get one.
- if (*this->nextchar_ != '\0')
- {
- this->optarg = this->nextchar_;
- this->optind++;
- }
- else
- this->optarg = 0;
- this->nextchar_ = 0;
- }
- else
- {
- // Takes a required argument.
- if (*this->nextchar_ != '\0')
- {
- // Found argument in same argv-element.
- this->optarg = this->nextchar_;
- this->optind++;
- }
- else if (this->optind == this->argc_)
- {
- // Ran out of arguments before finding required argument.
- if (this->opterr)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%s: short option requires ")
- ACE_LIB_TEXT ("an argument -- %c\n"),
- this->argv_[0], opt));
- opt = this->has_colon_ ? ':' : '?';
- }
- else
- // Use the next argv-element as the argument.
- this->optarg = this->argv_[this->optind++];
- this->nextchar_ = 0;
- }
- }
- return opt;
-}
-
-int
-ACE_Get_Opt::operator () (void)
-{
- ACE_TRACE ("ACE_Get_Opt_Long::operator");
-
- // First of all, make sure we reinitialize any pointers..
- this->optarg = 0;
- this->long_option_ = 0;
-
- if (this->argv_ == 0)
- {
- // It can happen, e.g., on VxWorks.
- this->optind = 0;
- return -1;
- }
-
- // We check this because we can string short options together if the
- // preceding one doesn't take an argument.
- if (this->nextchar_ == 0 || *this->nextchar_ == '\0')
- {
- int retval = this->nextchar_i ();
- if (retval != 0)
- return retval;
- }
-
- if (((this->argv_[this->optind][0] == '-')
- && (this->argv_[this->optind][1] == '-')) || this->long_only_)
- return this->long_option_i ();
-
- return this->short_option_i ();
-}
-
-int
-ACE_Get_Opt::long_option (const ACE_TCHAR *name,
- OPTION_ARG_MODE has_arg)
-{
- ACE_TRACE ("ACE_Get_Opt::long_option (const ACE_TCHAR *name, OPTION_ARG_MODE has_arg)");
- return this->long_option (name, 0, has_arg);
-}
-
-int
-ACE_Get_Opt::long_option (const ACE_TCHAR *name,
- int short_option,
- OPTION_ARG_MODE has_arg)
-{
- ACE_TRACE ("ACE_Get_Opt::long_option (const ACE_TCHAR *name, int short_option, OPTION_ARG_MODE has_arg)");
-
- // We only allow valid alpha-numeric characters as short options.
- // If short_options is not a valid alpha-numeric, we can still return it
- // when the long option is found, but won't allow the caller to pass it on
- // the command line (how could they?). The special case is 0, but since
- // we always return it, we let the caller worry about that.
-#if defined (_MSC_VER) && (_MSC_VER >= 1300)
- // For MSVC 7.x, we need to prevent "illegal" character getting into
- // isalnum, otherwise, it will crash the program.
- if (short_option > 0 &&
- short_option < 256 &&
- isalnum (short_option) != 0)
-#else
- if (isalnum (short_option) != 0)
-#endif /* _MSC_VER && _MSC_VER >= 1300 */
- {
- // If the short_option already exists, make sure it matches, otherwise
- // add it.
- ACE_TCHAR *s = 0;
- if ((s = ACE_const_cast (ACE_TCHAR*,
- ACE_OS::strchr (this->optstring_->c_str (),
- short_option))) != 0)
- {
- // Short option exists, so verify the argument options
- if (s[1] == ':')
- {
- if (s[2] == ':')
- {
- if (has_arg != ARG_OPTIONAL)
- {
- if (this->opterr)
- ACE_ERROR
- ((LM_ERROR,
- ACE_LIB_TEXT ("Existing short option '%c' takes ")
- ACE_LIB_TEXT ("optional argument; adding %s ")
- ACE_LIB_TEXT ("requires ARG_OPTIONAL\n"),
- short_option, name));
- return -1;
- }
- }
- else
- if (has_arg != ARG_REQUIRED)
- {
- if (this->opterr)
- ACE_ERROR
- ((LM_ERROR,
- ACE_LIB_TEXT ("Existing short option '%c' requires ")
- ACE_LIB_TEXT ("an argument; adding %s ")
- ACE_LIB_TEXT ("requires ARG_REQUIRED\n"),
- short_option, name));
- return -1;
- }
- }
- else if (has_arg != NO_ARG)
- {
- if (this->opterr)
- ACE_ERROR
- ((LM_ERROR,
- ACE_LIB_TEXT ("Existing short option '%c' does not ")
- ACE_LIB_TEXT ("accept an argument; adding %s ")
- ACE_LIB_TEXT ("requires NO_ARG\n"),
- short_option, name));
- return -1;
- }
- }
- else
- {
- // Didn't find short option, so add it...
- *this->optstring_ += (ACE_TCHAR) short_option;
- if (has_arg == ARG_REQUIRED)
- *this->optstring_ += ACE_LIB_TEXT (":");
- else if (has_arg == ARG_OPTIONAL)
- *this->optstring_ += ACE_LIB_TEXT ("::");
- }
- }
-
- ACE_Get_Opt_Long_Option *option =
- new ACE_Get_Opt_Long_Option (name, has_arg, short_option);
-
- if (!option)
- return -1;
-
- // Add to array
- size_t size = this->long_opts_.size ();
- if (this->long_opts_.size (size + 1) != 0
- || this->long_opts_.set (option, size) != 0)
- {
- delete option;
- ACE_ERROR_RETURN
- ((LM_ERROR, ACE_LIB_TEXT ("Could not add long option to array.\n")),
- -1);
- }
- return 0;
-}
-
-const ACE_TCHAR*
-ACE_Get_Opt::long_option (void) const
-{
- ACE_TRACE ("ACE_Get_Opt::long_option (void)");
- if (this->long_option_)
- return this->long_option_->name_;
- return 0;
-}
-
-const ACE_TCHAR*
-ACE_Get_Opt::last_option (void) const
-{
- return this->last_option_->c_str ();
-}
-
-void
-ACE_Get_Opt::last_option (const ACE_TString &last_option)
-{
- *this->last_option_ = last_option;
-}
-
-void
-ACE_Get_Opt::dump (void) const
-{
- ACE_TRACE ("ACE_Get_Opt::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")
- ACE_LIB_TEXT ("opstring_ = %s\n")
- ACE_LIB_TEXT ("long_only_ = %d\n")
- ACE_LIB_TEXT ("has_colon_ = %d\n")
- ACE_LIB_TEXT ("last_option_ = %s\n")
- ACE_LIB_TEXT ("nextchar_ = %s\n")
- ACE_LIB_TEXT ("optopt_ = %c\n")
- ACE_LIB_TEXT ("ordering_ = %d\n"),
- this->optstring_->c_str (),
- this->long_only_,
- this->has_colon_,
- this->last_option_->c_str (),
- this->nextchar_,
- this->optopt_,
- this->ordering_));
-
- // now loop through the
- size_t size = this->long_opts_.size ();
- for (u_int i = 0; i < size ; ++i)
- {
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")
- ACE_LIB_TEXT ("long_option name_ = %s\n")
- ACE_LIB_TEXT ("has_arg_ = %d\n")
- ACE_LIB_TEXT ("val_ = %d\n"),
- this->long_opts_[i]->name_,
- this->long_opts_[i]->has_arg_,
- this->long_opts_[i]->val_));
- }
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_Get_Opt::permute_args (void)
-{
- ACE_TRACE ("ACE_Get_Opt::permute_args");
-
- int cstart, cyclelen, i, j, ncycle, nnonopts, nopts, pos;
- ACE_TCHAR *swap;
- int opt_end = this->optind;
-
- nnonopts = this->nonopt_end_ - this->nonopt_start_;
- nopts = opt_end - this->nonopt_end_;
- ncycle = ACE::gcd (nnonopts, nopts);
- cyclelen = (opt_end - this->nonopt_start_) / ncycle;
-
- this->optind = this->optind - nnonopts;
-
- for (i = 0; i < ncycle; i++)
- {
- cstart = this->nonopt_end_ + i;
- pos = cstart;
- for (j = 0; j < cyclelen; j++)
- {
- if (pos >= this->nonopt_end_)
- pos -= nnonopts;
- else
- pos += nopts;
- swap = this->argv_[pos];
-
- ((ACE_TCHAR **)this->argv_)[pos] = argv_[cstart];
-
- ((ACE_TCHAR **)this->argv_)[cstart] = swap;
- }
- }
-}
-
-int
-ACE_Get_Opt::permute (void)
-{
- ACE_TRACE ("ACE_Get_Opt::permute");
-
- if (this->nonopt_start_ != this->nonopt_end_
- && this->nonopt_start_ != this->optind)
- this->permute_args ();
-
- this->nonopt_start_ = this->optind;
-
- // Skip over args untill we find the next option.
- while (this->optind < this->argc_
- && (this->argv_[this->optind][0] != '-'
- || this->argv_[this->optind][1] == '\0'))
- this->optind++;
-
- // Got an option, so mark this as the end of the non options.
- this->nonopt_end_ = this->optind;
-
- if (this->optind != this->argc_
- && ACE_OS::strcmp (this->argv_[this->optind],
- ACE_LIB_TEXT ("--")) == 0)
- {
- // We found the marker for the end of the options.
- this->optind++;
-
- if (this->nonopt_start_ != this->nonopt_end_
- && this->nonopt_end_ != this->optind)
- this->permute_args ();
- }
-
- if (this->optind == this->argc_)
- {
- if (this->nonopt_start_ != this->nonopt_end_)
- this->optind = this->nonopt_start_;
- return EOF;
- }
- return 0;
-}
-
-const ACE_TCHAR *
-ACE_Get_Opt::optstring (void) const
-{
- return this->optstring_->c_str ();
-}
-
-ACE_Get_Opt::ACE_Get_Opt_Long_Option::ACE_Get_Opt_Long_Option (const ACE_TCHAR *name,
- int has_arg,
- int val)
- : name_ (ACE::strnew(name)),
- has_arg_ (has_arg),
- val_ (val)
-{}
-
-ACE_Get_Opt::ACE_Get_Opt_Long_Option::~ACE_Get_Opt_Long_Option (void)
-{
- delete [] ACE_const_cast (ACE_TCHAR*, this->name_);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Array<ACE_Get_Opt::ACE_Get_Opt_Long_Option *>;
-template class ACE_Array_Base<ACE_Get_Opt::ACE_Get_Opt_Long_Option *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Array<ACE_Get_Opt::ACE_Get_Opt_Long_Option *>
-#pragma instantiate ACE_Array_Base<ACE_Get_Opt::ACE_Get_Opt_Long_Option *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Get_Opt.h b/ace/Get_Opt.h
deleted file mode 100644
index ecf4c7db641..00000000000
--- a/ace/Get_Opt.h
+++ /dev/null
@@ -1,466 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Get_Opt.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author Don Hinton <dhinton@gmx.net> (added long option support)
- */
-//==========================================================================
-
-#ifndef ACE_GET_OPT_H
-#define ACE_GET_OPT_H
-#include "ace/pre.h"
-
-#include "ace/SStringfwd.h"
-#include "ace/Containers.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#undef optind
-#undef optarg
-#undef opterr
-
-/*
- * These definitions are for backward compatibility with previous versions.
- * of ACE_Get_Opt.
- */
-
-/**
- * @class ACE_Get_Opt
- *
- * @brief Iterator for parsing command-line arguments.
- *
- * This is a C++ wrapper for getopt(3c) and getopt_long(3c).
- */
-
-class ACE_Export ACE_Get_Opt
-{
-public:
- /// Mutually exclusive ordering values.
- enum
- {
- /**
- * REQUIRE_ORDER means that processing stops and @c EOF is
- * returned as soon as a non-option argument is found. @c opt_ind()
- * will return the index of the next @a argv element so the program
- * can continue processing the rest of the @a argv elements.
- */
- REQUIRE_ORDER = 1,
-
- /**
- * PERMUTE_ARGS means the @a argv elements are reordered dynamically
- * (permuted) so that all options appear first. When the elements are
- * permuted, the order of the options and the following arguments are
- * maintained. When the last option has been processed, @c EOF is
- * returned and @c opt_ind() returns the index into the next non-option
- * element.
- */
- PERMUTE_ARGS = 2,
-
- /**
- * RETURN_IN_ORDER means each @a argv element is processed in the
- * order is it seen. If the element is not recognized as an option, '1'
- * is returned and @c opt_arg() refers to the @a argv element found.
- */
- RETURN_IN_ORDER = 3
- };
-
- /// Mutually exclusive option argument mode used by long options.
- enum OPTION_ARG_MODE
- {
- /// Doesn't take an argument.
- NO_ARG = 0,
-
- /// Requires an argument, same as passing ":" after a short option
- /// character in @a optstring.
- ARG_REQUIRED = 1,
-
- /// Argument is optional, same as passing "::" after a short
- /// option character in @a optstring.
- ARG_OPTIONAL = 2
- };
-
- /**
- * Constructor initializes the command line to be parsed. All information
- * for parsing must be supplied to this constructor.
- *
- * @param argc The number of @a argv elements to parse.
- * @param argv Command line tokens, such as would be passed
- * to @c main().
- * @param optstring Nul-terminated string containing the legitimate
- * short option characters. A single colon ":"
- * following an option character means the option
- * requires an argument. A double colon "::" following
- * an option character means the argument is optional.
- * The argument is taken from the rest of the current
- * @a argv element, or from the following @a argv
- * element (only valid for required arguments;
- * optional arguments must always reside in the same
- * @a argv element). The argument value, if any is
- * returned by the @c opt_arg() method.
- * @a optstring can be extended by adding long options
- * with corresponding short options via the
- * @c long_option() method. If the short option
- * already appears in @a optstring, the argument
- * characteristics must match, otherwise it is added.
- * See @c long_option() for more information.
- * If 'W', followed by a semi-colon ';' appears in
- * @a optstring, then any time a 'W' appears on the
- * command line, the following argument is treated as
- * a long option. For example, if the command line
- * contains "program -W foo", "foo" is treated as a
- * long option, that is, as if "program --foo" had
- * been passed.
- * The following characters can appear in @a optstring
- * before any option characters, with the described
- * effect:
- * - '+' changes the @a ordering to @a REQUIRE_ORDER.
- * - '-' changes the @a ordering to @a RETURN_IN_ORDER.
- * - ':' changes the return value from @c operator()
- * and get_opt() from '?' to ':' when an option
- * requires an argument but none is specified.
- *
- * @param skip_args Optional (default 1). The specified number of
- * initial elements in @a argv are skipped before
- * parsing begins. Thus, the default prevents
- * @a argv[0] (usually the command name) from being
- * parsed. @a argc includes all @a argv elements,
- * including any skipped elements.
- * @param report_errors Optional, if non-zero then parsing errors cause
- * an error message to be displayed from the
- * @c operator() method before it returns. The
- * error message is suppressed if this argument is 0.
- * This setting also controls whether or not an error
- * message is displayed in @c long_option() encounters
- * an error.
- * @param ordering Optional (default is @c PERMUTE_ARGS); determines
- * how the @a argv elements are processed. This argument
- * is overridden by two factors:
- * -# The @c POSIXLY_CORRECT environment variable. If
- * this environment variable is set, the ordering
- * is changed to @c REQUIRE_ORDER.
- * -# Leading characters in @a optstring (see above).
- * Any leading ordering characters override both
- * the @a ordering argument and any effect of the
- * @c POSIXLY_CORRECT environment variable.
- * @param long_only Optional. If non-zero, then long options can be
- * specified using a single '-' on the command line.
- * If the token is not a long option, it is processed
- * as usual, that is, as a short option or set of
- * short options.
- *
- * Multiple short options can be combined as long as only the last
- * one can takes an argument. For example, if @a optstring is defined as
- * @c "abc:" or @c "abc::" then the command line @e "program -abcxxx" short
- * options @e a, @e b, and @e c are found with @e "xxx" as the argument for
- * @e c.
- * However, if the command line is specified as @e "program -acb" only
- * options @e a and @e c are found with @e "b" as the argument for @e c.
- * Also, for options with optional arguments, that is, those followed by
- * "::", the argument must be in the same @a argv element, so "program -abc
- * xxx" will only find "xxx" as the argument for @e c if @a optstring is
- * specified as @c "abc:" not @c "abc::".
- */
- ACE_Get_Opt (int argc,
- ACE_TCHAR **argv,
- const ACE_TCHAR *optstring = ACE_LIB_TEXT (""),
- int skip_args = 1,
- int report_errors = 0,
- int ordering = PERMUTE_ARGS,
- int long_only = 0);
-
- /// Default dtor.
- ~ACE_Get_Opt (void);
-
- /**
- * Scan elements of @a argv (whose length is @a argc) for short option
- * characters given in @a optstring or long options (with no short
- * option equivalents).
- *
- * If an element of @a argv starts with '-', and is not exactly "-"
- * or "--", then it is a short option element. The characters of this
- * element (aside from the initial '-') are option characters. If
- * it starts with "--" followed by other characters it is treated as
- * a long option. If @c operator() is called repeatedly, it returns
- * each of the option characters from each of the option elements.
- *
- * @return The parsed option character. The following characters have
- * special significance.
- * @retval 0 A long option was found
- * @retval '\?' Either an unknown option character was found, or the
- * option is known but requires an argument, none was
- * specified, and @a optstring did not contain a leading
- * colon.
- * @retval ':' A known option character was found but it requires an
- * argument and none was supplied, and the first character
- * of @a optstring was a colon. @c opt_opt() indicates
- * which option was specified.
- * @retval '1' @c RETURN_IN_ORDER was specified and a non-option argument
- * was found.
- * @retval EOF No more option characters were found. @c opt_ind() will
- * return the index in @a argv of the first @a argv element
- * that is not an option. If @c PERMUTE_ARGS was
- * specified, the @a argv elements have been permuted so that
- * those that are not options now come last.
- *
- * @note The standards are unclear with respect to the conditions under
- * which '?' and ':' are returned, so we scan the initial characters of
- * @a optstring up unto the first short option character for '+', '-',
- * and ':' in order to determine ordering and missing argument behavior.
- */
- int operator () (void);
-
- /**
- * For communication from @c operator() to the caller. When
- * @c operator() finds an option that takes an argument, the argument
- * value is returned from this method, otherwise it returns 0.
- */
- ACE_TCHAR *opt_arg (void) const;
-
- /**
- * Returns the most recently matched option character. Especially
- * useful when operator() returns ':' for an unspecified argument
- * that's required, since this allows the caller to learn what option
- * was specified without its required argument.
- */
- int opt_opt (void);
-
- /**
- * Index in @a argv of the next element to be scanned. This is used
- * for communication to and from the caller and for communication
- * between successive calls to @c operator(). On entry to
- * @c operator(), zero means this is the first call; initialize.
- *
- * When @c operator() returns @c EOF, this is the index of the first of
- * the non-option elements that the caller should itself scan.
- *
- * Otherwise, @c opt_ind() communicates from one call to the next how
- * much of @a argv has been scanned so far.
- */
- int &opt_ind (void);
-
- /// Adds a long option with no corresponding short option.
- /**
- * If the @a name option is seen, @c operator() returns 0.
- *
- * @param name The long option to add.
- * @param has_arg Defines the argument requirements for
- * the new option.
- *
- * @retval 0 Success
- * @retval -1 The long option can not be added.
- */
- int long_option (const ACE_TCHAR *name,
- OPTION_ARG_MODE has_arg = NO_ARG);
-
- /// Adds a long option with a corresponding short option.
- /**
- * @param name The long option to add.
- * @param short_option A character, the short option that corresponds
- * to @a name.
- * @param has_arg Defines the argument requirements for
- * the new option. If the short option has already
- * been supplied in the @a optstring, @a has_arg
- * must match or an error is returned; otherwise, the
- * new short option is added to the @a optstring.
- *
- * @retval 0 Success
- * @retval -1 The long option can not be added.
- */
- int long_option (const ACE_TCHAR *name,
- int short_option,
- OPTION_ARG_MODE has_arg = NO_ARG);
-
- /// Returns the name of the long option found on the last call to
- /// @c operator() or 0 if none was found.
- const ACE_TCHAR *long_option (void) const;
-
- /// The number of arguments in the internal @c argv_.
- int argc (void) const;
-
- /// Accessor for the internal @c argv_ pointer.
- ACE_TCHAR **argv (void) const;
-
- /// Accessor for the @c last_option that was processed. This allows
- /// applications to know if the found option was a short or long
- /// option, and is especially useful in cases where it was invalid
- /// and the caller wants to print out the invalid value.
- const ACE_TCHAR *last_option (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Return the @a optstring. This is handy to verify that calls to
- /// long_option added short options as expected.
- const ACE_TCHAR *optstring (void) const;
-
-public:
- /*
- * The following five data members should be private, but that
- * would break backwards compatibility. However, we recommend not
- * writing code that uses these fields directly.
- */
-
- /// Holds the @a argc count.
- /**
- * @deprecated This is public for backwards compatibility only.
- * It will be made private in a release of ACE past 5.3. Do not
- * write code that relies on this member being public; use the
- * @c argc() accessor method instead.
- */
- int argc_;
-
- /// Holds the @a argv pointer.
- /**
- * @deprecated This is public for backwards compatibility only.
- * It will be made private in a release of ACE past 5.3. Do not
- * write code that relies on this member being public; use the
- * @c argv() accessor method instead.
- */
- ACE_TCHAR **argv_;
-
- /// Index in @c argv_ of the next element to be scanned.
- /**
- * @deprecated This is public for backwards compatibility only.
- * It will be made private in a release of ACE past 5.3. Do not
- * write code that relies on this member being public; use the
- * @c opt_ind() accessor method instead.
- */
- int optind;
-
- /// Callers store zero here to inhibit the error message for
- /// unrecognized options.
- /**
- * @deprecated This is public for backwards compatibility only.
- * It will be made private in a release of ACE past 5.3. Do not
- * write code that relies on this member being public; use the
- * @a report_errors argument to this class's constructor instead.
- */
- int opterr;
-
- /// Points to the option argument when one is found on last call to
- /// @c operator().
- /**
- * @deprecated This is public for backwards compatibility only.
- * It will be made private in a release of ACE past 5.3. Do not
- * write code that relies on this member being public; use the
- * @c opt_arg() accessor method instead.
- */
- ACE_TCHAR *optarg;
-
-private:
- /**
- * @class ACE_Get_Opt_Long_Option This class is for internal use
- * in the ACE_Get_Opt class, and is inaccessible to users.
- */
- class ACE_Get_Opt_Long_Option
- {
- public:
- /// ctor
- ACE_Get_Opt_Long_Option (const ACE_TCHAR *name,
- int has_arg,
- int val = 0);
-
- /// Default dtor.
- ~ACE_Get_Opt_Long_Option (void);
-
- int operator < (const ACE_Get_Opt_Long_Option &rhs);
-
- /// Long option name.
- const ACE_TCHAR *name_;
-
- /// Contains value for <OPTION_ARG_MODE>.
- int has_arg_;
-
- /// Contains a valid short option character or zero if it doesn't
- /// have a corresponding short option. It can also contain a
- /// non-printable value that cannot be passed to <optstring> but
- /// will be returned by <operator()>. This is handy for
- /// simplifying long option handling, see tests/Get_Opt_Test.cpp
- /// for an example of this technique.
- int val_;
- };
-
- /// Updates nextchar_.
- int nextchar_i (void);
-
- /// Handles long options.
- int long_option_i (void);
-
- /// Handles short options.
- int short_option_i (void);
-
- /// If permuting args, this functions manages the nonopt_start_ and
- /// nonopt_end_ indexes and makes calls to permute to actually
- /// reorder the <argv>-elements.
- void permute_args (void);
-
- /// Handles reordering <argv>-elements.
- int permute (void);
-
- /// Set last_option.
- void last_option (const ACE_TString &s);
-
- /// Holds the option string.
- ACE_TString *optstring_;
-
- /// Treat all options as long options.
- int long_only_;
-
- /// Keeps track of whether or not a colon was passed in <optstring>.
- /// This is used to determine the return value when required
- /// arguments are missing.
- int has_colon_;
-
- /// This is the last option, short or long, that was processed. This
- /// is handy to have in cases where the option passed was invalid.
- ACE_TString *last_option_;
-
- /**
- * The next char to be scanned in the option-element in which the
- * last option character we returned was found. This allows us to
- * pick up the scan where we left off *
- * If this is zero, or a null string, it means resume the scan
- * by advancing to the next <argv>-element.
- */
- ACE_TCHAR *nextchar_;
-
- /// Most recently matched short option character.
- int optopt_;
-
- /// Keeps track of ordering mode (default <PERMUTE_ARGS>).
- int ordering_;
-
- /// Index of the first non-option <argv>-element found (only valid
- /// when permuting).
- int nonopt_start_;
-
- /// Index of the <argv>-element following the last non-option element
- /// (only valid when permuting).
- int nonopt_end_;
-
- /// Points to the long_option found on last call to <operator()>.
- ACE_Get_Opt_Long_Option *long_option_;
-
- /// Array of long options.
- ACE_Array<ACE_Get_Opt_Long_Option*> long_opts_;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- ACE_UNIMPLEMENTED_FUNC (ACE_Get_Opt (const ACE_Get_Opt &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Get_Opt &operator= (const ACE_Get_Opt &))
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Get_Opt.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_GET_OPT_H */
diff --git a/ace/Get_Opt.i b/ace/Get_Opt.i
deleted file mode 100644
index cde18946781..00000000000
--- a/ace/Get_Opt.i
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Get_Opt.i
-
-ACE_INLINE int
-ACE_Get_Opt::ACE_Get_Opt_Long_Option::operator < (const ACE_Get_Opt_Long_Option &rhs)
-{
- return this->name_ < rhs.name_;
-}
-
-ACE_INLINE int
-ACE_Get_Opt::argc (void) const
-{
- return this->argc_;
-}
-
-ACE_INLINE ACE_TCHAR **
-ACE_Get_Opt::argv (void) const
-{
- return this->argv_;
-}
-
-ACE_INLINE ACE_TCHAR*
-ACE_Get_Opt::opt_arg (void) const
-{
- return this->optarg;
-}
-
-ACE_INLINE int
-ACE_Get_Opt::opt_opt (void)
-{
- return this->optopt_;
-}
-
-ACE_INLINE int &
-ACE_Get_Opt::opt_ind (void)
-{
- return this->optind;
-}
diff --git a/ace/Global_Macros.h b/ace/Global_Macros.h
deleted file mode 100644
index 01df20a4d65..00000000000
--- a/ace/Global_Macros.h
+++ /dev/null
@@ -1,437 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Global_Macros.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author Jesper S. M|ller<stophph@diku.dk>
- * @author and a cast of thousands...
- * @This one is split from the famous OS.h
- */
-//=============================================================================
-
-#ifndef ACE_GLOBAL_MACROS_H
-#define ACE_GLOBAL_MACROS_H
-
-#include "ace/pre.h"
-
-// Included just keep compilers that see #pragma dierctive first
-// happy.
-#include "ace/OS_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Start Global Macros
-# define ACE_BEGIN_DUMP ACE_LIB_TEXT ("\n====\n(%P|%t|%x)\n")
-# define ACE_END_DUMP ACE_LIB_TEXT ("====\n")
-
-# if defined (ACE_NDEBUG)
-# define ACE_DB(X)
-# else
-# define ACE_DB(X) X
-# endif /* ACE_NDEBUG */
-
-// ACE_NO_HEAP_CHECK macro can be used to suppress false report of
-// memory leaks. It turns off the built-in heap checking until the
-// block is left. The old state will then be restored Only used for
-// Win32 (in the moment).
-# if defined (ACE_WIN32)
-
-# if defined (_DEBUG) && !defined (ACE_HAS_WINCE) && !defined (__BORLANDC__)
-# include /**/ <crtdbg.h>
-
-class ACE_OS_Export ACE_No_Heap_Check
-{
-public:
- ACE_No_Heap_Check (void)
- : old_state (_CrtSetDbgFlag (_CRTDBG_REPORT_FLAG))
- { _CrtSetDbgFlag (old_state & ~_CRTDBG_ALLOC_MEM_DF);}
- ~ACE_No_Heap_Check (void) { _CrtSetDbgFlag (old_state);}
-private:
- int old_state;
-};
-# define ACE_NO_HEAP_CHECK ACE_No_Heap_Check ____no_heap;
-# else /* !_DEBUG */
-# define ACE_NO_HEAP_CHECK
-# endif /* _DEBUG */
-# else /* !ACE_WIN32 */
-# define ACE_NO_HEAP_CHECK
-# endif /* ACE_WIN32 */
-
-// Turn a number into a string.
-# define ACE_ITOA(X) #X
-
-// Create a string of a server address with a "host:port" format.
-# define ACE_SERVER_ADDRESS(H,P) H":"P
-
-// A couple useful inline functions for checking whether bits are
-// enabled or disabled.
-
-// Efficiently returns the least power of two >= X...
-# define ACE_POW(X) (((X) == 0)?1:(X-=1,X|=X>>1,X|=X>>2,X|=X>>4,X|=X>>8,X|=X>>16,(++X)))
-# define ACE_EVEN(NUM) (((NUM) & 1) == 0)
-# define ACE_ODD(NUM) (((NUM) & 1) == 1)
-# define ACE_BIT_ENABLED(WORD, BIT) (((WORD) & (BIT)) != 0)
-# define ACE_BIT_DISABLED(WORD, BIT) (((WORD) & (BIT)) == 0)
-# define ACE_BIT_CMP_MASK(WORD, BIT, MASK) (((WORD) & (BIT)) == MASK)
-# define ACE_SET_BITS(WORD, BITS) (WORD |= (BITS))
-# define ACE_CLR_BITS(WORD, BITS) (WORD &= ~(BITS))
-
-# if !defined (ACE_ENDLESS_LOOP)
-# define ACE_ENDLESS_LOOP
-# endif /* ! ACE_ENDLESS_LOOP */
-
-# if defined (ACE_NEEDS_FUNC_DEFINITIONS)
- // It just evaporated ;-) Not pleasant.
-# define ACE_UNIMPLEMENTED_FUNC(f)
-# else
-# define ACE_UNIMPLEMENTED_FUNC(f) f;
-# endif /* ACE_NEEDS_FUNC_DEFINITIONS */
-
-// Easy way to designate that a class is used as a pseudo-namespace.
-// Insures that g++ "friendship" anamolies are properly handled.
-# define ACE_CLASS_IS_NAMESPACE(CLASSNAME) \
-private: \
-CLASSNAME (void); \
-CLASSNAME (const CLASSNAME&); \
-friend class ace_dewarn_gplusplus
-
-// ----------------------------------------------------------------
-
-#if defined (ACE_HAS_NO_THROW_SPEC)
-# define ACE_THROW_SPEC(X)
-#else
-# if defined (ACE_HAS_EXCEPTIONS)
-# define ACE_THROW_SPEC(X) throw X
-# if defined (ACE_WIN32) && defined(_MSC_VER) && !defined (ghs)
-// @@ MSVC "supports" the keyword but doesn't implement it (Huh?).
-// Therefore, we simply supress the warning for now.
-# pragma warning( disable : 4290 )
-# endif /* ACE_WIN32 */
-# else /* ! ACE_HAS_EXCEPTIONS */
-# define ACE_THROW_SPEC(X)
-# endif /* ! ACE_HAS_EXCEPTIONS */
-#endif /*ACE_HAS_NO_THROW_SPEC*/
-
-// ----------------------------------------------------------------
-
-// Deal with MSVC++ 6 (or less) insanity for CORBA...
-# if defined (ACE_HAS_BROKEN_NAMESPACES)
-# define ACE_CORBA_1(NAME) CORBA_##NAME
-# define ACE_CORBA_2(TYPE, NAME) CORBA_##TYPE##_##NAME
-# define ACE_CORBA_3(TYPE, NAME) CORBA_##TYPE::NAME
-# if !defined (ACE_NESTED_CLASS)
-# define ACE_NESTED_CLASS(TYPE, NAME) NAME
-# endif /* !ACE_NESTED_CLASS */
-# else /* ! ACE_HAS_BROKEN_NAMESPACES */
-# define ACE_CORBA_1(NAME) CORBA::NAME
-# define ACE_CORBA_2(TYPE, NAME) CORBA::TYPE::NAME
-# define ACE_CORBA_3(TYPE, NAME) CORBA::TYPE::NAME
-# if !defined (ACE_NESTED_CLASS)
-# define ACE_NESTED_CLASS(TYPE, NAME) TYPE::NAME
-# endif /* !ACE_NESTED_CLASS */
-# endif /* ! ACE_HAS_BROKEN_NAMESPACES */
-
-// ----------------------------------------------------------------
-
-# define ACE_TRACE_IMPL(X) ACE_Trace ____ (ACE_LIB_TEXT (X), __LINE__, ACE_LIB_TEXT (__FILE__))
-
-# if (ACE_NTRACE == 1)
-# define ACE_TRACE(X)
-# else
-# define ACE_TRACE(X) ACE_TRACE_IMPL(X)
-# endif /* ACE_NTRACE */
-
-// ----------------------------------------------------------------
-
-// Convenient macro for testing for deadlock, as well as for detecting
-// when mutexes fail.
-#define ACE_GUARD_ACTION(MUTEX, OBJ, LOCK, ACTION, REACTION) \
- ACE_Guard< MUTEX > OBJ (LOCK); \
- if (OBJ.locked () != 0) { ACTION; } \
- else { REACTION; }
-#define ACE_GUARD_REACTION(MUTEX, OBJ, LOCK, REACTION) \
- ACE_GUARD_ACTION(MUTEX, OBJ, LOCK, ;, REACTION)
-#define ACE_GUARD(MUTEX, OBJ, LOCK) \
- ACE_GUARD_REACTION(MUTEX, OBJ, LOCK, return)
-#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN) \
- ACE_GUARD_REACTION(MUTEX, OBJ, LOCK, return RETURN)
-# define ACE_WRITE_GUARD(MUTEX,OBJ,LOCK) \
- ACE_Write_Guard< MUTEX > OBJ (LOCK); \
- if (OBJ.locked () == 0) return;
-# define ACE_WRITE_GUARD_RETURN(MUTEX,OBJ,LOCK,RETURN) \
- ACE_Write_Guard< MUTEX > OBJ (LOCK); \
- if (OBJ.locked () == 0) return RETURN;
-# define ACE_READ_GUARD(MUTEX,OBJ,LOCK) \
- ACE_Read_Guard< MUTEX > OBJ (LOCK); \
- if (OBJ.locked () == 0) return;
-# define ACE_READ_GUARD_RETURN(MUTEX,OBJ,LOCK,RETURN) \
- ACE_Read_Guard< MUTEX > OBJ (LOCK); \
- if (OBJ.locked () == 0) return RETURN;
-
-// ----------------------------------------------------------------
-
-# define ACE_DES_NOFREE(POINTER,CLASS) \
- do { \
- if (POINTER) \
- { \
- (POINTER)->~CLASS (); \
- } \
- } \
- while (0)
-
-# define ACE_DES_ARRAY_NOFREE(POINTER,SIZE,CLASS) \
- do { \
- if (POINTER) \
- { \
- for (size_t i = 0; \
- i < SIZE; \
- ++i) \
- { \
- (&(POINTER)[i])->~CLASS (); \
- } \
- } \
- } \
- while (0)
-
-# define ACE_DES_FREE(POINTER,DEALLOCATOR,CLASS) \
- do { \
- if (POINTER) \
- { \
- (POINTER)->~CLASS (); \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-
-# define ACE_DES_ARRAY_FREE(POINTER,SIZE,DEALLOCATOR,CLASS) \
- do { \
- if (POINTER) \
- { \
- for (size_t i = 0; \
- i < SIZE; \
- ++i) \
- { \
- (&(POINTER)[i])->~CLASS (); \
- } \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-
-# if defined (ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR)
-# define ACE_DES_NOFREE_TEMPLATE(POINTER,T_CLASS,T_PARAMETER) \
- do { \
- if (POINTER) \
- { \
- (POINTER)->~T_CLASS (); \
- } \
- } \
- while (0)
-# define ACE_DES_ARRAY_NOFREE_TEMPLATE(POINTER,SIZE,T_CLASS,T_PARAMETER) \
- do { \
- if (POINTER) \
- { \
- for (size_t i = 0; \
- i < SIZE; \
- ++i) \
- { \
- (&(POINTER)[i])->~T_CLASS (); \
- } \
- } \
- } \
- while (0)
-#if defined(__IBMCPP__) && (__IBMCPP__ >= 400)
-# define ACE_DES_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER) \
- do { \
- if (POINTER) \
- { \
- (POINTER)->~T_CLASS T_PARAMETER (); \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-#else
-# define ACE_DES_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER) \
- do { \
- if (POINTER) \
- { \
- (POINTER)->~T_CLASS (); \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-#endif /* defined(__IBMCPP__) && (__IBMCPP__ >= 400) */
-# define ACE_DES_ARRAY_FREE_TEMPLATE(POINTER,SIZE,DEALLOCATOR,T_CLASS,T_PARAMETER) \
- do { \
- if (POINTER) \
- { \
- for (size_t i = 0; \
- i < SIZE; \
- ++i) \
- { \
- (&(POINTER)[i])->~T_CLASS (); \
- } \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-#if defined(__IBMCPP__) && (__IBMCPP__ >= 400)
-# define ACE_DES_FREE_TEMPLATE2(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) \
- do { \
- if (POINTER) \
- { \
- (POINTER)->~T_CLASS <T_PARAM1, T_PARAM2> (); \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-#else
-# define ACE_DES_FREE_TEMPLATE2(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) \
- do { \
- if (POINTER) \
- { \
- (POINTER)->~T_CLASS (); \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-#endif /* defined(__IBMCPP__) && (__IBMCPP__ >= 400) */
-# define ACE_DES_FREE_TEMPLATE3(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2,T_PARAM3) \
- do { \
- if (POINTER) \
- { \
- (POINTER)->~T_CLASS (); \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-# define ACE_DES_FREE_TEMPLATE4(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2,T_PARAM3, T_PARAM4) \
- do { \
- if (POINTER) \
- { \
- (POINTER)->~T_CLASS (); \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-# define ACE_DES_ARRAY_FREE_TEMPLATE2(POINTER,SIZE,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) \
- do { \
- if (POINTER) \
- { \
- for (size_t i = 0; \
- i < SIZE; \
- ++i) \
- { \
- (&(POINTER)[i])->~T_CLASS (); \
- } \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-# else /* ! ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR */
-# define ACE_DES_NOFREE_TEMPLATE(POINTER,T_CLASS,T_PARAMETER) \
- do { \
- if (POINTER) \
- { \
- (POINTER)->T_CLASS T_PARAMETER::~T_CLASS (); \
- } \
- } \
- while (0)
-# define ACE_DES_ARRAY_NOFREE_TEMPLATE(POINTER,SIZE,T_CLASS,T_PARAMETER) \
- do { \
- if (POINTER) \
- { \
- for (size_t i = 0; \
- i < SIZE; \
- ++i) \
- { \
- (POINTER)[i].T_CLASS T_PARAMETER::~T_CLASS (); \
- } \
- } \
- } \
- while (0)
-# if defined (__Lynx__) && __LYNXOS_SDK_VERSION == 199701L
- // LynxOS 3.0.0's g++ has trouble with the real versions of these.
-# define ACE_DES_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER)
-# define ACE_DES_ARRAY_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER)
-# define ACE_DES_FREE_TEMPLATE2(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2)
-# define ACE_DES_FREE_TEMPLATE3(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2)
-# define ACE_DES_FREE_TEMPLATE4(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2)
-# define ACE_DES_ARRAY_FREE_TEMPLATE2(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2)
-# else
-# define ACE_DES_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER) \
- do { \
- if (POINTER) \
- { \
- POINTER->T_CLASS T_PARAMETER::~T_CLASS (); \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-# define ACE_DES_ARRAY_FREE_TEMPLATE(POINTER,SIZE,DEALLOCATOR,T_CLASS,T_PARAMETER) \
- do { \
- if (POINTER) \
- { \
- for (size_t i = 0; \
- i < SIZE; \
- ++i) \
- { \
- POINTER[i].T_CLASS T_PARAMETER::~T_CLASS (); \
- } \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-# define ACE_DES_FREE_TEMPLATE2(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) \
- do { \
- if (POINTER) \
- { \
- POINTER->T_CLASS <T_PARAM1, T_PARAM2>::~T_CLASS (); \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-# define ACE_DES_FREE_TEMPLATE3(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2,T_PARAM3) \
- do { \
- if (POINTER) \
- { \
- POINTER->T_CLASS <T_PARAM1, T_PARAM2, T_PARAM3>::~T_CLASS (); \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-# define ACE_DES_FREE_TEMPLATE4(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2,T_PARAM3,T_PARAM4) \
- do { \
- if (POINTER) \
- { \
- POINTER->T_CLASS <T_PARAM1, T_PARAM2, T_PARAM3, T_PARAM4>::~T_CLASS (); \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-# define ACE_DES_ARRAY_FREE_TEMPLATE2(POINTER,SIZE,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) \
- do { \
- if (POINTER) \
- { \
- for (size_t i = 0; \
- i < SIZE; \
- ++i) \
- { \
- POINTER[i].T_CLASS <T_PARAM1, T_PARAM2>::~T_CLASS (); \
- } \
- DEALLOCATOR (POINTER); \
- } \
- } \
- while (0)
-# endif /* defined (__Lynx__) && __LYNXOS_SDK_VERSION == 199701L */
-# endif /* defined ! ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR */
-
-#include "ace/post.h"
-
-#endif /*ACE_GLOBAL_MACROS_H*/
diff --git a/ace/Handle_Gobbler.h b/ace/Handle_Gobbler.h
deleted file mode 100644
index b823539f7a4..00000000000
--- a/ace/Handle_Gobbler.h
+++ /dev/null
@@ -1,66 +0,0 @@
-
-//=============================================================================
-/**
- * @file Handle_Gobbler.h
- *
- * $Id$
- *
- * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_HANDLE_GOBBLER_H
-#define ACE_HANDLE_GOBBLER_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Unbounded_Set.h"
-
-/**
- * @class ACE_Handle_Gobbler
- *
- * @brief This class gobbles up handles.
- *
- * This is useful when we need to control the number of handles
- * available for a process. This class is mostly used for
- * testing purposes.
- */
-class ACE_Handle_Gobbler
-{
-public:
-
- /// Destructor. Cleans up any remaining handles.
- inline ~ACE_Handle_Gobbler (void);
-
- /**
- * Handles are opened continously until the process runs out of
- * them, and then <n_handles_to_keep_available> handles are closed
- * (freed) thereby making them usable in the future.
- */
- inline int consume_handles (size_t n_handles_to_keep_available);
-
- /// Free up <n_handles>.
- inline int free_handles (size_t n_handles);
-
- /// All remaining handles are closed.
- inline void close_remaining_handles (void);
-
-private:
-
- typedef ACE_Unbounded_Set<ACE_HANDLE> HANDLE_SET;
-
- /// The container which holds the open descriptors.
- HANDLE_SET handle_set_;
-};
-
-#include "ace/Handle_Gobbler.i"
-
-#include "ace/post.h"
-#endif /* ACE_HANDLE_GOBBLER_H */
diff --git a/ace/Handle_Gobbler.i b/ace/Handle_Gobbler.i
deleted file mode 100644
index f4af340a012..00000000000
--- a/ace/Handle_Gobbler.i
+++ /dev/null
@@ -1,88 +0,0 @@
-// $Id$
-
-// Since this is only included in Handle_Gobbler.h, these should be
-// inline, not ACE_INLINE.
-// FUZZ: disable check_for_inline
-
-inline void
-ACE_Handle_Gobbler::close_remaining_handles (void)
-{
- HANDLE_SET::iterator iterator =
- this->handle_set_.begin ();
-
- HANDLE_SET::iterator end =
- this->handle_set_.end ();
-
- for (;
- iterator != end;
- ++iterator)
- {
- ACE_OS::close (*iterator);
- }
-}
-
-inline
-ACE_Handle_Gobbler::~ACE_Handle_Gobbler (void)
-{
- this->close_remaining_handles ();
-}
-
-inline int
-ACE_Handle_Gobbler::free_handles (size_t n_handles)
-{
- HANDLE_SET::iterator iterator =
- this->handle_set_.begin ();
-
- HANDLE_SET::iterator end =
- this->handle_set_.end ();
-
- for (;
- iterator != end && n_handles > 0;
- ++iterator, --n_handles)
- {
- int result = ACE_OS::close (*iterator);
- if (result != 0)
- return result;
- }
-
- return 0;
-}
-
-inline int
-ACE_Handle_Gobbler::consume_handles (size_t n_handles_to_keep_available)
-{
- int result = 0;
-
-#if defined(ACE_WIN32)
- // On Win32, this style of gobbling doesn't seem to work.
- ACE_UNUSED_ARG(n_handles_to_keep_available);
-
-#else
-
- while (1)
- {
- ACE_HANDLE handle = ACE_OS::open (ACE_DEV_NULL, O_WRONLY);
-
- if (handle == ACE_INVALID_HANDLE)
- {
- if (ACE::out_of_handles (errno))
- {
- result = this->free_handles (n_handles_to_keep_available);
- break;
- }
- else
- {
- result = -1;
- break;
- }
- }
-
- result = this->handle_set_.insert (handle);
- if (result == -1)
- break;
- }
-
-#endif /* ACE_WIN32 */
-
- return result;
-}
diff --git a/ace/Handle_Ops.cpp b/ace/Handle_Ops.cpp
deleted file mode 100644
index 4ef3f805016..00000000000
--- a/ace/Handle_Ops.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// $Id$
-
-#include "ace/Handle_Ops.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Handle_Ops.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID(ace, Handle_Ops, "$Id$")
-
-ACE_HANDLE
-ACE_Handle_Ops::handle_timed_open (ACE_Time_Value *timeout,
- const ACE_TCHAR *name,
- int flags,
- int perms,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_Handle_Ops::handle_timed_open");
-
- if (timeout != 0)
- {
-#if !defined (ACE_WIN32)
- // On Win32, ACE_NONBLOCK gets recognized as O_WRONLY so we
- // don't use it there
- flags |= ACE_NONBLOCK;
-#endif /* ACE_WIN32 */
-
- // Open the named pipe or file using non-blocking mode...
- ACE_HANDLE handle = ACE_OS::open (name,
- flags,
- perms,
- sa);
- if (handle == ACE_INVALID_HANDLE
- && (errno == EWOULDBLOCK
- && (timeout->sec () > 0 || timeout->usec () > 0)))
- // This expression checks if we were polling.
- errno = ETIMEDOUT;
-
- return handle;
- }
- else
- return ACE_OS::open (name, flags, perms, sa);
-}
diff --git a/ace/Handle_Ops.h b/ace/Handle_Ops.h
deleted file mode 100644
index 7368e090a73..00000000000
--- a/ace/Handle_Ops.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Handle_Ops.h
- *
- * $Id$
- *
- * This class consolidates the operations on the Handles.
- *
- *
- * @author Priyanka Gontla <pgontla@ece.uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_HANDLE_OPS_H
-#define ACE_HANDLE_OPS_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-
-class ACE_Export ACE_Handle_Ops
-{
-public:
- // = Operations on HANDLEs.
-
- /**
- * Wait up to <timeout> amount of time to actively open a device.
- * This method doesn't perform the <connect>, it just does the timed
- * wait...
- */
- static ACE_HANDLE handle_timed_open (ACE_Time_Value *timeout,
- const ACE_TCHAR *name,
- int flags,
- int perms,
- LPSECURITY_ATTRIBUTES sa = 0);
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Handle_Ops.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-
-#endif /* ACE_HANDLE_OPS_H */
diff --git a/ace/Handle_Ops.i b/ace/Handle_Ops.i
deleted file mode 100644
index cfa1da318d3..00000000000
--- a/ace/Handle_Ops.i
+++ /dev/null
@@ -1 +0,0 @@
-// $Id$
diff --git a/ace/Handle_Set.cpp b/ace/Handle_Set.cpp
deleted file mode 100644
index 4982cc4f22e..00000000000
--- a/ace/Handle_Set.cpp
+++ /dev/null
@@ -1,556 +0,0 @@
-// Handle_Set.cpp
-// $Id$
-
-#include "ace/Handle_Set.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Handle_Set.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Handle_Set, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Handle_Set)
-
-#if defined (__BORLANDC__) && !defined (ACE_WIN32)
-// The Borland C++ compiler on Linux also doesn't have fds_bits, but has __fds_bits.
-#define fds_bits __fds_bits
-#endif
-
-#if defined (linux) && __GLIBC__ > 1 && __GLIBC_MINOR__ >= 1 && !defined (_XOPEN_SOURCE)
- // XPG4.2 requires the fds_bits member name, so it is not enabled by
- // default on Linux/glibc-2.1.x systems. Instead use "__fds_bits."
- // Ugly, but "what are you going to do?" 8-)
-#define fds_bits __fds_bits
-#endif /* linux && __GLIBC__ > 1 && __GLIBC_MINOR__ >= 1 && !_XOPEN_SOURCE */
-
-void
-ACE_Handle_Set::dump (void) const
-{
- ACE_TRACE ("ACE_Handle_Set::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nsize_ = %d"), this->size_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nmax_handle_ = %d"), this->max_handle_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n[ ")));
-
-#if defined (ACE_WIN32)
- for (size_t i = 0; i < (size_t) this->mask_.fd_count + 1; i++)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" %x "), this->mask_.fd_array[i]));
-#else /* !ACE_WIN32 */
- for (ACE_HANDLE i = 0; i < this->max_handle_ + 1; i++)
- if (this->is_set (i))
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" %d "), i));
-#endif /* ACE_WIN32 */
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" ]\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Table that maps bytes to counts of the enabled bits in each value
-// from 0 to 255,
-//
-// nbits_[0] == 0
-//
-// because there are no bits enabled for the value 0.
-//
-// nbits_[5] == 2
-//
-// because there are 2 bits enabled in the value 5, i.e., it's
-// 101 in binary.
-
-const char ACE_Handle_Set::nbits_[256] =
-{
- 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8};
-
-// Constructor, initializes the bitmask to all 0s.
-
-ACE_Handle_Set::ACE_Handle_Set (void)
-{
- ACE_TRACE ("ACE_Handle_Set::ACE_Handle_Set");
- this->reset ();
-}
-
-ACE_Handle_Set::ACE_Handle_Set (const ACE_FD_SET_TYPE &fd_mask)
-{
- ACE_TRACE ("ACE_Handle_Set::ACE_Handle_Set");
- this->reset ();
- ACE_OS::memcpy ((void *) &this->mask_,
- (void *) &fd_mask,
- sizeof this->mask_);
-#if !defined (ACE_WIN32)
- this->sync (ACE_Handle_Set::MAXSIZE);
-#if defined (ACE_HAS_BIG_FD_SET)
- this->min_handle_ = 0;
-#endif /* ACE_HAS_BIG_FD_SET */
-#endif /* !ACE_WIN32 */
-}
-
-// Counts the number of bits enabled in N. Uses a table lookup to
-// speed up the count.
-
-int
-ACE_Handle_Set::count_bits (u_long n)
-{
-
- ACE_TRACE ("ACE_Handle_Set::count_bits");
-#if defined (ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT)
- register int rval = 0;
-
- // Count the number of enabled bits in <n>. This algorithm is very
- // fast, i.e., O(enabled bits in n).
-
- for (register u_long m = n;
- m != 0;
- m &= m - 1)
- rval++;
-
- return rval;
-#else
- return (ACE_Handle_Set::nbits_[n & 0xff]
- + ACE_Handle_Set::nbits_[(n >> 8) & 0xff]
- + ACE_Handle_Set::nbits_[(n >> 16) & 0xff]
- + ACE_Handle_Set::nbits_[(n >> 24) & 0xff]);
-#endif /* ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT */
-}
-
-#if defined (ACE_HAS_BIG_FD_SET)
-// Find the bit position counting from right to left worst case
-// (1<<31) is 8.
-
-int
-ACE_Handle_Set::bitpos (u_long bit)
-{
- register int l = 0;
- register u_long n = bit - 1;
-
- // This is a fast count method when have the most significative bit.
-
- while (n >> 8)
- {
- n >>= 8;
- l += 8;
- }
-
- // Is greater than 15?
- if (n & 16)
- {
- n >>= 4;
- l += 4;
- }
-
- // Count number remaining bits.
- while (n != 0)
- {
- n &= n - 1;
- l++;
- }
- return l;
-}
-#endif /* ACE_HAS_BIG_FD_SET */
-
-// Synchronize the underlying FD_SET with the MAX_FD and the SIZE.
-
-#if defined (ACE_USE_SHIFT_FOR_EFFICIENCY)
-// These don't work because shifting right 3 bits is not the same as
-// dividing by 3, e.g., dividing by 8 requires shifting right 3 bits.
-// In order to do the shift, we need to calculate the number of bits
-// at some point.
-#define ACE_DIV_BY_WORDSIZE(x) ((x) >> ((int) ACE_Handle_Set::WORDSIZE))
-#define ACE_MULT_BY_WORDSIZE(x) ((x) << ((int) ACE_Handle_Set::WORDSIZE))
-#else
-#define ACE_DIV_BY_WORDSIZE(x) ((x) / ((int) ACE_Handle_Set::WORDSIZE))
-#define ACE_MULT_BY_WORDSIZE(x) ((x) * ((int) ACE_Handle_Set::WORDSIZE))
-#endif /* ACE_USE_SHIFT_FOR_EFFICIENCY */
-
-void
-ACE_Handle_Set::sync (ACE_HANDLE max)
-{
- ACE_TRACE ("ACE_Handle_Set::sync");
-#if !defined (ACE_WIN32)
- fd_mask *maskp = (fd_mask *)(this->mask_.fds_bits);
- this->size_ = 0;
-
- for (int i = ACE_DIV_BY_WORDSIZE (max - 1);
- i >= 0;
- i--)
- this->size_ += ACE_Handle_Set::count_bits (maskp[i]);
-
- this->set_max (max);
-#else
- ACE_UNUSED_ARG (max);
-#endif /* !ACE_WIN32 */
-}
-
-// Resets the MAX_FD after a clear of the original MAX_FD.
-
-void
-ACE_Handle_Set::set_max (ACE_HANDLE current_max)
-{
- ACE_TRACE ("ACE_Handle_Set::set_max");
-#if !defined(ACE_WIN32)
- fd_mask * maskp = (fd_mask *)(this->mask_.fds_bits);
-
- if (this->size_ == 0)
- this->max_handle_ = ACE_INVALID_HANDLE;
- else
- {
- int i;
-
- for (i = ACE_DIV_BY_WORDSIZE (current_max - 1);
- maskp[i] == 0;
- i--)
- continue;
-
-#if defined (ACE_PSOS)
- this->max_handle_ = ACE_MULT_BY_WORDSIZE (i);
- for (fd_mask val = maskp[i];
- (val & ACE_MSB_MASK) != 0;
- val = (val << 1))
- this->max_handle_++;
-#elif 1 /* !defined(ACE_HAS_BIG_FD_SET) */
- this->max_handle_ = ACE_MULT_BY_WORDSIZE (i);
- for (fd_mask val = maskp[i];
- (val & ~1) != 0; // This obscure code is needed since "bit 0" is in location 1...
- val = (val >> 1) & ACE_MSB_MASK)
- this->max_handle_++;
-#else
- register u_long val = this->mask_.fds_bits[i];
- this->max_handle_ = ACE_MULT_BY_WORDSIZE (i)
- + ACE_Handle_Set::bitpos(val & ~(val - 1));
-#endif /* 1 */
- }
-
- // Do some sanity checking...
- if (this->max_handle_ >= ACE_Handle_Set::MAXSIZE)
- this->max_handle_ = ACE_Handle_Set::MAXSIZE - 1;
-#else
- ACE_UNUSED_ARG (current_max);
-#endif /* !ACE_WIN32 */
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Handle_Set_Iterator)
-
-void
-ACE_Handle_Set_Iterator::dump (void) const
-{
- ACE_TRACE ("ACE_Handle_Set_Iterator::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-#if defined(ACE_WIN32) || !defined(ACE_HAS_BIG_FD_SET)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nhandle_index_ = %d"), this->handle_index_));
-#elif defined(ACE_HAS_BIG_FD_SET)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nword_max_ = %d"), this->word_max_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nword_val_ = %d"), this->word_val_));
-#endif
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nword_num_ = %d"), this->word_num_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_HANDLE
-ACE_Handle_Set_Iterator::operator () (void)
-{
- ACE_TRACE ("ACE_Handle_Set_Iterator::operator");
-#if defined (ACE_WIN32)
- if (this->handle_index_ < this->handles_.mask_.fd_count)
- // Return the handle and advance the iterator.
- return (ACE_HANDLE) this->handles_.mask_.fd_array[this->handle_index_++];
- else
- return ACE_INVALID_HANDLE;
-
-#elif !defined (ACE_HAS_BIG_FD_SET) /* !ACE_WIN32 */
- // No sense searching further than the max_handle_ + 1;
- ACE_HANDLE maxhandlep1 = this->handles_.max_handle_ + 1;
-
- // HP-UX 11 plays some games with the fd_mask type - fd_mask is
- // defined as an int_32t, but the fds_bits is an array of longs.
- // This makes plainly indexing through the array by hand tricky,
- // since the FD_* macros treat the array as int32_t. So the bits
- // are in the right place for int32_t, even though the array is
- // long. This, they say, is to preserve the same in-memory layout
- // for 32-bit and 64-bit processes. So, we play the same game as
- // the FD_* macros to get the bits right. On all other systems,
- // this amounts to practically a NOP, since this is what would have
- // been done anyway, without all this type jazz.
- fd_mask * maskp = (fd_mask *)(this->handles_.mask_.fds_bits);
-
- if (this->handle_index_ >= maxhandlep1)
- // We've seen all the handles we're interested in seeing for this
- // iterator.
- return ACE_INVALID_HANDLE;
- else
- {
- ACE_HANDLE result = this->handle_index_;
-
- // Increment the iterator and advance to the next bit in this
- // word.
- this->handle_index_++;
-# if defined (ACE_PSOS)
- this->word_val_ = (this->word_val_ << 1);
-# else
- this->word_val_ = (this->word_val_ >> 1) & ACE_MSB_MASK;
-# endif /* ACE_PSOS */
-
- // If we've examined all the bits in this word, we'll go onto
- // the next word.
-
- if (this->word_val_ == 0)
- {
- // Start the handle_index_ at the beginning of the next word
- // and then loop until we've found the first non-zero bit or
- // we run past the <maxhandlep1> of the bitset.
-
- for (this->handle_index_ = ACE_MULT_BY_WORDSIZE(++this->word_num_);
- this->handle_index_ < maxhandlep1
- && maskp[this->word_num_] == 0;
- this->word_num_++)
- this->handle_index_ += ACE_Handle_Set::WORDSIZE;
-
- // If the bit index becomes >= the maxhandlep1 that means
- // there weren't any more bits set that we want to consider.
- // Therefore, we'll just store the maxhandlep1, which will
- // cause <operator()> to return <ACE_INVALID_HANDLE>
- // immediately next time it's called.
- if (this->handle_index_ >= maxhandlep1)
- {
- this->handle_index_ = maxhandlep1;
- return result;
- }
- else
- // Load the bits of the next word.
- this->word_val_ = maskp[this->word_num_];
- }
-
- // Loop until we get <word_val_> to have its least significant
- // bit enabled, keeping track of which <handle_index> this
- // represents (this information is used by subsequent calls to
- // <operator()>).
-
-# if defined (ACE_PSOS) // bits are in reverse order, MSB (sign bit) = bit 0.
- for (;
- this->word_val_ > 0;
- this->word_val_ = (this->word_val_ << 1))
- this->handle_index_++;
-# else
- for (;
- ACE_BIT_DISABLED (this->word_val_, 1);
- this->handle_index_++)
- this->word_val_ = (this->word_val_ >> 1) & ACE_MSB_MASK;
-# endif /* ACE_PSOS */
-
- return result;
- }
-#else /* !ACE_HAS_BIG_FD_SET */
- // Find the first word in fds_bits with bit on
- register u_long lsb = this->word_val_;
-
- if (lsb == 0)
- {
- do
- {
- // We have exceeded the word count in Handle_Set?
- if (++this->word_num_ >= this->word_max_)
- return ACE_INVALID_HANDLE;
-
- lsb = this->handles_.mask_.fds_bits[this->word_num_];
- }
- while (lsb == 0);
-
- // Set index to word boundary.
- this->handle_index_ = ACE_MULT_BY_WORDSIZE(this->word_num_);
-
- // Put new word_val.
- this->word_val_ = lsb;
-
- // Find the least significative bit.
- lsb &= ~(lsb - 1);
-
- // Remove least significative bit.
- this->word_val_ ^= lsb;
-
- // Save to calculate bit distance.
- this->oldlsb_ = lsb;
-
- // Move index to least significative bit.
- while (lsb >>= 1)
- this->handle_index_++;
- }
- else
- {
- // Find the least significative bit.
- lsb &= ~(lsb - 1);
-
- // Remove least significative bit.
- this->word_val_ ^= lsb;
-
- register u_long n = lsb - this->oldlsb_;
-
- // Move index to bit distance between new lsb and old lsb.
- do
- {
- this->handle_index_++;
- n &= n >> 1;
- }
- while (n != 0);
-
- this->oldlsb_ = lsb;
- }
-
- return this->handle_index_;
-#endif /* ACE_WIN32 */
-}
-
-void
-ACE_Handle_Set_Iterator::operator++ (void)
-{
- ACE_TRACE ("ACE_Handle_Set_Iterator::operator++");
-
- // This is now a no-op.
-}
-
-ACE_Handle_Set_Iterator::ACE_Handle_Set_Iterator (const ACE_Handle_Set &hs)
- : handles_ (hs),
-#if !defined (ACE_HAS_BIG_FD_SET) || defined (ACE_WIN32)
- handle_index_ (0),
- word_num_ (-1)
-#elif defined (ACE_HAS_BIG_FD_SET)
- oldlsb_ (0),
- word_max_ (hs.max_handle_ == ACE_INVALID_HANDLE
- ? 0
- : ((ACE_DIV_BY_WORDSIZE (hs.max_handle_)) + 1))
-#endif /* ACE_HAS_BIG_FD_SET */
-{
- ACE_TRACE ("ACE_Handle_Set_Iterator::ACE_Handle_Set_Iterator");
-#if !defined (ACE_WIN32) && !defined (ACE_HAS_BIG_FD_SET)
- // No sense searching further than the max_handle_ + 1;
- ACE_HANDLE maxhandlep1 =
- this->handles_.max_handle_ + 1;
-
- fd_mask *maskp =
- (fd_mask *)(this->handles_.mask_.fds_bits);
-
- // Loop until we've found the first non-zero bit or we run past the
- // <maxhandlep1> of the bitset.
- while (this->handle_index_ < maxhandlep1
- && maskp[++this->word_num_] == 0)
- this->handle_index_ += ACE_Handle_Set::WORDSIZE;
-
- // If the bit index becomes >= the maxhandlep1 that means there
- // weren't any bits set. Therefore, we'll just store the
- // maxhandlep1, which will cause <operator()> to return
- // <ACE_INVALID_HANDLE> immediately.
- if (this->handle_index_ >= maxhandlep1)
- this->handle_index_ = maxhandlep1;
- else
- // Loop until we get <word_val_> to have its least significant bit
- // enabled, keeping track of which <handle_index> this represents
- // (this information is used by <operator()>).
-# if defined (ACE_PSOS) // bits are in reverse order, MSB (sign bit) = bit 0.
- for (this->word_val_ = maskp[this->word_num_];
- this->word_val_ > 0;
- this->word_val_ = (this->word_val_ << 1))
- this->handle_index_++;
-# else
- for (this->word_val_ = maskp[this->word_num_];
- ACE_BIT_DISABLED (this->word_val_, 1)
- && this->handle_index_ < maxhandlep1;
- this->handle_index_++)
- this->word_val_ = (this->word_val_ >> 1) & ACE_MSB_MASK;
-# endif /* ACE_PSOS */
-#elif !defined (ACE_WIN32) && defined (ACE_HAS_BIG_FD_SET)
- if (this->word_max_==0)
- {
- this->word_num_ = -1;
- this->word_val_ = 0;
- }
- else
- {
- this->word_num_ =
- ACE_DIV_BY_WORDSIZE (this->handles_.min_handle_) - 1;
- this->word_val_ = 0;
- }
-#endif /* !ACE_WIN32 && !ACE_HAS_BIG_FD_SET */
-}
-
-
-void
-ACE_Handle_Set_Iterator::reset_state (void)
-{
- ACE_TRACE ("ACE_Handle_Set_Iterator::reset_state");
-
-#if !defined (ACE_HAS_BIG_FD_SET) || defined (ACE_WIN32)
- this->handle_index_ = 0;
- this->word_num_ = -1;
-#elif defined (ACE_HAS_BIG_FD_SET)
- this->oldlsb_ = 0;
- this->word_max_ =
- this->handles_.max_handle_ == ACE_INVALID_HANDLE ? 0
- : ((ACE_DIV_BY_WORDSIZE (this->handles_.max_handle_)) + 1);
-#endif /* ACE_HAS_BIG_FD_SET */
-
-#if !defined (ACE_WIN32) && !defined (ACE_HAS_BIG_FD_SET)
- // No sense searching further than the max_handle_ + 1;
- ACE_HANDLE maxhandlep1 =
- this->handles_.max_handle_ + 1;
-
- fd_mask *maskp =
- (fd_mask *)(this->handles_.mask_.fds_bits);
-
- // Loop until we've found the first non-zero bit or we run past the
- // <maxhandlep1> of the bitset.
- while (this->handle_index_ < maxhandlep1
- && maskp[++this->word_num_] == 0)
- this->handle_index_ += ACE_Handle_Set::WORDSIZE;
-
- // If the bit index becomes >= the maxhandlep1 that means there
- // weren't any bits set. Therefore, we'll just store the
- // maxhandlep1, which will cause <operator()> to return
- // <ACE_INVALID_HANDLE> immediately.
- if (this->handle_index_ >= maxhandlep1)
- this->handle_index_ = maxhandlep1;
- else
- // Loop until we get <word_val_> to have its least significant bit
- // enabled, keeping track of which <handle_index> this represents
- // (this information is used by <operator()>).
-# if defined (ACE_PSOS) // bits are in reverse order, MSB (sign bit) = bit 0.
- for (this->word_val_ = maskp[this->word_num_];
- this->word_val_ > 0;
- this->word_val_ = (this->word_val_ << 1))
- this->handle_index_++;
-# else
- for (this->word_val_ = maskp[this->word_num_];
- ACE_BIT_DISABLED (this->word_val_, 1)
- && this->handle_index_ < maxhandlep1;
- this->handle_index_++)
- this->word_val_ = (this->word_val_ >> 1) & ACE_MSB_MASK;
-# endif /* ACE_PSOS */
-#elif !defined (ACE_WIN32) && defined (ACE_HAS_BIG_FD_SET)
- if (this->word_max_==0)
- {
- this->word_num_ = -1;
- this->word_val_ = 0;
- }
- else
- {
- this->word_num_ =
- ACE_DIV_BY_WORDSIZE (this->handles_.min_handle_) - 1;
- this->word_val_ = 0;
- }
-#endif /* !ACE_WIN32 && !ACE_HAS_BIG_FD_SET */
-}
diff --git a/ace/Handle_Set.h b/ace/Handle_Set.h
deleted file mode 100644
index 731ca256f7f..00000000000
--- a/ace/Handle_Set.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Handle_Set.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_HANDLE_SET_H
-#define ACE_HANDLE_SET_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Handle_Set
- *
- * @brief C++ wrapper facade for the socket <fd_set> abstraction.
- *
- * This abstraction is a very efficient wrapper facade over
- * <fd_set>. In particular, no range checking is performed, so
- * it's important not to set or clear bits that are outside the
- * <ACE_DEFAULT_SELECT_REACTOR_SIZE>.
- */
-class ACE_Export ACE_Handle_Set
-{
-public:
- friend class ACE_Handle_Set_Iterator;
-
- // = Initialization and termination.
-
- enum
- {
- MAXSIZE = ACE_DEFAULT_SELECT_REACTOR_SIZE
- };
-
- // = Initialization methods.
- /// Constructor, initializes the bitmask to all 0s.
- ACE_Handle_Set (void);
-
- /**
- * Constructor, initializes the handle set from a given mask.
- * <ACE_FD_SET_TYPE> is a <typedef> based on the platform's native
- * type used for masks passed to <select>.
- */
- ACE_Handle_Set (const ACE_FD_SET_TYPE &mask);
-
- // = Methods for manipulating bitsets.
- /// Initialize the bitmask to all 0s and reset the associated fields.
- void reset (void);
-
- /**
- * Checks whether <handle> is enabled. No range checking is
- * performed so <handle> must be less than
- * <ACE_DEFAULT_SELECT_REACTOR_SIZE>.
- */
- int is_set (ACE_HANDLE handle) const;
-
- /// Enables the <handle>. No range checking is performed so <handle>
- /// must be less than <ACE_DEFAULT_SELECT_REACTOR_SIZE>.
- void set_bit (ACE_HANDLE handle);
-
- /// Disables the <handle>. No range checking is performed so
- /// <handle> must be less than <ACE_DEFAULT_SELECT_REACTOR_SIZE>.
- void clr_bit (ACE_HANDLE handle);
-
- /// Returns a count of the number of enabled bits.
- int num_set (void) const;
-
- /// Returns the number of the large bit.
- ACE_HANDLE max_set (void) const;
-
- /**
- * Rescan the underlying <fd_set> up to handle <max> to find the new
- * <max_handle> (highest bit set) and <size> (how many bits set) values.
- * This is useful for evaluating the changes after the handle set has
- * been manipulated in some way other than member functions; for example,
- * after <select> modifies the <fd_set>.
- */
- void sync (ACE_HANDLE max);
-
- /// Returns a pointer to the underlying <fd_set>. Returns 0 if
- /// there are no handle bits set (<size_> == 0).
- operator fd_set *();
-
- /// Returns a pointer to the underlying <fd_set>. Returns 0 if
- /// there are no handle bits set (<size_> == 0).
- fd_set *fdset (void);
-
-#if defined (ACE_HAS_BIG_FD_SET)
- /// Assignment operator optimizes for cases where <size_> == 0.
- ACE_Handle_Set & operator= (const ACE_Handle_Set &);
-#endif /* ACE_HAS_BIG_FD_SET */
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Size of the set, i.e., a count of the number of enabled bits.
- int size_;
-
- /// Current max handle.
- ACE_HANDLE max_handle_;
-
-#if defined (ACE_HAS_BIG_FD_SET)
- /// Current min handle.
- ACE_HANDLE min_handle_;
-#endif /* ACE_HAS_BIG_FD_SET */
-
- /// Bitmask.
- fd_set mask_;
-
- enum
- {
- WORDSIZE = NFDBITS,
-#if !defined (ACE_WIN32)
- NUM_WORDS = howmany (MAXSIZE, NFDBITS),
-#endif /* ACE_WIN32 */
- NBITS = 256
- };
-
- /// Counts the number of bits enabled in N. Uses a table lookup to
- /// speed up the count.
- static int count_bits (u_long n);
-
-#if defined (ACE_HAS_BIG_FD_SET)
- /// Find the position of the bit counting from right to left.
- static int bitpos (u_long bit);
-#endif /* ACE_HAS_BIG_FD_SET */
-
- /// Resets the <max_handle_> after a clear of the original
- /// <max_handle_>.
- void set_max (ACE_HANDLE max);
-
- /// Table that maps bytes to counts of the enabled bits in each value
- /// from 0 to 255.
- static const char nbits_[NBITS];
-};
-
-/**
- * @class ACE_Handle_Set_Iterator
- *
- * @brief Iterator for the <ACE_Handle_Set> abstraction.
- */
-class ACE_Export ACE_Handle_Set_Iterator
-{
-public:
- /// Constructor.
- ACE_Handle_Set_Iterator (const ACE_Handle_Set &hs);
-
- /// Default dtor.
- ~ACE_Handle_Set_Iterator (void);
-
- /// Reset the state of the iterator by reinitializing the state
- /// that we maintain.
- void reset_state (void);
-
- /**
- * "Next" operator. Returns the next unseen <ACE_HANDLE> in the
- * <Handle_Set> up to <handle_set_.max_handle_>). When all the
- * handles have been seen returns <ACE_INVALID_HANDLE>. Advances
- * the iterator automatically, so you need not call <operator++>
- * (which is now obsolete).
- */
- ACE_HANDLE operator () (void);
-
- /// This is a no-op and no longer does anything. It's only here for
- /// backwards compatibility.
- void operator++ (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// The <Handle_Set> we are iterating through.
- const ACE_Handle_Set &handles_;
-
-#if defined (ACE_WIN32)
- u_int handle_index_;
-#elif !defined (ACE_HAS_BIG_FD_SET)
- int handle_index_;
-#elif defined (ACE_HAS_BIG_FD_SET)
- int handle_index_;
- u_long oldlsb_;
-#endif /* ACE_WIN32 */
- // Index of the bit we're examining in the current <word_num_> word.
-
- /// Number of the word we're iterating over (typically between 0..7).
- int word_num_;
-
-#if defined (ACE_HAS_BIG_FD_SET)
- /// Number max of the words with a possible bit on.
- int word_max_;
-#endif /* ACE_HAS_BIG_FD_SET */
-
-#if !defined (ACE_WIN32) && !defined (ACE_HAS_BIG_FD_SET)
- /// Value of the bits in the word we're iterating on.
- fd_mask word_val_;
-#elif !defined (ACE_WIN32) && defined (ACE_HAS_BIG_FD_SET)
- /// Value of the bits in the word we're iterating on.
- u_long word_val_;
-#endif /* !ACE_WIN32 && !ACE_HAS_BIG_FD_SET */
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Handle_Set.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_HANDLE_SET */
diff --git a/ace/Handle_Set.i b/ace/Handle_Set.i
deleted file mode 100644
index 93d84c3ec77..00000000000
--- a/ace/Handle_Set.i
+++ /dev/null
@@ -1,168 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Handle_Set.i
-
-// Initialize the bitmask to all 0s and reset the associated fields.
-
-ACE_INLINE void
-ACE_Handle_Set::reset (void)
-{
- ACE_TRACE ("ACE_Handle_Set::reset");
- this->max_handle_ =
- ACE_INVALID_HANDLE;
-#if defined (ACE_HAS_BIG_FD_SET)
- this->min_handle_ =
- NUM_WORDS * WORDSIZE;
-#endif /* ACE_HAS_BIG_FD_SET */
- this->size_ = 0;
- // #if !defined (ACE_HAS_BIG_FD_SET) Why is this here? -Steve Huston
- FD_ZERO (&this->mask_);
- // #endif /* ACE_HAS_BIG_FD_SET */
-}
-
-#if defined (ACE_HAS_BIG_FD_SET)
-ACE_INLINE ACE_Handle_Set &
-ACE_Handle_Set::operator = (const ACE_Handle_Set &rhs)
-{
- ACE_TRACE ("ACE_Handle_Set::operator =");
-
- if (rhs.size_ > 0)
- {
- this->size_ =
- rhs.size_;
- this->max_handle_ =
- rhs.max_handle_;
- this->min_handle_ =
- rhs.min_handle_;
- this->mask_ =
- rhs.mask_;
- }
- else
- this->reset ();
-
- return *this;
-}
-#endif /* ACE_HAS_BIG_FD_SET */
-
-// Returns the number of the large bit.
-
-ACE_INLINE ACE_HANDLE
-ACE_Handle_Set::max_set (void) const
-{
- ACE_TRACE ("ACE_Handle_Set::max_set");
- return this->max_handle_;
-}
-
-// Checks whether handle is enabled.
-
-ACE_INLINE int
-ACE_Handle_Set::is_set (ACE_HANDLE handle) const
-{
- ACE_TRACE ("ACE_Handle_Set::is_set");
-#if defined (ACE_HAS_BIG_FD_SET)
- return FD_ISSET (handle,
- &this->mask_)
- && this->size_ > 0;
-#else
- return FD_ISSET (handle,
- &this->mask_);
-#endif /* ACE_HAS_BIG_FD_SET */
-}
-
-// Enables the handle.
-
-ACE_INLINE void
-ACE_Handle_Set::set_bit (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Handle_Set::set_bit");
- if ((handle != ACE_INVALID_HANDLE)
- && (!this->is_set (handle)))
- {
-#if defined (ACE_WIN32)
- FD_SET ((SOCKET) handle,
- &this->mask_);
- this->size_++;
-#else /* ACE_WIN32 */
-#if defined (ACE_HAS_BIG_FD_SET)
- if (this->size_ == 0)
- FD_ZERO (&this->mask_);
-
- if (handle < this->min_handle_)
- this->min_handle_ = handle;
-#endif /* ACE_HAS_BIG_FD_SET */
-
- FD_SET (handle,
- &this->mask_);
- this->size_++;
-
- if (handle > this->max_handle_)
- this->max_handle_ = handle;
-#endif /* ACE_WIN32 */
- }
-}
-
-// Disables the handle.
-
-ACE_INLINE void
-ACE_Handle_Set::clr_bit (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Handle_Set::clr_bit");
-
- if ((handle != ACE_INVALID_HANDLE) &&
- (this->is_set (handle)))
- {
- FD_CLR ((ACE_SOCKET) handle,
- &this->mask_);
- this->size_--;
-
-#if !defined (ACE_WIN32)
- if (handle == this->max_handle_)
- this->set_max (this->max_handle_);
-#endif /* !ACE_WIN32 */
- }
-}
-
-// Returns a count of the number of enabled bits.
-
-ACE_INLINE int
-ACE_Handle_Set::num_set (void) const
-{
- ACE_TRACE ("ACE_Handle_Set::num_set");
-#if defined (ACE_WIN32)
- return this->mask_.fd_count;
-#else /* !ACE_WIN32 */
- return this->size_;
-#endif /* ACE_WIN32 */
-}
-
-// Returns a pointer to the underlying fd_set.
-
-ACE_INLINE
-ACE_Handle_Set::operator fd_set *()
-{
- ACE_TRACE ("ACE_Handle_Set::operator fd_set *");
-
- if (this->size_ > 0)
- return (fd_set *) &this->mask_;
- else
- return (fd_set *) 0;
-}
-
-// Returns a pointer to the underlying fd_set.
-
-ACE_INLINE fd_set *
-ACE_Handle_Set::fdset (void)
-{
- ACE_TRACE ("ACE_Handle_Set::fdset");
-
- if (this->size_ > 0)
- return (fd_set *) &this->mask_;
- else
- return (fd_set *) 0;
-}
-
-ACE_INLINE
-ACE_Handle_Set_Iterator::~ACE_Handle_Set_Iterator (void)
-{
-}
diff --git a/ace/Hash_Cache_Map_Manager_T.cpp b/ace/Hash_Cache_Map_Manager_T.cpp
deleted file mode 100644
index b678dd1bb8b..00000000000
--- a/ace/Hash_Cache_Map_Manager_T.cpp
+++ /dev/null
@@ -1,230 +0,0 @@
-// $Id$
-
-#ifndef ACE_HASH_CACHE_MAP_MANAGER_T_C
-#define ACE_HASH_CACHE_MAP_MANAGER_T_C
-
-#include "ace/Hash_Cache_Map_Manager_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#define ACE_LACKS_PRAGMA_ONCE
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Hash_Cache_Map_Manager_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Hash_Cache_Map_Manager_T, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Cache_Map_Manager)
-
-#define T_1 class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES
-#define T_2 KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES
-
-template <T_1>
-ACE_Hash_Cache_Map_Manager<T_2>::ACE_Hash_Cache_Map_Manager (CACHING_STRATEGY &caching_s,
- size_t size,
- ACE_Allocator *alloc)
- : ACE_HCMM_BASE (caching_s,
- size,
- alloc)
-{
-}
-
-template <T_1>
-ACE_Hash_Cache_Map_Manager<T_2>::~ACE_Hash_Cache_Map_Manager (void)
-{
-}
-
-template <T_1> int
-ACE_Hash_Cache_Map_Manager<T_2>:: bind (const KEY &key,
- const VALUE &value,
- CACHE_ENTRY *&entry)
-{
- // Insert a entry which has the <key> and the <cache_value> which is
- // the combination of the <value> and the attributes of the caching
- // strategy.
- CACHE_VALUE cache_value (value,
- this->caching_strategy_.attributes ());
-
- int bind_result = this->map_.bind (key,
- cache_value,
- entry);
-
- if (bind_result != -1)
- {
-
- int result = this->caching_strategy_.notify_bind (bind_result,
- cache_value.second ());
-
- if (result == -1)
- {
-
- this->map_.unbind (key);
-
- // Unless the notification goes thru the bind operation is
- // not complete.
- bind_result = -1;
-
- }
- }
-
- return bind_result;
-}
-
-template <T_1> int
-ACE_Hash_Cache_Map_Manager<T_2>::rebind (const KEY &key,
- const VALUE &value,
- CACHE_ENTRY *&entry)
-{
- CACHE_VALUE cache_value (value,
- this->caching_strategy_.attributes ());
-
- int rebind_result = this->map_.rebind (key,
- cache_value,
- entry);
-
- if (rebind_result != -1)
- {
-
- int result = this->caching_strategy_.notify_rebind (rebind_result,
- cache_value.second ());
-
- if (result == -1)
- {
-
- // Make sure the unbind operation is done only when the
- // notification fails after a bind which is denoted by
- // rebind_result = 0
- if (rebind_result == 0)
- this->map_.unbind (key);
-
- // Unless the notification goes thru the rebind operation is
- // not complete.
- rebind_result = -1;
-
- }
-
- }
-
- return rebind_result;
-}
-
-template <T_1> int
-ACE_Hash_Cache_Map_Manager<T_2>::trybind (const KEY &key,
- VALUE &value,
- CACHE_ENTRY *&entry)
-{
- CACHE_VALUE cache_value (value,
- this->caching_strategy_.attributes ());
-
- int trybind_result = this->map_.trybind (key,
- cache_value,
- entry);
-
- if (trybind_result != -1)
- {
- int result = this->caching_strategy_.notify_trybind (trybind_result,
- cache_value.second ());
-
- if (result == -1)
- {
-
- // If the entry has got inserted into the map, it is removed
- // due to failure.
- if (trybind_result == 0)
- this->map_.unbind (key);
-
- trybind_result = -1;
-
- }
- else
- {
-
- // If an attempt is made to bind an existing entry the value
- // is overwritten with the value from the map.
- if (trybind_result == 1)
- value = cache_value.first ();
-
- }
-
- }
-
- return trybind_result;
-}
-
-template <T_1> int
-ACE_Hash_Cache_Map_Manager<T_2>::find (const KEY &key,
- CACHE_ENTRY *&entry)
-{
- // Lookup the key and populate the <value>.
- int find_result = this->map_.find (key,
- entry);
-
- if (find_result != -1)
- {
-
- int result = this->caching_strategy_.notify_find (find_result,
- entry->int_id_.second ());
-
- // Unless the find and notification operations go thru, this
- // method is not successful.
- if (result == -1)
- find_result = -1;
- else
- find_result = 0;
-
- }
-
- return find_result;
-}
-
-template <T_1> int
-ACE_Hash_Cache_Map_Manager<T_2>::find (const KEY &key,
- VALUE &value)
-{
- CACHE_ENTRY *entry = 0;
-
- int result = this->find (key,
- entry);
-
- if (result != -1)
- {
- value = entry->int_id_.first ();
- }
-
- return result;
-}
-
-template <T_1> int
-ACE_Hash_Cache_Map_Manager<T_2>::find (const KEY &key)
-{
- CACHE_ENTRY *entry = 0;
-
- return this->find (key,
- entry);
-}
-
-template <T_1> int
-ACE_Hash_Cache_Map_Manager<T_2>::unbind (CACHE_ENTRY *entry)
-{
- // Remove the entry from the cache.
- int unbind_result = this->map_.unbind (entry);
-
- if (unbind_result != -1)
- {
-
- int result = this->caching_strategy_.notify_unbind (unbind_result,
- entry->int_id_.second ());
-
- if (result == -1)
- unbind_result = -1;
-
- }
-
- return unbind_result;
-}
-
-#undef T_1
-#undef T_2
-
-#endif /* ACE_HASH_CACHE_MAP_MANAGER_T_C */
diff --git a/ace/Hash_Cache_Map_Manager_T.h b/ace/Hash_Cache_Map_Manager_T.h
deleted file mode 100644
index 83b6a71ca13..00000000000
--- a/ace/Hash_Cache_Map_Manager_T.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Hash_Cache_Map_Manager_T.h
- *
- * $Id$
- *
- * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef HASH_CACHE_MAP_MANAGER_T_H
-#define HASH_CACHE_MAP_MANAGER_T_H
-#include "ace/pre.h"
-
-#include "ace/Hash_Map_Manager_T.h"
-#include "ace/Cache_Map_Manager_T.h"
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#define ACE_LACKS_PRAGMA_ONCE
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Forward declaration.
-class ACE_Allocator;
-
-#if !defined (ACE_HAS_BROKEN_EXTENDED_TEMPLATES)
-#define ACE_CACHE_MAP_MANAGER \
- ACE_Cache_Map_Manager<KEY, \
- VALUE, \
- ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTRIBUTES>, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>, \
- ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTRIBUTES>, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>, \
- ACE_Hash_Map_Reverse_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTRIBUTES>, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>, \
- CACHING_STRATEGY, \
- ATTRIBUTES>
-#else
-#define ACE_CACHE_MAP_MANAGER \
- ACE_Cache_Map_Manager<KEY, \
- VALUE, \
- ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTRIBUTES>, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>, \
- CACHING_STRATEGY, \
- ATTRIBUTES>
-#endif /* ACE_HAS_BROKEN_EXTENDED_TEMPLATES */
-
-// For linkers that cant grok long names.
-#define ACE_Hash_Cache_Map_Manager AHCMM
-
- /**
- * @class ACE_Hash_Cache_Map_Manager
- *
- * @brief Defines a abstraction which will purge entries from a map.
- * The map considered is the ACE_Hash_Map_Manager_Ex.
- *
- * The Hash_Cache_Map_Manager will manage the map it contains
- * and provide purging on demand from the map. The strategy for
- * caching is decided by the user and provided to the Cache
- * Manager. The Cache Manager acts as a agent and communicates
- * between the Map and the Strategy for purging entries from the
- * map. To tap the optimal methods like find(key,value,entry)
- * present in the ACE_Hash_Map_Manager,
- * Hash_Cache_Map_Manager provides extra functionality on top
- * of the Cache_Map_Manager.
- * No locking mechanism provided since locking at this level
- * isnt efficient. Locking has to be provided by the
- * application.
- */
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
-class ACE_Hash_Cache_Map_Manager : public ACE_CACHE_MAP_MANAGER
-{
- public:
-
- /**
- * The actual value mapped to the key in the map. The <attributes>
- * are used by the strategy and is transparent to the user of this
- * class.
- */
- typedef ACE_Pair<VALUE, ATTRIBUTES> CACHE_VALUE;
- typedef ACE_Hash_Map_Manager_Ex<KEY, CACHE_VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> HASH_MAP;
- typedef ACE_Hash_Map_Entry<KEY, CACHE_VALUE> CACHE_ENTRY;
- typedef KEY key_type;
- typedef VALUE mapped_type;
-
- // = Initialization and termination methods.
- /// Initialize a <Hash_Cache_Map_Manager> with <size> entries.
- ACE_Hash_Cache_Map_Manager (CACHING_STRATEGY &caching_s,
- size_t size = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- /// Close down a <Cache_Map_Manager> and release dynamically allocated
- /// resources.
- ~ACE_Hash_Cache_Map_Manager (void);
-
- /**
- * Associate <key> with <value>. If <key> is already in the
- * MAP then the ENTRY is not changed. Returns 0 if a new entry is
- * bound successfully, returns 1 if an attempt is made to bind an
- * existing entry, and returns -1 if failures occur.
- */
- int bind (const KEY &key,
- const VALUE &value);
-
- /**
- * Same as a normal bind, except the cache entry is also passed back
- * to the caller. The entry in this case will either be the newly
- * created entry, or the existing one.
- */
- int bind (const KEY &key,
- const VALUE &value,
- CACHE_ENTRY *&entry);
-
- /// Loopkup entry<key,value> in the cache.
- int find (const KEY &key,
- VALUE &value);
-
- /// Is <key> in the cache?
- int find (const KEY &key);
-
- /// Obtain the entry when the find succeeds.
- int find (const KEY &key,
- CACHE_ENTRY *&entry);
-
- /**
- * Reassociate the <key> with <value>. If the <key> already exists
- * in the cache then returns 1, on a new bind returns 0 and returns
- * -1 in case of any failures.
- */
- int rebind (const KEY &key,
- const VALUE &value);
-
- /**
- * Reassociate <key> with <value>, storing the old value into the
- * "out" parameter <old_value>. The function fails if <key> is not
- * in the cache for caches that do not allow user specified keys.
- * However, for caches that allow user specified keys, if the key is
- * not in the cache, a new <key>/<value> association is created.
- */
- int rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value);
-
- /**
- * Reassociate <key> with <value>, storing the old key and value
- * into the "out" parameters <old_key> and <old_value>. The
- * function fails if <key> is not in the cache for caches that do not
- * allow user specified keys. However, for caches that allow user
- * specified keys, if the key is not in the cache, a new <key>/<value>
- * association is created.
- */
- int rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value);
-
- /**
- * Same as a normal rebind, except the cache entry is also passed back
- * to the caller. The entry in this case will either be the newly
- * created entry, or the existing one.
- */
- int rebind (const KEY &key,
- const VALUE &value,
- CACHE_ENTRY *&entry);
-
- /**
- * Associate <key> with <value> if and only if <key> is not in the
- * cache. If <key> is already in the cache, then the <value> parameter
- * is overwritten with the existing value in the cache. Returns 0 if a
- * new <key>/<value> association is created. Returns 1 if an
- * attempt is made to bind an existing entry. This function fails
- * for maps that do not allow user specified keys.
- */
- int trybind (const KEY &key,
- VALUE &value);
-
- /**
- * Same as a normal trybind, except the cache entry is also passed
- * back to the caller. The entry in this case will either be the
- * newly created entry, or the existing one.
- */
- int trybind (const KEY &key,
- VALUE &value,
- CACHE_ENTRY *&entry);
-
- /// Remove <key> from the cache.
- int unbind (const KEY &key);
-
- /// Remove <key> from the cache, and return the <value> associated with
- /// <key>.
- int unbind (const KEY &key,
- VALUE &value);
-
- /// Remove entry from map.
- int unbind (CACHE_ENTRY *entry);
-
-protected:
-
- /// Base class.
- typedef ACE_CACHE_MAP_MANAGER ACE_HCMM_BASE;
-};
-
-
-#if defined (__ACE_INLINE__)
-#include "ace/Hash_Cache_Map_Manager_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Hash_Cache_Map_Manager_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Hash_Cache_Map_Manager_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* HASH_CACHE_MAP_MANAGER_T_H */
diff --git a/ace/Hash_Cache_Map_Manager_T.i b/ace/Hash_Cache_Map_Manager_T.i
deleted file mode 100644
index f73e2d2aa7d..00000000000
--- a/ace/Hash_Cache_Map_Manager_T.i
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#define T_1 class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES
-#define T_2 KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES
-
-template <T_1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<T_2>::bind (const KEY &key,
- const VALUE &value)
-{
- return ACE_HCMM_BASE::bind (key,
- value);
-}
-
-template <T_1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<T_2>::rebind (const KEY &key,
- const VALUE &value)
-{
- return ACE_HCMM_BASE::rebind (key,
- value);
-}
-
-template <T_1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<T_2>::rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value)
-{
- return ACE_HCMM_BASE::rebind (key,
- value,
- old_value);
-}
-
-template <T_1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<T_2>::rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value)
-{
- return ACE_HCMM_BASE::rebind (key,
- value,
- old_key,
- old_value);
-}
-
-template <T_1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<T_2>::trybind (const KEY &key,
- VALUE &value)
-{
- return ACE_HCMM_BASE::trybind (key,
- value);
-}
-
-template <T_1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<T_2>::unbind (const KEY &key)
-{
- return ACE_HCMM_BASE::unbind (key);
-}
-
-template <T_1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<T_2>::unbind (const KEY &key,
- VALUE &value)
-{
- return ACE_HCMM_BASE::unbind (key,
- value);
-}
-
-#undef T_1
-#undef T_2
diff --git a/ace/Hash_Map_Manager.cpp b/ace/Hash_Map_Manager.cpp
deleted file mode 100644
index 4378551c7f8..00000000000
--- a/ace/Hash_Map_Manager.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Hash_Map_Manager.cpp
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
-
-#include "ace/Hash_Map_Manager.h"
-
-ACE_RCSID(ace, Hash_Map_Manager, "$Id$")
-
diff --git a/ace/Hash_Map_Manager.h b/ace/Hash_Map_Manager.h
deleted file mode 100644
index b2e91c8507f..00000000000
--- a/ace/Hash_Map_Manager.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Hash_Map_Manager.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_HASH_MAP_MANAGER_H
-#define ACE_HASH_MAP_MANAGER_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Include the templates here.
-#include "ace/Hash_Map_Manager_T.h"
-
-#include "ace/post.h"
-
-#endif /* ACE_HASH_MAP_MANAGER_H */
diff --git a/ace/Hash_Map_Manager_T.cpp b/ace/Hash_Map_Manager_T.cpp
deleted file mode 100644
index f8d6ae6aaa3..00000000000
--- a/ace/Hash_Map_Manager_T.cpp
+++ /dev/null
@@ -1,520 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Hash_Map_Manager_T.cpp
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef ACE_HASH_MAP_MANAGER_T_CPP
-#define ACE_HASH_MAP_MANAGER_T_CPP
-
-#include "ace/Hash_Map_Manager_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-# include "ace/Hash_Map_Manager_T.i"
-#elif defined (__SUNPRO_CC) && (__SUNPRO_CC == 0x420)
-// If ACE_INLINE is on and we are on SunCC, undefine ACE_INLINE,
-// include ace/Hash_Map_Manager_T.i, and then redefine ACE_INLINE.
-// This nonsense is necessary since SunCC (version 4.2) cannot inline
-// the code in ace/Hash_Map_Manager_T.i (with the fast option).
-# undef ACE_INLINE
-# define ACE_INLINE
-# include "ace/Hash_Map_Manager_T.i"
-# undef ACE_INLINE
-# define ACE_INLINE inline
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Synch.h"
-#include "ace/Service_Config.h"
-#include "ace/Malloc.h"
-
-ACE_RCSID(ace, Hash_Map_Manager_T, "$Id$")
-
-template <class EXT_ID, class INT_ID>
-ACE_Hash_Map_Entry<EXT_ID, INT_ID>::ACE_Hash_Map_Entry (ACE_Hash_Map_Entry<EXT_ID, INT_ID> *next,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *prev)
- : next_ (next),
- prev_ (prev)
-{
-}
-
-template <class EXT_ID, class INT_ID>
-ACE_Hash_Map_Entry<EXT_ID, INT_ID>::ACE_Hash_Map_Entry (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *next,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *prev)
- : ext_id_ (ext_id),
- int_id_ (int_id),
- next_ (next),
- prev_ (prev)
-{
-}
-
-# if ! defined (ACE_HAS_BROKEN_NOOP_DTORS)
-template <class EXT_ID, class INT_ID>
-ACE_Hash_Map_Entry<EXT_ID, INT_ID>::~ACE_Hash_Map_Entry (void)
-{
-}
-# endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */
-
-template <class EXT_ID, class INT_ID> void
-ACE_Hash_Map_Entry<EXT_ID, INT_ID>::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("next_ = %d"), this->next_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("prev_ = %d"), this->prev_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> void
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("total_size_ = %d"), this->total_size_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncur_size_ = %d"), this->cur_size_));
- this->allocator_->dump ();
- this->lock_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::create_buckets (size_t size)
-{
- size_t bytes = size * sizeof (ACE_Hash_Map_Entry<EXT_ID, INT_ID>);
- void *ptr;
-
- ACE_ALLOCATOR_RETURN (ptr,
- this->allocator_->malloc (bytes),
- -1);
-
- this->table_ = (ACE_Hash_Map_Entry<EXT_ID, INT_ID> *) ptr;
-
- this->total_size_ = size;
-
- // Initialize each entry in the hash table to be a circular linked
- // list with the dummy node in the front serving as the anchor of
- // the list.
- for (size_t i = 0; i < size; i++)
- new (&this->table_[i]) ACE_Hash_Map_Entry<EXT_ID, INT_ID> (&this->table_[i],
- &this->table_[i]);
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::open (size_t size,
- ACE_Allocator *alloc)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- // Calling this->close_i () to ensure we release previous allocated
- // memory before allocating new one.
- this->close_i ();
-
- if (alloc == 0)
- alloc = ACE_Allocator::instance ();
-
- this->allocator_ = alloc;
-
- // This assertion is here to help track a situation that shouldn't
- // happen, but did with Sun C++ 4.1 (before a change to this class
- // was made: it used to have an enum that was supposed to be defined
- // to be ACE_DEFAULT_MAP_SIZE, but instead was defined to be 0).
- ACE_ASSERT (size != 0);
-
- return this->create_buckets (size);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::close_i (void)
-{
- // Protect against "double-deletion" in case the destructor also
- // gets called.
- if (this->table_ != 0)
- {
- // Remove all the entries.
- this->unbind_all_i ();
-
- // Iterate through the buckets cleaning up the sentinels.
- for (size_t i = 0; i < this->total_size_; i++)
- {
- // Destroy the dummy entry.
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *entry = &this->table_[i];
- // The "if" second argument results in a no-op instead of
- // deallocation.
- ACE_DES_FREE_TEMPLATE2 (entry, ACE_NOOP,
- ACE_Hash_Map_Entry, EXT_ID, INT_ID);
- }
-
- // Reset size.
- this->total_size_ = 0;
-
- // Free table memory.
- this->allocator_->free (this->table_);
-
- // Should be done last...
- this->table_ = 0;
- }
-
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_all_i (void)
-{
- // Iterate through the entire map calling the destuctor of each
- // <ACE_Hash_Map_Entry>.
- for (size_t i = 0; i < this->total_size_; i++)
- {
- for (ACE_Hash_Map_Entry<EXT_ID, INT_ID> *temp_ptr = this->table_[i].next_;
- temp_ptr != &this->table_[i];
- )
- {
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *hold_ptr = temp_ptr;
- temp_ptr = temp_ptr->next_;
-
- // Explicitly call the destructor.
- ACE_DES_FREE_TEMPLATE2 (hold_ptr, this->allocator_->free,
- ACE_Hash_Map_Entry, EXT_ID, INT_ID);
- }
-
- // Restore the sentinel.
- this->table_[i].next_ = &this->table_[i];
- this->table_[i].prev_ = &this->table_[i];
- }
-
- this->cur_size_ = 0;
-
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry)
-{
- size_t loc;
- int result = this->shared_find (ext_id, entry, loc);
-
- if (result == -1)
- {
- void *ptr;
- // Not found.
- ACE_ALLOCATOR_RETURN (ptr,
- this->allocator_->malloc (sizeof (ACE_Hash_Map_Entry<EXT_ID, INT_ID>)),
- -1);
-
- entry = new (ptr) ACE_Hash_Map_Entry<EXT_ID, INT_ID> (ext_id,
- int_id,
- this->table_[loc].next_,
- &this->table_[loc]);
- this->table_[loc].next_ = entry;
- entry->next_->prev_ = entry;
- this->cur_size_++;
- return 0;
- }
- else
- return 1;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::trybind_i (const EXT_ID &ext_id,
- INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry)
-{
- size_t loc;
- int result = this->shared_find (ext_id, entry, loc);
-
- if (result == -1)
- {
- // Not found.
- void *ptr;
- ACE_ALLOCATOR_RETURN (ptr,
- this->allocator_->malloc (sizeof (ACE_Hash_Map_Entry<EXT_ID, INT_ID>)),
- -1);
-
- entry = new (ptr) ACE_Hash_Map_Entry<EXT_ID, INT_ID> (ext_id,
- int_id,
- this->table_[loc].next_,
- &this->table_[loc]);
- this->table_[loc].next_ = entry;
- entry->next_->prev_ = entry;
- this->cur_size_++;
- return 0;
- }
- else
- return 1;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_i (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *temp;
-
- size_t loc;
- int result = this->shared_find (ext_id, temp, loc);
-
- if (result == -1)
- {
- errno = ENOENT;
- return -1;
- }
-
- int_id = temp->int_id_;
-
- return this->unbind_i (temp);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_i (ACE_Hash_Map_Entry<EXT_ID, INT_ID> *entry)
-{
- entry->next_->prev_ = entry->prev_;
- entry->prev_->next_ = entry->next_;
-
- // Explicitly call the destructor.
- ACE_DES_FREE_TEMPLATE2 (entry, this->allocator_->free,
- ACE_Hash_Map_Entry, EXT_ID, INT_ID);
- this->cur_size_--;
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::shared_find (const EXT_ID &ext_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry,
- size_t &loc)
-{
- loc = this->hash (ext_id) % this->total_size_;
-
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *temp = this->table_[loc].next_;
-
- while (temp != &this->table_[loc] && this->equal (temp->ext_id_, ext_id) == 0)
- temp = temp->next_;
-
- if (temp == &this->table_[loc])
- {
- errno = ENOENT;
- return -1;
- }
- else
- {
- entry = temp;
- return 0;
- }
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry)
-{
- size_t dummy;
- if (this->shared_find (ext_id, entry, dummy) == -1)
- return this->bind_i (ext_id, int_id);
- else
- {
- entry->ext_id_ = ext_id;
- entry->int_id_ = int_id;
- return 1;
- }
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry)
-{
- size_t dummy;
- if (this->shared_find (ext_id, entry, dummy) == -1)
- return this->bind_i (ext_id, int_id);
- else
- {
- old_int_id = entry->int_id_;
- entry->ext_id_ = ext_id;
- entry->int_id_ = int_id;
- return 1;
- }
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry)
-{
- size_t dummy;
- if (this->shared_find (ext_id, entry, dummy) == -1)
- return this->bind_i (ext_id, int_id);
- else
- {
- old_ext_id = entry->ext_id_;
- old_int_id = entry->int_id_;
- entry->ext_id_ = ext_id;
- entry->int_id_ = int_id;
- return 1;
- }
-}
-
-// ------------------------------------------------------------
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Map_Iterator_Base_Ex)
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> void
-ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i (void) const
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("index_ = %d "), this->index_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("next_ = %x"), this->next_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i");
-
- if (this->map_man_->table_ == 0)
- return -1;
- // Handle initial case specially.
- else if (this->index_ == -1)
- {
- this->index_++;
- return this->forward_i ();
- }
- else if (this->index_ >= ACE_static_cast (ssize_t, this->map_man_->total_size_))
- return 0;
-
- this->next_ = this->next_->next_;
- if (this->next_ == &this->map_man_->table_[this->index_])
- {
- while (++this->index_ < ACE_static_cast (ssize_t,
- this->map_man_->total_size_))
- {
- this->next_ = this->map_man_->table_[this->index_].next_;
- if (this->next_ != &this->map_man_->table_[this->index_])
- break;
- }
- }
-
- return this->index_ < ACE_static_cast (ssize_t, this->map_man_->total_size_);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i");
-
- if (this->map_man_->table_ == 0)
- return -1;
- else if (this->index_ == ACE_static_cast (ssize_t, this->map_man_->total_size_))
- {
- this->index_--;
- return this->reverse_i ();
- }
- else if (this->index_ < 0)
- return 0;
-
- this->next_ = this->next_->prev_;
- if (this->next_ == &this->map_man_->table_[this->index_])
- {
- while (--this->index_ >= 0)
- {
- this->next_ = this->map_man_->table_[this->index_].prev_;
- if (this->next_ != &this->map_man_->table_[this->index_])
- break;
- }
- }
-
- return this->index_ >= 0;
-}
-
-// ------------------------------------------------------------
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Map_Const_Iterator_Base_Ex)
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> void
-ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i (void) const
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("index_ = %d "), this->index_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("next_ = %x"), this->next_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i");
-
- if (this->map_man_->table_ == 0)
- return -1;
- // Handle initial case specially.
- else if (this->index_ == -1)
- {
- this->index_++;
- return this->forward_i ();
- }
- else if (this->index_ >= (ssize_t) this->map_man_->total_size_)
- return 0;
-
- this->next_ = this->next_->next_;
- if (this->next_ == &this->map_man_->table_[this->index_])
- {
- while (++this->index_ < (ssize_t) this->map_man_->total_size_)
- {
- this->next_ = this->map_man_->table_[this->index_].next_;
- if (this->next_ != &this->map_man_->table_[this->index_])
- break;
- }
- }
-
- return this->index_ < (ssize_t) this->map_man_->total_size_;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i");
-
- if (this->map_man_->table_ == 0)
- return -1;
- else if (this->index_ == (ssize_t) this->map_man_->total_size_)
- {
- this->index_--;
- return this->reverse_i ();
- }
- else if (this->index_ < 0)
- return 0;
-
- this->next_ = this->next_->prev_;
- if (this->next_ == &this->map_man_->table_[this->index_])
- {
- while (--this->index_ >= 0)
- {
- this->next_ = this->map_man_->table_[this->index_].prev_;
- if (this->next_ != &this->map_man_->table_[this->index_])
- break;
- }
- }
-
- return this->index_ >= 0;
-}
-
-#endif /* ACE_HASH_MAP_MANAGER_T_CPP */
diff --git a/ace/Hash_Map_Manager_T.h b/ace/Hash_Map_Manager_T.h
deleted file mode 100644
index 896f85412de..00000000000
--- a/ace/Hash_Map_Manager_T.h
+++ /dev/null
@@ -1,947 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Hash_Map_Manager_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_HASH_MAP_MANAGER_T_H
-#define ACE_HASH_MAP_MANAGER_T_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Default_Constants.h"
-#include "ace/Functor.h"
-#include "ace/Log_Msg.h"
-
-/**
- * @class ACE_Hash_Map_Entry
- *
- * @brief Define an entry in the hash table.
- */
-template <class EXT_ID, class INT_ID>
-class ACE_Hash_Map_Entry
-{
-public:
- // = Initialization and termination methods.
- /// Constructor.
- ACE_Hash_Map_Entry (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *next = 0,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *prev = 0);
-
- /// Constructor.
- ACE_Hash_Map_Entry (ACE_Hash_Map_Entry<EXT_ID, INT_ID> *next,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *prev);
-
- # if ! defined (ACE_HAS_BROKEN_NOOP_DTORS)
- /// Destructor.
- ~ACE_Hash_Map_Entry (void);
- #endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */
-
- /// Key used to look up an entry.
- EXT_ID ext_id_;
-
- /// The contents of the entry itself.
- INT_ID int_id_;
-
- /// Pointer to the next item in the bucket of overflow nodes.
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *next_;
-
- /// Pointer to the prev item in the bucket of overflow nodes.
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *prev_;
-
- /// Dump the state of an object.
- void dump (void) const;
-};
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_Hash_Map_Iterator_Base_Ex;
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_Hash_Map_Const_Iterator_Base_Ex;
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_Hash_Map_Iterator_Ex;
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_Hash_Map_Const_Iterator_Ex;
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_Hash_Map_Reverse_Iterator_Ex;
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_Hash_Map_Bucket_Iterator;
-
-// Forward decl.
-class ACE_Allocator;
-
-/**
- * @class ACE_Hash_Map_Manager_Ex
- *
- * @brief Define a map abstraction that efficiently associates
- * <EXT_ID>s with <INT_ID>s.
- *
- * This implementation of a map uses a hash table. Key hashing
- * is achieved through the HASH_KEY object and key comparison is
- * achieved through the COMPARE_KEYS object.
- * This class uses an <ACE_Allocator> to allocate memory. The
- * user can make this a persistent class by providing an
- * <ACE_Allocator> with a persistable memory pool.
- */
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_Hash_Map_Manager_Ex
-{
-public:
- friend class ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>;
- friend class ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>;
- friend class ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>;
- friend class ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>;
- friend class ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>;
- friend class ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>;
-
- typedef EXT_ID
- KEY;
- typedef INT_ID
- VALUE;
- typedef ACE_Hash_Map_Entry<EXT_ID, INT_ID>
- ENTRY;
-
- // = ACE-style iterator typedefs.
- typedef ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
- ITERATOR;
- typedef ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
- CONST_ITERATOR;
- typedef ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
- REVERSE_ITERATOR;
-
- // = STL-style iterator typedefs.
- typedef ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
- iterator;
- typedef ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
- const_iterator;
- typedef ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
- reverse_iterator;
-
- // = Initialization and termination methods.
-
- /// Initialize a <Hash_Map_Manager_Ex> with default size.
- ACE_Hash_Map_Manager_Ex (ACE_Allocator *alloc = 0);
-
- /// Initialize a <Hash_Map_Manager_Ex> with size <length>.
- ACE_Hash_Map_Manager_Ex (size_t size,
- ACE_Allocator *alloc = 0);
-
- /// Initialize a <Hash_Map_Manager_Ex> with <size> elements.
- int open (size_t size = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- /// Close down a <Hash_Map_Manager_Ex> and release dynamically allocated
- /// resources.
- int close (void);
-
- /// Removes all the entries in <Map_Manager_Ex>.
- int unbind_all (void);
-
- /// Cleanup the <Hash_Map_Manager_Ex>.
- ~ACE_Hash_Map_Manager_Ex (void);
-
- /**
- * Associate <ext_id> with <int_id>. If <ext_id> is already in the
- * map then the <ACE_Hash_Map_Entry> is not changed. Returns 0 if a
- * new entry is bound successfully, returns 1 if an attempt is made
- * to bind an existing entry, and returns -1 if failures occur.
- */
- int bind (const EXT_ID &item,
- const INT_ID &int_id);
-
- /**
- * Same as a normal bind, except the map entry is also passed back
- * to the caller. The entry in this case will either be the newly
- * created entry, or the existing one.
- */
- int bind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry);
-
- /**
- * Associate <ext_id> with <int_id> if and only if <ext_id> is not
- * in the map. If <ext_id> is already in the map then the <int_id>
- * parameter is assigned the existing value in the map. Returns 0
- * if a new entry is bound successfully, returns 1 if an attempt is
- * made to bind an existing entry, and returns -1 if failures occur.
- */
- int trybind (const EXT_ID &ext_id,
- INT_ID &int_id);
-
- /**
- * Same as a normal trybind, except the map entry is also passed
- * back to the caller. The entry in this case will either be the
- * newly created entry, or the existing one.
- */
- int trybind (const EXT_ID &ext_id,
- INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry);
-
- /**
- * Reassociate <ext_id> with <int_id>. If <ext_id> is not in the
- * map then behaves just like <bind>. Returns 0 if a new entry is
- * bound successfully, returns 1 if an existing entry was rebound,
- * and returns -1 if failures occur.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id);
-
- /**
- * Same as a normal rebind, except the map entry is also passed back
- * to the caller. The entry in this case will either be the newly
- * created entry, or the existing one.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry);
-
- /**
- * Associate <ext_id> with <int_id>. If <ext_id> is not in the map
- * then behaves just like <bind>. Otherwise, store the old value of
- * <int_id> into the "out" parameter and rebind the new parameters.
- * Returns 0 if a new entry is bound successfully, returns 1 if an
- * existing entry was rebound, and returns -1 if failures occur.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id);
-
- /**
- * Same as a normal rebind, except the map entry is also passed back
- * to the caller. The entry in this case will either be the newly
- * created entry, or the existing one.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry);
-
- /**
- * Associate <ext_id> with <int_id>. If <ext_id> is not in the map
- * then behaves just like <bind>. Otherwise, store the old values
- * of <ext_id> and <int_id> into the "out" parameters and rebind the
- * new parameters. This is very useful if you need to have an
- * atomic way of updating <ACE_Hash_Map_Entrys> and you also need
- * full control over memory allocation. Returns 0 if a new entry is
- * bound successfully, returns 1 if an existing entry was rebound,
- * and returns -1 if failures occur.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id);
-
- /**
- * Same as a normal rebind, except the map entry is also passed back
- * to the caller. The entry in this case will either be the newly
- * created entry, or the existing one.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry);
-
- /// Locate <ext_id> and pass out parameter via <int_id>.
- /// Return 0 if found, returns -1 if not found.
- int find (const EXT_ID &ext_id,
- INT_ID &int_id) const;
-
- /// Returns 0 if the <ext_id> is in the mapping, otherwise -1.
- int find (const EXT_ID &ext_id) const;
-
- /// Locate <ext_id> and pass out parameter via <entry>. If found,
- /// return 0, returns -1 if not found.
- int find (const EXT_ID &ext_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry) const;
-
- /**
- * Unbind (remove) the <ext_id> from the map. Don't return the
- * <int_id> to the caller (this is useful for collections where the
- * <int_id>s are *not* dynamically allocated...)
- */
- int unbind (const EXT_ID &ext_id);
-
- /// Break any association of <ext_id>. Returns the value of <int_id>
- /// in case the caller needs to deallocate memory. Return 0 if the
- /// unbind was successfully, and returns -1 if failures occur.
- int unbind (const EXT_ID &ext_id,
- INT_ID &int_id);
-
- /// Remove entry from map. Return 0 if the unbind was successfully,
- /// and returns -1 if failures occur.
- int unbind (ACE_Hash_Map_Entry<EXT_ID, INT_ID> *entry);
-
- /// Return the current size of the map.
- size_t current_size (void) const;
-
- /// Return the total size of the map.
- size_t total_size (void) const;
-
- /**
- * Returns a reference to the underlying <ACE_LOCK>. This makes it
- * possible to acquire the lock explicitly, which can be useful in
- * some cases if you instantiate the <ACE_Atomic_Op> with an
- * <ACE_Recursive_Mutex> or <ACE_Process_Mutex>, or if you need to
- * guard the state of an iterator. NOTE: the right name would be
- * <lock>, but HP/C++ will choke on that!
- */
- ACE_LOCK &mutex (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iterator factory functions.
-
- /// Return forward iterator.
- ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> begin (void);
- ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> end (void);
-
- /// Return reverse iterator.
- ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> rbegin (void);
- ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> rend (void);
-
-protected:
- // = The following methods do the actual work.
-
- /// Returns 1 if <id1> == <id2>, else 0. This is defined as a
- /// separate method to facilitate template specialization.
- int equal (const EXT_ID &id1, const EXT_ID &id2);
-
- /// Compute the hash value of the <ext_id>. This is defined as a
- /// separate method to facilitate template specialization.
- u_long hash (const EXT_ID &ext_id);
-
- // = These methods assume locks are held by private methods.
-
- /// Performs bind. Must be called with locks held.
- int bind_i (const EXT_ID &ext_id,
- const INT_ID &int_id);
-
- /// Performs bind. Must be called with locks held.
- int bind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry);
-
- /// Performs trybind. Must be called with locks held.
- int trybind_i (const EXT_ID &ext_id,
- INT_ID &int_id);
-
- /// Performs trybind. Must be called with locks held.
- int trybind_i (const EXT_ID &ext_id,
- INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry);
-
- /// Performs rebind. Must be called with locks held.
- int rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id);
-
- /// Performs rebind. Must be called with locks held.
- int rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry);
-
- /// Performs rebind. Must be called with locks held.
- int rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id);
-
- /// Performs rebind. Must be called with locks held.
- int rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry);
-
- /// Performs rebind. Must be called with locks held.
- int rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id);
-
- /// Performs rebind. Must be called with locks held.
- int rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry);
-
- /// Performs a find of <int_id> using <ext_id> as the key. Must be
- /// called with locks held.
- int find_i (const EXT_ID &ext_id,
- INT_ID &int_id);
-
- /// Performs a find using <ext_id> as the key. Must be called with
- /// locks held.
- int find_i (const EXT_ID &ext_id);
-
- /// Performs a find using <ext_id> as the key. Must be called with
- /// locks held.
- int find_i (const EXT_ID &ext_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry);
-
- /// Performs unbind. Must be called with locks held.
- int unbind_i (const EXT_ID &ext_id,
- INT_ID &int_id);
-
- /// Performs unbind. Must be called with locks held.
- int unbind_i (const EXT_ID &ext_id);
-
- /// Performs unbind. Must be called with locks held.
- int unbind_i (ACE_Hash_Map_Entry<EXT_ID, INT_ID> *entry);
-
- /**
- * Resize the map. Must be called with locks held. Note, that this
- * method should never be called more than once or else all the
- * hashing will get screwed up as the size will change.
- */
- int create_buckets (size_t size);
-
- /// Close down a <Map_Manager_Ex>. Must be called with
- /// locks held.
- int close_i (void);
-
- /// Removes all the entries in <Map_Manager_Ex>. Must be called with
- /// locks held.
- int unbind_all_i (void);
-
- /// Pointer to a memory allocator.
- ACE_Allocator *allocator_;
-
- /// Synchronization variable for the MT_SAFE <ACE_Hash_Map_Manager_Ex>.
- ACE_LOCK lock_;
-
- /// Function object used for hashing keys.
- HASH_KEY hash_key_;
-
- /// Function object used for comparing keys.
- COMPARE_KEYS compare_keys_;
-
-protected:
- /// Returns the <ACE_Hash_Map_Entry> that corresponds to <ext_id>.
- int shared_find (const EXT_ID &ext_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry,
- size_t &loc);
-
-private:
- /**
- * Array of <ACE_Hash_Map_Entry> *s, each of which points to an
- * <ACE_Hash_Map_Entry> that serves as the beginning of a linked
- * list of <EXT_ID>s that hash to that bucket.
- */
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *table_;
-
- /// Total size of the hash table.
- size_t total_size_;
-
- /// Current number of entries in the table (note that this can be
- /// larger than <total_size_> due to the bucket chaining).
- size_t cur_size_;
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Hash_Map_Manager_Ex (const ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &))
-};
-
-/**
- * @class ACE_Hash_Map_Iterator_Base_Ex
- *
- * @brief Base iterator for the <ACE_Hash_Map_Manager_Ex>
- *
- * This class factors out common code from its templatized
- * subclasses.
- */
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_Hash_Map_Iterator_Base_Ex
-{
-public:
- // = Initialization method.
- /// Contructor. If head != 0, the iterator constructed is positioned
- /// at the head of the map, it is positioned at the end otherwise.
- ACE_Hash_Map_Iterator_Base_Ex (ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm,
- int head);
-
- // = ITERATION methods.
-
- /// Pass back the next <entry> that hasn't been seen in the Set.
- /// Returns 0 when all items have been seen, else 1.
- int next (ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&next_entry) const;
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Returns a reference to the interal element <this> is pointing to.
- ACE_Hash_Map_Entry<EXT_ID, INT_ID>& operator* (void) const;
-
- /// Returns reference the Hash_Map_Manager_Ex that is being iterated
- /// over.
- ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>& map (void);
-
- /// Check if two iterators point to the same position
- int operator== (const ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const;
- int operator!= (const ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Move forward by one element in the set. Returns 0 when there's
- /// no more item in the set after the current items, else 1.
- int forward_i (void);
-
- /// Move backward by one element in the set. Returns 0 when there's
- /// no more item in the set before the current item, else 1.
- int reverse_i (void);
-
- /// Dump the state of an object.
- void dump_i (void) const;
-
- /// Map we are iterating over.
- ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *map_man_;
-
- /// Keeps track of how far we've advanced in the table.
- ssize_t index_;
-
- /// Keeps track of how far we've advanced in a linked list in each
- /// table slot.
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *next_;
-};
-
-/**
- * @class ACE_Hash_Map_Const_Iterator_Base_Ex
- *
- * @brief Base const iterator for the <ACE_Hash_Map_Manager_Ex>
- *
- * This class factors out common code from its templatized
- * subclasses.
- */
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_Hash_Map_Const_Iterator_Base_Ex
-{
-public:
- // = Initialization method.
- /// Contructor. If head != 0, the iterator constructed is positioned
- /// at the head of the map, it is positioned at the end otherwise.
- ACE_Hash_Map_Const_Iterator_Base_Ex (const ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm,
- int head);
-
- // = ITERATION methods.
-
- /// Pass back the next <entry> that hasn't been seen in the Set.
- /// Returns 0 when all items have been seen, else 1.
- int next (ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&next_entry) const;
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Returns a reference to the interal element <this> is pointing to.
- ACE_Hash_Map_Entry<EXT_ID, INT_ID>& operator* (void) const;
-
- /// Returns reference the Hash_Map_Manager_Ex that is being iterated
- /// over.
- const ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>& map (void);
-
- /// Check if two iterators point to the same position
- int operator== (const ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const;
- int operator!= (const ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Move forward by one element in the set. Returns 0 when there's
- /// no more item in the set after the current items, else 1.
- int forward_i (void);
-
- /// Move backward by one element in the set. Returns 0 when there's
- /// no more item in the set before the current item, else 1.
- int reverse_i (void);
-
- /// Dump the state of an object.
- void dump_i (void) const;
-
- /// Map we are iterating over.
- const ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *map_man_;
-
- /// Keeps track of how far we've advanced in the table.
- ssize_t index_;
-
- /// Keeps track of how far we've advanced in a linked list in each
- /// table slot.
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *next_;
-};
-
-/**
- * @class ACE_Hash_Map_Iterator_Ex
- *
- * @brief Forward iterator for the <ACE_Hash_Map_Manager_Ex>.
- *
- * This class does not perform any internal locking of the
- * <ACE_Hash_Map_Manager_Ex> it is iterating upon since locking is
- * inherently inefficient and/or error-prone within an STL-style
- * iterator. If you require locking, you can explicitly use an
- * <ACE_Guard> or <ACE_Read_Guard> on the <ACE_Hash_Map_Manager_Ex>'s
- * internal lock, which is accessible via its <mutex> method.
- */
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_Hash_Map_Iterator_Ex : public ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-{
-public:
- // = Initialization method.
- ACE_Hash_Map_Iterator_Ex (ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm,
- int tail = 0);
-
- // = Iteration methods.
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iteration, compare, and reference functions.
-
- /// Prefix advance.
- ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator++ (void);
-
- /// Postfix advance.
- ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator++ (int);
-
- /// Prefix reverse.
- ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator-- (void);
-
- /// Postfix reverse.
- ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator-- (int);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_Hash_Map_Const_Iterator_Ex
- *
- * @brief Const forward iterator for the <ACE_Hash_Map_Manager_Ex>.
- *
- * This class does not perform any internal locking of the
- * <ACE_Hash_Map_Manager_Ex> it is iterating upon since locking is
- * inherently inefficient and/or error-prone within an STL-style
- * iterator. If you require locking, you can explicitly use an
- * <ACE_Guard> or <ACE_Read_Guard> on the <ACE_Hash_Map_Manager_Ex>'s
- * internal lock, which is accessible via its <mutex> method.
- */
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_Hash_Map_Const_Iterator_Ex : public ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-{
-public:
- // = Initialization method.
- ACE_Hash_Map_Const_Iterator_Ex (const ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm,
- int tail = 0);
-
- // = Iteration methods.
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iteration, compare, and reference functions.
-
- /// Prefix advance.
- ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator++ (void);
-
- /// Postfix advance.
- ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator++ (int);
-
- /// Prefix reverse.
- ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator-- (void);
-
- /// Postfix reverse.
- ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator-- (int);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_Hash_Map_Bucket_Iterator
- *
- * @brief Forward iterator for the <ACE_Hash_Map_Manager_Ex> which only
- * traverses a particular bucket. The particular bucket is
- * specified by the <EXT_ID> parameter specified in the
- * constructor.
- *
- * This class does not perform any internal locking of the
- * <ACE_Hash_Map_Manager_Ex> it is iterating upon since locking
- * is inherently inefficient and/or error-prone within an
- * STL-style iterator. If you require locking, you can
- * explicitly use an <ACE_Guard> or <ACE_Read_Guard> on the
- * <ACE_Hash_Map_Manager_Ex>'s internal lock, which is
- * accessible via its <mutex> method.
- * Note that this iterator cannot be created by calling a method
- * on the map, since this would require adding explicit template
- * instantiations for bucket iterators on platforms with broken
- * templates.
- */
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_Hash_Map_Bucket_Iterator
-{
-public:
- // = Initialization method.
- ACE_Hash_Map_Bucket_Iterator (ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm,
- const EXT_ID &ext_id,
- int tail = 0);
-
- // = STL styled iteration, compare, and reference functions.
-
- /// Prefix advance.
- ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator++ (void);
-
- /// Postfix advance.
- ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator++ (int);
-
- /// Prefix reverse.
- ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator-- (void);
-
- /// Postfix reverse.
- ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator-- (int);
-
- /// Returns a reference to the interal element <this> is pointing to.
- ACE_Hash_Map_Entry<EXT_ID, INT_ID>& operator* (void) const;
-
- /// Returns reference the Hash_Map_Manager_Ex that is being iterated
- /// over.
- ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>& map (void);
-
- /// Check if two iterators point to the same position
- int operator== (const ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const;
- int operator!= (const ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const;
-
-protected:
- /// Move forward by one element in the set. Returns 0 when there's
- /// no more item in the set after the current items, else 1.
- int forward_i (void);
-
- /// Move backward by one element in the set. Returns 0 when there's
- /// no more item in the set before the current item, else 1.
- int reverse_i (void);
-
- /// Map we are iterating over.
- ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *map_man_;
-
- /// Keeps track of how far we've advanced in the table.
- ssize_t index_;
-
- /// Keeps track of how far we've advanced in a linked list in each
- /// table slot.
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *next_;
-};
-
-/**
- * @class ACE_Hash_Map_Reverse_Iterator_Ex
- *
- * @brief Reverse iterator for the <ACE_Hash_Map_Manager_Ex>.
- *
- * This class does not perform any internal locking of the
- * <ACE_Hash_Map_Manager_Ex> it is iterating upon since locking is
- * inherently inefficient and/or error-prone within an STL-style
- * iterator. If you require locking, you can explicitly use an
- * <ACE_Guard> or <ACE_Read_Guard> on the <ACE_Hash_Map_Manager_Ex>'s
- * internal lock, which is accessible via its <mutex> method.
- */
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_Hash_Map_Reverse_Iterator_Ex : public ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-{
-public:
- // = Initialization method.
- ACE_Hash_Map_Reverse_Iterator_Ex (ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm,
- int head = 0);
-
- // = Iteration methods.
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iteration, compare, and reference functions.
-
- /// Prefix reverse.
- ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator++ (void);
-
- /// Postfix reverse.
- ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator++ (int);
-
- /// Prefix advance.
- ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator-- (void);
-
- /// Postfix advance.
- ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator-- (int);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_Hash_Map_Manager
- *
- * @brief Wrapper for backward compatibility.
- *
- * This implementation of a map uses a hash table. This class
- * expects that the <EXT_ID> contains a method called <hash>.
- * In addition, the <EXT_ID> must support <operator==>. Both of
- * these constraints can be alleviated via template
- * specialization, as shown in the $ACE_ROOT/tests/Conn_Test.cpp
- * test.
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure
- * Hash Table
- * - Duplicates allowed?
- * No
- * - Random access allowed?
- * Yes
- * - Search speed
- * O(1)
- * - Insert/replace speed
- * O(1), can be longer if the hash map has to resize
- * - Iterator still valid after change to container?
- * Yes
- * - Frees memory for removed elements?
- * Yes
- * - Items inserted by
- * Value
- * - Requirements for key type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- * -# operator==
- * - Requirements for object type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- * -# operator<
- */
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Hash_Map_Manager : public ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK>
-{
-public:
- /// Initialize a <Hash_Map_Manager> with default size.
- ACE_Hash_Map_Manager (ACE_Allocator *alloc = 0);
-
- /// Initialize a <Hash_Map_Manager> with size <length>.
- ACE_Hash_Map_Manager (size_t size,
- ACE_Allocator *alloc = 0);
-
- // = The following two are necessary for template specialization of
- // ACE_Hash_Map_Manager to work.
- int equal (const EXT_ID &id1, const EXT_ID &id2);
- u_long hash (const EXT_ID &ext_id);
-};
-
-/**
- * @class ACE_Hash_Map_Iterator
- *
- * @brief Wrapper for backward compatibility.
- */
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Hash_Map_Iterator : public ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK>
-{
-public:
- // = Initialization method.
- /// Construct from map
- ACE_Hash_Map_Iterator (ACE_Hash_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm,
- int tail = 0);
-
- /// Construct from base
- ACE_Hash_Map_Iterator (const ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base);
-
- /// Assignment from base
- ACE_Hash_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> &
- operator= (const ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base);
-};
-
-/**
- * @class ACE_Hash_Map_Const_Iterator
- *
- * @brief Wrapper for backward compatibility.
- */
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Hash_Map_Const_Iterator : public ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK>
-{
-public:
- // = Initialization method.
- /// Construct from map
- ACE_Hash_Map_Const_Iterator (const ACE_Hash_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm,
- int tail = 0);
-
- /// Construct from base
- ACE_Hash_Map_Const_Iterator (const ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base);
-
- /// Assignment from base
- ACE_Hash_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> &
- operator= (const ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base);
-};
-
-/**
- * @class ACE_Hash_Map_Reverse_Iterator
- *
- * @brief Wrapper for backward compatibility.
- */
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Hash_Map_Reverse_Iterator : public ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK>
-{
-public:
- // = Initialization method.
- ACE_Hash_Map_Reverse_Iterator (ACE_Hash_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm,
- int head = 0);
-
- /// Construct from base
- ACE_Hash_Map_Reverse_Iterator (const ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base);
-
- /// Assignment from base
- ACE_Hash_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> &
- operator= (const ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base);
-};
-
-#if defined (__ACE_INLINE__)
-// Include ace/Hash_Map_Manager_T.i on all platforms excluding SunCC.
-// This nonsense is necessary since SunCC (version 4.2) cannot inline
-// the code in ace/Hash_Map_Manager_T.i (with the fast option).
-# if !(defined (__SUNPRO_CC) && (__SUNPRO_CC == 0x420))
-# include "ace/Hash_Map_Manager_T.i"
-# endif /* ! __SUNPRO_CC */
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Hash_Map_Manager_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Hash_Map_Manager_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_HASH_MAP_MANAGER_T_H */
diff --git a/ace/Hash_Map_Manager_T.i b/ace/Hash_Map_Manager_T.i
deleted file mode 100644
index 6c6dc935db8..00000000000
--- a/ace/Hash_Map_Manager_T.i
+++ /dev/null
@@ -1,960 +0,0 @@
-// $Id$
-
-#include "ace/Synch.h"
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Manager_Ex (size_t size,
- ACE_Allocator *alloc)
- : allocator_ (alloc),
- table_ (0),
- total_size_ (0),
- cur_size_ (0)
-{
- if (this->open (size, alloc) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("ACE_Hash_Map_Manager_Ex\n")));
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Manager_Ex (ACE_Allocator *alloc)
- : allocator_ (alloc),
- table_ (0),
- total_size_ (0),
- cur_size_ (0)
-{
- if (this->open (ACE_DEFAULT_MAP_SIZE, alloc) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("ACE_Hash_Map_Manager_Ex\n")));
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::close (void)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->close_i ();
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_all (void)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->unbind_all_i ();
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::~ACE_Hash_Map_Manager_Ex (void)
-{
- this->close ();
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE size_t
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::current_size (void) const
-{
- return this->cur_size_;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE size_t
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::total_size (void) const
-{
- return this->total_size_;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE ACE_LOCK &
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::mutex (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Manager_Ex::mutex");
- return this->lock_;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE u_long
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::hash (const EXT_ID &ext_id)
-{
- return this->hash_key_ (ext_id);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::equal (const EXT_ID &id1,
- const EXT_ID &id2)
-{
- return this->compare_keys_ (id1, id2);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind_i (const EXT_ID &ext_id,
- const INT_ID &int_id)
-{
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *temp;
-
- return this->bind_i (ext_id, int_id, temp);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &ext_id,
- const INT_ID &int_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->bind_i (ext_id, int_id);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->bind_i (ext_id, int_id, entry);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::trybind_i (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *temp;
-
- int result = this->trybind_i (ext_id, int_id, temp);
- if (result == 1)
- int_id = temp->int_id_;
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::trybind (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->trybind_i (ext_id, int_id);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::trybind (const EXT_ID &ext_id,
- INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->trybind_i (ext_id, int_id, entry);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_i (const EXT_ID &ext_id)
-{
- INT_ID int_id;
-
- return this->unbind_i (ext_id, int_id);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->unbind_i (ext_id, int_id);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind (const EXT_ID &ext_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->unbind_i (ext_id) == -1 ? -1 : 0;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind (ACE_Hash_Map_Entry<EXT_ID, INT_ID> *entry)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->unbind_i (entry) == -1 ? -1 : 0;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *entry;
-
- size_t dummy;
- if (this->shared_find (ext_id, entry, dummy) == -1)
- return -1;
- else
- {
- int_id = entry->int_id_;
- return 0;
- }
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &ext_id)
-{
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *entry;
-
- size_t dummy;
- return this->shared_find (ext_id, entry, dummy);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &ext_id,
- INT_ID &int_id) const
-{
- ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *nc_this =
- (ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *)
- this;
-
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1);
-
- return nc_this->find_i (ext_id, int_id);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &ext_id) const
-{
- ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *nc_this =
- (ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *)
- this;
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1);
-
- return nc_this->find_i (ext_id);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &ext_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry)
-{
- size_t dummy;
- return this->shared_find (ext_id, entry, dummy);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &ext_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry) const
-{
- ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *nc_this =
- (ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *)
- this;
-
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1);
-
- return nc_this->find_i (ext_id, entry);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id)
-{
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *node;
-
- return this->rebind_i (ext_id,
- int_id,
- node);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id)
-{
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *node;
-
- return this->rebind_i (ext_id,
- int_id,
- old_int_id,
- node);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id)
-{
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *node;
-
- return this->rebind_i (ext_id,
- int_id,
- old_ext_id,
- old_int_id,
- node);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->rebind_i (ext_id, int_id);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->rebind_i (ext_id, int_id, entry);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->rebind_i (ext_id, int_id, old_int_id);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->rebind_i (ext_id, int_id, old_int_id, entry);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->rebind_i (ext_id, int_id, old_ext_id, old_int_id);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id,
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->rebind_i (ext_id, int_id, old_ext_id, old_int_id, entry);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::begin (void)
-{
- return ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (*this);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::end (void)
-{
- return ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (*this, 1);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rbegin (void)
-{
- return ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (*this);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rend (void)
-{
- return ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (*this, 1);
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Iterator_Base_Ex (ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm,
- int head)
- : map_man_ (&mm),
- index_ (head != 0 ? -1 : (ssize_t) mm.total_size_),
- next_ (0)
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Iterator_Base_Ex");
-
- if (mm.table_ != 0)
- this->next_ = &mm.table_[head != 0 ? 0 : mm.total_size_ - 1];
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next (ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry) const
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next");
-
- if (this->map_man_->table_ != 0
- && this->index_ < ACE_static_cast (ssize_t, this->map_man_->total_size_)
- && this->index_ >= 0
- && this->next_ != &this->map_man_->table_[this->index_])
- {
- entry = this->next_;
- return 1;
- }
- else
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::done (void) const
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::done");
-
- return this->map_man_->table_ == 0
- || this->index_ >= ACE_static_cast (ssize_t, this->map_man_->total_size_)
- || this->index_ < 0;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Entry<EXT_ID, INT_ID> &
-ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator* (void) const
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator*");
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *retv = 0;
-
- int result = this->next (retv);
-
- ACE_UNUSED_ARG (result);
- ACE_ASSERT (result != 0);
-
- return *retv;
-}
-
-// Returns the reference to the hash_map_manager_ex that is being
-// iterated over.
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>&
-ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map");
- return *this->map_man_;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator== (const ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator==");
- return this->map_man_ == rhs.map_man_
- && this->index_ == rhs.index_
- && this->next_ == rhs.next_;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!= (const ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!=");
- return this->next_ != rhs.next_
- || this->index_ != rhs.index_
- || this->map_man_ != rhs.map_man_;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Const_Iterator_Base_Ex (const ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm,
- int head)
- : map_man_ (&mm),
- index_ (head != 0 ? -1 : (ssize_t) mm.total_size_),
- next_ (0)
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Const_Iterator_Base_Ex");
-
- if (mm.table_ != 0)
- this->next_ = &mm.table_[head != 0 ? 0 : mm.total_size_ - 1];
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next (ACE_Hash_Map_Entry<EXT_ID, INT_ID> *&entry) const
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next");
-
- if (this->map_man_->table_ != 0
- && this->index_ < (ssize_t) this->map_man_->total_size_
- && this->index_ >= 0
- && this->next_ != &this->map_man_->table_[this->index_])
- {
- entry = this->next_;
- return 1;
- }
- else
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::done (void) const
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::done");
-
- return this->map_man_->table_ == 0
- || this->index_ >= (ssize_t) this->map_man_->total_size_
- || this->index_ < 0;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Entry<EXT_ID, INT_ID> &
-ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator* (void) const
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator*");
- ACE_Hash_Map_Entry<EXT_ID, INT_ID> *retv = 0;
-
- int result = this->next (retv);
-
- ACE_UNUSED_ARG (result);
- ACE_ASSERT (result != 0);
-
- return *retv;
-}
-
-// Returns the reference to the hash_map_manager_ex that is being
-// iterated over.
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-const ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>&
-ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map");
- return *this->map_man_;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator== (const ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator==");
- return this->map_man_ == rhs.map_man_
- && this->index_ == rhs.index_
- && this->next_ == rhs.next_;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!= (const ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!=");
- return this->next_ != rhs.next_
- || this->index_ != rhs.index_
- || this->map_man_ != rhs.map_man_;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Map_Iterator_Ex)
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE void
-ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump (void) const
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump");
-
- this->dump_i ();
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Iterator_Ex (ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm,
- int tail)
- : ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (mm,
- tail == 0 ? 1 : 0)
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Iterator_Ex");
- if (tail == 0)
- this->forward_i ();
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance");
- return this->forward_i ();
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &
-ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)");
-
- this->forward_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)");
-
- ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this);
- ++*this;
- return retv;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &
-ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)");
-
- this->reverse_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)
-{
- ACE_TRACE ("ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)");
-
- ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this);
- --*this;
- return retv;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Map_Const_Iterator_Ex)
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE void
-ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump (void) const
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump");
-
- this->dump_i ();
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Const_Iterator_Ex (const ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm,
- int tail)
- : ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (mm,
- tail == 0 ? 1 : 0)
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Const_Iterator_Ex");
- if (tail == 0)
- this->forward_i ();
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance");
- return this->forward_i ();
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &
-ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)");
-
- this->forward_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)");
-
- ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this);
- ++*this;
- return retv;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &
-ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)");
-
- this->reverse_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)
-{
- ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)");
-
- ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this);
- --*this;
- return retv;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Bucket_Iterator (ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm,
- const EXT_ID &ext_id,
- int tail)
- : map_man_ (&mm)
-{
- ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Bucket_Iterator");
-
- this->index_ = this->map_man_->hash (ext_id) % this->map_man_->total_size_;
- this->next_ = &this->map_man_->table_[this->index_];
-
- if (tail == 0)
- this->forward_i ();
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)");
-
- this->forward_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)
-{
- ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)");
-
- ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this);
- ++*this;
- return retv;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)");
-
- this->reverse_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)
-{
- ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)");
-
- ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this);
- --*this;
- return retv;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i");
-
- this->next_ = this->next_->next_;
- return this->next_ != &this->map_man_->table_[this->index_];
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i");
-
- this->next_ = this->next_->prev_;
- return this->next_ != &this->map_man_->table_[this->index_];
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Entry<EXT_ID, INT_ID> &
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator* (void) const
-{
- ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator*");
-
- return *this->next_;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map");
- return *this->map_man_;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator== (const ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const
-{
- ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator==");
- return this->map_man_ == rhs.map_man_
- && this->index_ == rhs.index_
- && this->next_ == rhs.next_;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!= (const ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const
-{
- ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!=");
- return this->next_ != rhs.next_
- || this->index_ != rhs.index_
- || this->map_man_ != rhs.map_man_;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Map_Reverse_Iterator_Ex)
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE void
-ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump (void) const
-{
- ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump");
-
- this->dump_i ();
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Reverse_Iterator_Ex (ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, int head)
- : ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (mm, head)
-{
- ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Reverse_Iterator_Ex");
- if (head == 0)
- this->reverse_i ();
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int
-ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance");
- return this->reverse_i ();
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &
-ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)");
-
- this->reverse_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)
-{
- ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)");
-
- ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this);
- ++*this;
- return retv;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &
-ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)
-{
- ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)");
-
- this->forward_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE
-ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
-ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)
-{
- ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)");
-
- ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this);
- --*this;
- return retv;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-ACE_Hash_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_Map_Manager (ACE_Allocator *alloc)
- : ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (alloc)
-{
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-ACE_Hash_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_Map_Manager (size_t size,
- ACE_Allocator *alloc)
- : ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (size,
- alloc)
-{
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Hash_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::equal (const EXT_ID &id1, const EXT_ID &id2)
-{
- return ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK>::equal (id1, id2);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> u_long
-ACE_Hash_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::hash (const EXT_ID &ext_id)
-{
- return ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK>::hash (ext_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-ACE_Hash_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_Map_Iterator (ACE_Hash_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm,
- int tail)
- : ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (mm,
- tail)
-{
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-ACE_Hash_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_Map_Iterator (const ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base)
- : ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (base)
-{
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_Hash_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> &
-ACE_Hash_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator= (const ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &rhs)
-{
- if (this != &rhs)
- {
- ACE_Hash_Map_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base = *this;
-
- base = rhs;
- }
-
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-ACE_Hash_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_Map_Const_Iterator (const ACE_Hash_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm,
- int tail)
- : ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (mm,
- tail)
-{
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-ACE_Hash_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_Map_Const_Iterator (const ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base)
- : ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (base)
-{
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_Hash_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> &
-ACE_Hash_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator= (const ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &rhs)
-{
- if (this != &rhs)
- {
- ACE_Hash_Map_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base = *this;
-
- base = rhs;
- }
-
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-ACE_Hash_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_Map_Reverse_Iterator (ACE_Hash_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm,
- int head)
- : ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (mm,
- head)
-{
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-ACE_Hash_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_Map_Reverse_Iterator (const ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base)
- : ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (base)
-{
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_Hash_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> &
-ACE_Hash_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator= (const ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &rhs)
-{
- ACE_Hash_Map_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base = *this;
-
- base = rhs;
-
- return *this;
-}
diff --git a/ace/Hash_Map_With_Allocator_T.cpp b/ace/Hash_Map_With_Allocator_T.cpp
deleted file mode 100644
index 644dfe50e06..00000000000
--- a/ace/Hash_Map_With_Allocator_T.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// Hash_Map_With_Allocator_T.cpp
-// $Id$
-
-#ifndef ACE_HASH_MAP_WITH_ALLOCATOR_T_CPP
-#define ACE_HASH_MAP_WITH_ALLOCATOR_T_CPP
-
-#include "ace/Hash_Map_With_Allocator_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Hash_Map_With_Allocator_T.i"
-#endif /* __ACE_INLINE__ */
-
-template <class EXT_ID, class INT_ID>
-ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::ACE_Hash_Map_With_Allocator (ACE_Allocator *alloc)
- : ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_Null_Mutex> (alloc)
-{
- ACE_TRACE ("ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::ACE_Hash_Map_With_Allocator");
-}
-
-template <class EXT_ID, class INT_ID>
-ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::ACE_Hash_Map_With_Allocator (size_t size,
- ACE_Allocator *alloc)
- : ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_Null_Mutex> (size, alloc)
-{
- ACE_TRACE ("ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::ACE_Hash_Map_With_Allocator");
-}
-
-#endif /* ACE_HASH_MAP_WITH_ALLOCATOR_T_CPP */
diff --git a/ace/Hash_Map_With_Allocator_T.h b/ace/Hash_Map_With_Allocator_T.h
deleted file mode 100644
index 84721bb8d68..00000000000
--- a/ace/Hash_Map_With_Allocator_T.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* -*- C++ -*- */
-//=============================================================================
-/**
- * @file Hash_Map_With_Allocator_T.h
- *
- * $Id$
- *
- * @author Marina Spivak <marina@cs.wustl.edu>
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_HASH_MAP_WITH_ALLOCATOR_T_H
-#define ACE_HASH_MAP_WITH_ALLOCATOR_T_H
-#include "ace/pre.h"
-
-#include "ace/Hash_Map_Manager_T.h"
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Hash_Map_With_Allocator
- *
- * @brief This class is a thin wrapper around ACE_Hash_Map_Manager,
- * which comes handy when ACE_Hash_Map_Manager is to be used with a
- * non-nil ACE_Allocator. This wrapper insures that the appropriate
- * allocator is in place for every operation that accesses or
- * updates the hash map.
- *
- * If we use ACE_Hash_Map_Manager with a shared memory allocator
- * (or memory-mapped file allocator, for example), the allocator
- * pointer used by ACE_Hash_Map_Manager gets stored with it, in
- * shared memory (or memory-mapped file). Naturally, this will
- * cause horrible problems, since only the first process to set
- * that pointer will be guaranteed the address of the allocator
- * is meaningful! That is why we need this wrapper, which
- * insures that appropriate allocator pointer is in place for
- * each call.
- */
-template <class EXT_ID, class INT_ID>
-class ACE_Hash_Map_With_Allocator :
- public ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_Null_Mutex>
-{
-public:
- /// Constructor.
- ACE_Hash_Map_With_Allocator (ACE_Allocator *alloc);
-
- /// Constructor that specifies hash table size.
- ACE_Hash_Map_With_Allocator (size_t size,
- ACE_Allocator *alloc);
-
- // = The following methods are Proxies to the corresponding methods
- // in <ACE_Hash_Map_Manager>. Each method sets the allocator to
- // the one specified by the invoking entity, and then calls the
- // corresponding method in <ACE_Hash_Map_Manager> to do the
- // actual work.
-
- int bind (const EXT_ID &,
- const INT_ID &,
- ACE_Allocator *alloc);
-
- int unbind (const EXT_ID &,
- INT_ID &,
- ACE_Allocator *alloc);
-
- int unbind (const EXT_ID &,
- ACE_Allocator *alloc);
-
- int rebind (const EXT_ID &,
- const INT_ID &,
- EXT_ID &,
- INT_ID &,
- ACE_Allocator *alloc);
-
- int find (const EXT_ID &,
- INT_ID &,
- ACE_Allocator *alloc);
-
- /// Returns 0 if the <ext_id> is in the mapping, otherwise -1.
- int find (const EXT_ID &,
- ACE_Allocator *alloc);
-
- int close (ACE_Allocator *alloc);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Hash_Map_With_Allocator_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Hash_Map_With_Allocator_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Hash_Map_With_Allocator_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-
-#include "ace/post.h"
-#endif /* ACE_HASH_MAP_WITH_ALLOCATOR_T_H */
diff --git a/ace/Hash_Map_With_Allocator_T.i b/ace/Hash_Map_With_Allocator_T.i
deleted file mode 100644
index 5b8c42dde3d..00000000000
--- a/ace/Hash_Map_With_Allocator_T.i
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Hash_Map_With_Allocator_T.i
-
-
-template <class EXT_ID, class INT_ID> ACE_INLINE int
-ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::close (ACE_Allocator *alloc)
-{
- ACE_TRACE ("ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::close");
- this->allocator_ = alloc;
- return this->close_i ();
-}
-
-template <class EXT_ID, class INT_ID> ACE_INLINE int
-ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::bind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_Allocator *alloc)
-{
- ACE_TRACE ("ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::bind");
- this->allocator_ = alloc;
- return this->bind_i (ext_id, int_id);
-}
-
-template <class EXT_ID, class INT_ID> ACE_INLINE int
-ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::unbind (const EXT_ID &ext_id,
- INT_ID &int_id,
- ACE_Allocator *alloc)
-{
- ACE_TRACE ("ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::unbind");
- this->allocator_ = alloc;
- return this->unbind_i (ext_id, int_id);
-}
-
-template <class EXT_ID, class INT_ID> ACE_INLINE int
-ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::unbind (const EXT_ID &ext_id,
- ACE_Allocator *alloc)
-{
- ACE_TRACE ("ACE_Hash_Map_With_Allocator<EXT_ID>::unbind");
- this->allocator_ = alloc;
- return this->unbind_i (ext_id);
-}
-
-template <class EXT_ID, class INT_ID> ACE_INLINE int
-ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id,
- ACE_Allocator *alloc)
-{
- ACE_TRACE ("ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::rebind");
- this->allocator_ = alloc;
- return this->rebind_i (ext_id, int_id, old_ext_id, old_int_id);
-}
-
-template <class EXT_ID, class INT_ID> ACE_INLINE int
-ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::find (const EXT_ID &ext_id,
- INT_ID &int_id,
- ACE_Allocator *alloc)
-{
- ACE_TRACE ("ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::find");
- this->allocator_ = alloc;
- return this->find_i (ext_id, int_id);
-}
-
-template <class EXT_ID, class INT_ID> ACE_INLINE int
-ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::find (const EXT_ID &ext_id,
- ACE_Allocator *alloc)
-{
- ACE_TRACE ("ACE_Hash_Map_With_Allocator<EXT_ID, INT_ID>::find");
- this->allocator_ = alloc;
- return this->find_i (ext_id);
-}
diff --git a/ace/Hashable.cpp b/ace/Hashable.cpp
deleted file mode 100644
index c07ec6d0d65..00000000000
--- a/ace/Hashable.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-//$Id$
-#include "ace/Hashable.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Hashable.inl"
-#endif /* __ACE_INLINE __ */
-
-ACE_RCSID(ace, Hashable, "$Id$")
diff --git a/ace/Hashable.h b/ace/Hashable.h
deleted file mode 100644
index a6b264d29f3..00000000000
--- a/ace/Hashable.h
+++ /dev/null
@@ -1,63 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Hashable.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-#ifndef ACE_HASHABLE_H
-#define ACE_HASHABLE_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-
-/**
- * @class ACE_Hashable
- *
- * @brief ACE_Hashable
- */
-class ACE_Export ACE_Hashable
-{
-public:
-
- /// Destructor.
- virtual ~ACE_Hashable (void);
-
- /// Computes and returns hash value. This "caches" the hash value to
- /// improve performance.
- virtual unsigned long hash (void) const;
-
-protected:
- /// Protected constructor.
- ACE_Hashable (void);
-
- /// This is the method that actually performs the non-cached hash
- /// computation.
- virtual unsigned long hash_i (void) const = 0;
-
-protected:
-
- /// Pre-computed hash-value.
- unsigned long hash_value_;
-
-};
-
-
-#if defined (__ACE_INLINE__)
-#include "ace/Hashable.inl"
-#endif /* __ACE_INLINE __ */
-
-#include "ace/post.h"
-
-#endif /*ACE_HASHABLE_H*/
diff --git a/ace/Hashable.inl b/ace/Hashable.inl
deleted file mode 100644
index 4938b231fab..00000000000
--- a/ace/Hashable.inl
+++ /dev/null
@@ -1,30 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-
-ACE_INLINE
-ACE_Hashable::ACE_Hashable (void)
- : hash_value_ (0)
-{
-}
-
-ACE_INLINE
-ACE_Hashable::~ACE_Hashable (void)
-{
-}
-
-ACE_INLINE unsigned long
-ACE_Hashable::hash (void) const
-{
- // In doing the check below, we take chance of paying a performance
- // price when the hash value is zero. But, that will (hopefully)
- // happen far less often than a non-zero value, so this caching
- // strategy should pay off, esp. if hash computation is expensive
- // relative to the simple comparison.
-
- if (this->hash_value_ == 0)
- ((ACE_Hashable *) this)->hash_value_ = this->hash_i ();
-
- return this->hash_value_;
-}
diff --git a/ace/High_Res_Timer.cpp b/ace/High_Res_Timer.cpp
deleted file mode 100644
index 4c2b3449263..00000000000
--- a/ace/High_Res_Timer.cpp
+++ /dev/null
@@ -1,526 +0,0 @@
-// $Id$
-
-// Be very carefull before changing the calculations inside
-// ACE_High_Res_Timer. The precision matters and we are using integer
-// calculations not floating point. Also look good at the emulated 64
-// bit int class (inside Basic_Types{h,i,cpp} before changing
-// anything. It's operator/ only returns 32 bits not 64 bits, among
-// other things.
-
-#include "ace/High_Res_Timer.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/High_Res_Timer.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Stats.h"
-
-ACE_RCSID(ace, High_Res_Timer, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_High_Res_Timer)
-
-// For Intel platforms, a scale factor is required for
-// ACE_OS::gethrtime. We'll still set this to one to prevent division
-// by zero errors.
-#if (defined (ACE_WIN32) || defined (ACE_HAS_POWERPC_TIMER) || \
- defined (ACE_HAS_PENTIUM) || defined (ACE_HAS_ALPHA_TIMER)) && \
- !defined (ACE_HAS_HI_RES_TIMER)
-
-# include "ace/Synch.h"
-# include "ace/Object_Manager.h"
-
- // Initialize the global_scale_factor_ to 1. The first
- // ACE_High_Res_Timer instance construction will override this
- // value.
- /* static */
- ACE_UINT32 ACE_High_Res_Timer::global_scale_factor_ = 1u;
-
-#else /* ! (ACE_WIN32 || ACE_HAS_POWERPC_TIMER || \
- ACE_HAS_PENTIUM || ACE_HAS_ALPHA_TIMER) ||
- ACE_HAS_HI_RES_TIMER */
- // A scale_factor of 1000 converts nanosecond ticks to microseconds.
- // That is, on these platforms, 1 tick == 1 nanosecond.
- /* static */
- ACE_UINT32 ACE_High_Res_Timer::global_scale_factor_ = 1000u;
-#endif /* ! (ACE_WIN32 || ACE_HAS_POWERPC_TIMER || \
- ACE_HAS_PENTIUM || ACE_HAS_ALPHA_TIMER) ||
- ACE_HAS_HI_RES_TIMER */
-
-// This is used to tell if the global_scale_factor_ has been
-// set, and if high resolution timers are supported.
-/* static */
-int ACE_High_Res_Timer::global_scale_factor_status_ = 0;
-
-
-#if defined (linux)
-// Determine the apparent CPU clock speed from /proc/cpuinfo
-ACE_UINT32
-ACE_High_Res_Timer::get_cpuinfo (void)
-{
- ACE_UINT32 scale_factor = 1u;
-
- // Get the BogoMIPS from /proc/cpuinfo. It works fine on Alpha and
- // Pentium Pro. For other CPUs, it will be necessary to interpret
- // the BogoMips, as described in the BogoMips mini-HOWTO. Note that
- // this code assumes an order to the /proc/cpuinfo contents. The
- // BogoMips rating had better come after CPU type and model info.
-#if !defined (__alpha__)
- int supported = 0;
-#endif /* __alpha__ */
-
- FILE *cpuinfo = ACE_OS::fopen ("/proc/cpuinfo", "r");
-
- if (cpuinfo != 0)
- {
- ACE_TCHAR buf[128];
-
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nReading /proc/cpuinfo...")));
-
- while (ACE_OS::fgets (buf, sizeof buf, cpuinfo))
- {
-#if defined (__alpha__)
- ACE_UINT32 whole;
- ACE_UINT32 fractional;
- if (::sscanf (buf,
- "BogoMIPS : %d.%d\n",
- &whole,
- &fractional) == 2
- || ::sscanf (buf,
- "bogomips : %d.%d\n",
- &whole,
- &fractional) == 2)
- {
- scale_factor = whole;
- break;
- }
-#else
- double mhertz = 1;
- double bmips = 1;
- ACE_TCHAR arg[128];
-
- // CPU type?
- if (::sscanf (buf, "cpu : %s\n", arg) == 1)
- {
- // If this is an Alpha chip, then the BogoMips rating is
- // usable...
- if (ACE_OS::strncmp (arg,
- "Alpha",
- 5) == 0)
- {
- supported = 1;
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" recognized Alpha chip...")));
- }
- }
- // Pentium CPU model?
- else if (supported == 0
- && ::sscanf (buf, "model name : Pentium %s\n", arg) == 1)
- {
- // But if we don't have the right kind of Intel chip,
- // just quit.
- if (ACE_OS::strcmp (arg, "II") == 0
- || ACE_OS::strcmp (arg, "III") == 0
- || ACE_OS::strcmp (arg, "IV") == 0
- || ACE_OS::strcmp (arg, "Pro") == 0)
- {
- supported = 1;
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" recognized Pentium Pro/II chip...")));
- }
- }
- else if (::sscanf (buf, "cpu MHz : %lf\n", &mhertz) == 1)
- {
- // If the line "cpu MHz : xxx" is present, then it's a
- // reliable measure of the CPU speed - according to the
- // kernel-source.
- scale_factor = (ACE_UINT32) (mhertz + 0.5);
- break;
- }
- else if (::sscanf (buf, "bogomips : %lf\n", &bmips) == 1
- || ::sscanf (buf, "BogoMIPS : %lf\n", &bmips) == 1)
- {
- if (supported)
- {
- scale_factor = (ACE_UINT32) (bmips + 0.5);
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" setting the clock scale factor to %u"), scale_factor));
- }
-#if 0
- else
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\nThe BogoMIPS metric is not supported on this platform"
- "\n\tReport the results of the clock calibration and"
- "\n\tthe contents of /proc/cpuinfo to the ace-users mailing list")));
- }
-#endif /* 0 */
- break;
- }
-#endif /* __alpha__ */
- }
-
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" (done)\n")));
-
- ACE_OS::fclose (cpuinfo);
- }
-
- return scale_factor;
-}
-#endif /* linux */
-
-ACE_UINT32
-ACE_High_Res_Timer::global_scale_factor (void)
-{
-#if (defined (ACE_WIN32) || defined (ACE_HAS_POWERPC_TIMER) || \
- defined (ACE_HAS_PENTIUM) || defined (ACE_HAS_ALPHA_TIMER)) && \
- !defined (ACE_HAS_HI_RES_TIMER) && \
- ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || \
- defined (ghs) || defined (__GNUG__) || defined (__KCC) || \
- defined (__INTEL_COMPILER))
- // Check if the global scale factor needs to be set, and do if so.
- if (ACE_High_Res_Timer::global_scale_factor_status_ == 0)
- {
- // Grab ACE's static object lock. This doesn't have anything to
- // do with static objects; it's just a convenient lock to use.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
-
- // Double check
- if (ACE_High_Res_Timer::global_scale_factor_status_ == 0)
- {
-# if defined (ACE_WIN32)
- LARGE_INTEGER freq;
- if (::QueryPerformanceFrequency (&freq))
- {
- // We have a high-res timer
-# if defined (ACE_LACKS_LONGLONG_T)
- ACE_UINT64 uint64_freq(freq.u.LowPart, (ACE_UINT32) freq.u.HighPart);
- ACE_High_Res_Timer::global_scale_factor
- (uint64_freq / (ACE_UINT32) ACE_ONE_SECOND_IN_USECS);
-# else
- ACE_High_Res_Timer::global_scale_factor
- (ACE_static_cast (unsigned int,
- freq.QuadPart / ACE_HR_SCALE_CONVERSION));
-# endif // (ACE_LACKS_LONGLONG_T)
-
- ACE_High_Res_Timer::global_scale_factor_status_ = 1;
- }
- else
- // High-Res timers not supported
- ACE_High_Res_Timer::global_scale_factor_status_ = -1;
-
- return ACE_High_Res_Timer::global_scale_factor_;
-
-# elif defined (linux)
- ACE_High_Res_Timer::global_scale_factor (ACE_High_Res_Timer::get_cpuinfo ());
-# endif /* ! ACE_WIN32 && ! (linux && __alpha__) */
-
-# if !defined (ACE_WIN32)
- if (ACE_High_Res_Timer::global_scale_factor_ == 1u)
- // Failed to retrieve CPU speed from system, so calculate it.
- ACE_High_Res_Timer::calibrate ();
-# endif // (ACE_WIN32)
- }
- }
-
- ACE_High_Res_Timer::global_scale_factor_status_ = 1;
-#endif /* (ACE_WIN32 || ACE_HAS_POWERPC_TIMER || \
- ACE_HAS_PENTIUM || ACE_HAS_ALPHA_TIMER) && \
- ! ACE_HAS_HIGH_RES_TIMER &&
- ((WIN32 && ! WINCE) || ghs || __GNUG__) */
-
- return ACE_High_Res_Timer::global_scale_factor_;
-}
-
-ACE_High_Res_Timer::ACE_High_Res_Timer (void)
-{
- ACE_TRACE ("ACE_High_Res_Timer::ACE_High_Res_Timer");
-
- this->reset ();
-
- // Make sure that the global scale factor is set.
- (void) global_scale_factor ();
-}
-
-ACE_UINT32
-ACE_High_Res_Timer::calibrate (const ACE_UINT32 usec,
- const u_int iterations)
-{
- const ACE_Time_Value sleep_time (0, usec);
- ACE_Stats delta_hrtime;
- // In units of 100 usec, to avoid overflow.
- ACE_Stats actual_sleeps;
-
- for (u_int i = 0;
- i < iterations;
- ++i)
- {
- const ACE_Time_Value actual_start =
- ACE_OS::gettimeofday ();
- const ACE_hrtime_t start =
- ACE_OS::gethrtime ();
- ACE_OS::sleep (sleep_time);
- const ACE_hrtime_t stop =
- ACE_OS::gethrtime ();
- const ACE_Time_Value actual_delta =
- ACE_OS::gettimeofday () - actual_start;
-
- // Store the sample.
- delta_hrtime.sample (ACE_U64_TO_U32 (stop - start));
- actual_sleeps.sample (actual_delta.msec () * 100u);
- }
-
- // Calculate the mean value of the samples, with no fractional
- // precision. Use it for the global scale factor.
- ACE_Stats_Value ticks (0);
- delta_hrtime.mean (ticks);
-
- ACE_Stats_Value actual_sleep (0);
- actual_sleeps.mean (actual_sleep);
-
- // The addition of 5 below rounds instead of truncates.
- const ACE_UINT32 scale_factor =
- (ticks.whole () / actual_sleep.whole () + 5) /
- 10u /* usec/100 usec */;
- ACE_High_Res_Timer::global_scale_factor (scale_factor);
-
- return scale_factor;
-}
-
-void
-ACE_High_Res_Timer::dump (void) const
-{
- ACE_TRACE ("ACE_High_Res_Timer::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nglobal_scale_factor_: %u\n"),
- global_scale_factor ()));
-#if defined (ACE_LACKS_LONGLONG_T)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT (":\nstart_.hi (): %8x; start_.lo (): %8x;\n")
- ACE_LIB_TEXT ("end_.hi (): %8x; end_.lo (): %8x;\n")
- ACE_LIB_TEXT ("total_.hi (): %8x; total_.lo (): %8x;\n")
- ACE_LIB_TEXT ("start_incr_.hi () %8x; start_incr_.lo (): %8x;\n"),
- start_.hi (), start_.lo (),
- end_.hi (), end_.lo (),
- total_.hi (), total_.lo (),
- start_incr_.hi (), start_incr_.lo ()));
-#else /* ! ACE_LACKS_LONGLONG_T */
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT (":\nstart_.hi (): %8x; start_.lo (): %8x;\n")
- ACE_LIB_TEXT ("end_.hi (): %8x; end_.lo (): %8x;\n")
- ACE_LIB_TEXT ("total_.hi (): %8x; total_.lo (): %8x;\n")
- ACE_LIB_TEXT ("start_incr_.hi () %8x; start_incr_.lo (): %8x;\n"),
- ACE_CU64_TO_CU32 (start_ >> 32),
- ACE_CU64_TO_CU32 (start_ & 0xfffffffful),
- ACE_CU64_TO_CU32 (end_ >> 32),
- ACE_CU64_TO_CU32 (end_ & 0xfffffffful),
- ACE_CU64_TO_CU32 (total_ >> 32),
- ACE_CU64_TO_CU32 (total_ & 0xfffffffful),
- ACE_CU64_TO_CU32 (start_incr_ >> 32),
- ACE_CU64_TO_CU32 (start_incr_ & 0xfffffffful)));
-#endif /* ! ACE_LACKS_LONGLONG_T */
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_High_Res_Timer::reset (void)
-{
- ACE_TRACE ("ACE_High_Res_Timer::reset");
-
- start_ = 0;
- end_ = 0;
- total_ = 0;
- start_incr_ = 0;
-}
-
-void
-ACE_High_Res_Timer::elapsed_time (ACE_Time_Value &tv) const
-{
- hrtime_to_tv (tv, end_ - start_);
-}
-
-#if defined (ACE_HAS_POSIX_TIME)
-// Note... Win32 does not have ACE_HAS_POSIX_TIME, so the scale factor
-// does not need to take into account the different units on Win32.
-
-void
-ACE_High_Res_Timer::elapsed_time (struct timespec &elapsed_time) const
-{
- // This implementation should be cleaned up.
-
- // Just grab the nanoseconds. That is, leave off all values above
- // microsecond. This equation is right! Don't mess with me! (It
- // first strips off everything but the portion less than 1 usec.
- // Then it converts that to nanoseconds by dividing by the scale
- // factor to convert to usec, and multiplying by 1000.) The cast
- // avoids a MSVC 4.1 compiler warning about narrowing.
- u_long nseconds = ACE_static_cast (u_long,
- (this->end_ - this->start_) %
- global_scale_factor () * 1000u /
- global_scale_factor ());
-
- // Get just the microseconds (dropping any left over nanoseconds).
- ACE_UINT32 useconds = (ACE_UINT32) ((this->end_ - this->start_) / global_scale_factor ());
-
-#if ! defined(ACE_HAS_BROKEN_TIMESPEC_MEMBERS)
- elapsed_time.tv_sec = (time_t) (useconds / ACE_ONE_SECOND_IN_USECS);
- // Transforms one second in microseconds into nanoseconds.
- elapsed_time.tv_nsec = (time_t) ((useconds % ACE_ONE_SECOND_IN_USECS) * 1000u + nseconds);
-#else
- elapsed_time.ts_sec = (time_t) (useconds / ACE_ONE_SECOND_IN_USECS);
- // Transforms one second in microseconds into nanoseconds.
- elapsed_time.ts_nsec = (time_t) ((useconds % ACE_ONE_SECOND_IN_USECS) * 1000u + nseconds);
-#endif /* ACE_HAS_BROKEN_TIMESPEC_MEMBERS */
-}
-#endif /* ACE_HAS_POSIX_TIME */
-
-void
-ACE_High_Res_Timer::elapsed_time_incr (ACE_Time_Value &tv) const
-{
- hrtime_to_tv (tv, total_);
-}
-
-void
-ACE_High_Res_Timer::elapsed_time (ACE_hrtime_t &nanoseconds) const
-{
- // Please do _not_ rearrange this equation. It is carefully
- // designed and tested to avoid overflow on machines that don't have
- // native 64-bit ints. In particular, division can be a problem.
- // For more background on this, please see bugzilla #1024.
-#if defined (ACE_WIN32)
- nanoseconds = (this->end_ - this->start_)
- * (1024000000u / ACE_High_Res_Timer::global_scale_factor());
-#else
- nanoseconds = (this->end_ - this->start_)
- * (1024000u / ACE_High_Res_Timer::global_scale_factor ());
-#endif /* ACE_WIN32 */
- // Caution - Borland has a problem with >>=, so resist the temptation.
- nanoseconds = nanoseconds >> 10;
- // Right shift is implemented for non native 64-bit ints
- // operator/ only for a 32 bit result !
-}
-
-void
-ACE_High_Res_Timer::elapsed_time_incr (ACE_hrtime_t &nanoseconds) const
-{
- // Same as above.
-#if defined (ACE_WIN32)
- nanoseconds = this->total_
- * (1024000000u / ACE_High_Res_Timer::global_scale_factor());
-#else
- nanoseconds = this->total_
- * (1024000u / ACE_High_Res_Timer::global_scale_factor ());
-#endif
- // Caution - Borland has a problem with >>=, so resist the temptation.
- nanoseconds = nanoseconds >> 10;
-}
-
-#if !defined (ACE_HAS_WINCE)
-void
-ACE_High_Res_Timer::print_ave (const ACE_TCHAR *str,
- const int count,
- ACE_HANDLE handle) const
-{
- ACE_TRACE ("ACE_High_Res_Timer::print_ave");
-
- // Get the total number of nanoseconds elapsed.
- ACE_hrtime_t total_nanoseconds;
- this->elapsed_time (total_nanoseconds);
-
- // Separate to seconds and nanoseconds.
- u_long total_secs =
- ACE_static_cast (u_long,
- total_nanoseconds / (ACE_UINT32) ACE_ONE_SECOND_IN_NSECS);
- ACE_UINT32 extra_nsecs =
- ACE_static_cast (ACE_UINT32,
- total_nanoseconds % (ACE_UINT32) ACE_ONE_SECOND_IN_NSECS);
-
- ACE_TCHAR buf[100];
- if (count > 1)
- {
- ACE_hrtime_t avg_nsecs = total_nanoseconds / (ACE_UINT32) count;
- ACE_OS::sprintf (buf,
- ACE_LIB_TEXT (" count = %d, total (secs %lu, usecs %u), avg usecs = %lu\n"),
- count,
- total_secs,
- (extra_nsecs + 500u) / 1000u,
- (u_long) ((avg_nsecs + 500u) / 1000u));
- }
- else
- ACE_OS::sprintf (buf,
- ACE_LIB_TEXT (" total %3lu.%06lu secs\n"),
- total_secs,
- (extra_nsecs + 500lu) / 1000lu);
-
- ACE_OS::write (handle,
- str,
- ACE_OS::strlen (str));
- ACE_OS::write (handle,
- buf,
- ACE_OS::strlen (buf));
-}
-
-void
-ACE_High_Res_Timer::print_total (const ACE_TCHAR *str,
- const int count,
- ACE_HANDLE handle) const
-{
- ACE_TRACE ("ACE_High_Res_Timer::print_total");
-
- // Get the total number of nanoseconds elapsed.
- ACE_hrtime_t total_nanoseconds;
- this->elapsed_time (total_nanoseconds);
-
- // Separate to seconds and nanoseconds.
- u_long total_secs =
- (u_long) (total_nanoseconds / (ACE_UINT32) ACE_ONE_SECOND_IN_NSECS);
- ACE_UINT32 extra_nsecs =
- (ACE_UINT32) (total_nanoseconds % (ACE_UINT32) ACE_ONE_SECOND_IN_NSECS);
-
- ACE_TCHAR buf[100];
- if (count > 1)
- {
- ACE_hrtime_t avg_nsecs = this->total_ / (ACE_UINT32) count;
-
- ACE_OS::sprintf (buf,
- ACE_LIB_TEXT (" count = %d, total (secs %lu, usecs %u), avg usecs = %lu\n"),
- count,
- total_secs,
- (extra_nsecs + 500u) / 1000u,
- (u_long) ((avg_nsecs + 500u) / 1000u));
- }
- else
- ACE_OS::sprintf (buf,
- ACE_LIB_TEXT (" total %3lu.%06u secs\n"),
- total_secs,
- (extra_nsecs + 500u) / 1000u);
-
- ACE_OS::write (handle,
- str,
- ACE_OS::strlen (str));
- ACE_OS::write (handle,
- buf,
- ACE_OS::strlen (buf));
-}
-#endif /* !ACE_HAS_WINCE */
-
-int
-ACE_High_Res_Timer::get_env_global_scale_factor (const ACE_TCHAR *env)
-{
-#if !defined (ACE_HAS_WINCE)
- if (env != 0)
- {
- const ACE_TCHAR *env_value = ACE_OS::getenv (env);
- if (env_value != 0)
- {
- int value = ACE_OS::atoi (env_value);
- if (value > 0)
- {
- ACE_High_Res_Timer::global_scale_factor (value);
- return 0;
- }
- }
- }
-#else
- ACE_UNUSED_ARG (env);
-#endif /* !ACE_HAS_WINCE */
- return -1;
-}
diff --git a/ace/High_Res_Timer.h b/ace/High_Res_Timer.h
deleted file mode 100644
index 4df0617ff27..00000000000
--- a/ace/High_Res_Timer.h
+++ /dev/null
@@ -1,310 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file High_Res_Timer.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_HIGH_RES_TIMER_H
-#define ACE_HIGH_RES_TIMER_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_High_Res_Timer
- *
- * @brief A high resolution timer class wrapper that encapsulates
- * OS-specific high-resolution timers, such as those found on
- * Solaris, AIX, Win32/Pentium, and VxWorks.
- *
- * Most of the member functions don't return values. The only
- * reason that one would fail is if high-resolution time isn't
- * supported on the platform. To avoid impacting performance
- * and complicating the interface, in that case,
- * <ACE_OS::gettimeofday> is used instead.
- * The global scale factor is required for platforms that have
- * high-resolution timers that return units other than
- * microseconds, such as clock ticks. It is represented as a
- * static u_long, can only be accessed through static methods,
- * and is used by all instances of High Res Timer. The member
- * functions that return or print times use the global scale
- * factor. They divide the "time" that they get from
- * <ACE_OS::gethrtime> by global_scale_factor_ to obtain the
- * time in microseconds. Its units are therefore 1/microsecond.
- * On Windows the global_scale_factor_ units are 1/millisecond.
- * There's a macro <ACE_HR_SCALE_CONVERSION> which gives the
- * units/second. Because it's possible that the units/second
- * changes in the future, it's recommended to use it instead
- * of a "hard coded" solution.
- * Dependend on the platform and used class members, there's a
- * maximum elapsed period before overflow (which is not checked).
- * Look at the documentation with some members functions.
- * On some (most?) implementations it's not recommended to measure
- * "long" timeperiods, because the error's can accumulate fast.
- * This is probably not a problem profiling code, but could be
- * on if the high resolution timer class is used to initiate
- * actions after a "long" timeout.
- * On Solaris, a scale factor of 1000 should be used because its
- * high-resolution timer returns nanoseconds. However, on Intel
- * platforms, we use RDTSC which returns the number of clock
- * ticks since system boot. For a 200MHz cpu, each clock tick
- * is 1/200 of a microsecond; the global_scale_factor_ should
- * therefore be 200 or 200000 if it's in unit/millisecond.
- * On Windows ::QueryPerformanceCounter() is used, which can be a
- * different implementation depending on the used windows HAL
- * (Hardware Abstraction Layer). On some it uses the PC "timer chip"
- * while it uses RDTSC on others.
- * NOTE: the elapsed time calculations in the print methods use
- * ACE_hrtime_t values. Those methods do _not_ check for overflow!
- * NOTE: Gabe <begeddov@proaxis.com> raises this issue regarding
- * <ACE_OS::gethrtime>: on multi-processors, the processor that
- * you query for your <timer.stop> value might not be the one
- * you queried for <timer.start>. Its not clear how much
- * divergence there would be, if any.
- * This issue is not mentioned in the Solaris 2.5.1 gethrtime
- * man page.
- * A RDTSC NOTE: RDTSC is the Intel Pentium read-time stamp counter
- * and is actualy a 64 bit clock cycle counter, which is increased
- * with every cycle. It has a low overhead and can be read within
- * 16 (pentium) or 32 (pentium II,III,...) cycles, but it doesn't
- * serialize the processor, which could give wrong timings when
- * profiling very short code fragments.
- * Problematic is that some power sensitive devices
- * (laptops for example, but probably also embedded devices),
- * do change the cycle rate while running.
- * Some pentiums can run on (at least) two clock frequency's.
- * Another problem arises with multiprocessor computers, there
- * are reports that the different RDTSC's are not always kept
- * in sync.
- * A windows "timer chip" NOTE: (8254-compatible real-time clock)
- * When ::QueryPerformanceCounter() uses the 8254 it has a
- * frequency off about 1.193 Mhz (or sometimes 3.579 Mhz?) and
- * reading it requires some time (several thousand cycles).
- */
-class ACE_Export ACE_High_Res_Timer
-{
-public:
- // = Initialization method.
-
- /**
- * global_scale_factor_ is set to <gsf>. All High_Res_Timers use
- * global_scale_factor_. This allows applications to set the scale
- * factor just once for all High_Res_Timers. Check
- * High_Res_Timer.cpp for the default global_scale_factors for
- * several platforms. For many platforms (e.g., Solaris), the
- * global_scale_factor_ is set to 1000 so that <scale_factor> need
- * not be set. Careful, a <scale_factor> of 0 will cause division
- * by zero exceptions.
- * Depending on the platform its units are 1/microsecond or
- * 1/millisecond. Use <ACE_HR_SCALE_CONVERSION> inside calculations
- * instead a hardcoded value.
- */
- static void global_scale_factor (ACE_UINT32 gsf);
-
- /// Returns the global_scale_factor.
- static ACE_UINT32 global_scale_factor (void);
-
- // On Win32, QueryPerformanceFrequency is used as a base for the global
- // scale factor. The value this returns is often too small to be usefully
- // converted to "ticks"/second - it loses unacceptably high levels of
- // precision. So on Win32, global_scale_factor_ is in ticks/msec, not
- // ticks/usec as on all others.
-#if defined (ACE_WIN32)
-# define ACE_HR_SCALE_CONVERSION (ACE_ONE_SECOND_IN_MSECS)
-#else
-# define ACE_HR_SCALE_CONVERSION (ACE_ONE_SECOND_IN_USECS)
-#endif /* ACE_WIN32 */
-
- /**
- * Sets the global_scale_factor to the value in the <env>
- * environment variable. Returns 0 on success, -1 on failure. Note
- * if <env> points to string "0" (value zero), this call will fail.
- * This is basically a no-op on CE because there is no concept of
- * environment variable on CE.
- */
- static int get_env_global_scale_factor (const ACE_TCHAR *env
- = ACE_LIB_TEXT ("ACE_SCALE_FACTOR"));
-
- /**
- * Set (and return, for info) the global scale factor by sleeping
- * for <usec> and counting the number of intervening clock cycles.
- * Average over <iterations> of <usec> each. On some platforms,
- * such as Pentiums, this is called automatically during the first
- * ACE_High_Res_Timer construction with the default parameter
- * values. An application can override that by calling calibrate
- * with any desired parameter values _prior_ to constructing the
- * first ACE_High_Res_Timer instance.
- * Beware for platforms that can change the cycle rate on the fly.
- */
- static ACE_UINT32 calibrate (const ACE_UINT32 usec = 500000,
- const u_int iterations = 10);
-
- /// Initialize the timer.
- ACE_High_Res_Timer (void);
-
- /// dtor.
- ~ACE_High_Res_Timer (void);
-
- /// Reinitialize the timer.
- void reset (void);
-
- /// Start timing.
- void start (const ACE_OS::ACE_HRTimer_Op = ACE_OS::ACE_HRTIMER_GETTIME);
-
- /// Stop timing.
- void stop (const ACE_OS::ACE_HRTimer_Op = ACE_OS::ACE_HRTIMER_GETTIME);
-
- /// Set <tv> to the number of microseconds elapsed.
- /**
- * Could overflow within hours on windows with emulated 64 bit int's
- * and a fast counter. VC++ and Borland normaly use __int64 and
- * so normaly don't have this problem.
- */
- void elapsed_time (ACE_Time_Value &tv) const;
-
- /// Set <nanoseconds> to the number of nanoseconds elapsed.
- /**
- * Will overflow when measuring more than 194 day's.
- */
- void elapsed_time (ACE_hrtime_t &nanoseconds) const;
-
-#if defined (ACE_HAS_POSIX_TIME)
- /// Returns the elapsed (stop - start) time in a struct timespec
- /// (sec, nsec).
- void elapsed_time (struct timespec &) const;
-#endif /* ACE_HAS_POSIX_TIME */
-
- /// Sets <usecs> to the elapsed (stop - start) time in microseconds.
- /**
- * Will overflow on windows when measuring more than appox. 2^^54 ticks.
- * Is still more than 48 days with a 4 Ghz counter.
- */
- void elapsed_microseconds (ACE_hrtime_t &usecs) const;
-
- /// Start incremental timing.
- void start_incr (const ACE_OS::ACE_HRTimer_Op = ACE_OS::ACE_HRTIMER_GETTIME);
-
- /// Stop incremental timing.
- void stop_incr (const ACE_OS::ACE_HRTimer_Op = ACE_OS::ACE_HRTIMER_GETTIME);
-
- /// Set <tv> to the number of microseconds elapsed between all calls
- /// to start_incr and stop_incr.
- void elapsed_time_incr (ACE_Time_Value &tv) const;
-
- /// Set <nsec> to the number of nanoseconds elapsed between all calls
- /// to start_incr and stop_incr.
- void elapsed_time_incr (ACE_hrtime_t &nanoseconds) const;
-
-#if !defined (ACE_HAS_WINCE)
- // @@ WINCE These two functions are currently not supported on Windows CE.
- // However, we should probably use the handle and ACE_Log_Msg to
- // print out the result.
- /// Print total time. NOTE: only use <print_total> if incremental
- /// timings had been used!
- void print_total (const ACE_TCHAR *message,
- const int iterations = 1,
- ACE_HANDLE handle = ACE_STDOUT) const;
-
- /// Print average time.
- void print_ave (const ACE_TCHAR *message,
- const int iterations = 1,
- ACE_HANDLE handle = ACE_STDOUT) const;
-#endif /* !ACE_HAS_WINCE */
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /**
- * Get the current "time" as the high resolution counter at this time.
- * This is intended to be useful for supplying to a ACE_Timer_Queue
- * as the gettimeofday function, thereby basing the timer calculations
- * on the high res timer rather than wall clock time.
- */
- static ACE_Time_Value gettimeofday_hr (void);
-
- /**
- * @deprecated THIS FUNCTION IS DEPRECATED. PLEASE USE
- * <ACE_OS::gettimeofday> INSTEAD! Calls <ACE_High_Res_Timer::hrtime_to_tv>
- * passing <ACE_OS::gethrtime>. This function can be used to parameterize
- * objects such as <ACE_Timer_Queue::gettimeofday>. If
- * <global_scale_factor_> is not set, and we're on a platform that
- * requires <global_scale_factor_> (e.g., Win32),
- * ACE_OS::gettimeofday will be used instead of <ACE_OS::gethrtime>.
- * This allows applications on Intel to use <High_Res_Timer> even
- * when <global_scale_factor> is not set. However, setting the
- * <global_scale_factor_> appropriately will result in the finest
- * resolution possible.
- */
- static ACE_Time_Value gettimeofday (const ACE_OS::ACE_HRTimer_Op =
- ACE_OS::ACE_HRTIMER_GETTIME);
-
- /// Converts an <hrt> to <tv> using global_scale_factor_.
- static void hrtime_to_tv (ACE_Time_Value &tv,
- const ACE_hrtime_t hrt);
-
-#if defined (linux)
- /**
- * This is used to find out the Mhz of the machine for the scale
- * factor. If there are any problems getting it, we just return 1
- * (the default).
- */
- static ACE_UINT32 get_cpuinfo (void);
-#endif /* defined (linux) */
-
-private:
- /**
- * For internal use: gets the high-resolution time using
- * <ACE_OS::gethrtime>. Except on platforms that require that the
- * <global_scale_factor_> be set, such as ACE_WIN32, uses the
- * low-resolution clock if the <global_scale_factor_> has not been
- * set.
- */
- static ACE_hrtime_t gettime (const ACE_OS::ACE_HRTimer_Op =
- ACE_OS::ACE_HRTIMER_GETTIME);
-
- /// Starting time.
- ACE_hrtime_t start_;
-
- /// Ending time.
- ACE_hrtime_t end_;
-
- /// Total elapsed time.
- ACE_hrtime_t total_;
-
- /// Start time of incremental timing.
- ACE_hrtime_t start_incr_;
-
- /// Converts ticks to microseconds. That is, ticks /
- /// global_scale_factor_ == microseconds.
- static ACE_UINT32 global_scale_factor_;
-
- /**
- * Indicates the status of the global scale factor,
- * 0 = hasn't been set
- * 1 = been set
- * -1 = HR timer not supported
- */
- static int global_scale_factor_status_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/High_Res_Timer.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_HIGH_RES_TIMER_H */
diff --git a/ace/High_Res_Timer.i b/ace/High_Res_Timer.i
deleted file mode 100644
index 34c494dce16..00000000000
--- a/ace/High_Res_Timer.i
+++ /dev/null
@@ -1,158 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Be very carefull before changing the calculations inside
-// ACE_High_Res_Timer. The precision matters and we are using integer
-// calculations not floating point. Also look good at the emulated 64
-// bit int class (inside Basic_Types{h,i,cpp} before changing
-// anything. It's operator/ only returns 32 bits not 64 bits, among
-// other things.
-
-ACE_INLINE void
-ACE_High_Res_Timer::hrtime_to_tv (ACE_Time_Value &tv,
- const ACE_hrtime_t hrt)
-{
- // The following are based on the units of global_scale_factor_
- // being 1/microsecond. Therefore, dividing by it converts
- // clock ticks to microseconds.
- tv.sec ((long) (hrt / (ACE_UINT32) ACE_HR_SCALE_CONVERSION /
- global_scale_factor ()));
-
- // Calculate usec in a manner that's compatible with ACE_U_LongLong.
- // hrt = (tv.sec * ACE_ONE_SECOND_IN_USECS + tv.usec) * global_scale_factor_
- // tv.usec = hrt / global_scale_factor_ - tv.sec * ACE_ONE_SECOND_IN_USECS
- // That first term will be lossy, so factor out global_scale_factor_:
- // tv.usec = (hrt - tv.sec * ACE_ONE_SECOND_IN_USECS * global_scale_factor_)/
- // global_scale_factor
- ACE_hrtime_t tmp = tv.sec ();
- tmp *= ((ACE_UINT32) ACE_HR_SCALE_CONVERSION * global_scale_factor ());
-#if defined (ACE_WIN32)
- // Win32's scale factor is in ticks/msec, so multiply up to usec.
- ACE_hrtime_t subsec = hrt - tmp; // Remainder of ticks < 1sec
- ACE_UINT32 msec = (ACE_UINT32) (subsec / global_scale_factor ()); // #msec
- ACE_hrtime_t usec64 = subsec - (msec * global_scale_factor ());
-# if defined (ACE_LACKS_LONGLONG_T)
- ACE_UINT32 usec = usec64.lo();
-# else
- ACE_UINT32 usec = (ACE_UINT32) usec64;
-# endif // ACE_LACKS_LONGLONG_T
- // (tick * usec/msec) / tick/msec = usec
- usec = (usec * 1000) / (ACE_UINT32) global_scale_factor ();
- tv.usec ((msec * 1000) + usec);
-#else
- tv.usec ((long) ((hrt - tmp) / global_scale_factor ()));
-#endif
-}
-
-
-ACE_INLINE ACE_Time_Value
-ACE_High_Res_Timer::gettimeofday (const ACE_OS::ACE_HRTimer_Op op)
-{
-#if defined (ACE_WIN32)
- // Get the global scale factor if there isn't one yet.
- if (ACE_High_Res_Timer::global_scale_factor_status_ == 0)
- ACE_High_Res_Timer::global_scale_factor ();
-
- // If there isn't a high-res timer, use gettimeofday ();
- if (ACE_High_Res_Timer::global_scale_factor_status_ == -1)
- return ACE_OS::gettimeofday ();
-#endif /* ACE_WIN32 */
-
- ACE_Time_Value tv;
- ACE_High_Res_Timer::hrtime_to_tv (tv,
- ACE_OS::gethrtime (op));
- return tv;
-}
-
-
-// Get the current high res timer as the time of day. This is intended
-// to be used for a gettimeofday replacement in ACE_Timer_Queue and
-// derived classes so the timers will bebased on high res timers rather
-// than wall clock time. It uses the ACE_High_Res_Timer::gettimeofday
-// function, which is deprecated. If it gets removed, please move the
-// code down here, intact.
-ACE_INLINE ACE_Time_Value
-ACE_High_Res_Timer::gettimeofday_hr (void)
-{
- return ACE_High_Res_Timer::gettimeofday ();
-}
-
-
-ACE_INLINE ACE_hrtime_t
-ACE_High_Res_Timer::gettime (const ACE_OS::ACE_HRTimer_Op op)
-{
-#if defined (ACE_WIN32)
- // Get the global scale factor if there isn't one yet.
- if (ACE_High_Res_Timer::global_scale_factor_status_ == 0)
- ACE_High_Res_Timer::global_scale_factor ();
-
- // If there isn't a high-res timer, use gettimeofday ();
- if (ACE_High_Res_Timer::global_scale_factor_status_ == -1)
- {
- ACE_Time_Value tv = ACE_OS::gettimeofday ();
- // Return the time in microseconds because the global_scale_factor_
- // is 1.
- return tv.sec () * ACE_ONE_SECOND_IN_USECS + tv.usec ();
- }
-#endif /* ACE_WIN32 */
-
- return ACE_OS::gethrtime (op);
-}
-
-ACE_INLINE
-ACE_High_Res_Timer::~ACE_High_Res_Timer (void)
-{
-}
-
-ACE_INLINE void
-ACE_High_Res_Timer::start (const ACE_OS::ACE_HRTimer_Op op)
-{
- ACE_TRACE ("ACE_High_Res_Timer::start");
- this->start_ = ACE_High_Res_Timer::gettime (op);
-}
-
-ACE_INLINE void
-ACE_High_Res_Timer::stop (const ACE_OS::ACE_HRTimer_Op op)
-{
- ACE_TRACE ("ACE_High_Res_Timer::stop");
- this->end_ = ACE_High_Res_Timer::gettime (op);
-}
-
-ACE_INLINE void
-ACE_High_Res_Timer::start_incr (const ACE_OS::ACE_HRTimer_Op op)
-{
- ACE_TRACE ("ACE_High_Res_Timer::start_incr");
- this->start_incr_ = ACE_High_Res_Timer::gettime (op);
-}
-
-ACE_INLINE void
-ACE_High_Res_Timer::stop_incr (const ACE_OS::ACE_HRTimer_Op op)
-{
- ACE_TRACE ("ACE_High_Res_Timer::stop_incr");
- this->total_ += ACE_High_Res_Timer::gettime (op) - this->start_incr_;
-}
-
-ACE_INLINE void
-ACE_High_Res_Timer::elapsed_microseconds (ACE_hrtime_t &usecs) const
-{
-#if defined (ACE_WIN32)
- // Win32 scale factor is in msec
- // This could give overflow when measuring a long time with a
- // big global_scale_factor() (> 48 days with a 4Ghz tick freq.)
- // To be looked after in the future.
- usecs = (ACE_hrtime_t) (((this->end_ - this->start_) * 1000) /
- global_scale_factor ());
-#else
- usecs =
- (ACE_hrtime_t) ((this->end_ - this->start_) / global_scale_factor ());
-#endif
-
-
-
-}
-
-ACE_INLINE void
-ACE_High_Res_Timer::global_scale_factor (ACE_UINT32 gsf)
-{
- global_scale_factor_ = gsf;
-}
diff --git a/ace/INET_Addr.cpp b/ace/INET_Addr.cpp
deleted file mode 100644
index a95818359d7..00000000000
--- a/ace/INET_Addr.cpp
+++ /dev/null
@@ -1,944 +0,0 @@
-// $Id$
-
-// Defines the Internet domain address family address format.
-
-#include "ace/INET_Addr.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/INET_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID (ace,
- INET_Addr,
- "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_INET_Addr)
-
-// Transform the current address into string format.
-
-int
-ACE_INET_Addr::addr_to_string (ACE_TCHAR s[],
- size_t size,
- int ipaddr_format) const
-{
- ACE_TRACE ("ACE_INET_Addr::addr_to_string");
-
- // XXX Can we (should we) include the scope id for IPv6 addresses?
-
- size_t total_len = (ipaddr_format == 0 ?
- ACE_OS::strlen (this->get_host_name ()) :
- ACE_OS::strlen (this->get_host_addr ()))
- + ACE_OS::strlen ("65536") // Assume the max port number.
- + sizeof (':')
-#if defined ACE_HAS_IPV6
- + ACE_OS::strlen ("[]")
-#endif
- + sizeof ('\0'); // For trailing '\0'.
-
- if (size < total_len)
- return -1;
- else
- {
- ACE_OS::sprintf (s,
-#if defined ACE_HAS_IPV6
- ACE_LIB_TEXT ("[%s]:%d"),
-#else
- ACE_LIB_TEXT ("%s:%d"),
-#endif
- ACE_TEXT_CHAR_TO_TCHAR (ipaddr_format == 0
- ? this->get_host_name ()
- : this->get_host_addr ()),
- this->get_port_number ());
- return 0;
- }
-}
-
-void
-ACE_INET_Addr::dump (void) const
-{
- ACE_TRACE ("ACE_INET_Addr::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_TCHAR s[ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 16];
- this->addr_to_string(s, ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 16);
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("%s"), s));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Compare two addresses for inequality.
-
-int
-ACE_INET_Addr::operator != (const ACE_INET_Addr &sap) const
-{
- ACE_TRACE ("ACE_INET_Addr::operator !=");
- return !((*this) == sap);
-}
-
-// Compare two addresses for equality.
-
-int
-ACE_INET_Addr::operator == (const ACE_INET_Addr &sap) const
-{
- ACE_TRACE ("ACE_INET_Addr::operator ==");
-
- if (this->get_type () != sap.get_type () ||
- this->get_size () != sap.get_size () )
- return 0;
-
- return (ACE_OS::memcmp (&this->inet_addr_,
- &sap.inet_addr_,
- this->get_size ()) == 0);
-}
-
-ACE_INET_Addr::ACE_INET_Addr (void)
- : ACE_Addr (this->determine_type(), sizeof (inet_addr_))
-{
- // ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset();
-}
-
-int
-ACE_INET_Addr::set (const ACE_INET_Addr &sa)
-{
- ACE_TRACE ("ACE_INET_Addr::set");
-
- if (sa.get_type () == AF_ANY)
- // Ugh, this is really a base class, so don't copy it.
- ACE_OS::memset (&this->inet_addr_, 0, sizeof (this->inet_addr_));
- else
- // It's ok to make the copy.
- ACE_OS::memcpy (&this->inet_addr_, &sa.inet_addr_, sa.get_size ());
-
- return 0;
-}
-
-// Transform the string into the current addressing format.
-
-int
-ACE_INET_Addr::string_to_addr (const char s[])
-{
- ACE_TRACE ("ACE_INET_Addr::string_to_addr");
- int result;
- char *ip_addr;
-
- // Need to make a duplicate since we'll be overwriting the string.
- ACE_ALLOCATOR_RETURN (ip_addr,
- ACE_OS::strdup (s),
- -1);
- // We use strrchr because of IPv6 addresses.
- char *port_p = ACE_OS::strrchr (ip_addr, ':');
-
- if (port_p == 0) // Assume it's a port number.
- {
- char *endp = 0;
- u_short port = ACE_static_cast (u_short,
- ACE_OS_String::strtol (ip_addr, &endp, 10));
- if (port > 0 && *endp == '\0')
- result = this->set (port, ACE_UINT32 (INADDR_ANY));
- else // port name
- result = this->set (ip_addr, ACE_UINT32 (INADDR_ANY));
- }
- else
- {
- *port_p = '\0'; ++port_p; // skip over ':'
-
- char *endp = 0;
- u_short port = ACE_static_cast (u_short,
- ACE_OS_String::strtol (port_p, &endp, 10));
- if (port > 0 && *endp == '\0')
- result = this->set (port, ip_addr);
- else
- result = this->set (port_p, ip_addr);
- }
-
- ACE_OS::free (ACE_MALLOC_T (ip_addr));
- return result;
-}
-
-int
-ACE_INET_Addr::set (const char address[])
-{
- ACE_TRACE ("ACE_INET_Addr::set");
- return this->string_to_addr (address);
-}
-
-ACE_INET_Addr::ACE_INET_Addr (const char address[])
- : ACE_Addr (this->determine_type(), sizeof (inet_addr_))
-{
- ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset();
- this->set (address);
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INET_Addr::ACE_INET_Addr (const wchar_t address[])
- : ACE_Addr (this->determine_type(), sizeof (inet_addr_))
-{
- ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset();
- this->set (address);
-}
-
-#endif /* ACE_HAS_WCHAR */
-
-// Copy constructor.
-
-ACE_INET_Addr::ACE_INET_Addr (const ACE_INET_Addr &sa)
- : ACE_Addr (sa.get_type (), sa.get_size())
-{
- ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset();
- this->set (sa);
-}
-
-// Initializes a ACE_INET_Addr from a PORT_NUMBER and a 32 bit Internet
-// address.
-
-int
-ACE_INET_Addr::set (u_short port_number,
- ACE_UINT32 inet_address,
- int encode)
-{
- ACE_TRACE ("ACE_INET_Addr::set");
- this->set_address (ACE_reinterpret_cast (const char *, &inet_address),
- sizeof inet_address,
- encode);
- this->set_port_number (port_number, encode);
-
- return 0;
-}
-
-
-// Initializes a ACE_INET_Addr from a PORT_NUMBER and the remote
-// HOST_NAME.
-
-int
-ACE_INET_Addr::set (u_short port_number,
- const char host_name[],
- int encode,
- int address_family)
-{
- ACE_TRACE ("ACE_INET_Addr::set");
-
- // Yow, someone gave us a NULL host_name!
- if (host_name == 0)
- {
- errno = EINVAL;
- return -1;
- }
-
- ACE_OS_String::memset ((void *) &this->inet_addr_,
- 0,
- sizeof this->inet_addr_);
-
-#if defined (ACE_HAS_IPV6)
- struct addrinfo hints, *res, *res0;
- int error;
- ACE_OS_String::memset (&hints, 0, sizeof (hints));
-
- hints.ai_family = address_family;
-
- error = getaddrinfo (host_name, 0, &hints, &res0);
- if (error)
- return -1;
-
- int ret = -1;
- for (res = res0; res != 0; res = res->ai_next)
- {
- if (res->ai_family == AF_INET || res->ai_family == AF_INET6)
- {
- this->set_type (res->ai_family);
- this->set_addr (res->ai_addr, res->ai_addrlen);
- this->set_port_number (port_number, encode);
- ret = 0;
- break;
- }
- }
- freeaddrinfo (res0);
- return ret;
-
-#else /* ACE_HAS_IPV6 */
-
- // IPv6 not supported... insure the family is set to IPv4
- address_family = AF_INET;
- this->set_type (address_family);
- this->inet_addr_.in4_.sin_family = address_family;
- struct in_addr addrv4;
- if (ACE_OS::inet_aton (host_name,
- &addrv4) == 1)
- return this->set (port_number,
- encode ? ntohl (addrv4.s_addr) : addrv4.s_addr,
- encode);
- else
- {
-# if defined (VXWORKS) || defined (CHORUS)
- hostent *hp = ACE_OS::gethostbyname (host_name);
-# else
- hostent hentry;
- ACE_HOSTENT_DATA buf;
- int h_error; // Not the same as errno!
-
- hostent *hp = ACE_OS::gethostbyname_r (host_name, &hentry,
- buf, &h_error);
-# endif /* VXWORKS */
-
- if (hp == 0)
- {
- return -1;
- }
- else
- {
- (void) ACE_OS_String::memcpy ((void *) &addrv4.s_addr,
- hp->h_addr,
- hp->h_length);
- return this->set (port_number,
- encode ? ntohl (addrv4.s_addr) : addrv4.s_addr,
- encode);
- }
- }
-#endif /* ACE_HAS_IPV6 */
-}
-
-// Helper function to get a port number from a port name.
-
-static int get_port_number_from_name (const char port_name[],
- const char protocol[])
-{
- int port_number = 0;
-
- // Maybe port_name is directly a port number?
- char *endp = 0;
- port_number = ACE_static_cast (int,
- ACE_OS_String::strtol (port_name, &endp, 10));
- if (port_number > 0 && *endp == '\0')
- {
- // Ok, port_name was really a number, and nothing else. We
- // store that value as the port number. NOTE: this number must
- // be returned in network byte order!
- u_short n = ACE_static_cast (u_short, port_number);
- n = htons (n);
- return n;
- }
-
- // We try to resolve port number from its name.
-
-#if defined (VXWORKS) || defined (CHORUS) || defined (ACE_LACKS_GETSERVBYNAME)
- port_number = -1;
- ACE_UNUSED_ARG (port_name);
- ACE_UNUSED_ARG (protocol);
-#else
- port_number = 0;
- servent sentry;
- ACE_SERVENT_DATA buf;
- servent *sp = ACE_OS::getservbyname_r (port_name,
- protocol,
- &sentry,
- buf);
- if (sp != 0)
- port_number = sp->s_port;
-#endif /* VXWORKS */
-
- return port_number;
-}
-
-// Initializes a ACE_INET_Addr from a <port_name> and the remote
-// <host_name>.
-
-int
-ACE_INET_Addr::set (const char port_name[],
- const char host_name[],
- const char protocol[])
-{
- ACE_TRACE ("ACE_INET_Addr::set");
-
- int port_number = get_port_number_from_name (port_name, protocol);
- if (port_number < 0)
- {
- ACE_UNUSED_ARG (host_name);
- ACE_NOTSUP_RETURN (-1);
- }
-
- int address_family = PF_UNSPEC;
-# if defined (ACE_HAS_IPV6)
- if (ACE_OS_String::strcmp (protocol, ACE_LIB_TEXT ("tcp6")) == 0)
- address_family = AF_INET6;
-# endif /* ACE_HAS_IPV6 */
-
- return this->set (ACE_static_cast (u_short, port_number),
- host_name, 0, address_family);
-}
-
-// Initializes a ACE_INET_Addr from a <port_name> and a 32 bit
-// Internet address.
-
-int
-ACE_INET_Addr::set (const char port_name[],
- ACE_UINT32 inet_address,
- const char protocol[])
-{
- ACE_TRACE ("ACE_INET_Addr::set");
-
- int port_number = get_port_number_from_name (port_name, protocol);
- if (port_number < 0)
- {
- ACE_UNUSED_ARG (inet_address);
- ACE_NOTSUP_RETURN (-1);
- }
-
- return this->set (ACE_static_cast (u_short, port_number),
- inet_address, 0);
-}
-
-// Creates a ACE_INET_Addr from a PORT_NUMBER and the remote
-// HOST_NAME.
-
-ACE_INET_Addr::ACE_INET_Addr (u_short port_number,
- const char host_name[],
- int address_family)
- : ACE_Addr (this->determine_type(), sizeof (inet_addr_))
-{
- ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- ACE_OS::memset (&this->inet_addr_, 0, sizeof (this->inet_addr_));
- if (this->set (port_number,
- host_name,
- 1,
- address_family) == -1)
-#if defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS)
- ACE_ERROR ((LM_ERROR,
- (char *)"ACE_INET_Addr::ACE_INET_Addr: %p\n",
- (((char *) host_name == 0) ?
- ((char *) "<unknown>") :
- ((char *) (host_name)))));
-#else /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_INET_Addr::ACE_INET_Addr: %p\n"),
- ACE_TEXT_CHAR_TO_TCHAR ((host_name == 0) ?
- "<unknown>" : host_name)));
-#endif /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INET_Addr::ACE_INET_Addr (u_short port_number,
- const wchar_t host_name[],
- int address_family)
- : ACE_Addr (this->determine_type(), sizeof (inet_addr_))
-{
- ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- ACE_OS::memset (&this->inet_addr_, 0, sizeof (this->inet_addr_));
- if (this->set (port_number,
- host_name,
- 1,
- address_family) == -1)
-#if defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS)
- ACE_ERROR ((LM_ERROR,
- (char *)"ACE_INET_Addr::ACE_INET_Addr: %p\n",
- (((char *) host_name == 0) ?
- ((char *) "<unknown>") :
- ((char *) (host_name)))));
-#else /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_INET_Addr::ACE_INET_Addr: %p\n"),
- ACE_TEXT_WCHAR_TO_TCHAR ((host_name == 0) ?
- ACE_TEXT_WIDE ("<unknown>") :
- host_name)));
-#endif /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
-}
-#endif /* ACE_HAS_WCHAR */
-
-// Creates a ACE_INET_Addr from a sockaddr_in structure.
-
-int
-ACE_INET_Addr::set (const sockaddr_in *addr, int len)
-{
- ACE_TRACE ("ACE_INET_Addr::set");
-
- if (addr->sin_family == AF_INET)
- {
- ACE_OS::memcpy (&this->inet_addr_.in4_, addr, len);
- this->base_set (AF_INET, len);
- return 0;
- }
-#if defined (ACE_HAS_IPV6)
- else if (addr->sin_family == AF_INET6)
- {
- ACE_OS::memcpy (&this->inet_addr_.in6_, addr, len);
- this->base_set (AF_INET6, len);
- return 0;
- }
-#endif /* ACE_HAS_IPV6 */
-
- errno = EAFNOSUPPORT;
- return -1;
-}
-
-// Set a pointer to the address.
-void
-ACE_INET_Addr::set_addr (void *addr, int /* len */)
-{
- ACE_TRACE ("ACE_INET_Addr::set_addr");
- struct sockaddr_in *getfamily = ACE_static_cast (struct sockaddr_in *, addr);
-
- if (getfamily->sin_family == AF_INET)
- {
- this->set_port_number (getfamily->sin_port, 0);
- this->set_address (ACE_reinterpret_cast (const char*, &getfamily->sin_addr),
- sizeof (getfamily->sin_addr),
- 0);
- }
-#if defined ACE_HAS_IPV6
- else if (getfamily->sin_family == AF_INET6)
- {
- struct sockaddr_in6 *in6 = ACE_static_cast (struct sockaddr_in6*, addr);
- this->set_port_number (in6->sin6_port, 0);
- this->set_address (ACE_reinterpret_cast (const char*, &in6->sin6_addr),
- sizeof (in6->sin6_addr),
- 0);
- }
-#endif // ACE_HAS_IPV6
-}
-
-// Creates a ACE_INET_Addr from a sockaddr_in structure.
-
-ACE_INET_Addr::ACE_INET_Addr (const sockaddr_in *addr, int len)
- : ACE_Addr (this->determine_type(), sizeof (inet_addr_))
-{
- ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset();
- this->set (addr, len);
-}
-
-// Creates a ACE_INET_Addr from a PORT_NUMBER and an Internet address.
-
-ACE_INET_Addr::ACE_INET_Addr (u_short port_number,
- ACE_UINT32 inet_address)
- : ACE_Addr (this->determine_type(), sizeof (inet_addr_))
-{
- ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset();
- if (this->set (port_number, inet_address) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_INET_Addr::ACE_INET_Addr")));
-}
-
-// Creates a ACE_INET_Addr from a PORT_NAME and the remote
-// HOST_NAME.
-
-ACE_INET_Addr::ACE_INET_Addr (const char port_name[],
- const char host_name[],
- const char protocol[])
- : ACE_Addr (this->determine_type(), sizeof (inet_addr_))
-{
- ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset();
- if (this->set (port_name,
- host_name,
- protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_INET_Addr::ACE_INET_Addr")));
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INET_Addr::ACE_INET_Addr (const wchar_t port_name[],
- const wchar_t host_name[],
- const wchar_t protocol[])
- : ACE_Addr (this->determine_type(), sizeof (inet_addr_))
-{
- ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset();
- if (this->set (port_name,
- host_name,
- protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_INET_Addr::ACE_INET_Addr")));
-}
-#endif /* ACE_HAS_WCHAR */
-
-// Creates a ACE_INET_Addr from a PORT_NAME and an Internet address.
-
-ACE_INET_Addr::ACE_INET_Addr (const char port_name[],
- ACE_UINT32 inet_address,
- const char protocol[])
- : ACE_Addr (this->determine_type(), sizeof (inet_addr_))
-{
- ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset();
- if (this->set (port_name,
- inet_address,
- protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_INET_Addr::ACE_INET_Addr")));
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INET_Addr::ACE_INET_Addr (const wchar_t port_name[],
- ACE_UINT32 inet_address,
- const wchar_t protocol[])
- : ACE_Addr (this->determine_type(), sizeof (inet_addr_))
-{
- ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
- this->reset();
- if (this->set (port_name,
- inet_address,
- protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_INET_Addr::ACE_INET_Addr")));
-}
-#endif /* ACE_HAS_WCHAR */
-
-int
-ACE_INET_Addr::get_host_name (char hostname[],
- size_t len) const
-{
- ACE_TRACE ("ACE_INET_Addr::get_host_name");
-
- int result;
- if (len > 1)
- {
- result = get_host_name_i(hostname,len);
- if (result < 0)
- {
- if (result == -2)
- // We know that hostname is nul-terminated
- result = -1;
- else
- {
- //result == -1;
- // This could be worse than hostname[len -1] = '\0'?
- hostname[0] = '\0';
- }
- }
- }
- else
- {
- if (len == 1)
- hostname[0] = '\0';
- result = -1;
- }
-
- return result;
-}
-
-#if defined (ACE_HAS_WCHAR)
-int
-ACE_INET_Addr::get_host_name (wchar_t hostname[],
- size_t len) const
-{
- ACE_TRACE ("ACE_INET_Addr::get_host_name");
-
- char char_hostname [MAXHOSTNAMELEN + 1];
-
- // We have a build in limitation of MAXHOSTNAMELEN
- if (len > MAXHOSTNAMELEN + 1)
- len = MAXHOSTNAMELEN + 1;
-
- // Call the char version
- int result = this->get_host_name (char_hostname, len);
-
- // And copy it over, if successful
- if (result == 0)
- ACE_OS_String::strcpy (hostname,
- ACE_Ascii_To_Wide (char_hostname).wchar_rep ());
-
- return result;
-}
-#endif /* ACE_HAS_WCHAR */
-
-// Return the character representation of the hostname.
-
-const char *
-ACE_INET_Addr::get_host_name (void) const
-{
- ACE_TRACE ("ACE_INET_Addr::get_host_name");
-
- static char name[MAXHOSTNAMELEN + 1];
- if (this->get_host_name (name, MAXHOSTNAMELEN + 1) == -1)
- ACE_OS::strcpy (name, "<unknown>");
- return name;
-}
-
-void
-ACE_INET_Addr::set_port_number (u_short port_number,
- int encode)
-{
- ACE_TRACE ("ACE_INET_Addr::set_port_number");
-
- if (encode)
- port_number = htons (port_number);
-
-#if defined (ACE_HAS_IPV6)
- if (this->get_type () == AF_INET6)
- this->inet_addr_.in6_.sin6_port = port_number;
- else
-#endif /* ACE_HAS_IPV6 */
- this->inet_addr_.in4_.sin_port = port_number;
-}
-
-// returns -2 when the hostname is truncated
-int
-ACE_INET_Addr::get_host_name_i (char hostname[], size_t len) const
-{
- ACE_TRACE ("ACE_INET_Addr::get_host_name_i");
-
-#if defined (ACE_HAS_IPV6)
- if ((this->get_type () == PF_INET6 &&
- 0 == ACE_OS_String::memcmp (&this->inet_addr_.in6_.sin6_addr,
- &in6addr_any,
- sizeof (this->inet_addr_.in6_.sin6_addr)))
- ||
- (this->get_type () == PF_INET &&
- this->inet_addr_.in4_.sin_addr.s_addr == INADDR_ANY))
-#else
- if (this->inet_addr_.in4_.sin_addr.s_addr == INADDR_ANY)
-#endif /* ACE_HAS_IPV6 */
- {
- if (ACE_OS::hostname (hostname, len) == -1)
- return -1;
- else
- return 0;
- }
- else
- {
-#if defined (VXWORKS)
- ACE_UNUSED_ARG (len);
- int error =
- ::hostGetByAddr ((int) this->inet_addr_.in4_.sin_addr.s_addr,
- hostname);
- if (error == OK)
- return 0;
- else
- {
- errno = error;
- return -1;
- }
-#else
-# if defined (CHORUS) || (defined (DIGITAL_UNIX) && defined (__GNUC__))
- hostent *hp = ACE_OS::gethostbyaddr ((char *)this->ip_addr_pointer (),
- this->ip_addr_size (),
- this->get_type ());
-# else
- int h_error; // Not the same as errno!
- hostent hentry;
- ACE_HOSTENT_DATA buf;
- hostent *hp =
- ACE_OS::gethostbyaddr_r ((char *)this->ip_addr_pointer (),
- this->ip_addr_size (),
- this->get_type (),
- &hentry,
- buf,
- &h_error);
-# endif /* CHORUS */
-
- if (hp == 0 || hp->h_name == 0)
- return -1;
-
- if (ACE_OS::strlen (hp->h_name) >= len)
- {
- // We know the length, so use memcpy
- if (len > 0)
- {
- ACE_OS::memcpy (hostname, hp->h_name, len - 1);
- hostname[len-1]= '\0';
- }
- errno = ENOSPC;
- return -2; // -2 Means that we have a good string
- // Using errno looks ok, but ENOSPC could be set on
- // other places.
- }
-
- ACE_OS::strcpy (hostname, hp->h_name);
- return 0;
-#endif /* VXWORKS */
- }
-}
-
-int ACE_INET_Addr::set_address (const char *ip_addr,
- int len,
- int encode /* = 1 */)
-{
- ACE_TRACE ("ACE_INET_Addr::set_address");
- // This is really intended for IPv4. If the object is IPv4, or the type
- // hasn't been set but it's a 4-byte address, go ahead. If this is an
- // IPv6 object and <encode> is requested, refuse.
- if (encode && len != 4)
- {
- errno = EAFNOSUPPORT;
- return -1;
- }
-
- if (len == 4)
- {
- ACE_UINT32 ip4 = *ACE_reinterpret_cast (const ACE_UINT32 *, ip_addr);
- if (encode)
- ip4 = ACE_HTONL (ip4);
-
-
- if (this->get_type () == AF_INET) {
- this->base_set (AF_INET, sizeof (this->inet_addr_.in4_));
- this->inet_addr_.in4_.sin_family = AF_INET;
- this->set_size (sizeof (this->inet_addr_.in4_));
- ACE_OS_String::memcpy (&this->inet_addr_.in4_.sin_addr,
- &ip4,
- len);
- }
-#if defined (ACE_HAS_IPV6)
- // If given an IPv4 address to copy to an IPv6 object, map it to
- // an IPv4-mapped IPv6 address.
- else
- {
- this->base_set (AF_INET6, sizeof (this->inet_addr_.in6_));
- this->inet_addr_.in6_.sin6_family = AF_INET6;
- this->set_size (sizeof (this->inet_addr_.in6_));
- if (ip4 == INADDR_ANY)
- {
- in6_addr ip6 = in6addr_any;
- ACE_OS_String::memcpy (&this->inet_addr_.in6_.sin6_addr,
- &ip6,
- sizeof (ip6));
- return 0;
- }
- if (ip4 == INADDR_LOOPBACK)
- {
- in6_addr ip6 = in6addr_loopback;
- ACE_OS_String::memcpy (&this->inet_addr_.in6_.sin6_addr,
- &ip6,
- sizeof (ip6));
- return 0;
- }
-
- // Build up a 128 bit address. An IPv4-mapped IPv6 address
- // is defined as 0:0:0:0:0:ffff:IPv4_address. This is defined
- // in RFC 1884 */
- struct {
- ACE_UINT16 prefix[5];
- ACE_UINT16 ffff;
- ACE_UINT32 addr;
- } newaddress = {
- { 0,0,0,0,0 },
- 0xffff,
- ip4
- };
-
- ACE_OS_String::memcpy (&this->inet_addr_.in6_.sin6_addr,
- &newaddress,
- sizeof (newaddress));
- }
-#endif /* ACE_HAS_IPV6 */
-
- return 0;
- } /* end if (len == 4) */
-#if defined (ACE_HAS_IPV6)
- else if (len == 16)
- {
- if (this->get_type () != PF_INET6)
- {
- errno = EAFNOSUPPORT;
- return -1;
- }
- // We protect ourselves up above so IPv6 must be possible here.
- this->base_set (AF_INET6, sizeof (this->inet_addr_.in6_));
- this->inet_addr_.in6_.sin6_family = AF_INET6;
- ACE_OS_String::memcpy (&this->inet_addr_.in6_.sin6_addr, ip_addr, len);
-
- return 0;
- } /* end len == 16 */
- else
- {
- /* unknown or unsupported address length */
- errno = EAFNOSUPPORT;
- return -1;
- }
-
-#endif /* ACE_HAS_IPV6 */
-
- // Here with an unrecognized length.
- errno = EAFNOSUPPORT;
- return -1;
-
-}
-
-
-const char *
-ACE_INET_Addr::get_host_addr (char *dst, int size) const
-{
-#if defined (ACE_HAS_IPV6)
- if (this->get_type () == AF_INET6)
- {
- if (IN6_IS_ADDR_V4MAPPED (&this->inet_addr_.in6_.sin6_addr))
- {
- ACE_UINT32 addr;
- addr = this->get_ip_address();
- addr = ACE_HTONL (addr);
- return ACE_OS::inet_ntop (AF_INET, &addr, dst, size);
- }
-
- const char *ch = ACE_OS::inet_ntop (AF_INET6,
- &this->inet_addr_.in6_.sin6_addr,
- dst,
- size);
- return ch;
- }
-#endif /* ACE_HAS_IPV6 */
-
-#if defined (VXWORKS)
- ACE_UNUSED_ARG (dst);
- ACE_UNUSED_ARG (size);
-
- // It would be nice to be able to encapsulate this into
- // ACE_OS::inet_ntoa(), but that would lead to either inefficiencies
- // on vxworks or lack of thread safety.
- //
- // So, we use the way that vxworks suggests.
- ACE_INET_Addr *ncthis = ACE_const_cast (ACE_INET_Addr *, this);
- inet_ntoa_b (this->inet_addr_.in4_.sin_addr, ncthis->buf_);
- return &buf_[0];
-#else /* VXWORKS */
- char *ch = ACE_OS::inet_ntoa (this->inet_addr_.in4_.sin_addr);
- ACE_OS::strsncpy (dst, ch, size);
- return ch;
-#endif
-}
-
-// Return the dotted Internet address.
-const char *
-ACE_INET_Addr::get_host_addr (void) const
-{
- ACE_TRACE ("ACE_INET_Addr::get_host_addr");
-#if defined (ACE_HAS_IPV6)
- static char buf[INET6_ADDRSTRLEN];
- return this->get_host_addr (buf, INET6_ADDRSTRLEN);
-#else
- return ACE_OS::inet_ntoa (this->inet_addr_.in4_.sin_addr);
-#endif
-}
-
-// Return the 4-byte IP address, converting it into host byte order.
-
-ACE_UINT32
-ACE_INET_Addr::get_ip_address (void) const
-{
- ACE_TRACE ("ACE_INET_Addr::get_ip_address");
-#if defined (ACE_HAS_IPV6)
- if (this->get_type () == AF_INET6)
- {
- if (IN6_IS_ADDR_V4MAPPED (&this->inet_addr_.in6_.sin6_addr) ||
- IN6_IS_ADDR_V4COMPAT (&this->inet_addr_.in6_.sin6_addr) )
- {
- ACE_UINT32 addr;
- // Return the last 32 bits of the address
- char *thisaddrptr = (char*)this->ip_addr_pointer ();
- thisaddrptr += 128/8 - 32/8;
- ACE_OS_String::memcpy (&addr, thisaddrptr, sizeof (addr));
- return ACE_NTOHL (addr);
- }
-
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_INET_Addr::get_ip_address: address is a IPv6 address not IPv4\n")));
- errno = EAFNOSUPPORT;
- return 0;
- }
-#endif /* ACE_HAS_IPV6 */
- return ntohl (ACE_UINT32 (this->inet_addr_.in4_.sin_addr.s_addr));
-}
diff --git a/ace/INET_Addr.h b/ace/INET_Addr.h
deleted file mode 100644
index 9f2d7c9496b..00000000000
--- a/ace/INET_Addr.h
+++ /dev/null
@@ -1,332 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file INET_Addr.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_INET_ADDR_H
-#define ACE_INET_ADDR_H
-#include "ace/pre.h"
-
-#include "ace/Sock_Connect.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Addr.h"
-
-#if defined(VXWORKS)
-# include /**/ "inetLib.h"
-#endif /* VXWORKS */
-
-/**
- * @class ACE_INET_Addr
- *
- * @brief Defines a C++ wrapper facade for the Internet domain address
- * family format.
- */
-class ACE_Export ACE_INET_Addr : public ACE_Addr
-{
-public:
- // = Initialization methods.
-
- /// Default constructor.
- ACE_INET_Addr (void);
-
- /// Copy constructor.
- ACE_INET_Addr (const ACE_INET_Addr &);
-
- /// Creates an <ACE_INET_Addr> from a sockaddr_in structure.
- ACE_INET_Addr (const sockaddr_in *, int len);
-
- /// Creates an <ACE_INET_Addr> from a <port_number> and the remote
- /// <host_name>. The port number is assumed to be in host byte order.
- /// To set a port already in network byte order, please @see set().
- /// Use address_family to select IPv6 (PF_INET6) vs. IPv4 (PF_INET).
- ACE_INET_Addr (u_short port_number,
- const char host_name[],
- int address_family = AF_UNSPEC);
-
- /**
- * Initializes an <ACE_INET_Addr> from the <address>, which can be
- * "ip-number:port-number" (e.g., "tango.cs.wustl.edu:1234" or
- * "128.252.166.57:1234"). If there is no ':' in the <address> it
- * is assumed to be a port number, with the IP address being
- * INADDR_ANY.
- */
- ACE_EXPLICIT ACE_INET_Addr (const char address[]);
-
- /**
- * Creates an <ACE_INET_Addr> from a <port_number> and an Internet
- * <ip_addr>. This method assumes that <port_number> and <ip_addr>
- * are in host byte order. If you have addressing information in
- * network byte order, @see set().
- */
- ACE_INET_Addr (u_short port_number,
- ACE_UINT32 ip_addr = INADDR_ANY);
-
- /// Uses <getservbyname> to create an <ACE_INET_Addr> from a
- /// <port_name>, the remote <host_name>, and the <protocol>.
- ACE_INET_Addr (const char port_name[],
- const char host_name[],
- const char protocol[] = "tcp");
-
- /**
- * Uses <getservbyname> to create an <ACE_INET_Addr> from a
- * <port_name>, an Internet <ip_addr>, and the <protocol>. This
- * method assumes that <ip_addr> is in host byte order.
- */
- ACE_INET_Addr (const char port_name[],
- ACE_UINT32 ip_addr,
- const char protocol[] = "tcp");
-
-#if defined (ACE_HAS_WCHAR)
- ACE_INET_Addr (u_short port_number,
- const wchar_t host_name[],
- int address_family = AF_UNSPEC);
-
- ACE_EXPLICIT ACE_INET_Addr (const wchar_t address[]);
-
- ACE_INET_Addr (const wchar_t port_name[],
- const wchar_t host_name[],
- const wchar_t protocol[] = ACE_TEXT_WIDE ("tcp"));
-
- ACE_INET_Addr (const wchar_t port_name[],
- ACE_UINT32 ip_addr,
- const wchar_t protocol[] = ACE_TEXT_WIDE ("tcp"));
-#endif /* ACE_HAS_WCHAR */
-
- /// Default dtor.
- ~ACE_INET_Addr (void);
-
- // = Direct initialization methods.
-
- // These methods are useful after the object has been constructed.
-
- /// Initializes from another <ACE_INET_Addr>.
- int set (const ACE_INET_Addr &);
-
- /**
- * Initializes an <ACE_INET_Addr> from a <port_number> and the
- * remote <host_name>. If <encode> is non-zero then <port_number> is
- * converted into network byte order, otherwise it is assumed to be
- * in network byte order already and are passed straight through.
- * address_family can be used to select IPv4/IPv6 if the OS has
- * IPv6 capability (ACE_HAS_IPV6 is defined). To specify IPv6, use
- * the value AF_INET6. To specify IPv4, use AF_INET.
- */
- int set (u_short port_number,
- const char host_name[],
- int encode = 1,
- int address_family = AF_UNSPEC);
-
- /**
- * Initializes an <ACE_INET_Addr> from a @a port_number and an Internet
- * @a ip_addr. If @a encode is non-zero then the port number and IP address
- * are converted into network byte order, otherwise they are assumed to be
- * in network byte order already and are passed straight through.
- */
- int set (u_short port_number,
- ACE_UINT32 ip_addr = INADDR_ANY,
- int encode = 1);
-
- /// Uses <getservbyname> to initialize an <ACE_INET_Addr> from a
- /// <port_name>, the remote <host_name>, and the <protocol>.
- int set (const char port_name[],
- const char host_name[],
- const char protocol[] = "tcp");
-
- /**
- * Uses <getservbyname> to initialize an <ACE_INET_Addr> from a
- * <port_name>, an <ip_addr>, and the <protocol>. This assumes that
- * <ip_addr> is already in network byte order.
- */
- int set (const char port_name[],
- ACE_UINT32 ip_addr,
- const char protocol[] = "tcp");
-
- /**
- * Initializes an <ACE_INET_Addr> from the <addr>, which can be
- * "ip-number:port-number" (e.g., "tango.cs.wustl.edu:1234" or
- * "128.252.166.57:1234"). If there is no ':' in the <address> it
- * is assumed to be a port number, with the IP address being
- * INADDR_ANY.
- */
- int set (const char addr[]);
-
- /// Creates an <ACE_INET_Addr> from a sockaddr_in structure.
- int set (const sockaddr_in *,
- int len);
-
-#if defined (ACE_HAS_WCHAR)
- int set (u_short port_number,
- const wchar_t host_name[],
- int encode = 1,
- int address_family = AF_UNSPEC);
-
- int set (const wchar_t port_name[],
- const wchar_t host_name[],
- const wchar_t protocol[] = ACE_TEXT_WIDE ("tcp"));
-
- int set (const wchar_t port_name[],
- ACE_UINT32 ip_addr,
- const wchar_t protocol[] = ACE_TEXT_WIDE ("tcp"));
-
- int set (const wchar_t addr[]);
-#endif /* ACE_HAS_WCHAR */
-
- /// Return a pointer to the underlying network address.
- virtual void *get_addr (void) const;
- int get_addr_size(void) const;
-
- /// Set a pointer to the address.
- virtual void set_addr (void *, int len);
-
- /**
- * Transform the current <ACE_INET_Addr> address into string format.
- * If <ipaddr_format> is non-0 this produces "ip-number:port-number"
- * (e.g., "128.252.166.57:1234"), whereas if <ipaddr_format> is 0
- * this produces "ip-name:port-number" (e.g.,
- * "tango.cs.wustl.edu:1234"). Returns -1 if the <size> of the
- * <buffer> is too small, else 0.
- */
- virtual int addr_to_string (ACE_TCHAR buffer[],
- size_t size,
- int ipaddr_format = 1) const;
-
- /**
- * Initializes an <ACE_INET_Addr> from the <address>, which can be
- * "ip-addr:port-number" (e.g., "tango.cs.wustl.edu:1234"),
- * "ip-addr:port-name" (e.g., "tango.cs.wustl.edu:telnet"),
- * "ip-number:port-number" (e.g., "128.252.166.57:1234"), or
- * "ip-number:port-name" (e.g., "128.252.166.57:telnet"). If there
- * is no ':' in the <address> it is assumed to be a port number,
- * with the IP address being INADDR_ANY.
- */
- virtual int string_to_addr (const char address[]);
-
-#if defined (ACE_HAS_WCHAR)
- /*
- virtual int string_to_addr (const char address[]);
- */
-#endif /* ACE_HAS_WCHAR */
-
- /**
- * Sets the port number without affecting the host name. If
- * <encode> is enabled then <port_number> is converted into network
- * byte order, otherwise it is assumed to be in network byte order
- * already and are passed straight through.
- */
- void set_port_number (u_short,
- int encode = 1);
-
- /**
- * Sets the address without affecting the port number. If
- * <encode> is enabled then <ip_addr> is converted into network
- * byte order, otherwise it is assumed to be in network byte order
- * already and are passed straight through. The size of the address
- * is specified in the <len> parameter.
- */
- int set_address (const char *ip_addr,
- int len,
- int encode = 1);
-
- /// Return the port number, converting it into host byte-order.
- u_short get_port_number (void) const;
-
- /**
- * Return the character representation of the name of the host,
- * storing it in the <hostname> (which is assumed to be
- * <hostnamelen> bytes long). This version is reentrant. If
- * <hostnamelen> is greater than 0 then <hostname> will be
- * NUL-terminated even if -1 is returned.
- */
- int get_host_name (char hostname[],
- size_t hostnamelen) const;
-
-#if defined (ACE_HAS_WCHAR)
- int get_host_name (wchar_t hostname[],
- size_t hostnamelen) const;
-#endif /* ACE_HAS_WCHAR */
-
- /**
- * Return the character representation of the hostname (this version
- * is non-reentrant since it returns a pointer to a static data
- * area).
- */
- const char *get_host_name (void) const;
-
- /// Return the "dotted decimal" Internet address.
- const char *get_host_addr (void) const;
- const char *get_host_addr (char *dst, int size) const;
-
- /// Return the 4-byte IP address, converting it into host byte
- /// order.
- ACE_UINT32 get_ip_address (void) const;
-
- /**
- * Returns true if <this> is less than <rhs>. In this context,
- * "less than" is defined in terms of IP address and TCP port
- * number. This operator makes it possible to use <ACE_INET_Addr>s
- * in STL maps.
- */
- int operator < (const ACE_INET_Addr &rhs) const;
-
- /// Compare two addresses for equality. The addresses are considered
- /// equal if they contain the same IP address and port number.
- int operator == (const ACE_INET_Addr &SAP) const;
-
- /// Compare two addresses for inequality.
- int operator != (const ACE_INET_Addr &SAP) const;
-
- /// Computes and returns hash value.
- virtual u_long hash (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Insure that @a hostname is properly null-terminated.
- int get_host_name_i (char hostname[], size_t hostnamelen) const;
-
- // Methods to gain access to the actual address of
- // the underlying internet address structure.
- void *ip_addr_pointer (void) const;
- int ip_addr_size (void) const;
- int determine_type (void) const;
-
- /// Initialize underlying inet_addr_ to default values
- void reset (void);
-
- /// Underlying representation.
- /// This union uses the knowledge that the two structures share the
- /// first member, sa_family (as all sockaddr structures do).
- union
- {
- sockaddr_in in4_;
-#if defined (ACE_HAS_IPV6)
- sockaddr_in6 in6_;
-#endif /* ACE_HAS_IPV6 */
- } inet_addr_;
-
-#if defined (VXWORKS)
- char buf_[INET_ADDR_LEN];
-#endif
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/INET_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_INET_ADDR_H */
diff --git a/ace/INET_Addr.i b/ace/INET_Addr.i
deleted file mode 100644
index f6961b0c6e9..00000000000
--- a/ace/INET_Addr.i
+++ /dev/null
@@ -1,177 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// INET_Addr.i
-
-// Default dtor.
-ACE_INLINE
-ACE_INET_Addr::~ACE_INET_Addr (void)
-{
-}
-
-ACE_INLINE void
-ACE_INET_Addr::reset (void)
-{
- ACE_OS::memset(&this->inet_addr_, 0, sizeof(this->inet_addr_));
- if (this->get_type() == AF_INET) {
- this->inet_addr_.in4_.sin_family = AF_INET;
- }
-#if defined (ACE_HAS_IPV6)
- else if (this->get_type() == AF_INET6) {
- this->inet_addr_.in6_.sin6_family = AF_INET6;
- }
-#endif /* ACE_HAS_IPV6 */
-}
-
-ACE_INLINE int
-ACE_INET_Addr::determine_type (void) const
-{
-#if defined (ACE_HAS_IPV6)
-# if defined (ACE_USES_IPV4_IPV6_MIGRATION)
- return ACE_Sock_Connect::ipv6_enabled () ? AF_INET6 : AF_INET;
-# else
- return AF_INET6;
-# endif /* ACE_USES_IPV4_IPV6_MIGRATION */
-#endif /* ACE_HAS_IPV6 */
- return AF_INET;
-}
-
-ACE_INLINE void *
-ACE_INET_Addr::ip_addr_pointer (void) const
-{
-#if defined (ACE_HAS_IPV6)
- if (this->get_type () == PF_INET)
- return (void*)&this->inet_addr_.in4_.sin_addr;
- else
- return (void*)&this->inet_addr_.in6_.sin6_addr;
-#else
- return (void*)&this->inet_addr_.in4_.sin_addr;
-#endif
-}
-
-ACE_INLINE int
-ACE_INET_Addr::ip_addr_size (void) const
-{
- // Since this size value is used to pass to other host db-type
- // functions (gethostbyaddr, etc.) the length is of int type.
- // Thus, cast all these sizes back to int. They're all well
- // within the range of an int anyway.
-#if defined (ACE_HAS_IPV6)
- if (this->get_type () == PF_INET)
- return ACE_static_cast (int, sizeof this->inet_addr_.in4_.sin_addr);
- else
- return ACE_static_cast (int, sizeof this->inet_addr_.in6_.sin6_addr);
-#else
- // These _UNICOS changes were picked up from pre-IPv6 code in
- // get_host_name_i... the IPv6 section above may need something
- // similar, so keep an eye out for it.
-# if !defined(_UNICOS)
- return ACE_static_cast (int, sizeof this->inet_addr_.in4_.sin_addr.s_addr);
-# else /* _UNICOS */
- return ACE_static_cast (int, sizeof this->inet_addr_.in4_.sin_addr);
-# endif /* ! _UNICOS */
-#endif /* ACE_HAS_IPV6 */
-}
-
-// Return the port number, converting it into host byte order...
-
-ACE_INLINE u_short
-ACE_INET_Addr::get_port_number (void) const
-{
- ACE_TRACE ("ACE_INET_Addr::get_port_number");
-#if defined (ACE_HAS_IPV6)
- if (this->get_type () == PF_INET)
- return ntohs (this->inet_addr_.in4_.sin_port);
- else
- return ntohs (this->inet_addr_.in6_.sin6_port);
-#else
- return ntohs (this->inet_addr_.in4_.sin_port);
-#endif /* ACE_HAS_IPV6 */
-}
-
-// Return the address.
-
-ACE_INLINE void *
-ACE_INET_Addr::get_addr (void) const
-{
- ACE_TRACE ("ACE_INET_Addr::get_addr");
- return (void*)&this->inet_addr_;
-}
-
-ACE_INLINE int
-ACE_INET_Addr::get_addr_size (void) const
-{
- ACE_TRACE ("ACE_INET_Addr::get_addr_size");
-#if defined (ACE_HAS_IPV6)
- if (this->get_type () == PF_INET)
- return sizeof this->inet_addr_.in4_;
- else
- return sizeof this->inet_addr_.in6_;
-#else
- return sizeof this->inet_addr_.in4_;
-#endif /* ACE_HAS_IPV6 */
-}
-
-
-ACE_INLINE u_long
-ACE_INET_Addr::hash (void) const
-{
-#if defined (ACE_HAS_IPV6)
- if (this->get_type () == PF_INET6)
- {
- const unsigned int *addr = (const unsigned int*)this->ip_addr_pointer();
- return addr[0] + addr[1] + addr[2] + addr[3] + this->get_port_number();
- }
- else
-#endif /* ACE_HAS_IPV6 */
- return this->get_ip_address () + this->get_port_number ();
-}
-
-ACE_INLINE int
-ACE_INET_Addr::operator < (const ACE_INET_Addr &rhs) const
-{
- return this->get_ip_address () < rhs.get_ip_address ()
- || (this->get_ip_address () == rhs.get_ip_address ()
- && this->get_port_number () < rhs.get_port_number ());
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_INET_Addr::set (u_short port_number,
- const wchar_t host_name[],
- int encode,
- int address_family)
-{
- return this->set (port_number,
- ACE_Wide_To_Ascii (host_name).char_rep (),
- encode,
- address_family);
-}
-
-ACE_INLINE int
-ACE_INET_Addr::set (const wchar_t port_name[],
- const wchar_t host_name[],
- const wchar_t protocol[])
-{
- return this->set (ACE_Wide_To_Ascii (port_name).char_rep (),
- ACE_Wide_To_Ascii (host_name).char_rep (),
- ACE_Wide_To_Ascii (protocol).char_rep ());
-}
-
-ACE_INLINE int
-ACE_INET_Addr::set (const wchar_t port_name[],
- ACE_UINT32 ip_addr,
- const wchar_t protocol[])
-{
- return this->set (ACE_Wide_To_Ascii (port_name).char_rep (),
- ip_addr,
- ACE_Wide_To_Ascii (protocol).char_rep ());
-}
-
-ACE_INLINE int
-ACE_INET_Addr::set (const wchar_t addr[])
-{
- return this->set (ACE_Wide_To_Ascii (addr).char_rep ());
-}
-
-#endif /* ACE_HAS_WCHAR */
diff --git a/ace/IOStream.cpp b/ace/IOStream.cpp
deleted file mode 100644
index 6e6f3d59063..00000000000
--- a/ace/IOStream.cpp
+++ /dev/null
@@ -1,658 +0,0 @@
-// $Id$
-
-#if !defined (ACE_IOSTREAM_C)
-#define ACE_IOSTREAM_C
-
-#include "ace/IOStream.h"
-
-ACE_RCSID(ace, IOStream, "$Id$")
-
-#if !defined (ACE_LACKS_ACE_IOSTREAM)
-
-///////////////////////////////////////////////////////////////////////////
-
-/* Here's a simple example of how iostream's non-virtual operators can
- get you in a mess:
-
- class myiostream : public iostream
- {
- public:
- myiostream& operator>> (String & s)
- {
- ...
- }
- };
-
- ...
-
- int i;
- String s;
- myiostream foo (...);
-
- foo >> s;
- // OK
- // invokes myiostream::operator>> (String&) returning myiostream&
-
- foo >> i;
- // OK
- // invokes iostream::operator>> (int&) returning iostream&
-
- foo >> i >> s;
- // BAD
- // invokes iostream::operator>> (int&) then iostream::operator>> (String&)
- //
- // What has happened is that the first >> is invoked on the base class and returns
- // a reference to iostream. The second >> has no idea of the ACE_IOStream and
- // gets invoked on iostream. Probably NOT what you wanted!
-
-
- // In order to make all of this work the way you want, you have to do this:
-
- class myiostream : public iostream
- {
- public:
- myiostream& operator>> (int & i)
- {
- return ((myiostream&)iostream::operator>> (i));
- }
-
- myiostream& operator>> (String & s)
- {
- ...
- }
- };
-
- ...
-
- int i;
- String s;
- myiostream foo (...);
-
- foo >> s;
- // OK
- // invokes myiostream::operator>> (String&) returning myiostream&
-
- foo >> i;
- // OK
- // invokes myiostream::operator>> (int&) returning myiostream&
-
-
- foo >> i >> s;
- // OK
- // Because you provided operator>> (int&) in class myiostream, that
- // function will be invoked by the first >>. Since it returns
- // a myiostream&, the second >> will be invoked as desired. */
-
-ACE_HANDLE
-ACE_Streambuf::get_handle (void)
-{
- return 0;
-}
-
-ACE_Time_Value *
-ACE_Streambuf::recv_timeout (ACE_Time_Value *tv)
-{
- ACE_Time_Value * rval = recv_timeout_;
- if (tv)
- {
- recv_timeout_value_ = *tv;
- recv_timeout_ = &recv_timeout_value_;
- }
- else
- recv_timeout_ = 0;
-
- return rval;
-}
-
-int
-ACE_Streambuf::underflow (void)
-{
- // If input mode is not set, any attempt to read from the stream is
- // a failure.
-
- if (ACE_BIT_DISABLED (mode_, ios::in))
- return EOF;
-
- // If base () is empty then this is the first time any get/put
- // operation has been attempted on the stream.
-
- if (!this->base ())
- {
- // Set base () to use our private read buffer. The arguments are:
- // beginning of the buffer (base ())
- // one-beyond the end of the buffer (ebase ())
- // should base () be deleted on destruction
- //
- // We have to say "no" to the third parameter because we want to
- // explicitly handle deletion of the TWO buffers at destruction.
-
- setb (this->eback_saved_,
- this->eback_saved_ + streambuf_size_, 0);
-
- // Remember that we are now in getMode. This will help us if
- // we're called prior to a mode change as well as helping us
- // when the mode does change.
- this->cur_mode_ = this->get_mode_;
- // Using the new values for base (), initialize the get area.
- // This simply sets eback (), gptr () and egptr () described
- // earlier.
- setg (base (), base (), base ());
-
- // Set the put buffer such that puts will be disabled. Any
- // attempt to put data will now cause overflow to be invoked.
- setp (0, 0);
- }
- else // base () has been initialized already...
- {
- // If we are in put_mode_ now, then it is time to switch to get_mode_
- //
- // 1. get rid of any pending output
- // 2. rearrange base () to use our half of the buffer
- // 3. reset the mode
- //
- if (this->cur_mode_ == this->put_mode_)
- {
- // Dump any pending output to the peer. This is not really
- // necessary because of the dual-buffer arrangement we've
- // set up but intuitively it makes sense to send the pending
- // data before we request data since the peer will probably
- // need what we're sending before it can respond.
- if (out_waiting () && syncout () == EOF)
- return EOF;
-
- if( ! pbase() )
- {
- delete [] pbase_saved_;
- (void) reset_put_buffer();
- }
- else
- {
- // We're about to disable put mode but before we do
- // that, we want to preserve it's state.
- this->pbase_saved_ = pbase ();
- this->pptr_saved_ = pptr ();
- this->epptr_saved_ = epptr ();
- }
-
- // Disable put mode as described in the constructor.
- setp (0, 0);
-
- // Like the case where base () is false, we now point base
- // () to use our private get buffer.
- setb (this->eback_saved_,
- this->eback_saved_ + streambuf_size_,
- 0);
-
- // And restore the previous state of the get pointers.
-
- setg (this->eback_saved_, this->gptr_saved_,
- this->egptr_saved_);
-
- // Finally, set our mode so that we don't get back into this
- // if () and so that overflow can operate correctly.
- cur_mode_ = get_mode_;
- }
-
- // There could be data in the input buffer if we switched to put
- // mode before reading everything. In that case, we take this
- // opportunity to feed it back to the iostream.
- if (in_avail ())
- // Remember that we return an int so that we can give back
- // EOF. The explicit cast prevents us from returning a signed
- // char when we're not returning EOF.
- return (u_char) *gptr ();
- }
-
- // We really shouldn't be here unless there is a lack of data in the
- // read buffer. So... go get some more data from the peer.
-
- int result = fillbuf ();
-
- // Fillbuf will give us EOF if there was an error with the peer. In
- // that case, we can do no more input.
-
- if (EOF == result)
- {
- // Disable ourselves and return failure to the iostream. That
- // should result in a call to have oursleves closed.
- setg (0, 0, 0);
- return EOF;
- }
-
- // Return the next available character in the input buffer. Again,
- // we protect against sign extension.
-
- return (u_char) *gptr ();
-}
-
-// Much of this is similar to underflow. I'll just hit the highlights
-// rather than repeating a lot of what you've already seen.
-
-int
-ACE_Streambuf::overflow (int c)
-{
- // Check to see if output is allowed at all.
- if (! (mode_ & ios::out))
- return EOF;
-
- if (!base ())
- {
- // Set base () to use put's private buffer.
- //
- setb (this->pbase_saved_,
- this->pbase_saved_ + streambuf_size_, 0);
-
- // Set the mode for optimization.
- this->cur_mode_ = this->put_mode_;
- // Set the put area using the new base () values.
- setp (base (), ebuf ());
-
- // Disable the get area.
- setg (0, 0, 0);
- }
- else // We're already reading or writing
- {
- // If we're coming out of get mode...
- if (this->cur_mode_ == this->get_mode_)
- {
- // --> JCEJ 6/6/98
- if (! eback())
- {
- /* Something has happened to cause the streambuf
- to get rid of our get area.
- We could probably do this a bit cleaner but
- this method is sure to cleanup the bits and
- pieces.
- */
- delete [] eback_saved_;
- (void) reset_get_buffer();
- }
- else
- {
- // Save the current get mode values
- this->eback_saved_ = eback ();
- this->gptr_saved_ = gptr ();
- this->egptr_saved_ = egptr ();
- }
- // <-- JCEJ 6/6/98
-
- // then disable the get buffer
- setg (0, 0, 0);
-
- // Reconfigure base () and restore the put pointers.
- setb (pbase_saved_, pbase_saved_ + streambuf_size_, 0);
- setp (base (), ebuf ());
-
- // Save the new mode.
- this->cur_mode_ = this->put_mode_;
- }
-
- // If there is output to be flushed, do so now. We shouldn't
- // get here unless this is the case...
-
- if (out_waiting () && EOF == syncout ())
- return EOF;
- }
-
- // If we're not putting EOF, then we have to deal with the character
- // that is being put. Perhaps we should do something special with EOF???
-
- if (c != EOF)
- {
- // We've already written any data that may have been in the
- // buffer, so we're guaranteed to have room in the buffer for
- // this new information. So... we add it to the buffer and
- // adjust our 'next' pointer acordingly.
- *pptr () = (char) c;
- pbump (1);
- }
-
- return 0;
-}
-
-// syncin
-
-int
-ACE_Streambuf::syncin (void)
-{
- // As discussed, there really isn't any way to sync input from a
- // socket-like device. We specifially override this base-class
- // function so that it won't do anything evil to us.
- return 0;
-}
-
-// syncout
-
-int
-ACE_Streambuf::syncout (void)
-{
- // Unlike syncin, syncout is a doable thing. All we have to do is
- // write whatever is in the output buffer to the peer. flushbuf ()
- // is how we do it.
-
- if (flushbuf () == EOF)
- return EOF;
- else
- return 0;
-}
-
-int
-ACE_Streambuf::sync (void)
-{
- // sync () is fairly traditional in that it syncs both input and
- // output. We could have omitted the call to syncin () but someday,
- // we may want it to do something.
-
- syncin ();
-
- // Don't bother syncing the output unless there is data to be
- // sent...
-
- if (out_waiting ())
- return syncout ();
- else
- return 0;
-}
-
-// flushbuf
-
-int
-ACE_Streambuf::flushbuf (void)
-{
- // pptr () is one character beyond the last character put into the
- // buffer. pbase () points to the beginning of the put buffer.
- // Unless pptr () is greater than pbase () there is nothing to be
- // sent to the peer.
-
- if (pptr () <= pbase ())
- return 0;
-
- // 4/12/97 -- JCEJ
- // Kludge!!!
- // If the remote side shuts down the connection, an attempt to send
- // () to the remote will result in the message 'Broken Pipe' I think
- // this is an OS message, I've tracked it down to the ACE_OS::write
- // () function. That's the last one to be called before the
- // message. I can only test this on Linux though, so I don't know
- // how other systems will react.
- //
- // To get around this gracefully, I do a PEEK recv () with an
- // immediate (nearly) timeout. recv () is much more graceful on
- // it's failure. If we get -1 from recv () not due to timeout then
- // we know we're SOL.
- //
- // Q: Is 'errno' threadsafe? Should the section below be a
- // critical section?
- //
- // char tbuf[1];
- // ACE_Time_Value to (0,1);
- // if (this->recv (tbuf, 1, MSG_PEEK, &to) == -1)
- // {
- // if (errno != ETIME)
- // {
- // perror ("OOPS preparing to send to peer");
- // return EOF;
- // }
- // }
- //
- // The correct way to handle this is for the application to trap
- // (and ignore?) SIGPIPE. Thanks to Amos Shapira for reminding me
- // of this.
-
- // Starting at the beginning of the buffer, send as much data as
- // there is waiting. send guarantees that all of the data will be
- // sent or an error will be returned.
-
- if (this->send (pbase (), pptr () - pbase ()) == -1)
- return EOF;
-
- // Now that we've sent everything in the output buffer, we reset the
- // buffer pointers to appear empty.
- setp (base (), ebuf ());
-
- return 0;
-}
-
-int
-ACE_Streambuf::get_one_byte (void)
-{
- this->timeout_ = 0;
-
- // The recv function will return immediately if there is no data
- // waiting. So, we use recv_n to wait for exactly one byte to come
- // from the peer. Later, we can use recv to see if there is
- // anything else in the buffer. (Ok, we could use flags to tell it
- // to block but I like this better.)
-
- if (this->recv_n (base (), 1, MSG_PEEK, this->recv_timeout_) != 1)
- {
- if (errno == ETIME)
- this->timeout_ = 1;
- return EOF;
- }
- else
- return 1;
-}
-
-// This will be called when the read (get) buffer has been exhausted
-// (ie -- gptr == egptr).
-
-int
-ACE_Streambuf::fillbuf (void)
-{
- // Invoke recv_n to get exactly one byte from the remote. This will
- // block until something shows up.
-
- if (get_one_byte () == EOF)
- return EOF;
-
- // Now, get whatever else may be in the buffer. This will return if
- // there is nothing in the buffer.
-
- int bc = this->recv (base (), blen (), this->recv_timeout_);
-
- // recv will give us -1 if there was a problem. If there was
- // nothing waiting to be read, it will give us 0. That isn't an
- // error.
-
- if (bc < 0)
- {
- if (errno == ETIME)
- this->timeout_ = 1;
- return EOF;
- }
-
- // Move the get pointer to reflect the number of bytes we just read.
-
- setg (base (), base (), base () + bc);
-
- // Return the byte-read-count including the one from <get_one_byte>.
- return bc;
-}
-
-ACE_Streambuf::ACE_Streambuf (u_int streambuf_size, int io_mode)
- : eback_saved_ (0), // to avoid Purify UMR
- pbase_saved_ (0), // to avoid Purify UMR
- get_mode_ (1),
- put_mode_ (2),
- mode_ (io_mode),
- streambuf_size_ (streambuf_size),
- recv_timeout_ (0)
-{
- (void)reset_get_buffer ();
- (void)reset_put_buffer ();
-}
-
-u_int
-ACE_Streambuf::streambuf_size (void)
-{
- return streambuf_size_;
-}
-
-// Return the number of bytes not yet gotten. eback + get_waiting =
-// gptr.
-
-u_int
-ACE_Streambuf::get_waiting (void)
-{
- return this->gptr_saved_ - this->eback_saved_;
-}
-
-// Return the number of bytes in the get area (includes some already
-// gotten); eback + get_avail = egptr.
-
-u_int
-ACE_Streambuf::get_avail (void)
-{
- return this->egptr_saved_ - this->eback_saved_;
-}
-
-// Return the number of bytes to be 'put' onto the stream media.
-// pbase + put_avail = pptr.
-
-u_int
-ACE_Streambuf::put_avail (void)
-{
- return this->pptr_saved_ - this->pbase_saved_;
-}
-
-// Typical usage:
-//
-// u_int newGptr = otherStream->get_waiting ();
-// u_int newEgptr = otherStream->get_avail ();
-// char * newBuf = otherStream->reset_get_buffer ();
-// char * oldgetbuf = myStream->reset_get_buffer (newBuf, otherStream->streambuf_size (), newGptr, newEgptr);
-//
-// 'myStream' now has the get buffer of 'otherStream' and can use it in any way.
-// 'otherStream' now has a new, empty get buffer.
-
-char *
-ACE_Streambuf::reset_get_buffer (char *newBuffer,
- u_int _streambuf_size,
- u_int _gptr,
- u_int _egptr)
-{
- char * rval = this->eback_saved_;
-
- // The get area is where the iostream will get data from. This is
- // our read buffer. There are three pointers which describe the
- // read buffer:
- //
- // eback () - The beginning of the buffer. Also the furthest
- // point at which putbacks can be done. Hence the name.
- //
- // gptr () - Where the next character is to be got from.
- //
- // egptr () - One position beyond the last get-able character.
- //
- // So that we can switch quicky from read to write mode without
- // any data copying, we keep copies of these three pointers in
- // the variables below. Initially, they all point to the beginning
- // of our read-dedicated buffer.
- //
- if (newBuffer)
- {
- if (streambuf_size_ != _streambuf_size)
- return 0;
- this->eback_saved_ = newBuffer;
- }
- else
- ACE_NEW_RETURN (this->eback_saved_,
- char[streambuf_size_],
- 0);
-
- this->gptr_saved_ = this->eback_saved_ + _gptr;
- this->egptr_saved_ = this->eback_saved_ + _egptr;
-
- // Disable the get area initially. This will cause underflow to be
- // invoked on the first get operation.
- setg (0, 0, 0);
-
- reset_base ();
-
- return rval;
-}
-
-// Typical usage:
-//
-// u_int newPptr = otherStream->put_avail ();
-// char * newBuf = otherStream->reset_put_buffer ();
-// char * oldputbuf = otherStream->reset_put_buffer (newBuf, otherStream->streambuf_size (), newPptr);
-
-char *
-ACE_Streambuf::reset_put_buffer (char *newBuffer,
- u_int _streambuf_size,
- u_int _pptr)
-{
- char *rval = this->pbase_saved_;
-
- // The put area is where the iostream will put data that needs to be
- // sent to the peer. This becomes our write buffer. The three
- // pointers which maintain this area are:
- //
- // pbase () - The beginning of the put area.
- //
- // pptr () - Where the next character is to be put.
- //
- // epptr () - One beyond the last valid position for putting.
- //
- // Again to switch quickly between modes, we keep copies of
- // these three pointers.
- //
- if (newBuffer)
- {
- if (streambuf_size_ != _streambuf_size)
- return 0;
- this->pbase_saved_ = newBuffer;
- }
- else
- ACE_NEW_RETURN (this->pbase_saved_,
- char[streambuf_size_],
- 0);
-
- this->pptr_saved_ = this->pbase_saved_ + _pptr;
- this->epptr_saved_ = this->pbase_saved_ + streambuf_size_;
-
- // Disable the put area. Overflow will be called by the first call
- // to any put operator.
- setp (0, 0);
-
- reset_base ();
-
- return rval;
-}
-
-void
-ACE_Streambuf::reset_base (void)
-{
- // Until we experience the first get or put operation, we do not
- // know what our current IO mode is.
- this->cur_mode_ = 0;
-
- // The common area used for reading and writting is called "base".
- // We initialize it this way so that the first get/put operation
- // will have to "allocate" base. This allocation will set base to
- // the appropriate specific buffer and set the mode to the correct
- // value.
- setb (0, 0);
-}
-
-// If the default allocation strategey were used the common buffer
-// would be deleted when the object destructs. Since we are providing
-// separate read/write buffers, it is up to us to manage their memory.
-
-ACE_Streambuf::~ACE_Streambuf (void)
-{
- delete [] this->eback_saved_;
- delete [] this->pbase_saved_;
-}
-
-u_char ACE_Streambuf::timeout (void)
-{
- u_char rval = this->timeout_;
- this->timeout_ = 0;
- return rval;
-}
-
-#endif /* !ACE_LACKS_ACE_IOSTREAM */
-#endif /* ACE_IOSTREAM_C */
diff --git a/ace/IOStream.h b/ace/IOStream.h
deleted file mode 100644
index 188c2ff59c5..00000000000
--- a/ace/IOStream.h
+++ /dev/null
@@ -1,513 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file IOStream.h
- *
- * $Id$
- *
- * @author James CE Johnson <jcej@lads.com>
- * @author Jim Crossley <jim@lads.com>
- */
-//=============================================================================
-
-#ifndef ACE_IOSTREAM_H
-#define ACE_IOSTREAM_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// This is a temporary restriction - ACE_IOStream is only enabled if the
-// compiler does not supply the standard C++ library (and standard iostreams)
-// or, if it does, the platform is explicitly set to use old iostreams
-// by its config.h file.
-// This restriction is recorded in Bugzilla entry 857.
-#if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY == 1)
-# if !defined (ACE_USES_OLD_IOSTREAMS) && !defined (ACE_LACKS_ACE_IOSTREAM)
-# define ACE_LACKS_ACE_IOSTREAM
-# endif /* !ACE_USES_OLD_IOSTREAMS && !ACE_LACKS_ACE_IOSTREAM */
-#endif /* ACE_HAS_STANDARD_CPP_LIBRARY */
-
-#if !defined (ACE_LACKS_ACE_IOSTREAM)
-
-#include "ace/OS.h"
-#include "ace/streams.h"
-
-#if defined (ACE_HAS_STRING_CLASS)
-#if defined (ACE_WIN32) && defined (_MSC_VER)
-typedef CString ACE_IOStream_String;
-#else
-#if !defined (ACE_HAS_STDCPP_STL_INCLUDES)
-#include /**/ <String.h>
-typedef String ACE_IOStream_String;
-#else
-#include /**/ <string>
-
-#if defined(ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-typedef std::string ACE_IOStream_String;
-#else
-typedef string ACE_IOStream_String;
-#endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
-#endif /* ! ACE_HAS_STDCPP_STL_INCLUDES */
-#endif /* ACE_WIN32 && defined (_MSC_VER) */
-
-#if defined (__DECCXX_VER)
-# if __DECCXX_VER < 50700000
-# include /**/ <stl_macros>
-# else
-# include /**/ <stdcomp>
-# endif /* __DECCXX_VER < 50700000 */
-#endif /* __DECCXX_VER */
-
-class ACE_Export ACE_Quoted_String : public ACE_IOStream_String
-{
-public:
- inline ACE_Quoted_String (void) { *this = ""; }
- inline ACE_Quoted_String (const char *c) { *this = ACE_IOStream_String (c); }
- inline ACE_Quoted_String (const ACE_IOStream_String &s) { *this = s; }
- inline ACE_Quoted_String &operator= (const ACE_IOStream_String& s)
- {
- return (ACE_Quoted_String &) ACE_IOStream_String::operator= (s);
- }
- inline ACE_Quoted_String &operator = (const char c) {
- return (ACE_Quoted_String &) ACE_IOStream_String::operator= (c);
- }
- inline ACE_Quoted_String &operator = (const char *c) {
- return (ACE_Quoted_String &) ACE_IOStream_String::operator= (c);
- }
- inline int operator < (const ACE_Quoted_String &s) const {
- return *(ACE_IOStream_String *) this < (ACE_IOStream_String) s;
- }
-#if defined (ACE_WIN32) && defined (_MSC_VER)
- inline int length (void) { return this->GetLength (); }
-#endif /* ACE_WIN32 && defined (_MSC_VER) */
-};
-
-#endif /* ACE_HAS_STRING_CLASS */
-
-/**
- * @class ACE_Streambuf
- *
- * @brief Create your custom streambuf by providing and ACE_*_Stream
- * object to this template. I have tested it with
- * ACE_SOCK_Stream and it should work fine for others as well.
- *
- * For any iostream object, the real work is done by the
- * underlying streambuf class. That is what we create here.
- * A streambuf has an internal buffer area into which data is
- * read and written as the iostream requests and provides data.
- * At some point during the read process, the iostream will
- * realize that the streambuf has no more data. The underflow
- * function of the streambuf is then called.
- * Likewise, during the write process, the iostream will
- * eventually notice that the streabuf's buffer has become full
- * and will invoke the overflow function.
- * The empty/full state of the read/write "buffers" are
- * controled by two sets pointers. One set is dedicated to
- * read, the other to write. These pointers, in turn, reference
- * a common buffer that is to be shared by both read and write
- * operations. It is this common buffer to which data is
- * written and from which it is read.
- * The common buffer is used by functions of the streambuf as
- * well as the iostream. Because of this and the fact that it
- * is "shared" by both read and write operators, there is a
- * danger of data corruption if read and write operations are
- * allowed to take place "at the same time".
- * To prevent data corruption, we manipulate the read and write
- * pointer sets so that the streambuf is in either a read-mode
- * or write-mode at all times and can never be in both modes at
- * the same time.
- * In the constructor: set the read and write sets to NULL This
- * causes the underflow or overflow operators to be invoked at
- * the first IO activity of the iostream.
- * In the underflow function we arrange for the common buffer to
- * reference our read buffer and for the write pointer set to be
- * disabled. If a write operation is performed by the iostream
- * this will cause the overflow function to be invoked.
- * In the overflow function we arrange for the common buffer to
- * reference our write buffer and for the read pointer set to be
- * disabled. This causes the underflow function to be invoked
- * when the iostream "changes our mode".
- * The overflow function will also invoke the send_n function to
- * flush the buffered data to our peer. Similarly, the sync and
- * syncout functions will cause send_n to be invoked to send the
- * data.
- * Since socket's and the like do not support seeking, there can
- * be no method for "syncing" the input. However, since we
- * maintain separate read/write buffers, no data is lost by
- * "syncing" the input. It simply remains buffered.
- */
-class ACE_Export ACE_Streambuf : public streambuf
-{
-public:
-
- /**
- * If the default allocation strategey were used the common buffer
- * would be deleted when the object destructs. Since we are
- * providing separate read/write buffers, it is up to us to manage
- * their memory.
- */
- virtual ~ACE_Streambuf (void);
-
- /// Get the current Time_Value pointer and provide a new one.
- ACE_Time_Value *recv_timeout (ACE_Time_Value *tv = NULL);
-
- /**
- * Use this to allocate a new/different buffer for put operations.
- * If you do not provide a buffer pointer, one will be allocated.
- * That is the preferred method. If you do provide a buffer, the
- * size must match that being used by the get buffer. If
- * successful, you will receive a pointer to the current put buffer.
- * It is your responsibility to delete this memory when you are done
- * with it.
- */
- char *reset_put_buffer (char *newBuffer = NULL,
- u_int _streambuf_size = 0,
- u_int _pptr = 0 );
-
- /// Return the number of bytes to be 'put' onto the stream media.
- /// pbase + put_avail = pptr
- u_int put_avail (void);
-
- /**
- * Use this to allocate a new/different buffer for get operations.
- * If you do not provide a buffer pointer, one will be allocated.
- * That is the preferred method. If you do provide a buffer, the
- * size must match that being used by the put buffer. If
- * successful, you will receive a pointer to the current get buffer.
- * It is your responsibility to delete this memory when you are done
- * with it.
- */
- char *reset_get_buffer (char *newBuffer = NULL,
- u_int _streambuf_size = 0,
- u_int _gptr = 0,
- u_int _egptr = 0);
-
- /// Return the number of bytes not yet gotten. eback + get_waiting =
- /// gptr
- u_int get_waiting (void);
-
- /// Return the number of bytes in the get area (includes some already
- /// gotten); eback + get_avail = egptr
- u_int get_avail (void);
-
- /// Query the streambuf for the size of its buffers.
- u_int streambuf_size (void);
-
- /// Did we take an error because of an IO operation timeout? Note:
- /// Invoking this resets the flag.
- u_char timeout (void);
-
-protected:
- ACE_Streambuf (u_int streambuf_size,
- int io_mode);
-
- /// Sync both input and output. See syncin/syncout below for
- /// descriptions.
- virtual int sync (void);
-
- // = Signatures for the underflow/overflow discussed above.
- virtual int underflow (void);
-
- /// The overflow function receives the character which caused the
- /// overflow.
- virtual int overflow (int = EOF);
-
- /// Resets the <base> pointer and streambuf mode. This is used
- /// internally when get/put buffers are allocatd.
- void reset_base (void);
-
-protected:
- // = Two pointer sets for manipulating the read/write areas.
- char *eback_saved_;
- char *gptr_saved_;
- char *egptr_saved_;
- char *pbase_saved_;
- char *pptr_saved_;
- char *epptr_saved_;
-
- // = With cur_mode_ we keep track of our current IO mode.
-
- // This helps us to optimize the underflow/overflow functions.
- u_char cur_mode_;
- const u_char get_mode_;
- const u_char put_mode_;
-
- /// mode tells us if we're working for an istream, ostream, or
- /// iostream.
- int mode_;
-
- /// This defines the size of the input and output buffers. It can be
- /// set by the object constructor.
- const u_int streambuf_size_;
-
- /// Did we take an error because of an IO operation timeout?
- u_char timeout_;
-
- /// We want to allow the user to provide Time_Value pointers to
- /// prevent infinite blocking while waiting to receive data.
- ACE_Time_Value recv_timeout_value_;
- ACE_Time_Value *recv_timeout_;
-
- /**
- * syncin is called when the input needs to be synced with the
- * source file. In a filebuf, this results in the <seek> system
- * call being used. We can't do that on socket-like connections, so
- * this does basically nothing. That's safe because we have a
- * separate read buffer to maintain the already-read data. In a
- * filebuf, the single common buffer is used forcing the <seek>
- * call.
- */
- int syncin (void);
-
- /// syncout is called when the output needs to be flushed. This is
- /// easily done by calling the peer's send_n function.
- int syncout (void);
-
- /// flushbuf is the worker of syncout. It is a separate function
- /// because it gets used sometimes in different context.
- int flushbuf (void);
-
- /**
- * fillbuf is called in a couple of places. This is the worker of
- * underflow. It will attempt to fill the read buffer from the
- * peer.
- */
- int fillbuf (void);
-
- /**
- * Used by fillbuf and others to get exactly one byte from the peer.
- * recv_n is used to be sure we block until something is available.
- * It is virtual because we really need to override it for
- * datagram-derived objects.
- */
- virtual int get_one_byte (void);
-
- /**
- * Stream connections and "unconnected connections" (ie --
- * datagrams) need to work just a little differently. We derive
- * custom Streambuf objects for them and provide these functions at
- * that time.
- */
- virtual ssize_t send (char *buf,
- ssize_t len) = 0;
- virtual ssize_t recv (char *buf,
- ssize_t len,
- ACE_Time_Value *tv = NULL) = 0;
- virtual ssize_t recv (char *buf,
- ssize_t len,
- int flags,
- ACE_Time_Value *tv = NULL) = 0;
- virtual ssize_t recv_n (char *buf,
- ssize_t len,
- int flags = 0,
- ACE_Time_Value *tv = NULL) = 0;
-
- virtual ACE_HANDLE get_handle (void);
-
-#if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY != 0) && !defined (ACE_USES_OLD_IOSTREAMS)
- char *base (void) const
- {
- return cur_mode_ == get_mode_ ? eback_saved_
- : cur_mode_ == put_mode_ ? pbase_saved_
- : 0;
- }
- char *ebuf (void) const
- {
- return cur_mode_ == 0 ? 0 : base () + streambuf_size_;
- }
-
- int blen (void) const
- {
- return streambuf_size_;
- }
-
- void setb (char* b, char* eb, int /* a */=0)
- {
- setbuf (b, (eb - b));
- }
-
- int out_waiting (void)
- {
- return pptr () - pbase ();
- }
-#endif /* ACE_HAS_STANDARD_CPP_LIBRARY */
-};
-
-///////////////////////////////////////////////////////////////////////////
-
-// These typedefs are provided by G++ (on some systems?) without the
-// trailing '_'. Since we can't count on 'em, I've defined them to
-// what GNU wants here.
-//
-typedef ios& (*__manip_)(ios&);
-typedef istream& (*__imanip_)(istream&);
-typedef ostream& (*__omanip_)(ostream&);
-
-// Trying to do something like is shown below instead of using the
-// __*manip typedefs causes Linux do segfault when "<<endl" is done.
-//
-// virtual MT& operator<<(ios& (*func)(ios&)) { (*func)(*this); return *this; }
-
-// This macro defines the get operator for class MT into datatype DT.
-// We will use it below to quickly override most (all?) iostream get
-// operators. Notice how the <ipfx> and <isfx> functions are used.
-
-#define GET_SIG(MT,DT) inline virtual MT& operator>> (DT v)
-#if defined (__KCC) || (defined (__SUNPRO_CC) && __SUNPRO_CC > 0x510)
-#define GET_CODE { \
- if (ipfx (0)) \
- { \
- (*((istream*)this)) >> (v); \
- } \
- isfx (); \
- return *this; \
- }
-#else
-#define GET_CODE { \
- if (ipfx (0)) \
- { \
- iostream::operator>> (v); \
- } \
- isfx (); \
- return *this; \
- }
-#endif /* __KCC */
-#define GET_PROT(MT,DT,CODE) GET_SIG(MT,DT) CODE
-#define GET_FUNC(MT,DT) GET_PROT(MT,DT,GET_CODE)
-
-// This macro defines the put operator for class MT into datatype DT.
-// We will use it below to quickly override most (all?) iostream put
-// operators. Notice how the <opfx> and <osfx> functions are used.
-
-#define PUT_SIG(MT,DT) inline virtual MT& operator<< (DT v)
-#if defined (__KCC) || (defined (__SUNPRO_CC) && __SUNPRO_CC > 0x510)
-#define PUT_CODE { \
- if (opfx ()) \
- { \
- (*((ostream *) this)) << (v); \
- } \
- osfx (); \
- return *this; \
- }
-#else
-#define PUT_CODE { \
- if (opfx ()) \
- { \
- iostream::operator<< (v); \
- } \
- osfx (); \
- return *this; \
- }
-#endif /* __KCC */
-#define PUT_PROT(MT,DT,CODE) PUT_SIG(MT,DT) CODE
-#define PUT_FUNC(MT,DT) PUT_PROT(MT,DT,PUT_CODE)
-
-
-// These are necessary in case somebody wants to derive from us and
-// override one of these with a custom approach.
-
-#if defined (ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS)
-#define GET_FUNC_SET0(MT,CODE,CODE2) \
- GET_PROT(MT,short &,CODE) \
- GET_PROT(MT,u_short &,CODE) \
- GET_PROT(MT,int &,CODE) \
- GET_PROT(MT,u_int &,CODE) \
- GET_PROT(MT,long &,CODE) \
- GET_PROT(MT,u_long &,CODE) \
- GET_PROT(MT,float &,CODE) \
- GET_PROT(MT,double &,CODE) \
- GET_PROT(MT,char &,CODE) \
- GET_PROT(MT,u_char &,CODE) \
- GET_PROT(MT,char *,CODE) \
- inline virtual MT& operator>>(__omanip_ func) CODE2 \
- inline virtual MT& operator>>(__manip_ func) CODE2
-#elif defined (ACE_LACKS_CHAR_RIGHT_SHIFTS)
-#define GET_FUNC_SET0(MT,CODE,CODE2) \
- GET_PROT(MT,short &,CODE) \
- GET_PROT(MT,u_short &,CODE) \
- GET_PROT(MT,int &,CODE) \
- GET_PROT(MT,u_int &,CODE) \
- GET_PROT(MT,long &,CODE) \
- GET_PROT(MT,u_long &,CODE) \
- GET_PROT(MT,float &,CODE) \
- GET_PROT(MT,double &,CODE) \
- inline virtual MT& operator>>(__omanip_ func) CODE2 \
- inline virtual MT& operator>>(__manip_ func) CODE2
-#else
-#define GET_FUNC_SET0(MT,CODE,CODE2) \
- GET_PROT(MT,short &,CODE) \
- GET_PROT(MT,u_short &,CODE) \
- GET_PROT(MT,int &,CODE) \
- GET_PROT(MT,u_int &,CODE) \
- GET_PROT(MT,long &,CODE) \
- GET_PROT(MT,u_long &,CODE) \
- GET_PROT(MT,float &,CODE) \
- GET_PROT(MT,double &,CODE) \
- GET_PROT(MT,char &,CODE) \
- GET_PROT(MT,u_char &,CODE) \
- GET_PROT(MT,char *,CODE) \
- GET_PROT(MT,u_char *,CODE) \
- inline virtual MT& operator>>(__omanip_ func) CODE2 \
- inline virtual MT& operator>>(__manip_ func) CODE2
-#endif
-
-#define PUT_FUNC_SET0(MT,CODE,CODE2) \
- PUT_PROT(MT,short,CODE) \
- PUT_PROT(MT,u_short,CODE) \
- PUT_PROT(MT,int,CODE) \
- PUT_PROT(MT,u_int,CODE) \
- PUT_PROT(MT,long,CODE) \
- PUT_PROT(MT,u_long,CODE) \
- PUT_PROT(MT,float,CODE) \
- PUT_PROT(MT,double,CODE) \
- PUT_PROT(MT,char,CODE) \
- PUT_PROT(MT,u_char,CODE) \
- PUT_PROT(MT,const char *,CODE) \
- PUT_PROT(MT,u_char *,CODE) \
- PUT_PROT(MT,void *,CODE) \
- inline virtual MT& operator<<(__omanip_ func) CODE2 \
- inline virtual MT& operator<<(__manip_ func) CODE2
-
-#if defined (ACE_LACKS_SIGNED_CHAR)
- #define GET_FUNC_SET1(MT,CODE,CODE2) GET_FUNC_SET0(MT,CODE,CODE2)
- #define PUT_FUNC_SET1(MT,CODE,CODE2) PUT_FUNC_SET0(MT,CODE,CODE2)
-#else
-#if defined (ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS)
- #define GET_FUNC_SET1(MT,CODE,CODE2) \
- GET_PROT(MT,signed char &,CODE) \
- GET_FUNC_SET0(MT,CODE,CODE2)
-#else
- #define GET_FUNC_SET1(MT,CODE,CODE2) \
- GET_PROT(MT,signed char &,CODE) \
- GET_PROT(MT,signed char *,CODE) \
- GET_FUNC_SET0(MT,CODE,CODE2)
-#endif
-
- #define PUT_FUNC_SET1(MT,CODE,CODE2) \
- PUT_FUNC(MT,signed char) \
- PUT_FUNC(MT,const signed char *) \
- PUT_FUNC_SET0(MT,CODE,CODE2)
-#endif /* ACE_LACKS_SIGNED_CHAR */
-
-#define GET_MANIP_CODE { if (ipfx ()) { (*func) (*this); } isfx (); return *this; }
-#define PUT_MANIP_CODE { if (opfx ()) { (*func) (*this); } osfx (); return *this; }
-
-#define GET_FUNC_SET(MT) GET_FUNC_SET1(MT,GET_CODE,GET_MANIP_CODE)
-#define PUT_FUNC_SET(MT) PUT_FUNC_SET1(MT,PUT_CODE,PUT_MANIP_CODE)
-#define GETPUT_FUNC_SET(MT) GET_FUNC_SET(MT) PUT_FUNC_SET(MT)
-
-#define GET_SIG_SET(MT) GET_FUNC_SET1(MT,= 0;,= 0;)
-#define PUT_SIG_SET(MT) PUT_FUNC_SET1(MT,= 0;,= 0;)
-#define GETPUT_SIG_SET(MT) GET_SIG_SET(MT) PUT_SIG_SET(MT)
-
-// Include the templates here.
-#include "ace/IOStream_T.h"
-#endif /* !ACE_LACKS_ACE_IOSTREAM && ACE_USES_OLD_IOSTREAMS */
-
-#include "ace/post.h"
-#endif /* ACE_IOSTREAM_H */
diff --git a/ace/IOStream_T.cpp b/ace/IOStream_T.cpp
deleted file mode 100644
index 176f47afc17..00000000000
--- a/ace/IOStream_T.cpp
+++ /dev/null
@@ -1,210 +0,0 @@
-// $Id$
-
-#ifndef ACE_IOSTREAM_T_C
-#define ACE_IOSTREAM_T_C
-
-#include "ace/IOStream_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, IOStream_T, "$Id$")
-
-#if !defined (ACE_LACKS_ACE_IOSTREAM)
-
-#if defined (ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION) && defined (__GNUG__)
-# if !defined (ACE_IOSTREAM_T_H)
- // _Only_ define this when compiling this .cpp file standalone, not
- // when instantiating templates. Its purpose is to provide something
- // for global constructors and destructors to be tied to. Without it,
- // they would be tied to the file(name). With Cygnus g++ 2.7.2/VxWorks,
- // that name is used directly in variable names in the munched ctor/dtor
- // file. That name contains a ".", so it's not a legal C variable name.
- // The root of all this trouble is a static instance (of Iostream_init)
- // declared in the iostream.h header file.
- int ACE_IOStream_global_of_builtin_type_to_avoid_munch_problems = 0;
-# endif /* ! ACE_IOSTREAM_T_H */
-#endif /* ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION && __GNUG__ */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/IOStream_T.i"
-#endif /* !__ACE_INLINE__ */
-
-// We will be given a STREAM by the iostream object which creates us.
-// See the ACE_IOStream template for how that works. Like other
-// streambuf objects, we can be input-only, output-only or both.
-
-template <class STREAM>
-ACE_Streambuf_T<STREAM>::ACE_Streambuf_T (STREAM *peer,
- u_int streambuf_size,
- int io_mode)
- : ACE_Streambuf (streambuf_size, io_mode),
- peer_ (peer)
-{
- // A streambuf allows for unbuffered IO where every character is
- // read as requested and written as provided. To me, this seems
- // terribly inefficient for socket-type operations, so I've disabled
- // it. All of the work would be done by the underflow/overflow
- // functions anyway and I haven't implemented anything there to
- // support unbuffered IO.
-
-#if !defined (ACE_LACKS_UNBUFFERED_STREAMBUF)
- this->unbuffered (0);
-#endif /* ! ACE_LACKS_UNBUFFERED_STREAMBUF */
-
- // Linebuffered is similar to unbuffered. Again, I don't have any
- // need for this and I don't see the advantage. I believe this
- // would have to be supported by underflow/overflow to be effective.
-#if !defined (ACE_LACKS_LINEBUFFERED_STREAMBUF)
- this->linebuffered (0);
-#endif /* ! ACE_LACKS_LINEBUFFERED_STREAMBUF */
-}
-
-// The typical constructor. This will initiailze your STREAM and then
-// setup the iostream baseclass to use a custom streambuf based on
-// STREAM.
-
-template <class STREAM>
-ACE_IOStream<STREAM>::ACE_IOStream (STREAM &stream,
- u_int streambuf_size)
- : iostream (0),
- STREAM (stream)
-{
- ACE_NEW (streambuf_,
- ACE_Streambuf_T<STREAM> ((STREAM *) this,
- streambuf_size));
- iostream::init (this->streambuf_);
-}
-
-template <class STREAM>
-ACE_IOStream<STREAM>::ACE_IOStream (u_int streambuf_size)
- : iostream (0)
-{
- ACE_NEW (this->streambuf_,
- ACE_Streambuf_T<STREAM> ((STREAM *) this,
- streambuf_size));
- iostream::init (this->streambuf_);
-}
-
-// We have to get rid of the streambuf_ ourselves since we gave it to
-// iostream ()
-
-template <class STREAM>
-ACE_IOStream<STREAM>::~ACE_IOStream (void)
-{
- delete this->streambuf_;
-}
-
-// The only ambituity in the multiple inheritance is the close ()
-// function.
-
-template <class STREAM> int
-ACE_IOStream<STREAM>::close (void)
-{
- return STREAM::close ();
-}
-
-template <class STREAM> ACE_IOStream<STREAM> &
-ACE_IOStream<STREAM>::operator>> (ACE_Time_Value *&tv)
-{
- ACE_Time_Value *old_tv = this->streambuf_->recv_timeout (tv);
- tv = old_tv;
- return *this;
-}
-
-#if defined (ACE_HAS_STRING_CLASS)
-
-// A simple string operator. The base iostream has 'em for char* but
-// that isn't always the best thing for a String. If we don't provide
-// our own here, we may not get what we want.
-
-template <class STREAM> ACE_IOStream<STREAM> &
-ACE_IOStream<STREAM>::operator>> (ACE_IOStream_String &v)
-{
- if (ipfx0 ())
- {
- char c;
- this->get (c);
-
- for (v = c;
- this->get (c) && !isspace (c);
- v += c)
- continue;
- }
-
- isfx ();
-
- return *this;
-}
-
-template <class STREAM> ACE_IOStream<STREAM> &
-ACE_IOStream<STREAM>::operator<< (ACE_IOStream_String &v)
-{
- if (opfx ())
- {
-#if defined (ACE_WIN32) && defined (_MSC_VER)
- for (int i = 0; i < v.GetLength (); ++i)
-#else
- for (u_int i = 0; i < (u_int) v.length (); ++i)
-#endif /* ACE_WIN32 && defined (_MSC_VER) */
- this->put (v[i]);
- }
-
- osfx ();
-
- return *this;
-}
-
-// A more clever put operator for strings that knows how to deal with
-// quoted strings containing back-quoted quotes.
-
-template <class STREAM> STREAM &
-operator>> (STREAM &stream,
- ACE_Quoted_String &str)
-{
- char c;
-
- if (!(stream >> c)) // eat space up to the first char
- // stream.set (ios::eofbit|ios::failbit);
- return stream;
-
- str = ""; // Initialize the string
-
- // if we don't have a quote, append until we see space
- if (c != '"')
- for (str = c; stream.get (c) && !isspace (c); str += c)
- continue;
- else
- for (; stream.get (c) && c != '"'; str += c)
- if (c == '\\')
- {
- stream.get (c);
- if (c != '"')
- str += '\\';
- }
-
- return stream;
-}
-
-template <class STREAM> STREAM &
-operator<< (STREAM &stream,
- ACE_Quoted_String &str)
-{
- stream.put ('"');
-
- for (u_int i = 0; i < str.length (); ++i)
- {
- if (str[i] == '"')
- stream.put ('\\');
- stream.put (str[i]);
- }
-
- stream.put ('"');
-
- return stream;
-}
-
-#endif /* ACE_HAS_STRING_CLASS */
-#endif /* ACE_LACKS_ACE_IOSTREAM */
-#endif /* ACE_IOSTREAM_T_C */
diff --git a/ace/IOStream_T.h b/ace/IOStream_T.h
deleted file mode 100644
index b3b4390c6e4..00000000000
--- a/ace/IOStream_T.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file IOStream_T.h
- *
- * $Id$
- *
- * @author James CE Johnson <jcej@lads.com>
- * @author Jim Crossley <jim@lads.com>
- *
- * This file should not be #included directly by application
- * code. Instead, it should #include "ace/IOStream.h". That's because
- * we only put some conditional compilations in that file.
- */
-//=============================================================================
-
-#ifndef ACE_IOSTREAM_T_H
-#define ACE_IOSTREAM_T_H
-#include "ace/pre.h"
-
-#include "ace/IOStream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_ACE_IOSTREAM)
-
-#include "ace/INET_Addr.h"
-#include "ace/Handle_Set.h"
-
-#if defined (ACE_HAS_STRING_CLASS)
-template <class STREAM> STREAM & operator>> (STREAM &stream, ACE_Quoted_String &str);
-template <class STREAM> STREAM & operator<< (STREAM &stream, ACE_Quoted_String &str);
-#endif /* defined (ACE_HAS_STRING_CLASS) */
-
-template <class STREAM>
-class ACE_Streambuf_T : public ACE_Streambuf
-{
-public:
- /**
- * We will be given a STREAM by the iostream object which creates
- * us. See the ACE_IOStream template for how that works. Like
- * other streambuf objects, we can be input-only, output-only or
- * both.
- */
- ACE_Streambuf_T (STREAM *peer,
- u_int streambuf_size = ACE_STREAMBUF_SIZE,
- int io_mode = ios::in | ios::out);
-
- virtual ssize_t send (char *buf, ssize_t len);
-
- virtual ssize_t recv (char *buf,
- ssize_t len,
- ACE_Time_Value *tv = NULL);
-
- virtual ssize_t recv (char *buf,
- ssize_t len,
- int flags,
- ACE_Time_Value * tv = NULL);
-
- virtual ssize_t recv_n (char *buf,
- ssize_t len,
- int flags = 0,
- ACE_Time_Value *tv = NULL);
-
-protected:
- virtual ACE_HANDLE get_handle (void);
-
- /// This will be our ACE_SOCK_Stream or similar object.
- STREAM *peer_;
-};
-
-/**
- * @class ACE_IOStream
- *
- * @brief A template adapter for creating an iostream-like object using
- * an ACE IPC Stream for the actual I/O. Iostreams use an
- * underlying streambuf object for the IO interface. The
- * iostream class and derivatives provide you with a host of
- * convenient operators that access the streambuf.
- *
- * We inherit all characteristics of iostream and your <STREAM>
- * class. When you create a new class from this template, you
- * can use it anywhere you would have used your original
- * <STREAM> class.
- * To create an iostream for your favorite ACE IPC class (e.g.,
- * <ACE_SOCK_Stream>), feed that class to this template's
- * <STREAM> parameter, e.g.,
- * typedef ACE_Svc_Handler<ACE_SOCK_iostream,
- * ACE_INET_Addr, ACE_NULL_SYNCH>
- * Service_Handler;
- * Because the operators in the iostream class are not virtual,
- * you cannot easily provide overloads in your custom
- * ACE_IOStream classes. To make these things work correctly,
- * you need to overload ALL operators of the ACE_IOStream you
- * create. I've attempted to do that here to make things easier
- * for you but there are no guarantees.
- * In the iostream.cpp file is an example of why it is necessary
- * to overload all of the get/put operators when you want to
- * customize only one or two.
- */
-template <class STREAM>
-class ACE_IOStream : public iostream, public STREAM
-{
-public:
- // = Initialization and termination methods.
- ACE_IOStream (STREAM &stream,
- u_int streambuf_size = ACE_STREAMBUF_SIZE);
-
- /**
- * The default constructor. This will initiailze your STREAM and
- * then setup the iostream baseclass to use a custom streambuf based
- * on STREAM.
- */
- ACE_IOStream (u_int streambuf_size = ACE_STREAMBUF_SIZE);
-
- /// We have to get rid of the <streambuf_> ourselves since we gave it
- /// to the <iostream> base class;
- virtual ~ACE_IOStream (void);
-
- /// The only ambituity in the multiple inheritance is the <close>
- /// function.
- virtual int close (void);
-
- /**
- * Returns 1 if we're at the end of the <STREAM>, i.e., if the
- * connection has closed down or an error has occurred, else 0.
- * Under the covers, <eof> calls the streambuf's <timeout> function
- * which will reset the timeout flag. As as result, you should save
- * the return of <eof> and check it instead of calling <eof>
- * successively.
- */
- int eof (void) const;
-
-#if defined (ACE_HAS_STRING_CLASS)
- /**
- * A simple string operator. The base <iostream> has them for char*
- * but that isn't always the best thing for a <String>. If we don't
- * provide our own here, we may not get what we want.
- */
- virtual ACE_IOStream<STREAM> &operator>> (ACE_IOStream_String &v);
-
- /// The converse of the <String::put> operator.
- virtual ACE_IOStream<STREAM> &operator<< (ACE_IOStream_String &v);
-
-#endif /* ACE_HAS_STRING_CLASS */
- // = Using the macros to provide get/set operators.
- GETPUT_FUNC_SET (ACE_IOStream<STREAM>)
-
-#if defined (ACE_LACKS_IOSTREAM_FX)
- virtual int ipfx (int noskip = 0)
- {
- if (good ())
- {
- if (tie () != 0)
- tie ()->flush ();
- if (!noskip && flags () & skipws)
- {
- int ch;
- while (isspace (ch = rdbuf ()->sbumpc ()))
- continue;
- if (ch != EOF)
- rdbuf ()->sputbackc (ch);
- }
- if (good ())
- return 1;
- }
-#if !defined (ACE_WIN32)
- // MS VC++ 5.0 doesn't declare setstate.
- setstate (failbit);
-#endif /* !ACE_WIN32 */
- return (0);
- }
- virtual int ipfx0 (void) { return ipfx (0); } // Optimized ipfx(0)
- virtual int ipfx1 (void) // Optimized ipfx(1)
- {
- if (good ())
- {
- if (tie () != 0)
- tie ()->flush ();
- if (good ())
- return 1;
- }
-#if !defined (ACE_WIN32)
- // MS VC++ 5.0 doesn't declare setstate.
- setstate (failbit);
-#endif /* !ACE_WIN32 */
- return (0);
- }
- virtual void isfx (void) { return; }
- virtual int opfx (void)
- {
- if (good () && tie () != 0)
- tie ()->flush ();
- return good ();
- }
- virtual void osfx (void) { if (flags () & unitbuf) flush (); }
-#else
-#if defined (__GNUC__)
- virtual int ipfx0 (void) { return iostream::ipfx0 (); } // Optimized ipfx(0)
- virtual int ipfx1 (void) { return iostream::ipfx1 (); } // Optimized ipfx(1)
-#else
- virtual int ipfx0 (void) { return iostream::ipfx (0); }
- virtual int ipfx1 (void) { return iostream::ipfx (1); }
-#endif /* __GNUC__ */
- virtual int ipfx (int need = 0) { return iostream::ipfx (need); }
- virtual void isfx (void) { iostream::isfx (); }
- virtual int opfx (void) { return iostream::opfx (); }
- virtual void osfx (void) { iostream::osfx (); }
-#endif /* ACE_LACKS_IOSTREAM_FX */
-
- /// Allow the programmer to provide a timeout for read operations.
- /// Give it a pointer to NULL to block forever.
- ACE_IOStream<STREAM> & operator>> (ACE_Time_Value *&tv);
-
-protected:
- /// This is where all of the action takes place. The streambuf_ is
- /// the interface to the underlying STREAM.
- ACE_Streambuf_T<STREAM> *streambuf_;
-
-private:
- // = Private methods.
-
- // We move these into the private section so that they cannot be
- // used by the application programmer. This is necessary because
- // streambuf_ will be buffering IO on the STREAM object. If these
- // functions were used in your program, there is a danger of getting
- // the datastream out of sync.
- ACE_UNIMPLEMENTED_FUNC (ssize_t send (...))
- ACE_UNIMPLEMENTED_FUNC (ssize_t recv (...))
- ACE_UNIMPLEMENTED_FUNC (ssize_t send_n (...))
- ACE_UNIMPLEMENTED_FUNC (ssize_t recv_n (...))
-};
-
-/**
- * @class ACE_SOCK_Dgram_SC
- *
- * @brief "Dgram_SC" is short for "Datagram Self-Contained."
- *
- * Datagrams don't have the notion of a "peer". Each send and
- * receive on a datagram can go to a different peer if you want.
- * If you're using datagrams for stream activity, you probably
- * want 'em all to go to (and come from) the same place. That's
- * what this class is for. Here, we keep an address object so
- * that we can remember who last sent us data. When we write
- * back, we're then able to write back to that same address.
- */
-template <class STREAM>
-class ACE_SOCK_Dgram_SC : public STREAM
-{
-public:
- ACE_SOCK_Dgram_SC (void);
- ACE_SOCK_Dgram_SC (STREAM &source,
- ACE_INET_Addr &dest);
- ssize_t send_n (char *buf, ssize_t len);
- ssize_t recv (char *buf,
- ssize_t len,
- ACE_Time_Value *tv = NULL);
- ssize_t recv (char *buf,
- ssize_t len,
- int flags,
- ACE_Time_Value *tv = NULL);
- ssize_t recv_n (char *buf,
- ssize_t len,
- int flags = 0,
- ACE_Time_Value *tv = NULL);
- int get_remote_addr (ACE_INET_Addr &addr) const;
-
-protected:
- ACE_INET_Addr peer_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/IOStream_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/IOStream_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("IOStream_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-#endif /* ACE_LACKS_ACE_IOSTREAM */
-#include "ace/post.h"
-#endif /* ACE_IOSTREAM_T_H */
diff --git a/ace/IOStream_T.i b/ace/IOStream_T.i
deleted file mode 100644
index c145eb52cc3..00000000000
--- a/ace/IOStream_T.i
+++ /dev/null
@@ -1,160 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-template <class STREAM> ssize_t
-ACE_Streambuf_T<STREAM>::send (char *buf, ssize_t len)
-{
- return peer_->send_n (buf,len);
-}
-
-template <class STREAM> ssize_t
-ACE_Streambuf_T<STREAM>::recv (char *buf,
- ssize_t len,
- ACE_Time_Value *tv)
-{
- return this->recv (buf, len, 0, tv);
-}
-
-template <class STREAM> ssize_t
-ACE_Streambuf_T<STREAM>::recv (char *buf,
- ssize_t len,
- int flags,
- ACE_Time_Value * tv)
-{
- this->timeout_ = 0;
- errno = ESUCCESS;
- ssize_t rval = peer_->recv (buf, len, flags, tv);
- if (errno == ETIME)
- this->timeout_ = 1;
- return rval;
-}
-
-template <class STREAM> ssize_t
-ACE_Streambuf_T<STREAM>::recv_n (char *buf,
- ssize_t len,
- int flags,
- ACE_Time_Value *tv)
-{
- this->timeout_ = 0;
- errno = ESUCCESS;
- ssize_t rval = peer_->recv_n (buf, len, flags, tv);
- if (errno == ETIME)
- this->timeout_ = 1;
- return rval;
-}
-
-template <class STREAM> ACE_HANDLE
-ACE_Streambuf_T<STREAM>::get_handle (void)
-{
- return peer_ ? peer_->get_handle () : 0;
-}
-
-template <class STREAM> ACE_INLINE int
-ACE_IOStream<STREAM>::eof (void) const
-{
- // Get the timeout value of the streambuf
- ACE_Time_Value *timeout = this->streambuf_->recv_timeout (0);
-
- // Reset the timeout value of the streambuf.
- (void) this->streambuf_->recv_timeout (timeout);
-
- char c;
- int rval = this->streambuf_->recv_n (&c,
- sizeof c,
- MSG_PEEK,
- timeout);
-
- // Timeout, not an eof
- if (this->streambuf_->timeout())
- return 0;
-
- // No timeout, got enough data: not eof
- if (rval == sizeof(char))
- return 0;
-
- // No timeout, not enough data: definately eof
- return 1;
-}
-
-template <class STREAM> ACE_INLINE
-ACE_SOCK_Dgram_SC<STREAM>::ACE_SOCK_Dgram_SC (void)
-{
-}
-
-template <class STREAM> ACE_INLINE
-ACE_SOCK_Dgram_SC<STREAM>::ACE_SOCK_Dgram_SC (STREAM &source,
- ACE_INET_Addr &dest)
- : STREAM (source),
- peer_ (dest)
-{
-}
-
-template <class STREAM> ACE_INLINE ssize_t
-ACE_SOCK_Dgram_SC<STREAM>::send_n (char *buf,
- ssize_t len)
-{
- return STREAM::send (buf, len, peer_);
-}
-
-template <class STREAM> ACE_INLINE ssize_t
-ACE_SOCK_Dgram_SC<STREAM>::recv (char *buf,
- ssize_t len,
- ACE_Time_Value *tv)
-{
- return recv (buf, len, 0, tv);
-}
-
-template <class STREAM> ACE_INLINE ssize_t
-ACE_SOCK_Dgram_SC<STREAM>::recv (char *buf,
- ssize_t len,
- int flags,
- ACE_Time_Value *tv)
-{
- if (tv != 0)
- {
- ACE_HANDLE handle = this->get_handle ();
- ACE_Handle_Set handle_set;
-
- handle_set.set_bit (handle);
-
- switch (ACE_OS::select (int (handle) + 1,
- (fd_set *) handle_set, // read_fds.
- (fd_set *) 0, // write_fds.
- (fd_set *) 0, // exception_fds.
- tv))
- {
- case 0:
- errno = ETIME;
- case -1:
- return -1;
- default:
- ; // Do the 'recv' below
- }
- }
-
- int rval = STREAM::recv (buf, len, peer_, flags);
-#if defined (ACE_WIN32)
- if (rval == SOCKET_ERROR)
- if (::WSAGetLastError () == WSAEMSGSIZE)
- if (ACE_BIT_ENABLED (flags, MSG_PEEK))
- rval = len;
-#endif /* ACE_WIN32 */
- return rval < len ? rval : len;
-}
-
-template <class STREAM> ACE_INLINE ssize_t
-ACE_SOCK_Dgram_SC<STREAM>::recv_n (char *buf,
- ssize_t len,
- int flags,
- ACE_Time_Value *tv)
-{
- int rval = this->recv (buf, len, flags, tv);
- return rval;
-}
-
-template <class STREAM> ACE_INLINE int
-ACE_SOCK_Dgram_SC<STREAM>::get_remote_addr (ACE_INET_Addr &addr) const
-{
- addr = peer_;
- return 0;
-}
diff --git a/ace/IO_Cntl_Msg.cpp b/ace/IO_Cntl_Msg.cpp
deleted file mode 100644
index 66903626b63..00000000000
--- a/ace/IO_Cntl_Msg.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// IO_Cntl_Msg.cpp
-// $Id$
-
-#if 0
-// This is not meant to be used, it's just a place holder...
-
-ACE_RCSID(ace, IO_Cntl_Msg, "$Id$")
-
-// Forward decl
-template <class SYNCH> class ACE_Module;
-
-/**
- * @class ACE_Module_Link
- *
- * @brief Data structure used to link two modules together
- */
-class ACE_Module_Link
-{
-public:
- ACE_Module_Link (ACE_Module *m1, ACE_Module *m2): mod_upper_ (m1), mod_lower_ (m2), count_ (0) {}
-
- ACE_Module *upper (void) { return this->mod_upper_; }
- void upper (ACE_Module *u) { this->mod_upper_ = u; }
-
- ACE_Module *lower (void) { return this->mod_lower_; }
- void lower (ACE_Module *l) { this->mod_lower_ = l; }
-
- int count (void) { return this->count_; }
- void count (int c) { this->count_ = c; }
-
-private:
- ACE_Module *mod_upper_;
- ACE_Module *mod_lower_;
- int count_;
-};
-#endif
-
diff --git a/ace/IO_Cntl_Msg.h b/ace/IO_Cntl_Msg.h
deleted file mode 100644
index 2ce08fed2b2..00000000000
--- a/ace/IO_Cntl_Msg.h
+++ /dev/null
@@ -1,105 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file IO_Cntl_Msg.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//==========================================================================
-
-
-#ifndef ACE_IO_CNTL_MSG_H
-#define ACE_IO_CNTL_MSG_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_IO_Cntl_Msg
- *
- * @brief Data format for IOCTL messages
- */
-class ACE_Export ACE_IO_Cntl_Msg
-{
-public:
- enum
- {
- /// Set the low water mark.
- SET_LWM = 1,
- /// Get the low water mark.
- GET_LWM = 2,
- /// Set the high water mark.
- SET_HWM = 3,
- /// Get the high water mark.
- GET_HWM = 4,
- /// Link modules
- MOD_LINK = 5,
- /// Unlink modules
- MOD_UNLINK = 6
- };
-
- typedef u_short ACE_IO_Cntl_Cmds;
-
- // = Initialization method.
- /// Initialize the control message.
- ACE_IO_Cntl_Msg (ACE_IO_Cntl_Cmds c) { this->cmd_ = c; }
-
- // = Get/set methods
-
- /// Get command.
- ACE_IO_Cntl_Cmds cmd (void) { return this->cmd_; }
-
- /// Set command.
- void cmd (ACE_IO_Cntl_Cmds c) { this->cmd_ = c; }
-
- /// Get count.
- size_t count (void) { return this->count_; }
-
- /// Set count.
- void count (size_t c) { this->count_ = c; }
-
- /// Get error.
- int error (void) { return this->error_; }
-
- /// Set error.
- void error (int e) { this->error_ = e; }
-
- /// Get return value.
- int rval (void) { return this->rval_; }
-
- /// Set return value.
- void rval (int r) { this->rval_ = r; }
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Command.
- ACE_IO_Cntl_Cmds cmd_;
-
- /// Count.
- size_t count_;
-
- /// Error.
- int error_;
-
- /// Return value
- int rval_;
-};
-
-#include "ace/post.h"
-
-#endif /* ACE_IO_CNTL_MSG_H */
diff --git a/ace/IO_SAP.cpp b/ace/IO_SAP.cpp
deleted file mode 100644
index f3ad46c46b7..00000000000
--- a/ace/IO_SAP.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-// IO_SAP.cpp
-// $Id$
-
-#include "ace/IO_SAP.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/IO_SAP.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID(ace, IO_SAP, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_IO_SAP)
-
-// This is the do-nothing constructor. It does not perform a
-// ACE_OS::open system call.
-
-ACE_IO_SAP::ACE_IO_SAP (void)
- : handle_ (ACE_INVALID_HANDLE)
-{
- ACE_TRACE ("ACE_IO_SAP::ACE_IO_SAP");
-}
-
-void
-ACE_IO_SAP::dump (void) const
-{
- ACE_TRACE ("ACE_IO_SAP::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("handle_ = %d"), this->handle_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\npid_ = %d"), this->pid_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Cache for the process ID.
-pid_t ACE_IO_SAP::pid_ = 0;
-
-int
-ACE_IO_SAP::enable (int value) const
-{
- ACE_TRACE ("ACE_IO_SAP::enable");
- /* First-time in initialization. */
- if (ACE_IO_SAP::pid_ == 0)
- ACE_IO_SAP::pid_ = ACE_OS::getpid ();
-
-#if !defined(ACE_WIN32) && !defined (VXWORKS)
-
- switch (value)
- {
-#if defined (SIGURG)
- case SIGURG:
- case ACE_SIGURG:
-#if defined (F_SETOWN)
- return ACE_OS::fcntl (this->handle_,
- F_SETOWN,
- ACE_IO_SAP::pid_);
-#else
- ACE_NOTSUP_RETURN (-1);
-#endif /* F_SETOWN */
-#endif /* SIGURG */
-#if defined (SIGIO)
- case SIGIO:
- case ACE_SIGIO:
-#if defined (F_SETOWN) && defined (FASYNC)
- if (ACE_OS::fcntl (this->handle_,
- F_SETOWN,
- ACE_IO_SAP::pid_) == -1
- || ACE_Flag_Manip::set_flags (this->handle_,
- FASYNC) == -1)
- return -1;
- break;
-#else
- ACE_NOTSUP_RETURN (-1);
-#endif /* F_SETOWN && FASYNC */
-#else // <==
- ACE_NOTSUP_RETURN (-1);
-#endif /* SIGIO <== */
- case ACE_NONBLOCK:
- if (ACE_Flag_Manip::set_flags (this->handle_,
- ACE_NONBLOCK) == -1)
- return -1;
- break;
- default:
- return -1;
- }
-#else
- ACE_UNUSED_ARG (value);
-#endif /* !ACE_WIN32 */
-
- return 0;
-}
-
-int
-ACE_IO_SAP::disable (int value) const
-{
- ACE_TRACE ("ACE_IO_SAP::disable");
-
-#if !defined(ACE_WIN32) && !defined (VXWORKS)
- switch (value)
- {
-#if defined (SIGURG)
- case SIGURG:
- case ACE_SIGURG:
-#if defined (F_SETOWN)
- if (ACE_OS::fcntl (this->handle_,
- F_SETOWN, 0) == -1)
- return -1;
- break;
-#else
- ACE_NOTSUP_RETURN (-1);
-#endif /* F_SETOWN */
-#endif /* SIGURG */
-#if defined (SIGIO)
- case SIGIO:
- case ACE_SIGIO:
-#if defined (F_SETOWN) && defined (FASYNC)
- if (ACE_OS::fcntl (this->handle_,
- F_SETOWN,
- 0) == -1
- || ACE_Flag_Manip::clr_flags (this->handle_, FASYNC) == -1)
- return -1;
- break;
-#else
- ACE_NOTSUP_RETURN (-1);
-#endif /* F_SETOWN && FASYNC */
-#else // <==
- ACE_NOTSUP_RETURN (-1);
-#endif /* SIGIO <== */
- case ACE_NONBLOCK:
- if (ACE_Flag_Manip::clr_flags (this->handle_,
- ACE_NONBLOCK) == -1)
- return -1;
- break;
- default:
- return -1;
- }
- return 0;
-#else
- ACE_UNUSED_ARG (value);
- ACE_NOTSUP_RETURN (-1);
-#endif /* !ACE_WIN32 */
-}
diff --git a/ace/IO_SAP.h b/ace/IO_SAP.h
deleted file mode 100644
index 4cc1d5cda84..00000000000
--- a/ace/IO_SAP.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file IO_SAP.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_IO_SAP_H
-#define ACE_IO_SAP_H
-#include "ace/pre.h"
-
-#include "ace/Flag_Manip.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_IO_SAP
- *
- * @brief Defines the methods for the base class of the <ACE_IO_SAP>
- * abstraction, which includes <ACE_FILE> and <ACE_DEV>.
- */
-class ACE_Export ACE_IO_SAP
-{
-public:
- enum
- {
- /// Be consistent with Winsock
- INVALID_HANDLE = -1
- };
-
- /// Default dtor.
- ~ACE_IO_SAP (void);
-
- /// Interface for ioctl.
- int control (int cmd, void *) const;
-
- // = Common I/O handle options related to files.
-
- /**
- * Enable asynchronous I/O (ACE_SIGIO), urgent data (ACE_SIGURG),
- * non-blocking I/O (ACE_NONBLOCK), or close-on-exec (ACE_CLOEXEC),
- * which is passed as the <value>.
- */
- int enable (int value) const;
-
- /**
- * Disable asynchronous I/O (ACE_SIGIO), urgent data (ACE_SIGURG),
- * non-blocking I/O (ACE_NONBLOCK), or close-on-exec (ACE_CLOEXEC),
- * which is passed as the <value>.
- */
- int disable (int value) const;
-
- /// Get the underlying handle.
- ACE_HANDLE get_handle (void) const;
-
- /// Set the underlying handle.
- void set_handle (ACE_HANDLE handle);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Ensure that ACE_IO_SAP is an abstract base class.
- ACE_IO_SAP (void);
-
-private:
- /// Underlying I/O handle.
- ACE_HANDLE handle_;
-
- /// Cache the process ID.
- static pid_t pid_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/IO_SAP.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-#endif /* ACE_IO_SAP_H */
diff --git a/ace/IO_SAP.i b/ace/IO_SAP.i
deleted file mode 100644
index 5bb805d48f4..00000000000
--- a/ace/IO_SAP.i
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// IO_SAP.i
-
-ASYS_INLINE
-ACE_IO_SAP::~ACE_IO_SAP (void)
-{
- ACE_TRACE ("ACE_IO_SAP::~ACE_IO_SAP");
-}
-
-// Used to return the underlying handle_.
-
-ASYS_INLINE ACE_HANDLE
-ACE_IO_SAP::get_handle (void) const
-{
- ACE_TRACE ("ACE_IO_SAP::get_handle");
- return this->handle_;
-}
-
-// Used to set the underlying handle_.
-
-ASYS_INLINE void
-ACE_IO_SAP::set_handle (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_IO_SAP::set_handle");
- this->handle_ = handle;
-}
-
-// Provides access to the ACE_OS::ioctl system call.
-
-ASYS_INLINE int
-ACE_IO_SAP::control (int cmd, void *arg) const
-{
- ACE_TRACE ("ACE_IO_SAP::control");
- return ACE_OS::ioctl (this->handle_, cmd, arg);
-}
-
-
diff --git a/ace/IPC_SAP.cpp b/ace/IPC_SAP.cpp
deleted file mode 100644
index 39b73436c96..00000000000
--- a/ace/IPC_SAP.cpp
+++ /dev/null
@@ -1,182 +0,0 @@
-// $Id$
-
-#include "ace/IPC_SAP.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/IPC_SAP.i"
-#endif
-
-ACE_RCSID(ace, IPC_SAP, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_IPC_SAP)
-
-void
-ACE_IPC_SAP::dump (void) const
-{
- ACE_TRACE ("ACE_IPC_SAP::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("handle_ = %d"), this->handle_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\npid_ = %d"), this->pid_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Cache for the process ID.
-pid_t ACE_IPC_SAP::pid_ = 0;
-
-// This is the do-nothing constructor. It does not perform a
-// ACE_OS::socket system call.
-
-ACE_IPC_SAP::ACE_IPC_SAP (void)
- : handle_ (ACE_INVALID_HANDLE)
-{
- // ACE_TRACE ("ACE_IPC_SAP::ACE_IPC_SAP");
-}
-
-int
-ACE_IPC_SAP::enable (int value) const
-{
- ACE_TRACE ("ACE_IPC_SAP::enable");
-
- // First-time in initialization.
- if (ACE_IPC_SAP::pid_ == 0)
- ACE_IPC_SAP::pid_ = ACE_OS::getpid ();
-
-#if defined (ACE_WIN32) || defined (VXWORKS)
- switch (value)
- {
- case ACE_NONBLOCK:
- {
- // nonblocking argument (1)
- // blocking: (0)
- u_long nonblock = 1;
- return ACE_OS::ioctl (this->handle_,
- FIONBIO,
- &nonblock);
- }
- default:
- ACE_NOTSUP_RETURN (-1);
- }
-#else /* ! ACE_WIN32 && ! VXWORKS */
- switch (value)
- {
-#if defined (SIGURG)
- case SIGURG:
- case ACE_SIGURG:
-#if defined (F_SETOWN)
- return ACE_OS::fcntl (this->handle_,
- F_SETOWN,
- ACE_IPC_SAP::pid_);
-#else
- ACE_NOTSUP_RETURN (-1);
-#endif /* F_SETOWN */
-#endif /* SIGURG */
-#if defined (SIGIO)
- case SIGIO:
- case ACE_SIGIO:
-#if defined (F_SETOWN) && defined (FASYNC)
- if (ACE_OS::fcntl (this->handle_,
- F_SETOWN,
- ACE_IPC_SAP::pid_) == -1
- || ACE_Flag_Manip::set_flags (this->handle_,
- FASYNC) == -1)
- return -1;
- break;
-#else
- ACE_NOTSUP_RETURN (-1);
-#endif /* F_SETOWN && FASYNC */
-#endif /* SIGIO <== */
-#if defined (F_SETFD)
- case ACE_CLOEXEC:
- // Enables the close-on-exec flag.
- if (ACE_OS::fcntl (this->handle_,
- F_SETFD,
- 1) == -1)
- return -1;
- break;
-#endif /* F_SETFD */
- case ACE_NONBLOCK:
- if (ACE_Flag_Manip::set_flags (this->handle_,
- ACE_NONBLOCK) == ACE_INVALID_HANDLE)
- return -1;
- break;
- default:
- return -1;
- }
- return 0;
-#endif /* ! ACE_WIN32 && ! VXWORKS */
-
- /* NOTREACHED */
-}
-
-int
-ACE_IPC_SAP::disable (int value) const
-{
- ACE_TRACE ("ACE_IPC_SAP::disable");
-
-#if defined (ACE_WIN32) || defined (VXWORKS)
- switch (value)
- {
- case ACE_NONBLOCK:
- // nonblocking argument (1)
- // blocking: (0)
- {
- u_long nonblock = 0;
- return ACE_OS::ioctl (this->handle_,
- FIONBIO,
- &nonblock);
- }
- default:
- ACE_NOTSUP_RETURN (-1);
- }
-#else /* ! ACE_WIN32 && ! VXWORKS */
- switch (value)
- {
-#if defined (SIGURG)
- case SIGURG:
- case ACE_SIGURG:
-#if defined (F_SETOWN)
- return ACE_OS::fcntl (this->handle_,
- F_SETOWN,
- 0);
-#else
- ACE_NOTSUP_RETURN (-1);
-#endif /* F_SETOWN */
-#endif /* SIGURG */
-#if defined (SIGIO)
- case SIGIO:
- case ACE_SIGIO:
-#if defined (F_SETOWN) && defined (FASYNC)
- if (ACE_OS::fcntl (this->handle_,
- F_SETOWN,
- 0) == -1
- || ACE_Flag_Manip::clr_flags (this->handle_,
- FASYNC) == -1)
- return -1;
- break;
-#else
- ACE_NOTSUP_RETURN (-1);
-#endif /* F_SETOWN && FASYNC */
-#endif /* SIGIO <== */
-#if defined (F_SETFD)
- case ACE_CLOEXEC:
- // Disables the close-on-exec flag.
- if (ACE_OS::fcntl (this->handle_,
- F_SETFD,
- 0) == -1)
- return -1;
- break;
-#endif /* F_SETFD */
- case ACE_NONBLOCK:
- if (ACE_Flag_Manip::clr_flags (this->handle_,
- ACE_NONBLOCK) == -1)
- return -1;
- break;
- default:
- return -1;
- }
- return 0;
-#endif /* ! ACE_WIN32 && ! VXWORKS */
- /* NOTREACHED */
-}
diff --git a/ace/IPC_SAP.h b/ace/IPC_SAP.h
deleted file mode 100644
index 86d9a3e2d5c..00000000000
--- a/ace/IPC_SAP.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file IPC_SAP.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_IPC_SAP_H
-#define ACE_IPC_SAP_H
-#include "ace/pre.h"
-
-#include "ace/Flag_Manip.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_IPC_SAP
- *
- * @brief Defines the member functions for the base class of the
- * ACE_IPC_SAP abstraction.
- */
-class ACE_Export ACE_IPC_SAP
-{
-public:
- /// Default dtor.
- ~ACE_IPC_SAP (void);
-
- /// Interface for <ioctl>.
- int control (int cmd, void *) const;
-
- // = Common I/O handle options related to sockets.
-
- /**
- * Enable asynchronous I/O (ACE_SIGIO), urgent data (ACE_SIGURG),
- * non-blocking I/O (ACE_NONBLOCK), or close-on-exec (ACE_CLOEXEC),
- * which is passed as the <value>.
- */
- int enable (int value) const;
-
- /**
- * Disable asynchronous I/O (ACE_SIGIO), urgent data (ACE_SIGURG),
- * non-blocking I/O (ACE_NONBLOCK), or close-on-exec (ACE_CLOEXEC),
- * which is passed as the <value>.
- */
- int disable (int value) const;
-
- /// Get the underlying handle.
- ACE_HANDLE get_handle (void) const;
-
- /// Set the underlying handle.
- void set_handle (ACE_HANDLE handle);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Ensure that ACE_IPC_SAP is an abstract base class.
- /// Default constructor.
- ACE_IPC_SAP (void);
-
-private:
- /// Underlying I/O handle.
- ACE_HANDLE handle_;
-
- /// Cache the process ID.
- static pid_t pid_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/IPC_SAP.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-#endif /* ACE_IPC_SAP_H */
diff --git a/ace/IPC_SAP.i b/ace/IPC_SAP.i
deleted file mode 100644
index 63ccc967711..00000000000
--- a/ace/IPC_SAP.i
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// IPC_SAP.i
-
-// Used to return the underlying handle_.
-
-ASYS_INLINE
-ACE_IPC_SAP::~ACE_IPC_SAP (void)
-{
- // ACE_TRACE ("ACE_IPC_SAP::~ACE_IPC_SAP");
-}
-
-ASYS_INLINE ACE_HANDLE
-ACE_IPC_SAP::get_handle (void) const
-{
- ACE_TRACE ("ACE_IPC_SAP::get_handle");
- return this->handle_;
-}
-
-// Used to set the underlying handle_.
-
-ASYS_INLINE void
-ACE_IPC_SAP::set_handle (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_IPC_SAP::set_handle");
- this->handle_ = handle;
-}
-
-// Provides access to the ACE_OS::ioctl system call.
-
-ASYS_INLINE int
-ACE_IPC_SAP::control (int cmd, void *arg) const
-{
- ACE_TRACE ("ACE_IPC_SAP::control");
- return ACE_OS::ioctl (this->handle_, cmd, arg);
-}
diff --git a/ace/Init_ACE.cpp b/ace/Init_ACE.cpp
deleted file mode 100644
index 87fece39bde..00000000000
--- a/ace/Init_ACE.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#include "ace/Init_ACE.h"
-
-#include "ace/Object_Manager.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Init_ACE.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID (ace,
- Init_ACE,
- "$Id$")
-
-// Static data members.
-unsigned int ACE_Init_ACE::init_fini_count_ = 0;
-
-int
-ACE_Init_ACE::init (void)
-{
- // Don't use ACE_TRACE, because Object_Manager might not have been
- // instantiated yet.
- // ACE_TRACE ("ACE_Init_ACE::init");
-
- ++init_fini_count_;
-
- return ACE_Object_Manager::instance ()->init ();
-}
-
-int
-ACE_Init_ACE::fini (void)
-{
- ACE_TRACE ("ACE_Init_ACE::fini");
-
- if (init_fini_count_ > 0)
- {
- if (--init_fini_count_ == 0)
- return ACE_Object_Manager::instance ()->fini ();
- else
- // Wait for remaining fini () calls.
- return 1;
- }
- else
- // More ACE_Init_ACE::fini () calls than ACE_Init_ACE::init () calls. Bad
- // application!
- return -1;
-}
diff --git a/ace/Init_ACE.h b/ace/Init_ACE.h
deleted file mode 100644
index cda0abe6ff6..00000000000
--- a/ace/Init_ACE.h
+++ /dev/null
@@ -1,69 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Init_ACE.h
- *
- * $Id$
- *
- * This class consolidates the operations on the Handles.
- *
- * @author Priyanka Gontla <pgontla@ece.uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_INIT_ACE_H
-#define ACE_INIT_ACE_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Init_ACE
- *
- * @brief Initialize ACE library services. Can be called only once
- * per program invocation.
- *
- */
-class ACE_Export ACE_Init_ACE
-{
-public:
- /**
- * This class implements the functions for the initialization and
- * shutting down ACE. These functions are called only once per ACE
- * invokation.
- * @return Returns 0 on success, -1 on failure, and 1 if it had already been
- * called.
- */
- static int init (void);
-
- /**
- * Shut down ACE library services. Can be called only once per
- * program invocation.
- * @return Returns 0 on success, -1 on failure, and 1 if it had already been
- * called.
- */
- static int fini (void);
-
-private:
- /**
- * Counter to match <init()>/<fini()> calls. <init()> must increment it;
- * <fini()> must decrement it. <fini()> then does nothing until it
- * reaches 0.
- */
- static unsigned int init_fini_count_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Init_ACE.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-
-#endif /* ACE_INIT_ACE_H */
diff --git a/ace/Init_ACE.i b/ace/Init_ACE.i
deleted file mode 100644
index cfa1da318d3..00000000000
--- a/ace/Init_ACE.i
+++ /dev/null
@@ -1 +0,0 @@
-// $Id$
diff --git a/ace/Intrusive_List.cpp b/ace/Intrusive_List.cpp
deleted file mode 100644
index 7a23921288b..00000000000
--- a/ace/Intrusive_List.cpp
+++ /dev/null
@@ -1,151 +0,0 @@
-// $Id$
-
-#ifndef ACE_INTRUSIVE_LIST_C
-#define ACE_INTRUSIVE_LIST_C
-
-#include "ace/Intrusive_List.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Intrusive_List.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Intrusive_List, "$Id$")
-
-template <class T>
-ACE_Intrusive_List<T>::ACE_Intrusive_List (void)
- : head_ (0)
- , tail_ (0)
-{
-}
-
-template<class T>
-ACE_Intrusive_List<T>::~ACE_Intrusive_List (void)
-{
-}
-
-template<class T> void
-ACE_Intrusive_List<T>::push_back (T *node)
-{
- if (this->tail_ == 0)
- {
- this->tail_ = node;
- this->head_ = node;
- node->next (0);
- node->prev (0);
- return;
- }
-
- this->tail_->next (node);
- node->prev (this->tail_);
- node->next (0);
- this->tail_ = node;
-}
-
-template<class T> void
-ACE_Intrusive_List<T>::push_front (T *node)
-{
- if (this->head_ == 0)
- {
- this->tail_ = node;
- this->head_ = node;
- node->next (0);
- node->prev (0);
- return;
- }
-
- this->head_->prev (node);
- node->next (this->head_);
- node->prev (0);
- this->head_ = node;
-}
-
-template<class T> T *
-ACE_Intrusive_List<T>::pop_front (void)
-{
- T *node = this->head_;
- if (node == 0)
- return 0;
- this->remove_i (node);
- return node;
-}
-
-template<class T> T *
-ACE_Intrusive_List<T>::pop_back (void)
-{
- T *node = this->tail_;
- if (node == 0)
- return 0;
- this->remove_i (node);
- return node;
-}
-
-template<class T> void
-ACE_Intrusive_List<T>::remove (T *node)
-{
- for (T *i = this->head_; i != 0; i = i->next ())
- {
- if (node == i)
- {
- this->remove_i (node);
- return;
- }
- }
-}
-
-template<class T> void
-ACE_Intrusive_List<T>::remove_i (T *node)
-{
- if (node->prev () != 0)
- node->prev ()->next (node->next ());
- else
- this->head_ = node->next ();
-
- if (node->next () != 0)
- node->next ()->prev (node->prev ());
- else
- this->tail_ = node->prev ();
-
- node->next (0);
- node->prev (0);
-}
-
-#if 0
-template<class T> void
-ACE_Intrusive_List_Node<T>::check_invariants (void)
-{
- ACE_ASSERT ((this->next () == 0) || (this->next ()->prev () == this));
- ACE_ASSERT ((this->prev () == 0) || (this->prev ()->next () == this));
-}
-
-template<class T> void
-ACE_Intrusive_List<T>::check_invariants (void)
-{
- ACE_ASSERT ((this->tail_ == 0) || (this->tail_->next () == 0));
- ACE_ASSERT ((this->head_ == 0) || (this->head_->prev () == 0));
- ACE_ASSERT (!((this->head_ == 0) ^ (this->tail_ == 0)));
-
- int found_tail = 0;
- for (T *i = this->head_; i != 0; i = i->next ())
- {
- if (i == this->tail_)
- found_tail = 1;
- i->check_invariants ();
- }
- ACE_ASSERT (this->tail_ == 0 || found_tail == 1);
-
- int found_head = 0;
- for (T *j = this->tail_; j != 0; j = j->prev ())
- {
- if (j == this->head_)
- found_head = 1;
- j->check_invariants ();
- }
- ACE_ASSERT (this->head_ == 0 || found_head == 1);
-}
-#endif /* 0 */
-
-#endif /* ACE_INTRUSIVE_LIST_C */
diff --git a/ace/Intrusive_List.h b/ace/Intrusive_List.h
deleted file mode 100644
index 20c4ffc98e7..00000000000
--- a/ace/Intrusive_List.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Intrusive_List.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_INTRUSIVE_LIST_H
-#define ACE_INTRUSIVE_LIST_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Intrusive_List
- *
- * @brief Implement an intrusive double linked list
- *
- * Intrusive lists assume that the elements they contain the pointers
- * required to build the list. They are useful as light-weight
- * containers and free-lists.
- *
- * The template argument T must implement the following methods:
- *
- * - T* T::next () const;
- * - void T::next (T *);
- * - T* T::prev () const;
- * - void T::prev (T* );
- *
- * A simple way to satisfy the Intrusive_List requirements would be to
- * implement a helper class:
- *
- * class My_Object : public ACE_Intrusive_List_Node<My_Object> {<BR>
- * ....<BR>
- * };<BR>
- *
- * typedef ACE_Intrusive_List<My_Object> My_Object_List;
- *
- * However, ACE is supported on platforms that would surely get
- * confused using such templates.
- *
- * @todo The ACE_Message_Queue is an example of an intrusive list (or
- * queue) but it is not implemented in terms of this class.
- *
- */
-template <class T>
-class ACE_Intrusive_List
-{
-public:
- // = Initialization and termination methods.
- /// Constructor. Use user specified allocation strategy
- /// if specified.
- ACE_Intrusive_List (void);
-
- /// Destructor.
- ~ACE_Intrusive_List (void);
-
- // = Check boundary conditions.
-
- /// Returns 1 if the container is empty, otherwise returns 0.
- int empty (void) const;
-
- /// Insert an element at the beginning of the list
- void push_front (T *node);
-
- /// Insert an element at the end of the list
- void push_back (T *node);
-
- /// Remove the element at the beginning of the list
- T *pop_front (void);
-
- /// Remove the element at the end of the list
- T *pop_back (void);
-
- /// Get the element at the head of the queue
- T *head (void) const;
-
- /// Get the element at the tail of the queue
- T *tail (void) const;
-
- /// Remove a element from the list
- /**
- * Verify that the element is still in the list before removing it.
- */
- void remove (T *node);
-
-private:
- /// Remove a element from the list
- /**
- * No attempts are performed to check if T* really belongs to the
- * list. The effects of removing an invalid element are unspecified
- */
- void remove_i (T *node);
-
- /** @name Disallow copying
- *
- */
- //@{
- ACE_Intrusive_List (const ACE_Intrusive_List<T> &);
- ACE_Intrusive_List<T>& operator= (const ACE_Intrusive_List<T> &);
- //@}
-
-private:
- /// Head of the list
- T *head_;
-
- /// Tail of the list
- T *tail_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Intrusive_List.inl"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Intrusive_List.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Intrusive_List.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_INTRUSIVE_LIST_H */
diff --git a/ace/Intrusive_List.inl b/ace/Intrusive_List.inl
deleted file mode 100644
index 2c513b4584f..00000000000
--- a/ace/Intrusive_List.inl
+++ /dev/null
@@ -1,19 +0,0 @@
-// $Id$
-
-template<class T> ACE_INLINE int
-ACE_Intrusive_List<T>::empty (void) const
-{
- return this->head_ == 0;
-}
-
-template<class T> ACE_INLINE T *
-ACE_Intrusive_List<T>::head (void) const
-{
- return this->head_;
-}
-
-template<class T> ACE_INLINE T *
-ACE_Intrusive_List<T>::tail (void) const
-{
- return this->tail_;
-}
diff --git a/ace/Intrusive_List_Node.cpp b/ace/Intrusive_List_Node.cpp
deleted file mode 100644
index 58002653d2e..00000000000
--- a/ace/Intrusive_List_Node.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-// $Id$
-
-#ifndef ACE_INTRUSIVE_LIST_NODE_C
-#define ACE_INTRUSIVE_LIST_NODE_C
-
-#include "ace/Intrusive_List_Node.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Intrusive_List_Node.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Intrusive_List_Node, "$Id$")
-
-template<class T>
-ACE_Intrusive_List_Node<T>::ACE_Intrusive_List_Node (void)
- : prev_ (0)
- , next_ (0)
-{
-}
-
-#endif /* ACE_INTRUSIVE_LIST_NODE_C */
diff --git a/ace/Intrusive_List_Node.h b/ace/Intrusive_List_Node.h
deleted file mode 100644
index 5dedea4d271..00000000000
--- a/ace/Intrusive_List_Node.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Intrusive_List_Node.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_INTRUSIVE_LIST_NODE_H
-#define ACE_INTRUSIVE_LIST_NODE_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Intrusive_List_Node
- *
- * @brief Implement the requirements for ACE_Intrusive_List
- *
- * The class should be used as follows:
- *
- * class My_Object : public ACE_Intrusive_List_Node<My_Object> {<BR>
- * ....<BR>
- * };<BR>
- *
- * However, ACE is supported on platforms that would surely get
- * confused using such templates, the class is provided as a helper
- * for our lucky users that only need portability to modern C++
- * compilers.
- *
- */
-template <class T>
-class ACE_Intrusive_List_Node
-{
-public:
- /** @name Accesors and modifiers to the next and previous pointers
- *
- */
- //@{
- T *prev (void) const;
- void prev (T *);
- T *next (void) const;
- void next (T *);
- //@}
-
-protected:
- /// Constructor
- /**
- * The constructor is protected, because only derived classes should
- * be instantiated.
- */
- ACE_Intrusive_List_Node (void);
-
-private:
- /// Head and tail of the list
- T *prev_;
- T *next_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Intrusive_List_Node.inl"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Intrusive_List_Node.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Intrusive_List_Node.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_INTRUSIVE_LIST_NODE_H */
diff --git a/ace/Intrusive_List_Node.inl b/ace/Intrusive_List_Node.inl
deleted file mode 100644
index e7f2c5ee3eb..00000000000
--- a/ace/Intrusive_List_Node.inl
+++ /dev/null
@@ -1,25 +0,0 @@
-// $Id$
-
-template<class T> ACE_INLINE T*
-ACE_Intrusive_List_Node<T>::prev (void) const
-{
- return this->prev_;
-}
-
-template<class T> ACE_INLINE void
-ACE_Intrusive_List_Node<T>::prev (T *x)
-{
- this->prev_ = x;
-}
-
-template<class T> ACE_INLINE T*
-ACE_Intrusive_List_Node<T>::next (void) const
-{
- return this->next_;
-}
-
-template<class T> ACE_INLINE void
-ACE_Intrusive_List_Node<T>::next (T *x)
-{
- this->next_ = x;
-}
diff --git a/ace/LOCK_SOCK_Acceptor.cpp b/ace/LOCK_SOCK_Acceptor.cpp
deleted file mode 100644
index 931216750ae..00000000000
--- a/ace/LOCK_SOCK_Acceptor.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-// $Id$
-
-#ifndef ACE_LOCK_SOCK_ACCEPTOR_CPP
-#define ACE_LOCK_SOCK_ACCEPTOR_CPP
-
-#include "ace/Synch.h"
-#include "ace/LOCK_SOCK_Acceptor.h"
-
-ACE_RCSID(ace, LOCK_SOCK_Acceptor, "$Id$")
-
-template <class ACE_LOCK> int
-ACE_LOCK_SOCK_Acceptor<ACE_LOCK>::accept (ACE_SOCK_Stream &stream,
- ACE_Addr *remote_address,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle) const
-{
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, (ACE_LOCK &) this->lock_, -1);
-
- return ACE_SOCK_Acceptor::accept (stream,
- remote_address,
- timeout,
- restart,
- reset_new_handle);
-}
-
-template <class ACE_LOCK> ACE_LOCK &
-ACE_LOCK_SOCK_Acceptor<ACE_LOCK>::lock (void)
-{
- return this->lock_;
-}
-
-#endif /* ACE_LOCK_SOCK_ACCEPTOR_CPP */
diff --git a/ace/LOCK_SOCK_Acceptor.h b/ace/LOCK_SOCK_Acceptor.h
deleted file mode 100644
index 720664e65ff..00000000000
--- a/ace/LOCK_SOCK_Acceptor.h
+++ /dev/null
@@ -1,62 +0,0 @@
-
-//=============================================================================
-/**
- * @file LOCK_SOCK_Acceptor.h
- *
- * $Id$
- *
- * @author James Hu and Irfan Pyarali
- */
-//=============================================================================
-
-
-#ifndef ACE_LOCK_SOCK_ACCEPTOR_H
-#define ACE_LOCK_SOCK_ACCEPTOR_H
-#include "ace/pre.h"
-
-#include "ace/SOCK_Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_LOCK_SOCK_Acceptor
- *
- * @brief Specialize <ACE_SOCK_Acceptor> to lock around <accept>;
- *
- * This class is necessary since some OS platforms (e.g.,
- * Solaris 2.5) do not allow multiple threads/processes to
- * simultaneously call <accept> on the same listen-mode
- * port/socket. Thus, we need to protect against multiple
- * concurrent accesses by using the appropriate type of lock.
- */
-template <class ACE_LOCK>
-class ACE_LOCK_SOCK_Acceptor : public ACE_SOCK_Acceptor
-{
-public:
- /// Accept the connection under the control of the <ACE_LOCK>.
- int accept (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
-
- /// Return a reference to the lock.
- ACE_LOCK &lock (void);
-
-protected:
- /// Type of locking mechanism.
- ACE_LOCK lock_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/LOCK_SOCK_Acceptor.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("LOCK_SOCK_Acceptor.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_LOCK_SOCK_ACCEPTOR_H */
diff --git a/ace/LSOCK.cpp b/ace/LSOCK.cpp
deleted file mode 100644
index 45f56f5770b..00000000000
--- a/ace/LSOCK.cpp
+++ /dev/null
@@ -1,173 +0,0 @@
-// $Id$
-
-#include "ace/LSOCK.h"
-
-ACE_RCSID(ace, LSOCK, "$Id$")
-
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/LSOCK.i"
-#endif
-
-ACE_ALLOC_HOOK_DEFINE(ACE_LSOCK)
-
-void
-ACE_LSOCK::dump (void) const
-{
- ACE_TRACE ("ACE_LSOCK::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("aux_handle_ = %d"), this->aux_handle_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#if defined (ACE_HAS_MSG)
-// This routine sends an open file descriptor to <this->handle_>.
-
-int
-ACE_LSOCK::send_handle (const ACE_HANDLE handle) const
-{
- ACE_TRACE ("ACE_LSOCK::send_handle");
- u_char a[2];
- iovec iov;
- msghdr send_msg;
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- char cmsgbuf[ACE_BSD_CONTROL_MSG_LEN];
- cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf;
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
-
- a[0] = 0xab;
- a[1] = 0xcd;
- iov.iov_base = (char *) a;
- iov.iov_len = sizeof a;
- send_msg.msg_iov = &iov;
- send_msg.msg_iovlen = 1;
- send_msg.msg_name = 0;
- send_msg.msg_namelen = 0;
-
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- cmsgptr->cmsg_level = SOL_SOCKET;
- cmsgptr->cmsg_type = SCM_RIGHTS;
- cmsgptr->cmsg_len = sizeof cmsgbuf;
- send_msg.msg_control = cmsgbuf;
- send_msg.msg_controllen = sizeof cmsgbuf;
- *(ACE_HANDLE *) CMSG_DATA (cmsgptr) = handle;
- send_msg.msg_flags = 0;
-#else
- send_msg.msg_accrights = (char *) &handle;
- send_msg.msg_accrightslen = sizeof handle;
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
-
- return ACE_OS::sendmsg (this->get_handle (), &send_msg, 0);
-}
-
-// This file receives an open file descriptor from <this->handle_>.
-// Note, this routine returns -1 if problems occur, 0 if we recv a
-// message that does not have file descriptor in it, and 1 otherwise.
-
-int
-ACE_LSOCK::recv_handle (ACE_HANDLE &handle, char *pbuf, int *len) const
-{
- ACE_TRACE ("ACE_LSOCK::recv_handle");
- u_char a[2];
- iovec iov;
- msghdr recv_msg;
-
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- char cmsgbuf[ACE_BSD_CONTROL_MSG_LEN];
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
-
- if (pbuf != 0 && len != 0)
- {
- iov.iov_base = pbuf;
- iov.iov_len = *len;
- }
- else
- {
- iov.iov_base = (char *) a;
- iov.iov_len = sizeof a;
- }
-
- recv_msg.msg_iov = &iov;
- recv_msg.msg_iovlen = 1;
- recv_msg.msg_name = 0;
- recv_msg.msg_namelen = 0;
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- recv_msg.msg_control = cmsgbuf;
- recv_msg.msg_controllen = sizeof cmsgbuf;
-#else
- recv_msg.msg_accrights = (char *) &handle;
- recv_msg.msg_accrightslen = sizeof handle;
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
-
-#if defined (ACE_HAS_STREAMS)
-
- ssize_t nbytes = ACE_OS::recvmsg (this->get_handle (), &recv_msg, 0);
-
- if (nbytes != ACE_INVALID_HANDLE)
- {
- if (len != 0)
- *len = nbytes;
-
- if (nbytes == sizeof a
- && ((u_char *) iov.iov_base)[0] == 0xab
- && ((u_char *) iov.iov_base)[1] == 0xcd)
- {
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf;
- handle = *(ACE_HANDLE *) CMSG_DATA (cmsgptr);
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
- return 1;
- }
- else
- return 0;
- }
-#else
- ssize_t nbytes = ACE_OS::recvmsg (this->get_handle (),
- &recv_msg,
- MSG_PEEK);
-
- if (nbytes != ACE_INVALID_HANDLE)
- {
- if (nbytes == sizeof a
- && ((u_char *) iov.iov_base)[0] == 0xab
- && ((u_char *) iov.iov_base)[1] == 0xcd)
- {
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- // Close down the socket that was returned by the MSG_PEEK.
- ACE_OS::closesocket (*(ACE_HANDLE *) CMSG_DATA ((cmsghdr *) cmsgbuf));
- recv_msg.msg_control = cmsgbuf;
- recv_msg.msg_controllen = sizeof cmsgbuf;
-#else
- recv_msg.msg_accrights = (char *) &handle;
- recv_msg.msg_accrightslen = sizeof handle;
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
-
- if (ACE_OS::recvmsg (this->get_handle (),
- &recv_msg, 0) == ACE_INVALID_HANDLE)
- return ACE_INVALID_HANDLE;
- else
- {
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf;
- handle = *(ACE_HANDLE *) CMSG_DATA (cmsgptr);
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
- return 1;
- }
- }
- else
- {
- if (len != 0)
- *len = nbytes;
- return 0;
- }
- }
-#endif /* ACE_HAS_STREAMS */
- else
- return ACE_INVALID_HANDLE;
-}
-#endif /* ACE_HAS_MSG */
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
diff --git a/ace/LSOCK.h b/ace/LSOCK.h
deleted file mode 100644
index b57ae3d224c..00000000000
--- a/ace/LSOCK.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file LSOCK.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_LOCAL_SOCK_H
-#define ACE_LOCAL_SOCK_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#include "ace/SOCK.h"
-
-/**
- * @class ACE_LSOCK
- *
- * @brief Create a Local ACE_SOCK, which is used for passing file
- * descriptors.
- */
-class ACE_Export ACE_LSOCK
-{
-public:
-#if defined (ACE_HAS_MSG)
- /// Send an open FD to another process.
- int send_handle (const ACE_HANDLE handle) const;
-
- /// Recv an open FD from another process.
- int recv_handle (ACE_HANDLE &handles,
- char *pbuf = 0,
- int *len = 0) const;
-#endif /* ACE_HAS_MSG */
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Ensure that ACE_LSOCK is an abstract base class
-
- /// Default constructor.
- ACE_LSOCK (void);
-
- /// Initialize based on <handle>
- ACE_LSOCK (ACE_HANDLE handle);
-
- /// Get handle.
- ACE_HANDLE get_handle (void) const;
-
- /// Set handle.
- void set_handle (ACE_HANDLE handle);
-
-private:
- /// An auxiliary handle used to avoid virtual base classes...
- ACE_HANDLE aux_handle_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/LSOCK.i"
-#endif
-
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
-#include "ace/post.h"
-#endif /* ACE_LOCAL_SOCK_H */
diff --git a/ace/LSOCK.i b/ace/LSOCK.i
deleted file mode 100644
index c5b0057fa0e..00000000000
--- a/ace/LSOCK.i
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// LSOCK.i
-
-// Simple-minded constructor.
-
-ASYS_INLINE
-ACE_LSOCK::ACE_LSOCK (void)
- : aux_handle_ (ACE_INVALID_HANDLE)
-{
- ACE_TRACE ("ACE_LSOCK::ACE_LSOCK");
-}
-
-// Sets the underlying file descriptor.
-
-ASYS_INLINE void
-ACE_LSOCK::set_handle (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_LSOCK::set_handle");
- this->aux_handle_ = handle;
-}
-
-// Gets the underlying file descriptor.
-
-ASYS_INLINE ACE_HANDLE
-ACE_LSOCK::get_handle (void) const
-{
- ACE_TRACE ("ACE_LSOCK::get_handle");
- return this->aux_handle_;
-}
-
-// Sets the underlying file descriptor.
-
-ASYS_INLINE
-ACE_LSOCK::ACE_LSOCK (ACE_HANDLE handle)
- : aux_handle_ (handle)
-{
- ACE_TRACE ("ACE_LSOCK::ACE_LSOCK");
-}
diff --git a/ace/LSOCK_Acceptor.cpp b/ace/LSOCK_Acceptor.cpp
deleted file mode 100644
index b6beee7a1ae..00000000000
--- a/ace/LSOCK_Acceptor.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-// LSOCK_Acceptor.cpp
-// $Id$
-
-#include "ace/LSOCK_Acceptor.h"
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, LSOCK_Acceptor, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_LSOCK_Acceptor)
-
-// Return the local endpoint address.
-
-int
-ACE_LSOCK_Acceptor::get_local_addr (ACE_Addr &a) const
-{
- ACE_TRACE ("ACE_LSOCK_Acceptor::get_local_addr");
-
- ACE_UNIX_Addr& target = ACE_dynamic_cast (ACE_UNIX_Addr &, a);
-
- target = this->local_addr_;
-
- return 0;
-}
-
-void
-ACE_LSOCK_Acceptor::dump (void) const
-{
- ACE_TRACE ("ACE_LSOCK_Acceptor::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->local_addr_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Do nothing routine for constructor.
-
-ACE_LSOCK_Acceptor::ACE_LSOCK_Acceptor (void)
-{
- ACE_TRACE ("ACE_LSOCK_Acceptor::ACE_LSOCK_Acceptor");
-}
-
-int
-ACE_LSOCK_Acceptor::open (const ACE_Addr &remote_sap,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- ACE_TRACE ("ACE_LSOCK_Acceptor::open");
- this->local_addr_ = *((ACE_UNIX_Addr *) &remote_sap); // This is a gross hack...
- return ACE_SOCK_Acceptor::open (remote_sap, reuse_addr,
- protocol_family, backlog, protocol);
-}
-
-// General purpose routine for performing server ACE_SOCK creation.
-
-ACE_LSOCK_Acceptor::ACE_LSOCK_Acceptor (const ACE_Addr &remote_sap,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- ACE_TRACE ("ACE_LSOCK_Acceptor::ACE_LSOCK_Acceptor");
- if (this->open (remote_sap,
- reuse_addr,
- protocol_family,
- backlog,
- protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- "ACE_LSOCK_Acceptor::ACE_LSOCK_Acceptor"));
-}
-
-// General purpose routine for accepting new connections.
-
-int
-ACE_LSOCK_Acceptor::accept (ACE_LSOCK_Stream &new_stream,
- ACE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle) const
-{
- ACE_TRACE ("ACE_LSOCK_Acceptor::accept");
-
- int in_blocking_mode = 0;
- if (this->shared_accept_start (timeout,
- restart,
- in_blocking_mode) == -1)
- return -1;
- else
- {
- sockaddr *addr = 0;
- int len = 0;
-
- if (remote_addr != 0)
- {
- len = remote_addr->get_size ();
- addr = (sockaddr *) remote_addr->get_addr ();
- }
-
- do
- new_stream.set_handle (ACE_OS::accept (this->get_handle (),
- addr,
- &len));
- while (new_stream.get_handle () == ACE_INVALID_HANDLE
- && restart != 0
- && errno == EINTR
- && timeout == 0);
-
- // Reset the size of the addr, which is only necessary for UNIX
- // domain sockets.
- if (new_stream.get_handle () != ACE_INVALID_HANDLE
- && remote_addr != 0)
- remote_addr->set_size (len);
- }
-
- return this->shared_accept_finish (new_stream,
- in_blocking_mode,
- reset_new_handle);
-}
-
-// Close down the UNIX domain stream and remove the rendezvous point
-// from the file system.
-
-int
-ACE_LSOCK_Acceptor::remove (void)
-{
- ACE_TRACE ("ACE_LSOCK_Acceptor::remove");
- int result = this->close ();
- return ACE_OS::unlink (this->local_addr_.get_path_name ()) == -1
- || result == -1 ? -1 : 0;
-}
-
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
diff --git a/ace/LSOCK_Acceptor.h b/ace/LSOCK_Acceptor.h
deleted file mode 100644
index 6fd37f02df6..00000000000
--- a/ace/LSOCK_Acceptor.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file LSOCK_Acceptor.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_LOCAL_SOCK_ACCEPTOR_H
-#define ACE_LOCAL_SOCK_ACCEPTOR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#include "ace/SOCK_Acceptor.h"
-#include "ace/UNIX_Addr.h"
-#include "ace/LSOCK_Stream.h"
-
-// Forward decl.
-class ACE_Reactor;
-
-/**
- * @class ACE_LSOCK_Acceptor
- *
- * @brief Defines the format and interface for the acceptor side of the
- * local ACE_SOCK ACE_Stream.
- */
-class ACE_Export ACE_LSOCK_Acceptor : public ACE_SOCK_Acceptor
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_LSOCK_Acceptor (void);
-
- /// Initiate a passive mode socket.
- ACE_LSOCK_Acceptor (const ACE_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = PF_UNIX,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /// Initiate a passive mode socket.
- int open (const ACE_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = PF_UNIX,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /// Accept a new data transfer connection.
- int accept (ACE_LSOCK_Stream &new_ipc_sap,
- ACE_Addr * = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
-
- /// Close down the ACE_LSOCK and remove the rendezvous point from the
- /// file system.
- int remove (void);
-
- /// Return the local endpoint address.
- int get_local_addr (ACE_Addr &) const;
-
- // = Meta-type info
- typedef ACE_UNIX_Addr PEER_ADDR;
- typedef ACE_LSOCK_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Address of our rendezvous point.
- ACE_UNIX_Addr local_addr_;
-};
-
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
-#include "ace/post.h"
-#endif /* ACE_LOCAL_SOCK_ACCEPTOR_H */
diff --git a/ace/LSOCK_CODgram.cpp b/ace/LSOCK_CODgram.cpp
deleted file mode 100644
index 759bbb42cff..00000000000
--- a/ace/LSOCK_CODgram.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-// LSOCK_CODgram.cpp
-// $Id$
-
-#include "ace/LSOCK_CODgram.h"
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, LSOCK_CODgram, "$Id$")
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/LSOCK_CODgram.i"
-#endif
-
-ACE_ALLOC_HOOK_DEFINE(ACE_LSOCK_CODgram)
-
-void
-ACE_LSOCK_CODgram::dump (void) const
-{
- ACE_TRACE ("ACE_LSOCK_CODgram::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_SOCK_CODgram::dump ();
- ACE_LSOCK::dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-/* Here's the general-purpose open routine. */
-
-int
-ACE_LSOCK_CODgram::open (const ACE_Addr &remote,
- const ACE_Addr &local,
- int protocol_family,
- int protocol)
-{
- ACE_TRACE ("ACE_LSOCK_CODgram::open");
- if (ACE_SOCK_CODgram::open (remote, local, protocol_family,
- protocol) == -1)
- return -1;
- ACE_LSOCK::set_handle (this->get_handle ());
- return 0;
-}
-
-/* Create a local ACE_SOCK datagram. */
-
-ACE_LSOCK_CODgram::ACE_LSOCK_CODgram (const ACE_Addr &remote,
- const ACE_Addr &local,
- int protocol_family,
- int protocol)
-{
- ACE_TRACE ("ACE_LSOCK_CODgram::ACE_LSOCK_CODgram");
- if (this->open (remote, local, protocol_family,
- protocol) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_LSOCK_CODgram")));
-}
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
diff --git a/ace/LSOCK_CODgram.h b/ace/LSOCK_CODgram.h
deleted file mode 100644
index 44c30f1918b..00000000000
--- a/ace/LSOCK_CODgram.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file LSOCK_CODgram.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_LOCAL_SOCK_CODGRAM_H
-#define ACE_LOCAL_SOCK_CODGRAM_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#include "ace/LSOCK.h"
-#include "ace/SOCK_CODgram.h"
-#include "ace/Addr.h"
-
-/**
- * @class ACE_LSOCK_CODgram
- *
- * @brief Defines the member functions for the <ACE_LSOCK> connected
- * datagram abstraction.
- */
-class ACE_Export ACE_LSOCK_CODgram : public ACE_SOCK_CODgram, public ACE_LSOCK
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_LSOCK_CODgram (void);
-
- /// Initiate a connected-datagram.
- ACE_LSOCK_CODgram (const ACE_Addr &remote_sap,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int protocol_family = PF_UNIX,
- int protocol = 0);
-
- /// Initiate a connected-datagram.
- int open (const ACE_Addr &remote_sap,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int protocol_family = PF_UNIX,
- int protocol = 0);
-
- /// Get underlying handle.
- ACE_HANDLE get_handle (void) const;
-
- /// Set underlying handle.
- void set_handle (ACE_HANDLE);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/LSOCK_CODgram.i"
-#endif
-
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
-#include "ace/post.h"
-#endif /* ACE_LOCAL_SOCK_CODGRAM_H */
diff --git a/ace/LSOCK_CODgram.i b/ace/LSOCK_CODgram.i
deleted file mode 100644
index 80a6071770c..00000000000
--- a/ace/LSOCK_CODgram.i
+++ /dev/null
@@ -1,27 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// LSOCK_CODgram.i
-
-// Do nothing constructor.
-
-ASYS_INLINE
-ACE_LSOCK_CODgram::ACE_LSOCK_CODgram (void)
-{
- ACE_TRACE ("ACE_LSOCK_CODgram::ACE_LSOCK_CODgram");
-}
-
-ASYS_INLINE void
-ACE_LSOCK_CODgram::set_handle (ACE_HANDLE h)
-{
- ACE_TRACE ("ACE_LSOCK_CODgram::set_handle");
- this->ACE_SOCK_CODgram::set_handle (h);
- this->ACE_LSOCK::set_handle (h);
-}
-
-ASYS_INLINE ACE_HANDLE
-ACE_LSOCK_CODgram::get_handle (void) const
-{
- ACE_TRACE ("ACE_LSOCK_CODgram::get_handle");
- return this->ACE_SOCK_CODgram::get_handle ();
-}
diff --git a/ace/LSOCK_Connector.cpp b/ace/LSOCK_Connector.cpp
deleted file mode 100644
index b4ef7f4b950..00000000000
--- a/ace/LSOCK_Connector.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-// LSOCK_Connector.cpp
-// $Id$
-
-#include "ace/LSOCK_Connector.h"
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, LSOCK_Connector, "$Id$")
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/LSOCK_Connector.i"
-#endif
-
-ACE_ALLOC_HOOK_DEFINE(ACE_LSOCK_Connector)
-
-void
-ACE_LSOCK_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_LSOCK_Connector::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_LSOCK_Connector::ACE_LSOCK_Connector (void)
-{
- ACE_TRACE ("ACE_LSOCK_Connector::ACE_LSOCK_Connector");
-}
-
-// Establish a connection.
-ACE_LSOCK_Connector::ACE_LSOCK_Connector (ACE_LSOCK_Stream &new_stream,
- const ACE_UNIX_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms)
- : ACE_SOCK_Connector (new_stream,
- remote_sap,
- timeout,
- local_sap,
- reuse_addr,
- flags,
- perms)
-{
- ACE_TRACE ("ACE_LSOCK_Connector::ACE_LSOCK_Connector");
- // This is necessary due to the weird inheritance relationships of
- // ACE_LSOCK_Stream.
- new_stream.set_handle (new_stream.get_handle ());
-}
-
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
diff --git a/ace/LSOCK_Connector.h b/ace/LSOCK_Connector.h
deleted file mode 100644
index 92c4cfe4682..00000000000
--- a/ace/LSOCK_Connector.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file LSOCK_Connector.h
- *
- * $Id$
- *
- * @author Doug Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_LOCAL_SOCK_CONNECTOR_H
-#define ACE_LOCAL_SOCK_CONNECTOR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#include "ace/SOCK_Connector.h"
-#include "ace/LSOCK_Stream.h"
-#include "ace/UNIX_Addr.h"
-
-/**
- * @class ACE_LSOCK_Connector
- *
- * @brief Defines the format and interface for the connector side of
- * the <ACE_LSOCK_Stream>.
- */
-class ACE_Export ACE_LSOCK_Connector : public ACE_SOCK_Connector
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_LSOCK_Connector (void);
-
- /**
- * Actively connect and produce a <new_stream> if things go well.
- * All arguments are relayed to the ACE_SOCK_Connector constructor
- * for handling.
- * @see ACE_SOCK_Connector().
- */
- ACE_LSOCK_Connector (ACE_LSOCK_Stream &new_stream,
- const ACE_UNIX_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0);
-
- /**
- * Actively connect and produce a <new_stream> if things go well.
- * The @c ACE_SOCK_Connector::connect() method is called to perform
- * the actual connection attempt.
- * @see ACE_SOCK_Connector::connect().
- */
- int connect (ACE_LSOCK_Stream &new_stream,
- const ACE_UNIX_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0);
-
- // = Meta-type info
- typedef ACE_UNIX_Addr PEER_ADDR;
- typedef ACE_LSOCK_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/LSOCK_Connector.i"
-#endif
-
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
-#include "ace/post.h"
-#endif /* ACE_LOCAL_SOCK_CONNECTOR_H */
diff --git a/ace/LSOCK_Connector.i b/ace/LSOCK_Connector.i
deleted file mode 100644
index 1f3d6781771..00000000000
--- a/ace/LSOCK_Connector.i
+++ /dev/null
@@ -1,26 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// LSOCK_Connector.i
-
-// Establish a connection.
-
-ASYS_INLINE int
-ACE_LSOCK_Connector::connect (ACE_LSOCK_Stream &new_stream,
- const ACE_UNIX_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_LSOCK_Connector::connect");
- int result = ACE_SOCK_Connector::connect (new_stream, remote_sap,
- timeout, local_sap,
- reuse_addr, flags, perms);
- if (result != -1)
- // This is necessary due to the weird inheritance relationships of ACE_LSOCK_Stream.
- new_stream.set_handle (new_stream.get_handle ());
- return result;
-}
-
diff --git a/ace/LSOCK_Dgram.cpp b/ace/LSOCK_Dgram.cpp
deleted file mode 100644
index 9a44cfa08a0..00000000000
--- a/ace/LSOCK_Dgram.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// $Id$
-
-#include "ace/LSOCK_Dgram.h"
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, LSOCK_Dgram, "$Id$")
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/LSOCK_Dgram.i"
-#endif
-
-ACE_ALLOC_HOOK_DEFINE(ACE_LSOCK_Dgram)
-
-void
-ACE_LSOCK_Dgram::dump (void) const
-{
- ACE_TRACE ("ACE_LSOCK_Dgram::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_SOCK_Dgram::dump ();
- ACE_LSOCK::dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// The "do nothing" constructor.
-
-ACE_LSOCK_Dgram::ACE_LSOCK_Dgram (void)
-{
- ACE_TRACE ("ACE_LSOCK_Dgram::ACE_LSOCK_Dgram");
-}
-
-// Here's the general-purpose open routine.
-
-int
-ACE_LSOCK_Dgram::open (const ACE_Addr &local,
- int protocol_family,
- int protocol)
-{
- ACE_TRACE ("ACE_LSOCK_Dgram::open");
- if (ACE_SOCK_Dgram::open (local,
- protocol_family,
- protocol) == -1)
- return -1;
- ACE_LSOCK::set_handle (this->ACE_SOCK_Dgram::get_handle ());
- return 0;
-}
-
-// Create a local ACE_SOCK datagram.
-
-ACE_LSOCK_Dgram::ACE_LSOCK_Dgram (const ACE_Addr &local,
- int protocol_family,
- int protocol)
-{
- ACE_TRACE ("ACE_LSOCK_Dgram::ACE_LSOCK_Dgram");
- if (this->open (local,
- protocol_family,
- protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_LSOCK_Dgram")));
-}
-
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
diff --git a/ace/LSOCK_Dgram.h b/ace/LSOCK_Dgram.h
deleted file mode 100644
index 5f63e25c80d..00000000000
--- a/ace/LSOCK_Dgram.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- C++ -*- */
-
-
-//=============================================================================
-/**
- * @file LSOCK_Dgram.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_LOCAL_SOCK_DGRAM_H
-#define ACE_LOCAL_SOCK_DGRAM_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#include "ace/SOCK_Dgram.h"
-#include "ace/LSOCK.h"
-
-/**
- * @class ACE_LSOCK_Dgram
- *
- * @brief Create a Local ACE_SOCK datagram.
- */
-class ACE_Export ACE_LSOCK_Dgram : public ACE_SOCK_Dgram, public ACE_LSOCK
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_LSOCK_Dgram (void);
-
- /// Initiate a local dgram.
- ACE_LSOCK_Dgram (const ACE_Addr &local,
- int protocol_family = PF_UNIX,
- int protocol = 0);
-
- /// Initiate a local dgram.
- int open (const ACE_Addr &local,
- int protocol_family = PF_UNIX,
- int protocol = 0);
-
- /// Get handle.
- ACE_HANDLE get_handle (void) const;
-
- /// Set handle.
- void set_handle (ACE_HANDLE);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/LSOCK_Dgram.i"
-#endif
-
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
-#include "ace/post.h"
-#endif /* ACE_LOCAL_SOCK_DGRAM_H */
diff --git a/ace/LSOCK_Dgram.i b/ace/LSOCK_Dgram.i
deleted file mode 100644
index ffc1890d12b..00000000000
--- a/ace/LSOCK_Dgram.i
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// LSOCK_Dgram.i
-
-ASYS_INLINE void
-ACE_LSOCK_Dgram::set_handle (ACE_HANDLE h)
-{
- ACE_TRACE ("ACE_LSOCK_Dgram::set_handle");
- this->ACE_SOCK_Dgram::set_handle (h);
- this->ACE_LSOCK::set_handle (h);
-}
-
-ASYS_INLINE ACE_HANDLE
-ACE_LSOCK_Dgram::get_handle (void) const
-{
- ACE_TRACE ("ACE_LSOCK_Dgram::get_handle");
- return this->ACE_SOCK_Dgram::get_handle ();
-}
-
diff --git a/ace/LSOCK_Stream.cpp b/ace/LSOCK_Stream.cpp
deleted file mode 100644
index 6340d3d57e4..00000000000
--- a/ace/LSOCK_Stream.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-// LSOCK_Stream.cpp
-// $Id$
-
-#include "ace/LSOCK_Stream.h"
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, LSOCK_Stream, "$Id$")
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/LSOCK_Stream.i"
-#endif
-
-ACE_ALLOC_HOOK_DEFINE(ACE_LSOCK_Stream)
-
-int
-ACE_LSOCK_Stream::get_local_addr (ACE_Addr &addr) const
-{
- ACE_TRACE ("ACE_LSOCK_Stream::get_local_addr");
-
- // Perform the downcast since <addr> had better be an
- // <ACE_UNIX_Addr>.
- ACE_UNIX_Addr *rhs_unix_addr = ACE_dynamic_cast (ACE_UNIX_Addr *, &addr);
- ACE_UNIX_Addr lhs_unix_addr;
-
- if (rhs_unix_addr == 0)
- return -1;
- else if (ACE_SOCK::get_local_addr (lhs_unix_addr) == -1)
- return -1;
- else
- {
- *rhs_unix_addr = lhs_unix_addr;
- return 0;
- }
-}
-
-int
-ACE_LSOCK_Stream::get_remote_addr (ACE_Addr &addr) const
-{
- ACE_TRACE ("ACE_LSOCK_Stream::get_remote_addr");
-
- return this->get_local_addr (addr);
-}
-
-void
-ACE_LSOCK_Stream::dump (void) const
-{
- ACE_TRACE ("ACE_LSOCK_Stream::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_SOCK_Stream::dump ();
- ACE_LSOCK::dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#if defined (ACE_HAS_MSG)
-
-// Send a readv-style vector of buffers, along with an open I/O
-// handle.
-
-ssize_t
-ACE_LSOCK_Stream::send_msg (const iovec iov[],
- size_t n,
- ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_LSOCK_Stream::send_msg");
- msghdr send_msg;
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- char cmsgbuf[ACE_BSD_CONTROL_MSG_LEN];
- cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf;
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
-
- send_msg.msg_iov = (iovec *) iov;
- send_msg.msg_iovlen = n;
- send_msg.msg_name = 0;
- send_msg.msg_namelen = 0;
-
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- cmsgptr->cmsg_level = SOL_SOCKET;
- cmsgptr->cmsg_type = SCM_RIGHTS;
- cmsgptr->cmsg_len = sizeof cmsgbuf;
- send_msg.msg_control = cmsgbuf;
- send_msg.msg_controllen = sizeof cmsgbuf;
- *(ACE_HANDLE *) CMSG_DATA (cmsgptr) = handle;
- send_msg.msg_flags = 0 ;
-#else
- send_msg.msg_accrights = (char *) &handle;
- send_msg.msg_accrightslen = sizeof handle;
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
-
- return ACE_OS::sendmsg (this->ACE_SOCK_Stream::get_handle (),
- &send_msg, 0);
-}
-
-// Read a readv-style vector of buffers, along with an open I/O
-// handle.
-
-ssize_t
-ACE_LSOCK_Stream::recv_msg (iovec iov[],
- size_t n,
- ACE_HANDLE &handle)
-{
- ACE_TRACE ("ACE_LSOCK_Stream::recv_msg");
- msghdr recv_msg;
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- char cmsgbuf[ACE_BSD_CONTROL_MSG_LEN];
- cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf;
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
-
- recv_msg.msg_iov = (iovec *) iov;
- recv_msg.msg_iovlen = n;
- recv_msg.msg_name = 0;
- recv_msg.msg_namelen = 0;
-
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- recv_msg.msg_control = cmsgbuf;
- recv_msg.msg_controllen = sizeof cmsgbuf;
- ssize_t result = ACE_OS::recvmsg (this->ACE_SOCK_Stream::get_handle (),
- &recv_msg, 0);
- handle = *(ACE_HANDLE*) CMSG_DATA (cmsgptr) ;
- return result;
-#else
- recv_msg.msg_accrights = (char *) &handle;
- recv_msg.msg_accrightslen = sizeof handle;
-
- return ACE_OS::recvmsg (this->ACE_SOCK_Stream::get_handle (),
- &recv_msg, 0);
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
-}
-#endif /* ACE_HAS_MSG */
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
diff --git a/ace/LSOCK_Stream.h b/ace/LSOCK_Stream.h
deleted file mode 100644
index 5395c7a8d53..00000000000
--- a/ace/LSOCK_Stream.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file LSOCK_Stream.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_LOCAL_SOCK_STREAM_H
-#define ACE_LOCAL_SOCK_STREAM_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#include "ace/SOCK_Stream.h"
-#include "ace/UNIX_Addr.h"
-#include "ace/LSOCK.h"
-
-/**
- * @class ACE_LSOCK_Stream
- *
- * @brief Create a Local ACE_SOCK stream.
- */
-class ACE_Export ACE_LSOCK_Stream : public ACE_SOCK_Stream, public ACE_LSOCK
-{
-public:
- // = Send/recv methods.
- /// Send iovecs via <::writev>.
- ssize_t send_msg (const iovec iov[],
- size_t n,
- ACE_HANDLE handle);
-
- /// Send iovecs via <::writev>.
- ssize_t recv_msg (iovec iov[],
- size_t n,
- ACE_HANDLE &handle);
-
- /// Get handle.
- ACE_HANDLE get_handle (void) const;
-
- /// Overrides set_handle from the base classes.
- void set_handle (ACE_HANDLE fd);
-
- // = Meta-type info
- typedef ACE_UNIX_Addr PEER_ADDR;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /// This method simply returns the "local" addr.
- int get_local_addr (ACE_Addr &) const;
-
- /// This method returns the "local" addr since it's the same value
- /// for UNIX domain sockets.
- int get_remote_addr (ACE_Addr &) const;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/LSOCK_Stream.i"
-#endif
-
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
-#include "ace/post.h"
-#endif /* ACE_LOCAL_SOCK_STREAM_H */
diff --git a/ace/LSOCK_Stream.i b/ace/LSOCK_Stream.i
deleted file mode 100644
index 6ee0a6f90c7..00000000000
--- a/ace/LSOCK_Stream.i
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// LSOCK_Stream.i
-
-// Sets both the file descriptors... Overrides handle from the base
-// classes.
-
-ASYS_INLINE void
-ACE_LSOCK_Stream::set_handle (ACE_HANDLE fd)
-{
- ACE_TRACE ("ACE_LSOCK_Stream::set_handle");
- this->ACE_SOCK_Stream::set_handle (fd);
- this->ACE_LSOCK::set_handle (fd);
-}
-
-ASYS_INLINE ACE_HANDLE
-ACE_LSOCK_Stream::get_handle (void) const
-{
- ACE_TRACE ("ACE_LSOCK_Stream::get_handle");
- return this->ACE_SOCK_Stream::get_handle ();
-}
-
-
-
diff --git a/ace/Lib_Find.cpp b/ace/Lib_Find.cpp
deleted file mode 100644
index 9c1c52f1388..00000000000
--- a/ace/Lib_Find.cpp
+++ /dev/null
@@ -1,585 +0,0 @@
-// $Id$
-
-#include "ace/Lib_Find.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, Lib_Find, "$Id$")
-
-
-#if ! defined (ACE_PSOS_DIAB_MIPS)
-int
-ACE_Lib_Find::ldfind (const ACE_TCHAR* filename,
- ACE_TCHAR pathname[],
- size_t maxpathnamelen)
-{
- ACE_TRACE ("ACE_Lib_Find::ldfind");
-
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && \
- !defined (ACE_HAS_PHARLAP)
- ACE_TCHAR expanded_filename[MAXPATHLEN];
- if (ACE_TEXT_ExpandEnvironmentStrings (filename,
- expanded_filename,
- sizeof expanded_filename
- / sizeof (ACE_TCHAR)))
- filename = expanded_filename;
-#endif /* ACE_WIN32 && !ACE_HAS_WINCE && !ACE_HAS_PHARLAP */
-
- ACE_TCHAR tempcopy[MAXPATHLEN + 1];
- ACE_TCHAR searchpathname[MAXPATHLEN + 1];
-#if defined (ACE_WIN32) && defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK)
- ACE_TCHAR decorator[] = ACE_LD_DECORATOR_STR;
- ACE_TCHAR searchfilename[MAXPATHLEN + sizeof(decorator) / sizeof (ACE_TCHAR)];
-#else
- ACE_TCHAR searchfilename[MAXPATHLEN + 1];
-#endif /* ACE_WIN32 && ACE_LD_DECORATOR_STR && !ACE_DISABLE_DEBUG_DLL_CHECK */
-
- // Create a copy of filename to work with.
- if (ACE_OS::strlen (filename) + 1
- > (sizeof tempcopy / sizeof (ACE_TCHAR)))
- {
- errno = ENOMEM;
- return -1;
- }
- else
- ACE_OS::strcpy (tempcopy, filename);
-
- // Insert canonical directory separators.
- ACE_TCHAR *separator_ptr;
-
-#if (ACE_DIRECTORY_SEPARATOR_CHAR != '/')
- // Make all the directory separators "canonical" to simplify
- // subsequent code.
- ACE_Lib_Find::strrepl (tempcopy, ACE_DIRECTORY_SEPARATOR_CHAR, '/');
-#endif /* ACE_DIRECTORY_SEPARATOR_CHAR */
-
- // Separate filename from pathname.
- separator_ptr = ACE_OS::strrchr (tempcopy, '/');
-
- // This is a relative path.
- if (separator_ptr == 0)
- {
- searchpathname[0] = '\0';
- ACE_OS::strcpy (searchfilename, tempcopy);
- }
- else // This is an absolute path.
- {
- ACE_OS::strcpy (searchfilename, separator_ptr + 1);
- separator_ptr[1] = '\0';
- ACE_OS::strcpy (searchpathname, tempcopy);
- }
-
- int got_suffix = 0;
-
- // Check to see if this has an appropriate DLL suffix for the OS
- // platform.
- ACE_TCHAR *s = ACE_OS::strrchr (searchfilename, '.');
-
- const ACE_TCHAR *dll_suffix = ACE_DLL_SUFFIX;
-
- if (s != 0)
- {
- // If we have a dot, we have a suffix
- got_suffix = 1;
-
- // Check whether this matches the appropriate platform-specific
- // suffix.
-#if defined (ACE_WIN32)
- // Use <ACE_OS::strcasecmp> on any platform with
- // case-insensitive filenames.
- if (ACE_OS::strcasecmp (s, dll_suffix) != 0)
-#else
- if (ACE_OS::strcmp (s, dll_suffix) != 0)
-#endif /* ACE_WIN32 */
- {
- ACE_ERROR ((LM_WARNING,
- ACE_LIB_TEXT ("Warning: improper suffix for a ")
- ACE_LIB_TEXT ("shared library on this platform: %s\n"),
- s));
- }
- }
-
- // Make sure we've got enough space in searchfilename.
- if (ACE_OS::strlen (searchfilename)
- + ACE_OS::strlen (ACE_DLL_PREFIX)
- + got_suffix ? 0 : ACE_OS::strlen (dll_suffix) >= (sizeof searchfilename /
- sizeof (ACE_TCHAR)))
- {
- errno = ENOMEM;
- return -1;
- }
-
-#if defined (ACE_WIN32) && defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK)
- size_t len_searchfilename = ACE_OS::strlen (searchfilename);
- if (! got_suffix)
- ACE_OS_String::strcpy (searchfilename + len_searchfilename,
- decorator);
-
- for (int tag = 1; tag >= 0; tag --)
- {
- if (tag == 0)
- searchfilename [len_searchfilename] = 0;
-
-#endif /* ACE_WIN32 && ACE_LD_DECORATOR_STR && !ACE_DISABLE_DEBUG_DLL_CHECK */
- // Use absolute pathname if there is one.
- if (ACE_OS::strlen (searchpathname) > 0)
- {
- if (ACE_OS::strlen (searchfilename)
- + ACE_OS::strlen (searchpathname) >= maxpathnamelen)
- {
- errno = ENOMEM;
- return -1;
- }
- else
- {
-#if (ACE_DIRECTORY_SEPARATOR_CHAR != '/')
- // Revert to native path name separators.
- ACE_Lib_Find::strrepl (searchpathname,
- '/',
- ACE_DIRECTORY_SEPARATOR_CHAR);
-#endif /* ACE_DIRECTORY_SEPARATOR_CHAR */
- // First, try matching the filename *without* adding a
- // prefix.
-#if defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS)
- ACE_OS::sprintf (pathname,
- ACE_LIB_TEXT ("%s%s%s"),
- searchpathname,
- searchfilename,
- got_suffix ? ACE_static_cast (ACE_TCHAR *,
- ACE_LIB_TEXT (""))
- : ACE_static_cast (ACE_TCHAR *,
- dll_suffix));
-#else /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- ACE_OS::sprintf (pathname,
- ACE_LIB_TEXT ("%s%s%s"),
- searchpathname,
- searchfilename,
- got_suffix ? ACE_LIB_TEXT ("") : dll_suffix);
-#endif /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- if (ACE_OS::access (pathname, F_OK) == 0)
- return 0;
-
- // Second, try matching the filename *with* adding a prefix.
-#if defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS)
- ACE_OS::sprintf (pathname,
- ACE_LIB_TEXT ("%s%s%s%s"),
- searchpathname,
- ACE_DLL_PREFIX,
- searchfilename,
- got_suffix ? ACE_static_cast (ACE_TCHAR *,
- ACE_LIB_TEXT (""))
- : ACE_static_cast (ACE_TCHAR *,
- dll_suffix));
-#else /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- ACE_OS::sprintf (pathname,
- ACE_LIB_TEXT ("%s%s%s%s"),
- searchpathname,
- ACE_DLL_PREFIX,
- searchfilename,
- got_suffix ? ACE_LIB_TEXT ("") : dll_suffix);
-#endif /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- if (ACE_OS::access (pathname, F_OK) == 0)
- return 0;
- }
- }
-
- // Use relative filenames via LD_LIBRARY_PATH or PATH (depending on
- // OS platform).
- else
- {
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
- ACE_TCHAR *file_component = 0;
- DWORD pathlen = ACE_TEXT_SearchPath (0,
- searchfilename,
- dll_suffix,
- ACE_static_cast (DWORD,
- maxpathnamelen),
- pathname,
- &file_component);
- if (pathlen >= maxpathnamelen)
- {
- errno = ENOMEM;
- return -1;
- }
- else if (pathlen > 0)
- return 0;
-#else
- ACE_TCHAR *ld_path =
-#if defined ACE_DEFAULT_LD_SEARCH_PATH
- ACE_DEFAULT_LD_SEARCH_PATH;
-#else
- ACE_OS::getenv (ACE_LD_SEARCH_PATH);
-#endif /* ACE_DEFAULT_LD_SEARCH_PATH */
-
-#if defined (ACE_HAS_WINCE)
- ACE_TCHAR *ld_path_temp = 0;
- if (ld_path != 0)
- {
- ld_path_temp = (ACE_TCHAR *)
- ACE_OS::malloc ((ACE_OS::strlen (ld_path) + 2)
- * sizeof (ACE_TCHAR));
- if (ld_path_temp != 0)
- {
- ACE_OS::strcpy (ld_path_temp,
- ACE_LD_SEARCH_PATH_SEPARATOR_STR);
-
- ACE_OS::strcat (ld_path_temp, ld_path);
- ld_path = ld_path_temp;
- }
- else
- {
- ACE_OS::free ((void *) ld_path_temp);
- ld_path = ld_path_temp = 0;
- }
- }
-#endif /* ACE_HAS_WINCE */
-
- if (ld_path != 0
- && (ld_path = ACE_OS::strdup (ld_path)) != 0)
- {
- // strtok has the strange behavior of not separating the
- // string ":/foo:/bar" into THREE tokens. One would expect
- // that the first iteration the token would be an empty
- // string, the second iteration would be "/foo", and the
- // third iteration would be "/bar". However, this is not
- // the case; one only gets two iterations: "/foo" followed
- // by "/bar".
-
- // This is especially a problem in parsing Unix paths
- // because it is permissible to specify 'the current
- // directory' as an empty entry. So, we introduce the
- // following special code to cope with this:
-
- // Look at each dynamic lib directory in the search path.
-
- ACE_TCHAR *nextholder = 0;
- const ACE_TCHAR *path_entry =
- ACE_Lib_Find::strsplit_r (ld_path,
- ACE_LD_SEARCH_PATH_SEPARATOR_STR,
- nextholder);
- int result = 0;
-
- for (;;)
- {
- // Check if at end of search path.
- if (path_entry == 0)
- {
- errno = ENOENT;
- result = -1;
- break;
- }
- else if (ACE_OS::strlen (path_entry)
- + 1
- + ACE_OS::strlen (searchfilename)
- >= maxpathnamelen)
- {
- errno = ENOMEM;
- result = -1;
- break;
- }
- // This works around the issue where a path might have
- // an empty component indicating 'current directory'.
- // We need to do it here rather than anywhere else so
- // that the loop condition will still work.
- else if (path_entry[0] == '\0')
- path_entry = ACE_LIB_TEXT (".");
-
- // First, try matching the filename *without* adding a
- // prefix.
-#if defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS)
- ACE_OS::sprintf (pathname,
- ACE_LIB_TEXT ("%s%c%s%s"),
- path_entry,
- ACE_DIRECTORY_SEPARATOR_CHAR,
- searchfilename,
- got_suffix ? ACE_static_cast (ACE_TCHAR *,
- ACE_LIB_TEXT (""))
- : ACE_static_cast (ACE_TCHAR *,
- dll_suffix));
-#else /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- ACE_OS::sprintf (pathname,
- ACE_LIB_TEXT ("%s%c%s%s"),
- path_entry,
- ACE_DIRECTORY_SEPARATOR_CHAR,
- searchfilename,
- got_suffix ? ACE_LIB_TEXT ("") : dll_suffix);
-#endif /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- if (ACE_OS::access (pathname, F_OK) == 0)
- break;
-
- // Second, try matching the filename *with* adding a
- // prefix.
-#if defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS)
- ACE_OS::sprintf (pathname,
- ACE_LIB_TEXT ("%s%c%s%s%s"),
- path_entry,
- ACE_DIRECTORY_SEPARATOR_CHAR,
- ACE_DLL_PREFIX,
- searchfilename,
- got_suffix ? ACE_static_cast (ACE_TCHAR *,
- ACE_LIB_TEXT (""))
- : ACE_static_cast (ACE_TCHAR *,
- dll_suffix));
-#else /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- ACE_OS::sprintf (pathname,
- ACE_LIB_TEXT ("%s%c%s%s%s"),
- path_entry,
- ACE_DIRECTORY_SEPARATOR_CHAR,
- ACE_DLL_PREFIX,
- searchfilename,
- got_suffix ? ACE_LIB_TEXT ("") : dll_suffix);
-#endif /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- if (ACE_OS::access (pathname, F_OK) == 0)
- break;
-
- // Fetch the next item in the path
- path_entry = ACE_Lib_Find::strsplit_r (0,
- ACE_LD_SEARCH_PATH_SEPARATOR_STR,
- nextholder);
- }
-
-#if defined (ACE_HAS_WINCE)
- if (ld_path_temp != 0)
- ACE_OS::free (ld_path_temp);
-#endif /* ACE_HAS_WINCE */
- ACE_OS::free ((void *) ld_path);
-#if defined (ACE_HAS_WINCE) && defined (ACE_LD_DECORATOR_STR) && \
- !defined (ACE_DISABLE_DEBUG_DLL_CHECK)
- if (result == 0 || tag == 0)
-#endif /* ACE_HAS_WINCE && ACE_LD_DECORATOR_STR && !ACE_DISABLE_DEBUG_DLL_CHECK */
- return result;
- }
-#endif /* ACE_WIN32 && !ACE_HAS_WINCE */
- }
-#if defined (ACE_WIN32) && defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK)
- }
-#endif /* ACE_WIN32 && ACE_LD_DECORATOR_STR && !ACE_DISABLE_DEBUG_DLL_CHECK */
-
- errno = ENOENT;
- return -1;
-}
-
-FILE *
-ACE_Lib_Find::ldopen (const ACE_TCHAR *filename,
- const ACE_TCHAR *type)
-{
- ACE_TRACE ("ACE_Lib_Find::ldopen");
-
- ACE_TCHAR buf[MAXPATHLEN + 1];
- if (ACE_Lib_Find::ldfind (filename,
- buf,
- sizeof (buf) /sizeof (ACE_TCHAR)) == -1)
- return 0;
- else
- return ACE_OS::fopen (buf, type);
-}
-
-ACE_TCHAR *
-ACE_Lib_Find::ldname (const ACE_TCHAR *entry_point)
-{
- ACE_TRACE ("ACE_Lib_Find::ldname");
-
-#if defined (__BORLANDC__) || defined(ACE_NEEDS_DL_UNDERSCORE)
- size_t size =
- 1 // leading '_'
- + ACE_OS::strlen (entry_point)
- + 1;
-
- ACE_TCHAR *new_name;
- ACE_NEW_RETURN (new_name,
- ACE_TCHAR[size],
- 0);
-
- ACE_OS::strcpy (new_name, ACE_LIB_TEXT ("_"));
- ACE_OS::strcat (new_name, entry_point);
-
- return new_name;
-#else /* __BORLANDC__ || ACE_NEEDS_DL_UNDERSCORE */
- size_t size =
- ACE_OS::strlen (entry_point)
- + 1;
-
- ACE_TCHAR *new_name;
- ACE_NEW_RETURN (new_name,
- ACE_TCHAR[size],
- 0);
-
- ACE_OS::strcpy (new_name, entry_point);
-
- return new_name;
-#endif /* __BORLANDC__ || ACE_NEEDS_DL_UNDERSCORE */
-}
-
-int
-ACE_Lib_Find::get_temp_dir (ACE_TCHAR *buffer, size_t buffer_len)
-{
- int result;
-#if defined (ACE_WIN32)
- result = ACE_TEXT_GetTempPath (ACE_static_cast (DWORD, buffer_len),
- buffer);
-
- // Make sure to return -1 if there is an error
- if (result == 0 && ::GetLastError () != ERROR_SUCCESS
- || result > ACE_static_cast (int, buffer_len))
- result = -1;
-
-#else /* ACE_WIN32 */
-
- // On non-win32 platforms, check to see what the TMPDIR environment
- // variable is defined to be. If it doesn't exist, just use /tmp
- const ACE_TCHAR *tmpdir = ACE_OS::getenv (ACE_LIB_TEXT ("TMPDIR"));
-
- if (tmpdir == 0)
- tmpdir = ACE_LIB_TEXT ("/tmp");
-
- size_t len = ACE_OS::strlen (tmpdir);
-
- // Check to see if the buffer is large enough for the string,
- // another /, and its null character (hence the + 2)
- if ((len + 2) > buffer_len)
- {
- result = -1;
- }
- else
- {
- ACE_OS::strcpy (buffer, tmpdir);
-
- // Add a trailing slash because we cannot assume there is already one
- // at the end. And having an extra one should not cause problems.
- buffer[len] = '/';
- buffer[len + 1] = 0;
- result = 0;
- }
-#endif /* ACE_WIN32 */
- return result;
-}
-
-ACE_HANDLE
-ACE_Lib_Find::open_temp_file (const ACE_TCHAR *name, int mode, int perm)
-{
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG(perm);
- return ACE_OS::open (name,
- mode | _O_TEMPORARY);
-#else
- // Open it.
- ACE_HANDLE handle = ACE_OS::open (name, mode, perm);
-
- if (handle == ACE_INVALID_HANDLE)
- return ACE_INVALID_HANDLE;
-
- // Unlink it so that the file will be removed automatically when the
- // process goes away.
- if (ACE_OS::unlink (name) == -1)
- return -1;
- else
- // Return the handle.
- return handle;
-#endif /* ACE_WIN32 */
-}
-#endif /* ! ACE_PSOS_DIAB_MIPS */
-
-size_t
-ACE_Lib_Find::strrepl (char *s, char search, char replace)
-{
- ACE_TRACE ("ACE_Lib_Find::strrepl");
-
- size_t replaced = 0;
-
- for (size_t i = 0; s[i] != '\0'; i++)
- if (s[i] == search)
- {
- s[i] = replace;
- replaced++;
- }
-
- return replaced;
-}
-
-
-// Split a string up into 'token'-delimited pieces, ala Perl's
-// "split".
-
-char *
-ACE_Lib_Find::strsplit_r (char *str,
- const char *token,
- char *&next_start)
-{
- char *result = 0;
-
- if (str != 0)
- next_start = str;
-
- if (next_start != 0)
- {
- char *tok_loc = ACE_OS::strstr (next_start, token);
-
- if (tok_loc != 0)
- {
- // Return the beginning of the string.
- result = next_start;
-
- // Insure it's terminated.
- *tok_loc = '\0';
- next_start = tok_loc + ACE_OS::strlen (token);
- }
- else
- {
- result = next_start;
- next_start = (char *) 0;
- }
- }
-
- return result;
-}
-
-#if defined (ACE_HAS_WCHAR)
-wchar_t *
-ACE_Lib_Find::strsplit_r (wchar_t *str,
- const wchar_t *token,
- wchar_t *&next_start)
-{
- wchar_t *result = 0;
-
- if (str != 0)
- next_start = str;
-
- if (next_start != 0)
- {
- wchar_t *tok_loc = ACE_OS::strstr (next_start, token);
-
- if (tok_loc != 0)
- {
- // Return the beginning of the string.
- result = next_start;
-
- // Insure it's terminated.
- *tok_loc = '\0';
- next_start = tok_loc + ACE_OS::strlen (token);
- }
- else
- {
- result = next_start;
- next_start = (wchar_t *) 0;
- }
- }
-
- return result;
-}
-
-size_t
-ACE_Lib_Find::strrepl (wchar_t *s, wchar_t search, wchar_t replace)
-{
- ACE_TRACE ("ACE_Lib_Find::strrepl");
-
- size_t replaced = 0;
-
- for (size_t i = 0; s[i] != '\0'; i++)
- if (s[i] == search)
- {
- s[i] = replace;
- replaced++;
- }
-
- return replaced;
-}
-#endif /* ACE_HAS_WCHAR */
diff --git a/ace/Lib_Find.h b/ace/Lib_Find.h
deleted file mode 100644
index 3b5370ef252..00000000000
--- a/ace/Lib_Find.h
+++ /dev/null
@@ -1,105 +0,0 @@
-//=============================================================================
-/**
- * @file Lib_Find.h
- *
- * $Id$
- *
- * @author Priyanka Gontla <pgontla@ece.uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_LIB_FIND_H
-#define ACE_LIB_FIND_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_Lib_Find
- *
- * This class includes all the static function calls needed to search
- * and open shared libraries.
- */
-class ACE_Export ACE_Lib_Find
-{
- public:
-
- // = Methods for searching and opening shared libraries.
-
- /**
- * Finds the file <filename> either using an absolute path or using
- * a relative path in conjunction with ACE_LD_SEARCH_PATH (e.g.,
- * $LD_LIBRARY_PATH on UNIX or the directories scaned by Win32 API
- * SearchPath on Win32). This function will add appropriate suffix
- * (e.g., .dll on Win32 or .so on UNIX) according to the OS
- * platform. In addition, this function will apply the appropriate
- * prefix (e.g., "lib" on UNIX and "" on Win32) if the <filename>
- * doesn't match directly.
- */
- static int ldfind (const ACE_TCHAR* filename,
- ACE_TCHAR pathname[],
- size_t maxpathnamelen);
-
- /**
- * Uses <ldfind> to locate and open the appropriate <filename> and
- * returns a pointer to the file, else it returns a NULL
- * pointer. <type> specifies how the file should be open.
- */
- static FILE *ldopen (const ACE_TCHAR *filename,
- const ACE_TCHAR *type);
-
- /**
- * Transforms <entry_point> into a form that can be located in a
- * dynamic library using <dlsym>. For example, with Win32/Borland
- * extern "C" functions which use the default calling convention
- * have a '_' prepended. Always returns a buffer that has been
- * dynamically allocated using <operator new>.
- */
- static ACE_TCHAR *ldname (const ACE_TCHAR *entry_point);
-
- /**
- * Returns the temporary directory including the trailing slash in
- * <buffer>. Returns -1 for an error or if the buffer_len is not
- * long enough.
- */
- static int get_temp_dir (ACE_TCHAR *buffer, size_t buffer_len);
-
- /// Opening the temp file. File is automagically unlinked when it is
- /// closed. This is useful for have temp files.
- static ACE_HANDLE open_temp_file (const ACE_TCHAR *name,
- int mode,
- int perm = 0);
-
- // @@ Though the following functions dont come under the same category as
- // above, these are used only in the functions in this class. So it makes
- // more sense to move these functions too to this class.
- //
- /// Replace all instances of <search> in <s> with <replace>. Returns
- /// the number of replacements made.
- static size_t strrepl (char *s, char search, char replace);
-
- /**
- * Splits string <s> into pieces separated by the string <token>.
- * <next_start> is an opaque cookie handed back by the call to store
- * its state for the next invocation, thus making it re-entrant.
- * This operates very similar to Perl's <split> function except that
- * it returns pieces one at a time instead of into an array.
- */
- static char *strsplit_r (char *s, const char *token, char *&next_start);
-
-#if defined (ACE_HAS_WCHAR)
- /// As strrepl, but for wide characters.
- static size_t strrepl (wchar_t *s, wchar_t search, wchar_t replace);
-
- /// As strsplit_r, but for wide characters.
- static wchar_t *strsplit_r (wchar_t *s, const wchar_t *token,
- wchar_t *&next_start);
-#endif /* ACE_HAS_WCHAR */
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Lib_Find.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-#endif /* ACE_LIB_FIND_H */
diff --git a/ace/Lib_Find.i b/ace/Lib_Find.i
deleted file mode 100644
index cfa1da318d3..00000000000
--- a/ace/Lib_Find.i
+++ /dev/null
@@ -1 +0,0 @@
-// $Id$
diff --git a/ace/Local_Name_Space.cpp b/ace/Local_Name_Space.cpp
deleted file mode 100644
index 98cf501b8c0..00000000000
--- a/ace/Local_Name_Space.cpp
+++ /dev/null
@@ -1,218 +0,0 @@
-#ifndef ACE_LOCAL_NAME_SPACE_CPP
-#define ACE_LOCAL_NAME_SPACE_CPP
-
-#include "ace/ACE.h"
-#include "ace/Local_Name_Space.h"
-#include "ace/RW_Process_Mutex.h"
-
-ACE_RCSID (ace,
- Local_Name_Space,
- "$Id$")
-
-ACE_NS_String::~ACE_NS_String (void)
-{
- if (this->delete_rep_)
- delete [] this->rep_;
-}
-
-ACE_WCHAR_T *
-ACE_NS_String::fast_rep (void) const
-{
- ACE_TRACE ("ACE_NS_String::fast_rep");
- return this->rep_;
-}
-
-ACE_NS_String::operator ACE_NS_WString () const
-{
- ACE_TRACE ("ACE_NS_String::operator ACE_NS_WString");
- return ACE_NS_WString (this->rep_,
- (this->len_ / sizeof (ACE_WCHAR_T)) - 1);
-}
-
-size_t
-ACE_NS_String::len (void) const
-{
- ACE_TRACE ("ACE_NS_String::len");
- return this->len_;
-}
-
-char *
-ACE_NS_String::char_rep (void) const
-{
- ACE_TRACE ("ACE_NS_String::char_rep");
- ACE_NS_WString w_string (this->rep_,
- (this->len_ / sizeof (ACE_WCHAR_T)) - 1);
- return w_string.char_rep ();
-}
-
-ACE_NS_String::ACE_NS_String (void)
- : len_ (0),
- rep_ (0),
- delete_rep_ (0)
-{
- ACE_TRACE ("ACE_NS_String::ACE_NS_String");
-}
-
-ACE_NS_String::ACE_NS_String (const ACE_NS_WString &s)
- : len_ ((s.length () + 1) * sizeof (ACE_WCHAR_T)),
- rep_ (s.rep ()),
- delete_rep_ (1)
-{
- ACE_TRACE ("ACE_NS_String::ACE_NS_String");
-}
-
-int
-ACE_NS_String::strstr (const ACE_NS_String &s) const
-{
- ACE_TRACE ("ACE_NS_String::strstr");
-
- if (this->len_ < s.len_)
- // If they're larger than we are they can't be a substring of us!
- return -1;
- else if (this->len_ == s.len_)
- // Check if we're equal.
- return *this == s ? 0 : -1;
- else
- {
- // They're smaller than we are...
- const size_t len = (this->len_ - s.len_) / sizeof (ACE_WCHAR_T);
- const size_t pat_len = s.len_ / sizeof (ACE_WCHAR_T) - 1;
-
- for (size_t i = 0; i <= len; ++i)
- {
- size_t j;
-
- for (j = 0; j < pat_len; ++j)
- if (this->rep_[i + j] != s.rep_[j])
- break;
-
- if (j == pat_len)
- // Found a match! Return the index.
- return ACE_static_cast (int, i);
- }
-
- return -1;
- }
-}
-
-int
-ACE_NS_String::operator == (const ACE_NS_String &s) const
-{
- ACE_TRACE ("ACE_NS_String::operator ==");
- return this->len_ == s.len_
- && ACE_OS::memcmp ((void *) this->rep_,
- (void *) s.rep_, this->len_) == 0;
-}
-
-int
-ACE_NS_String::operator != (const ACE_NS_String &s) const
-{
- ACE_TRACE ("ACE_NS_String::operator !=");
- return !this->operator == (s);
-}
-
-ACE_NS_String::ACE_NS_String (ACE_WCHAR_T *dst,
- const ACE_WCHAR_T *src,
- size_t bytes)
- : len_ (bytes),
- rep_ (dst),
- delete_rep_ (0)
-{
- ACE_TRACE ("ACE_NS_String::ACE_NS_String");
- ACE_OS::memcpy (this->rep_, src, bytes);
-}
-
-u_long
-ACE_NS_String::hash (void) const
-{
- return ACE::hash_pjw
- (ACE_reinterpret_cast (char *, ACE_const_cast (ACE_WCHAR_T *,
- this->rep_)),
- this->len_);
-}
-
-ACE_NS_Internal::ACE_NS_Internal (void)
-{
-}
-
-ACE_NS_Internal::ACE_NS_Internal (ACE_NS_String &value, const char *type)
- : value_ (value),
- type_ (type)
-{
- ACE_TRACE ("ACE_NS_Internal::ACE_NS_Internal");
-}
-
-int
-ACE_NS_Internal::operator == (const ACE_NS_Internal &s) const
-{
- ACE_TRACE ("ACE_NS_Internal::operator ==");
- return this->value_ == s.value_;
-}
-
-ACE_NS_String
-ACE_NS_Internal::value (void)
-{
- ACE_TRACE ("ACE_NS_Internal::value");
- return this->value_;
-}
-
-const char *
-ACE_NS_Internal::type (void)
-{
- ACE_TRACE ("ACE_NS_Internal::type");
- return this->type_;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-#if (1)
-template class ACE_Hash_Map_Entry<ACE_NS_String, ACE_NS_Internal>;
-template class ACE_Hash<ACE_NS_String>;
-template class ACE_Equal_To<ACE_NS_String>;
-template class ACE_Hash_Map_Manager_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Base_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex>;
-#else
-template class ACE_Map_Entry<ACE_NS_String, ACE_NS_Internal>;
-template class ACE_Map_Manager<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex>;
-template class ACE_Map_Iterator<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex>;
-#endif
-template class ACE_Unbounded_Set<ACE_Name_Binding>;
-template class ACE_Unbounded_Set_Iterator<ACE_Name_Binding>;
-template class ACE_Unbounded_Set<ACE_NS_WString>;
-template class ACE_Unbounded_Set_Iterator<ACE_NS_WString>;
-template class ACE_Node<ACE_NS_WString>;
-template class ACE_Node<ACE_Name_Binding>;
-template class ACE_Guard<ACE_RW_Process_Mutex>;
-template class ACE_Read_Guard<ACE_RW_Process_Mutex>;
-template class ACE_Write_Guard<ACE_RW_Process_Mutex>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#if (1)
-#pragma instantiate ACE_Hash_Map_Entry<ACE_NS_String, ACE_NS_Internal>
-#pragma instantiate ACE_Hash<ACE_NS_String>
-#pragma instantiate ACE_Equal_To<ACE_NS_String>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex>
-#else
-#pragma instantiate ACE_Map_Entry<ACE_NS_String, ACE_NS_Internal>
-#pragma instantiate ACE_Map_Manager<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex>
-#endif
-#pragma instantiate ACE_Unbounded_Set<ACE_Name_Binding>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_Name_Binding>
-#pragma instantiate ACE_Unbounded_Set<ACE_NS_WString>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_NS_WString>
-#pragma instantiate ACE_Node<ACE_NS_WString>
-#pragma instantiate ACE_Node<ACE_Name_Binding>
-#pragma instantiate ACE_Guard<ACE_RW_Process_Mutex>
-#pragma instantiate ACE_Read_Guard<ACE_RW_Process_Mutex>
-#pragma instantiate ACE_Write_Guard<ACE_RW_Process_Mutex>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_LOCAL_NAME_SPACE_CPP */
diff --git a/ace/Local_Name_Space.h b/ace/Local_Name_Space.h
deleted file mode 100644
index 0779faab512..00000000000
--- a/ace/Local_Name_Space.h
+++ /dev/null
@@ -1,129 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Local_Name_Space.h
- *
- * $Id$
- *
- * @author Prashant Jain (pjain@cs.wustl.edu)
- * @author Irfan Pyarali (irfan@wuerl.wustl.edu)
- * @author and Douglas C. Schmidt (schmidt@cs.wustl.edu).
- */
-//=============================================================================
-
-#ifndef ACE_LOCAL_NAME_SPACE_H
-#define ACE_LOCAL_NAME_SPACE_H
-
-#include "ace/pre.h"
-
-#include "ace/SString.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Malloc_T.h"
-#include "ace/Synch.h"
-
-/**
- * @class ACE_NS_String
- *
- * @brief This class and ACE_NS_Internal are used as Adapters to work
- * with the Map_Manager.
- *
- * In order to work correctly, this class must be able to
- * convert back and forth with <ACE_NS_WStrings>.
- */
-class ACE_Export ACE_NS_String
-{
-public:
- // = Initialization.
- /// Default "no-op" constructor.
- ACE_NS_String (void);
-
- /// Initialization method.
- ACE_NS_String (ACE_WCHAR_T *dst,
- const ACE_WCHAR_T *src,
- size_t len);
-
- /// Converts an ACE_NS_WString to an ACE_NS_String;
- ACE_NS_String (const ACE_NS_WString &);
-
- /// Destructor
- ~ACE_NS_String (void);
-
- /// Converts an ACE_NS_String to fresh copy of an ACE_NS_WString;
- operator ACE_NS_WString () const;
-
- /// Return the ASCII character representation.
- char *char_rep (void) const;
-
- /// Matches on substrings.
- int strstr (const ACE_NS_String &) const;
-
- /// Compare an ACE_NS_String.
- int operator == (const ACE_NS_String &) const;
-
- /// Compare an ACE_NS_String.
- int operator != (const ACE_NS_String &) const;
-
- /// Returns length of the string
- size_t len (void) const;
-
- /// Returns the underlying representation.
- ACE_WCHAR_T *fast_rep (void) const;
-
- /// Returns a hash value for this string.
- u_long hash (void) const;
-
-private:
- /// Length of the string.
- size_t len_;
-
- /// This actually points into shared/persistent memory.
- ACE_WCHAR_T *rep_;
-
- /// Should rep_ be deleted when destructed (only used
- /// for WString conversions)
- int delete_rep_;
-};
-
-/**
- * @class ACE_NS_Internal
- *
- * @brief This class and ACE_NS_String are used as Adapters to work
- * with the Map_Manager.
- */
-class ACE_Export ACE_NS_Internal
-{
-public:
- /// No-op constructor.
- ACE_NS_Internal (void);
-
- /// Constructor.
- ACE_NS_Internal (ACE_NS_String &value, const char *type);
-
- /// Compare an ACE_NS_Internal
- int operator == (const ACE_NS_Internal &) const;
-
- /// Return value.
- ACE_NS_String value (void);
-
- /// Return type.
- const char *type (void);
-
-private:
- /// Contains the value of the string.
- ACE_NS_String value_;
-
- /// Contains the type of the string.
- const char *type_;
-};
-
-// Include the ACE_Local_Name_Space templates stuff at this point.
-#include "ace/Local_Name_Space_T.h"
-
-#include "ace/post.h"
-
-#endif /* ACE_LOCAL_NAME_SPACE_H */
diff --git a/ace/Local_Name_Space_T.cpp b/ace/Local_Name_Space_T.cpp
deleted file mode 100644
index 3cbde78bdb8..00000000000
--- a/ace/Local_Name_Space_T.cpp
+++ /dev/null
@@ -1,963 +0,0 @@
-#ifndef ACE_LOCAL_NAME_SPACE_T_CPP
-#define ACE_LOCAL_NAME_SPACE_T_CPP
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Local_Name_Space.h"
-#include "ace/Auto_Ptr.h"
-
-
-ACE_RCSID (ace,
- Local_Name_Space_T,
- "$Id$")
-
-
-template <class ALLOCATOR>
-ACE_Name_Space_Map<ALLOCATOR>::ACE_Name_Space_Map (ALLOCATOR *alloc)
- : MAP_MANAGER (alloc)
-{
- ACE_TRACE ("ACE_Name_Space_Map::ACE_Name_Space_Map");
-}
-
-template <class ALLOCATOR> int
-ACE_Name_Space_Map<ALLOCATOR>::close (ALLOCATOR *alloc)
-{
- ACE_TRACE ("ACE_Name_Space_Map::close");
-
- this->allocator_ = alloc;
- return this->close_i ();
-}
-
-template <class ALLOCATOR> int
-ACE_Name_Space_Map<ALLOCATOR>::bind (const ACE_NS_String &ext_id,
- const ACE_NS_Internal &int_id,
- ALLOCATOR *alloc)
-{
- ACE_TRACE ("ACE_Name_Space_Map::bind");
-
- this->allocator_ = alloc;
- return this->bind_i (ext_id, int_id);
-}
-
-template <class ALLOCATOR> int
-ACE_Name_Space_Map<ALLOCATOR>::unbind (const ACE_NS_String &ext_id,
- ACE_NS_Internal &int_id,
- ALLOCATOR *alloc)
-{
- ACE_TRACE ("ACE_Name_Space_Map::unbind");
-
- this->allocator_ = alloc;
- return this->unbind_i (ext_id, int_id);
-}
-
-template <class ALLOCATOR> int
-ACE_Name_Space_Map<ALLOCATOR>::rebind (const ACE_NS_String &ext_id,
- const ACE_NS_Internal &int_id,
- ACE_NS_String &old_ext_id,
- ACE_NS_Internal &old_int_id,
- ALLOCATOR *alloc)
-{
- ACE_TRACE ("ACE_Name_Space_Map::rebind");
-
- this->allocator_ = alloc;
- return this->rebind_i (ext_id, int_id, old_ext_id, old_int_id);
-}
-
-template <class ALLOCATOR> int
-ACE_Name_Space_Map<ALLOCATOR>::find (const ACE_NS_String &ext_id,
- ACE_NS_Internal &int_id,
- ALLOCATOR *alloc)
-{
- ACE_TRACE ("ACE_Name_Space_Map::find");
-
- this->allocator_ = alloc;
- return this->find_i (ext_id, int_id);
-}
-
-#if defined (ACE_WIN32)
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::remap (EXCEPTION_POINTERS *ep)
-{
- ACE_TRACE ("ACE_Local_Name_Space::remap");
-
- void *addr = (void *) ep->ExceptionRecord->ExceptionInformation[1];
-
- // The following requires Memory Pool to have ::remap()
- // defined. Thus currently this will only work for
- // ACE_MMap_Memory_Pool.
- if (this->allocator_->alloc ().memory_pool ().remap (addr) == -1)
- // Kick it upstairs...
- return EXCEPTION_CONTINUE_SEARCH;
-
-#if __X86__
- // This is 80x86-specific.
- ep->ContextRecord->Edi = (DWORD) addr;
-#elif __MIPS__
- ep->ContextRecord->IntA0 =
- ep->ContextRecord->IntV0 = (DWORD) addr;
- ep->ContextRecord->IntT5 = ep->ContextRecord->IntA0 + 3;
-#endif /* __X86__ */
- // Resume execution at the original point of "failure."
- return EXCEPTION_CONTINUE_EXECUTION;
-}
-#endif /* ACE_WIN32 */
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::shared_bind (
- const ACE_NS_WString &name,
- const ACE_NS_WString &value,
- const char *type,
- int rebind)
-{
- // Note that we *must* use structured exception handling here
- // because (1) we may need to commit virtual memory pages and (2)
- // C++ exception handling doesn't support resumption.
- int result = 0;
- ACE_SEH_TRY
- {
- result = this->shared_bind_i (name, value, type, rebind);
- }
- ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ()))
- {
- }
- return result;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::shared_bind_i (
- const ACE_NS_WString &name,
- const ACE_NS_WString &value,
- const char *type,
- int rebind)
-{
-
- ACE_TRACE ("ACE_Local_Name_Space::shared_bind_i");
- const size_t name_len = (name.length () + 1) * sizeof (ACE_WCHAR_T);
- const size_t value_len = (value.length () + 1) * sizeof (ACE_WCHAR_T);
- const size_t type_len = ACE_OS::strlen (type) + 1;
- const size_t total_len = name_len + value_len + type_len;
- char *ptr = (char *) this->allocator_->malloc (total_len);
-
- if (ptr == 0)
- return -1;
- else
- {
- // Note that the value_rep *must* come first to make sure we can
- // retrieve this pointer later on in unbind().
- ACE_WCHAR_T *value_rep = (ACE_WCHAR_T *) (ptr);
- ACE_WCHAR_T *name_rep = (ACE_WCHAR_T *) (ptr + value_len);
- char *new_type = (char *) (ptr + value_len + name_len);
-
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> name_urep (name.rep ());
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> value_urep (value.rep ());
- ACE_NS_String new_name (name_rep, name_urep.get (), name_len);
- ACE_NS_String new_value (value_rep, value_urep.get (), value_len);
-
- ACE_OS::strcpy (new_type, type);
- ACE_NS_Internal new_internal (new_value, new_type);
- int result = -1;
-
- if (rebind == 0)
- {
- // Do a normal bind. This will fail if there's already an
- // <new_internal> with the same name.
- result = this->name_space_map_->bind (new_name,
- new_internal,
- this->allocator_);
-
- if (result == 1)
- {
- // Entry already existed so bind failed. Free our
- // dynamically allocated memory.
- this->allocator_->free ((void *) ptr);
- return result;
- }
- }
- else
- {
- // Do a rebind. If there's already any entry, this will
- // return the existing <new_name> and <new_internal> and
- // overwrite the existing name binding.
- ACE_NS_String old_name;
- ACE_NS_Internal old_internal;
-
- result = this->name_space_map_->rebind (new_name, new_internal,
- old_name, old_internal,
- this->allocator_);
- if (result == 1)
- {
- // Free up the memory we allocated in shared_bind().
- // Note that this assumes that the "value" pointer comes
- // first and that the value, name, and type are
- // contiguously allocated (see above for details)
- this->allocator_->free ((void *) (old_internal.value ()).fast_rep ());
- }
- }
-
- if (result == -1)
- // Free our dynamically allocated memory.
- this->allocator_->free ((void *) ptr);
- else
- // If bind() or rebind() succeed, they will automatically sync
- // up the map manager entry. However, we must sync up our
- // name/value memory.
- this->allocator_->sync (ptr, total_len);
-
- return result;
- }
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::unbind (
- const ACE_NS_WString &name)
-{
- // Note that we *must* use structured exception handling here
- // because (1) we may need to commit virtual memory pages and (2)
- // C++ exception handling doesn't support resumption.
- int result = 0;
- ACE_SEH_TRY
- {
- result = this->unbind_i (name);
- }
- ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ()))
- {
- }
- return result;
-
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::unbind_i (
- const ACE_NS_WString &name)
-{
- ACE_TRACE ("ACE_Local_Name_Space::unbind_i");
-
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
- ACE_NS_String ns_name (name);
- ACE_NS_Internal ns_internal;
- if (this->name_space_map_->unbind (ns_name,
- ns_internal,
- this->allocator_) != 0)
- return -1;
-
- // Free up the memory we allocated in shared_bind(). Note that this
- // assumes that the "value" pointer comes first and that the value,
- // name and type are contiguously allocated (see shared_bind() for
- // details)
- this->allocator_->free ((void *) (ns_internal.value ()).fast_rep ());
- return 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::bind (
- const ACE_NS_WString &name,
- const ACE_NS_WString &value,
- const char *type)
-{
- ACE_TRACE ("ACE_Local_Name_Space::bind");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- return this->shared_bind (name, value, type, 0);
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::rebind (
- const ACE_NS_WString &name,
- const ACE_NS_WString &value,
- const char *type)
-{
- ACE_TRACE ("ACE_Local_Name_Space::rebind");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- return this->shared_bind (name, value, type, 1);
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::resolve (
- const ACE_NS_WString &name,
- ACE_NS_WString &value,
- char *&type)
-{
- // Note that we *must* use structured exception handling here
- // because (1) we may need to commit virtual memory pages and (2)
- // C++ exception handling doesn't support resumption.
- int result = 0;
- ACE_SEH_TRY
- {
- result = this->resolve_i (name, value, type);
- }
- ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ()))
- {
- }
- return result;
-}
-
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::resolve_i (
- const ACE_NS_WString &name,
- ACE_NS_WString &value,
- char *&type)
-{
- ACE_TRACE ("ACE_Local_Name_Space::resolve_i");
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- ACE_NS_String ns_name (name);
- ACE_NS_Internal ns_internal;
- ACE_NS_String nbc_string; // Note the classy variable name! :)
-
- if (this->name_space_map_->find (ns_name,
- ns_internal,
- this->allocator_) != 0)
- return -1;
-
- // Calls conversion operator and then calls the ACE_NS_WString
- // assignment operator to get a fresh copy. (*#*(@#&!*@!!*@&( HP
- // compiler causes us to add an extra copy explicitly !! :)
- nbc_string = ns_internal.value ();
- value = nbc_string;
-
- // Gets type and then the actual reprsentation which is a
- // ACE_WCHAR_T
- const char *temp = ns_internal.type ();
-
- size_t len = ACE_OS::strlen (ns_internal.type ());
- // Makes a copy here. Caller needs to call delete to free up
- // memory.
- char *new_type;
- ACE_NEW_RETURN (new_type,
- char [len + 1],
- -1);
-
- ACE_OS::strsncpy (new_type, temp, len + 1);
- type = new_type;
- return 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::open (
- ACE_Naming_Context::Context_Scope_Type scope_in)
-{
- ACE_TRACE ("ACE_Local_Name_Space::open");
- this->ns_scope_ = scope_in;
-
- return this->create_manager ();
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK>
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::ACE_Local_Name_Space (void)
- : allocator_ (0),
- name_space_map_ (0),
- name_options_ (0)
-{
- ACE_TRACE ("ACE_Local_Name_Space::ACE_Local_Name_Space");
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK>
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::ACE_Local_Name_Space (
- ACE_Naming_Context::Context_Scope_Type scope_in,
- ACE_Name_Options *name_options)
- : name_options_ (name_options)
-{
- ACE_TRACE ("ACE_Local_Name_Space::ACE_Local_Name_Space");
- if (this->open (scope_in) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_Local_Name_Space::ACE_Local_Name_Space")));
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK>
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::~ACE_Local_Name_Space (void)
-{
- ACE_TRACE ("ACE_Local_Name_Space::~ACE_Local_Name_Space");
-
- // Remove the map.
- delete this->allocator_;
- delete this->lock_;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::create_manager (void)
-{
- // Note that we *must* use structured exception handling here
- // because (1) we may need to commit virtual memory pages and (2)
- // C++ exception handling doesn't support resumption.
- int result = 0;
- ACE_SEH_TRY
- {
- result = this->create_manager_i ();
- }
- ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ()))
- {
- }
- return result;
-}
-
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::create_manager_i (void)
-{
- ACE_TRACE ("ACE_Local_Name_Space::create_manager_i");
- // Get directory name
- const ACE_TCHAR *dir = this->name_options_->namespace_dir ();
- const ACE_TCHAR *database = this->name_options_->database ();
-
- // Use process name as the file name.
- size_t len = ACE_OS::strlen (dir);
- len += ACE_OS::strlen (ACE_DIRECTORY_SEPARATOR_STR);
- len += ACE_OS::strlen (database) + 1;
-
- if (len >= MAXNAMELEN + MAXPATHLEN)
- {
- errno = ENAMETOOLONG;
- return -1;
- }
-
- ACE_OS::strcpy (this->context_file_, dir);
- ACE_OS::strcat (this->context_file_, ACE_DIRECTORY_SEPARATOR_STR);
- ACE_OS::strcat (this->context_file_, database);
-
-#if !defined (CHORUS)
- ACE_MEM_POOL_OPTIONS options (this->name_options_->base_address ());
-#else
- // Use base address == 0, don't use a fixed address.
- ACE_MEM_POOL_OPTIONS options (0,
- 0,
- 0,
- ACE_CHORUS_LOCAL_NAME_SPACE_T_SIZE);
-#endif /* CHORUS */
-
- ACE_TCHAR lock_name_for_local_name_space [MAXNAMELEN + MAXPATHLEN];
- ACE_TCHAR lock_name_for_backing_store [MAXPATHLEN + MAXNAMELEN];
- const ACE_TCHAR *postfix = database;
-
- size_t length = 0;
- length = sizeof lock_name_for_local_name_space / sizeof (ACE_TCHAR);
- ACE_OS::strsncpy (lock_name_for_local_name_space,
- dir,
- length);
-
- ACE_OS::strncat (lock_name_for_local_name_space,
- ACE_DIRECTORY_SEPARATOR_STR,
- length - ACE_OS::strlen (lock_name_for_local_name_space));
- ACE_OS::strncat (lock_name_for_local_name_space,
- ACE_LIB_TEXT ("name_space_"),
- length - ACE_OS::strlen (lock_name_for_local_name_space));
- ACE_OS::strncat (lock_name_for_local_name_space,
- postfix,
- length - ACE_OS::strlen (lock_name_for_local_name_space));
-
- length = sizeof lock_name_for_backing_store / sizeof (ACE_TCHAR);
- ACE_OS::strsncpy (lock_name_for_backing_store,
- dir,
- length);
- ACE_OS::strncat (lock_name_for_backing_store,
- ACE_DIRECTORY_SEPARATOR_STR,
- length - ACE_OS::strlen (lock_name_for_backing_store));
- ACE_OS::strncat (lock_name_for_backing_store,
- ACE_LIB_TEXT ("backing_store_"),
- length - ACE_OS::strlen (lock_name_for_backing_store));
- ACE_OS::strncat (lock_name_for_backing_store,
- postfix,
- length - ACE_OS::strlen (ACE_LIB_TEXT ("backing_store_")));
-
- // Create the allocator with the appropriate options.
- ACE_NEW_RETURN (this->allocator_,
- ALLOCATOR (this->context_file_,
- lock_name_for_backing_store,
- &options), -1);
-
- if (ACE_LOG_MSG->op_status ())
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Allocator::Allocator\n")),
- -1);
-
- ACE_NEW_RETURN (this->lock_,
- ACE_LOCK (lock_name_for_local_name_space),
- -1);
-
-#if !defined (ACE_LACKS_ACCESS)
- // Now check if the backing store has been created successfully
- if (ACE_OS::access (this->context_file_, F_OK) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("create_manager\n")),
- -1);
-#endif /* ACE_LACKS_ACCESS */
-
- void *ns_map = 0;
-
- // This is the easy case since if we find the Name Server Map
- // Manager we know it's already initialized.
- if (this->allocator_->find (ACE_NAME_SERVER_MAP, ns_map) == 0)
- {
- this->name_space_map_ = (ACE_Name_Space_Map <ALLOCATOR> *) ns_map;
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("name_space_map_ = %d, ns_map = %d\n"),
- this->name_space_map_, ns_map));
- }
-
- // This is the hard part since we have to avoid potential race
- // conditions... We will use the double check here
- else
- {
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- // This is the easy case since if we find the Name Server Map
- // Manager we know it's already initialized.
- if (this->allocator_->find (ACE_NAME_SERVER_MAP, ns_map) == 0)
- {
- this->name_space_map_ = (ACE_Name_Space_Map <ALLOCATOR> *) ns_map;
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("name_space_map_ = %d, ns_map = %d\n"),
- this->name_space_map_, ns_map));
- }
- else
- {
- size_t map_size = sizeof *this->name_space_map_;
- ns_map = this->allocator_->malloc (map_size);
-
- // Initialize the map into its memory location (e.g., shared memory).
- this->name_space_map_ =
- new (ns_map) ACE_Name_Space_Map <ALLOCATOR> (this->allocator_);
-
- if (this->allocator_->bind (ACE_NAME_SERVER_MAP, ns_map) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("create_manager\n")), -1);
- }
-
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("name_space_map_ = %d, ns_map = %d\n"),
- this->name_space_map_, ns_map));
- }
-
- return 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::list_names_i (
- ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_TRACE ("ACE_Local_Name_Space::list_names_i");
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_);
- MAP_MANAGER::ENTRY *map_entry;
-
- int result = 1;
-
- for (map_entry = 0;
- map_iterator.next (map_entry) != 0;
- map_iterator.advance())
- {
- if (map_entry->ext_id_.strstr (pattern) != -1)
- {
- ACE_NS_WString entry (map_entry->ext_id_ );
-
- if (set.insert (entry) == -1)
- {
- result = -1;
- break;
- }
- else
- result = 0;
- }
- }
-
- return result;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::list_values_i (
- ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_TRACE ("ACE_Local_Name_Space::list_values_i");
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_);
- MAP_MANAGER::ENTRY *map_entry;
-
- int result = 1;
-
- for (map_entry = 0;
- map_iterator.next (map_entry) != 0;
- map_iterator.advance ())
- {
- if (map_entry->int_id_.value ().strstr (pattern) != -1)
- {
- ACE_NS_WString entry (map_entry->int_id_.value ());
-
- if (set.insert (entry) == -1)
- {
- result = -1;
- break;
- }
- else
- result = 0;
- }
- }
-
- return result;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::list_types_i (
- ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_TRACE ("ACE_Local_Name_Space::list_types_i");
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_);
- MAP_MANAGER::ENTRY *map_entry;
-
- char *compiled_regexp = 0;
-
- // Note that char_rep() allocates memory so we need to delete it
- char *pattern_rep = pattern.char_rep ();
-
- // Check for wildcard case first.
- if (ACE_OS::strcmp ("", pattern_rep) == 0)
- ACE_ALLOCATOR_RETURN (compiled_regexp,
- ACE_OS::strdup (""),
- -1);
- else
- // Compile the regular expression (the 0's cause ACE_OS::compile
- // to allocate space).
-#if defined (ACE_HAS_REGEX)
- compiled_regexp = ACE_OS::compile (pattern_rep, 0, 0);
-#else
- // If we don't have regular expressions just use the pattern
- // directly.
- compiled_regexp = pattern_rep;
-#endif /* ACE_HAS_REGEX */
-
- int result = 1;
-
- for (map_entry = 0;
- map_iterator.next (map_entry) != 0;
- map_iterator.advance ())
- {
- // Get the type
- const char *type = map_entry->int_id_.type ();
-
- // Everything matches the wildcard.
- if (ACE_OS::strcmp ("", pattern_rep) == 0
-#if defined (ACE_HAS_REGEX)
- || ACE_OS::step (type, compiled_regexp) != 0)
-#else
- // If we don't have regular expressions just use strstr() for
- // substring matching.
- || ACE_OS::strstr (type, compiled_regexp) != 0)
-#endif /* ACE_HAS_REGEX */
-
- {
- ACE_NS_WString entry (type);
-
- if (set.insert (entry) == -1)
- {
- result = -1;
- break;
- }
- else
- result = 0;
- }
- }
-#if defined (ACE_HAS_REGEX)
- if (compiled_regexp)
- ACE_OS::free ((void *) compiled_regexp);
-#endif /* ACE_HAS_REGEX */
- delete [] pattern_rep; // delete pattern_rep;
- return result;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space <ACE_MEM_POOL_2, ACE_LOCK>::list_name_entries_i (
- ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_TRACE ("ACE_Local_Name_Space::list_name_entries_i");
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_);
- MAP_MANAGER::ENTRY *map_entry;
-
- for (map_entry = 0;
- map_iterator.next (map_entry) != 0;
- map_iterator.advance())
- {
- if (map_entry->ext_id_.strstr (pattern) != -1)
- {
- ACE_Name_Binding entry (map_entry->ext_id_,
- map_entry->int_id_.value (),
- map_entry->int_id_.type ());
-
- if (set.insert (entry) == -1)
- return -1;
- }
- }
-
- return 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::list_value_entries_i (
- ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_TRACE ("ACE_Local_Name_Space::list_value_entries_i");
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_);
- MAP_MANAGER::ENTRY *map_entry;
-
- for (map_entry = 0;
- map_iterator.next (map_entry) != 0;
- map_iterator.advance ())
- {
- if (map_entry->int_id_.value ().strstr (pattern) != -1)
- {
- ACE_Name_Binding entry (map_entry->ext_id_,
- map_entry->int_id_.value (),
- map_entry->int_id_.type ());
-
- if (set.insert (entry) == -1)
- return -1;
- }
- }
- return 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::list_type_entries_i (
- ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_TRACE ("ACE_Local_Name_Space::list_type_entries_i");
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_);
- MAP_MANAGER::ENTRY *map_entry;
-
- char *compiled_regexp = 0;
- // Note that char_rep() allocates memory so we need to delete it
- char *pattern_rep = pattern.char_rep ();
-
- // Check for wildcard case first.
- if (ACE_OS::strcmp ("", pattern_rep) == 0)
- compiled_regexp = ACE_OS::strdup ("");
- else
- // Compile the regular expression (the 0's cause ACE_OS::compile
- // to allocate space).
-#if defined (ACE_HAS_REGEX)
- compiled_regexp = ACE_OS::compile (pattern_rep, 0, 0);
-#else /* If we don't have regular expressions just the pattern
- directly. */
- compiled_regexp = pattern_rep;
-#endif /* ACE_HAS_REGEX */
-
- for (map_entry = 0;
- map_iterator.next (map_entry) != 0;
- map_iterator.advance ())
- {
- // Get the type.
- const char *type = map_entry->int_id_.type ();
-
- if (ACE_OS::strcmp ("", pattern_rep) == 0 // Everything matches
- // the wildcard.
-#if defined (ACE_HAS_REGEX)
- || ACE_OS::step (type, compiled_regexp) != 0)
-#else /* If we don't have regular expressions just use strstr() for
- substring matching. */
- || ACE_OS::strstr (type, compiled_regexp) != 0)
-#endif /* ACE_HAS_REGEX */
- {
- ACE_Name_Binding entry (map_entry->ext_id_,
- map_entry->int_id_.value (),
- map_entry->int_id_.type ());
-
- if (set.insert (entry) == -1)
- return -1;
- }
- }
-#if defined (ACE_HAS_REGEX)
- if (compiled_regexp)
- ACE_OS::free ((void *) compiled_regexp);
-#endif /* ACE_HAS_REGEX */
- delete [] pattern_rep; // delete pattern_rep;
- return 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> void
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::dump_i (void) const
-{
- ACE_TRACE ("ACE_Local_Name_Space::dump_i");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_);
- MAP_MANAGER::ENTRY *map_entry;
-
- for (map_entry = 0;
- map_iterator.next (map_entry) != 0;
- map_iterator.advance())
- {
- char *key = map_entry->ext_id_.char_rep ();
- char *value = map_entry->int_id_.value ().char_rep ();
-#if !defined (ACE_NLOGGING)
- const char *type = map_entry->int_id_.type ();
-#endif /* ! ACE_NLOGGING */
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("key=%s\nvalue=%s\ntype=%s\n"),
- key, value, type));
- // We need to delete key and value since char_rep allocates
- // memory for them
- delete [] key;
- delete [] value;
- }
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::list_names (
- ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern)
-{
- // Note that we *must* use structured exception handling here
- // because (1) we may need to commit virtual memory pages and (2)
- // C++ exception handling doesn't support resumption.
- int result = 0;
- ACE_SEH_TRY
- {
- result = this->list_names_i (set, pattern);
- }
- ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ()))
- {
- }
- return result;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::list_values (
- ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern)
-{
- // Note that we *must* use structured exception handling here
- // because (1) we may need to commit virtual memory pages and (2)
- // C++ exception handling doesn't support resumption.
- int result = 0;
- ACE_SEH_TRY
- {
- result = this->list_values_i (set, pattern);
- }
- ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ()))
- {
- }
- return result;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::list_types (
- ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern)
-{
- // Note that we *must* use structured exception handling here
- // because (1) we may need to commit virtual memory pages and (2)
- // C++ exception handling doesn't support resumption.
- int result = 0;
- ACE_SEH_TRY
- {
- result = this->list_types_i (set, pattern);
- }
- ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ()))
- {
- }
- return result;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space <ACE_MEM_POOL_2, ACE_LOCK>::list_name_entries (
- ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern)
-{
- // Note that we *must* use structured exception handling here
- // because (1) we may need to commit virtual memory pages and (2)
- // C++ exception handling doesn't support resumption.
- int result = 0;
- ACE_SEH_TRY
- {
- result = this->list_name_entries_i (set, pattern);
- }
- ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ()))
- {
- }
- return result;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::list_value_entries (
- ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern)
-{
- // Note that we *must* use structured exception handling here
- // because (1) we may need to commit virtual memory pages and (2)
- // C++ exception handling doesn't support resumption.
- int result = 0;
- ACE_SEH_TRY
- {
- result = this->list_value_entries_i (set, pattern);
- }
- ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ()))
- {
- }
- return result;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> int
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::list_type_entries (
- ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern)
-{
- // Note that we *must* use structured exception handling here
- // because (1) we may need to commit virtual memory pages and (2)
- // C++ exception handling doesn't support resumption.
- int result = 0;
- ACE_SEH_TRY
- {
- result = this->list_type_entries_i (set, pattern);
- }
- ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ()))
- {
- }
- return result;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> void
-ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::dump (void) const
-{
- // Note that we *must* use structured exception handling here
- // because (1) we may need to commit virtual memory pages and (2)
- // C++ exception handling doesn't support resumption.
-
- // This should really be a const cast
- ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK> *fake_this =
- (ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK> *) this;
- ACE_UNUSED_ARG (fake_this);
-
- ACE_SEH_TRY
- {
- this->dump_i ();
- }
- ACE_SEH_EXCEPT (fake_this->remap (GetExceptionInformation ()))
- {
- }
-}
-
-#endif /* ACE_LOCAL_NAME_SPACE_T_CPP */
diff --git a/ace/Local_Name_Space_T.h b/ace/Local_Name_Space_T.h
deleted file mode 100644
index 0df51250b73..00000000000
--- a/ace/Local_Name_Space_T.h
+++ /dev/null
@@ -1,267 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Local_Name_Space_T.h
- *
- * $Id$
- *
- * @author Prashant Jain <pjain@cs.wustl.edu>
- * @author Irfan Pyarali <irfan@wuerl.wustl.edu> and
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_LOCAL_NAME_SPACE_T_H
-#define ACE_LOCAL_NAME_SPACE_T_H
-#include "ace/pre.h"
-
-#include "ace/Name_Space.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Naming_Context.h"
-#include "ace/SString.h"
-#include "ace/Local_Name_Space.h"
-
-/// A short-hand name for our set of name/value/type tuples passed back
-/// to callers.
-typedef ACE_Unbounded_Set<ACE_NS_WString> ACE_WSTRING_SET;
-
-// Simplify later usage by defining typedefs.
-#if (1)
-# include "ace/Hash_Map_Manager_T.h"
-typedef ACE_Hash_Map_Manager_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex> MAP_MANAGER;
-#else
-# include "ace/Map_Manager.h"
-typedef ACE_Map_Manager<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex> MAP_MANAGER;
-#endif /* 0 */
-
-// Deprecated typedefs. Use the map's traits instead.
-typedef MAP_MANAGER::ITERATOR MAP_ITERATOR;
-typedef MAP_MANAGER::ENTRY MAP_ENTRY;
-
-
-/**
- * @class ACE_Name_Space_Map
- *
- * @brief This class serves as a Proxy that ensures our process always
- * has the appropriate allocator in place for every operation
- * that accesses or updates the Map Manager.
- *
- * We need this class because otherwise the ALLOCATOR
- * pointer will be stored in the Map_Manager that resides within
- * shared memory. Naturally, this will cause horrible problems
- * since only the first process to set that pointer will be
- * guaranteed the address of the ALLOCATOR is meaningful!
- */
-template <class ALLOCATOR>
-class ACE_Name_Space_Map : public MAP_MANAGER
-{
-public:
- /// Constructor.
- ACE_Name_Space_Map (ALLOCATOR *alloc);
-
- // = The following methods are Proxies to the underlying methods
- // provided by ACE_Hash_Map_Manager. When they are called, they
- // acquire the lock, set the allocator to the one specific to this
- // process, and then call down to perform the intended operation.
- int bind (const ACE_NS_String &,
- const ACE_NS_Internal &,
- ALLOCATOR *alloc);
-
- int unbind (const ACE_NS_String &,
- ACE_NS_Internal &,
- ALLOCATOR *alloc);
-
- int rebind (const ACE_NS_String &,
- const ACE_NS_Internal &,
- ACE_NS_String &,
- ACE_NS_Internal &,
- ALLOCATOR *alloc);
-
- int find (const ACE_NS_String &,
- ACE_NS_Internal &,
- ALLOCATOR *alloc);
-
- int close (ALLOCATOR *alloc);
-};
-
-/**
- * @class ACE_Local_Name_Space
- *
- * @brief Maintaining accesses Local Name Server Database. Allows to
- * add NameBindings, change them, remove them and resolve
- * NameBindings.
- *
- * Manages a Naming Service for a local name space which
- * includes bindings for node_local and host_local naming
- * contexts. All strings are stored in wide character format.
- * A Name Binding consists of a name (that's the key), a value
- * string and an optional type string (no wide chars).
- */
-template <ACE_MEM_POOL_1, class ACE_LOCK>
-class ACE_Local_Name_Space : public ACE_Name_Space
-{
-public:
- // = Initialization and termination methods.
- /// "Do-nothing" constructor.
- ACE_Local_Name_Space (void);
-
- /**
- * Specifies the scope of this namespace, opens and memory-maps the
- * associated file (if accessible) or contacts the dedicated name
- * server process for NET_LOCAL namespace.
- */
- ACE_Local_Name_Space (ACE_Naming_Context::Context_Scope_Type scope_in,
- ACE_Name_Options *name_options);
-
- /**
- * Specifies the scope of this namespace, opens and memory-maps the
- * associated file (if accessible) or contacts the dedicated name
- * server process for NET_LOCAL namespace.
- */
- int open (ACE_Naming_Context::Context_Scope_Type scope_in);
-
- /// Destructor, do some cleanup :TBD: last dtor should "compress"
- /// file
- ~ACE_Local_Name_Space (void);
-
- /// Bind a new name to a naming context (Wide character strings).
- virtual int bind (const ACE_NS_WString &name,
- const ACE_NS_WString &value,
- const char *type = "");
-
- /**
- * Overwrite the value or type of an existing name in a
- * ACE_Local_Name_Space or bind a new name to the context, if it
- * didn't exist yet. (Wide charcter strings interface).
- */
- virtual int rebind (const ACE_NS_WString &name,
- const ACE_NS_WString &value,
- const char *type = "");
-
- /// Delete a name from a ACE_Local_Name_Space (Wide charcter strings
- /// Interface).
- virtual int unbind (const ACE_NS_WString &name);
- virtual int unbind_i (const ACE_NS_WString &name);
-
- /// Get value and type of a given name binding (Wide chars). The
- /// caller is responsible for deleting @a type!
- virtual int resolve (const ACE_NS_WString &name,
- ACE_NS_WString &value,
- char *&type);
- virtual int resolve_i (const ACE_NS_WString &name,
- ACE_NS_WString &value,
- char *&type);
-
- /// Get a set of names matching a specified pattern (wchars). Matching
- /// means the names must begin with the pattern string.
- virtual int list_names (ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern);
- virtual int list_names_i (ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern);
-
- /// Get a set of values matching a specified pattern (wchars). Matching
- /// means the values must begin with the pattern string.
- virtual int list_values (ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern);
- virtual int list_values_i (ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern);
-
- /// Get a set of types matching a specified pattern (wchars). Matching
- /// means the types must begin with the pattern string.
- virtual int list_types (ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern);
- virtual int list_types_i (ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern);
-
- /**
- * Get a set of names matching a specified pattern (wchars). Matching
- * means the names must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_name_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern);
- virtual int list_name_entries_i (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern);
-
- /**
- * Get a set of values matching a specified pattern (wchars). Matching
- * means the values must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_value_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern);
- virtual int list_value_entries_i (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern);
-
- /**
- * Get a set of types matching a specified pattern (wchars). Matching
- * means the types must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_type_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern);
- virtual int list_type_entries_i (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern);
-
- /// Dump the state of the object
- virtual void dump (void) const;
- virtual void dump_i (void) const;
-
- // = I just know this is going to cause problems on some platform...
- typedef ACE_Allocator_Adapter <ACE_Malloc <ACE_MEM_POOL_2, ACE_LOCK> >
- ALLOCATOR;
-
-private:
-#if defined (ACE_WIN32)
- /// Remap the backing store
- int remap (EXCEPTION_POINTERS *ep);
-#endif /* ACE_WIN32 */
-
- /// Factor out code from bind() and rebind().
- int shared_bind (const ACE_NS_WString &name,
- const ACE_NS_WString &value,
- const char *type, int rebind);
- int shared_bind_i (const ACE_NS_WString &name,
- const ACE_NS_WString &value,
- const char *type, int rebind);
-
- /// Allocate the appropriate type of map manager that stores the
- /// key/value binding.
- int create_manager (void);
- int create_manager_i (void);
-
- /// Pointer to the allocator
- ALLOCATOR *allocator_;
-
- /// Pointer to the allocated map manager.
- ACE_Name_Space_Map <ALLOCATOR> *name_space_map_;
-
- /// Scope of this naming context (e.g., PROC_LOCAL, NODE_LOCAL, or
- /// NET_LOCAL).
- ACE_Naming_Context::Context_Scope_Type ns_scope_;
-
- /// Keep track of the options such as database name etc
- ACE_Name_Options *name_options_;
-
- /// Name of the file used as the backing store.
- ACE_TCHAR context_file_[MAXPATHLEN + MAXNAMELEN];
-
- /// Synchronization variable.
- ACE_LOCK *lock_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Local_Name_Space_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Local_Name_Space_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_LOCAL_NAME_SPACE_T_H */
diff --git a/ace/Local_Tokens.cpp b/ace/Local_Tokens.cpp
deleted file mode 100644
index 96d844efdc3..00000000000
--- a/ace/Local_Tokens.cpp
+++ /dev/null
@@ -1,1448 +0,0 @@
-// $Id$
-
-#include "ace/Local_Tokens.h"
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-#include "ace/Thread.h"
-#include "ace/Token_Manager.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Local_Tokens.i"
-#endif /* __ACE_INLINE__ */
-
-
-ACE_RCSID(ace, Local_Tokens, "$Id$")
-
-void
-ACE_Tokens::dump (void) const
-{
- ACE_TRACE ("ACE_Tokens::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Tokens::dump:\n")
- ACE_LIB_TEXT (" reference_cont_ = %d\n")
- ACE_LIB_TEXT (" token_name_ = %s\n"),
- reference_count_, token_name_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("waiters_\n")));
- this->waiters_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Tokens::ACE_Tokens (void)
- : visited_ (0),
- reference_count_ (0)
-{
- ACE_TRACE ("ACE_Tokens::ACE_Tokens");
-}
-
-void
-ACE_Tokens::make_owner (ACE_TPQ_Entry *caller)
-{
- this->waiters_.remove (caller);
- this->waiters_.enqueue (caller, 0);
-}
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-ACE_Null_Token::ACE_Null_Token (void)
-{
-}
-
-ACE_Null_Token::~ACE_Null_Token (void)
-{
-}
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-void
-ACE_TPQ_Entry::dump (void) const
-{
- ACE_TRACE ("ACE_TPQ_Entry::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("ACE_TPQ_Entry::dump:\n")
- ACE_LIB_TEXT (" nesting_level_ = %d\n")
- ACE_LIB_TEXT (" client_id_ = %s\n"),
- nesting_level_,
- client_id_));
-
- if (next_ != 0)
- {
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("next:.\n")));
- next_->dump ();
- }
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_TPQ_Entry::dump end.\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_TPQ_Entry::ACE_TPQ_Entry (const ACE_Token_Proxy *new_proxy,
- const ACE_TCHAR *client_id)
- : cond_var_ (lock_),
- next_ (0),
- // This const typecast is safe.
- proxy_ ((ACE_Token_Proxy *) new_proxy),
- nesting_level_ (0),
- sleep_hook_ (0)
-{
- ACE_TRACE ("ACE_TPQ_Entry::ACE_TPQ_Entry");
-
- if (client_id != 0)
- this->client_id (client_id);
- else
- {
- // Just make sure we have enough space.
- ACE_TCHAR host_name[MAXHOSTNAMELEN];
- ACE_TCHAR name[(sizeof host_name / sizeof (ACE_TCHAR)) + 256];
- ACE_OS::hostname (host_name, sizeof host_name);
-
- ACE_thread_t thread_id = ACE_Thread::self ();
-
- // The cast is an attempt to get this to compile (and run,
- // hopefully) regardless of the type of ACE_thread_t.
- ACE_OS::sprintf (name,
- ACE_LIB_TEXT ("/%s/%u/%lu"),
- host_name,
- ACE_static_cast (u_int, ACE_OS::getpid ()),
- *ACE_reinterpret_cast (u_long *, &thread_id));
-
- this->client_id (name);
- }
-}
-
-ACE_TPQ_Entry::ACE_TPQ_Entry (void)
- : cond_var_ (lock_),
- proxy_ (0),
- nesting_level_ (0),
- sleep_hook_ (0)
-{
- ACE_TRACE ("ACE_TPQ_Entry::ACE_TPQ_Entry null const.");
-}
-
-ACE_TPQ_Entry::ACE_TPQ_Entry (const ACE_TPQ_Entry &rhs)
-: cond_var_ (lock_)
-{
- ACE_TRACE ("ACE_TPQ_Entry::ACE_TPQ_Entry copy const.");
- *this = rhs;
-}
-
-ACE_TPQ_Entry::~ACE_TPQ_Entry (void)
-{
- ACE_TRACE ("ACE_TPQ_Entry::~ACE_TPQ_Entry");
-}
-
-void
-ACE_TPQ_Entry::operator= (const ACE_TPQ_Entry& rhs)
-{
- ACE_TRACE ("ACE_TPQ_Entry::operator=");
- if (&rhs == this)
- return;
- this->proxy_ = rhs.proxy ();
- this->nesting_level_ = rhs.nesting_level ();
- this->client_id (rhs.client_id ());
- this->sleep_hook_ = rhs.sleep_hook ();
-}
-
-void
-ACE_TPQ_Entry::client_id (const ACE_TCHAR *id)
-{
- ACE_TRACE ("ACE_TPQ_Entry::client_id");
-
- if (id == 0)
- return;
-
- ACE_OS::strsncpy (this->client_id_,
- (ACE_TCHAR *) id,
- ACE_MAXCLIENTIDLEN);
-}
-
-void
-ACE_TSS_TPQ_Entry::dump (void) const
-{
- ACE_TRACE ("ACE_TSS_TPQ_Entry::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-#if defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS)
- ACE_DEBUG ((LM_DEBUG, (char *) "ACE_TSS_TPQ_Entry::dump:\n",
- (char *) " client_id_ = %s\n",
- (char *) client_id_ == 0 ? (char *) "0" : (char *) client_id_));
-#else /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_TSS_TPQ_Entry::dump:\n")
- ACE_LIB_TEXT (" client_id_ = %s\n"),
- client_id_ == 0 ? ACE_LIB_TEXT ("0") : client_id_));
-#endif /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("base:\n")));
- ACE_TPQ_ENTRY::dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_TSS_TPQ_Entry::ACE_TSS_TPQ_Entry (const ACE_Token_Proxy *proxy,
- const ACE_TCHAR *client_id)
-: proxy_ (proxy),
- client_id_ (client_id)
-{
- ACE_TRACE ("ACE_TSS_TPQ_Entry::ACE_TSS_TPQ_Entry");
-}
-
-ACE_TPQ_Entry *
-ACE_TSS_TPQ_Entry::make_TSS_TYPE (void) const
-{
- ACE_TRACE ("ACE_TSS_TPQ_Entry::make_TSS_TYPE");
- ACE_TPQ_Entry *temp;
-
- ACE_NEW_RETURN (temp,
- ACE_TPQ_Entry (this->proxy_,
- this->client_id_),
- 0);
- return temp;
-}
-
-ACE_TSS_TPQ_Entry::operator ACE_TPQ_Entry * (void)
-{
-#if !defined (ACE_NO_TSS_TOKENS)
- return (ACE_TPQ_Entry *) (*((ACE_TSS<ACE_TPQ_Entry> *) this));
-#else
- // Not sure this is the right thing to do, but it seems to work.
- // The base class ALSO has a proxy_ and client_id_ members (weird?)
- // which don't get initialised. The following two lines make this
- // the same as the subclass, so that the slicing works .
- ACE_TPQ_ENTRY::proxy ((ACE_Token_Proxy *)(this->proxy_));
- ACE_TPQ_ENTRY::client_id (this->client_id_);
- return (ACE_TPQ_Entry *) this;;
-#endif /* !ACE_NO_TSS_TOKENS */
-}
-
-ACE_TPQ_Iterator::ACE_TPQ_Iterator (ACE_Token_Proxy_Queue &q)
- : current_ (q.head_)
-{
- ACE_TRACE ("ACE_TPQ_Iterator::ACE_TPQ_Iterator");
-}
-
-int
-ACE_TPQ_Iterator::next (ACE_TPQ_Entry *&next_item)
-{
- ACE_TRACE ("ACE_TPQ_Iterator::next");
-
- next_item = this->current_;
-
- return current_ != 0;
-}
-
-int
-ACE_TPQ_Iterator::done (void) const
-{
- ACE_TRACE ("ACE_TPQ_Iterator::done");
-
- return this->current_ == 0;
-}
-
-void
-ACE_TPQ_Iterator::advance (void)
-{
- ACE_TRACE ("ACE_TPQ_Iterator::advance");
-
- if (current_ != 0)
- this->current_ = this->current_->next_;
-}
-
-void
-ACE_TPQ_Iterator::dump (void) const
-{
- ACE_TRACE ("ACE_TPQ_Iterator::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_TPQ_Iterator::dump:\n")
- ACE_LIB_TEXT (" current_ = %d\n"),
- (long) this->current_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("head_ and tail_\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_Token_Proxy_Queue::dump (void) const
-{
- ACE_TRACE ("ACE_Token_Proxy_Queue::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Token_Proxy_Queue::dump:\n")
- ACE_LIB_TEXT (" size_ = %d\n"),
- size_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("head_ and tail_\n")));
- if (this->head_ != 0)
- this->head_->dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Token_Proxy_Queue::dump end.\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Token_Proxy_Queue::ACE_Token_Proxy_Queue (void)
- : head_ (0),
- tail_ (0),
- size_ (0)
-{
- ACE_TRACE ("ACE_Token_Proxy_Queue::ACE_Token_Proxy_Queue");
-}
-
-void
-ACE_Token_Proxy_Queue::enqueue (ACE_TPQ_Entry *tpq,
- int position)
-{
- ACE_TRACE ("ACE_Token_Proxy_Queue::enqueue");
- tpq->next_ = 0;
-
- ++this->size_;
-
- if (this->head_ == 0)
- {
- // make tpq the entire list
- this->head_ = this->tail_ = tpq;
- return;
- }
-
- if (position == 0)
- {
- // make head of list
- tpq->next_ = this->head_;
- this->head_ = tpq;
- return;
- }
-
- if (position == -1)
- {
- // stick at back of list
- this->tail_->next_ = tpq;
- this->tail_ = tpq;
- return;
- }
-
- // walk through list to insertion point
- ACE_TPQ_Entry *temp = head_;
-
- for (int x = position;
- x > 1;
- --x)
- {
- // end of queue?
- if (temp->next_ == 0)
- break;
- // advance pointer
- else
- temp = temp->next_;
- }
-
- // insert new tpq after temp
- tpq->next_ = temp->next_;
- temp->next_ = tpq;
-}
-
-void
-ACE_Token_Proxy_Queue::dequeue (void)
-{
- ACE_TRACE ("ACE_Token_Proxy_Queue::dequeue");
-
- if (head_ == 0)
- return;
-
- ACE_TPQ_Entry *temp = this->head_;
-
- this->head_ = this->head_->next_;
-
- temp->next_ = 0;
-
- --this->size_;
-
- if (this->head_ == 0 && this->size_ != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("incorrect size = %d\n"),
- this->size_));
-}
-
-/*
-int
-ACE_Token_Proxy_Queue::member (const ACE_TCHAR *id)
-{
- ACE_TRACE ("ACE_Token_Proxy_Queue::member");
-
- for (ACE_TPQ_Entry *temp = this->head_;
- temp != 0;
- temp = temp->next_)
- if (ACE_OS::strcmp (temp->client_id (), id) == 0)
- // We found it!
- return 1;
-
- // We didn't find it :-(
- return 0;
-}
-*/
-
-void
-ACE_Token_Proxy_Queue::remove (const ACE_TPQ_Entry *remove_me)
-{
- ACE_TRACE ("ACE_Token_Proxy_Queue::remove");
- // sanity
- if ((remove_me == 0) || (this->head_ == 0))
- return;
-
- // is it the head?
- if (this->head_ == remove_me) // pointer comparison.
- {
- this->head_ = this->head_->next_;
- if (this->head_ == 0)
- this->tail_ = 0;
-
- --this->size_;
- return;
- }
-
- ACE_TPQ_Entry *temp = this->head_;
- ACE_TPQ_Entry *previous = 0;
-
- // is it in the middle or tail?
- while (temp != 0)
- {
- if (temp == remove_me)
- {
- // previous should never be null since the first if
- // conditional should always be false
- previous->next_ = temp->next_;
- // is it the tail?
- if (this->tail_ == temp)
- this->tail_ = previous;
-
- --this->size_;
- return;
- }
-
- previous = temp;
- temp = temp->next_;
- }
-
- // it wasn't in the list.
- return;
-}
-
-void
-ACE_Mutex_Token::dump (void) const
-{
- ACE_TRACE ("ACE_Mutex_Token::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Mutex_Token::dump:\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("lock_\n")));
- lock_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("base:\n")));
- ACE_Tokens::dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Mutex_Token::dump end.\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Mutex_Token::ACE_Mutex_Token (const ACE_TCHAR *name)
-{
- ACE_TRACE ("ACE_Mutex_Token::ACE_Mutex_Token");
-
- ACE_OS::strsncpy (this->token_name_,
- name,
- ACE_MAXTOKENNAMELEN);
-}
-
-ACE_Mutex_Token::~ACE_Mutex_Token (void)
-{
- ACE_TRACE ("ACE_Mutex_Token::~ACE_Mutex_Token");
-}
-
-int
-ACE_Mutex_Token::acquire (ACE_TPQ_Entry *caller,
- int ignore_deadlock,
- int notify)
-{
- ACE_TRACE ("ACE_Mutex_Token::acquire");
- // We need to acquire two locks. This one to ensure that only one
- // thread uses this token at a time.
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon1, this->lock_, -1);
- // This one to ensure an atomic transaction across all tokens. Note
- // that this order is crucial too. It's resource coloring for other
- // threads which may be calling this same token.
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon2, ACE_Token_Manager::instance ()->mutex (), -1);
-
- // Does _anyone_ own the token?
- if (this->owner () == 0)
- {
- // there are no waiters, so queue as the first waiter (the owner.)
- this->waiters_.enqueue (caller, -1);
- return 0; // success
- }
-
- // Does the caller already own it?
- if (this->is_owner (caller->client_id ()))
- {
- // Recursive acquisition.
- caller->nesting_level (1);
- return 0; // success
- }
-
- // Check for deadlock.
- if (!ignore_deadlock
- && ACE_Token_Manager::instance ()->check_deadlock (caller->proxy ()) == 1)
- {
- errno = EDEADLK;
- ACE_RETURN (-1);
- }
-
- // Someone owns it. Sorry, you're getting queued up at the end of
- // the waiter queue.
- this->waiters_.enqueue (caller, -1);
-
- if (notify)
- this->owner ()->call_sleep_hook ();
-
- errno = EWOULDBLOCK;
- ACE_RETURN (-1);
-
- ACE_NOTREACHED (return -1);
-}
-
-int
-ACE_Mutex_Token::tryacquire (ACE_TPQ_Entry *caller)
-{
- ACE_TRACE ("ACE_Mutex_Token::tryacquire");
- // We need to acquire two locks. This one to ensure that only one
- // thread uses this token at a time.
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon1, this->lock_, -1);
- // This one to ensure an atomic transaction across all tokens. Note
- // that this order is crucial too. It's resource coloring for other
- // threads which may be calling this same token.
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon2, ACE_Token_Manager::instance ()->mutex (), -1);
-
- // Does _anyone_ own the token?
- if (this->owner () == 0)
- {
- this->waiters_.enqueue (caller, -1);
- return 0; // success
- }
- // Does the caller already own it?
- if (this->is_owner (caller->client_id ()))
- {
- // recursive acquisition
- caller->nesting_level (1);
- return 0; // success
- }
- else
- // Someone owns it. Fail.
- {
- errno = EWOULDBLOCK;
- ACE_RETURN (-1);
- }
-
- ACE_NOTREACHED (return -1);
-}
-
-int
-ACE_Mutex_Token::renew (ACE_TPQ_Entry *caller,
- int requeue_position)
-{
- ACE_TRACE ("ACE_Mutex_Token::renew");
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_, -1);
-
- // Verify that the caller is the owner.
- if (this->is_owner (caller->client_id ()) == 0)
- {
- errno = EACCES;
- ACE_RETURN (-1);
- }
-
- // The caller is the owner, so check to see if there are any
- // waiters. If not, we just keep the token. == 1 means that there
- // is only the owner.
- if (this->waiters_.size () == 1 || requeue_position == 0)
- return 0;
-
- // Requeue the caller.
- this->waiters_.dequeue ();
-
- this->waiters_.enqueue (caller, requeue_position);
-
- // Notify new owner.
- if (this->owner () != 0)
- this->owner ()->proxy ()->token_acquired (this->owner ());
-
- // Tell the caller that the operation would block.
- errno = EWOULDBLOCK;
- ACE_RETURN (-1);
-
- ACE_NOTREACHED (return -1);
-}
-
-// Release the current holder of the token (which had
-// better be the caller's thread!).
-
-int
-ACE_Mutex_Token::release (ACE_TPQ_Entry *caller)
-{
- ACE_TRACE ("ACE_Mutex_Token::release");
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_, -1);
-
- // Does anyone own the token?
- if (this->owner () == 0)
- {
- errno = EACCES;
- ACE_RETURN (-1);
- }
-
- // Is the caller the owner.
- if (this->is_owner (caller->client_id ()))
- {
- // Check the nesting level.
- if (caller->nesting_level () > 0)
- caller->nesting_level (-1);
- else
- {
- this->waiters_.dequeue ();
- // Notify new owner.
- if (this->owner () != 0)
- this->owner ()->proxy ()->token_acquired (this->owner ());
- }
- }
- else
- this->remove (caller);
-
- return 0;
-}
-
-int
-ACE_Mutex_Token::owners (OWNER_STACK &stack,
- const ACE_TCHAR *id)
-{
- ACE_TRACE ("ACE_Mutex_Token::owners");
- if (this->owner () != 0)
- {
- stack.push (this->owner ());
- // If an <id> is specified, return whether it is the owner being
- // returned.
- if (id != 0)
- return this->owner ()->equal_client_id (id);
- }
-
- return 0;
-}
-
-int
-ACE_Mutex_Token::is_waiting_for (const ACE_TCHAR *id)
-{
- ACE_TRACE ("ACE_Mutex_Token::is_waiting_for");
- // If there is no owner, or <id> is the owner, return false.
- if ((this->owner () == 0) || this->is_owner (id))
- return 0;
-
- // Step through each waiter looking for <id>.
- ACE_TPQ_Iterator iterator (waiters_);
- iterator.advance ();
- for (ACE_TPQ_Entry *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- {
- if (temp->equal_client_id (id))
- return 1;
- }
-
- return 0;
-}
-
-int
-ACE_Mutex_Token::is_owner (const ACE_TCHAR *id)
-{
- ACE_TRACE ("ACE_Mutex_Token::is_owner");
- // If there is an owner, return whether it is <id>.
- if ((this->owner () != 0) &&
- this->owner ()->equal_client_id (id))
- return 1;
- else
- return 0;
-}
-
-void
-ACE_RW_Token::dump (void) const
-{
- ACE_TRACE ("ACE_RW_Token::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_RW_Token::dump:\n")
- ACE_LIB_TEXT ("num_writers_ = %d\n"), num_writers_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("lock_\n")));
- this->lock_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("base:\n")));
- ACE_Tokens::dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_RW_Token::dump end.\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_RW_Token::ACE_RW_Token (const ACE_TCHAR *name)
-: num_writers_ (0)
-{
- ACE_TRACE ("ACE_RW_Token::ACE_RW_Token");
-
- ACE_OS::strsncpy (this->token_name_,
- name,
- ACE_MAXTOKENNAMELEN);
-}
-
-ACE_RW_Token::~ACE_RW_Token (void)
-{
- ACE_TRACE ("ACE_RW_Token::~ACE_RW_Token");
-}
-
-int
-ACE_RW_Token::acquire (ACE_TPQ_Entry *caller,
- int ignore_deadlock,
- int notify)
-{
- ACE_TRACE ("ACE_RW_Token::acquire");
- // We need to acquire two locks. This one to ensure that only one
- // thread uses this token at a time.
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon1, this->lock_, -1);
- // This one to ensure an atomic transaction across all tokens. Note
- // that this order is crucial too. It's resource coloring for other
- // threads which may be calling this same token.
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon2, ACE_Token_Manager::instance ()->mutex (), -1);
-
- if (caller->proxy ()->type () == ACE_RW_Token::WRITER)
- this->num_writers_++;
-
- // Does _anyone_ own the token?
- if (this->owner () == 0)
- {
- // There are no waiters, so queue as the first waiter (the owner).
- this->waiters_.enqueue (caller, -1);
- return 0;
- }
-
- // Check for recursive acquisition.
- if (this->is_owner (caller->client_id ()))
- {
- caller->nesting_level (1);
- return 0; // Success.
- }
-
- // Reader.
- if (caller->proxy ()->type () == ACE_RW_Token::READER)
- {
- // Are there any writers?
- if (this->num_writers_ == 0)
- {
- // Queue the caller at the end of the queue.
- this->waiters_.enqueue (caller, -1);
- return 0;
- }
- // Else failure.
- }
-
- // Failure code.
-
- // Check for deadlock.
- if (!ignore_deadlock &&
- ACE_Token_Manager::instance ()->check_deadlock (caller->proxy ()) == 1)
- {
- if (caller->proxy ()->type () == ACE_RW_Token::WRITER)
- this->num_writers_--;
- errno = EDEADLK;
- ACE_RETURN (-1);
- }
-
- // Queue the caller at the end of the queue.
- this->waiters_.enqueue (caller, -1);
-
- if (notify)
- {
- // If it's a writer, just notify it.
- if (this->owner ()->proxy ()->type () == ACE_RW_Token::WRITER)
- this->owner ()->call_sleep_hook ();
- else
- {
- // Call back all reader owners.
- ACE_TPQ_Entry *temp = this->owner ();
- do
- {
- temp->call_sleep_hook ();
- temp = temp->next_;
- }
- while (temp != 0 &&
- temp->proxy ()->type () == ACE_RW_Token::READER);
- }
- }
-
- errno = EWOULDBLOCK;
- ACE_RETURN (-1);
-
- ACE_NOTREACHED (return -1);
-}
-
-int
-ACE_RW_Token::tryacquire (ACE_TPQ_Entry *caller)
-{
- ACE_TRACE ("ACE_RW_Token::tryacquire");
- // We need to acquire two locks. This one to ensure that only one
- // thread uses this token at a time.
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon1, this->lock_, -1);
- // This one to ensure an atomic transaction across all tokens. Note
- // that this order is crucial too. It's resource coloring for other
- // threads which may be calling this same token.
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon2, ACE_Token_Manager::instance ()->mutex (), -1);
-
- if (caller->proxy ()->type () == ACE_RW_Token::WRITER)
- {
- this->num_writers_++;
- }
-
- // Does _anyone_ own the token?
- if (this->owner () == 0)
- {
- // There are no waiters, so queue as the first waiter (the owner).
- this->waiters_.enqueue (caller, -1);
- return 0;
- }
-
- // Check for recursive acquisition.
- if (this->is_owner (caller->client_id ()))
- {
- caller->nesting_level (1);
- return 0; // Success.
- }
-
- // Reader.
- if (caller->proxy ()->type () == ACE_RW_Token::READER)
- {
- // Are there any writers?
- if (this->num_writers_ == 0)
- {
- // queue the caller at the end of the queue.
- this->waiters_.enqueue (caller, -1);
- return 0;
- }
- // Else, fail.
- }
- else // Writer.
- // We're going to fail, so decrement the num_writers.
- {
- this->num_writers_--;
- }
-
-
- errno = EWOULDBLOCK;
- ACE_RETURN (-1);
-
- ACE_NOTREACHED (return -1);
-}
-
-int
-ACE_RW_Token::renew (ACE_TPQ_Entry *caller,
- int requeue_position)
-{
- ACE_TRACE ("ACE_RW_Token::renew");
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_, -1);
-
- // Werify that the caller is the owner
- if (this->is_owner (caller->client_id ()) == 0)
- {
- errno = EACCES;
- ACE_RETURN (-1);
- }
-
- // The caller is the owner, so check to see if there are any
- // waiters. If not, we just keep the token.
- if (this->waiters_.size () == 1 || requeue_position == 0)
- return 0;
-
- // There are waiters, so remove the caller.
- this->remove (caller);
-
- // Requeue the caller.
- this->waiters_.enqueue (caller, requeue_position);
-
- if (caller->proxy ()->type () == ACE_RW_Token::READER)
- {
- // If the caller got queued before any writers, the caller is
- // still the owner.
- if (this->is_owner (caller->client_id ()))
- return 0; // success
- // else fallthrough and return would block.
- }
- // Writers will always have to block since waiters_.size () == 1 or
- // requeue_position == 0.
-
- // Get a new owner.
- this->notify_new_owner (caller);
-
- // Tell the caller that the operation would block.
- errno = EWOULDBLOCK;
- ACE_RETURN (-1);
-
- ACE_NOTREACHED (return -1);
-}
-
-int
-ACE_RW_Token::release (ACE_TPQ_Entry *caller)
-{
- ACE_TRACE ("ACE_RW_Token::release");
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_, -1);
-
- // Check for errors.
- if ((this->owner () == 0) ||
- (this->is_owner (caller->client_id ()) == 0))
- {
- errno = EACCES;
- ACE_RETURN (-1);
- }
-
- if (caller->proxy ()->type () == ACE_RW_Token::WRITER)
- num_writers_--;
-
- // Recursive release.
- if (caller->nesting_level () > 0)
- {
- caller->nesting_level (-1);
- return 0;
- }
-
- // Remove the caller and notify the new owner(s).
- this->remove (caller);
- this->notify_new_owner (caller);
-
- return 0;
-}
-
-void
-ACE_RW_Token::notify_new_owner (ACE_TPQ_Entry *old_owner)
-{
- ACE_TRACE ("ACE_RW_Token::notify_new_owner");
-
- if (this->owner () == 0)
- return;
-
- if (this->owner ()->proxy ()->type () == ACE_RW_Token::READER)
- {
- if (old_owner->proxy ()->type () == ACE_RW_Token::READER)
- // the owners already know that they're owners
- return;
-
- // The current owner is a reader and the previous owner was a
- // writer, so notify all waiting readers up to the first writer.
- // call back all reader owners.
- ACE_TPQ_Iterator iterator (waiters_);
- for (ACE_TPQ_Entry *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- {
- if (temp->proxy ()->type () == WRITER)
- // We've gone through all the readers.
- break;
-
- temp->proxy ()->token_acquired (temp);
- }
- }
- else // writer
- this->owner ()->proxy ()->token_acquired (this->owner ());
-}
-
-
-int
-ACE_RW_Token::owners (OWNER_STACK &stack,
- const ACE_TCHAR *id)
-{
- ACE_TRACE ("ACE_RW_Token::owners");
-
- if (this->owner () == 0)
- return 0;
-
- int id_is_owner = 0;
-
- // The first waiter is a writer, so there is only one owner.
- if (this->owner ()->proxy ()->type () == WRITER)
- {
- stack.push (this->owner ());
- // If an <id> is specified, return whether it is the owner being
- // returned.
- if ((id != 0) &&
- (ACE_OS::strcmp (id, this->owner ()->client_id ()) == 0))
- id_is_owner = 1;
- }
- // The first waiter is a reader, so there can be multiple owning
- // readers.
- else
- {
- ACE_TPQ_Iterator iterator (waiters_);
- for (ACE_TPQ_Entry *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- {
- if (temp->proxy ()->type () == WRITER)
- // We've gone through all the readers.
- break;
-
- stack.push (temp);
-
- if (!id_is_owner && (id != 0) &&
- (ACE_OS::strcmp (id, temp->client_id ()) == 0))
- id_is_owner = 1;
- }
- }
-
- return id_is_owner;
-}
-
-int
-ACE_RW_Token::is_waiting_for (const ACE_TCHAR *id)
-{
- ACE_TRACE ("ACE_RW_Token::is_waiting_for");
- // If there is no owner, or <id> is the owner, return false.
- if ((this->owner () == 0) ||
- this->is_owner (id))
- return 0;
-
- // Step through each waiter looking for <id>.
- ACE_TPQ_Iterator iterator (waiters_);
- iterator.advance ();
- for (ACE_TPQ_Entry *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- {
- if (temp->equal_client_id (id))
- return 1;
- }
-
- return 0;
-}
-
-int
-ACE_RW_Token::is_owner (const ACE_TCHAR *id)
-{
- ACE_TRACE ("ACE_RW_Token::is_owner");
- // If there is no owner, return false.
- if (this->owner () == 0)
- return 0;
-
- // A writer owns us.
- if (this->owner ()->proxy ()->type () == ACE_RW_Token::WRITER)
- return this->owner ()->equal_client_id (id);
-
- // Readers own us.
- // Step through each owning reader looking for <id>.
- ACE_TPQ_Iterator iterator (waiters_);
- for (ACE_TPQ_Entry *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- {
- if (temp->proxy ()->type () != ACE_RW_Token::READER)
- break;
-
- if (temp->equal_client_id (id))
- return 1;
- }
-
- return 0;
-}
-
-void
-ACE_Token_Proxy::dump (void) const
-{
- ACE_TRACE ("ACE_Token_Proxy::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Token_Proxy::dump:\n")
- ACE_LIB_TEXT (" type = %d\n")
- ACE_LIB_TEXT (" ignore_deadlock_ = %d\n")
- ACE_LIB_TEXT (" debug_ = %d\n"),
- (int) this->type (), ignore_deadlock_, debug_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("mutex_, and waiter_\n")));
-
- if (this->token_ != 0)
- this->token_->dump ();
-
- this->waiter_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Token_Proxy::dump end.\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-const ACE_TCHAR *
-ACE_Token_Proxy::client_id (void) const
-{
- ACE_TRACE ("ACE_Token_Proxy::client_id");
- // Thread-specific.
- ACE_Token_Proxy *nc_this =
- ACE_const_cast (ACE_Token_Proxy *, this);
- const ACE_TPQ_Entry *temp =
- nc_this->waiter_.operator->();
- const ACE_TCHAR *id = temp->client_id ();
-
- if (id == 0)
- return ACE_LIB_TEXT ("ERROR NO CLIENT ID");
- else
- return id;
-}
-
-void
-ACE_Token_Proxy::client_id (const ACE_TCHAR *client_id)
-{
- ACE_TRACE ("ACE_Token_Proxy::client_id");
- this->waiter_->client_id (client_id);
-}
-
-const ACE_TCHAR *
-ACE_Token_Proxy::owner_id (void)
-{
- ACE_TRACE ("ACE_Token_Proxy::owner_id");
- return this->token_->owner_id ();
-}
-
-const ACE_TCHAR *
-ACE_Token_Proxy::name (void) const
-{
- ACE_TRACE ("ACE_Token_Proxy::name");
- return this->token_->name ();
-}
-
-ACE_Token_Proxy::ACE_Token_Proxy (void)
-: token_ (0),
- waiter_ (this, 0)
-{
- ACE_TRACE ("ACE_Token_Proxy::ACE_Token_Proxy");
-}
-
-// Notice the token_ (0). Do *not* copy the token pointer. This must
-// be obtained through the token manager. Also, we don't copy any
-// waiter info. A copied Proxy does *not* inherit client_id.
-
-ACE_Token_Proxy::ACE_Token_Proxy (const ACE_Token_Proxy &)
- : token_ (0),
- waiter_ (this, 0)
-{
- ACE_TRACE ("ACE_Token_Proxy::ACE_Token_Proxy");
-}
-
-// @@ should I do a mutex_->release ()?
-ACE_Token_Proxy::~ACE_Token_Proxy (void)
-{
- ACE_TRACE ("ACE_Token_Proxy::~ACE_Token_Proxy");
-
- if (token_ != 0)
- // notify token manager that we are done with it so it can
- // free it if necessary
- ACE_Token_Manager::instance ()->release_token (token_);
-}
-
-int
-ACE_Token_Proxy::open (const ACE_TCHAR *token_name,
- int ignore_deadlock,
- int debug)
-{
- ACE_TRACE ("ACE_Token_Proxy::open");
-
- // Store some parameters.
- this->ignore_deadlock_ = ignore_deadlock;
- this->debug_ = debug;
-
- // Used in case a name was not specified.
- ACE_TCHAR name[BUFSIZ];
-
- // We must have a name.
- if (token_name == 0)
- {
- ACE_OS::sprintf (name, ACE_LIB_TEXT ("token %lx"),
- ACE_reinterpret_cast (long, this));
- token_name = name;
- }
-
- // Get or create the underlying token. The Token Manager will call
- // us back to set token_.
- ACE_Token_Manager::instance ()->get_token (this, token_name);
-
- // Check for failed get or failed new.
- if (this->token_ == 0)
- {
- errno = ENOMEM;
- ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("Can't allocate mutex")), -1);
- }
-
- return 0;
-}
-
-int
-ACE_Token_Proxy::acquire (int notify,
- void (*sleep_hook)(void *),
- ACE_Synch_Options &options)
-{
- ACE_TRACE ("ACE_Token_Proxy::acquire");
- if (this->token_ == 0)
- {
- errno = ENOENT;
- ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("Not open.\n")), -1);
- }
-
- // Make sure no one calls our token_acquired until we have a chance
- // to sleep first! If after we call an EWOULDBLOCK
- // mutex_->acquire() below, but before we enter handle_options to
- // wait on the cond_var, a thread tries to give take us off the
- // waiter queue and signal us, IT WILL FIRST HAVE TO ACQUIRE THIS
- // cond_var.mutex (). _This_ is why we acquire it.
- this->waiter_->cond_var_.mutex ().acquire ();
-
- this->waiter_->sleep_hook (sleep_hook);
-
- if (this->token_->acquire (this->waiter_, this->ignore_deadlock_, notify) == -1)
- // acquire failed
- {
- switch (errno)
- {
- case EDEADLK :
- if (!ignore_deadlock_)
- {
- waiter_->cond_var_.mutex ().release ();
- errno = EDEADLK;
- ACE_RETURN (-1);
- }
- // Else, fallthrough and block!
-
- case EWOULDBLOCK :
- if (this->debug_)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("(%t) waiting for %s, owner is %s, ")
- ACE_LIB_TEXT ("total waiters == %d\n"),
- this->name (),
- this->token_->owner_id (),
- token_->no_of_waiters ()));
-
- // no error, but would block, if error, return error (-1),
- // otherwise, return whether we called the holder or not.
- int return_value;
- if (this->handle_options (options,
- waiter_->cond_var_) == -1)
- return_value = -1;
- else
- return_value = notify == 1;
-
- errno = EWOULDBLOCK;
- ACE_RETURN (return_value);
-
- default :
- waiter_->cond_var_.mutex ().release ();
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("Token Proxy acquire.")),
- -1);
- }
- }
- else
- // we have the token
- {
- if (debug_)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("(%t) acquired %s\n"),
- this->name ()));
- waiter_->cond_var_.mutex ().release ();
- }
-
- return 0;
-}
-
-int
-ACE_Token_Proxy::tryacquire (void (*sleep_hook)(void *))
-{
- ACE_TRACE ("ACE_Token_Proxy::tryacquire");
- if (this->token_ == 0)
- {
- errno = ENOENT;
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Not open.\n")),
- -1);
- }
-
- this->waiter_->sleep_hook (sleep_hook);
-
- return this->token_->tryacquire (waiter_);
-}
-
-int
-ACE_Token_Proxy::renew (int requeue_position,
- ACE_Synch_Options &options)
-{
- ACE_TRACE ("ACE_Token_Proxy::renew");
- if (this->token_ == 0)
- {
- errno = ENOENT;
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Not open.\n")),
- -1);
- }
-
- // Make sure no one calls our token_acquired until we have a chance
- // to sleep first!
- this->waiter_->cond_var_.mutex ().acquire ();
-
- if (this->token_->renew (this->waiter_, requeue_position) == -1)
- {
- // check for error
- if (errno != EWOULDBLOCK)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p renew failed\n"), ACE_LIB_TEXT ("ACE_Token_Proxy")), -1);
-
- if (this->debug_)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%t) renew blocking for %s, owner is %s\n"),
- this->name (),
- token_->owner_id ()));
-
- // no error, but would block, so block or return
- return this->handle_options (options, waiter_->cond_var_);
- }
- else
- // we have the token
- {
- if (this->debug_)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%t) renewed %s\n"),
- this->name ()));
- waiter_->cond_var_.mutex ().release ();
- return 0;
- }
-}
-
-int
-ACE_Token_Proxy::handle_options (ACE_Synch_Options &options,
- ACE_TOKEN_CONST::COND_VAR &cv)
-{
- // Some operation failed with EWOULDBLOCK.
- ACE_TRACE ("ACE_Token_Proxy::handle_options");
-
- if (options[ACE_Synch_Options::USE_REACTOR] == 1)
- // Asynchronous.
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- cv.mutex ().release ();
- ACE_RETURN (-1);
- }
- else
- // Synchronous.
- {
- // Block on condition variable.
- while (cv.wait ((ACE_Time_Value *) options.time_value ()) == -1)
- {
- // Note, this should obey whatever thread-specific
- // interrupt policy is currently in place...
- if (errno == EINTR)
- continue;
- // We come here if a timeout occurs or some serious
- // ACE_Condition object error.
- cv.mutex ().release ();
- ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("condition variable wait")
- ACE_LIB_TEXT (" bombed.")), -1);
- }
-
- if (this->debug_)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%t) unblocking.\n"),
- this->client_id ()));
- cv.mutex ().release ();
- return 0; // operation succeeded
- }
-}
-
-int
-ACE_Token_Proxy::release (ACE_Synch_Options &)
-{
- ACE_TRACE ("ACE_Token_Proxy::release");
-
- if (this->token_ == 0)
- {
- errno = ENOENT;
- if (debug_)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("Must open before releasing.\n")));
- ACE_RETURN (-1);
- }
-
- if (this->token_->release (waiter_) != 0)
- {
- // Release failed.
- this->token_->remove (this->waiter_);
- if (debug_)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%t) %p.\n"), ACE_LIB_TEXT ("release failed")));
- return -1;
- }
- else
- {
- if (this->debug_)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%t) released %s, owner is %s\n"),
- this->name (),
- token_->owner_id ()));
-
- return 0;
- }
-}
-
-int
-ACE_Token_Proxy::remove (ACE_Synch_Options &)
-{
- ACE_TRACE ("ACE_Token_Proxy::remove");
- return 0;
-}
-
-void
-ACE_Token_Proxy::sleep_hook (void)
-{
- ACE_TRACE ("ACE_Token_Proxy::sleep_hook");
- // Somebody wants our token! (Let'em wait...)
- return;
-}
-
-void
-ACE_Token_Proxy::token_acquired (ACE_TPQ_Entry *e)
-{
- ACE_TRACE ("ACE_Token_Proxy::token_acquired");
- e->cond_var_.mutex ().acquire ();
- // We've been taken off the waiters list and given the token!
- // This implementation signals the internal condition
- // variable. Thus, if asynchronous acquires are used, this must be
- // overriden to do something more useful!
- e->cond_var_.signal ();
- e->cond_var_.mutex ().release ();
-
- return;
-}
-
-ACE_Token_Name::ACE_Token_Name (const ACE_TCHAR *token_name)
-{
- ACE_TRACE ("ACE_Token_Name::ACE_Token_Name");
- this->name (token_name);
-}
-
-ACE_Token_Name::ACE_Token_Name (const ACE_Token_Name &rhs)
-{
- ACE_TRACE ("ACE_Token_Name::ACE_Token_Name");
- this->name (rhs.name ());
-}
-
-ACE_Token_Name::~ACE_Token_Name ()
-{
- ACE_TRACE ("ACE_Token_Name::~ACE_Token_Name");
-}
-
-void
-ACE_Token_Name::dump (void) const
-{
- ACE_TRACE ("ACE_Token_Name::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-#if defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS)
- ACE_DEBUG ((LM_DEBUG, (char *) "ACE_Token_Name::dump:\n",
- (char *) " token_name_ = %s\n",
- (char *) token_name_ == 0 ? (char *) "no name" : (char *) token_name_));
-#else /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Token_Name::dump:\n")
- ACE_LIB_TEXT (" token_name_ = %s\n"),
- token_name_ == 0 ? ACE_LIB_TEXT ("no name") : token_name_));
-#endif /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-#if !defined (ACE_NO_TSS_TOKENS)
-template class ACE_TSS <ACE_TPQ_Entry>;
-#endif /* ACE_NO_TSS_TOKENS */
-template class ACE_Unbounded_Stack <ACE_TPQ_Entry *>;
-template class ACE_Node <ACE_TPQ_Entry *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#if !defined (ACE_NO_TSS_TOKENS)
-#pragma instantiate ACE_TSS <ACE_TPQ_Entry>
-#endif /* ACE_NO_TSS_TOKENS */
-#pragma instantiate ACE_Unbounded_Stack <ACE_TPQ_Entry *>
-#pragma instantiate ACE_Node <ACE_TPQ_Entry *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
diff --git a/ace/Local_Tokens.h b/ace/Local_Tokens.h
deleted file mode 100644
index 3315618fee4..00000000000
--- a/ace/Local_Tokens.h
+++ /dev/null
@@ -1,1114 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Local_Tokens.h
- *
- * $Id$
- *
- * @author Karl-Heinz Dorn <kdorn@erlh.siemens.de>
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author and Tim Harrison <harrison@cs.wustl.edu>
- *
- * This file contains definitions for the following classes:
- *
- * public:
- * 7. ACE_Token_Proxy
- * 8. ACE_Null_Token : public ACE_Token_Proxy
- * 9. ACE_Local_Mutex : public ACE_Token_Proxy
- * *. ACE_Local_RLock : public ACE_Local_Mutex
- * &. ACE_Local_WLock : public ACE_Local_Mutex
- * private:
- * 1. ACE_TOKEN_CONST
- * 3. ACE_TPQ_Entry
- * b. ACE_TSS_TPQ_Entry
- * c. ACE_TPQ_Iterator
- * 4. ACE_Token_Proxy_Queue
- * 5. ACE_Tokens
- * 6. ACE_Mutex_Token : public ACE_Tokens
- * 12. ACE_RW_Token : public ACE_Tokens
- * a. ACE_Token_Name
- *
- * Note that the locking classes defined in this file are *not*
- * intended to be used as general-purpose synchronization
- * mechanisms, such as mutexes or semaphores. Instead, you should
- * use the <ACE_Recursive_Thread_Mutex>, <ACE_Thread_Mutex>,
- * <ACE_Thread_Semaphore>, etc., that are defined in
- * $ACE_ROOT/ace/Synch.h and $ACE_ROOT/ace/Synch_T.h or the
- * <ACE_Token> that's defined in $ACE_ROOT/ace/Token.h.
- *
- *
- */
-//=============================================================================
-
-#ifndef ACE_LOCAL_MUTEX_H
-#define ACE_LOCAL_MUTEX_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-#include "ace/Synch_T.h"
-#include "ace/Containers.h"
-#include "ace/Synch_Options.h"
-#include "ace/Map_Manager.h"
-#include "ace/Log_Msg.h"
-
-#if !(defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREAD_SPECIFIC_STORAGE))
-# define ACE_NO_TSS_TOKENS 1
-#endif /* !(defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)) */
-
-// 1.
-/**
- * @class ACE_TOKEN_CONST
- *
- * @brief Not a public interface.
- *
- * Constant definitions and typedefs for Token library. Mostly,
- * this class is necessary to fight the compiler with order of
- * declaration errors.
- */
-class ACE_Export ACE_TOKEN_CONST
-{
-public:
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- // ACE platform supports some form of threading.
- typedef ACE_Condition_Thread_Mutex COND_VAR;
- typedef ACE_Thread_Mutex MUTEX;
- typedef ACE_Guard<ACE_Thread_Mutex> GUARD;
-#else
- typedef ACE_Null_Condition COND_VAR;
- typedef ACE_Null_Mutex MUTEX;
- typedef ACE_Guard<ACE_Null_Mutex> GUARD;
-#endif /* ACE_HAS_THREADS */
-};
-
-// Forward decl.
-class ACE_Token_Proxy;
-
-// 3..
-/**
- * @class ACE_TPQ_Entry
- *
- * @brief Token Proxy Queue entry. Used in the ACE_Token_Proxy_Queue
- *
- * Not a public interface.
- */
-class ACE_Export ACE_TPQ_Entry
-{
-friend class ACE_Token_Manager;
-public:
- typedef void (*PTVF) (void *);
-
- /// Null constructor.
- ACE_TPQ_Entry (void);
-
- /// Constructor.
- ACE_TPQ_Entry (const ACE_Token_Proxy *proxy,
- const ACE_TCHAR *client_id);
-
- /// Copy constructor.
- ACE_TPQ_Entry (const ACE_TPQ_Entry &rhs);
-
- /// Destructor.
- ~ACE_TPQ_Entry (void);
-
- /// Copy operator use by the queue.
- void operator= (const ACE_TPQ_Entry &rhs);
-
- /// Get top of the queue.
- ACE_Token_Proxy *proxy (void) const;
-
- /// Set top of the queue.
- void proxy (ACE_Token_Proxy *);
-
- /// Get nesting level of the entry.
- int nesting_level (void) const;
-
- /// Delta nesting level of the entry.
- void nesting_level (int delta);
-
- /// Get client_id of the entry.
- const ACE_TCHAR *client_id (void) const;
-
- /// Set client_id of the entry.
- void client_id (const ACE_TCHAR *);
-
- /// Returns 1 if @a id == client id. Does not check for @a id == 0.
- int equal_client_id (const ACE_TCHAR *id);
-
- /// One method for arg and sleep_hook.
- void set (void (*sleep_hook)(void *));
-
- /// Set sleep hook of the entry.
- void sleep_hook (void (*sh)(void *));
-
- /// Get sleep hook of the entry.
- PTVF sleep_hook (void) const;
-
- /// Call the sleep hook function or method passing arg.
- void call_sleep_hook (void);
-
- /// Dump the state of the class.
- void dump (void) const;
-
- // = Used to block the thread if an acquire fails with EWOULDBLOCK.
- ACE_TOKEN_CONST::COND_VAR cond_var_;
- ACE_TOKEN_CONST::MUTEX lock_;
-
- /// Pointer to next in list.
- ACE_TPQ_Entry *next_;
-
- /// Get whether this client is blocked waiting for a token.
- int waiting (void) const;
-
- /// Set whether this client is blocked waiting for a token.
- void waiting (int w);
-
-private:
- /// This client is waiting for a token.
- int waiting_;
-
- /// Proxy.
- ACE_Token_Proxy *proxy_;
-
- /// Nesting level.
- int nesting_level_;
-
- /// Arg.
- void *arg_;
-
- /// Client id.
- ACE_TCHAR client_id_[ACE_MAXCLIENTIDLEN];
-
- /// Sleep hook.
- void (*sleep_hook_)(void *);
-};
-
-// b..
-#if defined (ACE_NO_TSS_TOKENS)
-typedef ACE_TPQ_Entry ACE_TPQ_ENTRY;
-#else
-typedef ACE_TSS<ACE_TPQ_Entry> ACE_TPQ_ENTRY;
-#endif /* ACE_NO_TSS_TOKENS */
-
-/**
- * @class ACE_TSS_TPQ_Entry
- *
- * @brief ACE_TSS_TPQ_Entry
- *
- * Not a public interface.
- */
-class ACE_Export ACE_TSS_TPQ_Entry : public ACE_TPQ_ENTRY
-{
-public:
- /// These are passed to the constructor of ACE_TPQ_Entry in
- /// make_TSS_TYPE
- ACE_TSS_TPQ_Entry (const ACE_Token_Proxy *proxy,
- const ACE_TCHAR *client_id);
-
- /// Destructor.
- virtual ~ACE_TSS_TPQ_Entry (void);
-
- /// Allows us to pass args to the construction of the TSS object.
- virtual ACE_TPQ_Entry *make_TSS_TYPE (void) const;
-
- /// Operator overloading and inheritence don't mix.
- operator ACE_TPQ_Entry *(void);
-
- /// Dump the state of the class.
- void dump (void) const;
-
-#if defined (ACE_NO_TSS_TOKENS)
- ACE_TPQ_Entry *operator-> (void)
- {
- return (ACE_TPQ_Entry *) this;
- }
-#endif /* ACE_NO_TSS_TOKENS */
-
-private:
- /// Private: should not be used
- ACE_TSS_TPQ_Entry (const ACE_TSS_TPQ_Entry &);
- void operator= (const ACE_TSS_TPQ_Entry &);
-
- // = These are passed to the constructor of ACE_TPQ_Entry in
- // make_TSS_TYPE
-
- /// Proxy.
- const ACE_Token_Proxy *proxy_;
-
- /// Client_id.
- const ACE_TCHAR *client_id_;
-};
-
-class ACE_Token_Proxy_Queue;
-
-// c..
-/**
- * @class ACE_TPQ_Iterator
- *
- * @brief Iterates through ACE_Token_Proxy_Queues.
- *
- * Not a public interface.
- */
-class ACE_Export ACE_TPQ_Iterator
-{
-public:
- /// Constructor.
- ACE_TPQ_Iterator (ACE_Token_Proxy_Queue &q);
-
- /// Destructor.
- ~ACE_TPQ_Iterator (void);
-
- /// Pass back the <next_item>.
- int next (ACE_TPQ_Entry *&next_item);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Move forward by one element in the queue.
- void advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
-private:
- ACE_TPQ_Entry *current_;
-};
-
-// 4..
-/**
- * @class ACE_Token_Proxy_Queue
- *
- * @brief Token waiter list.
- *
- * Not a public interface.
- * This queue holds all the token proxies waiting for ownership
- * of a token. Along with the proxy reference, it also stores
- * the nesting level, client id, and a magic cookie from the
- * proxy. This queue stores the ACE_TPQ_Entries by pointer
- * values. It DOES NOT make copies. Thus, the user is
- * responsible to ensure that the TPQ's stick around. This is
- * motivated by the need to reduce dynamic memory allocation.
- */
-class ACE_Export ACE_Token_Proxy_Queue
-{
-public:
- friend class ACE_TPQ_Iterator;
-
- /// Constructor.
- ACE_Token_Proxy_Queue (void);
-
- /// Destructor.
- ~ACE_Token_Proxy_Queue (void);
-
- /**
- * Enqueue a proxy, nesting level, client_id, and a magic cookie at
- * the given position in the list. If the position is -1, we
- * enqueue at the end of the list (I think).
- */
- void enqueue (ACE_TPQ_Entry* new_entry,
- int position);
-
- /// Top of the queue.
- const ACE_TPQ_Entry* head (void);
-
-// int member (const ACE_TCHAR *id);
- // Is this id in the waiter list?
-
- /// Remove the top waiter.
- void dequeue (void);
-
- /// Remove the waiter whose proxy ref matches @a remove_me.
- void remove (const ACE_TPQ_Entry *remove_me);
-
- /// The number of waiters.
- int size (void);
-
- /// Dump the state of the class.
- void dump (void) const;
-
-protected:
- /// Head.
- ACE_TPQ_Entry *head_;
-
- /// Tail.
- ACE_TPQ_Entry *tail_;
-
- /// Size.
- int size_;
-};
-
-// 5..
-/**
- * @class ACE_Tokens
- *
- * @brief Abstract representation of ACE tokens.
- *
- * Not a public interface.
- * Currently, I don't see a reason for providing an abstract
- * interface at this level of the library. As of yet, no one
- * uses <ACE_Tokens> derivatives through this abstract interface
- * except for <ACE_Token_Manager>. It only uses the statistical
- * methods which are shared by all Tokens. For that reason, it
- * still makes since to have a common base class. However,
- * acquire, renew, and release do not need to have matching
- * interfaces throughout all Tokens.
- * To add a new type of token (e.g. semaphore), this class must
- * be subtyped to define the new semantics. See
- * <ACE_Token_Manager> for details.
- */
-class ACE_Export ACE_Tokens
-{
-public:
-
- /// Null constructor.
- ACE_Tokens (void);
-
- /// Destructor
- virtual ~ACE_Tokens (void);
-
- /// No implementation.
- virtual int acquire (ACE_TPQ_Entry *caller,
- int ignore_deadlock,
- int notify) = 0;
-
- /// No implementation.
- virtual int tryacquire (ACE_TPQ_Entry *caller) = 0;
-
- /// No implementation.
- virtual int renew (ACE_TPQ_Entry *caller,
- int requeue_position) = 0;
-
- /// No implementation.
- virtual int release (ACE_TPQ_Entry *caller) = 0;
-
- /// Move the caller to the front of the waiter list. This is for use
- /// with remote mutexes and shadow mutexes.
- void make_owner (ACE_TPQ_Entry *caller);
-
- /// Remove the caller from the waiter list.
- void remove (ACE_TPQ_Entry *caller);
-
- // = Accessor methods.
-
- /// Stack of owners.
- typedef ACE_Unbounded_Stack<ACE_TPQ_Entry *> OWNER_STACK;
-
- /// Returns a stack of the current owners. Returns -1 on error, 0 on
- /// success. If <id> is non-zero, returns 1 if id is an owner.
- virtual int owners (OWNER_STACK &o, const ACE_TCHAR *id) = 0;
-
- /// Returns 1 if <id> is waiting for this token. 0 otherwise.
- virtual int is_waiting_for (const ACE_TCHAR *id) = 0;
-
- /// Returns 1 if <id> is an owner of this token. 0 otherwise.
- virtual int is_owner (const ACE_TCHAR *id) = 0;
-
- /// Return the queue of waiters.
- virtual ACE_Token_Proxy_Queue *waiters (void);
-
- /// Return the number of proxies that are currently waiting to get
- /// the token.
- virtual int no_of_waiters (void);
-
- /// The current owner.
- const ACE_TCHAR *owner_id (void);
-
- /// Token name.
- const ACE_TCHAR* name (void);
-
- // = Reference counting. These are only called by the
- // Token_Manager.
- void inc_reference (void);
- int dec_reference (void);
-
- /// Dump the state of the class.
- void dump (void) const;
-
- /**
- * These are the Token types supported by the library at ship time.
- * There is no restriction on the number of Token types added by
- * "3rd parties." These are only necessary for the Token Server.
- */
- enum TOKEN_TYPES { MUTEX, RWLOCK };
-
- /**
- * Provides a manual RTTI mechanism. This method is used only by
- * ACE_Token_Request so that the type of a token can be sent to a
- * remote Token Server.
- */
- virtual int type (void) const = 0;
-
- // = The following methods allow the deadlock detection algorithm to
- // check if this token has been visited.
-
- /// Mark or unmark the token as visited.
- void visit (int v);
-
- /// Check if the token has been visited.
- int visited (void);
-
- /// All the data of the current owner.
- ACE_TPQ_Entry *owner (void);
-
-protected:
-
- /// For the deadlock detection algorithm.
- int visited_;
-
- /// Reference count.
- int reference_count_;
-
- /// List of client's owning and waiting the token.
- ACE_Token_Proxy_Queue waiters_;
-
- /// Name of token.
- ACE_TCHAR token_name_[ACE_MAXTOKENNAMELEN];
-};
-
-class ACE_Local_Mutex;
-
-// 6..
-/**
- * @class ACE_Mutex_Token
- *
- * @brief Class that acquires, renews, and releases a process-local
- * synchronization token.
- *
- * Not a public interface.
- * This class is a more general-purpose synchronization mechanism
- * than SunOS 5.x mutexes. For example, it implements "recursive
- * mutex" semantics, where a thread that owns the token can
- * reacquire it without deadlocking. In addition, threads that
- * are blocked awaiting the token are serviced in strict FIFO
- * order as other threads release the token (SunOS 5.x mutexes
- * don't strictly enforce an acquisition order).
- */
-class ACE_Export ACE_Mutex_Token : public ACE_Tokens
-{
-public:
- /// Constructor
- ACE_EXPLICIT ACE_Mutex_Token (const ACE_TCHAR* name);
-
- /// Destructor
- virtual ~ACE_Mutex_Token (void);
-
- // = Synchronization operations.
- // With acquire, renew, and release, the caller must be specified so
- // that multiple proxies (e.g. ACE_Local_Mutex) can use the same
- // token.
-
- /**
- * Returns 0 on success, -1 on failure with <ACE_Log_Msg::errnum> as
- * the reason. If errnum == EWOULDBLOCK, and notify == 1,
- * <ACE_Token_Proxy::sleep_hook> has been called on the current
- * owner of the token. If ignore_deadlock is passed as 1 and errnum
- * == EDEADLK, then deadlock was detected via ace_token_manager.
- */
- virtual int acquire (ACE_TPQ_Entry *caller,
- int ignore_deadlock,
- int notify);
-
- /// Same as acquire, but fails if would block
- virtual int tryacquire (ACE_TPQ_Entry *caller);
-
- /**
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token. If <requeue_position> ==
- * -1 and there are other threads waiting to obtain the token we are
- * queued at the end of the list of waiters. If <requeue_position>
- * > -1 then it indicates how many entries to skip over before
- * inserting our thread into the list of waiters (e.g.,
- * <requeue_position> == 0 means "insert at front of the queue").
- * Renew has the rather odd semantics such that if there are other
- * waiting threads it will give up the token even if the
- * nesting_level_ > 1. I'm not sure if this is really the right
- * thing to do (since it makes it possible for shared data to be
- * changed unexpectedly) so use with caution... Returns 0 on
- * success, -1 on failure with <ACE_Log_Msg::errnum> as the reason.
- * If errnum == EWOULDBLOCK, and notify == 1,
- * <ACE_Token_Proxy::sleep_hook> has been called on the current
- * owner of the token.
- */
- virtual int renew (ACE_TPQ_Entry *caller,
- int requeue_position);
-
- /**
- * Relinquish the token. If there are any waiters then the next one
- * in line gets it. If the caller is not the owner, caller is
- * removed from the waiter list.
- */
- virtual int release (ACE_TPQ_Entry *caller);
-
- /// Dump the state of the class.
- void dump (void) const;
-
- /// Returns ACE_Tokens::MUTEX.
- virtual int type (void) const;
-
- /// Returns a stack of the current owners. Returns -1 on error, 0 on
- /// success. If <id> is non-zero, returns 1 if id is an owner.
- virtual int owners (OWNER_STACK &o, const ACE_TCHAR *id);
-
- /// Returns 1 if <id> is waiting for this token. 0 otherwise.
- virtual int is_waiting_for (const ACE_TCHAR *id);
-
- /// Returns 1 if <id> is an owner of this token. 0 otherwise.
- virtual int is_owner (const ACE_TCHAR *id);
-
-private:
- /// ACE_Mutex_Token used to lock internal data structures.
- ACE_TOKEN_CONST::MUTEX lock_;
-};
-
-// 12..
-/**
- * @class ACE_RW_Token
- *
- * @brief Class that acquires, renews, and releases a process-local
- * synchronization token.
- *
- * Not a public interface.
- * This class is a more general-purpose synchronization mechanism
- * than SunOS 5.x mutexes. For example, it implements "recursive
- * mutex" semantics, where a thread that owns the token can
- * reacquire it without deadlocking. In addition, threads that are
- * blocked awaiting the token are serviced in strict FIFO order as
- * other threads release the token (SunOS 5.x mutexes don't strictly
- * enforce an acquisition order).
- */
-class ACE_Export ACE_RW_Token : public ACE_Tokens
-{
-public:
- /// Constructor.
- ACE_EXPLICIT ACE_RW_Token (const ACE_TCHAR* name);
-
- /// Destructor.
- virtual ~ACE_RW_Token (void);
-
- // = Synchronization operations.
- // With acquire, renew, and release, the caller must be specified so
- // that multiple proxies (e.g. ACE_Local_Mutex) can use the same
- // token.
-
- /**
- * Returns 0 on success, -1 on failure with <ACE_Log_Msg::errnum> as
- * the reason. If errnum == EWOULDBLOCK, and notify == 1,
- * <ACE_Token_Proxy::sleep_hook> has been called on the current
- * owner of the token. If @a ignore_deadlock is passed as 1 and errnum
- * == EDEADLK, then deadlock was detected via ACE_Token_Manager.
- */
- virtual int acquire (ACE_TPQ_Entry *caller,
- int ignore_deadlock,
- int notify);
-
- /// Same as acquire except fails on would block
- virtual int tryacquire (ACE_TPQ_Entry *caller);
-
- /**
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token. If <requeue_position> ==
- * -1 and there are other threads waiting to obtain the token we are
- * queued at the end of the list of waiters. If <requeue_position>
- * > -1 then it indicates how many entries to skip over before
- * inserting our thread into the list of waiters (e.g.,
- * <requeue_position> == 0 means "insert at front of the queue").
- * Renew has the rather odd semantics such that if there are other
- * waiting threads it will give up the token even if the
- * nesting_level_ > 1. I'm not sure if this is really the right
- * thing to do (since it makes it possible for shared data to be
- * changed unexpectedly) so use with caution... Returns 0 on
- * success, -1 on failure with <ACE_Log_Msg::errnum> as the reason.
- * If errnum == EWOULDBLOCK, and notify == 1,
- * <ACE_Token_Proxy::sleep_hook> has been called on the current
- * owner of the token.
- */
- virtual int renew (ACE_TPQ_Entry *caller,
- int requeue_position);
-
- /**
- * Relinquish the token. If there are any waiters then the next one
- * in line gets it. If the caller is not the owner, caller is
- * removed from the waiter list.
- */
- virtual int release (ACE_TPQ_Entry *caller);
-
- /// Dump the state of the class.
- void dump (void) const;
-
- /// These are the types that proxies can be.
- enum PROXY_TYPE { READER, WRITER };
-
- /// Returns READER or WRITER.
- virtual int type (void) const;
-
- /// Returns a stack of the current owners. Returns -1 on error, 0 on
- /// success. If <id> is non-zero, returns 1 if id is an owner.
- virtual int owners (OWNER_STACK &o, const ACE_TCHAR *id);
-
- /// Returns 1 if <id> is waiting for this token. 0 otherwise.
- virtual int is_waiting_for (const ACE_TCHAR *id);
-
- /// Returns 1 if <id> is an owner of this token. 0 otherwise.
- virtual int is_owner (const ACE_TCHAR *id);
-
-protected:
- /// The number of waiting writers.
- int num_writers_;
-
- /// ACE_Mutex_Token used to lock internal data structures.
- ACE_TOKEN_CONST::MUTEX lock_;
-
- /// Sets the new owner.
- void notify_new_owner (ACE_TPQ_Entry *caller);
-};
-
-// a..
-/**
- * @class ACE_Token_Name
- *
- * @brief Allows Token_Manger to identify tokens.
- *
- * For now, this is just a string. We need a string class
- * anyway to use in <ACE_Map_Manager>. Having this class
- * (instead of <ACE_SString>) allows us to easily change if
- * needed. For instance, we may choose to identify tokens by
- * name and *type* in the future.
- */
-class ACE_Export ACE_Token_Name
-{
-public:
- /// Construction.
- ACE_Token_Name (const ACE_TCHAR *token_name = 0);
-
- /// Copy construction.
- ACE_Token_Name (const ACE_Token_Name &rhs);
-
- /// Destructor.
- virtual ~ACE_Token_Name (void);
-
- /// Copy.
- void operator= (const ACE_Token_Name &rhs);
-
- /// Comparison.
- int operator== (const ACE_Token_Name &rhs) const;
-
- /// Get the token name.
- const ACE_TCHAR *name (void) const;
-
- /// Set the token name.
- void name (const ACE_TCHAR *new_name);
-
- /// Dump the state of the class.
- void dump (void) const;
-
-private:
- /// Name of the token.
- ACE_TCHAR token_name_[ACE_MAXTOKENNAMELEN];
-};
-
-// 7..
-/**
- * @class ACE_Token_Proxy
- *
- * @brief Abstract representation of ACE tokens.
- *
- * Interface for all Tokens in ACE. This class implements the
- * synchronization needed for tokens (condition variables etc.)
- * The algorithms for the operations (acquire, release, etc.)
- * operate on the generic ACE_Tokens interface. Thus, the _type_
- * of token (mutex, rwlock) can be set at construction of
- * ACE_Token_Proxy. You can use all Tokens in ACE through the
- * ACE_Token_Proxy by passing the proper values at construction.
- * Alternatively, there are class definitions which "know" how to
- * do this (ACE_Local_Mutex, ACE_Local_RLock, ACE_Local_WLock).
- * To add a new type of token (e.g. semaphore), this class is not
- * changed. See ACE_Token_Manager for details.
- * Tokens (e.g. ACE_Mutex_Token) assume that it can always call
- * <ACE_Token_Proxy::token_acquired> on a new token owner. This
- * is not a problem for synchronous use of token proxies (that is,
- * when acquires block until successful.) However, for
- * implementations of the Token Server, which may use asynch
- * operations, the proxy can not go away after an acquire until
- * the token is acquired. This is not really a problem, but
- * should be understood.
- */
-class ACE_Export ACE_Token_Proxy
-{
-public:
- friend class ACE_Token_Manager;
- friend class ACE_Token_Invariant_Manager; // For testing.
-
- // Initialization and termination methods.
- /// Construction.
- ACE_Token_Proxy (void);
-
- /// Destructor.
- virtual ~ACE_Token_Proxy (void);
-
- /**
- * Open the <ACE_Token>.
- * @param name The string uniquely identifying the token.
- * @param ignore_deadlock Can be 1 to disable deadlock notifications.
- * @param debug Prints debug messages.
- */
- virtual int open (const ACE_TCHAR *name,
- int ignore_deadlock = 0,
- int debug = 0);
-
- // = The following methods have implementations which are
- // independent of the token semantics (mutex, rwlock, etc.) They
- // forward operations to the underlying token and perform the
- // necessary blocking semantics for operations (condition variables
- // etc.) This allows reuse of the blocking code as well as having
- // multiple proxies to the same token.
-
- /// Calls acquire on the token. Blocks the calling thread if would
- /// block.
- virtual int acquire (int notify = 0,
- void (*sleep_hook)(void *) = 0,
- ACE_Synch_Options &options =
- ACE_Synch_Options::defaults);
-
- /// Calls renew on the token. Blocks the calling thread if would block.
- virtual int renew (int requeue_position = -1,
- ACE_Synch_Options &options =
- ACE_Synch_Options::defaults);
-
- /// Calls renew on the token.
- virtual int tryacquire (void (*sleep_hook)(void *) = 0);
-
- /// Calls release on the token.
- virtual int release (ACE_Synch_Options &options =
- ACE_Synch_Options::defaults);
-
- /// Calls remove on the token.
- virtual int remove (ACE_Synch_Options &options =
- ACE_Synch_Options::defaults);
-
- /// Since the locking mechanism doesn't support read locks then this
- /// just calls <acquire>.
- virtual int acquire_read (int notify = 0,
- void (*sleep_hook)(void *) = 0,
- ACE_Synch_Options &options =
- ACE_Synch_Options::defaults);
-
- /// Since the locking mechanism doesn't support write locks then this
- /// just calls <acquire>.
- virtual int acquire_write (int notify = 0,
- void (*sleep_hook)(void *) = 0,
- ACE_Synch_Options &options =
- ACE_Synch_Options::defaults);
-
- /// Since the locking mechanism doesn't support read locks then this
- /// just calls <tryacquire>.
- virtual int tryacquire_read (void (*sleep_hook)(void *) = 0);
-
- /// Since the locking mechanism doesn't support write locks then this
- /// just calls <tryacquire>.
- virtual int tryacquire_write (void (*sleep_hook)(void *) = 0);
-
- // = Utility methods.
-
- /// Get the client id of the proxy. This is implemented as
- /// thread-specific data.
- virtual const ACE_TCHAR *client_id (void) const;
-
- /**
- * Set the client_id for the calling thread. I strongly recommend
- * that this not be used unless you really know what you're doing.
- * I use this in the Token Server, and it caused many headaches.
- */
- virtual void client_id (const ACE_TCHAR *client_id);
-
- /**
- * Return the name of the token. This is important for use within
- * the token servers (local and remote) as well as with token
- * collections. So, all derivations of ACE_Token_Proxy must be able to
- * stringify some name. The name must uniquely identify a token.
- * So, for instance, the token within the reactor should probably be
- * called "Reactor Token."
- */
- virtual const ACE_TCHAR *name (void) const;
-
- /**
- * This should really be called <someone_waiting>. This is called
- * by ACE_Token_xx's when another proxy enters the waiting list and
- * requests that the current token holder be notified.
- */
- virtual void sleep_hook (void);
-
- /// This is called when a queued (waiting) proxy is removed from the
- /// waiters list and given the token.
- virtual void token_acquired (ACE_TPQ_Entry *);
-
- /// The client id of the current token holder
- virtual const ACE_TCHAR *owner_id (void);
-
- /// Return a dynamically allocated clone of the derived class.
- virtual ACE_Token_Proxy *clone (void) const = 0;
-
- /// Dump the state of the class.
- void dump (void) const;
-
- /**
- * This method can be used be Tokens (e.g. Readers/Writer Tokens) to
- * distinguish between Proxy types. For instance a Reader proxy
- * should return a different type value than a Writer proxy. The
- * default implementation returns 0.
- */
- virtual int type (void) const;
-
-protected:
- /// Duplication.
- ACE_Token_Proxy (const ACE_Token_Proxy &);
-
- /// If this is set, we ignore deadlock.
- int ignore_deadlock_;
-
- /// Print a bunch of debug messages.
- int debug_;
-
- /// Reference to the actual logical token. Many ACE_Local_Mutex
- /// proxies can reference the same ACE_Mutex_Token.
- ACE_Tokens *token_;
-
- /// Handles cond_var waits.
- int handle_options (ACE_Synch_Options &options,
- ACE_TOKEN_CONST::COND_VAR &cv);
-
- /// Waiter info used for asynchronous transactions.
- ACE_TSS_TPQ_Entry waiter_;
-
- /// Make the correct type of ACE_Tokens. This is called by the Token
- /// Manager.
- virtual ACE_Tokens *create_token (const ACE_TCHAR *name) = 0;
-};
-
-// 8..
-/**
- * @class ACE_Null_Token
- *
- * @brief No op class for nonthreaded platform protocols.
- */
-class ACE_Export ACE_Null_Token : public ACE_Token_Proxy
-{
-public:
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
- // @@ Hopefully, we can remove this ridicules ifdef when CE's compiler becomes more normal.
- /// Construction.
- ACE_Null_Token (void);
-
- /// Destructor.
- ~ACE_Null_Token (void);
-#endif /* ACE_LACKS_INLINE_FUNCTION */
-
- /// Acquire.
- virtual int acquire (int /* notify */ = 0,
- void (* /* sleep_hook */ )(void *) = 0,
- ACE_Synch_Options & /* options */ =
- ACE_Synch_Options::defaults) { return 0; }
-
- /// Renew.
- virtual int renew (int /* requeue_position */ = -1,
- ACE_Synch_Options & /* options */ =
- ACE_Synch_Options::defaults) { return 0; }
-
- /// Try acquire.
- virtual int tryacquire (void (* /* sleep_hook */)(void *) = 0) { return 0; }
-
- /// Release.
- virtual int release (ACE_Synch_Options & /* options */ =
- ACE_Synch_Options::defaults) { return 0; }
-
- /// Remove.
- virtual int remove (ACE_Synch_Options & /* options */ =
- ACE_Synch_Options::defaults) { return 0; }
-
- /// Return a dynamically allocated clone of the derived class.
- virtual ACE_Token_Proxy *clone (void) const { return new ACE_Null_Token; }
-
- /// Dump the state of the class.
- void dump (void) const;
-
- /// Do not allow the Token Manager to create us.
- virtual ACE_Tokens *create_token (const ACE_TCHAR *) { return 0; }
-};
-
-// 9..
-/**
- * @class ACE_Local_Mutex
- *
- * @brief Class that acquires, renews, and releases a synchronization
- * token local to the process.
- *
- * This class is a more general-purpose synchronization mechanism
- * than SunOS 5.x mutexes. For example, it implements "recursive
- * mutex" semantics, where a thread that owns the token can
- * reacquire it without deadlocking. In addition, threads that
- * are blocked awaiting the token are serviced in strict FIFO
- * order as other threads release the token (SunOS 5.x mutexes
- * don't strictly enforce an acquisition order). Lastly,
- * ACE_Local_Mutex performs deadlock detection on acquire calls.
- * The interfaces for acquire, tryacquire, renew, release,
- * etc. are defined in ACE_Token_Proxy. The semantics for
- * ACE_Local_Mutex are that of a mutex.
- */
-class ACE_Export ACE_Local_Mutex : public ACE_Token_Proxy
-{
-public:
- /**
- * Constructor.
- * @param token_name Uniquely id's the token.
- * @param ignore_deadlock Will allow deadlock to occur (useful for testing).
- * @param debug Prints a bunch of messages.
- */
- ACE_Local_Mutex (const ACE_TCHAR *token_name = 0,
- int ignore_deadlock = 0,
- int debug = 0);
-
- /// Destructor
- ~ACE_Local_Mutex (void);
-
- /// Dump the state of the class.
- void dump (void) const;
-
- /// Return deep copy.
- virtual ACE_Token_Proxy *clone (void) const;
-
-protected:
- /// Return a new ACE_Local_Mutex.
- virtual ACE_Tokens *create_token (const ACE_TCHAR *name);
-};
-
-// *.
-/**
- * @class ACE_Local_RLock
- *
- * @brief Class that acquires, renews, and releases a readers lock that
- * is local to the process.
- *
- * This class implements the reader interface to canonical
- * readers/writer locks. Multiple readers can hold the lock
- * simultaneously when no writers have the lock. Alternatively,
- * when a writer holds the lock, no other participants (readers
- * or writers) may hold the lock. This class is a more
- * general-purpose synchronization mechanism than SunOS 5.x
- * RLocks. For example, it implements "recursive RLock"
- * semantics, where a thread that owns the token can reacquire it
- * without deadlocking. In addition, threads that are blocked
- * awaiting the token are serviced in strict FIFO order as other
- * threads release the token (SunOS 5.x RLockes don't strictly
- * enforce an acquisition order).
- * The interfaces for acquire, tryacquire, renew, release,
- * etc. are defined in ACE_Token_Proxy. The semantics for
- * ACE_Local_RLock are that of a readers/writers lock. Acquire
- * for this class implies a reader acquisition. That is,
- * multiple clients may acquire a lock for read only.
- */
-class ACE_Export ACE_Local_RLock : public ACE_Token_Proxy
-{
-public:
- // = Initialization and termination.
-
- /**
- * Constructor.
- * @param token_name Uniquely id's the token.
- * @param ignore_deadlock Will allow deadlock to occur (useful for testing).
- * @param debug Prints a bunch of messages.
- */
- ACE_Local_RLock (const ACE_TCHAR *token_name = 0,
- int ignore_deadlock = 0,
- int debug = 0);
-
- /// Destructor
- ~ACE_Local_RLock (void);
-
- /// Dump the state of the class.
- void dump (void) const;
-
- /// Returns ACE_RW_Token::RLOCK.
- virtual int type (void) const;
-
- /// Return deep copy.
- virtual ACE_Token_Proxy *clone (void) const;
-
-protected:
- /// Return a new ACE_Local_Mutex.
- virtual ACE_Tokens *create_token (const ACE_TCHAR *name);
-};
-
-// *.
-/**
- * @class ACE_Local_WLock
- *
- * @brief Class that acquires, renews, and releases a writer lock that
- * is local to the process.
- *
- * This class implements the writer interface to canonical
- * readers/writer locks. Multiple readers can hold the lock
- * simultaneously when no writers have the lock. Alternatively,
- * when a writer holds the lock, no other participants (readers
- * or writers) may hold the lock. This class is a more
- * general-purpose synchronization mechanism than SunOS 5.x
- * WLock. For example, it implements "recursive WLock"
- * semantics, where a thread that owns the token can reacquire it
- * without deadlocking. In addition, threads that are blocked
- * awaiting the token are serviced in strict FIFO order as other
- * threads release the token (SunOS 5.x WLocks don't strictly
- * enforce an acquisition order).
- * The interfaces for acquire, tryacquire, renew, release,
- * etc. are defined in ACE_Token_Proxy. The semantics for
- * ACE_Local_WLock are that of a readers/writers lock. Acquire
- * for this class implies a writer acquisition. That is, only
- * one client may hold the lock for writing.
- */
-class ACE_Export ACE_Local_WLock : public ACE_Token_Proxy
-{
-public:
- // = Initialization and termination.
-
- /**
- * Constructor.
- * @param token_name Uniquely id's the token.
- * @param ignore_deadlock Will allow deadlock to occur (useful for testing).
- * @param debug Prints a bunch of messages.
- */
- ACE_Local_WLock (const ACE_TCHAR *token_name = 0,
- int ignore_deadlock = 0,
- int debug = 0);
-
- /// Destructor
- ~ACE_Local_WLock (void);
-
- /// Dump the state of the class.
- void dump (void) const;
-
- /// Returns ACE_RW_Token::WLOCK.
- virtual int type (void) const;
-
- /// Return deep copy.
- virtual ACE_Token_Proxy *clone (void) const;
-
-protected:
- /// Return a new ACE_Local_Mutex.
- ACE_Tokens *create_token (const ACE_TCHAR *name);
-};
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Local_Tokens.i"
-#endif /* __ACE_INLINE__ */
-#include "ace/post.h"
-#endif /* ACE_LOCAL_MUTEX_H */
diff --git a/ace/Local_Tokens.i b/ace/Local_Tokens.i
deleted file mode 100644
index 01594e0dec2..00000000000
--- a/ace/Local_Tokens.i
+++ /dev/null
@@ -1,458 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-ACE_INLINE int
-ACE_Token_Proxy::type (void) const
-{
- ACE_TRACE ("ACE_Token_Proxy::type");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Token_Proxy::acquire_read (int notify,
- void (*sleep_hook)(void *),
- ACE_Synch_Options &options)
-{
- return this->acquire (notify,
- sleep_hook,
- options);
-}
-
-ACE_INLINE int
-ACE_Token_Proxy::acquire_write (int notify,
- void (*sleep_hook)(void *),
- ACE_Synch_Options &options)
-{
- return this->acquire (notify,
- sleep_hook,
- options);
-}
-
-ACE_INLINE int
-ACE_Token_Proxy::tryacquire_read (void (*sleep_hook)(void *))
-{
- return this->tryacquire (sleep_hook);
-}
-
-ACE_INLINE int
-ACE_Token_Proxy::tryacquire_write (void (*sleep_hook)(void *))
-{
- return this->tryacquire (sleep_hook);
-}
-
-// ************************************************************
-
-ACE_INLINE int
-ACE_Token_Proxy_Queue::size (void)
-{
- ACE_TRACE ("ACE_Token_Proxy_Queue::size");
- return this->size_;
-}
-
-// ************************************************************
-
-ACE_INLINE int
-ACE_TPQ_Entry::waiting (void) const
-{
- ACE_TRACE ("ACE_TPQ_Entry::waiting");
- return waiting_;
-}
-
-ACE_INLINE void
-ACE_TPQ_Entry::waiting (int v)
-{
- ACE_TRACE ("ACE_TPQ_Entry::waiting");
- waiting_ = v;
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_TPQ_Entry::client_id (void) const
-{
- ACE_TRACE ("ACE_TPQ_Entry::client_id");
- return this->client_id_;
-}
-
-ACE_INLINE ACE_Token_Proxy *
-ACE_TPQ_Entry::proxy (void) const
-{
- ACE_TRACE ("ACE_TPQ_Entry::proxy");
- return this->proxy_;
-}
-
-ACE_INLINE void
-ACE_TPQ_Entry::proxy (ACE_Token_Proxy *proxy)
-{
- ACE_TRACE ("ACE_TPQ_Entry::proxy");
- this->proxy_ = proxy;
-}
-
-ACE_INLINE
-ACE_TSS_TPQ_Entry::~ACE_TSS_TPQ_Entry (void)
-{
-}
-
-ACE_INLINE
-ACE_TPQ_Iterator::~ACE_TPQ_Iterator (void)
-{
-}
-
-ACE_INLINE
-ACE_Token_Proxy_Queue::~ACE_Token_Proxy_Queue (void)
-{
-}
-
-ACE_INLINE
-ACE_Tokens::~ACE_Tokens (void)
-{
-}
-
-ACE_INLINE void
-ACE_Tokens::remove (ACE_TPQ_Entry *caller)
-{
- this->waiters_.remove (caller);
-}
-
-ACE_INLINE int
-ACE_Tokens::dec_reference (void)
-{
- ACE_TRACE ("ACE_Tokens::dec_reference");
- if (this->reference_count_ == 0)
- {
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("dec_reference already zero")));
- return 0;
- }
-
- return --this->reference_count_;
-}
-
-ACE_INLINE void
-ACE_Tokens::inc_reference (void)
-{
- ACE_TRACE ("ACE_Tokens::inc_reference");
- ++this->reference_count_;
-}
-
-ACE_INLINE ACE_Token_Proxy_Queue *
-ACE_Tokens::waiters ()
-{
- ACE_TRACE ("ACE_Tokens::waiters");
- return &this->waiters_;
-}
-
-ACE_INLINE int
-ACE_Tokens::no_of_waiters ()
-{
- ACE_TRACE ("ACE_Tokens::no_of_waiters");
- return this->waiters_.size ();
-}
-
-ACE_INLINE const ACE_TPQ_Entry *
-ACE_Token_Proxy_Queue::head (void)
-{
- ACE_TRACE ("ACE_Token_Proxy_Queue::head");
- if (this->head_ == 0)
- return 0;
- else
- return this->head_;
-}
-
-// **************************************************
-// **************************************************
-// **************************************************
-
-ACE_INLINE void
-ACE_Tokens::visit (int v)
-{
- ACE_TRACE ("ACE_Tokens::visit");
- visited_ = v;
-}
-
-ACE_INLINE int
-ACE_Tokens::visited (void)
-{
- ACE_TRACE ("ACE_Tokens::visited");
- return visited_;
-}
-
-ACE_INLINE ACE_TPQ_Entry *
-ACE_Tokens::owner (void)
-{
- ACE_TRACE ("ACE_Tokens::owner");
- return (ACE_TPQ_Entry *) this->waiters_.head ();
-}
-
-ACE_INLINE const ACE_TCHAR*
-ACE_Tokens::owner_id ()
-{
- ACE_TRACE ("ACE_Tokens::owner_id");
- if (this->owner () == 0)
- return ACE_LIB_TEXT ("no owner");
- else
- return this->owner ()->client_id ();
-}
-
-ACE_INLINE const ACE_TCHAR*
-ACE_Tokens::name (void)
-{
- ACE_TRACE ("ACE_Tokens::name");
- return this->token_name_;
-}
-
-#if 0
-ACE_INLINE ACE_Token_Proxy *
-ACE_Tokens::current_owner (void)
-{
- ACE_TRACE ("ACE_Tokens::current_owner");
- // ACE_GUARD_RETURN ???
-
- if (this->owner () == 0)
- return 0;
- else
- return this->owner ()->proxy ();
-}
-#endif /* 0 */
-
-// ************************************************************
-
-ACE_INLINE int
-ACE_Mutex_Token::type (void) const
-{
- ACE_TRACE ("ACE_Mutex_Token::type");
- return (int) ACE_Tokens::MUTEX;
-}
-
-// ************************************************************
-
-ACE_INLINE int
-ACE_RW_Token::type (void) const
-{
- ACE_TRACE ("ACE_RW_Token::type");
- return (int) ACE_Tokens::RWLOCK;
-}
-
-// ************************************************************
-
-ACE_INLINE int
-ACE_TPQ_Entry::nesting_level (void) const
-{
- ACE_TRACE ("ACE_TPQ_Entry::nesting_level");
- return this->nesting_level_;
-}
-
-ACE_INLINE void
-ACE_TPQ_Entry::nesting_level (int delta)
-{
- ACE_TRACE ("ACE_TPQ_Entry::nesting_level");
- this->nesting_level_ += delta;
-}
-
-ACE_INLINE ACE_TPQ_Entry::PTVF
-ACE_TPQ_Entry::sleep_hook (void) const
-{
- ACE_TRACE ("ACE_TPQ_Entry::sleep_hook");
- return this->sleep_hook_;
-}
-
-ACE_INLINE void
-ACE_TPQ_Entry::sleep_hook (void (*sh)(void *))
-{
- ACE_TRACE ("ACE_TPQ_Entry::sleep_hook");
- this->sleep_hook_ = sh;
-}
-
-ACE_INLINE void
-ACE_TPQ_Entry::call_sleep_hook (void)
-{
- ACE_TRACE ("ACE_TPQ_Entry::call_sleep_hook");
-
- // if a function has been registered, call it.
- if (this->sleep_hook () != 0)
- this->sleep_hook () ((void *) this->proxy ());
- else
- // otherwise, call back the sleep_hook method
- this->proxy ()->sleep_hook ();
-}
-
-ACE_INLINE int
-ACE_TPQ_Entry::equal_client_id (const ACE_TCHAR *id)
-{
- ACE_TRACE ("ACE_TPQ_Entry::equal_client_id");
- return (ACE_OS::strcmp (this->client_id (), id) == 0);
-}
-
-// ************************************************************
-// ************************************************************
-// ************************************************************
-
-ACE_INLINE
-ACE_Local_Mutex::ACE_Local_Mutex (const ACE_TCHAR *token_name,
- int ignore_deadlock,
- int debug)
-{
- ACE_TRACE ("ACE_Local_Mutex::ACE_Local_Mutex");
- this->open (token_name, ignore_deadlock, debug);
-}
-
-ACE_INLINE void
-ACE_Token_Name::name (const ACE_TCHAR *new_name)
-{
- ACE_TRACE ("ACE_Token_Name::name");
-
- if (new_name == 0)
- new_name = ACE_LIB_TEXT ("no name");
-
- int n = ACE_OS::strlen (new_name) + 1;
-
- if (n >= ACE_MAXTOKENNAMELEN)
- n = ACE_MAXTOKENNAMELEN - 1;
-
- ACE_OS::strsncpy (this->token_name_, (ACE_TCHAR *) new_name, n);
-}
-
-ACE_INLINE const ACE_TCHAR*
-ACE_Token_Name::name (void) const
-{
- ACE_TRACE ("ACE_Token_Name::name");
- return this->token_name_;
-}
-
-ACE_INLINE ACE_Token_Proxy *
-ACE_Local_Mutex::clone (void) const
-{
- ACE_Token_Proxy *temp = 0;
- ACE_NEW_RETURN (temp,
- ACE_Local_Mutex (token_->name (),
- ignore_deadlock_,
- debug_),
- 0);
- return temp;
-}
-
-ACE_INLINE ACE_Tokens *
-ACE_Local_Mutex::create_token (const ACE_TCHAR *name)
-{
- ACE_Tokens *temp = 0;
- ACE_NEW_RETURN (temp,
- ACE_Mutex_Token (name),
- 0);
- return temp;
-}
-
-ACE_INLINE
-ACE_Local_Mutex::~ACE_Local_Mutex (void)
-{
-}
-
-// ************************************************************
-
-ACE_INLINE
-ACE_Local_RLock::ACE_Local_RLock (const ACE_TCHAR *token_name,
- int ignore_deadlock,
- int debug)
-{
- ACE_TRACE ("ACE_Local_RLock::ACE_Local_RLock");
- this->open (token_name, ignore_deadlock, debug);
-}
-
-ACE_INLINE
-ACE_Local_RLock::~ACE_Local_RLock (void)
-{
-}
-
-ACE_INLINE ACE_Tokens *
-ACE_Local_RLock::create_token (const ACE_TCHAR *name)
-{
- ACE_Tokens *temp = 0;
- ACE_NEW_RETURN (temp,
- ACE_RW_Token (name),
- 0);
- return temp;
-}
-
-ACE_INLINE int
-ACE_Local_RLock::type (void) const
-{
- return ACE_RW_Token::READER;
-}
-
-ACE_INLINE ACE_Token_Proxy *
-ACE_Local_RLock::clone (void) const
-{
- ACE_Token_Proxy *temp = 0;
- ACE_NEW_RETURN (temp,
- ACE_Local_RLock (token_->name (),
- ignore_deadlock_,
- debug_),
- 0);
- return temp;
-}
-
-// ************************************************************
-
-ACE_INLINE
-ACE_Local_WLock::ACE_Local_WLock (const ACE_TCHAR *token_name,
- int ignore_deadlock,
- int debug)
-{
- ACE_TRACE ("ACE_Local_WLock::ACE_Local_WLock");
- this->open (token_name, ignore_deadlock, debug);
-}
-
-ACE_INLINE
-ACE_Local_WLock::~ACE_Local_WLock (void)
-{
-}
-
-ACE_INLINE ACE_Tokens *
-ACE_Local_WLock::create_token (const ACE_TCHAR *name)
-{
- ACE_Tokens *temp = 0;
- ACE_NEW_RETURN (temp,
- ACE_RW_Token (name),
- 0);
- return temp;
-}
-
-ACE_INLINE int
-ACE_Local_WLock::type (void) const
-{
- return ACE_RW_Token::WRITER;
-}
-
-ACE_INLINE ACE_Token_Proxy *
-ACE_Local_WLock::clone (void) const
-{
- ACE_Token_Proxy *temp = 0;
- ACE_NEW_RETURN (temp,
- ACE_Local_WLock (token_->name (),
- ignore_deadlock_,
- debug_),
- 0);
- return temp;
-}
-
-// ************************************************************
-
-
-ACE_INLINE void
-ACE_Token_Name::operator= (const ACE_Token_Name &rhs)
-{
- ACE_TRACE ("ACE_Token_Name::operator=");
- if (&rhs == this)
- return;
- else
- this->name (rhs.name ());
-}
-
-ACE_INLINE int
-ACE_Token_Name::operator== (const ACE_Token_Name &rhs) const
-{
- ACE_TRACE ("ACE_Token_Name::operator==");
-
- // the name and type must be the same
- return (ACE_OS::strcmp (this->token_name_, rhs.name ()) == 0);
-}
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
diff --git a/ace/Log_Msg.cpp b/ace/Log_Msg.cpp
deleted file mode 100644
index 6dfa0edaca5..00000000000
--- a/ace/Log_Msg.cpp
+++ /dev/null
@@ -1,2534 +0,0 @@
-// $Id$
-
-// We need this to get the status of ACE_NTRACE...
-#include "ace/config-all.h"
-
-// Turn off tracing for the duration of this file.
-#if defined (ACE_NTRACE)
-# undef ACE_NTRACE
-#endif /* ACE_NTRACE */
-#define ACE_NTRACE 1
-
-#include "ace/ACE.h"
-#include "ace/Thread_Manager.h"
-#include "ace/OS.h"
-
-#if !defined (ACE_MT_SAFE) || (ACE_MT_SAFE == 0)
-# include "ace/Object_Manager.h"
-#endif /* ! ACE_MT_SAFE */
-
-#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
-# include "ace/streams.h"
-#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-
-#include "ace/Log_Msg.h"
-#include "ace/Log_Msg_Callback.h"
-#include "ace/Log_Msg_IPC.h"
-#include "ace/Log_Msg_NT_Event_Log.h"
-#include "ace/Log_Msg_UNIX_Syslog.h"
-#include "ace/Log_Record.h"
-
-ACE_RCSID(ace, Log_Msg, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Log_Msg)
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- int ACE_Log_Msg::key_created_ = 0;
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \
- defined (ACE_HAS_TSS_EMULATION)
- ACE_thread_key_t ACE_Log_Msg::log_msg_tss_key_;
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */
-#endif /* ACE_MT_SAFE */
-
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_PHARLAP)
-# define ACE_LOG_MSG_SYSLOG_BACKEND ACE_Log_Msg_NT_Event_Log
-#elif !defined (ACE_LACKS_UNIX_SYSLOG) && !defined (ACE_HAS_WINCE)
-# define ACE_LOG_MSG_SYSLOG_BACKEND ACE_Log_Msg_UNIX_Syslog
-#else
-# define ACE_LOG_MSG_SYSLOG_BACKEND ACE_Log_Msg_IPC
-#endif /* ! ACE_WIN32 */
-
-// When doing ACE_OS::s[n]printf() calls in log(), we need to update
-// the space remaining in the output buffer based on what's returned from
-// the output function. If we could rely on more modern compilers, this
-// would be in an unnamed namespace, but it's a macro instead.
-// count is a size_t, len is an int and assumed to be non-negative.
-#define ACE_UPDATE_COUNT(COUNT, LEN) \
- do { if (ACE_static_cast (size_t, LEN) > COUNT) COUNT = 0; \
- else COUNT -= ACE_static_cast (size_t, LEN); \
- } while (0)
-
-/// Instance count for Log_Msg - used to know when dynamically
-/// allocated storage (program name and host name) can be safely
-/// deleted.
-int ACE_Log_Msg::instance_count_ = 0;
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-# if !defined (ACE_MT_SAFE) || (ACE_MT_SAFE == 0)
- template class ACE_Cleanup_Adapter<ACE_Log_Msg>;
-#else
-template class ACE_Reverse_Lock<ACE_Recursive_Thread_Mutex>;
-template class ACE_Guard<ACE_Reverse_Lock<ACE_Recursive_Thread_Mutex> >;
-# endif /* ! ACE_MT_SAFE */
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# if !defined (ACE_MT_SAFE) || (ACE_MT_SAFE == 0)
-# pragma instantiate ACE_Cleanup_Adapter<ACE_Log_Msg>
-#else
-#pragma instantiate ACE_Reverse_Lock<ACE_Recursive_Thread_Mutex>
-#pragma instantiate ACE_Guard<ACE_Reverse_Lock<ACE_Recursive_Thread_Mutex> >
-# endif /* ! ACE_MT_SAFE */
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-/**
- * @class ACE_Log_Msg_Manager
- *
- * @brief Synchronize output operations.
- *
- * Provides global point of contact for all ACE_Log_Msg instances
- * in a process.
- *
- * For internal use by ACE, only!
- */
-class ACE_Log_Msg_Manager
-{
-public:
- static ACE_Log_Msg_Backend *log_backend_;
- static ACE_Log_Msg_Backend *custom_backend_;
-
- static u_long log_backend_flags_;
-
- static int init_backend (const u_long *flags = 0);
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- static void close (void);
-
- static ACE_Recursive_Thread_Mutex *get_lock (void);
-
-private:
- static ACE_Recursive_Thread_Mutex *lock_;
-#endif /* ! ACE_MT_SAFE */
-};
-
-ACE_Log_Msg_Backend *ACE_Log_Msg_Manager::log_backend_ = 0;
-ACE_Log_Msg_Backend *ACE_Log_Msg_Manager::custom_backend_ = 0;
-
-u_long ACE_Log_Msg_Manager::log_backend_flags_ = 0;
-
-int ACE_Log_Msg_Manager::init_backend (const u_long *flags)
-{
- // If flags have been supplied, and they are different from the flags
- // we had last time, then we may have to re-create the backend as a
- // different type.
- if (flags)
- {
- // Sanity check for custom backend.
- if (ACE_BIT_ENABLED (*flags, ACE_Log_Msg::CUSTOM) &&
- ACE_Log_Msg_Manager::custom_backend_ == 0)
- {
- return -1;
- }
-
- if ((ACE_BIT_ENABLED (*flags, ACE_Log_Msg::SYSLOG)
- && ACE_BIT_DISABLED (ACE_Log_Msg_Manager::log_backend_flags_, ACE_Log_Msg::SYSLOG))
- || (ACE_BIT_DISABLED (*flags, ACE_Log_Msg::SYSLOG)
- && ACE_BIT_ENABLED (ACE_Log_Msg_Manager::log_backend_flags_, ACE_Log_Msg::SYSLOG)))
- {
- delete ACE_Log_Msg_Manager::log_backend_;
- ACE_Log_Msg_Manager::log_backend_ = 0;
- }
-
- ACE_Log_Msg_Manager::log_backend_flags_ = *flags;
- }
-
- if (ACE_Log_Msg_Manager::log_backend_ == 0)
- {
- ACE_NO_HEAP_CHECK;
-
-#if (defined (WIN32) || !defined (ACE_LACKS_UNIX_SYSLOG)) && !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_PHARLAP)
- // Allocate the ACE_Log_Msg_Backend instance.
- if (ACE_BIT_ENABLED (ACE_Log_Msg_Manager::log_backend_flags_, ACE_Log_Msg::SYSLOG))
- ACE_NEW_RETURN (ACE_Log_Msg_Manager::log_backend_,
- ACE_LOG_MSG_SYSLOG_BACKEND,
- -1);
- else
-#endif /* defined (WIN32) && !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_PHARLAP) */
- ACE_NEW_RETURN (ACE_Log_Msg_Manager::log_backend_,
- ACE_Log_Msg_IPC,
- -1);
- }
-
- return 0;
-}
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-ACE_Recursive_Thread_Mutex *ACE_Log_Msg_Manager::lock_ = 0;
-
-ACE_Recursive_Thread_Mutex *
-ACE_Log_Msg_Manager::get_lock (void)
-{
- // This function is called by the first thread to create an ACE_Log_Msg
- // instance. It makes the call while holding a mutex, so we don't have
- // to grab another one here.
-
- if (ACE_Log_Msg_Manager::lock_ == 0)
- {
- ACE_NO_HEAP_CHECK;
-
- ACE_NEW_RETURN (ACE_Log_Msg_Manager::lock_,
- ACE_Recursive_Thread_Mutex,
- 0);
- }
-
- if (init_backend () == -1)
- return 0;
-
- return ACE_Log_Msg_Manager::lock_;
-}
-
-void
-ACE_Log_Msg_Manager::close (void)
-{
-#if defined (ACE_HAS_STHREADS) && ! defined (ACE_HAS_TSS_EMULATION) && ! defined (ACE_HAS_EXCEPTIONS)
- // Delete the (main thread's) Log_Msg instance. I think that this
- // is only "necessary" if exception handling is not enabled.
- // Without exception handling, main thread TSS destructors don't
- // seem to be called. It's not really necessary anyways, because
- // this one leak is harmless on Solaris.
- delete ACE_Log_Msg::instance ();
-#endif /* ACE_HAS_STHREADS && ! TSS_EMULATION && ! ACE_HAS_EXCEPTIONS */
-
- // Ugly, ugly, but don't know a better way.
- delete ACE_Log_Msg_Manager::lock_;
- ACE_Log_Msg_Manager::lock_ = 0;
-
- delete ACE_Log_Msg_Manager::log_backend_;
- ACE_Log_Msg_Manager::log_backend_ = 0;
-
- // we are never responsible for custom backend
- ACE_Log_Msg_Manager::custom_backend_ = 0;
-}
-
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \
- defined (ACE_HAS_TSS_EMULATION)
-/* static */
-# if defined (ACE_HAS_THR_C_DEST)
-# define LOCAL_EXTERN_PREFIX extern "C"
-# else
-# define LOCAL_EXTERN_PREFIX
-# endif /* ACE_HAS_THR_C_DEST */
-LOCAL_EXTERN_PREFIX
-void
-ACE_TSS_cleanup (void *ptr)
-{
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- // Delegate to thr_desc if this not has terminated
- ACE_Log_Msg* log_msg = (ACE_Log_Msg*) ptr;
- if (log_msg->thr_desc()!=0)
- log_msg->thr_desc()->log_msg_cleanup(log_msg);
- else
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
- delete (ACE_Log_Msg *) ptr;
-}
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */
-#endif /* ! ACE_MT_SAFE */
-
-/* static */
-int
-ACE_Log_Msg::exists (void)
-{
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \
- defined (ACE_HAS_TSS_EMULATION)
- ACE_Log_Msg *tss_log_msg = 0;
-
- // Get the tss_log_msg from thread-specific storage.
- return key_created_
- && ACE_Thread::getspecific (log_msg_tss_key_,
- ACE_reinterpret_cast (void **,
- &tss_log_msg)) != -1
- && tss_log_msg;
-# else
-# error "Platform must support thread-specific storage if threads are used."
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */
-#else /* ! ACE_MT_SAFE */
- return 1;
-#endif /* ! ACE_MT_SAFE */
-}
-
-ACE_Log_Msg *
-ACE_Log_Msg::instance (void)
-{
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \
- defined (ACE_HAS_TSS_EMULATION)
- // TSS Singleton implementation.
-
- if (key_created_ == 0)
- {
- ACE_thread_mutex_t *lock =
- ACE_reinterpret_cast (ACE_thread_mutex_t *,
- ACE_OS_Object_Manager::preallocated_object
- [ACE_OS_Object_Manager::ACE_LOG_MSG_INSTANCE_LOCK]);
-
- if (1 == ACE_OS_Object_Manager::starting_up())
- //This function is called before ACE_OS_Object_Manager is
- //initialized. So the lock might not be valid. Assume it's
- //single threaded and so don't need the lock.
- ;
- else
- ACE_OS::thread_mutex_lock (lock);
-
- if (key_created_ == 0)
- {
- // Allocate the Singleton lock.
- ACE_Log_Msg_Manager::get_lock ();
-
- {
- ACE_NO_HEAP_CHECK;
- if (ACE_Thread::keycreate (&log_msg_tss_key_,
- &ACE_TSS_cleanup) != 0)
- {
- if (1 == ACE_OS_Object_Manager::starting_up())
- //This function is called before ACE_OS_Object_Manager is
- //initialized. So the lock might not be valid. Assume it's
- //single threaded and so don't need the lock.
- ;
- else
- ACE_OS::thread_mutex_unlock (lock);
- return 0; // Major problems, this should *never* happen!
- }
- }
-
- key_created_ = 1;
- }
-
- if (1 == ACE_OS_Object_Manager::starting_up())
- //This function is called before ACE_OS_Object_Manager is
- //initialized. So the lock might not be valid. Assume it's
- //single threaded and so don't need the lock.
- ;
- else
- ACE_OS::thread_mutex_unlock (lock);
- }
-
- ACE_Log_Msg *tss_log_msg = 0;
-
- // Get the tss_log_msg from thread-specific storage.
- if (ACE_Thread::getspecific (log_msg_tss_key_,
- ACE_reinterpret_cast (void **,
- &tss_log_msg)) == -1)
- return 0; // This should not happen!
-
- // Check to see if this is the first time in for this thread.
- if (tss_log_msg == 0)
- {
- // Allocate memory off the heap and store it in a pointer in
- // thread-specific storage (on the stack...). Stop heap
- // checking, the memory will always be freed by the thread
- // rundown because of the TSS callback set up when the key was
- // created. This prevents from getting these blocks reported as
- // memory leaks.
- {
- ACE_NO_HEAP_CHECK;
-
- ACE_NEW_RETURN (tss_log_msg,
- ACE_Log_Msg,
- 0);
- // Store the dynamically allocated pointer in thread-specific
- // storage. It gets deleted via the ACE_TSS_cleanup function
- // when the thread terminates.
-
- if (ACE_Thread::setspecific (log_msg_tss_key_,
- ACE_reinterpret_cast (void *,
- tss_log_msg)) != 0)
- return 0; // Major problems, this should *never* happen!
- }
- }
-
- return tss_log_msg;
-# else
-# error "Platform must support thread-specific storage if threads are used."
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */
-#else /* ! ACE_MT_SAFE */
- // We don't have threads, we cannot call
- // ACE_Log_Msg_Manager::get_lock () to initialize the logger
- // callback, so instead we do it here.
- if (ACE_Log_Msg_Manager::init_backend () == -1)
- return 0;
-
- // Singleton implementation.
- static ACE_Cleanup_Adapter<ACE_Log_Msg> *log_msg = 0;
- if (log_msg == 0)
- {
- ACE_NEW_RETURN (log_msg, ACE_Cleanup_Adapter<ACE_Log_Msg>, 0);
- // Register the instance for destruction at program termination.
- ACE_Object_Manager::at_exit (log_msg);
- }
-
- return &log_msg->object ();
-#endif /* ! ACE_MT_SAFE */
-}
-
-// Not inlined to help prevent having to include OS.h just to
-// get ACE_DEBUG, et al, macros.
-int
-ACE_Log_Msg::last_error_adapter (void)
-{
- return ACE_OS::last_error ();
-}
-
-// Sets the flag in the default priority mask used to initialize
-// ACE_Log_Msg instances, as well as the current per-thread instance.
-
-void
-ACE_Log_Msg::enable_debug_messages (ACE_Log_Priority priority)
-{
- ACE_SET_BITS (ACE_Log_Msg::default_priority_mask_, priority);
- ACE_Log_Msg *i = ACE_Log_Msg::instance ();
- i->priority_mask (i->priority_mask () | priority);
-}
-
-// Clears the flag in the default priority mask used to initialize
-// ACE_Log_Msg instances, as well as the current per-thread instance.
-
-void
-ACE_Log_Msg::disable_debug_messages (ACE_Log_Priority priority)
-{
- ACE_CLR_BITS (ACE_Log_Msg::default_priority_mask_, priority);
- ACE_Log_Msg *i = ACE_Log_Msg::instance ();
- i->priority_mask (i->priority_mask () & ~priority);
-}
-
-const ACE_TCHAR *
-ACE_Log_Msg::program_name (void)
-{
- return ACE_Log_Msg::program_name_;
-}
-
-/// Name of the local host.
-const ACE_TCHAR *ACE_Log_Msg::local_host_ = 0;
-
-/// Records the program name.
-const ACE_TCHAR *ACE_Log_Msg::program_name_ = 0;
-
-/// Default is to use stderr.
-u_long ACE_Log_Msg::flags_ = ACE_Log_Msg::STDERR;
-
-/// Process id of the current process.
-pid_t ACE_Log_Msg::pid_ = -1;
-
-/// Current offset of msg_[].
-int ACE_Log_Msg::msg_off_ = 0;
-
-/// Default per-thread priority mask
-/// By default, no priorities are enabled.
-u_long ACE_Log_Msg::default_priority_mask_ = 0;
-
-/// Default per-process priority mask
-/// By default, all priorities are enabled.
-u_long ACE_Log_Msg::process_priority_mask_ = LM_SHUTDOWN
- | LM_TRACE
- | LM_DEBUG
- | LM_INFO
- | LM_NOTICE
- | LM_WARNING
- | LM_STARTUP
- | LM_ERROR
- | LM_CRITICAL
- | LM_ALERT
- | LM_EMERGENCY;
-
-void
-ACE_Log_Msg::close (void)
-{
- // This call needs to go here to avoid memory leaks.
- ACE_MT (ACE_Log_Msg_Manager::close ());
-
- // Please note that this will be called by a statement that is
- // harded coded into the ACE_Object_Manager's shutdown sequence, in
- // its destructor.
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) && \
- (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \
- defined (ACE_HAS_TSS_EMULATION))
-
- if (key_created_ == 1)
- {
- ACE_thread_mutex_t *lock =
- ACE_reinterpret_cast (ACE_thread_mutex_t *,
- ACE_OS_Object_Manager::preallocated_object
- [ACE_OS_Object_Manager::ACE_LOG_MSG_INSTANCE_LOCK]);
- ACE_OS::thread_mutex_lock (lock);
-
- if (key_created_ == 1)
- {
- // The same as the ACE_TSS_Cleanup's own key doesn't get
- // detached, the log_msg_tss_key_ won't get detached
- // until ACE_TSS_Cleanup::free_all_keys_left, so it will
- // be in the ACE_TSS_Cleanup::table_. However, there's
- // no resource associated with it, so we don't need to
- // keyfree it. The dynamic memory associated with it was
- // already deleted by ACE_TSS_Cleanup::exit (), so we
- // don't want to access it again.
- key_created_ = 0;
- }
-
- ACE_OS::thread_mutex_unlock (lock);
- }
-#endif /* (ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION) && ACE_MT_SAFE */
-}
-
-void
-ACE_Log_Msg::sync_hook (const ACE_TCHAR *prg_name)
-{
- ACE_LOG_MSG->sync (prg_name);
-}
-
-ACE_OS_Thread_Descriptor *
-ACE_Log_Msg::thr_desc_hook (void)
-{
- return ACE_LOG_MSG->thr_desc ();
-}
-
-// Call after a fork to resynchronize the PID and PROGRAM_NAME
-// variables.
-void
-ACE_Log_Msg::sync (const ACE_TCHAR *prog_name)
-{
- ACE_TRACE ("ACE_Log_Msg::sync");
-
- if (prog_name)
- {
- // Must free if already allocated!!!
- ACE_OS::free ((void *) ACE_Log_Msg::program_name_);
-
- // Stop heap checking, block will be freed by the destructor when
- // the last ACE_Log_Msg instance is deleted.
- // Heap checking state will be restored when the block is left.
- {
- ACE_NO_HEAP_CHECK;
-
- ACE_Log_Msg::program_name_ = ACE_OS::strdup (prog_name);
- }
- }
-
- ACE_Log_Msg::pid_ = ACE_OS::getpid ();
- ACE_Log_Msg::msg_off_ = 0;
-}
-
-u_long
-ACE_Log_Msg::flags (void)
-{
- ACE_TRACE ("ACE_Log_Msg::flags");
- u_long result;
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Log_Msg_Manager::get_lock (), 0));
-
- result = ACE_Log_Msg::flags_;
- return result;
-}
-
-void
-ACE_Log_Msg::set_flags (u_long flgs)
-{
- ACE_TRACE ("ACE_Log_Msg::set_flags");
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Log_Msg_Manager::get_lock ()));
-
- ACE_SET_BITS (ACE_Log_Msg::flags_, flgs);
-}
-
-void
-ACE_Log_Msg::clr_flags (u_long flgs)
-{
- ACE_TRACE ("ACE_Log_Msg::clr_flags");
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Log_Msg_Manager::get_lock ()));
-
- ACE_CLR_BITS (ACE_Log_Msg::flags_, flgs);
-}
-
-int
-ACE_Log_Msg::acquire (void)
-{
- ACE_TRACE ("ACE_Log_Msg::acquire");
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- return ACE_Log_Msg_Manager::get_lock ()->acquire ();
-#else /* ! ACE_MT_SAFE */
- return 0;
-#endif /* ! ACE_MT_SAFE */
-}
-
-u_long
-ACE_Log_Msg::priority_mask (u_long n_mask, MASK_TYPE mask_type)
-{
- u_long o_mask;
-
- if (mask_type == THREAD) {
- o_mask = this->priority_mask_;
- this->priority_mask_ = n_mask;
- }
- else {
- o_mask = ACE_Log_Msg::process_priority_mask_;
- ACE_Log_Msg::process_priority_mask_ = n_mask;
- }
-
- return o_mask;
-}
-
-u_long
-ACE_Log_Msg::priority_mask (MASK_TYPE mask_type)
-{
- return mask_type == THREAD ? this->priority_mask_
- : ACE_Log_Msg::process_priority_mask_;
-}
-
-int
-ACE_Log_Msg::log_priority_enabled (ACE_Log_Priority log_priority)
-{
- return ACE_BIT_ENABLED (this->priority_mask_ |
- ACE_Log_Msg::process_priority_mask_,
- log_priority);
-}
-
-int
-ACE_Log_Msg::release (void)
-{
- ACE_TRACE ("ACE_Log_Msg::release");
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- return ACE_Log_Msg_Manager::get_lock ()->release ();
-#else /* ! ACE_MT_SAFE */
- return 0;
-#endif /* ! ACE_MT_SAFE */
-}
-
-ACE_Log_Msg::ACE_Log_Msg (void)
- : status_ (0),
- errnum_ (0),
- linenum_ (0),
- restart_ (1), // Restart by default...
- ostream_ (0),
- msg_callback_ (0),
- trace_depth_ (0),
- trace_active_ (0),
- tracing_enabled_ (1), // On by default?
- delete_ostream_(0),
- thr_desc_ (0),
- priority_mask_ (default_priority_mask_)
-{
- // ACE_TRACE ("ACE_Log_Msg::ACE_Log_Msg");
-
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Log_Msg_Manager::get_lock ()));
- ++instance_count_;
-
- if (this->instance_count_ == 1)
- ACE_Base_Thread_Adapter::set_log_msg_hooks (ACE_Log_Msg::init_hook,
- ACE_Log_Msg::inherit_hook,
- ACE_Log_Msg::close,
- ACE_Log_Msg::sync_hook,
- ACE_Log_Msg::thr_desc_hook);
-
- this->conditional_values_.is_set_ = 0;
-}
-
-ACE_Log_Msg::~ACE_Log_Msg (void)
-{
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-
- int instance_count;
-
- // Only hold the guard while updating the instance_count_.
- // If ACE_Log_Msg_Manager::close () is called, the lock will
- // be deleted.
- {
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Log_Msg_Manager::get_lock ()));
- instance_count = --instance_count_;
- }
- // Release the guard.
-
-#else /* ! ACE_MT_SAFE */
- int instance_count = --instance_count_;
-#endif /* ! ACE_MT_SAFE */
-
- // If this is the last instance then cleanup. Only the last
- // thread to destroy its ACE_Log_Msg instance should execute
- // this block.
- if (instance_count == 0)
- {
- // Destroy the message queue instance.
- if (ACE_Log_Msg_Manager::log_backend_ != 0)
- ACE_Log_Msg_Manager::log_backend_->close ();
-
- // Close down custom backend
- if (ACE_Log_Msg_Manager::custom_backend_ != 0)
- ACE_Log_Msg_Manager::custom_backend_->close ();
-
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-# if defined (ACE_HAS_TSS_EMULATION)
- ACE_Log_Msg_Manager::close ();
-# endif /* ACE_HAS_TSS_EMULATION */
-# endif /* ACE_MT_SAFE */
-
- if (ACE_Log_Msg::program_name_)
- {
- ACE_OS::free ((void *) ACE_Log_Msg::program_name_);
- ACE_Log_Msg::program_name_ = 0;
- }
-
- if (ACE_Log_Msg::local_host_)
- {
- ACE_OS::free ((void *) ACE_Log_Msg::local_host_);
- ACE_Log_Msg::local_host_ = 0;
- }
- }
-
- //
- // do we need to close and clean up?
- //
- if (this->delete_ostream_ == 1)
-#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
- {
- ACE_OS::fclose (this->ostream_);
- }
-#else
- {
- delete ostream_;
- }
-#endif
-}
-
-// Open the sender-side of the message queue.
-
-int
-ACE_Log_Msg::open (const ACE_TCHAR *prog_name,
- u_long flags,
- const ACE_TCHAR *logger_key)
-{
- ACE_TRACE ("ACE_Log_Msg::open");
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Log_Msg_Manager::get_lock (), -1));
-
- if (prog_name)
- {
- ACE_OS::free ((void *) ACE_Log_Msg::program_name_);
-
- // Stop heap checking, block will be freed by the destructor.
- {
- ACE_NO_HEAP_CHECK;
-
- ACE_ALLOCATOR_RETURN (ACE_Log_Msg::program_name_,
- ACE_OS::strdup (prog_name),
- -1);
- }
- }
- else if (ACE_Log_Msg::program_name_ == 0)
- {
- // Stop heap checking, block will be freed by the destructor.
- ACE_NO_HEAP_CHECK;
- ACE_ALLOCATOR_RETURN (ACE_Log_Msg::program_name_,
- ACE_OS::strdup (ACE_LIB_TEXT ("<unknown>")),
- -1);
- }
-
- int status = 0;
-
- // Be sure that there is a message_queue_, with multiple threads.
- ACE_MT (ACE_Log_Msg_Manager::init_backend (&flags));
-
- // Always close the current handle before doing anything else.
- if (ACE_Log_Msg_Manager::log_backend_ != 0)
- ACE_Log_Msg_Manager::log_backend_->reset ();
-
- if (ACE_Log_Msg_Manager::custom_backend_ != 0)
- ACE_Log_Msg_Manager::custom_backend_->reset ();
-
- // Note that if we fail to open the message queue the default action
- // is to use stderr (set via static initialization in the
- // Log_Msg.cpp file).
-
- if (ACE_BIT_ENABLED (flags, ACE_Log_Msg::LOGGER)
- || ACE_BIT_ENABLED (flags, ACE_Log_Msg::SYSLOG))
- {
- // The SYSLOG backends (both NT and UNIX) can get along fine
- // without the logger_key.
- if (logger_key == 0 && ACE_BIT_ENABLED (flags, ACE_Log_Msg::LOGGER))
- status = -1;
- else
- {
- status =
- ACE_Log_Msg_Manager::log_backend_->open (logger_key);
- }
-
- if (status == -1)
- ACE_SET_BITS (ACE_Log_Msg::flags_, ACE_Log_Msg::STDERR);
- else
- ACE_SET_BITS (ACE_Log_Msg::flags_, ACE_Log_Msg::LOGGER);
- }
- else if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::LOGGER))
- {
- // If we are closing down logger, redirect logging to stderr.
- ACE_CLR_BITS (ACE_Log_Msg::flags_, ACE_Log_Msg::LOGGER);
- ACE_SET_BITS (ACE_Log_Msg::flags_, ACE_Log_Msg::STDERR);
- }
-
- if (ACE_BIT_ENABLED (flags, ACE_Log_Msg::CUSTOM))
- {
- status =
- ACE_Log_Msg_Manager::custom_backend_->open (logger_key);
-
- if (status != -1)
- ACE_SET_BITS (ACE_Log_Msg::flags_, ACE_Log_Msg::CUSTOM);
- }
-
- // Remember, ACE_Log_Msg::STDERR bit is on by default...
- if (status != -1
- && ACE_BIT_ENABLED (flags,
- ACE_Log_Msg::STDERR) == 0)
- ACE_CLR_BITS (ACE_Log_Msg::flags_,
- ACE_Log_Msg::STDERR);
-
- // VERBOSE takes precedence over VERBOSE_LITE...
- if (ACE_BIT_ENABLED (flags,
- ACE_Log_Msg::VERBOSE_LITE))
- ACE_SET_BITS (ACE_Log_Msg::flags_,
- ACE_Log_Msg::VERBOSE_LITE);
- else if (ACE_BIT_ENABLED (flags,
- ACE_Log_Msg::VERBOSE))
- ACE_SET_BITS (ACE_Log_Msg::flags_,
- ACE_Log_Msg::VERBOSE);
-
- if (ACE_BIT_ENABLED (flags,
- ACE_Log_Msg::OSTREAM))
- {
- ACE_SET_BITS (ACE_Log_Msg::flags_,
- ACE_Log_Msg::OSTREAM);
- // Only set this to cerr if it hasn't already been set.
- if (this->msg_ostream () == 0)
- this->msg_ostream (ACE_DEFAULT_LOG_STREAM);
- }
-
- if (ACE_BIT_ENABLED (flags,
- ACE_Log_Msg::MSG_CALLBACK))
- ACE_SET_BITS (ACE_Log_Msg::flags_,
- ACE_Log_Msg::MSG_CALLBACK);
-
- if (ACE_BIT_ENABLED (flags,
- ACE_Log_Msg::SILENT))
- ACE_SET_BITS (ACE_Log_Msg::flags_,
- ACE_Log_Msg::SILENT);
-
- return status;
-}
-
-/**
- * Valid Options (prefixed by '%', as in printf format strings) include:
- * 'A': print an ACE_timer_t value
- * 'a': exit the program at this point (var-argument is the exit status!)
- * 'c': print a character
- * 'C': print a character string
- * 'i', 'd': print a decimal number
- * 'I', indent according to nesting depth
- * 'e', 'E', 'f', 'F', 'g', 'G': print a double
- * 'l', print line number where an error occurred.
- * 'M': print the name of the priority of the message.
- * 'm': Return the message corresponding to errno value, e.g., as done by <strerror>
- * 'N': print file name where the error occurred.
- * 'n': print the name of the program (or "<unknown>" if not set)
- * 'o': print as an octal number
- * 'P': format the current process id
- * 'p': format the appropriate errno message from sys_errlist, e.g., as done by <perror>
- * 'Q': print out the uint64 number
- * '@': print a void* pointer (in hexadecimal)
- * 'r': call the function pointed to by the corresponding argument
- * 'R': print return status
- * 'S': format the appropriate _sys_siglist entry corresponding to var-argument.
- * 's': format a character string
- * 'T': print timestamp in hour:minute:sec:usec format.
- * 'D': print timestamp in month/day/year hour:minute:sec:usec format.
- * 't': print thread id (1 if single-threaded)
- * 'u': print as unsigned int
- * 'x': print as a hex number
- * 'X': print as a hex number
- * 'w': print a wide character
- * 'W': print out a wide character string.
- * 'z': print an ACE_OS::WChar character
- * 'Z': print an ACE_OS::WChar character string
- * '%': format a single percent sign, '%'
- */
-ssize_t
-ACE_Log_Msg::log (ACE_Log_Priority log_priority,
- const ACE_TCHAR *format_str, ...)
-{
- ACE_TRACE ("ACE_Log_Msg::log");
-
- // Start of variable args section.
- va_list argp;
-
- va_start (argp, format_str);
-
- int result = this->log (format_str,
- log_priority,
- argp);
- va_end (argp);
-
- return result;
-}
-
-#if defined (ACE_HAS_WCHAR)
-/**
- * Since this is the ANTI_TCHAR version, we need to convert
- * the format string over.
- */
-ssize_t
-ACE_Log_Msg::log (ACE_Log_Priority log_priority,
- const ACE_ANTI_TCHAR *format_str, ...)
-{
- ACE_TRACE ("ACE_Log_Msg::log");
-
- // Start of variable args section.
- va_list argp;
-
- va_start (argp, format_str);
-
- int result = this->log (ACE_TEXT_ANTI_TO_TCHAR (format_str),
- log_priority,
- argp);
- va_end (argp);
-
- return result;
-}
-#endif /* ACE_HAS_WCHAR */
-
-ssize_t
-ACE_Log_Msg::log (const ACE_TCHAR *format_str,
- ACE_Log_Priority log_priority,
- va_list argp)
-{
- ACE_TRACE ("ACE_Log_Msg::log");
- // External decls.
-
-#if ! (defined(__BORLANDC__) && __BORLANDC__ >= 0x0530) \
- && !defined(__MINGW32__)
-#if defined (__FreeBSD__) || defined(__QNX__) || defined(__APPLE__)
- extern const int sys_nerr;
-#elif defined (__CYGWIN32__)
-# define sys_nerr _sys_nerr
-#else
- extern int sys_nerr;
-#endif /* !__FreeBSD__ && !__QNX__ && !__APPLE__ */
-#endif /* ! (defined(__BORLANDC__) && __BORLANDC__ >= 0x0530) */
- typedef void (*PTF)(...);
-
- // Check if there were any conditional values set.
- int conditional_values = this->conditional_values_.is_set_;
-
- // Reset conditional values.
- this->conditional_values_.is_set_ = 0;
-
- // Only print the message if <priority_mask_> hasn't been reset to
- // exclude this logging priority.
- if (this->log_priority_enabled (log_priority) == 0)
- return 0;
-
- // If conditional values were set and the log priority is correct,
- // then the values are actually set.
- if (conditional_values)
- this->set (this->conditional_values_.file_,
- this->conditional_values_.line_,
- this->conditional_values_.op_status_,
- this->conditional_values_.errnum_,
- this->restart (),
- this->msg_ostream (),
- this->msg_callback ());
-
- // Logging is a benign activity, so don't inadvertently smash errno.
- ACE_Errno_Guard guard (errno);
-
- ACE_Log_Record log_record (log_priority,
- ACE_OS::gettimeofday (),
- this->getpid ());
- // bp is pointer to where to put next part of logged message.
- // bspace is the number of characters remaining in msg_.
- ACE_TCHAR *bp = ACE_const_cast (ACE_TCHAR *, this->msg ());
- size_t bspace = ACE_Log_Record::MAXLOGMSGLEN; // Leave room for Nul term.
- if (this->msg_off_ <= ACE_Log_Record::MAXLOGMSGLEN)
- bspace -= ACE_static_cast (size_t, this->msg_off_);
-
- // If this platform has snprintf() capability to prevent overrunning the
- // output buffer, use it. To avoid adding a maintenance-hassle compile-
- // time couple between here and OS.cpp, don't try to figure this out at
- // compile time. Instead, do a quick check now; if we get a -1 return,
- // the platform doesn't support the length-limiting capability.
- ACE_TCHAR test[2];
- int can_check = ACE_OS::snprintf (test, 1, ACE_LIB_TEXT ("x")) != -1;
-
- int abort_prog = 0;
- int exit_value = 0;
-
- if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::VERBOSE))
- {
- // Prepend the program name onto this message
-
- if (ACE_Log_Msg::program_name_ != 0)
- {
- for (const ACE_TCHAR *s = ACE_Log_Msg::program_name_;
- bspace > 1 && (*bp = *s) != '\0';
- s++, bspace--)
- bp++;
-
- *bp++ = '|';
- bspace--;
- }
- }
-
- while (*format_str != '\0' && bspace > 0)
- {
- // Copy input to output until we encounter a %, however a
- // % followed by another % is not a format specification.
-
- if (*format_str != '%')
- {
- *bp++ = *format_str++;
- bspace--;
- }
- else if (format_str[1] == '%') // An "escaped" '%' (just print one '%').
- {
- *bp++ = *format_str++; // Store first %
- format_str++; // but skip second %
- bspace--;
- }
- else
- {
- // This is most likely a format specification that ends with
- // one of the valid options described previously. To enable full
- // use of all sprintf capabilities, save the format specifier
- // from the '%' up to the format letter in a new char array.
- // This allows the full sprintf capability for padding, field
- // widths, alignment, etc. Any width/precision requiring a
- // caller-supplied argument is extracted and placed as text
- // into the format array. Lastly, we convert the caller-supplied
- // format specifier from the ACE_Log_Msg-supported list to the
- // equivalent sprintf specifier, and run the new format spec
- // through sprintf, adding it to the bp string.
-
- const ACE_TCHAR *abort_str = ACE_LIB_TEXT ("Aborting...");
- const ACE_TCHAR *start_format = format_str;
- ACE_TCHAR format[128]; // Converted format string
- ACE_TCHAR *fp; // Current format pointer
- int wp = 0; // Width/precision extracted from args
- int done = 0;
- int skip_nul_locate = 0;
- int this_len = 0; // How many chars s[n]printf wrote
-
- fp = format;
- *fp++ = *format_str++; // Copy in the %
-
- // Work through the format string to copy in the format
- // from the caller. While it's going across, extract ints
- // for '*' width/precision values from the argument list.
- // When the real format specifier is located, change it to
- // one recognized by sprintf, if needed, and do the sprintf
- // call.
-
- while (!done)
- {
- done = 1; // Unless a conversion spec changes it
-
- switch (*format_str)
- {
- // The initial set of cases are the conversion
- // specifiers. Copy them in to the format array.
- // Note we don't use 'l', a normal conversion spec,
- // as a conversion because it is a ACE_Log_Msg format
- // specifier.
- case '-':
- case '+':
- case '0':
- case ' ':
- case '#':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- case '.':
- case 'L':
- case 'h':
- *fp++ = *format_str;
- done = 0;
- break;
-
- case '*':
- wp = va_arg (argp, int);
- ACE_OS::sprintf (fp, ACE_LIB_TEXT ("%d"), wp);
- fp += ACE_OS::strlen (fp);
- done = 0;
- break;
-
- case 'A': // ACE_timer_t
- {
-#if defined (ACE_LACKS_FLOATING_POINT)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("ld"));
- ACE_UINT32 value = va_arg (argp, ACE_UINT32);
-#else
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("f"));
- double value = va_arg (argp, double);
-#endif /* ACE_LACKS_FLOATING_POINT */
- if (can_check)
- this_len = ACE_OS::snprintf (bp, bspace, format, value);
- else
- this_len = ACE_OS::sprintf (bp, format, value);
- ACE_UPDATE_COUNT (bspace, this_len);
- }
- break;
-
- case 'a': // Abort program after handling all of format string.
- abort_prog = 1;
- exit_value = va_arg (argp, int);
- ACE_OS::strsncpy (bp, abort_str, bspace);
- if (bspace > ACE_OS::strlen (abort_str))
- bspace -= ACE_OS::strlen (abort_str);
- else
- bspace = 0;
- break;
-
- case 'l': // Source file line number
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("d"));
- if (can_check)
- this_len = ACE_OS::snprintf (bp,
- bspace,
- format,
- this->linenum ());
- else
- this_len = ACE_OS::sprintf (bp, format, this->linenum ());
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case 'N': // Source file name
- // @@ UNICODE
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s"));
- if (can_check)
- this_len = ACE_OS::snprintf (bp, bspace, format,
- this->file () ?
- ACE_TEXT_CHAR_TO_TCHAR (this->file ())
- : ACE_LIB_TEXT ("<unknown file>"));
- else
- this_len = ACE_OS::sprintf (bp, format,
- this->file () ?
- ACE_TEXT_CHAR_TO_TCHAR (this->file ())
- : ACE_LIB_TEXT ("<unknown file>"));
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case 'n': // Program name
- // @@ UNICODE
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s"));
- if (can_check)
- this_len = ACE_OS::snprintf (bp, bspace, format,
- ACE_Log_Msg::program_name_ ?
- ACE_Log_Msg::program_name_ :
- ACE_LIB_TEXT ("<unknown>"));
- else
- this_len = ACE_OS::sprintf (bp, format,
- ACE_Log_Msg::program_name_ ?
- ACE_Log_Msg::program_name_ :
- ACE_LIB_TEXT ("<unknown>"));
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case 'P': // Process ID
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("d"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format,
- ACE_static_cast (int, this->getpid ()));
- else
- this_len = ACE_OS::sprintf
- (bp, format, ACE_static_cast (int, this->getpid ()));
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case 'p': // <errno> string, ala perror()
- {
- errno = ACE::map_errno (this->errnum ());
- if (errno >= 0 && errno < sys_nerr)
- {
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s: %s"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, va_arg (argp, ACE_TCHAR *),
- ACE_TEXT_CHAR_TO_TCHAR (ACE_OS_String::strerror (errno)));
- else
- this_len = ACE_OS::sprintf
- (bp, format, va_arg (argp, ACE_TCHAR *),
- ACE_TEXT_CHAR_TO_TCHAR (ACE_OS_String::strerror (errno)));
- }
- else
- {
-#if defined (ACE_WIN32)
- ACE_TCHAR *lpMsgBuf = 0;
-
- // PharLap can't do FormatMessage, so try for socket
- // error.
-# if !defined (ACE_HAS_PHARLAP)
- ACE_TEXT_FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER
- | FORMAT_MESSAGE_MAX_WIDTH_MASK
- | FORMAT_MESSAGE_FROM_SYSTEM,
- 0,
- errno,
- MAKELANGID (LANG_NEUTRAL,
- SUBLANG_DEFAULT),
- // Default language
- (ACE_TCHAR *) &lpMsgBuf,
- 0,
- 0);
-# endif /* ACE_HAS_PHARLAP */
-
- // If we don't get a valid response from
- // <FormatMessage>, we'll assume this is a
- // WinSock error and so we'll try to convert
- // it into a string. If this doesn't work it
- // returns "unknown error" which is fine for
- // our purposes.
- if (lpMsgBuf == 0)
- {
- const ACE_TCHAR *message =
- ACE::sock_error (errno);
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s: %s"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format,
- va_arg (argp, const ACE_TCHAR *),
- message);
- else
- this_len = ACE_OS::sprintf
- (bp, format,
- va_arg (argp, const ACE_TCHAR *),
- message);
- }
- else
- {
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s: %s"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format,
- va_arg (argp, ACE_TCHAR *),
- lpMsgBuf);
- else
- this_len = ACE_OS::sprintf
- (bp, format,
- va_arg (argp, ACE_TCHAR *),
- lpMsgBuf);
- // Free the buffer.
- ::LocalFree (lpMsgBuf);
- }
-#elif !defined (ACE_HAS_WINCE)
- ACE_OS::strcpy (fp,
- ACE_LIB_TEXT (
- "s: <unknown error> = %d"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace,
- format,
- va_arg (argp, ACE_TCHAR *),
- errno);
- else
- this_len = ACE_OS::sprintf
- (bp,
- format,
- va_arg (argp, ACE_TCHAR *),
- errno);
-#endif /* ACE_WIN32 */
- }
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
- }
-
- case 'M': // Print the name of the priority of the message.
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format,
- ACE_Log_Record::priority_name (log_priority));
- else
- this_len = ACE_OS::sprintf
- (bp, format,
- ACE_Log_Record::priority_name (log_priority));
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case 'm': // Format the string assocated with the errno value.
- {
- errno = ACE::map_errno (this->errnum ());
- if (errno >= 0 && errno < sys_nerr)
- {
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format,
- ACE_OS_String::strerror (errno));
- else
- this_len = ACE_OS::sprintf
- (bp, format, ACE_OS_String::strerror (errno));
- }
- else
- {
-#if defined (ACE_WIN32)
- ACE_TCHAR *lpMsgBuf = 0;
-
- // PharLap can't do FormatMessage, so try for socket
- // error.
-# if !defined (ACE_HAS_PHARLAP)
- ACE_TEXT_FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER
- | FORMAT_MESSAGE_MAX_WIDTH_MASK
- | FORMAT_MESSAGE_FROM_SYSTEM,
- 0,
- errno,
- MAKELANGID (LANG_NEUTRAL,
- SUBLANG_DEFAULT),
- // Default language
- (ACE_TCHAR *) &lpMsgBuf,
- 0,
- 0);
-# endif /* ACE_HAS_PHARLAP */
-
- // If we don't get a valid response from
- // <FormatMessage>, we'll assume this is a
- // WinSock error and so we'll try to convert
- // it into a string. If this doesn't work it
- // returns "unknown error" which is fine for
- // our purposes.
- if (lpMsgBuf == 0)
- {
- const ACE_TCHAR *message =
- ACE::sock_error (errno);
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, message);
- else
- this_len = ACE_OS::sprintf (bp, format, message);
- }
- else
- {
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, lpMsgBuf);
- else
- this_len = ACE_OS::sprintf
- (bp, format, lpMsgBuf);
- // Free the buffer.
- ::LocalFree (lpMsgBuf);
- }
-#elif !defined (ACE_HAS_WINCE)
- // Ignore the built format... if this is a problem,
- // this part can be changed to build another string
- // and pass that with the complete conversion specs.
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace,
- ACE_LIB_TEXT ("<unknown error> = %d"), errno);
- else
- this_len = ACE_OS::sprintf
- (bp, ACE_LIB_TEXT ("<unknown error> = %d"), errno);
-#endif /* ACE_WIN32 */
- }
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
- }
-
- case 'R': // Format the return status of the operation.
- this->op_status (va_arg (argp, int));
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("d"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, this->op_status ());
- else
- this_len = ACE_OS::sprintf
- (bp, format, this->op_status ());
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case '{': // Increment the trace_depth, then indent
- skip_nul_locate = 1;
- (void) this->inc ();
- break;
-
- case '}': // indent, then decrement trace_depth
- skip_nul_locate = 1;
- (void) this->dec ();
- break;
-
- case '$': // insert a newline, then indent the next line
- // according to %I
- *bp++ = '\n';
- bspace--;
- /* fallthrough */
-
- case 'I': // Indent with nesting_depth*width spaces
- // Caller can do %*I to override nesting indent, and
- // if %*I was done, wp has the extracted width.
- if (0 == wp)
- wp = ACE_Trace::get_nesting_indent ();
- wp *= this->trace_depth_;
- if (ACE_static_cast (size_t, wp) > bspace)
- wp = ACE_static_cast (int, bspace);
- ACE_OS::memset (bp, ' ', wp);
- bp += wp;
- *bp = '\0';
- bspace -= ACE_static_cast (size_t, wp);
- skip_nul_locate = 1;
- break;
-
- case 'r': // Run (invoke) this subroutine.
- {
- int osave = ACE_Log_Msg::msg_off_;
-
- if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_,
- ACE_Log_Msg::SILENT) &&
- bspace > 1)
- {
- *bp++ = '{';
- bspace--;
- }
- ACE_Log_Msg::msg_off_ = bp - this->msg_;
-
- (*va_arg (argp, PTF))();
-
- if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_,
- ACE_Log_Msg::SILENT) &&
- bspace > (1 + ACE_OS::strlen (bp)))
- {
- bspace -= (ACE_OS::strlen (bp) + 1);
- bp += ACE_OS::strlen (bp);
- *bp++ = '}';
- }
- *bp = '\0';
- skip_nul_locate = 1;
- ACE_Log_Msg::msg_off_ = osave;
- break;
- }
-
- case 'S': // format the string for with this signal number.
- {
- int sig = va_arg (argp, int);
-#if defined (ACE_HAS_SYS_SIGLIST)
- if (sig >= 0 && sig < ACE_NSIG)
- {
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, _sys_siglist[sig]);
- else
- this_len = ACE_OS::sprintf
- (bp, format, _sys_siglist[sig]);
- }
- else
- {
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace,
- ACE_LIB_TEXT("<unknown signal> %d"), sig);
- else
- this_len = ACE_OS::sprintf
- (bp, ACE_LIB_TEXT ("<unknown signal> %d"), sig);
- }
-#else
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, ACE_LIB_TEXT ("signal %d"), sig);
- else
- this_len = ACE_OS::sprintf
- (bp, ACE_LIB_TEXT ("signal %d"), sig);
-#endif /* ACE_HAS_SYS_SIGLIST */
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
- }
-
- case 'D': // Format the timestamp in month/day/year
- // hour:minute:sec:usec format.
- {
- ACE_TCHAR day_and_time[35];
- ACE::timestamp (day_and_time,
- sizeof day_and_time);
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, day_and_time);
- else
- this_len = ACE_OS::sprintf (bp, format, day_and_time);
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
- }
-
- case 'T': // Format the timestamp in
- // hour:minute:sec:usec format.
- {
- ACE_TCHAR day_and_time[35];
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format,
- ACE::timestamp (day_and_time, sizeof day_and_time));
- else
- this_len = ACE_OS::sprintf
- (bp, format, ACE::timestamp (day_and_time,
- sizeof day_and_time));
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
- }
-
- case 't': // Format thread id.
-#if defined (ACE_WIN32)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("u"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format,
- ACE_static_cast(unsigned, ACE_Thread::self ()));
- else
- this_len = ACE_OS::sprintf
- (bp, format, ACE_static_cast(unsigned,
- ACE_Thread::self ()));
-#elif defined (ACE_AIX_VERS) && (ACE_AIX_VERS <= 402)
- // AIX's pthread_t (ACE_hthread_t) is a pointer, and it's
- // a little ugly to send that through a %u format. So,
- // get the kernel thread ID (tid_t) via thread_self() and
- // display that instead.
- // This isn't conditionalized on ACE_HAS_THREAD_SELF because
- // 1. AIX 4.2 doesn't have that def anymore (it messes up
- // other things)
- // 2. OSF/1 V3.2 has that def, and I'm not sure what affect
- // this would have on that.
- // -Steve Huston, 19-Aug-97
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("u"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, thread_self());
- else
- this_len = ACE_OS::sprintf (bp, format, thread_self());
-#elif defined (DIGITAL_UNIX)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("u"));
- {
- int id =
-# if defined (ACE_HAS_THREADS)
- pthread_getselfseq_np ();
-# else
- ACE_Thread::self ();
-# endif /* ACE_HAS_THREADS */
-
- if (can_check)
- this_len = ACE_OS::snprintf (bp, bspace, format, id);
- else
- this_len = ACE_OS::sprintf (bp, format, id);
- }
-#else
- ACE_hthread_t t_id;
- ACE_Thread::self (t_id);
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4) && defined (HPUX_10)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("u"));
- // HP-UX 10.x DCE's thread ID is a pointer. Grab the
- // more meaningful, readable, thread ID. This will match
- // the one seen in the debugger as well.
- if (can_check)
- this_len = ACE_OS::snprintf (bp, bspace, format,
- pthread_getunique_np (&t_id));
- else
- this_len = ACE_OS::sprintf (bp, format,
- pthread_getunique_np (&t_id));
-# elif defined (ACE_MVS)
- // MVS's pthread_t is a struct... yuck. So use the ACE 5.0
- // code for it.
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("u"));
- if (can_check)
- this_len = ACE_OS::snprintf (bp, bspace, format, t_id);
- else
- this_len = ACE_OS::sprintf (bp, format, t_id);
-# else
- // Yes, this is an ugly C-style cast, but the correct
- // C++ cast is different depending on whether the t_id
- // is an integral type or a pointer type. FreeBSD uses
- // a pointer type, but doesn't have a _np function to
- // get an integral type, like the OSes above.
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("lu"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, (unsigned long)t_id);
- else
- this_len = ACE_OS::sprintf
- (bp, format, (unsigned long)t_id);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 && HPUX_10 */
-
-#endif /* ACE_WIN32 */
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case 's': // String
-#if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("ls"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, va_arg (argp, wchar_t *));
- else
- this_len = ACE_OS::sprintf
- (bp, format, va_arg (argp, wchar_t *));
-#else /* ACE_WIN32 && ACE_USES_WCHAR */
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, va_arg (argp, ACE_TCHAR *));
- else
- this_len = ACE_OS::sprintf
- (bp, format, va_arg (argp, ACE_TCHAR *));
-#endif /* ACE_WIN32 && ACE_USES_WCHAR */
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case 'C': // Char string, Unicode for Win32/WCHAR
-#if defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("S"));
-#else /* ACE_WIN32 && ACE_USES_WCHAR */
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s"));
-#endif /* ACE_WIN32 && ACE_USES_WCHAR */
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, va_arg (argp, ACE_TCHAR *));
- else
- this_len = ACE_OS::sprintf
- (bp, format, va_arg (argp, ACE_TCHAR *));
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case 'W':
-#if defined (ACE_WIN32)
-# if defined (ACE_USES_WCHAR)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s"));
-# else /* ACE_USES_WCHAR */
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("S"));
-# endif /* ACE_USES_WCHAR */
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, va_arg (argp, ACE_TCHAR *));
- else
- this_len = ACE_OS::sprintf
- (bp, format, va_arg (argp, ACE_TCHAR *));
-#elif defined (ACE_HAS_WCHAR)
-# if defined (HPUX)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("S"));
-# else
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("ls"));
-# endif /* HPUX */
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, va_arg (argp, wchar_t *));
- else
- this_len = ACE_OS::sprintf
- (bp, format, va_arg (argp, wchar_t *));
-#endif /* ACE_WIN32 / ACE_HAS_WCHAR */
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case 'w': // Wide character
-#if defined (ACE_WIN32)
-# if defined (ACE_USES_WCHAR)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("c"));
-# else /* ACE_USES_WCHAR */
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("C"));
-# endif /* ACE_USES_WCHAR */
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, va_arg (argp, int));
- else
- this_len = ACE_OS::sprintf
- (bp, format, va_arg (argp, int));
-#elif defined (ACE_USES_WCHAR)
-# if defined (HPUX)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("C"));
-# else
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("lc"));
-# endif /* HPUX */
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, va_arg (argp, wint_t));
- else
- this_len = ACE_OS::sprintf
- (bp, format, va_arg (argp, wint_t));
-#else /* ACE_WIN32 */
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("u"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, va_arg (argp, int));
- else
- this_len = ACE_OS::sprintf
- (bp, format, va_arg (argp, int));
-#endif /* ACE_WIN32 */
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case 'z': // ACE_OS::WChar character
- {
- // On some platforms sizeof (wchar_t) can be 2
- // on the others 4 ...
- wchar_t wtchar =
- ACE_static_cast(wchar_t,
- va_arg (argp, int));
-#if defined (ACE_WIN32)
-# if defined (ACE_USES_WCHAR)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("c"));
-# else /* ACE_USES_WCHAR */
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("C"));
-# endif /* ACE_USES_WCHAR */
-#elif defined (ACE_USES_WCHAR)
-# if defined (HPUX)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("C"));
-# else
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("lc"));
-# endif /* HPUX */
-#else /* ACE_WIN32 */
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("u"));
-#endif /* ACE_WIN32 */
- if (can_check)
- this_len = ACE_OS::snprintf (bp, bspace, format, wtchar);
- else
- this_len = ACE_OS::sprintf (bp, format, wtchar);
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
- }
-
- case 'Z': // ACE_OS::WChar character string
- {
- ACE_OS::WChar *wchar_str = va_arg (argp, ACE_OS::WChar*);
- if (wchar_str == 0)
- break;
-
- wchar_t *wchar_t_str = 0;
- if (sizeof (ACE_OS::WChar) != sizeof (wchar_t))
- {
- size_t len = ACE_OS::wslen (wchar_str) + 1;
- //@@ Bad, but there is no such ugly thing as
- // ACE_NEW_BREAK and ACE_NEW has a return
- // statement inside.
- ACE_NEW_RETURN(wchar_t_str, wchar_t[len], 0);
- if (wchar_t_str == 0)
- break;
-
- for (size_t i = 0; i < len; i++)
- {
- wchar_t_str[i] = wchar_str[i];
- }
- }
-
- if (wchar_t_str == 0)
- {
- wchar_t_str = ACE_reinterpret_cast(wchar_t*,
- wchar_str);
- }
-#if defined (ACE_WIN32)
-# if defined (ACE_USES_WCHAR)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("s"));
-# else /* ACE_USES_WCHAR */
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("S"));
-# endif /* ACE_USES_WCHAR */
-#elif defined (ACE_HAS_WCHAR)
-# if defined (HPUX)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("S"));
-# else
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("ls"));
-# endif /* HPUX */
-#endif /* ACE_WIN32 / ACE_HAS_WCHAR */
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, wchar_t_str);
- else
- this_len = ACE_OS::sprintf (bp, format, wchar_t_str);
- if(sizeof(ACE_OS::WChar) != sizeof(wchar_t))
- {
- delete wchar_t_str;
- }
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
- }
-
- case 'c':
-#if defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("C"));
-#else
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("c"));
-#endif /* ACE_WIN32 && ACE_USES_WCHAR */
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, va_arg (argp, int));
- else
- this_len = ACE_OS::sprintf
- (bp, format, va_arg (argp, int));
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case 'd': case 'i': case 'o':
- case 'u': case 'x': case 'X':
- fp[0] = *format_str;
- fp[1] = '\0';
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, va_arg (argp, int));
- else
- this_len = ACE_OS::sprintf
- (bp, format, va_arg (argp, int));
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case 'F': case 'f': case 'e': case 'E':
- case 'g': case 'G':
- fp[0] = *format_str;
- fp[1] = '\0';
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, va_arg (argp, double));
- else
- this_len = ACE_OS::sprintf
- (bp, format, va_arg (argp, double));
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case 'Q':
-#if defined (ACE_LACKS_LONGLONG_T)
- {
- // This relies on the ACE_U_LongLong storage layout.
- ACE_UINT32 hi = va_arg (argp, ACE_UINT32);
- ACE_UINT32 lo = va_arg (argp, ACE_UINT32);
- if (hi > 0)
- this_len = ACE_OS::sprintf (bp,
- "0x%lx%0*lx",
- hi,
- 2 * sizeof lo,
- lo);
- else
- this_len = ACE_OS::sprintf (bp, "0x%lx", lo);
- }
-#else /* ! ACE_LACKS_LONGLONG_T */
- {
- const ACE_TCHAR *fmt = ACE_UINT64_FORMAT_SPECIFIER;
- ACE_OS::strcpy (fp, &fmt[1]); // Skip leading %
- if (can_check)
- this_len = ACE_OS::snprintf (bp, bspace,
- format,
- va_arg (argp, ACE_UINT64));
- else
- this_len = ACE_OS::sprintf (bp,
- format,
- va_arg (argp, ACE_UINT64));
- }
-#endif /* ! ACE_LACKS_LONGLONG_T */
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- case '@':
- ACE_OS::strcpy (fp, ACE_LIB_TEXT ("p"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, va_arg (argp, void*));
- else
- this_len = ACE_OS::sprintf
- (bp, format, va_arg (argp, void*));
- ACE_UPDATE_COUNT (bspace, this_len);
- break;
-
- default:
- // So, it's not a legit format specifier after all...
- // Copy from the original % to where we are now, then
- // continue with whatever comes next.
- while (start_format != format_str && bspace > 0)
- {
- *bp++ = *start_format++;
- bspace--;
- }
- if (bspace > 0)
- {
- *bp++ = *format_str;
- bspace--;
- }
- break;
- }
-
- // Bump to the next char in the caller's format_str
- format_str++;
- }
-
- if (!skip_nul_locate)
- while (*bp != '\0') // Locate end of bp.
- bp++;
- }
- }
-
- *bp = '\0'; // Terminate bp, but don't auto-increment this!
-
- // Check that memory was not corrupted.
- if (bp >= this->msg_ + sizeof this->msg_)
- {
- abort_prog = 1;
- ACE_OS::fprintf (stderr,
- "The following logged message is too long!\n");
- }
-
- // Copy the message from thread-specific storage into the transfer
- // buffer (this can be optimized away by changing other code...).
- log_record.msg_data (this->msg ());
-
- // Write the <log_record> to the appropriate location.
- ssize_t result = this->log (log_record,
- abort_prog);
-
- if (abort_prog)
- {
- // Since we are now calling abort instead of exit, this value is
- // not used.
- ACE_UNUSED_ARG (exit_value);
-
- // *Always* print a message to stderr if we're aborting. We
- // don't use verbose, however, to avoid recursive aborts if
- // something is hosed.
- log_record.print (ACE_Log_Msg::local_host_, 0, stderr);
- ACE_OS::abort ();
- }
-
- return result;
-}
-
-#if !defined (ACE_WIN32)
-/**
- * @class ACE_Log_Msg_Sig_Guard
- *
- * @brief For use only by ACE_Log_Msg.
- *
- * Doesn't require the use of global variables or global
- * functions in an application).
- */
-class ACE_Log_Msg_Sig_Guard
-{
-private:
- ACE_Log_Msg_Sig_Guard (void);
- ~ACE_Log_Msg_Sig_Guard (void);
-
- /// Original signal mask.
- sigset_t omask_;
-
- friend ssize_t ACE_Log_Msg::log (ACE_Log_Record &log_record,
- int suppress_stderr);
-};
-
-ACE_Log_Msg_Sig_Guard::ACE_Log_Msg_Sig_Guard (void)
-{
-#if !defined (ACE_LACKS_UNIX_SIGNALS)
- ACE_OS::sigemptyset (&this->omask_);
-
-# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
- ACE_OS::sigprocmask (SIG_BLOCK,
- ACE_OS_Object_Manager::default_mask (),
- &this->omask_);
-# else
- ACE_OS::thr_sigsetmask (SIG_BLOCK,
- ACE_OS_Object_Manager::default_mask (),
- &this->omask_);
-# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
-#endif /* ACE_LACKS_UNIX_SIGNALS */
-}
-
-ACE_Log_Msg_Sig_Guard::~ACE_Log_Msg_Sig_Guard (void)
-{
-#if !defined (ACE_LACKS_UNIX_SIGNALS)
-# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
- ACE_OS::sigprocmask (SIG_SETMASK,
- &this->omask_,
- 0);
-# else
- ACE_OS::thr_sigsetmask (SIG_SETMASK,
- &this->omask_,
- 0);
-# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
-#endif /* ! ACE_LACKS_UNIX_SIGNALS */
-}
-#endif /* ! ACE_WIN32 */
-
-ssize_t
-ACE_Log_Msg::log (ACE_Log_Record &log_record,
- int suppress_stderr)
-{
- ssize_t result = 0;
-
- // Format the message and print it to stderr and/or ship it off to
- // the log_client daemon, and/or print it to the ostream. Of
- // course, only print the message if "SILENT" mode is disabled.
- if (ACE_BIT_DISABLED (ACE_Log_Msg::flags_,
- ACE_Log_Msg::SILENT))
- {
- int tracing = this->tracing_enabled ();
- this->stop_tracing ();
-
-#if !defined (ACE_WIN32)
- // Make this block signal-safe.
- ACE_Log_Msg_Sig_Guard sb;
-#endif /* !ACE_WIN32 && !ACE_PSOS */
-
- // Do the callback, if needed, before acquiring the lock
- // to avoid holding the lock during the callback so we don't
- // have deadlock if the callback uses the logger.
- if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_,
- ACE_Log_Msg::MSG_CALLBACK)
- && this->msg_callback () != 0)
- this->msg_callback ()->log (log_record);
-
- // Make sure that the lock is held during all this.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Log_Msg_Manager::get_lock (),
- -1));
-
- if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_,
- ACE_Log_Msg::STDERR)
- && !suppress_stderr) // This is taken care of by our caller.
- log_record.print (ACE_Log_Msg::local_host_,
- ACE_Log_Msg::flags_,
- stderr);
-
- if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::CUSTOM) ||
- ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::LOGGER))
- {
- // Be sure that there is a message_queue_, with multiple threads.
- ACE_MT (ACE_Log_Msg_Manager::init_backend ());
- }
-
-
- if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_,
- ACE_Log_Msg::LOGGER))
- {
- result =
- ACE_Log_Msg_Manager::log_backend_->log (log_record);
- }
-
- if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::CUSTOM) &&
- ACE_Log_Msg_Manager::custom_backend_ != 0)
- {
- result =
- ACE_Log_Msg_Manager::custom_backend_->log (log_record);
- }
-
-
- // This must come last, after the other two print operations
- // (see the <ACE_Log_Record::print> method for details).
- if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_,
- ACE_Log_Msg::OSTREAM)
- && this->msg_ostream () != 0)
- log_record.print (ACE_Log_Msg::local_host_,
- ACE_Log_Msg::flags_,
-#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
- ACE_static_cast (FILE *,
- this->msg_ostream ())
-#else /* ! ACE_LACKS_IOSTREAM_TOTALLY */
- *this->msg_ostream ()
-#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
- );
-
- if (tracing)
- this->start_tracing ();
- }
-
- return result;
-}
-
-// Calls log to do the actual print, but formats first.
-
-int
-ACE_Log_Msg::log_hexdump (ACE_Log_Priority log_priority,
- const char *buffer,
- size_t size,
- const ACE_TCHAR *text)
-{
- ACE_TCHAR buf[ACE_Log_Record::MAXLOGMSGLEN -
- ACE_Log_Record::VERBOSE_LEN - 58];
- // 58 for the HEXDUMP header;
-
- ACE_TCHAR *msg_buf;
- const size_t text_sz = text ? ACE_OS_String::strlen(text) : 0;
- ACE_NEW_RETURN (msg_buf,
- ACE_TCHAR[text_sz + 58],
- -1);
-
- buf[0] = 0; // in case size = 0
-
- const size_t len = ACE::format_hexdump
- (buffer, size, buf, sizeof (buf) / sizeof (ACE_TCHAR) - text_sz);
-
- int sz = 0;
-
- if (text)
- sz = ACE_OS::sprintf (msg_buf,
- ACE_LIB_TEXT ("%s - "),
- text);
-
- sz += ACE_OS::sprintf (msg_buf + sz,
- ACE_LIB_TEXT ("HEXDUMP ")
- ACE_SIZE_T_FORMAT_SPECIFIER
- ACE_LIB_TEXT (" bytes"),
- size);
-
- if (len < size)
- ACE_OS::sprintf (msg_buf + sz,
- ACE_LIB_TEXT (" (showing first ")
- ACE_SIZE_T_FORMAT_SPECIFIER
- ACE_LIB_TEXT (" bytes)"),
- len);
-
- // Now print out the formatted buffer.
- this->log (log_priority,
- ACE_LIB_TEXT ("%s\n%s"),
- msg_buf,
- buf);
-
- delete [] msg_buf;
- return 0;
-}
-
-void
-ACE_Log_Msg::set (const char *filename,
- int line,
- int status,
- int err,
- int rs,
- ACE_OSTREAM_TYPE *os,
- ACE_Log_Msg_Callback *c)
-{
- ACE_TRACE ("ACE_Log_Msg::set");
- this->file (filename);
- this->linenum (line);
- this->op_status (status);
- this->errnum (err);
- this->restart (rs);
- this->msg_ostream (os);
- this->msg_callback (c);
-}
-
-void
-ACE_Log_Msg::conditional_set (const char *filename,
- int line,
- int status,
- int err)
-{
- this->conditional_values_.is_set_ = 1;
- this->conditional_values_.file_ = filename;
- this->conditional_values_.line_ = line;
- this->conditional_values_.op_status_ = status;
- this->conditional_values_.errnum_ = err;
-}
-
-void
-ACE_Log_Msg::dump (void) const
-{
- ACE_TRACE ("ACE_Log_Msg::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("status_ = %d\n"), this->status_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nerrnum_ = %d\n"), this->errnum_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nlinenum_ = %d\n"), this->linenum_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nfile_ = %s\n"), this->file_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nmsg_ = %s\n"), this->msg_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nrestart_ = %d\n"), this->restart_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nostream_ = %x\n"), this->ostream_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nmsg_callback_ = %x\n"),
- this->msg_callback_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nprogram_name_ = %s\n"),
- this->program_name_ ? this->program_name_
- : ACE_LIB_TEXT ("<unknown>")));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nlocal_host_ = %s\n"),
- this->local_host_ ? this->local_host_
- : ACE_LIB_TEXT ("<unknown>")));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\npid_ = %d\n"), this->getpid ()));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nflags_ = %x\n"), this->flags_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ntrace_depth_ = %d\n"),
- this->trace_depth_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ntrace_active_ = %d\n"),
- this->trace_active_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ntracing_enabled_ = %d\n"),
- this->tracing_enabled_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\npriority_mask_ = %x\n"),
- this->priority_mask_));
- if (this->thr_desc_ != 0 && this->thr_desc_->state () != 0)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nthr_state_ = %d\n"),
- this->thr_desc_->state ()));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nmsg_off_ = %d\n"), this->msg_off_));
-
- // Be sure that there is a message_queue_, with multiple threads.
- ACE_MT (ACE_Log_Msg_Manager::init_backend ());
-
- ACE_MT (ACE_Log_Msg_Manager::get_lock ()->dump ());
- // Synchronize output operations.
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_Log_Msg::op_status (int status)
-{
- this->status_ = status;
-}
-
-int
-ACE_Log_Msg::op_status (void)
-{
- return this->status_;
-}
-
-void
-ACE_Log_Msg::restart (int r)
-{
- this->restart_ = r;
-}
-
-int
-ACE_Log_Msg::restart (void)
-{
- return this->restart_;
-}
-
-int
-ACE_Log_Msg::errnum (void)
-{
- return this->errnum_;
-}
-
-void
-ACE_Log_Msg::errnum (int e)
-{
- this->errnum_ = e;
-}
-
-int
-ACE_Log_Msg::linenum (void)
-{
- return this->linenum_;
-}
-
-void
-ACE_Log_Msg::linenum (int l)
-{
- this->linenum_ = l;
-}
-
-int
-ACE_Log_Msg::inc (void)
-{
- return this->trace_depth_++;
-}
-
-int
-ACE_Log_Msg::dec (void)
-{
- return --this->trace_depth_;
-}
-
-int
-ACE_Log_Msg::trace_depth (void)
-{
- return this->trace_depth_;
-}
-
-void
-ACE_Log_Msg::trace_depth (int depth)
-{
- this->trace_depth_ = depth;
-}
-
-int
-ACE_Log_Msg::trace_active (void)
-{
- return this->trace_active_;
-}
-
-void
-ACE_Log_Msg::trace_active (int value)
-{
- this->trace_active_ = value;
-}
-
-ACE_Thread_Descriptor *
-ACE_Log_Msg::thr_desc (void) const
-{
- return this->thr_desc_;
-}
-
-void
-ACE_Log_Msg::thr_desc (ACE_Thread_Descriptor *td)
-{
- this->thr_desc_ = td;
-
- if (td != 0)
- td->acquire_release ();
-}
-
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) && defined(ACE_LEGACY_MODE)
-ACE_SEH_EXCEPT_HANDLER
-ACE_Log_Msg::seh_except_selector (void)
-{
- return ACE_OS_Object_Manager::seh_except_selector ();
-}
-
-ACE_SEH_EXCEPT_HANDLER
-ACE_Log_Msg::seh_except_selector (ACE_SEH_EXCEPT_HANDLER n)
-{
- return ACE_OS_Object_Manager::seh_except_selector (n);
-}
-
-ACE_SEH_EXCEPT_HANDLER
-ACE_Log_Msg::seh_except_handler (void)
-{
- return ACE_OS_Object_Manager::seh_except_handler ();
-}
-
-ACE_SEH_EXCEPT_HANDLER
-ACE_Log_Msg::seh_except_handler (ACE_SEH_EXCEPT_HANDLER n)
-{
- return ACE_OS_Object_Manager::seh_except_handler (n);
-}
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS && ACE_LEGACY_MODE */
-
-// Enable the tracing facility on a per-thread basis.
-
-void
-ACE_Log_Msg::start_tracing (void)
-{
- this->tracing_enabled_ = 1;
-}
-
-// Disable the tracing facility on a per-thread basis.
-
-void
-ACE_Log_Msg::stop_tracing (void)
-{
- this->tracing_enabled_ = 0;
-}
-
-int
-ACE_Log_Msg::tracing_enabled (void)
-{
- return this->tracing_enabled_;
-}
-
-const char *
-ACE_Log_Msg::file (void)
-{
- return this->file_;
-}
-
-void
-ACE_Log_Msg::file (const char *s)
-{
- ACE_OS::strsncpy (this->file_, s, sizeof this->file_);
-}
-
-const ACE_TCHAR *
-ACE_Log_Msg::msg (void)
-{
- return this->msg_ + ACE_Log_Msg::msg_off_;
-}
-
-void
-ACE_Log_Msg::msg (const ACE_TCHAR *m)
-{
- ACE_OS::strsncpy (this->msg_, m,
- (sizeof this->msg_ / sizeof (ACE_TCHAR)));
-}
-
-ACE_Log_Msg_Callback *
-ACE_Log_Msg::msg_callback (void) const
-{
- return this->msg_callback_;
-}
-
-ACE_Log_Msg_Callback *
-ACE_Log_Msg::msg_callback (ACE_Log_Msg_Callback *c)
-{
- ACE_Log_Msg_Callback *old = this->msg_callback_;
- this->msg_callback_ = c;
- return old;
-}
-
-ACE_Log_Msg_Backend *
-ACE_Log_Msg::msg_backend (ACE_Log_Msg_Backend *b)
-{
- ACE_TRACE ("ACE_Log_Msg::msg_backend");
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Log_Msg_Manager::get_lock (), 0));
-
- ACE_Log_Msg_Backend *tmp = ACE_Log_Msg_Manager::custom_backend_;
- ACE_Log_Msg_Manager::custom_backend_ = b;
- return tmp;
-}
-
-ACE_Log_Msg_Backend *
-ACE_Log_Msg::msg_backend (void)
-{
- ACE_TRACE ("ACE_Log_Msg::msg_backend");
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Log_Msg_Manager::get_lock (), 0));
-
- return ACE_Log_Msg_Manager::custom_backend_;
-}
-
-ACE_OSTREAM_TYPE *
-ACE_Log_Msg::msg_ostream (void) const
-{
- return this->ostream_;
-}
-
-void
-ACE_Log_Msg::msg_ostream (ACE_OSTREAM_TYPE *m, int delete_ostream)
-{
- this->delete_ostream_ = delete_ostream;
- this->ostream_ = m;
-}
-
-void
-ACE_Log_Msg::msg_ostream (ACE_OSTREAM_TYPE *m)
-{
- this->ostream_ = m;
-}
-
-void
-ACE_Log_Msg::local_host (const ACE_TCHAR *s)
-{
- if (s)
- {
- ACE_OS::free ((void *) ACE_Log_Msg::local_host_);
- {
- ACE_NO_HEAP_CHECK;
-
- ACE_ALLOCATOR (ACE_Log_Msg::local_host_, ACE_OS::strdup (s));
- }
- }
-}
-
-const ACE_TCHAR *
-ACE_Log_Msg::local_host (void) const
-{
- return ACE_Log_Msg::local_host_;
-}
-
-pid_t
-ACE_Log_Msg::getpid (void) const
-{
- if (ACE_Log_Msg::pid_ == -1)
- ACE_Log_Msg::pid_ = ACE_OS::getpid ();
-
- return ACE_Log_Msg::pid_;
-}
-
-int
-ACE_Log_Msg::log_priority_enabled (ACE_Log_Priority log_priority,
- const char *,
- ...)
-{
- return this->log_priority_enabled (log_priority);
-}
-
-#if defined (ACE_USES_WCHAR)
-int
-ACE_Log_Msg::log_priority_enabled (ACE_Log_Priority log_priority,
- const wchar_t *,
- ...)
-{
- return this->log_priority_enabled (log_priority);
-}
-#endif /* ACE_USES_WCHAR */
-
-// ****************************************************************
-
-void
-ACE_Log_Msg::init_hook (ACE_OS_Log_Msg_Attributes &attributes
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- , ACE_SEH_EXCEPT_HANDLER selector
- , ACE_SEH_EXCEPT_HANDLER handler
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- )
-{
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- attributes.seh_except_selector_ = selector;
- attributes.seh_except_handler_ = handler;
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- if (ACE_Log_Msg::exists ())
- {
- ACE_Log_Msg *inherit_log = ACE_LOG_MSG;
- attributes.ostream_ = inherit_log->msg_ostream ();
- attributes.priority_mask_ = inherit_log->priority_mask ();
- attributes.tracing_enabled_ = inherit_log->tracing_enabled ();
- attributes.restart_ = inherit_log->restart ();
- attributes.trace_depth_ = inherit_log->trace_depth ();
- }
-}
-
-#if defined (ACE_THREADS_DONT_INHERIT_LOG_MSG) || \
- defined (ACE_HAS_MINIMAL_ACE_OS)
-# if defined (ACE_PSOS)
-// Unique file identifier
-static int ACE_PSOS_unique_file_id = 0;
-# endif /* ACE_PSOS */
-#endif /* ACE_THREADS_DONT_INHERIT_LOG_MSG) || ACE_HAS_MINIMAL_ACE_OS */
-
-void
-ACE_Log_Msg::inherit_hook (ACE_OS_Thread_Descriptor *thr_desc,
- ACE_OS_Log_Msg_Attributes &attributes)
-{
-#if !defined (ACE_THREADS_DONT_INHERIT_LOG_MSG) && \
- !defined (ACE_HAS_MINIMAL_ACE_OS)
- // Inherit the logging features if the parent thread has an
- // <ACE_Log_Msg>. Note that all of the following operations occur
- // within thread-specific storage.
- ACE_Log_Msg *new_log = ACE_LOG_MSG;
-
- // Note that we do not inherit the callback because this might have
- // been allocated off of the stack of the original thread, in which
- // case all hell would break loose...
-
- if (attributes.ostream_)
- {
- new_log->msg_ostream (attributes.ostream_);
- new_log->priority_mask (attributes.priority_mask_);
-
- if (attributes.tracing_enabled_)
- new_log->start_tracing ();
-
- new_log->restart (attributes.restart_);
- new_log->trace_depth (attributes.trace_depth_);
- }
-
- // @@ Now the TSS Log_Msg has been created, cache my thread
- // descriptor in.
-
- if (thr_desc != 0)
- // This downcast is safe. We do it to avoid having to #include
- // ace/Thread_Manager.h.
- new_log->thr_desc (ACE_static_cast (ACE_Thread_Descriptor *,
- thr_desc));
- // Block the thread from proceeding until
- // thread manager has thread descriptor ready.
-
-# else /* Don't inherit Log Msg */
-# if defined (ACE_PSOS)
- //Create a special name for each thread...
- char new_name[MAXPATHLEN]={"Ace_thread-"};
- char new_id[2]={0,0}; //Now it's pre-terminated!
-
- new_id[0] = '0' + (ACE_PSOS_unique_file_id++); //Unique identifier
- ACE_OS::strcat(new_name, new_id);
-
- //Initialize the task specific logger
- ACE_LOG_MSG->open(new_name);
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P|%t) starting %s thread at %D\n"),new_name));
-# endif /* ACE_PSOS */
-#endif /* ! ACE_THREADS_DONT_INHERIT_LOG_MSG && ! ACE_HAS_MINIMAL_ACE_OS */
-}
diff --git a/ace/Log_Msg.h b/ace/Log_Msg.h
deleted file mode 100644
index cb340d66e43..00000000000
--- a/ace/Log_Msg.h
+++ /dev/null
@@ -1,722 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Log_Msg.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_LOG_MSG_H
-#define ACE_LOG_MSG_H
-#include "ace/pre.h"
-
-// This stuff must come first to avoid problems with circular
-// headers...
-// ... but ACE_NDEBUG and ACE_NLOGGING can come from the config.h file, so
-// pull that one early.
-#include "ace/config-all.h"
-#include "ace/Global_Macros.h"
-#include "ace/Default_Constants.h"
-#include "ace/Log_Priority.h"
-#include "ace/OS.h"
-
-// The following ASSERT macro is courtesy of Alexandre Karev
-// <akg@na47sun05.cern.ch>.
-#if defined (ACE_NDEBUG)
-#define ACE_ASSERT(x)
-#elif !defined (ACE_ASSERT)
-#define ACE_ASSERT(X) \
- do { if(!(X)) { \
- int __ace_error = ACE_Log_Msg::last_error_adapter (); \
- ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
- ace___->set (__FILE__, __LINE__, -1, __ace_error, ace___->restart (), \
- ace___->msg_ostream (), ace___->msg_callback ()); \
- ace___->log (LM_ERROR, ACE_LIB_TEXT ("ACE_ASSERT: file %N, line %l assertion failed for '%s'.%a\n"), #X, -1); \
- } } while (0)
-#endif /* ACE_NDEBUG */
-
-#if defined (ACE_NLOGGING)
-#define ACE_HEX_DUMP(X) do {} while (0)
-#define ACE_RETURN(Y) do { return (Y); } while (0)
-#define ACE_ERROR_RETURN(X, Y) return (Y)
-#define ACE_ERROR_BREAK(X) { break; }
-#define ACE_ERROR(X) do {} while (0)
-#define ACE_DEBUG(X) do {} while (0)
-#define ACE_ERROR_INIT(VALUE, FLAGS)
-#else
-#define ACE_HEX_DUMP(X) \
- do { \
- int __ace_error = ACE_Log_Msg::last_error_adapter (); \
- ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
- ace___->conditional_set (__FILE__, __LINE__, 0, __ace_error); \
- ace___->log_hexdump X; \
- } while (0)
-#define ACE_RETURN(Y) \
- do { \
- int __ace_error = ACE_Log_Msg::last_error_adapter (); \
- ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
- ace___->set (__FILE__, __LINE__, Y, __ace_error, ace___->restart (), \
- ace___->msg_ostream (), ace___->msg_callback ()); \
- return Y; \
- } while (0)
-#define ACE_ERROR_RETURN(X, Y) \
- do { \
- int __ace_error = ACE_Log_Msg::last_error_adapter (); \
- ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
- ace___->conditional_set (__FILE__, __LINE__, Y, __ace_error); \
- ace___->log X; \
- return Y; \
- } while (0)
-#define ACE_ERROR(X) \
- do { \
- int __ace_error = ACE_Log_Msg::last_error_adapter (); \
- ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
- ace___->conditional_set (__FILE__, __LINE__, -1, __ace_error); \
- ace___->log X; \
- } while (0)
-#define ACE_DEBUG(X) \
- do { \
- int __ace_error = ACE_Log_Msg::last_error_adapter (); \
- ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
- ace___->conditional_set (__FILE__, __LINE__, 0, __ace_error); \
- ace___->log X; \
- } while (0)
-#define ACE_ERROR_INIT(VALUE, FLAGS) \
- do { \
- ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
- ace___->set_flags (FLAGS); ace___->op_status (VALUE); \
- } while (0)
-#define ACE_ERROR_BREAK(X) { ACE_ERROR (X); break; }
-#endif /* ACE_NLOGGING */
-
-#include "ace/OS_Log_Msg_Attributes.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (__Lynx__) || defined (INTEGRITY)
-# undef STDERR
-#endif /* __Lynx__ */
-
-#if defined (THREAD)
-// This workaround is necessary for nasty libraries that #define
-// THREAD 1.
-#define ACE_THREAD_HACK THREAD
-#undef THREAD
-#endif /* THREAD */
-
-class ACE_Log_Msg_Callback;
-class ACE_Log_Msg_Backend;
-
-// ****************************************************************
-
-#define ACE_LOG_MSG ACE_Log_Msg::instance ()
-
-// Forward declaration
-class ACE_Thread_Descriptor;
-class ACE_Log_Record;
-
-/**
- * @class ACE_Log_Msg
- *
- * @brief Provides a variable length argument message logging
- * abstraction.
- *
- * This class is very flexible since it allows formatted error
- * messages to be printed in a thread-safe manner to various
- * locations, such as stdout, stderr, cerr, a distributed logger, etc.
- * The current message is also kept in a thread-specific storage
- * location (threads spawned using ACE_Thread_Manager automatically get
- * an ACE_Log_Msg object that inherits the spawning thread's settings), which
- * can be used to communicate errors between framework methods and
- * callers. A message is logged by the log() method, only if the
- * message priority is currently enabled. Moreover, only the current
- * log message is stored here -- it will be overwritten by the
- * subsequent call to log().
- *
- * The ACE_Log_Msg class uses two priority masks to control its
- * logging behavior. The @c priority_mask_ object attribute is thread-
- * specific and specifies the priority levels logged by the thread.
- * The @c process_priority_mask_ class attribute is not thread-specific
- * and specifies the priority levels that will be logged by all
- * threads in the process. By default, all levels are disabled for
- * @c priority_mask_ and all levels are enabled for
- * @c process_priority_mask_ (i.e. the process-wide mask controls
- * the settings, and each instance can expand on it if desired).
- * Both priority masks can be modified using the priority_mask()
- * method of this class.
- */
-class ACE_Export ACE_Log_Msg
-{
-
-public:
- // Logger Flags.
- enum
- {
- /// Write messages to stderr.
- STDERR = 1,
- /// Write messages to the local client logger deamon.
- LOGGER = 2,
- /// Write messages to the ostream * stored in thread-specific
- /// storage.
- OSTREAM = 4,
- /// Write messages to the callback object.
- MSG_CALLBACK = 8,
- /// Display messages in a verbose manner.
- VERBOSE = 16,
- /// Display messages in a less verbose manner (i.e., only print
- /// information that can change between calls).
- VERBOSE_LITE = 32,
- /// Do not print messages at all (just leave in thread-specific
- /// storage for later inspection).
- SILENT = 64,
- /// Write messages to the system's event log.
- SYSLOG = 128,
- /// Write messages to the user provided backend
- CUSTOM = 256
- };
-
- // = Initialization and termination routines.
-
- /// Returns a pointer to the Singleton.
- static ACE_Log_Msg *instance (void);
-
- /// Returns last error.
- static int last_error_adapter (void);
-
- /// Returns non-null if an ACE_Log_Msg exists for the calling thread.
- static int exists (void);
-
- /// Returns the current program name used for logging.
- static const ACE_TCHAR * program_name (void);
- /// Clears the flag from the default priority mask used to
- /// initialize ACE_Log_Msg instances.
- static void disable_debug_messages (ACE_Log_Priority priority = LM_DEBUG);
-
- /// Sets the flag in the default priority mask used to initialize
- /// ACE_Log_Msg instances.
- static void enable_debug_messages (ACE_Log_Priority priority = LM_DEBUG);
-
- /// Initialize logger.
- ACE_Log_Msg (void);
-
- /// cleanup logger.
- ~ACE_Log_Msg (void);
-
- /// Initialize the ACE logging facility.
- /**
- * Initialize the ACE logging facility. Supplies the program name
- * that is available to each logging message call. Default arguments
- * set up logging to STDERR only.
- *
- * @param prog_name The name of the calling program.
- * @param options_flags A bitwise-or of options flags used to set the
- * initial behavior and logging sink(s). (see the
- * enum above for the valid values).
- * @param logger_key The name of ACE_FIFO rendezvous point where the
- * local client logger daemon is listening for logging
- * messages. Only meaningful if the LOGGER bit is
- * set in the @a flags argument.
- */
- int open (const ACE_TCHAR *prog_name,
- u_long options_flags = ACE_Log_Msg::STDERR,
- const ACE_TCHAR *logger_key = 0);
-
- // = Set/get the options flags.
-
- /**
- * Enable the bits in the logger's options flags.
- */
- void set_flags (u_long f);
-
- /**
- * Disable the bits in the logger's options flags.
- */
- void clr_flags (u_long f);
-
- /**
- * Return the bits in the logger's options flags.
- */
- u_long flags (void);
-
- /** @name Allow apps to acquire and release internal synchronization
- * lock
- *
- * This lock is used internally by the ACE_Log_Msg
- * implementation. By exporting the lock, applications can hold the
- * lock atomically over a number of calls to ACE_Log_Msg.
- */
- //@{
-
- /// Acquire the internal lock.
- int acquire (void);
-
- /// Release the internal lock.
- int release (void);
- //@}
-
- /// Call after doing a @c fork() to resynchronize the process id and
- /// @c program_name_ variables.
- void sync (const ACE_TCHAR *program_name);
-
- // = Set/get methods. Note that these are non-static and thus will
- // be thread-specific.
-
- /// Set the result of the operation status (by convention, -1 means
- /// error).
- void op_status (int status);
-
- /// Get the result of the operation status (by convention, -1 means
- /// error).
- int op_status (void);
-
- /// Set the value of the errnum (by convention this corresponds to
- /// errno).
- void errnum (int);
-
- /// Get the value of the errnum (by convention this corresponds to
- /// errno).
- int errnum (void);
-
- /// Set the line number where an error occurred.
- void linenum (int);
-
- /// Get the line number where an error occurred.
- int linenum (void);
-
- /// Set the file name where an error occurred.
- void file (const char *);
-
- /// Get the file name where an error occurred.
- const char *file (void);
-
- /// Set the message that describes what type of error occurred.
- void msg (const ACE_TCHAR *);
-
- /// Get the message that describes what type of error occurred.
- const ACE_TCHAR *msg (void);
-
- /// Set the field that indicates whether interrupted calls should be
- /// restarted.
- void restart (int);
-
- /// Get the field that indicates whether interrupted calls should be
- /// restarted.
- int restart (void);
-
- // = Notice that the following two function is equivalent to
- // "void msg_ostream (HANDLE)" and "HANDLE msg_ostream (void)"
- // on Windows CE. There is no <iostream.h> support on CE.
-
- /// Update the ostream without overwriting the delete_ostream_ flag.
- void msg_ostream (ACE_OSTREAM_TYPE *);
-
- /**
- * delete_stream == 1, forces Log_Msg.h to delete the stream in
- * its own ~dtor (assumes control of the stream)
- * use only with proper ostream (eg: fstream), not (cout, cerr)
- */
- void msg_ostream (ACE_OSTREAM_TYPE *, int delete_ostream);
-
- /// Get the ostream that is used to print error messages.
- ACE_OSTREAM_TYPE *msg_ostream (void) const;
-
- /**
- * Set a new callback object and return the existing callback to
- * allow "chaining". Note that ACE_Log_Msg_Callback objects are not
- * inherited when spawning a new thread, so you'll need to reset
- * them in each thread.
- */
- ACE_Log_Msg_Callback *msg_callback (ACE_Log_Msg_Callback *c);
- ACE_Log_Msg_Callback *msg_callback (void) const;
-
- /**
- * Set a new backend object and return the existing backend to
- * allow "chaining". Note that as opposed to ACE_Log_Msg_Callback,
- * ACE_Log_Msg_Backend is a per-process entity.
- *
- * Note: Be aware that because of the current architecture there is
- * no guarantee that open (), reset () and close () will be called
- * on a backend object.
- *
- */
- static ACE_Log_Msg_Backend *msg_backend (ACE_Log_Msg_Backend *b);
- static ACE_Log_Msg_Backend *msg_backend (void);
-
- /// Nesting depth increment.
- int inc (void);
-
- /// Nesting depth decrement.
- int dec (void);
-
- /// Get trace depth.
- int trace_depth (void);
-
- /// Set trace depth.
- void trace_depth (int);
-
- /// Set trace active status.
- int trace_active (void);
-
- /// Get trace active status.
- void trace_active (int value);
-
- /// Get the TSS thread descriptor.
- ACE_Thread_Descriptor *thr_desc (void) const;
-
- /**
- * Set the TSS thread descriptor. This method will call
- * td->acquire_release to block execution until this call
- * return.
- */
- void thr_desc (ACE_Thread_Descriptor *td);
-
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) && defined(ACE_LEGACY_MODE)
- // These functions are disabled without ACE_LEGACY_MODE
- // because the *semantics* have changed (the objects are no longer
- // TSS).
- /// Get TSS exception action.
- /// NOTE: The action is no longer TSS, they are global!
- ACE_SEH_EXCEPT_HANDLER seh_except_selector (void);
-
- /// Set TSS exception action.
- /// NOTE: The action is no longer TSS, they are global!
- ACE_SEH_EXCEPT_HANDLER seh_except_selector (ACE_SEH_EXCEPT_HANDLER);
-
- /// Get TSS exception handler.
- /// NOTE: The handler is no longer TSS, they are global!
- ACE_SEH_EXCEPT_HANDLER seh_except_handler (void);
-
- /// Set TSS exception handler.
- /// NOTE: The handler is no longer TSS, they are global!
- ACE_SEH_EXCEPT_HANDLER seh_except_handler (ACE_SEH_EXCEPT_HANDLER);
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS && ACE_LEGACY_MODE */
-
- /// Stop tracing status on a per-thread basis...
- void stop_tracing (void);
-
- /// Start tracing status on a per-thread basis...
- void start_tracing (void);
-
- /// Query tracing status on a per-thread basis...
- int tracing_enabled (void);
-
- typedef enum
- {
- PROCESS = 0,
- THREAD = 1
- } MASK_TYPE;
-
- // = Get/set the priority mask.
- /// Get the current ACE_Log_Priority mask.
- u_long priority_mask (MASK_TYPE = THREAD);
-
- /// Set the ACE_Log_Priority mask, returns original mask.
- u_long priority_mask (u_long, MASK_TYPE = THREAD);
-
- /// Return true if the requested priority is enabled.
- int log_priority_enabled (ACE_Log_Priority log_priority);
-
- /// Return true if the requested priority is enabled.
- int log_priority_enabled (ACE_Log_Priority log_priority,
- const char *,
- ...);
-
-#if defined (ACE_USES_WCHAR)
- // We are not using ACE_TCHAR for this since ACE_HEX_DUMP
- // doesn't take in a ACE_TCHAR. log_hexdump takes in a char
- // string, so this must be able to take in a char string even
- // when using ACE_USES_WCHAR.
- /// Return true if the requested priority is enabled.
- int log_priority_enabled (ACE_Log_Priority log_priority,
- const wchar_t *,
- ...);
-#endif /* ACE_USES_WCHAR */
-
- /// Optimize reading of the pid (avoids a system call if the value is
- /// cached...).
- pid_t getpid (void) const;
-
- /// Get the name of the local host.
- const ACE_TCHAR *local_host (void) const;
-
- /// Set the name of the local host.
- void local_host (const ACE_TCHAR *);
-
- /**
- * Set the line number, file name, operational status, error number,
- * restart flag, ostream, and the callback object. This combines
- * all the other set methods into a single method.
- */
- void set (const char *file,
- int line,
- int op_status = -1,
- int errnum = 0,
- int restart = 1,
- ACE_OSTREAM_TYPE *os = 0,
- ACE_Log_Msg_Callback *c = 0);
-
- /// These values are only actually set if the requested priority is
- /// enabled.
- void conditional_set (const char *file,
- int line,
- int op_status,
- int errnum);
-
- /**
- * Format a message to the thread-safe ACE logging mechanism. Valid
- * options (prefixed by '%', as in printf format strings) include:
- * - 'A': print an ACE_timer_t value (which could be either double
- * or ACE_UINT32.)
- * - 'a': abort the program at this point abruptly.
- * - 'c': print a character
- * - 'C': print a character string
- * - 'i', 'd': print a decimal number
- * - 'I': indent according to nesting depth (obtained from
- * ACE_Trace::get_nesting_indent()).
- * - 'e', 'E', 'f', 'F', 'g', 'G': print a double
- * - 'l': print line number where an error occurred.
- * - 'M': print the name of the priority of the message.
- * - 'm': return the message corresponding to errno value, e.g., as
- * done by strerror()
- * - 'N': print file name where the error occurred.
- * - 'n': print the name of the program (or "<unknown>" if not set)
- * - 'o': print as an octal number
- * - 'P': print out the current process id
- * - 'p': print out the appropriate errno message from sys_errlist,
- * e.g., as done by perror()
- * - 'Q': print out the uint64 number
- * - '@': print a void* pointer (in hexadecimal)
- * - 'r': call the function pointed to by the corresponding argument
- * - 'R': print return status
- * - 'S': print out the appropriate _sys_siglist entry corresponding
- * to var-argument.
- * - 's': print out a character string
- * - 'T': print timestamp in hour:minute:sec:usec format.
- * - 'D': print timestamp in month/day/year hour:minute:sec:usec format.
- * - 't': print thread id (1 if single-threaded)
- * - 'u': print as unsigned int
- * - 'w': prints a wide character
- * - 'W': print a wide character string
- * - 'x': print as a hex number
- * - 'X': print as a hex number
- * - 'z': print an ACE_OS::WChar character
- * - 'Z': print an ACE_OS::WChar character string
- * - '%': print out a single percent sign, '%'
- */
- ssize_t log (ACE_Log_Priority priority, const ACE_TCHAR *format, ...);
-
-#if defined (ACE_HAS_WCHAR)
- ssize_t log (ACE_Log_Priority priority, const ACE_ANTI_TCHAR *format, ...);
-#endif /* ACE_HAS_WCHAR */
-
- /**
- * An alternative logging mechanism that makes it possible to
- * integrate variable argument lists from other logging mechanisms
- * into the ACE mechanism.
- */
- ssize_t log (const ACE_TCHAR *format,
- ACE_Log_Priority priority,
- va_list argp);
-
- /// Log a custom built log record to the currently enabled logging
- /// sinks.
- ssize_t log (ACE_Log_Record &log_record,
- int suppress_stderr = 0);
-
- /**
- * Method to log hex dump. This is useful for debugging. Calls
- * log() to do the actual print, but formats first to make the chars
- * printable.
- */
- int log_hexdump (ACE_Log_Priority log_priority,
- const char *buffer,
- size_t size,
- const ACE_TCHAR *text = 0);
-
- static void init_hook (ACE_OS_Log_Msg_Attributes &attributes
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- , ACE_SEH_EXCEPT_HANDLER selector = 0
- , ACE_SEH_EXCEPT_HANDLER handler = 0
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- /**
- * Init hook, create a Log_Msg_Attribute object, initialize its
- * attributes from the TSS Log_Msg and save the object in the
- * @a attributes argument
- */
- );
-
- /**
- * Inherit hook, the @a attributes field is a ACE_OS_Log_Msg_Attributes
- * object, invoke the inherit_log_msg() method on it, then destroy
- * it and set the @a attribute argument to 0.
- */
- static void inherit_hook (ACE_OS_Thread_Descriptor *thr_desc,
- ACE_OS_Log_Msg_Attributes &attributes);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Status of operation (-1 means failure, >= 0 means success).
- int status_;
-
- /// Type of error that occurred (see <sys/errno.h>).
- int errnum_;
-
- /// Line number where the error occurred.
- int linenum_;
-
- /// File where the error occurred.
- char file_[MAXPATHLEN + 1];
-
- /// The log message, which resides in thread-specific storage. Note
- /// that only the current log message is stored here -- it will be
- /// overwritten by the subsequent call to log().
- ACE_TCHAR msg_[ACE_MAXLOGMSGLEN + 1]; // Add one for NUL-terminator.
-
- /// Indicates whether we should restart system calls that are
- /// interrupted.
- int restart_;
-
- /// The ostream where logging messages can be written.
- ACE_OSTREAM_TYPE *ostream_;
-
- /// The callback object.
- ACE_Log_Msg_Callback *msg_callback_;
-
- /// Depth of the nesting for printing traces.
- int trace_depth_;
-
- /// Are we already within an ACE_Trace constructor call?
- int trace_active_;
-
- /// Are we allowing tracing in this thread?
- int tracing_enabled_;
-
- /// Are we deleting this ostream?
- int delete_ostream_;
-
- /**
- * If we're running in the context of an ACE_Thread_Manager this
- * will point to the thread descriptor adapter which holds the
- * thread descriptor of the thread. This can be used to repidly
- * access all thread data kept in ACE_Thread_Descriptor.
- */
- ACE_Thread_Descriptor *thr_desc_;
-
- /**
- * Keeps track of all the per-thread ACE_Log_Priority values that
- * are currently enabled. Default is for all logging priorities to
- * be disabled.
- */
- u_long priority_mask_;
-
- // = The following fields are *not* kept in thread-specific storage.
-
- // We only want one instance for the entire process!
-
- /**
- * Keeps track of all the per-process ACE_Log_Priority values that
- * are currently enabled. Default is for all logging priorities to
- * be enabled.
- */
- static u_long process_priority_mask_;
-
- /// Records the program name.
- static const ACE_TCHAR *program_name_;
-
- /// Name of the local host (used when printing messages).
- static const ACE_TCHAR *local_host_;
-
- /// Process id of the current process.
- static pid_t pid_;
-
- /// Options flags used to hold the logger flag options, e.g.,
- /// STDERR, LOGGER, OSTREAM, MSG_CALLBACK, etc.
- static u_long flags_;
-
- /// Offset of msg_[].
- static int msg_off_;
-
- /**
- * Number of existing ACE_Log_Msg instances; when 0, delete program/host
- * names
- */
- static int instance_count_;
-
- /**
- * Priority mask to use for each new instance
- */
- static u_long default_priority_mask_;
-
- /// Anonymous struct since there will only be one instance. This
- /// struct keeps information stored away in case we actually end up
- /// calling log() if the log priority is correct.
- struct
- {
- int is_set_;
- const char *file_;
- int line_;
- int op_status_;
- int errnum_;
- } conditional_values_;
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- static int key_created_;
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \
- defined (ACE_HAS_TSS_EMULATION)
- static ACE_thread_key_t log_msg_tss_key_;
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */
-#endif /* ACE_MT_SAFE */
-
- /// For cleanup, at program termination.
- static void close (void);
-
- /// Decouple the OS layer from the ACE_Log_Msg layer.
- static void sync_hook (const ACE_TCHAR *prg_name);
-
- /// Return the TSS singleton thread descriptor
- static ACE_OS_Thread_Descriptor *thr_desc_hook (void);
-
- //friend void ACE_OS::cleanup_tss (const u_int);
-
- // = Disallow these operations.
- ACE_Log_Msg &operator= (const ACE_Log_Msg &);
- ACE_Log_Msg (const ACE_Log_Msg &);
-};
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \
- defined (ACE_HAS_TSS_EMULATION)
-/* static */
-# if defined (ACE_HAS_THR_C_DEST)
-# define LOCAL_EXTERN_PREFIX extern "C"
-# else
-# define LOCAL_EXTERN_PREFIX
-# endif /* ACE_HAS_THR_C_DEST */
-LOCAL_EXTERN_PREFIX
-void
-ACE_TSS_cleanup (void *ptr);
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */
-#endif /* ACE_MT_SAFE */
-
-#if defined (ACE_THREAD_HACK)
-#define THREAD ACE_THREAD_HACK
-#undef ACE_THREAD_HACK
-#endif /* ACE_THREAD_HACK */
-
-#if defined(ACE_LEGACY_MODE)
-#include "ace/Log_Msg_Callback.h"
-#endif /* ACE_LEGACY_MODE */
-
-#include "ace/post.h"
-#endif /* ACE_LOG_MSG_H */
diff --git a/ace/Log_Msg_Backend.cpp b/ace/Log_Msg_Backend.cpp
deleted file mode 100644
index 8e4ae6208f3..00000000000
--- a/ace/Log_Msg_Backend.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// $Id$
-
-#include "ace/Log_Msg_Backend.h"
-
-ACE_RCSID(ace, Log_Msg_Backend, "$Id$")
-
-ACE_Log_Msg_Backend::~ACE_Log_Msg_Backend (void)
-{
-}
diff --git a/ace/Log_Msg_Backend.h b/ace/Log_Msg_Backend.h
deleted file mode 100644
index 1276f98720e..00000000000
--- a/ace/Log_Msg_Backend.h
+++ /dev/null
@@ -1,64 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Log_Msg_Backend.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_LOG_MSG_BACKEND_H
-#define ACE_LOG_MSG_BACKEND_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_Log_Record;
-
-/**
- * @class ACE_Log_Msg_Backend
- *
- * @brief Define the interface for ACE_Log_Msg backend strategies.
- *
- * The ACE_Log_Msg class can log to multiple backend strategies, for
- * example, some send messages to a remote logger, others dump to a
- * file, or simply to stderr. In the future we could define
- * interfaces that log to the syslog daemon (on UNIX), the Event log
- * (on NT) a temporary ring buffer, etc.
- */
-class ACE_Export ACE_Log_Msg_Backend
-{
-public:
- /// No-op virtual destructor.
- virtual ~ACE_Log_Msg_Backend (void);
-
- /// Open a new connection
- virtual int open (const ACE_TCHAR *logger_key) = 0;
-
- /*
- * Reset the backend. When changing the logging destination the
- * backend may need to properly disconnect from the remote logging
- * daemon and reclaim some local resources. But we try to reduce
- * the number of local allocations/deallocations.
- */
- virtual int reset (void) = 0;
-
- /// Close the backend completely.
- virtual int close (void) = 0;
-
- /// Backend routine. This is called when we want to log a message.
- /// Since this routine is pure virtual, it must be overwritten by the
- /// subclass.
- virtual int log (ACE_Log_Record &log_record) = 0;
-};
-
-#include "ace/post.h"
-#endif /* ACE_LOG_MSG_BACKEND_H */
diff --git a/ace/Log_Msg_Callback.cpp b/ace/Log_Msg_Callback.cpp
deleted file mode 100644
index c2ab8da127c..00000000000
--- a/ace/Log_Msg_Callback.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// $Id$
-
-#include "ace/Log_Msg_Callback.h"
-
-ACE_RCSID(ace, Log_Msg_Callback, "$Id$")
-
-ACE_Log_Msg_Callback::~ACE_Log_Msg_Callback (void)
-{
-}
diff --git a/ace/Log_Msg_Callback.h b/ace/Log_Msg_Callback.h
deleted file mode 100644
index 3602d56459d..00000000000
--- a/ace/Log_Msg_Callback.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Log_Msg_Callback.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_LOG_MSG_CALLBACK_H
-#define ACE_LOG_MSG_CALLBACK_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_Log_Record;
-
-/**
- * @class ACE_Log_Msg_Callback
- *
- * @brief An interface class used to get logging callbacks.
- *
- * Users who are interested in getting the logging messages
- * directly, can subclass this interface and override the log()
- * method. They must then register their subclass with the
- * Log_Msg class and make sure that they turn on the
- * ACE_Log_Msg::MSG_CALLBACK flag.
- *
- * Your <log> routine is called with an instance of
- * ACE_Log_Record. From this class, you can get the log
- * message, the verbose log message, message type, message
- * priority, and so on.
- *
- * Remember that there is one Log_Msg object per thread.
- * Therefore, you may need to register your callback object with
- * many <ACE_Log_Msg> objects (and have the correct
- * synchronization in the <log> method) or have a separate
- * callback object per Log_Msg object. Moreover,
- * <ACE_Log_Msg_Callbacks> are not inherited when a new thread
- * is spawned because it might have been allocated off of the
- * stack of the original thread, in which case all hell would
- * break loose... Therefore, you'll need to reset these in each
- * new thread.
- */
-class ACE_Export ACE_Log_Msg_Callback
-{
-public:
- /// No-op virtual destructor.
- virtual ~ACE_Log_Msg_Callback (void);
-
- /// Callback routine. This is called when we want to log a message.
- /// Since this routine is pure virtual, it must be overwritten by the
- /// subclass.
- virtual void log (ACE_Log_Record &log_record) = 0;
-};
-
-#include "ace/post.h"
-#endif /* ACE_LOG_MSG_CALLBACK_H */
diff --git a/ace/Log_Msg_IPC.cpp b/ace/Log_Msg_IPC.cpp
deleted file mode 100644
index 9d90638395e..00000000000
--- a/ace/Log_Msg_IPC.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-// $Id$
-
-#include "ace/Log_Msg_IPC.h"
-#include "ace/Log_Record.h"
-
-ACE_RCSID(ace, Log_Msg_IPC, "$Id$")
-
-ACE_Log_Msg_IPC::ACE_Log_Msg_IPC (void)
-{
-}
-
-ACE_Log_Msg_IPC::~ACE_Log_Msg_IPC (void)
-{
- (void) this->close ();
-}
-
-int
-ACE_Log_Msg_IPC::open (const ACE_TCHAR *logger_key)
-{
- ACE_LOG_MSG_IPC_CONNECTOR con;
- return con.connect (this->message_queue_,
- ACE_LOG_MSG_IPC_ADDR (logger_key));
-}
-
-int
-ACE_Log_Msg_IPC::reset (void)
-{
- if (this->message_queue_.get_handle () != ACE_INVALID_HANDLE)
- {
- // If we don't do this, handles aren't reused on Win32 and the
- // server eventually crashes!
-#if defined (ACE_WIN32)
- ACE_INT32 dummy = ~0;
- this->message_queue_.send_n ((const void *) &dummy,
- sizeof (ACE_INT32));
-#endif /* ACE_WIN32 */
- return this->close ();
- }
- return 0;
-}
-
-int
-ACE_Log_Msg_IPC::close (void)
-{
- return this->message_queue_.close ();
-}
-
-int
-ACE_Log_Msg_IPC::log (ACE_Log_Record &log_record)
-{
-#if defined (ACE_HAS_STREAM_PIPES)
- ACE_Str_Buf log_msg (ACE_static_cast (void *,
- &log_record),
- ACE_static_cast (int,
- log_record.length ()));
-
- // Try to use the <putpmsg> API if possible in order to
- // ensure correct message queueing according to priority.
- return
- this->message_queue_.send
- (ACE_static_cast (const ACE_Str_Buf *, 0),
- &log_msg,
- ACE_static_cast (int, log_record.priority ()),
- MSG_BAND);
-#else
- // We're running over sockets, so we'll need to indicate the
- // number of bytes to send.
- return
- this->message_queue_.send_n ((void *) &log_record,
- log_record.length ());
-#endif /* ACE_HAS_STREAM_PIPES */
-}
diff --git a/ace/Log_Msg_IPC.h b/ace/Log_Msg_IPC.h
deleted file mode 100644
index b9ab8885fcf..00000000000
--- a/ace/Log_Msg_IPC.h
+++ /dev/null
@@ -1,63 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Log_Msg_IPC.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_LOG_MSG_LOGGER_H
-#define ACE_LOG_MSG_LOGGER_H
-#include "ace/pre.h"
-
-#include "ace/Log_Msg_Backend.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// IPC conduit between sender and client daemon. This should be
-// included in the <ACE_Log_Msg> class, but due to "order of include"
-// problems it can't be...
-#if defined (ACE_HAS_STREAM_PIPES)
-# include "ace/SPIPE_Connector.h"
-typedef ACE_SPIPE_Stream ACE_LOG_MSG_IPC_STREAM;
-typedef ACE_SPIPE_Connector ACE_LOG_MSG_IPC_CONNECTOR;
-typedef ACE_SPIPE_Addr ACE_LOG_MSG_IPC_ADDR;
-#else
-# include "ace/SOCK_Connector.h"
-typedef ACE_SOCK_Stream ACE_LOG_MSG_IPC_STREAM;
-typedef ACE_SOCK_Connector ACE_LOG_MSG_IPC_CONNECTOR;
-typedef ACE_INET_Addr ACE_LOG_MSG_IPC_ADDR;
-#endif /* ACE_HAS_STREAM_PIPES */
-
-/// Defines the interfaces for ACE_Log_Msg backend.
-/**
- * Implement an ACE_Log_Msg_Backend that logs to a remote logging
- * process.
- */
-class ACE_Export ACE_Log_Msg_IPC : public ACE_Log_Msg_Backend
-{
-public:
- /// Constructor
- ACE_Log_Msg_IPC (void);
-
- /// Destructor
- virtual ~ACE_Log_Msg_IPC (void);
-
- /// Open a new connection
- virtual int open (const ACE_TCHAR *logger_key);
- virtual int reset (void);
- virtual int close (void);
- virtual int log (ACE_Log_Record &log_record);
-
-private:
- ACE_LOG_MSG_IPC_STREAM message_queue_;
-};
-
-#include "ace/post.h"
-#endif /* ACE_LOG_MSG_H */
diff --git a/ace/Log_Msg_NT_Event_Log.cpp b/ace/Log_Msg_NT_Event_Log.cpp
deleted file mode 100644
index d00e23ee475..00000000000
--- a/ace/Log_Msg_NT_Event_Log.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-// $Id$
-
-#include "ace/config-all.h"
-
-#if defined (ACE_HAS_LOG_MSG_NT_EVENT_LOG)
-
-#include "ace/Log_Msg_NT_Event_Log.h"
-#include "ace/Log_Msg.h"
-#include "ace/Log_Record.h"
-
-ACE_RCSID(ace, Log_Msg_NT_Event_Log, "$Id$")
-
-ACE_Log_Msg_NT_Event_Log::ACE_Log_Msg_NT_Event_Log (void)
- : evlog_handle_(0)
-{
-}
-
-ACE_Log_Msg_NT_Event_Log::~ACE_Log_Msg_NT_Event_Log (void)
-{
- this->close ();
-}
-
-int
-ACE_Log_Msg_NT_Event_Log::open (const ACE_TCHAR *logger_key)
-{
- // ACE's "resource module" contains the message resource required
- // for event logging.
- ACE_TCHAR msg_file [MAXPATHLEN];
-
- if (!ACE_TEXT_GetModuleFileName (ACE_OS::get_win32_resource_module (),
- msg_file,
- MAXPATHLEN))
- return -1;
- DWORD msg_file_length = ACE_static_cast (DWORD,
- ACE_OS_String::strlen (msg_file));
-
- // If a logger_key has been supplied then we use that as the event
- // source name, otherwise we default to the program name.
- const ACE_TCHAR *event_source_name = logger_key ? logger_key : ACE_Log_Msg::program_name ();
-
- // Information is stored in the registry at a location based on the
- // program name.
- ACE_TCHAR reg_key [MAXPATHLEN];
- ACE_OS::strcpy (reg_key,
- ACE_LIB_TEXT ("SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\"));
- size_t reg_key_length = ACE_OS::strlen(reg_key);
- ACE_OS::strncat (reg_key,
- event_source_name,
- MAXPATHLEN - reg_key_length);
-
- // Add the event source to the registry. Note that if this fails it
- // is not fatal. The application will still be able to write entries
- // to the event log, they just won't be formatted correctly.
- HKEY hkey;
- ACE_TEXT_RegCreateKey (HKEY_LOCAL_MACHINE,
- reg_key,
- &hkey);
- DWORD flags = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | EVENTLOG_INFORMATION_TYPE;
- ACE_TEXT_RegSetValueEx (hkey,
- ACE_LIB_TEXT ("TypesSupported"),
- 0,
- REG_DWORD,
- (LPBYTE) &flags,
- sizeof (DWORD));
- ACE_TEXT_RegSetValueEx (hkey,
- ACE_LIB_TEXT ("EventMessageFile"),
- 0,
- REG_SZ,
- (LPBYTE) msg_file,
- msg_file_length + 1);
- RegCloseKey (hkey);
-
- // Obtain a handle to the event source.
- this->evlog_handle_ = ACE_TEXT_RegisterEventSource (0,
- event_source_name);
- return this->evlog_handle_ ? 0 : -1;
-}
-
-int
-ACE_Log_Msg_NT_Event_Log::reset (void)
-{
- return this->close ();
-}
-
-int
-ACE_Log_Msg_NT_Event_Log::close (void)
-{
- if (this->evlog_handle_ == 0
- || DeregisterEventSource (this->evlog_handle_))
- {
- this->evlog_handle_ = 0;
- return 0;
- }
- else
- return -1;
-}
-
-int
-ACE_Log_Msg_NT_Event_Log::log (ACE_Log_Record &log_record)
-{
- // Make a copy of the log text and replace any newlines with
- // CR-LF. Newline characters on their own do not appear correctly
- // in the event viewer. We allow for a doubling in the size of
- // the msg data for the worst case of all newlines.
- const ACE_TCHAR* src_msg_data = log_record.msg_data ();
- ACE_TCHAR msg_data [ACE_Log_Record::MAXLOGMSGLEN * 2];
-
- for (long i = 0, j = 0; i < log_record.length (); ++i)
- {
- if (src_msg_data[i] == '\n')
- {
- msg_data[j++] = '\r';
- msg_data[j++] = '\n';
- }
- else
- msg_data[j++] = src_msg_data[i];
- }
-
- // Map the ACE log record type to an event log type.
- WORD event_type;
- switch (log_record.type ())
- {
- case LM_STARTUP:
- case LM_SHUTDOWN:
- case LM_TRACE:
- case LM_DEBUG:
- case LM_INFO:
- event_type = EVENTLOG_INFORMATION_TYPE;
- break;
- case LM_NOTICE:
- case LM_WARNING:
- event_type = EVENTLOG_WARNING_TYPE;
- break;
- case LM_ERROR:
- case LM_CRITICAL:
- case LM_ALERT:
- case LM_EMERGENCY:
- default:
- event_type = EVENTLOG_ERROR_TYPE;
- break;
- }
-
- // Send the log message to the system event log.
- const ACE_TCHAR* msgs [1];
- msgs[0] = msg_data;
-
- if (ACE_TEXT_ReportEvent (this->evlog_handle_,
- event_type, 0, 0, 0, 1, 0, msgs, 0) == 0)
- return -1;
- else
- return 0;
-}
-
-#endif /* ACE_HAS_LOG_MSG_NT_EVENT_LOG */
diff --git a/ace/Log_Msg_NT_Event_Log.h b/ace/Log_Msg_NT_Event_Log.h
deleted file mode 100644
index b901aea2e00..00000000000
--- a/ace/Log_Msg_NT_Event_Log.h
+++ /dev/null
@@ -1,68 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Log_Msg_NT_Event_Log.h
- *
- * $Id$
- *
- * @author Christopher Kohlhoff <chris@kohlhoff.com>
- */
-//=============================================================================
-
-#ifndef ACE_LOG_MSG_NT_EVENT_LOG_H
-#define ACE_LOG_MSG_NT_EVENT_LOG_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined ACE_HAS_LOG_MSG_NT_EVENT_LOG
-
-#include "ace/Log_Msg_Backend.h"
-
-/**
- * @class ACE_Log_Msg_NT_Event_Log
- *
- * @brief Implements an ACE_Log_Msg_Backend that logs to the WinNT system
- * event log.
- */
-class ACE_Export ACE_Log_Msg_NT_Event_Log : public ACE_Log_Msg_Backend
-{
-public:
- /// Constructor
- ACE_Log_Msg_NT_Event_Log (void);
-
- /// Destructor
- virtual ~ACE_Log_Msg_NT_Event_Log (void);
-
- /// Open a new event log.
- /**
- * Initialize the event logging facility.
- * @param logger_key The name of the calling program. This name is
- * used in the Source field of the event log. If
- * it is 0 (no name), the application name as
- * returned from ACE_Log_Msg::program_name() is used.
- */
- virtual int open (const ACE_TCHAR *logger_key);
-
- /// Reset the backend.
- virtual int reset (void);
-
- /// Close the backend completely.
- virtual int close (void);
-
- /// This is called when we want to log a message.
- virtual int log (ACE_Log_Record &log_record);
-
-private:
- HANDLE evlog_handle_;
-};
-
-#endif /* ACE_HAS_LOG_MSG_NT_EVENT_LOG */
-
-#include "ace/post.h"
-#endif /* ACE_LOG_MSG_NT_EVENT_LOG_H */
diff --git a/ace/Log_Msg_UNIX_Syslog.cpp b/ace/Log_Msg_UNIX_Syslog.cpp
deleted file mode 100644
index 7c7af9bbeb5..00000000000
--- a/ace/Log_Msg_UNIX_Syslog.cpp
+++ /dev/null
@@ -1,191 +0,0 @@
-// $Id$
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_WIN32) && !defined (ACE_LACKS_UNIX_SYSLOG)
-
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-#include "ace/Log_Msg_UNIX_Syslog.h"
-#include "ace/Log_Record.h"
-
-// NOTE:
-// The ACE_Log_Msg_UNIX_Syslog class can use the openlog(),
-// setlogmask(), syslog() and closelog() routines in a thread safe
-// manner (versus using openlog_r(), et. al.), as the ACE_Log_Msg
-// class uses the lock provided by its local ACE_Log_Msg_Manager
-// class when calling the methods of the backend classes. As a
-// result, logging semantics with respect to the UNIX syslog
-// facility, will be the same for all threads in a process. This
-// should not be too limiting, as the ACE_Log_Msg class itself can
-// be used to control thread specific logging behavior.
-
-ACE_Log_Msg_UNIX_Syslog::ACE_Log_Msg_UNIX_Syslog (void)
-{
-}
-
-ACE_Log_Msg_UNIX_Syslog::~ACE_Log_Msg_UNIX_Syslog (void)
-{
- (void) this->close ();
-}
-
-int
-ACE_Log_Msg_UNIX_Syslog::open (const ACE_TCHAR * logger_key)
-{
- if (logger_key == 0)
- logger_key = ACE_Log_Msg::program_name ();
-
- // Initialize the UNIX syslog facility. Default the syslog log
- // options LOG_CONS and LOG_PID to be set. There really should be a
- // logging strategy option to control the syslog log options,
- // however, we'll take the easy way out for now.
- openlog (ACE_const_cast (char *, logger_key),
- LOG_CONS|LOG_PID,
- ACE_DEFAULT_SYSLOG_FACILITY);
-
- // Enable logging of all syslog priorities. If logging of all
- // priorities is not desired, use the ACE_Log_Msg::priority_mask()
- // method to control the log output sent to the syslog daemon via
- // the log() method, or use the system's syslog.conf file to select
- // desired level of information.
-
-#if !defined (ACE_LACKS_SETLOGMASK)
- (void) setlogmask (LOG_UPTO (LOG_DEBUG));
-#endif /* ACE_LACKS_SETLOGMASK */
-
- return 0;
-}
-
-int
-ACE_Log_Msg_UNIX_Syslog::reset (void)
-{
- return this->close ();
-}
-
-int
-ACE_Log_Msg_UNIX_Syslog::close (void)
-{
- closelog();
- return 0;
-}
-
-int
-ACE_Log_Msg_UNIX_Syslog::log (ACE_Log_Record &log_record)
-{
- int syslog_priority = this->convert_log_priority (log_record.type ());
- int flags = ACE_LOG_MSG->flags ();
-
- // The UNIX syslog() facility does not support multi-line messages.
- // Break up the message data into separate lines and send each line
- // to the syslog daemon.
-
- ACE_TCHAR message[ACE_Log_Record::MAXVERBOSELOGMSGLEN];
- ACE_OS::strcpy (message, log_record.msg_data ());
- ACE_TCHAR *strtokp;
-
- for (ACE_TCHAR *line = ACE_OS_String::strtok_r (message,
- ACE_LIB_TEXT ("\n"),
- &strtokp);
- line != 0;
- line = ACE_OS_String::strtok_r (0,
- ACE_LIB_TEXT ("\n"),
- &strtokp))
- {
- // Format the message line. Note that the processing for
- // VERBOSE is the same as for VERBOSE_LITE, since syslog()
- // already provides us with the hostname and PID. However, the
- // timestamp is duplicated (albeit a shortened version) to
- // provide a timestamp with greater precision than that provided
- // by syslog().
- if (ACE_BIT_ENABLED (flags, ACE_Log_Msg::VERBOSE)
- || ACE_BIT_ENABLED (flags, ACE_Log_Msg::VERBOSE_LITE))
- {
- ACE_TCHAR date_and_time[35];
- syslog (syslog_priority,
- ACE_LIB_TEXT ("%s: %s: %s"),
- ACE::timestamp (date_and_time, sizeof (date_and_time), 1),
- ACE_Log_Record::priority_name (ACE_Log_Priority(log_record.type ())),
- line);
- }
- else // No formatting required.
- syslog (syslog_priority, ACE_LIB_TEXT ("%s"), line);
- }
-
- return 0;
-}
-
-int
-ACE_Log_Msg_UNIX_Syslog::convert_log_priority (int lm_priority)
-{
- int syslog_priority;
- switch (lm_priority)
- {
- case LM_TRACE:
- case LM_DEBUG:
- syslog_priority = LOG_DEBUG;
- break;
- case LM_STARTUP:
- case LM_SHUTDOWN:
- case LM_INFO:
- syslog_priority = LOG_INFO;
- break;
- case LM_NOTICE:
- syslog_priority = LOG_NOTICE;
- break;
- case LM_WARNING:
- syslog_priority = LOG_WARNING;
- break;
- case LM_CRITICAL:
- syslog_priority = LOG_CRIT;
- break;
- case LM_ALERT:
- syslog_priority = LOG_ALERT;
- break;
- case LM_EMERGENCY:
- syslog_priority = LOG_EMERG;
- break;
- case LM_ERROR:
- default:
- syslog_priority = LOG_ERR;
- break;
- }
-
- return syslog_priority;
-}
-
-int
-ACE_Log_Msg_UNIX_Syslog::convert_log_mask (int lm_mask)
-{
- int syslog_mask = 0;
-
- if (ACE_BIT_ENABLED (lm_mask, LM_TRACE)
- || ACE_BIT_ENABLED (lm_mask, LM_DEBUG))
- ACE_SET_BITS (syslog_mask, LOG_MASK(LOG_DEBUG));
-
- if (ACE_BIT_ENABLED (lm_mask, LM_STARTUP)
- || ACE_BIT_ENABLED (lm_mask, LM_SHUTDOWN)
- || ACE_BIT_ENABLED (lm_mask, LM_INFO))
- ACE_SET_BITS (syslog_mask, LOG_MASK(LOG_INFO));
-
- if (ACE_BIT_ENABLED (lm_mask, LM_NOTICE))
- ACE_SET_BITS (syslog_mask, LOG_MASK(LOG_NOTICE));
-
- if (ACE_BIT_ENABLED (lm_mask, LM_ERROR))
- ACE_SET_BITS (syslog_mask, LOG_MASK(LOG_ERR));
-
- if (ACE_BIT_ENABLED (lm_mask, LM_WARNING))
- ACE_SET_BITS (syslog_mask, LOG_MASK(LOG_WARNING));
-
- if (ACE_BIT_ENABLED (lm_mask, LM_CRITICAL))
- ACE_SET_BITS (syslog_mask, LOG_MASK(LOG_CRIT));
-
- if (ACE_BIT_ENABLED (lm_mask, LM_ALERT))
- ACE_SET_BITS (syslog_mask, LOG_MASK(LOG_ALERT));
-
- if (ACE_BIT_ENABLED (lm_mask, LM_EMERGENCY))
- ACE_SET_BITS (syslog_mask, LOG_MASK(LOG_EMERG));
-
- return syslog_mask;
-}
-
-#endif /* !defined (ACE_WIN32) && !defined (ACE_LACKS_UNIX_SYSLOG) */
diff --git a/ace/Log_Msg_UNIX_Syslog.h b/ace/Log_Msg_UNIX_Syslog.h
deleted file mode 100644
index 4c63d9de80e..00000000000
--- a/ace/Log_Msg_UNIX_Syslog.h
+++ /dev/null
@@ -1,72 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Log_Msg_UNIX_Syslog.h
- *
- * $Id$
- *
- * @author Jerry D. De Master <jdemaster@rite-solutions.com>
- */
-//=============================================================================
-
-#ifndef ACE_LOG_MSG_UNIX_SYSLOG_H
-#define ACE_LOG_MSG_UNIX_SYSLOG_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_WIN32) && !defined (ACE_LACKS_UNIX_SYSLOG)
-
-#include "ace/Log_Msg_Backend.h"
-
-/**
- * @class ACE_Log_Msg_UNIX_Syslog
- *
- * @brief Implements an ACE_Log_Msg_Backend that logs messages to a UNIX
- * system's syslog facility.
- */
-class ACE_Export ACE_Log_Msg_UNIX_Syslog : public ACE_Log_Msg_Backend
-{
-public:
- /// Constructor
- ACE_Log_Msg_UNIX_Syslog (void);
-
- /// Destructor
- virtual ~ACE_Log_Msg_UNIX_Syslog (void);
-
- /// Open a new event log.
- /**
- * Initialize the event logging facility.
- * @param logger_key The name of the calling program. This name is
- * used as the @arg ident in the syslog entries. If
- * it is 0 (no name), the application name as
- * returned from ACE_Log_Msg::program_name() is used.
- */
- virtual int open (const ACE_TCHAR *logger_key);
-
- /// Reset the backend.
- virtual int reset (void);
-
- /// Close the backend completely.
- virtual int close (void);
-
- /// This is called when we want to log a message.
- virtual int log (ACE_Log_Record &log_record);
-
-private:
- /// Convert an ACE_Log_Priority value to the corresponding syslog priority.
- int convert_log_priority (int lm_priority);
-
- /// Convert an ACE_Log_Priority mask to the corresponding syslog mask value.
- int convert_log_mask (int lm_mask);
-};
-
-#endif /* !ACE_WIN32 && !ACE_HAS_WINCE */
-
-#include "ace/post.h"
-#endif /* ACE_LOG_MSG_UNIX_SYSLOG_H */
diff --git a/ace/Log_Priority.h b/ace/Log_Priority.h
deleted file mode 100644
index 52c68acb918..00000000000
--- a/ace/Log_Priority.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Log_Priority.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_LOG_PRIORITY_H
-#define ACE_LOG_PRIORITY_H
-#include "ace/pre.h"
-
-/**
- * @brief This data type indicates the relative priorities of the
- * logging messages, from lowest to highest priority.
- *
- * These values are defined using powers of two so that it's
- * possible to form a mask to turn them on or off dynamically.
- * We only use 12 bits, however, so users are free to use the
- * remaining 19 bits to define their own priority masks.
- */
-enum ACE_Log_Priority
-{
- // = Note, this first argument *must* start at 1!
-
- /// Shutdown the logger (decimal 1).
- LM_SHUTDOWN = 01,
-
- /// Messages indicating function-calling sequence (decimal 2).
- LM_TRACE = 02,
-
- /// Messages that contain information normally of use only when
- /// debugging a program (decimal 4).
- LM_DEBUG = 04,
-
- /// Informational messages (decimal 8).
- LM_INFO = 010,
-
- /// Conditions that are not error conditions, but that may require
- /// special handling (decimal 16).
- LM_NOTICE = 020,
-
- /// Warning messages (decimal 32).
- LM_WARNING = 040,
-
- /// Initialize the logger (decimal 64).
- LM_STARTUP = 0100,
-
- /// Error messages (decimal 128).
- LM_ERROR = 0200,
-
- /// Critical conditions, such as hard device errors (decimal 256).
- LM_CRITICAL = 0400,
-
- /// A condition that should be corrected immediately, such as a
- /// corrupted system database (decimal 512).
- LM_ALERT = 01000,
-
- /// A panic condition. This is normally broadcast to all users
- /// (decimal 1024).
- LM_EMERGENCY = 02000,
-
- /// The maximum logging priority.
- LM_MAX = LM_EMERGENCY,
-
- /// Do not use!! This enum value ensures that the underlying
- /// integral type for this enum is at least 32 bits.
- LM_ENSURE_32_BITS = 0x7FFFFFFF
-};
-
-#include "ace/post.h"
-#endif /* ACE_LOG_PRIORITY_H */
diff --git a/ace/Log_Record.cpp b/ace/Log_Record.cpp
deleted file mode 100644
index cb647b27e89..00000000000
--- a/ace/Log_Record.cpp
+++ /dev/null
@@ -1,277 +0,0 @@
-// $Id$
-
-#include "ace/Log_Record.h"
-#include "ace/Log_Msg.h"
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
-# include "ace/streams.h"
-#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-# include "ace/Log_Record.i"
-#endif
-
-ACE_RCSID(ace, Log_Record, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Log_Record)
-
-const ACE_TCHAR *ACE_Log_Record::priority_names_[] =
-{
- ACE_LIB_TEXT ("<none>"),
- ACE_LIB_TEXT ("LM_SHUTDOWN"),
- ACE_LIB_TEXT ("LM_TRACE"),
- ACE_LIB_TEXT ("LM_DEBUG"),
- ACE_LIB_TEXT ("LM_INFO"),
- ACE_LIB_TEXT ("LM_NOTICE"),
- ACE_LIB_TEXT ("LM_WARNING"),
- ACE_LIB_TEXT ("LM_STARTUP"),
- ACE_LIB_TEXT ("LM_ERROR"),
- ACE_LIB_TEXT ("LM_CRITICAL"),
- ACE_LIB_TEXT ("LM_ALERT"),
- ACE_LIB_TEXT ("LM_EMERGENCY"),
- ACE_LIB_TEXT ("LM_UNK(04000)"),
- ACE_LIB_TEXT ("LM_UNK(010000)"),
- ACE_LIB_TEXT ("LM_UNK(020000)"),
- ACE_LIB_TEXT ("LM_UNK(040000)"),
- ACE_LIB_TEXT ("LM_UNK(0100000)"),
- ACE_LIB_TEXT ("LM_UNK(0200000)"),
- ACE_LIB_TEXT ("LM_UNK(0400000)"),
- ACE_LIB_TEXT ("LM_UNK(01000000)"),
- ACE_LIB_TEXT ("LM_UNK(02000000)"),
- ACE_LIB_TEXT ("LM_UNK(04000000)"),
- ACE_LIB_TEXT ("LM_UNK(010000000)"),
- ACE_LIB_TEXT ("LM_UNK(020000000)"),
- ACE_LIB_TEXT ("LM_UNK(040000000)"),
- ACE_LIB_TEXT ("LM_UNK(0100000000)"),
- ACE_LIB_TEXT ("LM_UNK(0200000000)"),
- ACE_LIB_TEXT ("LM_UNK(0400000000)"),
- ACE_LIB_TEXT ("LM_UNK(01000000000)"),
- ACE_LIB_TEXT ("LM_UNK(02000000000)"),
- ACE_LIB_TEXT ("LM_UNK(04000000000)"),
- ACE_LIB_TEXT ("LM_UNK(010000000000)"),
- ACE_LIB_TEXT ("LM_UNK(020000000000)")
-};
-
-const ACE_TCHAR *
-ACE_Log_Record::priority_name (ACE_Log_Priority p)
-{
- return ACE_Log_Record::priority_names_[ACE::log2 (p)];
-}
-
-void
-ACE_Log_Record::priority_name (ACE_Log_Priority p,
- const ACE_TCHAR *name)
-{
- // Name must be a statically allocated string
- ACE_Log_Record::priority_names_[ACE::log2 (p)] = name;
-}
-
-u_long
-ACE_Log_Record::priority (void) const
-{
- ACE_TRACE ("ACE_Log_Record::priority");
-
- // Get the priority of the <Log_Record> <type_>. This is computed
- // as the base 2 logarithm of <type_> (which must be a power of 2,
- // as defined by the enums in <ACE_Log_Priority>).
- return ACE::log2 ((u_long) this->type_);
-}
-
-void
-ACE_Log_Record::priority (u_long p)
-{
- ACE_TRACE ("ACE_Log_Record::priority");
-
- // Set the priority of the <Log_Record> <type_> (which must be a
- // power of 2, as defined by the enums in <ACE_Log_Priority>).
- this->type_ = (ACE_UINT32) p;
-}
-
-void
-ACE_Log_Record::dump (void) const
-{
- // ACE_TRACE ("ACE_Log_Record::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("length_ = %d\n"), this->length_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ntype_ = %u\n"), this->type_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ntime_stamp_ = (%d, %d)\n"), this->secs_, this->usecs_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\npid_ = %u\n"), this->pid_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nmsg_data_ = %s\n"), this->msg_data_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_Log_Record::msg_data (const ACE_TCHAR *data)
-{
- // ACE_TRACE ("ACE_Log_Record::msg_data");
- ACE_OS::strsncpy (this->msg_data_, data,
- (sizeof this->msg_data_ / sizeof (ACE_TCHAR)));
- this->round_up ();
-}
-
-ACE_Log_Record::ACE_Log_Record (ACE_Log_Priority lp,
- long ts_sec,
- long p)
- : length_ (0),
- type_ (ACE_UINT32 (lp)),
- secs_ (ts_sec),
- usecs_ (0),
- pid_ (ACE_UINT32 (p))
-{
- // ACE_TRACE ("ACE_Log_Record::ACE_Log_Record");
-}
-
-ACE_Log_Record::ACE_Log_Record (ACE_Log_Priority lp,
- const ACE_Time_Value &ts,
- long p)
- : length_ (0),
- type_ (ACE_UINT32 (lp)),
- secs_ ((ACE_UINT32) ts.sec ()),
- usecs_ ((ACE_UINT32) ts.usec ()),
- pid_ (ACE_UINT32 (p))
-{
- // ACE_TRACE ("ACE_Log_Record::ACE_Log_Record");
-}
-
-void
-ACE_Log_Record::round_up (void)
-{
- // ACE_TRACE ("ACE_Log_Record::round_up");
- // Determine the length of the payload.
- size_t len = (sizeof (*this) - sizeof (this->msg_data_))
- + (sizeof (ACE_TCHAR) * ((ACE_OS::strlen (this->msg_data_) + 1)));
-
- // Round up to the alignment.
- len = ((len + ACE_Log_Record::ALIGN_WORDB - 1)
- & ~(ACE_Log_Record::ALIGN_WORDB - 1));
- this->length_ = ACE_static_cast (ACE_UINT32, len);
-}
-
-ACE_Log_Record::ACE_Log_Record (void)
- : length_ (0),
- type_ (0),
- secs_ (0),
- usecs_ (0),
- pid_ (0)
-{
- // ACE_TRACE ("ACE_Log_Record::ACE_Log_Record");
-}
-
-int
-ACE_Log_Record::format_msg (const ACE_TCHAR host_name[],
- u_long verbose_flag,
- ACE_TCHAR *verbose_msg)
-{
- /* 0123456789012345678901234 */
- /* Oct 18 14:25:36.000 1989<nul> */
- ACE_TCHAR timestamp[26]; // Only used by VERBOSE and VERBOSE_LITE.
-
- if (ACE_BIT_ENABLED (verbose_flag,
- ACE_Log_Msg::VERBOSE)
- || ACE_BIT_ENABLED (verbose_flag,
- ACE_Log_Msg::VERBOSE_LITE))
- {
- time_t now = this->secs_;
- ACE_TCHAR ctp[26]; // 26 is a magic number...
-
- if (ACE_OS::ctime_r (&now, ctp, sizeof ctp) == 0)
- return -1;
-
- /* 01234567890123456789012345 */
- /* Wed Oct 18 14:25:36 1989n0 */
-
- ctp[19] = '\0'; // NUL-terminate after the time.
- ctp[24] = '\0'; // NUL-terminate after the date.
-
- ACE_OS::sprintf (timestamp,
- ACE_LIB_TEXT ("%s.%03ld %s"),
- ctp + 4,
- ((long) this->usecs_) / 1000,
- ctp + 20);
- }
-
- if (ACE_BIT_ENABLED (verbose_flag,
- ACE_Log_Msg::VERBOSE))
- {
-# if defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS)
- const ACE_TCHAR *lhost_name = (const ACE_TCHAR *) ((host_name == 0)
- ? ((char *) ACE_LIB_TEXT ("<local_host>"))
- : ((char *) host_name));
-# else /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- const ACE_TCHAR *lhost_name = ((host_name == 0)
- ? ACE_LIB_TEXT ("<local_host>")
- : host_name);
-# endif /* ! defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- ACE_OS::sprintf (verbose_msg,
- ACE_LIB_TEXT ("%s@%s@%u@%s@%s"),
- timestamp,
- lhost_name,
- this->pid_,
- ACE_Log_Record::priority_name (ACE_Log_Priority (this->type_)),
- this->msg_data_);
- }
- else if (ACE_BIT_ENABLED (verbose_flag, ACE_Log_Msg::VERBOSE_LITE))
- ACE_OS::sprintf (verbose_msg,
- ACE_LIB_TEXT ("%s@%s@%s"),
- timestamp,
- ACE_Log_Record::priority_name (ACE_Log_Priority (this->type_)),
- this->msg_data_);
- else
- ACE_OS::sprintf (verbose_msg,
- ACE_LIB_TEXT ("%s"),
- this->msg_data_);
- return 0;
-}
-
-int
-ACE_Log_Record::print (const ACE_TCHAR host_name[],
- u_long verbose_flag,
- FILE *fp)
-{
- ACE_TCHAR verbose_msg [MAXVERBOSELOGMSGLEN];
- int result = this->format_msg (host_name,
- verbose_flag,
- verbose_msg);
-
- if (result == 0)
- {
- if (fp != 0)
- {
- int verbose_msg_len = ACE_static_cast (int,
- ACE_OS::strlen (verbose_msg));
- int fwrite_result = ACE_OS::fprintf (fp, ACE_LIB_TEXT ("%s"), verbose_msg);
-
- // We should have written everything
- if (fwrite_result != verbose_msg_len)
- result = -1;
- else
- ACE_OS::fflush (fp);
- }
- }
-
- return result;
-}
-
-#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
-
-int
-ACE_Log_Record::print (const ACE_TCHAR host_name[],
- u_long verbose_flag,
- ostream &s)
-{
- ACE_TCHAR verbose_msg [MAXVERBOSELOGMSGLEN];
- int result = this->format_msg (host_name, verbose_flag, verbose_msg);
-
- if (result == 0)
- {
- // Since ostream expects only chars, we cannot pass wchar_t's
- s << ACE_TEXT_ALWAYS_CHAR (verbose_msg);
- s.flush ();
- }
-
- return result;
-}
-
-#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
diff --git a/ace/Log_Record.h b/ace/Log_Record.h
deleted file mode 100644
index 074f40d146a..00000000000
--- a/ace/Log_Record.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Log_Record.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-// These need to go outside of the #ifdef to avoid problems with
-// circular dependencies...
-#include "ace/OS.h"
-
-#include "ace/Log_Priority.h"
-
-#ifndef ACE_LOG_RECORD_H
-#define ACE_LOG_RECORD_H
-#include "ace/pre.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/// Defines the structure of an ACE logging record.
-class ACE_Export ACE_Log_Record
-{
-public:
- enum
- {
- /// Maximum size of a logging message.
- MAXLOGMSGLEN = ACE_MAXLOGMSGLEN,
-
- /// Most restrictive alignment.
- ALIGN_WORDB = 8,
-
- /// Size used by verbose mode.
- /// 20 (date) + 15 (host_name) + 10 (pid) + 10 (type)
- /// + 4 (@) ... + ? (progname)
- VERBOSE_LEN = 128,
-
- /// Maximum size of a logging message with the verbose headers
- MAXVERBOSELOGMSGLEN = VERBOSE_LEN + MAXLOGMSGLEN
- };
-
- // = Initialization
- /**
- * Create a <Log_Record> and set its priority, time stamp, and
- * process id.
- * Create a <Log_Record> and set its priority, time stamp, and
- * process id.
- */
- ACE_Log_Record (void);
- ACE_Log_Record (ACE_Log_Priority lp,
- long time_stamp,
- long pid);
- ACE_Log_Record (ACE_Log_Priority lp,
- const ACE_Time_Value &time_stamp,
- long pid);
-
- /// Default dtor.
- ~ACE_Log_Record (void);
-
-
- /// Write the contents of the logging record to the appropriate
- /// <FILE>.
- int print (const ACE_TCHAR host_name[],
- u_long verbose_flag,
-#if !defined (ACE_HAS_WINCE)
- FILE *fp = stderr);
-#else
- FILE *fp);
-#endif /* ACE_HAS_WINCE */
-
-#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
- /// Write the contents of the logging record to the appropriate
- /// <ostream>.
- int print (const ACE_TCHAR host_name[],
- u_long verbose_flag,
- ostream &stream);
-#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-
- int format_msg (const ACE_TCHAR host_name[],
- u_long verbose_flag,
- ACE_TCHAR *verbose_msg);
-
- /**
- * Returns a character array with the string form of the
- * <ACE_Log_Priority> parameter. This is used for the verbose
- * printing format.
- */
- static const ACE_TCHAR *priority_name (ACE_Log_Priority p);
-
- // IMPORTANT: <name> must be a statically allocated const ACE_TCHAR*
- static void priority_name (ACE_Log_Priority p,
- const ACE_TCHAR *name);
-
- // = Marshall/demarshall
- /// Encode the <Log_Record> for transmission on the network.
- void encode (void);
-
- /// Decode the <Log_Record> received from the network.
- void decode (void);
-
- // = Set/get methods
-
- /// Get the type of the <Log_Record>.
- long type (void) const;
-
- /// Set the type of the <Log_Record>.
- void type (long);
-
- /**
- * Get the priority of the <Log_Record> <type_>. This is computed
- * as the base 2 logarithm of <type_> (which must be a power of 2,
- * as defined by the enums in <ACE_Log_Priority>).
- */
- u_long priority (void) const;
-
- /// Set the priority of the <Log_Record> <type_> (which must be a
- /// power of 2, as defined by the enums in <ACE_Log_Priority>).
- void priority (u_long num);
-
- /// Get the length of the <Log_Record>.
- long length (void) const;
-
- /// Set the length of the <Log_Record>.
- void length (long);
-
- /// Get the time stamp of the <Log_Record>.
- ACE_Time_Value time_stamp (void) const;
-
- /// Set the time stamp of the <Log_Record>.
- void time_stamp (const ACE_Time_Value &);
-
- /// Get the process id of the <Log_Record>.
- long pid (void) const;
-
- /// Set the process id of the <Log_Record>.
- void pid (long);
-
- /// Get the message data of the <Log_Record>.
- const ACE_TCHAR *msg_data (void) const;
-
- /// Set the message data of the <Log_Record>.
- void msg_data (const ACE_TCHAR *data);
-
- /// Get the size of the message data of the <Log_Record>, including
- /// a byte for the NUL.
- size_t msg_data_len (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Round up to the alignment restrictions.
- void round_up (void);
-
- /**
- * Total length of the logging record in bytes. This field *must*
- * come first in order for various IPC framing mechanisms to work
- * correctly. In addition, the field must be an ACE_INT32 in order
- * to be passed portably across platforms.
- */
- ACE_INT32 length_;
-
- /// Type of logging record.
- ACE_UINT32 type_;
-
- /// Time that the logging record was generated.
- ACE_UINT32 secs_;
- ACE_UINT32 usecs_;
-
- /// Id of process that generated the logging record.
- ACE_UINT32 pid_;
-
- /// Logging record data
- ACE_TCHAR msg_data_[MAXLOGMSGLEN + 1]; // Add one for NUL-terminator.
-
- /// Symbolic names for the <ACE_Log_Priority> enums.
- static const ACE_TCHAR *priority_names_[];
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Log_Record.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_LOG_RECORD_H */
diff --git a/ace/Log_Record.i b/ace/Log_Record.i
deleted file mode 100644
index a5ecf5c62bf..00000000000
--- a/ace/Log_Record.i
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Log_Record.i
-
-ASYS_INLINE
-ACE_Log_Record::~ACE_Log_Record (void)
-{
-}
-
-ASYS_INLINE void
-ACE_Log_Record::encode (void)
-{
- ACE_TRACE ("ACE_Log_Record::encode");
- this->length_ = htonl (this->length_);
- this->type_ = htonl (this->type_);
- // Make sure we don't enclose the sec() and usec() fields until
- // they've been normalized.
- this->secs_ = htonl (this->secs_);
- this->usecs_ = htonl (this->usecs_);
- this->pid_ = htonl (this->pid_);
-}
-
-ASYS_INLINE void
-ACE_Log_Record::decode (void)
-{
- ACE_TRACE ("ACE_Log_Record::decode");
- ACE_Time_Value tv (ntohl (this->secs_),
- ntohl (this->usecs_));
-
- this->secs_ = tv.sec ();
- this->usecs_ = tv.usec ();
- this->type_ = ntohl (this->type_);
- this->pid_ = ntohl (this->pid_);
- this->length_ = ntohl (this->length_);
-}
-
-ASYS_INLINE long
-ACE_Log_Record::type (void) const
-{
- ACE_TRACE ("ACE_Log_Record::type");
- return (long) this->type_;
-}
-
-ASYS_INLINE void
-ACE_Log_Record::type (long t)
-{
- ACE_TRACE ("ACE_Log_Record::type");
- this->type_ = (ACE_UINT32) t;
-}
-
-ASYS_INLINE long
-ACE_Log_Record::length (void) const
-{
- ACE_TRACE ("ACE_Log_Record::length");
- return (long) this->length_;
-}
-
-ASYS_INLINE void
-ACE_Log_Record::length (long l)
-{
- ACE_TRACE ("ACE_Log_Record::length");
- this->length_ = ACE_static_cast (ACE_UINT32, l);
-}
-
-ASYS_INLINE ACE_Time_Value
-ACE_Log_Record::time_stamp (void) const
-{
- ACE_TRACE ("ACE_Log_Record::time_stamp");
- return ACE_Time_Value ((long) this->secs_, (long) this->usecs_);
-}
-
-ASYS_INLINE void
-ACE_Log_Record::time_stamp (const ACE_Time_Value &ts)
-{
- ACE_TRACE ("ACE_Log_Record::time_stamp");
- this->secs_ = (ACE_UINT32) ts.sec ();
- this->usecs_ = (ACE_UINT32) ts.usec ();
-}
-
-ASYS_INLINE long
-ACE_Log_Record::pid (void) const
-{
- ACE_TRACE ("ACE_Log_Record::pid");
- return (long) this->pid_;
-}
-
-ASYS_INLINE void
-ACE_Log_Record::pid (long p)
-{
- ACE_TRACE ("ACE_Log_Record::pid");
- this->pid_ = (ACE_UINT32) p;
-}
-
-ASYS_INLINE const ACE_TCHAR *
-ACE_Log_Record::msg_data (void) const
-{
- ACE_TRACE ("ACE_Log_Record::msg_data");
- return this->msg_data_;
-}
-
-ASYS_INLINE size_t
-ACE_Log_Record::msg_data_len (void) const
-{
- ACE_TRACE ("ACE_Log_Record::msg_data_len");
- return ACE_OS::strlen (this->msg_data_) + 1;
-}
diff --git a/ace/Logging_Strategy.cpp b/ace/Logging_Strategy.cpp
deleted file mode 100644
index 9834c7ee5f3..00000000000
--- a/ace/Logging_Strategy.cpp
+++ /dev/null
@@ -1,518 +0,0 @@
-// $Id$
-
-#include "ace/ACE.h"
-#include "ace/Get_Opt.h"
-#include "ace/streams.h"
-#include "ace/Lib_Find.h"
-#include "ace/Log_Msg.h"
-#include "ace/Reactor.h"
-#include "ace/Logging_Strategy.h"
-
-ACE_RCSID(lib, Logging_Strategy, "$Id$")
-
-// Parse the string containing (thread) priorities and set them
-// accordingly.
-
-void
-ACE_Logging_Strategy::priorities (ACE_TCHAR *priority_string,
- ACE_Log_Msg::MASK_TYPE mask)
-{
- u_long priority_mask = 0;
-
- // Choose priority mask to change.
-
- if (mask == ACE_Log_Msg::PROCESS)
- priority_mask = process_priority_mask_;
- else
- priority_mask = thread_priority_mask_;
-
- ACE_TCHAR *strtokp;
-
- // Parse string and alternate priority mask.
-
- for (ACE_TCHAR *priority = ACE_OS_String::strtok_r (priority_string,
- ACE_LIB_TEXT ("|"),
- &strtokp);
- priority != 0;
- priority = ACE_OS_String::strtok_r (0,
- ACE_LIB_TEXT ("|"),
- &strtokp))
- {
- if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("SHUTDOWN")) == 0)
- ACE_SET_BITS (priority_mask, LM_SHUTDOWN);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("~SHUTDOWN")) == 0)
- ACE_CLR_BITS (priority_mask, LM_SHUTDOWN);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("TRACE")) == 0)
- ACE_SET_BITS (priority_mask, LM_TRACE);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("~TRACE")) == 0)
- ACE_CLR_BITS (priority_mask, LM_TRACE);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("DEBUG")) == 0)
- ACE_SET_BITS (priority_mask, LM_DEBUG);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("~DEBUG")) == 0)
- ACE_CLR_BITS (priority_mask, LM_DEBUG);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("INFO")) == 0)
- ACE_SET_BITS (priority_mask, LM_INFO);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("~INFO")) == 0)
- ACE_CLR_BITS (priority_mask, LM_INFO);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("NOTICE")) == 0)
- ACE_SET_BITS (priority_mask, LM_NOTICE);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("~NOTICE")) == 0)
- ACE_CLR_BITS (priority_mask, LM_NOTICE);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("WARNING")) == 0)
- ACE_SET_BITS (priority_mask, LM_WARNING);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("~WARNING")) == 0)
- ACE_CLR_BITS (priority_mask, LM_WARNING);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("STARTUP")) == 0)
- ACE_SET_BITS (priority_mask, LM_STARTUP);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("~STARTUP")) == 0)
- ACE_CLR_BITS (priority_mask, LM_STARTUP);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("ERROR")) == 0)
- ACE_SET_BITS (priority_mask, LM_ERROR);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("~ERROR")) == 0)
- ACE_CLR_BITS (priority_mask, LM_ERROR);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("CRITICAL")) == 0)
- ACE_SET_BITS (priority_mask, LM_CRITICAL);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("~CRITICAL")) == 0)
- ACE_CLR_BITS (priority_mask, LM_CRITICAL);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("ALERT")) == 0)
- ACE_SET_BITS (priority_mask, LM_ALERT);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("~ALERT")) == 0)
- ACE_CLR_BITS (priority_mask, LM_ALERT);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("EMERGENCY")) == 0)
- ACE_SET_BITS (priority_mask, LM_EMERGENCY);
- else if (ACE_OS::strcmp (priority, ACE_LIB_TEXT ("~EMERGENCY")) == 0)
- ACE_CLR_BITS (priority_mask, LM_EMERGENCY);
- }
-
- // Affect right priority mask.
-
- if (mask == ACE_Log_Msg::PROCESS)
- process_priority_mask_ = priority_mask;
- else
- thread_priority_mask_ = priority_mask;
-}
-
-// Parse the string containing all the flags and set the flags
-// accordingly.
-
-void
-ACE_Logging_Strategy::tokenize (ACE_TCHAR *flag_string)
-{
- ACE_TCHAR *strtokp;
-
- for (ACE_TCHAR *flag = ACE_OS::strtok_r (flag_string,
- ACE_LIB_TEXT ("|"),
- &strtokp);
- flag != 0;
- flag = ACE_OS::strtok_r (0, ACE_LIB_TEXT ("|"), &strtokp))
- {
- if (ACE_OS::strcmp (flag, ACE_LIB_TEXT ("STDERR")) == 0)
- ACE_SET_BITS (this->flags_, ACE_Log_Msg::STDERR);
- else if (ACE_OS::strcmp (flag, ACE_LIB_TEXT ("LOGGER")) == 0)
- ACE_SET_BITS (this->flags_, ACE_Log_Msg::LOGGER);
- else if (ACE_OS::strcmp (flag, ACE_LIB_TEXT ("OSTREAM")) == 0)
- ACE_SET_BITS (this->flags_, ACE_Log_Msg::OSTREAM);
- else if (ACE_OS::strcmp (flag, ACE_LIB_TEXT ("VERBOSE")) == 0)
- ACE_SET_BITS (this->flags_, ACE_Log_Msg::VERBOSE);
- else if (ACE_OS::strcmp (flag, ACE_LIB_TEXT ("VERBOSE_LITE")) == 0)
- ACE_SET_BITS (this->flags_, ACE_Log_Msg::VERBOSE_LITE);
- else if (ACE_OS::strcmp (flag, ACE_LIB_TEXT ("SILENT")) == 0)
- ACE_SET_BITS (this->flags_, ACE_Log_Msg::SILENT);
- else if (ACE_OS::strcmp (flag, ACE_LIB_TEXT ("SYSLOG")) == 0)
- ACE_SET_BITS (this->flags_, ACE_Log_Msg::SYSLOG);
- }
-}
-
-int
-ACE_Logging_Strategy::parse_args (int argc, ACE_TCHAR *argv[])
-{
- ACE_TRACE ("ACE_Logging_Strategy::parse_args");
- ACE_TCHAR *temp;
-
- // Perform data member initializations. BTW, do *not* initialize
- // <thread_priority_mask_> or <process_priority_mask_> here to avoid
- // unduing the behavior in <init>, where these are set by
- // <ACE_Log_Msg::instance>.
- this->flags_ = 0;
- this->wipeout_logfile_ = 0;
- this->count_ = 0;
- this->fixed_number_ = 0;
- this->order_files_ = 0;
- this->max_file_number_ = 1;
- this->interval_ = ACE_DEFAULT_LOGFILE_POLL_INTERVAL;
- this->max_size_ = 0;
-
- ACE_Get_Opt get_opt (argc, argv,
- ACE_LIB_TEXT ("f:i:k:m:n:N:op:s:t:w"), 0);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'f':
- temp = get_opt.opt_arg ();
- // Now tokenize the string to get all the flags
- this->tokenize (temp);
- // If LOGGER was specified, set up the default logger key.
- // The key can be changed by the -k option also, so if it's
- // been set already, don't set it.
- if (ACE_BIT_ENABLED (this->flags_, ACE_Log_Msg::LOGGER) &&
- this->logger_key_ == 0)
- this->logger_key_ = ACE::strnew (ACE_DEFAULT_LOGGER_KEY);
- break;
- case 'i':
- // Interval (in secs) at which logfile size is sampled.
- this->interval_ = ACE_OS::strtoul (get_opt.opt_arg (), 0, 10);
- break;
- case 'k':
- // Ensure that the LOGGER flag is set
- ACE_SET_BITS (this->flags_, ACE_Log_Msg::LOGGER);
- delete [] this->logger_key_;
- this->logger_key_ = ACE::strnew (get_opt.opt_arg ());
- break;
- case 'm':
- // Maximum logfile size (in KB). Must be a non-zero value.
- this->max_size_ = ACE_OS::strtoul (get_opt.opt_arg (), 0, 10);
- this->max_size_ <<= 10; // convert to KB
- break;
- case 'n':
- delete [] this->program_name_;
- this->program_name_ = ACE::strnew (get_opt.opt_arg ());
- break;
- case 'N':
- // The max number for the log_file being created
- this->max_file_number_ = ACE_OS::atoi (get_opt.opt_arg ()) - 1;
- this->fixed_number_ = 1;
- break;
- case 'o':
- // Log_files generation order
- this->order_files_ = 1;
- break;
- case 'p':
- temp = get_opt.opt_arg ();
- // Now tokenize the string to setup process log priority
- this->priorities (temp, ACE_Log_Msg::PROCESS);
- break;
- case 's':
- // Ensure that the OSTREAM flag is set
- ACE_SET_BITS (this->flags_, ACE_Log_Msg::OSTREAM);
- delete [] this->filename_;
- this->filename_ = ACE::strnew (get_opt.opt_arg ());
- break;
- case 't':
- temp = get_opt.opt_arg ();
- // Now tokenize the string to setup thread log priority
- this->priorities (temp, ACE_Log_Msg::THREAD);
- break;
- case 'w':
- // Cause the logfile to be wiped out, both on startup and on
- // reconfigure.
- this->wipeout_logfile_ = 1;
- break;
- default:
- break;
- }
- }
- return 0;
-}
-
-ACE_Logging_Strategy::ACE_Logging_Strategy (void)
- : log_msg_ (ACE_Log_Msg::instance ())
-{
-#if defined (ACE_DEFAULT_LOGFILE)
- this->filename_ = ACE::strnew (ACE_DEFAULT_LOGFILE);
-#else /* ACE_DEFAULT_LOGFILE */
- ACE_NEW (this->filename_,
- ACE_TCHAR[MAXPATHLEN + 1]);
-
- // Get the temporary directory
- if (ACE_Lib_Find::get_temp_dir
- (this->filename_,
- MAXPATHLEN - 7) == -1) // 7 for "logfile"
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Temporary path too long, ")
- ACE_LIB_TEXT ("defaulting to current directory\n")));
- this->filename_[0] = 0;
- }
-
- // Add the filename to the end
- ACE_OS::strcat (this->filename_,
- ACE_LIB_TEXT ("logfile"));
-#endif /* ACE_DEFAULT_LOGFILE */
- this->logger_key_ = 0;
- this->program_name_ = 0;
-}
-
-int
-ACE_Logging_Strategy::fini (void)
-{
- delete [] this->filename_;
- delete [] this->logger_key_;
- delete [] this->program_name_;
-
- if (this->interval_ > 0 && this->max_size_ > 0)
- this->reactor ()->cancel_timer (this);
-
- return 0;
-}
-
-int
-ACE_Logging_Strategy::init (int argc, ACE_TCHAR *argv[])
-{
- ACE_TRACE ("ACE_Logging_Strategy::init");
-
- // Store current priority masks for changes in <parse_args>.
-
- this->process_priority_mask_ =
- this->log_msg_->priority_mask (ACE_Log_Msg::PROCESS);
-
- this->thread_priority_mask_ =
- this->log_msg_->priority_mask (ACE_Log_Msg::THREAD);
-
- // Use the options hook to parse the command line arguments.
- this->parse_args (argc, argv);
-
- // Setup priorities (to original if not specified on command line)
-
- this->log_msg_->priority_mask (thread_priority_mask_,
- ACE_Log_Msg::THREAD);
-
- this->log_msg_->priority_mask (process_priority_mask_,
- ACE_Log_Msg::PROCESS);
-
- // Check if any flags were specified. If none were specified, let
- // the default behavior take effect.
- if (this->flags_ != 0)
- {
- // Clear all flags
- this->log_msg_->clr_flags (ACE_Log_Msg::STDERR
- | ACE_Log_Msg::LOGGER
- | ACE_Log_Msg::OSTREAM
- | ACE_Log_Msg::VERBOSE
- | ACE_Log_Msg::VERBOSE_LITE
- | ACE_Log_Msg::SILENT
- | ACE_Log_Msg::SYSLOG);
- // Check if OSTREAM bit is set
- if (ACE_BIT_ENABLED (this->flags_,
- ACE_Log_Msg::OSTREAM))
- {
-#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
- FILE *output_file = 0;
- if (wipeout_logfile_)
- output_file = ACE_OS::fopen (this->filename_, ACE_LIB_TEXT ("wt"));
- else
- output_file = ACE_OS::fopen (this->filename_, ACE_LIB_TEXT ("at"));
- if (output_file == 0)
- return -1;
-#else
- ofstream *output_file = 0;
- // Create a new ofstream to direct output to the file.
- if (wipeout_logfile_)
- ACE_NEW_RETURN
- (output_file,
- ofstream (ACE_TEXT_ALWAYS_CHAR (this->filename_)),
- -1);
- else
- ACE_NEW_RETURN
- (output_file,
- ofstream (ACE_TEXT_ALWAYS_CHAR (this->filename_),
- ios::app | ios::out),
- -1);
- if (output_file->rdstate () != ios::goodbit)
- {
- delete output_file;
- return -1;
- }
-#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
- // Set the <output_file> that'll be used by the rest of the
- // code.
- this->log_msg_->msg_ostream (output_file);
-
- // Setup a timeout handler to perform the maximum file size
- // check (if required).
- if (this->interval_ > 0 && this->max_size_ > 0)
- {
- if (this->reactor () == 0)
- // Use singleton.
- this->reactor (ACE_Reactor::instance ());
-
- this->reactor ()->schedule_timer
- (this, 0,
- ACE_Time_Value (this->interval_),
- ACE_Time_Value (this->interval_));
- }
- }
- // Now set the flags for Log_Msg
- this->log_msg_->set_flags (this->flags_);
- }
-
- return this->log_msg_->open (this->program_name_,
- this->log_msg_->flags (),
- this->logger_key_);
-}
-
-int
-ACE_Logging_Strategy::handle_timeout (const ACE_Time_Value &,
- const void *)
-{
-#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
- if ((size_t) ACE_OS::fseek (this->log_msg_->msg_ostream (),
- 0,
- SEEK_CUR) > this->max_size_)
-#else
- if ((size_t) this->log_msg_->msg_ostream ()->tellp ()
- > this->max_size_)
-#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
- {
- // Lock out any other logging.
- if (this->log_msg_->acquire ())
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Cannot acquire lock!\n")),
- -1);
-
- // Close the current ostream.
-#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
- FILE *output_file = (FILE *) this->log_msg_->msg_ostream ();
- ACE_OS::fclose (output_file);
- // We'll call msg_ostream() modifier later.
-#else
- ofstream *output_file =
- (ofstream *) this->log_msg_->msg_ostream ();
- output_file->close ();
-#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
- // Save current logfile to logfile.old analyze if it was set any
- // fixed number for the log_files.
- if (fixed_number_)
- {
- if (max_file_number_ < 1) //we only want one file
- {
- // Just unlink the file.
- ACE_OS::unlink (this->filename_);
-
- // Open a new log file with the same name.
-#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
- output_file = ACE_OS::fopen (this->filename_,
- ACE_LIB_TEXT ("wt"));
-
- if (output_file == 0)
- return -1;
-
- this->log_msg_->msg_ostream (output_file);
-#else
- output_file->open (ACE_TEXT_ALWAYS_CHAR (this->filename_),
- ios::out);
-#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
-
- // Release the lock previously acquired.
- this->log_msg_->release ();
- return 0;
- }
- }
- count_++;
-
- // Set the number of digits of the log_files labels.
- int digits = 1, res = count_;
- while((res = (res / 10))>0)
- digits++;
-
- if (ACE_OS::strlen (this->filename_) + digits <= MAXPATHLEN)
- {
- ACE_TCHAR backup[MAXPATHLEN+1];
-
- // analyse if it was chosen the mode which will order the
- // log_files
- if (order_files_)
- {
- ACE_TCHAR to_backup[MAXPATHLEN+1];
-
- // reorder the logs starting at the oldest (the biggest
- // number) watch if we reached max_file_number_.
- int max_num;
- if (fixed_number_ && count_ > max_file_number_)
- // count_ will always be bigger than max_file_number_,
- // so do nothing so to always reorder files from
- // max_file_number_.
- max_num = max_file_number_;
- else
- max_num = count_;
-
- for (int i = max_num ; i > 1 ;i--)
- {
- ACE_OS::sprintf (backup,
- ACE_LIB_TEXT ("%s.%d"),
- this->filename_,
- i);
- ACE_OS::sprintf (to_backup,
- ACE_LIB_TEXT ("%s.%d"),
- this->filename_,
- i - 1);
-
- // Remove any existing old file; ignore error as
- // file may not exist.
- ACE_OS::unlink (backup);
-
- // Rename the current log file to the name of the
- // backup log file.
- ACE_OS::rename (to_backup, backup);
- }
- ACE_OS::sprintf (backup,
- ACE_LIB_TEXT ("%s.1"),
- this->filename_);
- }
- else
- {
- if (fixed_number_ && count_>max_file_number_)
- count_ = 1; // start over from 1
-
- ACE_OS::sprintf (backup,
- ACE_LIB_TEXT ("%s.%d"),
- this->filename_,
- count_);
- }
-
- // Remove any existing old file; ignore error as file may
- // not exist.
- ACE_OS::unlink (backup);
-
- // Rename the current log file to the name of the backup log
- // file.
- ACE_OS::rename (this->filename_, backup);
- }
- else
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Backup file name too long; ")
- ACE_LIB_TEXT ("backup logfile not saved.\n")));
-
- // Open a new log file by the same name
-#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
- output_file = ACE_OS::fopen (this->filename_, ACE_LIB_TEXT ("wt"));
-
- if (output_file == 0)
- return -1;
-
- this->log_msg_->msg_ostream (output_file);
-#else
- output_file->open (ACE_TEXT_ALWAYS_CHAR (this->filename_),
- ios::out);
-#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
-
- // Release the lock previously acquired.
- this->log_msg_->release ();
- }
-
- return 0;
-}
-
-void
-ACE_Logging_Strategy::log_msg (ACE_Log_Msg *log_msg)
-{
- this->log_msg_ = log_msg;
-}
-
-// The following is a "Factory" used by the ACE_Service_Config and
-// svc.conf file to dynamically initialize the state of the
-// Logging_Strategy.
-
-ACE_FACTORY_DEFINE (ACE, ACE_Logging_Strategy)
-
diff --git a/ace/Logging_Strategy.h b/ace/Logging_Strategy.h
deleted file mode 100644
index a1f25f44730..00000000000
--- a/ace/Logging_Strategy.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Logging_Strategy.h
- *
- * $Id$
- *
- * @author Prashant Jain <pjain@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_LOGGING_STRATEGY_H
-#define ACE_LOGGING_STRATEGY_H
-
-#include "ace/Service_Object.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_DEFAULT_LOGFILE_POLL_INTERVAL)
-#define ACE_DEFAULT_LOGFILE_POLL_INTERVAL 600 /* Seconds */
-#endif /* ACE_DEFAULT_LOGFILE_POLL_INTERVAL */
-
-/**
- * @class ACE_Logging_Strategy
- *
- * @brief This class provides the hooks to control the output produced
- * by any of the network services.
- *
- * Depending upon when this service is invoked and with what
- * flags, the output of other network services can be
- * controlled. The output can be streamed to stderr, to a file,
- * to a logging daemon, or it can be set to be "silent".
- * If logging records are output to a file, the file can be set
- * to a maximum size and repeatedly split into new files. The
- * log file size can be limited at any logging point (i.e.,
- * application, client logging daemon, or server logging daemon)
- * by specifying the -i <sample_interval_in_secs> and -m
- * <max_size_in_KB> options for the Logging_Strategy class in a
- * svc.conf file.
- *
- * By default, two logfiles are generated. It's possible, however, to
- * generate as many logfiles as necessary to store all the
- * information. To achieve this, it is only necessary to indicate the
- * maximum size of the logfiles via the -m option and the process will
- * generate automatically the logfiles. You can control the total
- * number of logfiles created via the -n option.
- *
- * By using the -o option we can also choose the mode of organization
- * of the files, e.g., the first one is the normal used in Unix
- * systems (when cron rotates the logs it keeps the lowest number the
- * most recent one), the second is for increasing speed (we only
- * create a new log file, and don't rotate the others (fewer accesses
- * to disk)).
- */
-class ACE_Export ACE_Logging_Strategy : public ACE_Service_Object
-{
-public:
- /// Constructor.
- ACE_Logging_Strategy (void);
-
- /// Dynamic linking initialization hook.
- virtual int init (int argc, ACE_TCHAR *argv[]);
-
- /// Dynamic linking termination hook.
- virtual int fini (void);
-
- /**
- * Timeout handler which tests logfile size. If the current logfile
- * size exceeds <max_size_>, the current logfile is closed, saved to
- * logfile.old, and a new logfile is reopened.
- */
- virtual int handle_timeout (const ACE_Time_Value& tv,
- const void* arg);
-
- /**
- * Parse arguments provided in svc.conf file.
- * @arg '-f' Pass in the flags (such as OSTREAM, STDERR, LOGGER, VERBOSE,
- * SILENT, VERBOSE_LITE) used to control logging.
- * @arg '-i' The interval (in seconds) at which the logfile size is sampled
- * (default is 0, i.e., do not sample by default).
- * @arg '-k' Set the logging key.
- * @arg '-m' Maximum logfile size in Kbytes.
- * @arg '-n' Set the program name for the %n format specifier.
- * @arg '-N' The maximum number of logfiles that we want created.
- * @arg '-o' Specifies that we want the no standard logfiles ordering
- * (fastest processing in <handle_timeout>). Default is not to
- * order logfiles.
- * @arg '-p' Pass in the process-wide priorities to either enable (e.g.,
- * DEBUG, INFO, WARNING, NOTICE, ERROR, CRITICAL, ALERT,
- * EMERGENCY) or to disable (e.g., ~DEBUG, ~INFO, ~WARNING,
- * ~NOTICE, ~ERROR, ~CRITICAL, ~ALERT, ~EMERGENCY).
- * @arg '-s' Ensure that the OSTREAM flag is set.
- * @arg '-t' Pass in the thread-wide priorities to either enable (e.g.,
- * DEBUG, INFO, WARNING, NOTICE, ERROR, CRITICAL, ALERT,
- * EMERGENCY) or to disable (e.g., ~DEBUG, ~INFO, ~WARNING,
- * ~NOTICE, ~ERROR, ~CRITICAL, ~ALERT, ~EMERGENCY).
- * @arg '-w' Cause the logfile to be wiped out, both on startup and on
- * reconfiguration.
- */
- int parse_args (int argc, ACE_TCHAR *argv[]);
-
- void log_msg (ACE_Log_Msg *log_msg);
-
-protected:
- /// Tokenize to set all the flags
- void tokenize (ACE_TCHAR *flag_string);
-
- /// Tokenize to set priorities (either process or thread one).
- void priorities (ACE_TCHAR *priority_string,
- ACE_Log_Msg::MASK_TYPE mask);
-
- /// Current thread's priority mask set by <priorities>
- u_long thread_priority_mask_;
-
- /// Process-wide priority mask set by <priorities>
- u_long process_priority_mask_;
-
- /// Flags we keep track of.
- u_long flags_;
-
- /// File name we're logging to.
- ACE_TCHAR *filename_;
-
- /// Logger key for distributed logging.
- ACE_TCHAR *logger_key_;
-
- /// Program name to be used for %n format specifier.
- ACE_TCHAR *program_name_;
-
- /// If non-0 then wipeout the logfile, otherwise append to it.
- /// Default value is 0.
- int wipeout_logfile_;
-
- /// This tells us in what file we last wrote. It will be increased
- /// to enable multiple log files
- int count_;
-
- /// If non-0 we have a maximum number of log files we can write.
- /// Default value is 0, i.e., no maximum number.
- int fixed_number_;
-
- /// If non-0 we order the files as we rotate them. Default value
- /// is 0, i.e., we do not rotate files by default.
- int order_files_;
-
- /// Tells us what is the maximum log file to write. We will write
- /// <max_file_number_> + 1 files (includes the current log file).
- /// Default value is 1, i.e., 2 files by default.
- int max_file_number_;
-
- /// If non-zero, sampling interval (in secs) at which maximum logfile
- /// size is checked, otherwise logfile size can grow indefinitely.
- /// Default value is 0.
- u_long interval_;
-
- /// Maximum logfile size (in KB). Default value is
- /// <ACE_DEFAULT_MAX_LOGFILE_SIZE>.
- u_long max_size_;
-
- /// ACE_Log_Msg instance to work with
- ACE_Log_Msg *log_msg_;
-};
-
-ACE_FACTORY_DECLARE (ACE, ACE_Logging_Strategy)
-
-#endif /* ACE_LOGGING_STRATEGY_H */
diff --git a/ace/MEM_Acceptor.cpp b/ace/MEM_Acceptor.cpp
deleted file mode 100644
index 2fdd889f043..00000000000
--- a/ace/MEM_Acceptor.cpp
+++ /dev/null
@@ -1,241 +0,0 @@
-// MEM_Acceptor.cpp
-// $Id$
-
-#include "ace/MEM_Acceptor.h"
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/MEM_Acceptor.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID(ace, MEM_Acceptor, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_MEM_Acceptor)
-
-void
-ACE_MEM_Acceptor::dump (void) const
-{
- ACE_TRACE ("ACE_MEM_Acceptor::dump");
-}
-
-// Do nothing routine for constructor.
-
-ACE_MEM_Acceptor::ACE_MEM_Acceptor (void)
- : mmap_prefix_ (0),
- malloc_options_ (ACE_DEFAULT_BASE_ADDR, 0),
- preferred_strategy_ (ACE_MEM_IO::Reactive)
-{
- ACE_TRACE ("ACE_MEM_Acceptor::ACE_MEM_Acceptor");
-}
-
-ACE_MEM_Acceptor::~ACE_MEM_Acceptor (void)
-{
- ACE_TRACE ("ACE_MEM_Acceptor::~ACE_MEM_Acceptor");
- delete[] this->mmap_prefix_;
-}
-
-// General purpose routine for performing server ACE_SOCK creation.
-
-ACE_MEM_Acceptor::ACE_MEM_Acceptor (const ACE_MEM_Addr &remote_sap,
- int reuse_addr,
- int backlog,
- int protocol)
- : mmap_prefix_ (0),
- malloc_options_ (ACE_DEFAULT_BASE_ADDR, 0),
- preferred_strategy_ (ACE_MEM_IO::Reactive)
-{
- ACE_TRACE ("ACE_MEM_Acceptor::ACE_MEM_Acceptor");
- if (this->open (remote_sap,
- reuse_addr,
- backlog,
- protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_MEM_Acceptor::ACE_MEM_Acceptor")));
-}
-
-int
-ACE_MEM_Acceptor::open (const ACE_MEM_Addr &remote_sap,
- int reuse_addr,
- int back_log,
- int protocol)
-{
- ACE_TRACE ("ACE_MEM_Acceptor::open");
- return this->ACE_SOCK_Acceptor::open (remote_sap.get_local_addr (),
- reuse_addr,
- PF_INET,
- back_log,
- protocol);
-}
-
-// General purpose routine for accepting new connections.
-
-int
-ACE_MEM_Acceptor::accept (ACE_MEM_Stream &new_stream,
- ACE_MEM_Addr *remote_sap,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle)
-{
- ACE_TRACE ("ACE_MEM_Acceptor::accept");
-
- int *len_ptr = 0;
- sockaddr *addr = 0;
-
- int in_blocking_mode = 1;
- if (this->shared_accept_start (timeout,
- restart,
- in_blocking_mode) == -1)
- return -1;
- else
- {
- do
- new_stream.set_handle (ACE_OS::accept (this->get_handle (),
- addr,
- len_ptr));
- while (new_stream.get_handle () == ACE_INVALID_HANDLE
- && restart != 0
- && errno == EINTR
- && timeout == 0);
-
- if (remote_sap != 0)
- {
- ACE_INET_Addr temp (ACE_reinterpret_cast (sockaddr_in *, addr),
- *len_ptr);
- remote_sap->set_port_number(temp.get_port_number ());
- }
- }
-
- if (this->shared_accept_finish (new_stream,
- in_blocking_mode,
- reset_new_handle) == -1)
- return -1;
-
- // Allocate 2 * MAXPATHLEN so we can accomodate the unique
- // name that gets appended later
- ACE_TCHAR buf [2 * MAXPATHLEN + 1];
-
- ACE_INET_Addr local_addr;
- if (new_stream.get_local_addr (local_addr) == -1)
- return -1;
-
- if (this->mmap_prefix_ != 0)
- {
- ACE_OS::sprintf (buf,
- ACE_LIB_TEXT ("%s_%d_"),
- this->mmap_prefix_,
- local_addr.get_port_number ());
- }
- else
- {
- ACE_TCHAR name[25];
- // - 24 is so we can append name to the end.
- if (ACE_Lib_Find::get_temp_dir (buf, MAXPATHLEN - 24) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Temporary path too long, ")
- ACE_LIB_TEXT ("defaulting to current directory\n")));
- buf[0] = 0;
- }
-
- ACE_OS::sprintf (name,
- ACE_LIB_TEXT ("MEM_Acceptor_%d_"),
- local_addr.get_port_number ());
- ACE_OS::strcat (buf, name);
- }
- ACE_TCHAR unique [MAXPATHLEN];
- ACE_OS::unique_name (&new_stream, unique, MAXPATHLEN);
-
- ACE_OS::strcat (buf, unique);
-
- // Make sure we have a fresh start.
- ACE_OS::unlink (buf);
-
- new_stream.disable (ACE_NONBLOCK);
- ACE_HANDLE new_handle = new_stream.get_handle ();
-
- // Protocol negociation:
- // Tell the client side what level of signaling strategy
- // we support.
- ACE_INT16 client_signaling =
-#if defined (ACE_WIN32) || !defined (_ACE_USE_SV_SEM)
- this->preferred_strategy_;
-#else
- // We don't support MT.
- ACE_MEM_IO::Reactive;
-#endif /* ACE_WIN32 || !_ACE_USE_SV_SEM */
- if (ACE::send (new_handle, &client_signaling,
- sizeof (ACE_INT16)) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG,
- ACE_LIB_TEXT ("ACE_MEM_Acceptor::accept error sending strategy\n")),
- -1);
-
- // Now we get the signaling strategy the client support.
- if (ACE::recv (new_handle, &client_signaling,
- sizeof (ACE_INT16)) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG,
- ACE_LIB_TEXT ("ACE_MEM_Acceptor::%p error receiving strategy\n"), "accept"),
- -1);
-
- // Client will decide what signaling strategy to use.
-
- // Now set up the shared memory malloc pool.
- if (new_stream.init (buf, ACE_static_cast (ACE_MEM_IO::Signal_Strategy, client_signaling),
- &this->malloc_options_) == -1)
- return -1;
-
- // @@ Need to handle timeout here.
- ACE_UINT16 buf_len = ACE_static_cast (ACE_UINT16,
- (ACE_OS::strlen (buf) + 1) *
- sizeof (ACE_TCHAR));
-
- // No need to worry about byte-order because both parties should always
- // be on the same machine.
- if (ACE::send (new_handle, &buf_len, sizeof (ACE_UINT16)) == -1)
- return -1;
-
- // Now send the pathname of the mmap file.
- if (ACE::send (new_handle, buf, buf_len) == -1)
- return -1;
- return 0;
-}
-
-int
-ACE_MEM_Acceptor::shared_accept_finish (ACE_MEM_Stream new_stream,
- int in_blocking_mode,
- int reset_new_handle) const
-{
- ACE_TRACE ("ACE_MEM_Acceptor::shared_accept_finish ()");
-
- ACE_HANDLE new_handle = new_stream.get_handle ();
-
- // Check to see if we were originally in blocking mode, and if so,
- // set the <new_stream>'s handle and <this> handle to be in blocking
- // mode.
- if (in_blocking_mode)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
-
- // Only disable ACE_NONBLOCK if we weren't in non-blocking mode
- // originally.
- ACE_Flag_Manip::clr_flags (this->get_handle (),
- ACE_NONBLOCK);
- ACE_Flag_Manip::clr_flags (new_handle,
- ACE_NONBLOCK);
- }
-
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- if (reset_new_handle)
- // Reset the event association inherited by the new handle.
- ::WSAEventSelect ((SOCKET) new_handle, 0, 0);
-#else
- ACE_UNUSED_ARG (reset_new_handle);
-#endif /* ACE_WIN32 */
- if (new_handle == ACE_INVALID_HANDLE)
- return -1;
-
- return 0;
-}
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
diff --git a/ace/MEM_Acceptor.h b/ace/MEM_Acceptor.h
deleted file mode 100644
index 944cd25db93..00000000000
--- a/ace/MEM_Acceptor.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file MEM_Acceptor.h
- *
- * $Id$
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_MEM_ACCEPTOR_H
-#define ACE_MEM_ACCEPTOR_H
-#include "ace/pre.h"
-
-#include "ace/SOCK_Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-
-#include "ace/MEM_Stream.h"
-#include "ace/MEM_Addr.h"
-
-#if !defined (ACE_HAS_WINCE)
-#include "ace/OS_QoS.h"
-#endif // ACE_HAS_WINCE
-
-// Forward decl.
-class ACE_Reactor;
-
-/**
- * @class ACE_MEM_Acceptor
- *
- * @brief Defines the format and interface for the acceptor side of the
- * local mmap stream.
- *
- * This class should be modified to prevent user passing a
- * non-localhost endpoint as the acceptor listen point because
- * it doesn't make any sense at all to make the listening
- * endpoint visible (or connectable) anywhere outside of this
- * machine. However, the type of endpoint is left as <ACE_Addr>
- * so we can later changed to use UNIX sockets with mmap stream
- * if so desired. (Currently, using UNIX socket with this class
- * will not work.)
- */
-class ACE_Export ACE_MEM_Acceptor : public ACE_SOCK_Acceptor
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_MEM_Acceptor (void);
-
- /// destructor.
- ~ACE_MEM_Acceptor (void);
-
- /// Initiate a passive mode socket.
- ACE_MEM_Acceptor (const ACE_MEM_Addr &remote_sap,
- int reuse_addr = 0,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /**
- * Initialize a passive-mode BSD-style acceptor socket (no QoS).
- * <local_sap> is the address that we're going to listen for
- * connections on. If <reuse_addr> is 1 then we'll use the
- * <SO_REUSEADDR> to reuse this address. Returns 0 on success and
- * -1 on failure.
- */
- int open (const ACE_MEM_Addr &local_sap,
- int reuse_addr = 0,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /// Accept a new data transfer connection.
- int accept (ACE_MEM_Stream &new_ipc_sap,
- ACE_MEM_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0);
-
- /// Perform operations that must occur after <ACE_OS::accept> is
- /// called.
- int shared_accept_finish (ACE_MEM_Stream new_stream,
- int in_blocking_mode,
- int reset_new_handle) const;
-
- /**
- * Accessor/mutator of mmap filename prefix. By default, the
- * <mmap_prefix_> is not set and the mmap filename is
- * ${(TMP|TEMP)}//ACE_MEM_Acceptor_(port-number)_(&stream),
- * otherwise, it is <mmap_prefix_>_(port-number)_(&stream),
- * <mmap_prefix_> should include _absolute_ path so the connector
- * within the same host can located the mmap file. Example:
- * /tmp/mmapfile.
- */
- const ACE_TCHAR *mmap_prefix (void) const;
- void mmap_prefix (const ACE_TCHAR *prefix);
-
- /// Get the preferred signaling strategy.
- ACE_MEM_IO::Signal_Strategy preferred_strategy (void) const;
-
- /// Set the preferred signaling strategy.
- void preferred_strategy (ACE_MEM_IO::Signal_Strategy strategy);
-
- /// Return the local endpoint address in the referenced <ACE_Addr>.
- /// Returns 0 if successful, else -1.
- int get_local_addr (ACE_MEM_Addr &) const;
-
- /// Accessor to the mmap options.
- ACE_MEM_SAP::MALLOC_OPTIONS& malloc_options (void);
-
- // = Meta-type info
- typedef ACE_MEM_Addr PEER_ADDR;
- typedef ACE_MEM_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = The following methods should not be accessable externally
- // because MEM_Acceptor do not support their semantics.
- int open (const ACE_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = PF_INET,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- int open (const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int protocol_family,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- int accept (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
-
-#if !defined (ACE_HAS_WINCE)
- int accept (ACE_SOCK_Stream &new_stream,
- ACE_Accept_QoS_Params qos_params,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
-#endif // ACE_HAS_WINCE
-
-private:
- /// The filename prefix of the created mmap files. It should
- /// contains the absolute path name of the file.
- ACE_TCHAR *mmap_prefix_;
-
- /// A cached MALLOC_OPTIONS. MEM_Accaptor use it to create the shared
- /// mamory malloc upon every incoming connection.
- ACE_MEM_SAP::MALLOC_OPTIONS malloc_options_;
-
- /// Preferred signaling strategy.
- ACE_MEM_IO::Signal_Strategy preferred_strategy_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/MEM_Acceptor.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-
-#include "ace/post.h"
-#endif /* ACE_MEM_ACCEPTOR_H */
diff --git a/ace/MEM_Acceptor.i b/ace/MEM_Acceptor.i
deleted file mode 100644
index 38f952ec990..00000000000
--- a/ace/MEM_Acceptor.i
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// MEM_Acceptor.i
-
-ASYS_INLINE int
-ACE_MEM_Acceptor::open (const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- return this->ACE_SOCK_Acceptor::open
- (local_sap, protocolinfo, g, flags, reuse_addr, protocol_family,
- backlog, protocol);
-}
-
-ASYS_INLINE int
-ACE_MEM_Acceptor::accept (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle) const
-{
- return this->ACE_SOCK_Acceptor::accept
- (new_stream, remote_addr, timeout, restart, reset_new_handle);
-}
-
-#if !defined (ACE_HAS_WINCE)
-ASYS_INLINE int
-ACE_MEM_Acceptor::accept (ACE_SOCK_Stream &new_stream,
- ACE_Accept_QoS_Params qos_params,
- ACE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle) const
-{
- return this->ACE_SOCK_Acceptor::accept
- (new_stream, qos_params, remote_addr, timeout, restart, reset_new_handle);
-}
-#endif // ACE_HAS_WINCE
-
-ASYS_INLINE int
-ACE_MEM_Acceptor::get_local_addr (ACE_MEM_Addr &sap) const
-{
- ACE_INET_Addr temp;
-
- this->ACE_SOCK_Acceptor::get_local_addr (temp);
- sap.set_port_number (temp.get_port_number ());
- return 0;
-}
-
-ASYS_INLINE const ACE_TCHAR *
-ACE_MEM_Acceptor::mmap_prefix (void) const
-{
- return this->mmap_prefix_;
-}
-
-ASYS_INLINE void
-ACE_MEM_Acceptor::mmap_prefix (const ACE_TCHAR *prefix)
-{
- if (prefix == 0)
- {
- this->mmap_prefix_ = 0;
- }
- else
- {
- this->mmap_prefix_ = ACE::strnew (prefix);
- }
-}
-
-ASYS_INLINE ACE_MEM_IO::Signal_Strategy
-ACE_MEM_Acceptor::preferred_strategy (void) const
-{
- return this->preferred_strategy_;
-}
-
-ASYS_INLINE void
-ACE_MEM_Acceptor::preferred_strategy (ACE_MEM_IO::Signal_Strategy strategy)
-{
- this->preferred_strategy_ = strategy;
-}
-
-ASYS_INLINE ACE_MEM_SAP::MALLOC_OPTIONS &
-ACE_MEM_Acceptor::malloc_options (void)
-{
- return this->malloc_options_;
-}
diff --git a/ace/MEM_Addr.cpp b/ace/MEM_Addr.cpp
deleted file mode 100644
index a794b734409..00000000000
--- a/ace/MEM_Addr.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-// $Id$
-
-// Defines the Internet domain address family address format.
-
-#include "ace/MEM_Addr.h"
-#include "ace/Log_Msg.h"
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/MEM_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, MEM_Addr, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_MEM_Addr)
-
-// Transform the current address into string format.
-
-ACE_MEM_Addr::ACE_MEM_Addr (void)
- : ACE_Addr (AF_INET, sizeof (ACE_MEM_Addr))
-{
- // ACE_TRACE ("ACE_MEM_Addr::ACE_MEM_Addr");
- this->initialize_local (0);
-}
-
-ACE_MEM_Addr::ACE_MEM_Addr (const ACE_MEM_Addr &sa)
- : ACE_Addr (AF_INET, sizeof (ACE_MEM_Addr))
-{
- ACE_TRACE ("ACE_MEM_Addr::ACE_MEM_Addr");
- this->external_.set (sa.external_);
- this->internal_.set (sa.internal_);
-}
-
-ACE_MEM_Addr::ACE_MEM_Addr (const ACE_TCHAR port_number[])
- : ACE_Addr (AF_INET, sizeof (ACE_MEM_Addr))
-{
- ACE_TRACE ("ACE_MEM_Addr::ACE_MEM_Addr");
- u_short pn
- = ACE_static_cast (u_short,
- ACE_OS::strtoul (port_number,
- 0,
- 10));
- this->initialize_local (pn);
-}
-
-ACE_MEM_Addr::ACE_MEM_Addr (u_short port_number)
- : ACE_Addr (AF_INET, sizeof (ACE_MEM_Addr))
-{
- ACE_TRACE ("ACE_MEM_Addr::ACE_MEM_Addr");
- this->initialize_local (port_number);
-}
-
-int
-ACE_MEM_Addr::initialize_local (u_short port_number)
-{
- ACE_TCHAR name[MAXHOSTNAMELEN + 1];
- if (ACE_OS::hostname (name, MAXHOSTNAMELEN+1) == -1)
- return -1;
-
- this->external_.set (port_number, name);
- this->internal_.set (port_number, ACE_LIB_TEXT ("localhost"));
- return 0;
-}
-
-int
-ACE_MEM_Addr::same_host (const ACE_INET_Addr &sap)
-{
- ACE_TRACE ("ACE_MEM_Addr::same_host");
-
- ACE_UINT32 me = this->external_.get_ip_address ();
- ACE_UINT32 you = sap.get_ip_address ();
-
- return me == you;
-}
-
-int
-ACE_MEM_Addr::addr_to_string (ACE_TCHAR s[],
- size_t size,
- int ipaddr_format) const
-{
- ACE_TRACE ("ACE_MEM_Addr::addr_to_string");
-
- return this->external_.addr_to_string (s, size, ipaddr_format);
-}
-
-// Transform the string into the current addressing format.
-
-int
-ACE_MEM_Addr::string_to_addr (const ACE_TCHAR s[])
-{
- ACE_TRACE ("ACE_MEM_Addr::string_to_addr");
-
- u_short pn
- = ACE_static_cast (u_short,
- ACE_OS::strtoul (s,
- 0,
- 10));
- return this->set (pn);
-}
-
-// Return the address.
-
-void *
-ACE_MEM_Addr::get_addr (void) const
-{
- ACE_TRACE ("ACE_MEM_Addr::get_addr");
- return this->external_.get_addr ();
-}
-
-// Set a pointer to the address.
-void
-ACE_MEM_Addr::set_addr (void *addr, int len)
-{
- ACE_TRACE ("ACE_MEM_Addr::set_addr");
-
- this->external_.set_addr (addr, len);
- this->internal_.set_port_number (this->external_.get_port_number ());
-}
-
-int
-ACE_MEM_Addr::get_host_name (ACE_TCHAR hostname[],
- size_t len) const
-{
- ACE_TRACE ("ACE_MEM_Addr::get_host_name");
- return this->external_.get_host_name (hostname, len);
-}
-
-// Return the character representation of the hostname.
-
-const char *
-ACE_MEM_Addr::get_host_name (void) const
-{
- ACE_TRACE ("ACE_MEM_Addr::get_host_name");
- return this->external_.get_host_name ();
-}
-
-void
-ACE_MEM_Addr::dump (void) const
-{
- ACE_TRACE ("ACE_MEM_Addr::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->external_.dump ();
- this->internal_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
diff --git a/ace/MEM_Addr.h b/ace/MEM_Addr.h
deleted file mode 100644
index a2ae58d08ff..00000000000
--- a/ace/MEM_Addr.h
+++ /dev/null
@@ -1,153 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file MEM_Addr.h
- *
- * $Id$
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- */
-//==========================================================================
-
-
-#ifndef ACE_MEM_ADDR_H
-#define ACE_MEM_ADDR_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-
-#include "ace/INET_Addr.h"
-
-/**
- * @class ACE_MEM_Addr
- *
- * @brief Defines a C++ wrapper facade for the shared memory transport
- * address family format.
- */
-class ACE_Export ACE_MEM_Addr : public ACE_Addr
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_MEM_Addr (void);
-
- /// Copy constructor.
- ACE_MEM_Addr (const ACE_MEM_Addr &);
-
- /// Creates an <ACE_INET_Addr> from a <port_number> and the remote
- /// <host_name>.
- ACE_MEM_Addr (u_short port_number);
-
- /// Creates an <ACE_INET_Addr> from a <port_name>.
- ACE_EXPLICIT ACE_MEM_Addr (const ACE_TCHAR port_name[]);
-
- /// Default dtor.
- ~ACE_MEM_Addr (void);
-
- // = Direct initialization methods.
-
- /// default initialization routine.
- int initialize_local (u_short port);
-
- /// Check if <sap> designate an enpoint withing the same host.
- int same_host (const ACE_INET_Addr& sap);
-
- // These methods are useful after the object has been constructed.
-
- /**
- * Initializes an <ACE_INET_Addr> from a <port_number> and the
- * remote <host_name>. If <encode> is enabled then <port_number> is
- * converted into network byte order, otherwise it is assumed to be
- * in network byte order already and are passed straight through.
- */
- int set (u_short port_number,
- int encode = 1);
-
- /// Uses <getservbyname> to initialize an <ACE_INET_Addr> from a
- /// <port_name>, the remote <host_name>, and the <protocol>.
- int set (const ACE_TCHAR port_name[]);
-
- /// Return a pointer to the underlying network address.
- virtual void *get_addr (void) const;
-
- /// Set a pointer to the address.
- virtual void set_addr (void *, int len);
-
- /// Transform the external <ACE_INET_Addr> address into string
- /// format.
- virtual int addr_to_string (ACE_TCHAR buffer[],
- size_t size,
- int ipaddr_format = 1) const;
-
- /// Initializes the external <ACE_INET_Addr> from the <address>.
- virtual int string_to_addr (const ACE_TCHAR address[]);
-
- /// Sets the port number.
- void set_port_number (u_short,
- int encode = 1);
-
- /// Return the port number, converting it into host byte order.
- u_short get_port_number (void) const;
-
- /// Return the character representation of the hostname.
- int get_host_name (ACE_TCHAR hostname[],
- size_t hostnamelen) const;
-
- /**
- * Return the character representation of the hostname (this version
- * is non-reentrant since it returns a pointer to a static data
- * area).
- */
- const char *get_host_name (void) const;
-
- /// Return the "dotted decimal" external address.
- const char *get_host_addr (void) const;
-
- /// Return the 4-byte external IP address, converting it into host byte
- /// order.
- ACE_UINT32 get_ip_address (void) const;
-
- const ACE_INET_Addr &get_remote_addr (void) const;
- const ACE_INET_Addr &get_local_addr (void) const;
-
- /// Compare two addresses for equality. The addresses are considered
- /// equal if they contain the same IP address and port number.
- int operator == (const ACE_MEM_Addr &SAP) const;
- int operator == (const ACE_INET_Addr &SAP) const;
-
- /// Compare two addresses for inequality.
- int operator != (const ACE_MEM_Addr &SAP) const;
- int operator != (const ACE_INET_Addr &SAP) const;
-
- /// Computes and returns hash value.
- virtual u_long hash (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// External INET addr used for identifying host.
- ACE_INET_Addr external_;
-
- /// Internal INET addr for accepting/connecting.
- ACE_INET_Addr internal_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/MEM_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-
-#include "ace/post.h"
-#endif /* ACE_MEM_ADDR_H */
diff --git a/ace/MEM_Addr.i b/ace/MEM_Addr.i
deleted file mode 100644
index e2cb980a34b..00000000000
--- a/ace/MEM_Addr.i
+++ /dev/null
@@ -1,117 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// MEM_Addr.i
-
-// Default dtor.
-ACE_INLINE
-ACE_MEM_Addr::~ACE_MEM_Addr (void)
-{
-}
-
-// Set the port number.
-
-ACE_INLINE void
-ACE_MEM_Addr::set_port_number (u_short port_number,
- int encode)
-{
- ACE_TRACE ("ACE_MEM_Addr::set_port_number");
-
- this->external_.set_port_number (port_number, encode);
- this->internal_.set_port_number (port_number, encode);
-}
-
-ACE_INLINE int
-ACE_MEM_Addr::set (u_short port_number, int encode)
-{
- ACE_TRACE ("ACE_MEM_Addr::set");
- this->set_port_number (port_number, encode);
- return 0;
-}
-
-ACE_INLINE int
-ACE_MEM_Addr::set (const ACE_TCHAR port_number[])
-{
- ACE_TRACE ("ACE_MEM_Addr::set");
- return this->string_to_addr (port_number);
-}
-
-// Return the port number.
-
-ACE_INLINE u_short
-ACE_MEM_Addr::get_port_number (void) const
-{
- ACE_TRACE ("ACE_MEM_Addr::get_port_number");
- return this->internal_.get_port_number ();
-}
-
-// Return the dotted Internet address.
-
-ACE_INLINE const char *
-ACE_MEM_Addr::get_host_addr (void) const
-{
- ACE_TRACE ("ACE_MEM_Addr::get_host_addr");
- return this->internal_.get_host_addr ();
-}
-
-// Return the 4-byte IP address, converting it into host byte order.
-
-ACE_INLINE ACE_UINT32
-ACE_MEM_Addr::get_ip_address (void) const
-{
- ACE_TRACE ("ACE_MEM_Addr::get_ip_address");
- return this->external_.get_ip_address ();
-}
-
-ACE_INLINE const ACE_INET_Addr &
-ACE_MEM_Addr::get_local_addr (void) const
-{
- return this->internal_;
-}
-
-ACE_INLINE const ACE_INET_Addr &
-ACE_MEM_Addr::get_remote_addr (void) const
-{
- return this->external_;
-}
-
-// Compare two addresses for equality.
-
-ACE_INLINE int
-ACE_MEM_Addr::operator == (const ACE_MEM_Addr &sap) const
-{
- ACE_TRACE ("ACE_MEM_Addr::operator ==");
-
- return this->external_ == sap.external_ &&
- this->internal_ == sap.internal_;
-}
-
-ACE_INLINE int
-ACE_MEM_Addr::operator == (const ACE_INET_Addr &sap) const
-{
- ACE_TRACE ("ACE_MEM_Addr::operator ==");
-
- return this->external_ == sap;
-}
-
-// Compare two addresses for inequality.
-
-ACE_INLINE int
-ACE_MEM_Addr::operator != (const ACE_MEM_Addr &sap) const
-{
- ACE_TRACE ("ACE_MEM_Addr::operator !=");
- return !((*this) == sap);
-}
-
-ACE_INLINE int
-ACE_MEM_Addr::operator != (const ACE_INET_Addr &sap) const
-{
- ACE_TRACE ("ACE_MEM_Addr::operator !=");
- return !((*this) == sap);
-}
-
-ACE_INLINE u_long
-ACE_MEM_Addr::hash (void) const
-{
- return this->external_.hash ();
-}
diff --git a/ace/MEM_Connector.cpp b/ace/MEM_Connector.cpp
deleted file mode 100644
index 4dd5c0c35a1..00000000000
--- a/ace/MEM_Connector.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-// MEM_Connector.cpp
-// $Id$
-
-#include "ace/MEM_Connector.h"
-
-ACE_RCSID(ace, MEM_Connector, "$Id$")
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/MEM_Connector.i"
-#endif
-
-ACE_ALLOC_HOOK_DEFINE(ACE_MEM_Connector)
-
-void
-ACE_MEM_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_MEM_Connector::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_MEM_Connector::ACE_MEM_Connector (void)
- : malloc_options_ (ACE_DEFAULT_BASE_ADDR, 0),
- preferred_strategy_ (ACE_MEM_IO::Reactive)
-{
- ACE_TRACE ("ACE_MEM_Connector::ACE_MEM_Connector");
-}
-
-// Establish a connection.
-ACE_MEM_Connector::ACE_MEM_Connector (ACE_MEM_Stream &new_stream,
- const ACE_INET_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms)
- : malloc_options_ (ACE_DEFAULT_BASE_ADDR, 0),
- preferred_strategy_ (ACE_MEM_IO::Reactive)
-{
- ACE_TRACE ("ACE_MEM_Connector::ACE_MEM_Connector");
- // This is necessary due to the weird inheritance relationships of
- // ACE_MEM_Stream.
- this->connect (new_stream,
- remote_sap,
- timeout,
- local_sap,
- reuse_addr,
- flags,
- perms);
-}
-
-int
-ACE_MEM_Connector::connect (ACE_MEM_Stream &new_stream,
- const ACE_INET_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_MEM_Connector::connect");
-
- if (!this->address_.same_host (remote_sap))
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("(%P|%t) MEM_Connector can't connect ")
- ACE_LIB_TEXT ("to %s:%d which is not a local endpoint ")
- ACE_LIB_TEXT ("(local address is %s:%d)\n"),
- remote_sap.get_host_name (),
- remote_sap.get_port_number (),
- this->address_.get_host_name (),
- this->address_.get_port_number ()),
- -1);
- else
- this->address_.set_port_number (remote_sap.get_port_number ());
-
-
- ACE_SOCK_Stream temp_stream;
-
- if (ACE_SOCK_Connector::connect (temp_stream,
- this->address_.get_local_addr (),
- timeout, local_sap,
- reuse_addr, flags, perms) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_MEM_Connector::connect")),
- -1);
-
-
- ACE_HANDLE new_handle = temp_stream.get_handle ();
- new_stream.set_handle (new_handle);
- new_stream.disable (ACE_NONBLOCK);
- // Do not close the handle.
-
- // now we should setup the mmap malloc.
- ACE_TCHAR buf[MAXPATHLEN];
-
- // @@ Need to handle timeout here.
- ACE_INT16 server_strategy = ACE_MEM_IO::Reactive;
- // Receive the signaling strategy theserver support.
- if (ACE::recv (new_handle, &server_strategy,
- sizeof (ACE_INT16)) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG,
- ACE_LIB_TEXT ("ACE_MEM_Connector::connect error receiving strategy\n")),
- -1);
-
- // If either side don't support MT, we will not use it.
-#if defined (ACE_WIN32) || !defined (_ACE_USE_SV_SEM)
- if (! (this->preferred_strategy_ == ACE_MEM_IO::MT &&
- server_strategy == ACE_MEM_IO::MT))
-#endif /* ACE_WIN32 || !_ACE_USE_SV_SEM */
- server_strategy = ACE_MEM_IO::Reactive;
-
- if (ACE::send (new_handle, &server_strategy,
- sizeof (ACE_INT16)) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG,
- ACE_LIB_TEXT ("ACE_MEM_Connector::connect error sending strategy\n")),
- -1);
-
- ACE_INT16 buf_len;
- // Byte-order is not a problem for this read.
- if (ACE::recv (new_handle, &buf_len, sizeof (buf_len)) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG,
- ACE_LIB_TEXT ("ACE_MEM_Connector::connect error receiving shm filename length\n")),
- -1);
-
- if (ACE::recv (new_handle, buf, buf_len) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG,
- ACE_LIB_TEXT ("ACE_MEM_Connector::connect error receiving shm filename.\n")),
- -1);
-
- if (new_stream.init (buf, ACE_static_cast (ACE_MEM_IO::Signal_Strategy, server_strategy),
- &this->malloc_options_) == -1)
- return -1;
-
- return 0;
-}
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
diff --git a/ace/MEM_Connector.h b/ace/MEM_Connector.h
deleted file mode 100644
index de83e8732aa..00000000000
--- a/ace/MEM_Connector.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file MEM_Connector.h
- *
- * $Id$
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_MEM_CONNECTOR_H
-#define ACE_MEM_CONNECTOR_H
-#include "ace/pre.h"
-
-#include "ace/SOCK_Connector.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-
-#include "ace/MEM_Stream.h"
-#include "ace/MEM_Addr.h"
-
-/**
- * @class ACE_MEM_Connector
- *
- * @brief Defines the format and interface for connecting to a peer
- * on a @c ACE_MEM_Stream object.
- */
-class ACE_Export ACE_MEM_Connector : public ACE_SOCK_Connector
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_MEM_Connector (void);
-
- /**
- * Actively connect to a peer, producing a connected @c ACE_MEM_Stream
- * object if the connection succeeds.
- *
- * @param new_stream The @c ACE_MEM_Stream object that will be connected
- * to the peer.
- * @param remote_sap The address that we are trying to connect to.
- * The protocol family of @c remote_sap is used for
- * the connected socket. That is, if @c remote_sap
- * contains an IPv6 address, a socket with family
- * PF_INET6 will be used, else it will be PF_INET.
- * @note remote_sap must be an address on the local
- * host.
- * @param timeout Pointer to an @c ACE_Time_Value object with amount
- * of time to wait to connect. If the pointer is 0
- * then the call blocks until the connection attempt
- * is complete, whether it succeeds or fails. If
- * *timeout == {0, 0} then the connection is done
- * using nonblocking mode. In this case, if the
- * connection can't be made immediately, this method
- * returns -1 and errno == EWOULDBLOCK.
- * If *timeout > {0, 0} then this is the maximum amount
- * of time to wait before timing out; if the specified
- * amount of time passes before the connection is made,
- * this method returns -1 and errno == ETIME. Note
- * the difference between this case and when a blocking
- * connect is attmpted that TCP times out - in the latter
- * case, errno will be ETIMEDOUT.
- * @param local_sap (optional) The local address to bind to. If it's
- * the default value of @c ACE_Addr::sap_any then the
- * OS will choose an unused port.
- * @param reuse_addr (optional) If the value is 1, the local address
- * (@c local_sap) is reused, even if it hasn't been
- * cleaned up yet.
- * @param flags Ignored.
- * @param perms Ignored.
- */
- ACE_MEM_Connector (ACE_MEM_Stream &new_stream,
- const ACE_INET_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0);
-
- /**
- * Actively connect to a peer, producing a connected @c ACE_MEM_Stream
- * object if the connection succeeds.
- *
- * @param new_stream The @c ACE_MEM_Stream object that will be connected
- * to the peer.
- * @param remote_sap The address that we are trying to connect to.
- * The protocol family of @c remote_sap is used for
- * the connected socket. That is, if @c remote_sap
- * contains an IPv6 address, a socket with family
- * PF_INET6 will be used, else it will be PF_INET.
- * @note remote_sap must be an address on the local
- * host.
- * @param timeout Pointer to an @c ACE_Time_Value object with amount
- * of time to wait to connect. If the pointer is 0
- * then the call blocks until the connection attempt
- * is complete, whether it succeeds or fails. If
- * *timeout == {0, 0} then the connection is done
- * using nonblocking mode. In this case, if the
- * connection can't be made immediately, this method
- * returns -1 and errno == EWOULDBLOCK.
- * If *timeout > {0, 0} then this is the maximum amount
- * of time to wait before timing out; if the specified
- * amount of time passes before the connection is made,
- * this method returns -1 and errno == ETIME. Note
- * the difference between this case and when a blocking
- * connect is attmpted that TCP times out - in the latter
- * case, errno will be ETIMEDOUT.
- * @param local_sap (optional) The local address to bind to. If it's
- * the default value of @c ACE_Addr::sap_any then the
- * OS will choose an unused port.
- * @param reuse_addr (optional) If the value is 1, the local address
- * (@c local_sap) is reused, even if it hasn't been
- * cleaned up yet.
- * @param flags Ignored.
- * @param perms Ignored.
- *
- * @return Returns 0 if the connection succeeds. If it fails,
- * -1 is returned and errno contains a specific error
- * code.
- */
- int connect (ACE_MEM_Stream &new_stream,
- const ACE_INET_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0);
-
- /// Get the preferred signaling strategy.
- ACE_MEM_IO::Signal_Strategy preferred_strategy (void) const;
-
- /// Set the preferred signaling strategy.
- void preferred_strategy (ACE_MEM_IO::Signal_Strategy strategy);
-
- /// Accessor to underlying malloc options.
- ACE_MEM_SAP::MALLOC_OPTIONS &malloc_options (void);
-
- // = Meta-type info
- typedef ACE_INET_Addr PEER_ADDR;
- typedef ACE_MEM_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// The acceptor address this connector is connecting to.
- ACE_MEM_Addr address_;
-
- /// A cached MALLOC_OPTIONS that the MEM_Connector used to initialize
- /// the shared memory malloc update connection establishment.
- ACE_MEM_SAP::MALLOC_OPTIONS malloc_options_;
-
- /// Preferred signaling strategy.
- ACE_MEM_IO::Signal_Strategy preferred_strategy_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/MEM_Connector.i"
-#endif
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-
-#include "ace/post.h"
-#endif /* ACE_MEM_CONNECTOR_H */
diff --git a/ace/MEM_Connector.i b/ace/MEM_Connector.i
deleted file mode 100644
index 09e311d76a2..00000000000
--- a/ace/MEM_Connector.i
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// MEM_Connector.i
-
-// Establish a connection.
-
-ASYS_INLINE ACE_MEM_IO::Signal_Strategy
-ACE_MEM_Connector::preferred_strategy (void) const
-{
- return this->preferred_strategy_;
-}
-
-ASYS_INLINE void
-ACE_MEM_Connector::preferred_strategy (ACE_MEM_IO::Signal_Strategy strategy)
-{
- this->preferred_strategy_ = strategy;
-}
-
-ASYS_INLINE ACE_MEM_SAP::MALLOC_OPTIONS &
-ACE_MEM_Connector::malloc_options (void)
-{
- return this->malloc_options_;
-}
diff --git a/ace/MEM_IO.cpp b/ace/MEM_IO.cpp
deleted file mode 100644
index a745a1b3b9b..00000000000
--- a/ace/MEM_IO.cpp
+++ /dev/null
@@ -1,538 +0,0 @@
-// MEM_IO.cpp
-// $Id$
-
-#include "ace/MEM_IO.h"
-#include "ace/Handle_Set.h"
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/MEM_IO.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID(ace, MEM_IO, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_MEM_IO)
-
-ACE_Reactive_MEM_IO::~ACE_Reactive_MEM_IO ()
-{
-}
-
-int
-ACE_Reactive_MEM_IO::init (ACE_HANDLE handle,
- const ACE_TCHAR *name,
- MALLOC_OPTIONS *options)
-{
- ACE_TRACE ("ACE_Reactive_MEM_IO::init");
- this->handle_ = handle;
- return this->create_shm_malloc (name,
- options);
-}
-
-ssize_t
-ACE_Reactive_MEM_IO::recv_buf (ACE_MEM_SAP_Node *&buf,
- int flags,
- const ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Reactive_MEM_IO::recv_buf");
-
- if (this->shm_malloc_ == 0 || this->handle_ == ACE_INVALID_HANDLE)
- return -1;
-
- off_t new_offset = 0;
- ssize_t retv = ACE::recv (this->handle_,
- (char *) &new_offset,
- sizeof (off_t),
- flags,
- timeout);
-
- if (retv == 0)
- {
- // ACE_DEBUG ((LM_INFO, "MEM_Stream closed\n"));
- buf = 0;
- return 0;
- }
- else if (retv != sizeof (off_t))
- {
- // Nothing available or we are really screwed.
- buf = 0;
- return -1;
- }
-
- return this->get_buf_len (new_offset, buf);
-}
-
-ssize_t
-ACE_Reactive_MEM_IO::send_buf (ACE_MEM_SAP_Node *buf,
- int flags,
- const ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Reactive_MEM_IO::send_buf");
-
- if (this->shm_malloc_ == 0 || this->handle_ == ACE_INVALID_HANDLE)
- return -1;
-
- off_t offset = ACE_reinterpret_cast (char *, buf) -
- ACE_static_cast (char *, this->shm_malloc_->base_addr ());
- // the offset.
- // Send the offset value over the socket.
- if (ACE::send (this->handle_,
- (const char *) &offset,
- sizeof (offset),
- flags,
- timeout) != sizeof (offset))
- {
- // unsucessful send, release the memory in the shared-memory.
- this->release_buffer (buf);
-
- return -1;
- }
- return buf->size ();
-}
-
-#if defined (ACE_WIN32) || !defined (_ACE_USE_SV_SEM)
-int
-ACE_MT_MEM_IO::Simple_Queue::write (ACE_MEM_SAP_Node *new_node)
-{
- if (this->mq_ == 0)
- return -1;
-
- // Here, we assume we already have acquired the lock necessary.
- // And we are allowed to write.
- if (this->mq_->tail_.addr () == 0) // nothing in the queue.
- {
- this->mq_->head_ = new_node;
- this->mq_->tail_ = new_node;
- new_node->next_ = 0;
- }
- else
- {
- this->mq_->tail_->next_ = new_node;
- new_node->next_ = 0;
- this->mq_->tail_ = new_node;
- }
- return 0;
-}
-
-ACE_MEM_SAP_Node *
-ACE_MT_MEM_IO::Simple_Queue::read ()
-{
- if (this->mq_ == 0)
- return 0;
-
- ACE_MEM_SAP_Node *retv = 0;
-
- ACE_SEH_TRY
- {
- retv = this->mq_->head_;
- // Here, we assume we already have acquired the lock necessary
- // and there are soemthing in the queue.
- if (this->mq_->head_ == this->mq_->tail_)
- {
- // Last message in the queue.
- this->mq_->head_ = 0;
- this->mq_->tail_ = 0;
- }
- else
- this->mq_->head_ = retv->next_;
- }
- ACE_SEH_EXCEPT (this->malloc_->memory_pool ().seh_selector (GetExceptionInformation ()))
- {
- }
-
- return retv;
-}
-
-ACE_MT_MEM_IO::~ACE_MT_MEM_IO ()
-{
- delete this->recv_channel_.sema_;
- delete this->recv_channel_.lock_;
- delete this->send_channel_.sema_;
- delete this->send_channel_.lock_;
-}
-
-int
-ACE_MT_MEM_IO::init (ACE_HANDLE handle,
- const ACE_TCHAR *name,
- MALLOC_OPTIONS *options)
-{
- ACE_TRACE ("ACE_MT_MEM_IO::init");
- ACE_UNUSED_ARG (handle);
-
- // @@ Give me a rule on naming and how the queue should
- // be kept in the shared memory and we are done
- // with this.
- if (this->create_shm_malloc (name, options) == -1)
- return -1;
-
- ACE_TCHAR server_sema [MAXPATHLEN];
- ACE_TCHAR client_sema [MAXPATHLEN];
- ACE_TCHAR server_lock [MAXPATHLEN];
- ACE_TCHAR client_lock [MAXPATHLEN];
- const ACE_TCHAR *basename = ACE::basename (name);
- // size_t baselen = ACE_OS::strlen (basename);
-
- // Building names. @@ Check buffer overflow?
- ACE_OS::strcpy (server_sema, basename);
- ACE_OS::strcat (server_sema, ACE_LIB_TEXT ("_sema_to_server"));
- ACE_OS::strcpy (client_sema, basename);
- ACE_OS::strcat (client_sema, ACE_LIB_TEXT ("_sema_to_client"));
- ACE_OS::strcpy (server_lock, basename);
- ACE_OS::strcat (server_lock, ACE_LIB_TEXT ("_lock_to_server"));
- ACE_OS::strcpy (client_lock, basename);
- ACE_OS::strcat (client_lock, ACE_LIB_TEXT ("_lock_to_client"));
-
- void *to_server_ptr = 0;
- // @@ Here, we assume the shared memory fill will never be resued.
- // So we can determine whether we are server or client by examining
- // if the simple message queues have already been set up in
- // the Malloc object or not.
- if (this->shm_malloc_->find ("to_server", to_server_ptr) == -1)
- {
- void *ptr = 0;
- // We are server.
- ACE_ALLOCATOR_RETURN (ptr,
- this->shm_malloc_->malloc (2 * sizeof (MQ_Struct)),
- -1);
-
- MQ_Struct *mymq = ACE_reinterpret_cast (MQ_Struct *, ptr);
- mymq->tail_ = 0;
- mymq->head_ = 0;
- (mymq + 1)->tail_ = 0;
- (mymq + 1)->head_ = 0;
- if (this->shm_malloc_->bind ("to_server", mymq) == -1)
- return -1;
-
- if (this->shm_malloc_->bind ("to_client", mymq + 1) == -1)
- return -1;
-
- this->recv_channel_.queue_.init (mymq, this->shm_malloc_);
- ACE_NEW_RETURN (this->recv_channel_.sema_,
- ACE_SYNCH_PROCESS_SEMAPHORE (0, server_sema),
- -1);
- ACE_NEW_RETURN (this->recv_channel_.lock_,
- ACE_SYNCH_PROCESS_MUTEX (server_lock),
- -1);
-
- this->send_channel_.queue_.init (mymq + 1, this->shm_malloc_);
- ACE_NEW_RETURN (this->send_channel_.sema_,
- ACE_SYNCH_PROCESS_SEMAPHORE (0, client_sema),
- -1);
- ACE_NEW_RETURN (this->send_channel_.lock_,
- ACE_SYNCH_PROCESS_MUTEX (client_lock),
- -1);
- }
- else
- {
- // we are client.
- MQ_Struct *mymq = ACE_reinterpret_cast (MQ_Struct *, to_server_ptr);
- this->recv_channel_.queue_.init (mymq +1, this->shm_malloc_);
- ACE_NEW_RETURN (this->recv_channel_.sema_,
- ACE_SYNCH_PROCESS_SEMAPHORE (0, client_sema),
- -1);
- ACE_NEW_RETURN (this->recv_channel_.lock_,
- ACE_SYNCH_PROCESS_MUTEX (client_lock),
- -1);
-
- this->send_channel_.queue_.init (mymq, this->shm_malloc_);
- ACE_NEW_RETURN (this->send_channel_.sema_,
- ACE_SYNCH_PROCESS_SEMAPHORE (0, server_sema),
- -1);
- ACE_NEW_RETURN (this->send_channel_.lock_,
- ACE_SYNCH_PROCESS_MUTEX (server_lock),
- -1);
- }
- return 0;
-}
-
-ssize_t
-ACE_MT_MEM_IO::recv_buf (ACE_MEM_SAP_Node *&buf,
- int flags,
- const ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_MT_MEM_IO::recv_buf");
-
- // @@ Don't know how to handle timeout yet.
- ACE_UNUSED_ARG (timeout);
- ACE_UNUSED_ARG (flags);
-
- if (this->shm_malloc_ == 0)
- return -1;
-
- // Need to handle timeout here.
- if (this->recv_channel_.sema_->acquire () == -1)
- return -1;
-
- {
- // @@ We can probably skip the lock in certain circumstance.
- ACE_GUARD_RETURN (ACE_SYNCH_PROCESS_MUTEX, ace_mon, *this->recv_channel_.lock_, -1);
-
- buf = this->recv_channel_.queue_.read ();
- if (buf != 0)
- return buf->size ();
- return -1;
- }
-
- ACE_NOTREACHED (return 0;)
-}
-
-ssize_t
-ACE_MT_MEM_IO::send_buf (ACE_MEM_SAP_Node *buf,
- int flags,
- const ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_MT_MEM_IO::send_buf");
-
- // @@ Don't know how to handle timeout yet.
- ACE_UNUSED_ARG (timeout);
- ACE_UNUSED_ARG (flags);
-
- if (this->shm_malloc_ == 0)
- return -1;
-
- {
- // @@ We can probably skip the lock in certain curcumstances.
- ACE_GUARD_RETURN (ACE_SYNCH_PROCESS_MUTEX, ace_mon, *this->send_channel_.lock_, -1);
-
- if (this->send_channel_.queue_.write (buf) == -1)
- {
- this->release_buffer (buf);
- return -1;
- }
- }
-
- if (this->send_channel_.sema_->release () == -1)
- return -1;
-
- return buf->size ();
-}
-#endif /* ACE_WIN32 || !_ACE_USE_SV_SEM */
-
-void
-ACE_MEM_IO::dump (void) const
-{
- ACE_TRACE ("ACE_MEM_IO::dump");
-}
-
-int
-ACE_MEM_IO::init (const ACE_TCHAR *name,
- ACE_MEM_IO::Signal_Strategy type,
- ACE_MEM_SAP::MALLOC_OPTIONS *options)
-{
- ACE_UNUSED_ARG (type);
-
- delete this->deliver_strategy_;
- this->deliver_strategy_ = 0;
- switch (type)
- {
- case ACE_MEM_IO::Reactive:
- ACE_NEW_RETURN (this->deliver_strategy_,
- ACE_Reactive_MEM_IO (),
- -1);
- break;
-#if defined (ACE_WIN32) || !defined (_ACE_USE_SV_SEM)
- case ACE_MEM_IO::MT:
- ACE_NEW_RETURN (this->deliver_strategy_,
- ACE_MT_MEM_IO (),
- -1);
- break;
-#endif /* ACE_WIN32 || !_ACE_USE_SV_SEM */
- default:
- return -1;
- }
-
- return this->deliver_strategy_->init (this->get_handle (),
- name,
- options);
-}
-
-int
-ACE_MEM_IO::fini ()
-{
- if (this->deliver_strategy_ != 0)
- return this->deliver_strategy_->fini ();
- else
- return -1;
-}
-
-// Allows a client to read from a socket without having to provide
-// a buffer to read. This method determines how much data is in the
-// socket, allocates a buffer of this size, reads in the data, and
-// returns the number of bytes read.
-
-ssize_t
-ACE_MEM_IO::send (const ACE_Message_Block *message_block,
- const ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_MEM_IO::send");
-
- if (this->deliver_strategy_ == 0)
- return -1; // Something went seriously wrong.
-
- ssize_t len = message_block->total_length ();
-
- if (len != 0)
- {
- ACE_MEM_SAP_Node *buf =
- ACE_reinterpret_cast (ACE_MEM_SAP_Node *,
- this->deliver_strategy_->acquire_buffer (len));
- ssize_t n = 0;
- while (message_block != 0)
- {
- ACE_OS::memcpy (ACE_static_cast (char *, buf->data ()) + n,
- message_block->rd_ptr (),
- message_block->length ());
- n += message_block->length ();
-
- if (message_block->cont ())
- message_block = message_block->cont ();
- else
- message_block = message_block->next ();
- }
-
- buf->size_ = len;
-
- return this->deliver_strategy_->send_buf (buf,
- 0,
- timeout);
- }
- return 0;
-}
-
-
-#if 0
-ssize_t
-ACE_MEM_IO::recvv (iovec *io_vec,
- const ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_MEM_IO::recvv");
-#if defined (FIONREAD)
- ACE_Handle_Set handle_set;
- handle_set.reset ();
- handle_set.set_bit (this->get_handle ());
-
- io_vec->iov_base = 0;
-
- // Check the status of the current socket.
- switch (ACE_OS::select (int (this->get_handle ()) + 1,
- handle_set,
- 0, 0,
- timeout))
- {
- case -1:
- return -1;
- /* NOTREACHED */
- case 0:
- errno = ETIME;
- return -1;
- /* NOTREACHED */
- default:
- // Goes fine, fallthrough to get data
- break;
- }
-
- u_long inlen;
-
- if (ACE_OS::ioctl (this->get_handle (),
- FIONREAD,
- (u_long *) &inlen) == -1)
- return -1;
- else if (inlen > 0)
- {
- ACE_NEW_RETURN (io_vec->iov_base,
- char[inlen],
- -1);
- io_vec->iov_len = this->recv (io_vec->iov_base,
- inlen);
- return io_vec->iov_len;
- }
- else
- return 0;
-#else
- ACE_UNUSED_ARG (io_vec);
- ACE_UNUSED_ARG (timeout);
- ACE_NOTSUP_RETURN (-1);
-#endif /* FIONREAD */
-}
-
-// Send N char *ptrs and int lengths. Note that the char *'s precede
-// the ints (basically, an varargs version of writev). The count N is
-// the *total* number of trailing arguments, *not* a couple of the
-// number of tuple pairs!
-
-ssize_t
-ACE_MEM_IO::send (size_t n, ...) const
-{
- ACE_TRACE ("ACE_MEM_IO::send");
-
- va_list argp;
- size_t total_tuples = n / 2;
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (size_t i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, ssize_t);
- }
-
- ssize_t result = ACE_OS::sendv (this->get_handle (),
- iovp,
- total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
-}
-
-// This is basically an interface to ACE_OS::readv, that doesn't use
-// the struct iovec_Base explicitly. The ... can be passed as an arbitrary
-// number of (char *ptr, int len) tuples. However, the count N is the
-// *total* number of trailing arguments, *not* a couple of the number
-// of tuple pairs!
-
-ssize_t
-ACE_MEM_IO::recv (size_t n, ...) const
-{
- ACE_TRACE ("ACE_MEM_IO::recv");
-
- va_list argp;
- size_t total_tuples = n / 2;
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (size_t i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, ssize_t);
- }
-
- ssize_t result = ACE_OS::recvv (this->get_handle (),
- iovp,
- total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
-}
-#endif /* 0 */
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
diff --git a/ace/MEM_IO.h b/ace/MEM_IO.h
deleted file mode 100644
index 0b9fa7c4be6..00000000000
--- a/ace/MEM_IO.h
+++ /dev/null
@@ -1,301 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file MEM_IO.h
- *
- * $Id$
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_MEM_IO_H
-#define ACE_MEM_IO_H
-#include "ace/pre.h"
-
-#include "ace/SOCK.h"
-#include "ace/MEM_SAP.h"
-#include "ace/Memory_Pool.h"
-#include "ace/Message_Block.h"
-#include "ace/Process_Semaphore.h"
-#include "ace/Process_Mutex.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-
-class ACE_Export ACE_Reactive_MEM_IO : public ACE_MEM_SAP
-{
-public:
- ACE_Reactive_MEM_IO (void);
-
- virtual ~ACE_Reactive_MEM_IO (void);
-
- /**
- * Initialize the MEM_SAP object.
- */
- virtual int init (ACE_HANDLE handle,
- const ACE_TCHAR *name,
- MALLOC_OPTIONS *options);
-
- /**
- * Fetch location of next available data into <recv_buffer_>.
- * As this operation read the address of the data off the socket
- * using ACE::recv, <timeout> only applies to ACE::recv.
- */
- virtual ssize_t recv_buf (ACE_MEM_SAP_Node *&buf,
- int flags,
- const ACE_Time_Value *timeout);
-
- /**
- * Wait to to <timeout> amount of time to send <buf>. If <send>
- * times out a -1 is returned with <errno == ETIME>. If it succeeds
- * the number of bytes sent is returned. */
- virtual ssize_t send_buf (ACE_MEM_SAP_Node *buf,
- int flags,
- const ACE_Time_Value *timeout);
-
- /**
- * Convert the buffer offset <off> to absolute address to <buf>.
- * Return the size of valid information containing in the <buf>,
- * -1 if <shm_malloc_> is not initialized.
- */
- ssize_t get_buf_len (const off_t off, ACE_MEM_SAP_Node *&buf);
-};
-
-#if defined (ACE_WIN32) || !defined (_ACE_USE_SV_SEM)
-class ACE_Export ACE_MT_MEM_IO : public ACE_MEM_SAP
-{
-public:
- typedef struct
- {
- ACE_MEM_SAP_Node::ACE_MEM_SAP_NODE_PTR head_;
- ACE_MEM_SAP_Node::ACE_MEM_SAP_NODE_PTR tail_;
- } MQ_Struct; // Structure for a simple queue
-
- class Simple_Queue
- {
- public:
- ACE_INLINE_FOR_GNUC Simple_Queue (void);
- Simple_Queue (MQ_Struct *mq);
-
- int init (MQ_Struct *mq, ACE_MEM_SAP::MALLOC_TYPE *malloc);
-
- int write (ACE_MEM_SAP_Node *new_msg);
-
- ACE_MEM_SAP_Node *read (void);
- private:
- MQ_Struct *mq_;
- ACE_MEM_SAP::MALLOC_TYPE *malloc_;
- };
-
- typedef struct
- {
- ACE_SYNCH_PROCESS_SEMAPHORE *sema_;
- ACE_SYNCH_PROCESS_MUTEX *lock_;
- Simple_Queue queue_;
- } Channel;
-
- ACE_MT_MEM_IO (void);
-
- virtual ~ACE_MT_MEM_IO (void);
-
- /**
- * Initialize the MEM_SAP object.
- */
- virtual int init (ACE_HANDLE handle,
- const ACE_TCHAR *name,
- MALLOC_OPTIONS *options);
-
- /**
- * Fetch location of next available data into <recv_buffer_>.
- * As this operation read the address of the data off the socket
- * using ACE::recv, <timeout> only applies to ACE::recv.
- */
- virtual ssize_t recv_buf (ACE_MEM_SAP_Node *&buf,
- int flags,
- const ACE_Time_Value *timeout);
-
- /**
- * Wait to to <timeout> amount of time to send <buf>. If <send>
- * times out a -1 is returned with <errno == ETIME>. If it succeeds
- * the number of bytes sent is returned. */
- virtual ssize_t send_buf (ACE_MEM_SAP_Node *buf,
- int flags,
- const ACE_Time_Value *timeout);
-
-private:
- Channel recv_channel_;
- Channel send_channel_;
-};
-#endif /* ACE_WIN32 || !_ACE_USE_SV_SEM */
-
-/**
- * @class ACE_MEM_IO
- *
- * @brief Defines the methods for the ACE shared memeory wrapper I/O
- * routines (e.g., send/recv).
- * The shared memory transport uses ACE_SOCK_* class to
- * implement the signaling mechanism so we can easily use the
- * new mechanism with the Reactor pattern (which uses select
- * under the hood.)
- * ACE_MEM_Acceptor and ACE_MEM_Connector are used to establish
- * connections. When a connection is established,
- * ACE_MEM_Acceptor creates the MMAP file for data exchange and
- * sends the location of the file (complete path name) to
- * ACE_MEM_Connector thru the socket. ACE_MEM_Connector then
- * reads the location of the file off the socket and opens up
- * the same MMAP file. ACE_MEM_Stream at each side then
- * contains a reference to the ACE_Mallo object using the same
- * MMAP file.
- * When sending information using methods provided in this
- * class, ACE_MEM_IO requests a chunk of memory from the
- * MALLOC_TYPE object, copy the data into the shared memory and
- * send the memory offset (from the start of the ACE_Malloc)
- * across the socket. This action also servers as a signal to
- * the other end. The receiving side then reverses the
- * procedures and copies the information into user buffer.
- */
-class ACE_Export ACE_MEM_IO : public ACE_SOCK
-{
-public:
- // = Initialization and termination methods.
- /// Constructor.
- ACE_MEM_IO (void);
-
- /// Destructor.
- ~ACE_MEM_IO (void);
-
- typedef enum
- {
- Reactive,
- MT
- } Signal_Strategy;
-
- /**
- * Initialize the MEM_SAP object.
- */
- int init (const ACE_TCHAR *name,
- ACE_MEM_IO::Signal_Strategy type = ACE_MEM_IO::Reactive,
- ACE_MEM_SAP::MALLOC_OPTIONS *options = 0);
-
- /**
- * Finalizing the MEM_IO object. This method doesn't invoke
- * the <remove> method.
- */
- int fini (void);
-
- /// Send an <n> byte buffer to the other process using shm_malloc_
- /// connected thru the socket.
- ssize_t send (const void *buf,
- size_t n,
- int flags) ;
-
- /// Recv an <n> byte buffer from the shm_malloc_ thru connected socket.
- ssize_t recv (void *buf,
- size_t n,
- int flags) ;
-
- /// Send an <n> byte buffer to the other process using shm_malloc_
- /// connected thru the socket.
- ssize_t send (const void *buf,
- size_t n) ;
-
- /// Recv an <n> byte buffer from the shm_malloc_ thru connected socket.
- ssize_t recv (void *buf,
- size_t n) ;
-
- /**
- * Wait to to <timeout> amount of time to send up to <n> bytes into
- * <buf> from <handle> (uses the <send> call). If <send> times out
- * a -1 is returned with <errno == ETIME>. If it succeeds the
- * number of bytes sent is returned.
- */
- ssize_t send (const void *buf,
- size_t n,
- const ACE_Time_Value *timeout);
-
- /**
- * Wait to to <timeout> amount of time to send up to <n> bytes into
- * <buf> from <handle> (uses the <send> call). If <send> times out
- * a -1 is returned with <errno == ETIME>. If it succeeds the
- * number of bytes sent is returned.
- */
- ssize_t send (const void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout);
-
- /**
- * Wait to to <timeout> amount of time to send the <message_block>.
- * If <send> times out a -1 is returned with <errno == ETIME>. If
- * it succeeds the number of bytes sent is returned.
- */
- ssize_t send (const ACE_Message_Block *message_block,
- const ACE_Time_Value *timeout);
-
- /**
- * Wait up to <timeout> amount of time to receive up to <n> bytes
- * into <buf> from <handle> (uses the <recv> call). If <recv> times
- * out a -1 is returned with <errno == ETIME>. If it succeeds the
- * number of bytes received is returned.
- */
- ssize_t recv (void *buf,
- size_t n,
- const ACE_Time_Value *timeout);
-
- /**
- * Wait up to <timeout> amount of time to receive up to <n> bytes
- * into <buf> from <handle> (uses the <recv> call). If <recv> times
- * out a -1 is returned with <errno == ETIME>. If it succeeds the
- * number of bytes received is returned.
- */
- ssize_t recv (void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout);
-
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /// Return the local endpoint port number. Returns 0 if successful,
- /// else -1.
- /* int get_local_port (u_short &) const;
-
- /// Return the port number of the remotely connected peer (if there
- /// is one). Returns 0 if successful, else -1.
- int get_remote_port (u_short &) const;
- */
-
-private:
- ssize_t fetch_recv_buf (int flag, const ACE_Time_Value *timeout);
-
- /// Actual deliverying mechanism.
- ACE_MEM_SAP *deliver_strategy_;
-
- /// Internal pointer for support recv/send.
- ACE_MEM_SAP_Node *recv_buffer_;
-
- /// Record the current total buffer size of <recv_buffer_>.
- ssize_t buf_size_;
-
- /// Record the current read pointer location in <recv_buffer_>.
- ssize_t cur_offset_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/MEM_IO.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-
-#include "ace/post.h"
-#endif /* ACE_SOCK_IO_H */
diff --git a/ace/MEM_IO.i b/ace/MEM_IO.i
deleted file mode 100644
index 796121a6c6e..00000000000
--- a/ace/MEM_IO.i
+++ /dev/null
@@ -1,230 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// MEM_IO.i
-
-ASYS_INLINE
-ACE_Reactive_MEM_IO::ACE_Reactive_MEM_IO ()
-{
-}
-
-#if defined (ACE_WIN32) || !defined (_ACE_USE_SV_SEM)
-ASYS_INLINE
-ACE_MT_MEM_IO::Simple_Queue::Simple_Queue (void)
- : mq_ (0),
- malloc_ (0)
-{
-}
-
-ASYS_INLINE
-ACE_MT_MEM_IO::ACE_MT_MEM_IO ()
-{
- this->recv_channel_.sema_ = 0;
- this->recv_channel_.lock_ = 0;
- this->send_channel_.sema_ = 0;
- this->send_channel_.lock_ = 0;
-}
-
-ASYS_INLINE
-ACE_MT_MEM_IO::Simple_Queue::Simple_Queue (MQ_Struct *mq)
- : mq_ (mq),
- malloc_ (0)
-{
-}
-
-ASYS_INLINE int
-ACE_MT_MEM_IO::Simple_Queue::init (MQ_Struct *mq,
- ACE_MEM_SAP::MALLOC_TYPE *malloc)
-{
- if (this->mq_ != 0)
- return -1;
-
- this->mq_ = mq;
- this->malloc_ = malloc;
- return 0;
-}
-#endif /* ACE_WIN32 || !_ACE_USE_SV_SEM */
-
-ASYS_INLINE ssize_t
-ACE_Reactive_MEM_IO::get_buf_len (const off_t off, ACE_MEM_SAP_Node *&buf)
-{
-#if !defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- ACE_TRACE ("ACE_Reactive_MEM_IO::get_buf_len");
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-
- if (this->shm_malloc_ == 0)
- return -1;
-
- ssize_t retv = 0;
-
- ACE_SEH_TRY
- {
- buf = ACE_reinterpret_cast (ACE_MEM_SAP_Node *,
- (ACE_static_cast(char *,
- this->shm_malloc_->base_addr ())
- + off));
- retv = buf->size ();
- }
- ACE_SEH_EXCEPT (this->shm_malloc_->memory_pool ().seh_selector (GetExceptionInformation ()))
- {
- }
-
- return retv;
-}
-
-// Send an n byte message to the connected socket.
-ASYS_INLINE
-ACE_MEM_IO::ACE_MEM_IO (void)
- : deliver_strategy_ (0),
- recv_buffer_ (0),
- buf_size_ (0),
- cur_offset_ (0)
-{
- // ACE_TRACE ("ACE_MEM_IO::ACE_MEM_IO");
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_IO::fetch_recv_buf (int flag, const ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_MEM_IO::fetch_recv_buf");
-
- if (this->deliver_strategy_ == 0)
- return -1;
-
- // This method can only be called when <buf_size_> == <cur_offset_>.
- ACE_ASSERT (this->buf_size_ == this->cur_offset_);
-
- // We have done using the previous buffer, return it to malloc.
- if (this->recv_buffer_ != 0)
- this->deliver_strategy_->release_buffer (this->recv_buffer_);
-
- this->cur_offset_ = 0;
- int retv = 0;
-
- if ((retv = this->deliver_strategy_->recv_buf (this->recv_buffer_,
- flag,
- timeout)) > 0)
- this->buf_size_ = retv;
- else
- this->buf_size_ = 0;
-
- return retv;
-}
-
-ASYS_INLINE
-ACE_MEM_IO::~ACE_MEM_IO (void)
-{
- delete this->deliver_strategy_;
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_IO::send (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_MEM_IO::send");
- if (this->deliver_strategy_ == 0)
- return 0;
-
- ACE_MEM_SAP_Node *sbuf = this->deliver_strategy_->acquire_buffer (len);
- if (sbuf == 0)
- return -1; // Memory buffer not initialized.
- ACE_OS::memcpy (sbuf->data (), buf, len);
-
- ///
-
- sbuf->size_ = len;
-
- return this->deliver_strategy_->send_buf (sbuf,
- flags,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_IO::recv (void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_MEM_IO::recv");
-
- size_t count = 0;
-
-// while (len > 0)
-// {
- size_t buf_len = this->buf_size_ - this->cur_offset_;
- if (buf_len == 0)
- {
- ssize_t blen = // Buffer length
- this->fetch_recv_buf (flags, timeout);
- if (blen <= 0)
- return blen;
- buf_len = this->buf_size_;
- }
-
- size_t length = (len > buf_len ? buf_len : len);
-
- ACE_OS::memcpy ((char *) buf + count,
- (char *) this->recv_buffer_->data () + this->cur_offset_,
- length);
- this->cur_offset_ += length;
-// len -= length;
- count += length;
-// }
-
- return count;
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_IO::send (const void *buf, size_t n, int flags)
-{
- ACE_TRACE ("ACE_MEM_IO::send");
- return this->send (buf, n, flags, 0);
-}
-
-// Recv an n byte message from the connected socket.
-
-ASYS_INLINE ssize_t
-ACE_MEM_IO::recv (void *buf, size_t n, int flags)
-{
- ACE_TRACE ("ACE_MEM_IO::recv");
- return this->recv (buf, n, flags, 0);
-}
-
-// Send an n byte message to the connected socket.
-
-ASYS_INLINE ssize_t
-ACE_MEM_IO::send (const void *buf, size_t n)
-{
- ACE_TRACE ("ACE_MEM_IO::send");
- return this->send (buf, n, 0);
-}
-
-// Recv an n byte message from the connected socket.
-
-ASYS_INLINE ssize_t
-ACE_MEM_IO::recv (void *buf, size_t n)
-{
- ACE_TRACE ("ACE_MEM_IO::recv");
-
- return this->recv (buf, n, 0);
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_IO::recv (void *buf,
- size_t len,
- const ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_MEM_IO::recv");
- return this->recv (buf, len, 0, timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_IO::send (const void *buf,
- size_t len,
- const ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_MEM_IO::send");
- return this->send (buf, len, 0, timeout);
-}
diff --git a/ace/MEM_SAP.cpp b/ace/MEM_SAP.cpp
deleted file mode 100644
index 1ee429f57c9..00000000000
--- a/ace/MEM_SAP.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-// $Id$
-
-#include "ace/MEM_SAP.h"
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/MEM_SAP.i"
-#endif
-
-ACE_RCSID(ace, MEM_SAP, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_IPC_SAP)
-
-void
-ACE_MEM_SAP::dump (void) const
-{
- ACE_TRACE ("ACE_MEM_SAP::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- if (this->shm_malloc_ != 0)
- this->shm_malloc_->dump ();
- else
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_MEM_SAP uninitialized.\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_MEM_SAP::ACE_MEM_SAP (void)
- : handle_ (ACE_INVALID_HANDLE),
- shm_malloc_ (0)
-{
- // ACE_TRACE ("ACE_MEM_SAP::ACE_MEM_SAP");
-}
-
-int
-ACE_MEM_SAP::fini ()
-{
- ACE_TRACE ("ACE_MEM_SAP::fini");
-
- return this->close_shm_malloc ();
-}
-
-int
-ACE_MEM_SAP::create_shm_malloc (const ACE_TCHAR *name,
- MALLOC_OPTIONS *options)
-{
- ACE_TRACE ("ACE_MEM_SAP::create_shm_malloc");
-
- if (this->shm_malloc_ != 0)
- return -1; // already initialized.
-
- ACE_NEW_RETURN (this->shm_malloc_,
- MALLOC_TYPE (name,
- 0,
- options),
- -1);
-
- if (this->shm_malloc_->bad () != 0)
- {
- this->shm_malloc_->remove (); // Cleanup OS resources
- delete this->shm_malloc_;
- this->shm_malloc_ = 0;
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_MEM_SAP::close_shm_malloc (void)
-{
- ACE_TRACE ("ACE_MEM_SAP::close_shm_malloc");
-
- int retv = -1;
-
- if (this->shm_malloc_ != 0)
- this->shm_malloc_->release (1);
-
- delete this->shm_malloc_;
- this->shm_malloc_ = 0;
-
- return retv;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Write_Guard<ACE_Process_Mutex>;
-template class ACE_Read_Guard<ACE_Process_Mutex>;
-template class ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_Process_Mutex, ACE_PI_Control_Block>;
-template class ACE_Based_Pointer<ACE_MEM_SAP_Node>;
-template class ACE_Based_Pointer_Basic<ACE_MEM_SAP_Node>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Write_Guard<ACE_Process_Mutex>
-#pragma instantiate ACE_Read_Guard<ACE_Process_Mutex>
-#pragma instantiate ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_Process_Mutex, ACE_PI_Control_Block>
-#pragma instantiate ACE_Based_Pointer<ACE_MEM_SAP_Node>
-#pragma instantiate ACE_Based_Pointer_Basic<ACE_MEM_SAP_Node>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
diff --git a/ace/MEM_SAP.h b/ace/MEM_SAP.h
deleted file mode 100644
index bd423cf6d7e..00000000000
--- a/ace/MEM_SAP.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file MEM_SAP.h
- *
- * $Id$
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_MEM_SAP_H
-#define ACE_MEM_SAP_H
-#include "ace/pre.h"
-
-#include "ace/PI_Malloc.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// MEM_SAP requries position independent pointers to work
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-
-#include "ace/Process_Mutex.h"
-
-class ACE_MEM_SAP;
-class ACE_Reactive_MEM_IO;
-class ACE_MT_MEM_IO;
-class ACE_MEM_IO;
-
-// Internal data structure
-// MEM_SAP uses to queue up
-// data.
-class ACE_Export ACE_MEM_SAP_Node
-{
-public:
-// friend class ACE_MEM_SAP;
-// friend class ACE_Reactive_MEM_IO;
-// friend class ACE_MT_MEM_IO;
-// friend class ACE_MEM_IO;
-
- typedef ACE_Based_Pointer<ACE_MEM_SAP_Node> ACE_MEM_SAP_NODE_PTR;
-
- /// Initialize the node with its capacity.
- ACE_MEM_SAP_Node (size_t cap);
-
- /// Get the size of the data we hold.
- size_t size (void) const;
-
- /// Get the capacity of this block of data.
- size_t capacity (void) const;
-
- /// Get the pointer to the block of data we hold.
- void *data (void);
-
- /// The maximum size of this memory block.
- size_t capacity_;
-
- /// The actualy size used.
- size_t size_;
-
- ACE_MEM_SAP_NODE_PTR next_;
-};
-
-/**
- * @class ACE_MEM_SAP
- *
- * @brief Defines the methods of shared memory management for
- * shared memory transport.
- */
-class ACE_Export ACE_MEM_SAP
-{
-public:
- // = Initialization and termination methods.
-
- typedef ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_Process_Mutex, ACE_PI_Control_Block> MALLOC_TYPE;
- typedef ACE_MMAP_Memory_Pool_Options MALLOC_OPTIONS;
-
- /// Destructor.
- virtual ~ACE_MEM_SAP (void);
-
- /**
- * Initialize the MEM_SAP object.
- */
- virtual int init (ACE_HANDLE handle,
- const ACE_TCHAR *name,
- MALLOC_OPTIONS *options) = 0;
-
- /**
- * Finalizing the MEM_SAP object. This method doesn't invoke
- * the <remove> method.
- */
- virtual int fini ();
-
- /**
- * Fetch location of next available data into <recv_buffer_>.
- * As this operation read the address of the data off the socket
- * using ACE::recv, <timeout> only applies to ACE::recv.
- */
- virtual ssize_t recv_buf (ACE_MEM_SAP_Node *&buf,
- int flags,
- const ACE_Time_Value *timeout) = 0;
-
- /**
- * Wait to to <timeout> amount of time to send <buf>. If <send>
- * times out a -1 is returned with <errno == ETIME>. If it succeeds
- * the number of bytes sent is returned. */
- virtual ssize_t send_buf (ACE_MEM_SAP_Node *buf,
- int flags,
- const ACE_Time_Value *timeout) = 0;
-
- /// request a buffer of size <size>. Return 0 if the <shm_malloc_> is
- /// not initialized.
- ACE_MEM_SAP_Node *acquire_buffer (const ssize_t size);
-
- /// release a buffer pointed by <buf>. Return -1 if the <shm_malloc_>
- /// is not initialized.
- int release_buffer (ACE_MEM_SAP_Node *buf);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Class initializing methods to create/connect to a shared memory pool.
-
- /**
- * Create a new shm_malloc object. Return 0 if succeed and -1
- * otherwise. This method should only be called from an acceptor
- * class that wants to create a new memory pool for inter process
- * communication.
- */
- int create_shm_malloc (const ACE_TCHAR *name,
- MALLOC_OPTIONS *options);
-
- /// Close down the share memory pool. Clean up the
- /// mmap file if we are the last one using it.
- int close_shm_malloc (void);
-
- ACE_HANDLE handle_;
-
- /// Data exchange channel.
- MALLOC_TYPE *shm_malloc_;
-
- /// Constructor. Prevent this class from being instantiated.
- ACE_MEM_SAP (void);
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/MEM_SAP.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-
-#include "ace/post.h"
-#endif /* ACE_SOCK_IO_H */
diff --git a/ace/MEM_SAP.i b/ace/MEM_SAP.i
deleted file mode 100644
index b6a800df06b..00000000000
--- a/ace/MEM_SAP.i
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// MEM_SAP.i
-
-
-ASYS_INLINE
-ACE_MEM_SAP_Node::ACE_MEM_SAP_Node (size_t cap)
- : capacity_ (cap),
- size_ (0),
- next_ (0)
-{
-}
-
-ASYS_INLINE size_t
-ACE_MEM_SAP_Node::size (void) const
-{
- return this->size_;
-}
-
-ASYS_INLINE size_t
-ACE_MEM_SAP_Node::capacity (void) const
-{
- return this->capacity_;
-}
-
-ASYS_INLINE void *
-ACE_MEM_SAP_Node::data (void)
-{
- return this + 1;
-}
-
-ASYS_INLINE
-ACE_MEM_SAP::~ACE_MEM_SAP (void)
-{
- // ACE_TRACE ("ACE_MEM_SAP::~ACE_MEM_SAP");
- delete this->shm_malloc_;
-}
-
-
-ASYS_INLINE ACE_MEM_SAP_Node *
-ACE_MEM_SAP::acquire_buffer (const ssize_t size)
-{
- ACE_TRACE ("ACE_MEM_SAP::acquire_buffer");
- if (this->shm_malloc_ == 0)
- return 0; // not initialized.
-
- ACE_MEM_SAP_Node *buf = 0;
-
- ACE_NEW_MALLOC_RETURN (buf,
- ACE_static_cast (ACE_MEM_SAP_Node *,
- this->shm_malloc_->malloc (sizeof (ACE_MEM_SAP_Node) + size)),
- ACE_MEM_SAP_Node (size),
- 0);
- return buf;
-}
-
-ASYS_INLINE int
-ACE_MEM_SAP::release_buffer (ACE_MEM_SAP_Node *buf)
-{
- ACE_TRACE ("ACE_MEM_SAP::release_buffer");
- if (this->shm_malloc_ == 0)
- return -1; // not initialized.
-
- this->shm_malloc_->free (buf);
- return 0;
-}
diff --git a/ace/MEM_Stream.cpp b/ace/MEM_Stream.cpp
deleted file mode 100644
index 79b37e21838..00000000000
--- a/ace/MEM_Stream.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-// MEM_Stream.cpp
-// $Id$
-
-#include "ace/MEM_Stream.h"
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/MEM_Stream.i"
-#endif
-
-ACE_RCSID(ace, MEM_Stream, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_MEM_Stream)
-
-void
-ACE_MEM_Stream::dump (void) const
-{
- ACE_TRACE ("ACE_MEM_Stream::dump");
-}
-
-int
-ACE_MEM_Stream::close (void)
-{
- this->send ((char *)0, 0);
-
- this->fini ();
-
-#if defined (ACE_WIN32)
- // We need the following call to make things work correctly on
- // Win32, which requires use to do a <close_writer> before doing the
- // close in order to avoid losing data. Note that we don't need to
- // do this on UNIX since it doesn't have this "feature". Moreover,
- // this will cause subtle problems on UNIX due to the way that
- // fork() works.
- this->close_writer ();
-#endif /* ACE_WIN32 */
- // Close down the socket.
- return ACE_SOCK::close ();
-}
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
diff --git a/ace/MEM_Stream.h b/ace/MEM_Stream.h
deleted file mode 100644
index 24cfbce2733..00000000000
--- a/ace/MEM_Stream.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file MEM_Stream.h
- *
- * $Id$
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_MEM_STREAM_H
-#define ACE_MEM_STREAM_H
-#include "ace/pre.h"
-
-#include "ace/MEM_IO.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-
-#include "ace/INET_Addr.h"
-
-class ACE_MEM_Acceptor;
-class ACE_MEM_Connector;
-
-/**
- * @class ACE_MEM_Stream
- *
- * @brief Defines the methods in the <ACE_MEM_Stream> abstraction.
- *
- * This adds additional wrapper methods atop the <ACE_MEM_IO>
- * class.
- */
-class ACE_Export ACE_MEM_Stream : public ACE_MEM_IO
-{
-public:
-
- friend class ACE_MEM_Acceptor;
- friend class ACE_MEM_Connector;
-
- // Initialization and termination methods.
- /// Constructor.
- ACE_MEM_Stream (void);
-
- /// Constructor (sets the underlying <ACE_HANDLE> with <h>).
- ACE_MEM_Stream (ACE_HANDLE h);
-
- /// Destructor.
- ~ACE_MEM_Stream (void);
-
- //= The following two methods use write and read system calls.
- /// Send n bytes, keep trying until n are sent.
- /// Recv n bytes, keep trying until n are received.
- ssize_t send_n (const void *buf, int n);
- ssize_t recv_n (void *buf, int n);
-
- // = The following two methods use the send and recv system calls.
- /// Send n bytes, keep trying until n are sent.
- /// Recv n bytes, keep trying until n are received.
- ssize_t send_n (const void *buf, int n, int flags);
- ssize_t recv_n (void *buf, int n, int flags);
-
-#if 0
- /**
- * Try to send exactly <len> bytes into <buf> from <handle> (uses
- * the <send> call). If <send> blocks for longer than <timeout> the
- * number of bytes actually sent is returned with <errno == ETIME>.
- * If a timeout does not occur, <send_n> return <len> (i.e., the
- * number of bytes requested to be sent).
- */
- ssize_t send_n (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout);
-
- /**
- * Try to recv exactly <len> bytes into <buf> from <handle> (uses
- * the <ACE::recv_n> call). The <ACE_Time_Value> indicates how long
- * to blocking trying to receive. If <timeout> == 0, the caller
- * will block until action is possible, else will wait until the
- * relative time specified in *<timeout> elapses). If <recv> blocks
- * for longer than <timeout> the number of bytes actually read is
- * returned with <errno == ETIME>. If a timeout does not occur,
- * <recv_n> return <len> (i.e., the number of bytes requested to be
- * read).
- */
- ssize_t recv_n (void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout);
-
- /**
- * Send an <iovec> of size <n> to the connected socket (uses
- * <ACE::sendv_n>). Will block until all bytes are sent or an error
- * occurs.
- */
- ssize_t sendv_n (const iovec iov[],
- size_t n) const;
-
- /// Receive an <iovec> of size <n> to the connected socket.
- ssize_t recvv_n (iovec iov[],
- size_t n) const;
-#endif /* 0 */
-
- // = Selectively close endpoints.
-
- /// Close down the reader.
- int close_reader (void);
-
- /// Close down the writer.
- int close_writer (void);
-
- /**
- * Close down the socket (we need this to make things work correctly
- * on Win32, which requires use to do a <close_writer> before doing
- * the close to avoid losing data).
- */
- int close (void);
-
- // = Meta-type info
- typedef ACE_Addr PEER_ADDR;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/MEM_Stream.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-
-#include "ace/post.h"
-#endif /* ACE_MEM_STREAM_H */
diff --git a/ace/MEM_Stream.i b/ace/MEM_Stream.i
deleted file mode 100644
index 07f68fafdd0..00000000000
--- a/ace/MEM_Stream.i
+++ /dev/null
@@ -1,176 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// MEM_Stream.i
-
-#include "ace/MEM_Stream.h"
-
-ASYS_INLINE
-ACE_MEM_Stream::ACE_MEM_Stream (void)
-{
- // ACE_TRACE ("ACE_MEM_Stream::ACE_MEM_Stream");
-}
-
-ASYS_INLINE
-ACE_MEM_Stream::ACE_MEM_Stream (ACE_HANDLE h)
-{
- // ACE_TRACE ("ACE_MEM_Stream::ACE_MEM_Stream");
- this->set_handle (h);
-}
-
-ASYS_INLINE
-ACE_MEM_Stream::~ACE_MEM_Stream (void)
-{
- // ACE_TRACE ("ACE_MEM_Stream::~ACE_MEM_Stream");
-}
-
-ASYS_INLINE int
-ACE_MEM_Stream::close_reader (void)
-{
- ACE_TRACE ("ACE_MEM_Stream::close_reader");
- if (this->get_handle () != ACE_INVALID_HANDLE)
- return ACE_OS::shutdown (this->get_handle (), ACE_SHUTDOWN_READ);
- else
- return 0;
-}
-
-// Shut down just the writing end of a ACE_SOCK.
-
-ASYS_INLINE int
-ACE_MEM_Stream::close_writer (void)
-{
- ACE_TRACE ("ACE_MEM_Stream::close_writer");
- if (this->get_handle () != ACE_INVALID_HANDLE)
- return ACE_OS::shutdown (this->get_handle (), ACE_SHUTDOWN_WRITE);
- else
- return 0;
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_Stream::send_n (const void *buf, int n)
-{
- return this->send (buf, n);
-}
-
-
-ASYS_INLINE ssize_t
-ACE_MEM_Stream::recv_n (void *buf, int n)
-{
- return this->recv (buf, n);
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_Stream::send_n (const void *buf, int n, int flags)
-{
- return this->send (buf, n, flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_Stream::recv_n (void *buf, int n, int flags)
-{
- return this->recv (buf, n, flags);
-}
-
-#if 0
-ASYS_INLINE ssize_t
-ACE_MEM_Stream::recv_n (void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::recv_n");
- return ACE::recv_n (this->get_handle (),
- buf,
- len,
- flags,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_Stream::recv_n (void *buf,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::recv_n");
- return ACE::recv_n (this->get_handle (),
- buf,
- len,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_Stream::recvv_n (iovec iov[],
- size_t n,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::recvv_n");
- return ACE::recvv_n (this->get_handle (),
- iov,
- n,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_Stream::send_n (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::send_n");
- return ACE::send_n (this->get_handle (),
- buf,
- len,
- flags,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_Stream::send_n (const void *buf,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::send_n");
- return ACE::send_n (this->get_handle (),
- buf,
- len,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_Stream::sendv_n (iovec iov[],
- size_t n,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::sendv_n");
- return ACE::sendv_n (this->get_handle (),
- iov,
- n,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_Stream::send_urg (const void *ptr,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::send_urg");
- return ACE::send (this->get_handle (),
- ptr,
- len,
- MSG_OOB,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_MEM_Stream::recv_urg (void *ptr,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::recv_urg");
- return ACE::recv (this->get_handle (),
- ptr,
- len,
- MSG_OOB,
- timeout);
-}
-#endif /* 0 */
diff --git a/ace/Makefile b/ace/Makefile
deleted file mode 100644
index 2a28860237a..00000000000
--- a/ace/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE library
-#----------------------------------------------------------------------------
-
-# This default rule is here so invoking make realclean will do
-# work when recursing through subdirectories
-.DEFAULT:
- @$(MAKE) -f Makefile.ace $@
- @$(MAKE) -f Makefile.dirs SUBDIR_MAKEFILE=Makefile $@
-
-# Invoke Makefile.ace first to build libACE, and then
-# invoke Makefile.dirs to recurse through subdirectories
-all:
- @$(MAKE) -f Makefile.ace
- @$(MAKE) -f Makefile.dirs SUBDIR_MAKEFILE=Makefile
diff --git a/ace/Makefile.ace b/ace/Makefile.ace
deleted file mode 100644
index 494c09a5c7c..00000000000
--- a/ace/Makefile.ace
+++ /dev/null
@@ -1,16756 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE library
-#----------------------------------------------------------------------------
-
-MAKEFILE = Makefile.ace
-LIBACE = libACE
-LIB = $(LIBACE).a
-SHLIB = $(LIBACE).$(SOEXT)
-
-OS_FILES = \
- ARGV \
- Argv_Type_Converter \
- Basic_Types \
- Time_Value \
- OS \
- OS_Dirent \
- OS_Memory \
- OS_QoS \
- OS_String \
- OS_TLI \
- OS_Errno \
- Base_Thread_Adapter \
- OS_Thread_Adapter \
- OS_Log_Msg_Attributes \
- Thread_Hook \
- Sched_Params \
- Handle_Set \
- Copy_Disabled
-UTILS_FILES = \
- ACE \
- Active_Map_Manager \
- Arg_Shifter \
- Capabilities \
- Containers \
- Configuration \
- Configuration_Import_Export \
- Dirent \
- Dirent_Selector \
- Dynamic \
- Flag_Manip \
- Framework_Component \
- Functor \
- Get_Opt \
- Hash_Map_Manager \
- Connection_Recycling_Strategy \
- Hashable \
- Notification_Strategy \
- Recyclable \
- Refcountable \
- Handle_Ops \
- Init_ACE \
- Lib_Find \
- Message_Block \
- Method_Request \
- Object_Manager \
- Registry \
- String_Base_Const \
- SString \
- Stats \
- Sample_History
- #### NOTE: see below for Filecache.
-LOGGING_FILES = \
- Dump \
- Log_Msg \
- Log_Msg_Callback \
- Log_Msg_Backend \
- Log_Msg_IPC \
- Log_Msg_NT_Event_Log \
- Log_Msg_UNIX_Syslog \
- Log_Record \
- Logging_Strategy \
- Trace
-THREADS_FILES = \
- Activation_Queue \
- Atomic_Op \
- Process \
- Process_Manager \
- Synch \
- Synch_Options \
- Process_Semaphore \
- Process_Mutex \
- RW_Process_Mutex \
- File_Lock \
- Thread \
- Thread_Manager \
- Thread_Adapter \
- Thread_Exit \
- Thread_Control \
- Token
-DEMUX_FILES = \
- Event_Handler \
- FlReactor \
- Msg_WFMO_Reactor \
- POSIX_Proactor \
- POSIX_CB_Proactor \
- WIN32_Proactor \
- Priority_Reactor \
- Proactor \
- Reactor \
- Select_Reactor \
- Select_Reactor_Base \
- SUN_Proactor \
- Dev_Poll_Reactor \
- TP_Reactor \
- TkReactor \
- WFMO_Reactor \
- XtReactor \
- QtReactor
-CONNECTION_FILES = \
- Asynch_IO \
- Asynch_IO_Impl \
- Asynch_Pseudo_Task \
- POSIX_Asynch_IO \
- WIN32_Asynch_IO
-SOCKETS_FILES = \
- Addr \
- INET_Addr \
- IPC_SAP \
- LSOCK \
- LSOCK_Acceptor \
- LSOCK_CODgram \
- LSOCK_Connector \
- LSOCK_Dgram \
- LSOCK_Stream \
- SOCK \
- SOCK_Acceptor \
- SOCK_CODgram \
- Sock_Connect \
- SOCK_Connector \
- SOCK_Dgram \
- SOCK_Dgram_Bcast \
- SOCK_Dgram_Mcast \
- SOCK_IO \
- SOCK_Stream
-IPC_FILES = \
- ATM_Addr \
- ATM_Acceptor \
- ATM_Connector \
- ATM_Params \
- ATM_QoS \
- ATM_Stream \
- XTI_ATM_Mcast \
- DEV \
- DEV_Addr \
- DEV_Connector \
- DEV_IO \
- FIFO \
- FIFO_Recv \
- FIFO_Recv_Msg \
- FIFO_Send \
- FIFO_Send_Msg \
- FILE_Addr \
- FILE \
- FILE_Connector \
- FILE_IO \
- IO_SAP \
- IOStream \
- Pipe \
- Signal \
- SPIPE_Addr \
- SPIPE \
- SPIPE_Acceptor \
- SPIPE_Connector \
- SPIPE_Stream \
- SV_Message \
- SV_Message_Queue \
- SV_Semaphore_Complex \
- SV_Semaphore_Simple \
- SV_Shared_Memory \
- TLI \
- TLI_Acceptor \
- TLI_Connector \
- TLI_Stream \
- TTY_IO \
- UNIX_Addr \
- UPIPE_Acceptor \
- UPIPE_Connector \
- UPIPE_Stream \
- MEM_Acceptor \
- MEM_Addr \
- MEM_Connector \
- MEM_IO \
- MEM_SAP \
- MEM_Stream
-SVCCONF_FILES = \
- DLL \
- DLL_Manager \
- Dynamic_Service_Base \
- Parse_Node \
- Service_Config \
- Service_Manager \
- Service_Object \
- Service_Repository \
- Service_Types \
- Service_Templates \
- Shared_Object \
- XML_Svc_Conf \
- Svc_Conf_l \
- Svc_Conf_y \
- Svc_Conf_Lexer_Guard
-STREAMS_FILES = \
- CDR_Base \
- CDR_Stream \
- Codeset_IBM1047 \
- Codeset_Registry \
- Codeset_Registry_db \
- Message_Queue \
- Reactor_Notification_Strategy \
- Task
-MEMORY_FILES = \
- Based_Pointer_Repository \
- Malloc \
- PI_Malloc \
- Malloc_Allocator \
- Malloc_Instantiations \
- Mem_Map \
- Memory_Pool \
- Obchunk \
- Obstack \
- Read_Buffer \
- Shared_Memory \
- Shared_Memory_MM \
- Shared_Memory_SV
-TIMER_FILES = \
- Basic_Stats \
- High_Res_Timer \
- Profile_Timer \
- System_Time \
- Time_Request_Reply \
- Timeprobe \
- Timer_Hash \
- Timer_Heap \
- Timer_List \
- Timer_Queue \
- Timer_Wheel
-TOKEN_FILES = \
- Local_Tokens \
- Remote_Tokens \
- Token_Collection \
- Token_Invariants \
- Token_Manager \
- Token_Request_Reply
-CODECS_FILES = \
- Codecs
-OTHER_FILES = \
- Local_Name_Space \
- Name_Proxy \
- Name_Request_Reply \
- Name_Space \
- Naming_Context \
- Registry_Name_Space \
- Remote_Name_Space \
-
-TEMPLATE_FILES = \
- Acceptor \
- Active_Map_Manager_T \
- Array_Base \
- Node \
- Unbounded_Set \
- Unbounded_Set_Ex \
- Unbounded_Queue \
- Asynch_Acceptor \
- Asynch_Connector \
- Atomic_Op_T \
- Auto_IncDec_T \
- Auto_Ptr \
- Based_Pointer_T \
- Bound_Ptr \
- Connector \
- Containers_T \
- Cache_Map_Manager_T \
- Cached_Connect_Strategy_T \
- Caching_Strategies_T \
- Caching_Utility_T \
- Cleanup_Strategies_T \
- Dump_T \
- Dynamic_Service \
- Env_Value_T \
- Event_Handler_T \
- Framework_Component_T \
- Free_List \
- Functor_T \
- Future \
- Future_Set \
- Hash_Map_Manager_T \
- Hash_Map_With_Allocator_T \
- Hash_Cache_Map_Manager_T \
- IOStream_T \
- Intrusive_List \
- Intrusive_List_Node \
- LOCK_SOCK_Acceptor \
- Local_Name_Space_T \
- Malloc_T \
- Managed_Object \
- Map_Manager \
- Map_T \
- Message_Block_T \
- Message_Queue_T \
- Module \
- Obstack_T \
- Pair_T \
- Refcounted_Auto_Ptr \
- RB_Tree \
- Select_Reactor_T \
- Singleton \
- Strategies_T \
- Stream \
- Stream_Modules \
- String_Base \
- Svc_Handler \
- Synch_T \
- Task_T \
- Template_Instantiations \
- Test_and_Set \
- Timeprobe_T \
- Timer_Hash_T \
- Timer_Heap_T \
- Timer_List_T \
- Timer_Queue_Adapters \
- Timer_Queue_T \
- Timer_Wheel_T \
- Typed_SV_Message \
- Typed_SV_Message_Queue \
- Vector_T
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-
-ifneq ($(GHS),)
- ifeq ($(CPU),86)
- #### With Green Hills for x86 target, compile gethrtime.cpp.
- FILES += gethrtime
- LSRC += gethrtime.cpp
- endif # 86
-endif # GHS
-
-####
-#### Build customization.
-####
-ifndef ACE_COMPONENTS
- #### Please see docs/ACE-subsets.html for documentation.
- ACE_COMPONENTS = \
- OS \
- Utils \
- Logging \
- Threads \
- Demux \
- Connection \
- Sockets \
- IPC \
- Svcconf \
- Streams \
- Memory \
- Timer \
- Token \
- Codecs \
- Other
-endif # ACE_COMPONENTS
-
-ifeq (FOR_TAO,$(ACE_COMPONENTS))
- #### These ACE components are necessary to support TAO.
- override ACE_COMPONENTS = \
- OS \
- Utils \
- Logging \
- Threads \
- Demux \
- Connection \
- Sockets \
- IPC \
- Svcconf \
- Streams \
- Memory \
- Timer \
- Codecs
-else # ! FOR_TAO
- #### TAO doesn't need Filecache. It costs 14 Kb.
- UTILS_FILES += Filecache
-endif # ! FOR_TAO
-
-####
-#### ACE_COMPONENTS support.
-####
-ifneq (,$(findstring OS,$(ACE_COMPONENTS)))
- FILES += $(OS_FILES)
-endif # OS
-
-ifneq (,$(findstring Utils,$(ACE_COMPONENTS)))
- FILES += $(UTILS_FILES)
-endif # Utils
-
-ifneq (,$(findstring Logging,$(ACE_COMPONENTS)))
- FILES += $(LOGGING_FILES)
-endif # Logging
-
-ifneq (,$(findstring Threads,$(ACE_COMPONENTS)))
- FILES += $(THREADS_FILES)
-endif # Threads
-
-ifneq (,$(findstring Demux,$(ACE_COMPONENTS)))
- FILES += $(DEMUX_FILES)
-endif # Demux
-
-ifneq (,$(findstring Connection,$(ACE_COMPONENTS)))
- FILES += $(CONNECTION_FILES)
-endif # Connection
-
-ifneq (,$(findstring Sockets,$(ACE_COMPONENTS)))
- FILES += $(SOCKETS_FILES)
-endif # Sockets
-
-ifneq (,$(findstring IPC,$(ACE_COMPONENTS)))
- FILES += $(IPC_FILES)
-endif # IPC
-
-ifneq (,$(findstring Timer,$(ACE_COMPONENTS)))
- FILES += $(TIMER_FILES)
-endif # ! Timer
-
-ifneq (,$(findstring Svcconf,$(ACE_COMPONENTS)))
- FILES += $(SVCCONF_FILES)
-else # ! Svcconf
- CCFLAGS += -DACE_LACKS_ACE_SVCCONF
-endif # ! Svcconf
-
-ifneq (,$(findstring Streams,$(ACE_COMPONENTS)))
- FILES += $(STREAMS_FILES)
-endif # Streams
-
-ifneq (,$(findstring Memory,$(ACE_COMPONENTS)))
- FILES += $(MEMORY_FILES)
-endif # Memory
-
-ifneq (,$(findstring Codecs,$(ACE_COMPONENTS)))
- FILES += $(CODECS_FILES)
-endif # Codecs
-
-ifeq (,$(findstring Token,$(ACE_COMPONENTS)))
- CCFLAGS += -DACE_LACKS_ACE_TOKEN
-else # ! Token
- FILES += $(TOKEN_FILES)
-endif # ! Token
-
-ifeq (,$(findstring Other,$(ACE_COMPONENTS)))
- CCFLAGS += -DACE_LACKS_ACE_OTHER
-else # ! Other
- FILES += $(OTHER_FILES)
-endif # ! Other
-
-ifeq ($(AIX_TEMPLATE_HACK),1)
- FILES = 0_ACE_All_Src
- TEMPLATE_FILES = 0_ACE_All_Tmp
-endif
-
-#This is a hack. If the qt_reactor needs to be built we need to run
-#the moc (Meta Object Compiler) on QtReactor.h that would generate
-#QtReactor_moc.cpp. We need to compile this file and add it to the
-#library.
-ifneq ($(qt_reactor),)
- DEMUX_FILES += QtReactor_moc
-endif #qt_recator
-
-LSRC = $(addsuffix .cpp,$(FILES))
-
-BUILD += ACE_COMPONENTS
-
-#### Setting ACELIB to null allows it to be used for building shared
-#### libraries, including libACE.$(SOEXT,) on certain platforms.
-ACELIB =
-
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-#### Disable installs in this ($(ACE_ROOT)/ace) directory, because this
-#### is the (default) destination of installs anyways. This line prevents
-#### creation of a link from the ACE library to itself when the build of
-#### the ACE library fails.
-INSTALL =
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-ifeq ($(shared_libs),1)
-ifneq ($(SHLIB),)
-CPPFLAGS += -DACE_BUILD_DLL -DACE_OS_BUILD_DLL
-endif
-endif
-
-ifeq ($(static_libs),1)
-ifneq ($(LIB),)
-CPPFLAGS += -DACE_AS_STATIC_LIBS
-endif
-endif
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-.PHONY: ACE_COMPONENTS
-ACE_COMPONENTS:
- @sh $(ACE_ROOT)/bin/ace_components --ace --set ' $(ACE_COMPONENTS) '
-
-realclean:
- @sh $(ACE_ROOT)/bin/ace_components --ace --remove
-
-# AIX template compilation speedup hack
-
-ACE_All: 0_ACE_All_Src.cpp 0_ACE_All_Tmp.cpp
-
-# Build ACE before descending into subdirectories.
-all.nested: all.local
-
-0_ACE_All_Src.h:
- @echo;
- echo > $@ "// $@";
- echo >> $@ "// This file should speed up compilation for AIX. ";
- echo >> $@ "// It includes all non-template .h-files in one batch.";
- echo >> $@ "// The .h-files #include those .i-files that are needed.";
- echo >> $@;
- for name in $(FILES); do \
- echo "#include \"$$name.h\""; \
- done >> $@;
- echo >> $@;
- echo >> $@ "// EOF";
-
-0_ACE_All_Src.cpp: 0_ACE_All_Src.h
- @echo;
- echo > $@ "// $@";
- echo >> $@ "// This file should speed up compilation for AIX. ";
- echo >> $@ "// It includes all non-template .cpp-files in one batch.";
- echo >> $@ "// The .h-files #include those .i-files that are needed.";
- echo >> $@;
- echo >> $@ "#include \"$*.h\"";
- echo >> $@;
- for name in $(FILES); do \
- echo "#include \"$$name.cpp\""; \
- done >> $@;
- echo >> $@;
- echo >> $@ "// EOF";
-
-0_ACE_All_Tmp.cpp:
- @echo;
- echo > $@ "// $@";
- echo >> $@ "// This file should speed up compilation for AIX. ";
- echo >> $@ "// It includes all _template_ .h-files in one batch. ";
- echo >> $@ "// Each of these will include any needed template";
- echo >> $@ "// implementations from .cpp- and .i-files. ";
- echo >> $@;
- for name in $(TEMPLATE_FILES); do \
- echo "#include \"$$name.cpp\""; \
- done >> $@;
- echo >> $@;
- echo >> $@ "// EOF";
-
-Svc_Conf_y.cpp: Svc_Conf.y
- $(YACC) -l -d Svc_Conf.y; \
- sed -e "s/char \*getenv/char *ace_foo/g" \
- -e "s/= getenv/= ACE_OS::getenv/g" \
- -e "s/fprintf/ACE_OS::fprintf/g" \
- -e "s/yy/ace_yy/g" \
- -e "s/->ace_yyerrno/->yyerrno/g" \
- -e "s/->ace_yylineno/->yylineno/g" \
- -e "s/YY/ACE_YY/g" \
- -e "s/Svc_Conf\.tab\.c/Svc_Conf_y.cpp/g" < Svc_Conf.tab.c > /tmp/$@; \
- cp /tmp/$@ $@; \
- patch < ../etc/Svc_Conf_y.cpp.diff; \
- echo '// $$'\I\d'$$' > Svc_Conf_Tokens.h; \
- cat Svc_Conf.tab.h >> Svc_Conf_Tokens.h; \
- $(RM) -f /tmp/$@ Svc_Conf.tab.c Svc_Conf.tab.h Svc_Conf_y.cpp.orig;
-
-Svc_Conf_l.cpp: Svc_Conf.l
- $(LEX) -L -t -I Svc_Conf.l > $@; \
- sed -e "s/unistd/stdio/g" \
- -e "s/yy/ace_yy/g" \
- -e "s/YY/ACE_YY/g" \
- -e "s/->ace_yyerrno/->yyerrno/g" \
- -e "s/->ace_yylineno/->yylineno/g" \
- -e "s/free( ptr );/free( ACE_MALLOC_T (ptr) );/g" \
- -e "s/exit( 1 );/ACE_OS::exit( 1 );/g" \
- -e "s/isatty( fileno(file)/ACE_OS::isatty( fileno (file)/g" \
- -e "s/int isatty/int nop_isatty/g" \
- -e "s/realloc( ptr, size );/realloc( ACE_MALLOC_T (ptr), size );/g" \
- -e "s@#include <stdio\.h>@#include /**/ \"ace/OS.h\"@" \
- -e "s@#include <@#include /**/ <@" \
- -e "s@ECHO@ACE_SVC_CONF_ECHO@" < $@ > /tmp/$@; \
- cp /tmp/$@ $@; \
- patch < ../etc/Svc_Conf_l.cpp.diff; \
- $(RM) -f /tmp/$@ Svc_Conf_l.cpp.orig;
-
-# Some compilation for the QtReactor stuff. We need to run moc
-# ie. (Meta Object compiler) for our QtReactor.h. So, let's do it
-# here.
-
-ifneq ($(qt_reactor),)
-QtReactor_moc.cpp: QtReactor.h
- $(MOC) QtReactor.h >QtReactor_moc.cpp
-endif #qt_reactor
-
-ifeq ($(CHORUS),1)
- ifeq ($(CC),$(GHS_DIR)/build -driver ch68)
- #### Build this target without -g, because it causes ghs 1.8.8 to core
- #### dump.
- $(VDIR)Select_Reactor.o .obj/Select_Reactor.so .shobj/Select_Reactor.o .shobj/Select_Reactor.so:
- $(COMPILE-NO_DASH_G.cc) -o $@ $<
- endif # CC
-endif # CHORUS
-
-ifneq ($(GHS),)
- ifeq ($(CPU),86)
- $(VDIR)gethrtime.$(OBJEXT):
- $(MAKE) $@ ghs=0
- endif # 86
-endif # GHS
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/ARGV.o .obj/ARGV.so .shobj/ARGV.o .shobj/ARGV.so: ARGV.cpp ARGV.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- ARGV.i
-
-.obj/Argv_Type_Converter.o .obj/Argv_Type_Converter.so .shobj/Argv_Type_Converter.o .shobj/Argv_Type_Converter.so: Argv_Type_Converter.cpp \
- Argv_Type_Converter.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Memory.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- Argv_Type_Converter.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl
-
-.obj/Basic_Types.o .obj/Basic_Types.so .shobj/Basic_Types.o .shobj/Basic_Types.so: Basic_Types.cpp OS.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Template_Instantiations.cpp
-
-.obj/Time_Value.o .obj/Time_Value.so .shobj/Time_Value.o .shobj/Time_Value.so: Time_Value.cpp Time_Value.h \
- pre.h \
- OS_Export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE_export.h \
- Time_Value.inl \
- Basic_Types.h \
- Basic_Types.i
-
-.obj/OS.o .obj/OS.so .shobj/OS.o .shobj/OS.so: OS.cpp OS.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Sched_Params.h \
- Sched_Params.i \
- OS_Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- OS_Thread_Adapter.inl \
- OS_QoS.h
-
-.obj/OS_Dirent.o .obj/OS_Dirent.so .shobj/OS_Dirent.o .shobj/OS_Dirent.so: OS_Dirent.cpp OS_Dirent.h \
- pre.h \
- OS_Export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- Log_Msg.h \
- Global_Macros.h \
- Default_Constants.h \
- Log_Priority.h \
- OS.h OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/OS_Memory.o .obj/OS_Memory.so .shobj/OS_Memory.o .shobj/OS_Memory.so: OS_Memory.cpp OS_Memory.h \
- pre.h \
- OS_Export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl
-
-.obj/OS_QoS.o .obj/OS_QoS.so .shobj/OS_QoS.o .shobj/OS_QoS.so: OS_QoS.cpp OS_QoS.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i
-
-.obj/OS_String.o .obj/OS_String.so .shobj/OS_String.o .shobj/OS_String.so: OS_String.cpp OS_String.h \
- pre.h \
- OS_Export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl
-
-.obj/OS_TLI.o .obj/OS_TLI.so .shobj/OS_TLI.o .shobj/OS_TLI.so: OS_TLI.cpp OS_TLI.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_TLI.inl
-
-.obj/OS_Errno.o .obj/OS_Errno.so .shobj/OS_Errno.o .shobj/OS_Errno.so: OS_Errno.cpp OS_Errno.h \
- pre.h \
- OS_Export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Errno.inl
-
-.obj/Base_Thread_Adapter.o .obj/Base_Thread_Adapter.so .shobj/Base_Thread_Adapter.o .shobj/Base_Thread_Adapter.so: Base_Thread_Adapter.cpp \
- Base_Thread_Adapter.h \
- pre.h \
- OS_Log_Msg_Attributes.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- streams.h \
- OS_Export.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- Trace.h OS.i
-
-.obj/OS_Thread_Adapter.o .obj/OS_Thread_Adapter.so .shobj/OS_Thread_Adapter.o .shobj/OS_Thread_Adapter.so: OS_Thread_Adapter.cpp \
- OS_Thread_Adapter.h \
- pre.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- streams.h \
- OS_Export.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- OS_Thread_Adapter.inl \
- Thread_Hook.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- Trace.h OS.i
-
-.obj/OS_Log_Msg_Attributes.o .obj/OS_Log_Msg_Attributes.so .shobj/OS_Log_Msg_Attributes.o .shobj/OS_Log_Msg_Attributes.so: OS_Log_Msg_Attributes.cpp \
- OS_Log_Msg_Attributes.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- streams.h \
- OS_Export.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/Thread_Hook.o .obj/Thread_Hook.so .shobj/Thread_Hook.o .shobj/Thread_Hook.so: Thread_Hook.cpp Thread_Hook.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Export.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i
-
-.obj/Sched_Params.o .obj/Sched_Params.so .shobj/Sched_Params.o .shobj/Sched_Params.so: Sched_Params.cpp \
- Sched_Params.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Sched_Params.i
-
-.obj/Handle_Set.o .obj/Handle_Set.so .shobj/Handle_Set.o .shobj/Handle_Set.so: Handle_Set.cpp Handle_Set.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Handle_Set.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/Copy_Disabled.o .obj/Copy_Disabled.so .shobj/Copy_Disabled.o .shobj/Copy_Disabled.so: Copy_Disabled.cpp \
- Copy_Disabled.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/ACE.o .obj/ACE.so .shobj/ACE.o .shobj/ACE.so: ACE.cpp ACE.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Handle_Set.h \
- Handle_Set.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- SString.i \
- Version.h \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp
-
-.obj/Active_Map_Manager.o .obj/Active_Map_Manager.so .shobj/Active_Map_Manager.o .shobj/Active_Map_Manager.so: Active_Map_Manager.cpp \
- Active_Map_Manager.h \
- pre.h \
- OS_String.h \
- OS_Export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- Active_Map_Manager.i \
- Active_Map_Manager_T.h \
- Map_Manager.h \
- Synch.h OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Map_Manager.i \
- Map_Manager.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Active_Map_Manager_T.i \
- Active_Map_Manager_T.cpp
-
-.obj/Arg_Shifter.o .obj/Arg_Shifter.so .shobj/Arg_Shifter.o .shobj/Arg_Shifter.so: Arg_Shifter.cpp Arg_Shifter.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_String.h \
- OS_Export.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.h \
- OS_Memory.inl
-
-.obj/Capabilities.o .obj/Capabilities.so .shobj/Capabilities.o .shobj/Capabilities.so: Capabilities.cpp \
- Capabilities.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Synch.h \
- ACE_export.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Hash_Map_Manager_T.h \
- Functor.h ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Functor.i \
- Functor_T.h \
- Functor_T.i \
- Functor_T.cpp \
- Hash_Map_Manager_T.i \
- Hash_Map_Manager_T.cpp \
- Service_Config.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Capabilities.i
-
-.obj/Containers.o .obj/Containers.so .shobj/Containers.o .shobj/Containers.so: Containers.cpp Containers.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Containers.i \
- Containers_T.h \
- Node.h Node.cpp \
- Array_Base.h \
- Global_Macros.h \
- OS_Export.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Malloc_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Containers_T.i \
- Containers_T.cpp
-
-.obj/Configuration.o .obj/Configuration.so .shobj/Configuration.o .shobj/Configuration.so: Configuration.cpp \
- Configuration.h \
- pre.h SString.h \
- SStringfwd.h \
- Basic_Types.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE_export.h \
- Basic_Types.i \
- String_Base.h \
- String_Base_Const.h \
- Global_Macros.h \
- OS_Export.h \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- String_Base.i \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- Hash_Map_With_Allocator_T.h \
- Hash_Map_Manager_T.h \
- Functor.h \
- Functor.i \
- Functor_T.h \
- Functor_T.i \
- Functor_T.cpp \
- Hash_Map_Manager_T.i \
- Hash_Map_Manager_T.cpp \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Hash_Map_With_Allocator_T.i \
- Hash_Map_With_Allocator_T.cpp \
- Configuration_Import_Export.h
-
-.obj/Configuration_Import_Export.o .obj/Configuration_Import_Export.so .shobj/Configuration_Import_Export.o .shobj/Configuration_Import_Export.so: Configuration_Import_Export.cpp \
- Configuration_Import_Export.h \
- pre.h \
- Configuration.h \
- SString.h \
- SStringfwd.h \
- Basic_Types.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE_export.h \
- Basic_Types.i \
- String_Base.h \
- String_Base_Const.h \
- Global_Macros.h \
- OS_Export.h \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- String_Base.i \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- Hash_Map_With_Allocator_T.h \
- Hash_Map_Manager_T.h \
- Functor.h \
- Functor.i \
- Functor_T.h \
- Functor_T.i \
- Functor_T.cpp \
- Hash_Map_Manager_T.i \
- Hash_Map_Manager_T.cpp \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Hash_Map_With_Allocator_T.i \
- Hash_Map_With_Allocator_T.cpp
-
-.obj/Dirent.o .obj/Dirent.so .shobj/Dirent.o .shobj/Dirent.so: Dirent.cpp Dirent.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- Dirent.i \
- Log_Msg.h \
- Global_Macros.h \
- Default_Constants.h \
- Log_Priority.h \
- OS.h \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/Dirent_Selector.o .obj/Dirent_Selector.so .shobj/Dirent_Selector.o .shobj/Dirent_Selector.so: Dirent_Selector.cpp OS.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Dirent_Selector.h \
- Dirent_Selector.inl
-
-.obj/Dynamic.o .obj/Dynamic.so .shobj/Dynamic.o .shobj/Dynamic.so: Dynamic.cpp Dynamic.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Dynamic.i \
- Singleton.h \
- Synch.h OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp
-
-.obj/Flag_Manip.o .obj/Flag_Manip.so .shobj/Flag_Manip.o .shobj/Flag_Manip.so: Flag_Manip.cpp Flag_Manip.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i
-
-.obj/Framework_Component.o .obj/Framework_Component.so .shobj/Framework_Component.o .shobj/Framework_Component.so: Framework_Component.cpp \
- Framework_Component.h \
- pre.h Synch.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Framework_Component.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- DLL_Manager.h \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- SString.i
-
-.obj/Functor.o .obj/Functor.so .shobj/Functor.o .shobj/Functor.so: Functor.cpp Functor_T.h \
- pre.h Functor.h \
- ACE.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Functor.i \
- Functor_T.i \
- Functor_T.cpp
-
-.obj/Get_Opt.o .obj/Get_Opt.so .shobj/Get_Opt.o .shobj/Get_Opt.so: Get_Opt.cpp Get_Opt.h \
- pre.h SString.h \
- SStringfwd.h \
- Basic_Types.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE_export.h \
- Basic_Types.i \
- String_Base.h \
- String_Base_Const.h \
- Global_Macros.h \
- OS_Export.h \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- String_Base.i \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Get_Opt.i
-
-.obj/Hash_Map_Manager.o .obj/Hash_Map_Manager.so .shobj/Hash_Map_Manager.o .shobj/Hash_Map_Manager.so: Hash_Map_Manager.cpp \
- Hash_Map_Manager.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Hash_Map_Manager_T.h \
- Default_Constants.h \
- Functor.h ACE.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Functor.i \
- Functor_T.h \
- Functor_T.i \
- Functor_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Hash_Map_Manager_T.i \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Hash_Map_Manager_T.cpp \
- Service_Config.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h
-
-.obj/Connection_Recycling_Strategy.o .obj/Connection_Recycling_Strategy.so .shobj/Connection_Recycling_Strategy.o .shobj/Connection_Recycling_Strategy.so: Connection_Recycling_Strategy.cpp \
- Connection_Recycling_Strategy.h \
- pre.h \
- Recyclable.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Recyclable.inl
-
-.obj/Hashable.o .obj/Hashable.so .shobj/Hashable.o .shobj/Hashable.so: Hashable.cpp Hashable.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Hashable.inl
-
-.obj/Notification_Strategy.o .obj/Notification_Strategy.so .shobj/Notification_Strategy.o .shobj/Notification_Strategy.so: Notification_Strategy.cpp \
- Notification_Strategy.h \
- pre.h \
- Event_Handler.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Event_Handler.i \
- Notification_Strategy.inl
-
-.obj/Recyclable.o .obj/Recyclable.so .shobj/Recyclable.o .shobj/Recyclable.so: Recyclable.cpp Recyclable.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Recyclable.inl
-
-.obj/Refcountable.o .obj/Refcountable.so .shobj/Refcountable.o .shobj/Refcountable.so: Refcountable.cpp \
- Refcountable.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Refcountable.inl
-
-.obj/Handle_Ops.o .obj/Handle_Ops.so .shobj/Handle_Ops.o .shobj/Handle_Ops.so: Handle_Ops.cpp Handle_Ops.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Handle_Ops.i
-
-.obj/Init_ACE.o .obj/Init_ACE.so .shobj/Init_ACE.o .shobj/Init_ACE.so: Init_ACE.cpp Init_ACE.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Init_ACE.i \
- Object_Manager.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp
-
-.obj/Lib_Find.o .obj/Lib_Find.so .shobj/Lib_Find.o .shobj/Lib_Find.so: Lib_Find.cpp Lib_Find.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Lib_Find.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/Message_Block.o .obj/Message_Block.so .shobj/Message_Block.o .shobj/Message_Block.so: Message_Block.cpp \
- Message_Block.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Default_Constants.h \
- Global_Macros.h \
- OS_Export.h \
- Time_Value.h \
- Time_Value.inl \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Synch_T.h \
- Synch.h Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Timeprobe.h
-
-.obj/Method_Request.o .obj/Method_Request.so .shobj/Method_Request.o .shobj/Method_Request.so: Method_Request.cpp \
- Method_Request.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Global_Macros.h \
- OS_Export.h
-
-.obj/Object_Manager.o .obj/Object_Manager.so .shobj/Object_Manager.o .shobj/Object_Manager.so: Object_Manager.cpp \
- Object_Manager.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Token_Manager.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Map_Manager.h \
- Map_Manager.i \
- Map_Manager.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Local_Tokens.h \
- Local_Tokens.i \
- Token_Manager.i \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Service_Manager.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h Addr.h \
- Addr.i \
- IPC_SAP.h \
- IPC_SAP.i \
- SOCK.i \
- SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- SOCK_Acceptor.h \
- SOCK_Acceptor.i \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- DLL.h \
- Service_Object.i \
- Service_Manager.i \
- Atomic_Op.h \
- Atomic_Op_T.h \
- Atomic_Op_T.i \
- Atomic_Op_T.cpp \
- Atomic_Op.i
-
-.obj/Registry.o .obj/Registry.so .shobj/Registry.o .shobj/Registry.so: Registry.cpp Registry.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i
-
-.obj/String_Base_Const.o .obj/String_Base_Const.so .shobj/String_Base_Const.o .shobj/String_Base_Const.so: String_Base_Const.cpp \
- String_Base_Const.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Basic_Types.h \
- Basic_Types.i
-
-.obj/SString.o .obj/SString.so .shobj/SString.o .shobj/SString.so: SString.cpp Malloc.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i
-
-.obj/Stats.o .obj/Stats.so .shobj/Stats.o .shobj/Stats.so: Stats.cpp Stats.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- OS_Memory.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Basic_Stats.h \
- Basic_Stats.inl \
- Stats.i \
- High_Res_Timer.h \
- High_Res_Timer.i
-
-.obj/Sample_History.o .obj/Sample_History.so .shobj/Sample_History.o .shobj/Sample_History.so: Sample_History.cpp \
- Sample_History.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- Sample_History.inl \
- Basic_Stats.h \
- Basic_Stats.inl \
- Log_Msg.h \
- Global_Macros.h \
- OS_Export.h \
- Default_Constants.h \
- Log_Priority.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/Filecache.o .obj/Filecache.so .shobj/Filecache.o .shobj/Filecache.so: Filecache.cpp Filecache.h \
- pre.h Mem_Map.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Mem_Map.i \
- Synch_T.h \
- Synch.h Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Hash_Map_Manager_T.h \
- Functor.h ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Functor.i \
- Functor_T.h \
- Functor_T.i \
- Functor_T.cpp \
- Hash_Map_Manager_T.i \
- Hash_Map_Manager_T.cpp \
- Service_Config.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp
-
-.obj/Dump.o .obj/Dump.so .shobj/Dump.o .shobj/Dump.so: Dump.cpp Synch_T.h \
- pre.h Synch.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Dump.h Dump_T.h \
- Dump_T.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp
-
-.obj/Log_Msg.o .obj/Log_Msg.so .shobj/Log_Msg.o .shobj/Log_Msg.so: Log_Msg.cpp config-all.h \
- pre.h config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE.h OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Thread_Manager.h \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Log_Msg_Callback.h \
- Log_Msg_IPC.h \
- Log_Msg_Backend.h \
- SOCK_Connector.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h Addr.h \
- Addr.i \
- IPC_SAP.h \
- IPC_SAP.i \
- SOCK.i \
- SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- SOCK_Connector.i \
- Log_Msg_NT_Event_Log.h \
- Log_Msg_UNIX_Syslog.h \
- Log_Record.h \
- Log_Record.i
-
-.obj/Log_Msg_Callback.o .obj/Log_Msg_Callback.so .shobj/Log_Msg_Callback.o .shobj/Log_Msg_Callback.so: Log_Msg_Callback.cpp \
- Log_Msg_Callback.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/Log_Msg_Backend.o .obj/Log_Msg_Backend.so .shobj/Log_Msg_Backend.o .shobj/Log_Msg_Backend.so: Log_Msg_Backend.cpp \
- Log_Msg_Backend.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/Log_Msg_IPC.o .obj/Log_Msg_IPC.so .shobj/Log_Msg_IPC.o .shobj/Log_Msg_IPC.so: Log_Msg_IPC.cpp Log_Msg_IPC.h \
- pre.h \
- Log_Msg_Backend.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- SOCK_Connector.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h Addr.h \
- Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- SOCK_Connector.i \
- Log_Record.h \
- Log_Priority.h \
- Log_Record.i
-
-.obj/Log_Msg_NT_Event_Log.o .obj/Log_Msg_NT_Event_Log.so .shobj/Log_Msg_NT_Event_Log.o .shobj/Log_Msg_NT_Event_Log.so: Log_Msg_NT_Event_Log.cpp \
- config-all.h \
- pre.h config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/Log_Msg_UNIX_Syslog.o .obj/Log_Msg_UNIX_Syslog.so .shobj/Log_Msg_UNIX_Syslog.o .shobj/Log_Msg_UNIX_Syslog.so: Log_Msg_UNIX_Syslog.cpp \
- config-all.h \
- pre.h config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE.h OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Log_Msg_UNIX_Syslog.h \
- Log_Msg_Backend.h \
- Log_Record.h \
- Log_Record.i
-
-.obj/Log_Record.o .obj/Log_Record.so .shobj/Log_Record.o .shobj/Log_Record.so: Log_Record.cpp Log_Record.h \
- OS.h pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Priority.h \
- Log_Record.i \
- Log_Msg.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i
-
-.obj/Logging_Strategy.o .obj/Logging_Strategy.so .shobj/Logging_Strategy.o .shobj/Logging_Strategy.so: Logging_Strategy.cpp \
- Get_Opt.h pre.h \
- SString.h \
- SStringfwd.h \
- Basic_Types.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE_export.h \
- Basic_Types.i \
- String_Base.h \
- String_Base_Const.h \
- Global_Macros.h \
- OS_Export.h \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- String_Base.i \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Get_Opt.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Logging_Strategy.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- Svc_Conf_Tokens.h \
- DLL.h \
- Service_Object.i
-
-.obj/Trace.o .obj/Trace.so .shobj/Trace.o .shobj/Trace.so: Trace.cpp Trace.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Global_Macros.h \
- OS_Export.h \
- Log_Msg.h \
- Default_Constants.h \
- Log_Priority.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Min_Max.h \
- streams.h OS.i \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/Activation_Queue.o .obj/Activation_Queue.so .shobj/Activation_Queue.o .shobj/Activation_Queue.so: Activation_Queue.cpp \
- Activation_Queue.h \
- pre.h Synch_T.h \
- Synch.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Message_Queue.h \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- Malloc_Base.h \
- IO_Cntl_Msg.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Event_Handler.h \
- Event_Handler.i \
- Notification_Strategy.inl \
- Message_Queue.i \
- Method_Request.h \
- Activation_Queue.i
-
-.obj/Atomic_Op.o .obj/Atomic_Op.so .shobj/Atomic_Op.o .shobj/Atomic_Op.so: Atomic_Op.cpp Atomic_Op.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Synch.h \
- ACE_export.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Atomic_Op_T.h \
- Atomic_Op_T.i \
- Atomic_Op_T.cpp \
- Atomic_Op.i
-
-.obj/Process.o .obj/Process.so .shobj/Process.o .shobj/Process.so: Process.cpp OS.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Process.h \
- Handle_Set.h \
- Handle_Set.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- Process.i \
- ARGV.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- ARGV.i
-
-.obj/Process_Manager.o .obj/Process_Manager.so .shobj/Process_Manager.o .shobj/Process_Manager.so: Process_Manager.cpp \
- Synch_T.h pre.h \
- Synch.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Process.h \
- Handle_Set.h \
- Handle_Set.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- Process.i \
- Process_Manager.h \
- Reactor.h \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Process_Manager.i \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp
-
-.obj/Synch.o .obj/Synch.so .shobj/Synch.o .shobj/Synch.so: Synch.cpp Thread.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Synch.h \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h
-
-.obj/Synch_Options.o .obj/Synch_Options.so .shobj/Synch_Options.o .shobj/Synch_Options.so: Synch_Options.cpp \
- Synch_Options.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Time_Value.h \
- OS_Export.h \
- Time_Value.inl \
- Synch_Options.i \
- Trace.h \
- Global_Macros.h
-
-.obj/Process_Semaphore.o .obj/Process_Semaphore.so .shobj/Process_Semaphore.o .shobj/Process_Semaphore.so: Process_Semaphore.cpp \
- Process_Semaphore.h \
- pre.h Synch.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Process_Semaphore.inl
-
-.obj/Process_Mutex.o .obj/Process_Mutex.so .shobj/Process_Mutex.o .shobj/Process_Mutex.so: Process_Mutex.cpp \
- Process_Mutex.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- ACE_export.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Process_Mutex.inl \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i
-
-.obj/RW_Process_Mutex.o .obj/RW_Process_Mutex.so .shobj/RW_Process_Mutex.o .shobj/RW_Process_Mutex.so: RW_Process_Mutex.cpp \
- RW_Process_Mutex.h \
- pre.h \
- File_Lock.h \
- OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- File_Lock.inl \
- RW_Process_Mutex.inl \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i
-
-.obj/File_Lock.o .obj/File_Lock.so .shobj/File_Lock.o .shobj/File_Lock.so: File_Lock.cpp File_Lock.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- File_Lock.inl \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/Thread.o .obj/Thread.so .shobj/Thread.o .shobj/Thread.so: Thread.cpp Thread.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i
-
-.obj/Thread_Manager.o .obj/Thread_Manager.so .shobj/Thread_Manager.o .shobj/Thread_Manager.so: Thread_Manager.cpp \
- Synch_T.h pre.h \
- Synch.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Dynamic.h \
- Dynamic.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp
-
-.obj/Thread_Adapter.o .obj/Thread_Adapter.so .shobj/Thread_Adapter.o .shobj/Thread_Adapter.so: Thread_Adapter.cpp \
- Thread_Adapter.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- streams.h \
- OS_Export.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- Trace.h OS.i \
- Thread_Manager.h \
- Thread.h \
- Thread.i \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Thread_Hook.h
-
-.obj/Thread_Exit.o .obj/Thread_Exit.so .shobj/Thread_Exit.o .shobj/Thread_Exit.so: Thread_Exit.cpp Thread_Exit.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Thread_Control.h \
- Thread_Control.inl \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Managed_Object.h \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.i \
- Managed_Object.cpp \
- Thread_Manager.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i
-
-.obj/Thread_Control.o .obj/Thread_Control.so .shobj/Thread_Control.o .shobj/Thread_Control.so: Thread_Control.cpp \
- config-all.h \
- pre.h config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Thread_Control.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Thread_Control.inl \
- Thread_Manager.h \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Thread_Exit.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i
-
-.obj/Token.o .obj/Token.so .shobj/Token.o .shobj/Token.so: Token.cpp Thread.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Token.h Synch.h \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Token.i
-
-.obj/Event_Handler.o .obj/Event_Handler.so .shobj/Event_Handler.o .shobj/Event_Handler.so: Event_Handler.cpp \
- Event_Handler.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Event_Handler.i \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- Malloc_Base.h \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Timer_Queue_T.h \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i \
- Reactor.i \
- Reactor_Impl.h \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i
-
-.obj/FlReactor.o .obj/FlReactor.so .shobj/FlReactor.o .shobj/FlReactor.so: FlReactor.cpp FlReactor.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/Msg_WFMO_Reactor.o .obj/Msg_WFMO_Reactor.so .shobj/Msg_WFMO_Reactor.o .shobj/Msg_WFMO_Reactor.so: Msg_WFMO_Reactor.cpp \
- Msg_WFMO_Reactor.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Msg_WFMO_Reactor.i
-
-.obj/POSIX_Proactor.o .obj/POSIX_Proactor.so .shobj/POSIX_Proactor.o .shobj/POSIX_Proactor.so: POSIX_Proactor.cpp \
- POSIX_Proactor.h \
- config-all.h \
- pre.h config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Proactor_Impl.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Asynch_IO.h \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Timer_Queue_T.h \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Event_Handler.h \
- Event_Handler.i \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i \
- Reactor.i \
- Reactor_Impl.h \
- Pipe.h Pipe.i \
- POSIX_Asynch_IO.h \
- Asynch_IO_Impl.h \
- Asynch_IO_Impl.i \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Map_Manager.h \
- Map_Manager.i \
- Map_Manager.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Service_Config.h \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Svc_Conf_Tokens.h \
- POSIX_Asynch_IO.i \
- Asynch_Pseudo_Task.h \
- Select_Reactor.h \
- Select_Reactor_T.h \
- Select_Reactor_Base.h \
- Token.h Token.i \
- Select_Reactor_Base.i \
- Select_Reactor_T.cpp \
- Timer_Heap.h \
- Timer_Heap_T.h \
- Timer_Heap_T.cpp \
- Select_Reactor_T.i \
- Task.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- DLL.h \
- Service_Object.i \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Task.i Task_T.h \
- Message_Queue.h \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- IO_Cntl_Msg.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Notification_Strategy.inl \
- Message_Queue.i \
- Task_T.i \
- Task_T.cpp \
- Module.h \
- Module.i \
- Module.cpp \
- Stream_Modules.h \
- Stream_Modules.cpp \
- POSIX_Proactor.i
-
-.obj/POSIX_CB_Proactor.o .obj/POSIX_CB_Proactor.so .shobj/POSIX_CB_Proactor.o .shobj/POSIX_CB_Proactor.so: POSIX_CB_Proactor.cpp \
- POSIX_CB_Proactor.h \
- config-all.h \
- pre.h config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- POSIX_Proactor.h \
- Proactor_Impl.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Asynch_IO.h \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Timer_Queue_T.h \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Event_Handler.h \
- Event_Handler.i \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i \
- Reactor.i \
- Reactor_Impl.h \
- Pipe.h Pipe.i \
- POSIX_Asynch_IO.h \
- Asynch_IO_Impl.h \
- Asynch_IO_Impl.i \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Map_Manager.h \
- Map_Manager.i \
- Map_Manager.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Service_Config.h \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Svc_Conf_Tokens.h \
- POSIX_Asynch_IO.i \
- Asynch_Pseudo_Task.h \
- Select_Reactor.h \
- Select_Reactor_T.h \
- Select_Reactor_Base.h \
- Token.h Token.i \
- Select_Reactor_Base.i \
- Select_Reactor_T.cpp \
- Timer_Heap.h \
- Timer_Heap_T.h \
- Timer_Heap_T.cpp \
- Select_Reactor_T.i \
- Task.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- DLL.h \
- Service_Object.i \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Task.i Task_T.h \
- Message_Queue.h \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- IO_Cntl_Msg.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Notification_Strategy.inl \
- Message_Queue.i \
- Task_T.i \
- Task_T.cpp \
- Module.h \
- Module.i \
- Module.cpp \
- Stream_Modules.h \
- Stream_Modules.cpp \
- POSIX_Proactor.i \
- POSIX_CB_Proactor.i
-
-.obj/WIN32_Proactor.o .obj/WIN32_Proactor.so .shobj/WIN32_Proactor.o .shobj/WIN32_Proactor.so: WIN32_Proactor.cpp \
- WIN32_Proactor.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/Priority_Reactor.o .obj/Priority_Reactor.so .shobj/Priority_Reactor.o .shobj/Priority_Reactor.so: Priority_Reactor.cpp \
- Priority_Reactor.h \
- pre.h \
- Unbounded_Queue.h \
- Node.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Node.cpp \
- OS_Memory.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Select_Reactor.h \
- Select_Reactor_T.h \
- Select_Reactor_Base.h \
- Signal.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Event_Handler.h \
- Event_Handler.i \
- Signal.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Handle_Set.h \
- Handle_Set.i \
- Token.h Token.i \
- Pipe.h Pipe.i \
- Reactor_Impl.h \
- Select_Reactor_Base.i \
- Reactor.h \
- Reactor.i \
- Select_Reactor_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Timer_Heap.h \
- Timer_Heap_T.h \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Timer_Heap_T.cpp \
- Select_Reactor_T.i \
- Malloc_T.h \
- Malloc.h \
- Malloc.i \
- Memory_Pool.h \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Memory_Pool.i \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Malloc_T.i \
- Malloc_T.cpp
-
-.obj/Proactor.o .obj/Proactor.so .shobj/Proactor.o .shobj/Proactor.so: Proactor.cpp Proactor.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE_export.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Asynch_IO.h \
- Asynch_IO_Impl.h \
- Asynch_IO_Impl.i \
- Thread_Manager.h \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Event_Handler.h \
- Event_Handler.i \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i \
- Timer_List.h \
- Timer_List_T.h \
- Timer_List_T.cpp \
- Timer_Heap.h \
- Timer_Heap_T.h \
- Timer_Heap_T.cpp \
- Timer_Wheel.h \
- Timer_Wheel_T.h \
- Timer_Wheel_T.cpp \
- Proactor.i \
- Proactor_Impl.h \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Reactor.i \
- Reactor_Impl.h \
- Task_T.h \
- Message_Queue.h \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- IO_Cntl_Msg.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Notification_Strategy.inl \
- Message_Queue.i \
- Task.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- Svc_Conf_Tokens.h \
- DLL.h \
- Service_Object.i \
- Task.i Task_T.i \
- Task_T.cpp \
- Module.h \
- Module.i \
- Module.cpp \
- Stream_Modules.h \
- Stream_Modules.cpp \
- Service_Config.h \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- POSIX_Proactor.h \
- Pipe.h Pipe.i \
- POSIX_Asynch_IO.h \
- Map_Manager.h \
- Map_Manager.i \
- Map_Manager.cpp \
- POSIX_Asynch_IO.i \
- Asynch_Pseudo_Task.h \
- Select_Reactor.h \
- Select_Reactor_T.h \
- Select_Reactor_Base.h \
- Token.h Token.i \
- Select_Reactor_Base.i \
- Select_Reactor_T.cpp \
- Select_Reactor_T.i \
- POSIX_Proactor.i
-
-.obj/Reactor.o .obj/Reactor.so .shobj/Reactor.o .shobj/Reactor.so: Reactor.cpp Reactor.h \
- pre.h \
- Handle_Set.h \
- OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Handle_Set.i \
- Timer_Queue.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Timer_Queue_T.h \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Event_Handler.h \
- Event_Handler.i \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i \
- Reactor.i \
- Reactor_Impl.h \
- Service_Config.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Svc_Conf_Tokens.h \
- Select_Reactor.h \
- Select_Reactor_T.h \
- Select_Reactor_Base.h \
- Token.h Token.i \
- Pipe.h Pipe.i \
- Select_Reactor_Base.i \
- Select_Reactor_T.cpp \
- Timer_Heap.h \
- Timer_Heap_T.h \
- Timer_Heap_T.cpp \
- Select_Reactor_T.i \
- TP_Reactor.h \
- TP_Reactor.i \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp
-
-.obj/Select_Reactor.o .obj/Select_Reactor.so .shobj/Select_Reactor.o .shobj/Select_Reactor.so: Select_Reactor.cpp \
- Select_Reactor.h \
- pre.h \
- Select_Reactor_T.h \
- Select_Reactor_Base.h \
- Signal.h \
- Synch.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Handle_Set.h \
- Handle_Set.i \
- Token.h Token.i \
- Pipe.h Pipe.i \
- Reactor_Impl.h \
- Select_Reactor_Base.i \
- Reactor.h \
- Reactor.i \
- Select_Reactor_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Timer_Heap.h \
- Timer_Heap_T.h \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Malloc_Base.h \
- Timer_Heap_T.cpp \
- Select_Reactor_T.i
-
-.obj/Select_Reactor_Base.o .obj/Select_Reactor_Base.so .shobj/Select_Reactor_Base.o .shobj/Select_Reactor_Base.so: Select_Reactor_Base.cpp \
- Select_Reactor_Base.h \
- pre.h Signal.h \
- Synch.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Handle_Set.h \
- Handle_Set.i \
- Token.h Token.i \
- Pipe.h Pipe.i \
- Reactor_Impl.h \
- Select_Reactor_Base.i \
- Reactor.h \
- Reactor.i \
- SOCK_Acceptor.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h Addr.h \
- Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- SOCK_Acceptor.i \
- SOCK_Connector.h \
- SOCK_Connector.i \
- Timer_Heap.h \
- Timer_Heap_T.h \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Malloc_Base.h \
- Timer_Heap_T.cpp
-
-.obj/SUN_Proactor.o .obj/SUN_Proactor.so .shobj/SUN_Proactor.o .shobj/SUN_Proactor.so: SUN_Proactor.cpp \
- SUN_Proactor.h \
- config-all.h \
- pre.h config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/Dev_Poll_Reactor.o .obj/Dev_Poll_Reactor.so .shobj/Dev_Poll_Reactor.o .shobj/Dev_Poll_Reactor.so: Dev_Poll_Reactor.cpp \
- Dev_Poll_Reactor.h \
- pre.h \
- Reactor_Impl.h \
- Timer_Queue.h \
- Synch.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Timer_Queue_T.h \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Event_Handler.h \
- Event_Handler.i \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i
-
-.obj/TP_Reactor.o .obj/TP_Reactor.so .shobj/TP_Reactor.o .shobj/TP_Reactor.so: TP_Reactor.cpp TP_Reactor.h \
- pre.h \
- Select_Reactor.h \
- Select_Reactor_T.h \
- Select_Reactor_Base.h \
- Signal.h \
- Synch.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Handle_Set.h \
- Handle_Set.i \
- Token.h Token.i \
- Pipe.h Pipe.i \
- Reactor_Impl.h \
- Select_Reactor_Base.i \
- Reactor.h \
- Reactor.i \
- Select_Reactor_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Timer_Heap.h \
- Timer_Heap_T.h \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Malloc_Base.h \
- Timer_Heap_T.cpp \
- Select_Reactor_T.i \
- TP_Reactor.i
-
-.obj/TkReactor.o .obj/TkReactor.so .shobj/TkReactor.o .shobj/TkReactor.so: TkReactor.cpp TkReactor.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/WFMO_Reactor.o .obj/WFMO_Reactor.so .shobj/WFMO_Reactor.o .shobj/WFMO_Reactor.so: WFMO_Reactor.cpp \
- WFMO_Reactor.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/XtReactor.o .obj/XtReactor.so .shobj/XtReactor.o .shobj/XtReactor.so: XtReactor.cpp XtReactor.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/QtReactor.o .obj/QtReactor.so .shobj/QtReactor.o .shobj/QtReactor.so: QtReactor.cpp QtReactor.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/Asynch_IO.o .obj/Asynch_IO.so .shobj/Asynch_IO.o .shobj/Asynch_IO.so: Asynch_IO.cpp Asynch_IO.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Proactor.h \
- Asynch_IO_Impl.h \
- Asynch_IO_Impl.i \
- Thread_Manager.h \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Event_Handler.h \
- Event_Handler.i \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i \
- Timer_List.h \
- Timer_List_T.h \
- Timer_List_T.cpp \
- Timer_Heap.h \
- Timer_Heap_T.h \
- Timer_Heap_T.cpp \
- Timer_Wheel.h \
- Timer_Wheel_T.h \
- Timer_Wheel_T.cpp \
- Proactor.i \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- INET_Addr.h \
- Addr.h Addr.i \
- INET_Addr.i
-
-.obj/Asynch_IO_Impl.o .obj/Asynch_IO_Impl.so .shobj/Asynch_IO_Impl.o .shobj/Asynch_IO_Impl.so: Asynch_IO_Impl.cpp \
- Asynch_IO_Impl.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Asynch_IO.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Asynch_IO_Impl.i
-
-.obj/Asynch_Pseudo_Task.o .obj/Asynch_Pseudo_Task.so .shobj/Asynch_Pseudo_Task.o .shobj/Asynch_Pseudo_Task.so: Asynch_Pseudo_Task.cpp \
- Asynch_Pseudo_Task.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Timer_Queue_T.h \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Event_Handler.h \
- Event_Handler.i \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i \
- Reactor.i \
- Reactor_Impl.h \
- Select_Reactor.h \
- Select_Reactor_T.h \
- Select_Reactor_Base.h \
- Token.h Token.i \
- Pipe.h Pipe.i \
- Select_Reactor_Base.i \
- Select_Reactor_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Timer_Heap.h \
- Timer_Heap_T.h \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Malloc_Base.h \
- Timer_Heap_T.cpp \
- Select_Reactor_T.i \
- Task.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- Svc_Conf_Tokens.h \
- DLL.h \
- Service_Object.i \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Task.i Task_T.h \
- Message_Queue.h \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- IO_Cntl_Msg.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Notification_Strategy.inl \
- Message_Queue.i \
- Task_T.i \
- Task_T.cpp \
- Module.h \
- Module.i \
- Module.cpp \
- Stream_Modules.h \
- Stream_Modules.cpp
-
-.obj/POSIX_Asynch_IO.o .obj/POSIX_Asynch_IO.so .shobj/POSIX_Asynch_IO.o .shobj/POSIX_Asynch_IO.so: POSIX_Asynch_IO.cpp \
- POSIX_Asynch_IO.h \
- config-all.h \
- pre.h config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Asynch_IO_Impl.h \
- Asynch_IO.h \
- Asynch_IO_Impl.i \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Map_Manager.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Map_Manager.i \
- Map_Manager.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Service_Config.h \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- POSIX_Asynch_IO.i \
- Proactor.h \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Timer_List.h \
- Timer_List_T.h \
- Timer_List_T.cpp \
- Timer_Heap.h \
- Timer_Heap_T.h \
- Timer_Heap_T.cpp \
- Timer_Wheel.h \
- Timer_Wheel_T.h \
- Timer_Wheel_T.cpp \
- Proactor.i \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- INET_Addr.h \
- Addr.h Addr.i \
- INET_Addr.i \
- Asynch_Pseudo_Task.h \
- Select_Reactor.h \
- Select_Reactor_T.h \
- Select_Reactor_Base.h \
- Token.h Token.i \
- Pipe.h Pipe.i \
- Select_Reactor_Base.i \
- Select_Reactor_T.cpp \
- Select_Reactor_T.i \
- Task.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- DLL.h \
- Service_Object.i \
- Task.i Task_T.h \
- Message_Queue.h \
- IO_Cntl_Msg.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Notification_Strategy.inl \
- Message_Queue.i \
- Task_T.i \
- Task_T.cpp \
- Module.h \
- Module.i \
- Module.cpp \
- Stream_Modules.h \
- Stream_Modules.cpp \
- POSIX_Proactor.h \
- Proactor_Impl.h \
- POSIX_Proactor.i
-
-.obj/WIN32_Asynch_IO.o .obj/WIN32_Asynch_IO.so .shobj/WIN32_Asynch_IO.o .shobj/WIN32_Asynch_IO.so: WIN32_Asynch_IO.cpp \
- WIN32_Asynch_IO.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/Addr.o .obj/Addr.so .shobj/Addr.o .shobj/Addr.so: Addr.cpp Addr.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.i \
- Log_Msg.h \
- Global_Macros.h \
- OS_Export.h \
- Default_Constants.h \
- Log_Priority.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/INET_Addr.o .obj/INET_Addr.so .shobj/INET_Addr.o .shobj/INET_Addr.so: INET_Addr.cpp INET_Addr.h \
- pre.h \
- Sock_Connect.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Sock_Connect.i \
- Addr.h Addr.i \
- INET_Addr.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/IPC_SAP.o .obj/IPC_SAP.so .shobj/IPC_SAP.o .shobj/IPC_SAP.so: IPC_SAP.cpp IPC_SAP.h \
- pre.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/LSOCK.o .obj/LSOCK.so .shobj/LSOCK.o .shobj/LSOCK.so: LSOCK.cpp LSOCK.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- SOCK.h \
- ACE_export.h \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i LSOCK.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/LSOCK_Acceptor.o .obj/LSOCK_Acceptor.so .shobj/LSOCK_Acceptor.o .shobj/LSOCK_Acceptor.so: LSOCK_Acceptor.cpp \
- LSOCK_Acceptor.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- SOCK_Acceptor.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h \
- ACE_export.h \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- SOCK_Acceptor.i \
- UNIX_Addr.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- UNIX_Addr.i \
- LSOCK_Stream.h \
- LSOCK.h LSOCK.i \
- LSOCK_Stream.i
-
-.obj/LSOCK_CODgram.o .obj/LSOCK_CODgram.so .shobj/LSOCK_CODgram.o .shobj/LSOCK_CODgram.so: LSOCK_CODgram.cpp \
- LSOCK_CODgram.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- LSOCK.h SOCK.h \
- ACE_export.h \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i LSOCK.i \
- SOCK_CODgram.h \
- SOCK_IO.h ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_CODgram.i \
- LSOCK_CODgram.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/LSOCK_Connector.o .obj/LSOCK_Connector.so .shobj/LSOCK_Connector.o .shobj/LSOCK_Connector.so: LSOCK_Connector.cpp \
- LSOCK_Connector.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- SOCK_Connector.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h \
- ACE_export.h \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- SOCK_Connector.i \
- LSOCK_Stream.h \
- UNIX_Addr.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- UNIX_Addr.i \
- LSOCK.h LSOCK.i \
- LSOCK_Stream.i \
- LSOCK_Connector.i
-
-.obj/LSOCK_Dgram.o .obj/LSOCK_Dgram.so .shobj/LSOCK_Dgram.o .shobj/LSOCK_Dgram.so: LSOCK_Dgram.cpp LSOCK_Dgram.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- SOCK_Dgram.h \
- SOCK.h \
- ACE_export.h \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i \
- INET_Addr.h \
- Sock_Connect.h \
- Sock_Connect.i \
- INET_Addr.i \
- SOCK_Dgram.i \
- LSOCK.h LSOCK.i \
- LSOCK_Dgram.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/LSOCK_Stream.o .obj/LSOCK_Stream.so .shobj/LSOCK_Stream.o .shobj/LSOCK_Stream.so: LSOCK_Stream.cpp \
- LSOCK_Stream.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h \
- ACE_export.h \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- UNIX_Addr.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- UNIX_Addr.i \
- LSOCK.h LSOCK.i \
- LSOCK_Stream.i
-
-.obj/SOCK.o .obj/SOCK.so .shobj/SOCK.o .shobj/SOCK.so: SOCK.cpp SOCK.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/SOCK_Acceptor.o .obj/SOCK_Acceptor.so .shobj/SOCK_Acceptor.o .shobj/SOCK_Acceptor.so: SOCK_Acceptor.cpp \
- SOCK_Acceptor.h \
- pre.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- SOCK_Acceptor.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- OS_QoS.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp
-
-.obj/SOCK_CODgram.o .obj/SOCK_CODgram.so .shobj/SOCK_CODgram.o .shobj/SOCK_CODgram.so: SOCK_CODgram.cpp \
- SOCK_CODgram.h \
- pre.h SOCK_IO.h \
- SOCK.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_CODgram.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/Sock_Connect.o .obj/Sock_Connect.so .shobj/Sock_Connect.o .shobj/Sock_Connect.so: Sock_Connect.cpp \
- Sock_Connect.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Sock_Connect.i \
- INET_Addr.h \
- Addr.h Addr.i \
- INET_Addr.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Handle_Set.h \
- Handle_Set.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- ACE.i Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- SString.i
-
-.obj/SOCK_Connector.o .obj/SOCK_Connector.so .shobj/SOCK_Connector.o .shobj/SOCK_Connector.so: SOCK_Connector.cpp \
- SOCK_Connector.h \
- pre.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- SOCK_Connector.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- OS_QoS.h
-
-.obj/SOCK_Dgram.o .obj/SOCK_Dgram.so .shobj/SOCK_Dgram.o .shobj/SOCK_Dgram.so: SOCK_Dgram.cpp SOCK_Dgram.h \
- pre.h SOCK.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i \
- INET_Addr.h \
- Sock_Connect.h \
- Sock_Connect.i \
- INET_Addr.i \
- SOCK_Dgram.i \
- Handle_Set.h \
- Handle_Set.i \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- ACE.i
-
-.obj/SOCK_Dgram_Bcast.o .obj/SOCK_Dgram_Bcast.so .shobj/SOCK_Dgram_Bcast.o .shobj/SOCK_Dgram_Bcast.so: SOCK_Dgram_Bcast.cpp \
- SOCK_Dgram_Bcast.h \
- pre.h \
- INET_Addr.h \
- Sock_Connect.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Sock_Connect.i \
- Addr.h Addr.i \
- INET_Addr.i \
- SOCK_Dgram.h \
- SOCK.h \
- IPC_SAP.h \
- Flag_Manip.h \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i \
- SOCK_Dgram.i \
- SOCK_Dgram_Bcast.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- ACE.i
-
-.obj/SOCK_Dgram_Mcast.o .obj/SOCK_Dgram_Mcast.so .shobj/SOCK_Dgram_Mcast.o .shobj/SOCK_Dgram_Mcast.so: SOCK_Dgram_Mcast.cpp \
- SOCK_Dgram_Mcast.h \
- pre.h \
- SOCK_Dgram.h \
- SOCK.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i \
- INET_Addr.h \
- Sock_Connect.h \
- Sock_Connect.i \
- INET_Addr.i \
- SOCK_Dgram.i \
- SOCK_Dgram_Mcast.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/SOCK_IO.o .obj/SOCK_IO.so .shobj/SOCK_IO.o .shobj/SOCK_IO.so: SOCK_IO.cpp SOCK_IO.h \
- pre.h SOCK.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- Handle_Set.h \
- Handle_Set.i
-
-.obj/SOCK_Stream.o .obj/SOCK_Stream.so .shobj/SOCK_Stream.o .shobj/SOCK_Stream.so: SOCK_Stream.cpp SOCK_Stream.h \
- pre.h SOCK_IO.h \
- SOCK.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i
-
-.obj/ATM_Addr.o .obj/ATM_Addr.so .shobj/ATM_Addr.o .shobj/ATM_Addr.so: ATM_Addr.cpp ATM_Addr.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/ATM_Acceptor.o .obj/ATM_Acceptor.so .shobj/ATM_Acceptor.o .shobj/ATM_Acceptor.so: ATM_Acceptor.cpp \
- ATM_Acceptor.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/ATM_Connector.o .obj/ATM_Connector.so .shobj/ATM_Connector.o .shobj/ATM_Connector.so: ATM_Connector.cpp \
- ATM_Connector.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/ATM_Params.o .obj/ATM_Params.so .shobj/ATM_Params.o .shobj/ATM_Params.so: ATM_Params.cpp ATM_Params.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/ATM_QoS.o .obj/ATM_QoS.so .shobj/ATM_QoS.o .shobj/ATM_QoS.so: ATM_QoS.cpp ATM_QoS.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/ATM_Stream.o .obj/ATM_Stream.so .shobj/ATM_Stream.o .shobj/ATM_Stream.so: ATM_Stream.cpp ATM_Stream.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/XTI_ATM_Mcast.o .obj/XTI_ATM_Mcast.so .shobj/XTI_ATM_Mcast.o .shobj/XTI_ATM_Mcast.so: XTI_ATM_Mcast.cpp \
- XTI_ATM_Mcast.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/DEV.o .obj/DEV.so .shobj/DEV.o .shobj/DEV.so: DEV.cpp DEV.h \
- pre.h IO_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IO_SAP.i \
- DEV_Addr.h \
- Addr.h Addr.i \
- DEV_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i DEV.i
-
-.obj/DEV_Addr.o .obj/DEV_Addr.so .shobj/DEV_Addr.o .shobj/DEV_Addr.so: DEV_Addr.cpp DEV_Addr.h \
- pre.h Addr.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.i OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- DEV_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i
-
-.obj/DEV_Connector.o .obj/DEV_Connector.so .shobj/DEV_Connector.o .shobj/DEV_Connector.so: DEV_Connector.cpp \
- DEV_Connector.h \
- pre.h DEV_IO.h \
- DEV.h IO_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IO_SAP.i \
- DEV_Addr.h \
- Addr.h Addr.i \
- DEV_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i DEV.i \
- DEV_IO.i \
- DEV_Connector.i
-
-.obj/DEV_IO.o .obj/DEV_IO.so .shobj/DEV_IO.o .shobj/DEV_IO.so: DEV_IO.cpp DEV_IO.h \
- pre.h DEV.h \
- IO_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IO_SAP.i \
- DEV_Addr.h \
- Addr.h Addr.i \
- DEV_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i DEV.i \
- DEV_IO.i
-
-.obj/FIFO.o .obj/FIFO.so .shobj/FIFO.o .shobj/FIFO.so: FIFO.cpp FIFO.h \
- pre.h IPC_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- FIFO.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/FIFO_Recv.o .obj/FIFO_Recv.so .shobj/FIFO_Recv.o .shobj/FIFO_Recv.so: FIFO_Recv.cpp FIFO_Recv.h \
- pre.h FIFO.h \
- IPC_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- FIFO.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- FIFO_Recv.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/FIFO_Recv_Msg.o .obj/FIFO_Recv_Msg.so .shobj/FIFO_Recv_Msg.o .shobj/FIFO_Recv_Msg.so: FIFO_Recv_Msg.cpp \
- FIFO_Recv_Msg.h \
- pre.h \
- FIFO_Recv.h \
- FIFO.h \
- IPC_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- FIFO.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- FIFO_Recv.i \
- FIFO_Recv_Msg.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/FIFO_Send.o .obj/FIFO_Send.so .shobj/FIFO_Send.o .shobj/FIFO_Send.so: FIFO_Send.cpp FIFO_Send.h \
- pre.h FIFO.h \
- IPC_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- FIFO.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- FIFO_Send.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/FIFO_Send_Msg.o .obj/FIFO_Send_Msg.so .shobj/FIFO_Send_Msg.o .shobj/FIFO_Send_Msg.so: FIFO_Send_Msg.cpp \
- FIFO_Send_Msg.h \
- pre.h \
- FIFO_Send.h \
- FIFO.h \
- IPC_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- FIFO.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- FIFO_Send.i \
- FIFO_Send_Msg.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/FILE_Addr.o .obj/FILE_Addr.so .shobj/FILE_Addr.o .shobj/FILE_Addr.so: FILE_Addr.cpp FILE_Addr.h \
- pre.h Addr.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.i \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- FILE_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i
-
-.obj/FILE.o .obj/FILE.so .shobj/FILE.o .shobj/FILE.so: FILE.cpp FILE.h \
- pre.h IO_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IO_SAP.i \
- FILE_Addr.h \
- Addr.h Addr.i \
- FILE_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- FILE.i
-
-.obj/FILE_Connector.o .obj/FILE_Connector.so .shobj/FILE_Connector.o .shobj/FILE_Connector.so: FILE_Connector.cpp \
- FILE_Connector.h \
- pre.h FILE_IO.h \
- FILE.h IO_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IO_SAP.i \
- FILE_Addr.h \
- Addr.h Addr.i \
- FILE_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- FILE.i \
- FILE_IO.i \
- FILE_Connector.i
-
-.obj/FILE_IO.o .obj/FILE_IO.so .shobj/FILE_IO.o .shobj/FILE_IO.so: FILE_IO.cpp FILE_IO.h \
- pre.h FILE.h \
- IO_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IO_SAP.i \
- FILE_Addr.h \
- Addr.h Addr.i \
- FILE_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- FILE.i \
- FILE_IO.i
-
-.obj/IO_SAP.o .obj/IO_SAP.so .shobj/IO_SAP.o .shobj/IO_SAP.so: IO_SAP.cpp IO_SAP.h \
- pre.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IO_SAP.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/IOStream.o .obj/IOStream.so .shobj/IOStream.o .shobj/IOStream.so: IOStream.cpp IOStream.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/Pipe.o .obj/Pipe.so .shobj/Pipe.o .shobj/Pipe.so: Pipe.cpp Pipe.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Pipe.i \
- SOCK_Acceptor.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h Addr.h \
- Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- SOCK_Acceptor.i \
- SOCK_Connector.h \
- SOCK_Connector.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/Signal.o .obj/Signal.so .shobj/Signal.o .shobj/Signal.so: Signal.cpp Synch_T.h \
- pre.h Synch.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Signal.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.i \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Node.h Node.cpp \
- Array_Base.h \
- Malloc_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Containers_T.i \
- Containers_T.cpp
-
-.obj/SPIPE_Addr.o .obj/SPIPE_Addr.so .shobj/SPIPE_Addr.o .shobj/SPIPE_Addr.so: SPIPE_Addr.cpp SPIPE_Addr.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h Addr.i \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- SPIPE_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i
-
-.obj/SPIPE.o .obj/SPIPE.so .shobj/SPIPE.o .shobj/SPIPE.so: SPIPE.cpp SPIPE.h \
- pre.h IPC_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SPIPE_Addr.h \
- Addr.h Addr.i \
- SPIPE_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- SPIPE.i
-
-.obj/SPIPE_Acceptor.o .obj/SPIPE_Acceptor.so .shobj/SPIPE_Acceptor.o .shobj/SPIPE_Acceptor.so: SPIPE_Acceptor.cpp \
- SPIPE_Acceptor.h \
- pre.h \
- SPIPE_Stream.h \
- SPIPE.h \
- IPC_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SPIPE_Addr.h \
- Addr.h Addr.i \
- SPIPE_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- SPIPE.i \
- SPIPE_Stream.i
-
-.obj/SPIPE_Connector.o .obj/SPIPE_Connector.so .shobj/SPIPE_Connector.o .shobj/SPIPE_Connector.so: SPIPE_Connector.cpp \
- SPIPE_Connector.h \
- pre.h \
- SPIPE_Stream.h \
- SPIPE.h \
- IPC_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SPIPE_Addr.h \
- Addr.h Addr.i \
- SPIPE_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- SPIPE.i \
- SPIPE_Stream.i \
- SPIPE_Connector.i
-
-.obj/SPIPE_Stream.o .obj/SPIPE_Stream.so .shobj/SPIPE_Stream.o .shobj/SPIPE_Stream.so: SPIPE_Stream.cpp \
- SPIPE_Stream.h \
- pre.h SPIPE.h \
- IPC_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SPIPE_Addr.h \
- Addr.h Addr.i \
- SPIPE_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- SPIPE.i \
- SPIPE_Stream.i
-
-.obj/SV_Message.o .obj/SV_Message.so .shobj/SV_Message.o .shobj/SV_Message.so: SV_Message.cpp SV_Message.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- SV_Message.i
-
-.obj/SV_Message_Queue.o .obj/SV_Message_Queue.so .shobj/SV_Message_Queue.o .shobj/SV_Message_Queue.so: SV_Message_Queue.cpp \
- SV_Message_Queue.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- SV_Message.h \
- ACE_export.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- SV_Message.i \
- SV_Message_Queue.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/SV_Semaphore_Complex.o .obj/SV_Semaphore_Complex.so .shobj/SV_Semaphore_Complex.o .shobj/SV_Semaphore_Complex.so: SV_Semaphore_Complex.cpp \
- SV_Semaphore_Complex.h \
- pre.h \
- SV_Semaphore_Simple.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/SV_Semaphore_Simple.o .obj/SV_Semaphore_Simple.so .shobj/SV_Semaphore_Simple.o .shobj/SV_Semaphore_Simple.so: SV_Semaphore_Simple.cpp \
- SV_Semaphore_Simple.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- SV_Semaphore_Simple.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i
-
-.obj/SV_Shared_Memory.o .obj/SV_Shared_Memory.so .shobj/SV_Shared_Memory.o .shobj/SV_Shared_Memory.so: SV_Shared_Memory.cpp \
- SV_Shared_Memory.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- SV_Shared_Memory.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/TLI.o .obj/TLI.so .shobj/TLI.o .shobj/TLI.so: TLI.cpp TLI.h \
- pre.h IPC_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- Addr.h Addr.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/TLI_Acceptor.o .obj/TLI_Acceptor.so .shobj/TLI_Acceptor.o .shobj/TLI_Acceptor.so: TLI_Acceptor.cpp \
- TLI_Acceptor.h \
- pre.h TLI.h \
- IPC_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- Addr.h Addr.i \
- TLI_Stream.h \
- INET_Addr.h \
- Sock_Connect.h \
- Sock_Connect.i \
- INET_Addr.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- ACE.i
-
-.obj/TLI_Connector.o .obj/TLI_Connector.so .shobj/TLI_Connector.o .shobj/TLI_Connector.so: TLI_Connector.cpp \
- Handle_Set.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Handle_Set.i \
- TLI_Connector.h \
- TLI_Stream.h \
- TLI.h IPC_SAP.h \
- Flag_Manip.h \
- Flag_Manip.i \
- IPC_SAP.i \
- Addr.h Addr.i \
- INET_Addr.h \
- Sock_Connect.h \
- Sock_Connect.i \
- INET_Addr.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- ACE.i
-
-.obj/TLI_Stream.o .obj/TLI_Stream.so .shobj/TLI_Stream.o .shobj/TLI_Stream.so: TLI_Stream.cpp TLI_Stream.h \
- pre.h TLI.h \
- IPC_SAP.h \
- Flag_Manip.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- Addr.h Addr.i \
- INET_Addr.h \
- Sock_Connect.h \
- Sock_Connect.i \
- INET_Addr.i \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- ACE.i
-
-.obj/TTY_IO.o .obj/TTY_IO.so .shobj/TTY_IO.o .shobj/TTY_IO.so: TTY_IO.cpp TTY_IO.h \
- OS.h pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- DEV_IO.h DEV.h \
- IO_SAP.h \
- Flag_Manip.h \
- Flag_Manip.i \
- IO_SAP.i \
- DEV_Addr.h \
- Addr.h Addr.i \
- DEV_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i DEV.i \
- DEV_IO.i
-
-.obj/UNIX_Addr.o .obj/UNIX_Addr.so .shobj/UNIX_Addr.o .shobj/UNIX_Addr.so: UNIX_Addr.cpp UNIX_Addr.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h \
- ACE_export.h \
- Addr.i \
- Log_Msg.h \
- Global_Macros.h \
- OS_Export.h \
- Default_Constants.h \
- Log_Priority.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- UNIX_Addr.i
-
-.obj/UPIPE_Acceptor.o .obj/UPIPE_Acceptor.so .shobj/UPIPE_Acceptor.o .shobj/UPIPE_Acceptor.so: UPIPE_Acceptor.cpp \
- UPIPE_Acceptor.h \
- pre.h \
- UPIPE_Stream.h \
- Stream.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- IO_Cntl_Msg.h \
- ACE_export.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- Malloc_Base.h \
- Module.h \
- Task_T.h \
- Message_Queue.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Event_Handler.h \
- Event_Handler.i \
- Notification_Strategy.inl \
- Message_Queue.i \
- Task.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- Svc_Conf_Tokens.h \
- DLL.h \
- Service_Object.i \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Task.i Task_T.i \
- Task_T.cpp \
- Module.i \
- Module.cpp \
- Stream_Modules.h \
- Stream_Modules.cpp \
- Stream.i \
- Stream.cpp \
- SPIPE.h \
- IPC_SAP.h \
- IPC_SAP.i \
- SPIPE_Addr.h \
- Addr.h Addr.i \
- SPIPE_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- SPIPE.i \
- UPIPE_Addr.h \
- UPIPE_Stream.i \
- SPIPE_Acceptor.h \
- SPIPE_Stream.h \
- SPIPE_Stream.i \
- UPIPE_Acceptor.i
-
-.obj/UPIPE_Connector.o .obj/UPIPE_Connector.so .shobj/UPIPE_Connector.o .shobj/UPIPE_Connector.so: UPIPE_Connector.cpp \
- UPIPE_Connector.h \
- pre.h \
- UPIPE_Stream.h \
- Stream.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- IO_Cntl_Msg.h \
- ACE_export.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- Malloc_Base.h \
- Module.h \
- Task_T.h \
- Message_Queue.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Event_Handler.h \
- Event_Handler.i \
- Notification_Strategy.inl \
- Message_Queue.i \
- Task.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- Svc_Conf_Tokens.h \
- DLL.h \
- Service_Object.i \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Task.i Task_T.i \
- Task_T.cpp \
- Module.i \
- Module.cpp \
- Stream_Modules.h \
- Stream_Modules.cpp \
- Stream.i \
- Stream.cpp \
- SPIPE.h \
- IPC_SAP.h \
- IPC_SAP.i \
- SPIPE_Addr.h \
- Addr.h Addr.i \
- SPIPE_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- SPIPE.i \
- UPIPE_Addr.h \
- UPIPE_Stream.i \
- SPIPE_Stream.h \
- SPIPE_Stream.i \
- UPIPE_Connector.i
-
-.obj/UPIPE_Stream.o .obj/UPIPE_Stream.so .shobj/UPIPE_Stream.o .shobj/UPIPE_Stream.so: UPIPE_Stream.cpp \
- UPIPE_Stream.h \
- pre.h Stream.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- IO_Cntl_Msg.h \
- ACE_export.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- Malloc_Base.h \
- Module.h \
- Task_T.h \
- Message_Queue.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Event_Handler.h \
- Event_Handler.i \
- Notification_Strategy.inl \
- Message_Queue.i \
- Task.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- Svc_Conf_Tokens.h \
- DLL.h \
- Service_Object.i \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Task.i Task_T.i \
- Task_T.cpp \
- Module.i \
- Module.cpp \
- Stream_Modules.h \
- Stream_Modules.cpp \
- Stream.i \
- Stream.cpp \
- SPIPE.h \
- IPC_SAP.h \
- IPC_SAP.i \
- SPIPE_Addr.h \
- Addr.h Addr.i \
- SPIPE_Addr.i \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- SPIPE.i \
- UPIPE_Addr.h \
- UPIPE_Stream.i
-
-.obj/MEM_Acceptor.o .obj/MEM_Acceptor.so .shobj/MEM_Acceptor.o .shobj/MEM_Acceptor.so: MEM_Acceptor.cpp \
- MEM_Acceptor.h \
- pre.h \
- SOCK_Acceptor.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- SOCK_Acceptor.i \
- MEM_Stream.h \
- MEM_IO.h \
- MEM_SAP.h \
- PI_Malloc.h \
- Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Based_Pointer_T.h \
- Based_Pointer_T.i \
- Based_Pointer_T.cpp \
- Based_Pointer_Repository.h \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- PI_Malloc.i \
- Process_Mutex.h \
- Process_Mutex.inl \
- MEM_SAP.i \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- Process_Semaphore.h \
- Process_Semaphore.inl \
- MEM_IO.i \
- MEM_Stream.i \
- MEM_Addr.h \
- MEM_Addr.i \
- OS_QoS.h \
- MEM_Acceptor.i
-
-.obj/MEM_Addr.o .obj/MEM_Addr.so .shobj/MEM_Addr.o .shobj/MEM_Addr.so: MEM_Addr.cpp MEM_Addr.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- INET_Addr.h \
- Sock_Connect.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Sock_Connect.i \
- Addr.h Addr.i \
- INET_Addr.i \
- MEM_Addr.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/MEM_Connector.o .obj/MEM_Connector.so .shobj/MEM_Connector.o .shobj/MEM_Connector.so: MEM_Connector.cpp \
- MEM_Connector.h \
- pre.h \
- SOCK_Connector.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- SOCK_Connector.i \
- MEM_Stream.h \
- MEM_IO.h \
- MEM_SAP.h \
- PI_Malloc.h \
- Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Based_Pointer_T.h \
- Based_Pointer_T.i \
- Based_Pointer_T.cpp \
- Based_Pointer_Repository.h \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- PI_Malloc.i \
- Process_Mutex.h \
- Process_Mutex.inl \
- MEM_SAP.i \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- Process_Semaphore.h \
- Process_Semaphore.inl \
- MEM_IO.i \
- MEM_Stream.i \
- MEM_Addr.h \
- MEM_Addr.i \
- MEM_Connector.i
-
-.obj/MEM_IO.o .obj/MEM_IO.so .shobj/MEM_IO.o .shobj/MEM_IO.so: MEM_IO.cpp MEM_IO.h \
- pre.h SOCK.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i \
- MEM_SAP.h \
- PI_Malloc.h \
- Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Based_Pointer_T.h \
- Based_Pointer_T.i \
- Based_Pointer_T.cpp \
- Based_Pointer_Repository.h \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- PI_Malloc.i \
- Process_Mutex.h \
- Process_Mutex.inl \
- MEM_SAP.i \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- Process_Semaphore.h \
- Process_Semaphore.inl \
- MEM_IO.i \
- Handle_Set.h \
- Handle_Set.i
-
-.obj/MEM_SAP.o .obj/MEM_SAP.so .shobj/MEM_SAP.o .shobj/MEM_SAP.so: MEM_SAP.cpp MEM_SAP.h \
- pre.h \
- PI_Malloc.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Malloc.h OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Based_Pointer_T.h \
- Based_Pointer_T.i \
- Based_Pointer_T.cpp \
- Based_Pointer_Repository.h \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- PI_Malloc.i \
- Process_Mutex.h \
- Process_Mutex.inl \
- MEM_SAP.i
-
-.obj/MEM_Stream.o .obj/MEM_Stream.so .shobj/MEM_Stream.o .shobj/MEM_Stream.so: MEM_Stream.cpp MEM_Stream.h \
- pre.h MEM_IO.h \
- SOCK.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Addr.h Addr.i \
- IPC_SAP.h \
- Flag_Manip.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i \
- MEM_SAP.h \
- PI_Malloc.h \
- Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Based_Pointer_T.h \
- Based_Pointer_T.i \
- Based_Pointer_T.cpp \
- Based_Pointer_Repository.h \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- PI_Malloc.i \
- Process_Mutex.h \
- Process_Mutex.inl \
- MEM_SAP.i \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- Process_Semaphore.h \
- Process_Semaphore.inl \
- MEM_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- MEM_Stream.i
-
-.obj/Basic_Stats.o .obj/Basic_Stats.so .shobj/Basic_Stats.o .shobj/Basic_Stats.so: Basic_Stats.cpp Basic_Stats.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- Basic_Stats.inl \
- Log_Msg.h \
- Global_Macros.h \
- OS_Export.h \
- Default_Constants.h \
- Log_Priority.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/High_Res_Timer.o .obj/High_Res_Timer.so .shobj/High_Res_Timer.o .shobj/High_Res_Timer.so: High_Res_Timer.cpp \
- High_Res_Timer.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- High_Res_Timer.i \
- Stats.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Basic_Stats.h \
- Basic_Stats.inl \
- Stats.i Synch.h \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp
-
-.obj/Profile_Timer.o .obj/Profile_Timer.so .shobj/Profile_Timer.o .shobj/Profile_Timer.so: Profile_Timer.cpp \
- Profile_Timer.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- High_Res_Timer.h \
- High_Res_Timer.i \
- Profile_Timer.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/System_Time.o .obj/System_Time.so .shobj/System_Time.o .shobj/System_Time.so: System_Time.cpp System_Time.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Memory_Pool.h \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Malloc_Base.h \
- Memory_Pool.i \
- Malloc_T.h \
- Malloc.h \
- Malloc.i \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp
-
-.obj/Time_Request_Reply.o .obj/Time_Request_Reply.so .shobj/Time_Request_Reply.o .shobj/Time_Request_Reply.so: Time_Request_Reply.cpp \
- Time_Request_Reply.h \
- pre.h \
- Time_Value.h \
- OS_Export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE_export.h \
- Time_Value.inl \
- SString.h \
- SStringfwd.h \
- Basic_Types.h \
- Basic_Types.i \
- String_Base.h \
- String_Base_Const.h \
- Global_Macros.h \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- String_Base.i \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Default_Constants.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i
-
-.obj/Timeprobe.o .obj/Timeprobe.so .shobj/Timeprobe.o .shobj/Timeprobe.so: Timeprobe.cpp OS.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i
-
-.obj/Timer_Hash.o .obj/Timer_Hash.so .shobj/Timer_Hash.o .shobj/Timer_Hash.so: Timer_Hash.cpp Timer_Hash.h \
- pre.h \
- Timer_Hash_T.h \
- Timer_Queue_T.h \
- Free_List.h \
- OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch_T.h \
- Synch.h Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Event_Handler.h \
- Event_Handler.i \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i \
- Timer_Hash_T.cpp \
- High_Res_Timer.h \
- High_Res_Timer.i \
- Timer_Heap_T.h \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Malloc_Base.h \
- Timer_Heap_T.cpp \
- Timer_List_T.h \
- Timer_List_T.cpp
-
-.obj/Timer_Heap.o .obj/Timer_Heap.so .shobj/Timer_Heap.o .shobj/Timer_Heap.so: Timer_Heap.cpp Timer_Heap.h \
- pre.h \
- Timer_Heap_T.h \
- Timer_Queue_T.h \
- Free_List.h \
- OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch_T.h \
- Synch.h Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Event_Handler.h \
- Event_Handler.i \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Malloc_Base.h \
- Timer_Heap_T.cpp
-
-.obj/Timer_List.o .obj/Timer_List.so .shobj/Timer_List.o .shobj/Timer_List.so: Timer_List.cpp Timer_List.h \
- pre.h \
- Timer_List_T.h \
- Timer_Queue_T.h \
- Free_List.h \
- OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch_T.h \
- Synch.h Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Event_Handler.h \
- Event_Handler.i \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i \
- Timer_List_T.cpp
-
-.obj/Timer_Queue.o .obj/Timer_Queue.so .shobj/Timer_Queue.o .shobj/Timer_Queue.so: Timer_Queue.cpp Containers.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Containers.i \
- Containers_T.h \
- Node.h Node.cpp \
- Array_Base.h \
- Global_Macros.h \
- OS_Export.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Malloc_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Timer_Queue.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Timer_Queue_T.h \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Event_Handler.h \
- Event_Handler.i \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i
-
-.obj/Timer_Wheel.o .obj/Timer_Wheel.so .shobj/Timer_Wheel.o .shobj/Timer_Wheel.so: Timer_Wheel.cpp Timer_Wheel.h \
- pre.h \
- Timer_Wheel_T.h \
- Timer_Queue_T.h \
- Free_List.h \
- OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch_T.h \
- Synch.h Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Event_Handler.h \
- Event_Handler.i \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i \
- Timer_Wheel_T.cpp
-
-.obj/DLL.o .obj/DLL.so .shobj/DLL.o .shobj/DLL.so: DLL.cpp DLL.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- DLL_Manager.h \
- Synch_T.h \
- Synch.h Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- SString.i
-
-.obj/DLL_Manager.o .obj/DLL_Manager.so .shobj/DLL_Manager.o .shobj/DLL_Manager.so: DLL_Manager.cpp DLL_Manager.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch_T.h \
- Synch.h Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- SString.i \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp
-
-.obj/Dynamic_Service_Base.o .obj/Dynamic_Service_Base.so .shobj/Dynamic_Service_Base.o .shobj/Dynamic_Service_Base.so: Dynamic_Service_Base.cpp \
- Dynamic_Service_Base.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Service_Config.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- OS_Memory.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Service_Repository.h \
- Service_Repository.i \
- Service_Types.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- DLL.h \
- Service_Object.i \
- Service_Types.i
-
-.obj/Parse_Node.o .obj/Parse_Node.so .shobj/Parse_Node.o .shobj/Parse_Node.so: Parse_Node.cpp Parse_Node.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- DLL.h OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Parse_Node.i \
- Service_Config.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Service_Repository.h \
- Service_Repository.i \
- Service_Types.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- Service_Object.i \
- Service_Types.i \
- Task.h \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Task.i Task_T.h \
- Message_Queue.h \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- IO_Cntl_Msg.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Notification_Strategy.inl \
- Message_Queue.i \
- Task_T.i \
- Task_T.cpp \
- Module.h \
- Module.i \
- Module.cpp \
- Stream_Modules.h \
- Stream_Modules.cpp
-
-.obj/Service_Config.o .obj/Service_Config.so .shobj/Service_Config.o .shobj/Service_Config.so: Service_Config.cpp \
- Svc_Conf.h \
- pre.h Obstack.h \
- Obstack_T.h \
- Obchunk.h \
- Malloc.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Obchunk.i \
- Obstack_T.i \
- Obstack_T.cpp \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Parse_Node.h \
- DLL.h \
- Parse_Node.i \
- Get_Opt.h \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Get_Opt.i \
- ARGV.h ARGV.i \
- Service_Manager.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h Addr.h \
- Addr.i \
- IPC_SAP.h \
- IPC_SAP.i \
- SOCK.i \
- SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- SOCK_Acceptor.h \
- SOCK_Acceptor.i \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- Service_Object.i \
- Service_Manager.i \
- Service_Repository.h \
- Service_Repository.i \
- Service_Types.h \
- Service_Types.i \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i
-
-.obj/Service_Manager.o .obj/Service_Manager.so .shobj/Service_Manager.o .shobj/Service_Manager.so: Service_Manager.cpp \
- Get_Opt.h pre.h \
- SString.h \
- SStringfwd.h \
- Basic_Types.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE_export.h \
- Basic_Types.i \
- String_Base.h \
- String_Base_Const.h \
- Global_Macros.h \
- OS_Export.h \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- String_Base.i \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Get_Opt.i \
- Service_Repository.h \
- Service_Repository.i \
- Service_Config.h \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Service_Manager.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h Addr.h \
- Addr.i \
- IPC_SAP.h \
- IPC_SAP.i \
- SOCK.i \
- SOCK_IO.i \
- INET_Addr.h \
- INET_Addr.i \
- SOCK_Stream.i \
- SOCK_Acceptor.h \
- SOCK_Acceptor.i \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- DLL.h \
- Service_Object.i \
- Service_Manager.i \
- Service_Types.h \
- Service_Types.i \
- WFMO_Reactor.h
-
-.obj/Service_Object.o .obj/Service_Object.so .shobj/Service_Object.o .shobj/Service_Object.so: Service_Object.cpp \
- Service_Object.h \
- pre.h \
- Shared_Object.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Shared_Object.i \
- Svc_Conf_Tokens.h \
- Event_Handler.h \
- Event_Handler.i \
- DLL.h \
- Service_Object.i \
- Service_Types.h \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Synch.h \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Service_Types.i
-
-.obj/Service_Repository.o .obj/Service_Repository.so .shobj/Service_Repository.o .shobj/Service_Repository.so: Service_Repository.cpp \
- Service_Repository.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Default_Constants.h \
- Synch.h OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Service_Repository.i \
- Service_Types.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- Svc_Conf_Tokens.h \
- Event_Handler.h \
- Event_Handler.i \
- DLL.h \
- Service_Object.i \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Service_Types.i \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp
-
-.obj/Service_Types.o .obj/Service_Types.so .shobj/Service_Types.o .shobj/Service_Types.so: Service_Types.cpp \
- Service_Types.h \
- pre.h \
- Service_Object.h \
- Shared_Object.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Shared_Object.i \
- Svc_Conf_Tokens.h \
- Event_Handler.h \
- Event_Handler.i \
- DLL.h \
- Service_Object.i \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Synch.h \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Service_Types.i \
- Stream_Modules.h \
- Task.h \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Task.i Task_T.h \
- Message_Queue.h \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- IO_Cntl_Msg.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Notification_Strategy.inl \
- Message_Queue.i \
- Task_T.i \
- Task_T.cpp \
- Module.h \
- Module.i \
- Module.cpp \
- Stream_Modules.cpp \
- Stream.h \
- Stream.i \
- Stream.cpp
-
-.obj/Service_Templates.o .obj/Service_Templates.so .shobj/Service_Templates.o .shobj/Service_Templates.so: Service_Templates.cpp \
- Service_Templates.h \
- pre.h \
- Svc_Conf.h \
- Obstack.h \
- Obstack_T.h \
- Obchunk.h \
- Malloc.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Obchunk.i \
- Obstack_T.i \
- Obstack_T.cpp \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Parse_Node.h \
- DLL.h \
- Parse_Node.i \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Stream_Modules.h \
- Task.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- Service_Object.i \
- Task.i Task_T.h \
- Message_Queue.h \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- IO_Cntl_Msg.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Notification_Strategy.inl \
- Message_Queue.i \
- Task_T.i \
- Task_T.cpp \
- Module.h \
- Module.i \
- Module.cpp \
- Stream_Modules.cpp \
- Stream.h \
- Stream.i \
- Stream.cpp
-
-.obj/Shared_Object.o .obj/Shared_Object.so .shobj/Shared_Object.o .shobj/Shared_Object.so: Shared_Object.cpp \
- Shared_Object.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Shared_Object.i
-
-.obj/XML_Svc_Conf.o .obj/XML_Svc_Conf.so .shobj/XML_Svc_Conf.o .shobj/XML_Svc_Conf.so: XML_Svc_Conf.cpp \
- XML_Svc_Conf.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/Svc_Conf_l.o .obj/Svc_Conf_l.so .shobj/Svc_Conf_l.o .shobj/Svc_Conf_l.so: Svc_Conf_l.cpp OS.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Svc_Conf.h \
- Obstack.h \
- Obstack_T.h \
- Obchunk.h \
- Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Obchunk.i \
- Obstack_T.i \
- Obstack_T.cpp \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Parse_Node.h \
- DLL.h \
- Parse_Node.i \
- Svc_Conf_Lexer_Guard.h
-
-.obj/Svc_Conf_y.o .obj/Svc_Conf_y.so .shobj/Svc_Conf_y.o .shobj/Svc_Conf_y.so: Svc_Conf_y.cpp Svc_Conf.h \
- pre.h Obstack.h \
- Obstack_T.h \
- Obchunk.h \
- Malloc.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Obchunk.i \
- Obstack_T.i \
- Obstack_T.cpp \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Parse_Node.h \
- DLL.h \
- Parse_Node.i \
- ARGV.h ARGV.i \
- Module.h \
- Task_T.h \
- Message_Queue.h \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- IO_Cntl_Msg.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Notification_Strategy.inl \
- Message_Queue.i \
- Task.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- Service_Object.i \
- Thread_Manager.h \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Task.i Task_T.i \
- Task_T.cpp \
- Module.i \
- Module.cpp \
- Stream_Modules.h \
- Stream_Modules.cpp \
- Stream.h \
- Stream.i \
- Stream.cpp \
- Service_Types.h \
- Service_Types.i
-
-.obj/Svc_Conf_Lexer_Guard.o .obj/Svc_Conf_Lexer_Guard.so .shobj/Svc_Conf_Lexer_Guard.o .shobj/Svc_Conf_Lexer_Guard.so: Svc_Conf_Lexer_Guard.cpp \
- Svc_Conf_Lexer_Guard.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Svc_Conf.h \
- Obstack.h \
- Obstack_T.h \
- Obchunk.h \
- Malloc.h \
- ACE_export.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Obchunk.i \
- Obstack_T.i \
- Obstack_T.cpp \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Parse_Node.h \
- DLL.h \
- Parse_Node.i
-
-.obj/CDR_Base.o .obj/CDR_Base.so .shobj/CDR_Base.o .shobj/CDR_Base.so: CDR_Base.cpp CDR_Base.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- Default_Constants.h \
- CDR_Base.inl \
- Message_Block.h \
- Global_Macros.h \
- OS_Export.h \
- Time_Value.h \
- Time_Value.inl \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Min_Max.h \
- streams.h \
- Trace.h OS.i
-
-.obj/CDR_Stream.o .obj/CDR_Stream.so .shobj/CDR_Stream.o .shobj/CDR_Stream.so: CDR_Stream.cpp CDR_Stream.h \
- pre.h \
- CDR_Base.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- Default_Constants.h \
- CDR_Base.inl \
- SStringfwd.h \
- OS_Memory.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- OS_String.h \
- OS_String.inl \
- Message_Block.h \
- Global_Macros.h \
- Time_Value.h \
- Time_Value.inl \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- CDR_Stream.i \
- SString.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i
-
-.obj/Codeset_IBM1047.o .obj/Codeset_IBM1047.so .shobj/Codeset_IBM1047.o .shobj/Codeset_IBM1047.so: Codeset_IBM1047.cpp \
- Codeset_IBM1047.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl
-
-.obj/Codeset_Registry.o .obj/Codeset_Registry.so .shobj/Codeset_Registry.o .shobj/Codeset_Registry.so: Codeset_Registry.cpp \
- Codeset_Registry.h \
- pre.h SString.h \
- SStringfwd.h \
- Basic_Types.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE_export.h \
- Basic_Types.i \
- String_Base.h \
- String_Base_Const.h \
- Global_Macros.h \
- OS_Export.h \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- String_Base.i \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- CDR_Base.h \
- CDR_Base.inl \
- Codeset_Registry.inl
-
-.obj/Codeset_Registry_db.o .obj/Codeset_Registry_db.so .shobj/Codeset_Registry_db.o .shobj/Codeset_Registry_db.so: Codeset_Registry_db.cpp \
- Codeset_Registry.h \
- pre.h SString.h \
- SStringfwd.h \
- Basic_Types.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE_export.h \
- Basic_Types.i \
- String_Base.h \
- String_Base_Const.h \
- Global_Macros.h \
- OS_Export.h \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- String_Base.i \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- CDR_Base.h \
- CDR_Base.inl \
- Codeset_Registry.inl
-
-.obj/Message_Queue.o .obj/Message_Queue.so .shobj/Message_Queue.o .shobj/Message_Queue.so: Message_Queue.cpp \
- Message_Queue.h \
- pre.h \
- Message_Block.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Default_Constants.h \
- Global_Macros.h \
- OS_Export.h \
- Time_Value.h \
- Time_Value.inl \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- IO_Cntl_Msg.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Event_Handler.h \
- Event_Handler.i \
- Notification_Strategy.inl \
- Message_Queue.i
-
-.obj/Reactor_Notification_Strategy.o .obj/Reactor_Notification_Strategy.so .shobj/Reactor_Notification_Strategy.o .shobj/Reactor_Notification_Strategy.so: Reactor_Notification_Strategy.cpp \
- Reactor_Notification_Strategy.h \
- pre.h \
- Notification_Strategy.h \
- Event_Handler.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Event_Handler.i \
- Notification_Strategy.inl \
- Reactor_Notification_Strategy.inl \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Timer_Queue_T.h \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Signal.h \
- Signal.i \
- Reactor.i \
- Reactor_Impl.h
-
-.obj/Task.o .obj/Task.so .shobj/Task.o .shobj/Task.so: Task.cpp Task.h \
- pre.h \
- Service_Object.h \
- Shared_Object.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Shared_Object.i \
- Svc_Conf_Tokens.h \
- Event_Handler.h \
- Event_Handler.i \
- DLL.h \
- Service_Object.i \
- Thread_Manager.h \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Thread_Exit.h \
- Thread_Control.h \
- Thread_Control.inl \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- Thread_Manager.i \
- Task.i Task_T.h \
- Message_Queue.h \
- Message_Block.h \
- Message_Block.i \
- Message_Block_T.h \
- Message_Block_T.i \
- Message_Block_T.cpp \
- IO_Cntl_Msg.h \
- Message_Queue_T.h \
- Message_Queue_T.i \
- Message_Queue_T.cpp \
- Notification_Strategy.h \
- Notification_Strategy.inl \
- Message_Queue.i \
- Task_T.i \
- Task_T.cpp \
- Module.h \
- Module.i \
- Module.cpp \
- Stream_Modules.h \
- Stream_Modules.cpp
-
-.obj/Based_Pointer_Repository.o .obj/Based_Pointer_Repository.so .shobj/Based_Pointer_Repository.o .shobj/Based_Pointer_Repository.so: Based_Pointer_Repository.cpp \
- Map_Manager.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Synch.h \
- ACE_export.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Map_Manager.i \
- Map_Manager.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Based_Pointer_Repository.h \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp
-
-.obj/Malloc.o .obj/Malloc.so .shobj/Malloc.o .shobj/Malloc.so: Malloc.cpp Malloc.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp
-
-.obj/PI_Malloc.o .obj/PI_Malloc.so .shobj/PI_Malloc.o .shobj/PI_Malloc.so: PI_Malloc.cpp PI_Malloc.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Malloc.h OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Based_Pointer_T.h \
- Based_Pointer_T.i \
- Based_Pointer_T.cpp \
- Based_Pointer_Repository.h \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp \
- PI_Malloc.i \
- Process_Mutex.h \
- Process_Mutex.inl
-
-.obj/Malloc_Allocator.o .obj/Malloc_Allocator.so .shobj/Malloc_Allocator.o .shobj/Malloc_Allocator.so: Malloc_Allocator.cpp \
- Malloc_Allocator.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Malloc_Base.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc_Allocator.i \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Synch_T.h \
- Synch.h Synch.i \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp
-
-.obj/Malloc_Instantiations.o .obj/Malloc_Instantiations.so .shobj/Malloc_Instantiations.o .shobj/Malloc_Instantiations.so: Malloc_Instantiations.cpp \
- Malloc.h pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i
-
-.obj/Mem_Map.o .obj/Mem_Map.so .shobj/Mem_Map.o .shobj/Mem_Map.so: Mem_Map.cpp Mem_Map.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Mem_Map.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/Memory_Pool.o .obj/Memory_Pool.so .shobj/Memory_Pool.o .shobj/Memory_Pool.so: Memory_Pool.cpp Memory_Pool.h \
- pre.h ACE.h \
- OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Malloc_Base.h \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- Based_Pointer_T.h \
- Based_Pointer_T.i \
- Based_Pointer_T.cpp \
- Based_Pointer_Repository.h \
- Singleton.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp
-
-.obj/Obchunk.o .obj/Obchunk.so .shobj/Obchunk.o .shobj/Obchunk.so: Obchunk.cpp Obchunk.h \
- pre.h Malloc.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Obchunk.i
-
-.obj/Obstack.o .obj/Obstack.so .shobj/Obstack.o .shobj/Obstack.so: Obstack.cpp Obstack.h \
- pre.h \
- Obstack_T.h \
- Obchunk.h \
- Malloc.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Obchunk.i \
- Obstack_T.i \
- Obstack_T.cpp
-
-.obj/Read_Buffer.o .obj/Read_Buffer.so .shobj/Read_Buffer.o .shobj/Read_Buffer.so: Read_Buffer.cpp Read_Buffer.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Read_Buffer.i \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc_Base.h \
- Service_Config.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h
-
-.obj/Shared_Memory.o .obj/Shared_Memory.so .shobj/Shared_Memory.o .shobj/Shared_Memory.so: Shared_Memory.cpp \
- Shared_Memory.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i
-
-.obj/Shared_Memory_MM.o .obj/Shared_Memory_MM.so .shobj/Shared_Memory_MM.o .shobj/Shared_Memory_MM.so: Shared_Memory_MM.cpp \
- Shared_Memory_MM.h \
- pre.h \
- Shared_Memory.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Mem_Map.h \
- Mem_Map.i \
- Shared_Memory_MM.i
-
-.obj/Shared_Memory_SV.o .obj/Shared_Memory_SV.so .shobj/Shared_Memory_SV.o .shobj/Shared_Memory_SV.so: Shared_Memory_SV.cpp \
- Shared_Memory_SV.h \
- pre.h \
- Shared_Memory.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- SV_Shared_Memory.h \
- SV_Shared_Memory.i \
- Shared_Memory_SV.i
-
-.obj/Codecs.o .obj/Codecs.so .shobj/Codecs.o .shobj/Codecs.so: Codecs.cpp OS.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Codecs.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/Local_Tokens.o .obj/Local_Tokens.so .shobj/Local_Tokens.o .shobj/Local_Tokens.so: Local_Tokens.cpp \
- Local_Tokens.h \
- pre.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Local_Tokens.i
-
-.obj/Remote_Tokens.o .obj/Remote_Tokens.so .shobj/Remote_Tokens.o .shobj/Remote_Tokens.so: Remote_Tokens.cpp \
- Remote_Tokens.h \
- pre.h \
- INET_Addr.h \
- Sock_Connect.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Sock_Connect.i \
- Addr.h Addr.i \
- INET_Addr.i \
- SOCK_Connector.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h \
- IPC_SAP.h \
- Flag_Manip.h \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- ACE.i SOCK_IO.i \
- SOCK_Stream.i \
- SOCK_Connector.i \
- Synch_Options.h \
- Synch_Options.i \
- Local_Tokens.h \
- Local_Tokens.i \
- Token_Request_Reply.h \
- Token_Request_Reply.i \
- Remote_Tokens.i \
- Singleton.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Singleton.i \
- Singleton.cpp \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp \
- Framework_Component.h \
- Framework_Component.inl \
- Framework_Component_T.h \
- Framework_Component_T.inl \
- Framework_Component_T.cpp
-
-.obj/Token_Collection.o .obj/Token_Collection.so .shobj/Token_Collection.o .shobj/Token_Collection.so: Token_Collection.cpp \
- Token_Collection.h \
- pre.h \
- Map_Manager.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Synch.h \
- ACE_export.h \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Map_Manager.i \
- Map_Manager.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Local_Tokens.h \
- Local_Tokens.i \
- Token_Collection.i
-
-.obj/Token_Invariants.o .obj/Token_Invariants.so .shobj/Token_Invariants.o .shobj/Token_Invariants.so: Token_Invariants.cpp \
- Token_Invariants.h \
- pre.h Synch.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Map_Manager.h \
- Map_Manager.i \
- Map_Manager.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Local_Tokens.h \
- Local_Tokens.i \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp
-
-.obj/Token_Manager.o .obj/Token_Manager.so .shobj/Token_Manager.o .shobj/Token_Manager.so: Token_Manager.cpp \
- Token_Manager.h \
- pre.h Synch.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Log_Msg.h \
- Log_Priority.h \
- Map_Manager.h \
- Map_Manager.i \
- Map_Manager.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Local_Tokens.h \
- Local_Tokens.i \
- Token_Manager.i \
- Object_Manager.h \
- Object_Manager.i \
- Managed_Object.h \
- Managed_Object.i \
- Managed_Object.cpp
-
-.obj/Token_Request_Reply.o .obj/Token_Request_Reply.so .shobj/Token_Request_Reply.o .shobj/Token_Request_Reply.so: Token_Request_Reply.cpp \
- Token_Request_Reply.h \
- pre.h \
- Local_Tokens.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- Local_Tokens.i \
- Time_Value.h \
- OS_Export.h \
- ACE_export.h \
- Time_Value.inl \
- Token_Request_Reply.i
-
-.obj/Local_Name_Space.o .obj/Local_Name_Space.so .shobj/Local_Name_Space.o .shobj/Local_Name_Space.so: Local_Name_Space.cpp \
- ACE.h pre.h \
- OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i \
- Local_Name_Space.h \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- Malloc_Base.h \
- String_Base.cpp \
- Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- Local_Name_Space_T.h \
- Name_Space.h \
- Name_Proxy.h \
- INET_Addr.h \
- Addr.h Addr.i \
- INET_Addr.i \
- SOCK_Connector.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h \
- IPC_SAP.h \
- IPC_SAP.i \
- SOCK.i \
- SOCK_IO.i \
- SOCK_Stream.i \
- SOCK_Connector.i \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Synch_Options.h \
- Synch_Options.i \
- Name_Request_Reply.h \
- Naming_Context.h \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- DLL.h \
- Service_Object.i \
- Hash_Map_Manager_T.h \
- Functor.h \
- Functor.i \
- Functor_T.h \
- Functor_T.i \
- Functor_T.cpp \
- Hash_Map_Manager_T.i \
- Hash_Map_Manager_T.cpp \
- Local_Name_Space_T.cpp \
- RW_Process_Mutex.h \
- File_Lock.h \
- File_Lock.inl \
- RW_Process_Mutex.inl
-
-.obj/Name_Proxy.o .obj/Name_Proxy.so .shobj/Name_Proxy.o .shobj/Name_Proxy.so: Name_Proxy.cpp Name_Proxy.h \
- pre.h \
- INET_Addr.h \
- Sock_Connect.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS.h \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- Sock_Connect.i \
- Addr.h Addr.i \
- INET_Addr.i \
- SOCK_Connector.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h \
- IPC_SAP.h \
- Flag_Manip.h \
- Flag_Manip.i \
- IPC_SAP.i \
- SOCK.i ACE.h \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- ACE.i SOCK_IO.i \
- SOCK_Stream.i \
- SOCK_Connector.i \
- Service_Config.h \
- Unbounded_Queue.h \
- Node.h Node.cpp \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Malloc_Base.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Unbounded_Set.h \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- SString.h \
- SStringfwd.h \
- String_Base.h \
- String_Base_Const.h \
- String_Base.i \
- String_Base.cpp \
- Malloc.h \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Synch_Options.h \
- Synch_Options.i \
- Name_Request_Reply.h
-
-.obj/Name_Request_Reply.o .obj/Name_Request_Reply.so .shobj/Name_Request_Reply.o .shobj/Name_Request_Reply.so: Name_Request_Reply.cpp \
- Name_Request_Reply.h \
- pre.h \
- Basic_Types.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE_export.h \
- Basic_Types.i \
- Log_Msg.h \
- Global_Macros.h \
- OS_Export.h \
- Default_Constants.h \
- Log_Priority.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl
-
-.obj/Name_Space.o .obj/Name_Space.so .shobj/Name_Space.o .shobj/Name_Space.so: Name_Space.cpp Name_Space.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- SString.h \
- SStringfwd.h \
- Basic_Types.h \
- Basic_Types.i \
- String_Base.h \
- String_Base_Const.h \
- Global_Macros.h \
- OS_Export.h \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- String_Base.i \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- Name_Proxy.h \
- INET_Addr.h \
- Addr.h Addr.i \
- INET_Addr.i \
- SOCK_Connector.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h \
- IPC_SAP.h \
- IPC_SAP.i \
- SOCK.i \
- SOCK_IO.i \
- SOCK_Stream.i \
- SOCK_Connector.i \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Synch_Options.h \
- Synch_Options.i \
- Name_Request_Reply.h
-
-.obj/Naming_Context.o .obj/Naming_Context.so .shobj/Naming_Context.o .shobj/Naming_Context.so: Naming_Context.cpp \
- Get_Opt.h pre.h \
- SString.h \
- SStringfwd.h \
- Basic_Types.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- ACE_export.h \
- Basic_Types.i \
- String_Base.h \
- String_Base_Const.h \
- Global_Macros.h \
- OS_Export.h \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- String_Base.i \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- Containers.h \
- Containers.i \
- Containers_T.h \
- Array_Base.h \
- Array_Base.inl \
- Array_Base.cpp \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- Containers_T.i \
- Containers_T.cpp \
- Get_Opt.i \
- Naming_Context.h \
- Service_Object.h \
- Shared_Object.h \
- Shared_Object.i \
- Svc_Conf_Tokens.h \
- DLL.h \
- Service_Object.i \
- Name_Proxy.h \
- INET_Addr.h \
- Addr.h Addr.i \
- INET_Addr.i \
- SOCK_Connector.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h \
- IPC_SAP.h \
- IPC_SAP.i \
- SOCK.i \
- SOCK_IO.i \
- SOCK_Stream.i \
- SOCK_Connector.i \
- Service_Config.h \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Synch_Options.h \
- Synch_Options.i \
- Name_Request_Reply.h \
- Name_Space.h \
- Remote_Name_Space.h \
- Local_Name_Space_T.h \
- Local_Name_Space.h \
- Hash_Map_Manager_T.h \
- Functor.h \
- Functor.i \
- Functor_T.h \
- Functor_T.i \
- Functor_T.cpp \
- Hash_Map_Manager_T.i \
- Hash_Map_Manager_T.cpp \
- Local_Name_Space_T.cpp \
- Registry_Name_Space.h \
- RW_Process_Mutex.h \
- File_Lock.h \
- File_Lock.inl \
- RW_Process_Mutex.inl
-
-.obj/Registry_Name_Space.o .obj/Registry_Name_Space.so .shobj/Registry_Name_Space.o .shobj/Registry_Name_Space.so: Registry_Name_Space.cpp \
- Registry_Name_Space.h \
- pre.h OS.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- OS_Dirent.h \
- OS_Export.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Dirent.inl \
- OS_String.h \
- Basic_Types.h \
- ACE_export.h \
- Basic_Types.i \
- OS_String.inl \
- OS_Memory.h \
- OS_Memory.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Global_Macros.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i
-
-.obj/Remote_Name_Space.o .obj/Remote_Name_Space.so .shobj/Remote_Name_Space.o .shobj/Remote_Name_Space.so: Remote_Name_Space.cpp \
- Remote_Name_Space.h \
- pre.h \
- ACE_export.h \
- config-all.h \
- config.h \
- config-linux.h \
- config-linux-common.h \
- config-g++-common.h \
- post.h \
- ace_wchar.h \
- ace_wchar.inl \
- SString.h \
- SStringfwd.h \
- Basic_Types.h \
- Basic_Types.i \
- String_Base.h \
- String_Base_Const.h \
- Global_Macros.h \
- OS_Export.h \
- OS_String.h \
- OS_String.inl \
- OS_Memory.h \
- OS_Errno.h \
- OS_Errno.inl \
- OS_Memory.inl \
- String_Base.i \
- Malloc_Base.h \
- OS.h \
- OS_Dirent.h \
- OS_Dirent.inl \
- OS_TLI.h \
- OS_TLI.inl \
- Time_Value.h \
- Time_Value.inl \
- Default_Constants.h \
- Min_Max.h \
- streams.h \
- Trace.h OS.i \
- String_Base.cpp \
- ACE.h \
- Flag_Manip.h \
- Flag_Manip.i \
- Handle_Ops.h \
- Handle_Ops.i \
- Lib_Find.h \
- Lib_Find.i \
- Init_ACE.h \
- Init_ACE.i \
- Sock_Connect.h \
- Sock_Connect.i \
- ACE.i Malloc.h \
- Log_Msg.h \
- Log_Priority.h \
- OS_Log_Msg_Attributes.h \
- OS_Log_Msg_Attributes.inl \
- Malloc.i \
- Malloc_T.h \
- Synch.h Synch.i \
- Synch_T.h \
- Synch_T.i \
- Thread.h \
- Thread_Adapter.h \
- Base_Thread_Adapter.h \
- Base_Thread_Adapter.inl \
- Thread_Adapter.inl \
- Thread.i \
- Synch_T.cpp \
- Malloc_Allocator.h \
- Malloc_Allocator.i \
- Free_List.h \
- Free_List.i \
- Free_List.cpp \
- Malloc_T.i \
- Malloc_T.cpp \
- Memory_Pool.h \
- Event_Handler.h \
- Event_Handler.i \
- Signal.h \
- Signal.i \
- Mem_Map.h \
- Mem_Map.i \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Semaphore_Simple.i \
- SV_Semaphore_Complex.i \
- Unbounded_Set.h \
- Node.h Node.cpp \
- Unbounded_Set.inl \
- Unbounded_Set.cpp \
- Memory_Pool.i \
- Auto_Ptr.h \
- Auto_Ptr.i \
- Auto_Ptr.cpp \
- SString.i \
- Name_Proxy.h \
- INET_Addr.h \
- Addr.h Addr.i \
- INET_Addr.i \
- SOCK_Connector.h \
- SOCK_Stream.h \
- SOCK_IO.h \
- SOCK.h \
- IPC_SAP.h \
- IPC_SAP.i \
- SOCK.i \
- SOCK_IO.i \
- SOCK_Stream.i \
- SOCK_Connector.i \
- Service_Config.h \
- Unbounded_Queue.h \
- Unbounded_Queue.inl \
- Unbounded_Queue.cpp \
- XML_Svc_Conf.h \
- Service_Config.i \
- Reactor.h \
- Handle_Set.h \
- Handle_Set.i \
- Timer_Queue.h \
- Timer_Queue_T.h \
- Test_and_Set.h \
- Test_and_Set.i \
- Test_and_Set.cpp \
- Timer_Queue_T.i \
- Timer_Queue_T.cpp \
- Reactor.i \
- Reactor_Impl.h \
- Svc_Conf_Tokens.h \
- Synch_Options.h \
- Synch_Options.i \
- Name_Request_Reply.h \
- Name_Space.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ace/Makefile.am b/ace/Makefile.am
deleted file mode 100644
index cd34a59595b..00000000000
--- a/ace/Makefile.am
+++ /dev/null
@@ -1,1156 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile.am for the entire ACE release
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## These are subdirectories that are always included in the
-## distribution.
-DIST_SUBDIRS = \
- RMCast \
- QoS \
- SSL
-
-## Conditionally built subdirectories.
-
-if BUILD_RMCAST
-RMCAST_DIR = RMCast
-else
-RMCAST_DIR =
-endif
-
-if BUILD_QOS
-QOS_DIR = QoS
-else
-QOS_DIR =
-endif
-
-if BUILD_SSL
-SSL_DIR = SSL
-else
-SSL_DIR =
-endif
-
-## List of conditionally built subdirectories.
-##
-## Note that the "." (current) directory in the below SUBDIRS list is
-## required to make the ACE directory be built prior to the
-## subdirectories.
-##
-## Disable building of CLASSIX library for now.
-## SUBDIRS = CLASSIX
-SUBDIRS = \
- . \
- $(RMCAST_DIR) \
- $(QOS_DIR) \
- $(SSL_DIR)
-
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-# Define any X libraries that ACE needs, if any.
-ACE_XLIBS = @ACE_XLIBS@
-
-
-# We only want `gethrtime.cpp' if building on Pentium(tm) with GNU C++.
-if ACE_ON_PENTIUM
-ACE_GETHRTIME_CPP = gethrtime.cpp
-else
-ACE_GETHRTIME_CPP =
-endif
-
-# Define which ACE components to build
-if BUILD_OS_FILES
-LIBACE_OS = libACE_OS.la
-else
-LIBACE_OS =
-endif
-
-if BUILD_UTILS_FILES
-LIBACE_UTILS = libACE_Utils.la
-else
-LIBACE_UTILS =
-endif
-
-if BUILD_LOGGING_FILES
-LIBACE_LOGGING = libACE_Logging.la
-else
-LIBACE_LOGGING =
-endif
-
-
-if BUILD_THREADS_FILES
-LIBACE_THREADS = libACE_Threads.la
-else
-LIBACE_THREADS =
-endif
-
-if BUILD_DEMUX_FILES
-LIBACE_DEMUX = libACE_Demux.la
-else
-LIBACE_DEMUX =
-endif
-
-if BUILD_CONNECTION_FILES
-LIBACE_CONNECTION = libACE_Connection.la
-else
-LIBACE_CONNECTION =
-endif
-
-if BUILD_SOCKETS_FILES
-LIBACE_SOCKETS = libACE_Sockets.la
-else
-LIBACE_SOCKETS =
-endif
-
-if BUILD_IPC_FILES
-LIBACE_IPC = libACE_IPC.la
-else
-LIBACE_IPC =
-endif
-
-if BUILD_SVCCONF_FILES
-LIBACE_SVCCONF = libACE_Svcconf.la
-else
-LIBACE_SVCCONF =
-#AM_CPPFLAGS += -DACE_LACKS_ACE_SVCCONF
-endif
-
-if BUILD_STREAMS_FILES
-LIBACE_STREAMS = libACE_Streams.la
-else
-LIBACE_STREAMS =
-endif
-
-if BUILD_MEMORY_FILES
-LIBACE_MEMORY = libACE_Memory.la
-else
-LIBACE_MEMORY =
-endif
-
-if BUILD_TIMER_FILES
-LIBACE_TIMER = libACE_Timer.la
-else
-LIBACE_TIMER =
-endif
-
-if BUILD_TOKEN_FILES
-LIBACE_TOKEN = libACE_Token.la
-else
-LIBACE_TOKEN =
-#AM_CPPFLAGS += -DACE_LACKS_ACE_TOKEN
-endif
-
-if BUILD_CODECS_FILES
-LIBACE_CODECS = libACE_Codecs.la
-else
-LIBACE_CODECS =
-#AM_CPPFLAGS += -DACE_LACKS_ACE_CODECS
-endif
-
-
-if BUILD_OTHER_FILES
-LIBACE_OTHER = libACE_Other.la
-else
-LIBACE_OTHER =
-#AM_CPPFLAGS += -DACE_LACKS_ACE_OTHER
-endif
-
-if BUILD_FULL_LIBRARY
-LIBACE = libACE.la
-else
-LIBACE =
-endif
-
-# Build a libtool library, libACE.la for installation in libdir.
-lib_LTLIBRARIES = \
- $(LIBACE) \
- $(LIBACE_OS) \
- $(LIBACE_UTILS) \
- $(LIBACE_LOGGING) \
- $(LIBACE_THREADS) \
- $(LIBACE_DEMUX) \
- $(LIBACE_CONNECTION) \
- $(LIBACE_SOCKETS) \
- $(LIBACE_IPC) \
- $(LIBACE_SVCCONF) \
- $(LIBACE_STREAMS) \
- $(LIBACE_MEMORY) \
- $(LIBACE_TIMER) \
- $(LIBACE_TOKEN) \
- $(LIBACE_CODECS) \
- $(LIBACE_OTHER)
-
-libACE_OS_la_SOURCES = \
- Basic_Types.cpp \
- Time_Value.cpp \
- OS.cpp \
- OS_Dirent.cpp \
- OS_Errno.cpp \
- OS_Memory.cpp \
- OS_QoS.cpp \
- OS_String.cpp \
- OS_TLI.cpp \
- Base_Thread_Adapter.cpp \
- OS_Thread_Adapter.cpp \
- OS_Log_Msg_Attributes.cpp \
- Thread_Hook.cpp \
- Sched_Params.cpp \
- Handle_Set.cpp \
- Copy_Disabled.cpp
-
-libACE_Utils_la_SOURCES = \
- ACE.cpp \
- Active_Map_Manager.cpp \
- Arg_Shifter.cpp \
- ARGV.cpp \
- Argv_Type_Converter.cpp \
- Capabilities.cpp \
- Configuration.cpp \
- Configuration_Import_Export.cpp \
- Containers.cpp \
- Dirent.cpp \
- Dirent_Selector.cpp \
- Dynamic.cpp \
- Filecache.cpp \
- Flag_Manip.cpp \
- Framework_Component.cpp \
- Functor.cpp \
- Get_Opt.cpp \
- Hash_Map_Manager.cpp \
- Connection_Recycling_Strategy.cpp \
- Hashable.cpp \
- Notification_Strategy.cpp \
- Recyclable.cpp \
- Refcountable.cpp \
- Handle_Ops.cpp \
- Init_ACE.cpp \
- Lib_Find.cpp \
- Message_Block.cpp \
- Method_Request.cpp \
- Object_Manager.cpp \
- Registry.cpp \
- String_Base_Const.cpp \
- SString.cpp \
- Stats.cpp \
- Sample_History.cpp
-
-libACE_Logging_la_SOURCES = \
- Dump.cpp \
- Log_Msg.cpp \
- Log_Msg_Callback.cpp \
- Log_Msg_Backend.cpp \
- Log_Msg_IPC.cpp \
- Log_Msg_NT_Event_Log.cpp \
- Log_Msg_UNIX_Syslog.cpp \
- Log_Record.cpp \
- Logging_Strategy.cpp \
- Trace.cpp
-
-libACE_Threads_la_SOURCES = \
- Activation_Queue.cpp \
- Atomic_Op.cpp \
- Process.cpp \
- Process_Manager.cpp \
- Synch.cpp \
- Synch_Options.cpp \
- Process_Semaphore.cpp \
- Process_Mutex.cpp \
- RW_Process_Mutex.cpp \
- File_Lock.cpp \
- Thread.cpp \
- Thread_Adapter.cpp \
- Thread_Manager.cpp \
- Thread_Exit.cpp \
- Thread_Control.cpp \
- Token.cpp
-
-libACE_Demux_la_SOURCES = \
- Event_Handler.cpp \
- FlReactor.cpp \
- Msg_WFMO_Reactor.cpp \
- POSIX_Proactor.cpp \
- WIN32_Proactor.cpp \
- Priority_Reactor.cpp \
- Proactor.cpp \
- Reactor.cpp \
- Select_Reactor.cpp \
- Select_Reactor_Base.cpp \
- SUN_Proactor.cpp \
- Dev_Poll_Reactor.cpp \
- TP_Reactor.cpp \
- TkReactor.cpp \
- WFMO_Reactor.cpp \
- XtReactor.cpp \
- QtReactor.cpp
-
-libACE_Connection_la_SOURCES = \
- Asynch_IO.cpp \
- Asynch_IO_Impl.cpp \
- Asynch_Pseudo_Task.cpp \
- POSIX_Asynch_IO.cpp \
- WIN32_Asynch_IO.cpp
-
-libACE_Sockets_la_SOURCES = \
- Addr.cpp \
- INET_Addr.cpp \
- IPC_SAP.cpp \
- LSOCK.cpp \
- LSOCK_Acceptor.cpp \
- LSOCK_CODgram.cpp \
- LSOCK_Connector.cpp \
- LSOCK_Dgram.cpp \
- LSOCK_Stream.cpp \
- SOCK.cpp \
- SOCK_Acceptor.cpp \
- SOCK_CODgram.cpp \
- Sock_Connect.cpp \
- SOCK_Connector.cpp \
- SOCK_Dgram.cpp \
- SOCK_Dgram_Bcast.cpp \
- SOCK_Dgram_Mcast.cpp \
- SOCK_IO.cpp \
- SOCK_Stream.cpp
-
-libACE_IPC_la_SOURCES = \
- ATM_Addr.cpp \
- ATM_Acceptor.cpp \
- ATM_Connector.cpp \
- ATM_Params.cpp \
- ATM_QoS.cpp \
- ATM_Stream.cpp \
- DEV.cpp \
- DEV_Addr.cpp \
- DEV_Connector.cpp \
- DEV_IO.cpp \
- FIFO.cpp \
- FIFO_Recv.cpp \
- FIFO_Recv_Msg.cpp \
- FIFO_Send.cpp \
- FIFO_Send_Msg.cpp \
- FILE_Addr.cpp \
- FILE.cpp \
- FILE_Connector.cpp \
- FILE_IO.cpp \
- IO_SAP.cpp \
- IOStream.cpp \
- Pipe.cpp \
- Signal.cpp \
- SPIPE_Addr.cpp \
- SPIPE.cpp \
- SPIPE_Acceptor.cpp \
- SPIPE_Connector.cpp \
- SPIPE_Stream.cpp \
- SV_Message.cpp \
- SV_Message_Queue.cpp \
- SV_Semaphore_Complex.cpp \
- SV_Semaphore_Simple.cpp \
- SV_Shared_Memory.cpp \
- TLI.cpp \
- TLI_Acceptor.cpp \
- TLI_Connector.cpp \
- TLI_Stream.cpp \
- TTY_IO.cpp \
- UNIX_Addr.cpp \
- UPIPE_Acceptor.cpp \
- UPIPE_Connector.cpp \
- UPIPE_Stream.cpp \
- XTI_ATM_Mcast.cpp \
- MEM_Acceptor.cpp \
- MEM_Addr.cpp \
- MEM_Connector.cpp \
- MEM_IO.cpp \
- MEM_SAP.cpp \
- MEM_Stream.cpp
-
-libACE_Svcconf_la_SOURCES = \
- DLL.cpp \
- DLL_Manager.cpp \
- Dynamic_Service_Base.cpp \
- Parse_Node.cpp \
- Service_Config.cpp \
- Service_Manager.cpp \
- Service_Object.cpp \
- Service_Repository.cpp \
- Service_Types.cpp \
- Service_Templates.cpp \
- Shared_Object.cpp \
- XML_Svc_Conf.cpp \
- Svc_Conf_l.cpp \
- Svc_Conf_y.cpp \
- Svc_Conf_Lexer_Guard.cpp
-
-libACE_Streams_la_SOURCES = \
- CDR_Base.cpp \
- CDR_Stream.cpp \
- Codeset_IBM1047.cpp \
- Codeset_Registry.cpp \
- Codeset_Registry_db.cpp \
- Message_Queue.cpp \
- Reactor_Notification_Strategy.cpp \
- Task.cpp
-
-libACE_Memory_la_SOURCES = \
- Based_Pointer_Repository.cpp \
- Malloc.cpp \
- PI_Malloc.cpp \
- Malloc_Allocator.cpp \
- Malloc_Instantiations.cpp \
- Mem_Map.cpp \
- Memory_Pool.cpp \
- Obchunk.cpp \
- Obstack.cpp \
- Read_Buffer.cpp \
- Shared_Memory.cpp \
- Shared_Memory_MM.cpp \
- Shared_Memory_SV.cpp
-
-libACE_Token_la_SOURCES = \
- Local_Tokens.cpp \
- Remote_Tokens.cpp \
- Token_Collection.cpp \
- Token_Invariants.cpp \
- Token_Manager.cpp \
- Token_Request_Reply.cpp
-
-libACE_Timer_la_SOURCES = \
- Basic_Stats.cpp \
- High_Res_Timer.cpp \
- Profile_Timer.cpp \
- System_Time.cpp \
- Time_Request_Reply.cpp \
- Timeprobe.cpp \
- Timer_Hash.cpp \
- Timer_Heap.cpp \
- Timer_List.cpp \
- Timer_Queue.cpp \
- Timer_Wheel.cpp \
- $(ACE_GETHRTIME_CPP)
-
-# We only want `gethrtime.cpp' if building on Pentium(tm) so we need
-# to let Automake know that `gethrtime.cpp' is conditionally built.
-EXTRA_libACE_Timer_la_SOURCES = gethrtime.cpp
-
-libACE_Codecs_la_SOURCES = \
- Codecs.cpp
-
-libACE_Other_la_SOURCES = \
- Local_Name_Space.cpp \
- Name_Proxy.cpp \
- Name_Request_Reply.cpp \
- Name_Space.cpp \
- Naming_Context.cpp \
- Registry_Name_Space.cpp \
- Remote_Name_Space.cpp
-
-libACE_la_SOURCES = \
- $(libACE_OS_la_SOURCES) \
- $(libACE_Utils_la_SOURCES) \
- $(libACE_Logging_la_SOURCES) \
- $(libACE_Threads_la_SOURCES) \
- $(libACE_Demux_la_SOURCES) \
- $(libACE_Connection_la_SOURCES) \
- $(libACE_Sockets_la_SOURCES) \
- $(libACE_IPC_la_SOURCES) \
- $(libACE_Svcconf_la_SOURCES) \
- $(libACE_Streams_la_SOURCES) \
- $(libACE_Memory_la_SOURCES) \
- $(libACE_Timer_la_SOURCES) \
- $(libACE_Token_la_SOURCES) \
- $(libACE_Codecs_la_SOURCES) \
- $(libACE_Other_la_SOURCES)
-
-
-## The following is an excerpt from the "libtool" manual, written by
-## Gordon Matzigkeit:
-##
-## This flag accepts an argument of the form `current[:revision[:age]]'. So,
-## passing `-version-info 3:12:1' sets current to 3, revision to 12, and age
-## to 1.
-## If either revision or age are omitted, they default to 0. Also note that
-## age must be less than or equal to the current interface number.
-##
-## Here are a set of rules to help you update your library version
-## information:
-##
-## 1.Start with version information of `0:0:0' for each libtool library.
-## 2.Update the version information only immediately before a public
-## release of your software. More frequent updates are unnecessary, and
-## only guarantee that the current interface number gets larger faster.
-## 3.If the library source code has changed at all since the last update,
-## then increment revision (`c:r:a' becomes `c:r+1:a').
-## 4.If any interfaces have been added, removed, or changed since the last
-## update, increment current, and set revision to 0.
-## 5.If any interfaces have been added since the last public release, then
-## increment age.
-## 6.If any interfaces have been removed since the last public release,
-## then set age to 0.
-##
-## Never try to set the interface numbers so that they correspond to the
-## release number of your package. This is an abuse that only fosters
-## misunderstanding of the purpose of library versions. Instead, use the
-## `-release' flag (see section 6.4 Managing release information), but be
-## warned that every release of your package will not be binary compatibility
-## with any other release.
-
-## The below "-version-info" isn't being used the way libtool intends
-## it to be used but we do it that way to make the version numbers
-## that ACE uses match those created by libtool from "-version-info."
-##libACE_la_LDFLAGS = $(X_LIBS) \
-## -version-info 10:4:6 ## 10-6=4 --> libACE.so.4.6.4
-libACE_la_LDFLAGS = $(X_LIBS) \
- -version-info @ACE_CURRENT@:@ACE_REVISION@:@ACE_AGE@
-
-# We also add any X libraries to the list.
-libACE_la_LIBADD = $(X_PRE_LIBS) $(ACE_XLIBS) $(X_EXTRA_LIBS)
-
-## These are template source files.
-TEMPLATE_FILES = \
- Acceptor.cpp \
- Active_Map_Manager_T.cpp \
- Array_Base.cpp \
- Asynch_Acceptor.cpp \
- Asynch_Connector.cpp \
- Atomic_Op_T.cpp \
- Auto_IncDec_T.cpp \
- Auto_Ptr.cpp \
- Based_Pointer_T.cpp \
- Cache_Map_Manager_T.cpp \
- Cached_Connect_Strategy_T.cpp \
- Caching_Strategies_T.cpp \
- Caching_Utility_T.cpp \
- Cleanup_Strategies_T.cpp \
- Connector.cpp \
- Containers_T.cpp \
- Dump_T.cpp \
- Dynamic_Service.cpp \
- Env_Value_T.cpp \
- Event_Handler_T.cpp \
- Framework_Component_T.cpp \
- Free_List.cpp \
- Functor_T.cpp \
- Future.cpp \
- Future_Set.cpp \
- Hash_Cache_Map_Manager_T.cpp \
- Hash_Map_Manager_T.cpp \
- Hash_Map_With_Allocator_T.cpp \
- IOStream_T.cpp \
- Intrusive_List.cpp \
- Intrusive_List_Node.cpp \
- LOCK_SOCK_Acceptor.cpp \
- Local_Name_Space_T.cpp \
- Malloc_T.cpp \
- Managed_Object.cpp \
- Map_Manager.cpp \
- Map_T.cpp \
- Message_Block_T.cpp \
- Message_Queue_T.cpp \
- Module.cpp \
- Node.cpp \
- Obstack_T.cpp \
- Pair_T.cpp \
- RB_Tree.cpp \
- Select_Reactor_T.cpp \
- Singleton.cpp \
- Strategies_T.cpp \
- Stream.cpp \
- Stream_Modules.cpp \
- String_Base.cpp \
- Svc_Handler.cpp \
- Swap.cpp \
- Synch_T.cpp \
- Task_T.cpp \
- Template_Instantiations.cpp \
- Test_and_Set.cpp \
- Timeprobe_T.cpp \
- Timer_Hash_T.cpp \
- Timer_Heap_T.cpp \
- Timer_List_T.cpp \
- Timer_Queue_Adapters.cpp \
- Timer_Queue_T.cpp \
- Timer_Wheel_T.cpp \
- Typed_SV_Message.cpp \
- Typed_SV_Message_Queue.cpp \
- Unbounded_Queue.cpp \
- Unbounded_Set.cpp \
- Unbounded_Set_Ex.cpp \
- Unbounded_Queue.cpp \
- Vector_T.cpp
-
-HEADER_FILES = \
- ACE.h \
- ACE_export.h \
- ARGV.h \
- ATM_Acceptor.h \
- ATM_Addr.h \
- ATM_Connector.h \
- ATM_Params.h \
- ATM_QoS.h \
- ATM_Stream.h \
- Acceptor.h \
- Activation_Queue.h \
- Active_Map_Manager.h \
- Active_Map_Manager_T.h \
- Addr.h \
- Arg_Shifter.h \
- Argv_Type_Converter.h \
- Array.h \
- Array_Base.h \
- Asynch_Acceptor.h \
- Asynch_Connector.h \
- Asynch_IO.h \
- Asynch_IO_Impl.h \
- Asynch_Pseudo_Task.h \
- Atomic_Op.h \
- Atomic_Op_T.h \
- Auto_IncDec_T.h \
- Auto_Ptr.h \
- Base_Thread_Adapter.h \
- Based_Pointer_Repository.h \
- Based_Pointer_T.h \
- Basic_Stats.h \
- Basic_Types.h \
- Bound_Ptr.h \
- CDR_Base.h \
- CDR_Stream.h \
- CE_Screen_Output.h \
- CORBA_macros.h \
- Cache_Map_Manager_T.h \
- Cached_Connect_Strategy_T.h \
- Caching_Strategies_T.h \
- Caching_Utility_T.h \
- Capabilities.h \
- Cleanup_Strategies_T.h \
- Codecs.h \
- Codeset_IBM1047.h \
- Codeset_Registry.h \
- Configuration.h \
- Configuration_Import_Export.h \
- Connection_Recycling_Strategy.h \
- Connector.h \
- Containers.h \
- Containers_T.h \
- Copy_Disabled.h \
- DEV.h \
- DEV_Addr.h \
- DEV_Connector.h \
- DEV_IO.h \
- DLL.h \
- DLL_Manager.h \
- Date_Time.h \
- Default_Constants.h \
- Dev_Poll_Reactor.h \
- Dirent.h \
- Dirent_Selector.h \
- Dump.h \
- Dump_T.h \
- Dynamic.h \
- Dynamic_Service.h \
- Dynamic_Service_Base.h \
- Env_Value_T.h \
- Event_Handler.h \
- Event_Handler_T.h \
- Exception_Macros.h \
- FIFO.h \
- FIFO_Recv.h \
- FIFO_Recv_Msg.h \
- FIFO_Send.h \
- FIFO_Send_Msg.h \
- FILE.h \
- FILE_Addr.h \
- FILE_Connector.h \
- FILE_IO.h \
- File_Lock.h \
- Filecache.h \
- FlReactor.h \
- Flag_Manip.h \
- Framework_Component.h \
- Framework_Component_T.h \
- Free_List.h \
- Functor.h \
- Functor_T.h \
- Future.h \
- Future_Set.h \
- Get_Opt.h \
- Global_Macros.h \
- Handle_Gobbler.h \
- Handle_Ops.h \
- Handle_Set.h \
- Hash_Cache_Map_Manager_T.h \
- Hash_Map_Manager.h \
- Hash_Map_Manager_T.h \
- Hash_Map_With_Allocator_T.h \
- Hashable.h \
- High_Res_Timer.h \
- INET_Addr.h \
- IOStream.h \
- IOStream_T.h \
- IO_Cntl_Msg.h \
- IO_SAP.h \
- IPC_SAP.h \
- Init_ACE.h \
- Intrusive_List.h \
- Intrusive_List_Node.h \
- LOCK_SOCK_Acceptor.h \
- LSOCK.h \
- LSOCK_Acceptor.h \
- LSOCK_CODgram.h \
- LSOCK_Connector.h \
- LSOCK_Dgram.h \
- LSOCK_Stream.h \
- Lib_Find.h \
- Local_Name_Space.h \
- Local_Name_Space_T.h \
- Local_Tokens.h \
- Log_Msg.h \
- Log_Msg_Backend.h \
- Log_Msg_Callback.h \
- Log_Msg_IPC.h \
- Log_Msg_NT_Event_Log.h \
- Log_Msg_UNIX_Syslog.h \
- Log_Priority.h \
- Log_Record.h \
- Logging_Strategy.h \
- MEM_Acceptor.h \
- MEM_Addr.h \
- MEM_Connector.h \
- MEM_IO.h \
- MEM_SAP.h \
- MEM_Stream.h \
- Malloc.h \
- Malloc_Allocator.h \
- Malloc_Base.h \
- Malloc_T.h \
- Managed_Object.h \
- Map.h \
- Map_Manager.h \
- Map_T.h \
- Mem_Map.h \
- Memory_Pool.h \
- Message_Block.h \
- Message_Block_T.h \
- Message_Queue.h \
- Message_Queue_T.h \
- Method_Object.h \
- Method_Request.h \
- Min_Max.h \
- Module.h \
- Msg_WFMO_Reactor.h \
- Multiplexor.h \
- NT_Service.h \
- Name_Proxy.h \
- Name_Request_Reply.h \
- Name_Space.h \
- Naming_Context.h \
- Node.h \
- Notification_Strategy.h \
- OS.h \
- OS_Dirent.h \
- OS_Errno.h \
- OS_Export.h \
- OS_Log_Msg_Attributes.h \
- OS_Memory.h \
- OS_QoS.h \
- OS_String.h \
- OS_TLI.h \
- OS_Thread_Adapter.h \
- Obchunk.h \
- Object_Manager.h \
- Obstack.h \
- Obstack_T.h \
- PI_Malloc.h \
- POSIX_Asynch_IO.h \
- POSIX_CB_Proactor.h \
- POSIX_Proactor.h \
- Pair.h \
- Pair_T.h \
- Parse_Node.h \
- Pipe.h \
- Priority_Reactor.h \
- Proactor.h \
- Proactor_Impl.h \
- Process.h \
- Process_Manager.h \
- Process_Mutex.h \
- Process_Semaphore.h \
- Profile_Timer.h \
- QtReactor.h \
- RB_Tree.h \
- RW_Process_Mutex.h \
- Reactor.h \
- Reactor_Impl.h \
- Reactor_Notification_Strategy.h \
- Read_Buffer.h \
- Recyclable.h \
- Refcountable.h \
- Refcounted_Auto_Ptr.h \
- Registry.h \
- Registry_Name_Space.h \
- Remote_Name_Space.h \
- Remote_Tokens.h \
- SOCK.h \
- SOCK_Acceptor.h \
- SOCK_CODgram.h \
- SOCK_Connector.h \
- SOCK_Dgram.h \
- SOCK_Dgram_Bcast.h \
- SOCK_Dgram_Mcast.h \
- SOCK_IO.h \
- SOCK_Stream.h \
- SPIPE.h \
- SPIPE_Acceptor.h \
- SPIPE_Addr.h \
- SPIPE_Connector.h \
- SPIPE_Stream.h \
- SString.h \
- SStringfwd.h \
- SUN_Proactor.h \
- SV_Message.h \
- SV_Message_Queue.h \
- SV_Semaphore_Complex.h \
- SV_Semaphore_Simple.h \
- SV_Shared_Memory.h \
- Sample_History.h \
- Sched_Params.h \
- Select_Reactor.h \
- Select_Reactor_Base.h \
- Select_Reactor_T.h \
- Service_Config.h \
- Service_Manager.h \
- Service_Object.h \
- Service_Repository.h \
- Service_Templates.h \
- Service_Types.h \
- Shared_Memory.h \
- Shared_Memory_MM.h \
- Shared_Memory_SV.h \
- Shared_Object.h \
- Signal.h \
- Singleton.h \
- Sock_Connect.h \
- Stats.h \
- Strategies_T.h \
- Stream.h \
- Stream_Modules.h \
- String_Base.h \
- String_Base_Const.h \
- Svc_Conf.h \
- Svc_Conf_Lexer_Guard.h \
- Svc_Conf_Tokens.h \
- Svc_Handler.h \
- Swap.h \
- Synch.h \
- Synch_Options.h \
- Synch_T.h \
- System_Time.h \
- TLI.h \
- TLI_Acceptor.h \
- TLI_Connector.h \
- TLI_Stream.h \
- TP_Reactor.h \
- TTY_IO.h \
- Task.h \
- Task_T.h \
- Test_and_Set.h \
- Thread.h \
- Thread_Adapter.h \
- Thread_Control.h \
- Thread_Exit.h \
- Thread_Hook.h \
- Thread_Manager.h \
- Time_Request_Reply.h \
- Time_Value.h \
- Timeprobe.h \
- Timeprobe_T.h \
- Timer_Hash.h \
- Timer_Hash_T.h \
- Timer_Heap.h \
- Timer_Heap_T.h \
- Timer_List.h \
- Timer_List_T.h \
- Timer_Queue.h \
- Timer_Queue_Adapters.h \
- Timer_Queue_T.h \
- Timer_Wheel.h \
- Timer_Wheel_T.h \
- TkReactor.h \
- Token.h \
- Token_Collection.h \
- Token_Invariants.h \
- Token_Manager.h \
- Token_Request_Reply.h \
- Trace.h \
- Typed_SV_Message.h \
- Typed_SV_Message_Queue.h \
- UNIX_Addr.h \
- UPIPE_Acceptor.h \
- UPIPE_Addr.h \
- UPIPE_Connector.h \
- UPIPE_Stream.h \
- Unbounded_Queue.h \
- Unbounded_Set.h \
- Unbounded_Set_Ex.h \
- Vector_T.h \
- Version.h \
- WFMO_Reactor.h \
- WIN32_Asynch_IO.h \
- WIN32_Proactor.h \
- XML_Svc_Conf.h \
- XTI_ATM_Mcast.h \
- XtReactor.h \
- ace_wchar.h \
- config.h \
- config-all.h \
- iosfwd.h \
- post.h \
- pre.h \
- streams.h \
- svc_export.h
-
-## Make sure config.h and config-all.h are in the above header list!
-
-INLINE_FILES = \
- ACE.i \
- ARGV.i \
- ATM_Acceptor.i \
- ATM_Addr.i \
- ATM_Connector.i \
- ATM_Params.i \
- ATM_QoS.i \
- ATM_Stream.i \
- Activation_Queue.i \
- Active_Map_Manager.i \
- Active_Map_Manager_T.i \
- Addr.i \
- Asynch_IO_Impl.i \
- Atomic_Op.i \
- Atomic_Op_T.i \
- Auto_IncDec_T.i \
- Auto_Ptr.i \
- Based_Pointer_T.i \
- Basic_Types.i \
- Bound_Ptr.i \
- CDR_Stream.i \
- Cache_Map_Manager_T.i \
- Caching_Strategies_T.i \
- Capabilities.i \
- Containers.i \
- Containers_T.i \
- DEV.i \
- DEV_Addr.i \
- DEV_Connector.i \
- DEV_IO.i \
- Date_Time.i \
- Dirent.i \
- Dynamic.i \
- Dynamic_Service.i \
- Dynamic_Service_Base.i \
- Env_Value_T.i \
- Event_Handler.i \
- Event_Handler_T.i \
- FIFO.i \
- FIFO_Recv.i \
- FIFO_Recv_Msg.i \
- FIFO_Send.i \
- FIFO_Send_Msg.i \
- FILE.i \
- FILE_Addr.i \
- FILE_Connector.i \
- FILE_IO.i \
- FlReactor.i \
- Flag_Manip.i \
- Free_List.i \
- Functor.i \
- Functor_T.i \
- Get_Opt.i \
- Handle_Gobbler.i \
- Handle_Ops.i \
- Handle_Set.i \
- Hash_Cache_Map_Manager_T.i \
- Hash_Map_Manager_T.i \
- Hash_Map_With_Allocator_T.i \
- High_Res_Timer.i \
- INET_Addr.i \
- IOStream_T.i \
- IO_SAP.i \
- IPC_SAP.i \
- Init_ACE.i \
- LSOCK.i \
- LSOCK_CODgram.i \
- LSOCK_Connector.i \
- LSOCK_Dgram.i \
- LSOCK_Stream.i \
- Lib_Find.i \
- Local_Tokens.i \
- Log_Record.i \
- MEM_Acceptor.i \
- MEM_Addr.i \
- MEM_Connector.i \
- MEM_IO.i \
- MEM_SAP.i \
- MEM_Stream.i \
- Malloc.i \
- Malloc_Allocator.i \
- Malloc_T.i \
- Managed_Object.i \
- Map_Manager.i \
- Map_T.i \
- Mem_Map.i \
- Memory_Pool.i \
- Message_Block.i \
- Message_Block_T.i \
- Message_Queue.i \
- Message_Queue_T.i \
- Module.i \
- Msg_WFMO_Reactor.i \
- Multiplexor.i \
- NT_Service.i \
- OS.i \
- Obchunk.i \
- Object_Manager.i \
- Obstack_T.i \
- PI_Malloc.i \
- POSIX_Asynch_IO.i \
- POSIX_CB_Proactor.i \
- POSIX_Proactor.i \
- Pair_T.i \
- Parse_Node.i \
- Pipe.i \
- Proactor.i \
- Process.i \
- Process_Manager.i \
- Profile_Timer.i \
- RB_Tree.i \
- Reactor.i \
- Read_Buffer.i \
- Refcounted_Auto_Ptr.i \
- Remote_Tokens.i \
- SOCK.i \
- SOCK_Acceptor.i \
- SOCK_CODgram.i \
- SOCK_Connector.i \
- SOCK_Dgram.i \
- SOCK_Dgram_Bcast.i \
- SOCK_Dgram_Mcast.i \
- SOCK_IO.i \
- SOCK_Stream.i \
- SPIPE.i \
- SPIPE_Addr.i \
- SPIPE_Connector.i \
- SPIPE_Stream.i \
- SString.i \
- SUN_Proactor.i \
- SV_Message.i \
- SV_Message_Queue.i \
- SV_Semaphore_Complex.i \
- SV_Semaphore_Simple.i \
- SV_Shared_Memory.i \
- Sched_Params.i \
- Select_Reactor_Base.i \
- Select_Reactor_T.i \
- Service_Config.i \
- Service_Manager.i \
- Service_Object.i \
- Service_Repository.i \
- Service_Types.i \
- Shared_Memory_MM.i \
- Shared_Memory_SV.i \
- Shared_Object.i \
- Signal.i \
- Singleton.i \
- Sock_Connect.i \
- Stats.i \
- Strategies_T.i \
- Stream.i \
- String_Base.i \
- Synch.i \
- Synch_Options.i \
- Synch_T.i \
- TLI.i \
- TLI_Connector.i \
- TLI_Stream.i \
- TP_Reactor.i \
- Task.i \
- Task_T.i \
- Test_and_Set.i \
- Thread.i \
- Thread_Manager.i \
- Timeprobe.i \
- Timer_Queue_Adapters.i \
- Timer_Queue_T.i \
- Token.i \
- Token_Collection.i \
- Token_Manager.i \
- Token_Request_Reply.i \
- Typed_SV_Message.i \
- Typed_SV_Message_Queue.i \
- UNIX_Addr.i \
- UPIPE_Acceptor.i \
- UPIPE_Connector.i \
- UPIPE_Stream.i \
- Vector_T.i \
- WFMO_Reactor.i \
- XTI_ATM_Mcast.i \
- Argv_Type_Converter.inl \
- Array_Base.inl \
- Base_Thread_Adapter.inl \
- Basic_Stats.inl \
- CDR_Base.inl \
- Dev_Poll_Reactor.inl \
- Dirent_Selector.inl \
- File_Lock.inl \
- Framework_Component.inl \
- Framework_Component_T.inl \
- Hashable.inl \
- Intrusive_List.inl \
- Intrusive_List_Node.inl \
- Notification_Strategy.inl \
- OS_Dirent.inl \
- OS_Errno.inl \
- OS_Log_Msg_Attributes.inl \
- OS_Memory.inl \
- OS_String.inl \
- OS_TLI.inl \
- OS_Thread_Adapter.inl \
- Process_Mutex.inl \
- Process_Semaphore.inl \
- RW_Process_Mutex.inl \
- Reactor_Notification_Strategy.inl \
- Recyclable.inl \
- Refcountable.inl \
- Sample_History.inl \
- Swap.inl \
- Thread_Adapter.inl \
- Thread_Control.inl \
- Time_Value.inl \
- Unbounded_Queue.inl \
- Unbounded_Set.inl \
- Unbounded_Set_Ex.inl \
- ace_wchar.inl
-
-## It would be good to remove pkgincludedir. However, we want to install
-## headers in "$(prefix)/ace" not "$(prefix)/ACE" because the source files
-## include files in the directory "ace." By default pkgincludedir would
-## be "$(prefix)/$(PACKAGE)" which would be "$(prefix)/ACE" in our case.
-## It is for this reason that we must redefine "pkgincludedir."
-## However, if we set the package to "ace" instead of "ACE" then we won't
-## need to set the "pkgincludedir."
-## -Ossama
-##pkgincludedir = $(includedir)/ace
-pkginclude_HEADERS = \
- $(HEADER_FILES) \
- $(INLINE_FILES) \
- $(TEMPLATE_FILES)
-
-## Make sure the following get into the distribution
-##EXTRA_DIST = $(TEMPLATE_FILES)
-
-## Clean up template repositories, etc.
-clean-local:
- -rm -f *.bak *.rpo *.sym lib*.*_pure_* Makefile.old core
- -rm -f gcctemp.c gcctemp so_locations
- -rm -rf ptrepository SunWS_cache Templates.DB
diff --git a/ace/Makefile.bor b/ace/Makefile.bor
deleted file mode 100644
index 69be087d0bc..00000000000
--- a/ace/Makefile.bor
+++ /dev/null
@@ -1,289 +0,0 @@
-# Makefile for building the ACE library with Borland C++ Builder
-# $Id$
-
-NAME = ace
-
-!ifdef SSL_ROOT
-DIRS = QoS \
- SSL \
- RMCast
-!else
-DIRS = QoS \
- RMCast
-!endif
-
-OBJFILES = \
- $(OBJDIR)\ACE.obj \
- $(OBJDIR)\Init_ACE.obj \
- $(OBJDIR)\Flag_Manip.obj \
- $(OBJDIR)\Handle_Ops.obj \
- $(OBJDIR)\Lib_Find.obj \
- $(OBJDIR)\Sock_Connect.obj \
- $(OBJDIR)\Malloc_Instantiations.obj \
- $(OBJDIR)\Activation_Queue.obj \
- $(OBJDIR)\Active_Map_Manager.obj \
- $(OBJDIR)\Addr.obj \
- $(OBJDIR)\Arg_Shifter.obj \
- $(OBJDIR)\ARGV.obj \
- $(OBJDIR)\Argv_Type_Converter.obj \
- $(OBJDIR)\Asynch_IO.obj \
- $(OBJDIR)\Asynch_IO_Impl.obj \
- $(OBJDIR)\Asynch_Pseudo_Task.obj \
- $(OBJDIR)\ATM_Acceptor.obj \
- $(OBJDIR)\ATM_Addr.obj \
- $(OBJDIR)\ATM_Connector.obj \
- $(OBJDIR)\ATM_Params.obj \
- $(OBJDIR)\ATM_QoS.obj \
- $(OBJDIR)\ATM_Stream.obj \
- $(OBJDIR)\Atomic_Op.obj \
- $(OBJDIR)\Based_Pointer_Repository.obj \
- $(OBJDIR)\Base_Thread_Adapter.obj \
- $(OBJDIR)\Basic_Types.obj \
- $(OBJDIR)\Capabilities.obj \
- $(OBJDIR)\CDR_Base.obj \
- $(OBJDIR)\CDR_Stream.obj \
- $(OBJDIR)\Codecs.obj \
- $(OBJDIR)\Codeset_Registry.obj \
- $(OBJDIR)\Codeset_Registry_db.obj \
- $(OBJDIR)\Configuration.obj \
- $(OBJDIR)\Configuration_Import_Export.obj \
- $(OBJDIR)\Connection_Recycling_Strategy.obj \
- $(OBJDIR)\Containers.obj \
- $(OBJDIR)\Copy_Disabled.obj \
- $(OBJDIR)\Date_Time.obj \
- $(OBJDIR)\DEV.obj \
- $(OBJDIR)\DEV_Addr.obj \
- $(OBJDIR)\DEV_Connector.obj \
- $(OBJDIR)\DEV_IO.obj \
- $(OBJDIR)\Dirent.obj \
- $(OBJDIR)\Dirent_Selector.obj \
- $(OBJDIR)\DLL.obj \
- $(OBJDIR)\DLL_Manager.obj \
- $(OBJDIR)\Dump.obj \
- $(OBJDIR)\Dynamic.obj \
- $(OBJDIR)\Dynamic_Service.obj \
- $(OBJDIR)\Dynamic_Service_Base.obj \
- $(OBJDIR)\Event_Handler.obj \
- $(OBJDIR)\FIFO.obj \
- $(OBJDIR)\FIFO_Recv.obj \
- $(OBJDIR)\FIFO_Recv_Msg.obj \
- $(OBJDIR)\FIFO_Send.obj \
- $(OBJDIR)\FIFO_Send_Msg.obj \
- $(OBJDIR)\FILE.obj \
- $(OBJDIR)\FILE_Addr.obj \
- $(OBJDIR)\FILE_Connector.obj \
- $(OBJDIR)\FILE_IO.obj \
- $(OBJDIR)\Filecache.obj \
- $(OBJDIR)\Framework_Component.obj \
- $(OBJDIR)\Functor.obj \
- $(OBJDIR)\Get_Opt.obj \
- $(OBJDIR)\Handle_Set.obj \
- $(OBJDIR)\Hashable.obj \
- $(OBJDIR)\Hash_Map_Manager.obj \
- $(OBJDIR)\High_Res_Timer.obj \
- $(OBJDIR)\INET_Addr.obj \
- $(OBJDIR)\IO_Cntl_Msg.obj \
- $(OBJDIR)\IO_SAP.obj \
- $(OBJDIR)\IOStream.obj \
- $(OBJDIR)\IPC_SAP.obj \
- $(OBJDIR)\Local_Name_Space.obj \
- $(OBJDIR)\Local_Tokens.obj \
- $(OBJDIR)\Log_Msg.obj \
- $(OBJDIR)\Log_Msg_Backend.obj \
- $(OBJDIR)\Log_Msg_Callback.obj \
- $(OBJDIR)\Log_Msg_IPC.obj \
- $(OBJDIR)\Log_Msg_NT_Event_Log.obj \
- $(OBJDIR)\Log_Record.obj \
- $(OBJDIR)\Logging_Strategy.obj \
- $(OBJDIR)\LSOCK.obj \
- $(OBJDIR)\LSOCK_Acceptor.obj \
- $(OBJDIR)\LSOCK_CODgram.obj \
- $(OBJDIR)\LSOCK_Connector.obj \
- $(OBJDIR)\LSOCK_Dgram.obj \
- $(OBJDIR)\LSOCK_Stream.obj \
- $(OBJDIR)\Malloc.obj \
- $(OBJDIR)\PI_Malloc.obj \
- $(OBJDIR)\Malloc_Allocator.obj \
- $(OBJDIR)\Map.obj \
- $(OBJDIR)\MEM_Acceptor.obj \
- $(OBJDIR)\MEM_Addr.obj \
- $(OBJDIR)\MEM_Connector.obj \
- $(OBJDIR)\MEM_IO.obj \
- $(OBJDIR)\Mem_Map.obj \
- $(OBJDIR)\MEM_SAP.obj \
- $(OBJDIR)\MEM_Stream.obj \
- $(OBJDIR)\Memory_Pool.obj \
- $(OBJDIR)\Message_Block.obj \
- $(OBJDIR)\Message_Queue.obj \
- $(OBJDIR)\Method_Request.obj \
- $(OBJDIR)\Msg_WFMO_Reactor.obj \
- $(OBJDIR)\Multiplexor.obj \
- $(OBJDIR)\Name_Proxy.obj \
- $(OBJDIR)\Name_Request_Reply.obj \
- $(OBJDIR)\Name_Space.obj \
- $(OBJDIR)\Naming_Context.obj \
- $(OBJDIR)\Notification_Strategy.obj \
- $(OBJDIR)\NT_Service.obj \
- $(OBJDIR)\Object_Manager.obj \
- $(OBJDIR)\Obchunk.obj \
- $(OBJDIR)\Obstack.obj \
- $(OBJDIR)\OS.obj \
- $(OBJDIR)\OS_Dirent.obj \
- $(OBJDIR)\OS_Errno.obj \
- $(OBJDIR)\OS_Log_Msg_Attributes.obj \
- $(OBJDIR)\OS_Memory.obj \
- $(OBJDIR)\OS_QoS.obj \
- $(OBJDIR)\OS_String.obj \
- $(OBJDIR)\OS_TLI.obj \
- $(OBJDIR)\OS_Thread_Adapter.obj \
- $(OBJDIR)\Thread_Hook.obj \
- $(OBJDIR)\Thread_Adapter.obj \
- $(OBJDIR)\Base_Thread_Adapter.obj \
- $(OBJDIR)\OS_Thread_Adapter.obj \
- $(OBJDIR)\Thread_Exit.obj \
- $(OBJDIR)\Thread_Control.obj \
- $(OBJDIR)\Pair.obj \
- $(OBJDIR)\Parse_Node.obj \
- $(OBJDIR)\Pipe.obj \
- $(OBJDIR)\Priority_Reactor.obj \
- $(OBJDIR)\Proactor.obj \
- $(OBJDIR)\Process.obj \
- $(OBJDIR)\Process_Manager.obj \
- $(OBJDIR)\Profile_Timer.obj \
- $(OBJDIR)\Reactor.obj \
- $(OBJDIR)\Reactor_Notification_Strategy.obj \
- $(OBJDIR)\Read_Buffer.obj \
- $(OBJDIR)\Recyclable.obj \
- $(OBJDIR)\Refcountable.obj \
- $(OBJDIR)\Registry.obj \
- $(OBJDIR)\Registry_Name_Space.obj \
- $(OBJDIR)\Remote_Name_Space.obj \
- $(OBJDIR)\Remote_Tokens.obj \
- $(OBJDIR)\Sched_Params.obj \
- $(OBJDIR)\Select_Reactor.obj \
- $(OBJDIR)\Select_Reactor_Base.obj \
- $(OBJDIR)\Service_Config.obj \
- $(OBJDIR)\Service_Manager.obj \
- $(OBJDIR)\Service_Object.obj \
- $(OBJDIR)\Service_Repository.obj \
- $(OBJDIR)\Service_Types.obj \
- $(OBJDIR)\Service_Templates.obj \
- $(OBJDIR)\Shared_Memory.obj \
- $(OBJDIR)\Shared_Memory_MM.obj \
- $(OBJDIR)\Shared_Memory_SV.obj \
- $(OBJDIR)\Shared_Object.obj \
- $(OBJDIR)\Signal.obj \
- $(OBJDIR)\SOCK.obj \
- $(OBJDIR)\SOCK_Acceptor.obj \
- $(OBJDIR)\SOCK_CODgram.obj \
- $(OBJDIR)\SOCK_Connector.obj \
- $(OBJDIR)\SOCK_Dgram.obj \
- $(OBJDIR)\SOCK_Dgram_Bcast.obj \
- $(OBJDIR)\SOCK_Dgram_Mcast.obj \
- $(OBJDIR)\SOCK_IO.obj \
- $(OBJDIR)\SOCK_Stream.obj \
- $(OBJDIR)\SPIPE.obj \
- $(OBJDIR)\SPIPE_Acceptor.obj \
- $(OBJDIR)\SPIPE_Addr.obj \
- $(OBJDIR)\SPIPE_Connector.obj \
- $(OBJDIR)\SPIPE_Stream.obj \
- $(OBJDIR)\String_Base_Const.obj \
- $(OBJDIR)\SString.obj \
- $(OBJDIR)\Basic_Stats.obj \
- $(OBJDIR)\Stats.obj \
- $(OBJDIR)\Sample_History.obj \
- $(OBJDIR)\SV_Message.obj \
- $(OBJDIR)\SV_Message_Queue.obj \
- $(OBJDIR)\SV_Semaphore_Complex.obj \
- $(OBJDIR)\SV_Semaphore_Simple.obj \
- $(OBJDIR)\SV_Shared_Memory.obj \
- $(OBJDIR)\Svc_Conf_l.obj \
- $(OBJDIR)\Svc_Conf_y.obj \
- $(OBJDIR)\Svc_Conf_Lexer_Guard.obj \
- $(OBJDIR)\Svc_Handler.obj \
- $(OBJDIR)\Synch.obj \
- $(OBJDIR)\Process_Semaphore.obj \
- $(OBJDIR)\Process_Mutex.obj \
- $(OBJDIR)\RW_Process_Mutex.obj \
- $(OBJDIR)\File_Lock.obj \
- $(OBJDIR)\Synch_Options.obj \
- $(OBJDIR)\System_Time.obj \
- $(OBJDIR)\Task.obj \
- $(OBJDIR)\Template_Instantiations.obj \
- $(OBJDIR)\Thread.obj \
- $(OBJDIR)\Thread_Manager.obj \
- $(OBJDIR)\Time_Request_Reply.obj \
- $(OBJDIR)\Time_Value.obj \
- $(OBJDIR)\Timeprobe.obj \
- $(OBJDIR)\Timer_Hash.obj \
- $(OBJDIR)\Timer_Heap.obj \
- $(OBJDIR)\Timer_List.obj \
- $(OBJDIR)\Timer_Queue.obj \
- $(OBJDIR)\Timer_Queue_Adapters.obj \
- $(OBJDIR)\Timer_Wheel.obj \
- $(OBJDIR)\TLI.obj \
- $(OBJDIR)\TLI_Acceptor.obj \
- $(OBJDIR)\TLI_Connector.obj \
- $(OBJDIR)\TLI_Stream.obj \
- $(OBJDIR)\Token.obj \
- $(OBJDIR)\Token_Collection.obj \
- $(OBJDIR)\Token_Invariants.obj \
- $(OBJDIR)\Token_Manager.obj \
- $(OBJDIR)\Token_Request_Reply.obj \
- $(OBJDIR)\TP_Reactor.obj \
- $(OBJDIR)\Trace.obj \
- $(OBJDIR)\TTY_IO.obj \
- $(OBJDIR)\Typed_SV_Message.obj \
- $(OBJDIR)\Typed_SV_Message_Queue.obj \
- $(OBJDIR)\UNIX_Addr.obj \
- $(OBJDIR)\UPIPE_Acceptor.obj \
- $(OBJDIR)\UPIPE_Connector.obj \
- $(OBJDIR)\UPIPE_Stream.obj \
- $(OBJDIR)\WFMO_Reactor.obj \
- $(OBJDIR)\WIN32_Asynch_IO.obj \
- $(OBJDIR)\WIN32_Proactor.obj \
- $(OBJDIR)\XML_Svc_Conf.obj \
- $(OBJDIR)\XtReactor.obj
-
-RESOURCE = $(OBJDIR)\ace.res
-
-CFLAGS = $(ACE_CFLAGS) -DACE_BUILD_DLL -DACE_OS_BUILD_DLL
-CPPDIR = .
-
-INCDIR_NAME = ace
-INCLUDES = \
- *.h *.i *.inl *_T.cpp \
- Acceptor.cpp \
- Asynch_Acceptor.cpp \
- Asynch_Connector.cpp \
- Array_Base.cpp \
- Node.cpp \
- Unbounded_Set.cpp \
- Unbounded_Set_Ex.cpp \
- Unbounded_Queue.cpp \
- Auto_Ptr.cpp \
- Connector.cpp \
- Dynamic_Service.cpp \
- Free_List.cpp \
- Future.cpp \
- Future_Set.cpp \
- Intrusive_List.cpp \
- Intrusive_List_Node.cpp \
- LOCK_SOCK_Acceptor.cpp \
- Managed_Object.cpp \
- Map_Manager.cpp \
- Module.cpp \
- RB_Tree.cpp \
- Singleton.cpp \
- Stream.cpp \
- Stream_Modules.cpp \
- String_Base.cpp \
- Svc_Handler.cpp \
- Swap.cpp \
- Test_and_Set.cpp \
- Timer_Queue_Adapters.cpp \
- Typed_SV_Message.cpp \
- Typed_SV_Message_Queue.cpp
-
-!include <$(ACE_ROOT)\include\makeinclude\build_core_library.bor>
-!include <$(ACE_ROOT)\include\makeinclude\recurse.bor>
diff --git a/ace/Makefile.dirs b/ace/Makefile.dirs
deleted file mode 100644
index e855542bf32..00000000000
--- a/ace/Makefile.dirs
+++ /dev/null
@@ -1,37 +0,0 @@
-#----------------------------------------------------------------------------
-# Makefile,v 4.313 2002/07/30 16:11:06 ossama Exp
-#
-# Makefile for the entire ACE release
-#----------------------------------------------------------------------------
-
-MAKEFILE = Makefile.dirs
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-
-ifeq ($(ssl),1)
- DIRS += SSL
-endif # ssl
-
-ifneq ($(rmcast),0)
- DIRS += RMCast
-endif # rmcast
-
-## Only build the contents of the QoS directory under UNIX
-## if we have the RAPI library installed
-ifeq ($(rapi),1)
- DIRS += QoS
-endif # rapi
-
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ace/Makefile.vac b/ace/Makefile.vac
deleted file mode 100644
index 209c0c313cb..00000000000
--- a/ace/Makefile.vac
+++ /dev/null
@@ -1,11 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for building libACE using Visual Age C++ Incremental compiler
-#----------------------------------------------------------------------------
-
-all:
- vacbld_r ace.icc -sev=w
-
-realclean:
- vacbld_r ace.icc -clean
diff --git a/ace/Malloc.cpp b/ace/Malloc.cpp
deleted file mode 100644
index a96c21c8e6e..00000000000
--- a/ace/Malloc.cpp
+++ /dev/null
@@ -1,196 +0,0 @@
-// $Id$
-
-#if !defined (ACE_MALLOC_CPP)
-#define ACE_MALLOC_CPP
-
-#include "ace/Malloc.h"
-#include "ace/Object_Manager.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Malloc.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Synch_T.h"
-
-ACE_RCSID(ace, Malloc, "$Id$")
-
-// Process-wide ACE_Allocator.
-ACE_Allocator *ACE_Allocator::allocator_ = 0;
-
-// Controls whether the Allocator is deleted when we shut down (we can
-// only delete it safely if we created it!) This is no longer used;
-// see ACE_Allocator::instance (void).
-int ACE_Allocator::delete_allocator_ = 0;
-
-void
-ACE_Control_Block::ACE_Malloc_Header::dump (void) const
-{
- ACE_TRACE ("ACE_Control_Block::ACE_Malloc_Header::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nnext_block = %@"), (ACE_Malloc_Header *) this->next_block_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nsize = %d\n"), this->size_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_Control_Block::print_alignment_info (void)
-{
- ACE_TRACE ("ACE_Control_Block::print_alignment_info");
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("Start ---> ACE_Control_Block::print_alignment_info:\n")));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Sizeof ptr: %d\n")
- ACE_LIB_TEXT ("Sizeof size_t: %d\n")
- ACE_LIB_TEXT ("Sizeof long: %d\n")
- ACE_LIB_TEXT ("Sizeof double: %d\n")
- ACE_LIB_TEXT ("Sizeof ACE_MALLOC_ALIGN: %d\n")
- ACE_LIB_TEXT ("Sizeof ACE_MALLOC_PADDING: %d\n")
- ACE_LIB_TEXT ("Sizeof ACE_MALLOC_HEADER_SIZE: %d\n")
- ACE_LIB_TEXT ("Sizeof ACE_MALLOC_PADDING_SIZE: %d\n")
- ACE_LIB_TEXT ("Sizeof ACE_CONTROL_BLOCK_SIZE: %d\n")
- ACE_LIB_TEXT ("Sizeof ACE_CONTROL_BLOCK_ALIGN_BYTES: %d\n")
- ACE_LIB_TEXT ("Sizeof (MALLOC_HEADER): %d\n")
- ACE_LIB_TEXT ("Sizeof (CONTROL_BLOCK): %d\n"),
- sizeof (char *),
- sizeof (size_t),
- sizeof (long),
- sizeof (double),
- ACE_MALLOC_ALIGN,
- ACE_MALLOC_PADDING,
- ACE_MALLOC_HEADER_SIZE,
- ACE_MALLOC_PADDING_SIZE,
- ACE_CONTROL_BLOCK_SIZE,
- ACE_CONTROL_BLOCK_ALIGN_BYTES,
- sizeof (ACE_Malloc_Header),
- sizeof (ACE_Control_Block)
- ));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("End <--- ACE_Control_Block::print_alignment_info:\n")));
-}
-
-void
-ACE_Control_Block::dump (void) const
-{
- ACE_TRACE ("ACE_Control_Block::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("Name Node:\n")));
- for (ACE_Name_Node *nextn = this->name_head_;
- nextn != 0;
- nextn = nextn->next_)
- nextn->dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("freep_ = %@"), (ACE_Malloc_Header *) this->freep_));
- this->base_.dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nMalloc Header:\n")));
- for (ACE_Malloc_Header *nexth = ((ACE_Malloc_Header *)this->freep_)->next_block_;
- nexth != 0 && nexth != &this->base_;
- nexth = nexth->next_block_)
- nexth->dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Control_Block::ACE_Name_Node::ACE_Name_Node (void)
-{
- ACE_TRACE ("ACE_Control_Block::ACE_Name_Node::ACE_Name_Node");
-}
-
-ACE_Control_Block::ACE_Name_Node::ACE_Name_Node (const char *name,
- char *name_ptr,
- char *pointer,
- ACE_Name_Node *next)
- : name_ (name_ptr),
- pointer_ (pointer),
- next_ (next),
- prev_ (0)
-{
- ACE_TRACE ("ACE_Control_Block::ACE_Name_Node::ACE_Name_Node");
- char *n = this->name_;
- ACE_OS::strcpy (n, name);
- if (next != 0)
- next->prev_ = this;
-}
-
-ACE_Control_Block::ACE_Name_Node::ACE_Name_Node (const ACE_Name_Node &)
-{
- ACE_TRACE ("ACE_Control_Block::ACE_Name_Node::ACE_Name_Node");
-#if !defined (ACE_PSOS)
- ACE_ASSERT (!"not implemented!");
-#endif /* ! ACE_PSOS */
-}
-
-const char *
-ACE_Control_Block::ACE_Name_Node::name (void) const
-{
- const char *c = this->name_;
- return c;
-}
-
-void
-ACE_Control_Block::ACE_Name_Node::name (const char *)
-{
-#if !defined (ACE_PSOS)
- ACE_ASSERT (0 == "not implemented!");
-#endif /* ! ACE_PSOS */
-}
-
-ACE_Control_Block::ACE_Malloc_Header::ACE_Malloc_Header (void)
- : next_block_ (0),
- size_ (0)
-{
-}
-
-void
-ACE_Control_Block::ACE_Name_Node::dump (void) const
-{
- ACE_TRACE ("ACE_Control_Block::ACE_Name_Node::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("pointer = %@"), (const char *) this->pointer_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nnext_ = %@"), (ACE_Name_Node *) this->next_));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\nname_ = (%@, %s)"),
- (const char *) this->name_,
- (const char *) this->name_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-
-#if defined (ACE_HAS_MALLOC_STATS)
-ACE_Malloc_Stats::ACE_Malloc_Stats (void)
- : nchunks_ (0),
- nblocks_ (0),
- ninuse_ (0)
-{
- ACE_TRACE ("ACE_Malloc_Stats::ACE_Malloc_Stats");
-}
-
-void
-ACE_Malloc_Stats::dump (void) const
-{
- ACE_TRACE ("ACE_Malloc_Stats::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- int nblocks = this->nblocks_.value ();
- int ninuse = this->ninuse_.value ();
- int nchunks = this->nchunks_.value ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT("nblocks = %d"), nblocks));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT("\nninuse = %d"), ninuse));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT("\nnchunks = %d"), nchunks));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Atomic_Op<ACE_PROCESS_MUTEX, int>;
-template class ACE_Atomic_Op_Ex<ACE_PROCESS_MUTEX, int>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Atomic_Op<ACE_PROCESS_MUTEX, int>
-#pragma instantiate ACE_Atomic_Op_Ex<ACE_PROCESS_MUTEX, int>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /*ACE_HAS_MALLOC_STATS*/
-#endif /* ACE_MALLOC_CPP */
diff --git a/ace/Malloc.h b/ace/Malloc.h
deleted file mode 100644
index eb2c65fa31b..00000000000
--- a/ace/Malloc.h
+++ /dev/null
@@ -1,394 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Malloc.h
- *
- * $Id$
- *
- * @author Doug Schmidt and Irfan Pyarali
- */
-//==========================================================================
-
-#ifndef ACE_MALLOC_H
-#define ACE_MALLOC_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_HAS_MALLOC_STATS)
-#include "ace/Atomic_Op.h"
-#if defined (ACE_HAS_THREADS)
-#include "ace/Process_Mutex.h"
-#define ACE_PROCESS_MUTEX ACE_Process_Mutex
-#else
-#include "ace/SV_Semaphore_Simple.h"
-#define ACE_PROCESS_MUTEX ACE_SV_Semaphore_Simple
-#endif /* ACE_HAS_THREADS */
-
-typedef ACE_Atomic_Op<ACE_PROCESS_MUTEX, int> ACE_INT;
-
-/******************************************************************
-
-* Assume that ACE_MALLOC_ALIGN is the number of bytes of the alignment
- of the platform. Usually, this will be 4 on most platforms. Some
- platforms require this to be 8. In any case, this macro should
- always be a 2's power.
-
-* Malloc_Header structure.
-
- Notice that sizeof (ACE_Malloc_Header) must be multiple of
- ACE_MALLOC_ALIGN
-
- +-----------------------------------------+
- |MALLOC_HEADER_PTR *next_block_; |
- | // Points to next free Malloc_Header |
- | // in this chain. |
- +-----------------------------------------+
- |size_t size_; |
- | // Size of buffer associate with |
- | // this Malloc_Header |
- } // The size is in number of |
- | // Malloc_Header (including this one.)|
- +-----------------------------------------+
- |char paddings_[ACE_MALLOC_PADDING_SIZE]; |
- | // Padding array. This purpose |
- | // of this padding array is to adjust |
- | // the sizeof (Malloc_Header) to be |
- | // multiple of ACE_MALLOC_ALIGN. |
- +-----------------------------------------+
-
-* Name_Node
-
- ACE_Malloc allows searching thru it's allocated buffer using names.
- Name_Node is an internal data structure that ACE_Malloc used to
- maintain a linked list that manages this (name, buffer) mappings.
-
- +-----------------------------------------+
- |char *name_; |
- | // Points to a dynamically allocated |
- | // char buffer that holds the name |
- | // of this node. This buffer is |
- | // allocated from using this |
- | // ACE_MALLOC instance that owns this |
- | // Name_Node (so it always points to |
- | // a buffer owned by its Malloc. |
- +-----------------------------------------+
- |char *pointer_; |
- | // Points to the content that <name_> |
- | // referring to. Like <name_>, the |
- | // context always resides within the |
- | // Malloc. |
- +-----------------------------------------+
- |NAME_NODE_PTR next_; |
- +-----------------------------------------+
- |NAME_NODE_PTR prev_; |
- | // Name Node linked list pointers. |
- +-----------------------------------------+
-
-
-* Control_Block
-
- Only the first ACE_Malloc instance that uses
- the shared memory will initialize the control block because all
- later instances are supposed to share the memory with the first
- instance. The following diagram shows the initial value of a
- Control_Block.
-
- +-----------------------------------------+
- |NAME_NODE_PTR name_head_; |<---- NULL
- | // Entry point for double-linked list.|
- | // Initialized to NULL pointer to |
- | // indicate an empty list. |
- +-----------------------------------------+
- |MALLOC_HEADER_PTR freep_; |
- | // Pointer to last un-allocated |
- | // malloc_header linked list. |---+
- +-----------------------------------------+ |
- |char lock_name_[MAXNAMELEN]; | |
- | // The global name of the lock. | |
- +-----------------------------------------+ |
- |Malloc_Stats malloc_stats_; | |
- | // (Optional statistic information. | |
- | // Do not exist if | |
- | // ACE_HAS_MALLOC_STATS is not | |
- | // defined. | |
- +-----------------------------------------+ |
- |char align_[CONTROL_BLOCK_ALIGN_BYTES]; | |
- | // | |
- +-----------------------------------------+ |
- |Malloc_Header base_; |<--+
- | // Dummy node used to anchor the |
- | // freelist. |<--+
- | +-------------+ |
- | |next_ |---+
- | +-------------+
- | |size_ |----> 0
- +-----------------------------------------+
-
- The first ACE_Malloc initializes the control block by allocating a
- memory block of size equal to or greater than sizeof (control block)
- (rounded to the closest <rounded_bytes>) and invokes the placement
- new's on to initialize the control block and its internal
- pointers/data structures. If the extra memory (memory after the
- <base_> in the following diagram) is enough to create a
- Malloc_Header chain, one is created and added to the freelist list.
- That is, if the memory size returned by init_acquire() is greater
- than the sizeof Control_Block, the control block is initialized to
- the following diagram:
-
-
- +-------------------------------------
- |name_head_; |
- +-------------------------------------+
- |MALLOC_HEADER_PTR freep_; |--+
- +-------------------------------------+ |
- |lock_name_[...]; | |
- +-------------------------------------+ |
- |malloc_stats_; (Optional) | |
- +-------------------------------------+ |
- |align_[...]; | |
- +-------------------------------------+ |
- |Malloc_Header base_; |<-+
- | +-----------+
- | |next_; |--+
- | +-----------+ |
- | |size_ = 0; | |
- +=====================================+ |
- |Malloc_Header base_; |<-+
- | +-----------+
- | |next_; |
- | +-----------+
- | |size_ = 3; |
- +-------------------------------------+
- |Malloc_Header base_; |
- | +-----------+
- | (Uninitialized) |next_; |
- | +-----------+
- | |size_; |
- +-------------------------------------+
- |Malloc_Header base_; |
- | +-----------+
- | (Uninitialized) |next_; |
- | +-----------+
- | |size_; |
- +-------------------------------------+
-
-***********************************************************/
-
-/// This keeps stats on the usage of the memory manager.
-struct ACE_Export ACE_Malloc_Stats
-{
- ACE_Malloc_Stats (void);
- void dump (void) const;
-
- /// Coarse-grained unit of allocation.
- ACE_INT nchunks_;
-
- /// Fine-grained unit of allocation.
- ACE_INT nblocks_;
-
- /// Number of blocks in use
- ACE_INT ninuse_;
-};
-#define ACE_MALLOC_STATS(X) X
-#else
-#define ACE_MALLOC_STATS(X)
-#endif /* ACE_HAS_MALLOC_STATS */
-
-#if !defined (ACE_MALLOC_PADDING)
-// ACE_MALLOC_PADDING allows you to insure that allocated regions are
-// at least <ACE_MALLOC_PADDING> bytes long. It is especially useful
-// when you want areas to be at least a page long, or 32K long, or
-// something like that.
-
-#define ACE_MALLOC_PADDING 1
-#endif /* ACE_MALLOC_PADDING */
-
-union ACE_max_align_info
-{
- int (*i)();
- void* p;
- long l;
- double d;
-};
-
-#if !defined (ACE_MALLOC_ALIGN)
-// Align the malloc header size to a multiple of a double.
-#define ACE_MALLOC_ALIGN (sizeof (ACE_max_align_info))
-#endif /* ACE_MALLOC_ALIGN */
-
-#if !defined ACE_MALLOC_ROUNDUP
-#define ACE_MALLOC_ROUNDUP(X, Y) ((X) + ((Y) - 1) & ~((Y) - 1))
-#endif
-
-// ACE_MALLOC_HEADER_SIZE is the normalized malloc header size.
-#define ACE_MALLOC_HEADER_SIZE ACE_MALLOC_ROUNDUP(ACE_MALLOC_PADDING, ACE_MALLOC_ALIGN)
-
-/**
- * @class ACE_Control_Block
- *
- * @brief This information is stored in memory allocated by the <Memory_Pool>.
- *
- * This class defines the "old" control block class for use in
- * ACE_Malloc_T. This control block implementation is
- * considerable more efficient than the "position independent"
- * one below (ACE_PI_Control_Block) but if you are going to use
- * it to construct a ACE_Malloc_T and access the memory from
- * several different processes, you must "map" the underlying
- * memory pool to the same address.
- */
-class ACE_Export ACE_Control_Block
-{
-public:
-
- /**
- * @class ACE_Malloc_Header
- *
- * @brief This is the control block header. It's used by <ACE_Malloc>
- * to keep track of each chunk of data when it's in the free
- * list or in use.
- */
- class ACE_Export ACE_Malloc_Header
- {
- public:
- ACE_Malloc_Header (void);
-
- /// Points to next block if on free list.
- ACE_Malloc_Header *next_block_;
-
- /// Initialize a malloc header pointer.
- static void init_ptr (ACE_Malloc_Header **ptr,
- ACE_Malloc_Header *init,
- void *base_addr);
-
- /// Size of this header control block.
- size_t size_;
-
-# if !defined (ACE_MALLOC_PADDING_SIZE)
-# define ACE_MALLOC_PADDING_SIZE ACE_MALLOC_ROUNDUP (ACE_MALLOC_HEADER_SIZE + sizeof (ACE_Malloc_Header*) + sizeof (size_t), ACE_MALLOC_ALIGN) - (sizeof (ACE_Malloc_Header*) + sizeof (size_t))
-# endif /* !ACE_MALLOC_PADDING_SIZE */
- char padding_[(ACE_MALLOC_PADDING_SIZE) ? ACE_MALLOC_PADDING_SIZE : ACE_MALLOC_ALIGN];
-
- /// Dump the state of the object.
- void dump (void) const;
- };
-
- /**
- * @class ACE_Name_Node
- *
- * @brief This class supports "named memory regions" within <ACE_Malloc>.
- *
- * Internally, the named memory regions are stored as a
- * doubly-linked list within the <Memory_Pool>. This makes
- * it easy to iterate over the items in the list in both FIFO
- * and LIFO order.
- */
- class ACE_Export ACE_Name_Node
- {
- public:
- // = Initialization methods.
- /// Constructor.
- ACE_Name_Node (const char *name,
- char *name_ptr,
- char *pointer,
- ACE_Name_Node *head);
-
- /// Copy constructor.
- ACE_Name_Node (const ACE_Name_Node &);
-
- /// Constructor.
- ACE_Name_Node (void);
-
- /// Constructor.
- ~ACE_Name_Node (void);
-
- /// Initialize a name node pointer.
- static void init_ptr (ACE_Name_Node **ptr,
- ACE_Name_Node *init,
- void *base_addr);
-
- /// Return a pointer to the name of this node.
- const char *name (void) const;
-
- /// Assign a name;
- void name (const char *);
-
- /// Name of the Node.
- char *name_;
-
- /// Pointer to the contents.
- char *pointer_;
-
- /// Pointer to the next node in the doubly-linked list.
- ACE_Name_Node *next_;
-
- /// Pointer to the previous node in the doubly-linked list.
- ACE_Name_Node *prev_;
-
- /// Dump the state of the object.
- void dump (void) const;
- };
-
- /// Print out a bunch of size info for debugging.
- static void print_alignment_info (void);
-
- /// Reference counter.
- int ref_counter_;
-
- /// Head of the linked list of Name Nodes.
- ACE_Name_Node *name_head_;
-
- /// Current head of the freelist.
- ACE_Malloc_Header *freep_;
-
- /// Name of lock thats ensures mutual exclusion.
- char lock_name_[MAXNAMELEN];
-
-#if defined (ACE_HAS_MALLOC_STATS)
- /// Keep statistics about ACE_Malloc state and performance.
- ACE_Malloc_Stats malloc_stats_;
-#define ACE_CONTROL_BLOCK_SIZE ((int)(sizeof (ACE_Name_Node*) \
- + sizeof (ACE_Malloc_Header*) \
- + sizeof (int) \
- + MAXNAMELEN \
- + sizeof (ACE_Malloc_Stats)))
-#else
-#define ACE_CONTROL_BLOCK_SIZE ((int)(sizeof (ACE_Name_Node*) \
- + sizeof (ACE_Malloc_Header*) \
- + sizeof (int) \
- + MAXNAMELEN))
-#endif /* ACE_HAS_MALLOC_STATS */
-
-# if !defined (ACE_CONTROL_BLOCK_ALIGN_BYTES)
-# define ACE_CONTROL_BLOCK_ALIGN_BYTES \
- ACE_MALLOC_ROUNDUP (ACE_CONTROL_BLOCK_SIZE, ACE_MALLOC_ALIGN) - ACE_CONTROL_BLOCK_SIZE
-# endif /* !ACE_CONTROL_BLOCK_ALIGN_BYTES */
- char align_[(ACE_CONTROL_BLOCK_ALIGN_BYTES) ? ACE_CONTROL_BLOCK_ALIGN_BYTES : ACE_MALLOC_ALIGN];
-
- /// Dummy node used to anchor the freelist. This needs to come last...
- ACE_Malloc_Header base_;
-
- /// Dump the state of the object.
- void dump (void) const;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Malloc.i"
-#endif /* __ACE_INLINE__ */
-
-// Include the ACE_Malloc templates and ACE_Memory_Pool classes at this point.
-#include "ace/Malloc_T.h"
-#include "ace/Memory_Pool.h"
-
-#include "ace/post.h"
-
-#endif /* ACE_MALLOC_H */
diff --git a/ace/Malloc.i b/ace/Malloc.i
deleted file mode 100644
index 76722f13fb7..00000000000
--- a/ace/Malloc.i
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_Control_Block::ACE_Name_Node::~ACE_Name_Node (void)
-{
-}
-
-ACE_INLINE void
-ACE_Control_Block::ACE_Malloc_Header::init_ptr
- (ACE_Malloc_Header **ptr, ACE_Malloc_Header *init, void *)
-{
- *ptr = init;
-}
-
-ACE_INLINE void
-ACE_Control_Block::ACE_Name_Node::init_ptr
- (ACE_Name_Node **ptr, ACE_Name_Node *init, void *)
-{
- *ptr = init;
-}
diff --git a/ace/Malloc_Allocator.cpp b/ace/Malloc_Allocator.cpp
deleted file mode 100644
index 73885536cb9..00000000000
--- a/ace/Malloc_Allocator.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-// $Id$
-
-// FILENAME
-// Malloc_Allocator.cpp
-//
-// AUTHOR
-// Priyanka Gontla <pgontla@uci.edu>
-//
-// ==========================================================================
-
-#if !defined (ACE_MALLOC_ALLOCATOR_CPP)
-#define ACE_MALLOC_ALLOCATOR_CPP
-
-#include "ace/Malloc_Allocator.h"
-#include "ace/Object_Manager.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Malloc_Allocator.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Synch_T.h"
-
-ACE_RCSID (ace, Malloc_Allocator, "$Id$")
-
-ACE_Allocator *
-ACE_Allocator::instance (void)
-{
- // ACE_TRACE ("ACE_Allocator::instance");
-
- if (ACE_Allocator::allocator_ == 0)
- {
- // Perform Double-Checked Locking Optimization.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
-
- if (ACE_Allocator::allocator_ == 0)
- {
- // Have a seat. We want to avoid ever having to delete the
- // ACE_Allocator instance, to avoid shutdown order
- // dependencies. ACE_New_Allocator never needs to be
- // destroyed: its destructor is empty and its instance
- // doesn't have any state. Therefore, sizeof
- // ACE_New_Allocator is equal to sizeof void *. It's
- // instance just contains a pointer to its virtual function
- // table.
- //
- // So, we allocate space for the ACE_New_Allocator instance
- // in the data segment. Because its size is the same as
- // that of a pointer, we allocate it as a pointer so that it
- // doesn't get constructed statically. We never bother to
- // destroy it.
- static void *allocator_instance = 0;
-
- // Check this critical assumption. We put it in a variable
- // first to avoid stupid compiler warnings that the
- // condition may always be true/false.
-# if !defined (ACE_NDEBUG)
- int assertion = (sizeof allocator_instance ==
- sizeof (ACE_New_Allocator));
- ACE_ASSERT (assertion);
-# endif /* !ACE_NDEBUG */
-
- // Initialize the allocator_instance by using a placement
- // new.
- ACE_Allocator::allocator_ =
- new (&allocator_instance) ACE_New_Allocator;
- }
- }
-
- return ACE_Allocator::allocator_;
-}
-
-ACE_Allocator *
-ACE_Allocator::instance (ACE_Allocator *r)
-{
- ACE_TRACE ("ACE_Allocator::instance");
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
- ACE_Allocator *t = ACE_Allocator::allocator_;
-
- // We can't safely delete it since we don't know who created it!
- ACE_Allocator::delete_allocator_ = 0;
-
- ACE_Allocator::allocator_ = r;
- return t;
-}
-
-void
-ACE_Allocator::close_singleton (void)
-{
- ACE_TRACE ("ACE_Allocator::close_singleton");
-
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance ()));
-
- if (ACE_Allocator::delete_allocator_)
- {
- // This should never be executed.... See the
- // ACE_Allocator::instance (void) method for an explanation.
- delete ACE_Allocator::allocator_;
- ACE_Allocator::allocator_ = 0;
- ACE_Allocator::delete_allocator_ = 0;
- }
-}
-
-ACE_Allocator::~ACE_Allocator (void)
-{
- ACE_TRACE ("ACE_Allocator::~ACE_Allocator");
-}
-
-ACE_Allocator::ACE_Allocator (void)
-{
- ACE_TRACE ("ACE_Allocator::ACE_Allocator");
-}
-
-/******************************************************************************/
-
-void *
-ACE_New_Allocator::malloc (size_t nbytes)
-{
- char *ptr = 0;
-
- if (nbytes > 0)
- ACE_NEW_RETURN (ptr, char[nbytes], 0);
- return (void *) ptr;
-}
-
-void *
-ACE_New_Allocator::calloc (size_t nbytes,
- char initial_value)
-{
- char *ptr = 0;
-
- ACE_NEW_RETURN (ptr, char[nbytes], 0);
-
- ACE_OS::memset (ptr, initial_value, nbytes);
- return (void *) ptr;
-}
-
-void
-ACE_New_Allocator::free (void *ptr)
-{
- delete [] (char *) ptr;
-}
-
-/******************************************************************************/
-
-void
-ACE_Static_Allocator_Base::dump (void) const
-{
- ACE_TRACE ("ACE_Static_Allocator_Base::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\noffset_ = %d"), this->offset_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nsize_ = %d\n"), this->size_));
- ACE_HEX_DUMP ((LM_DEBUG, this->buffer_, this->size_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-
-
-#endif /* ACE_MALLOC_ALLOCATOR_CPP */
diff --git a/ace/Malloc_Allocator.h b/ace/Malloc_Allocator.h
deleted file mode 100644
index ab3d4166039..00000000000
--- a/ace/Malloc_Allocator.h
+++ /dev/null
@@ -1,143 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Malloc_Allocator.h
- *
- * $Id$
- *
- * @author Based on code that formerly existed in another ACE file.
- */
-//==========================================================================
-
-#ifndef ACE_MALLOC_ALLOCATOR_H
-#define ACE_MALLOC_ALLOCATOR_H
-
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Malloc_Base.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_HAS_MALLOC_STATS)
-#include "ace/Synch_T.h"
-#if defined (ACE_HAS_THREADS)
-#define ACE_PROCESS_MUTEX ACE_Process_Mutex
-#else
-#include "ace/SV_Semaphore_Simple.h"
-#define ACE_PROCESS_MUTEX ACE_SV_Semaphore_Simple
-#endif /* ACE_HAS_THREADS */
-
-#endif /* ACE_HAS_MALLOC_STATS */
-
-/**
- * @class ACE_New_Allocator
- *
- * @brief Defines a class that provided a simple implementation of
- * memory allocation.
- *
- * This class uses the new/delete operators to allocate and free up
- * memory. Please note that the only methods that are supported are
- * <malloc>, <calloc>, and <free>. All other methods are no-ops that
- * return -1 and set <errno> to <ENOTSUP>. If you require this
- * functionality, please use: ACE_Allocator_Adapter <ACE_Malloc
- * <ACE_LOCAL_MEMORY_POOL, MUTEX> >, which will allow you to use the
- * added functionality of bind/find/etc. while using the new/delete
- * operators.
- */
-class ACE_Export ACE_New_Allocator : public ACE_Allocator
-{
-public:
- /// These methods are defined.
- virtual void *malloc (size_t nbytes);
- virtual void *calloc (size_t nbytes, char initial_value = '\0');
- virtual void *calloc (size_t n_elem, size_t elem_size, char initial_value = '\0');
- virtual void free (void *ptr);
-
- /// These methods are no-ops.
- virtual int remove (void);
- virtual int bind (const char *name, void *pointer, int duplicates = 0);
- virtual int trybind (const char *name, void *&pointer);
- virtual int find (const char *name, void *&pointer);
- virtual int find (const char *name);
- virtual int unbind (const char *name);
- virtual int unbind (const char *name, void *&pointer);
- virtual int sync (ssize_t len = -1, int flags = MS_SYNC);
- virtual int sync (void *addr, size_t len, int flags = MS_SYNC);
- virtual int protect (ssize_t len = -1, int prot = PROT_RDWR);
- virtual int protect (void *addr, size_t len, int prot = PROT_RDWR);
-#if defined (ACE_HAS_MALLOC_STATS)
- virtual void print_stats (void) const;
-#endif /* ACE_HAS_MALLOC_STATS */
- virtual void dump (void) const;
-
-private:
- // DO NOT ADD ANY STATE (DATA MEMBERS) TO THIS CLASS!!!! See the
- // <ACE_Allocator::instance> implementation for explanation.
-};
-
-/**
- * @class ACE_Static_Allocator_Base
- *
- * @brief Defines a class that provided a highly optimized memory
- * management scheme for allocating memory statically.
- *
- * This class manages a fixed-size <POOL_SIZE> of memory. Every
- * time <malloc>/<calloc> is called, it simply moves an internal
- * index forward and returns a pointer to the requested chunk.
- * All memory is allocated statically (typically via the
- * <ACE_Static_Allocator> template) and <free> is a no-op. This
- * behavior is useful for use-cases where all the memory
- * allocation needs are known in advance and no deletions ever
- * occur.
- */
-class ACE_Export ACE_Static_Allocator_Base : public ACE_Allocator
-{
-public:
- ACE_Static_Allocator_Base (char *buffer, size_t size);
- virtual void *malloc (size_t nbytes);
- virtual void *calloc (size_t nbytes, char initial_value = '\0');
- virtual void *calloc (size_t n_elem, size_t elem_size, char initial_value = '\0');
- virtual void free (void *ptr);
- virtual int remove (void);
- virtual int bind (const char *name, void *pointer, int duplicates = 0);
- virtual int trybind (const char *name, void *&pointer);
- virtual int find (const char *name, void *&pointer);
- virtual int find (const char *name);
- virtual int unbind (const char *name);
- virtual int unbind (const char *name, void *&pointer);
- virtual int sync (ssize_t len = -1, int flags = MS_SYNC);
- virtual int sync (void *addr, size_t len, int flags = MS_SYNC);
- virtual int protect (ssize_t len = -1, int prot = PROT_RDWR);
- virtual int protect (void *addr, size_t len, int prot = PROT_RDWR);
-#if defined (ACE_HAS_MALLOC_STATS)
- virtual void print_stats (void) const;
-#endif /* ACE_HAS_MALLOC_STATS */
- virtual void dump (void) const;
-
-protected:
- /// Don't allow direct instantiations of this class.
- ACE_Static_Allocator_Base (void);
-
- /// Pointer to the buffer.
- char *buffer_;
-
- /// Size of the buffer.
- size_t size_;
-
- /// Pointer to the current offset in the <buffer_>.
- size_t offset_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Malloc_Allocator.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* MALLOC_ALLOCATOR_H */
diff --git a/ace/Malloc_Allocator.i b/ace/Malloc_Allocator.i
deleted file mode 100644
index 55aba21992e..00000000000
--- a/ace/Malloc_Allocator.i
+++ /dev/null
@@ -1,213 +0,0 @@
-// $Id$
-
-
-ACE_INLINE void *
-ACE_New_Allocator::calloc (size_t n_elem, size_t elem_size, char initial_value)
-{
- return ACE_New_Allocator::calloc (n_elem * elem_size, initial_value);
-}
-
-
-ACE_INLINE int
-ACE_New_Allocator::remove (void)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_New_Allocator::bind (const char *, void *, int)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_New_Allocator::trybind (const char *, void *&)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_New_Allocator::find (const char *, void *&)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_New_Allocator::find (const char *)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_New_Allocator::unbind (const char *)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_New_Allocator::unbind (const char *, void *&)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_New_Allocator::sync (ssize_t, int)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_New_Allocator::sync (void *, size_t, int)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_New_Allocator::protect (ssize_t, int)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_New_Allocator::protect (void *, size_t, int)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-#if defined (ACE_HAS_MALLOC_STATS)
-ACE_INLINE void
-ACE_New_Allocator::print_stats (void) const
-{
-}
-#endif /* ACE_HAS_MALLOC_STATS */
-
-ACE_INLINE void
-ACE_New_Allocator::dump (void) const
-{
-}
-
-ACE_INLINE void *
-ACE_Static_Allocator_Base::malloc (size_t nbytes)
-{
- if (this->offset_ + nbytes > this->size_)
- {
- errno = ENOMEM;
- return 0;
- }
- else
- {
- // Record the current offset, increment the offset by the number
- // of bytes requested, and return the original offset.
- char *ptr = &this->buffer_[this->offset_];
- this->offset_ += nbytes;
- return (void *) ptr;
- }
-}
-
-ACE_INLINE void *
-ACE_Static_Allocator_Base::calloc (size_t nbytes,
- char initial_value)
-{
- void *ptr = this->malloc (nbytes);
-
- ACE_OS::memset (ptr, initial_value, nbytes);
- return (void *) ptr;
-}
-
-ACE_INLINE void *
-ACE_Static_Allocator_Base::calloc (size_t n_elem,
- size_t elem_size,
- char initial_value)
-{
- return this->calloc (n_elem * elem_size, initial_value);
-}
-
-ACE_INLINE void
-ACE_Static_Allocator_Base::free (void *ptr)
-{
- // Check to see if ptr is within our pool?!
- ACE_UNUSED_ARG (ptr);
- ACE_ASSERT (ptr >= this->buffer_ && ptr < this->buffer_ + this->size_);
-}
-
-ACE_INLINE int
-ACE_Static_Allocator_Base::remove (void)
-{
- return -1;
-}
-
-ACE_INLINE int
-ACE_Static_Allocator_Base::bind (const char *, void *, int)
-{
- return -1;
-}
-
-ACE_INLINE int
-ACE_Static_Allocator_Base::trybind (const char *, void *&)
-{
- return -1;
-}
-
-ACE_INLINE int
-ACE_Static_Allocator_Base::find (const char *, void *&)
-{
- return -1;
-}
-
-ACE_INLINE int
-ACE_Static_Allocator_Base::find (const char *)
-{
- return -1;
-}
-
-ACE_INLINE int
-ACE_Static_Allocator_Base::unbind (const char *)
-{
- return -1;
-}
-
-ACE_INLINE int
-ACE_Static_Allocator_Base::unbind (const char *, void *&)
-{
- return -1;
-}
-
-ACE_INLINE int
-ACE_Static_Allocator_Base::sync (ssize_t, int)
-{
- return -1;
-}
-
-ACE_INLINE int
-ACE_Static_Allocator_Base::sync (void *, size_t, int)
-{
- return -1;
-}
-
-ACE_INLINE int
-ACE_Static_Allocator_Base::protect (ssize_t, int)
-{
- return -1;
-}
-
-ACE_INLINE int
-ACE_Static_Allocator_Base::protect (void *, size_t, int)
-{
- return -1;
-}
-
-#if defined (ACE_HAS_MALLOC_STATS)
-ACE_INLINE void
-ACE_Static_Allocator_Base::print_stats (void) const
-{
-}
-#endif /* ACE_HAS_MALLOC_STATS */
-
-ACE_INLINE
-ACE_Static_Allocator_Base::ACE_Static_Allocator_Base (char *buffer,
- size_t size)
- : buffer_ (buffer),
- size_ (size),
- offset_ (0)
-{
-}
diff --git a/ace/Malloc_Base.h b/ace/Malloc_Base.h
deleted file mode 100644
index 595f74cce2c..00000000000
--- a/ace/Malloc_Base.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Malloc_Base.h
- *
- * $Id$
- *
- * @author Doug Schmidt and Irfan Pyarali
- */
-//=============================================================================
-
-
-#ifndef ACE_MALLOC_BASE_H
-#define ACE_MALLOC_BASE_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// The definition of this class is located in Malloc.cpp.
-
-/**
- * @class ACE_Allocator
- *
- * @brief Interface for a dynamic memory allocator that uses inheritance
- * and dynamic binding to provide extensible mechanisms for
- * allocating and deallocating memory.
- */
-class ACE_Export ACE_Allocator
-{
-public:
- // = Memory Management
-
- /// Get pointer to a default <ACE_Allocator>.
- static ACE_Allocator *instance (void);
-
- /// Set pointer to a process-wide <ACE_Allocator> and return existing
- /// pointer.
- static ACE_Allocator *instance (ACE_Allocator *);
-
- /// Delete the dynamically allocated Singleton
- static void close_singleton (void);
-
- /// "No-op" constructor (needed to make certain compilers happy).
- ACE_Allocator (void);
-
- /// Virtual destructor
- virtual ~ACE_Allocator (void);
-
- /// Allocate <nbytes>, but don't give them any initial value.
- virtual void *malloc (size_t nbytes) = 0;
-
- /// Allocate <nbytes>, giving them <initial_value>.
- virtual void *calloc (size_t nbytes, char initial_value = '\0') = 0;
-
- /// Allocate <n_elem> each of size <elem_size>, giving them
- /// <initial_value>.
- virtual void *calloc (size_t n_elem,
- size_t elem_size,
- char initial_value = '\0') = 0;
-
- /// Free <ptr> (must have been allocated by <ACE_Allocator::malloc>).
- virtual void free (void *ptr) = 0;
-
- /// Remove any resources associated with this memory manager.
- virtual int remove (void) = 0;
-
- // = Map manager like functions
-
- /**
- * Associate <name> with <pointer>. If <duplicates> == 0 then do
- * not allow duplicate <name>/<pointer> associations, else if
- * <duplicates> != 0 then allow duplicate <name>/<pointer>
- * assocations. Returns 0 if successfully binds (1) a previously
- * unbound <name> or (2) <duplicates> != 0, returns 1 if trying to
- * bind a previously bound <name> and <duplicates> == 0, else
- * returns -1 if a resource failure occurs.
- */
- virtual int bind (const char *name, void *pointer, int duplicates = 0) = 0;
-
- /**
- * Associate <name> with <pointer>. Does not allow duplicate
- * <name>/<pointer> associations. Returns 0 if successfully binds
- * (1) a previously unbound <name>, 1 if trying to bind a previously
- * bound <name>, or returns -1 if a resource failure occurs. When
- * this call returns <pointer>'s value will always reference the
- * void * that <name> is associated with. Thus, if the caller needs
- * to use <pointer> (e.g., to free it) a copy must be maintained by
- * the caller.
- */
- virtual int trybind (const char *name, void *&pointer) = 0;
-
- /// Locate <name> and pass out parameter via pointer. If found,
- /// return 0, returns -1 if failure occurs.
- virtual int find (const char *name, void *&pointer) = 0;
-
- /// Returns 0 if the name is in the mapping. -1, otherwise.
- virtual int find (const char *name) = 0;
-
- /// Unbind (remove) the name from the map. Don't return the pointer
- /// to the caller
- virtual int unbind (const char *name) = 0;
-
- /// Break any association of name. Returns the value of pointer in
- /// case the caller needs to deallocate memory.
- virtual int unbind (const char *name, void *&pointer) = 0;
-
- // = Protection and "sync" (i.e., flushing memory to persistent
- // backing store).
-
- /**
- * Sync <len> bytes of the memory region to the backing store
- * starting at <this->base_addr_>. If <len> == -1 then sync the
- * whole region.
- */
- virtual int sync (ssize_t len = -1, int flags = MS_SYNC) = 0;
-
- /// Sync <len> bytes of the memory region to the backing store
- /// starting at <addr_>.
- virtual int sync (void *addr, size_t len, int flags = MS_SYNC) = 0;
-
- /**
- * Change the protection of the pages of the mapped region to <prot>
- * starting at <this->base_addr_> up to <len> bytes. If <len> == -1
- * then change protection of all pages in the mapped region.
- */
- virtual int protect (ssize_t len = -1, int prot = PROT_RDWR) = 0;
-
- /// Change the protection of the pages of the mapped region to <prot>
- /// starting at <addr> up to <len> bytes.
- virtual int protect (void *addr, size_t len, int prot = PROT_RDWR) = 0;
-
-#if defined (ACE_HAS_MALLOC_STATS)
- /// Dump statistics of how malloc is behaving.
- virtual void print_stats (void) const = 0;
-#endif /* ACE_HAS_MALLOC_STATS */
-
- /// Dump the state of the object.
- virtual void dump (void) const = 0;
-private:
- // DO NOT ADD ANY STATE (DATA MEMBERS) TO THIS CLASS!!!! See the
- // <ACE_Allocator::instance> implementation for explanation.
-
- /// Pointer to a process-wide <ACE_Allocator> instance.
- static ACE_Allocator *allocator_;
-
- /// Must delete the <allocator_> if non-0.
- static int delete_allocator_;
-};
-
-#include "ace/post.h"
-#endif /* ACE_MALLOC_BASE_H */
diff --git a/ace/Malloc_Instantiations.cpp b/ace/Malloc_Instantiations.cpp
deleted file mode 100644
index 72ba9edea67..00000000000
--- a/ace/Malloc_Instantiations.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-// $Id$
-
-#include "ace/Malloc.h"
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Malloc<ACE_LOCAL_MEMORY_POOL, ACE_SYNCH_MUTEX>;
-template class ACE_Malloc_T<ACE_LOCAL_MEMORY_POOL, ACE_SYNCH_MUTEX, ACE_Control_Block>;
-template class ACE_Allocator_Adapter<ACE_Malloc<ACE_LOCAL_MEMORY_POOL, ACE_SYNCH_MUTEX> >;
-
-// Explicitly instantiate these templates in the multithreaded case
-// since some classes need them.
-# if defined (ACE_HAS_THREADS)
-template class ACE_Malloc<ACE_LOCAL_MEMORY_POOL, ACE_Null_Mutex>;
-template class ACE_Malloc_T<ACE_LOCAL_MEMORY_POOL, ACE_Null_Mutex, ACE_Control_Block>;
-template class ACE_Allocator_Adapter<ACE_Malloc<ACE_LOCAL_MEMORY_POOL, ACE_Null_Mutex> >;
-# endif /* ACE_HAS_THREADS */
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_Malloc<ACE_LOCAL_MEMORY_POOL, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Malloc_T<ACE_LOCAL_MEMORY_POOL, ACE_SYNCH_MUTEX, ACE_Control_Block>
-#pragma instantiate ACE_Allocator_Adapter<ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_SYNCH_MUTEX> >
-
-// Explicitly instantiate these templates in the multithreaded case
-// since some classes need them.
-# if defined (ACE_HAS_THREADS)
-# pragma instantiate ACE_Malloc<ACE_LOCAL_MEMORY_POOL, ACE_Null_Mutex>
-# pragma instantiate ACE_Malloc_T<ACE_LOCAL_MEMORY_POOL, ACE_Null_Mutex, ACE_Control_Block>
-# pragma instantiate ACE_Allocator_Adapter<ACE_Malloc<ACE_LOCAL_MEMORY_POOL, ACE_Null_Mutex> >
-# endif /* ACE_HAS_THREADS */
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Malloc_T.cpp b/ace/Malloc_T.cpp
deleted file mode 100644
index 997af40ab62..00000000000
--- a/ace/Malloc_T.cpp
+++ /dev/null
@@ -1,1036 +0,0 @@
-// Malloc_T.cpp
-// $Id$
-
-#ifndef ACE_MALLOC_T_C
-#define ACE_MALLOC_T_C
-
-#include "ace/Malloc_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Malloc_T.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/ACE.h"
-
-ACE_RCSID(ace, Malloc_T, "$Id$")
-
-template <class T, class ACE_LOCK>
-ACE_Cached_Allocator<T, ACE_LOCK>::ACE_Cached_Allocator (size_t n_chunks)
- : pool_ (0),
- free_list_ (ACE_PURE_FREE_LIST)
-{
- // To maintain alignment requirements, make sure that each element
- // inserted into the free list is aligned properly for the platform.
- // Since the memory is allocated as a char[], the compiler won't help.
- // To make sure enough room is allocated, round up the size so that
- // each element starts aligned.
- //
- // NOTE - this would probably be easier by defining pool_ as a pointer
- // to T and allocating an array of them (the compiler would probably
- // take care of the alignment for us), but then the ACE_NEW below would
- // require a default constructor on T - a requirement that is not in
- // previous versions of ACE
- size_t chunk_size = sizeof (T);
- chunk_size = ACE_MALLOC_ROUNDUP (chunk_size, ACE_MALLOC_ALIGN);
- ACE_NEW (this->pool_,
- char[n_chunks * chunk_size]);
-
- for (size_t c = 0;
- c < n_chunks;
- c++)
- {
- void* placement = this->pool_ + c * chunk_size;
- this->free_list_.add (new (placement) ACE_Cached_Mem_Pool_Node<T>);
- }
- // Put into free list using placement contructor, no real memory
- // allocation in the above <new>.
-}
-
-template <class T, class ACE_LOCK>
-ACE_Cached_Allocator<T, ACE_LOCK>::~ACE_Cached_Allocator (void)
-{
- delete [] this->pool_;
-}
-
-template <class ACE_LOCK>
-ACE_Dynamic_Cached_Allocator<ACE_LOCK>::ACE_Dynamic_Cached_Allocator
- (size_t n_chunks, size_t chunk_size)
- : pool_ (0),
- free_list_ (ACE_PURE_FREE_LIST),
- chunk_size_(chunk_size)
-{
- chunk_size = ACE_MALLOC_ROUNDUP (chunk_size, ACE_MALLOC_ALIGN);
- ACE_NEW (this->pool_, char[n_chunks * chunk_size_]);
-
- for (size_t c = 0;
- c < n_chunks;
- c++)
- {
- void* placement = this->pool_ + c * chunk_size_;
-
- this->free_list_.add (new (placement) ACE_Cached_Mem_Pool_Node<char>);
- }
- // Put into free list using placement contructor, no real memory
- // allocation in the above <new>.
-}
-
-template <class ACE_LOCK>
-ACE_Dynamic_Cached_Allocator<ACE_LOCK>::~ACE_Dynamic_Cached_Allocator (void)
-{
- delete [] this->pool_;
- this->pool_ = 0;
- chunk_size_ = 0;
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Malloc_T)
-
-template <class MALLOC> int
-ACE_Allocator_Adapter<MALLOC>::protect (ssize_t len, int flags)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::protect");
- return this->allocator_.protect (len, flags);
-}
-
-template <class MALLOC> int
-ACE_Allocator_Adapter<MALLOC>::protect (void *addr, size_t len, int flags)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::protect");
- return this->allocator_.protect (addr, len, flags);
-}
-
-template <class MALLOC>
-ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter (const char *pool_name)
- : allocator_ (ACE_TEXT_CHAR_TO_TCHAR (pool_name))
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter");
-}
-
-#if defined (ACE_HAS_WCHAR)
-template <class MALLOC>
-ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter (const wchar_t *pool_name)
- : allocator_ (ACE_TEXT_WCHAR_TO_TCHAR (pool_name))
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter");
-}
-#endif /* ACE_HAS_WCHAR */
-
-template <class MALLOC>
-ACE_Allocator_Adapter<MALLOC>::~ACE_Allocator_Adapter (void)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::~ACE_Allocator_Adapter");
-}
-
-#if defined (ACE_HAS_MALLOC_STATS)
-template <class MALLOC> void
-ACE_Allocator_Adapter<MALLOC>::print_stats (void) const
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::print_stats");
- this->allocator_.print_stats ();
-}
-#endif /* ACE_HAS_MALLOC_STATS */
-
-template <class MALLOC> void
-ACE_Allocator_Adapter<MALLOC>::dump (void) const
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::dump");
- this->allocator_.dump ();
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> void
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::dump (void) const
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->memory_pool_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("cb_ptr_ = %@\n"), this->cb_ptr_));
- this->cb_ptr_->dump ();
-#if defined (ACE_HAS_MALLOC_STATS)
- if (this->cb_ptr_ != 0)
- this->cb_ptr_->malloc_stats_.dump ();
-#endif /* ACE_HAS_MALLOC_STATS */
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#if defined (ACE_HAS_MALLOC_STATS)
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> void
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::print_stats (void) const
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::print_stats");
- ACE_GUARD (ACE_LOCK, ace_mon, *this->lock_);
-
- if (this->cb_ptr_ == 0)
- return;
- this->cb_ptr_->malloc_stats_.dump ();
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("(%P|%t) contents of freelist:\n")));
-
- for (MALLOC_HEADER *currp = this->cb_ptr_->freep_->next_block_;
- ;
- currp = currp->next_block_)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("(%P|%t) ptr = %@, MALLOC_HEADER units = %d, byte units = %d\n"),
- currp,
- currp->size_,
- currp->size_ * sizeof (MALLOC_HEADER)));
- if (currp == this->cb_ptr_->freep_)
- break;
- }
-}
-#endif /* ACE_HAS_MALLOC_STATS */
-
-// Put <ptr> in the free list (locked version).
-
-template<ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> void
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::free (void *ptr)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::free");
- ACE_GUARD (ACE_LOCK, ace_mon, *this->lock_);
-
- this->shared_free (ptr);
-}
-
-// This function is called by the ACE_Malloc_T constructor to initialize
-// the memory pool. The first time in it allocates room for the
-// control block (as well as a chunk of memory, depending on
-// rounding...). Depending on the type of <MEM_POOL> (i.e., shared
-// vs. local) subsequent calls from other processes will only
-// initialize the control block pointer.
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::open (void)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::open");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- size_t rounded_bytes = 0;
- int first_time = 0;
-
- this->cb_ptr_ = (ACE_CB *)
- this->memory_pool_.init_acquire (sizeof *this->cb_ptr_,
- rounded_bytes,
- first_time);
- if (this->cb_ptr_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("(%P|%t) %p\n"),
- ACE_LIB_TEXT ("init_acquire failed")),
- -1);
- else if (first_time)
- {
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P|%t) first time in, control block = %@\n"), this->cb_ptr_));
-
- MALLOC_HEADER::init_ptr (&this->cb_ptr_->freep_,
- &this->cb_ptr_->base_,
- this->cb_ptr_);
-
- MALLOC_HEADER::init_ptr (&this->cb_ptr_->freep_->next_block_,
- this->cb_ptr_->freep_,
- this->cb_ptr_);
-
- NAME_NODE::init_ptr (&this->cb_ptr_->name_head_,
- 0,
- this->cb_ptr_);
-
- this->cb_ptr_->freep_->size_ = 0;
- this->cb_ptr_->ref_counter_ = 1;
-
- if (rounded_bytes > (sizeof *this->cb_ptr_ + sizeof (MALLOC_HEADER)))
- {
- // If we've got any extra space at the end of the control
- // block, then skip past the dummy <MALLOC_HEADER> to
- // point at the first free block.
- MALLOC_HEADER *p = ((MALLOC_HEADER *) (this->cb_ptr_->freep_)) + 1;
-
- MALLOC_HEADER::init_ptr (&p->next_block_,
- 0,
- this->cb_ptr_);
-
- // Why aC++ in 64-bit mode can't grok this, I have no
- // idea... but it ends up with an extra bit set which makes
- // size_ really big without this hack.
-#if defined (__hpux) && defined (__LP64__)
- size_t hpux11_hack = (rounded_bytes - sizeof *this->cb_ptr_)
- / sizeof (MALLOC_HEADER);
- p->size_ = hpux11_hack;
-#else
- p->size_ = (rounded_bytes - sizeof *this->cb_ptr_)
- / sizeof (MALLOC_HEADER);
-#endif /* (__hpux) && defined (__LP64__) */
-
- ACE_MALLOC_STATS (++this->cb_ptr_->malloc_stats_.nchunks_);
- ACE_MALLOC_STATS (++this->cb_ptr_->malloc_stats_.nblocks_);
- ACE_MALLOC_STATS (++this->cb_ptr_->malloc_stats_.ninuse_);
-
- // Insert the newly allocated chunk of memory into the free
- // list. Add "1" to skip over the <MALLOC_HEADER> when
- // freeing the pointer.
- this->shared_free (p + 1);
- }
- }
- else
- ++this->cb_ptr_->ref_counter_;
- return 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T (const ACE_TCHAR *pool_name)
- : memory_pool_ (pool_name),
- bad_flag_ (0)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T");
- if (pool_name == 0)
- ACE_NEW (this->lock_, ACE_LOCK (pool_name)); // Want the ctor with char*
- else
- ACE_NEW (this->lock_, ACE_LOCK (ACE::basename (pool_name,
- ACE_DIRECTORY_SEPARATOR_CHAR)));
- this->delete_lock_ = 1;
-
- if ((this->bad_flag_ = this->open ()) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T")));
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T (const ACE_TCHAR *pool_name,
- const ACE_TCHAR *lock_name,
- const ACE_MEM_POOL_OPTIONS *options)
- : memory_pool_ (pool_name, options),
- bad_flag_ (0)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T");
- if (lock_name != 0)
- ACE_NEW (this->lock_, ACE_LOCK (lock_name));
- else
- ACE_NEW (this->lock_, ACE_LOCK (ACE::basename (pool_name,
- ACE_DIRECTORY_SEPARATOR_CHAR)));
- this->delete_lock_ = 1;
-
- if ((this->bad_flag_ = this->open ()) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T")));
-}
-
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T (const ACE_TCHAR *pool_name,
- const ACE_MEM_POOL_OPTIONS *options,
- ACE_LOCK *lock)
- : memory_pool_ (pool_name, options),
- lock_ (lock),
- delete_lock_ (0),
- bad_flag_ (0)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T");
-
- if (lock == 0)
- {
- this->bad_flag_ = -1;
- errno = EINVAL;
- return;
- }
-
- if ((this->bad_flag_ = this->open ()) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T")));
-}
-
-#if !defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T (const ACE_TCHAR *pool_name,
- const ACE_TCHAR *lock_name,
- const void *options)
- : memory_pool_ (pool_name,
- (const ACE_MEM_POOL_OPTIONS *) options),
- bad_flag_ (0)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T");
-
- ACE_NEW (this->lock_, ACE_LOCK (lock_name));
- this->delete_lock_ = 1;
- if ((this->bad_flag_ = this->open ()) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T")));
-}
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::~ACE_Malloc_T (void)
-{
- ACE_TRACE ("ACE_Malloc_T<MEM_POOL>::~ACE_Malloc_T<MEM_POOL>");
- if (this->delete_lock_)
- {
- delete this->lock_;
- this->lock_ = 0;
- }
-}
-
-// Clean up the resources allocated by ACE_Malloc_T.
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::remove (void)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::remove");
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P|%t) destroying ACE_Malloc_T\n")));
- int result = 0;
-
-#if defined (ACE_HAS_MALLOC_STATS)
- this->print_stats ();
-#endif /* ACE_HAS_MALLOC_STATS */
-
- // Remove the ACE_LOCK.
- if (this->delete_lock_)
- this->lock_->remove ();
-
- // Give the memory pool a chance to release its resources.
- result = this->memory_pool_.release ();
-
- // Reset this->cb_ptr_ as it is no longer valid.
- // There's also no need to keep the reference counter as the
- // underlying memory pool has been destroyed.
- // Also notice that we are leaving the decision of removing
- // the pool to users so they can map to the same mmap file
- // again.
- this->cb_ptr_ = 0;
-
- return result;
-}
-
-// General-purpose memory allocator. Assumes caller holds the locks.
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> void *
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::shared_malloc (size_t nbytes)
-{
-#if !defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::shared_malloc");
-#endif /* !ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-
- if (this->cb_ptr_ == 0)
- return 0;
-
- // Round up request to a multiple of the MALLOC_HEADER size.
- size_t nunits =
- (nbytes + sizeof (MALLOC_HEADER) - 1) / sizeof (MALLOC_HEADER)
- + 1; // Add one for the <MALLOC_HEADER> itself.
-
- MALLOC_HEADER *prevp = 0;
- MALLOC_HEADER *currp = 0;
-
- ACE_SEH_TRY
- {
- // Begin the search starting at the place in the freelist where the
- // last block was found.
- prevp = this->cb_ptr_->freep_;
- currp = prevp->next_block_;
- }
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- ACE_SEH_EXCEPT (this->memory_pool_.seh_selector (GetExceptionInformation ()))
- {
- currp = prevp->next_block_;
- }
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-
- // Search the freelist to locate a block of the appropriate size.
-
- while (1)
-
- // *Warning* Do not use "continue" within this while-loop.
-
- {
- ACE_SEH_TRY
- {
- if (currp->size_ >= nunits) // Big enough
- {
- ACE_MALLOC_STATS (++this->cb_ptr_->malloc_stats_.ninuse_);
- if (currp->size_ == nunits)
- // Exact size, just update the pointers.
- prevp->next_block_ = currp->next_block_;
- else
- {
- // Remaining chunk is larger than requested block, so
- // allocate at tail end.
- ACE_MALLOC_STATS (++this->cb_ptr_->malloc_stats_.nblocks_);
- currp->size_ -= nunits;
- currp += currp->size_;
- MALLOC_HEADER::init_ptr (&currp->next_block_,
- 0,
- this->cb_ptr_);
- currp->size_ = nunits;
- }
- this->cb_ptr_->freep_ = prevp;
-
- // Skip over the MALLOC_HEADER when returning pointer.
- return currp + 1;
- }
- else if (currp == this->cb_ptr_->freep_)
- {
- // We've wrapped around freelist without finding a
- // block. Therefore, we need to ask the memory pool for
- // a new chunk of bytes.
-
- size_t chunk_bytes = 0;
-
- currp = (MALLOC_HEADER *)
- this->memory_pool_.acquire (nunits * sizeof (MALLOC_HEADER),
- chunk_bytes);
- void *remap_addr = this->memory_pool_.base_addr ();
- if (remap_addr != 0)
- this->cb_ptr_ = (ACE_CB *) remap_addr;
-
- if (currp != 0)
- {
- ACE_MALLOC_STATS (++this->cb_ptr_->malloc_stats_.nblocks_);
- ACE_MALLOC_STATS (++this->cb_ptr_->malloc_stats_.nchunks_);
- ACE_MALLOC_STATS (++this->cb_ptr_->malloc_stats_.ninuse_);
-
- MALLOC_HEADER::init_ptr (&currp->next_block_,
- 0,
- this->cb_ptr_);
- // Compute the chunk size in MALLOC_HEADER units.
- currp->size_ = chunk_bytes / sizeof (MALLOC_HEADER);
-
- // Insert the newly allocated chunk of memory into the
- // free list. Add "1" to skip over the
- // <MALLOC_HEADER> when freeing the pointer since
- // the first thing <free> does is decrement by this
- // amount.
- this->shared_free (currp + 1);
- currp = this->cb_ptr_->freep_;
- }
- else
- return 0;
- // Shouldn't do this here because of errors with the wchar ver
- // This is because ACE_ERROR_RETURN converts the __FILE__ to
- // wchar before printing out. The compiler will complain
- // about this since a destructor would present in a SEH block
- //ACE_ERROR_RETURN ((LM_ERROR,
- // ACE_LIB_TEXT ("(%P|%t) %p\n"),
- // ACE_LIB_TEXT ("malloc")),
- // 0);
- }
- prevp = currp;
- currp = currp->next_block_;
- }
- ACE_SEH_EXCEPT (this->memory_pool_.seh_selector (GetExceptionInformation ()))
- {
- }
- }
- ACE_NOTREACHED (return 0;)
-}
-
-// General-purpose memory allocator.
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> void *
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::malloc (size_t nbytes)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::malloc");
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, 0);
-
- return this->shared_malloc (nbytes);
-}
-
-// General-purpose memory allocator.
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> void *
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::calloc (size_t nbytes,
- char initial_value)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::calloc");
- void *ptr = this->malloc (nbytes);
-
- if (ptr != 0)
- ACE_OS::memset (ptr, initial_value, nbytes);
-
- return ptr;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> void *
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::calloc (size_t n_elem,
- size_t elem_size,
- char initial_value)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::calloc");
-
- return this->calloc (n_elem * elem_size, initial_value);
-}
-
-// Put block AP in the free list (must be called with locks held!)
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> void
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::shared_free (void *ap)
-{
-#if !defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::shared_free");
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-
- if (ap == 0 || this->cb_ptr_ == 0)
- return;
-
-
- // Adjust AP to point to the block MALLOC_HEADER
- MALLOC_HEADER *blockp = ((MALLOC_HEADER *) ap) - 1;
- MALLOC_HEADER *currp = this->cb_ptr_->freep_;
-
- // Search until we find the location where the blocks belongs. Note
- // that addresses are kept in sorted order.
-
- ACE_SEH_TRY
- {
- for (;
- blockp <= currp
- || blockp >= (MALLOC_HEADER *) currp->next_block_;
- currp = currp->next_block_)
- {
- if (currp >= (MALLOC_HEADER *) currp->next_block_
- && (blockp > currp
- || blockp < (MALLOC_HEADER *) currp->next_block_))
- // Freed block at the start or the end of the memory pool.
- break;
- }
-
- // Join to upper neighbor.
- if ((blockp + blockp->size_) == currp->next_block_)
- {
- ACE_MALLOC_STATS (--this->cb_ptr_->malloc_stats_.nblocks_);
- blockp->size_ += currp->next_block_->size_;
- blockp->next_block_ = currp->next_block_->next_block_;
- }
- else
- blockp->next_block_ = currp->next_block_;
-
- // Join to lower neighbor.
- if ((currp + currp->size_) == blockp)
- {
- ACE_MALLOC_STATS (--this->cb_ptr_->malloc_stats_.nblocks_);
- currp->size_ += blockp->size_;
- currp->next_block_ = blockp->next_block_;
- }
- else
- currp->next_block_ = blockp;
-
- ACE_MALLOC_STATS (--this->cb_ptr_->malloc_stats_.ninuse_);
- this->cb_ptr_->freep_ = currp;
- }
- ACE_SEH_EXCEPT (this->memory_pool_.seh_selector (GetExceptionInformation ()))
- {
- }
-}
-
-// No locks held here, caller must acquire/release lock.
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> void*
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::shared_find (const char *name)
-{
-#if !defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::shared_find");
-#endif /* !ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-
- if (this->cb_ptr_ == 0)
- return 0;
-
- ACE_SEH_TRY
- {
- for (NAME_NODE *node = this->cb_ptr_->name_head_;
- node != 0;
- node = node->next_)
- if (ACE_OS::strcmp (node->name (),
- name) == 0)
- return node;
- }
- ACE_SEH_EXCEPT (this->memory_pool_.seh_selector (GetExceptionInformation ()))
- {
- }
- return 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::shared_bind (const char *name,
- void *pointer)
-{
- if (this->cb_ptr_ == 0)
- return -1;
-
- // Combine the two allocations into one to avoid overhead...
- NAME_NODE *new_node = 0;
-
- ACE_ALLOCATOR_RETURN (new_node,
- (NAME_NODE *)
- this->shared_malloc (sizeof (NAME_NODE) +
- ACE_OS::strlen (name) + 1),
- -1);
- char *name_ptr = (char *) (new_node + 1);
-
- // Use operator placement new to insert <new_node> at the head of
- // the linked list of <NAME_NODE>s.
- NAME_NODE *result =
- new (new_node) NAME_NODE (name,
- name_ptr,
- ACE_reinterpret_cast (char *,
- pointer),
- this->cb_ptr_->name_head_);
- this->cb_ptr_->name_head_ = result;
- return 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::trybind (const char *name,
- void *&pointer)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::trybind");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- NAME_NODE *node = (NAME_NODE *) this->shared_find (name);
-
- if (node == 0)
- // Didn't find it, so insert it.
- return this->shared_bind (name, pointer);
-
- // Found it, so return a copy of the current entry.
- pointer = (char *) node->pointer_;
- return 1;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::bind (const char *name,
- void *pointer,
- int duplicates)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::bind");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- if (duplicates == 0 && this->shared_find (name) != 0)
- // If we're not allowing duplicates, then if the name is already
- // present, return 1.
- return 1;
-
- // If we get this far, either we're allowing duplicates or we didn't
- // find the name yet.
- return this->shared_bind (name, pointer);
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::find (const char *name,
- void *&pointer)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::find");
-
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- NAME_NODE *node = (NAME_NODE *) this->shared_find (name);
-
- if (node == 0)
- return -1;
-
- pointer = (char *) node->pointer_;
- return 0;
-}
-
-// Returns a count of the number of available chunks that can hold
-// <size> byte allocations. Function can be used to determine if you
-// have reached a water mark. This implies a fixed amount of allocated
-// memory.
-//
-// @param size - the chunk size of that you would like a count of
-// @return function returns the number of chunks of the given size
-// that would fit in the currently allocated memory
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> ssize_t
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::avail_chunks (size_t size) const
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::avail_chunks");
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- if (this->cb_ptr_ == 0)
- return -1;
-
- size_t count = 0;
- // Avoid dividing by 0...
- size = size == 0 ? 1 : size;
- MALLOC_HEADER *currp = this->cb_ptr_->freep_;
-
- // Calculate how many will fit in this block.
- do {
- size_t avail_size = currp->size_ == 0 ? 0 : currp->size_ - 1;
- if (avail_size * sizeof (MALLOC_HEADER) >= size)
- count += avail_size * sizeof (MALLOC_HEADER) / size;
- currp = currp->next_block_;
- }
- while (currp != this->cb_ptr_->freep_);
-
- return count;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::find (const char *name)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::find");
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- return this->shared_find (name) == 0 ? -1 : 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::unbind (const char *name, void *&pointer)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::unbind");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
-
- if (this->cb_ptr_ == 0)
- return -1;
-
- NAME_NODE *prev = 0;
-
- for (NAME_NODE *curr = this->cb_ptr_->name_head_;
- curr != 0;
- curr = curr->next_)
- {
- if (ACE_OS::strcmp (curr->name (), name) == 0)
- {
- pointer = (char *) curr->pointer_;
-
- if (prev == 0)
- this->cb_ptr_->name_head_ = curr->next_;
- else
- prev->next_ = curr->next_;
-
- if (curr->next_)
- curr->next_->prev_ = prev;
-
- // This will free up both the node and the name due to our
- // clever trick in <bind>!
- this->shared_free (curr);
- return 0;
- }
- prev = curr;
- }
-
- // Didn't find it, so fail.
- return -1;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::unbind (const char *name)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::unbind");
- void *temp = 0;
- return this->unbind (name, temp);
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> void
-ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::dump (void) const
-{
- ACE_TRACE ("ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->curr_->dump ();
- this->guard_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("name_ = %s"), this->name_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_LIFO_Iterator_T (ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB> &malloc,
- const char *name)
- : malloc_ (malloc),
- curr_ (0),
- guard_ (*malloc_.lock_),
- name_ (name != 0 ? ACE_OS::strdup (name) : 0)
-{
- ACE_TRACE ("ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_LIFO_Iterator_T");
- // Cheap trick to make code simple.
- // @@ Doug, this looks like trouble...
- NAME_NODE temp;
- this->curr_ = &temp;
- this->curr_->next_ = malloc_.cb_ptr_->name_head_;
-
- this->advance ();
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::~ACE_Malloc_LIFO_Iterator_T (void)
-{
- ACE_OS::free ((void *) this->name_);
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::next (void *&next_entry,
- const char *&name)
-{
- ACE_TRACE ("ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::next");
-
- if (this->curr_ != 0)
- {
- next_entry = (char *) this->curr_->pointer_;
- name = this->curr_->name ();
- return 1;
- }
- else
- return 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::next (void *&next_entry)
-{
- ACE_TRACE ("ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::next");
-
- if (this->curr_ != 0)
- {
- next_entry = this->curr_->pointer_;
- return 1;
- }
- else
- return 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::done (void) const
-{
- ACE_TRACE ("ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::done");
-
- return this->curr_ == 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::advance (void)
-{
- ACE_TRACE ("ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::advance");
-
- this->curr_ = this->curr_->next_;
-
- if (this->name_ == 0)
- return this->curr_ != 0;
-
- while (this->curr_ != 0
- && ACE_OS::strcmp (this->name_,
- this->curr_->name ()) != 0)
- this->curr_ = this->curr_->next_;
-
- return this->curr_ != 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> void
-ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::dump (void) const
-{
- ACE_TRACE ("ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->curr_->dump ();
- this->guard_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("name_ = %s"), this->name_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_FIFO_Iterator_T (ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB> &malloc,
- const char *name)
- : malloc_ (malloc),
- curr_ (0),
- guard_ (*malloc_.lock_),
- name_ (name != 0 ? ACE_OS::strdup (name) : 0)
-{
- ACE_TRACE ("ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_FIFO_Iterator");
- // Cheap trick to make code simple.
- // @@ Doug, this looks like trouble...
- NAME_NODE temp;
- this->curr_ = &temp;
- this->curr_->next_ = malloc_.cb_ptr_->name_head_;
- this->curr_->prev_ = 0;
-
- // Go to the first element that was inserted.
- this->start ();
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::~ACE_Malloc_FIFO_Iterator_T (void)
-{
- ACE_OS::free ((void *) this->name_);
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::next (void *&next_entry,
- const char *&name)
-{
- ACE_TRACE ("ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::next");
-
- if (this->curr_ != 0)
- {
- next_entry = (char *) this->curr_->pointer_;
- name = this->curr_->name ();
- return 1;
- }
- else
- return 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::next (void *&next_entry)
-{
- ACE_TRACE ("ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::next");
-
- if (this->curr_ != 0)
- {
- next_entry = this->curr_->pointer_;
- return 1;
- }
- else
- return 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::done (void) const
-{
- ACE_TRACE ("ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::done");
-
- return this->curr_ == 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::advance (void)
-{
- ACE_TRACE ("ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::advance");
-
- this->curr_ = this->curr_->prev_;
-
- if (this->name_ == 0)
- return this->curr_ != 0;
-
- while (this->curr_ != 0
- && ACE_OS::strcmp (this->name_,
- this->curr_->name ()) != 0)
- this->curr_ = this->curr_->prev_;
-
- return this->curr_ != 0;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> int
-ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::start (void)
-{
- this->curr_ = this->curr_->next_;
- NAME_NODE *prev = 0;
-
- // Locate the element that was inserted first.
- // @@ We could optimize this by making the list a circular list or
- // storing an extra pointer.
- while (this->curr_ != 0)
- {
- prev = this->curr_;
- this->curr_ = this->curr_->next_;
- }
-
- this->curr_ = prev;
- return this->curr_ != 0;
-}
-
-#endif /* ACE_MALLOC_T_C */
diff --git a/ace/Malloc_T.h b/ace/Malloc_T.h
deleted file mode 100644
index 32b4b2a31dd..00000000000
--- a/ace/Malloc_T.h
+++ /dev/null
@@ -1,850 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Malloc_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu> and
- * Irfan Pyarali <irfan@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_MALLOC_T_H
-#define ACE_MALLOC_T_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/Malloc.h" /* Need ACE_Control_Block */
-#include "ace/Malloc_Allocator.h"
-#include "ace/Free_List.h"
-
-/**
- * @class ACE_Cached_Mem_Pool_Node
- *
- * @brief ACE_Cached_Mem_Pool_Node keeps unused memory within a free
- * list.
- *
- * The length of a piece of unused memory must be greater than
- * sizeof (void*). This makes sense because we'll waste even
- * more memory if we keep them in a separate data structure.
- * This class should really be placed within the ACE_Cached_Allocator
- * class but this can't be done due to C++ compiler portability problems.
- */
-template <class T>
-class ACE_Cached_Mem_Pool_Node
-{
-public:
- /// Return the address of free memory.
- T *addr (void);
-
- /// Get the next ACE_Cached_Mem_Pool_Node in a list.
- ACE_Cached_Mem_Pool_Node<T> *get_next (void);
-
- /// Set the next ACE_Cached_Mem_Pool_Node.
- void set_next (ACE_Cached_Mem_Pool_Node<T> *ptr);
-
-private:
- /**
- * Since memory is not used when placed in a free list,
- * we can use it to maintain the structure of free list.
- * I was using union to hide the fact of overlapping memory
- * usage. However, that cause problem on MSVC. So, I now turn
- * back to hack this with casting.
- */
- ACE_Cached_Mem_Pool_Node<T> *next_;
-};
-
-/**
- * @class ACE_Cached_Allocator
- *
- * @brief A fixed-size allocator that caches items for quicker access.
- *
- * This class enables caching of dynamically allocated,
- * fixed-sized classes. Notice that the <code>sizeof (TYPE)</code>
- * must be greater than or equal to <code> sizeof (void*) </code> for
- * this to work properly.
- *
- * @sa ACE_Dynamic_Cached_Allocator
- */
-template <class T, class ACE_LOCK>
-class ACE_Cached_Allocator : public ACE_New_Allocator
-{
-public:
- /// Create a cached memory pool with @a n_chunks chunks
- /// each with sizeof (TYPE) size.
- ACE_Cached_Allocator (size_t n_chunks);
-
- /// Clear things up.
- ~ACE_Cached_Allocator (void);
-
- /**
- * Get a chunk of memory from free list cache. Note that @a nbytes is
- * only checked to make sure that it's less or equal to sizeof T, and is
- * otherwise ignored since @c malloc() always returns a pointer to an
- * item of sizeof (T).
- */
- void *malloc (size_t nbytes = sizeof (T));
-
- /**
- * Get a chunk of memory from free list cache, giving them
- * @a initial_value. Note that @a nbytes is only checked to make sure
- * that it's less or equal to sizeof T, and is otherwise ignored since
- * calloc() always returns a pointer to an item of sizeof (T).
- */
- virtual void *calloc (size_t nbytes,
- char initial_value = '\0');
-
- /// This method is a no-op and just returns 0 since the free list
- /// only works with fixed sized entities.
- virtual void *calloc (size_t n_elem,
- size_t elem_size,
- char initial_value = '\0');
-
- /// Return a chunk of memory back to free list cache.
- void free (void *);
-
-private:
- /// Remember how we allocate the memory in the first place so
- /// we can clear things up later.
- char *pool_;
-
- /// Maintain a cached memory free list.
- ACE_Locked_Free_List<ACE_Cached_Mem_Pool_Node<T>, ACE_LOCK> free_list_;
-};
-
-/**
- * @class ACE_Dynamic_Cached_Allocator
- *
- * @brief A size-based allocator that caches blocks for quicker access.
- *
- * This class enables caching of dynamically allocated,
- * fixed-size chunks. Notice that the <code>chunk_size</code>
- * must be greater than or equal to <code> sizeof (void*) </code> for
- * this to work properly.
- *
- * @sa ACE_Cached_Allocator
- */
-template <class ACE_LOCK>
-class ACE_Dynamic_Cached_Allocator : public ACE_New_Allocator
-{
-public:
- /// Create a cached memory pool with @a n_chunks chunks
- /// each with @a chunk_size size.
- ACE_Dynamic_Cached_Allocator (size_t n_chunks, size_t chunk_size);
-
- /// Clear things up.
- ~ACE_Dynamic_Cached_Allocator (void);
-
- /**
- * Get a chunk of memory from free list cache. Note that @a nbytes is
- * only checked to make sure that it's less or equal to @a chunk_size,
- * and is otherwise ignored since malloc() always returns a pointer to an
- * item of @a chunk_size size.
- */
- void *malloc (size_t nbytes = 0);
-
- /**
- * Get a chunk of memory from free list cache, giving them
- * @a initial_value. Note that @a nbytes is only checked to make sure
- * that it's less or equal to @a chunk_size, and is otherwise ignored
- * since calloc() always returns a pointer to an item of @a chunk_size.
- */
- virtual void *calloc (size_t nbytes,
- char initial_value = '\0');
-
- /// This method is a no-op and just returns 0 since the free list
- /// only works with fixed sized entities.
- virtual void *calloc (size_t n_elem,
- size_t elem_size,
- char initial_value = '\0');
-
- /// Return a chunk of memory back to free list cache.
- void free (void *);
-
-private:
- /// Remember how we allocate the memory in the first place so
- /// we can clear things up later.
- char *pool_;
-
- /// Maintain a cached memory free list. We use @c char as template
- /// parameter, although sizeof(char) is usually less than
- /// sizeof(void*). Really important is that @a chunk_size
- /// must be greater or equal to sizeof(void*).
- ACE_Locked_Free_List<ACE_Cached_Mem_Pool_Node<char>, ACE_LOCK> free_list_;
-
- /// Remember the size of our chunks.
- size_t chunk_size_;
-};
-
-/**
- * @class ACE_Allocator_Adapter
- *
- * @brief This class is an Adapter that allows the ACE_Allocator to
- * use the ACE_Malloc class below.
- */
-template <class MALLOC>
-class ACE_Allocator_Adapter : public ACE_Allocator
-{
-public:
- // Trait.
- typedef MALLOC ALLOCATOR;
-
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
- // The following code will break C++ compilers that don't support
- // template typedefs correctly.
- typedef const ACE_TYPENAME MALLOC::MEMORY_POOL_OPTIONS *MEMORY_POOL_OPTIONS;
-#else
- typedef const void *MEMORY_POOL_OPTIONS;
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
- // = Initialization.
- /**
- * Note that @a pool_name should be located in
- * a directory with the appropriate visibility and protection so
- * that all processes that need to access it can do so. */
- ACE_Allocator_Adapter (const char *pool_name = 0);
-
- /**
- * Note that @a pool_name should be located in
- * a directory with the appropriate visibility and protection so
- * that all processes that need to access it can do so.
- * This constructor must be inline to avoid bugs with some C++
- * compilers. */
- ACE_Allocator_Adapter (const char *pool_name,
- const char *lock_name,
- MEMORY_POOL_OPTIONS options = 0)
- : allocator_ (ACE_TEXT_CHAR_TO_TCHAR (pool_name),
- ACE_TEXT_CHAR_TO_TCHAR (lock_name),
- options)
- {
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter");
- }
-
-#if defined (ACE_HAS_WCHAR)
- /**
- * Note that @a pool_name should be located in
- * a directory with the appropriate visibility and protection so
- * that all processes that need to access it can do so. */
- ACE_Allocator_Adapter (const wchar_t *pool_name);
-
- /**
- * Note that @a pool_name should be located in
- * a directory with the appropriate visibility and protection so
- * that all processes that need to access it can do so.
- * This constructor must be inline to avoid bugs with some C++
- * compilers. */
- ACE_Allocator_Adapter (const wchar_t *pool_name,
- const wchar_t *lock_name,
- MEMORY_POOL_OPTIONS options = 0)
- : allocator_ (ACE_TEXT_WCHAR_TO_TCHAR (pool_name),
- ACE_TEXT_WCHAR_TO_TCHAR (lock_name),
- options)
- {
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter");
- }
-#endif /* ACE_HAS_WCHAR */
-
- /// Destructor.
- virtual ~ACE_Allocator_Adapter (void);
-
- // = Memory Management
-
- /// Allocate @a nbytes, but don't give them any initial value.
- virtual void *malloc (size_t nbytes);
-
- /// Allocate @a nbytes, giving them all an @a initial_value.
- virtual void *calloc (size_t nbytes, char initial_value = '\0');
-
- /// Allocate @a n_elem each of size @a elem_size, giving them
- /// @a initial_value.
- virtual void *calloc (size_t n_elem,
- size_t elem_size,
- char initial_value = '\0');
-
- /// Free @a ptr (must have been allocated by ACE_Allocator::malloc()).
- virtual void free (void *ptr);
-
- /// Remove any resources associated with this memory manager.
- virtual int remove (void);
-
- // = Map manager like functions
-
- /**
- * Associate @a name with @a pointer. If @a duplicates == 0 then do
- * not allow duplicate @a name/pointer associations, else if
- * @a duplicates> != 0 then allow duplicate @a name/pointer
- * assocations. Returns 0 if successfully binds (1) a previously
- * unbound @a name or (2) @a duplicates != 0, returns 1 if trying to
- * bind a previously bound @a name and @a duplicates == 0, else
- * returns -1 if a resource failure occurs.
- */
- virtual int bind (const char *name, void *pointer, int duplicates = 0);
-
- /**
- * Associate @a name with @a pointer. Does not allow duplicate
- * name/pointer associations. Returns 0 if successfully binds
- * (1) a previously unbound @a name, 1 if trying to bind a previously
- * bound @a name, or returns -1 if a resource failure occurs. When
- * this call returns, @a pointer's value will always reference the
- * void * that @a name is associated with. Thus, if the caller needs
- * to use @a pointer (e.g., to free it) a copy must be maintained by
- * the caller.
- */
- virtual int trybind (const char *name, void *&pointer);
-
- /// Locate @a name and pass out parameter via pointer. If found,
- /// return 0, returns -1 if @a name isn't found.
- virtual int find (const char *name, void *&pointer);
-
- /// Returns 0 if the name is in the mapping and -1 if not.
- virtual int find (const char *name);
-
- /// Unbind (remove) the name from the map. Don't return the pointer
- /// to the caller
- virtual int unbind (const char *name);
-
- /// Break any association of name. Returns the value of pointer in
- /// case the caller needs to deallocate memory.
- virtual int unbind (const char *name, void *&pointer);
-
- // = Protection and "sync" (i.e., flushing data to backing store).
-
- /**
- * Sync @a len bytes of the memory region to the backing store
- * starting at @c this->base_addr_. If @a len == -1 then sync the
- * whole region.
- */
- virtual int sync (ssize_t len = -1, int flags = MS_SYNC);
-
- /// Sync @a len bytes of the memory region to the backing store
- /// starting at @c addr_.
- virtual int sync (void *addr, size_t len, int flags = MS_SYNC);
-
- /**
- * Change the protection of the pages of the mapped region to @a prot
- * starting at @c this->base_addr_ up to @a len bytes. If @a len == -1
- * then change protection of all pages in the mapped region.
- */
- virtual int protect (ssize_t len = -1, int prot = PROT_RDWR);
-
- /// Change the protection of the pages of the mapped region to @a prot
- /// starting at @a addr up to @a len bytes.
- virtual int protect (void *addr, size_t len, int prot = PROT_RDWR);
-
- /// Returns the underlying allocator.
- ALLOCATOR &alloc (void);
-
-#if defined (ACE_HAS_MALLOC_STATS)
- /// Dump statistics of how malloc is behaving.
- virtual void print_stats (void) const;
-#endif /* ACE_HAS_MALLOC_STATS */
-
- /// Dump the state of the object.
- virtual void dump (void) const;
-
-private:
- /// ALLOCATOR instance, which is owned by the adapter.
- ALLOCATOR allocator_;
-};
-
-/**
- * @class ACE_Static_Allocator
- *
- * @brief Defines a class that provided a highly optimized memory
- * management scheme for allocating memory statically.
- *
- * This class allocates a fixed-size @c POOL_SIZE of memory and
- * uses the ACE_Static_Allocator_Base class implementations of
- * malloc() and calloc() to optimize memory allocation from this
- * pool.
- */
-template <size_t POOL_SIZE>
-class ACE_Static_Allocator : public ACE_Static_Allocator_Base
-{
-public:
- ACE_Static_Allocator (void)
- : ACE_Static_Allocator_Base (pool_, POOL_SIZE)
- {
- // This function <{must}> be inlined!!!
- }
-
-private:
- /// Pool contents.
- char pool_[POOL_SIZE];
-};
-
-// Forward declaration.
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-class ACE_Malloc_LIFO_Iterator_T;
-
-// Ensure backwards compatibility...
-#define ACE_Malloc_Iterator ACE_Malloc_LIFO_Iterator
-
-// Forward declaration.
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-class ACE_Malloc_FIFO_Iterator_T;
-
-/**
- * @class ACE_Malloc_T
- *
- * @brief Define a C++ class that uses parameterized types to provide
- * an extensible mechanism for encapsulating various of dynamic
- * memory management strategies.
- *
- * This class can be configured flexibly with different
- * MEMORY_POOL strategies and different types of ACE_LOCK
- * strategies.
- */
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-class ACE_Malloc_T
-{
-public:
- friend class ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>;
- friend class ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>;
- typedef ACE_MEM_POOL MEMORY_POOL;
- typedef ACE_MEM_POOL_OPTIONS MEMORY_POOL_OPTIONS;
- typedef ACE_TYPENAME ACE_CB::ACE_Name_Node NAME_NODE;
- typedef ACE_TYPENAME ACE_CB::ACE_Malloc_Header MALLOC_HEADER;
-
- // = Initialization and termination methods.
- /**
- * Initialize ACE_Malloc. This constructor passes @a pool_name to
- * initialize the memory pool, and uses ACE::basename() to
- * automatically extract out the name used for the underlying lock
- * name (if necessary).
- *
- * Note that @a pool_name should be located in
- * a directory with the appropriate visibility and protection so
- * that all processes that need to access it can do so.
- */
- ACE_Malloc_T (const ACE_TCHAR *pool_name = 0);
-
- /**
- * Initialize ACE_Malloc. This constructor passes @a pool_name to
- * initialize the memory pool, and uses @a lock_name to automatically
- * extract out the name used for the underlying lock name (if
- * necessary). In addition, @a options is passed through to
- * initialize the underlying memory pool.
- *
- * Note that @a pool_name should be located in
- * a directory with the appropriate visibility and protection so
- * that all processes that need to access it can do so.
- */
- ACE_Malloc_T (const ACE_TCHAR *pool_name,
- const ACE_TCHAR *lock_name,
- const ACE_MEM_POOL_OPTIONS *options = 0);
-
- /**
- * Initialize an ACE_Malloc with an external ACE_LOCK.
- * This constructor passes @a pool_name and @a options to initialize
- * the memory pool. @a lock is used as the pool lock, and must be
- * properly set up and ready for use before being passed to this method.
- */
- ACE_Malloc_T (const ACE_TCHAR *pool_name,
- const ACE_MEM_POOL_OPTIONS *options,
- ACE_LOCK *lock);
-
-#if !defined (ACE_HAS_TEMPLATE_TYPEDEFS)
- /// This is necessary to work around template bugs with certain C++
- /// compilers.
- ACE_Malloc_T (const ACE_TCHAR *pool_name,
- const ACE_TCHAR *lock_name,
- const void *options = 0);
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
- /// Destructor
- ~ACE_Malloc_T (void);
-
- /// Get Reference counter.
- int ref_counter (void);
-
- /// Release ref counter.
- int release (int close = 0);
-
- /// Releases resources allocated by this object.
- int remove (void);
-
- // = Memory management
-
- /// Allocate @a nbytes, but don't give them any initial value.
- void *malloc (size_t nbytes);
-
- /// Allocate @a nbytes, giving them @a initial_value.
- void *calloc (size_t nbytes, char initial_value = '\0');
-
- /// Allocate @a n_elem each of size @a elem_size, giving them
- /// @a initial_value.
- void *calloc (size_t n_elem,
- size_t elem_size,
- char initial_value = '\0');
-
- /// Deallocate memory pointed to by @a ptr, which must have been
- /// allocated previously by malloc().
- void free (void *ptr);
-
- /// Returns a reference to the underlying memory pool.
- MEMORY_POOL &memory_pool (void);
-
- // = Map manager like functions
-
- /**
- * Associate @a name with @a pointer. If @a duplicates == 0 then do
- * not allow duplicate name/pointer associations, else if
- * @a duplicates != 0 then allow duplicate name/pointer
- * assocations. Returns 0 if successfully binds (1) a previously
- * unbound @a name or (2) @a duplicates != 0, returns 1 if trying to
- * bind a previously bound @a name and @a duplicates == 0, else
- * returns -1 if a resource failure occurs.
- */
- int bind (const char *name, void *pointer, int duplicates = 0);
-
- /**
- * Associate @a name with @a pointer. Does not allow duplicate
- * name/pointer associations. Returns 0 if successfully binds
- * (1) a previously unbound @a name, 1 if trying to bind a previously
- * bound @a name, or returns -1 if a resource failure occurs. When
- * this call returns @a pointer's value will always reference the
- * void * that @a name is associated with. Thus, if the caller needs
- * to use @a pointer (e.g., to free it) a copy must be maintained by
- * the caller.
- */
- int trybind (const char *name, void *&pointer);
-
- /// Locate @a name and pass out parameter via @a pointer. If found,
- /// return 0, returns -1 if failure occurs.
- int find (const char *name, void *&pointer);
-
- /// Returns 0 if @a name is in the mapping. -1, otherwise.
- int find (const char *name);
-
- /**
- * Unbind (remove) the name from the map. Don't return the pointer
- * to the caller. If you want to remove all occurrences of @a name
- * you'll need to call this method multiple times until it fails...
- */
- int unbind (const char *name);
-
- /**
- * Unbind (remove) one association of @a name to @a pointer. Returns
- * the value of pointer in case the caller needs to deallocate
- * memory. If you want to remove all occurrences of @a name you'll
- * need to call this method multiple times until it fails...
- */
- int unbind (const char *name, void *&pointer);
-
- // = Protection and "sync" (i.e., flushing data to backing store).
-
- /**
- * Sync @a len bytes of the memory region to the backing store
- * starting at @c this->base_addr_. If @a len == -1 then sync the
- * whole region.
- */
- int sync (ssize_t len = -1, int flags = MS_SYNC);
-
- /// Sync @a len bytes of the memory region to the backing store
- /// starting at @c addr_.
- int sync (void *addr, size_t len, int flags = MS_SYNC);
-
- /**
- * Change the protection of the pages of the mapped region to @a prot
- * starting at @c this->base_addr_ up to @a len bytes. If @a len == -1
- * then change protection of all pages in the mapped region.
- */
- int protect (ssize_t len = -1, int prot = PROT_RDWR);
-
- /// Change the protection of the pages of the mapped region to @a prot
- /// starting at @a addr up to @a len bytes.
- int protect (void *addr, size_t len, int prot = PROT_RDWR);
-
- /**
- * Returns a count of the number of available chunks that can hold
- * @a size byte allocations. Function can be used to determine if you
- * have reached a water mark. This implies a fixed amount of allocated
- * memory.
- *
- * @param size The chunk size of that you would like a count of
- * @return Function returns the number of chunks of the given size
- * that would fit in the currently allocated memory.
- */
- ssize_t avail_chunks (size_t size) const;
-
-#if defined (ACE_HAS_MALLOC_STATS)
- /// Dump statistics of how malloc is behaving.
- void print_stats (void) const;
-#endif /* ACE_HAS_MALLOC_STATS */
-
- /// Returns a pointer to the lock used to provide mutual exclusion to
- /// an ACE_Malloc allocator.
- ACE_LOCK &mutex (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /// Return cb_ptr value.
- void *base_addr (void);
-
- /**
- * Bad flag. This operation should be called immediately after the
- * construction of the Malloc object to query whether the object was
- * constructed successfully. If not, the user should invoke @c
- * remove and release the object (it is not usable.)
- * @retval 0 if all is fine. non-zero if this malloc object is
- * unuable.
- */
- int bad (void);
-
-private:
- /// Initialize the Malloc pool.
- int open (void);
-
- /// Associate @a name with @a pointer. Assumes that locks are held by
- /// callers.
- int shared_bind (const char *name,
- void *pointer);
-
- /**
- * Try to locate @a name. If found, return the associated
- * ACE_Name_Node, else returns 0 if can't find the @a name.
- * Assumes that locks are held by callers. Remember to cast the
- * return value to ACE_CB::ACE_Name_Node*.
- */
- void *shared_find (const char *name);
-
- /// Allocate memory. Assumes that locks are held by callers.
- void *shared_malloc (size_t nbytes);
-
- /// Deallocate memory. Assumes that locks are held by callers.
- void shared_free (void *ptr);
-
- /// Pointer to the control block that is stored in memory controlled
- /// by <MEMORY_POOL>.
- ACE_CB *cb_ptr_;
-
- /// Pool of memory used by ACE_Malloc to manage its freestore.
- MEMORY_POOL memory_pool_;
-
- /// Lock that ensures mutual exclusion for the memory pool.
- ACE_LOCK *lock_;
- int delete_lock_; // True if destructor should delete the lock
-
- /// Keep track of failure in constructor.
- int bad_flag_;
-};
-
-/**
- * @class ACE_Malloc_LIFO_Iterator_T
- *
- * @brief LIFO iterator for names stored in Malloc'd memory.
- *
- * Does not support deletions while iteration is occurring.
- */
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-class ACE_Malloc_LIFO_Iterator_T
-{
-public:
- typedef ACE_TYPENAME ACE_CB::ACE_Name_Node NAME_NODE;
- typedef ACE_TYPENAME ACE_CB::ACE_Malloc_Header MALLOC_HEADER;
-
- // = Initialization method.
- /// If @a name = 0 it will iterate through everything else only
- /// through those entries whose @a name match.
- ACE_Malloc_LIFO_Iterator_T (ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB> &malloc,
- const char *name = 0);
-
- /// Destructor.
- ~ACE_Malloc_LIFO_Iterator_T (void);
-
- // = Iteration methods.
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Pass back the next entry in the set that hasn't yet been
- /// visited. Returns 0 when all items have been seen, else 1.
- int next (void *&next_entry);
-
- /**
- * Pass back the next entry (and the name associated with it) in
- * the set that hasn't yet been visited. Returns 0 when all items
- * have been seen, else 1.
- */
- int next (void *&next_entry,
- const char *&name);
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Malloc we are iterating over.
- ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB> &malloc_;
-
- /// Keeps track of how far we've advanced...
- NAME_NODE *curr_;
-
- /// Lock Malloc for the lifetime of the iterator.
- ACE_Read_Guard<ACE_LOCK> guard_;
-
- /// Name that we are searching for.
- const char *name_;
-};
-
-/**
- * @class ACE_Malloc_FIFO_Iterator_T
- *
- * @brief FIFO iterator for names stored in Malloc'd memory.
- *
- * Does not support deletions while iteration is occurring.
- */
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-class ACE_Malloc_FIFO_Iterator_T
-{
-public:
- typedef ACE_TYPENAME ACE_CB::ACE_Name_Node NAME_NODE;
- typedef ACE_TYPENAME ACE_CB::ACE_Malloc_Header MALLOC_HEADER;
-
- // = Initialization method.
- /// If @a name = 0 it will iterate through everything else only
- /// through those entries whose @a name match.
- ACE_Malloc_FIFO_Iterator_T (ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB> &malloc,
- const char *name = 0);
-
- /// Destructor.
- ~ACE_Malloc_FIFO_Iterator_T (void);
-
- // = Iteration methods.
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Pass back the next entry in the set that hasn't yet been
- /// visited. Returns 0 when all items have been seen, else 1.
- int next (void *&next_entry);
-
- /**
- * Pass back the next entry (and the name associated with it) in
- * the set that hasn't yet been visited. Returns 0 when all items
- * have been seen, else 1.
- */
- int next (void *&next_entry,
- const char *&name);
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Go to the starting element that was inserted first. Returns 0
- /// when there is no item in the set, else 1.
- int start (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Malloc we are iterating over.
- ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB> &malloc_;
-
- /// Keeps track of how far we've advanced...
- NAME_NODE *curr_;
-
- /// Lock Malloc for the lifetime of the iterator.
- ACE_Read_Guard<ACE_LOCK> guard_;
-
- /// Name that we are searching for.
- const char *name_;
-};
-
-template <ACE_MEM_POOL_1, class ACE_LOCK>
-class ACE_Malloc : public ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_Control_Block>
-{
-public:
- // = Initialization and termination methods.
- /**
- * Initialize ACE_Malloc. This constructor passes @a pool_name to
- * initialize the memory pool, and uses ACE::basename() to
- * automatically extract out the name used for the underlying lock
- * name (if necessary). Note that @a pool_name should be located in
- * a directory with the appropriate visibility and protection so
- * that all processes that need to access it can do so.
- */
- ACE_Malloc (const ACE_TCHAR *pool_name = 0);
-
- /**
- * Initialize ACE_Malloc. This constructor passes @a pool_name to
- * initialize the memory pool, and uses @a lock_name to automatically
- * extract out the name used for the underlying lock name (if
- * necessary). In addition, @a options is passed through to
- * initialize the underlying memory pool. Note that @a pool_name
- * should be located in a directory with the appropriate visibility
- * and protection so that all processes that need to access it can
- * do so.
- */
- ACE_Malloc (const ACE_TCHAR *pool_name,
- const ACE_TCHAR *lock_name,
- const ACE_MEM_POOL_OPTIONS *options = 0);
-
-#if !defined (ACE_HAS_TEMPLATE_TYPEDEFS)
- /// This is necessary to work around template bugs with certain C++
- /// compilers.
- ACE_Malloc (const ACE_TCHAR *pool_name,
- const ACE_TCHAR *lock_name,
- const void *options = 0);
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-};
-
-template <ACE_MEM_POOL_1, class ACE_LOCK>
-class ACE_Malloc_LIFO_Iterator : public ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_Control_Block>
-{
-public:
- // = Initialization method.
- /// If @a name = 0 it will iterate through everything else only
- /// through those entries whose @a name match.
- ACE_Malloc_LIFO_Iterator (ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK> &malloc,
- const char *name = 0);
-};
-
-template <ACE_MEM_POOL_1, class ACE_LOCK>
-class ACE_Malloc_FIFO_Iterator : public ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_Control_Block>
-{
-public:
- // = Initialization method.
- /// If @a name = 0 it will iterate through everything else only
- /// through those entries whose @a name match.
- ACE_Malloc_FIFO_Iterator (ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK> &malloc,
- const char *name = 0);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Malloc_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Malloc_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Malloc_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_MALLOC_H */
diff --git a/ace/Malloc_T.i b/ace/Malloc_T.i
deleted file mode 100644
index 6093977e5bc..00000000000
--- a/ace/Malloc_T.i
+++ /dev/null
@@ -1,354 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Malloc_T.i
-
-template <class T> ACE_INLINE T *
-ACE_Cached_Mem_Pool_Node<T>::addr (void)
-{
- // This should be done using a single reinterpret_cast, but Sun/CC
- // (4.2) gets awfully confused when T is a char[20] (and maybe other
- // types).
- return ACE_static_cast (T *, ACE_static_cast (void *, this));
-}
-
-template <class T> ACE_INLINE ACE_Cached_Mem_Pool_Node<T> *
-ACE_Cached_Mem_Pool_Node<T>::get_next (void)
-{
- return this->next_;
-}
-
-template <class T> ACE_INLINE void
-ACE_Cached_Mem_Pool_Node<T>::set_next (ACE_Cached_Mem_Pool_Node<T> *ptr)
-{
- this->next_ = ptr;
-}
-
-template <class T, class ACE_LOCK> ACE_INLINE void *
-ACE_Cached_Allocator<T, ACE_LOCK>::malloc (size_t nbytes)
-{
- // Check if size requested fits within pre-determined size.
- if (nbytes > sizeof (T))
- return 0;
-
- // addr() call is really not absolutely necessary because of the way
- // ACE_Cached_Mem_Pool_Node's internal structure arranged.
- return this->free_list_.remove ()->addr ();
-}
-
-template <class T, class ACE_LOCK> ACE_INLINE void *
-ACE_Cached_Allocator<T, ACE_LOCK>::calloc (size_t nbytes,
- char initial_value)
-{
- // Check if size requested fits within pre-determined size.
- if (nbytes > sizeof (T))
- return 0;
-
- // addr() call is really not absolutely necessary because of the way
- // ACE_Cached_Mem_Pool_Node's internal structure arranged.
- void *ptr = this->free_list_.remove ()->addr ();
- ACE_OS::memset (ptr, initial_value, sizeof (T));
- return ptr;
-}
-
-template <class T, class ACE_LOCK> ACE_INLINE void *
-ACE_Cached_Allocator<T, ACE_LOCK>::calloc (size_t,
- size_t,
- char)
-{
- ACE_NOTSUP_RETURN (0);
-}
-
-template <class T, class ACE_LOCK> ACE_INLINE void
-ACE_Cached_Allocator<T, ACE_LOCK>::free (void * ptr)
-{
- if (ptr != 0)
- this->free_list_.add ((ACE_Cached_Mem_Pool_Node<T> *) ptr) ;
-}
-
-template <class ACE_LOCK> ACE_INLINE void *
-ACE_Dynamic_Cached_Allocator<ACE_LOCK>::malloc (size_t nbytes)
-{
- // Check if size requested fits within pre-determined size.
- if (nbytes > chunk_size_)
- return 0;
-
- // addr() call is really not absolutely necessary because of the way
- // ACE_Cached_Mem_Pool_Node's internal structure arranged.
- return this->free_list_.remove ()->addr ();
-}
-
-template <class ACE_LOCK> ACE_INLINE void *
-ACE_Dynamic_Cached_Allocator<ACE_LOCK>::calloc (size_t nbytes,
- char initial_value)
-{
- // Check if size requested fits within pre-determined size.
- if (nbytes > chunk_size_)
- return 0;
-
- // addr() call is really not absolutely necessary because of the way
- // ACE_Cached_Mem_Pool_Node's internal structure arranged.
- void *ptr = this->free_list_.remove ()->addr ();
- ACE_OS::memset (ptr, initial_value, chunk_size_);
- return ptr;
-}
-
-template <class ACE_LOCK> ACE_INLINE void *
-ACE_Dynamic_Cached_Allocator<ACE_LOCK>::calloc (size_t, size_t, char)
-{
- ACE_NOTSUP_RETURN (0);
-}
-
-template <class ACE_LOCK> ACE_INLINE void
-ACE_Dynamic_Cached_Allocator<ACE_LOCK>::free (void * ptr)
-{
- this->free_list_.add ((ACE_Cached_Mem_Pool_Node<char> *) ptr);
-}
-
-template <class MALLOC> ACE_INLINE void *
-ACE_Allocator_Adapter<MALLOC>::malloc (size_t nbytes)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::malloc");
- return this->allocator_.malloc (nbytes);
-}
-
-template <class MALLOC> ACE_INLINE void *
-ACE_Allocator_Adapter<MALLOC>::calloc (size_t nbytes,
- char initial_value)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::calloc");
- return this->allocator_.calloc (nbytes, initial_value);
-}
-
-template <class MALLOC> ACE_INLINE void *
-ACE_Allocator_Adapter<MALLOC>::calloc (size_t n_elem,
- size_t elem_size,
- char initial_value)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::calloc");
- return this->allocator_.calloc (n_elem, elem_size, initial_value);
-}
-
-template <class MALLOC> ACE_INLINE MALLOC &
-ACE_Allocator_Adapter<MALLOC>::alloc (void)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::allocator");
- return this->allocator_;
-}
-
-template <class MALLOC> ACE_INLINE void
-ACE_Allocator_Adapter<MALLOC>::free (void *ptr)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::free");
- this->allocator_.free (ptr);
-}
-
-template <class MALLOC> ACE_INLINE int
-ACE_Allocator_Adapter<MALLOC>::remove (void)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::remove");
- return this->allocator_.remove ();
-}
-
-template <class MALLOC> ACE_INLINE int
-ACE_Allocator_Adapter<MALLOC>::trybind (const char *name,
- void *&pointer)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::trybind");
- return this->allocator_.trybind (name, pointer);
-}
-
-template <class MALLOC> ACE_INLINE int
-ACE_Allocator_Adapter<MALLOC>::bind (const char *name,
- void *pointer,
- int duplicates)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::bind");
- return this->allocator_.bind (name, pointer, duplicates);
-}
-
-template <class MALLOC> ACE_INLINE int
-ACE_Allocator_Adapter<MALLOC>::find (const char *name,
- void *&pointer)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::find");
- return this->allocator_.find (name, pointer);
-}
-
-template <class MALLOC> ACE_INLINE int
-ACE_Allocator_Adapter<MALLOC>::find (const char *name)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::find");
- return this->allocator_.find (name);
-}
-
-template <class MALLOC> ACE_INLINE int
-ACE_Allocator_Adapter<MALLOC>::unbind (const char *name, void *&pointer)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::unbind");
- return this->allocator_.unbind (name, pointer);
-}
-
-template <class MALLOC> ACE_INLINE int
-ACE_Allocator_Adapter<MALLOC>::unbind (const char *name)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::unbind");
- return this->allocator_.unbind (name);
-}
-
-template <class MALLOC> ACE_INLINE int
-ACE_Allocator_Adapter<MALLOC>::sync (ssize_t len, int flags)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::sync");
- return this->allocator_.sync (len, flags);
-}
-
-template <class MALLOC> ACE_INLINE int
-ACE_Allocator_Adapter<MALLOC>::sync (void *addr, size_t len, int flags)
-{
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::sync");
- return this->allocator_.sync (addr, len, flags);
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> ACE_INLINE int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ref_counter (void)
-{
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
- if (this->cb_ptr_ != 0)
- return this->cb_ptr_->ref_counter_;
-
- return -1;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> ACE_INLINE int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::bad (void)
-{
- return this->bad_flag_;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> ACE_INLINE int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::release (int close)
-{
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1);
- if (this->cb_ptr_ != 0)
- {
- int retv = --this->cb_ptr_->ref_counter_;
-
-#if 0
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P) ACE_Malloc_T::release ->%d\n"),
- this->cb_ptr_->ref_counter_ - 1));
-#endif /* 0 */
- if (close)
- this->memory_pool_.release (0);
-
- if (retv == 0)
- this->remove ();
- return retv;
- }
- return -1;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> ACE_INLINE ACE_MEM_POOL &
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::memory_pool (void)
-{
- ACE_TRACE ("ACE_Malloc_T<MEMORY_POOL, ACE_LOCK, ACE_CB>::memory_pool");
- return this->memory_pool_;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> ACE_INLINE int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::sync (ssize_t len,
- int flags)
-{
- ACE_TRACE ("ACE_Malloc_T<MEMORY_POOL, ACE_LOCK, ACE_CB>::sync");
- return this->memory_pool_.sync (len, flags);
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> ACE_INLINE int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::sync (void *addr,
- size_t len,
- int flags)
-{
- ACE_TRACE ("ACE_Malloc_T<MEMORY_POOL, ACE_LOCK, ACE_CB>::sync");
- return this->memory_pool_.sync (addr, len, flags);
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> ACE_INLINE int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::protect (ssize_t len,
- int flags)
-{
- ACE_TRACE ("ACE_Malloc_T<MEMORY_POOL, ACE_LOCK, ACE_CB>::protect");
- return this->memory_pool_.protect (len, flags);
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> ACE_INLINE int
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::protect (void *addr,
- size_t len,
- int flags)
-{
- ACE_TRACE ("ACE_Malloc_T<MEMORY_POOL, ACE_LOCK, ACE_CB>::protect");
- return this->memory_pool_.protect (addr, len, flags);
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> ACE_INLINE ACE_LOCK &
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::mutex (void)
-{
- return *this->lock_;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> ACE_INLINE void *
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::base_addr (void)
-{
- return this->cb_ptr_;
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> ACE_INLINE
-ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK>::ACE_Malloc (const ACE_TCHAR *pool_name)
- : ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_Control_Block> (pool_name)
-{
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> ACE_INLINE
-ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK>::ACE_Malloc (const ACE_TCHAR *pool_name,
- const ACE_TCHAR *lock_name,
- const ACE_MEM_POOL_OPTIONS *options)
- : ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_Control_Block> (pool_name, lock_name, options)
-{
-}
-
-#if !defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-template <ACE_MEM_POOL_1, class ACE_LOCK> ACE_INLINE
-ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK>::ACE_Malloc (const ACE_TCHAR *pool_name,
- const ACE_TCHAR *lock_name,
- const void *options)
- : ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_Control_Block> (pool_name, lock_name, options)
-{
-}
-#endif /* !ACE_HAS_TEMPLATE_TYPEDEFS */
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> ACE_INLINE
-ACE_Malloc_LIFO_Iterator<ACE_MEM_POOL_2, ACE_LOCK>::ACE_Malloc_LIFO_Iterator (ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK> &malloc,
- const char *name)
- : ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_Control_Block> (malloc, name)
-{
-}
-
-template <ACE_MEM_POOL_1, class ACE_LOCK> ACE_INLINE
-ACE_Malloc_FIFO_Iterator<ACE_MEM_POOL_2, ACE_LOCK>::ACE_Malloc_FIFO_Iterator (ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK> &malloc,
- const char *name)
- : ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_Control_Block> (malloc, name)
-{
-}
-
-
-
-#if 0
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> ACE_INLINE void
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::init_malloc_header_ptr (void* ptr)
-{
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
- new (ptr) ACE_MALLOC_HEADER_PTR (this->cb_ptr_, 0);
-#else
- ACE_UNUSED_ARG (ptr);
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-}
-#endif
diff --git a/ace/Managed_Object.cpp b/ace/Managed_Object.cpp
deleted file mode 100644
index 1ca8fc31f18..00000000000
--- a/ace/Managed_Object.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-// $Id$
-
-#ifndef ACE_MANAGED_OBJECT_CPP
-#define ACE_MANAGED_OBJECT_CPP
-
-#include "ace/Managed_Object.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Managed_Object.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Managed_Object, "$Id$")
-
-template <class TYPE>
-ACE_Cleanup_Adapter<TYPE>::~ACE_Cleanup_Adapter (void)
-{
-}
-
-#endif /* ACE_MANAGED_OBJECT_CPP */
diff --git a/ace/Managed_Object.h b/ace/Managed_Object.h
deleted file mode 100644
index 412379b809b..00000000000
--- a/ace/Managed_Object.h
+++ /dev/null
@@ -1,162 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Managed_Object.h
- *
- * $Id$
- *
- * @author David L. Levine
- */
-//=============================================================================
-
-
-#ifndef ACE_MANAGED_OBJECT_H
-#define ACE_MANAGED_OBJECT_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Object_Manager.h"
-
-/**
- * @class ACE_Cleanup_Adapter
- *
- * @brief Adapter for ACE_Cleanup objects that allows them to be readily
- * managed by the ACE_Object_Manager.
- *
- * This template class adapts an object of any type to be an
- * ACE_Cleanup object. The object can then be destroyed
- * type-safely by the ACE_Object_Manager. This class is
- * typically used to replace a cast; but, it's a bit cleaner and
- * allows insertion of, say, run-time type identification
- * internally if desired.
- */
-template <class TYPE>
-class ACE_Cleanup_Adapter : public ACE_Cleanup
-{
-public:
- /// Default constructor.
- ACE_Cleanup_Adapter (void);
-
- /// Virtual destructor, needed by some compilers for vtable placement.
- virtual ~ACE_Cleanup_Adapter (void);
-
- /// Accessor for contained object.
- TYPE &object (void);
-
-private:
- ACE_UNIMPLEMENTED_FUNC (ACE_Cleanup_Adapter (const ACE_Cleanup_Adapter<TYPE> &))
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Cleanup_Adapter<TYPE> &))
-
- /// Contained object.
- TYPE object_;
-};
-
-/**
- * @class ACE_Managed_Object
- *
- * @brief Wrapper for interface to allocate an object managed by the
- * ACE_Object_Manager.
- *
- * This template class wraps an interface that is used to
- * allocate and access an object that is managed by the
- * ACE_Object_Manager. Because static template member functions
- * are not supported by some compilers, it is a separate
- * (template) class.
- * This interface is typically used to replace a static object
- * with one that is dynamically allocated. It helps to avoid
- * problems with order of static object
- * construction/destruction. Managed objects won't be allocated
- * until needed, but should be allocated when first needed. And
- * they are destroyed in the reverse order of construction.
- * <get_preallocated_object> accesses a "preallocated" object,
- * i.e., one that is identified by a value in the
- * ACE_Object_Manager:: Preallocated_Object enum. These objects
- * are used internally by the ACE library.
- * Hooks are provided for the application to preallocate objects
- * via the same mechanism.
- * ACE_APPLICATION_PREALLOCATED_OBJECT_DECLARATIONS can be used
- * to define enum values;
- * ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS can be used
- * to define the corresponding objects. The format of the ACE
- * internal library definitions should be followed. And
- * similarly, ACE_APPLICATION_PREALLOCATED_ARRAY_DECLARATIONS
- * and ACE_APPLICATION_PREALLOCATED_ARRAY_DEFINITIONS can be
- * used to preallocate arrays.
- * By default, preallocation uses dynamic allocation. The
- * preallocated objects and arrays are allocated off the heap in
- * the ACE_Object_Manager constructor. To statically place the
- * preallocated objects in program global data instead of on the
- * heap, #define ACE_HAS_STATIC_PREALLOCATION prior to building
- * the ACE library.
- */
-template <class TYPE>
-class ACE_Managed_Object
-{
-public:
- static TYPE *get_preallocated_object (ACE_Object_Manager::Preallocated_Object id)
- {
- // The preallocated objects are in a separate, "read-only" array so
- // that this function doesn't need a lock. Also, because it is
- // intended _only_ for use with hard-code values, it performs no
- // range checking on "id".
-
- // Cast the return type of the the object pointer based
- // on the type of the function template parameter.
- return &((ACE_Cleanup_Adapter<TYPE> *)
- ACE_Object_Manager::preallocated_object[id])->object ();
- }
- // Get the preallocated object identified by "id". Returns a
- // pointer to the object. Beware: no error indication is provided,
- // because it can _only_ be used for accessing preallocated objects.
- // Note: the function definition is inlined here so that it compiles
- // on AIX 4.1 w/xlC v. 3.01.
-
- static TYPE *get_preallocated_array (ACE_Object_Manager::Preallocated_Array id)
- {
- // The preallocated array are in a separate, "read-only" array so
- // that this function doesn't need a lock. Also, because it is
- // intended _only_ for use with hard-code values, it performs no
- // range checking on "id".
-
- // Cast the return type of the the object pointer based
- // on the type of the function template parameter.
- return &((ACE_Cleanup_Adapter<TYPE> *)
- ACE_Object_Manager::preallocated_array[id])->object ();
- }
- // Get the preallocated array identified by "id". Returns a
- // pointer to the array. Beware: no error indication is provided,
- // because it can _only_ be used for accessing preallocated arrays.
- // Note: the function definition is inlined here so that it compiles
- // on AIX 4.1 w/xlC v. 3.01.
-
-private:
- // Disallow instantiation of this class.
- ACE_UNIMPLEMENTED_FUNC (ACE_Managed_Object (void))
- ACE_UNIMPLEMENTED_FUNC (ACE_Managed_Object (const ACE_Managed_Object<TYPE> &))
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Managed_Object<TYPE> &))
-
- friend class this_prevents_compiler_warning_about_only_private_constructors;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Managed_Object.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Managed_Object.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Managed_Object.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_MANAGED_OBJECT_H */
diff --git a/ace/Managed_Object.i b/ace/Managed_Object.i
deleted file mode 100644
index d4dd6043418..00000000000
--- a/ace/Managed_Object.i
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-template <class TYPE>
-ACE_INLINE
-ACE_Cleanup_Adapter<TYPE>::ACE_Cleanup_Adapter (void)
- // Note: don't explicitly initialize "object_", because TYPE may not
- // have a default constructor. Let the compiler figure it out . . .
-{
-}
-
-template <class TYPE>
-ACE_INLINE
-TYPE &
-ACE_Cleanup_Adapter<TYPE>::object (void)
-{
- return this->object_;
-}
diff --git a/ace/Map.cpp b/ace/Map.cpp
deleted file mode 100644
index 1faa6c18f23..00000000000
--- a/ace/Map.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Map.cpp
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
-
-#include "ace/Map_T.h"
-
-ACE_RCSID(ace, Map, "$Id$")
-
diff --git a/ace/Map.h b/ace/Map.h
deleted file mode 100644
index 111fb1aa476..00000000000
--- a/ace/Map.h
+++ /dev/null
@@ -1,30 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Map.h
- *
- * $Id$
- *
- * @author Irfan Pyarali
- */
-//=============================================================================
-
-
-#ifndef ACE_MAP_H
-#define ACE_MAP_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Include the templates here.
-#include "ace/Map_T.h"
-
-#include "ace/post.h"
-
-#endif /* ACE_MAP_H */
diff --git a/ace/Map_Manager.cpp b/ace/Map_Manager.cpp
deleted file mode 100644
index 79c7acfc39b..00000000000
--- a/ace/Map_Manager.cpp
+++ /dev/null
@@ -1,692 +0,0 @@
-// $Id$
-
-#ifndef ACE_MAP_MANAGER_C
-#define ACE_MAP_MANAGER_C
-
-#include "ace/Malloc.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Service_Config.h"
-#include "ace/Map_Manager.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Map_Manager.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Map_Manager, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Map_Entry)
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Map_Manager)
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Map_Const_Iterator_Base)
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Map_Iterator_Base)
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Map_Const_Iterator)
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Map_Iterator)
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Map_Reverse_Iterator)
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::open (size_t size,
- ACE_Allocator *alloc)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- // Close old map (if any).
- this->close_i ();
-
- // Use the user specified allocator or the default singleton one.
- if (alloc == 0)
- alloc = ACE_Allocator::instance ();
-
- this->allocator_ = alloc;
-
- // This assertion is here to help track a situation that shouldn't
- // happen.
- ACE_ASSERT (size != 0);
-
- // Active_Map_Manager depends on the <slot_index_> being of fixed
- // size. It cannot be size_t because size_t is 64-bits on 64-bit
- // platform and 32-bits on 32-bit platforms. Size of the <slot_index_>
- // has to be consistent across platforms. ACE_UIN32 is chosen as
- // ACE_UIN32_MAX is big enough. The assert is to ensure that the user
- // doesn't open the ACE_Map_Manager with a bigger size than we can
- // handle.
- ACE_ASSERT (size <= ACE_UINT32_MAX);
-
- // Resize from 0 to <size>. Note that this will also set up the
- // circular free list.
- return this->resize_i ((ACE_UINT32) size);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::close_i (void)
-{
- // Free entries.
- this->free_search_structure ();
-
- // Reset sizes.
- this->total_size_ = 0;
- this->cur_size_ = 0;
-
- // Reset circular free list.
- this->free_list_.next (this->free_list_id ());
- this->free_list_.prev (this->free_list_id ());
-
- // Reset circular occupied list.
- this->occupied_list_.next (this->occupied_list_id ());
- this->occupied_list_.prev (this->occupied_list_id ());
-
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::bind_i (const EXT_ID &ext_id,
- const INT_ID &int_id)
-{
- // Try to find the key.
- ACE_UINT32 slot = 0;
- int result = this->find_and_return_index (ext_id,
- slot);
-
- if (result == 0)
- // We found the key. Nothing to change.
- return 1;
- else
- // We didn't find the key.
- return this->shared_bind (ext_id,
- int_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::next_free (ACE_UINT32 &free_slot)
-{
- // Look in the free list for an empty slot.
- free_slot = this->free_list_.next ();
-
- // If we do find a free slot, return successfully.
- if (free_slot != this->free_list_id ())
- return 0;
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
- // Move any free slots from occupied list to free list.
- this->move_all_free_slots_from_occupied_list ();
-
- // Try again in case we found any free slots in the occupied list.
- free_slot = this->free_list_.next ();
-
- // If we do find a free slot, return successfully.
- if (free_slot != this->free_list_id ())
- return 0;
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- // Resize the map.
- int result = this->resize_i (this->new_size ());
-
- // Check for errors.
- if (result == 0)
- // New free slot.
- free_slot = this->free_list_.next ();
-
- return result;
-}
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> void
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::move_all_free_slots_from_occupied_list (void)
-{
- //
- // In the case of lazy map managers, the movement of free slots from
- // the occupied list to the free list is delayed until we run out of
- // free slots in the free list.
- //
-
- // Go through the entire occupied list, moving free slots to the
- // free list. Note that all free slots in the occupied list are
- // moved in this loop.
- for (ACE_UINT32 i = this->occupied_list_.next ();
- i != this->occupied_list_id ();
- )
- {
- //
- // Note the trick used here: Information about the current slot
- // is first noted; <i> then moves to the next occupied slot;
- // only after this is the slot (potentially) moved from the
- // occupied list to the free list. This order of things, i.e.,
- // moving <i> before moving the free slot is necessary,
- // otherwise we'll forget which our next occupied slot is.
- //
-
- // Note information about current slot.
- ACE_Map_Entry<EXT_ID, INT_ID> &current_slot = this->search_structure_[i];
- ACE_UINT32 position_of_current_slot = i;
-
- // Move <i> to next occupied slot.
- i = this->search_structure_[i].next ();
-
- // If current slot is free
- if (current_slot.free_)
- {
- // Reset free flag to zero before moving to free list.
- current_slot.free_ = 0;
-
- // Move from occupied list to free list.
- this->move_from_occupied_list_to_free_list (position_of_current_slot);
- }
- }
-}
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> void
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::shared_move (ACE_UINT32 slot,
- ACE_Map_Entry<EXT_ID, INT_ID> &current_list,
- ACE_UINT32 current_list_id,
- ACE_Map_Entry<EXT_ID, INT_ID> &new_list,
- ACE_UINT32 new_list_id)
-{
- // Grab the entry.
- ENTRY &entry = this->search_structure_[slot];
-
- // Remove from current list.
-
- // Fix the entry before us.
- ACE_UINT32 current_list_prev = entry.prev ();
-
- if (current_list_prev == current_list_id)
- current_list.next (entry.next ());
- else
- this->search_structure_[current_list_prev].next (entry.next ());
-
- // Fix the entry after us.
- ACE_UINT32 current_list_next = entry.next ();
-
- if (current_list_next == current_list_id)
- current_list.prev (entry.prev ());
- else
- this->search_structure_[current_list_next].prev (entry.prev ());
-
- // Add to new list.
-
- // Fix us.
- ACE_UINT32 new_list_next = new_list.next ();
- entry.next (new_list_next);
- entry.prev (new_list_id);
-
- // Fix entry before us.
- new_list.next (slot);
-
- // Fix entry after us.
- if (new_list_next == new_list_id)
- new_list.prev (slot);
- else
- this->search_structure_[new_list_next].prev (slot);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::shared_bind (const EXT_ID &ext_id,
- const INT_ID &int_id)
-{
- // This function assumes that the find() has already been done, and
- // therefore, simply adds to the map.
-
- // Find an empty slot.
- ACE_UINT32 slot = 0;
- int result = this->next_free (slot);
-
- if (result == 0)
- {
- // Copy key and value.
- this->search_structure_[slot].int_id_ = int_id;
- this->search_structure_[slot].ext_id_ = ext_id;
-
- // Move from free list to occupied list
- this->move_from_free_list_to_occupied_list (slot);
-
- // Update the current size.
- ++this->cur_size_;
- }
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id)
-{
- // First try to find the key.
- ACE_UINT32 slot = 0;
- int result = this->find_and_return_index (ext_id,
- slot);
- if (result == 0)
- {
- // We found it, so make copies of the old entries and rebind
- // current entries.
- ENTRY &ss = this->search_structure_[slot];
- old_ext_id = ss.ext_id_;
- old_int_id = ss.int_id_;
- ss.ext_id_ = ext_id;
- ss.int_id_ = int_id;
-
- // Sync changed entry.
- this->allocator_->sync (&ss, sizeof ss);
-
- return 1;
- }
- else
- // We didn't find it, so let's add it.
- return this->shared_bind (ext_id,
- int_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id)
-{
- // First try to find the key.
- ACE_UINT32 slot = 0;
- int result = this->find_and_return_index (ext_id,
- slot);
- if (result == 0)
- {
- // We found it, so make copies of the old entries and rebind
- // current entries.
- ENTRY &ss = this->search_structure_[slot];
- old_int_id = ss.int_id_;
- ss.ext_id_ = ext_id;
- ss.int_id_ = int_id;
-
- // Sync changed entry.
- this->allocator_->sync (&ss, sizeof ss);
-
- return 1;
- }
- else
- // We didn't find it, so let's add it.
- return this->shared_bind (ext_id,
- int_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id)
-{
- // First try to find the key.
- ACE_UINT32 slot = 0;
- int result = this->find_and_return_index (ext_id,
- slot);
- if (result == 0)
- {
- // We found it, so rebind current entries.
- ENTRY &ss = this->search_structure_[slot];
- ss.ext_id_ = ext_id;
- ss.int_id_ = int_id;
-
- // Sync changed entry.
- this->allocator_->sync (&ss, sizeof ss);
-
- return 1;
- }
- else
- // We didn't find it, so let's add it.
- return this->shared_bind (ext_id,
- int_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::trybind_i (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- // Try to find the key.
- ACE_UINT32 slot = 0;
- int result = this->find_and_return_index (ext_id,
- slot);
- if (result == 0)
- {
- // Key was found. Make a copy of value, but *don't* update
- // anything in the map!
- int_id = this->search_structure_[slot].int_id_;
- return 1;
- }
- else
- // We didn't find it, so let's bind it!
- return this->bind_i (ext_id,
- int_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::find_and_return_index (const EXT_ID &ext_id,
- ACE_UINT32 &slot)
-{
- // Go through the entire occupied list looking for the key.
- for (ACE_UINT32 i = this->occupied_list_.next ();
- i != this->occupied_list_id ();
- i = this->search_structure_[i].next ())
- {
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
- if (this->search_structure_[i].free_)
- continue;
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- if (this->equal (this->search_structure_[i].ext_id_,
- ext_id))
- {
- // If found, return slot.
- slot = i;
- return 0;
- }
- }
-
- // Key was not found.
- return -1;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> void
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::unbind_all (void)
-{
- // Go through the entire occupied list.
- for (ACE_UINT32 i = this->occupied_list_.next ();
- i != this->occupied_list_id ();
- )
- {
- //
- // Note the trick used here: Information about the current slot
- // is first noted; <i> then moves to the next occupied slot;
- // only after this is the slot (potentially) moved from the
- // occupied list to the free list. This order of things, i.e.,
- // moving <i> before moving the free slot is necessary,
- // otherwise we'll forget which our next occupied slot is.
- //
-
- // Note information about current slot.
- ACE_Map_Entry<EXT_ID, INT_ID> &current_slot =
- this->search_structure_[i];
- ACE_UINT32 position_of_current_slot = i;
-
- // Move <i> to next occupied slot.
- i = current_slot.next ();
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
- if (current_slot.free_)
- continue;
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- this->unbind_slot (position_of_current_slot);
- }
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::find_i (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- // Try to find the key.
- ACE_UINT32 slot = 0;
- int result = this->find_and_return_index (ext_id,
- slot);
- if (result == 0)
- // Key was found. Make a copy of value.
- int_id = this->search_structure_[slot].int_id_;
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::unbind_and_return_index (const EXT_ID &ext_id,
- ACE_UINT32 &slot)
-{
- // Try to find the key.
- int result = this->find_and_return_index (ext_id,
- slot);
-
- if (result == 0)
- this->unbind_slot (slot);
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> void
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::unbind_slot (ACE_UINT32 slot)
-{
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
- //
- // In the case of lazy map managers, the movement of free slots
- // from the occupied list to the free list is delayed until we
- // run out of free slots in the free list.
- //
-
- this->search_structure_[slot].free_ = 1;
-
-#else
-
- // Move from occupied list to free list.
- this->move_from_occupied_list_to_free_list (slot);
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- // Update the current size.
- --this->cur_size_;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::unbind_i (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- // Unbind the entry.
- ACE_UINT32 slot = 0;
- int result = this->unbind_and_return_index (ext_id,
- slot);
- if (result == 0)
- // If found, copy the value.
- int_id = this->search_structure_[slot].int_id_;
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::resize_i (ACE_UINT32 new_size)
-{
- ACE_UINT32 i;
- ENTRY *temp = 0;
-
- // Allocate new memory.
- ACE_ALLOCATOR_RETURN (temp,
- (ENTRY *) this->allocator_->malloc (new_size * sizeof (ENTRY)),
- -1);
-
- // Copy over the occupied entires.
- for (i = this->occupied_list_.next ();
- i != this->occupied_list_id ();
- i = this->search_structure_[i].next ())
- // Call the copy constructor using operator placement new.
- new (&(temp[i])) ENTRY (this->search_structure_[i]);
-
- // Copy over the free entires.
- for (i = this->free_list_.next ();
- i != this->free_list_id ();
- i = this->search_structure_[i].next ())
- // Call the copy constructor using operator placement new.
- new (&(temp[i])) ENTRY (this->search_structure_[i]);
-
- // Construct the new elements.
- for (i = this->total_size_; i < new_size; i++)
- {
- // Call the constructor for each element in the array using
- // operator placement new. Note that this requires a default
- // constructor for <EXT_ID> and <INT_ID>.
- new (&(temp[i])) ENTRY;
- temp[i].next (i + 1);
- temp[i].prev (i - 1);
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
- // Even though this slot is initially free, we need the <free_>
- // flag to be zero so that we don't have to set it when the slot
- // is moved to the occupied list. In addition, this flag has no
- // meaning while this slot is in the free list.
- temp[i].free_ = 0;
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- }
-
- // Add new entries to the free list.
- this->free_list_.next (this->total_size_);
- this->free_list_.prev (new_size - 1);
- temp[new_size - 1].next (this->free_list_id ());
- temp[this->total_size_].prev (this->free_list_id ());
-
- // Remove/free old elements, update the new totoal size.
- this->free_search_structure ();
- this->total_size_ = new_size;
-
- // Start using new elements.
- this->search_structure_ = temp;
-
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_UINT32
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::new_size (void)
-{
- // Calculate the new size.
- ACE_UINT32 current_size = this->total_size_;
-
- if (current_size < MAX_EXPONENTIAL)
- // Exponentially increase if we haven't reached MAX_EXPONENTIAL.
- current_size *= 2;
- else
- // Linear increase if we have reached MAX_EXPONENTIAL.
- current_size += LINEAR_INCREASE;
-
- // This should be the new size.
- return current_size;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> void
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::free_search_structure (void)
-{
- // Free up the structure.
- if (this->search_structure_ != 0)
- {
- for (ACE_UINT32 i = 0; i < this->total_size_; i++)
- // Explicitly call the destructor.
- {
- ENTRY *ss = &this->search_structure_[i];
- // The "if" second argument results in a no-op instead of
- // deallocation.
- ACE_DES_FREE_TEMPLATE2 (ss, ACE_NOOP,
- ACE_Map_Entry, EXT_ID, INT_ID);
- }
-
- // Actually free the memory.
- this->allocator_->free (this->search_structure_);
- this->search_structure_ = 0;
- }
-}
-
-template <class EXT_ID, class INT_ID> void
-ACE_Map_Entry<EXT_ID, INT_ID>::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("next_ = %d"), this->next_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("prev_ = %d"), this->prev_));
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("free_ = %d"), this->free_));
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> void
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("total_size_ = %d"), this->total_size_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncur_size_ = %d"), this->cur_size_));
- this->allocator_->dump ();
- this->lock_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> void
-ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::dump_i (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("next_ = %d"), this->next_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> void
-ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::dump_i (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("next_ = %d"), this->next_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-ACE_Map_Entry<EXT_ID, INT_ID>&
-ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::operator* (void) const
-{
- // @@ This function should be inlined. We moved it here to avoid a
- // compiler bug in SunCC 4.2. Once we know the correct patch to fix
- // the compiler problem, it should be moved back to .i file again.
- ACE_Map_Entry<EXT_ID, INT_ID> *retv = 0;
-
- int result = this->next (retv);
- ACE_ASSERT (result != 0);
- ACE_UNUSED_ARG (result);
-
- return *retv;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-ACE_Map_Entry<EXT_ID, INT_ID>&
-ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::operator* (void) const
-{
- // @@ This function should be inlined. We moved it here to avoid a
- // compiler bug in SunCC 4.2. Once we know the correct patch to fix
- // the compiler problem, it should be moved back to .i file again.
- ACE_Map_Entry<EXT_ID, INT_ID> *retv = 0;
-
- int result = this->next (retv);
- ACE_ASSERT (result != 0);
- ACE_UNUSED_ARG (result);
-
- return *retv;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> void
-ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>::dump (void) const
-{
- this->dump_i ();
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> void
-ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>::dump (void) const
-{
- this->dump_i ();
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> void
-ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::dump (void) const
-{
- this->dump_i ();
-}
-
-#endif /* ACE_MAP_MANAGER_C */
diff --git a/ace/Map_Manager.h b/ace/Map_Manager.h
deleted file mode 100644
index 7264e5c3a6f..00000000000
--- a/ace/Map_Manager.h
+++ /dev/null
@@ -1,712 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Map_Manager.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_MAP_MANAGER_H
-#define ACE_MAP_MANAGER_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/Log_Msg.h"
-
-// Forward declaration.
-class ACE_Allocator;
-
-/**
- * @class ACE_Map_Entry
- *
- * @brief An entry in the Map.
- */
-template <class EXT_ID, class INT_ID>
-class ACE_Map_Entry
-{
-public:
-# if ! defined (ACE_HAS_BROKEN_NOOP_DTORS)
- /// We need this destructor to keep some compilers from complaining.
- /// It's just a no-op, however.
- ~ACE_Map_Entry (void);
-# endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */
-
- /// Key used to look up an entry.
- EXT_ID ext_id_;
-
- /// The contents of the entry itself.
- INT_ID int_id_;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- // = These are really private, but unfortunately template friends
- // are not portable.
-
- /// Get next entry.
- ACE_UINT32 next (void) const;
-
- /// Set next entry.
- void next (ACE_UINT32 n);
-
- /// Get prev entry.
- ACE_UINT32 prev (void) const;
-
- /// Set prev entry.
- void prev (ACE_UINT32 p);
-
- /// Keeps track of the next entry.
- ACE_UINT32 next_;
-
- /// Keeps track of the previous entry.
- ACE_UINT32 prev_;
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
- /// Is this entry free?
- int free_;
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
-};
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Map_Iterator_Base;
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Map_Const_Iterator_Base;
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Map_Iterator;
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Map_Const_Iterator;
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Map_Reverse_Iterator;
-
-/**
- * @class ACE_Map_Manager
- *
- * @brief Define a map abstraction that associates <EXT_ID>s with
- * <INT_ID>s.
- *
- * The <EXT_ID> must support <operator==>. This constraint can
- * be alleviated via template specialization, as shown in the
- * $ACE_ROOT/tests/Conn_Test.cpp test.
- * This class uses an <ACE_Allocator> to allocate memory. The
- * user can make this a persistant class by providing an
- * <ACE_Allocator> with a persistable memory pool.
- * This implementation of a map uses an array, which is searched
- * linearly. For more efficient searching you should use the
- * <ACE_Hash_Map_Manager>.
- */
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Map_Manager
-{
-public:
- friend class ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>;
- friend class ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>;
- friend class ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>;
- friend class ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>;
- friend class ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>;
-
- // = Traits.
- typedef EXT_ID KEY;
- typedef INT_ID VALUE;
- typedef ACE_Map_Entry<EXT_ID, INT_ID> ENTRY;
- typedef ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> ITERATOR;
- typedef ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> CONST_ITERATOR;
- typedef ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> REVERSE_ITERATOR;
-
- typedef ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> iterator;
- typedef ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> const_iterator;
- typedef ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> reverse_iterator;
-
- // = Initialization and termination methods.
- /// Initialize a ACE_Map_Manager with the ACE_DEFAULT_MAP_SIZE.
- ACE_Map_Manager (ACE_Allocator *alloc = 0);
-
- /// Initialize a ACE_Map_Manager with @a size entries.
- ACE_Map_Manager (size_t size,
- ACE_Allocator *alloc = 0);
-
- /// Initialize a ACE_Map_Manager with size @a length.
- int open (size_t length = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- /// Close down a ACE_Map_Manager and release dynamically allocated
- /// resources.
- int close (void);
-
- /// Close down a ACE_Map_Manager and release dynamically allocated
- /// resources.
- ~ACE_Map_Manager (void);
-
- /**
- * Associate @a ext_id with @a int_id. If @a ext_id is already in the
- * map then the ACE_Map_Entry is not changed.
- * @retval 0 If a new entry is bound successfully.
- * @retval 1 If an attempt is made to bind an existing entry.
- * @retval -1 If failures occur.
- */
- int bind (const EXT_ID &ext_id,
- const INT_ID &int_id);
-
- /**
- * Reassociate @a ext_id with @a int_id. If @a ext_id is not in the
- * map then behaves just like bind(). Otherwise, store the old
- * values of <ext_id> and <int_id> into the "out" parameters and
- * rebind the new parameters. This is very useful if you need to
- * have an atomic way of updating <Map_Entries> and you also need
- * full control over memory allocation.
- * @retval 0 If a new entry is bound successfully.
- * @retval 1 If an existing entry was rebound.
- * @retval -1 If failures occur.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id);
-
- /**
- * Reassociate @a ext_id with @a int_id. If <ext_id> is not in the
- * map then behaves just like <bind>. Otherwise, store the old
- * values of <int_id> into the "out" parameter and rebind the new
- * parameters.
- * @retval 0 If a new entry is bound successfully.
- * @retval 1 If an existing entry was rebound.
- * @retval -1 If failures occur.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id);
-
- /// Reassociate @a ext_id with @a int_id. Old values in the map are
- /// ignored.
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id);
-
- /**
- * Associate <ext_id> with <int_id> if and only if <ext_id> is not
- * in the map. If <ext_id> is already in the map then the <int_id>
- * parameter is overwritten with the existing value in the map
- * @retval 0 If a new entry is bound successfully.
- * @retval 1 If an attempt is made to bind an existing entry.
- * @retval -1 If failures occur.
- */
- int trybind (const EXT_ID &ext_id,
- INT_ID &int_id);
-
- /**
- * Locate <ext_id> and pass out parameter via <int_id>.
- * @retval 0 If found.
- * @retval -1 If not found.
- */
- int find (const EXT_ID &ext_id,
- INT_ID &int_id) const;
-
- /// Returns 0 if the <ext_id> is in the mapping, otherwise -1.
- int find (const EXT_ID &ext_id) const;
-
- /**
- * Unbind (remove) the <ext_id> from the map. Don't return the
- * <int_id> to the caller (this is useful for collections where the
- * <int_id>s are *not* dynamically allocated...) Returns 0 if
- * successful, else -1.
- */
- int unbind (const EXT_ID &ext_id);
-
- /**
- * Break any association of <ext_id>. Returns the value of <int_id>
- * in case the caller needs to deallocate memory. Returns 0 if
- * successful, else -1.
- */
- int unbind (const EXT_ID &ext_id,
- INT_ID &int_id);
-
- /**
- * Unbind all entires.
- */
- void unbind_all (void);
-
- /// Return the current size of the map.
- size_t current_size (void) const;
-
- /// Return the total size of the map.
- size_t total_size (void) const;
-
- /**
- * Returns a reference to the underlying <ACE_LOCK>. This makes it
- * possible to acquire the lock explicitly, which can be useful in
- * some cases if you instantiate the <ACE_Atomic_Op> with an
- * <ACE_Recursive_Mutex> or <ACE_Process_Mutex>, or if you need to
- * guard the state of an iterator. NOTE: the right name would be
- * <lock>, but HP/C++ will choke on that!
- */
- ACE_LOCK &mutex (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iterator factory functions.
-
- /// Return forward iterator.
- ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> begin (void);
- ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> end (void);
-
- /// Return reverse iterator.
- ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> rbegin (void);
- ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> rend (void);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
-
- // = The following methods do the actual work.
-
- // These methods assume that the locks are held by the private
- // methods.
-
- /// Performs the binding of <ext_id> to <int_id>. Must be called
- /// with locks held.
- int bind_i (const EXT_ID &ext_id,
- const INT_ID &int_id);
-
- /// Bind an entry (without finding first). Must be called with locks
- /// held.
- int shared_bind (const EXT_ID &ext_id,
- const INT_ID &int_id);
-
- /// Performs a rebinding of <ext_it> to <int_id>. Also, recovers old
- /// values. Must be called with locks held.
- int rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id);
-
- /// Performs a rebinding of <ext_it> to <int_id>. Also, recovers old
- /// values. Must be called with locks held.
- int rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id);
-
- /// Performs a rebinding of <ext_it> to <int_id>. Must be called
- /// with locks held.
- int rebind_i (const EXT_ID &ext_id,
- const INT_ID &int_id);
-
- /// Performs a conditional bind of <int_id> using <ext_id> as the
- /// key. Must be called with locks held.
- int trybind_i (const EXT_ID &ext_id,
- INT_ID &int_id);
-
- /// Performs a find of <int_id> using <ext_id> as the key. Must be
- /// called with locks held.
- int find_i (const EXT_ID &ext_id,
- INT_ID &int_id);
-
- /// Performs a find using <ext_id> as the key. Must be called with
- /// locks held.
- int find_and_return_index (const EXT_ID &ext_id,
- ACE_UINT32 &slot);
-
- /// Performs an unbind of <int_id> using <ext_id> as the key. Must
- /// be called with locks held.
- int unbind_i (const EXT_ID &ext_id,
- INT_ID &int_id);
-
- /// Performs an unbind using <ext_id> as the key. Must be called
- /// with locks held.
- int unbind_i (const EXT_ID &ext_id);
-
- /// Performs an unbind using <ext_id> as the key. Must be called
- /// with locks held.
- int unbind_and_return_index (const EXT_ID &ext_id,
- ACE_UINT32 &slot);
-
- /// Unbind <slot>.
- void unbind_slot (ACE_UINT32 slot);
-
- /// Resize the map. Must be called with locks held.
- int resize_i (ACE_UINT32 size);
-
- /// Close down a <Map_Manager>. Must be called with locks held.
- int close_i (void);
-
- /// Returns 1 if <id1> == <id2>, else 0. This is defined as a
- /// separate method to facilitate template specialization.
- int equal (const EXT_ID &id1, const EXT_ID &id2);
-
- /// This function returns the new size of the Map Manager. This
- /// function is called when we run out of room and need to resize.
- ACE_UINT32 new_size (void);
-
- /// Explicitly call the destructors and free up the
- /// <search_structure_>.
- void free_search_structure (void);
-
- /// Id of the free list sentinel.
- ACE_UINT32 free_list_id (void) const;
-
- /// Id of the occupied list sentinel.
- ACE_UINT32 occupied_list_id (void) const;
-
- /// Finds the next free slot.
- int next_free (ACE_UINT32 &slot);
-
- /// Move from free list to occupied list.
- void move_from_free_list_to_occupied_list (ACE_UINT32 slot);
-
- /// Move from occupied list to free list.
- void move_from_occupied_list_to_free_list (ACE_UINT32 slot);
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
- /**
- * In the case of lazy map managers, the movement of free slots from
- * the occupied list to the free list is delayed until we run out of
- * free slots in the free list. This function goes through the
- * entire occupied list, moving free slots to the free list.
- */
- void move_all_free_slots_from_occupied_list (void);
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- /// Move helper.
- void shared_move (ACE_UINT32 slot,
- ACE_Map_Entry<EXT_ID, INT_ID> &current_list,
- ACE_UINT32 current_list_id,
- ACE_Map_Entry<EXT_ID, INT_ID> &new_list,
- ACE_UINT32 new_list_id);
-
- /// Pointer to a memory allocator.
- ACE_Allocator *allocator_;
-
- /// Synchronization variable for the MT_SAFE <ACE_Map_Manager>.
- ACE_LOCK lock_;
-
- /// Implement the Map as a resizeable array of <ACE_Map_Entry>.
- ACE_Map_Entry<EXT_ID, INT_ID> *search_structure_;
-
- /// Total number of elements in this->search_structure_.
- ACE_UINT32 total_size_;
-
- /// Current size of the map.
- ACE_UINT32 cur_size_;
-
- /// Free list.
- ACE_Map_Entry<EXT_ID, INT_ID> free_list_;
-
- /// Occupied list.
- ACE_Map_Entry<EXT_ID, INT_ID> occupied_list_;
-
- enum
- {
- /// Grow map exponentially up to 64K
- MAX_EXPONENTIAL = 64 * 1024,
-
- /// Afterwards grow in chunks of 32K
- LINEAR_INCREASE = 32 * 1024
- };
-
-private:
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Map_Manager (const ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &))
-};
-
-/**
- * @class ACE_Map_Iterator_Base
- *
- * @brief Iterator for the ACE_Map_Manager.
- *
- * This class factors out common code from its templatized
- * subclasses.
- */
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Map_Iterator_Base
-{
-public:
- // = Initialization method.
- /// Contructor. If head != 0, the iterator constructed is positioned
- /// at the head of the map, it is positioned at the end otherwise.
- ACE_Map_Iterator_Base (ACE_Map_Manager <EXT_ID, INT_ID, ACE_LOCK> &mm);
-
- // = Iteration methods.
-
- /// Pass back the next <entry> that hasn't been seen in the Set.
- /// Returns 0 when all items have been seen, else 1.
- int next (ACE_Map_Entry<EXT_ID, INT_ID> *&next_entry) const;
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Returns a reference to the interal element <this> is pointing to.
- ACE_Map_Entry<EXT_ID, INT_ID>& operator* (void) const;
-
- /// Returns reference the Map_Manager that is being iterated
- /// over.
- ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>& map (void);
-
- /// Check if two iterators point to the same position
- int operator== (const ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK> &) const;
- int operator!= (const ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK> &) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Move forward by one element in the set. Returns 0 when there's
- /// no more item in the set after the current items, else 1.
- int forward_i (void);
-
- /// Move backware by one element in the set. Returns 0 when there's
- /// no more item in the set before the current item, else 1.
- int reverse_i (void);
-
- /// Dump the state of an object.
- void dump_i (void) const;
-
- /// Map we are iterating over.
- ACE_Map_Manager <EXT_ID, INT_ID, ACE_LOCK> *map_man_;
-
- /// Keeps track of how far we've advanced...
- ACE_UINT32 next_;
-};
-
-/**
- * @class ACE_Map_Const_Iterator_Base
- *
- * @brief Const iterator for the ACE_Map_Manager.
- *
- * This class factors out common code from its templatized
- * subclasses.
- */
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Map_Const_Iterator_Base
-{
-public:
- // = Initialization method.
- /// Contructor. If head != 0, the iterator constructed is positioned
- /// at the head of the map, it is positioned at the end otherwise.
- ACE_Map_Const_Iterator_Base (const ACE_Map_Manager <EXT_ID, INT_ID, ACE_LOCK> &mm);
-
- // = Iteration methods.
-
- /// Pass back the next <entry> that hasn't been seen in the Set.
- /// Returns 0 when all items have been seen, else 1.
- int next (ACE_Map_Entry<EXT_ID, INT_ID> *&next_entry) const;
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Returns a reference to the interal element <this> is pointing to.
- ACE_Map_Entry<EXT_ID, INT_ID>& operator* (void) const;
-
- /// Returns reference the Map_Manager that is being iterated
- /// over.
- const ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>& map (void) const;
-
- /// Check if two iterators point to the same position
- int operator== (const ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK> &) const;
- int operator!= (const ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK> &) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Move forward by one element in the set. Returns 0 when there's
- /// no more item in the set after the current items, else 1.
- int forward_i (void);
-
- /// Move backware by one element in the set. Returns 0 when there's
- /// no more item in the set before the current item, else 1.
- int reverse_i (void);
-
- /// Dump the state of an object.
- void dump_i (void) const;
-
- /// Map we are iterating over.
- const ACE_Map_Manager <EXT_ID, INT_ID, ACE_LOCK> *map_man_;
-
- /// Keeps track of how far we've advanced...
- ACE_UINT32 next_;
-};
-
-/**
- * @class ACE_Map_Iterator
- *
- * @brief Forward iterator for the ACE_Map_Manager.
- *
- * This class does not perform any internal locking of the
- * <ACE_Map_Manager> it is iterating upon since locking is
- * inherently inefficient and/or error-prone within an STL-style
- * iterator. If you require locking, you can explicitly use an
- * <ACE_Guard> or <ACE_Read_Guard> on the <ACE_Map_Manager>'s
- * internal lock, which is accessible via its <mutex> method.
- */
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Map_Iterator : public ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>
-{
-public:
- // = Initialization method.
- ACE_Map_Iterator (ACE_Map_Manager <EXT_ID, INT_ID, ACE_LOCK> &mm,
- int pass_end = 0);
-
- // = Iteration methods.
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iteration, compare, and reference functions.
-
- /// Prefix advance.
- ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> &operator++ (void);
-
- /// Postfix advance.
- ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> operator++ (int);
-
- /// Prefix reverse.
- ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> &operator-- (void);
-
- /// Postfix reverse.
- ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> operator-- (int);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_Map_Const_Iterator
- *
- * @brief Forward const iterator for the ACE_Map_Manager.
- *
- * This class does not perform any internal locking of the
- * <ACE_Map_Manager> it is iterating upon since locking is
- * inherently inefficient and/or error-prone within an STL-style
- * iterator. If you require locking, you can explicitly use an
- * <ACE_Guard> or <ACE_Read_Guard> on the <ACE_Map_Manager>'s
- * internal lock, which is accessible via its <mutex> method.
- */
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Map_Const_Iterator : public ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>
-{
-public:
- // = Initialization method.
- ACE_Map_Const_Iterator (const ACE_Map_Manager <EXT_ID, INT_ID, ACE_LOCK> &mm,
- int pass_end = 0);
-
- // = Iteration methods.
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iteration, compare, and reference functions.
-
- /// Prefix advance.
- ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> &operator++ (void);
-
- /// Postfix advance.
- ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> operator++ (int);
-
- /// Prefix reverse.
- ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> &operator-- (void);
-
- /// Postfix reverse.
- ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> operator-- (int);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_Map_Reverse_Iterator
- *
- * @brief Reverse Iterator for the <ACE_Map_Manager>.
- *
- * This class does not perform any internal locking of the
- * <ACE_Map_Manager> it is iterating upon since locking is
- * inherently inefficient and/or error-prone within an STL-style
- * iterator. If you require locking, you can explicitly use an
- * <ACE_Guard> or <ACE_Read_Guard> on the <ACE_Map_Manager>'s
- * internal lock, which is accessible via its <mutex> method.
- */
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-class ACE_Map_Reverse_Iterator : public ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>
-{
-public:
- // = Initialization method.
- ACE_Map_Reverse_Iterator (ACE_Map_Manager <EXT_ID, INT_ID, ACE_LOCK> &mm,
- int pass_end = 0);
-
- // = Iteration methods.
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iteration, compare, and reference functions.
-
- /// Prefix reverse.
- ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> &operator++ (void);
-
- /// Postfix reverse.
- ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> operator++ (int);
-
- /// Prefix advance.
- ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> &operator-- (void);
-
- /// Postfix advance.
- ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> operator-- (int);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Map_Manager.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Map_Manager.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Map_Manager.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_MAP_MANAGER_H */
diff --git a/ace/Map_Manager.i b/ace/Map_Manager.i
deleted file mode 100644
index ba2a672b2e8..00000000000
--- a/ace/Map_Manager.i
+++ /dev/null
@@ -1,713 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-# if ! defined (ACE_HAS_BROKEN_NOOP_DTORS)
-template <class EXT_ID, class INT_ID> ACE_INLINE
-ACE_Map_Entry<EXT_ID, INT_ID>::~ACE_Map_Entry (void)
-{
- // No-op just to keep some compilers happy...
-}
-#endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */
-
-template <class EXT_ID, class INT_ID> ACE_INLINE ACE_UINT32
-ACE_Map_Entry<EXT_ID, INT_ID>::next (void) const
-{
- return this->next_;
-}
-
-template <class EXT_ID, class INT_ID> ACE_INLINE void
-ACE_Map_Entry<EXT_ID, INT_ID>::next (ACE_UINT32 n)
-{
- this->next_ = n;
-}
-
-template <class EXT_ID, class INT_ID> ACE_INLINE ACE_UINT32
-ACE_Map_Entry<EXT_ID, INT_ID>::prev (void) const
-{
- return this->prev_;
-}
-
-template <class EXT_ID, class INT_ID> ACE_INLINE void
-ACE_Map_Entry<EXT_ID, INT_ID>::prev (ACE_UINT32 p)
-{
- this->prev_ = p;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::ACE_Map_Manager (size_t size,
- ACE_Allocator *alloc)
- : allocator_ (0),
- search_structure_ (0),
- total_size_ (0),
- cur_size_ (0)
-{
- if (this->open (size, alloc) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("ACE_Map_Manager\n")));
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::ACE_Map_Manager (ACE_Allocator *alloc)
- : allocator_ (0),
- search_structure_ (0),
- total_size_ (0),
- cur_size_ (0)
-{
- if (this->open (ACE_DEFAULT_MAP_SIZE, alloc) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("ACE_Map_Manager\n")));
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::close (void)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->close_i ();
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::~ACE_Map_Manager (void)
-{
- this->close ();
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::bind (const EXT_ID &ext_id,
- const INT_ID &int_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->bind_i (ext_id,
- int_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->rebind_i (ext_id,
- int_id,
- old_ext_id,
- old_int_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->rebind_i (ext_id,
- int_id,
- old_int_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->rebind_i (ext_id,
- int_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::trybind (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->trybind_i (ext_id,
- int_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::find (const EXT_ID &ext_id) const
-{
- ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> *nc_this =
- (ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> *) this;
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1);
-
- ACE_UINT32 slot = 0;
- return nc_this->find_and_return_index (ext_id, slot);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::find (const EXT_ID &ext_id,
- INT_ID &int_id) const
-{
- ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> *nc_this =
- (ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> *) this;
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1);
-
- return nc_this->find_i (ext_id, int_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::unbind_i (const EXT_ID &ext_id)
-{
- // Unbind the entry.
- ACE_UINT32 slot = 0;
- return this->unbind_and_return_index (ext_id,
- slot);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::unbind (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->unbind_i (ext_id,
- int_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::unbind (const EXT_ID &ext_id)
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
- return this->unbind_i (ext_id);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE size_t
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::current_size (void) const
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, ACE_const_cast (ACE_LOCK &, this->lock_), ACE_static_cast (size_t, -1));
- return this->cur_size_;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE size_t
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::total_size (void) const
-{
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, ACE_const_cast (ACE_LOCK &, this->lock_), ACE_static_cast (size_t, -1));
- return this->total_size_;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE ACE_LOCK &
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::mutex (void)
-{
- return this->lock_;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE void
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::move_from_free_list_to_occupied_list (ACE_UINT32 slot)
-{
- this->shared_move (slot,
- this->free_list_,
- this->free_list_id (),
- this->occupied_list_,
- this->occupied_list_id ());
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE void
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::move_from_occupied_list_to_free_list (ACE_UINT32 slot)
-{
- this->shared_move (slot,
- this->occupied_list_,
- this->occupied_list_id (),
- this->free_list_,
- this->free_list_id ());
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::equal (const EXT_ID &id1,
- const EXT_ID &id2)
-{
- return id1 == id2;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE ACE_UINT32
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::free_list_id (void) const
-{
- // If you change ~0, please change
- // ACE_Active_Map_Manager_Key::ACE_Active_Map_Manager_Key()
- // accordingly.
- return (ACE_UINT32) ~0;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE ACE_UINT32
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::occupied_list_id (void) const
-{
- return (ACE_UINT32) ~1;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::begin (void)
-{
- return ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> (*this);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::end (void)
-{
- return ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> (*this, 1);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::rbegin (void)
-{
- return ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> (*this);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::rend (void)
-{
- return ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> (*this, 1);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::ACE_Map_Iterator_Base (ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm)
- : map_man_ (&mm),
- next_ (this->map_man_->occupied_list_id ())
-{
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::next (ACE_Map_Entry<EXT_ID, INT_ID> *&mm) const
-{
- if (this->next_ != this->map_man_->occupied_list_id ())
- {
- mm = &this->map_man_->search_structure_[this->next_];
- return 1;
- }
- else
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::done (void) const
-{
- return this->next_ == this->map_man_->occupied_list_id ();
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::forward_i (void)
-{
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
- while (1)
- {
- // Go to the next item in the list.
- this->next_ = this->map_man_->search_structure_[this->next_].next ();
-
- // Stop if we reach the end.
- if (this->done ())
- break;
-
- // Break if we find a non-free slot.
- if (!this->map_man_->search_structure_[this->next_].free_)
- {
- break;
- }
- }
-
-#else
-
- this->next_ = this->map_man_->search_structure_[this->next_].next ();
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- return this->next_ != this->map_man_->occupied_list_id ();
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::reverse_i (void)
-{
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
- while (1)
- {
- // Go to the prev item in the list.
- this->next_ = this->map_man_->search_structure_[this->next_].prev ();
-
- // Stop if we reach the end.
- if (this->done ())
- break;
-
- // Break if we find a non-free slot.
- if (!this->map_man_->search_structure_[this->next_].free_)
- {
- break;
- }
- }
-
-#else
-
- this->next_ = this->map_man_->search_structure_[this->next_].prev ();
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- return this->next_ != this->map_man_->occupied_list_id ();
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &
-ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::map (void)
-{
- return *this->map_man_;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::operator== (const ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK> &rhs) const
-{
- return (this->map_man_ == rhs.map_man_ &&
- this->next_ == rhs.next_);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::operator!= (const ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK> &rhs) const
-{
- return !this->operator== (rhs);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::ACE_Map_Const_Iterator_Base (const ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm)
- : map_man_ (&mm),
- next_ (this->map_man_->occupied_list_id ())
-{
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::next (ACE_Map_Entry<EXT_ID, INT_ID> *&mm) const
-{
- if (this->next_ != this->map_man_->occupied_list_id ())
- {
- mm = &this->map_man_->search_structure_[this->next_];
- return 1;
- }
- else
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::done (void) const
-{
- return this->next_ == this->map_man_->occupied_list_id ();
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::forward_i (void)
-{
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
- while (1)
- {
- // Go to the next item in the list.
- this->next_ = this->map_man_->search_structure_[this->next_].next ();
-
- // Stop if we reach the end.
- if (this->done ())
- break;
-
- // Break if we find a non-free slot.
- if (!this->map_man_->search_structure_[this->next_].free_)
- {
- break;
- }
- }
-
-#else
-
- this->next_ = this->map_man_->search_structure_[this->next_].next ();
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- return this->next_ != this->map_man_->occupied_list_id ();
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::reverse_i (void)
-{
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
- while (1)
- {
- // Go to the prev item in the list.
- this->next_ = this->map_man_->search_structure_[this->next_].prev ();
-
- // Stop if we reach the end.
- if (this->done ())
- break;
-
- // Break if we find a non-free slot.
- if (!this->map_man_->search_structure_[this->next_].free_)
- {
- break;
- }
- }
-
-#else
-
- this->next_ = this->map_man_->search_structure_[this->next_].prev ();
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- return this->next_ != this->map_man_->occupied_list_id ();
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-const ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &
-ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::map (void) const
-{
- return *this->map_man_;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::operator== (const ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK> &rhs) const
-{
- return (this->map_man_ == rhs.map_man_ &&
- this->next_ == rhs.next_);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::operator!= (const ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK> &rhs) const
-{
- return !this->operator== (rhs);
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Map_Iterator (ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm,
- int pass_end)
- : ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK> (mm)
-{
- if (!pass_end)
- {
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
- // Start here.
- this->next_ = this->map_man_->occupied_list_.next ();
-
- while (1)
- {
- // Stop if we reach the end.
- if (this->done ())
- break;
-
- // Break if we find a non-free slot.
- if (!this->map_man_->search_structure_[this->next_].free_)
- {
- break;
- }
-
- // Go to the next item in the list.
- this->next_ = this->map_man_->search_structure_[this->next_].next ();
- }
-
-#else
-
- this->next_ = this->map_man_->occupied_list_.next ();
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- }
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>::advance (void)
-{
- return this->forward_i ();
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> &
-ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator++ (void)
-{
- this->forward_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>
-ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator++ (int)
-{
- ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> retv (*this);
- ++*this;
- return retv;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> &
-ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator-- (void)
-{
- this->reverse_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>
-ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator-- (int)
-{
- ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> retv (*this);
- --*this;
- return retv;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Map_Const_Iterator (const ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm,
- int pass_end)
- : ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK> (mm)
-{
- if (!pass_end)
- {
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
- // Start here.
- this->next_ = this->map_man_->occupied_list_.next ();
-
- while (1)
- {
- // Stop if we reach the end.
- if (this->done ())
- break;
-
- // Break if we find a non-free slot.
- if (!this->map_man_->search_structure_[this->next_].free_)
- {
- break;
- }
-
- // Go to the next item in the list.
- this->next_ = this->map_man_->search_structure_[this->next_].next ();
- }
-
-#else
-
- this->next_ = this->map_man_->occupied_list_.next ();
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
- }
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>::advance (void)
-{
- return this->forward_i ();
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> &
-ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator++ (void)
-{
- this->forward_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>
-ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator++ (int)
-{
- ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> retv (*this);
- ++*this;
- return retv;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> &
-ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator-- (void)
-{
- this->reverse_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>
-ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator-- (int)
-{
- ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> retv (*this);
- --*this;
- return retv;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Map_Reverse_Iterator (ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm,
- int pass_end)
- : ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK> (mm)
-{
- if (!pass_end)
- {
-
-#if defined (ACE_HAS_LAZY_MAP_MANAGER)
-
- // Start here.
- this->next_ = this->map_man_->occupied_list_.prev ();
-
- while (1)
- {
- // Stop if we reach the end.
- if (this->done ())
- break;
-
- // Break if we find a non-free slot.
- if (!this->map_man_->search_structure_[this->next_].free_)
- {
- break;
- }
-
- // Go to the prev item in the list.
- this->next_ = this->map_man_->search_structure_[this->next_].prev ();
- }
-
-#else
-
- this->next_ = this->map_man_->occupied_list_.prev ();
-
-#endif /* ACE_HAS_LAZY_MAP_MANAGER */
-
-}
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE int
-ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::advance (void)
-{
- return this->reverse_i ();
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> &
-ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator++ (void)
-{
- this->reverse_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>
-ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator++ (int)
-{
- ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> retv (*this);
- ++*this;
- return retv;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> &
-ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator-- (void)
-{
- this->forward_i ();
- return *this;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
-ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>
-ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator-- (int)
-{
- ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> retv (*this);
- --*this;
- return retv;
-}
diff --git a/ace/Map_T.cpp b/ace/Map_T.cpp
deleted file mode 100644
index e2329089630..00000000000
--- a/ace/Map_T.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-// $Id$
-
-#ifndef ACE_MAP_T_C
-#define ACE_MAP_T_C
-
-#include "ace/Map_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Map_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Map_T, "$Id$")
-
-#endif /* ACE_MAP_T_C */
diff --git a/ace/Map_T.h b/ace/Map_T.h
deleted file mode 100644
index 585cbc91ff8..00000000000
--- a/ace/Map_T.h
+++ /dev/null
@@ -1,1601 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Map_T.h
- *
- * $Id$
- *
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_MAP_T_H
-#define ACE_MAP_T_H
-#include "ace/pre.h"
-
-#include "ace/Pair_T.h"
-#include "ace/Map_Manager.h"
-#include "ace/Hash_Map_Manager_T.h"
-#include "ace/Active_Map_Manager.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Noop_Key_Generator
- *
- * @brief Defines a noop key generator.
- */
-template <class T>
-class ACE_Noop_Key_Generator
-{
-public:
-
- /// Functor method: generates a new key.
- int operator () (T &);
-};
-
-/**
- * @class ACE_Incremental_Key_Generator
- *
- * @brief Defines a simple incremental key generator.
- *
- * Generates a new key of type T by incrementing current
- * value. Requirements on T are:
- * - Constructor that accepts 0 in the constructor.
- * - Prefix increment.
- * - Assignment.
- * Note that a primitive types such as u_long, int, etc., are
- * suitable for this class.
- */
-template <class T>
-class ACE_Incremental_Key_Generator
-{
-public:
-
- /// Constructor.
- ACE_Incremental_Key_Generator (void);
-
- /// Functor method: generates a new key.
- int operator () (T &t);
-
- /// Returns the current value.
- const T& current_value (void) const;
-
-protected:
-
- /// Current value.
- T t_;
-};
-
-/**
- * @class ACE_Iterator_Impl
- *
- * @brief Defines a abstract iterator.
- *
- * Implementation to be provided by subclasses.
- */
-template <class T>
-class ACE_Iterator_Impl
-{
-public:
-
- /// Destructor.
- virtual ~ACE_Iterator_Impl (void);
-
- /// Clone.
- virtual ACE_Iterator_Impl<T> *clone (void) const = 0;
-
- /// Comparison.
- virtual int compare (const ACE_Iterator_Impl<T> &rhs) const = 0;
-
- /// Dereference.
- virtual T dereference (void) const = 0;
-
- /// Advance.
- virtual void plus_plus (void) = 0;
-
- /// Reverse.
- virtual void minus_minus (void) = 0;
-};
-
-/**
- * @class ACE_Reverse_Iterator_Impl
- *
- * @brief Defines a abstract reverse iterator.
- *
- * Implementation to be provided by subclasses.
- */
-template <class T>
-class ACE_Reverse_Iterator_Impl
-{
-public:
-
- /// Destructor.
- virtual ~ACE_Reverse_Iterator_Impl (void);
-
- /// Clone.
- virtual ACE_Reverse_Iterator_Impl<T> *clone (void) const = 0;
-
- /// Comparison.
- virtual int compare (const ACE_Reverse_Iterator_Impl<T> &rhs) const = 0;
-
- /// Dereference.
- virtual T dereference (void) const = 0;
-
- /// Advance.
- virtual void plus_plus (void) = 0;
-
- /// Reverse.
- virtual void minus_minus (void) = 0;
-};
-
-/**
- * @class ACE_Iterator
- *
- * @brief Defines the iterator interface.
- *
- * Implementation to be provided by forwarding.
- */
-template <class T>
-class ACE_Iterator
-{
-public:
-
- // = Traits.
- typedef T value_type;
- typedef ACE_Iterator_Impl<T> implementation;
-
- /// Constructor.
- ACE_Iterator (ACE_Iterator_Impl<T> *impl);
-
- /// Copy constructor.
- ACE_Iterator (const ACE_Iterator<T> &rhs);
-
- /// Destructor.
- ~ACE_Iterator (void);
-
- /// Assignment operator.
- ACE_Iterator<T> &operator= (const ACE_Iterator<T> &rhs);
-
- /// Comparison operators.
- int operator== (const ACE_Iterator<T> &rhs) const;
- int operator!= (const ACE_Iterator<T> &rhs) const;
-
- /// Dereference operator.
- T operator *() const;
-
- /// Prefix advance.
- ACE_Iterator<T> &operator++ (void);
-
- /// Postfix advance.
- ACE_Iterator<T> operator++ (int);
-
- /// Prefix reverse.
- ACE_Iterator<T> &operator-- (void);
-
- /// Postfix reverse.
- ACE_Iterator<T> operator-- (int);
-
- /// Accessor to implementation object.
- ACE_Iterator_Impl<T> &impl (void);
-
-protected:
-
- /// Implementation pointer.
- ACE_Iterator_Impl<T> *implementation_;
-};
-
-/**
- * @class ACE_Reverse_Iterator
- *
- * @brief Defines the reverse iterator interface.
- *
- * Implementation to be provided by forwarding.
- */
-template <class T>
-class ACE_Reverse_Iterator
-{
-public:
-
- // = Traits.
- typedef T value_type;
- typedef ACE_Reverse_Iterator_Impl<T> implementation;
-
- /// Constructor.
- ACE_Reverse_Iterator (ACE_Reverse_Iterator_Impl<T> *impl);
-
- /// Copy constructor.
- ACE_Reverse_Iterator (const ACE_Reverse_Iterator<T> &rhs);
-
- /// Destructor.
- ~ACE_Reverse_Iterator (void);
-
- /// Assignment operator.
- ACE_Reverse_Iterator<T> &operator= (const ACE_Reverse_Iterator<T> &rhs);
-
- /// Comparison operators.
- int operator== (const ACE_Reverse_Iterator<T> &rhs) const;
- int operator!= (const ACE_Reverse_Iterator<T> &rhs) const;
-
- /// Dereference operator.
- T operator *() const;
-
- /// Prefix advance.
- ACE_Reverse_Iterator<T> &operator++ (void);
-
- /// Postfix advance.
- ACE_Reverse_Iterator<T> operator++ (int);
-
- /// Prefix reverse.
- ACE_Reverse_Iterator<T> &operator-- (void);
-
- /// Postfix reverse.
- ACE_Reverse_Iterator<T> operator-- (int);
-
- /// Accessor to implementation object.
- ACE_Reverse_Iterator_Impl<T> &impl (void);
-
-protected:
-
- /// Implementation pointer.
- ACE_Reverse_Iterator_Impl<T> *implementation_;
-};
-
-/**
- * @class ACE_Map
- *
- * @brief Defines a map interface.
- *
- * Implementation to be provided by subclasses.
- */
-template <class KEY, class VALUE>
-class ACE_Map
-{
-public:
-
- // = Traits.
- typedef KEY
- key_type;
- typedef VALUE
- mapped_type;
- typedef ACE_Reference_Pair<const KEY, VALUE>
- value_type;
- typedef ACE_Iterator<value_type>
- iterator;
- typedef ACE_Reverse_Iterator<value_type>
- reverse_iterator;
- typedef ACE_Iterator_Impl<value_type>
- iterator_implementation;
- typedef ACE_Reverse_Iterator_Impl<value_type>
- reverse_iterator_implementation;
-
- /// Close down and release dynamically allocated resources.
- virtual ~ACE_Map (void);
-
- /// Initialize a <Map> with size <length>.
- virtual int open (size_t length = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0) = 0;
-
- /// Close down a <Map> and release dynamically allocated resources.
- virtual int close (void) = 0;
-
- /**
- * Add <key>/<value> pair to the map. If <key> is already in the
- * map then no changes are made and 1 is returned. Returns 0 on a
- * successful addition. This function fails for maps that do not
- * allow user specified keys. <key> is an "in" parameter.
- */
- virtual int bind (const KEY &key,
- const VALUE &value) = 0;
-
- /**
- * Add <key>/<value> pair to the map. <key> is an "inout" parameter
- * and maybe modified/extended by the map to add additional
- * information. To recover original key, call the <recover_key>
- * method.
- */
- virtual int bind_modify_key (const VALUE &value,
- KEY &key) = 0;
-
- /**
- * Produce a key and return it through <key> which is an "out"
- * parameter. For maps that do not naturally produce keys, the map
- * adapters will use the <KEY_GENERATOR> class to produce a key.
- * However, the users are responsible for not jeopardizing this key
- * production scheme by using user specified keys with keys produced
- * by the key generator.
- */
- virtual int create_key (KEY &key) = 0;
-
- /**
- * Add <value> to the map, and the corresponding key produced by the
- * Map is returned through <key> which is an "out" parameter. For
- * maps that do not naturally produce keys, the map adapters will
- * use the <KEY_GENERATOR> class to produce a key. However, the
- * users are responsible for not jeopardizing this key production
- * scheme by using user specified keys with keys produced by the key
- * generator.
- */
- virtual int bind_create_key (const VALUE &value,
- KEY &key) = 0;
-
- /**
- * Add <value> to the map. The user does not care about the
- * corresponding key produced by the Map. For maps that do not
- * naturally produce keys, the map adapters will use the
- * <KEY_GENERATOR> class to produce a key. However, the users are
- * responsible for not jeopardizing this key production scheme by
- * using user specified keys with keys produced by the key
- * generator.
- */
- virtual int bind_create_key (const VALUE &value) = 0;
-
- /// Recovers the original key potentially modified by the map during
- /// <bind_modify_key>.
- virtual int recover_key (const KEY &modified_key,
- KEY &original_key) = 0;
-
- /**
- * Reassociate <key> with <value>. The function fails if <key> is
- * not in the map for maps that do not allow user specified keys.
- * However, for maps that allow user specified keys, if the key is
- * not in the map, a new <key>/<value> association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value) = 0;
-
- /**
- * Reassociate <key> with <value>, storing the old value into the
- * "out" parameter <old_value>. The function fails if <key> is not
- * in the map for maps that do not allow user specified keys.
- * However, for maps that allow user specified keys, if the key is
- * not in the map, a new <key>/<value> association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value) = 0;
-
- /**
- * Reassociate <key> with <value>, storing the old key and value
- * into the "out" parameters <old_key> and <old_value>. The
- * function fails if <key> is not in the map for maps that do not
- * allow user specified keys. However, for maps that allow user
- * specified keys, if the key is not in the map, a new <key>/<value>
- * association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value) = 0;
-
- /**
- * Associate <key> with <value> if and only if <key> is not in the
- * map. If <key> is already in the map, then the <value> parameter
- * is overwritten with the existing value in the map. Returns 0 if a
- * new <key>/<value> association is created. Returns 1 if an
- * attempt is made to bind an existing entry. This function fails
- * for maps that do not allow user specified keys.
- */
- virtual int trybind (const KEY &key,
- VALUE &value) = 0;
-
- /// Locate <value> associated with <key>.
- virtual int find (const KEY &key,
- VALUE &value) = 0;
-
- /// Is <key> in the map?
- virtual int find (const KEY &key) = 0;
-
- /// Remove <key> from the map.
- virtual int unbind (const KEY &key) = 0;
-
- /// Remove <key> from the map, and return the <value> associated with
- /// <key>.
- virtual int unbind (const KEY &key,
- VALUE &value) = 0;
-
- /// Return the current size of the map.
- virtual size_t current_size (void) const = 0;
-
- /// Return the total size of the map.
- virtual size_t total_size (void) const = 0;
-
- /// Dump the state of an object.
- virtual void dump (void) const = 0;
-
- // = STL styled iterator factory functions.
-
- /// Return forward iterator.
- iterator begin (void);
- iterator end (void);
-
- /// Return reverse iterator.
- reverse_iterator rbegin (void);
- reverse_iterator rend (void);
-
-protected:
-
- // = Protected no-op constructor.
- ACE_Map (void);
-
- /// Return forward iterator.
- virtual ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *begin_impl (void) = 0;
- virtual ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *end_impl (void) = 0;
-
- /// Return reverse iterator.
- virtual ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *rbegin_impl (void) = 0;
- virtual ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *rend_impl (void) = 0;
-
-private:
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Map<KEY, VALUE> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Map (const ACE_Map<KEY, VALUE> &))
-};
-
-/**
- * @class ACE_Map_Impl_Iterator_Adapter
- *
- * @brief Defines a iterator implementation for the Map_Impl class.
- *
- * Implementation to be provided by <IMPLEMENTATION>.
- */
-template <class T, class IMPLEMENTATION, class ENTRY>
-class ACE_Map_Impl_Iterator_Adapter : public ACE_Iterator_Impl<T>
-{
-public:
-
- // = Traits.
- typedef IMPLEMENTATION
- implementation;
-
- /// Constructor.
- ACE_Map_Impl_Iterator_Adapter (const IMPLEMENTATION &impl);
-
- /// Destructor.
- virtual ~ACE_Map_Impl_Iterator_Adapter (void);
-
- /// Clone.
- virtual ACE_Iterator_Impl<T> *clone (void) const;
-
- /// Comparison.
- virtual int compare (const ACE_Iterator_Impl<T> &rhs) const;
-
- /// Dereference.
- virtual T dereference (void) const;
-
- /// Advance.
- virtual void plus_plus (void);
-
- /// Reverse.
- virtual void minus_minus (void);
-
- /// Accessor to implementation object.
- IMPLEMENTATION &impl (void);
-
-protected:
-
- /// All implementation details are forwarded to this class.
- IMPLEMENTATION implementation_;
-};
-
-/**
- * @class ACE_Map_Impl_Reverse_Iterator_Adapter
- *
- * @brief Defines a reverse iterator implementation for the Map_Impl class.
- *
- * Implementation to be provided by IMPLEMENTATION.
- */
-template <class T, class IMPLEMENTATION, class ENTRY>
-class ACE_Map_Impl_Reverse_Iterator_Adapter : public ACE_Reverse_Iterator_Impl<T>
-{
-public:
-
- // = Traits.
- typedef IMPLEMENTATION
- implementation;
-
- /// Constructor.
- ACE_Map_Impl_Reverse_Iterator_Adapter (const IMPLEMENTATION &impl);
-
- /// Destructor.
- virtual ~ACE_Map_Impl_Reverse_Iterator_Adapter (void);
-
- /// Clone.
- virtual ACE_Reverse_Iterator_Impl<T> *clone (void) const;
-
- /// Comparison.
- virtual int compare (const ACE_Reverse_Iterator_Impl<T> &rhs) const;
-
- /// Dereference.
- virtual T dereference (void) const;
-
- /// Advance.
- virtual void plus_plus (void);
-
- /// Reverse.
- virtual void minus_minus (void);
-
- /// Accessor to implementation object.
- IMPLEMENTATION &impl (void);
-
-protected:
-
- /// All implementation details are forwarded to this class.
- IMPLEMENTATION implementation_;
-};
-
-/**
- * @class ACE_Map_Impl
- *
- * @brief Defines a map implementation.
- *
- * Implementation to be provided by <IMPLEMENTATION>.
- */
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY>
-class ACE_Map_Impl : public ACE_Map<KEY, VALUE>
-{
-public:
-
- // = Traits.
- typedef ACE_Map_Impl_Iterator_Adapter<ACE_TYPENAME ACE_Map<KEY, VALUE>::value_type, ITERATOR, ENTRY>
- iterator_impl;
- typedef ACE_Map_Impl_Reverse_Iterator_Adapter<ACE_TYPENAME ACE_Map<KEY, VALUE>::value_type, REVERSE_ITERATOR, ENTRY>
- reverse_iterator_impl;
-
- typedef IMPLEMENTATION
- implementation;
-
- // = Initialization and termination methods.
- /// Initialize with the <ACE_DEFAULT_MAP_SIZE>.
- ACE_Map_Impl (ACE_Allocator *alloc = 0);
-
- /// Initialize with <size> entries. The <size> parameter is ignored
- /// by maps for which an initialize size does not make sense.
- ACE_Map_Impl (size_t size,
- ACE_Allocator *alloc = 0);
-
- /// Close down and release dynamically allocated resources.
- virtual ~ACE_Map_Impl (void);
-
- /// Initialize a <Map> with size <length>.
- virtual int open (size_t length = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- /// Close down a <Map> and release dynamically allocated resources.
- virtual int close (void);
-
- /**
- * Add <key>/<value> pair to the map. If <key> is already in the
- * map then no changes are made and 1 is returned. Returns 0 on a
- * successful addition. This function fails for maps that do not
- * allow user specified keys. <key> is an "in" parameter.
- */
- virtual int bind (const KEY &key,
- const VALUE &value);
-
- /**
- * Add <key>/<value> pair to the map. <key> is an "inout" parameter
- * and maybe modified/extended by the map to add additional
- * information. To recover original key, call the <recover_key>
- * method.
- */
- virtual int bind_modify_key (const VALUE &value,
- KEY &key);
-
- /**
- * Produce a key and return it through <key> which is an "out"
- * parameter. For maps that do not naturally produce keys, the map
- * adapters will use the <KEY_GENERATOR> class to produce a key.
- * However, the users are responsible for not jeopardizing this key
- * production scheme by using user specified keys with keys produced
- * by the key generator.
- */
- virtual int create_key (KEY &key);
-
- /**
- * Add <value> to the map, and the corresponding key produced by the
- * Map is returned through <key> which is an "out" parameter. For
- * maps that do not naturally produce keys, the map adapters will
- * use the <KEY_GENERATOR> class to produce a key. However, the
- * users are responsible for not jeopardizing this key production
- * scheme by using user specified keys with keys produced by the key
- * generator.
- */
- virtual int bind_create_key (const VALUE &value,
- KEY &key);
-
- /**
- * Add <value> to the map. The user does not care about the
- * corresponding key produced by the Map. For maps that do not
- * naturally produce keys, the map adapters will use the
- * <KEY_GENERATOR> class to produce a key. However, the users are
- * responsible for not jeopardizing this key production scheme by
- * using user specified keys with keys produced by the key
- * generator.
- */
- virtual int bind_create_key (const VALUE &value);
-
- /// Recovers the original key potentially modified by the map during
- /// <bind_modify_key>.
- virtual int recover_key (const KEY &modified_key,
- KEY &original_key);
-
- /**
- * Reassociate <key> with <value>. The function fails if <key> is
- * not in the map for maps that do not allow user specified keys.
- * However, for maps that allow user specified keys, if the key is
- * not in the map, a new <key>/<value> association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value);
-
- /**
- * Reassociate <key> with <value>, storing the old value into the
- * "out" parameter <old_value>. The function fails if <key> is not
- * in the map for maps that do not allow user specified keys.
- * However, for maps that allow user specified keys, if the key is
- * not in the map, a new <key>/<value> association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value);
-
- /**
- * Reassociate <key> with <value>, storing the old key and value
- * into the "out" parameters <old_key> and <old_value>. The
- * function fails if <key> is not in the map for maps that do not
- * allow user specified keys. However, for maps that allow user
- * specified keys, if the key is not in the map, a new <key>/<value>
- * association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value);
-
- /**
- * Associate <key> with <value> if and only if <key> is not in the
- * map. If <key> is already in the map, then the <value> parameter
- * is overwritten with the existing value in the map. Returns 0 if a
- * new <key>/<value> association is created. Returns 1 if an
- * attempt is made to bind an existing entry. This function fails
- * for maps that do not allow user specified keys.
- */
- virtual int trybind (const KEY &key,
- VALUE &value);
-
- /// Locate <value> associated with <key>.
- virtual int find (const KEY &key,
- VALUE &value);
-
- /// Is <key> in the map?
- virtual int find (const KEY &key);
-
- /// Remove <key> from the map.
- virtual int unbind (const KEY &key);
-
- /// Remove <key> from the map, and return the <value> associated with
- /// <key>.
- virtual int unbind (const KEY &key,
- VALUE &value);
-
- /// Return the current size of the map.
- virtual size_t current_size (void) const;
-
- /// Return the total size of the map.
- virtual size_t total_size (void) const;
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Accessor to implementation object.
- IMPLEMENTATION &impl (void);
-
-protected:
-
- /// All implementation details are forwarded to this class.
- IMPLEMENTATION implementation_;
-
- // = STL styled iterator factory functions.
-
- /// Return forward iterator.
- virtual ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *begin_impl (void);
- virtual ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *end_impl (void);
-
- /// Return reverse iterator.
- virtual ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *rbegin_impl (void);
- virtual ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *rend_impl (void);
-
-private:
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Map_Impl (const ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY> &))
-};
-
-/**
- * @class ACE_Active_Map_Manager_Iterator_Adapter
- *
- * @brief Defines a iterator implementation for the Active_Map_Manager_Adapter.
- *
- * Implementation to be provided by ACE_Active_Map_Manager::iterator.
- */
-template <class T, class VALUE>
-class ACE_Active_Map_Manager_Iterator_Adapter : public ACE_Iterator_Impl<T>
-{
-public:
-
- // = Traits.
- typedef ACE_TYPENAME ACE_Active_Map_Manager<VALUE>::iterator
- implementation;
-
- /// Constructor.
- ACE_Active_Map_Manager_Iterator_Adapter (const ACE_Map_Iterator<ACE_Active_Map_Manager_Key, VALUE, ACE_Null_Mutex> &impl);
-
- /// Destructor.
- virtual ~ACE_Active_Map_Manager_Iterator_Adapter (void);
-
- /// Clone.
- virtual ACE_Iterator_Impl<T> *clone (void) const;
-
- /// Comparison.
- virtual int compare (const ACE_Iterator_Impl<T> &rhs) const;
-
- /// Dereference.
- virtual T dereference (void) const;
-
- /// Advance.
- virtual void plus_plus (void);
-
- /// Reverse.
- virtual void minus_minus (void);
-
- /// Accessor to implementation object.
- ACE_Map_Iterator<ACE_Active_Map_Manager_Key, VALUE, ACE_Null_Mutex> &impl (void);
-
-protected:
-
- /// All implementation details are forwarded to this class.
- ACE_Map_Iterator<ACE_Active_Map_Manager_Key, VALUE, ACE_Null_Mutex> implementation_;
-};
-
-/**
- * @class ACE_Active_Map_Manager_Reverse_Iterator_Adapter
- *
- * @brief Defines a reverse iterator implementation for the Active_Map_Manager_Adapter.
- *
- * Implementation to be provided by ACE_Active_Map_Manager::reverse_iterator.
- */
-template <class T, class VALUE>
-class ACE_Active_Map_Manager_Reverse_Iterator_Adapter : public ACE_Reverse_Iterator_Impl<T>
-{
-public:
-
- // = Traits.
- typedef ACE_TYPENAME ACE_Active_Map_Manager<VALUE>::reverse_iterator
- implementation;
-
- /// Constructor.
- ACE_Active_Map_Manager_Reverse_Iterator_Adapter (const ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, VALUE, ACE_Null_Mutex> &impl);
-
- /// Destructor.
- virtual ~ACE_Active_Map_Manager_Reverse_Iterator_Adapter (void);
-
- /// Clone.
- virtual ACE_Reverse_Iterator_Impl<T> *clone (void) const;
-
- /// Comparison.
- virtual int compare (const ACE_Reverse_Iterator_Impl<T> &rhs) const;
-
- /// Dereference.
- virtual T dereference (void) const;
-
- /// Advance.
- virtual void plus_plus (void);
-
- /// Reverse.
- virtual void minus_minus (void);
-
- /// Accessor to implementation object.
- ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, VALUE, ACE_Null_Mutex> &impl (void);
-
-protected:
-
- /// All implementation details are forwarded to this class.
- ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, VALUE, ACE_Null_Mutex> implementation_;
-};
-
-/**
- * @class ACE_Active_Map_Manager_Adapter
- *
- * @brief Defines a map implementation.
- *
- * Implementation to be provided by <ACE_Active_Map_Manager>.
- */
-template <class KEY, class VALUE, class KEY_ADAPTER>
-class ACE_Active_Map_Manager_Adapter : public ACE_Map<KEY, VALUE>
-{
-public:
-
- // = Traits.
- typedef ACE_Pair<KEY, VALUE>
- expanded_value;
- typedef ACE_Active_Map_Manager_Iterator_Adapter<ACE_Reference_Pair<const KEY, VALUE>, expanded_value>
- iterator_impl;
- typedef ACE_Active_Map_Manager_Reverse_Iterator_Adapter<ACE_Reference_Pair<const KEY, VALUE>, expanded_value>
- reverse_iterator_impl;
- typedef ACE_Active_Map_Manager<expanded_value>
- implementation;
-
- // = Initialization and termination methods.
- /// Initialize with the <ACE_DEFAULT_MAP_SIZE>.
- ACE_Active_Map_Manager_Adapter (ACE_Allocator *alloc = 0);
-
- /// Initialize with <size> entries. The <size> parameter is ignored
- /// by maps for which an initialize size does not make sense.
- ACE_Active_Map_Manager_Adapter (size_t size,
- ACE_Allocator *alloc = 0);
-
- /// Close down and release dynamically allocated resources.
- virtual ~ACE_Active_Map_Manager_Adapter (void);
-
- /// Initialize a <Map> with size <length>.
- virtual int open (size_t length = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- /// Close down a <Map> and release dynamically allocated resources.
- virtual int close (void);
-
- /**
- * Add <key>/<value> pair to the map. If <key> is already in the
- * map then no changes are made and 1 is returned. Returns 0 on a
- * successful addition. This function fails for maps that do not
- * allow user specified keys. <key> is an "in" parameter.
- */
- virtual int bind (const KEY &key,
- const VALUE &value);
-
- /**
- * Add <key>/<value> pair to the map. <key> is an "inout" parameter
- * and maybe modified/extended by the map to add additional
- * information. To recover original key, call the <recover_key>
- * method.
- */
- virtual int bind_modify_key (const VALUE &value,
- KEY &key);
-
- /**
- * Produce a key and return it through <key> which is an "out"
- * parameter. For maps that do not naturally produce keys, the map
- * adapters will use the <KEY_GENERATOR> class to produce a key.
- * However, the users are responsible for not jeopardizing this key
- * production scheme by using user specified keys with keys produced
- * by the key generator.
- */
- virtual int create_key (KEY &key);
-
- /**
- * Add <value> to the map, and the corresponding key produced by the
- * Map is returned through <key> which is an "out" parameter. For
- * maps that do not naturally produce keys, the map adapters will
- * use the <KEY_GENERATOR> class to produce a key. However, the
- * users are responsible for not jeopardizing this key production
- * scheme by using user specified keys with keys produced by the key
- * generator.
- */
- virtual int bind_create_key (const VALUE &value,
- KEY &key);
-
- /**
- * Add <value> to the map. The user does not care about the
- * corresponding key produced by the Map. For maps that do not
- * naturally produce keys, the map adapters will use the
- * <KEY_GENERATOR> class to produce a key. However, the users are
- * responsible for not jeopardizing this key production scheme by
- * using user specified keys with keys produced by the key
- * generator.
- */
- virtual int bind_create_key (const VALUE &value);
-
- /// Recovers the original key potentially modified by the map during
- /// <bind_modify_key>.
- virtual int recover_key (const KEY &modified_key,
- KEY &original_key);
-
- /**
- * Reassociate <key> with <value>. The function fails if <key> is
- * not in the map for maps that do not allow user specified keys.
- * However, for maps that allow user specified keys, if the key is
- * not in the map, a new <key>/<value> association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value);
-
- /**
- * Reassociate <key> with <value>, storing the old value into the
- * "out" parameter <old_value>. The function fails if <key> is not
- * in the map for maps that do not allow user specified keys.
- * However, for maps that allow user specified keys, if the key is
- * not in the map, a new <key>/<value> association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value);
-
- /**
- * Reassociate <key> with <value>, storing the old key and value
- * into the "out" parameters <old_key> and <old_value>. The
- * function fails if <key> is not in the map for maps that do not
- * allow user specified keys. However, for maps that allow user
- * specified keys, if the key is not in the map, a new <key>/<value>
- * association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value);
-
- /**
- * Associate <key> with <value> if and only if <key> is not in the
- * map. If <key> is already in the map, then the <value> parameter
- * is overwritten with the existing value in the map. Returns 0 if a
- * new <key>/<value> association is created. Returns 1 if an
- * attempt is made to bind an existing entry. This function fails
- * for maps that do not allow user specified keys.
- */
- virtual int trybind (const KEY &key,
- VALUE &value);
-
- /// Locate <value> associated with <key>.
- virtual int find (const KEY &key,
- VALUE &value);
-
- /// Is <key> in the map?
- virtual int find (const KEY &key);
-
- /// Remove <key> from the map.
- virtual int unbind (const KEY &key);
-
- /// Remove <key> from the map, and return the <value> associated with
- /// <key>.
- virtual int unbind (const KEY &key,
- VALUE &value);
-
- /// Return the current size of the map.
- virtual size_t current_size (void) const;
-
- /// Return the total size of the map.
- virtual size_t total_size (void) const;
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Accessor to implementation object.
- ACE_Active_Map_Manager<ACE_Pair<KEY, VALUE> > &impl (void);
-
- /// Accessor to key adapter.
- KEY_ADAPTER &key_adapter (void);
-
-protected:
-
- /// Find helper.
- virtual int find (const KEY &key,
- expanded_value *&internal_value);
-
- /// Unbind helper.
- virtual int unbind (const KEY &key,
- expanded_value *&internal_value);
-
- /// All implementation details are forwarded to this class.
- ACE_Active_Map_Manager<ACE_Pair<KEY, VALUE> > implementation_;
-
- /// Adapts between the user key and the Active_Map_Manager_Key.
- KEY_ADAPTER key_adapter_;
-
- // = STL styled iterator factory functions.
-
- /// Return forward iterator.
- virtual ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *begin_impl (void);
- virtual ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *end_impl (void);
-
- /// Return reverse iterator.
- virtual ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *rbegin_impl (void);
- virtual ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *rend_impl (void);
-
-private:
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Active_Map_Manager_Adapter (const ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER> &))
-};
-
-/**
- * @class ACE_Hash_Map_Manager_Ex_Iterator_Adapter
- *
- * @brief Defines a iterator implementation for the Hash_Map_Manager_Adapter.
- *
- * Implementation to be provided by ACE_Hash_Map_Manager_Ex::iterator.
- */
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS>
-class ACE_Hash_Map_Manager_Ex_Iterator_Adapter : public ACE_Iterator_Impl<T>
-{
-public:
-
- // = Traits.
- typedef ACE_TYPENAME ACE_Hash_Map_Manager_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>::iterator
- implementation;
-
- /// Constructor.
- ACE_Hash_Map_Manager_Ex_Iterator_Adapter (const ACE_Hash_Map_Iterator_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> &impl);
-
- /// Destructor.
- virtual ~ACE_Hash_Map_Manager_Ex_Iterator_Adapter (void);
-
- /// Clone.
- virtual ACE_Iterator_Impl<T> *clone (void) const;
-
- /// Comparison.
- virtual int compare (const ACE_Iterator_Impl<T> &rhs) const;
-
- /// Dereference.
- virtual T dereference (void) const;
-
- /// Advance.
- virtual void plus_plus (void);
-
- /// Reverse.
- virtual void minus_minus (void);
-
- /// Accessor to implementation object.
- ACE_Hash_Map_Iterator_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> &impl (void);
-
-protected:
-
- /// All implementation details are forwarded to this class.
- ACE_Hash_Map_Iterator_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> implementation_;
-};
-
-/**
- * @class ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter
- *
- * @brief Defines a reverse iterator implementation for the Hash_Map_Manager_Adapter.
- *
- * Implementation to be provided by ACE_Hash_Map_Manager_Ex::reverse_iterator.
- */
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS>
-class ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter : public ACE_Reverse_Iterator_Impl<T>
-{
-public:
-
- // = Traits.
- typedef ACE_TYPENAME ACE_Hash_Map_Manager_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>::reverse_iterator
- implementation;
-
- /// Constructor.
- ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter (const ACE_Hash_Map_Reverse_Iterator_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> &impl);
-
- /// Destructor.
- virtual ~ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter (void);
-
- /// Clone.
- virtual ACE_Reverse_Iterator_Impl<T> *clone (void) const;
-
- /// Comparison.
- virtual int compare (const ACE_Reverse_Iterator_Impl<T> &rhs) const;
-
- /// Dereference.
- virtual T dereference (void) const;
-
- /// Advance.
- virtual void plus_plus (void);
-
- /// Reverse.
- virtual void minus_minus (void);
-
- /// Accessor to implementation object.
- ACE_Hash_Map_Reverse_Iterator_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> &impl (void);
-
-protected:
-
- /// All implementation details are forwarded to this class.
- ACE_Hash_Map_Reverse_Iterator_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> implementation_;
-};
-
-/**
- * @class ACE_Hash_Map_Manager_Ex_Adapter
- *
- * @brief Defines a map implementation.
- *
- * Implementation to be provided by <ACE_Hash_Map_Manager_Ex>.
- */
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR>
-class ACE_Hash_Map_Manager_Ex_Adapter : public ACE_Map<KEY, VALUE>
-{
-public:
-
- // = Traits.
- typedef ACE_Hash_Map_Manager_Ex_Iterator_Adapter<ACE_Reference_Pair<const KEY, VALUE>, KEY, VALUE, HASH_KEY, COMPARE_KEYS>
- iterator_impl;
- typedef ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter<ACE_Reference_Pair<const KEY, VALUE>, KEY, VALUE, HASH_KEY, COMPARE_KEYS>
- reverse_iterator_impl;
- typedef ACE_Hash_Map_Manager_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>
- implementation;
-
- // = Initialization and termination methods.
- /// Initialize with the <ACE_DEFAULT_MAP_SIZE>.
- ACE_Hash_Map_Manager_Ex_Adapter (ACE_Allocator *alloc = 0);
-
- /// Initialize with <size> entries. The <size> parameter is ignored
- /// by maps for which an initialize size does not make sense.
- ACE_Hash_Map_Manager_Ex_Adapter (size_t size,
- ACE_Allocator *alloc = 0);
-
- /// Close down and release dynamically allocated resources.
- virtual ~ACE_Hash_Map_Manager_Ex_Adapter (void);
-
- /// Initialize a <Map> with size <length>.
- virtual int open (size_t length = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- /// Close down a <Map> and release dynamically allocated resources.
- virtual int close (void);
-
- /**
- * Add <key>/<value> pair to the map. If <key> is already in the
- * map then no changes are made and 1 is returned. Returns 0 on a
- * successful addition. This function fails for maps that do not
- * allow user specified keys. <key> is an "in" parameter.
- */
- virtual int bind (const KEY &key,
- const VALUE &value);
-
- /**
- * Add <key>/<value> pair to the map. <key> is an "inout" parameter
- * and maybe modified/extended by the map to add additional
- * information. To recover original key, call the <recover_key>
- * method.
- */
- virtual int bind_modify_key (const VALUE &value,
- KEY &key);
-
- /**
- * Produce a key and return it through <key> which is an "out"
- * parameter. For maps that do not naturally produce keys, the map
- * adapters will use the <KEY_GENERATOR> class to produce a key.
- * However, the users are responsible for not jeopardizing this key
- * production scheme by using user specified keys with keys produced
- * by the key generator.
- */
- virtual int create_key (KEY &key);
-
- /**
- * Add <value> to the map, and the corresponding key produced by the
- * Map is returned through <key> which is an "out" parameter. For
- * maps that do not naturally produce keys, the map adapters will
- * use the <KEY_GENERATOR> class to produce a key. However, the
- * users are responsible for not jeopardizing this key production
- * scheme by using user specified keys with keys produced by the key
- * generator.
- */
- virtual int bind_create_key (const VALUE &value,
- KEY &key);
-
- /**
- * Add <value> to the map. The user does not care about the
- * corresponding key produced by the Map. For maps that do not
- * naturally produce keys, the map adapters will use the
- * <KEY_GENERATOR> class to produce a key. However, the users are
- * responsible for not jeopardizing this key production scheme by
- * using user specified keys with keys produced by the key
- * generator.
- */
- virtual int bind_create_key (const VALUE &value);
-
- /// Recovers the original key potentially modified by the map during
- /// <bind_modify_key>.
- virtual int recover_key (const KEY &modified_key,
- KEY &original_key);
-
- /**
- * Reassociate <key> with <value>. The function fails if <key> is
- * not in the map for maps that do not allow user specified keys.
- * However, for maps that allow user specified keys, if the key is
- * not in the map, a new <key>/<value> association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value);
-
- /**
- * Reassociate <key> with <value>, storing the old value into the
- * "out" parameter <old_value>. The function fails if <key> is not
- * in the map for maps that do not allow user specified keys.
- * However, for maps that allow user specified keys, if the key is
- * not in the map, a new <key>/<value> association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value);
-
- /**
- * Reassociate <key> with <value>, storing the old key and value
- * into the "out" parameters <old_key> and <old_value>. The
- * function fails if <key> is not in the map for maps that do not
- * allow user specified keys. However, for maps that allow user
- * specified keys, if the key is not in the map, a new <key>/<value>
- * association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value);
-
- /**
- * Associate <key> with <value> if and only if <key> is not in the
- * map. If <key> is already in the map, then the <value> parameter
- * is overwritten with the existing value in the map. Returns 0 if a
- * new <key>/<value> association is created. Returns 1 if an
- * attempt is made to bind an existing entry. This function fails
- * for maps that do not allow user specified keys.
- */
- virtual int trybind (const KEY &key,
- VALUE &value);
-
- /// Locate <value> associated with <key>.
- virtual int find (const KEY &key,
- VALUE &value);
-
- /// Is <key> in the map?
- virtual int find (const KEY &key);
-
- /// Remove <key> from the map.
- virtual int unbind (const KEY &key);
-
- /// Remove <key> from the map, and return the <value> associated with
- /// <key>.
- virtual int unbind (const KEY &key,
- VALUE &value);
-
- /// Return the current size of the map.
- virtual size_t current_size (void) const;
-
- /// Return the total size of the map.
- virtual size_t total_size (void) const;
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Accessor to implementation object.
- ACE_Hash_Map_Manager_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> &impl (void);
-
- /// Accessor to key generator.
- KEY_GENERATOR &key_generator (void);
-
-protected:
-
- /// All implementation details are forwarded to this class.
- ACE_Hash_Map_Manager_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> implementation_;
-
- /// Functor class used for generating key.
- KEY_GENERATOR key_generator_;
-
- // = STL styled iterator factory functions.
-
- /// Return forward iterator.
- virtual ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *begin_impl (void);
- virtual ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *end_impl (void);
-
- /// Return reverse iterator.
- virtual ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *rbegin_impl (void);
- virtual ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *rend_impl (void);
-
-private:
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Hash_Map_Manager_Ex_Adapter (const ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR> &))
-};
-
-/**
- * @class ACE_Map_Manager_Iterator_Adapter
- *
- * @brief Defines a iterator implementation for the Map_Manager_Adapter.
- *
- * Implementation to be provided by ACE_Map_Manager::iterator.
- */
-template <class T, class KEY, class VALUE>
-class ACE_Map_Manager_Iterator_Adapter : public ACE_Iterator_Impl<T>
-{
-public:
-
- // = Traits.
- typedef ACE_TYPENAME ACE_Map_Manager<KEY, VALUE, ACE_Null_Mutex>::iterator
- implementation;
-
- /// Constructor.
- ACE_Map_Manager_Iterator_Adapter (const ACE_Map_Iterator<KEY, VALUE, ACE_Null_Mutex> &impl);
-
- /// Destructor.
- virtual ~ACE_Map_Manager_Iterator_Adapter (void);
-
- /// Clone.
- virtual ACE_Iterator_Impl<T> *clone (void) const;
-
- /// Comparison.
- virtual int compare (const ACE_Iterator_Impl<T> &rhs) const;
-
- /// Dereference.
- virtual T dereference (void) const;
-
- /// Advance.
- virtual void plus_plus (void);
-
- /// Reverse.
- virtual void minus_minus (void);
-
- /// Accessor to implementation object.
- ACE_Map_Iterator<KEY, VALUE, ACE_Null_Mutex> &impl (void);
-
-protected:
-
- /// All implementation details are forwarded to this class.
- ACE_Map_Iterator<KEY, VALUE, ACE_Null_Mutex> implementation_;
-};
-
-/**
- * @class ACE_Map_Manager_Reverse_Iterator_Adapter
- *
- * @brief Defines a reverse iterator implementation for the Map Manager.
- *
- * Implementation to be provided by ACE_Map_Manager::reverse_iterator.
- */
-template <class T, class KEY, class VALUE>
-class ACE_Map_Manager_Reverse_Iterator_Adapter : public ACE_Reverse_Iterator_Impl<T>
-{
-public:
-
- // = Traits.
- typedef ACE_TYPENAME ACE_Map_Manager<KEY, VALUE, ACE_Null_Mutex>::reverse_iterator
- implementation;
-
- /// Constructor.
- ACE_Map_Manager_Reverse_Iterator_Adapter (const ACE_Map_Reverse_Iterator<KEY, VALUE, ACE_Null_Mutex> &impl);
-
- /// Destructor.
- virtual ~ACE_Map_Manager_Reverse_Iterator_Adapter (void);
-
- /// Clone.
- virtual ACE_Reverse_Iterator_Impl<T> *clone (void) const;
-
- /// Comparison.
- virtual int compare (const ACE_Reverse_Iterator_Impl<T> &rhs) const;
-
- /// Dereference.
- virtual T dereference (void) const;
-
- /// Advance.
- virtual void plus_plus (void);
-
- /// Reverse.
- virtual void minus_minus (void);
-
- /// Accessor to implementation object.
- ACE_Map_Reverse_Iterator<KEY, VALUE, ACE_Null_Mutex> &impl (void);
-
-protected:
-
- /// All implementation details are forwarded to this class.
- ACE_Map_Reverse_Iterator<KEY, VALUE, ACE_Null_Mutex> implementation_;
-};
-
-/**
- * @class ACE_Map_Manager_Adapter
- *
- * @brief Defines a map implementation.
- *
- * Implementation to be provided by <ACE_Map_Manager>.
- */
-template <class KEY, class VALUE, class KEY_GENERATOR>
-class ACE_Map_Manager_Adapter : public ACE_Map<KEY, VALUE>
-{
-public:
-
- // = Traits.
- typedef ACE_Map_Manager_Iterator_Adapter<ACE_Reference_Pair<const KEY, VALUE>, KEY, VALUE>
- iterator_impl;
- typedef ACE_Map_Manager_Reverse_Iterator_Adapter<ACE_Reference_Pair<const KEY, VALUE>, KEY, VALUE>
- reverse_iterator_impl;
- typedef ACE_Map_Manager<KEY, VALUE, ACE_Null_Mutex>
- implementation;
-
- // = Initialization and termination methods.
- /// Initialize with the <ACE_DEFAULT_MAP_SIZE>.
- ACE_Map_Manager_Adapter (ACE_Allocator *alloc = 0);
-
- /// Initialize with <size> entries. The <size> parameter is ignored
- /// by maps for which an initialize size does not make sense.
- ACE_Map_Manager_Adapter (size_t size,
- ACE_Allocator *alloc = 0);
-
- /// Close down and release dynamically allocated resources.
- virtual ~ACE_Map_Manager_Adapter (void);
-
- /// Initialize a <Map> with size <length>.
- virtual int open (size_t length = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- /// Close down a <Map> and release dynamically allocated resources.
- virtual int close (void);
-
- /**
- * Add <key>/<value> pair to the map. If <key> is already in the
- * map then no changes are made and 1 is returned. Returns 0 on a
- * successful addition. This function fails for maps that do not
- * allow user specified keys. <key> is an "in" parameter.
- */
- virtual int bind (const KEY &key,
- const VALUE &value);
-
- /**
- * Add <key>/<value> pair to the map. <key> is an "inout" parameter
- * and maybe modified/extended by the map to add additional
- * information. To recover original key, call the <recover_key>
- * method.
- */
- virtual int bind_modify_key (const VALUE &value,
- KEY &key);
-
- /**
- * Produce a key and return it through <key> which is an "out"
- * parameter. For maps that do not naturally produce keys, the map
- * adapters will use the <KEY_GENERATOR> class to produce a key.
- * However, the users are responsible for not jeopardizing this key
- * production scheme by using user specified keys with keys produced
- * by the key generator.
- */
- virtual int create_key (KEY &key);
-
- /**
- * Add <value> to the map, and the corresponding key produced by the
- * Map is returned through <key> which is an "out" parameter. For
- * maps that do not naturally produce keys, the map adapters will
- * use the <KEY_GENERATOR> class to produce a key. However, the
- * users are responsible for not jeopardizing this key production
- * scheme by using user specified keys with keys produced by the key
- * generator.
- */
- virtual int bind_create_key (const VALUE &value,
- KEY &key);
-
- /**
- * Add <value> to the map. The user does not care about the
- * corresponding key produced by the Map. For maps that do not
- * naturally produce keys, the map adapters will use the
- * <KEY_GENERATOR> class to produce a key. However, the users are
- * responsible for not jeopardizing this key production scheme by
- * using user specified keys with keys produced by the key
- * generator.
- */
- virtual int bind_create_key (const VALUE &value);
-
- /// Recovers the original key potentially modified by the map during
- /// <bind_modify_key>.
- virtual int recover_key (const KEY &modified_key,
- KEY &original_key);
-
- /**
- * Reassociate <key> with <value>. The function fails if <key> is
- * not in the map for maps that do not allow user specified keys.
- * However, for maps that allow user specified keys, if the key is
- * not in the map, a new <key>/<value> association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value);
-
- /**
- * Reassociate <key> with <value>, storing the old value into the
- * "out" parameter <old_value>. The function fails if <key> is not
- * in the map for maps that do not allow user specified keys.
- * However, for maps that allow user specified keys, if the key is
- * not in the map, a new <key>/<value> association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value);
-
- /**
- * Reassociate <key> with <value>, storing the old key and value
- * into the "out" parameters <old_key> and <old_value>. The
- * function fails if <key> is not in the map for maps that do not
- * allow user specified keys. However, for maps that allow user
- * specified keys, if the key is not in the map, a new <key>/<value>
- * association is created.
- */
- virtual int rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value);
-
- /**
- * Associate <key> with <value> if and only if <key> is not in the
- * map. If <key> is already in the map, then the <value> parameter
- * is overwritten with the existing value in the map. Returns 0 if a
- * new <key>/<value> association is created. Returns 1 if an
- * attempt is made to bind an existing entry. This function fails
- * for maps that do not allow user specified keys.
- */
- virtual int trybind (const KEY &key,
- VALUE &value);
-
- /// Locate <value> associated with <key>.
- virtual int find (const KEY &key,
- VALUE &value);
-
- /// Is <key> in the map?
- virtual int find (const KEY &key);
-
- /// Remove <key> from the map.
- virtual int unbind (const KEY &key);
-
- /// Remove <key> from the map, and return the <value> associated with
- /// <key>.
- virtual int unbind (const KEY &key,
- VALUE &value);
-
- /// Return the current size of the map.
- virtual size_t current_size (void) const;
-
- /// Return the total size of the map.
- virtual size_t total_size (void) const;
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Accessor to implementation object.
- ACE_Map_Manager<KEY, VALUE, ACE_Null_Mutex> &impl (void);
-
- /// Accessor to key generator.
- KEY_GENERATOR &key_generator (void);
-
-protected:
-
- /// All implementation details are forwarded to this class.
- ACE_Map_Manager<KEY, VALUE, ACE_Null_Mutex> implementation_;
-
- /// Functor class used for generating key.
- KEY_GENERATOR key_generator_;
-
- // = STL styled iterator factory functions.
-
- /// Return forward iterator.
- virtual ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *begin_impl (void);
- virtual ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *end_impl (void);
-
- /// Return reverse iterator.
- virtual ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *rbegin_impl (void);
- virtual ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *rend_impl (void);
-
-private:
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Map_Manager_Adapter (const ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR> &))
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Map_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Map_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Map_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_MAP_T_H */
diff --git a/ace/Map_T.i b/ace/Map_T.i
deleted file mode 100644
index ff34ee8ae0a..00000000000
--- a/ace/Map_T.i
+++ /dev/null
@@ -1,1723 +0,0 @@
-// $Id$
-
-template <class T> ACE_INLINE int
-ACE_Noop_Key_Generator<T>::operator() (T &)
-{
- return -1;
-}
-
-template <class T> ACE_INLINE
-ACE_Incremental_Key_Generator<T>::ACE_Incremental_Key_Generator (void)
- : t_ (0)
-{
-}
-
-template <class T> ACE_INLINE int
-ACE_Incremental_Key_Generator<T>::operator() (T &t)
-{
- t = ++this->t_;
- return 0;
-}
-
-template <class T> ACE_INLINE const T &
-ACE_Incremental_Key_Generator<T>::current_value (void) const
-{
- return this->t_;
-}
-
-template <class T> ACE_INLINE
-ACE_Iterator_Impl<T>::~ACE_Iterator_Impl (void)
-{
-}
-
-template <class T> ACE_INLINE
-ACE_Reverse_Iterator_Impl<T>::~ACE_Reverse_Iterator_Impl (void)
-{
-}
-
-template <class T> ACE_INLINE
-ACE_Iterator<T>::ACE_Iterator (ACE_Iterator_Impl<T> *impl)
- : implementation_ (impl)
-{
-}
-
-template <class T> ACE_INLINE
-ACE_Iterator<T>::ACE_Iterator (const ACE_Iterator<T> &rhs)
- : implementation_ (rhs.implementation_->clone ())
-{
-}
-
-template <class T> ACE_INLINE
-ACE_Iterator<T>::~ACE_Iterator (void)
-{
- delete this->implementation_;
-}
-
-template <class T> ACE_INLINE ACE_Iterator<T> &
-ACE_Iterator<T>::operator= (const ACE_Iterator<T> &rhs)
-{
- delete this->implementation_;
- this->implementation_ = rhs.implementation_->clone ();
- return *this;
-}
-
-template <class T> ACE_INLINE int
-ACE_Iterator<T>::operator== (const ACE_Iterator<T> &rhs) const
-{
- return this->implementation_->compare (*rhs.implementation_);
-}
-
-template <class T> ACE_INLINE int
-ACE_Iterator<T>::operator!= (const ACE_Iterator<T> &rhs) const
-{
- return !this->operator== (rhs);
-}
-
-template <class T> ACE_INLINE T
-ACE_Iterator<T>::operator* (void) const
-{
- return this->implementation_->dereference ();
-}
-
-template <class T> ACE_INLINE ACE_Iterator<T> &
-ACE_Iterator<T>::operator++ (void)
-{
- this->implementation_->plus_plus ();
- return *this;
-}
-
-template <class T> ACE_INLINE ACE_Iterator<T>
-ACE_Iterator<T>::operator++ (int)
-{
- ACE_Iterator<T> tmp = *this;
- this->implementation_->plus_plus ();
- return tmp;
-}
-
-template <class T> ACE_INLINE ACE_Iterator<T> &
-ACE_Iterator<T>::operator-- (void)
-{
- this->implementation_->minus_minus ();
- return *this;
-}
-
-template <class T> ACE_INLINE ACE_Iterator<T>
-ACE_Iterator<T>::operator-- (int)
-{
- ACE_Iterator<T> tmp = *this;
- this->implementation_->minus_minus ();
- return tmp;
-}
-
-template <class T> ACE_INLINE ACE_Iterator_Impl<T> &
-ACE_Iterator<T>::impl (void)
-{
- return *this->implementation_;
-}
-
-template <class T> ACE_INLINE
-ACE_Reverse_Iterator<T>::ACE_Reverse_Iterator (ACE_Reverse_Iterator_Impl<T> *impl)
- : implementation_ (impl)
-{
-}
-
-template <class T> ACE_INLINE
-ACE_Reverse_Iterator<T>::ACE_Reverse_Iterator (const ACE_Reverse_Iterator<T> &rhs)
- : implementation_ (rhs.implementation_->clone ())
-{
-}
-
-template <class T> ACE_INLINE
-ACE_Reverse_Iterator<T>::~ACE_Reverse_Iterator (void)
-{
- delete this->implementation_;
-}
-
-template <class T> ACE_INLINE ACE_Reverse_Iterator<T> &
-ACE_Reverse_Iterator<T>::operator= (const ACE_Reverse_Iterator<T> &rhs)
-{
- delete this->implementation_;
- this->implementation_ = rhs.implementation_->clone ();
- return *this;
-}
-
-template <class T> ACE_INLINE int
-ACE_Reverse_Iterator<T>::operator== (const ACE_Reverse_Iterator<T> &rhs) const
-{
- return this->implementation_->compare (*rhs.implementation_);
-}
-
-template <class T> ACE_INLINE int
-ACE_Reverse_Iterator<T>::operator!= (const ACE_Reverse_Iterator<T> &rhs) const
-{
- return !this->operator== (rhs);
-}
-
-template <class T> ACE_INLINE T
-ACE_Reverse_Iterator<T>::operator* (void) const
-{
- return this->implementation_->dereference ();
-}
-
-template <class T> ACE_INLINE ACE_Reverse_Iterator<T> &
-ACE_Reverse_Iterator<T>::operator++ (void)
-{
- this->implementation_->plus_plus ();
- return *this;
-}
-
-template <class T> ACE_INLINE ACE_Reverse_Iterator<T>
-ACE_Reverse_Iterator<T>::operator++ (int)
-{
- ACE_Reverse_Iterator<T> tmp = *this;
- this->implementation_->plus_plus ();
- return tmp;
-}
-
-template <class T> ACE_INLINE ACE_Reverse_Iterator<T> &
-ACE_Reverse_Iterator<T>::operator-- (void)
-{
- this->implementation_->minus_minus ();
- return *this;
-}
-
-template <class T> ACE_INLINE ACE_Reverse_Iterator<T>
-ACE_Reverse_Iterator<T>::operator-- (int)
-{
- ACE_Reverse_Iterator<T> tmp = *this;
- this->implementation_->minus_minus ();
- return tmp;
-}
-
-template <class T> ACE_INLINE ACE_Reverse_Iterator_Impl<T> &
-ACE_Reverse_Iterator<T>::impl (void)
-{
- return *this->implementation_;
-}
-
-template <class KEY, class VALUE> ACE_INLINE
-ACE_Map<KEY, VALUE>::ACE_Map (void)
-{
-}
-
-template <class KEY, class VALUE> ACE_INLINE
-ACE_Map<KEY, VALUE>::~ACE_Map (void)
-{
-}
-
-template <class KEY, class VALUE> ACE_INLINE ACE_Iterator<ACE_Reference_Pair<const KEY, VALUE> >
-ACE_Map<KEY, VALUE>::begin (void)
-{
- return iterator (this->begin_impl ());
-}
-
-template <class KEY, class VALUE> ACE_INLINE ACE_Iterator<ACE_Reference_Pair<const KEY, VALUE> >
-ACE_Map<KEY, VALUE>::end (void)
-{
- return iterator (this->end_impl ());
-}
-
-template <class KEY, class VALUE> ACE_INLINE ACE_Reverse_Iterator<ACE_Reference_Pair<const KEY, VALUE> >
-ACE_Map<KEY, VALUE>::rbegin (void)
-{
- return reverse_iterator (this->rbegin_impl ());
-}
-
-template <class KEY, class VALUE> ACE_INLINE ACE_Reverse_Iterator<ACE_Reference_Pair<const KEY, VALUE> >
-ACE_Map<KEY, VALUE>::rend (void)
-{
- return reverse_iterator (this->rend_impl ());
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE
-ACE_Map_Impl_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::ACE_Map_Impl_Iterator_Adapter (const IMPLEMENTATION &impl)
- : implementation_ (impl)
-{
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE
-ACE_Map_Impl_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::~ACE_Map_Impl_Iterator_Adapter (void)
-{
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE ACE_Iterator_Impl<T> *
-ACE_Map_Impl_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::clone (void) const
-{
- ACE_Iterator_Impl<T> *temp = 0;
- ACE_NEW_RETURN (temp,
- (ACE_Map_Impl_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>) (*this),
- 0);
- return temp;
-}
-
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE int
-ACE_Map_Impl_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::compare (const ACE_Iterator_Impl<T> &rhs) const
-{
- const ACE_Map_Impl_Iterator_Adapter<T, IMPLEMENTATION, ENTRY> &rhs_local
- = ACE_dynamic_cast_3_ref (const ACE_Map_Impl_Iterator_Adapter, T, IMPLEMENTATION, ENTRY, rhs);
-
- return this->implementation_ == rhs_local.implementation_;
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE T
-ACE_Map_Impl_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::dereference () const
-{
- ENTRY &entry = *this->implementation_;
- return T (entry.ext_id_,
- entry.int_id_);
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE void
-ACE_Map_Impl_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::plus_plus (void)
-{
- ++this->implementation_;
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE void
-ACE_Map_Impl_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::minus_minus (void)
-{
- --this->implementation_;
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE IMPLEMENTATION &
-ACE_Map_Impl_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::impl (void)
-{
- return this->implementation_;
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE
-ACE_Map_Impl_Reverse_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::ACE_Map_Impl_Reverse_Iterator_Adapter (const IMPLEMENTATION &impl)
- : implementation_ (impl)
-{
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE
-ACE_Map_Impl_Reverse_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::~ACE_Map_Impl_Reverse_Iterator_Adapter (void)
-{
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE ACE_Reverse_Iterator_Impl<T> *
-ACE_Map_Impl_Reverse_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::clone (void) const
-{
- ACE_Reverse_Iterator_Impl<T> *temp = 0;
- ACE_NEW_RETURN (temp,
- (ACE_Map_Impl_Reverse_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>) (*this),
- 0);
- return temp;
-}
-
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE int
-ACE_Map_Impl_Reverse_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::compare (const ACE_Reverse_Iterator_Impl<T> &rhs) const
-{
- const ACE_Map_Impl_Reverse_Iterator_Adapter<T, IMPLEMENTATION, ENTRY> &rhs_local
- = ACE_dynamic_cast_3_ref (const ACE_Map_Impl_Reverse_Iterator_Adapter, T, IMPLEMENTATION, ENTRY, rhs);
-
- return this->implementation_ == rhs_local.implementation_;
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE T
-ACE_Map_Impl_Reverse_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::dereference () const
-{
- ENTRY &entry = *this->implementation_;
- return T (entry.ext_id_,
- entry.int_id_);
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE void
-ACE_Map_Impl_Reverse_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::plus_plus (void)
-{
- ++this->implementation_;
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE void
-ACE_Map_Impl_Reverse_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::minus_minus (void)
-{
- --this->implementation_;
-}
-
-template <class T, class IMPLEMENTATION, class ENTRY> ACE_INLINE IMPLEMENTATION &
-ACE_Map_Impl_Reverse_Iterator_Adapter<T, IMPLEMENTATION, ENTRY>::impl (void)
-{
- return this->implementation_;
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::ACE_Map_Impl (ACE_Allocator *alloc)
- : implementation_ (alloc)
-{
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::ACE_Map_Impl (size_t size,
- ACE_Allocator *alloc)
- : implementation_ (size,
- alloc)
-{
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::~ACE_Map_Impl (void)
-{
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::open (size_t length,
- ACE_Allocator *alloc)
-{
- return this->implementation_.open (length,
- alloc);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::close (void)
-{
- return this->implementation_.close ();
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::bind (const KEY &key,
- const VALUE &value)
-{
- return this->implementation_.bind (key,
- value);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::bind_modify_key (const VALUE &value,
- KEY &key)
-{
- return this->implementation_.bind_modify_key (value,
- key);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::create_key (KEY &key)
-{
- return this->implementation_.create_key (key);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::bind_create_key (const VALUE &value,
- KEY &key)
-{
- return this->implementation_.bind_create_key (value,
- key);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::bind_create_key (const VALUE &value)
-{
- return this->implementation_.bind_create_key (value);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::recover_key (const KEY &modified_key,
- KEY &original_key)
-{
- return this->implementation_.recover_key (modified_key,
- original_key);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::rebind (const KEY &key,
- const VALUE &value)
-{
- return this->implementation_.rebind (key,
- value);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value)
-{
- return this->implementation_.rebind (key,
- value,
- old_value);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value)
-{
- return this->implementation_.rebind (key,
- value,
- old_key,
- old_value);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::trybind (const KEY &key,
- VALUE &value)
-{
- return this->implementation_.trybind (key,
- value);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::find (const KEY &key,
- VALUE &value)
-{
- return this->implementation_.find (key,
- value);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::find (const KEY &key)
-{
- return this->implementation_.find (key);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::unbind (const KEY &key)
-{
- return this->implementation_.unbind (key);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE int
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::unbind (const KEY &key,
- VALUE &value)
-{
- return this->implementation_.unbind (key,
- value);
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE size_t
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::current_size (void) const
-{
- return this->implementation_.current_size ();
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE size_t
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::total_size (void) const
-{
- return this->implementation_.total_size ();
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE void
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::dump (void) const
-{
- this->implementation_.dump ();
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::begin_impl (void)
-{
- ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- iterator_impl (this->implementation_.begin ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::end_impl (void)
-{
- ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- iterator_impl (this->implementation_.end ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::rbegin_impl (void)
-{
- ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- reverse_iterator_impl (this->implementation_.rbegin ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::rend_impl (void)
-{
- ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- reverse_iterator_impl (this->implementation_.rend ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class IMPLEMENTATION, class ITERATOR, class REVERSE_ITERATOR, class ENTRY> ACE_INLINE IMPLEMENTATION &
-ACE_Map_Impl<KEY, VALUE, IMPLEMENTATION, ITERATOR, REVERSE_ITERATOR, ENTRY>::impl (void)
-{
- return this->implementation_;
-}
-
-template <class T, class VALUE> ACE_INLINE
-ACE_Active_Map_Manager_Iterator_Adapter<T, VALUE>::ACE_Active_Map_Manager_Iterator_Adapter (const ACE_Map_Iterator<ACE_Active_Map_Manager_Key, VALUE, ACE_Null_Mutex> &impl)
- : implementation_ (impl)
-{
-}
-
-template <class T, class VALUE> ACE_INLINE
-ACE_Active_Map_Manager_Iterator_Adapter<T, VALUE>::~ACE_Active_Map_Manager_Iterator_Adapter (void)
-{
-}
-
-template <class T, class VALUE> ACE_INLINE ACE_Iterator_Impl<T> *
-ACE_Active_Map_Manager_Iterator_Adapter<T, VALUE>::clone (void) const
-{
- ACE_Iterator_Impl<T> *temp = 0;
- ACE_NEW_RETURN (temp,
- (ACE_Active_Map_Manager_Iterator_Adapter<T, VALUE>) (*this),
- 0);
- return temp;
-}
-
-
-template <class T, class VALUE> ACE_INLINE int
-ACE_Active_Map_Manager_Iterator_Adapter<T, VALUE>::compare (const ACE_Iterator_Impl<T> &rhs) const
-{
- const ACE_Active_Map_Manager_Iterator_Adapter<T, VALUE> &rhs_local
- = ACE_dynamic_cast_2_ref (const ACE_Active_Map_Manager_Iterator_Adapter, T, VALUE, rhs);
-
- return this->implementation_ == rhs_local.implementation_;
-}
-
-template <class T, class VALUE> ACE_INLINE T
-ACE_Active_Map_Manager_Iterator_Adapter<T, VALUE>::dereference () const
-{
- // The following syntax is necessary to work around certain broken compilers.
- // In particular, please do not prefix implementation_ with this->
- return T ((*implementation_).int_id_.first (),
- (*implementation_).int_id_.second ());
-}
-
-template <class T, class VALUE> ACE_INLINE void
-ACE_Active_Map_Manager_Iterator_Adapter<T, VALUE>::plus_plus (void)
-{
- ++this->implementation_;
-}
-
-template <class T, class VALUE> ACE_INLINE void
-ACE_Active_Map_Manager_Iterator_Adapter<T, VALUE>::minus_minus (void)
-{
- --this->implementation_;
-}
-
-template <class T, class VALUE> ACE_INLINE ACE_Map_Iterator<ACE_Active_Map_Manager_Key, VALUE, ACE_Null_Mutex> &
-ACE_Active_Map_Manager_Iterator_Adapter<T, VALUE>::impl (void)
-{
- return this->implementation_;
-}
-
-template <class T, class VALUE> ACE_INLINE
-ACE_Active_Map_Manager_Reverse_Iterator_Adapter<T, VALUE>::ACE_Active_Map_Manager_Reverse_Iterator_Adapter (const ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, VALUE, ACE_Null_Mutex> &impl)
- : implementation_ (impl)
-{
-}
-
-template <class T, class VALUE> ACE_INLINE
-ACE_Active_Map_Manager_Reverse_Iterator_Adapter<T, VALUE>::~ACE_Active_Map_Manager_Reverse_Iterator_Adapter (void)
-{
-}
-
-template <class T, class VALUE> ACE_INLINE ACE_Reverse_Iterator_Impl<T> *
-ACE_Active_Map_Manager_Reverse_Iterator_Adapter<T, VALUE>::clone (void) const
-{
- ACE_Reverse_Iterator_Impl<T> *temp = 0;
- ACE_NEW_RETURN (temp,
- (ACE_Active_Map_Manager_Reverse_Iterator_Adapter<T, VALUE>) (*this),
- 0);
- return temp;
-}
-
-
-template <class T, class VALUE> ACE_INLINE int
-ACE_Active_Map_Manager_Reverse_Iterator_Adapter<T, VALUE>::compare (const ACE_Reverse_Iterator_Impl<T> &rhs) const
-{
- const ACE_Active_Map_Manager_Reverse_Iterator_Adapter<T, VALUE> &rhs_local
- = ACE_dynamic_cast_2_ref (const ACE_Active_Map_Manager_Reverse_Iterator_Adapter, T, VALUE, rhs);
-
- return this->implementation_ == rhs_local.implementation_;
-}
-
-template <class T, class VALUE> ACE_INLINE T
-ACE_Active_Map_Manager_Reverse_Iterator_Adapter<T, VALUE>::dereference () const
-{
- // The following syntax is necessary to work around certain broken compilers.
- // In particular, please do not prefix implementation_ with this->
- return T ((*implementation_).int_id_.first (),
- (*implementation_).int_id_.second ());
-}
-
-template <class T, class VALUE> ACE_INLINE void
-ACE_Active_Map_Manager_Reverse_Iterator_Adapter<T, VALUE>::plus_plus (void)
-{
- ++this->implementation_;
-}
-
-template <class T, class VALUE> ACE_INLINE void
-ACE_Active_Map_Manager_Reverse_Iterator_Adapter<T, VALUE>::minus_minus (void)
-{
- --this->implementation_;
-}
-
-template <class T, class VALUE> ACE_INLINE ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, VALUE, ACE_Null_Mutex> &
-ACE_Active_Map_Manager_Reverse_Iterator_Adapter<T, VALUE>::impl (void)
-{
- return this->implementation_;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::ACE_Active_Map_Manager_Adapter (ACE_Allocator *alloc)
- : implementation_ (alloc)
-{
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::ACE_Active_Map_Manager_Adapter (size_t size,
- ACE_Allocator *alloc)
- : implementation_ (size,
- alloc)
-{
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::~ACE_Active_Map_Manager_Adapter (void)
-{
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::open (size_t length,
- ACE_Allocator *alloc)
-{
- return this->implementation_.open (length,
- alloc);
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::close (void)
-{
- return this->implementation_.close ();
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::bind (const KEY &,
- const VALUE &)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::bind_modify_key (const VALUE &value,
- KEY &key)
-{
- // Reserve a slot and create an active key.
- expanded_value *internal_value = 0;
- ACE_Active_Map_Manager_Key active_key;
- int result = this->implementation_.bind (active_key,
- internal_value);
- if (result == 0)
- {
- // Encode the active key and the existing user key into key part
- // of <expanded_value>.
- result = this->key_adapter_.encode (key,
- active_key,
- internal_value->first ());
- if (result == 0)
- {
- // Copy user value into <expanded_value>.
- internal_value->second (value);
- // Copy new, modified key back to the user key.
- key = internal_value->first ();
- }
- else
- {
- // In case of errors, unbind from map.
- this->implementation_.unbind (active_key);
- }
- }
-
- return result;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::create_key (KEY &)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::bind_create_key (const VALUE &value,
- KEY &key)
-{
- // Reserve a slot and create an active key.
- expanded_value *internal_value = 0;
- ACE_Active_Map_Manager_Key active_key;
- int result = this->implementation_.bind (active_key,
- internal_value);
- if (result == 0)
- {
- // Encode the active key into key part of <expanded_value>.
- result = this->key_adapter_.encode (internal_value->first (),
- active_key,
- internal_value->first ());
- if (result == 0)
- {
- // Copy user value into <expanded_value>.
- internal_value->second (value);
- // Copy new, modified key to the user key.
- key = internal_value->first ();
- }
- else
- {
- // In case of errors, unbind from map.
- this->implementation_.unbind (active_key);
- }
- }
-
- return result;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::bind_create_key (const VALUE &value)
-{
- // Reserve a slot and create an active key.
- expanded_value *internal_value = 0;
- ACE_Active_Map_Manager_Key active_key;
- int result = this->implementation_.bind (active_key,
- internal_value);
- if (result == 0)
- {
- // Encode the active key into key part of <expanded_value>.
- result = this->key_adapter_.encode (internal_value->first (),
- active_key,
- internal_value->first ());
- if (result == 0)
- {
- // Copy user value into <expanded_value>.
- internal_value->second (value);
- }
- else
- {
- // In case of errors, unbind from map.
- this->implementation_.unbind (active_key);
- }
- }
-
- return result;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::recover_key (const KEY &modified_key,
- KEY &original_key)
-{
- // Ask the <key_adapter_> to help out with recovering the original
- // user key, since it was the one that encode it in the first place.
- return this->key_adapter_.decode (modified_key,
- original_key);
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::find (const KEY &key,
- expanded_value *&internal_value)
-{
- // Ask the <key_adapter_> to recover the active key.
- ACE_Active_Map_Manager_Key active_key;
- int result = this->key_adapter_.decode (key,
- active_key);
- if (result == 0)
- {
- // Find recovered active key in map.
- result = this->implementation_.find (active_key,
- internal_value);
- }
-
- return result;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::find (const KEY &key,
- VALUE &value)
-{
- expanded_value *internal_value = 0;
- int result = this->find (key,
- internal_value);
-
- if (result == 0)
- {
- // Copy value.
- value = internal_value->second ();
- }
-
- return result;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::find (const KEY &key)
-{
- expanded_value *internal_value = 0;
- return this->find (key,
- internal_value);
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::rebind (const KEY &key,
- const VALUE &value)
-{
- expanded_value *internal_value = 0;
- int result = this->find (key,
- internal_value);
-
- if (result == 0)
- {
- // Reset value.
- internal_value->second (value);
- }
-
- return result;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value)
-{
- expanded_value *internal_value = 0;
- int result = this->find (key,
- internal_value);
-
- if (result == 0)
- {
- // Copy old value.
- old_value = internal_value->second ();
-
- // Reset to new value.
- internal_value->second (value);
- }
-
- return result;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value)
-{
- expanded_value *internal_value = 0;
- int result = this->find (key,
- internal_value);
-
- if (result == 0)
- {
- // Copy old key and value.
- old_key = internal_value->first ();
- old_value = internal_value->second ();
-
- // Reset to new value.
- internal_value->second (value);
- }
-
- return result;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::trybind (const KEY &,
- VALUE &)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::unbind (const KEY &key,
- expanded_value *&internal_value)
-{
- // Ask the <key_adapter_> to recover the active key.
- ACE_Active_Map_Manager_Key active_key;
- int result = this->key_adapter_.decode (key,
- active_key);
- if (result == 0)
- {
- // Unbind recovered active key from map.
- result = this->implementation_.unbind (active_key,
- internal_value);
- }
-
- return result;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::unbind (const KEY &key)
-{
- expanded_value *internal_value = 0;
- return this->unbind (key,
- internal_value);
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE int
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::unbind (const KEY &key,
- VALUE &value)
-{
- expanded_value *internal_value = 0;
- int result = this->unbind (key,
- internal_value);
-
- if (result == 0)
- {
- // Copy value.
- value = internal_value->second ();
- }
-
- return result;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE size_t
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::current_size (void) const
-{
- return this->implementation_.current_size ();
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE size_t
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::total_size (void) const
-{
- return this->implementation_.total_size ();
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE void
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::dump (void) const
-{
- this->implementation_.dump ();
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::begin_impl (void)
-{
- ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- iterator_impl (this->implementation_.begin ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::end_impl (void)
-{
- ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- iterator_impl (this->implementation_.end ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::rbegin_impl (void)
-{
- ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- reverse_iterator_impl (this->implementation_.rbegin ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::rend_impl (void)
-{
- ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- reverse_iterator_impl (this->implementation_.rend ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE ACE_Active_Map_Manager<ACE_Pair<KEY, VALUE> > &
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::impl (void)
-{
- return this->implementation_;
-}
-
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE KEY_ADAPTER &
-ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::key_adapter (void)
-{
- return this->key_adapter_;
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE
-ACE_Hash_Map_Manager_Ex_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::ACE_Hash_Map_Manager_Ex_Iterator_Adapter (const ACE_Hash_Map_Iterator_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> &impl)
- : implementation_ (impl)
-{
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE
-ACE_Hash_Map_Manager_Ex_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::~ACE_Hash_Map_Manager_Ex_Iterator_Adapter (void)
-{
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE ACE_Iterator_Impl<T> *
-ACE_Hash_Map_Manager_Ex_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::clone (void) const
-{
- ACE_Iterator_Impl<T> *temp = 0;
- ACE_NEW_RETURN (temp,
- (ACE_Hash_Map_Manager_Ex_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>) (*this),
- 0);
- return temp;
-}
-
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::compare (const ACE_Iterator_Impl<T> &rhs) const
-{
- const ACE_Hash_Map_Manager_Ex_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS> &rhs_local
- = ACE_dynamic_cast_5_ref (const ACE_Hash_Map_Manager_Ex_Iterator_Adapter, T, KEY, VALUE, HASH_KEY, COMPARE_KEYS, rhs);
-
- return this->implementation_ == rhs_local.implementation_;
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE T
-ACE_Hash_Map_Manager_Ex_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::dereference () const
-{
- // The following syntax is necessary to work around certain broken compilers.
- // In particular, please do not prefix implementation_ with this->
- return T ((*implementation_).ext_id_,
- (*implementation_).int_id_);
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE void
-ACE_Hash_Map_Manager_Ex_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::plus_plus (void)
-{
- ++this->implementation_;
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE void
-ACE_Hash_Map_Manager_Ex_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::minus_minus (void)
-{
- --this->implementation_;
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE ACE_Hash_Map_Iterator_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> &
-ACE_Hash_Map_Manager_Ex_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::impl (void)
-{
- return this->implementation_;
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE
-ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter (const ACE_Hash_Map_Reverse_Iterator_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> &impl)
- : implementation_ (impl)
-{
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE
-ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::~ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter (void)
-{
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE ACE_Reverse_Iterator_Impl<T> *
-ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::clone (void) const
-{
- ACE_Reverse_Iterator_Impl<T> *temp = 0;
- ACE_NEW_RETURN (temp,
- (ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>) (*this),
- 0);
- return temp;
-}
-
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::compare (const ACE_Reverse_Iterator_Impl<T> &rhs) const
-{
- const ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS> &rhs_local
- = ACE_dynamic_cast_5_ref (const ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter, T, KEY, VALUE, HASH_KEY, COMPARE_KEYS, rhs);
-
- return this->implementation_ == rhs_local.implementation_;
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE T
-ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::dereference () const
-{
- // The following syntax is necessary to work around certain broken compilers.
- // In particular, please do not prefix implementation_ with this->
- return T ((*implementation_).ext_id_,
- (*implementation_).int_id_);
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE void
-ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::plus_plus (void)
-{
- ++this->implementation_;
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE void
-ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::minus_minus (void)
-{
- --this->implementation_;
-}
-
-template <class T, class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS> ACE_INLINE ACE_Hash_Map_Reverse_Iterator_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> &
-ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter<T, KEY, VALUE, HASH_KEY, COMPARE_KEYS>::impl (void)
-{
- return this->implementation_;
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::ACE_Hash_Map_Manager_Ex_Adapter (ACE_Allocator *alloc)
- : implementation_ (alloc)
-{
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::ACE_Hash_Map_Manager_Ex_Adapter (size_t size,
- ACE_Allocator *alloc)
- : implementation_ (size,
- alloc)
-{
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::~ACE_Hash_Map_Manager_Ex_Adapter (void)
-{
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::open (size_t length,
- ACE_Allocator *alloc)
-{
- return this->implementation_.open (length,
- alloc);
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::close (void)
-{
- return this->implementation_.close ();
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::bind (const KEY &key,
- const VALUE &value)
-{
- return this->implementation_.bind (key,
- value);
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::bind_modify_key (const VALUE &value,
- KEY &key)
-{
- return this->implementation_.bind (key,
- value);
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::create_key (KEY &key)
-{
- // Invoke the user specified key generation functor.
- return this->key_generator_ (key);
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::bind_create_key (const VALUE &value,
- KEY &key)
-{
- // Invoke the user specified key generation functor.
- int result = this->key_generator_ (key);
-
- if (result == 0)
- {
- // Try to add.
- result = this->implementation_.bind (key,
- value);
- }
-
- return result;
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::bind_create_key (const VALUE &value)
-{
- KEY key;
- return this->bind_create_key (value,
- key);
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::recover_key (const KEY &modified_key,
- KEY &original_key)
-{
- original_key = modified_key;
- return 0;
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::rebind (const KEY &key,
- const VALUE &value)
-{
- return this->implementation_.rebind (key,
- value);
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value)
-{
- return this->implementation_.rebind (key,
- value,
- old_value);
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value)
-{
- return this->implementation_.rebind (key,
- value,
- old_key,
- old_value);
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::trybind (const KEY &key,
- VALUE &value)
-{
- return this->implementation_.trybind (key,
- value);
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::find (const KEY &key,
- VALUE &value)
-{
- return this->implementation_.find (key,
- value);
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::find (const KEY &key)
-{
- return this->implementation_.find (key);
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::unbind (const KEY &key)
-{
- return this->implementation_.unbind (key);
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE int
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::unbind (const KEY &key,
- VALUE &value)
-{
- return this->implementation_.unbind (key,
- value);
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE size_t
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::current_size (void) const
-{
- return this->implementation_.current_size ();
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE size_t
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::total_size (void) const
-{
- return this->implementation_.total_size ();
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE void
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::dump (void) const
-{
- this->implementation_.dump ();
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::begin_impl (void)
-{
- ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- iterator_impl (this->implementation_.begin ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::end_impl (void)
-{
- ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- iterator_impl (this->implementation_.end ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::rbegin_impl (void)
-{
- ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- reverse_iterator_impl (this->implementation_.rbegin ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::rend_impl (void)
-{
- ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- reverse_iterator_impl (this->implementation_.rend ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE ACE_Hash_Map_Manager_Ex<KEY, VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> &
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::impl (void)
-{
- return this->implementation_;
-}
-
-template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class KEY_GENERATOR> ACE_INLINE KEY_GENERATOR &
-ACE_Hash_Map_Manager_Ex_Adapter<KEY, VALUE, HASH_KEY, COMPARE_KEYS, KEY_GENERATOR>::key_generator (void)
-{
- return this->key_generator_;
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE
-ACE_Map_Manager_Iterator_Adapter<T, KEY, VALUE>::ACE_Map_Manager_Iterator_Adapter (const ACE_Map_Iterator<KEY, VALUE, ACE_Null_Mutex> &impl)
- : implementation_ (impl)
-{
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE
-ACE_Map_Manager_Iterator_Adapter<T, KEY, VALUE>::~ACE_Map_Manager_Iterator_Adapter (void)
-{
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE ACE_Iterator_Impl<T> *
-ACE_Map_Manager_Iterator_Adapter<T, KEY, VALUE>::clone (void) const
-{
- ACE_Iterator_Impl<T> *temp = 0;
- ACE_NEW_RETURN (temp,
- (ACE_Map_Manager_Iterator_Adapter<T, KEY, VALUE>) (*this),
- 0);
- return temp;
-}
-
-
-template <class T, class KEY, class VALUE> ACE_INLINE int
-ACE_Map_Manager_Iterator_Adapter<T, KEY, VALUE>::compare (const ACE_Iterator_Impl<T> &rhs) const
-{
- const ACE_Map_Manager_Iterator_Adapter<T, KEY, VALUE> &rhs_local
- = ACE_dynamic_cast_3_ref (const ACE_Map_Manager_Iterator_Adapter, T, KEY, VALUE, rhs);
-
- return this->implementation_ == rhs_local.implementation_;
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE T
-ACE_Map_Manager_Iterator_Adapter<T, KEY, VALUE>::dereference () const
-{
- // The following syntax is necessary to work around certain broken compilers.
- // In particular, please do not prefix implementation_ with this->
- return T ((*implementation_).ext_id_,
- (*implementation_).int_id_);
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE void
-ACE_Map_Manager_Iterator_Adapter<T, KEY, VALUE>::plus_plus (void)
-{
- ++this->implementation_;
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE void
-ACE_Map_Manager_Iterator_Adapter<T, KEY, VALUE>::minus_minus (void)
-{
- --this->implementation_;
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE ACE_Map_Iterator<KEY, VALUE, ACE_Null_Mutex> &
-ACE_Map_Manager_Iterator_Adapter<T, KEY, VALUE>::impl (void)
-{
- return this->implementation_;
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE
-ACE_Map_Manager_Reverse_Iterator_Adapter<T, KEY, VALUE>::ACE_Map_Manager_Reverse_Iterator_Adapter (const ACE_Map_Reverse_Iterator<KEY, VALUE, ACE_Null_Mutex> &impl)
- : implementation_ (impl)
-{
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE
-ACE_Map_Manager_Reverse_Iterator_Adapter<T, KEY, VALUE>::~ACE_Map_Manager_Reverse_Iterator_Adapter (void)
-{
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE ACE_Reverse_Iterator_Impl<T> *
-ACE_Map_Manager_Reverse_Iterator_Adapter<T, KEY, VALUE>::clone (void) const
-{
- ACE_Reverse_Iterator_Impl<T> *temp = 0;
- ACE_NEW_RETURN (temp,
- (ACE_Map_Manager_Reverse_Iterator_Adapter<T, KEY, VALUE>) (*this),
- 0);
- return temp;
-}
-
-
-template <class T, class KEY, class VALUE> ACE_INLINE int
-ACE_Map_Manager_Reverse_Iterator_Adapter<T, KEY, VALUE>::compare (const ACE_Reverse_Iterator_Impl<T> &rhs) const
-{
- const ACE_Map_Manager_Reverse_Iterator_Adapter<T, KEY, VALUE> &rhs_local
- = ACE_dynamic_cast_3_ref (const ACE_Map_Manager_Reverse_Iterator_Adapter, T, KEY, VALUE, rhs);
-
- return this->implementation_ == rhs_local.implementation_;
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE T
-ACE_Map_Manager_Reverse_Iterator_Adapter<T, KEY, VALUE>::dereference () const
-{
- // The following syntax is necessary to work around certain broken compilers.
- // In particular, please do not prefix implementation_ with this->
- return T ((*implementation_).ext_id_,
- (*implementation_).int_id_);
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE void
-ACE_Map_Manager_Reverse_Iterator_Adapter<T, KEY, VALUE>::plus_plus (void)
-{
- ++this->implementation_;
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE void
-ACE_Map_Manager_Reverse_Iterator_Adapter<T, KEY, VALUE>::minus_minus (void)
-{
- --this->implementation_;
-}
-
-template <class T, class KEY, class VALUE> ACE_INLINE ACE_Map_Reverse_Iterator<KEY, VALUE, ACE_Null_Mutex> &
-ACE_Map_Manager_Reverse_Iterator_Adapter<T, KEY, VALUE>::impl (void)
-{
- return this->implementation_;
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::ACE_Map_Manager_Adapter (ACE_Allocator *alloc)
- : implementation_ (alloc)
-{
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::ACE_Map_Manager_Adapter (size_t size,
- ACE_Allocator *alloc)
- : implementation_ (size,
- alloc)
-{
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::~ACE_Map_Manager_Adapter (void)
-{
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::open (size_t length,
- ACE_Allocator *alloc)
-{
- return this->implementation_.open (length,
- alloc);
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::close (void)
-{
- return this->implementation_.close ();
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::bind (const KEY &key,
- const VALUE &value)
-{
- return this->implementation_.bind (key,
- value);
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::bind_modify_key (const VALUE &value,
- KEY &key)
-{
- return this->implementation_.bind (key,
- value);
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::create_key (KEY &key)
-{
- // Invoke the user specified key generation functor.
- return this->key_generator_ (key);
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::bind_create_key (const VALUE &value,
- KEY &key)
-{
- // Invoke the user specified key generation functor.
- int result = this->key_generator_ (key);
-
- if (result == 0)
- {
- // Try to add.
- result = this->implementation_.bind (key,
- value);
- }
-
- return result;
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::bind_create_key (const VALUE &value)
-{
- KEY key;
- return this->bind_create_key (value,
- key);
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::recover_key (const KEY &modified_key,
- KEY &original_key)
-{
- original_key = modified_key;
- return 0;
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::rebind (const KEY &key,
- const VALUE &value)
-{
- return this->implementation_.rebind (key,
- value);
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value)
-{
- return this->implementation_.rebind (key,
- value,
- old_value);
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value)
-{
- return this->implementation_.rebind (key,
- value,
- old_key,
- old_value);
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::trybind (const KEY &key,
- VALUE &value)
-{
- return this->implementation_.trybind (key,
- value);
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::find (const KEY &key,
- VALUE &value)
-{
- return this->implementation_.find (key,
- value);
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::find (const KEY &key)
-{
- return this->implementation_.find (key);
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::unbind (const KEY &key)
-{
- return this->implementation_.unbind (key);
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE int
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::unbind (const KEY &key,
- VALUE &value)
-{
- return this->implementation_.unbind (key,
- value);
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE size_t
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::current_size (void) const
-{
- return this->implementation_.current_size ();
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE size_t
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::total_size (void) const
-{
- return this->implementation_.total_size ();
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE void
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::dump (void) const
-{
- this->implementation_.dump ();
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::begin_impl (void)
-{
- ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- iterator_impl (this->implementation_.begin ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::end_impl (void)
-{
- ACE_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- iterator_impl (this->implementation_.end ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::rbegin_impl (void)
-{
- ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- reverse_iterator_impl (this->implementation_.rbegin ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::rend_impl (void)
-{
- ACE_Reverse_Iterator_Impl<ACE_Reference_Pair<const KEY, VALUE> > *temp = 0;
- ACE_NEW_RETURN (temp,
- reverse_iterator_impl (this->implementation_.rend ()),
- 0);
- return temp;
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE ACE_Map_Manager<KEY, VALUE, ACE_Null_Mutex> &
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::impl (void)
-{
- return this->implementation_;
-}
-
-template <class KEY, class VALUE, class KEY_GENERATOR> ACE_INLINE KEY_GENERATOR &
-ACE_Map_Manager_Adapter<KEY, VALUE, KEY_GENERATOR>::key_generator (void)
-{
- return this->key_generator_;
-}
diff --git a/ace/Mem_Map.cpp b/ace/Mem_Map.cpp
deleted file mode 100644
index e8885c393aa..00000000000
--- a/ace/Mem_Map.cpp
+++ /dev/null
@@ -1,387 +0,0 @@
-// $Id$
-
-// Defines the member functions for the memory mapping facility.
-
-#include "ace/Mem_Map.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_WIN32) \
- && (!defined(ACE_HAS_WINNT4) || (ACE_HAS_WINNT4 == 0))
-# define ACE_USE_MAPPING_NAME 1
-#endif /* ACE_WIN32 */
-
-#if defined (ACE_USE_MAPPING_NAME)
-#include "ace/SString.h"
-#endif /* ACE_USE_MAPPING_NAME */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Mem_Map.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Mem_Map, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Mem_Map)
-
-#if defined (ACE_USE_MAPPING_NAME)
-// Gets a mapping object name from a file name. TODO: The file name
-// is used as the key to the mapping. We should try to avoid mapping
-// the same object name to different files (there is a mapping object
-// name length limitation).
-
-static void
-to_mapping_name (ACE_TCHAR *mapobjname,
- const ACE_TCHAR *filename,
- size_t len)
-{
- --len;
- size_t i = 0;
-
- while (*filename && i < len)
- {
- if (*filename == ACE_LIB_TEXT ('\\'))
- // Can't use backslash in mapping object name.
- mapobjname[i] = ACE_LIB_TEXT ('.');
- else
- mapobjname[i] = *filename;
- ++filename;
- ++i;
- }
-
- mapobjname[i] = 0;
-}
-#endif /* ACE_USE_MAPPING_NAME */
-
-void
-ACE_Mem_Map::dump (void) const
-{
- ACE_TRACE ("ACE_Mem_Map::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("base_addr_ = %x"), this->base_addr_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nfilename_ = %s"), this->filename_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nlength_ = %d"), this->length_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nhandle_ = %d"), this->handle_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nfile_mapping_ = %d"), this->file_mapping_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nclose_handle_ = %d"), this->close_handle_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-int
-ACE_Mem_Map::close (void)
-{
- ACE_TRACE ("ACE_Mem_Map::close");
-
- this->unmap ();
-
- return this->close_handle ();
-}
-
-ACE_Mem_Map::~ACE_Mem_Map (void)
-{
- ACE_TRACE ("ACE_Mem_Map::~ACE_Mem_Map");
-
- this->close ();
-}
-
-// This function does the dirty work of actually calling ACE_OS::mmap
-// to map the file into memory.
-
-int
-ACE_Mem_Map::map_it (ACE_HANDLE handle,
- int length_request,
- int prot,
- int share,
- void *addr,
- off_t offset,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_Mem_Map::map_it");
-
-#if defined (ACE_LACKS_AUTO_MMAP_REPLACEMENT)
- // If the system does not replace any previous mappings, then
- // unmap() before (potentially) mapping to the same location.
- int unmap_result = this->unmap ();
- if (unmap_result != 0)
- return unmap_result;
-#endif /* ACE_LACKS_AUTO_MMAP_REPLACEMENT */
-
- this->base_addr_ = addr;
- this->handle_ = handle;
-
-#if defined (CHORUS)
- // Chorus does not support filesize on a shared memory handle. We
- // assume that <length_> = 0 when <ACE_Mem_Map> is initially
- // constructed (i.e., before <map_it> is called with a valid
- // <len_request>).
- long result = this->length_;
-
- if (result == -1)
- return -1;
-#else
- long result = ACE_OS::filesize (this->handle_);
-#endif /* CHORUS */
-
- // At this point we know <result> is not negative...
- size_t current_file_length = ACE_static_cast (size_t, result);
-
- // Flag to indicate if we need to extend the back store
- int extend_backing_store = 0;
-
- // File length requested by user
- size_t requested_file_length = 0;
-
- // Check <length_request>
- if (length_request == -1)
- // Set length to file_request.
- this->length_ = current_file_length - offset;
- else
- {
- // File length implicitly requested by user
- requested_file_length = length_request + offset;
-
- // Check to see if we need to extend the backing store
- if (requested_file_length > current_file_length)
- {
- // If the length of the mapped region is less than the
- // length of the file then we force a complete new remapping
- // by setting the descriptor to ACE_INVALID_HANDLE (closing
- // down the descriptor if necessary).
- this->close_filemapping_handle ();
-
- // Remember to extend the backing store
- extend_backing_store = 1;
- }
-
- // Set length to length_request
- this->length_ = length_request;
- }
-
- // Check if we need to extend the backing store.
- if (extend_backing_store)
- {
-#if !defined (CHORUS)
- // Remember than write increases the size by one.
- off_t null_byte_position;
- if (requested_file_length > 0)
- // This will make the file size <requested_file_length>
- null_byte_position =
- ACE_static_cast (off_t, requested_file_length - 1);
- else
- // This will make the file size 1
- null_byte_position = 0;
-
- if (ACE_OS::pwrite (this->handle_,
- "",
- 1,
- null_byte_position) == -1)
- return -1;
-#else
- // This nonsense is to make this code similar to the above code.
- size_t actual_file_length;
- if (requested_file_length > 0)
- // This will make the file size <requested_file_length>
- actual_file_length = requested_file_length;
- else
- // This will make the file size 1
- actual_file_length = 1;
-
- if (ACE_OS::ftruncate (this->handle_,
- actual_file_length) == -1)
- return -1;
-#endif /* !CHORUS */
- }
-
-#if defined (__Lynx__)
- // Set flag that indicates whether PROT_WRITE has been enabled.
- write_enabled_ = ACE_BIT_ENABLED (prot, PROT_WRITE);
-#endif /* __Lynx__ */
-
-#if defined (ACE_USE_MAPPING_NAME)
- if (ACE_BIT_ENABLED (share, MAP_SHARED))
- {
-# if defined(__MINGW32__)
- const int max_mapping_name_length = 32;
-# else
- const int max_mapping_name_length = 31;
-# endif /* __MINGW32__ */
- ACE_TCHAR file_mapping_name[max_mapping_name_length + 1];
- to_mapping_name (file_mapping_name,
- filename_,
- max_mapping_name_length + 1);
-
- this->base_addr_ = ACE_OS::mmap (this->base_addr_,
- this->length_,
- prot,
- share,
- this->handle_,
- offset,
- &this->file_mapping_,
- sa,
- file_mapping_name);
- }
- else
-#endif /* ACE_USE_MAPPING_NAME */
- this->base_addr_ = ACE_OS::mmap (this->base_addr_,
- this->length_,
- prot,
- share,
- this->handle_,
- offset,
- &this->file_mapping_,
- sa);
-
- return this->base_addr_ == MAP_FAILED ? -1 : 0;
-}
-
-int
-ACE_Mem_Map::open (const ACE_TCHAR *file_name,
- int flags,
- int mode,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_Mem_Map::open");
-
- ACE_OS::strsncpy (this->filename_,
- file_name,
- MAXPATHLEN);
-
-#if defined (CHORUS) || defined(INTEGRITY)
- this->handle_ = ACE_OS::shm_open (file_name, flags, mode, sa);
-#else
- this->handle_ = ACE_OS::open (file_name, flags, mode, sa);
-#endif /* CHORUS */
-
- if (this->handle_ == ACE_INVALID_HANDLE)
- return -1;
- else
- {
- this->close_handle_ = 1;
- return 0;
- }
-}
-
-int
-ACE_Mem_Map::map (const ACE_TCHAR *file_name,
- int len,
- int flags,
- int mode,
- int prot,
- int share,
- void *addr,
- off_t offset,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_Mem_Map::map");
- this->length_ = 0;
-
- if (this->open (file_name,
- flags,
- mode,
- sa) == -1)
- return -1;
- else
- return this->map_it (this->handle (),
- len,
- prot,
- share,
- addr,
- offset,
- sa);
-}
-
-ACE_Mem_Map::ACE_Mem_Map (void)
- : base_addr_ (MAP_FAILED),
- length_ (0),
- handle_ (ACE_INVALID_HANDLE),
- file_mapping_ (ACE_INVALID_HANDLE),
- close_handle_ (0)
-{
- ACE_TRACE ("ACE_Mem_Map::ACE_Mem_Map");
- ACE_OS::memset (this->filename_, 0, sizeof this->filename_);
-}
-
-// Map a file specified by FILE_NAME.
-
-ACE_Mem_Map::ACE_Mem_Map (const ACE_TCHAR *file_name,
- int len,
- int flags,
- int mode,
- int prot,
- int share,
- void *addr,
- off_t offset,
- LPSECURITY_ATTRIBUTES sa)
- : base_addr_ (MAP_FAILED),
- length_ (0),
- handle_ (ACE_INVALID_HANDLE),
- file_mapping_ (ACE_INVALID_HANDLE),
- close_handle_ (0)
-{
- ACE_TRACE ("ACE_Mem_Map::ACE_Mem_Map");
- if (this->map (file_name,
- len,
- flags,
- mode,
- prot,
- share,
- addr,
- offset,
- sa) < 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Mem_Map::ACE_Mem_Map")));
-}
-
-// Map a file from an open file descriptor HANDLE. This function will
-// lookup the length of the file if it is not given.
-
-ACE_Mem_Map::ACE_Mem_Map (ACE_HANDLE handle,
- int len,
- int prot,
- int share,
- void *addr,
- off_t offset,
- LPSECURITY_ATTRIBUTES sa)
- : base_addr_ (MAP_FAILED),
- length_ (0),
- handle_ (ACE_INVALID_HANDLE),
- file_mapping_ (ACE_INVALID_HANDLE),
- close_handle_ (0)
-{
- ACE_TRACE ("ACE_Mem_Map::ACE_Mem_Map");
-
- ACE_OS::memset (this->filename_,
- 0,
- sizeof this->filename_);
- if (this->map (handle,
- len,
- prot,
- share,
- addr,
- offset,
- sa) < 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Mem_Map::ACE_Mem_Map")));
-}
-
-// Close down and remove the file from the file system.
-
-int
-ACE_Mem_Map::remove (void)
-{
- ACE_TRACE ("ACE_Mem_Map::remove");
-
- ACE_OS::ftruncate (this->handle_, 0);
- this->close ();
-
- if (this->filename_[0] != '\0')
-#if defined (CHORUS)
- return ACE_OS::shm_unlink (this->filename_);
-#else
- return ACE_OS::unlink (this->filename_);
-#endif /* CHORUS */
-
- else
- return 0;
-}
diff --git a/ace/Mem_Map.h b/ace/Mem_Map.h
deleted file mode 100644
index dc430c98ec0..00000000000
--- a/ace/Mem_Map.h
+++ /dev/null
@@ -1,217 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Mem_Map.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_MEM_MAP_H
-#define ACE_MEM_MAP_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_Mem_Map
- *
- * @brief C++ interface OS memory mapping system call.
- *
- * This class works with both the mmap(2) UNIX system and the
- * Win32 family of memory mapping system calls.
- */
-class ACE_Export ACE_Mem_Map
-{
-public:
- // = Initialization and termination methods.
-
- /// Default constructor.
- ACE_Mem_Map (void);
-
- /// Map a file from an open file descriptor <handle>. This function
- /// will lookup the length of the file if it is not given.
- ACE_Mem_Map (ACE_HANDLE handle,
- int length = -1,
- int prot = PROT_RDWR,
- int share = ACE_MAP_PRIVATE,
- void *addr = 0,
- off_t offset = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Map a file specified by <file_name>.
- ACE_Mem_Map (const ACE_TCHAR *filename,
- int len = -1,
- int flags = O_RDWR | O_CREAT,
- int mode = ACE_DEFAULT_FILE_PERMS,
- int prot = PROT_RDWR,
- int share = ACE_MAP_PRIVATE,
- void *addr = 0,
- off_t offset = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Map a file from an open file descriptor <handle>. This function
- /// will lookup the length of the file if it is not given.
- int map (ACE_HANDLE handle,
- int length = -1,
- int prot = PROT_RDWR,
- int share = ACE_MAP_PRIVATE,
- void *addr = 0,
- off_t offset = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Remap the file associated with <handle_>.
- int map (int length = -1,
- int prot = PROT_RDWR,
- int share = ACE_MAP_PRIVATE,
- void *addr = 0,
- off_t offset = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Map a file specified by <filename>.
- int map (const ACE_TCHAR *filename,
- int len = -1,
- int flags = O_RDWR | O_CREAT,
- int mode = ACE_DEFAULT_FILE_PERMS,
- int prot = PROT_RDWR,
- int share = ACE_MAP_PRIVATE,
- void *addr = 0,
- off_t offset = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Destructor.
- ~ACE_Mem_Map (void);
-
- /// Open the file without mapping it.
- int open (const ACE_TCHAR *filename,
- int flags = O_RDWR | O_CREAT,
- int mode = ACE_DEFAULT_FILE_PERMS,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- /// Close down the <handle_> if necessary and unmap the mapping.
- int close (void);
-
- /// Close down the <handle_> if necessary.
- int close_handle (void);
-
- /**
- * Close down the internal <file_mapping_> if necessary. This is
- * mostly necessary on Win32, which has a different handle for
- * file-mapping kernel object.
- */
- int close_filemapping_handle (void);
-
- /// This operator passes back the starting address of the mapped
- /// file.
- int operator () (void *&addr);
-
- /// Return the base address.
- void *addr (void) const;
-
- /// This function returns the number of bytes currently mapped in the
- /// file.
- size_t size (void) const;
-
- /// Unmap the region starting at <base_addr_>.
- int unmap (int len = -1);
-
- /// Unmap the region starting at <addr_>.
- int unmap (void *addr, int len);
-
- /**
- * Sync <len> bytes of the memory region to the backing store
- * starting at <base_addr_>. If <len> == -1 then sync the whole
- * region.
- */
- int sync (ssize_t len = -1, int flags = MS_SYNC);
-
- /// Sync <len> bytes of the memory region to the backing store
- /// starting at <addr_>.
- int sync (void *addr, size_t len, int flags = MS_SYNC);
-
- /**
- * Change the protection of the pages of the mapped region to <prot>
- * starting at <base_addr_> up to <len> bytes. If <len> == -1 then
- * change protection of all pages in the mapped region.
- */
- int protect (ssize_t len = -1, int prot = PROT_RDWR);
-
- /// Change the protection of the pages of the mapped region to <prot>
- /// starting at <addr> up to <len> bytes.
- int protect (void *addr, size_t len, int prot = PROT_RDWR);
-
- /// Close and remove the file from the file system.
- int remove (void);
-
- /// Hook into the underlying VM system.
- int advise (int behavior, int len = -1);
-
- /// Return the underlying <handle_>.
- ACE_HANDLE handle (void) const;
-
- /// Return the name of file that is mapped (if any).
- const ACE_TCHAR *filename (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Base address of the memory-mapped file.
- void *base_addr_;
-
- /// Name of the file that is mapped.
- ACE_TCHAR filename_[MAXPATHLEN + 1];
-
- /// Length of the mapping.
- size_t length_;
-
- /// HANDLE for the open file.
- ACE_HANDLE handle_;
-
- /// HANDLE for the open mapping.
- ACE_HANDLE file_mapping_;
-
-#if defined (__Lynx__)
- /// Flag to indicate that PROT_WRITE has been enabled.
- int write_enabled_;
-#endif /* __Lynx__ */
-
- /// Keeps track of whether we need to close the handle. This is set
- /// if we opened the file.
- int close_handle_;
-
- /// This method does the dirty work of actually calling ::mmap to map
- /// the file into memory.
- int map_it (ACE_HANDLE handle,
- int len = -1,
- int prot = PROT_RDWR,
- int share = MAP_SHARED,
- void *addr = 0,
- off_t offset = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
-
- // = Disallow copying and assignment.
- ACE_UNIMPLEMENTED_FUNC (ACE_Mem_Map (const ACE_Mem_Map &))
- ACE_UNIMPLEMENTED_FUNC (void operator = (const ACE_Mem_Map &))
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Mem_Map.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_MEM_MAP_H */
diff --git a/ace/Mem_Map.i b/ace/Mem_Map.i
deleted file mode 100644
index 85495a13dd5..00000000000
--- a/ace/Mem_Map.i
+++ /dev/null
@@ -1,249 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE ACE_HANDLE
-ACE_Mem_Map::handle (void) const
-{
- ACE_TRACE ("ACE_Mem_Map::handle");
- return this->handle_;
-}
-
-// Return the name of file that is mapped (if any).
-
-ACE_INLINE const ACE_TCHAR *
-ACE_Mem_Map::filename (void) const
-{
- return this->filename_;
-}
-
-ACE_INLINE int
-ACE_Mem_Map::map (ACE_HANDLE handle,
- int len,
- int prot,
- int share,
- void *addr,
- off_t offset,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_Mem_Map::map");
- return this->map_it (handle, len, prot, share, addr, offset, sa);
-}
-
-// Remap the file associated with <this->handle_>.
-
-ACE_INLINE int
-ACE_Mem_Map::map (int len,
- int prot,
- int share,
- void *addr,
- off_t offset,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_TRACE ("ACE_Mem_Map::map");
- // If we're already mapped at a particular location then try to
- // remap the file using the same base address.
- if (addr == 0 && this->base_addr_ != 0 && this->base_addr_ != MAP_FAILED)
- {
- share |= MAP_FIXED;
- addr = this->base_addr_;
- }
- return this->map_it (this->handle (), len, prot,
- share, addr, offset, sa);
-}
-
-// This operator passes back the starting address of the mapped file.
-
-ACE_INLINE int
-ACE_Mem_Map::operator () (void *&addr)
-{
- ACE_TRACE ("ACE_Mem_Map::operator");
-
- if (this->base_addr_ == MAP_FAILED)
- return -1;
- else
- {
- addr = this->base_addr_;
- return 0;
- }
-}
-
-// Return the base address.
-
-ACE_INLINE void *
-ACE_Mem_Map::addr (void) const
-{
- ACE_TRACE ("ACE_Mem_Map::addr");
-
- return this->base_addr_;
-}
-
-// This function returns the number of bytes currently mapped in the
-// file.
-
-ACE_INLINE size_t
-ACE_Mem_Map::size (void) const
-{
- ACE_TRACE ("ACE_Mem_Map::size");
- return this->length_;
-}
-
-ACE_INLINE int
-ACE_Mem_Map::close_filemapping_handle (void)
-{
- int result = 0;
-
- if (this->file_mapping_ != this->handle_
- && this->file_mapping_ != ACE_INVALID_HANDLE)
- {
- // On LynxOS, this will result in unlinking of the (hidden)
- // shared memory file if there are no more references to it.
- result = ACE_OS::close (this->file_mapping_);
- this->file_mapping_ = ACE_INVALID_HANDLE;
- }
-
- return result;
-}
-
-// Unmap the region starting at <this->base_addr_>.
-
-ACE_INLINE int
-ACE_Mem_Map::unmap (int len)
-{
- ACE_TRACE ("ACE_Mem_Map::unmap");
-
- this->close_filemapping_handle ();
-
-#if defined (__Lynx__)
- int writeback_result = 0;
- if (write_enabled_)
- {
- // Write back the contents of the shared memory object to the
- // file.
- const off_t filesize = ACE_OS::filesize (handle_);
- writeback_result =
- ACE_OS::lseek (handle_, 0, 0) != -1
- && ACE_OS::write (handle_,
- base_addr_,
- (int) filesize) == filesize ? 0 : -1;
- }
-#endif /* __Lynx__ */
- if (this->base_addr_ != MAP_FAILED)
- {
- int result = ACE_OS::munmap (this->base_addr_,
- len < 0 ? this->length_ : len);
- this->base_addr_ = MAP_FAILED;
- return result;
- }
- else
-#if defined (__Lynx__)
- return writeback_result;
-#else /* ! __Lynx__ */
- return 0;
-#endif /* ! __Lynx__ */
-}
-
-// Unmap the region starting at <addr_>.
-
-ACE_INLINE int
-ACE_Mem_Map::unmap (void *addr, int len)
-{
- ACE_TRACE ("ACE_Mem_Map::unmap");
-
- this->close_filemapping_handle ();
-
-#if defined (__Lynx__)
- int writeback_result = 0;
- if (write_enabled_)
- {
- // Write back the contents of the shared memory object to the file.
- const off_t filesize = ACE_OS::filesize (handle_);
- writeback_result =
- ACE_OS::lseek (handle_, 0, 0) != -1
- && ACE_OS::write (handle_,
- base_addr_,
- (int) filesize) == filesize ? 0 : -1;
- }
-#endif /* __Lynx__ */
-
-#if defined (__Lynx__)
- return ACE_OS::munmap (addr,
- len < 0 ? this->length_ : len)
- | writeback_result;;
-#else /* ! __Lynx__ */
- return ACE_OS::munmap (addr,
- len < 0 ? this->length_ : len);
-#endif /* ! __Lynx__ */
-}
-
-// Sync <len> bytes of the memory region to the backing store starting
-// at <this->base_addr_>. If <len> == -1 then sync the whole mapped
-// region.
-
-ACE_INLINE int
-ACE_Mem_Map::sync (ssize_t len, int flags)
-{
- ACE_TRACE ("ACE_Mem_Map::sync");
- return ACE_OS::msync (this->base_addr_,
- len < 0 ? this->length_ : len,
- flags);
-}
-
-// Sync <len> bytes of the memory region to the backing store starting
-// at <addr_>.
-
-ACE_INLINE int
-ACE_Mem_Map::sync (void *addr, size_t len, int flags)
-{
- ACE_TRACE ("ACE_Mem_Map::sync");
- return ACE_OS::msync (addr, len, flags);
-}
-
-// Change the protection of the pages of the mapped region to <prot>
-// starting at <this->base_addr_> up to <len> bytes. If <len> == -1
-// then change protection of all pages in the mapped region.
-
-ACE_INLINE int
-ACE_Mem_Map::protect (ssize_t len, int prot)
-{
- ACE_TRACE ("ACE_Mem_Map::protect");
- if (len < 0)
- len = this->length_;
- return ACE_OS::mprotect (this->base_addr_, len, prot);
-}
-
-// Change the protection of the pages of the mapped region to <prot>
-// starting at <addr> up to <len> bytes.
-
-ACE_INLINE int
-ACE_Mem_Map::protect (void *addr, size_t len, int prot)
-{
- ACE_TRACE ("ACE_Mem_Map::protect");
- return ACE_OS::mprotect (addr, len, prot);
-}
-
-// Hook into the underlying VM system.
-
-ACE_INLINE int
-ACE_Mem_Map::advise (int behavior, int len)
-{
- ACE_TRACE ("ACE_Mem_Map::advise");
- size_t advise_len = len < 0 ? this->length_ : ACE_static_cast (size_t, len);
- return ACE_OS::madvise ((caddr_t) this->base_addr_,
- advise_len,
- behavior);
-}
-
-ACE_INLINE int
-ACE_Mem_Map::close_handle (void)
-{
- int result = 0;
-
- if (this->close_handle_)
- {
- this->close_handle_ = 0;
- result = ACE_OS::close (this->handle_);
- this->handle_ = ACE_INVALID_HANDLE;
- }
-
- return result;
-}
diff --git a/ace/Memory_Pool.cpp b/ace/Memory_Pool.cpp
deleted file mode 100644
index e05e54cf19f..00000000000
--- a/ace/Memory_Pool.cpp
+++ /dev/null
@@ -1,1356 +0,0 @@
-// $Id$
-
-// Memory_Pool.cpp
-#include "ace/Memory_Pool.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Memory_Pool.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Auto_Ptr.h"
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-#include "ace/Based_Pointer_T.h"
-#include "ace/Based_Pointer_Repository.h"
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-
-ACE_RCSID(ace, Memory_Pool, "Memory_Pool.cpp,v 4.79 2001/09/02 22:33:16 schmidt Exp")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Local_Memory_Pool)
-
-void
-ACE_Local_Memory_Pool::dump (void) const
-{
- ACE_TRACE ("ACE_Local_Memory_Pool::dump");
-}
-
-ACE_Local_Memory_Pool::ACE_Local_Memory_Pool (const ACE_TCHAR *,
- const OPTIONS *)
-{
- ACE_TRACE ("ACE_Local_Memory_Pool::ACE_Local_Memory_Pool");
-}
-
-void *
-ACE_Local_Memory_Pool::acquire (size_t nbytes,
- size_t &rounded_bytes)
-{
- ACE_TRACE ("ACE_Local_Memory_Pool::acquire");
- rounded_bytes = this->round_up (nbytes);
-
- char *temp = 0;
- ACE_NEW_RETURN (temp,
- char[rounded_bytes],
- 0);
-
- ACE_Auto_Basic_Array_Ptr<char> cp (temp);
-
- if (this->allocated_chunks_.insert (cp.get ()) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("(%P|%t) insertion into set failed\n")),
- 0);
-
- return cp.release ();
-}
-
-int
-ACE_Local_Memory_Pool::release (int)
-{
- ACE_TRACE ("ACE_Local_Memory_Pool::release");
-
- // Zap the memory we allocated.
- for (ACE_Unbounded_Set<char *>::iterator i = this->allocated_chunks_.begin ();
- i != this->allocated_chunks_.end ();
- ++i)
- delete [] *i;
- this->allocated_chunks_.reset ();
- return 0;
-}
-
-#if defined (ACE_WIN32)
-int
-ACE_Local_Memory_Pool::seh_selector (void *)
-{
- return 0;
- // Continue propagate the structural exception up.
-}
-#endif /* ACE_WIN32 */
-
-int
-ACE_Local_Memory_Pool::remap (void *)
-{
- return 0;
- // Not much can be done.
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_MMAP_Memory_Pool)
-
-void
-ACE_MMAP_Memory_Pool::dump (void) const
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::dump");
-}
-
-int
-ACE_MMAP_Memory_Pool::release (int destroy)
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::release");
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
- ACE_BASED_POINTER_REPOSITORY::instance ()->unbind (this->mmap_.addr ());
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-
- if (destroy)
- this->mmap_.remove ();
- else
- this->mmap_.close ();
- return 0;
-}
-
-int
-ACE_MMAP_Memory_Pool::sync (ssize_t len, int flags)
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::sync");
-
- if (len < 0)
- len = ACE_OS::lseek (this->mmap_.handle (), 0, SEEK_END);
-
- return this->mmap_.sync (len, flags);
-}
-
-// Sync <len> bytes of the memory region to the backing store starting
-// at <addr_>.
-
-int
-ACE_MMAP_Memory_Pool::sync (void *addr, size_t len, int flags)
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::sync");
- return ACE_OS::msync (addr, len, flags);
-}
-
-// Change the protection of the pages of the mapped region to <prot>
-// starting at <this->base_addr_> up to <len> bytes. If <len> == -1
-// then change protection of all pages in the mapped region.
-
-int
-ACE_MMAP_Memory_Pool::protect (ssize_t len, int prot)
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::protect");
-
- if (len < 0)
- len = ACE_OS::lseek (this->mmap_.handle (), 0, SEEK_END);
-
- return this->mmap_.protect (len, prot);
-}
-
-// Change the protection of the pages of the mapped region to <prot>
-// starting at <addr> up to <len> bytes.
-
-int
-ACE_MMAP_Memory_Pool::protect (void *addr, size_t len, int prot)
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::protect");
- return ACE_OS::mprotect (addr, len, prot);
-}
-
-ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool (const ACE_TCHAR *backing_store_name,
- const OPTIONS *options)
- : base_addr_ (0),
- use_fixed_addr_(0),
- flags_ (MAP_SHARED),
- write_each_page_ (0),
- minimum_bytes_ (0),
- sa_ (0),
- file_mode_ (ACE_DEFAULT_FILE_PERMS)
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool");
-
-#if (defined (ACE_HAS_SIGINFO_T) && !defined (ACE_LACKS_SI_ADDR)) || defined (ACE_WIN32)
- // For plaforms that give the faulting address.
- guess_on_fault_ = 0;
-#else
- // For plaforms that do NOT give the faulting address, let the
- // options decide whether to guess or not.
- if (options)
- guess_on_fault_ = options->guess_on_fault_;
- else
- // If no options are specified, default to true.
- guess_on_fault_ = 1;
-#endif /* (defined (ACE_HAS_SIGINFO_T) && !defined (ACE_LACKS_SI_ADDR)) || defined (ACE_WIN32) */
-
- // Only change the defaults if <options> != 0.
- if (options)
- {
- if (options->flags_ != 0)
- this->flags_ = options->flags_;
- use_fixed_addr_ = options->use_fixed_addr_;
-
- if (use_fixed_addr_ == ACE_MMAP_Memory_Pool_Options::ALWAYS_FIXED)
- {
- this->base_addr_ = ACE_const_cast (void *, options->base_addr_);
- ACE_SET_BITS (flags_, MAP_FIXED);
- }
- this->write_each_page_ = options->write_each_page_;
- this->minimum_bytes_ = options->minimum_bytes_;
- if (options->sa_ != 0)
- this->sa_ = options->sa_;
- this->file_mode_ = options->file_mode_;
- }
-
- if (backing_store_name == 0)
- {
- // Only create a new unique filename for the backing store file
- // if the user didn't supply one...
-#if defined (ACE_DEFAULT_BACKING_STORE)
- // Create a temporary file.
- ACE_OS::strcpy (this->backing_store_name_,
- ACE_DEFAULT_BACKING_STORE);
-#else /* ACE_DEFAULT_BACKING_STORE */
- if (ACE_Lib_Find::get_temp_dir (this->backing_store_name_,
- MAXPATHLEN - 17) == -1)
- // -17 for ace-malloc-XXXXXX
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Temporary path too long, ")
- ACE_LIB_TEXT ("defaulting to current directory\n")));
- this->backing_store_name_[0] = 0;
- }
-
- // Add the filename to the end
- ACE_OS::strcat (this->backing_store_name_,
- ACE_LIB_TEXT ("ace-malloc-XXXXXX"));
-
-#endif /* ACE_DEFAULT_BACKING_STORE */
- }
- else
- ACE_OS::strsncpy (this->backing_store_name_,
- backing_store_name,
- (sizeof this->backing_store_name_ / sizeof (ACE_TCHAR)));
-
-#if !defined (ACE_WIN32) && !defined (CHORUS)
- if (this->signal_handler_.register_handler (SIGSEGV, this) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n", this->backing_store_name_));
-#endif /* ACE_WIN32 */
-}
-
-// Compute the new map_size of the backing store and commit the
-// memory.
-int
-ACE_MMAP_Memory_Pool::commit_backing_store_name (size_t rounded_bytes,
- off_t &map_size)
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::commit_backing_store_name");
-
-#if defined (CHORUS)
- map_size = rounded_bytes;
-#else
- size_t seek_len;
-
- if (this->write_each_page_)
- // Write to the end of every block to ensure that we have enough
- // space in the backing store.
- seek_len = this->round_up (1); // round_up(1) is one page.
- else
- // We're willing to risk it all in the name of efficiency...
- seek_len = rounded_bytes;
-
- // The following loop will execute multiple times (if
- // this->write_each_page == 1) or just once (if
- // this->write_each_page == 0).
-
- for (size_t cur_block = 0;
- cur_block < rounded_bytes;
- cur_block += seek_len)
- {
- map_size = ACE_OS::lseek (this->mmap_.handle (),
- ACE_static_cast (off_t, seek_len - 1),
- SEEK_END);
-
- if (map_size == -1
- || ACE_OS::write (this->mmap_.handle (),
- "",
- 1) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("(%P|%t) %p\n"),
- this->backing_store_name_),
- -1);
- }
-
- // Increment by one to put us at the beginning of the next chunk...
- map_size++;
-#endif /* CHORUS */
- return 0;
-}
-
-// Memory map the file up to <map_size> bytes.
-
-int
-ACE_MMAP_Memory_Pool::map_file (off_t map_size)
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::map_file");
-
- // Unmap the existing mapping.
- this->mmap_.unmap ();
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
- if(use_fixed_addr_ == ACE_MMAP_Memory_Pool_Options::NEVER_FIXED)
- this->base_addr_ = 0;
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-
- // Remap the file.
- if (this->mmap_.map (map_size,
- PROT_RDWR,
- this->flags_,
- this->base_addr_,
- 0,
- this->sa_) == -1
- || this->base_addr_ != 0
-#ifdef ACE_HAS_WINCE
- && this->mmap_.addr () == 0) // WinCE does not allow users to specify alloc addr.
-#else
- && this->mmap_.addr () != this->base_addr_)
-#endif // ACE_HAS_WINCE
- {
-#if 0
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("(%P|%t) addr = %u, base_addr = %u, map_size = %u, %p\n"),
- this->mmap_.addr (),
- this->base_addr_,
- map_size,
- this->backing_store_name_));
-#endif /* 0 */
- return -1;
- }
- else
- {
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
- this->base_addr_ = this->mmap_.addr ();
- ACE_BASED_POINTER_REPOSITORY::instance ()->bind (this->base_addr_,
- map_size);
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
- return 0;
- }
-}
-
-// Ask operating system for more shared memory, increasing the mapping
-// accordingly. Note that this routine assumes that the appropriate
-// locks are held when it is called.
-
-void *
-ACE_MMAP_Memory_Pool::acquire (size_t nbytes,
- size_t &rounded_bytes)
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::acquire");
- rounded_bytes = this->round_up (nbytes);
-
- // ACE_DEBUG ((LM_DEBUG, "(%P|%t) acquiring more chunks, nbytes =
- // %d, rounded_bytes = %d\n", nbytes, rounded_bytes));
-
- off_t map_size;
-
- if (this->commit_backing_store_name (rounded_bytes,
- map_size) == -1)
- return 0;
- else if (this->map_file (map_size) == -1)
- return 0;
-
- // ACE_DEBUG ((LM_DEBUG, "(%P|%t) acquired more chunks, nbytes = %d,
- // rounded_bytes = %d, map_size = %d\n", nbytes, rounded_bytes,
- // map_size));
-
- return (void *) ((char *) this->mmap_.addr () + (this->mmap_.size () - rounded_bytes));
-}
-
-// Ask system for initial chunk of shared memory.
-
-void *
-ACE_MMAP_Memory_Pool::init_acquire (size_t nbytes,
- size_t &rounded_bytes,
- int &first_time)
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::init_acquire");
-
- first_time = 0;
-
- if (nbytes < (size_t) this->minimum_bytes_)
- nbytes = this->minimum_bytes_;
-
- if (this->mmap_.open (this->backing_store_name_,
- O_RDWR | O_CREAT | O_TRUNC | O_EXCL,
- this->file_mode_, this->sa_) != -1)
- {
- // First time in, so need to acquire memory.
- first_time = 1;
- return this->acquire (nbytes, rounded_bytes);
- }
- else if (errno == EEXIST)
- {
- errno = 0;
- // Reopen file *without* using O_EXCL...
- if (this->mmap_.map (this->backing_store_name_,
-#if defined (CHORUS)
- nbytes,
-#else
- -1,
-#endif /* CHORUS */
- O_RDWR,
- this->file_mode_,
- PROT_RDWR,
- this->flags_,
- this->base_addr_,
- 0,
- this->sa_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("open")),
- 0);
-
- return this->mmap_.addr ();
- }
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("open")),
- 0);
-}
-
-#if defined (ACE_WIN32)
-int
-ACE_MMAP_Memory_Pool::seh_selector (void *ep)
-{
- DWORD ecode = ((EXCEPTION_POINTERS *) ep)->ExceptionRecord->ExceptionCode;
-
- if (ecode == EXCEPTION_ACCESS_VIOLATION)
- {
- void * fault_addr = (void *)
- ((EXCEPTION_POINTERS *) ep)->ExceptionRecord->ExceptionInformation[1];
-
- if (this->remap (fault_addr) == 0)
- return 1;
- }
-
- return 0;
-}
-#endif /* ACE_WIN32 */
-
-int
-ACE_MMAP_Memory_Pool::remap (void *addr)
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::remap");
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("Remapping with fault address at: %X\n"), addr));
- off_t current_map_size = ACE_OS::filesize (this->mmap_.handle ());
- // ACE_OS::lseek (this->mmap_.handle (), 0, SEEK_END);
-
- if (!(addr < (void *) ((char *) this->mmap_.addr () + current_map_size)
- && addr >= this->mmap_.addr ()))
- return -1;
-
- // Extend the mapping to cover the size of the backing store.
- return this->map_file (current_map_size);
-}
-
-ACE_MMAP_Memory_Pool_Options::ACE_MMAP_Memory_Pool_Options (const void *base_addr,
- int use_fixed_addr,
- int write_each_page,
- off_t minimum_bytes,
- u_int flags,
- int guess_on_fault,
- LPSECURITY_ATTRIBUTES sa,
- mode_t file_mode)
- : base_addr_ (base_addr),
- use_fixed_addr_ (use_fixed_addr),
- write_each_page_ (write_each_page),
- minimum_bytes_ (minimum_bytes),
- flags_ (flags),
- guess_on_fault_ (guess_on_fault),
- sa_ (sa),
- file_mode_ (file_mode)
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool_Options::ACE_MMAP_Memory_Pool_Options");
- // for backwards compatability
- if (base_addr_ == 0 && use_fixed_addr_ == ALWAYS_FIXED)
- use_fixed_addr_ = FIRSTCALL_FIXED;
-
- // HP-UX 11, 64-bit bug workaround.
-#if defined (__hpux) && defined (__LP64__)
- long temp = ACE_DEFAULT_BASE_ADDRL;
- base_addr_ = (void *) temp;
-#endif /* defined (__hpux) && defined (__LP64__) */
-}
-
-// Handle SIGSEGV and SIGBUS signals to remap memory properly. When a
-// process reads or writes to non-mapped memory a signal (SIGBUS or
-// SIGSEGV) will be triggered. At that point, the ACE_Sig_Handler
-// (which is part of the ACE_Reactor) will catch the signal and
-// dispatch the handle_signal() method defined here. If the SIGSEGV
-// signal occurred due to the fact that the mapping wasn't uptodate
-// with respect to the backing store, the handler method below will
-// update the mapping accordingly. When the signal handler returns,
-// the instruction should be restarted and the operation should work.
-
-int
-ACE_MMAP_Memory_Pool::handle_signal (int signum, siginfo_t *siginfo, ucontext_t *)
-{
- if (signum != SIGSEGV)
- return -1;
- else
- ; // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P|%t) received %S\n"), signum));
-
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P|%t) new mapping address = %u\n"), (char *) this->base_addr_ + current_map_size));
-
-#if defined (ACE_HAS_SIGINFO_T) && !defined (ACE_LACKS_SI_ADDR)
- // Make sure that the pointer causing the problem is within the
- // range of the backing store.
-
- if (siginfo != 0)
- {
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P|%t) si_signo = %d, si_code = %d, addr = %u\n"), siginfo->si_signo, siginfo->si_code, siginfo->si_addr));
- if (this->remap ((void *) siginfo->si_addr) == -1)
- return -1;
- // ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) address %u out of range\n",
- // siginfo->si_addr), -1);
- return 0;
- }
-#else
- ACE_UNUSED_ARG(siginfo);
-#endif /* ACE_HAS_SIGINFO_T && !defined ACE_LACKS_SI_ADDR */
- // If guess_on_fault_ is true, then we want to try to remap without
- // knowing the faulting address. guess_on_fault_ can only be true
- // on platforms that do not provide the faulting address through
- // signals or exceptions. We check to see if the mapping is up to
- // date. If it is, then this fault isn't due to this mapping and we
- // pass it on.
- if (guess_on_fault_)
- {
- // Check if the current mapping is up to date.
- off_t current_map_size = ACE_OS::filesize (this->mmap_.handle ());
-
- if (ACE_static_cast (size_t, current_map_size) == this->mmap_.size ())
- {
- // The mapping is up to date so this really is a bad
- // address. Thus, remove current signal handler so process
- // will fail with default action and core file will be
- // written.
- this->signal_handler_.remove_handler (SIGSEGV);
- return 0;
- }
-
- // Extend the mapping to cover the size of the backing store.
- return this->map_file (current_map_size);
- }
- else
- return -1;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Lite_MMAP_Memory_Pool)
-
-ACE_Lite_MMAP_Memory_Pool::ACE_Lite_MMAP_Memory_Pool (const ACE_TCHAR *backing_store_name,
- const OPTIONS *options)
- : ACE_MMAP_Memory_Pool (backing_store_name, options)
-{
- ACE_TRACE ("ACE_Lite_MMAP_Memory_Pool::ACE_Lite_MMAP_Memory_Pool");
-}
-
-int
-ACE_Lite_MMAP_Memory_Pool::sync (ssize_t, int)
-{
- ACE_TRACE ("ACE_Lite_MMAP_Memory_Pool::sync");
- return 0;
-}
-
-int
-ACE_Lite_MMAP_Memory_Pool::sync (void *, size_t, int)
-{
- ACE_TRACE ("ACE_Lite_MMAP_Memory_Pool::sync");
- return 0;
-}
-
-#if !defined (ACE_LACKS_SBRK)
-ACE_ALLOC_HOOK_DEFINE(ACE_Sbrk_Memory_Pool)
-
-// Ask system for more local memory via sbrk(2).
-
-void *
-ACE_Sbrk_Memory_Pool::acquire (size_t nbytes,
- size_t &rounded_bytes)
-{
- ACE_TRACE ("ACE_Sbrk_Memory_Pool::acquire");
- rounded_bytes = this->round_up (nbytes);
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P|%t) acquiring more chunks, nbytes = %d, rounded_bytes = %d\n"), nbytes, rounded_bytes));
- void *cp = ACE_OS::sbrk (rounded_bytes);
-
- if (cp == MAP_FAILED)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) cp = %u\n",
- cp),
- 0);
- else
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P|%t) acquired more chunks, nbytes = %d, rounded_bytes = %d, new break = %u\n"), nbytes, rounded_bytes, cp));
- return cp;
-}
-
-void
-ACE_Sbrk_Memory_Pool::dump (void) const
-{
- ACE_TRACE ("ACE_Sbrk_Memory_Pool::dump");
-}
-
-ACE_Sbrk_Memory_Pool::ACE_Sbrk_Memory_Pool (const ACE_TCHAR *,
- const OPTIONS *)
-{
- ACE_TRACE ("ACE_Sbrk_Memory_Pool::ACE_Sbrk_Memory_Pool");
-}
-#endif /* !ACE_LACKS_SBRK */
-
-#if !defined (ACE_LACKS_SYSV_SHMEM)
-ACE_ALLOC_HOOK_DEFINE(ACE_Shared_Memory_Pool)
-
-ACE_Shared_Memory_Pool_Options::ACE_Shared_Memory_Pool_Options (const char *base_addr,
- size_t max_segments,
- size_t file_perms,
- off_t minimum_bytes,
- size_t segment_size)
- : base_addr_ (base_addr),
- max_segments_ (max_segments),
- minimum_bytes_ (minimum_bytes),
- file_perms_ (file_perms),
- segment_size_ (segment_size)
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool_Options::ACE_Shared_Memory_Pool_Options");
- // HP-UX 11, 64-bit bug workaround
-#if defined (__hpux) && defined (__LP64__)
- long temp = ACE_DEFAULT_BASE_ADDRL;
- base_addr_ = (char *) temp;
-#endif /* defined (__hpux) && defined (__LP64__) */
-}
-
-void
-ACE_Shared_Memory_Pool::dump (void) const
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool::dump");
-}
-
-int
-ACE_Shared_Memory_Pool::in_use (off_t &offset,
- size_t &counter)
-{
- offset = 0;
- SHM_TABLE *st = ACE_reinterpret_cast (SHM_TABLE *,
- this->base_addr_);
- shmid_ds buf;
-
- for (counter = 0;
- counter < this->max_segments_ && st[counter].used_ == 1;
- counter++)
- {
- if (ACE_OS::shmctl (st[counter].shmid_, IPC_STAT, &buf) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("(%P|%t) %p\n"),
- ACE_LIB_TEXT ("shmctl")),
- -1);
- offset += buf.shm_segsz;
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P|%t) segment size = %d, offset = %d\n"), buf.shm_segsz, offset));
- }
-
- return 0;
-}
-
-int
-ACE_Shared_Memory_Pool::find_seg (const void* const searchPtr,
- off_t &offset,
- size_t &counter)
-{
- offset = 0;
- SHM_TABLE *st = ACE_reinterpret_cast (SHM_TABLE *,
- this->base_addr_);
- shmid_ds buf;
-
- for (counter = 0;
- counter < this->max_segments_
- && st[counter].used_ == 1;
- counter++)
- {
- if (ACE_OS::shmctl (st[counter].shmid_, IPC_STAT, &buf) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("(%P|%t) %p\n"),
- ACE_LIB_TEXT ("shmctl")),
- -1);
- offset += buf.shm_segsz;
-
- // If segment 'counter' starts at a location greater than the
- // place we are searching for. We then decrement the offset to
- // the start of counter-1. (flabar@vais.net)
- if (((ptrdiff_t) offset + (ptrdiff_t) (this->base_addr_)) > (ptrdiff_t) searchPtr)
- {
- --counter;
- offset -= buf.shm_segsz;
- return 0;
- }
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P|%t) segment size = %d, offset = %d\n"), buf.shm_segsz, offset));
- }
-
- return 0;
-}
-
-int
-ACE_Shared_Memory_Pool::commit_backing_store_name (size_t rounded_bytes,
- off_t &offset)
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool::commit_backing_store_name");
-
- size_t counter;
- SHM_TABLE *st = ACE_reinterpret_cast (SHM_TABLE *,
- this->base_addr_);
-
- if (this->in_use (offset, counter) == -1)
- return -1;
-
- if (counter == this->max_segments_)
- ACE_ERROR_RETURN ((LM_ERROR,
- "exceeded max number of segments = %d, base = %u, offset = %u\n",
- counter,
- this->base_addr_,
- offset),
- -1);
- else
- {
- int shmid = ACE_OS::shmget (st[counter].key_,
- rounded_bytes,
- this->file_perms_ | IPC_CREAT | IPC_EXCL);
- if (shmid == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("(%P|%t) %p\n"),
- ACE_LIB_TEXT ("shmget")),
- 0);
- st[counter].shmid_ = shmid;
- st[counter].used_ = 1;
-
- void *address = (void *) (((char *) this->base_addr_) + offset);
- void *shmem = ACE_OS::shmat (st[counter].shmid_,
- (char *) address,
- 0);
-
- if (shmem != address)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) %p, shmem = %u, address = %u\n",
- "shmat",
- shmem,
- address),
- 0);
- }
- return 0;
-}
-
-// Handle SIGSEGV and SIGBUS signals to remap shared memory properly.
-
-int
-ACE_Shared_Memory_Pool::handle_signal (int , siginfo_t *siginfo, ucontext_t *)
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool::handle_signal");
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("signal %S occurred\n"), signum));
-
-#if defined (ACE_HAS_SIGINFO_T) && !defined (ACE_LACKS_SI_ADDR)
- off_t offset;
- // Make sure that the pointer causing the problem is within the
- // range of the backing store.
-
- if (siginfo != 0)
- {
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P|%t) si_signo = %d, si_code = %d, addr = %u\n"), siginfo->si_signo, siginfo->si_code, siginfo->si_addr));
- size_t counter;
- if (this->in_use (offset, counter) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("(%P|%t) %p\n"),
- ACE_LIB_TEXT ("in_use")));
-#if !defined(_UNICOS)
- else if (!(siginfo->si_code == SEGV_MAPERR
- && siginfo->si_addr < (((char *) this->base_addr_) + offset)
- && siginfo->si_addr >= ((char *) this->base_addr_)))
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) address %u out of range\n",
- siginfo->si_addr),
- -1);
-#else /* ! _UNICOS */
- else if (!(siginfo->si_code == SEGV_MEMERR
- && siginfo->si_addr < (((unsigned long) this->base_addr_) + offset)
- && siginfo->si_addr >= ((unsigned long) this->base_addr_)))
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) address %u out of range\n",
- siginfo->si_addr),
- -1);
-#endif /* ! _UNICOS */
- }
-
- // The above if case will check to see that the address is in the
- // proper range. Therefore there is a segment out there that the
- // pointer wants to point into. Find the segment that someone else
- // has used and attach to it (flabar@vais.net)
-
- size_t counter; // ret value to get shmid from the st table.
-
-#if !defined(_UNICOS)
- if (this->find_seg (siginfo->si_addr, offset, counter) == -1)
-#else /* ! _UNICOS */
- if (this->find_seg ((const void *)siginfo->si_addr, offset, counter) == -1)
-#endif /* ! _UNICOS */
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("(%P|%t) %p\n"),
- ACE_LIB_TEXT ("in_use")),
- -1);
-
- void *address = (void *) (((char *) this->base_addr_) + offset);
- SHM_TABLE *st = ACE_reinterpret_cast (SHM_TABLE *,
- this->base_addr_);
-
- void *shmem = ACE_OS::shmat (st[counter].shmid_, (char *) address, 0);
-
- if (shmem != address)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) %p, shmem = %u, address = %u\n",
- "shmat",
- shmem,
- address),
- 0);
-
- // NOTE: this won't work if we dont have SIGINFO_T or SI_ADDR
-#else
- ACE_UNUSED_ARG (siginfo);
-#endif /* ACE_HAS_SIGINFO_T && !defined (ACE_LACKS_SI_ADDR) */
-
- return 0;
-}
-
-ACE_Shared_Memory_Pool::ACE_Shared_Memory_Pool (const ACE_TCHAR *backing_store_name,
- const OPTIONS *options)
- : base_addr_ (0),
- file_perms_ (ACE_DEFAULT_FILE_PERMS),
- max_segments_ (ACE_DEFAULT_MAX_SEGMENTS),
- minimum_bytes_ (0),
- segment_size_ (ACE_DEFAULT_SEGMENT_SIZE)
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool::ACE_Shared_Memory_Pool");
-
- // Only change the defaults if <options> != 0.
- if (options)
- {
- this->base_addr_ =
- ACE_reinterpret_cast (void *,
- ACE_const_cast (char *,
- options->base_addr_));
- this->max_segments_ = options->max_segments_;
- this->file_perms_ = options->file_perms_;
- this->minimum_bytes_ = options->minimum_bytes_;
- this->segment_size_ = options->segment_size_;
- }
-
- if (backing_store_name)
- {
- // Convert the string into a number that is used as the segment
- // key.
-
- int segment_key;
- int result = ::sscanf (backing_store_name,
- "%d",
- &segment_key);
-
- if (result == 0 || result == EOF)
- // The conversion to a number failed so hash with crc32
- // ACE::crc32 is also used in <SV_Semaphore_Simple>.
- this->base_shm_key_ = (key_t) ACE::crc32 (backing_store_name);
- else
- this->base_shm_key_ = segment_key;
-
- if (this->base_shm_key_ == IPC_PRIVATE)
- // Make sure that the segment can be shared between unrelated
- // processes.
- this->base_shm_key_ = ACE_DEFAULT_SHM_KEY;
- }
- else
- this->base_shm_key_ = ACE_DEFAULT_SHM_KEY;
-
- if (this->signal_handler_.register_handler (SIGSEGV, this) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Sig_Handler::register_handler")));
-}
-
-// Ask system for more shared memory.
-
-void *
-ACE_Shared_Memory_Pool::acquire (size_t nbytes,
- size_t &rounded_bytes)
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool::acquire");
-
- rounded_bytes = this->round_up (nbytes);
-
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P|%t) acquiring more chunks, nbytes = %d, rounded_bytes = %d\n"), nbytes, rounded_bytes));
-
- off_t offset;
-
- if (this->commit_backing_store_name (rounded_bytes, offset) == -1)
- return 0;
-
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%P|%t) acquired more chunks, nbytes = %d, rounded_bytes = %d\n"), nbytes, rounded_bytes));
- return ((char *) this->base_addr_) + offset;
-}
-
-// Ask system for initial chunk of shared memory.
-
-void *
-ACE_Shared_Memory_Pool::init_acquire (size_t nbytes,
- size_t &rounded_bytes,
- int &first_time)
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool::init_acquire");
-
- off_t shm_table_offset = ACE::round_to_pagesize (sizeof (SHM_TABLE));
- rounded_bytes = this->round_up (nbytes > (size_t) this->minimum_bytes_
- ? nbytes
- : (size_t) this->minimum_bytes_);
-
- // Acquire the semaphore to serialize initialization and prevent
- // race conditions.
-
- int shmid = ACE_OS::shmget (this->base_shm_key_,
- rounded_bytes + shm_table_offset,
- this->file_perms_ | IPC_CREAT | IPC_EXCL);
- if (shmid == -1)
- {
- if (errno != EEXIST)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("(%P|%t) %p\n"),
- ACE_LIB_TEXT ("shmget")),
- 0);
- first_time = 0;
-
- shmid = ACE_OS::shmget (this->base_shm_key_, 0, 0);
-
- if (shmid == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("(%P|%t) %p\n"),
- ACE_LIB_TEXT ("shmget")),
- 0);
-
- // This implementation doesn't care if we don't get the key we
- // want...
- this->base_addr_ =
- ACE_OS::shmat (shmid,
- ACE_reinterpret_cast (char *,
- this->base_addr_),
- 0);
- if (this->base_addr_ == ACE_reinterpret_cast (void *, -1))
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) %p, base_addr = %u\n",
- "shmat",
- this->base_addr_),
- 0);
- }
- else
- {
- first_time = 1;
-
- // This implementation doesn't care if we don't get the key we
- // want...
- this->base_addr_ =
- ACE_OS::shmat (shmid,
- ACE_reinterpret_cast (char *,
- this->base_addr_),
- 0);
- if (this->base_addr_ == ACE_reinterpret_cast (char *, -1))
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) %p, base_addr = %u\n",
- "shmat",
- this->base_addr_), 0);
-
- SHM_TABLE *st = ACE_reinterpret_cast (SHM_TABLE *,
- this->base_addr_);
- st[0].key_ = this->base_shm_key_;
- st[0].shmid_ = shmid;
-
- st[0].used_ = 1;
-
- for (size_t counter = 1; // Skip over the first entry...
- counter < this->max_segments_;
- counter++)
- {
- st[counter].key_ = this->base_shm_key_ + counter;
- st[counter].shmid_ = 0;
- st[counter].used_ = 0;
- }
- }
-
- return (void *) (((char *) this->base_addr_) + shm_table_offset);
-}
-
-// Instruct the memory pool to release all of its resources.
-
-int
-ACE_Shared_Memory_Pool::release (int)
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool::release");
-
- int result = 0;
- SHM_TABLE *st = ACE_reinterpret_cast (SHM_TABLE *,
- this->base_addr_);
-
- for (size_t counter = 0;
- counter < this->max_segments_ && st[counter].used_ == 1;
- counter++)
- if (ACE_OS::shmctl (st[counter].shmid_, IPC_RMID, 0) == -1)
- result = -1;
-
- return result;
-}
-#endif /* !ACE_LACKS_SYSV_SHMEM */
-
-#if defined (ACE_WIN32)
-#if !defined (ACE_HAS_WINCE)
-#define ACE_MAP_FILE(_hnd, _access, _offHigh, _offLow, _nBytes, _baseAdd)\
- MapViewOfFileEx (_hnd, _access, _offHigh, _offLow, _nBytes, _baseAdd)
-#else //if !defined (ACE_HAS_WINCE)
-#define ACE_MAP_FILE(_hnd, _access, _offHigh, _offLow, _nBytes, _baseAdd)\
- MapViewOfFile (_hnd, _access, _offHigh, _offLow, _nBytes)
-#endif /* !defined (ACE_HAS_WINCE) */
-
-ACE_Pagefile_Memory_Pool_Options::ACE_Pagefile_Memory_Pool_Options (void *base_addr,
- size_t max_size)
- : base_addr_ (base_addr),
- max_size_ (max_size)
-{
-}
-
-int
-ACE_Pagefile_Memory_Pool::release (int)
-{
- return this->unmap ();
-}
-
-ACE_Pagefile_Memory_Pool::ACE_Pagefile_Memory_Pool (const ACE_TCHAR *backing_store_name,
- const OPTIONS *options)
- : shared_cb_ (0),
- object_handle_ (0),
- page_size_ (ACE_Pagefile_Memory_Pool::round_to_page_size (1))
-{
- // Initialize local copy of pool statistics.
- if (options != 0)
- {
- this->local_cb_.req_base_ = options->base_addr_;
- this->local_cb_.mapped_base_ = 0;
- this->local_cb_.sh_.max_size_ =
- options->max_size_;
- this->local_cb_.sh_.mapped_size_ = 0;
- this->local_cb_.sh_.free_offset_ =
- this->local_cb_.sh_.mapped_size_;
- this->local_cb_.sh_.free_size_ = 0;
- }
-
- if (backing_store_name == 0)
- // Only create a new unique filename for the backing store file if
- // the user didn't supply one...
- backing_store_name = ACE_DEFAULT_PAGEFILE_POOL_NAME;
-
- ACE_OS::strsncpy (this->backing_store_name_,
- backing_store_name,
- (sizeof this->backing_store_name_ / sizeof (ACE_TCHAR)));
-}
-
-void *
-ACE_Pagefile_Memory_Pool::acquire (size_t nbytes,
- size_t &rounded_bytes)
-{
- rounded_bytes = round_to_page_size (nbytes);
- void *result = 0;
- int first_time = 0;
-
- // Check local_cb_ for consistency. Remap, if extra space is too
- // small and/or we didn't map the whole shared memory section
- if (this->shared_cb_->sh_.mapped_size_
- > this->local_cb_.sh_.mapped_size_
- || this->shared_cb_->sh_.free_size_ < rounded_bytes)
- {
- size_t append = 0;
- if (rounded_bytes > this->shared_cb_->sh_.free_size_)
- append = rounded_bytes - this->shared_cb_->sh_.free_size_;
-
- if (this->map (first_time, append) < 0)
- return result;
- }
-
- // Get the block from extra space and update shared and local
- // control block
- if (this->shared_cb_->sh_.free_size_ < rounded_bytes)
- return result;
-
- result = (void *)((char *) this->local_cb_.mapped_base_
- + this->shared_cb_->sh_.free_offset_);
- this->shared_cb_->sh_.free_offset_ += rounded_bytes;
- this->shared_cb_->sh_.free_size_ -= rounded_bytes;
- this->local_cb_.sh_ = this->shared_cb_->sh_;
-
- return result;
-}
-
-void *
-ACE_Pagefile_Memory_Pool::init_acquire (size_t nbytes,
- size_t &rounded_bytes,
- int &first_time)
-{
- // Map the shared memory and get information, if we created the
- // shared memory.
- if (this->map (first_time) < 0)
- return 0;
-
- if (first_time != 0)
- // We created the shared memory. So we have to allocate the
- // requested memory.
- return this->acquire (nbytes, rounded_bytes);
- else
- // We just mapped the memory and return the base address
- return (void *)((char *) this->local_cb_.mapped_base_
- + ACE_Pagefile_Memory_Pool::round_to_page_size
- ((int) sizeof (Control_Block)));
-}
-
-int
-ACE_Pagefile_Memory_Pool::seh_selector (void *ep)
-{
- DWORD ecode = ((EXCEPTION_POINTERS *) ep)->ExceptionRecord->ExceptionCode;
-
- if (ecode == EXCEPTION_ACCESS_VIOLATION)
- {
- void * fault_addr = (void *)
- ((EXCEPTION_POINTERS *) ep)->ExceptionRecord->ExceptionInformation[1];
-
- if (this->remap (fault_addr) == 0)
- return 1;
- }
-
- return 0;
-}
-
-int
-ACE_Pagefile_Memory_Pool::remap (void *addr)
-{
- // If the shared memory is not mapped or the address, that caused
- // the memory fault is outside of the commited range of chunks, we
- // return.
- if (this->shared_cb_ == 0
- || addr < this->local_cb_.mapped_base_
- || addr >= (void *)((char *) this->local_cb_.mapped_base_
- + this->shared_cb_->sh_.mapped_size_))
- return -1;
-
- // We can solve the problem by committing additional chunks.
- int first_time = 0;
- return this->map (first_time);
-}
-
-int
-ACE_Pagefile_Memory_Pool::unmap (void)
-{
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
- ACE_BASED_POINTER_REPOSITORY::instance ()->unbind
- (this->local_cb_.mapped_base_);
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-
- // Cleanup cached pool pointer.
- this->shared_cb_ = 0;
-
- if (this->local_cb_.sh_.mapped_size_ > 0)
- ::UnmapViewOfFile (this->local_cb_.mapped_base_);
-
- // Reset local pool statistics.
- this->local_cb_.req_base_ =
- ACE_DEFAULT_PAGEFILE_POOL_BASE;
- this->local_cb_.mapped_base_ = 0;
- this->local_cb_.sh_.max_size_ =
- ACE_DEFAULT_PAGEFILE_POOL_SIZE;
- this->local_cb_.sh_.mapped_size_ = 0;
- this->local_cb_.sh_.free_offset_ =
- this->local_cb_.sh_.mapped_size_;
- this->local_cb_.sh_.free_size_ = 0;
-
- // Release the pool
- if (this->object_handle_ != 0)
- {
- ::CloseHandle (this->object_handle_);
- this->object_handle_ = 0;
- }
- return 0;
-}
-
-int
-ACE_Pagefile_Memory_Pool::map (int &first_time,
- size_t append_bytes)
-{
- size_t map_size;
- void *map_addr;
-
- // Create file mapping, if not yet done
- if (object_handle_ == 0)
- {
-#if (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
- // Allow access by all users.
- SECURITY_ATTRIBUTES sa;
- SECURITY_DESCRIPTOR sd;
- ::InitializeSecurityDescriptor (&sd,
- SECURITY_DESCRIPTOR_REVISION);
- ::SetSecurityDescriptorDacl (&sd,
- TRUE,
- 0,
- FALSE);
- sa.nLength = sizeof (SECURITY_ATTRIBUTES);
- sa.lpSecurityDescriptor = &sd;
- sa.bInheritHandle = FALSE;
-#endif /* (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) */
-
- // Get an object handle to the named reserved memory object.
- DWORD size_high;
- DWORD size_low;
-#if defined (ACE_WIN64)
- size_high = ACE_static_cast (DWORD,
- this->local_cb_.sh_.max_size_ >> 32);
- size_low = ACE_static_cast (DWORD,
- this->local_cb_.sh_.max_size_ & 0xFFFFFFFF);
-#else
- size_high = 0;
- size_low = this->local_cb_.sh_.max_size_;
-#endif
-
- object_handle_ =
- ACE_TEXT_CreateFileMapping (INVALID_HANDLE_VALUE,
-#if (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
- &sa,
-#else
- 0,
-#endif /* (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) */
- PAGE_READWRITE | SEC_RESERVE,
- size_high,
- size_low,
- this->backing_store_name_);
- if (object_handle_ == 0)
- return -1;
- first_time =
- ::GetLastError () == ERROR_ALREADY_EXISTS
- ? 0
- : 1;
- }
-
- // Do the initial mapping.
- if (this->shared_cb_ == 0)
- {
- // Map a view to the shared memory. Note: <MapViewOfFile[Ex]>
- // does *not* commit the pages!
- this->shared_cb_ = (ACE_Pagefile_Memory_Pool::Control_Block *)
- ACE_MAP_FILE (this->object_handle_,
- FILE_MAP_WRITE,
- 0,
- 0,
- this->local_cb_.sh_.max_size_,
- this->local_cb_.req_base_);
- if (this->shared_cb_ == 0)
- return -1;
-
- // There was no previous mapping, so we map the first chunk and
- // initialize the shared pool statistics.
- if (first_time)
- {
- // 1st block is used to keep shared memory statistics.
- map_size =
- ACE_Pagefile_Memory_Pool::round_to_chunk_size
- (ACE_Pagefile_Memory_Pool::round_to_page_size
- ((int) sizeof(Control_Block))
- + append_bytes);
-
- if (::VirtualAlloc ((void *) this->shared_cb_,
- map_size,
- MEM_COMMIT,
- PAGE_READWRITE) == 0)
- return -1;
-
- this->shared_cb_->req_base_ = 0;
- this->shared_cb_->mapped_base_ = 0;
- this->local_cb_.mapped_base_ = this->shared_cb_;
- this->local_cb_.sh_.mapped_size_ = map_size;
- this->local_cb_.sh_.free_offset_ =
- round_to_page_size ((int) sizeof (Control_Block));
- this->local_cb_.sh_.free_size_ =
- this->local_cb_.sh_.mapped_size_ -
- this->local_cb_.sh_.free_offset_;
- this->shared_cb_->sh_ = this->local_cb_.sh_;
- }
-
- // The shared memory exists, so we map the first chunk to the
- // base address of the pool to get the shared pool statistics.
- else
- {
- // 1st block is used to keep shared memory statistics.
- map_size =
- ACE_Pagefile_Memory_Pool::round_to_chunk_size
- ((int) sizeof (Control_Block));
-
- if (::VirtualAlloc ((void *) this->shared_cb_,
- map_size,
- MEM_COMMIT,
- PAGE_READWRITE) == 0)
- return -1;
- this->local_cb_.mapped_base_ = this->shared_cb_;
- this->local_cb_.sh_.mapped_size_ = map_size;
- }
- }
-
- // If the shared memory is larger than the part we've already
- // committed, we have to remap it.
- if (this->shared_cb_->sh_.mapped_size_ >
- this->local_cb_.sh_.mapped_size_
- || append_bytes > 0)
- {
- map_size =
- (this->shared_cb_->sh_.mapped_size_ -
- this->local_cb_.sh_.mapped_size_)
- + ACE_Pagefile_Memory_Pool::round_to_chunk_size
- (append_bytes);
-
- map_addr = (void *)((char *) this->shared_cb_ +
- this->local_cb_.sh_.mapped_size_);
-
- if (::VirtualAlloc (map_addr,
- map_size,
- MEM_COMMIT,
- PAGE_READWRITE) == 0)
- return -1;
- else if (append_bytes > 0)
- {
- this->shared_cb_->sh_.mapped_size_ +=
- round_to_chunk_size (append_bytes);
- this->shared_cb_->sh_.free_size_ =
- this->shared_cb_->sh_.mapped_size_ -
- this->shared_cb_->sh_.free_offset_;
- }
- }
-
- // Update local copy of the shared memory statistics.
- this->local_cb_.sh_ =
- this->shared_cb_->sh_;
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
- ACE_BASED_POINTER_REPOSITORY::instance ()->bind
- (this->local_cb_.mapped_base_,
- this->local_cb_.sh_.mapped_size_);
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-
- return 0;
-}
-
-#endif /* ACE_WIN32 */
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Auto_Basic_Array_Ptr<char>;
-template class ACE_Unbounded_Set<char *>;
-template class ACE_Unbounded_Set_Iterator<char *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Auto_Basic_Array_Ptr<char>
-#pragma instantiate ACE_Unbounded_Set<char *>
-#pragma instantiate ACE_Unbounded_Set_Iterator<char *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Memory_Pool.h b/ace/Memory_Pool.h
deleted file mode 100644
index f162dc6ee68..00000000000
--- a/ace/Memory_Pool.h
+++ /dev/null
@@ -1,814 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Memory_Pool.h
- *
- * $Id$
- *
- * @author Dougls C. Schmidt <schmidt@cs.wustl.edu> and Prashant Jain <pjain@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_MEMORY_POOL_H
-#define ACE_MEMORY_POOL_H
-#include "ace/pre.h"
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Event_Handler.h"
-#include "ace/Signal.h"
-#include "ace/Mem_Map.h"
-#if !defined (ACE_WIN32)
-#include "ace/SV_Semaphore_Complex.h"
-#endif /* !ACE_WIN32 */
-
-#include "ace/Unbounded_Set.h"
-
-#if !defined (ACE_LACKS_SBRK)
-/**
- * @class ACE_Sbrk_Memory_Pool_Options
- *
- * @brief Helper class for Sbrk Memory Pool constructor options.
- *
- * This should be a nested class, but that breaks too many
- * compilers.
- */
-class ACE_Export ACE_Sbrk_Memory_Pool_Options
-{
-};
-
-/**
- * @class ACE_Sbrk_Memory_Pool
- *
- * @brief Make a memory pool that is based on <sbrk(2)>.
- */
-class ACE_Export ACE_Sbrk_Memory_Pool
-{
-public:
- typedef ACE_Sbrk_Memory_Pool_Options OPTIONS;
-
- /// Initialize the pool.
- ACE_Sbrk_Memory_Pool (const ACE_TCHAR *backing_store_name = 0,
- const OPTIONS *options = 0);
-
- virtual ~ACE_Sbrk_Memory_Pool (void);
-
- // = Implementor operations.
- /// Ask system for initial chunk of local memory.
- virtual void *init_acquire (size_t nbytes,
- size_t &rounded_bytes,
- int &first_time);
-
- /// Acquire at least NBYTES from the memory pool. ROUNDED_BYTES is
- /// the actual number of bytes allocated.
- virtual void *acquire (size_t nbytes,
- size_t &rounded_bytes);
-
- /// Instruct the memory pool to release all of its resources.
- virtual int release (int destroy = 1);
-
- /**
- * Sync <len> bytes of the memory region to the backing store
- * starting at <this->base_addr_>. If <len> == -1 then sync the
- * whole region.
- */
- virtual int sync (ssize_t len = -1, int flags = MS_SYNC);
-
- /// Sync <len> bytes of the memory region to the backing store
- /// starting at <addr_>.
- virtual int sync (void *addr, size_t len, int flags = MS_SYNC);
-
- /**
- * Change the protection of the pages of the mapped region to <prot>
- * starting at <this->base_addr_> up to <len> bytes. If <len> == -1
- * then change protection of all pages in the mapped region.
- */
- virtual int protect (ssize_t len = -1, int prot = PROT_RDWR);
-
- /// Change the protection of the pages of the mapped region to <prot>
- /// starting at <addr> up to <len> bytes.
- virtual int protect (void *addr, size_t len, int prot = PROT_RDWR);
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Return the base address of this memory pool, 0 if base_addr
- /// never changes.
- virtual void *base_addr (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Implement the algorithm for rounding up the request to an
- /// appropriate chunksize.
- virtual size_t round_up (size_t nbytes);
-};
-#endif /* !ACE_LACKS_SBRK */
-
-#if !defined (ACE_LACKS_SYSV_SHMEM)
-
-/**
- * @class ACE_Shared_Memory_Pool_Options
- *
- * @brief Helper class for Shared Memory Pool constructor options.
- *
- * This should be a nested class, but that breaks too many
- * compilers.
- */
-class ACE_Export ACE_Shared_Memory_Pool_Options
-{
-public:
- /// Initialization method.
- ACE_Shared_Memory_Pool_Options (const char *base_addr = ACE_DEFAULT_BASE_ADDR,
- size_t max_segments = ACE_DEFAULT_MAX_SEGMENTS,
- size_t file_perms = ACE_DEFAULT_FILE_PERMS,
- off_t minimum_bytes = 0,
- size_t segment_size = ACE_DEFAULT_SEGMENT_SIZE);
-
- /// Base address of the memory-mapped backing store.
- const char *base_addr_;
-
- /// Number of shared memory segments to allocate.
- size_t max_segments_;
-
- /// What the minimum bytes of the initial segment should be.
- off_t minimum_bytes_;
-
- /// File permissions to use when creating/opening a segment.
- size_t file_perms_;
-
- /// Shared memory segment size.
- size_t segment_size_;
-};
-
-/**
- * @class ACE_Shared_Memory_Pool
- *
- * @brief Make a memory pool that is based on System V shared memory
- * (shmget(2) etc.). This implementation allows memory to be
- * shared between processes. If your platform doesn't support
- * System V shared memory (e.g., Win32 and many RTOS platforms
- * do not) then you should use <ACE_MMAP_Memory_Pool> instead of this
- * class. In fact, you should probably use <ACE_MMAP_Memory_Pool> on
- * platforms that *do* support System V shared memory since it
- * provides more powerful features, such as persistent backing store
- * and greatly scalability.
- */
-class ACE_Export ACE_Shared_Memory_Pool : public ACE_Event_Handler
-{
-public:
- typedef ACE_Shared_Memory_Pool_Options OPTIONS;
-
- /// Initialize the pool.
- ACE_Shared_Memory_Pool (const ACE_TCHAR *backing_store_name = 0,
- const OPTIONS *options = 0);
-
- virtual ~ACE_Shared_Memory_Pool (void);
-
- /// Ask system for initial chunk of local memory.
- virtual void *init_acquire (size_t nbytes,
- size_t &rounded_bytes,
- int &first_time);
-
- /**
- * Acquire at least NBYTES from the memory pool. ROUNDED_BYTES is
- * the actual number of bytes allocated. Also acquires an internal
- * semaphore that ensures proper serialization of Memory_Pool
- * initialization across processes.
- */
- virtual void *acquire (size_t nbytes,
- size_t &rounded_bytes);
-
- /// Instruct the memory pool to release all of its resources.
- virtual int release (int destroy = 1);
-
- /// Sync the memory region to the backing store starting at
- /// <this->base_addr_>.
- virtual int sync (ssize_t len = -1, int flags = MS_SYNC);
-
- /// Sync the memory region to the backing store starting at <addr_>.
- virtual int sync (void *addr, size_t len, int flags = MS_SYNC);
-
- /**
- * Change the protection of the pages of the mapped region to <prot>
- * starting at <this->base_addr_> up to <len> bytes. If <len> == -1
- * then change protection of all pages in the mapped region.
- */
- virtual int protect (ssize_t len = -1, int prot = PROT_RDWR);
-
- /// Change the protection of the pages of the mapped region to <prot>
- /// starting at <addr> up to <len> bytes.
- virtual int protect (void *addr, size_t len, int prot = PROT_RDWR);
-
- /// Return the base address of this memory pool, 0 if base_addr
- /// never changes.
- virtual void *base_addr (void) const;
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Implement the algorithm for rounding up the request to an
- /// appropriate chunksize.
- virtual size_t round_up (size_t nbytes);
-
- /**
- * Commits a new shared memory segment if necessary after an
- * <acquire> or a signal. <offset> is set to the new offset into
- * the backing store.
- */
- virtual int commit_backing_store_name (size_t rounded_bytes,
- off_t &offset);
-
- /// Keeps track of all the segments being used.
- struct SHM_TABLE
- {
- /// Shared memory segment key.
- key_t key_;
-
- /// Shared memory segment internal id.
- int shmid_;
-
- /// Is the segment currently used.;
- int used_;
- };
-
- /**
- * Base address of the shared memory segment. If this has the value
- * of 0 then the OS is free to select any address, otherwise this
- * value is what the OS must try to use to map the shared memory
- * segment.
- */
- void *base_addr_;
-
- /// File permissions to use when creating/opening a segment.
- size_t file_perms_;
-
- /// Number of shared memory segments in the <SHM_TABLE> table.
- size_t max_segments_;
-
- /// What the minimim bytes of the initial segment should be.
- off_t minimum_bytes_;
-
- /// Shared memory segment size.
- size_t segment_size_;
-
- /// Base shared memory key for the segment.
- key_t base_shm_key_;
-
- /// Find the segment that contains the @a searchPtr
- virtual int find_seg (const void *const searchPtr,
- off_t &offset,
- size_t &counter);
-
- /// Determine how much memory is currently in use.
- virtual int in_use (off_t &offset,
- size_t &counter);
-
- /// Handles SIGSEGV.
- ACE_Sig_Handler signal_handler_;
-
- /// Handle SIGSEGV and SIGBUS signals to remap shared memory
- /// properly.
- virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
-};
-#endif /* !ACE_LACKS_SYSV_SHMEM */
-
-/**
- * @class ACE_Local_Memory_Pool_Options
- *
- * @brief Helper class for Local Memory Pool constructor options.
- *
- * This should be a nested class, but that breaks too many
- * compilers.
- */
-class ACE_Export ACE_Local_Memory_Pool_Options
-{
-};
-
-/**
- * @class ACE_Local_Memory_Pool
- *
- * @brief Make a memory pool that is based on C++ new/delete. This is
- * useful for integrating existing components that use new/delete
- * into the ACE Malloc scheme...
- */
-class ACE_Export ACE_Local_Memory_Pool
-{
-public:
- typedef ACE_Local_Memory_Pool_Options OPTIONS;
-
- /// Initialize the pool.
- ACE_Local_Memory_Pool (const ACE_TCHAR *backing_store_name = 0,
- const OPTIONS *options = 0);
-
- virtual ~ACE_Local_Memory_Pool (void);
-
- /// Ask system for initial chunk of local memory.
- virtual void *init_acquire (size_t nbytes,
- size_t &rounded_bytes,
- int &first_time);
-
- /// Acquire at least NBYTES from the memory pool. ROUNDED_BYTES is
- /// the actual number of bytes allocated.
- virtual void *acquire (size_t nbytes,
- size_t &rounded_bytes);
-
- /// Instruct the memory pool to release all of its resources.
- virtual int release (int destroy = 1);
-
- /**
- * Sync <len> bytes of the memory region to the backing store
- * starting at <this->base_addr_>. If <len> == -1 then sync the
- * whole region.
- */
- virtual int sync (ssize_t len = -1, int flags = MS_SYNC);
-
- /// Sync <len> bytes of the memory region to the backing store
- /// starting at <addr_>.
- virtual int sync (void *addr, size_t len, int flags = MS_SYNC);
-
- /**
- * Change the protection of the pages of the mapped region to <prot>
- * starting at <this->base_addr_> up to <len> bytes. If <len> == -1
- * then change protection of all pages in the mapped region.
- */
- virtual int protect (ssize_t len = -1, int prot = PROT_RDWR);
-
- /// Change the protection of the pages of the mapped region to <prot>
- /// starting at <addr> up to <len> bytes.
- virtual int protect (void *addr, size_t len, int prot = PROT_RDWR);
-
-#if defined (ACE_WIN32)
- /**
- * Win32 Structural exception selector. The return value decides
- * how to handle memory pool related structural exceptions. Returns
- * 1, 0, or , -1.
- */
- virtual int seh_selector (void *);
-#endif /* ACE_WIN32 */
-
- /**
- * Try to extend the virtual address space so that <addr> is now
- * covered by the address mapping. Always returns 0 since we can't
- * remap a local memory pool.
- */
- virtual int remap (void *addr);
-
- /// Return the base address of this memory pool, 0 if base_addr
- /// never changes.
- virtual void *base_addr (void) const;
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// List of memory that we have allocated.
- ACE_Unbounded_Set<char *> allocated_chunks_;
-
- /// Implement the algorithm for rounding up the request to an
- /// appropriate chunksize.
- virtual size_t round_up (size_t nbytes);
-
-};
-
-/**
- * @class ACE_MMAP_Memory_Pool_Options
- *
- * @brief Helper class for MMAP Memory Pool constructor options.
- *
- * This should be a nested class, but that breaks too many
- * compilers.
- */
-class ACE_Export ACE_MMAP_Memory_Pool_Options
-{
-public:
- enum
- {
- /**
- * The base address from the first call to mmap will be used for subsequent
- * calls to mmap.
- */
- FIRSTCALL_FIXED = 0,
-
- /**
- * The base address specified in base_addr will be used in all calls to
- * mmap.
- */
- ALWAYS_FIXED = 1,
-
- /**
- * The base address will be selected by the OS for each call to mmap.
- * Caution should be used with this mode since a call that requires the
- * backing store to grow may change pointers that are cached by the
- * application.
- */
- NEVER_FIXED = 2
- };
-
- // = Initialization method.
- ACE_MMAP_Memory_Pool_Options (const void *base_addr = ACE_DEFAULT_BASE_ADDR,
- int use_fixed_addr = ALWAYS_FIXED,
- int write_each_page = 1,
- off_t minimum_bytes = 0,
- u_int flags = 0,
- int guess_on_fault = 1,
- LPSECURITY_ATTRIBUTES sa = 0,
- mode_t file_mode = ACE_DEFAULT_FILE_PERMS);
-
- /// Base address of the memory-mapped backing store.
- const void *base_addr_;
-
- /**
- * Determines whether we set <base_addr_> or if mmap(2) selects it
- * FIRSTCALL_FIXED The base address from the first call to mmap
- * will be used for subsequent calls to mmap
- * ALWAYS_FIXED The base address specified in base_addr will be
- * used in all calls to mmap.
- * NEVER_FIXED The base address will be selected by the OS for
- * each call to mmap. Caution should be used with
- * this mode since a call that requires the backing
- * store to grow may change pointers that are
- * cached by the application.
- */
- int use_fixed_addr_;
-
- /// Should each page be written eagerly to avoid surprises later
- /// on?
- int write_each_page_;
-
- /// What the minimim bytes of the initial segment should be.
- off_t minimum_bytes_;
-
- /// Any special flags that need to be used for <mmap>.
- u_int flags_;
-
- /**
- * Try to remap without knowing the faulting address. This
- * parameter is ignored on platforms that know the faulting address
- * (UNIX with SI_ADDR and Win32).
- */
- int guess_on_fault_;
-
- /// Pointer to a security attributes object. Only used on NT.
- LPSECURITY_ATTRIBUTES sa_;
-
- /// File mode for mmaped file, if it is created.
- mode_t file_mode_;
-};
-
-/**
- * @class ACE_MMAP_Memory_Pool
- *
- * @brief Make a memory pool that is based on <mmap(2)>. This
- * implementation allows memory to be shared between processes.
- */
-class ACE_Export ACE_MMAP_Memory_Pool : public ACE_Event_Handler
-{
-public:
- typedef ACE_MMAP_Memory_Pool_Options OPTIONS;
-
- // = Initialization and termination methods.
-
- /// Initialize the pool.
- ACE_MMAP_Memory_Pool (const ACE_TCHAR *backing_store_name = 0,
- const OPTIONS *options = 0);
-
- /// Destructor.
- virtual ~ACE_MMAP_Memory_Pool (void);
-
- /// Ask system for initial chunk of shared memory.
- virtual void *init_acquire (size_t nbytes,
- size_t &rounded_bytes,
- int &first_time);
-
- /**
- * Acquire at least <nbytes> from the memory pool. <rounded_bytes>
- * is the actual number of bytes allocated. Also acquires an
- * internal semaphore that ensures proper serialization of
- * <ACE_MMAP_Memory_Pool> initialization across processes.
- */
- virtual void *acquire (size_t nbytes,
- size_t &rounded_bytes);
-
- /// Instruct the memory pool to release all of its resources.
- virtual int release (int destroy = 1);
-
- /// Sync the memory region to the backing store starting at
- /// <this->base_addr_>.
- virtual int sync (ssize_t len = -1, int flags = MS_SYNC);
-
- /// Sync the memory region to the backing store starting at <addr_>.
- virtual int sync (void *addr, size_t len, int flags = MS_SYNC);
-
- /**
- * Change the protection of the pages of the mapped region to <prot>
- * starting at <this->base_addr_> up to <len> bytes. If <len> == -1
- * then change protection of all pages in the mapped region.
- */
- virtual int protect (ssize_t len = -1, int prot = PROT_RDWR);
-
- /// Change the protection of the pages of the mapped region to <prot>
- /// starting at <addr> up to <len> bytes.
- virtual int protect (void *addr, size_t len, int prot = PROT_RDWR);
-
-#if defined (ACE_WIN32)
- /**
- * Win32 Structural exception selector. The return value decides
- * how to handle memory pool related structural exceptions. Returns
- * 1, 0, or , -1.
- */
- virtual int seh_selector (void *);
-#endif /* ACE_WIN32 */
-
- /**
- * Try to extend the virtual address space so that <addr> is now
- * covered by the address mapping. The method succeeds and returns
- * 0 if the backing store has adequate memory to cover this address.
- * Otherwise, it returns -1. This method is typically called by a
- * UNIX signal handler for SIGSEGV or a Win32 structured exception
- * when another process has grown the backing store (and its
- * mapping) and our process now incurs a fault because our mapping
- * isn't in range (yet).
- */
- virtual int remap (void *addr);
-
- /// Return the base address of this memory pool.
- virtual void *base_addr (void) const;
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Implement the algorithm for rounding up the request to an
- /// appropriate chunksize.
- virtual size_t round_up (size_t nbytes);
-
- /// Compute the new <map_size> of the backing store and commit the
- /// memory.
- virtual int commit_backing_store_name (size_t rounded_bytes,
- off_t &map_size);
-
- /// Memory map the file up to <map_size> bytes.
- virtual int map_file (off_t map_size);
-
- /// Handle SIGSEGV and SIGBUS signals to remap shared memory
- /// properly.
- virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
-
- /// Handles SIGSEGV.
- ACE_Sig_Handler signal_handler_;
-
- /// Memory-mapping object.
- ACE_Mem_Map mmap_;
-
- /**
- * Base of mapped region. If this has the value of 0 then the OS is
- * free to select any address to map the file, otherwise this value
- * is what the OS must try to use to mmap the file.
- */
- void *base_addr_;
-
- /// Must we use the <base_addr_> or can we let mmap(2) select it?
- int use_fixed_addr_;
-
- /// Flags passed into <ACE_OS::mmap>.
- int flags_;
-
- /// Should we write a byte to each page to forceably allocate memory
- /// for this backing store?
- int write_each_page_;
-
- /// What the minimum bytes of the initial segment should be.
- off_t minimum_bytes_;
-
- /// Name of the backing store where the shared memory pool is kept.
- ACE_TCHAR backing_store_name_[MAXPATHLEN + 1];
-
- /**
- * Try to remap without knowing the faulting address. This
- * parameter is ignored on platforms that know the faulting address
- * (UNIX with SI_ADDR and Win32).
- */
- int guess_on_fault_;
-
- /// Security attributes object, only used on NT.
- LPSECURITY_ATTRIBUTES sa_;
-
- /// Protection mode for mmaped file.
- mode_t file_mode_;
-};
-
-/**
- * @class ACE_Lite_MMAP_Memory_Pool
- *
- * @brief Make a ``lighter-weight'' memory pool based <ACE_Mem_Map>.
- *
- * This implementation allows memory to be shared between
- * processes. However, unlike the <ACE_MMAP_Memory_Pool>
- * the <sync> methods are no-ops, which means that we don't pay
- * for the price of flushing the memory to the backing store on
- * every update. Naturally, this trades off increased
- * performance for less reliability if the machine crashes.
- */
-class ACE_Export ACE_Lite_MMAP_Memory_Pool : public ACE_MMAP_Memory_Pool
-{
-public:
- /// Initialize the pool.
- ACE_Lite_MMAP_Memory_Pool (const ACE_TCHAR *backing_store_name = 0,
- const OPTIONS *options = 0);
-
- /// Destructor.
- virtual ~ACE_Lite_MMAP_Memory_Pool (void);
-
- /// Overwrite the default sync behavior with no-op
- virtual int sync (ssize_t len = -1, int flags = MS_SYNC);
-
- /// Overwrite the default sync behavior with no-op
- virtual int sync (void *addr, size_t len, int flags = MS_SYNC);
-};
-
-#if defined (ACE_WIN32)
-
-/**
- * @class ACE_Pagefile_Memory_Pool_Options
- *
- * @brief Helper class for Pagefile Memory Pool constructor options.
- *
- * This should be a nested class, but that breaks too many
- * compilers.
- */
-class ACE_Export ACE_Pagefile_Memory_Pool_Options
-{
-public:
- /// Initialization method.
- ACE_Pagefile_Memory_Pool_Options (void *base_addr = ACE_DEFAULT_PAGEFILE_POOL_BASE,
- size_t max_size = ACE_DEFAULT_PAGEFILE_POOL_SIZE);
-
- /// Base address of the memory-mapped backing store.
- void *base_addr_;
-
- /// Maximum size the pool may grow.
- size_t max_size_;
-};
-
-/**
- * @class ACE_Pagefile_Memory_Pool
- *
- * @brief Make a memory pool that is based on "anonymous" memory
- * regions allocated from the Win32 page file.
- */
-class ACE_Export ACE_Pagefile_Memory_Pool
-{
-public:
- typedef ACE_Pagefile_Memory_Pool_Options OPTIONS;
-
- /// Initialize the pool.
- ACE_Pagefile_Memory_Pool (const ACE_TCHAR *backing_store_name = 0,
- const OPTIONS *options = 0);
-
- /// Ask system for initial chunk of shared memory.
- void *init_acquire (size_t nbytes,
- size_t &rounded_bytes,
- int &first_time);
-
- /// Acquire at least <nbytes> from the memory pool. <rounded_bytes>
- /// is the actual number of bytes allocated.
- void *acquire (size_t nbytes,
- size_t &rounded_bytes);
-
- /// Instruct the memory pool to release all of its resources.
- int release (int destroy = 1);
-
- /**
- * Win32 Structural exception selector. The return value decides
- * how to handle memory pool related structural exceptions. Returns
- * 1, 0, or , -1.
- */
- virtual int seh_selector (void *);
-
- /**
- * Try to extend the virtual address space so that <addr> is now
- * covered by the address mapping. The method succeeds and returns
- * 0 if the backing store has adequate memory to cover this address.
- * Otherwise, it returns -1. This method is typically called by an
- * exception handler for a Win32 structured exception when another
- * process has grown the backing store (and its mapping) and our
- * process now incurs a fault because our mapping isn't in range
- * (yet).
- */
- int remap (void *addr);
-
- /// Round up to system page size.
- size_t round_to_page_size (size_t nbytes);
-
- /// Round up to the chunk size required by the operation system
- size_t round_to_chunk_size (size_t nbytes);
-
- // = Don't need this methods here ...
- int sync (ssize_t = -1, int = MS_SYNC);
- int sync (void *, size_t, int = MS_SYNC);
- int protect (ssize_t = -1, int = PROT_RDWR);
- int protect (void *, size_t, int = PROT_RDWR);
-
- /// Return the base address of this memory pool, 0 if base_addr
- /// never changes.
- virtual void *base_addr (void) const;
-
- void dump (void) const {}
-
-protected:
-
- /**
- * Map portions or the entire pool into the local virtual address
- * space. To do this, we compute the new <file_offset> of the
- * backing store and commit the memory.
- */
- int map (int &firstTime, size_t appendBytes = 0);
-
- /// Release the mapping.
- int unmap (void);
-
-private:
-
- /**
- * @class Control_Block
- *
- * @brief Attributes that are meaningful in local storage only.
- */
- class Control_Block
- {
- public:
- /// Required base address
- void *req_base_;
-
- /// Base address returned from system call
- void *mapped_base_;
-
- /**
- * @class Shared_Control_Block
- *
- * @brief Pool statistics
- */
- class Shared_Control_Block
- {
- public:
- /// Maximum size the pool may grow
- size_t max_size_;
-
- /// Size of mapped shared memory segment
- size_t mapped_size_;
-
- /// Offset to mapped but not yet acquired address space
- ptrdiff_t free_offset_;
-
- /// Size of mapped but not yet acquired address space
- size_t free_size_;
- };
-
- Shared_Control_Block sh_;
- };
-
- // Base of mapped region. If this has the value of 0 then the OS is
- // free to select any address to map the file, otherwise this value
- // is what the OS must try to use to mmap the file.
-
- /// Description of what our process mapped.
- Control_Block local_cb_;
-
- /// Shared memory pool statistics.
- Control_Block *shared_cb_;
-
- /// File mapping handle.
- ACE_HANDLE object_handle_;
-
- /// System page size.
- size_t page_size_;
-
- /// Name of the backing store where the shared memory pool is kept.
- ACE_TCHAR backing_store_name_[MAXPATHLEN];
-};
-
-#endif /* ACE_WIN32 */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Memory_Pool.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_MEMORY_POOL_H */
diff --git a/ace/Memory_Pool.i b/ace/Memory_Pool.i
deleted file mode 100644
index 2a011c14dca..00000000000
--- a/ace/Memory_Pool.i
+++ /dev/null
@@ -1,269 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_Local_Memory_Pool::~ACE_Local_Memory_Pool (void)
-{
- // Free up all memory allocated by this pool.
- this->release ();
-}
-
-ACE_INLINE int
-ACE_Local_Memory_Pool::sync (ssize_t, int)
-{
- ACE_TRACE ("ACE_Local_Memory_Pool::sync");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Local_Memory_Pool::sync (void *, size_t, int)
-{
- ACE_TRACE ("ACE_Local_Memory_Pool::sync");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Local_Memory_Pool::protect (ssize_t, int)
-{
- ACE_TRACE ("ACE_Local_Memory_Pool::protect");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Local_Memory_Pool::protect (void *, size_t, int)
-{
- ACE_TRACE ("ACE_Local_Memory_Pool::protect");
- return 0;
-}
-
-ACE_INLINE void *
-ACE_Local_Memory_Pool::base_addr (void) const
-{
- return 0;
-}
-
-ACE_INLINE
-ACE_MMAP_Memory_Pool::~ACE_MMAP_Memory_Pool (void)
-{
-}
-
-ACE_INLINE
-ACE_Lite_MMAP_Memory_Pool::~ACE_Lite_MMAP_Memory_Pool (void)
-{
-}
-
-ACE_INLINE size_t
-ACE_MMAP_Memory_Pool::round_up (size_t nbytes)
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::round_up");
- return ACE::round_to_pagesize (ACE_static_cast (off_t, nbytes));
-}
-
-ACE_INLINE void *
-ACE_MMAP_Memory_Pool::base_addr (void) const
-{
- ACE_TRACE ("ACE_MMAP_Memory_Pool::base_addr");
- return this->base_addr_;
-}
-
-// Ask system for initial chunk of local memory.
-
-ACE_INLINE void *
-ACE_Local_Memory_Pool::init_acquire (size_t nbytes,
- size_t &rounded_bytes,
- int &first_time)
-{
- ACE_TRACE ("ACE_Local_Memory_Pool::init_acquire");
- // Note that we assume that when ACE_Local_Memory_Pool is used,
- // ACE_Malloc's constructor will only get called once. If this
- // assumption doesn't hold, we are in deep trouble!
-
- first_time = 1;
- return this->acquire (nbytes, rounded_bytes);
-}
-
-// Let the underlying new operator figure out the alignment...
-
-ACE_INLINE size_t
-ACE_Local_Memory_Pool::round_up (size_t nbytes)
-{
- ACE_TRACE ("ACE_Local_Memory_Pool::round_up");
- return ACE::round_to_pagesize (ACE_static_cast (off_t, nbytes));
-}
-
-#if !defined (ACE_LACKS_SYSV_SHMEM)
-// Implement the algorithm for rounding up the request to an
-// appropriate chunksize.
-
-ACE_INLINE
-ACE_Shared_Memory_Pool::~ACE_Shared_Memory_Pool (void)
-{
-}
-
-ACE_INLINE size_t
-ACE_Shared_Memory_Pool::round_up (size_t nbytes)
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool::round_up");
- if (nbytes < this->segment_size_)
- nbytes = this->segment_size_;
-
- return ACE::round_to_pagesize (nbytes);
-}
-
-ACE_INLINE int
-ACE_Shared_Memory_Pool::sync (ssize_t, int)
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool::sync");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Shared_Memory_Pool::sync (void *, size_t, int)
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool::sync");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Shared_Memory_Pool::protect (ssize_t, int)
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool::protect");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Shared_Memory_Pool::protect (void *, size_t, int)
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool::protect");
- return 0;
-}
-
-ACE_INLINE void *
-ACE_Shared_Memory_Pool::base_addr (void) const
-{
- ACE_TRACE ("ACE_Shared_Memory_Pool::base_addr");
- return this->base_addr_;
-}
-#endif /* !ACE_LACKS_SYSV_SHMEM */
-
-#if !defined (ACE_LACKS_SBRK)
-
-ACE_INLINE
-ACE_Sbrk_Memory_Pool::~ACE_Sbrk_Memory_Pool (void)
-{
-}
-
-ACE_INLINE void *
-ACE_Sbrk_Memory_Pool::base_addr (void) const
-{
- return 0;
-}
-
-// Ask system for initial chunk of local memory.
-
-ACE_INLINE void *
-ACE_Sbrk_Memory_Pool::init_acquire (size_t nbytes,
- size_t &rounded_bytes,
- int &first_time)
-{
- ACE_TRACE ("ACE_Sbrk_Memory_Pool::init_acquire");
- // Note that we assume that when ACE_Sbrk_Memory_Pool is used,
- // ACE_Malloc's constructor will only get called once. If this
- // assumption doesn't hold, we are in deep trouble!
-
- first_time = 1;
- return this->acquire (nbytes, rounded_bytes);
-}
-
-// Round up the request to a multiple of the page size.
-
-ACE_INLINE size_t
-ACE_Sbrk_Memory_Pool::round_up (size_t nbytes)
-{
- ACE_TRACE ("ACE_Sbrk_Memory_Pool::round_up");
- return ACE::round_to_pagesize (nbytes);
-}
-
-/* No-op for now... */
-
-ACE_INLINE int
-ACE_Sbrk_Memory_Pool::release (int)
-{
- ACE_TRACE ("ACE_Sbrk_Memory_Pool::release");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Sbrk_Memory_Pool::sync (ssize_t, int)
-{
- ACE_TRACE ("ACE_Sbrk_Memory_Pool::sync");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Sbrk_Memory_Pool::sync (void *, size_t, int)
-{
- ACE_TRACE ("ACE_Sbrk_Memory_Pool::sync");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Sbrk_Memory_Pool::protect (ssize_t, int)
-{
- ACE_TRACE ("ACE_Sbrk_Memory_Pool::protect");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Sbrk_Memory_Pool::protect (void *, size_t, int)
-{
- ACE_TRACE ("ACE_Sbrk_Memory_Pool::protect");
- return 0;
-}
-#endif /* !ACE_LACKS_SBRK */
-
-#if defined (ACE_WIN32)
-
-ACE_INLINE size_t
-ACE_Pagefile_Memory_Pool::round_to_chunk_size (size_t nbytes)
-{
- return (nbytes + ACE_DEFAULT_PAGEFILE_POOL_CHUNK - 1)
- & (~(ACE_DEFAULT_PAGEFILE_POOL_CHUNK - 1));
-}
-
-ACE_INLINE size_t
-ACE_Pagefile_Memory_Pool::round_to_page_size (size_t nbytes)
-{
- return ACE::round_to_pagesize (ACE_static_cast (off_t, nbytes));
-}
-
-ACE_INLINE int
-ACE_Pagefile_Memory_Pool::sync (ssize_t, int)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Pagefile_Memory_Pool::sync (void *, size_t, int)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Pagefile_Memory_Pool::protect (ssize_t, int)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Pagefile_Memory_Pool::protect (void *, size_t, int)
-{
- return 0;
-}
-
-ACE_INLINE void *
-ACE_Pagefile_Memory_Pool::base_addr (void) const
-{
- return 0;
-}
-#endif /* ACE_WIN32 */
diff --git a/ace/Message_Block.cpp b/ace/Message_Block.cpp
deleted file mode 100644
index d4b3bb11891..00000000000
--- a/ace/Message_Block.cpp
+++ /dev/null
@@ -1,1319 +0,0 @@
-#include "ace/Message_Block.h"
-#include "ace/Log_Msg.h"
-#include "ace/Malloc_Base.h"
-#include "ace/Synch_T.h"
-
-//#define ACE_ENABLE_TIMEPROBES
-#include "ace/Timeprobe.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Message_Block.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID (ace,
- Message_Block,
- "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Message_Block)
-
-#if defined (ACE_ENABLE_TIMEPROBES)
-
-static const char *ACE_MB_Timeprobe_Description[] =
-{
- "Message_Block::init_i - enter",
- "Message_Block::init_i - leave",
- "Message_Block::init_i - db alloc",
- "Message_Block::init_i - db ctor",
- "Data_Block::ctor[1] - enter",
- "Data_Block::ctor[1] - leave",
- "Data_Block::ctor[2] - enter",
- "Data_Block::ctor[2] - leave",
- "Data_Block::clone - enter",
- "Data_Block::clone - leave"
-};
-
-enum
-{
- ACE_MESSAGE_BLOCK_INIT_I_ENTER = 3000,
- ACE_MESSAGE_BLOCK_INIT_I_LEAVE,
- ACE_MESSAGE_BLOCK_INIT_I_DB_ALLOC,
- ACE_MESSAGE_BLOCK_INIT_I_DB_CTOR,
- ACE_DATA_BLOCK_CTOR1_ENTER,
- ACE_DATA_BLOCK_CTOR1_LEAVE,
- ACE_DATA_BLOCK_CTOR2_ENTER,
- ACE_DATA_BLOCK_CTOR2_LEAVE,
- ACE_DATA_BLOCK_CLONE_ENTER,
- ACE_DATA_BLOCK_CLONE_LEAVE
-};
-
-
-// Setup Timeprobes
-ACE_TIMEPROBE_EVENT_DESCRIPTIONS (ACE_MB_Timeprobe_Description,
- ACE_MESSAGE_BLOCK_INIT_I_ENTER);
-
-#endif /* ACE_ENABLE_TIMEPROBES */
-
-void
-ACE_Message_Block::data_block (ACE_Data_Block *db)
-{
- ACE_TRACE ("ACE_Message_Block::data_block");
- if (ACE_BIT_DISABLED (this->flags_,
- ACE_Message_Block::DONT_DELETE)
- && this->data_block_ != 0)
- this->data_block_->release ();
-
- this->data_block_ = db;
-
- // Set the read and write pointers in the <Message_Block> to point
- // to the buffer in the <ACE_Data_Block>.
- this->rd_ptr (this->data_block ()->base ());
- this->wr_ptr (this->data_block ()->base ());
-}
-
-int
-ACE_Message_Block::copy (const char *buf, size_t n)
-{
- ACE_TRACE ("ACE_Message_Block::copy");
-
- /*size_t len = ACE_static_cast(size_t,
- this->end () - this->wr_ptr ());*/
- // Note that for this to work correct, end () *must* be >= mark ().
- size_t len = this->space ();
-
- if (len < n)
- return -1;
- else
- {
- (void) ACE_OS::memcpy (this->wr_ptr (),
- buf,
- n);
- this->wr_ptr (n);
- return 0;
- }
-}
-
-int
-ACE_Message_Block::copy (const char *buf)
-{
- ACE_TRACE ("ACE_Message_Block::copy");
-
- /* size_t len = ACE_static_cast(size_t,
- (this->end () - this->wr_ptr ())); */
- // Note that for this to work correct, end() *must* be >= wr_ptr().
- size_t len = this->space ();
-
- size_t buflen = ACE_OS::strlen (buf) + 1;
-
- if (len < buflen)
- return -1;
- else
- {
- (void) ACE_OS::memcpy (this->wr_ptr (),
- buf,
- buflen);
- this->wr_ptr (buflen);
- return 0;
- }
-}
-
-void
-ACE_Message_Block::crunch (void)
-{
- if (this->rd_ptr () > this->base ())
- {
- size_t len = this->length ();
- (void) ACE_OS::memmove (this->base (),
- this->rd_ptr (),
- len);
- this->rd_ptr (this->base ());
- this->wr_ptr (this->base () + len);
- }
-}
-
-void
-ACE_Data_Block::dump (void) const
-{
- ACE_TRACE ("ACE_Data_Block::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("-----( Data Block )-----\n")
- ACE_LIB_TEXT ("type_ = %d\n")
- ACE_LIB_TEXT ("cur_size_ = %u\n")
- ACE_LIB_TEXT ("max_size_ = %u\n")
- ACE_LIB_TEXT ("flags_ = %u\n")
- ACE_LIB_TEXT ("base_ = %u\n")
- ACE_LIB_TEXT ("locking_strategy_ = %u\n")
- ACE_LIB_TEXT ("reference_count_ = %u\n")
- ACE_LIB_TEXT ("---------------------------\n"),
- this->type_,
- this->cur_size_,
- this->max_size_,
- this->flags_,
- this->base_,
- this->locking_strategy_,
- this->reference_count_));
- this->allocator_strategy_->dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_Message_Block::dump (void) const
-{
- ACE_TRACE ("ACE_Message_Block::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("-----( Message Block )-----\n")
- ACE_LIB_TEXT ("priority_ = %d\n")
- ACE_LIB_TEXT ("next_ = %u\n")
- ACE_LIB_TEXT ("prev_ = %u\n")
- ACE_LIB_TEXT ("cont_ = %u\n")
- ACE_LIB_TEXT ("rd_ptr_ = %u\n")
- ACE_LIB_TEXT ("wr_ptr_ = %u\n")
- ACE_LIB_TEXT ("---------------------------\n"),
- this->priority_,
- this->next_,
- this->prev_,
- this->cont_,
- this->rd_ptr_,
- this->wr_ptr_));
- this->data_block ()->dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-int
-ACE_Data_Block::size (size_t length)
-{
- ACE_TRACE ("ACE_Data_Block::size");
-
- if (length <= this->max_size_)
- this->cur_size_ = length;
- else
- {
- // We need to resize!
- char *buf;
- ACE_ALLOCATOR_RETURN (buf,
- (char *) this->allocator_strategy_->malloc (length),
- -1);
-
- ACE_OS::memcpy (buf,
- this->base_,
- this->cur_size_);
- if (ACE_BIT_DISABLED (this->flags_,
- ACE_Message_Block::DONT_DELETE))
- this->allocator_strategy_->free ((void *) this->base_);
- else
- // We now assume ownership.
- ACE_CLR_BITS (this->flags_,
- ACE_Message_Block::DONT_DELETE);
- this->max_size_ = length;
- this->cur_size_ = length;
- this->base_ = buf;
- }
- return 0;
-}
-
-int
-ACE_Message_Block::size (size_t length)
-{
- ACE_TRACE ("ACE_Message_Block::size");
-
- // Resize the underlying <ACE_Data_Block>.
- if (this->data_block ()->size (length) == -1)
- return -1;
-
- return 0;
-}
-
-void
-ACE_Message_Block::total_size_and_length (size_t &mb_size,
- size_t &mb_length) const
-{
- ACE_TRACE ("ACE_Message_Block::total_size_and_length");
-
- for (const ACE_Message_Block *i = this;
- i != 0;
- i = i->cont ())
- {
- mb_size += i->size ();
- mb_length += i->length ();
- }
-}
-
-size_t
-ACE_Message_Block::total_size (void) const
-{
- ACE_TRACE ("ACE_Message_Block::total_size");
-
- size_t size = 0;
- for (const ACE_Message_Block *i = this;
- i != 0;
- i = i->cont ())
- size += i->size ();
-
- return size;
-}
-
-size_t
-ACE_Message_Block::total_length (void) const
-{
- ACE_TRACE ("ACE_Message_Block::total_length");
-
- size_t length = 0;
- for (const ACE_Message_Block *i = this;
- i != 0;
- i = i->cont ())
- length += i->length ();
-
- return length;
-}
-
-size_t
-ACE_Message_Block::total_capacity (void) const
-{
- ACE_TRACE ("ACE_Message_Block::total_capacity");
-
- size_t size = 0;
-
- for (const ACE_Message_Block *i = this;
- i != 0;
- i = i->cont ())
- size += i->capacity ();
-
- return size;
-}
-
-ACE_Data_Block::ACE_Data_Block (void)
- : type_ (ACE_Message_Block::MB_DATA),
- cur_size_ (0),
- max_size_ (0),
- flags_ (ACE_Message_Block::DONT_DELETE),
- base_ (0),
- allocator_strategy_ (0),
- locking_strategy_ (0),
- reference_count_ (1),
- data_block_allocator_ (0)
-{
- ACE_TRACE ("ACE_Data_Block::ACE_Data_Block");
- ACE_FUNCTION_TIMEPROBE (ACE_DATA_BLOCK_CTOR1_ENTER);
-
- ACE_ALLOCATOR (this->allocator_strategy_,
- ACE_Allocator::instance ());
-
- ACE_ALLOCATOR (this->data_block_allocator_,
- ACE_Allocator::instance ());
-}
-
-ACE_Data_Block::ACE_Data_Block (size_t size,
- ACE_Message_Block::ACE_Message_Type msg_type,
- const char *msg_data,
- ACE_Allocator *allocator_strategy,
- ACE_Lock *locking_strategy,
- ACE_Message_Block::Message_Flags flags,
- ACE_Allocator *data_block_allocator)
- : type_ (msg_type),
- cur_size_ (0), // Reset later if memory alloc'd ok
- max_size_ (0),
- flags_ (flags),
- base_ ((char *) msg_data),
- allocator_strategy_ (allocator_strategy),
- locking_strategy_ (locking_strategy),
- reference_count_ (1),
- data_block_allocator_ (data_block_allocator)
-{
- ACE_TRACE ("ACE_Data_Block::ACE_Data_Block");
- ACE_FUNCTION_TIMEPROBE (ACE_DATA_BLOCK_CTOR2_ENTER);
-
- // If the user didn't pass one in, let's use the
- // <ACE_Allocator::instance>.
- if (this->allocator_strategy_ == 0)
- ACE_ALLOCATOR (this->allocator_strategy_,
- ACE_Allocator::instance ());
-
- if (this->data_block_allocator_ == 0)
- ACE_ALLOCATOR (this->data_block_allocator_,
- ACE_Allocator::instance ());
-
- if (msg_data == 0)
- ACE_ALLOCATOR (this->base_,
- (char *) this->allocator_strategy_->malloc (size));
- // ACE_ALLOCATOR returns on alloc failure...
-
- // The memory is legit, whether passed in or allocated, so set the size.
- this->cur_size_ = this->max_size_ = size;
-}
-
-ACE_Message_Block::ACE_Message_Block (const char *data,
- size_t size,
- u_long priority)
- : flags_ (0),
- data_block_ (0)
-{
- ACE_TRACE ("ACE_Message_Block::ACE_Message_Block");
-
- if (this->init_i (size, // size
- MB_DATA, // type
- 0, // cont
- data, // data
- 0, // allocator
- 0, // locking strategy
- ACE_Message_Block::DONT_DELETE, // flags
- priority, // priority
- ACE_Time_Value::zero, // execution time
- ACE_Time_Value::max_time, // absolute time of deadline
- 0, // data block
- 0, // data_block allocator
- 0) == -1) // message_block allocator
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Message_Block")));
-}
-
-ACE_Message_Block::ACE_Message_Block (ACE_Allocator *message_block_allocator)
- : flags_ (0),
- data_block_ (0)
-{
- ACE_TRACE ("ACE_Message_Block::ACE_Message_Block");
-
- if (this->init_i (0, // size
- MB_DATA, // type
- 0, // cont
- 0, // data
- 0, // allocator
- 0, // locking strategy
- ACE_Message_Block::DONT_DELETE, // flags
- 0, // priority
- ACE_Time_Value::zero, // execution time
- ACE_Time_Value::max_time, // absolute time of deadline
- 0, // data block
- 0, // data_block allocator
- message_block_allocator) == -1) // message_block allocator
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Message_Block")));
-}
-
-ACE_Message_Block::ACE_Message_Block (size_t size,
- ACE_Message_Type msg_type,
- ACE_Message_Block *msg_cont,
- const char *msg_data,
- ACE_Allocator *allocator_strategy,
- ACE_Lock *locking_strategy,
- u_long priority,
- const ACE_Time_Value &execution_time,
- const ACE_Time_Value &deadline_time,
- ACE_Allocator *data_block_allocator,
- ACE_Allocator *message_block_allocator)
- :flags_ (0),
- data_block_ (0)
-{
- ACE_TRACE ("ACE_Message_Block::ACE_Message_Block");
-
- if (this->init_i (size,
- msg_type,
- msg_cont,
- msg_data,
- allocator_strategy,
- locking_strategy,
- msg_data ? ACE_Message_Block::DONT_DELETE : 0,
- priority,
- execution_time,
- deadline_time,
- 0, // data block
- data_block_allocator,
- message_block_allocator) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Message_Block")));
-}
-
-int
-ACE_Message_Block::init (size_t size,
- ACE_Message_Type msg_type,
- ACE_Message_Block *msg_cont,
- const char *msg_data,
- ACE_Allocator *allocator_strategy,
- ACE_Lock *locking_strategy,
- u_long priority,
- const ACE_Time_Value &execution_time,
- const ACE_Time_Value &deadline_time,
- ACE_Allocator *data_block_allocator,
- ACE_Allocator *message_block_allocator)
-{
- ACE_TRACE ("ACE_Message_Block::init");
-
- return this->init_i (size,
- msg_type,
- msg_cont,
- msg_data,
- allocator_strategy,
- locking_strategy,
- msg_data ? ACE_Message_Block::DONT_DELETE : 0,
- priority,
- execution_time,
- deadline_time,
- 0, // data block
- data_block_allocator,
- message_block_allocator);
-}
-
-int
-ACE_Message_Block::init (const char *data,
- size_t size)
-{
- ACE_TRACE ("ACE_Message_Block::init");
- // Should we also initialize all the other fields, as well?
-
- return this->init_i (size, // size
- MB_DATA, // type
- 0, // cont
- data, // data
- 0, // allocator
- 0, // locking strategy
- ACE_Message_Block::DONT_DELETE, // flags
- 0, // priority
- ACE_Time_Value::zero, // execution time
- ACE_Time_Value::max_time, // absolute time of deadline
- 0, // data block
- 0, // data_block allocator
- 0); // message_block allocator
-}
-
-ACE_Message_Block::ACE_Message_Block (size_t size,
- ACE_Message_Type msg_type,
- ACE_Message_Block *msg_cont,
- const char *msg_data,
- ACE_Allocator *allocator_strategy,
- ACE_Lock *locking_strategy,
- Message_Flags flags,
- u_long priority,
- const ACE_Time_Value &execution_time,
- const ACE_Time_Value &deadline_time,
- ACE_Data_Block *db,
- ACE_Allocator *data_block_allocator,
- ACE_Allocator *message_block_allocator)
- : flags_ (0),
- data_block_ (0)
-{
- ACE_TRACE ("ACE_Message_Block::ACE_Message_Block");
-
- if (this->init_i (size,
- msg_type,
- msg_cont,
- msg_data,
- allocator_strategy,
- locking_strategy,
- flags,
- priority,
- execution_time,
- deadline_time,
- db,
- data_block_allocator,
- message_block_allocator) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Message_Block")));
-}
-
-ACE_Message_Block::ACE_Message_Block (ACE_Data_Block *data_block,
- ACE_Message_Block::Message_Flags flags,
- ACE_Allocator *message_block_allocator)
- : flags_ (flags),
- data_block_ (0)
-{
- ACE_TRACE ("ACE_Message_Block::ACE_Message_Block");
-
- if (this->init_i (0, // size
- MB_NORMAL, // type
- 0, // cont
- 0, // data
- 0, // allocator
- 0, // locking strategy
- 0, // flags
- 0, // priority
- ACE_Time_Value::zero, // execution time
- ACE_Time_Value::max_time, // absolute time of deadline
- data_block, // data block
- data_block->data_block_allocator (),
- message_block_allocator) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Message_Block")));
-}
-
-ACE_Message_Block::ACE_Message_Block (const ACE_Message_Block &mb,
- size_t align)
- :flags_ (0),
- data_block_ (0)
-{
- ACE_TRACE ("ACE_Message_Block::ACE_Message_Block");
-
- if (ACE_BIT_DISABLED (mb.flags_,
- ACE_Message_Block::DONT_DELETE))
- {
- if (this->init_i (0, // size
- MB_NORMAL, // type
- 0, // cont
- 0, // data
- 0, // allocator
- 0, // locking strategy
- 0, // flags
- 0, // priority
- ACE_Time_Value::zero, // execution time
- ACE_Time_Value::max_time, // absolute time of deadline
- mb.data_block ()->duplicate (), // data block
- mb.data_block ()->data_block_allocator (),
- mb.message_block_allocator_) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Message_Block")));
-
- // Align ourselves
- char *start = ACE_ptr_align_binary (this->base (),
- align);
- // Set our rd & wr pointers
- this->rd_ptr (start);
- this->wr_ptr (start);
-
- }
- else
- {
- if (this->init_i (0, // size
- MB_NORMAL, // type
- 0, // cont
- 0, // data
- 0, // allocator
- 0, // locking strategy
- 0, // flags
- 0, // priority
- ACE_Time_Value::zero, // execution time
- ACE_Time_Value::max_time, // absolute time of deadline
- mb.data_block ()->clone_nocopy (),// data block
- mb.data_block ()->data_block_allocator (),
- mb.message_block_allocator_) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Message_Block")));
-
- // Align ourselves
- char *start = ACE_ptr_align_binary (this->base (),
- align);
- // Set our rd & wr pointers
- this->rd_ptr (start);
- this->wr_ptr (start);
-
- // Get the alignment offset of the incoming ACE_Message_Block
- start = ACE_ptr_align_binary (mb.base (),
- align);
-
-
- // Actual offset for the incoming message block assuming that it
- // is also aligned to the same "align" byte
- size_t wr_offset = mb.wr_ptr_ - (start - mb.base ());
-
- // Copy wr_offset amount of data in to <this->data_block>
- (void) ACE_OS::memcpy (this->wr_ptr (),
- start,
- wr_offset);
-
- // Dont move the write pointer, just leave it to the application
- // to do what it wants
-
- }
-
-
-
-
-}
-
-int
-ACE_Message_Block::init_i (size_t size,
- ACE_Message_Type msg_type,
- ACE_Message_Block *msg_cont,
- const char *msg_data,
- ACE_Allocator *allocator_strategy,
- ACE_Lock *locking_strategy,
- Message_Flags flags,
- u_long priority,
- const ACE_Time_Value &execution_time,
- const ACE_Time_Value &deadline_time,
- ACE_Data_Block *db,
- ACE_Allocator *data_block_allocator,
- ACE_Allocator *message_block_allocator)
-{
- ACE_TRACE ("ACE_Message_Block::init_i");
- ACE_FUNCTION_TIMEPROBE (ACE_MESSAGE_BLOCK_INIT_I_ENTER);
-
- this->rd_ptr_ = 0;
- this->wr_ptr_ = 0;
- this->priority_ = priority;
-#if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
- this->execution_time_ = execution_time;
- this->deadline_time_ = deadline_time;
-#else
- ACE_UNUSED_ARG (execution_time);
- ACE_UNUSED_ARG (deadline_time);
-#endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */
- this->cont_ = msg_cont;
- this->next_ = 0;
- this->prev_ = 0;
-
- this->message_block_allocator_ = message_block_allocator;
-
- if (this->data_block_ != 0)
- {
- this->data_block_->release ();
- this->data_block_ = 0;
- }
-
- if (db == 0)
- {
- if (data_block_allocator == 0)
- ACE_ALLOCATOR_RETURN (data_block_allocator,
- ACE_Allocator::instance (),
- -1);
-
- ACE_TIMEPROBE (ACE_MESSAGE_BLOCK_INIT_I_DB_ALLOC);
-
- // Allocate the <ACE_Data_Block> portion, which is reference
- // counted.
- ACE_NEW_MALLOC_RETURN (db,
- ACE_static_cast(ACE_Data_Block *,
- data_block_allocator->malloc (sizeof (ACE_Data_Block))),
- ACE_Data_Block (size,
- msg_type,
- msg_data,
- allocator_strategy,
- locking_strategy,
- flags,
- data_block_allocator),
- -1);
- ACE_TIMEPROBE (ACE_MESSAGE_BLOCK_INIT_I_DB_CTOR);
- }
-
- // Reset the data_block_ pointer.
- this->data_block (db);
- // If the data alloc failed, the ACE_Data_Block ctor can't relay
- // that directly. Therefore, need to check it explicitly.
- if (db->size () < size)
- return -1;
- return 0;
-}
-
-ACE_Data_Block::~ACE_Data_Block (void)
-{
- // Sanity check...
- ACE_ASSERT (this->reference_count_ <= 1);
-
- // Just to be safe...
- this->reference_count_ = 0;
-
- if (ACE_BIT_DISABLED (this->flags_,
- ACE_Message_Block::DONT_DELETE))
- {
- this->allocator_strategy_->free ((void *) this->base_);
- this->base_ = 0;
- }
-}
-
-ACE_Data_Block *
-ACE_Data_Block::release_i (void)
-{
- ACE_TRACE ("ACE_Data_Block::release_i");
-
- ACE_ASSERT (this->reference_count_ > 0);
-
- ACE_Data_Block *result = 0;
-
- // decrement reference count
- this->reference_count_--;
-
- if (this->reference_count_ == 0)
- // this will cause deletion of this
- result = 0;
- else
- result = this;
-
- return result;
-}
-
-ACE_Data_Block *
-ACE_Data_Block::release_no_delete (ACE_Lock *lock)
-{
- ACE_TRACE ("ACE_Data_Block::release_no_delete");
-
- ACE_Data_Block *result = 0;
- ACE_Lock *lock_to_be_used = 0;
-
- // Check if we were passed in a lock
- if (lock != 0)
- {
- // Make sure that the lock passed in and our lock are the same
- if (lock == this->locking_strategy_)
- // In this case no locking is required.
- lock_to_be_used = 0;
-
- // The lock passed in does not match our lock
- else
- // Lock to be used is our lock
- lock_to_be_used = this->locking_strategy_;
- }
- // This is the case when no lock was passed in
- else
- // Lock to be used is our lock
- lock_to_be_used = this->locking_strategy_;
-
- // If there's a locking strategy then we need to acquire the lock
- // before decrementing the count.
- if (lock_to_be_used != 0)
- {
- ACE_GUARD_RETURN (ACE_Lock, ace_mon, *lock_to_be_used, 0);
-
- result = this->release_i ();
- }
- else
- result = this->release_i ();
-
- return result;
-}
-
-ACE_Data_Block *
-ACE_Data_Block::release (ACE_Lock *lock)
-{
- ACE_TRACE ("ACE_Data_Block::release");
-
- ACE_Allocator *allocator = this->data_block_allocator_;
-
- ACE_Data_Block *result = this->release_no_delete (lock);
-
- // We must delete this outside the scope of the locking_strategy_
- // since otherwise we'd be trying to "release" through a deleted
- // pointer!
- if (result == 0)
- ACE_DES_FREE (this,
- allocator->free,
- ACE_Data_Block);
- return result;
-}
-
-ACE_Message_Block *
-ACE_Message_Block::release (void)
-{
- ACE_TRACE ("ACE_Message_Block::release");
-
- // We want to hold the data block in a temporary variable because we
- // invoked "delete this;" at some point, so using this->data_block_
- // could be a bad idea.
- ACE_Data_Block *tmp = this->data_block ();
-
- // This flag is set to 1 when we have to destroy the data_block
- int destroy_dblock = 0;
-
- ACE_Lock *lock = 0;
-
- // Do we have a valid data block
- if (this->data_block ())
- {
- // Grab the lock that belongs to my data block
- lock = this->data_block ()->locking_strategy ();
-
- // if we have a lock
- if (lock != 0)
- {
- // One guard for all
- ACE_GUARD_RETURN (ACE_Lock, ace_mon, *lock, 0);
-
- // Call non-guarded release with <lock>
- destroy_dblock = this->release_i (lock);
- }
- // This is the case when we have a valid data block but no lock
- else
- // Call non-guarded release with no lock
- destroy_dblock = this->release_i (0);
- }
- else
- // This is the case when we don't even have a valid data block
- destroy_dblock = this->release_i (0);
-
- if (destroy_dblock != 0)
- {
- ACE_Allocator *allocator = tmp->data_block_allocator ();
- ACE_DES_FREE (tmp,
- allocator->free,
- ACE_Data_Block);
- }
-
- return 0;
-}
-
-int
-ACE_Message_Block::release_i (ACE_Lock *lock)
-{
- ACE_TRACE ("ACE_Message_Block::release_i");
-
- // Free up all the continuation messages.
- if (this->cont_)
- {
- ACE_Message_Block *mb = this->cont_;
- ACE_Message_Block *tmp;
-
- do
- {
- tmp = mb;
- mb = mb->cont_;
- tmp->cont_ = 0;
-
- ACE_Data_Block *db = tmp->data_block ();
- if (tmp->release_i (lock) != 0)
- {
- ACE_Allocator *allocator = db->data_block_allocator ();
- ACE_DES_FREE (db,
- allocator->free,
- ACE_Data_Block);
- }
- }
- while (mb);
-
- this->cont_ = 0;
- }
-
- int result = 0;
-
- if (ACE_BIT_DISABLED (this->flags_,
- ACE_Message_Block::DONT_DELETE) &&
- this->data_block ())
- {
- if (this->data_block ()->release_no_delete (lock) == 0)
- result = 1;
- this->data_block_ = 0;
- }
-
- // We will now commit suicide: this object *must* have come from the
- // allocator given.
- if (this->message_block_allocator_ == 0)
- delete this;
- else
- {
- ACE_Allocator *allocator = this->message_block_allocator_;
- ACE_DES_FREE (this,
- allocator->free,
- ACE_Message_Block);
- }
-
- return result;
-}
-
-/* static */ ACE_Message_Block *
-ACE_Message_Block::release (ACE_Message_Block *mb)
-{
- ACE_TRACE ("ACE_Message_Block::release");
-
- if (mb != 0)
- return mb->release ();
- else
- return 0;
-}
-
-ACE_Message_Block::~ACE_Message_Block (void)
-{
- ACE_TRACE ("ACE_Message_Block::~ACE_Message_Block");
-
- if (ACE_BIT_DISABLED (this->flags_,
- ACE_Message_Block::DONT_DELETE)&&
- this->data_block ())
- this->data_block ()->release ();
-
- this->prev_ = 0;
- this->next_ = 0;
-}
-
-ACE_Data_Block *
-ACE_Data_Block::duplicate (void)
-{
- ACE_TRACE ("ACE_Data_Block::duplicate");
-
- // Create a new <ACE_Message_Block>, but share the <base_> pointer
- // data (i.e., don't copy that).
- if (this->locking_strategy_)
- {
- // We need to acquire the lock before incrementing the count.
- ACE_GUARD_RETURN (ACE_Lock, ace_mon, *this->locking_strategy_, 0);
- this->reference_count_++;
- }
- else
- this->reference_count_++;
-
- return this;
-}
-
-#if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
-#define ACE_EXECUTION_TIME this->execution_time_
-#define ACE_DEADLINE_TIME this->deadline_time_
-#else
-#define ACE_EXECUTION_TIME ACE_Time_Value::zero
-#define ACE_DEADLINE_TIME ACE_Time_Value::max_time
-#endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */
-
-ACE_Message_Block *
-ACE_Message_Block::duplicate (void) const
-{
- ACE_TRACE ("ACE_Message_Block::duplicate");
-
- ACE_Message_Block *nb;
-
- // Create a new <ACE_Message_Block> that contains unique copies of
- // the message block fields, but a reference counted duplicate of
- // the <ACE_Data_Block>.
-
- // If there is no allocator, use the standard new and delete calls.
- if (this->message_block_allocator_ == 0)
- ACE_NEW_RETURN (nb,
- ACE_Message_Block (0, // size
- ACE_Message_Type (0), // type
- 0, // cont
- 0, // data
- 0, // allocator
- 0, // locking strategy
- 0, // flags
- this->priority_, // priority
- ACE_EXECUTION_TIME,
- ACE_DEADLINE_TIME,
- // Get a pointer to a
- // "duplicated" <ACE_Data_Block>
- // (will simply increment the
- // reference count).
- this->data_block ()->duplicate (),
- this->data_block ()->data_block_allocator (),
- this->message_block_allocator_),
- 0);
- else // Otherwise, use the message_block_allocator passed in.
- ACE_NEW_MALLOC_RETURN (nb,
- ACE_static_cast(ACE_Message_Block*,
- message_block_allocator_->malloc (sizeof (ACE_Message_Block))),
- ACE_Message_Block (0, // size
- ACE_Message_Type (0), // type
- 0, // cont
- 0, // data
- 0, // allocator
- 0, // locking strategy
- 0, // flags
- this->priority_, // priority
- ACE_EXECUTION_TIME,
- ACE_DEADLINE_TIME,
- // Get a pointer to a
- // "duplicated" <ACE_Data_Block>
- // (will simply increment the
- // reference count).
- this->data_block ()->duplicate (),
- this->data_block ()->data_block_allocator (),
- this->message_block_allocator_),
- 0);
-
- // Set the read and write pointers in the new <Message_Block> to the
- // same relative offset as in the existing <Message_Block>. Note
- // that we are assuming that the data_block()->base() pointer
- // doesn't change when it's duplicated.
- nb->rd_ptr (this->rd_ptr_);
- nb->wr_ptr (this->wr_ptr_);
-
- // Increment the reference counts of all the continuation messages.
- if (this->cont_)
- {
- nb->cont_ = this->cont_->duplicate ();
-
- // If things go wrong, release all of our resources and return
- // 0.
- if (nb->cont_ == 0)
- {
- nb->release ();
- nb = 0;
- }
- }
-
- return nb;
-}
-
-ACE_Message_Block *
-ACE_Message_Block::duplicate (const ACE_Message_Block *mb)
-{
- ACE_TRACE ("ACE_Message_Block::duplicate");
- if (mb == 0)
- return 0;
- else
- return mb->duplicate ();
-}
-
-ACE_Data_Block *
-ACE_Data_Block::clone (ACE_Message_Block::Message_Flags mask) const
-{
- ACE_TRACE ("ACE_Data_Block::clone");
-
- ACE_Data_Block *nb = this->clone_nocopy (mask);
-
- // Copy all of the payload memory into the new object.
- if (nb != 0)
- {
- ACE_OS::memcpy (nb->base_,
- this->base_,
- this->max_size_);
- }
-
- return nb;
-}
-
-ACE_Data_Block *
-ACE_Data_Block::clone_nocopy (ACE_Message_Block::Message_Flags mask) const
-{
- ACE_FUNCTION_TIMEPROBE(ACE_DATA_BLOCK_CLONE_ENTER);
-
- ACE_TRACE ("ACE_Data_Block::clone_nocopy");
-
- // You always want to clear this one to prevent memory leaks but you
- // might add some others later.
- const ACE_Message_Block::Message_Flags always_clear =
- ACE_Message_Block::DONT_DELETE;
-
- ACE_Data_Block *nb;
-
- ACE_NEW_MALLOC_RETURN (nb,
- ACE_static_cast(ACE_Data_Block*,
- this->data_block_allocator_->malloc (sizeof (ACE_Data_Block))),
- ACE_Data_Block (this->max_size_, // size
- this->type_, // type
- 0, // data
- this->allocator_strategy_, // allocator
- this->locking_strategy_, // locking strategy
- this->flags_, // flags
- this->data_block_allocator_),
- 0);
-
-
- // Set new flags minus the mask...
- nb->clr_flags (mask | always_clear);
- return nb;
-}
-
-ACE_Message_Block *
-ACE_Message_Block::clone (Message_Flags mask) const
-{
- ACE_TRACE ("ACE_Message_Block::clone");
-
- // Get a pointer to a "cloned" <ACE_Data_Block> (will copy the
- // values rather than increment the reference count).
- ACE_Data_Block *db = this->data_block ()->clone (mask);
-
- if (db == 0)
- return 0;
-
- ACE_Message_Block *nb;
-
- if(message_block_allocator_ == 0)
- {
- ACE_NEW_RETURN (nb,
- ACE_Message_Block (0, // size
- ACE_Message_Type (0), // type
- 0, // cont
- 0, // data
- 0, // allocator
- 0, // locking strategy
- 0, // flags
- this->priority_, // priority
- ACE_EXECUTION_TIME, // execution time
- ACE_DEADLINE_TIME, // absolute time to deadline
- // Get a pointer to a
- // "duplicated" <ACE_Data_Block>
- // (will simply increment the
- // reference count).
- db,
- db->data_block_allocator (),
- this->message_block_allocator_),
- 0);
- }
- else
- {
- // This is the ACE_NEW_MALLOC macro with the return check removed.
- // We need to do it this way because if it fails we need to release
- // the cloned data block that was created above. If we used
- // ACE_NEW_MALLOC_RETURN, there would be a memory leak because the
- // above db pointer would be left dangling.
- nb = ACE_static_cast(ACE_Message_Block*,message_block_allocator_->malloc (sizeof (ACE_Message_Block)));
- if(nb != 0)
- new (nb) ACE_Message_Block (0, // size
- ACE_Message_Type (0), // type
- 0, // cont
- 0, // data
- 0, // allocator
- 0, // locking strategy
- 0, // flags
- this->priority_, // priority
- ACE_EXECUTION_TIME, // execution time
- ACE_DEADLINE_TIME, // absolute time to deadline
- db,
- db->data_block_allocator (),
- this->message_block_allocator_);
- }
-
- if (nb == 0)
- {
- db->release ();
- return 0;
- }
-
- // Set the read and write pointers in the new <Message_Block> to the
- // same relative offset as in the existing <Message_Block>.
- nb->rd_ptr (this->rd_ptr_);
- nb->wr_ptr (this->wr_ptr_);
-
- // Clone all the continuation messages if necessary.
- if (this->cont () != 0
- && (nb->cont_ = this->cont ()->clone (mask)) == 0)
- {
- nb->release ();
- return 0;
- }
- return nb;
-}
-
-// This is private.
-ACE_Message_Block &
-ACE_Message_Block::operator= (const ACE_Message_Block &)
-{
- ACE_TRACE ("ACE_Message_Block::operator=");
- return *this;
-}
-
-void
-ACE_Data_Block::base (char *msg_data,
- size_t msg_length,
- ACE_Message_Block::Message_Flags msg_flags)
-{
- if (ACE_BIT_DISABLED (this->flags_,
- ACE_Message_Block::DONT_DELETE))
- this->allocator_strategy_->free (this->base_);
- this->max_size_ = msg_length;
- this->cur_size_ = msg_length;
- this->base_ = msg_data;
- this->flags_ = msg_flags;
-}
-
-// ctor
-
-ACE_Dynamic_Message_Strategy::ACE_Dynamic_Message_Strategy (u_long static_bit_field_mask,
- u_long static_bit_field_shift,
- u_long dynamic_priority_max,
- u_long dynamic_priority_offset)
- : static_bit_field_mask_ (static_bit_field_mask),
- static_bit_field_shift_ (static_bit_field_shift),
- dynamic_priority_max_ (dynamic_priority_max),
- dynamic_priority_offset_ (dynamic_priority_offset),
- max_late_ (0, dynamic_priority_offset - 1),
- min_pending_ (0, dynamic_priority_offset),
- pending_shift_ (0, dynamic_priority_max)
-{
-}
-
-// dtor
-
-ACE_Dynamic_Message_Strategy::~ACE_Dynamic_Message_Strategy (void)
-{
-}
-
-// Dump the state of the strategy.
-
-void
-ACE_Dynamic_Message_Strategy::dump (void) const
-{
- ACE_TRACE ("ACE_Dynamic_Message_Strategy::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("static_bit_field_mask_ = %u\n")
- ACE_LIB_TEXT ("static_bit_field_shift_ = %u\n")
- ACE_LIB_TEXT ("dynamic_priority_max_ = %u\n")
- ACE_LIB_TEXT ("dynamic_priority_offset_ = %u\n")
- ACE_LIB_TEXT ("max_late_ = [%d sec, %d usec]\n")
- ACE_LIB_TEXT ("min_pending_ = [%d sec, %d usec]\n")
- ACE_LIB_TEXT ("pending_shift_ = [%d sec, %d usec]\n"),
- this->static_bit_field_mask_,
- this->static_bit_field_shift_,
- this->dynamic_priority_max_,
- this->dynamic_priority_offset_,
- this->max_late_.sec (),
- this->max_late_.usec (),
- this->min_pending_.sec (),
- this->min_pending_.usec (),
- this->pending_shift_.sec (),
- this->pending_shift_.usec ()));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Deadline_Message_Strategy:: ACE_Deadline_Message_Strategy (u_long static_bit_field_mask,
- u_long static_bit_field_shift,
- u_long dynamic_priority_max,
- u_long dynamic_priority_offset)
- : ACE_Dynamic_Message_Strategy (static_bit_field_mask,
- static_bit_field_shift,
- dynamic_priority_max,
- dynamic_priority_offset)
-{
-}
-
-ACE_Deadline_Message_Strategy::~ACE_Deadline_Message_Strategy (void)
-{
-}
-
-void
-ACE_Deadline_Message_Strategy::dump (void) const
-{
- ACE_TRACE ("ACE_Deadline_Message_Strategy::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Dynamic_Message_Strategy base class: \n")));
- this->ACE_Dynamic_Message_Strategy::dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nderived class: ACE_Deadline_Message_Strategy\n")));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Laxity_Message_Strategy::ACE_Laxity_Message_Strategy (u_long static_bit_field_mask,
- u_long static_bit_field_shift,
- u_long dynamic_priority_max,
- u_long dynamic_priority_offset)
- : ACE_Dynamic_Message_Strategy (static_bit_field_mask,
- static_bit_field_shift,
- dynamic_priority_max,
- dynamic_priority_offset)
-{
-}
-
-ACE_Laxity_Message_Strategy::~ACE_Laxity_Message_Strategy (void)
-{
-}
-
-void
-ACE_Laxity_Message_Strategy::dump (void) const
-{
- ACE_TRACE ("ACE_Laxity_Message_Strategy::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Dynamic_Message_Strategy base class: \n")));
- this->ACE_Dynamic_Message_Strategy::dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nderived class: ACE_Laxity_Message_Strategy\n")));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
- // Dump the state of the strategy.
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Guard <ACE_Lock>;
-// These specializations aren't needed for the ACE library because
-// Service_Config.cpp has them:
-//
-// template class ACE_Malloc <ACE_LOCAL_MEMORY_POOL, ACE_Null_Mutex>;
-// template class ACE_Allocator_Adapter <ACE_Malloc <ACE_LOCAL_MEMORY_POOL, ACE_Null_Mutex> >;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Guard <ACE_Lock>
-// These specializations aren't needed for the ACE library because
-// Service_Config.cpp has them:
-//
-// #pragma instantiate ACE_Malloc <ACE_LOCAL_MEMORY_POOL, ACE_Null_Mutex>
-// #pragma instantiate ACE_Allocator_Adapter <ACE_Malloc <ACE_LOCAL_MEMORY_POOL, ACE_Null_Mutex> >
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Message_Block.h b/ace/Message_Block.h
deleted file mode 100644
index fd0997a69e5..00000000000
--- a/ace/Message_Block.h
+++ /dev/null
@@ -1,1039 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Message_Block.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_MESSAGE_BLOCK_H
-#define ACE_MESSAGE_BLOCK_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Default_Constants.h"
-#include "ace/Global_Macros.h"
-#include "ace/Time_Value.h"
-
-#include <stdlib.h>
-
-// Forward declaration.
-class ACE_Allocator;
-class ACE_Data_Block;
-class ACE_Lock;
-
-
-/**
- * @class ACE_Message_Block
- *
- * @brief Stores messages for use throughout ACE (particularly
- * <ACE_Message_Queue>).
- *
- * An <ACE_Message_Block> is modeled after the message data
- * structures used in System V STREAMS. Its purpose is to
- * enable efficient manipulation of arbitrarily-large messages
- * without incurring much memory copying overhead. Here are the
- * main characteristics of an <ACE_Message_Block>:
- * 1. Contains a pointer to a reference-counted
- * <ACE_Data_Block>, which in turn points to the actual data
- * buffer. This allows very flexible and efficient sharing of
- * data by multiple <ACE_Message_Block>s.
- * 2. One or more <ACE_Message_Blocks> can be linked to form a
- * ``fragment chain.''
- * 3. <ACE_Message_Blocks> can be linked together by <prev_> and
- * <next_> pointers to form a queue of messages (e.g., this is how
- * <ACE_Message_Queue> works).
- */
-class ACE_Export ACE_Message_Block
-{
-public:
- friend class ACE_Data_Block;
-
- enum
- {
- // = Data and proto
- /// Undifferentiated data message
- MB_DATA = 0x01,
- /// Undifferentiated protocol control
- MB_PROTO = 0x02,
-
- // = Control messages
- /// Line break (regular and priority)
- MB_BREAK = 0x03,
- /// Pass file pointer
- MB_PASSFP = 0x04,
- /// Post an event to an event queue
- MB_EVENT = 0x05,
- /// Generate process signal
- MB_SIG = 0x06,
- /// ioctl; set/get params
- MB_IOCTL = 0x07,
- /// Set various stream head options
- MB_SETOPTS = 0x08,
-
- // = Control messages
- /// Acknowledge ioctl (high priority; go to head of queue)
- MB_IOCACK = 0x81,
- /// Negative ioctl acknowledge
- MB_IOCNAK = 0x82,
- /// Priority proto message
- MB_PCPROTO = 0x83,
- /// Generate process signal
- MB_PCSIG = 0x84,
- /// Generate read notification
- MB_READ = 0x85,
- /// Flush your queues
- MB_FLUSH = 0x86,
- /// Stop transmission immediately
- MB_STOP = 0x87,
- /// Restart transmission after stop
- MB_START = 0x88,
- /// Line disconnect
- MB_HANGUP = 0x89,
- /// Fatal error used to set u.u_error
- MB_ERROR = 0x8a,
- /// Post an event to an event queue
- MB_PCEVENT = 0x8b,
-
- // = Message class masks
- /// Normal priority message mask
- MB_NORMAL = 0x00,
- /// High priority control message mask
- MB_PRIORITY = 0x80,
- /// User-defined message mask
- MB_USER = 0x200
- };
-
- typedef int ACE_Message_Type;
- typedef unsigned long Message_Flags;
-
- enum
- {
- /// Don't delete the data on exit since we don't own it.
- DONT_DELETE = 01,
- /// user defined flags start here
- USER_FLAGS = 0x1000
- };
-
- // = Initialization and termination.
- /// Create an empty message.
- ACE_Message_Block (ACE_Allocator *message_block_allocator = 0);
-
- /**
- * Create an <ACE_Message_Block> that owns the <ACE_Data_Block>
- * without copying it. If the <flags> is set to DONT_DELETE we
- * don't delete the ACE_Data_Block. It is left to the client's
- * responsibility to take care of the memory allocated for the
- * data_block
- */
- ACE_Message_Block (ACE_Data_Block *,
- Message_Flags flags = 0,
- ACE_Allocator *message_block_allocator = 0);
-
- /**
- * Create a Message Block that assumes ownership of <data> without
- * copying it (i.e., we don't delete it since we don't malloc it!).
- * Note that the <size> of the <Message_Block> will be <size>, but
- * the <length> will be 0 until <wr_ptr> is set.
- */
- ACE_Message_Block (const char *data,
- size_t size = 0,
- unsigned long priority = ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY);
-
- /**
- * Create an initialized message of type <type> containing <size>
- * bytes. The <cont> argument initializes the continuation field in
- * the <Message_Block>. If <data> == 0 then we create and own the
- * <data>, using <allocator> to get the data if it's non-0. If
- * <data> != 0 we assume that we have ownership of the <data> till
- * this object ceases to exist (and don't delete it during
- * destruction). If <locking_strategy> is non-0 then this is used
- * to protect regions of code that access shared state (e.g.,
- * reference counting) from race conditions. Note that the <size>
- * of the <Message_Block> will be <size>, but the <length> will be 0
- * until <wr_ptr> is set. The <data_block_allocator> is use to
- * allocate the data blocks while the <allocator_strategy> is used
- * to allocate the buffers contained by those. The
- * <message_block_allocator> is used to allocate new <Message_Block>
- * objects when a duplicate method is called. If a
- * <message_block_allocator> is given, this <Message_Block> and
- * future <Message_Block> objects created by duplicate will be
- * free'ed into this allocator when they are released. Note: if
- * you use this allocator, the <Message_Block> you created should
- * have been created using this allocator because it will be
- * released to the same allocator.
- */
- ACE_Message_Block (size_t size,
- ACE_Message_Type type = MB_DATA,
- ACE_Message_Block *cont = 0,
- const char *data = 0,
- ACE_Allocator *allocator_strategy = 0,
- ACE_Lock *locking_strategy = 0,
- unsigned long priority = ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY,
- const ACE_Time_Value &execution_time = ACE_Time_Value::zero,
- const ACE_Time_Value &deadline_time = ACE_Time_Value::max_time,
- ACE_Allocator *data_block_allocator = 0,
- ACE_Allocator *message_block_allocator = 0);
-
- /**
- * A copy constructor. This constructor is a bit different. If the
- * incoming Message Block has a data block from the stack this
- * constructor does a deep copy ie. allocates a new data block on
- * the heap and does a copy of the data from the incoming message
- * block. As a final note, the alignment information is used to
- * align the data block if it is created afresh. If the incoming
- * <mb> has a data block has a data block allocated from the heap,
- * then this constructor just duplicates (ie. a shallow copy) the
- * data block of the incoming <mb>.
- */
- ACE_Message_Block (const ACE_Message_Block &mb,
- size_t align);
-
- /**
- * Create a Message Block that assumes it has ownership of <data>,
- * but in reality it doesnt (i.e., cannot delete it since it didn't
- * malloc it!). Note that the <size> of the <Message_Block> will
- * be <size>, but the <length> will be 0 until <wr_ptr> is set.
- */
- int init (const char *data,
- size_t size = 0);
-
- /**
- * Create an initialized message of type <type> containing <size>
- * bytes. The <cont> argument initializes the continuation field in
- * the <Message_Block>. If <data> == 0 then we create and own the
- * <data>, using <allocator> to get the data if it's non-0. If
- * <data> != 0 we assume that we have ownership of the <data> till
- * this object ceases to exist (and don't delete it during
- * destruction). If <locking_strategy> is non-0 then this is used
- * to protect regions of code that access shared state (e.g.,
- * reference counting) from race conditions. Note that the <size>
- * of the <Message_Block> will be <size>, but the <length> will be 0
- * until <wr_ptr> is set. The <data_block_allocator> is use to
- * allocate the data blocks while the <allocator_strategy> is used
- * to allocate the buffers contained by those.
- */
- int init (size_t size,
- ACE_Message_Type type = MB_DATA,
- ACE_Message_Block *cont = 0,
- const char *data = 0,
- ACE_Allocator *allocator_strategy = 0,
- ACE_Lock *locking_strategy = 0,
- unsigned long priority = ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY,
- const ACE_Time_Value &execution_time = ACE_Time_Value::zero,
- const ACE_Time_Value &deadline_time = ACE_Time_Value::max_time,
- ACE_Allocator *data_block_allocator = 0,
- ACE_Allocator *message_block_allocator = 0);
-
- /**
- * Delete all the resources held in the message.
- *
- * Note that <release()> is designed to release the continuation
- * chain; the destructor is not. See <release()> for details.
- */
- virtual ~ACE_Message_Block (void);
-
- // = Message Type accessors and mutators.
-
- /// Get type of the message.
- ACE_Message_Type msg_type (void) const;
-
- /// Set type of the message.
- void msg_type (ACE_Message_Type type);
-
- /// Find out what type of message this is.
- int is_data_msg (void) const;
-
- /// Find out what class of message this is (there are two classes,
- /// <normal> messages and <high-priority> messages).
- ACE_Message_Type msg_class (void) const;
-
- // = Message flag accessors and mutators.
- /// Bitwise-or the <more_flags> into the existing message flags and
- /// return the new value.
- Message_Flags set_flags (Message_Flags more_flags);
-
- /// Clear the message flag bits specified in <less_flags> and return
- /// the new value.
- Message_Flags clr_flags (Message_Flags less_flags);
-
- /// Get the current message flags.
- Message_Flags flags (void) const;
-
- // = Data Block flag accessors and mutators.
- /// Bitwise-or the <more_flags> into the existing message flags and
- /// return the new value.
- /* @todo: I think the following set of methods could not be used at
- * all. May be they are useless. Let us have it so that we dont
- * mess up memory management of the Message_Block. Somebody correct
- * me if I am totally totally wrong..
- */
- Message_Flags set_self_flags (ACE_Message_Block::Message_Flags more_flags);
-
- /// Clear the message flag bits specified in <less_flags> and return
- /// the new value.
- Message_Flags clr_self_flags (ACE_Message_Block::Message_Flags less_flags);
-
- /// Get the current message flags.
- Message_Flags self_flags (void) const;
-
- /// Get priority of the message.
- unsigned long msg_priority (void) const;
-
- /// Set priority of the message.
- void msg_priority (unsigned long priority);
-
- /// Get execution time associated with the message.
- const ACE_Time_Value &msg_execution_time (void) const;
-
- /// Set execution time associated with the message.
- void msg_execution_time (const ACE_Time_Value &et);
-
- /// Get absolute time of deadline associated with the message.
- const ACE_Time_Value &msg_deadline_time (void) const;
-
- /// Set absolute time of deadline associated with the message.
- void msg_deadline_time (const ACE_Time_Value &dt);
-
- // = Deep copy and shallow copy methods.
-
- /// Return an exact "deep copy" of the message, i.e., create fresh
- /// new copies of all the Data_Blocks and continuations.
- virtual ACE_Message_Block *clone (Message_Flags mask = 0) const;
-
- /// Return a "shallow" copy that increments our reference count by 1.
- virtual ACE_Message_Block *duplicate (void) const;
-
- /**
- * Return a "shallow" copy that increments our reference count by 1.
- * This is similar to CORBA's <_duplicate> method, which is useful
- * if you want to eliminate lots of checks for NULL <mb> pointers
- * before calling <_duplicate> on them.
- */
- static ACE_Message_Block *duplicate (const ACE_Message_Block *mb);
-
- /**
- * Decrease the shared ACE_Data_Block's reference count by 1. If the
- * ACE_Data_Block's reference count goes to 0, it is deleted.
- * In all cases, this ACE_Message_Block is deleted - it must have come
- * from the heap, or there will be trouble.
- *
- * release() is designed to release the continuation chain; the
- * destructor is not. If we make the destructor release the
- * continuation chain by calling release() or delete on the message
- * blocks in the continuation chain, the following code will not
- * work since the message block in the continuation chain is not off
- * the heap:
- *
- * ACE_Message_Block mb1 (1024);
- * ACE_Message_Block mb2 (1024);
- *
- * mb1.cont (&mb2);
- *
- * And hence, call release() on a dynamically allocated message
- * block. This will release all the message blocks in the
- * continuation chain. If you call delete or let the message block
- * fall off the stack, cleanup of the message blocks in the
- * continuation chain becomes the responsibility of the user.
- *
- * @retval 0, always, and the object this method was invoked on is no
- * longer valid.
- */
- virtual ACE_Message_Block *release (void);
-
- /**
- * This behaves like the non-static method <release>, except that it
- * checks if <mb> is 0. This is similar to <CORBA::release>, which
- * is useful if you want to eliminate lots of checks for NULL
- * pointers before calling <release> on them. Returns <mb>.
- */
- static ACE_Message_Block *release (ACE_Message_Block *mb);
-
- // = Operations on Message data
-
- /**
- * Copies data into this ACE_Message_Block. Data is copied into the
- * block starting at the current write pointer.
- *
- * @param buf Pointer to the buffer to copy from.
- * @param n The number of bytes to copy.
- *
- * @retval 0 on success; the write pointer is advanced by @arg n.
- * @retval -1 if the amount of free space following the write pointer
- * in the block is less than @arg n. Free space can be checked
- * by calling space().
- */
- int copy (const char *buf, size_t n);
-
- /**
- * Copies a 0-terminated character string into this ACE_Message_Block.
- * The string is copied into the block starting at the current write
- * pointer. The 0-terminator is included in the copied data.
- *
- * @param buf Pointer to the character string to copy from.
- *
- * @retval 0 on success; the write pointer is advanced by the string's
- * length, including the 0 terminator.
- * @retval -1 if the amount of free space following the write pointer
- * in the block is less than required to hold the entire string.
- * Free space can be checked by calling space().
- */
- int copy (const char *buf);
-
- /// Normalizes data in the top-level <Message_Block> to align with the base,
- /// i.e., it "shifts" the data pointed to by <rd_ptr> down to the <base> and
- /// then readjusts <rt_ptr> to point to <base> and <wr_ptr> to point
- /// to <base> + the length of the moved data.
- void crunch (void);
-
- /// Resets the Message Block data to contain nothing, i.e., sets the
- /// read and write pointers to align with the base.
- void reset (void);
-
- /// Access all the allocators in the message block.
- /// @@todo: Not sure whether we would need finer control while
- /// trying to access allocators ie. a method for every allocator.
- /**
- * This method returns the allocators only from the first message
- * block in the chain.
- *
- * @param allocator_strategy Strategy used to allocate the
- * underlying buffer
- *
- * @param data_block_allocator Strategy used to allocate the
- * underlying data block
- *
- * @param message_block_allocator Strategy used to allocate the
- * message block
- */
- void access_allocators (ACE_Allocator *&allocator_strategy,
- ACE_Allocator *&data_block_allocator,
- ACE_Allocator *&message_block_allocator);
-
- /// Reset all the allocators in the message block.
- /// @@todo: Not sure whether we would need finer control while
- /// trying to reset allocators ie. a method for every allocator.
- /**
- * This method resets the allocators in all the message blocks in
- * the chain.
- */
- void reset_allocators (ACE_Allocator *allocator_strategy = 0,
- ACE_Allocator *data_block_allocator = 0,
- ACE_Allocator *message_block_allocator = 0);
-
- /// Get message data.
- char *base (void) const;
-
- /// Set message data (doesn't reallocate).
- void base (char *data,
- size_t size,
- Message_Flags = DONT_DELETE);
-
- /// Return a pointer to 1 past the end of the allocated data in a message.
- char *end (void) const;
-
- /**
- * Return a pointer to 1 past the end of the allotted data in a message.
- * Allotted data may be less than allocated data if a value smaller than
- * capacity() to is passed to size().
- */
- char *mark (void) const;
-
- /// Get the read pointer.
- char *rd_ptr (void) const;
-
- /// Set the read pointer to <ptr>.
- void rd_ptr (char *ptr);
-
- /// Set the read pointer ahead <n> bytes.
- void rd_ptr (size_t n);
-
- /// Get the write pointer.
- char *wr_ptr (void) const;
-
- /// Set the write pointer to <ptr>.
- void wr_ptr (char *ptr);
-
- /// Set the write pointer ahead <n> bytes. This is used to compute
- /// the <length> of a message.
- void wr_ptr (size_t n);
-
- /** @name Message length and size operations
- *
- * Message length is (wr_ptr - rd_ptr).
- *
- * Message size is capacity of the message, including data outside
- * the [rd_ptr,wr_ptr] range.
- */
- //@{
- /// Get the length of the message
- size_t length (void) const;
-
- /// Set the length of the message
- void length (size_t n);
-
- /// Get the length of the <Message_Block>s, including chained
- /// <Message_Block>s.
- size_t total_length (void) const;
-
- /// Get the total number of bytes in all <Message_Block>s, including
- /// chained <Message_Block>s.
- size_t total_size (void) const;
-
- /// Get the total number of bytes and total length in all
- /// <Message_Block>s, including chained <Message_Block>s.
- void total_size_and_length (size_t &mb_size,
- size_t &mb_length) const;
-
- /// Get the number of bytes in the top-level <Message_Block> (i.e.,
- /// does not consider the bytes in chained <Message_Block>s).
- size_t size (void) const;
-
- /**
- * Set the number of bytes in the top-level <Message_Block>,
- * reallocating space if necessary. However, the <rd_ptr_> and
- * <wr_ptr_> remain at the original offsets into the buffer, even if
- * it is reallocated. Returns 0 if successful, else -1.
- */
- int size (size_t length);
-
- /// Get the number of allocated bytes in all <Message_Block>, including
- /// chained <Message_Block>s.
- size_t total_capacity (void) const;
-
- /// Get the number of allocated bytes in the top-level <Message_Block>.
- size_t capacity (void) const;
-
- /// Get the number of bytes available after the <wr_ptr_> in the
- /// top-level <Message_Block>.
- size_t space (void) const;
- //@}
-
- // = <ACE_Data_Block> methods.
-
- /**
- * Get a pointer to the data block. Note that the <ACE_Message_Block>
- * still references the block; this call does not change the reference
- * count.
- */
- ACE_Data_Block *data_block (void) const;
-
- /**
- * Set a new data block pointer. The original <ACE_Data_Block> is released
- * as a result of this call. If you need to keep the original block, call
- * <replace_data_block> instead. Upon return, this <ACE_Message_Block>
- * holds a pointer to the new <ACE_Data_Block>, taking over the reference
- * you held on it prior to the call.
- */
- void data_block (ACE_Data_Block *);
-
- /// Set a new data block pointer. A pointer to the original <ACE_Data_Block>
- /// is returned, and not released (as it is with <data_block>).
- ACE_Data_Block *replace_data_block (ACE_Data_Block*);
-
- // = The continuation field chains together composite messages.
- /// Get the continuation field.
- ACE_Message_Block *cont (void) const;
-
- /// Set the continuation field.
- void cont (ACE_Message_Block *);
-
- // = Pointer to the <Message_Block> directly ahead in the <ACE_Message_Queue>.
- /// Get link to next message.
- ACE_Message_Block *next (void) const;
-
- /// Set link to next message.
- void next (ACE_Message_Block *);
-
- // = Pointer to the <Message_Block> directly behind in the <ACE_Message_Queue>.
- /// Get link to prev message.
- ACE_Message_Block *prev (void) const;
-
- /// Set link to prev message.
- void prev (ACE_Message_Block *);
-
- // = The locking strategy prevents race conditions.
- /// Get the locking strategy.
- ACE_Lock *locking_strategy (void);
-
- /// Set a new locking strategy and return the hold one.
- ACE_Lock *locking_strategy (ACE_Lock *);
-
- /// Get the current reference count.
- int reference_count (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Internal initialization methods.
- /// Perform the actual initialization.
- ACE_Message_Block (size_t size,
- ACE_Message_Type type,
- ACE_Message_Block *cont,
- const char *data,
- ACE_Allocator *allocator_strategy,
- ACE_Lock *locking_strategy,
- Message_Flags flags,
- unsigned long priority,
- const ACE_Time_Value &execution_time,
- const ACE_Time_Value &deadline_time,
- ACE_Data_Block *db,
- ACE_Allocator *data_block_allocator,
- ACE_Allocator *message_block_allocator);
-
- /// Internal release implementation
- /// Returns 1 if the data block has to be destroyed.
- int release_i (ACE_Lock *lock);
-
- /// Perform the actual initialization.
- int init_i (size_t size,
- ACE_Message_Type type,
- ACE_Message_Block *cont,
- const char *data,
- ACE_Allocator *allocator_strategy,
- ACE_Lock *locking_strategy,
- Message_Flags flags,
- unsigned long priority,
- const ACE_Time_Value &execution_time,
- const ACE_Time_Value &deadline_time,
- ACE_Data_Block *db,
- ACE_Allocator *data_block_allocator,
- ACE_Allocator *message_block_allocator);
-
- /// Pointer to beginning of next read.
- size_t rd_ptr_;
-
- /// Pointer to beginning of next write.
- size_t wr_ptr_;
-
- /// Priority of message.
- unsigned long priority_;
-
-#if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
- /// Execution time associated with the message.
- ACE_Time_Value execution_time_;
-
- /// Absolute deadline time for message.
- ACE_Time_Value deadline_time_;
-#endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */
-
- // = Links to other ACE_Message_Block *s.
- /// Pointer to next message block in the chain.
- ACE_Message_Block *cont_;
-
- /// Pointer to next message in the list.
- ACE_Message_Block *next_;
-
- /// Pointer to previous message in the list.
- ACE_Message_Block *prev_;
-
- /// Misc flags (e.g., DONT_DELETE and USER_FLAGS).
- ACE_Message_Block::Message_Flags flags_;
-
- /// Pointer to the reference counted data structure that contains the
- /// actual memory buffer.
- ACE_Data_Block *data_block_;
-
- /// The allocator used to destroy ourselves when release is called
- /// and create new message blocks on duplicate.
- ACE_Allocator *message_block_allocator_;
-
-private:
- // = Disallow these operations for now (use <clone> instead).
- ACE_Message_Block &operator= (const ACE_Message_Block &);
- ACE_Message_Block (const ACE_Message_Block &);
-};
-
-/**
- * @class ACE_Data_Block
- *
- * @brief Stores the data payload that is accessed via one or more
- * <ACE_Message_Block>s.
- *
- * This data structure is reference counted to maximize
- * sharing. It also contains the <locking_strategy_> (which
- * protects the reference count from race conditions in
- * concurrent programs) and the <allocation_strategy_> (which
- * determines what memory pool is used to allocate the memory).
- */
-class ACE_Export ACE_Data_Block
-{
-public:
- // = Initialization and termination methods.
- /// Default "do-nothing" constructor.
- ACE_Data_Block (void);
-
- /// Initialize.
- ACE_Data_Block (size_t size,
- ACE_Message_Block::ACE_Message_Type msg_type,
- const char *msg_data,
- ACE_Allocator *allocator_strategy,
- ACE_Lock *locking_strategy,
- ACE_Message_Block::Message_Flags flags,
- ACE_Allocator *data_block_allocator);
-
- /// Delete all the resources held in the message.
- virtual ~ACE_Data_Block (void);
-
- /// Get type of the message.
- ACE_Message_Block::ACE_Message_Type msg_type (void) const;
-
- /// Set type of the message.
- void msg_type (ACE_Message_Block::ACE_Message_Type type);
-
- /// Get message data pointer
- char *base (void) const;
-
- /// Set message data pointer (doesn't reallocate).
- void base (char *data,
- size_t size,
- ACE_Message_Block::Message_Flags mflags = ACE_Message_Block::DONT_DELETE);
-
- /// Return a pointer to 1 past the end of the allocated data in a message.
- char *end (void) const;
-
- /**
- * Return a pointer to 1 past the end of the allotted data in a message.
- * The allotted data may be less than allocated data if <size()> is passed
- * an argument less than <capacity()>.
- */
- char *mark (void) const;
-
- // = Message size is the total amount of space alloted.
-
- /// Get the total amount of allotted space in the message. The amount of
- /// allotted space may be less than allocated space.
- size_t size (void) const;
-
- /// Set the total amount of space in the message. Returns 0 if
- /// successful, else -1.
- int size (size_t length);
-
- /// Get the total amount of allocated space.
- size_t capacity (void) const;
-
- /**
- * Return an exact "deep copy" of the message, i.e., create fresh
- * new copies of all the Data_Blocks and continuations.
- * Notice that Data_Blocks can act as "Prototypes", i.e. derived
- * classes can override this method and create instances of
- * themselves.
- */
- virtual ACE_Data_Block *clone (ACE_Message_Block::Message_Flags mask = 0) const;
-
- /**
- * As clone above, but it does not copy the contents of the buffer,
- * i.e., create a new Data_Block of the same dynamic type, with the
- * same allocator, locking_strategy, and with the same amount of
- * storage available but the buffer is unitialized.
- */
- virtual ACE_Data_Block *clone_nocopy (ACE_Message_Block::Message_Flags mask = 0) const;
-
- /// Return a "shallow" copy that increments our reference count by 1.
- ACE_Data_Block *duplicate (void);
-
- /**
- * Decrease the shared reference count by 1. If the reference count
- * is > 0 then return this; else if reference count == 0 then delete
- * <this> and <mb> and return 0. Behavior is undefined if reference
- * count < 0.
- */
- ACE_Data_Block *release (ACE_Lock *lock = 0);
-
- // = Message flag accessors and mutators.
- /// Bitwise-or the <more_flags> into the existing message flags and
- /// return the new value.
- ACE_Message_Block::Message_Flags set_flags (ACE_Message_Block::Message_Flags more_flags);
-
- /// Clear the message flag bits specified in <less_flags> and return
- /// the new value.
- ACE_Message_Block::Message_Flags clr_flags (ACE_Message_Block::Message_Flags less_flags);
-
- /// Get the current message flags.
- ACE_Message_Block::Message_Flags flags (void) const;
-
- /// Obtain the allocator strategy.
- ACE_Allocator *allocator_strategy (void) const;
-
- // = The locking strategy prevents race conditions.
- /// Get the locking strategy.
- ACE_Lock *locking_strategy (void);
-
- /// Set a new locking strategy and return the hold one.
- ACE_Lock *locking_strategy (ACE_Lock *);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Get the current reference count.
- int reference_count (void) const;
-
- /// Get the allocator used to create this object
- ACE_Allocator *data_block_allocator (void) const;
-
-protected:
- /// Internal release implementation
- ACE_Data_Block *release_i (void);
-
- /**
- * Decrease the reference count, but don't delete the object.
- * Returns 0 if the object should be removed.
- * If <lock> is equal to the locking strategy then we assume that
- * the lock is beign held by the current thread; this is used to
- * release all the data blocks in a chain while holding a single
- * lock.
- */
- friend class ACE_Message_Block;
- ACE_Data_Block *release_no_delete (ACE_Lock *lock);
-
- /// Type of message.
- ACE_Message_Block::ACE_Message_Type type_;
-
- /// Current size of message block.
- size_t cur_size_;
-
- /// Total size of buffer.
- size_t max_size_;
-
- /// Misc flags (e.g., DONT_DELETE and USER_FLAGS).
- ACE_Message_Block::Message_Flags flags_;
-
- /// Pointer To beginning of message payload.
- char *base_;
-
- // = Strategies.
- /**
- * Pointer to the allocator defined for this <ACE_Data_Block>. Note
- * that this pointer is shared by all owners of this
- * <ACE_Data_Block>.
- */
- ACE_Allocator *allocator_strategy_;
-
- /**
- * Pointer to the locking strategy defined for this
- * <ACE_Data_Block>. This is used to protect regions of code that
- * access shared <ACE_Data_Block> state. Note that this lock is
- * shared by all owners of the <ACE_Data_Block>'s data.
- */
- ACE_Lock *locking_strategy_;
-
- /**
- * Reference count for this <ACE_Data_Block>, which is used to avoid
- * deep copies (i.e., <clone>). Note that this pointer value is
- * shared by all owners of the <Data_Block>'s data, i.e., all the
- * <ACE_Message_Block>s.
- */
- int reference_count_;
-
- /// The allocator use to destroy ourselves.
- ACE_Allocator *data_block_allocator_;
-
-private:
- // = Disallow these operations.
- ACE_Data_Block &operator= (const ACE_Data_Block &);
- ACE_Data_Block (const ACE_Data_Block &);
-};
-
-/**
- * @class ACE_Dynamic_Message_Strategy
- *
- * @brief An abstract base class which provides dynamic priority
- * evaluation methods for use by the <ACE_Dynamic_Message_Queue>
- * class or any other class which needs to manage the priorities
- * of a collection of <ACE_Message_Block>s dynamically.
- *
- * Methods for deadline and laxity based priority evaluation are
- * provided. These methods assume a specific partitioning of
- * the message priority number into a higher order dynamic bit
- * field and a lower order static priority bit field. The
- * default partitioning assumes an unsigned dynamic message
- * priority field of 22 bits and an unsigned static message
- * priority field of 10 bits. This corresponds to the initial
- * values of the static class members. To provide a different
- * partitioning, assign a different set of values to the static
- * class memebers before using the static member functions.
- */
-class ACE_Export ACE_Dynamic_Message_Strategy
-{
-public:
-
- // = Message priority status
-
- // Values are defined as bit flags so that status combinations may
- // be specified easily.
-
- enum Priority_Status
- {
- /// Message can still make its deadline
- PENDING = 0x01,
- /// Message cannot make its deadline
- LATE = 0x02,
- /// Message is so late its priority is undefined
- BEYOND_LATE = 0x04,
- /// Mask to match any priority status
- ANY_STATUS = 0x07
- };
-
- /// Constructor.
- ACE_Dynamic_Message_Strategy (unsigned long static_bit_field_mask,
- unsigned long static_bit_field_shift,
- unsigned long dynamic_priority_max,
- unsigned long dynamic_priority_offset);
-
- /// Virtual destructor.
- virtual ~ACE_Dynamic_Message_Strategy (void);
-
- /// Updates the message's priority and returns its priority status.
- Priority_Status priority_status (ACE_Message_Block &mb,
- const ACE_Time_Value &tv);
-
- /// Get static bit field mask.
- unsigned long static_bit_field_mask (void) const;
-
- /// Set static bit field mask.
- void static_bit_field_mask (unsigned long);
-
- /// Get left shift value to make room for static bit field.
- unsigned long static_bit_field_shift (void) const;
-
- /// Set left shift value to make room for static bit field.
- void static_bit_field_shift (unsigned long);
-
- /// Get maximum supported priority value.
- unsigned long dynamic_priority_max (void) const;
-
- /// Set maximum supported priority value.
- void dynamic_priority_max (unsigned long);
-
- /// Get offset to boundary between signed range and unsigned range.
- unsigned long dynamic_priority_offset (void) const;
-
- /// Set offset to boundary between signed range and unsigned range.
- void dynamic_priority_offset (unsigned long);
-
- /// Dump the state of the strategy.
- virtual void dump (void) const;
-
-protected:
- /// Hook method for dynamic priority conversion.
- virtual void convert_priority (ACE_Time_Value &priority,
- const ACE_Message_Block &mb) = 0;
-
- /// This is a bit mask with all ones in the static bit field.
- unsigned long static_bit_field_mask_;
-
- /**
- * This is a left shift value to make room for static bit field:
- * this value should be the logarithm base 2 of
- * (static_bit_field_mask_ + 1).
- */
- unsigned long static_bit_field_shift_;
-
- /// Maximum supported priority value.
- unsigned long dynamic_priority_max_;
-
- /// Offset to boundary between signed range and unsigned range.
- unsigned long dynamic_priority_offset_;
-
- /// Maximum late time value that can be represented.
- ACE_Time_Value max_late_;
-
- /// Minimum pending time value that can be represented.
- ACE_Time_Value min_pending_;
-
- /// Time value by which to shift pending priority.
- ACE_Time_Value pending_shift_;
-};
-
-/**
- * @class ACE_Deadline_Message_Strategy
- *
- * @brief Deadline based message priority strategy.
- *
- * Assigns dynamic message priority according to time to deadline. The
- * message priority is divided into high and low order bit fields. The
- * high order bit field is used for dynamic message priority, which is
- * updated whenever the convert_priority() method is called. The
- * low order bit field is used for static message priority and is left
- * unchanged. The partitioning of the priority value into high and low
- * order bit fields is done according to the arguments passed to the
- * strategy object's constructor.
- */
-class ACE_Export ACE_Deadline_Message_Strategy : public ACE_Dynamic_Message_Strategy
-{
-public:
- /// Ctor, with all arguments defaulted.
- ACE_Deadline_Message_Strategy (unsigned long static_bit_field_mask = 0x3FFUL, // 2^(10) - 1
- unsigned long static_bit_field_shift = 10, // 10 low order bits
- unsigned long dynamic_priority_max = 0x3FFFFFUL, // 2^(22)-1
- unsigned long dynamic_priority_offset = 0x200000UL); // 2^(22-1)
-
- /// Virtual dtor.
- virtual ~ACE_Deadline_Message_Strategy (void);
-
- /// Dynamic priority conversion function based on time to deadline.
- virtual void convert_priority (ACE_Time_Value &priority,
- const ACE_Message_Block &mb);
-
- /// Dump the state of the strategy.
- virtual void dump (void) const;
-};
-
-/**
- * @class ACE_Laxity_Message_Strategy
- *
- * @brief Laxity based message priority strategy.
- *
- * Assigns dynamic message priority according to laxity (time to
- * deadline minus worst case execution time). The message priority is
- * divided into high and low order bit fields. The high order
- * bit field is used for dynamic message priority, which is
- * updated whenever the convert_priority() method is called. The
- * low order bit field is used for static message priority and is left
- * unchanged. The partitioning of the priority value into high and low
- * order bit fields is done according to the arguments passed to the
- * strategy object's constructor.
- */
-class ACE_Export ACE_Laxity_Message_Strategy : public ACE_Dynamic_Message_Strategy
-{
-public:
- /// Ctor, with all arguments defaulted.
- ACE_Laxity_Message_Strategy (unsigned long static_bit_field_mask = 0x3FFUL, // 2^(10) - 1
- unsigned long static_bit_field_shift = 10, // 10 low order bits
- unsigned long dynamic_priority_max = 0x3FFFFFUL, // 2^(22)-1
- unsigned long dynamic_priority_offset = 0x200000UL); // 2^(22-1)
-
- /// virtual dtor.
- virtual ~ACE_Laxity_Message_Strategy (void);
-
- /// Dynamic priority conversion function based on laxity.
- virtual void convert_priority (ACE_Time_Value &priority,
- const ACE_Message_Block &mb);
-
- /// Dump the state of the strategy.
- virtual void dump (void) const;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Message_Block.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Message_Block_T.h"
-
-#include "ace/post.h"
-
-#endif /* ACE_MESSAGE_BLOCK_H */
diff --git a/ace/Message_Block.i b/ace/Message_Block.i
deleted file mode 100644
index 01d11f795e0..00000000000
--- a/ace/Message_Block.i
+++ /dev/null
@@ -1,658 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Message_Block.i
-
-ACE_INLINE ACE_Data_Block *
-ACE_Message_Block::data_block (void) const
-{
- ACE_TRACE ("ACE_Message_Block::data_block");
- return this->data_block_;
-}
-
-ACE_INLINE ACE_Message_Block::Message_Flags
-ACE_Message_Block::set_self_flags (ACE_Message_Block::Message_Flags more_flags)
-{
- ACE_TRACE ("ACE_Message_Block::set_self_flags");
- // Later we might mask more_glags so that user can't change internal
- // ones: more_flags &= ~(USER_FLAGS -1).
- return ACE_SET_BITS (this->flags_, more_flags);
-}
-
-ACE_INLINE ACE_Message_Block::Message_Flags
-ACE_Message_Block::clr_self_flags (ACE_Message_Block::Message_Flags less_flags)
-{
- ACE_TRACE ("ACE_Message_Block::clr_self_flags");
- // Later we might mask more_flags so that user can't change internal
- // ones: less_flags &= ~(USER_FLAGS -1).
- return ACE_CLR_BITS (this->flags_, less_flags);
-}
-
-ACE_INLINE ACE_Message_Block::Message_Flags
-ACE_Message_Block::self_flags (void) const
-{
- ACE_TRACE ("ACE_Message_Block::self_flags");
- return this->flags_;
-}
-
-
-// This function must comes before ACE_Message_Block::reference_count
-// to avoid a g++ warning.
-ACE_INLINE int
-ACE_Data_Block::reference_count (void) const
-{
- return reference_count_;
-}
-
-ACE_INLINE int
-ACE_Message_Block::reference_count (void) const
-{
- return data_block () ? data_block ()->reference_count () : 0;
-}
-
-ACE_INLINE char *
-ACE_Data_Block::base (void) const
-{
- ACE_TRACE ("ACE_Data_Block::base");
- return this->base_;
-}
-
-ACE_INLINE size_t
-ACE_Data_Block::size (void) const
-{
- ACE_TRACE ("ACE_Data_Block::size");
- return this->cur_size_;
-}
-
-ACE_INLINE size_t
-ACE_Data_Block::capacity (void) const
-{
- ACE_TRACE ("ACE_Data_Block::capacity");
- return this->max_size_;
-}
-
-ACE_INLINE ACE_Message_Block::Message_Flags
-ACE_Data_Block::set_flags (ACE_Message_Block::Message_Flags more_flags)
-{
- ACE_TRACE ("ACE_Data_Block::set_flags");
- // Later we might mask more_glags so that user can't change internal
- // ones: more_flags &= ~(USER_FLAGS -1).
- return ACE_SET_BITS (this->flags_, more_flags);
-}
-
-ACE_INLINE ACE_Message_Block::Message_Flags
-ACE_Data_Block::clr_flags (ACE_Message_Block::Message_Flags less_flags)
-{
- ACE_TRACE ("ACE_Data_Block::clr_flags");
- // Later we might mask more_flags so that user can't change internal
- // ones: less_flags &= ~(USER_FLAGS -1).
- return ACE_CLR_BITS (this->flags_, less_flags);
-}
-
-ACE_INLINE ACE_Message_Block::Message_Flags
-ACE_Data_Block::flags (void) const
-{
- ACE_TRACE ("ACE_Data_Block::flags");
- return this->flags_;
-}
-
-ACE_INLINE ACE_Allocator*
-ACE_Data_Block::data_block_allocator (void) const
-{
- ACE_TRACE ("ACE_Data_Block::data_block_allocator");
- return this->data_block_allocator_;
-}
-
-ACE_INLINE ACE_Message_Block::Message_Flags
-ACE_Message_Block::set_flags (ACE_Message_Block::Message_Flags more_flags)
-{
- ACE_TRACE ("ACE_Message_Block::set_flags");
- return this->data_block ()->set_flags (more_flags);
-}
-
-ACE_INLINE ACE_Message_Block::Message_Flags
-ACE_Message_Block::clr_flags (ACE_Message_Block::Message_Flags less_flags)
-{
- ACE_TRACE ("ACE_Message_Block::clr_flags");
- return this->data_block ()->clr_flags (less_flags);
-}
-
-ACE_INLINE ACE_Message_Block::Message_Flags
-ACE_Message_Block::flags (void) const
-{
- ACE_TRACE ("ACE_Message_Block::flags");
- return this->data_block ()->flags ();
-}
-
-// Return the length of the "active" portion of the message.
-
-ACE_INLINE size_t
-ACE_Message_Block::length (void) const
-{
- ACE_TRACE ("ACE_Message_Block::length");
- return this->wr_ptr_ - this->rd_ptr_;
-}
-
-// Sets the length of the "active" portion of the message. This is
-// defined as the offset from RD_PTR to WR_PTR.
-
-ACE_INLINE void
-ACE_Message_Block::length (size_t len)
-{
- ACE_TRACE ("ACE_Message_Block::length");
- this->wr_ptr_ = this->rd_ptr_ + len;
-}
-
-// Return the length of the potential size of the message.
-
-ACE_INLINE size_t
-ACE_Message_Block::size (void) const
-{
- ACE_TRACE ("ACE_Message_Block::size");
- return this->data_block ()->size ();
-}
-
-ACE_INLINE size_t
-ACE_Message_Block::capacity (void) const
-{
- ACE_TRACE ("ACE_Message_Block::capacity");
- return this->data_block ()->capacity ();
-}
-
-ACE_INLINE ACE_Message_Block::ACE_Message_Type
-ACE_Data_Block::msg_type (void) const
-{
- ACE_TRACE ("ACE_Data_Block::msg_type");
- return this->type_;
-}
-
-ACE_INLINE void
-ACE_Data_Block::msg_type (ACE_Message_Block::ACE_Message_Type t)
-{
- ACE_TRACE ("ACE_Data_Block::msg_type");
- this->type_ = t;
-}
-
-ACE_INLINE ACE_Message_Block::ACE_Message_Type
-ACE_Message_Block::msg_type (void) const
-{
- ACE_TRACE ("ACE_Message_Block::msg_type");
- return this->data_block ()->msg_type ();
-}
-
-ACE_INLINE void
-ACE_Message_Block::msg_type (ACE_Message_Block::ACE_Message_Type t)
-{
- ACE_TRACE ("ACE_Message_Block::msg_type");
- this->data_block ()->msg_type (t);
-}
-
-ACE_INLINE ACE_Message_Block::ACE_Message_Type
-ACE_Message_Block::msg_class (void) const
-{
- ACE_TRACE ("ACE_Message_Block::msg_class");
-
- if (this->msg_type () < ACE_Message_Block::MB_PRIORITY)
- return ACE_Message_Block::MB_NORMAL;
- else if (this->msg_type () < ACE_Message_Block::MB_USER)
- return ACE_Message_Block::MB_PRIORITY;
- else
- return ACE_Message_Block::MB_USER;
-}
-
-ACE_INLINE int
-ACE_Message_Block::is_data_msg (void) const
-{
- ACE_TRACE ("ACE_Message_Block::is_data_msg");
- ACE_Message_Type mt = this->msg_type ();
- return
- mt == ACE_Message_Block::MB_DATA
- || mt == ACE_Message_Block::MB_PROTO
- || mt == ACE_Message_Block::MB_PCPROTO;
-}
-
-ACE_INLINE u_long
-ACE_Message_Block::msg_priority (void) const
-{
- ACE_TRACE ("ACE_Message_Block::msg_priority");
- return this->priority_;
-}
-
-ACE_INLINE void
-ACE_Message_Block::msg_priority (u_long pri)
-{
- ACE_TRACE ("ACE_Message_Block::msg_priority");
- this->priority_ = pri;
-}
-
-ACE_INLINE const ACE_Time_Value &
-ACE_Message_Block::msg_execution_time (void) const
-{
- ACE_TRACE ("ACE_Message_Block::msg_execution_time (void)");
-#if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
- return this->execution_time_;
-#else
- return ACE_Time_Value::zero;
-#endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */
-}
-
-ACE_INLINE void
-ACE_Message_Block::msg_execution_time (const ACE_Time_Value &et)
-{
- ACE_TRACE ("ACE_Message_Block::msg_execution_time (const ACE_Time_Value & et)");
-#if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
- this->execution_time_ = et;
-#else
- ACE_UNUSED_ARG (et);
-#endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */
-}
-
-ACE_INLINE const ACE_Time_Value &
-ACE_Message_Block::msg_deadline_time (void) const
-{
- ACE_TRACE ("ACE_Message_Block::msg_deadline_time (void)");
-
-#if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
- return this->deadline_time_;
-#else
- return ACE_Time_Value::max_time; // absolute time of deadline
-#endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */
-}
-
-ACE_INLINE void
-ACE_Message_Block::msg_deadline_time (const ACE_Time_Value &dt)
-{
- ACE_TRACE ("ACE_Message_Block::msg_deadline_time (const ACE_Time_Value & et)");
-#if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
- this->deadline_time_ = dt;
-#else
- ACE_UNUSED_ARG (dt);
-#endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */
-}
-
-ACE_INLINE void
-ACE_Message_Block::access_allocators (ACE_Allocator *& allocator_strategy,
- ACE_Allocator *& data_block_allocator,
- ACE_Allocator *& message_block_allocator)
-{
- allocator_strategy =
- this->data_block_->allocator_strategy_;
- data_block_allocator =
- this->data_block_->data_block_allocator_;
- message_block_allocator =
- this->message_block_allocator_;
-}
-
-ACE_INLINE char *
-ACE_Message_Block::base (void) const
-{
- ACE_TRACE ("ACE_Message_Block::base");
- return this->data_block ()->base ();
-}
-
-ACE_INLINE void
-ACE_Message_Block::base (char *msg_data,
- size_t msg_length,
- Message_Flags msg_flags)
-{
- ACE_TRACE ("ACE_Message_Block::base");
- this->rd_ptr_ = 0;
- this->wr_ptr_ = 0;
- this->data_block ()->base (msg_data, msg_length, msg_flags);
-}
-
-ACE_INLINE char *
-ACE_Message_Block::rd_ptr (void) const
-{
- ACE_TRACE ("ACE_Message_Block::rd_ptr");
- return this->base () + this->rd_ptr_;
-}
-
-ACE_INLINE void
-ACE_Message_Block::wr_ptr (char *new_ptr)
-{
- ACE_TRACE ("ACE_Message_Block::wr_ptr");
- this->wr_ptr_ = new_ptr - this->base ();
-}
-
-// Return a pointer to 1 past the end of the data buffer.
-
-ACE_INLINE char *
-ACE_Data_Block::mark (void) const
-{
- ACE_TRACE ("ACE_Data_Block::mark");
- return this->base_ + this->cur_size_;
-}
-
-ACE_INLINE char *
-ACE_Message_Block::mark (void) const
-{
- ACE_TRACE ("ACE_Message_Block::mark");
- return this->data_block ()->mark ();
-}
-
-ACE_INLINE char *
-ACE_Data_Block::end (void) const
-{
- ACE_TRACE ("ACE_Data_Block::end");
- return this->base_ + this->max_size_;
-}
-
-ACE_INLINE char *
-ACE_Message_Block::end (void) const
-{
- ACE_TRACE ("ACE_Message_Block::end");
- return this->data_block ()->end ();
-}
-
-
-ACE_INLINE void
-ACE_Message_Block::rd_ptr (char *new_ptr)
-{
- ACE_TRACE ("ACE_Message_Block::rd_ptr");
- this->rd_ptr_ = new_ptr - this->base ();
-}
-
-ACE_INLINE void
-ACE_Message_Block::rd_ptr (size_t n)
-{
- ACE_TRACE ("ACE_Message_Block::rd_ptr");
- this->rd_ptr_ += n;
-}
-
-ACE_INLINE char *
-ACE_Message_Block::wr_ptr (void) const
-{
- ACE_TRACE ("ACE_Message_Block::wr_ptr");
- return this->base () + this->wr_ptr_;
-}
-
-ACE_INLINE void
-ACE_Message_Block::wr_ptr (size_t n)
-{
- ACE_TRACE ("ACE_Message_Block::wr_ptr");
- this->wr_ptr_ += n;
-}
-
-ACE_INLINE void
-ACE_Message_Block::reset (void)
-{
- ACE_TRACE ("ACE_Message_Block::reset");
- this->rd_ptr_ = 0;
- this->wr_ptr_ = 0;
-}
-
-ACE_INLINE size_t
-ACE_Message_Block::space (void) const
-{
- ACE_TRACE ("ACE_Message_Block::space");
- return this->mark () - this->wr_ptr ();
-}
-
-ACE_INLINE ACE_Data_Block *
-ACE_Message_Block::replace_data_block (ACE_Data_Block *db)
-{
- ACE_TRACE ("ACE_Message_Block::replace_data_block");
- ACE_Data_Block *old = this->data_block_;
- this->data_block_ = db;
-
- if (db != 0)
- {
- // Set the read and write pointers in the <Message_Block> to point
- // to the buffer in the <ACE_Data_Block>.
- this->rd_ptr (this->data_block ()->base ());
- this->wr_ptr (this->data_block ()->base ());
- }
-
- return old;
-}
-
-ACE_INLINE void
-ACE_Message_Block::cont (ACE_Message_Block *cont_msg)
-{
- ACE_TRACE ("ACE_Message_Block::cont");
- this->cont_ = cont_msg;
-}
-
-ACE_INLINE ACE_Message_Block *
-ACE_Message_Block::cont (void) const
-{
- ACE_TRACE ("ACE_Message_Block::cont");
- return this->cont_;
-}
-
-ACE_INLINE void
-ACE_Message_Block::reset_allocators (ACE_Allocator *allocator_strategy,
- ACE_Allocator *data_block_allocator,
- ACE_Allocator *message_block_allocator)
-{
- this->data_block_->allocator_strategy_ =
- allocator_strategy;
- this->data_block_->data_block_allocator_ =
- data_block_allocator;
- this->message_block_allocator_ =
- message_block_allocator;
-
- if (this->cont () != 0)
- this->cont ()->reset_allocators (allocator_strategy,
- data_block_allocator,
- message_block_allocator);
-}
-
-ACE_INLINE void
-ACE_Message_Block::next (ACE_Message_Block *next_msg)
-{
- ACE_TRACE ("ACE_Message_Block::next");
- this->next_ = next_msg;
-}
-
-ACE_INLINE ACE_Message_Block *
-ACE_Message_Block::next (void) const
-{
- ACE_TRACE ("ACE_Message_Block::next");
- return this->next_;
-}
-
-ACE_INLINE void
-ACE_Message_Block::prev (ACE_Message_Block *next_msg)
-{
- ACE_TRACE ("ACE_Message_Block::prev");
- this->prev_ = next_msg;
-}
-
-ACE_INLINE ACE_Message_Block *
-ACE_Message_Block::prev (void) const
-{
- ACE_TRACE ("ACE_Message_Block::prev");
- return this->prev_;
-}
-
-ACE_INLINE ACE_Allocator *
-ACE_Data_Block::allocator_strategy (void) const
-{
- ACE_TRACE ("ACE_Data_Block::allocator_strategy");
- return this->allocator_strategy_;
-}
-
-ACE_INLINE ACE_Lock *
-ACE_Data_Block::locking_strategy (void)
-{
- ACE_TRACE ("ACE_Data_Block::locking_strategy");
- return this->locking_strategy_;
-}
-
-ACE_INLINE ACE_Lock *
-ACE_Data_Block::locking_strategy (ACE_Lock *nls)
-{
- ACE_TRACE ("ACE_Data_Block::locking_strategy");
- ACE_Lock *ols = this->locking_strategy_;
-
- this->locking_strategy_ = nls;
- return ols;
-}
-
-ACE_INLINE ACE_Lock *
-ACE_Message_Block::locking_strategy (void)
-{
- ACE_TRACE ("ACE_Message_Block::locking_strategy");
- return this->data_block ()->locking_strategy ();
-}
-
-ACE_INLINE ACE_Lock *
-ACE_Message_Block::locking_strategy (ACE_Lock *nls)
-{
- ACE_TRACE ("ACE_Message_Block::locking_strategy");
- ACE_Lock *ols = this->data_block ()->locking_strategy ();
- this->data_block ()->locking_strategy (nls);
- return ols;
-}
-
-
-////////////////////////////////////////
-// class ACE_Dynamic_Message_Strategy //
-////////////////////////////////////////
-
-ACE_INLINE u_long
-ACE_Dynamic_Message_Strategy::static_bit_field_mask (void) const
-{
- return static_bit_field_mask_;
-}
- // get static bit field mask
-
-ACE_INLINE void
-ACE_Dynamic_Message_Strategy::static_bit_field_mask (u_long ul)
-{
- static_bit_field_mask_ = ul;
-}
- // set static bit field mask
-
-ACE_INLINE u_long
-ACE_Dynamic_Message_Strategy::static_bit_field_shift (void) const
-{
- return static_bit_field_shift_;
-}
- // get left shift value to make room for static bit field
-
-ACE_INLINE void
-ACE_Dynamic_Message_Strategy::static_bit_field_shift (u_long ul)
-{
- static_bit_field_shift_ = ul;
-}
- // set left shift value to make room for static bit field
-
-ACE_INLINE u_long
-ACE_Dynamic_Message_Strategy::dynamic_priority_max (void) const
-{
- return dynamic_priority_max_;
-}
- // get maximum supported priority value
-
-ACE_INLINE void
-ACE_Dynamic_Message_Strategy::dynamic_priority_max (u_long ul)
-{
- // pending_shift_ depends on dynamic_priority_max_: for performance
- // reasons, the value in pending_shift_ is (re)calculated only when
- // dynamic_priority_max_ is initialized or changes, and is stored
- // as a class member rather than being a derived value.
- dynamic_priority_max_ = ul;
- pending_shift_ = ACE_Time_Value (0, ul);
-}
- // set maximum supported priority value
-
-ACE_INLINE u_long
-ACE_Dynamic_Message_Strategy::dynamic_priority_offset (void) const
-{
- return dynamic_priority_offset_;
-}
- // get offset for boundary between signed range and unsigned range
-
-ACE_INLINE void
-ACE_Dynamic_Message_Strategy::dynamic_priority_offset (u_long ul)
-{
- // max_late_ and min_pending_ depend on dynamic_priority_offset_:
- // for performance reasons, the values in max_late_ and min_pending_
- // are (re)calculated only when dynamic_priority_offset_ is
- // initialized or changes, and are stored as a class member rather
- // than being derived each time one of their values is needed.
- dynamic_priority_offset_ = ul;
- max_late_ = ACE_Time_Value (0, ul - 1);
- min_pending_ = ACE_Time_Value (0, ul);
-}
- // set offset for boundary between signed range and unsigned range
-
-
-ACE_INLINE ACE_Dynamic_Message_Strategy::Priority_Status
-ACE_Dynamic_Message_Strategy::priority_status (ACE_Message_Block & mb,
- const ACE_Time_Value & tv)
-{
- // default the message to have pending priority status
- Priority_Status status = ACE_Dynamic_Message_Strategy::PENDING;
-
- // start with the passed absolute time as the message's priority, then
- // call the polymorphic hook method to (at least partially) convert
- // the absolute time and message attributes into the message's priority
- ACE_Time_Value priority (tv);
- convert_priority (priority, mb);
-
- // if the priority is negative, the message is pending
- if (priority < ACE_Time_Value::zero)
- {
- // priority for pending messages must be shifted
- // upward above the late priority range
- priority += pending_shift_;
- if (priority < min_pending_)
- priority = min_pending_;
- }
- // otherwise, if the priority is greater than the maximum late
- // priority value that can be represented, it is beyond late
- else if (priority > max_late_)
- {
- // all messages that are beyond late are assigned lowest priority (zero)
- mb.msg_priority (0);
- return ACE_Dynamic_Message_Strategy::BEYOND_LATE;
- }
- // otherwise, the message is late, but its priority is correct
- else
- status = ACE_Dynamic_Message_Strategy::LATE;
-
- // use (fast) bitwise operators to isolate and replace
- // the dynamic portion of the message's priority
- mb.msg_priority((mb.msg_priority() & static_bit_field_mask_) |
- ((priority.usec () + ACE_ONE_SECOND_IN_USECS * priority.sec ()) <<
- static_bit_field_shift_));
-
- return status;
-}
- // returns the priority status of the message
-
-
-
-/////////////////////////////////////////
-// class ACE_Deadline_Message_Strategy //
-/////////////////////////////////////////
-
-ACE_INLINE void
-ACE_Deadline_Message_Strategy::convert_priority (ACE_Time_Value & priority,
- const ACE_Message_Block & mb)
-{
- // Convert absolute time passed in tv to negative time
- // to deadline of mb with respect to that absolute time.
- priority -= mb.msg_deadline_time ();
-}
- // dynamic priority conversion function based on time to deadline
-
-
-///////////////////////////////////////
-// class ACE_Laxity_Message_Strategy //
-///////////////////////////////////////
-
-ACE_INLINE void
-ACE_Laxity_Message_Strategy::convert_priority (ACE_Time_Value & priority,
- const ACE_Message_Block & mb)
-{
- // Convert absolute time passed in tv to negative
- // laxity of mb with respect to that absolute time.
- priority += mb.msg_execution_time ();
- priority -= mb.msg_deadline_time ();
-}
- // dynamic priority conversion function based on laxity
diff --git a/ace/Message_Block_T.cpp b/ace/Message_Block_T.cpp
deleted file mode 100644
index da1aa495910..00000000000
--- a/ace/Message_Block_T.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-// $Id$
-
-#if !defined (ACE_MESSAGE_BLOCK_T_C)
-#define ACE_MESSAGE_BLOCK_T_C
-
-
-ACE_RCSID(ace, Message_Block_T, "$Id$")
-
-#include "ace/Malloc_Base.h" /* Need ACE_Allocator */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Message_Block_T.i"
-#endif /* __ACE_INLINE__ */
-
-template<class L>
-ACE_Locked_Data_Block<L>::~ACE_Locked_Data_Block (void)
-{
-}
-
-template<class ACE_LOCK> ACE_Data_Block *
-ACE_Locked_Data_Block<ACE_LOCK>::clone_nocopy (ACE_Message_Block::Message_Flags mask) const
-{
- ACE_TRACE ("ACE_Locked_Data_Block::clone_nocopy");
-
- // You always want to clear this one to prevent memory leaks but you
- // might add some others later.
- const ACE_Message_Block::Message_Flags always_clear =
- ACE_Message_Block::DONT_DELETE;
-
- ACE_Locked_Data_Block<ACE_LOCK> *nb;
-
- ACE_NEW_MALLOC_RETURN (nb,
- ACE_static_cast(ACE_Locked_Data_Block<ACE_LOCK>*,
- this->data_block_allocator ()->malloc (sizeof (ACE_Locked_Data_Block<ACE_LOCK>))),
- ACE_Locked_Data_Block<ACE_LOCK> (this->size (),
- this->msg_type (),
- 0,
- this->allocator_strategy (),
- this->flags (),
- this->data_block_allocator ()),
- 0);
-
- // Set new flags minus the mask...
- nb->clr_flags (mask | always_clear);
- return nb;
-}
-
-#endif /* ACE_MESSAGE_BLOCK_T_C */
diff --git a/ace/Message_Block_T.h b/ace/Message_Block_T.h
deleted file mode 100644
index cfcf22eeccf..00000000000
--- a/ace/Message_Block_T.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Message_Block_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author Carlos O'Ryan <coryan@atdesk.com>
- */
-//=============================================================================
-
-#ifndef ACE_MESSAGE_BLOCK_T_H
-#define ACE_MESSAGE_BLOCK_T_H
-#include "ace/pre.h"
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Locked_Data_Block
- *
- * @brief A Data_Block with a concrete locking strategy.
- *
- * Data_Blocks can be parametric on the kind of lock they use; in
- * many cases the lifetime of the lock is tied to the lifetime of
- * the Data_Block itself. But since Data_Blocks are reference
- * counted it is hard for users to control the lock lifetime.
- * This class is parametric over the kind of lock used.
- */
-template <class ACE_LOCK>
-class ACE_Locked_Data_Block : public ACE_Data_Block
-{
-public:
- // = Initialization and termination methods.
- /// Default "do-nothing" constructor.
- ACE_Locked_Data_Block (void);
-
- /// Initialize.
- ACE_Locked_Data_Block (size_t size,
- ACE_Message_Block::ACE_Message_Type msg_type,
- const char *msg_data,
- ACE_Allocator *allocator_strategy,
- ACE_Message_Block::Message_Flags flags,
- ACE_Allocator *data_block_allocator);
-
- /// Delete all the resources held in the message.
- virtual ~ACE_Locked_Data_Block (void);
-
- /**
- * Return an exact "deep copy" of the message, the dynamic type is
- * ACE_Locked_Data_Block<>
- * See the documentation in Message_Block.h for details.
- */
- virtual ACE_Data_Block *clone_nocopy (ACE_Message_Block::Message_Flags mask = 0) const;
-
-private:
- /// The lock
- ACE_LOCK lock_;
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (ACE_Locked_Data_Block<ACE_LOCK> &operator= (const ACE_Locked_Data_Block<ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Locked_Data_Block (const ACE_Locked_Data_Block<ACE_LOCK> &))
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Message_Block_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Message_Block_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Message_Block_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_MESSAGE_BLOCK_T_H */
diff --git a/ace/Message_Block_T.i b/ace/Message_Block_T.i
deleted file mode 100644
index 279dcaa704d..00000000000
--- a/ace/Message_Block_T.i
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Message_Block_T.i
-
-
-template<class ACE_LOCK> ACE_INLINE
-ACE_Locked_Data_Block<ACE_LOCK>::ACE_Locked_Data_Block (void)
-{
- this->locking_strategy_ = &this->lock_;
-}
-
-template<class ACE_LOCK> ACE_INLINE
-ACE_Locked_Data_Block<ACE_LOCK>::
-ACE_Locked_Data_Block (size_t size,
- ACE_Message_Block::ACE_Message_Type msg_type,
- const char *msg_data,
- ACE_Allocator *allocator_strategy,
- ACE_Message_Block::Message_Flags flags,
- ACE_Allocator *data_block_allocator)
- : ACE_Data_Block (size,
- msg_type,
- msg_data,
- allocator_strategy,
- &lock_,
- flags,
- data_block_allocator)
-{
-}
diff --git a/ace/Message_Queue.cpp b/ace/Message_Queue.cpp
deleted file mode 100644
index 1a35c1939fa..00000000000
--- a/ace/Message_Queue.cpp
+++ /dev/null
@@ -1,510 +0,0 @@
-// $Id$
-
-#if !defined (ACE_MESSAGE_QUEUE_C)
-#define ACE_MESSAGE_QUEUE_C
-
-#include "ace/Message_Queue.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Message_Queue.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Message_Queue, "$Id$")
-
-#if defined (VXWORKS)
-
-////////////////////////////////
-// class ACE_Message_Queue_Vx //
-////////////////////////////////
-
-void
-ACE_Message_Queue_Vx::dump (void) const
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- switch (this->state_)
- {
- case ACE_Message_Queue_Base::ACTIVATED:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("state = ACTIVATED\n")));
- break;
- case ACE_Message_Queue_Base::DEACTIVATED:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("state = DEACTIVATED\n")));
- break;
- case ACE_Message_Queue_Base::PULSED:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("state = PULSED\n")));
- break;
- }
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("low_water_mark = %d\n")
- ACE_LIB_TEXT ("high_water_mark = %d\n")
- ACE_LIB_TEXT ("cur_bytes = %d\n")
- ACE_LIB_TEXT ("cur_length = %d\n")
- ACE_LIB_TEXT ("cur_count = %d\n")
- ACE_LIB_TEXT ("head_ = %u\n")
- ACE_LIB_TEXT ("MSG_Q_ID = %u\n"),
- this->low_water_mark_,
- this->high_water_mark_,
- this->cur_bytes_,
- this->cur_length_,
- this->cur_count_,
- this->head_,
- this->tail_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Message_Queue_Vx::ACE_Message_Queue_Vx (size_t max_messages,
- size_t max_message_length,
- ACE_Notification_Strategy *ns)
- : ACE_Message_Queue<ACE_NULL_SYNCH> (0, 0, ns),
- max_messages_ (ACE_static_cast (int, max_messages)),
- max_message_length_ (ACE_static_cast (int, max_message_length))
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::ACE_Message_Queue_Vx");
-
- if (this->open (max_messages_, max_message_length_, ns) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("open")));
-}
-
-ACE_Message_Queue_Vx::~ACE_Message_Queue_Vx (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::~ACE_Message_Queue_Vx");
-
- if (this->tail_ != 0 && this->close () == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("close")));
-}
-
-// Don't bother locking since if someone calls this function more than
-// once for the same queue, we're in bigger trouble than just
-// concurrency control!
-
-int
-ACE_Message_Queue_Vx::open (size_t max_messages,
- size_t max_message_length,
- ACE_Notification_Strategy *ns)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::open");
- this->high_water_mark_ = 0;
- this->low_water_mark_ = 0;
- this->cur_bytes_ = 0;
- this->cur_length_ = 0;
- this->cur_count_ = 0;
- this->head_ = 0;
- this->notification_strategy_ = ns;
- this->max_messages_ = ACE_static_cast (int, max_messages);
- this->max_message_length_ = ACE_static_cast (int, max_message_length);
-
- if (tail_)
- {
- // Had already created a msgQ, so delete it.
- close ();
- activate_i ();
- }
-
- return (this->tail_ =
- ACE_reinterpret_cast (ACE_Message_Block *,
- ::msgQCreate (max_messages_,
- max_message_length_,
- MSG_Q_FIFO))) == 0 ? -1 : 0;
-}
-
-// Clean up the queue if we have not already done so!
-
-int
-ACE_Message_Queue_Vx::close (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::close");
- // Don't lock, because we don't have a lock. It shouldn't be
- // necessary, anyways.
-
- this->deactivate_i ();
-
- // Don't bother to free up the remaining message on the list,
- // because we don't have any way to iterate over what's in the
- // queue.
-
- return ::msgQDelete (msgq ());
-}
-
-int
-ACE_Message_Queue_Vx::signal_enqueue_waiters (void)
-{
- // No-op.
- return 0;
-}
-
-int
-ACE_Message_Queue_Vx::signal_dequeue_waiters (void)
-{
- // No-op.
- return 0;
-}
-
-int
-ACE_Message_Queue_Vx::enqueue_tail_i (ACE_Message_Block *new_item)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::enqueue_tail_i");
-
- if (new_item == 0)
- return -1;
-
- // Don't try to send a composite message!!!! Only the first
- // block will be sent.
-
- this->cur_count_++;
-
- // Always use this method to actually send a message on the queue.
- if (::msgQSend (msgq (),
- new_item->rd_ptr (),
- new_item->size (),
- WAIT_FOREVER,
- MSG_PRI_NORMAL) == OK)
- return ::msgQNumMsgs (msgq ());
- else
- return -1;
-}
-
-int
-ACE_Message_Queue_Vx::enqueue_head_i (ACE_Message_Block *new_item)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::enqueue_head_i");
-
- // Just delegate to enqueue_tail_i.
- return enqueue_tail_i (new_item);
-}
-
-int
-ACE_Message_Queue_Vx::enqueue_i (ACE_Message_Block *new_item)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::enqueue_i");
-
- if (new_item == 0)
- return -1;
-
- if (this->head_ == 0)
- // Should always take this branch.
- return this->enqueue_head_i (new_item);
- else
- ACE_NOTSUP_RETURN (-1);
-}
-
-int
-ACE_Message_Queue_Vx::enqueue_deadline_i (ACE_Message_Block *new_item)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::enqueue_deadline_i");
-
- // Just delegate to enqueue_tail_i.
- return enqueue_tail_i (new_item);
-}
-
-// Actually get the first ACE_Message_Block (no locking, so must be
-// called with locks held). This method assumes that the queue has at
-// least one item in it when it is called.
-
-int
-ACE_Message_Queue_Vx::dequeue_head_i (ACE_Message_Block *&first_item)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::dequeue_head_i");
-
- // We don't allocate a new Message_Block: the caller must provide
- // it, and must ensure that it is big enough (without chaining).
-
- if (first_item == 0 || first_item->wr_ptr () == 0)
- return -1;
-
- if (::msgQReceive (msgq (),
- first_item->wr_ptr (),
- first_item->size (),
- WAIT_FOREVER) == ERROR)
- return -1;
- else
- return ::msgQNumMsgs (msgq ());
-}
-
-int
-ACE_Message_Queue_Vx::dequeue_prio_i (ACE_Message_Block *& /*dequeued*/)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::dequeue_prio_i");
- ACE_NOTSUP_RETURN (-1);
-}
-
-int
-ACE_Message_Queue_Vx::dequeue_tail_i (ACE_Message_Block *& /*dequeued*/)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::dequeue_tail_i");
- ACE_NOTSUP_RETURN (-1);
-}
-
-int
-ACE_Message_Queue_Vx::dequeue_deadline_i (ACE_Message_Block *& /*dequeued*/)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::dequeue_deadline_i");
- ACE_NOTSUP_RETURN (-1);
-}
-
-// Take a look at the first item without removing it.
-
-int
-ACE_Message_Queue_Vx::wait_not_full_cond (ACE_Guard<ACE_Null_Mutex> &mon,
- ACE_Time_Value *tv)
-{
- // Always return here, and let the VxWorks message queue handle blocking.
- ACE_UNUSED_ARG (mon);
- ACE_UNUSED_ARG (tv);
-
- return 0;
-}
-
-int
-ACE_Message_Queue_Vx::wait_not_empty_cond (ACE_Guard<ACE_Null_Mutex> &mon,
- ACE_Time_Value *tv)
-{
- // Always return here, and let the VxWorks message queue handle blocking.
- ACE_UNUSED_ARG (mon);
- ACE_UNUSED_ARG (tv);
-
- return 0;
-}
-
-#if ! defined (ACE_NEEDS_FUNC_DEFINITIONS)
-int
-ACE_Message_Queue_Vx::peek_dequeue_head (ACE_Message_Block *&,
- ACE_Time_Value *tv)
-{
- ACE_UNUSED_ARG (tv);
- ACE_NOTSUP_RETURN (-1);
-}
-#endif /* ! ACE_NEEDS_FUNC_DEFINITIONS */
-
-#endif /* VXWORKS */
-
-#if defined (ACE_WIN32) && (ACE_HAS_WINNT4 != 0)
-
-ACE_Message_Queue_NT::ACE_Message_Queue_NT (DWORD max_threads)
- : max_cthrs_ (max_threads),
- cur_thrs_ (0),
- cur_bytes_ (0),
- cur_length_ (0),
- cur_count_ (0),
- completion_port_ (ACE_INVALID_HANDLE)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::ACE_Message_Queue_NT");
- this->open (max_threads);
-}
-
-int
-ACE_Message_Queue_NT::open (DWORD max_threads)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::open");
- this->max_cthrs_ = max_threads;
- this->completion_port_ = ::CreateIoCompletionPort (ACE_INVALID_HANDLE,
- 0,
- ACE_Message_Queue_Base::WAS_ACTIVE,
- max_threads);
- return (this->completion_port_ == 0 ? -1 : 0);
-}
-
-int
-ACE_Message_Queue_NT::close (void)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::close");
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
- this->deactivate ();
- return (::CloseHandle (this->completion_port_) ? 0 : -1 );
-}
-
-ACE_Message_Queue_NT::~ACE_Message_Queue_NT (void)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::~ACE_Message_Queue_NT");
- this->close ();
-}
-
-int
-ACE_Message_Queue_NT::enqueue (ACE_Message_Block *new_item,
- ACE_Time_Value *)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::enqueue");
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
- if (this->state_ != ACE_Message_Queue_Base::DEACTIVATED)
- {
- size_t msize = new_item->total_size ();
- size_t mlength = new_item->total_length ();
- // Note - we send ACTIVATED in the 3rd arg to tell the completion
- // routine it's _NOT_ being woken up because of deactivate().
-#if defined (ACE_WIN64)
- ULONG_PTR state_to_post;
-#else
- DWORD state_to_post;
-#endif /* ACE_WIN64 */
- state_to_post = ACE_Message_Queue_Base::ACTIVATED;
- if (::PostQueuedCompletionStatus (this->completion_port_,
- ACE_static_cast (DWORD, msize),
- state_to_post,
- ACE_reinterpret_cast (LPOVERLAPPED, new_item)))
- {
- // Update the states once I succeed.
- this->cur_bytes_ += msize;
- this->cur_length_ += mlength;
- return ++this->cur_count_;
- }
- }
- else
- errno = ESHUTDOWN;
-
- // Fail to enqueue the message.
- return -1;
-}
-
-int
-ACE_Message_Queue_NT::dequeue (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::dequeue_head");
-
- {
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
-
- // Make sure the MQ is not deactivated before proceeding.
- if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
- {
- errno = ESHUTDOWN; // Operation on deactivated MQ not allowed.
- return -1;
- }
- else
- ++this->cur_thrs_; // Increase the waiting thread count.
- }
-
-#if defined (ACE_WIN64)
- ULONG_PTR queue_state;
-#else
- DWORD queue_state;
-#endif /* ACE_WIN64 */
- DWORD msize;
- // Get a message from the completion port.
- int retv = ::GetQueuedCompletionStatus (this->completion_port_,
- &msize,
- &queue_state,
- ACE_reinterpret_cast (LPOVERLAPPED *, &first_item),
- (timeout == 0 ? INFINITE : timeout->msec ()));
- {
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
- --this->cur_thrs_; // Decrease waiting thread count.
- if (retv)
- {
- if (queue_state == ACE_Message_Queue_Base::ACTIVATED)
- { // Really get a valid MB from the queue.
- --this->cur_count_;
- this->cur_bytes_ -= msize;
- this->cur_length_ -= first_item->total_length ();
- return this->cur_count_;
- }
- else // Woken up by deactivate () or pulse ().
- errno = ESHUTDOWN;
- }
- }
- return -1;
-}
-
-int
-ACE_Message_Queue_NT::deactivate (void)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::deactivate");
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
-
- int previous_state = this->state_;
- if (previous_state != ACE_Message_Queue_Base::DEACTIVATED)
- {
- this->state_ = ACE_Message_Queue_Base::DEACTIVATED;
-
- // Get the number of shutdown messages necessary to wake up all
- // waiting threads.
- DWORD cntr =
- this->cur_thrs_ - ACE_static_cast (DWORD, this->cur_count_);
- while (cntr-- > 0)
- ::PostQueuedCompletionStatus (this->completion_port_,
- 0,
- this->state_,
- 0);
- }
- return previous_state;
-}
-
-int
-ACE_Message_Queue_NT::activate (void)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::activate");
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
- int previous_status = this->state_;
- this->state_ = ACE_Message_Queue_Base::ACTIVATED;
- return previous_status;
-}
-
-int
-ACE_Message_Queue_NT::pulse (void)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::pulse");
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
-
- int previous_state = this->state_;
- if (previous_state != ACE_Message_Queue_Base::DEACTIVATED)
- {
- this->state_ = ACE_Message_Queue_Base::PULSED;
-
- // Get the number of shutdown messages necessary to wake up all
- // waiting threads.
-
- DWORD cntr =
- this->cur_thrs_ - ACE_static_cast (DWORD, this->cur_count_);
- while (cntr-- > 0)
- ::PostQueuedCompletionStatus (this->completion_port_,
- 0,
- this->state_,
- 0);
- }
- return previous_state;
-}
-
-void
-ACE_Message_Queue_NT::dump (void) const
-{
- ACE_TRACE ("ACE_Message_Queue_NT::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- switch (this->state_)
- {
- case ACE_Message_Queue_Base::ACTIVATED:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("state = ACTIVATED\n")));
- break;
- case ACE_Message_Queue_Base::DEACTIVATED:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("state = DEACTIVATED\n")));
- break;
- case ACE_Message_Queue_Base::PULSED:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("state = PULSED\n")));
- break;
- }
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("max_cthrs_ = %d\n")
- ACE_LIB_TEXT ("cur_thrs_ = %d\n")
- ACE_LIB_TEXT ("cur_bytes = %d\n")
- ACE_LIB_TEXT ("cur_length = %d\n")
- ACE_LIB_TEXT ("cur_count = %d\n")
- ACE_LIB_TEXT ("completion_port_ = %x\n"),
- this->max_cthrs_,
- this->cur_thrs_,
- this->cur_bytes_,
- this->cur_length_,
- this->cur_count_,
- this->completion_port_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#endif /* ACE_WIN32 && ACE_HAS_WINNT4 != 0 */
-
-#endif /* ACE_MESSAGE_QUEUE_C */
diff --git a/ace/Message_Queue.h b/ace/Message_Queue.h
deleted file mode 100644
index 38a9309f6e0..00000000000
--- a/ace/Message_Queue.h
+++ /dev/null
@@ -1,604 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Message_Queue.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_MESSAGE_QUEUE_H
-#define ACE_MESSAGE_QUEUE_H
-#include "ace/pre.h"
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/IO_Cntl_Msg.h"
-#include "ace/Synch.h"
-
-// Forward decls.
-class ACE_Notification_Strategy;
-template <ACE_SYNCH_DECL> class ACE_Message_Queue_Iterator;
-template <ACE_SYNCH_DECL> class ACE_Message_Queue_Reverse_Iterator;
-
-/**
- * @class ACE_Message_Queue_Base
- *
- * @brief Base class for <ACE_Message_Queue>, which is the central
- * queueing facility for messages in the ACE framework.
- *
- * For all the <ACE_Time_Value> pointer parameters the caller will
- * block until action is possible if <timeout> == 0. Otherwise, it
- * will wait until the absolute time specified in *<timeout>
- * elapses.
- *
- * A queue is always in one of three states:
- * . ACTIVATED
- * . DEACTIVATED
- * . PULSED
- */
-class ACE_Export ACE_Message_Queue_Base
-{
-public:
- enum
- {
- // Default high and low watermarks.
-
- /// Default high watermark (16 K).
- DEFAULT_HWM = 16 * 1024,
- /// Default low watermark (same as high water mark).
- DEFAULT_LWM = 16 * 1024,
-
- // Queue states. Before PULSED state was added, the activate()
- // and deactivate() methods returned WAS_INACTIVE or WAS_ACTIVE
- // to indicate the previous condition. Now those methods
- // return the state the queue was previously in. WAS_ACTIVE
- // and WAS_INACTIVE are defined to match previous semantics for
- // applications that don't use the PULSED state.
-
- WAS_ACTIVE = 1, /* DEPRECATED */
- /// Message queue is active and processing normally
- ACTIVATED = 1,
-
- WAS_INACTIVE = 2, /* DEPRECATED */
- /// Queue is deactivated; no enqueue or dequeue operations allowed.
- DEACTIVATED = 2,
-
- /// Message queue was pulsed; enqueue and dequeue may proceed normally.
- PULSED = 3
-
- };
-
- ACE_Message_Queue_Base (void);
-
- /// Close down the message queue and release all resources.
- virtual int close (void) = 0;
-
- /// Close down the message queue and release all resources.
- virtual ~ACE_Message_Queue_Base (void);
-
- // = Enqueue and dequeue methods.
-
- /**
- * Retrieve the first <ACE_Message_Block> without removing it. Note
- * that <timeout> uses <{absolute}> time rather than <{relative}>
- * time. If the <timeout> elapses without receiving a message -1 is
- * returned and <errno> is set to <EWOULDBLOCK>. If the queue is
- * deactivated -1 is returned and <errno> is set to <ESHUTDOWN>.
- * Otherwise, returns -1 on failure, else the number of items still
- * on the queue.
- */
- virtual int peek_dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout = 0) = 0;
-
- /**
- * Enqueue a <ACE_Message_Block *> into the tail of the queue.
- * Returns number of items in queue if the call succeeds or -1
- * otherwise. These calls return -1 when queue is closed,
- * deactivated (in which case <errno> == <ESHUTDOWN>), when a signal
- * occurs (in which case <errno> == <EINTR>, or if the time
- * specified in timeout elapses (in which case <errno> ==
- * <EWOULDBLOCK>).
- */
- virtual int enqueue_tail (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout = 0) = 0;
- virtual int enqueue (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout = 0) = 0;
-
- /**
- * Dequeue and return the <ACE_Message_Block *> at the head of the
- * queue. Returns number of items in queue if the call succeeds or
- * -1 otherwise. These calls return -1 when queue is closed,
- * deactivated (in which case <errno> == <ESHUTDOWN>), when a signal
- * occurs (in which case <errno> == <EINTR>, or if the time
- * specified in timeout elapses (in which case <errno> ==
- * <EWOULDBLOCK>).
- */
- virtual int dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout = 0) = 0;
- virtual int dequeue (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout = 0) = 0;
-
- // = Check if queue is full/empty.
- /// True if queue is full, else false.
- virtual int is_full (void) = 0;
-
- /// True if queue is empty, else false.
- virtual int is_empty (void) = 0;
-
- // = Queue statistic methods.
-
- /// Number of total bytes on the queue, i.e., sum of the message
- /// block sizes.
- virtual size_t message_bytes (void) = 0;
-
- /// Number of total length on the queue, i.e., sum of the message
- /// block lengths.
- virtual size_t message_length (void) = 0;
-
- /// Number of total messages on the queue.
- virtual int message_count (void) = 0;
-
- /// New value of the number of total bytes on the queue, i.e.,
- /// sum of the message block sizes.
- virtual void message_bytes (size_t new_size) = 0;
-
- /// New value of the number of total length on the queue, i.e.,
- /// sum of the message block lengths.
- virtual void message_length (size_t new_length) = 0;
-
- // = Activation control methods.
-
- /**
- * Deactivate the queue and wake up all threads waiting on the queue
- * so they can continue. No messages are removed from the queue,
- * however. Any other operations called until the queue is
- * activated again will immediately return -1 with @c errno
- * ESHUTDOWN.
- *
- * @retval The queue's state before this call.
- */
- virtual int deactivate (void) = 0;
-
- /**
- * Reactivate the queue so that threads can enqueue and dequeue
- * messages again.
- *
- * @retval The queue's state before this call.
- */
- virtual int activate (void) = 0;
-
- /**
- * Pulse the queue to wake up any waiting threads. Changes the
- * queue state to PULSED; future enqueue/dequeue operations proceed
- * as in ACTIVATED state.
- *
- * @retval The queue's state before this call.
- */
- virtual int pulse (void) = 0;
-
- /// Returns the current state of the queue.
- virtual int state (void);
-
- /// Returns 1 if the state of the queue is DEACTIVATED,
- /// and 0 if the queue's state is ACTIVATED or PULSED.
- virtual int deactivated (void) = 0;
-
- /// Get the notification strategy for the <Message_Queue>
- virtual ACE_Notification_Strategy *notification_strategy (void) = 0;
-
- /// Set the notification strategy for the <Message_Queue>
- virtual void notification_strategy (ACE_Notification_Strategy *s) = 0;
-
- // = Notification hook.
-
- /// Dump the state of an object.
- virtual void dump (void) const = 0;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Indicates the state of the queue, which can be
- /// <ACTIVATED>, <DEACTIVATED>, or <PULSED>.
- int state_;
-
-private:
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Message_Queue_Base &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Message_Queue_Base (const ACE_Message_Queue_Base &))
-};
-
-// Include the templates here.
-#include "ace/Message_Queue_T.h"
-
-#if defined (VXWORKS)
-# include /**/ <msgQLib.h>
-
-/**
- * @class ACE_Message_Queue_Vx
- *
- * @brief Wrapper for VxWorks message queues.
- *
- * Specialization of ACE_Message_Queue to simply wrap VxWorks
- * MsgQ. It does not use any synchronization, because it relies
- * on the native MsgQ implementation to take care of that. The
- * only system calls that it uses are VxWorks msgQLib calls, so
- * it is suitable for use in interrupt service routines.
- * NOTE: *Many* ACE_Message_Queue features are not supported with
- * this specialization, including:
- * * The two size arguments to the constructor and <open> are
- * interpreted differently. The first is interpreted as the
- * maximum number of bytes in a message. The second is
- * interpreted as the maximum number of messages that can be
- * queued.
- * * <dequeue_head> *requires* that the ACE_Message_Block
- * pointer argument point to an ACE_Message_Block that was
- * allocated by the caller. It must be big enough to support
- * the received message, without using continuation. The
- * pointer argument is not modified.
- * * Message priority. MSG_Q_FIFO is hard-coded.
- * * enqueue method timeouts.
- * * <peek_dequeue_head>.
- * * <ACE_Message_Queue_Iterators>.
- * * The ability to change low and high water marks after creation.
- * * <Message_Block> chains. The continuation field of <ACE_Message_Block>
- * * is ignored; only the first block of a fragment chain is
- * * recognized.
- */
-class ACE_Message_Queue_Vx : public ACE_Message_Queue<ACE_NULL_SYNCH>
-{
-public:
- // = Initialization and termination methods.
- ACE_Message_Queue_Vx (size_t max_messages,
- size_t max_message_length,
- ACE_Notification_Strategy * = 0);
-
- // Create a message queue with all the defaults.
- /// Create a message queue with all the defaults.
- virtual int open (size_t max_messages,
- size_t max_message_length,
- ACE_Notification_Strategy * = 0);
-
- /// Close down the message queue and release all resources.
- virtual int close (void);
-
- /// Close down the message queue and release all resources.
- virtual ~ACE_Message_Queue_Vx (void);
-
- // = Queue statistic methods.
- /**
- * Number of total bytes on the queue, i.e., sum of the message
- * block sizes.
- */
- virtual size_t message_bytes (void);
-
- /**
- * Number of total length on the queue, i.e., sum of the message
- * block lengths.
- */
- virtual size_t message_length (void);
-
- /**
- * Number of total messages on the queue.
- */
- virtual int message_count (void);
-
- // = Manual changes to these stats (used when queued message blocks
- // change size or lengths).
- /**
- * New value of the number of total bytes on the queue, i.e., sum of
- * the message block sizes.
- */
- virtual void message_bytes (size_t new_size);
- /**
- * New value of the number of total length on the queue, i.e., sum
- * of the message block lengths.
- */
- virtual void message_length (size_t new_length);
-
- // = Flow control routines
-
- /// Get high watermark.
- virtual size_t high_water_mark (void);
-
- /// Set high watermark.
- virtual void high_water_mark (size_t hwm);
-
- /// Get low watermark.
- virtual size_t low_water_mark (void);
-
- /// Set low watermark.
- virtual void low_water_mark (size_t lwm);
-
- // = Activation control methods.
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Enqueue an <ACE_Message_Block *> in accordance with its priority.
- virtual int enqueue_i (ACE_Message_Block *new_item);
-
- /// Enqueue an <ACE_Message_Block *> in accordance with its deadline time.
- virtual int enqueue_deadline_i (ACE_Message_Block *new_item);
-
- /// Enqueue an <ACE_Message_Block *> at the end of the queue.
- virtual int enqueue_tail_i (ACE_Message_Block *new_item);
-
- /// Enqueue an <ACE_Message_Block *> at the head of the queue.
- virtual int enqueue_head_i (ACE_Message_Block *new_item);
-
- /// Dequeue and return the <ACE_Message_Block *> at the head of the
- /// queue.
- virtual int dequeue_head_i (ACE_Message_Block *&first_item);
-
- /// Dequeue and return the <ACE_Message_Block *> with the lowest
- /// priority.
- virtual int dequeue_prio_i (ACE_Message_Block *&dequeued);
-
- /// Dequeue and return the <ACE_Message_Block *> at the tail of the
- /// queue.
- virtual int dequeue_tail_i (ACE_Message_Block *&dequeued);
-
- /// Dequeue and return the <ACE_Message_Block *> that has the lowest
- /// deadline time.
- virtual int dequeue_deadline_i (ACE_Message_Block *&dequeued);
-
- // = Check the boundary conditions (assumes locks are held).
- /// True if queue is full, else false.
- virtual int is_full_i (void);
-
- /// True if queue is empty, else false.
- virtual int is_empty_i (void);
-
- // = Implementation of public <activate>/<deactivate> methods above.
-
- // These methods assume locks are held.
-
- // = Helper methods to factor out common #ifdef code.
- /// Wait for the queue to become non-full.
- virtual int wait_not_full_cond (ACE_Guard<ACE_Null_Mutex> &mon,
- ACE_Time_Value *tv);
-
- /// Wait for the queue to become non-empty.
- virtual int wait_not_empty_cond (ACE_Guard<ACE_Null_Mutex> &mon,
- ACE_Time_Value *tv);
-
- /// Inform any threads waiting to enqueue that they can procede.
- virtual int signal_enqueue_waiters (void);
-
- /// Inform any threads waiting to dequeue that they can procede.
- virtual int signal_dequeue_waiters (void);
-
- /// Access the underlying msgQ.
- MSG_Q_ID msgq (void);
-
-private:
- /// Maximum number of messages that can be queued.
- int max_messages_;
-
- /// Maximum message size, in bytes.
- int max_message_length_;
-
- /// Native message queue options.
- int options_;
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Message_Queue_Vx &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Message_Queue_Vx (const ACE_Message_Queue_Vx &))
-
- ACE_UNIMPLEMENTED_FUNC (virtual int peek_dequeue_head
- (ACE_Message_Block *&first_item,
- ACE_Time_Value *tv = 0))
-};
-#endif /* VXWORKS */
-
-#if defined (ACE_WIN32) && (ACE_HAS_WINNT4 != 0)
-/**
- * @class ACE_Message_Queue_NT
- *
- * @brief Message Queue implementation using IO completion port on NT.
- *
- * Implementation of a strip-downed ACE_Message_Queue using NT's
- * IO completion port mechanism.
- * NOTE: *Many* ACE_Message_Queue features are not supported with
- * this implementation, including:
- * * <open> method have different signatures.
- * * <dequeue_head> *requires* that the <ACE_Message_Block>
- * pointer argument point to an <ACE_Message_Block> that was
- * allocated by the caller.
- * * <peek_dequeue_head>.
- * * <ACE_Message_Queue_Iterators>.
- * * No flow control.
- */
-class ACE_Export ACE_Message_Queue_NT : public ACE_Message_Queue_Base
-{
-public:
- // = Initialization and termination methods.
- ACE_Message_Queue_NT (DWORD max_threads = ACE_Message_Queue_Base::DEFAULT_HWM);
-
- /**
- * Initialize the Message Queue by creating a new NT I/O completion
- * port. The first arguemnt specifies the number of threads
- * released by the MQ that are allowed to run concurrently. Return
- * 0 when succeeds, -1 otherwise.
- */
- virtual int open (DWORD max_threads = ACE_Message_Queue_Base::DEFAULT_HWM);
-
- /// Close down the underlying I/O completion port. You need to
- /// re-open the MQ after this function is executed.
- virtual int close (void);
-
- /// Close down the message queue and release all resources.
- virtual ~ACE_Message_Queue_NT (void);
-
- // = Enqueue and dequeue methods.
-
- /**
- * Enqueue an <ACE_Message_Block *> at the end of the queue.
- * Returns -1 on failure, else the number of items still on the
- * queue.
- */
- virtual int enqueue_tail (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout = 0);
- virtual int enqueue (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Dequeue and return the <ACE_Message_Block *> at the head of the
- * queue. Returns -1 on failure, else the number of items still on
- * the queue.
- */
- virtual int dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout = 0);
- virtual int dequeue (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout = 0);
-
- // = Check if queue is full/empty.
- /**
- * Always return false.
- */
-
- virtual int is_full (void);
- /**
- * True if queue is empty, else false. Notice the return value is
- * only transient.
- */
- virtual int is_empty (void);
-
- // = Queue statistic methods (transient.)
- /**
- * Number of total bytes on the queue, i.e., sum of the message
- * block sizes.
- */
- virtual size_t message_bytes (void);
-
- /**
- * Number of total length on the queue, i.e., sum of the message
- * block lengths.
- */
- virtual size_t message_length (void);
-
- /**
- * Number of total messages on the queue.
- */
- virtual int message_count (void);
-
- // = Manual changes to these stats (used when queued message blocks
- // change size or lengths).
- /**
- * New value of the number of total bytes on the queue, i.e., sum of
- * the message block sizes.
- */
- virtual void message_bytes (size_t new_size);
-
- /**
- * New value of the number of total length on the queue, i.e., sum
- * of the message block lengths.
- */
- virtual void message_length (size_t new_length);
-
- /// Get the max concurrent thread number.
- virtual DWORD max_threads (void);
-
- // = Activation control methods.
-
- /**
- * Deactivate the queue and wake up all threads waiting on the queue
- * so they can continue. No messages are removed from the queue,
- * however. Any other operations called until the queue is
- * activated again will immediately return -1 with @c errno
- * ESHUTDOWN.
- *
- * @retval The queue's state before this call.
- */
- virtual int deactivate (void);
-
- /**
- * Reactivate the queue so that threads can enqueue and dequeue
- * messages again. Returns the state of the queue before the call.
- */
- virtual int activate (void);
-
- /**
- * Pulse the queue to wake up any waiting threads. Changes the
- * queue state to PULSED; future enqueue/dequeue operations proceed
- * as in ACTIVATED state.
- *
- * @retval The queue's state before this call.
- */
- virtual int pulse (void);
-
- /// Returns true if the state of the queue is <DEACTIVATED>,
- /// but false if the queue's is <ACTIVATED> or <PULSED>.
- virtual int deactivated (void);
-
- // = Not currently implemented...
- int peek_dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout = 0);
- ACE_Notification_Strategy *notification_strategy (void);
- void notification_strategy (ACE_Notification_Strategy *s);
-
- // = Notification hook.
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Get the handle to the underlying completion port.
- virtual ACE_HANDLE completion_port (void);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- // = Internal states.
-
- /// Maximum threads that can be released (and run) concurrently.
- DWORD max_cthrs_;
-
- /// Current number of threads waiting to dequeue messages.
- DWORD cur_thrs_;
-
- /// Current number of bytes in queue.
- size_t cur_bytes_;
-
- /// Current length of messages in queue.
- size_t cur_length_;
-
- /// Current number of messages in the queue.
- int cur_count_;
-
- /**
- * Synchronizer. This should really be an ACE_Recursive_Thread_Mutex
- * but since this class is only supported on NT, it's okay to use
- * ACE_Thread_Mutex here.
- */
- ACE_Thread_Mutex lock_;
-
- /// Underlying NT IoCompletionPort.
- ACE_HANDLE completion_port_;
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Message_Queue_NT &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Message_Queue_NT (const ACE_Message_Queue_NT &))
-};
-#endif /* ACE_WIN32 && ACE_HAS_WINNT4 != 0 */
-
-
-#if defined (__ACE_INLINE__)
-#include "ace/Message_Queue.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_MESSAGE_QUEUE_H */
diff --git a/ace/Message_Queue.i b/ace/Message_Queue.i
deleted file mode 100644
index 695d89b1a80..00000000000
--- a/ace/Message_Queue.i
+++ /dev/null
@@ -1,232 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_Message_Queue_Base::ACE_Message_Queue_Base (void)
-{
-}
-
-ACE_INLINE
-ACE_Message_Queue_Base::~ACE_Message_Queue_Base (void)
-{
-}
-
-ACE_INLINE int
-ACE_Message_Queue_Base::state (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Base::state");
-
- return this->state_;
-}
-
-#if defined (VXWORKS)
-// Specialization to use native VxWorks Message Queues.
-
-ACE_INLINE MSG_Q_ID
-ACE_Message_Queue_Vx::msgq ()
-{
- // Hijack the tail_ field to store the MSG_Q_ID.
- return ACE_reinterpret_cast (MSG_Q_ID, tail_);
-}
-
-ACE_INLINE int
-ACE_Message_Queue_Vx::is_empty_i (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::is_empty_i");
- return ::msgQNumMsgs (msgq ()) == 0;
-}
-
-ACE_INLINE int
-ACE_Message_Queue_Vx::is_full_i (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::is_full_i");
- return ::msgQNumMsgs (msgq ()) >= max_messages_;
-}
-
-ACE_INLINE size_t
-ACE_Message_Queue_Vx::high_water_mark (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::high_water_mark");
- ACE_NOTSUP_RETURN ((size_t) -1);
-}
-
-ACE_INLINE void
-ACE_Message_Queue_Vx::high_water_mark (size_t)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::high_water_mark");
- ACE_NOTSUP;
-}
-
-ACE_INLINE size_t
-ACE_Message_Queue_Vx::low_water_mark (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::low_water_mark");
- // Don't need to guard, because this is fixed.
-
- ACE_NOTSUP_RETURN ((size_t) -1);
-}
-
-ACE_INLINE void
-ACE_Message_Queue_Vx::low_water_mark (size_t)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::low_water_mark");
- ACE_NOTSUP;
-}
-
-ACE_INLINE size_t
-ACE_Message_Queue_Vx::message_bytes (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::message_bytes");
- ACE_NOTSUP_RETURN ((size_t) -1);
-}
-
-ACE_INLINE size_t
-ACE_Message_Queue_Vx::message_length (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::message_length");
- ACE_NOTSUP_RETURN ((size_t) -1);
-}
-
-ACE_INLINE int
-ACE_Message_Queue_Vx::message_count (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::message_count");
- // Don't need to guard, because this is a system call.
-
- return ::msgQNumMsgs (msgq ());
-}
-
-ACE_INLINE void
-ACE_Message_Queue_Vx::message_bytes (size_t)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::message_bytes");
- ACE_NOTSUP;
-}
-
-ACE_INLINE void
-ACE_Message_Queue_Vx::message_length (size_t)
-{
- ACE_TRACE ("ACE_Message_Queue_Vx::message_length");
- ACE_NOTSUP;
-}
-
-#endif /* VXWORKS */
-
-#if defined (ACE_WIN32) && (ACE_HAS_WINNT4 != 0)
-ACE_INLINE int
-ACE_Message_Queue_NT::enqueue_tail (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::enqueue_tail");
- return this->enqueue (new_item, timeout);
-}
-
-ACE_INLINE int
-ACE_Message_Queue_NT::dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::dequeue_head");
- return this->dequeue (first_item, timeout);
-}
-
-ACE_INLINE int
-ACE_Message_Queue_NT::is_full (void)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::is_full");
- return 0; // Always not full.
-}
-
-ACE_INLINE int
-ACE_Message_Queue_NT::is_empty (void)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::is_empty");
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0);
-
- return (this->cur_bytes_ > 0 && this->cur_count_ > 0 ? 1 : 0);
-}
-
-ACE_INLINE size_t
-ACE_Message_Queue_NT::message_bytes (void)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::message_bytes");
- // Accessing to size_t must be atomic.
- return this->cur_bytes_;
-}
-
-ACE_INLINE size_t
-ACE_Message_Queue_NT::message_length (void)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::message_length");
- // Accessing to size_t must be atomic.
- return this->cur_length_;
-}
-
-ACE_INLINE int
-ACE_Message_Queue_NT::message_count (void)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::message_count");
- // Accessing to size_t must be atomic.
- return this->cur_count_;
-}
-
-ACE_INLINE void
-ACE_Message_Queue_NT::message_bytes (size_t new_value)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::message_bytes");
- ACE_GUARD (ACE_Thread_Mutex, ace_mon, this->lock_);
-
- this->cur_bytes_ = new_value;
-}
-
-ACE_INLINE void
-ACE_Message_Queue_NT::message_length (size_t new_value)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::message_length");
- ACE_GUARD (ACE_Thread_Mutex, ace_mon, this->lock_);
-
- this->cur_length_ = new_value;
-}
-
-ACE_INLINE DWORD
-ACE_Message_Queue_NT::max_threads (void)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::max_threads");
- return this->max_cthrs_;
-}
-
-ACE_INLINE int
-ACE_Message_Queue_NT::deactivated (void)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::deactivated");
- // Accessing to int must be atomic.
- return this->state_ == ACE_Message_Queue_Base::DEACTIVATED;
-}
-
-ACE_INLINE ACE_HANDLE
-ACE_Message_Queue_NT::completion_port (void)
-{
- ACE_TRACE ("ACE_Message_Queue_NT::completion_port");
- return this->completion_port_;
-}
-
-ACE_INLINE int
-ACE_Message_Queue_NT::peek_dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout)
-{
- ACE_UNUSED_ARG(first_item);
- ACE_UNUSED_ARG(timeout);
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE ACE_Notification_Strategy *
-ACE_Message_Queue_NT::notification_strategy (void)
-{
- ACE_NOTSUP_RETURN (0);
-}
-
-ACE_INLINE void
-ACE_Message_Queue_NT::notification_strategy (ACE_Notification_Strategy *)
-{
-}
-
-#endif /* ACE_WIN32 && ACE_HAS_WINNT4 != 0 */
diff --git a/ace/Message_Queue_T.cpp b/ace/Message_Queue_T.cpp
deleted file mode 100644
index eaa079e7aed..00000000000
--- a/ace/Message_Queue_T.cpp
+++ /dev/null
@@ -1,2336 +0,0 @@
-// $Id$
-
-#ifndef ACE_MESSAGE_QUEUE_T_C
-#define ACE_MESSAGE_QUEUE_T_C
-
-// #include Message_Queue.h instead of Message_Queue_T.h to avoid
-// circular include problems.
-#include "ace/Message_Queue.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Message_Queue_T.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Notification_Strategy.h"
-
-ACE_RCSID(ace, Message_Queue_T, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Message_Queue)
-ACE_ALLOC_HOOK_DEFINE(ACE_Dynamic_Message_Queue)
-ACE_ALLOC_HOOK_DEFINE(ACE_Message_Queue_Ex)
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> void
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dump (void) const
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dump");
-
- this->queue_.dump ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> void
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_bytes (size_t new_value)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_bytes");
-
- this->queue_.message_bytes (new_value);
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> void
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_length (size_t new_value)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_length");
-
- this->queue_.message_length (new_value);
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL>
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::ACE_Message_Queue_Ex (size_t hwm,
- size_t lwm,
- ACE_Notification_Strategy *ns)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::ACE_Message_Queue_Ex");
-
- if (this->queue_.open (hwm, lwm, ns) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Message_Queue_Ex")));
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL>
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::~ACE_Message_Queue_Ex (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::~ACE_Message_Queue_Ex");
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::open (size_t hwm,
- size_t lwm,
- ACE_Notification_Strategy *ns)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::open");
-
- return this->queue_.open (hwm, lwm, ns);
-}
-
-// Clean up the queue if we have not already done so!
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::close (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::close");
-
- return this->queue_.close ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::flush (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::flush");
-
- return this->queue_.flush ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::flush_i (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::flush_i");
-
- return this->queue_.flush_i ();
-}
-
-// Take a look at the first item without removing it.
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::peek_dequeue_head (ACE_MESSAGE_TYPE *&first_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::peek_dequeue_head");
-
- ACE_Message_Block *mb;
-
- int cur_count = this->queue_.peek_dequeue_head (mb, timeout);
-
- if (cur_count != -1)
- first_item = ACE_reinterpret_cast (ACE_MESSAGE_TYPE *, mb->base ());
-
- return cur_count;
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_head (ACE_MESSAGE_TYPE *new_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_head");
-
- ACE_Message_Block *mb;
-
- ACE_NEW_RETURN (mb,
- ACE_Message_Block ((char *) new_item,
- sizeof (*new_item),
- ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::DEFAULT_PRIORITY),
- -1);
-
- int result = this->queue_.enqueue_head (mb, timeout);
- if (result == -1)
- // Zap the message.
- mb->release ();
- return result;
-}
-
-// Enqueue an <ACE_MESSAGE_TYPE *> into the <Message_Queue> in
-// accordance with its <msg_priority> (0 is lowest priority). Returns
-// -1 on failure, else the number of items still on the queue.
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue (ACE_MESSAGE_TYPE *new_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_prio");
-
- return this->enqueue_prio (new_item, timeout);
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_prio (ACE_MESSAGE_TYPE *new_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_prio");
-
- ACE_Message_Block *mb;
-
- ACE_NEW_RETURN (mb,
- ACE_Message_Block ((char *) new_item,
- sizeof (*new_item),
- ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::DEFAULT_PRIORITY),
- -1);
-
- int result = this->queue_.enqueue_prio (mb, timeout);
- if (result == -1)
- // Zap the message.
- mb->release ();
-
- return result;
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_deadline (ACE_MESSAGE_TYPE *new_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_deadline");
-
- ACE_Message_Block *mb;
-
- ACE_NEW_RETURN (mb,
- ACE_Message_Block ((char *) new_item,
- sizeof (*new_item),
- ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::DEFAULT_PRIORITY ),
- -1);
-
- int result = this->queue_.enqueue_deadline (mb, timeout);
- if (result == -1)
- // Zap the message.
- mb->release ();
-
- return result;
-}
-
-// Block indefinitely waiting for an item to arrive,
-// does not ignore alerts (e.g., signals).
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_tail (ACE_MESSAGE_TYPE *new_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_tail");
-
- ACE_Message_Block *mb;
-
- ACE_NEW_RETURN (mb,
- ACE_Message_Block ((char *) new_item,
- sizeof (*new_item),
- ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::DEFAULT_PRIORITY),
- -1);
-
- int result = this->queue_.enqueue_tail (mb, timeout);
- if (result == -1)
- // Zap the message.
- mb->release ();
- return result;
-}
-
-// Remove an item from the front of the queue. If timeout == 0 block
-// indefinitely (or until an alert occurs). Otherwise, block for upto
-// the amount of time specified by timeout.
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue_head (ACE_MESSAGE_TYPE *&first_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue_head");
-
- ACE_Message_Block *mb;
-
- int cur_count = this->queue_.dequeue_head (mb, timeout);
-
- // Dequeue the message.
- if (cur_count != -1)
- {
- first_item = ACE_reinterpret_cast (ACE_MESSAGE_TYPE *, mb->base ());
- // Delete the message block.
- mb->release ();
- return cur_count;
- }
- else
- return -1;
-}
-
-// Remove the item with the lowest priority from the queue. If timeout == 0
-// block indefinitely (or until an alert occurs). Otherwise, block for upto
-// the amount of time specified by timeout.
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue_prio (ACE_MESSAGE_TYPE *&dequeued,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue_prio");
-
- ACE_Message_Block *mb;
-
- int cur_count = this->queue_.dequeue_prio (mb, timeout);
-
- // Dequeue the message.
- if (cur_count != -1)
- {
- dequeued = ACE_reinterpret_cast (ACE_MESSAGE_TYPE *, mb->base ());
- // Delete the message block.
- mb->release ();
- return cur_count;
- }
- else
- return -1;
-}
-
-// Remove an item from the end of the queue. If timeout == 0 block
-// indefinitely (or until an alert occurs). Otherwise, block for upto
-// the amount of time specified by timeout.
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue_tail (ACE_MESSAGE_TYPE *&dequeued,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue_tail");
-
- ACE_Message_Block *mb;
-
- int cur_count = this->queue_.dequeue_tail (mb, timeout);
-
- // Dequeue the message.
- if (cur_count != -1)
- {
- dequeued = ACE_reinterpret_cast (ACE_MESSAGE_TYPE *, mb->base ());
- // Delete the message block.
- mb->release ();
- return cur_count;
- }
- else
- return -1;
-}
-
-// Remove an item with the lowest deadline time. If timeout == 0 block
-// indefinitely (or until an alert occurs). Otherwise, block for upto
-// the amount of time specified by timeout.
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue_deadline (ACE_MESSAGE_TYPE *&dequeued,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue_deadline");
-
- ACE_Message_Block *mb;
-
- int cur_count = this->queue_.dequeue_deadline (mb, timeout);
-
- // Dequeue the message.
- if (cur_count != -1)
- {
- dequeued = ACE_reinterpret_cast (ACE_MESSAGE_TYPE *, mb->base ());
- // Delete the message block.
- mb->release ();
- return cur_count;
- }
- else
- return -1;
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::notify (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::notify");
-
- return this->queue_.notify ();
-}
-
-template <ACE_SYNCH_DECL>
-ACE_Message_Queue_Iterator<ACE_SYNCH_USE>::ACE_Message_Queue_Iterator (ACE_Message_Queue <ACE_SYNCH_USE> &q)
- : queue_ (q),
- curr_ (q.head_)
-{
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue_Iterator<ACE_SYNCH_USE>::next (ACE_Message_Block *&entry)
-{
- ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
-
- if (this->curr_ != 0)
- {
- entry = this->curr_;
- return 1;
- }
-
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue_Iterator<ACE_SYNCH_USE>::done (void) const
-{
- ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
-
- return this->curr_ == 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue_Iterator<ACE_SYNCH_USE>::advance (void)
-{
- ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
-
- if (this->curr_)
- this->curr_ = this->curr_->next ();
- return this->curr_ != 0;
-}
-
-template <ACE_SYNCH_DECL> void
-ACE_Message_Queue_Iterator<ACE_SYNCH_USE>::dump (void) const
-{
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Message_Queue_Iterator)
-
-template <ACE_SYNCH_DECL>
-ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>::ACE_Message_Queue_Reverse_Iterator (ACE_Message_Queue <ACE_SYNCH_USE> &q)
- : queue_ (q),
- curr_ (queue_.tail_)
-{
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>::next (ACE_Message_Block *&entry)
-{
- ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
-
- if (this->curr_ != 0)
- {
- entry = this->curr_;
- return 1;
- }
-
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>::done (void) const
-{
- ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
-
- return this->curr_ == 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>::advance (void)
-{
- ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
-
- if (this->curr_)
- this->curr_ = this->curr_->prev ();
- return this->curr_ != 0;
-}
-
-template <ACE_SYNCH_DECL> void
-ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>::dump (void) const
-{
-}
-
-template <ACE_SYNCH_DECL> void
-ACE_Message_Queue<ACE_SYNCH_USE>::dump (void) const
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- switch (this->state_)
- {
- case ACE_Message_Queue_Base::ACTIVATED:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("state = ACTIVATED\n")));
- break;
- case ACE_Message_Queue_Base::DEACTIVATED:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("state = DEACTIVATED\n")));
- break;
- case ACE_Message_Queue_Base::PULSED:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("state = PULSED\n")));
- break;
- }
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("low_water_mark = %d\n")
- ACE_LIB_TEXT ("high_water_mark = %d\n")
- ACE_LIB_TEXT ("cur_bytes = %d\n")
- ACE_LIB_TEXT ("cur_length = %d\n")
- ACE_LIB_TEXT ("cur_count = %d\n")
- ACE_LIB_TEXT ("head_ = %u\n")
- ACE_LIB_TEXT ("tail_ = %u\n"),
- this->low_water_mark_,
- this->high_water_mark_,
- this->cur_bytes_,
- this->cur_length_,
- this->cur_count_,
- this->head_,
- this->tail_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("not_full_cond: \n")));
- not_full_cond_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("not_empty_cond: \n")));
- not_empty_cond_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <ACE_SYNCH_DECL> void
-ACE_Message_Queue<ACE_SYNCH_USE>::message_bytes (size_t new_value)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::message_bytes");
- ACE_GUARD (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_);
-
- this->cur_bytes_ = new_value;
-}
-
-template <ACE_SYNCH_DECL> void
-ACE_Message_Queue<ACE_SYNCH_USE>::message_length (size_t new_value)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::message_length");
- ACE_GUARD (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_);
-
- this->cur_length_ = new_value;
-}
-
-template <ACE_SYNCH_DECL>
-ACE_Message_Queue<ACE_SYNCH_USE>::ACE_Message_Queue (size_t hwm,
- size_t lwm,
- ACE_Notification_Strategy *ns)
- : not_empty_cond_ (this->lock_),
- not_full_cond_ (this->lock_)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::ACE_Message_Queue");
-
- if (this->open (hwm, lwm, ns) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("open")));
-}
-
-template <ACE_SYNCH_DECL>
-ACE_Message_Queue<ACE_SYNCH_USE>::~ACE_Message_Queue (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::~ACE_Message_Queue");
- if (this->head_ != 0 && this->close () == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("close")));
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::flush_i (void)
-{
- int number_flushed = 0;
-
- // Remove all the <ACE_Message_Block>s in the <ACE_Message_Queue>
- // and <release> their memory.
- for (this->tail_ = 0; this->head_ != 0; )
- {
- number_flushed++;
-
- size_t mb_bytes = 0;
- size_t mb_length = 0;
- this->head_->total_size_and_length (mb_bytes,
- mb_length);
- // Subtract off all of the bytes associated with this message.
- this->cur_bytes_ -= mb_bytes;
- this->cur_length_ -= mb_length;
- this->cur_count_--;
-
- ACE_Message_Block *temp = this->head_;
- this->head_ = this->head_->next ();
-
- // Make sure to use <release> rather than <delete> since this is
- // reference counted.
- temp->release ();
- }
-
- return number_flushed;
-}
-
-// Don't bother locking since if someone calls this function more than
-// once for the same queue, we're in bigger trouble than just
-// concurrency control!
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::open (size_t hwm,
- size_t lwm,
- ACE_Notification_Strategy *ns)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::open");
- this->high_water_mark_ = hwm;
- this->low_water_mark_ = lwm;
- this->state_ = ACE_Message_Queue_Base::ACTIVATED;
- this->cur_bytes_ = 0;
- this->cur_length_ = 0;
- this->cur_count_ = 0;
- this->tail_ = 0;
- this->head_ = 0;
- this->notification_strategy_ = ns;
- return 0;
-}
-
-// Implementation of the public deactivate() method
-// (assumes locks are held).
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::deactivate_i (int pulse)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::deactivate_i");
- int previous_state = this->state_;
-
- if (previous_state != ACE_Message_Queue_Base::DEACTIVATED)
- {
- // Wakeup all waiters.
- this->not_empty_cond_.broadcast ();
- this->not_full_cond_.broadcast ();
-
- if (pulse)
- this->state_ = ACE_Message_Queue_Base::PULSED;
- else
- this->state_ = ACE_Message_Queue_Base::DEACTIVATED;
- }
- return previous_state;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::activate_i (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::activate_i");
- int previous_state = this->state_;
- this->state_ = ACE_Message_Queue_Base::ACTIVATED;
- return previous_state;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::flush (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::flush");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- // Free up the remaining messages on the queue.
- return this->flush_i ();
-}
-
-// Clean up the queue if we have not already done so!
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::close (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::close");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- int result = this->deactivate_i ();
-
- // Free up the remaining messages on the queue.
- this->flush_i ();
-
- return result;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::signal_enqueue_waiters (void)
-{
- if (this->not_full_cond_.signal () != 0)
- return -1;
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::signal_dequeue_waiters (void)
-{
- // Tell any blocked threads that the queue has a new item!
- if (this->not_empty_cond_.signal () != 0)
- return -1;
- return 0;
-}
-
-// Actually put the node at the end (no locking so must be called with
-// locks held).
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_tail_i (ACE_Message_Block *new_item)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_tail_i");
-
- if (new_item == 0)
- return -1;
-
- // List was empty, so build a new one.
- if (this->tail_ == 0)
- {
- this->head_ = new_item;
- this->tail_ = new_item;
- new_item->next (0);
- new_item->prev (0);
- }
- // Link at the end.
- else
- {
- new_item->next (0);
- this->tail_->next (new_item);
- new_item->prev (this->tail_);
- this->tail_ = new_item;
- }
-
- // Make sure to count all the bytes in a composite message!!!
- new_item->total_size_and_length (this->cur_bytes_,
- this->cur_length_);
- this->cur_count_++;
-
- if (this->signal_dequeue_waiters () == -1)
- return -1;
- else
- return this->cur_count_;
-}
-
-// Actually put the node at the head (no locking)
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_head_i (ACE_Message_Block *new_item)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_head_i");
-
- if (new_item == 0)
- return -1;
-
- new_item->prev (0);
- new_item->next (this->head_);
-
- if (this->head_ != 0)
- this->head_->prev (new_item);
- else
- this->tail_ = new_item;
-
- this->head_ = new_item;
-
- // Make sure to count all the bytes in a composite message!!!
- new_item->total_size_and_length (this->cur_bytes_,
- this->cur_length_);
- this->cur_count_++;
-
- if (this->signal_dequeue_waiters () == -1)
- return -1;
- else
- return this->cur_count_;
-}
-
-// Actually put the node at its proper position relative to its
-// priority.
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_i (ACE_Message_Block *new_item)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_i");
-
- if (new_item == 0)
- return -1;
-
- if (this->head_ == 0)
- // Check for simple case of an empty queue, where all we need to
- // do is insert <new_item> into the head.
- return this->enqueue_head_i (new_item);
- else
- {
- ACE_Message_Block *temp;
-
- // Figure out where the new item goes relative to its priority.
- // We start looking from the highest priority to the lowest
- // priority.
-
- for (temp = this->tail_;
- temp != 0;
- temp = temp->prev ())
- if (temp->msg_priority () >= new_item->msg_priority ())
- // Break out when we've located an item that has
- // greater or equal priority.
- break;
-
- if (temp == 0)
- // Check for simple case of inserting at the head of the queue,
- // where all we need to do is insert <new_item> before the
- // current head.
- return this->enqueue_head_i (new_item);
- else if (temp->next () == 0)
- // Check for simple case of inserting at the tail of the
- // queue, where all we need to do is insert <new_item> after
- // the current tail.
- return this->enqueue_tail_i (new_item);
- else
- {
- // Insert the new message behind the message of
- // greater or equal priority. This ensures that FIFO order is
- // maintained when messages of the same priority are
- // inserted consecutively.
- new_item->prev (temp);
- new_item->next (temp->next ());
- temp->next ()->prev (new_item);
- temp->next (new_item);
- }
- }
-
- // Make sure to count all the bytes in a composite message!!!
- new_item->total_size_and_length (this->cur_bytes_,
- this->cur_length_);
- this->cur_count_++;
-
- if (this->signal_dequeue_waiters () == -1)
- return -1;
- else
- return this->cur_count_;
-}
-
-// Actually put the node at its proper position relative to its
-// deadline time.
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_deadline_i (ACE_Message_Block *new_item)
-{
-#if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_deadline_i");
-
- if (new_item == 0)
- return -1;
-
- if (this->head_ == 0)
- // Check for simple case of an empty queue, where all we need to
- // do is insert <new_item> into the head.
- return this->enqueue_head_i (new_item);
- else
- {
- ACE_Message_Block *temp;
-
- // Figure out where the new item goes relative to its priority.
- // We start looking from the smallest deadline to the highest
- // deadline.
-
- for (temp = this->head_;
- temp != 0;
- temp = temp->next ())
- if (new_item->msg_deadline_time () < temp->msg_deadline_time ())
- // Break out when we've located an item that has
- // greater or equal priority.
- break;
-
- if (temp == 0 || temp->next () == 0)
- // Check for simple case of inserting at the tail of the queue,
- // where all we need to do is insert <new_item> after the
- // current tail.
- return this->enqueue_tail_i (new_item);
- else
- {
- // Insert the new message behind the message of
- // lesser or equal deadline time. This ensures that FIFO order is
- // maintained when messages of the same priority are
- // inserted consecutively.
- new_item->prev (temp);
- new_item->next (temp->next ());
- temp->next ()->prev (new_item);
- temp->next (new_item);
- }
- }
-
- // Make sure to count all the bytes in a composite message!!!
- new_item->total_size_and_length (this->cur_bytes_,
- this->cur_length_);
- this->cur_count_++;
-
- if (this->signal_dequeue_waiters () == -1)
- return -1;
- else
- return this->cur_count_;
-#else
- return this->enqueue_tail_i (new_item);
-#endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */
-}
-
-// Actually get the first ACE_Message_Block (no locking, so must be
-// called with locks held). This method assumes that the queue has at
-// least one item in it when it is called.
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_head_i (ACE_Message_Block *&first_item)
-{
- if (this->head_ ==0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Attempting to dequeue from empty queue")),
- -1);
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_head_i");
- first_item = this->head_;
- this->head_ = this->head_->next ();
-
- if (this->head_ == 0)
- this->tail_ = 0;
- else
- // The prev pointer of the first message block has to point to
- // NULL...
- this->head_->prev (0);
-
- size_t mb_bytes = 0;
- size_t mb_length = 0;
- first_item->total_size_and_length (mb_bytes,
- mb_length);
- // Subtract off all of the bytes associated with this message.
- this->cur_bytes_ -= mb_bytes;
- this->cur_length_ -= mb_length;
- this->cur_count_--;
-
- if (this->cur_count_ == 0 && this->head_ == this->tail_)
- this->head_ = this->tail_ = 0;
-
- // Only signal enqueueing threads if we've fallen below the low
- // water mark.
- if (this->cur_bytes_ <= this->low_water_mark_
- && this->signal_enqueue_waiters () == -1)
- return -1;
- else
- return this->cur_count_;
-}
-
-// Actually get the ACE_Message_Block with the lowest priority (no locking,
-// so must be called with locks held). This method assumes that the queue
-// has at least one item in it when it is called.
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_prio_i (ACE_Message_Block *&dequeued)
-{
- if (this->head_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Attempting to dequeue from empty queue")),
- -1);
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_prio_i");
-
- // Find the last message enqueued with the lowest priority
- ACE_Message_Block* chosen = 0;
- u_long priority = ULONG_MAX;
- for (ACE_Message_Block *temp = this->tail_; temp != 0; temp = temp->prev ())
- {
- if (temp->msg_priority () < priority)
- {
- priority = temp->msg_priority ();
- chosen = temp;
- }
- }
-
- // If every message block is the same priority, pass back the first one
- if (chosen == 0)
- {
- chosen = this->head_;
- }
-
- // Patch up the queue. If we don't have a previous
- // then we are at the head of the queue.
- if (chosen->prev () == 0)
- {
- this->head_ = chosen->next ();
- }
- else
- {
- chosen->prev ()->next (chosen->next ());
- }
-
- if (chosen->next () == 0)
- {
- this->tail_ = chosen->prev ();
- }
- else
- {
- chosen->next ()->prev (chosen->prev ());
- }
-
- // Pass back the chosen block
- dequeued = chosen;
-
- size_t mb_bytes = 0;
- size_t mb_length = 0;
- dequeued->total_size_and_length (mb_bytes,
- mb_length);
- // Subtract off all of the bytes associated with this message.
- this->cur_bytes_ -= mb_bytes;
- this->cur_length_ -= mb_length;
- this->cur_count_--;
-
- if (this->cur_count_ == 0 && this->head_ == this->tail_)
- this->head_ = this->tail_ = 0;
-
- // Only signal enqueueing threads if we've fallen below the low
- // water mark.
- if (this->cur_bytes_ <= this->low_water_mark_
- && this->signal_enqueue_waiters () == -1)
- return -1;
- else
- return this->cur_count_;
-}
-
-// Actually get the last ACE_Message_Block (no locking, so must be
-// called with locks held). This method assumes that the queue has at
-// least one item in it when it is called.
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_tail_i (ACE_Message_Block *&dequeued)
-{
- if (this->head_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Attempting to dequeue from empty queue")),
- -1);
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_tail_i");
- dequeued = this->tail_;
- if (this->tail_->prev () == 0)
- {
- this->head_ = 0;
- this->tail_ = 0;
- }
- else
- {
- this->tail_->prev ()->next (0);
- this->tail_ = this->tail_->prev ();
- }
-
- size_t mb_bytes = 0;
- size_t mb_length = 0;
- dequeued->total_size_and_length (mb_bytes,
- mb_length);
- // Subtract off all of the bytes associated with this message.
- this->cur_bytes_ -= mb_bytes;
- this->cur_length_ -= mb_length;
- this->cur_count_--;
-
- if (this->cur_count_ == 0 && this->head_ == this->tail_)
- this->head_ = this->tail_ = 0;
-
- // Only signal enqueueing threads if we've fallen below the low
- // water mark.
- if (this->cur_bytes_ <= this->low_water_mark_
- && this->signal_enqueue_waiters () == -1)
- return -1;
- else
- return this->cur_count_;
-}
-
-// Actually get the ACE_Message_Block with the lowest deadline time
-// (no locking, so must be called with locks held). This method assumes
-// that the queue has at least one item in it when it is called.
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_deadline_i (ACE_Message_Block *&dequeued)
-{
-#if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
- if (this->head_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Attempting to dequeue from empty queue")),
- -1);
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_deadline_i");
-
- // Find the last message enqueued with the lowest deadline time
- ACE_Message_Block* chosen = 0;
- ACE_Time_Value deadline = ACE_Time_Value::max_time;
- for (ACE_Message_Block *temp = this->head_; temp != 0; temp = temp->next ())
- {
- if (temp->msg_deadline_time () < deadline)
- {
- deadline = temp->msg_deadline_time ();
- chosen = temp;
- }
- }
-
- // If every message block is the same deadline time,
- // pass back the first one
- if (chosen == 0)
- {
- chosen = this->head_;
- }
-
- // Patch up the queue. If we don't have a previous
- // then we are at the head of the queue.
- if (chosen->prev () == 0)
- {
- this->head_ = chosen->next ();
- }
- else
- {
- chosen->prev ()->next (chosen->next ());
- }
-
- if (chosen->next () == 0)
- {
- this->tail_ = chosen->prev ();
- }
- else
- {
- chosen->next ()->prev (chosen->prev ());
- }
-
- // Pass back the chosen block
- dequeued = chosen;
-
- size_t mb_bytes = 0;
- size_t mb_length = 0;
- dequeued->total_size_and_length (mb_bytes,
- mb_length);
- // Subtract off all of the bytes associated with this message.
- this->cur_bytes_ -= mb_bytes;
- this->cur_length_ -= mb_length;
- this->cur_count_--;
-
- if (this->cur_count_ == 0 && this->head_ == this->tail_)
- this->head_ = this->tail_ = 0;
-
- // Only signal enqueueing threads if we've fallen below the low
- // water mark.
- if (this->cur_bytes_ <= this->low_water_mark_
- && this->signal_enqueue_waiters () == -1)
- return -1;
- else
- return this->cur_count_;
-#else
- return this->dequeue_head_i (dequeued);
-#endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */
-}
-
-// Take a look at the first item without removing it.
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::peek_dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::peek_dequeue_head");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
- {
- errno = ESHUTDOWN;
- return -1;
- }
-
- // Wait for at least one item to become available.
-
- if (this->wait_not_empty_cond (ace_mon, timeout) == -1)
- return -1;
-
- first_item = this->head_;
- return this->cur_count_;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::wait_not_full_cond
- (ACE_Guard<ACE_SYNCH_MUTEX_T> &, ACE_Time_Value *timeout)
-{
- int result = 0;
-
- // Wait while the queue is full.
-
- while (this->is_full_i ())
- {
- if (this->not_full_cond_.wait (timeout) == -1)
- {
- if (errno == ETIME)
- errno = EWOULDBLOCK;
- result = -1;
- break;
- }
- if (this->state_ != ACE_Message_Queue_Base::ACTIVATED)
- {
- errno = ESHUTDOWN;
- result = -1;
- break;
- }
- }
- return result;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::wait_not_empty_cond
- (ACE_Guard<ACE_SYNCH_MUTEX_T> &, ACE_Time_Value *timeout)
-{
- int result = 0;
-
- // Wait while the queue is empty.
-
- while (this->is_empty_i ())
- {
- if (this->not_empty_cond_.wait (timeout) == -1)
- {
- if (errno == ETIME)
- errno = EWOULDBLOCK;
- result = -1;
- break;
- }
- if (this->state_ != ACE_Message_Queue_Base::ACTIVATED)
- {
- errno = ESHUTDOWN;
- result = -1;
- break;
- }
- }
- return result;
-}
-
-// Block indefinitely waiting for an item to arrive, does not ignore
-// alerts (e.g., signals).
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_head (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_head");
- int queue_count = 0;
- {
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
- {
- errno = ESHUTDOWN;
- return -1;
- }
-
- if (this->wait_not_full_cond (ace_mon, timeout) == -1)
- return -1;
-
- queue_count = this->enqueue_head_i (new_item);
-
- if (queue_count == -1)
- return -1;
-
- this->notify ();
- }
- return queue_count;
-}
-
-// Enqueue an <ACE_Message_Block *> into the <Message_Queue> in
-// accordance with its <msg_priority> (0 is lowest priority). Returns
-// -1 on failure, else the number of items still on the queue.
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_prio (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_prio");
- int queue_count = 0;
- {
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
- {
- errno = ESHUTDOWN;
- return -1;
- }
-
- if (this->wait_not_full_cond (ace_mon, timeout) == -1)
- return -1;
-
- queue_count = this->enqueue_i (new_item);
-
- if (queue_count == -1)
- return -1;
-
- this->notify ();
- }
- return queue_count;
-}
-
-// Enqueue an <ACE_Message_Block *> into the <Message_Queue> in
-// accordance with its <msg_deadline_time>. Returns
-// -1 on failure, else the number of items still on the queue.
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_deadline (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_deadline");
- int queue_count = 0;
- {
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
- {
- errno = ESHUTDOWN;
- return -1;
- }
-
- if (this->wait_not_full_cond (ace_mon, timeout) == -1)
- return -1;
-
- queue_count = this->enqueue_deadline_i (new_item);
-
- if (queue_count == -1)
- return -1;
-
- this->notify ();
- }
- return queue_count;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::enqueue (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue");
- return this->enqueue_prio (new_item, timeout);
-}
-
-// Block indefinitely waiting for an item to arrive,
-// does not ignore alerts (e.g., signals).
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_tail (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_tail");
- int queue_count = 0;
- {
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
- {
- errno = ESHUTDOWN;
- return -1;
- }
-
- if (this->wait_not_full_cond (ace_mon, timeout) == -1)
- return -1;
-
- queue_count = this->enqueue_tail_i (new_item);
-
- if (queue_count == -1)
- return -1;
-
- this->notify ();
- }
- return queue_count;
-}
-
-// Remove an item from the front of the queue. If timeout == 0 block
-// indefinitely (or until an alert occurs). Otherwise, block for upto
-// the amount of time specified by timeout.
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_head");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
- {
- errno = ESHUTDOWN;
- return -1;
- }
-
- if (this->wait_not_empty_cond (ace_mon, timeout) == -1)
- return -1;
-
- return this->dequeue_head_i (first_item);
-}
-
-// Remove item with the lowest priority from the queue. If timeout == 0 block
-// indefinitely (or until an alert occurs). Otherwise, block for upto
-// the amount of time specified by timeout.
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_prio (ACE_Message_Block *&dequeued,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_prio");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
- {
- errno = ESHUTDOWN;
- return -1;
- }
-
- if (this->wait_not_empty_cond (ace_mon, timeout) == -1)
- return -1;
-
- return this->dequeue_prio_i (dequeued);
-}
-
-// Remove an item from the end of the queue. If timeout == 0 block
-// indefinitely (or until an alert occurs). Otherwise, block for upto
-// the amount of time specified by timeout.
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_tail (ACE_Message_Block *&dequeued,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_tail");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
- {
- errno = ESHUTDOWN;
- return -1;
- }
-
- if (this->wait_not_empty_cond (ace_mon, timeout) == -1)
- return -1;
-
- return this->dequeue_tail_i (dequeued);
-}
-
-// Remove an item with the lowest deadline time. If timeout == 0 block
-// indefinitely (or until an alert occurs). Otherwise, block for upto
-// the amount of time specified by timeout.
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_deadline (ACE_Message_Block *&dequeued,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_deadline");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
- {
- errno = ESHUTDOWN;
- return -1;
- }
-
- if (this->wait_not_empty_cond (ace_mon, timeout) == -1)
- return -1;
-
- return this->dequeue_deadline_i (dequeued);
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::notify (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::notify");
-
- // By default, don't do anything.
- if (this->notification_strategy_ == 0)
- return 0;
- else
- return this->notification_strategy_->notify ();
-}
-
-
-// = Initialization and termination methods.
-template <ACE_SYNCH_DECL>
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::ACE_Dynamic_Message_Queue (ACE_Dynamic_Message_Strategy & message_strategy,
- size_t hwm,
- size_t lwm,
- ACE_Notification_Strategy *ns)
- : ACE_Message_Queue<ACE_SYNCH_USE> (hwm, lwm, ns),
- pending_head_ (0),
- pending_tail_ (0),
- late_head_ (0),
- late_tail_ (0),
- beyond_late_head_ (0),
- beyond_late_tail_ (0),
- message_strategy_ (message_strategy)
-{
- // Note, the ACE_Dynamic_Message_Queue assumes full responsibility
- // for the passed ACE_Dynamic_Message_Strategy object, and deletes
- // it in its own dtor
-}
-
-// dtor: free message strategy and let base class dtor do the rest.
-
-template <ACE_SYNCH_DECL>
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::~ACE_Dynamic_Message_Queue (void)
-{
- delete &this->message_strategy_;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::remove_messages (ACE_Message_Block *&list_head,
- ACE_Message_Block *&list_tail,
- u_int status_flags)
-{
- // start with an empty list
- list_head = 0;
- list_tail = 0;
-
- // Get the current time
- ACE_Time_Value current_time = ACE_OS::gettimeofday ();
-
- // Refresh priority status boundaries in the queue.
- int result = this->refresh_queue (current_time);
- if (result < 0)
- return result;
-
- if (ACE_BIT_ENABLED (status_flags,
- (u_int) ACE_Dynamic_Message_Strategy::PENDING)
- && this->pending_head_
- && this->pending_tail_)
- {
- // patch up pointers for the new tail of the queue
- if (this->pending_head_->prev ())
- {
- this->tail_ = this->pending_head_->prev ();
- this->pending_head_->prev ()->next (0);
- }
- else
- {
- // the list has become empty
- this->head_ = 0;
- this->tail_ = 0;
- }
-
- // point to the head and tail of the list
- list_head = this->pending_head_;
- list_tail = this->pending_tail_;
-
- // cut the pending messages out of the queue entirely
- this->pending_head_->prev (0);
- this->pending_head_ = 0;
- this->pending_tail_ = 0;
- }
-
- if (ACE_BIT_ENABLED (status_flags,
- (u_int) ACE_Dynamic_Message_Strategy::LATE)
- && this->late_head_
- && this->late_tail_)
- {
- // Patch up pointers for the (possibly) new head and tail of the
- // queue.
- if (this->late_tail_->next ())
- this->late_tail_->next ()->prev (this->late_head_->prev ());
- else
- this->tail_ = this->late_head_->prev ();
-
- if (this->late_head_->prev ())
- this->late_head_->prev ()->next (this->late_tail_->next ());
- else
- this->head_ = this->late_tail_->next ();
-
- // put late messages behind pending messages (if any) being returned
- this->late_head_->prev (list_tail);
- if (list_tail)
- list_tail->next (this->late_head_);
- else
- list_head = this->late_head_;
-
- list_tail = this->late_tail_;
-
- this->late_tail_->next (0);
- this->late_head_ = 0;
- this->late_tail_ = 0;
- }
-
- if (ACE_BIT_ENABLED (status_flags,
- (u_int) ACE_Dynamic_Message_Strategy::BEYOND_LATE)
- && this->beyond_late_head_
- && this->beyond_late_tail_)
- {
- // Patch up pointers for the new tail of the queue
- if (this->beyond_late_tail_->next ())
- {
- this->head_ = this->beyond_late_tail_->next ();
- this->beyond_late_tail_->next ()->prev (0);
- }
- else
- {
- // the list has become empty
- this->head_ = 0;
- this->tail_ = 0;
- }
-
- // Put beyond late messages at the end of the list being
- // returned.
- if (list_tail)
- {
- this->beyond_late_head_->prev (list_tail);
- list_tail->next (this->beyond_late_head_);
- }
- else
- list_head = this->beyond_late_head_;
-
- list_tail = this->beyond_late_tail_;
-
- this->beyond_late_tail_->next (0);
- this->beyond_late_head_ = 0;
- this->beyond_late_tail_ = 0;
- }
-
- // Decrement message and size counts for removed messages.
- ACE_Message_Block *temp1;
-
- for (temp1 = list_head;
- temp1 != 0;
- temp1 = temp1->next ())
- {
- this->cur_count_--;
-
- size_t mb_bytes = 0;
- size_t mb_length = 0;
- temp1->total_size_and_length (mb_bytes,
- mb_length);
- // Subtract off all of the bytes associated with this message.
- this->cur_bytes_ -= mb_bytes;
- this->cur_length_ -= mb_length;
- }
-
- return result;
-}
-
-// Detach all messages with status given in the passed flags from the
-// queue and return them by setting passed head and tail pointers to
-// the linked list they comprise. This method is intended primarily
-// as a means of periodically harvesting messages that have missed
-// their deadlines, but is available in its most general form. All
-// messages are returned in priority order, from head to tail, as of
-// the time this method was called.
-
-template <ACE_SYNCH_DECL> int
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::dequeue_head");
-
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
- {
- errno = ESHUTDOWN;
- return -1;
- }
-
- int result;
-
- // get the current time
- ACE_Time_Value current_time = ACE_OS::gettimeofday ();
-
- // refresh priority status boundaries in the queue
- result = this->refresh_queue (current_time);
- if (result < 0)
- return result;
-
- // *now* it's appropriate to wait for an enqueued item
- result = this->wait_not_empty_cond (ace_mon, timeout);
- if (result == -1)
- return result;
-
- // call the internal dequeue method, which selects an item from the
- // highest priority status portion of the queue that has messages
- // enqueued.
- result = this->dequeue_head_i (first_item);
-
- return result;
-}
-
-// Dequeue and return the <ACE_Message_Block *> at the (logical) head
-// of the queue.
-
-template <ACE_SYNCH_DECL> void
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::dump (void) const
-{
- ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Message_Queue<ACE_SYNCH_USE> (base class): \n")));
- this->ACE_Message_Queue<ACE_SYNCH_USE>::dump ();
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("pending_head_ = %u\n")
- ACE_LIB_TEXT ("pending_tail_ = %u\n")
- ACE_LIB_TEXT ("late_head_ = %u\n")
- ACE_LIB_TEXT ("late_tail_ = %u\n")
- ACE_LIB_TEXT ("beyond_late_head_ = %u\n")
- ACE_LIB_TEXT ("beyond_late_tail_ = %u\n"),
- this->pending_head_,
- this->pending_tail_,
- this->late_head_,
- this->late_tail_,
- this->beyond_late_head_,
- this->beyond_late_tail_));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("message_strategy_ : \n")));
- message_strategy_.dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
- // dump the state of the queue
-
-template <ACE_SYNCH_DECL> int
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::enqueue_i (ACE_Message_Block *new_item)
-{
- ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::enqueue_i");
-
- if (new_item == 0)
- return -1;
-
- int result = 0;
-
- // Get the current time.
- ACE_Time_Value current_time = ACE_OS::gettimeofday ();
-
- // Refresh priority status boundaries in the queue.
-
- result = this->refresh_queue (current_time);
- if (result < 0)
- return result;
-
- // Where we enqueue depends on the message's priority status.
- switch (message_strategy_.priority_status (*new_item,
- current_time))
- {
- case ACE_Dynamic_Message_Strategy::PENDING:
- if (this->pending_tail_ == 0)
- {
- // Check for simple case of an empty pending queue, where
- // all we need to do is insert <new_item> into the tail of
- // the queue.
- pending_head_ = new_item;
- pending_tail_ = pending_head_;
- return this->enqueue_tail_i (new_item);
- }
- else
- {
- // Enqueue the new message in priority order in the pending
- // sublist
- result = sublist_enqueue_i (new_item,
- current_time,
- this->pending_head_,
- this->pending_tail_,
- ACE_Dynamic_Message_Strategy::PENDING);
- }
- break;
-
- case ACE_Dynamic_Message_Strategy::LATE:
- if (this->late_tail_ == 0)
- {
- late_head_ = new_item;
- late_tail_ = late_head_;
-
- if (this->pending_head_ == 0)
- // Check for simple case of an empty pending queue,
- // where all we need to do is insert <new_item> into the
- // tail of the queue.
- return this->enqueue_tail_i (new_item);
- else if (this->beyond_late_tail_ == 0)
- // Check for simple case of an empty beyond late queue, where all
- // we need to do is insert <new_item> into the head of the queue.
- return this->enqueue_head_i (new_item);
- else
- {
- // Otherwise, we can just splice the new message in
- // between the pending and beyond late portions of the
- // queue.
- this->beyond_late_tail_->next (new_item);
- new_item->prev (this->beyond_late_tail_);
- this->pending_head_->prev (new_item);
- new_item->next (this->pending_head_);
- }
- }
- else
- {
- // Enqueue the new message in priority order in the late
- // sublist
- result = sublist_enqueue_i (new_item,
- current_time,
- this->late_head_,
- this->late_tail_,
- ACE_Dynamic_Message_Strategy::LATE);
- }
- break;
-
- case ACE_Dynamic_Message_Strategy::BEYOND_LATE:
- if (this->beyond_late_tail_ == 0)
- {
- // Check for simple case of an empty beyond late queue,
- // where all we need to do is insert <new_item> into the
- // head of the queue.
- beyond_late_head_ = new_item;
- beyond_late_tail_ = beyond_late_head_;
- return this->enqueue_head_i (new_item);
- }
- else
- {
- // all beyond late messages have the same (zero) priority,
- // so just put the new one at the end of the beyond late
- // messages
- if (this->beyond_late_tail_->next ())
- this->beyond_late_tail_->next ()->prev (new_item);
- else
- this->tail_ = new_item;
-
- new_item->next (this->beyond_late_tail_->next ());
- this->beyond_late_tail_->next (new_item);
- new_item->prev (this->beyond_late_tail_);
- this->beyond_late_tail_ = new_item;
- }
-
- break;
-
- // should never get here, but just in case...
- default:
- result = -1;
- break;
- }
-
- if (result < 0)
- return result;
-
- size_t mb_bytes = 0;
- size_t mb_length = 0;
- new_item->total_size_and_length (mb_bytes,
- mb_length);
- // Subtract off all of the bytes associated with this message.
- this->cur_bytes_ -= mb_bytes;
- this->cur_length_ -= mb_length;
- this->cur_count_++;
-
- if (this->signal_dequeue_waiters () == -1)
- return -1;
- else
- return this->cur_count_;
-}
-
-// Enqueue an <ACE_Message_Block *> in accordance with its priority.
-// priority may be *dynamic* or *static* or a combination or *both* It
-// calls the priority evaluation function passed into the Dynamic
-// Message Queue constructor to update the priorities of all enqueued
-// messages.
-
-template <ACE_SYNCH_DECL> int
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::sublist_enqueue_i (ACE_Message_Block *new_item,
- const ACE_Time_Value &current_time,
- ACE_Message_Block *&sublist_head,
- ACE_Message_Block *&sublist_tail,
- ACE_Dynamic_Message_Strategy::Priority_Status status)
-{
- int result = 0;
- ACE_Message_Block *current_item = 0;
-
- // Find message after which to enqueue new item, based on message
- // priority and priority status.
- for (current_item = sublist_tail;
- current_item;
- current_item = current_item->prev ())
- {
- if (message_strategy_.priority_status (*current_item, current_time) == status)
- {
- if (current_item->msg_priority () >= new_item->msg_priority ())
- break;
- }
- else
- {
- sublist_head = new_item;
- break;
- }
- }
-
- if (current_item == 0)
- {
- // If the new message has highest priority of any, put it at the
- // head of the list (and sublist).
- new_item->prev (0);
- new_item->next (this->head_);
- if (this->head_ != 0)
- this->head_->prev (new_item);
- else
- {
- this->tail_ = new_item;
- sublist_tail = new_item;
- }
- this->head_ = new_item;
- sublist_head = new_item;
- }
- else
- {
- // insert the new item into the list
- new_item->next (current_item->next ());
- new_item->prev (current_item);
-
- if (current_item->next ())
- current_item->next ()->prev (new_item);
- else
- this->tail_ = new_item;
-
- current_item->next (new_item);
-
- // If the new item has lowest priority of any in the sublist,
- // move the tail pointer of the sublist back to the new item
- if (current_item == sublist_tail)
- sublist_tail = new_item;
- }
-
- return result;
-}
-
-// Enqueue a message in priority order within a given priority status
-// sublist.
-
-template <ACE_SYNCH_DECL> int
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::dequeue_head_i (ACE_Message_Block *&first_item)
-{
- ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::dequeue_head_i");
-
- int result = 0;
- int last_in_subqueue = 0;
-
- // first, try to dequeue from the head of the pending list
- if (this->pending_head_)
- {
- first_item = this->pending_head_;
-
- if (0 == this->pending_head_->prev ())
- this->head_ = this->pending_head_->next ();
- else
- this->pending_head_->prev ()->next (this->pending_head_->next ());
-
- if (0 == this->pending_head_->next ())
- {
- this->tail_ = this->pending_head_->prev ();
- this->pending_head_ = 0;
- this->pending_tail_ = 0;
- }
- else
- {
- this->pending_head_->next ()->prev (this->pending_head_->prev ());
- this->pending_head_ = this->pending_head_->next ();
- }
-
- first_item->prev (0);
- first_item->next (0);
- }
-
- // Second, try to dequeue from the head of the late list
- else if (this->late_head_)
- {
- last_in_subqueue = this->late_head_ == this->late_tail_ ? 1 : 0;
-
- first_item = this->late_head_;
-
- if (0 == this->late_head_->prev ())
- this->head_ = this->late_head_->next ();
- else
- this->late_head_->prev ()->next (this->late_head_->next ());
-
- if (0 == this->late_head_->next ())
- this->tail_ = this->late_head_->prev ();
- else
- {
- this->late_head_->next ()->prev (this->late_head_->prev ());
- this->late_head_ = this->late_head_->next ();
- }
-
- if (last_in_subqueue)
- {
- this->late_head_ = 0;
- this->late_tail_ = 0;
- }
-
- first_item->prev (0);
- first_item->next (0);
- }
- // finally, try to dequeue from the head of the beyond late list
- else if (this->beyond_late_head_)
- {
- last_in_subqueue =
- (this->beyond_late_head_ == this->beyond_late_tail_) ? 1 : 0;
-
- first_item = this->beyond_late_head_;
- this->head_ = this->beyond_late_head_->next ();
-
- if (0 == this->beyond_late_head_->next ())
- this->tail_ = this->beyond_late_head_->prev ();
- else
- {
- this->beyond_late_head_->next ()->prev (this->beyond_late_head_->prev ());
- this->beyond_late_head_ = this->beyond_late_head_->next ();
- }
-
- if (last_in_subqueue)
- {
- this->beyond_late_head_ = 0;
- this->beyond_late_tail_ = 0;
- }
-
- first_item->prev (0);
- first_item->next (0);
- }
- else
- {
- // nothing to dequeue: set the pointer to zero and return an error code
- first_item = 0;
- result = -1;
- }
-
- if (result < 0)
- return result;
-
- size_t mb_bytes = 0;
- size_t mb_length = 0;
- first_item->total_size_and_length (mb_bytes,
- mb_length);
- // Subtract off all of the bytes associated with this message.
- this->cur_bytes_ -= mb_bytes;
- this->cur_length_ -= mb_length;
- this->cur_count_--;
-
- // Only signal enqueueing threads if we've fallen below the low
- // water mark.
- if (this->cur_bytes_ <= this->low_water_mark_
- && this->signal_enqueue_waiters () == -1)
- return -1;
- else
- return this->cur_count_;
-}
-
-// Dequeue and return the <ACE_Message_Block *> at the head of the
-// logical queue. Attempts first to dequeue from the pending portion
-// of the queue, or if that is empty from the late portion, or if that
-// is empty from the beyond late portion, or if that is empty just
-// sets the passed pointer to zero and returns -1.
-
-template <ACE_SYNCH_DECL> int
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::refresh_queue (const ACE_Time_Value &current_time)
-{
- int result;
-
- result = refresh_pending_queue (current_time);
-
- if (result != -1)
- result = refresh_late_queue (current_time);
-
- return result;
-}
-
-// Refresh the queue using the strategy specific priority status
-// function.
-
-template <ACE_SYNCH_DECL> int
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::refresh_pending_queue (const ACE_Time_Value &current_time)
-{
- ACE_Dynamic_Message_Strategy::Priority_Status current_status;
-
- // refresh priority status boundaries in the queue
- if (this->pending_head_)
- {
- current_status = message_strategy_.priority_status (*this->pending_head_,
- current_time);
- switch (current_status)
- {
- case ACE_Dynamic_Message_Strategy::BEYOND_LATE:
- // Make sure the head of the beyond late queue is set (there
- // may not have been any beyond late messages previously)
- this->beyond_late_head_ = this->head_;
-
- // Zero out the late queue pointers, and set them only if
- // there turn out to be late messages in the pending sublist
- this->late_head_ = 0;
- this->late_tail_ = 0;
-
- // Advance through the beyond late messages in the pending queue
- do
- {
- this->pending_head_ = this->pending_head_->next ();
-
- if (this->pending_head_)
- current_status = message_strategy_.priority_status (*this->pending_head_,
- current_time);
- else
- break; // do while
-
- }
- while (current_status == ACE_Dynamic_Message_Strategy::BEYOND_LATE);
-
- if (this->pending_head_)
- {
- // point tail of beyond late sublist to previous item
- this->beyond_late_tail_ = this->pending_head_->prev ();
-
- if (current_status == ACE_Dynamic_Message_Strategy::PENDING)
- // there are no late messages left in the queue
- break; // switch
- else if (current_status != ACE_Dynamic_Message_Strategy::LATE)
- {
- // if we got here, something is *seriously* wrong with the queue
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Unexpected message priority status [%d] (expected LATE)"),
- (int) current_status),
- -1);
- }
- /* FALLTHRU */
- }
- else
- {
- // There are no pending or late messages left in the
- // queue.
- this->beyond_late_tail_ = this->tail_;
- this->pending_head_ = 0;
- this->pending_tail_ = 0;
- break; // switch
- }
-
- case ACE_Dynamic_Message_Strategy::LATE:
- // Make sure the head of the late queue is set (there may
- // not have been any late messages previously, or they may
- // have all become beyond late).
- if (this->late_head_ == 0)
- this->late_head_ = this->pending_head_;
-
- // advance through the beyond late messages in the pending queue
- do
- {
- this->pending_head_ = this->pending_head_->next ();
-
- if (this->pending_head_)
- current_status = message_strategy_.priority_status (*this->pending_head_,
- current_time);
- else
- break; // do while
-
- }
- while (current_status == ACE_Dynamic_Message_Strategy::LATE);
-
- if (this->pending_head_)
- {
- if (current_status != ACE_Dynamic_Message_Strategy::PENDING)
- // if we got here, something is *seriously* wrong with the queue
- ACE_ERROR_RETURN((LM_ERROR,
- ACE_LIB_TEXT ("Unexpected message priority status [%d] (expected PENDING)"),
- (int) current_status),
- -1);
-
- // Point tail of late sublist to previous item
- this->late_tail_ = this->pending_head_->prev ();
- }
- else
- {
- // there are no pending messages left in the queue
- this->late_tail_ = this->tail_;
- this->pending_head_ = 0;
- this->pending_tail_ = 0;
- }
-
- break; // switch
- case ACE_Dynamic_Message_Strategy::PENDING:
- // do nothing - the pending queue is unchanged
- break; // switch
- default:
- // if we got here, something is *seriously* wrong with the queue
- ACE_ERROR_RETURN((LM_ERROR,
- ACE_LIB_TEXT ("Unknown message priority status [%d]"),
- (int) current_status),
- -1);
- }
- }
- return 0;
-}
-
-// Refresh the pending queue using the strategy specific priority
-// status function.
-
-template <ACE_SYNCH_DECL> int
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::refresh_late_queue (const ACE_Time_Value &current_time)
-{
- ACE_Dynamic_Message_Strategy::Priority_Status current_status;
-
- if (this->late_head_)
- {
- current_status = message_strategy_.priority_status (*this->late_head_,
- current_time);
- switch (current_status)
- {
- case ACE_Dynamic_Message_Strategy::BEYOND_LATE:
-
- // make sure the head of the beyond late queue is set
- // (there may not have been any beyond late messages previously)
- this->beyond_late_head_ = this->head_;
-
- // advance through the beyond late messages in the late queue
- do
- {
- this->late_head_ = this->late_head_->next ();
-
- if (this->late_head_)
- current_status = message_strategy_.priority_status (*this->late_head_,
- current_time);
- else
- break; // do while
-
- }
- while (current_status == ACE_Dynamic_Message_Strategy::BEYOND_LATE);
-
- if (this->late_head_)
- {
- // point tail of beyond late sublist to previous item
- this->beyond_late_tail_ = this->late_head_->prev ();
-
- if (current_status == ACE_Dynamic_Message_Strategy::PENDING)
- {
- // there are no late messages left in the queue
- this->late_head_ = 0;
- this->late_tail_ = 0;
- }
- else if (current_status != ACE_Dynamic_Message_Strategy::LATE)
- // if we got here, something is *seriously* wrong with the queue
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Unexpected message priority status [%d] (expected LATE)"),
- (int) current_status),
- -1);
- }
- else
- {
- // there are no late messages left in the queue
- this->beyond_late_tail_ = this->tail_;
- this->late_head_ = 0;
- this->late_tail_ = 0;
- }
-
- break; // switch
-
- case ACE_Dynamic_Message_Strategy::LATE:
- // do nothing - the late queue is unchanged
- break; // switch
-
- case ACE_Dynamic_Message_Strategy::PENDING:
- // if we got here, something is *seriously* wrong with the queue
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Unexpected message priority status ")
- ACE_LIB_TEXT ("[%d] (expected LATE or BEYOND_LATE)"),
- (int) current_status),
- -1);
- default:
- // if we got here, something is *seriously* wrong with the queue
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Unknown message priority status [%d]"),
- (int) current_status),
- -1);
- }
- }
-
- return 0;
-}
-
-// Refresh the late queue using the strategy specific priority status
-// function.
-
-template <ACE_SYNCH_DECL> int
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::peek_dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout)
-{
- return ACE_Message_Queue<ACE_SYNCH_USE>::peek_dequeue_head (first_item,
- timeout);
-}
-
-// Private method to hide public base class method: just calls base
-// class method.
-
-template <ACE_SYNCH_DECL> int
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::enqueue_tail (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::enqueue_tail");
- return this->enqueue_prio (new_item, timeout);
-}
-
-// Just call priority enqueue method: tail enqueue semantics for
-// dynamic message queues are unstable: the message may or may not be
-// where it was placed after the queue is refreshed prior to the next
-// enqueue or dequeue operation.
-
-template <ACE_SYNCH_DECL> int
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::enqueue_head (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::enqueue_head");
- return this->enqueue_prio (new_item, timeout);
-}
-
-// Just call priority enqueue method: head enqueue semantics for
-// dynamic message queues are unstable: the message may or may not be
-// where it was placed after the queue is refreshed prior to the next
-// enqueue or dequeue operation.
-
-template <ACE_SYNCH_DECL>
-ACE_Message_Queue<ACE_SYNCH_USE> *
-ACE_Message_Queue_Factory<ACE_SYNCH_USE>::create_static_message_queue (size_t hwm,
- size_t lwm,
- ACE_Notification_Strategy *ns)
-{
- ACE_Message_Queue<ACE_SYNCH_USE> *tmp;
-
- ACE_NEW_RETURN (tmp,
- ACE_Message_Queue<ACE_SYNCH_USE> (hwm, lwm, ns),
- 0);
- return tmp;
-}
-
-// Factory method for a statically prioritized ACE_Message_Queue.
-
-template <ACE_SYNCH_DECL>
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> *
-ACE_Message_Queue_Factory<ACE_SYNCH_USE>::create_deadline_message_queue (size_t hwm,
- size_t lwm,
- ACE_Notification_Strategy *ns,
- u_long static_bit_field_mask,
- u_long static_bit_field_shift,
- u_long dynamic_priority_max,
- u_long dynamic_priority_offset)
-{
- ACE_Deadline_Message_Strategy *adms;
-
- ACE_NEW_RETURN (adms,
- ACE_Deadline_Message_Strategy (static_bit_field_mask,
- static_bit_field_shift,
- dynamic_priority_max,
- dynamic_priority_offset),
- 0);
-
- ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> *tmp;
- ACE_NEW_RETURN (tmp,
- ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> (*adms, hwm, lwm, ns),
- 0);
- return tmp;
-}
-
-// Factory method for a dynamically prioritized (by time to deadline)
-// ACE_Dynamic_Message_Queue.
-
-template <ACE_SYNCH_DECL>
-ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> *
-ACE_Message_Queue_Factory<ACE_SYNCH_USE>::create_laxity_message_queue (size_t hwm,
- size_t lwm,
- ACE_Notification_Strategy *ns,
- u_long static_bit_field_mask,
- u_long static_bit_field_shift,
- u_long dynamic_priority_max,
- u_long dynamic_priority_offset)
-{
- ACE_Laxity_Message_Strategy *alms;
-
- ACE_NEW_RETURN (alms,
- ACE_Laxity_Message_Strategy (static_bit_field_mask,
- static_bit_field_shift,
- dynamic_priority_max,
- dynamic_priority_offset),
- 0);
-
- ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> *tmp;
- ACE_NEW_RETURN (tmp,
- ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> (*alms, hwm, lwm, ns),
- 0);
- return tmp;
-}
-
-// Factory method for a dynamically prioritized (by laxity)
-// <ACE_Dynamic_Message_Queue>.
-
-#if defined (VXWORKS)
-
-template <ACE_SYNCH_DECL>
-ACE_Message_Queue_Vx *
-ACE_Message_Queue_Factory<ACE_SYNCH_USE>::create_Vx_message_queue (size_t max_messages,
- size_t max_message_length,
- ACE_Notification_Strategy *ns)
-{
- ACE_Message_Queue_Vx *tmp;
-
- ACE_NEW_RETURN (tmp,
- ACE_Message_Queue_Vx (max_messages, max_message_length, ns),
- 0);
- return tmp;
-}
- // factory method for a wrapped VxWorks message queue
-
-#if defined (ACE_WIN32) && (ACE_HAS_WINNT4 != 0)
-
-template <ACE_SYNCH_DECL>
-ACE_Message_Queue_NT *
-ACE_Message_Queue_Factory<ACE_SYNCH_USE>::create_NT_message_queue (size_t max_threads)
-{
- ACE_Message_Queue_NT *tmp;
-
- ACE_NEW_RETURN (tmp,
- ACE_Message_Queue_NT (max_threads);
- 0);
- return tmp;
-}
-
-#endif /* ACE_WIN32 && ACE_HAS_WINNT4 != 0 */
-#endif /* defined (VXWORKS) */
-#endif /* ACE_MESSAGE_QUEUE_T_C */
diff --git a/ace/Message_Queue_T.h b/ace/Message_Queue_T.h
deleted file mode 100644
index 1e12ba469ef..00000000000
--- a/ace/Message_Queue_T.h
+++ /dev/null
@@ -1,1236 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Message_Queue_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_MESSAGE_QUEUE_T_H
-#define ACE_MESSAGE_QUEUE_T_H
-#include "ace/pre.h"
-
-#include "ace/Message_Queue.h"
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (VXWORKS)
-class ACE_Message_Queue_Vx;
-#endif /* defined (VXWORKS) */
-
-#if defined (ACE_WIN32) && (ACE_HAS_WINNT4 != 0)
-class ACE_Message_Queue_NT;
-#endif /* ACE_WIN32 && ACE_HAS_WINNT4 != 0 */
-
-/**
- * @class ACE_Message_Queue
- *
- * @brief A threaded message queueing facility, modeled after the
- * queueing facilities in System V STREAMs.
- *
- * An <ACE_Message_Queue> is the central queueing facility for
- * messages in the ACE framework. If <ACE_SYNCH_DECL> is
- * <ACE_MT_SYNCH> then all operations are thread-safe.
- * Otherwise, if it's <ACE_NULL_SYNCH> then there's no locking
- * overhead.
- */
-template <ACE_SYNCH_DECL>
-class ACE_Message_Queue : public ACE_Message_Queue_Base
-{
-public:
- friend class ACE_Message_Queue_Iterator<ACE_SYNCH_USE>;
- friend class ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>;
-
- // = Traits
- typedef ACE_Message_Queue_Iterator<ACE_SYNCH_USE>
- ITERATOR;
- typedef ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>
- REVERSE_ITERATOR;
-
- // = Initialization and termination methods.
- /**
- * Initialize an <ACE_Message_Queue>. The <high_water_mark>
- * determines how many bytes can be stored in a queue before it's
- * considered "full." Supplier threads must block until the queue
- * is no longer full. The <low_water_mark> determines how many
- * bytes must be in the queue before supplier threads are allowed to
- * enqueue additional <ACE_Message_Block>s. By default, the
- * <high_water_mark> equals the <low_water_mark>, which means that
- * suppliers will be able to enqueue new messages as soon as a
- * consumer removes any message from the queue. Making the
- * <low_water_mark> smaller than the <high_water_mark> forces
- * consumers to drain more messages from the queue before suppliers
- * can enqueue new messages, which can minimize the "silly window
- * syndrome."
- */
- ACE_Message_Queue (size_t high_water_mark = ACE_Message_Queue_Base::DEFAULT_HWM,
- size_t low_water_mark = ACE_Message_Queue_Base::DEFAULT_LWM,
- ACE_Notification_Strategy * = 0);
-
- /**
- * Initialize an <ACE_Message_Queue>. The <high_water_mark>
- * determines how many bytes can be stored in a queue before it's
- * considered "full." Supplier threads must block until the queue
- * is no longer full. The <low_water_mark> determines how many
- * bytes must be in the queue before supplier threads are allowed to
- * enqueue additional <ACE_Message_Block>s. By default, the
- * <high_water_mark> equals the <low_water_mark>, which means that
- * suppliers will be able to enqueue new messages as soon as a
- * consumer removes any message from the queue. Making the
- * <low_water_mark> smaller than the <high_water_mark> forces
- * consumers to drain more messages from the queue before suppliers
- * can enqueue new messages, which can minimize the "silly window
- * syndrome."
- */
- virtual int open (size_t hwm = ACE_Message_Queue_Base::DEFAULT_HWM,
- size_t lwm = ACE_Message_Queue_Base::DEFAULT_LWM,
- ACE_Notification_Strategy * = 0);
-
- /// Release all resources from the message queue and mark it as deactivated.
- /// Returns the number of messages released from the queue.
- virtual int close (void);
-
- /// Release all resources from the message queue and mark it as deactivated.
- virtual ~ACE_Message_Queue (void);
-
- /// Release all resources from the message queue but do not mark it
- /// as deactivated.
- /**
- * This method holds the queue lock during this operation.
- *
- * @return The number of messages flushed.
- */
- virtual int flush (void);
-
- /// Release all resources from the message queue but do not mark it
- /// as deactivated.
- /**
- * The caller must be holding the queue lock before calling this
- * method.
- *
- * @return The number of messages flushed.
- */
- virtual int flush_i (void);
-
- // = Enqueue and dequeue methods.
-
- // For the following enqueue and dequeue methods if <timeout> == 0,
- // the caller will block until action is possible, else will wait
- // until the absolute time specified in *<timeout> elapses). These
- // calls will return, however, when queue is closed, deactivated,
- // when a signal occurs, or if the time specified in timeout
- // elapses, (in which case errno = EWOULDBLOCK).
-
- /**
- * Retrieve a pointer to the first ACE_Message_Block in the queue
- * without removing it.
- *
- * @param first_item Reference to an ACE_Message_Block * that will
- * point to the first block on the queue. The block
- * remains on the queue until this or another thread
- * dequeues it.
- * @param timeout The absolute time the caller will wait until
- * for a block to be queued.
- *
- * @retval >0 The number of ACE_Message_Blocks on the queue.
- * @retval -1 On failure. errno holds the reason. If EWOULDBLOCK,
- * the timeout elapsed. If ESHUTDOWN, the queue was
- * deactivated or pulsed.
- */
- virtual int peek_dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Enqueue an ACE_Message_Block into the queue in accordance with
- * the ACE_Message_Block's priority (0 is lowest priority). FIFO
- * order is maintained when messages of the same priority are
- * inserted consecutively.
- *
- * @param new_item Pointer to an ACE_Message_Block that will be
- * added to the queue. The block's @c msg_priority()
- * method will be called to obtain the queueing priority.
- * @param timeout The absolute time the caller will wait until
- * for the block to be queued.
- *
- * @retval >0 The number of ACE_Message_Blocks on the queue after adding
- * the specified block.
- * @retval -1 On failure. errno holds the reason. If EWOULDBLOCK,
- * the timeout elapsed. If ESHUTDOWN, the queue was
- * deactivated or pulsed.
- */
- virtual int enqueue_prio (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Enqueue an <ACE_Message_Block *> into the <Message_Queue> in
- * accordance with its <msg_deadline_time>. FIFO
- * order is maintained when messages of the same deadline time are
- * inserted consecutively. Note that <timeout> uses <{absolute}>
- * time rather than <{relative}> time. If the <timeout> elapses
- * without receiving a message -1 is returned and <errno> is set to
- * <EWOULDBLOCK>. If the queue is deactivated -1 is returned and
- * <errno> is set to <ESHUTDOWN>. Otherwise, returns -1 on failure,
- * else the number of items still on the queue.
- */
- virtual int enqueue_deadline (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * This is an alias for <enqueue_prio>. It's only here for
- * backwards compatibility and will go away in a subsequent release.
- * Please use <enqueue_prio> instead. Note that <timeout> uses
- * <{absolute}> time rather than <{relative}> time.
- */
- virtual int enqueue (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Enqueue an <ACE_Message_Block *> at the end of the queue. Note
- * that <timeout> uses <{absolute}> time rather than <{relative}>
- * time. If the <timeout> elapses without receiving a message -1 is
- * returned and <errno> is set to <EWOULDBLOCK>. If the queue is
- * deactivated -1 is returned and <errno> is set to <ESHUTDOWN>.
- * Otherwise, returns -1 on failure, else the number of items still
- * on the queue.
- */
- virtual int enqueue_tail (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Enqueue an <ACE_Message_Block *> at the head of the queue. Note
- * that <timeout> uses <{absolute}> time rather than <{relative}>
- * time. If the <timeout> elapses without receiving a message -1 is
- * returned and <errno> is set to <EWOULDBLOCK>. If the queue is
- * deactivated -1 is returned and <errno> is set to <ESHUTDOWN>.
- * Otherwise, returns -1 on failure, else the number of items still
- * on the queue.
- */
- virtual int enqueue_head (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout = 0);
-
- /// This method is an alias for the following <dequeue_head> method.
- virtual int dequeue (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Dequeue and return the <ACE_Message_Block *> at the head of the
- * queue. Note that <timeout> uses <{absolute}> time rather than
- * <{relative}> time. If the <timeout> elapses without receiving a
- * message -1 is returned and <errno> is set to <EWOULDBLOCK>. If
- * the queue is deactivated -1 is returned and <errno> is set to
- * <ESHUTDOWN>. Otherwise, returns -1 on failure, else the number
- * of items still on the queue.
- */
- virtual int dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Dequeue and return the <ACE_Message_Block *> that has the lowest
- * priority. Note that <timeout> uses <{absolute}> time rather than
- * <{relative}> time. If the <timeout> elapses without receiving a
- * message -1 is returned and <errno> is set to <EWOULDBLOCK>. If
- * the queue is deactivated -1 is returned and <errno> is set to
- * <ESHUTDOWN>. Otherwise, returns -1 on failure, else the number
- * of items still on the queue.
- */
- virtual int dequeue_prio (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Dequeue and return the <ACE_Message_Block *> at the tail of the
- * queue. Note that <timeout> uses <{absolute}> time rather than
- * <{relative}> time. If the <timeout> elapses without receiving a
- * message -1 is returned and <errno> is set to <EWOULDBLOCK>. If
- * the queue is deactivated -1 is returned and <errno> is set to
- * <ESHUTDOWN>. Otherwise, returns -1 on failure, else the number
- * of items still on the queue.
- */
- virtual int dequeue_tail (ACE_Message_Block *&dequeued,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Dequeue and return the <ACE_Message_Block *> with the lowest
- * deadlien time. Note that <timeout> uses <{absolute}> time rather than
- * <{relative}> time. If the <timeout> elapses without receiving a
- * message -1 is returned and <errno> is set to <EWOULDBLOCK>. If
- * the queue is deactivated -1 is returned and <errno> is set to
- * <ESHUTDOWN>. Otherwise, returns -1 on failure, else the number
- * of items still on the queue.
- */
- virtual int dequeue_deadline (ACE_Message_Block *&dequeued,
- ACE_Time_Value *timeout = 0);
-
- // = Check if queue is full/empty.
- /// True if queue is full, else false.
- virtual int is_full (void);
- /// True if queue is empty, else false.
- virtual int is_empty (void);
-
- // = Queue statistic methods.
- /**
- * Number of total bytes on the queue, i.e., sum of the message
- * block sizes.
- */
- virtual size_t message_bytes (void);
- /**
- * Number of total length on the queue, i.e., sum of the message
- * block lengths.
- */
- virtual size_t message_length (void);
- /**
- * Number of total messages on the queue.
- */
- virtual int message_count (void);
-
- // = Manual changes to these stats (used when queued message blocks
- // change size or lengths).
- /**
- * New value of the number of total bytes on the queue, i.e., sum of
- * the message block sizes.
- */
- virtual void message_bytes (size_t new_size);
- /**
- * New value of the number of total length on the queue, i.e., sum
- * of the message block lengths.
- */
- virtual void message_length (size_t new_length);
-
- // = Flow control methods.
-
- /**
- * Get high watermark.
- */
- virtual size_t high_water_mark (void);
- /**
- * Set the high watermark, which determines how many bytes can be
- * stored in a queue before it's considered "full."
- */
- virtual void high_water_mark (size_t hwm);
-
- /**
- * Get low watermark.
- */
- virtual size_t low_water_mark (void);
- /**
- * Set the low watermark, which determines how many bytes must be in
- * the queue before supplier threads are allowed to enqueue
- * additional <ACE_Message_Block>s.
- */
- virtual void low_water_mark (size_t lwm);
-
- // = Activation control methods.
-
- /**
- * Deactivate the queue and wakeup all threads waiting on the queue
- * so they can continue. No messages are removed from the queue,
- * however. Any other operations called until the queue is
- * activated again will immediately return -1 with <errno> ==
- * ESHUTDOWN. Returns WAS_INACTIVE if queue was inactive before the
- * call and WAS_ACTIVE if queue was active before the call.
- */
- virtual int deactivate (void);
-
- /**
- * Reactivate the queue so that threads can enqueue and dequeue
- * messages again. Returns the state of the queue before the call.
- */
- virtual int activate (void);
-
- /**
- * Pulse the queue to wake up any waiting threads. Changes the
- * queue state to PULSED; future enqueue/dequeue operations proceed
- * as in ACTIVATED state.
- *
- * @return The queue's state before this call.
- */
- virtual int pulse (void);
-
- /// Returns the current state of the queue, which can be one of
- /// ACTIVATED, DEACTIVATED, or PULSED.
- virtual int state (void);
-
- /// Returns true if the state of the queue is <DEACTIVATED>,
- /// but false if the queue's is <ACTIVATED> or <PULSED>.
- virtual int deactivated (void);
-
- // = Notification hook.
-
- /**
- * This hook is automatically invoked by <enqueue_head>,
- * <enqueue_tail>, and <enqueue_prio> when a new item is inserted
- * into the queue. Subclasses can override this method to perform
- * specific notification strategies (e.g., signaling events for a
- * <WFMO_Reactor>, notifying a <Reactor>, etc.). In a
- * multi-threaded application with concurrent consumers, there is no
- * guarantee that the queue will be still be non-empty by the time
- * the notification occurs.
- */
- virtual int notify (void);
-
- /// Get the notification strategy for the <Message_Queue>
- virtual ACE_Notification_Strategy *notification_strategy (void);
-
- /// Set the notification strategy for the <Message_Queue>
- virtual void notification_strategy (ACE_Notification_Strategy *s);
-
- /// Returns a reference to the lock used by the <ACE_Message_Queue>.
- virtual ACE_SYNCH_MUTEX_T &lock (void)
- {
- // The Sun Forte 6 (CC 5.1) compiler is only happy if this is in the
- // header file (j.russell.noseworthy@objectsciences.com)
- return this->lock_;
- }
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Routines that actually do the enqueueing and dequeueing.
-
- // These routines assume that locks are held by the corresponding
- // public methods. Since they are virtual, you can change the
- // queueing mechanism by subclassing from <ACE_Message_Queue>.
-
- /// Enqueue an <ACE_Message_Block *> in accordance with its priority.
- virtual int enqueue_i (ACE_Message_Block *new_item);
-
- /// Enqueue an <ACE_Message_Block *> in accordance with its deadline time.
- virtual int enqueue_deadline_i (ACE_Message_Block *new_item);
-
- /// Enqueue an <ACE_Message_Block *> at the end of the queue.
- virtual int enqueue_tail_i (ACE_Message_Block *new_item);
-
- /// Enqueue an <ACE_Message_Block *> at the head of the queue.
- virtual int enqueue_head_i (ACE_Message_Block *new_item);
-
- /// Dequeue and return the <ACE_Message_Block *> at the head of the
- /// queue.
- virtual int dequeue_head_i (ACE_Message_Block *&first_item);
-
- /// Dequeue and return the <ACE_Message_Block *> with the lowest
- /// priority.
- virtual int dequeue_prio_i (ACE_Message_Block *&dequeued);
-
- /// Dequeue and return the <ACE_Message_Block *> at the tail of the
- /// queue.
- virtual int dequeue_tail_i (ACE_Message_Block *&first_item);
-
- /// Dequeue and return the <ACE_Message_Block *> with the lowest
- /// deadline time.
- virtual int dequeue_deadline_i (ACE_Message_Block *&first_item);
-
- // = Check the boundary conditions (assumes locks are held).
-
- /// True if queue is full, else false.
- virtual int is_full_i (void);
-
- /// True if queue is empty, else false.
- virtual int is_empty_i (void);
-
- // = Implementation of the public <activate> and <deactivate> methods.
-
- // These methods assume locks are held.
-
- /**
- * Notifies all waiting threads that the queue has been deactivated
- * so they can wakeup and continue other processing.
- * No messages are removed from the queue.
- *
- * @param pulse If 0, the queue's state is changed to DEACTIVATED
- * and any other operations called until the queue is
- * reactivated will immediately return -1 with
- * errno == ESHUTDOWN.
- * If not zero, only the waiting threads are notified and
- * the queue's state changes to PULSED.
- *
- * @return The state of the queue before the call.
- */
- virtual int deactivate_i (int pulse = 0);
-
- /// Activate the queue.
- virtual int activate_i (void);
-
- // = Helper methods to factor out common #ifdef code.
-
- /// Wait for the queue to become non-full.
- virtual int wait_not_full_cond (ACE_Guard<ACE_SYNCH_MUTEX_T> &mon,
- ACE_Time_Value *timeout);
-
- /// Wait for the queue to become non-empty.
- virtual int wait_not_empty_cond (ACE_Guard<ACE_SYNCH_MUTEX_T> &mon,
- ACE_Time_Value *timeout);
-
- /// Inform any threads waiting to enqueue that they can procede.
- virtual int signal_enqueue_waiters (void);
-
- /// Inform any threads waiting to dequeue that they can procede.
- virtual int signal_dequeue_waiters (void);
-
- /// Pointer to head of ACE_Message_Block list.
- ACE_Message_Block *head_;
-
- /// Pointer to tail of ACE_Message_Block list.
- ACE_Message_Block *tail_;
-
- /// Lowest number before unblocking occurs.
- size_t low_water_mark_;
-
- /// Greatest number of bytes before blocking.
- size_t high_water_mark_;
-
- /// Current number of bytes in the queue.
- size_t cur_bytes_;
-
- /// Current length of messages in the queue.
- size_t cur_length_;
-
- /// Current number of messages in the queue.
- int cur_count_;
-
- /// The notification strategy used when a new message is enqueued.
- ACE_Notification_Strategy *notification_strategy_;
-
- // = Synchronization primitives for controlling concurrent access.
- /// Protect queue from concurrent access.
- ACE_SYNCH_MUTEX_T lock_;
-
- /// Used to make threads sleep until the queue is no longer empty.
- ACE_SYNCH_CONDITION_T not_empty_cond_;
-
- /// Used to make threads sleep until the queue is no longer full.
- ACE_SYNCH_CONDITION_T not_full_cond_;
-
-private:
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Message_Queue<ACE_SYNCH_USE> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Message_Queue (const ACE_Message_Queue<ACE_SYNCH_USE> &))
-};
-
-// This typedef is used to get around a compiler bug in g++/vxworks.
-typedef ACE_Message_Queue<ACE_SYNCH> ACE_DEFAULT_MESSAGE_QUEUE_TYPE;
-
-
-/**
- * @class ACE_Message_Queue_Iterator
- *
- * @brief Iterator for the <ACE_Message_Queue>.
- */
-template <ACE_SYNCH_DECL>
-class ACE_Message_Queue_Iterator
-{
-public:
- // = Initialization method.
- ACE_Message_Queue_Iterator (ACE_Message_Queue <ACE_SYNCH_USE> &queue);
-
- // = Iteration methods.
- /// Pass back the <entry> that hasn't been seen in the queue.
- /// Returns 0 when all items have been seen, else 1.
- int next (ACE_Message_Block *&entry);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Move forward by one element in the queue. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Message_Queue we are iterating over.
- ACE_Message_Queue <ACE_SYNCH_USE> &queue_;
-
- /// Keeps track of how far we've advanced...
- ACE_Message_Block *curr_;
-};
-
-/**
- * @class ACE_Message_Queue_Reverse_Iterator
- *
- * @brief Reverse Iterator for the <ACE_Message_Queue>.
- */
-template <ACE_SYNCH_DECL>
-class ACE_Message_Queue_Reverse_Iterator
-{
-public:
- // = Initialization method.
- ACE_Message_Queue_Reverse_Iterator (ACE_Message_Queue <ACE_SYNCH_USE> &queue);
-
- // = Iteration methods.
- /// Pass back the <entry> that hasn't been seen in the queue.
- /// Returns 0 when all items have been seen, else 1.
- int next (ACE_Message_Block *&entry);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Move forward by one element in the queue. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Message_Queue we are iterating over.
- ACE_Message_Queue <ACE_SYNCH_USE> &queue_;
-
- /// Keeps track of how far we've advanced...
- ACE_Message_Block *curr_;
-};
-
-/**
- * @class ACE_Dynamic_Message_Queue
- *
- * @brief A derived class which adapts the <ACE_Message_Queue>
- * class in order to maintain dynamic priorities for enqueued
- * <ACE_Message_Blocks> and manage the queue order according
- * to these dynamic priorities.
- *
- * The messages in the queue are managed so as to preserve
- * a logical ordering with minimal overhead per enqueue and
- * dequeue operation. For this reason, the actual order of
- * messages in the linked list of the queue may differ from
- * their priority order. As time passes, a message may change
- * from pending status to late status, and eventually to beyond
- * late status. To minimize reordering overhead under this
- * design force, three separate boundaries are maintained
- * within the linked list of messages. Messages are dequeued
- * preferentially from the head of the pending portion, then
- * the head of the late portion, and finally from the head
- * of the beyond late portion. In this way, only the boundaries
- * need to be maintained (which can be done efficiently, as
- * aging messages maintain the same linked list order as they
- * progress from one status to the next), with no reordering
- * of the messages themselves, while providing correct priority
- * ordered dequeueing semantics.
- * Head and tail enqueue methods inherited from ACE_Message_Queue
- * are made private to prevent out-of-order messages from confusing
- * management of the various portions of the queue. Messages in
- * the pending portion of the queue whose priority becomes late
- * (according to the specific dynamic strategy) advance into
- * the late portion of the queue. Messages in the late portion
- * of the queue whose priority becomes later than can be represented
- * advance to the beyond_late portion of the queue. These behaviors
- * support a limited schedule overrun, with pending messages prioritized
- * ahead of late messages, and late messages ahead of beyond late
- * messages. These behaviors can be modified in derived classes by
- * providing alternative definitions for the appropriate virtual methods.
- * When filled with messages, the queue's linked list should look like:
- * H T
- * | |
- * B - B - B - B - L - L - L - P - P - P - P - P
- * | | | | | |
- * BH BT LH LT PH PT
- * Where the symbols are as follows:
- * H = Head of the entire list
- * T = Tail of the entire list
- * B = Beyond late message
- * BH = Beyond late messages Head
- * BT = Beyond late messages Tail
- * L = Late message
- * LH = Late messages Head
- * LT = Late messages Tail
- * P = Pending message
- * PH = Pending messages Head
- * PT = Pending messages Tail
- * Caveat: the virtual methods enqueue_tail, enqueue_head,
- * and peek_dequeue_head have semantics for the static
- * message queues that cannot be guaranteed for dynamic
- * message queues. The peek_dequeue_head method just
- * calls the base class method, while the two enqueue
- * methods call the priority enqueue method. The
- * order of messages in the dynamic queue is a function
- * of message deadlines and how long they are in the
- * queues. You can manipulate these in some cases to
- * ensure the correct semantics, but that is not a
- * very stable or portable approach (discouraged).
- */
-template <ACE_SYNCH_DECL>
-class ACE_Dynamic_Message_Queue : public ACE_Message_Queue<ACE_SYNCH_USE>
-{
-public:
- // = Initialization and termination methods.
- ACE_Dynamic_Message_Queue (ACE_Dynamic_Message_Strategy & message_strategy,
- size_t hwm = ACE_Message_Queue_Base::DEFAULT_HWM,
- size_t lwm = ACE_Message_Queue_Base::DEFAULT_LWM,
- ACE_Notification_Strategy * = 0);
-
- /// Close down the message queue and release all resources.
- virtual ~ACE_Dynamic_Message_Queue (void);
-
- /**
- * Detach all messages with status given in the passed flags from
- * the queue and return them by setting passed head and tail pointers
- * to the linked list they comprise. This method is intended primarily
- * as a means of periodically harvesting messages that have missed
- * their deadlines, but is available in its most general form. All
- * messages are returned in priority order, from head to tail, as of
- * the time this method was called.
- */
- virtual int remove_messages (ACE_Message_Block *&list_head,
- ACE_Message_Block *&list_tail,
- u_int status_flags);
-
- /**
- * Dequeue and return the <ACE_Message_Block *> at the head of the
- * queue. Returns -1 on failure, else the number of items still on
- * the queue.
- */
- virtual int dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout = 0);
-
- /// Dump the state of the queue.
- virtual void dump (void) const;
-
- /**
- * Just call priority enqueue method: tail enqueue semantics for dynamic
- * message queues are unstable: the message may or may not be where
- * it was placed after the queue is refreshed prior to the next
- * enqueue or dequeue operation.
- */
- virtual int enqueue_tail (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Just call priority enqueue method: head enqueue semantics for dynamic
- * message queues are unstable: the message may or may not be where
- * it was placed after the queue is refreshed prior to the next
- * enqueue or dequeue operation.
- */
- virtual int enqueue_head (ACE_Message_Block *new_item,
- ACE_Time_Value *timeout = 0);
-
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
-
- /**
- * Enqueue an <ACE_Message_Block *> in accordance with its priority.
- * priority may be *dynamic* or *static* or a combination or *both*
- * It calls the priority evaluation function passed into the Dynamic
- * Message Queue constructor to update the priorities of all
- * enqueued messages.
- */
- virtual int enqueue_i (ACE_Message_Block *new_item);
-
- /// Enqueue a message in priority order within a given priority status sublist
- virtual int sublist_enqueue_i (ACE_Message_Block *new_item,
- const ACE_Time_Value &current_time,
- ACE_Message_Block *&sublist_head,
- ACE_Message_Block *&sublist_tail,
- ACE_Dynamic_Message_Strategy::Priority_Status status);
-
- /**
- * Dequeue and return the <ACE_Message_Block *> at the head of the
- * logical queue. Attempts first to dequeue from the pending
- * portion of the queue, or if that is empty from the late portion,
- * or if that is empty from the beyond late portion, or if that is
- * empty just sets the passed pointer to zero and returns -1.
- */
- virtual int dequeue_head_i (ACE_Message_Block *&first_item);
-
- /// Refresh the queue using the strategy
- /// specific priority status function.
- virtual int refresh_queue (const ACE_Time_Value & current_time);
-
- /// Refresh the pending queue using the strategy
- /// specific priority status function.
- virtual int refresh_pending_queue (const ACE_Time_Value & current_time);
-
- /// Refresh the late queue using the strategy
- /// specific priority status function.
- virtual int refresh_late_queue (const ACE_Time_Value & current_time);
-
- /// Pointer to head of the pending messages
- ACE_Message_Block *pending_head_;
-
- /// Pointer to tail of the pending messages
- ACE_Message_Block *pending_tail_;
-
- /// Pointer to head of the late messages
- ACE_Message_Block *late_head_;
-
- /// Pointer to tail of the late messages
- ACE_Message_Block *late_tail_;
-
- /// Pointer to head of the beyond late messages
- ACE_Message_Block *beyond_late_head_;
-
- /// Pointer to tail of the beyond late messages
- ACE_Message_Block *beyond_late_tail_;
-
- /// Pointer to a dynamic priority evaluation function.
- ACE_Dynamic_Message_Strategy &message_strategy_;
-
-private:
- // = Disallow public access to these operations.
-
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Dynamic_Message_Queue (const ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> &))
-
- // provide definitions for these (just call base class method),
- // but make them private so they're not accessible outside the class
-
- /// Private method to hide public base class method: just calls base class method
- virtual int peek_dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout = 0);
-
-};
-
-/**
- * @class ACE_Message_Queue_Factory
- *
- * @brief ACE_Message_Queue_Factory is a static factory class template which
- * provides a separate factory method for each of the major kinds of
- * priority based message dispatching: static, earliest deadline first
- * (EDF), and minimum laxity first (MLF).
- *
- * The ACE_Dynamic_Message_Queue class assumes responsibility for
- * releasing the resources of the strategy with which it was
- * constructed: the user of a message queue constructed by
- * any of these factory methods is only responsible for
- * ensuring destruction of the message queue itself.
- */
-template <ACE_SYNCH_DECL>
-class ACE_Message_Queue_Factory
-{
-public:
- /// Factory method for a statically prioritized ACE_Message_Queue
- static ACE_Message_Queue<ACE_SYNCH_USE> *
- create_static_message_queue (size_t hwm = ACE_Message_Queue_Base::DEFAULT_HWM,
- size_t lwm = ACE_Message_Queue_Base::DEFAULT_LWM,
- ACE_Notification_Strategy * = 0);
-
- /// Factory method for a dynamically prioritized (by time to deadline) ACE_Dynamic_Message_Queue
- static ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> *
- create_deadline_message_queue (size_t hwm = ACE_Message_Queue_Base::DEFAULT_HWM,
- size_t lwm = ACE_Message_Queue_Base::DEFAULT_LWM,
- ACE_Notification_Strategy * = 0,
- u_long static_bit_field_mask = 0x3FFUL, // 2^(10) - 1
- u_long static_bit_field_shift = 10, // 10 low order bits
- u_long dynamic_priority_max = 0x3FFFFFUL, // 2^(22)-1
- u_long dynamic_priority_offset = 0x200000UL); // 2^(22-1)
-
- /// Factory method for a dynamically prioritized (by laxity) ACE_Dynamic_Message_Queue
- static ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> *
- create_laxity_message_queue (size_t hwm = ACE_Message_Queue_Base::DEFAULT_HWM,
- size_t lwm = ACE_Message_Queue_Base::DEFAULT_LWM,
- ACE_Notification_Strategy * = 0,
- u_long static_bit_field_mask = 0x3FFUL, // 2^(10) - 1
- u_long static_bit_field_shift = 10, // 10 low order bits
- u_long dynamic_priority_max = 0x3FFFFFUL, // 2^(22)-1
- u_long dynamic_priority_offset = 0x200000UL); // 2^(22-1)
-
-
-#if defined (VXWORKS)
-
- /// Factory method for a wrapped VxWorks message queue
- static ACE_Message_Queue_Vx *
- create_Vx_message_queue (size_t max_messages, size_t max_message_length,
- ACE_Notification_Strategy *ns = 0);
-
-#endif /* defined (VXWORKS) */
-
-#if defined (ACE_WIN32) && (ACE_HAS_WINNT4 != 0)
-
- /// Factory method for a NT message queue.
- static ACE_Message_Queue_NT *
- create_NT_message_queue (size_t max_threads);
-
-#endif /* ACE_WIN32 && ACE_HAS_WINNT4 != 0 */
-};
-
-/**
- * @class ACE_Message_Queue_Ex
- *
- * @brief A threaded message queueing facility, modeled after the
- * queueing facilities in System V STREAMs.
- *
- * An <ACE_Message_Queue_Ex> is a strongly-typed version of the
- * <ACE_Message_Queue>. If
- * <ACE_SYNCH_DECL> is <ACE_MT_SYNCH> then all operations are
- * thread-safe. Otherwise, if it's <ACE_NULL_SYNCH> then there's no
- * locking overhead.
- */
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL>
-class ACE_Message_Queue_Ex
-{
-public:
-
- // = Default priority value.
- enum
- {
- DEFAULT_PRIORITY = 0
- };
-
-#if 0
- // @@ Iterators are not implemented yet...
-
- friend class ACE_Message_Queue_Iterator<ACE_SYNCH_USE>;
- friend class ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>;
-
- // = Traits
- typedef ACE_Message_Queue_Iterator<ACE_SYNCH_USE>
- ITERATOR;
- typedef ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>
- REVERSE_ITERATOR;
-#endif /* 0 */
-
- // = Initialization and termination methods.
-
- /**
- * Initialize an <ACE_Message_Queue>. The <high_water_mark>
- * determines how many bytes can be stored in a queue before it's
- * considered "full." Supplier threads must block until the queue
- * is no longer full. The <low_water_mark> determines how many
- * bytes must be in the queue before supplier threads are allowed to
- * enqueue additional <ACE_Message_Block>s. By default, the
- * <high_water_mark> equals the <low_water_mark>, which means that
- * suppliers will be able to enqueue new messages as soon as a
- * consumer removes any message from the queue. Making the
- * <low_water_mark> smaller than the <high_water_mark> forces
- * consumers to drain more messages from the queue before suppliers
- * can enqueue new messages, which can minimize the "silly window
- * syndrome."
- */
- ACE_Message_Queue_Ex (size_t high_water_mark = ACE_Message_Queue_Base::DEFAULT_HWM,
- size_t low_water_mark = ACE_Message_Queue_Base::DEFAULT_LWM,
- ACE_Notification_Strategy * = 0);
-
- /**
- * Initialize an <ACE_Message_Queue>. The <high_water_mark>
- * determines how many bytes can be stored in a queue before it's
- * considered "full." Supplier threads must block until the queue
- * is no longer full. The <low_water_mark> determines how many
- * bytes must be in the queue before supplier threads are allowed to
- * enqueue additional <ACE_Message_Block>s. By default, the
- * <high_water_mark> equals the <low_water_mark>, which means that
- * suppliers will be able to enqueue new messages as soon as a
- * consumer removes any message from the queue. Making the
- * <low_water_mark> smaller than the <high_water_mark> forces
- * consumers to drain more messages from the queue before suppliers
- * can enqueue new messages, which can minimize the "silly window
- * syndrome."
- */
- virtual int open (size_t hwm = ACE_Message_Queue_Base::DEFAULT_HWM,
- size_t lwm = ACE_Message_Queue_Base::DEFAULT_LWM,
- ACE_Notification_Strategy * = 0);
-
- /// Close down the message queue and release all resources.
- virtual int close (void);
-
- /// Close down the message queue and release all resources.
- virtual ~ACE_Message_Queue_Ex (void);
-
- /// Release all resources from the message queue but do not mark it as deactivated.
- /// This method holds the queue lock during this operation. Returns the number of
- /// messages flushed.
- virtual int flush (void);
-
- /// Release all resources from the message queue but do not mark it as deactivated.
- /// This method does not hold the queue lock during this operation, i.e., it assume
- /// the lock is held externally. Returns the number of messages flushed.
- virtual int flush_i (void);
-
- // = Enqueue and dequeue methods.
-
- // For the following enqueue and dequeue methods if <timeout> == 0,
- // the caller will block until action is possible, else will wait
- // until the absolute time specified in *<timeout> elapses). These
- // calls will return, however, when queue is closed, deactivated,
- // when a signal occurs, or if the time specified in timeout
- // elapses, (in which case errno = EWOULDBLOCK).
-
- /**
- * Retrieve the first <ACE_MESSAGE_TYPE> without removing it. Note
- * that <timeout> uses <{absolute}> time rather than <{relative}>
- * time. If the <timeout> elapses without receiving a message -1 is
- * returned and <errno> is set to <EWOULDBLOCK>. If the queue is
- * deactivated -1 is returned and <errno> is set to <ESHUTDOWN>.
- * Otherwise, returns -1 on failure, else the number of items still
- * on the queue.
- */
- virtual int peek_dequeue_head (ACE_MESSAGE_TYPE *&first_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Enqueue an <ACE_MESSAGE_TYPE *> into the <Message_Queue> in
- * accordance with its <msg_priority> (0 is lowest priority). FIFO
- * order is maintained when messages of the same priority are
- * inserted consecutively. Note that <timeout> uses <{absolute}>
- * time rather than <{relative}> time. If the <timeout> elapses
- * without receiving a message -1 is returned and <errno> is set to
- * <EWOULDBLOCK>. If the queue is deactivated -1 is returned and
- * <errno> is set to <ESHUTDOWN>. Otherwise, returns -1 on failure,
- * else the number of items still on the queue.
- */
- virtual int enqueue_prio (ACE_MESSAGE_TYPE *new_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Enqueue an <ACE_MESSAGE_TYPE *> into the <Message_Queue> in
- * accordance with its <msg_deadline_time>. FIFO
- * order is maintained when messages of the same deadline time are
- * inserted consecutively. Note that <timeout> uses <{absolute}>
- * time rather than <{relative}> time. If the <timeout> elapses
- * without receiving a message -1 is returned and <errno> is set to
- * <EWOULDBLOCK>. If the queue is deactivated -1 is returned and
- * <errno> is set to <ESHUTDOWN>. Otherwise, returns -1 on failure,
- * else the number of items still on the queue.
- */
- virtual int enqueue_deadline (ACE_MESSAGE_TYPE *new_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * This is an alias for <enqueue_prio>. It's only here for
- * backwards compatibility and will go away in a subsequent release.
- * Please use <enqueue_prio> instead. Note that <timeout> uses
- * <{absolute}> time rather than <{relative}> time.
- */
- virtual int enqueue (ACE_MESSAGE_TYPE *new_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Enqueue an <ACE_MESSAGE_TYPE *> at the end of the queue. Note
- * that <timeout> uses <{absolute}> time rather than <{relative}>
- * time. If the <timeout> elapses without receiving a message -1 is
- * returned and <errno> is set to <EWOULDBLOCK>. If the queue is
- * deactivated -1 is returned and <errno> is set to <ESHUTDOWN>.
- * Otherwise, returns -1 on failure, else the number of items still
- * on the queue.
- */
- virtual int enqueue_tail (ACE_MESSAGE_TYPE *new_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Enqueue an <ACE_MESSAGE_TYPE *> at the head of the queue. Note
- * that <timeout> uses <{absolute}> time rather than <{relative}>
- * time. If the <timeout> elapses without receiving a message -1 is
- * returned and <errno> is set to <EWOULDBLOCK>. If the queue is
- * deactivated -1 is returned and <errno> is set to <ESHUTDOWN>.
- * Otherwise, returns -1 on failure, else the number of items still
- * on the queue.
- */
- virtual int enqueue_head (ACE_MESSAGE_TYPE *new_item,
- ACE_Time_Value *timeout = 0);
-
- /// This method is an alias for the following <dequeue_head> method.
- virtual int dequeue (ACE_MESSAGE_TYPE *&first_item,
- ACE_Time_Value *timeout = 0);
- // This method is an alias for the following <dequeue_head> method.
-
- /**
- * Dequeue and return the <ACE_MESSAGE_TYPE *> at the head of the
- * queue. Note that <timeout> uses <{absolute}> time rather than
- * <{relative}> time. If the <timeout> elapses without receiving a
- * message -1 is returned and <errno> is set to <EWOULDBLOCK>. If
- * the queue is deactivated -1 is returned and <errno> is set to
- * <ESHUTDOWN>. Otherwise, returns -1 on failure, else the number
- * of items still on the queue.
- */
- virtual int dequeue_head (ACE_MESSAGE_TYPE *&first_item,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Dequeue and return the <ACE_MESSAGE_TYPE *> that has the lowest
- * priority. Note that <timeout> uses <{absolute}> time rather than
- * <{relative}> time. If the <timeout> elapses without receiving a
- * message -1 is returned and <errno> is set to <EWOULDBLOCK>. If
- * the queue is deactivated -1 is returned and <errno> is set to
- * <ESHUTDOWN>. Otherwise, returns -1 on failure, else the number
- * of items still on the queue.
- */
- virtual int dequeue_prio (ACE_MESSAGE_TYPE *&dequeued,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Dequeue and return the <ACE_MESSAGE_TYPE *> at the tail of the
- * queue. Note that <timeout> uses <{absolute}> time rather than
- * <{relative}> time. If the <timeout> elapses without receiving a
- * message -1 is returned and <errno> is set to <EWOULDBLOCK>. If
- * the queue is deactivated -1 is returned and <errno> is set to
- * <ESHUTDOWN>. Otherwise, returns -1 on failure, else the number
- * of items still on the queue.
- */
- virtual int dequeue_tail (ACE_MESSAGE_TYPE *&dequeued,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Dequeue and return the <ACE_MESSAGE_TYPE *> with the lowest
- * deadline time. Note that <timeout> uses <{absolute}> time rather than
- * <{relative}> time. If the <timeout> elapses without receiving a
- * message -1 is returned and <errno> is set to <EWOULDBLOCK>. If
- * the queue is deactivated -1 is returned and <errno> is set to
- * <ESHUTDOWN>. Otherwise, returns -1 on failure, else the number
- * of items still on the queue.
- */
- virtual int dequeue_deadline (ACE_MESSAGE_TYPE *&dequeued,
- ACE_Time_Value *timeout = 0);
-
- // = Check if queue is full/empty.
- /// True if queue is full, else false.
- virtual int is_full (void);
- /// True if queue is empty, else false.
- virtual int is_empty (void);
-
-
- // = Queue statistic methods.
- /**
- * Number of total bytes on the queue, i.e., sum of the message
- * block sizes.
- */
- virtual size_t message_bytes (void);
- /**
- * Number of total length on the queue, i.e., sum of the message
- * block lengths.
- */
- virtual size_t message_length (void);
- /**
- * Number of total messages on the queue.
- */
- virtual int message_count (void);
-
- // = Manual changes to these stats (used when queued message blocks
- // change size or lengths).
- /**
- * New value of the number of total bytes on the queue, i.e., sum of
- * the message block sizes.
- */
- virtual void message_bytes (size_t new_size);
- /**
- * New value of the number of total length on the queue, i.e., sum
- * of the message block lengths.
- */
- virtual void message_length (size_t new_length);
-
- // = Flow control methods.
- /**
- * Get high watermark.
- */
- virtual size_t high_water_mark (void);
- /**
- * Set the high watermark, which determines how many bytes can be
- * stored in a queue before it's considered "full."
- */
- virtual void high_water_mark (size_t hwm);
-
- /**
- * Get low watermark.
- */
- virtual size_t low_water_mark (void);
- /**
- * Set the low watermark, which determines how many bytes must be in
- * the queue before supplier threads are allowed to enqueue
- * additional <ACE_MESSAGE_TYPE>s.
- */
- virtual void low_water_mark (size_t lwm);
-
- // = Activation control methods.
-
- /**
- * Deactivate the queue and wakeup all threads waiting on the queue
- * so they can continue. No messages are removed from the queue,
- * however. Any other operations called until the queue is
- * activated again will immediately return -1 with <errno> ==
- * ESHUTDOWN. Returns WAS_INACTIVE if queue was inactive before the
- * call and WAS_ACTIVE if queue was active before the call.
- */
- virtual int deactivate (void);
-
- /**
- * Reactivate the queue so that threads can enqueue and dequeue
- * messages again. Returns the state of the queue before the call.
- */
- virtual int activate (void);
-
- /**
- * Pulse the queue to wake up any waiting threads. Changes the
- * queue state to PULSED; future enqueue/dequeue operations proceed
- * as in ACTIVATED state.
- *
- * @retval The queue's state before this call.
- */
- virtual int pulse (void);
-
- /// Returns the current state of the queue, which can be one of
- /// ACTIVATED, DEACTIVATED, or PULSED.
- virtual int state (void);
-
- /// Returns true if the state of the queue is DEACTIVATED,
- /// but false if the queue's state is ACTIVATED or PULSED.
- virtual int deactivated (void);
-
- // = Notification hook.
-
- /**
- * This hook is automatically invoked by <enqueue_head>,
- * <enqueue_tail>, and <enqueue_prio> when a new item is inserted
- * into the queue. Subclasses can override this method to perform
- * specific notification strategies (e.g., signaling events for a
- * <WFMO_Reactor>, notifying a <Reactor>, etc.). In a
- * multi-threaded application with concurrent consumers, there is no
- * guarantee that the queue will be still be non-empty by the time
- * the notification occurs.
- */
- virtual int notify (void);
-
- /// Get the notification strategy for the <Message_Queue>
- virtual ACE_Notification_Strategy *notification_strategy (void);
-
- /// Set the notification strategy for the <Message_Queue>
- virtual void notification_strategy (ACE_Notification_Strategy *s);
-
- /// Returns a reference to the lock used by the <ACE_Message_Queue_Ex>.
- virtual ACE_SYNCH_MUTEX_T &lock (void)
- {
- // The Sun Forte 6 (CC 5.1) compiler is only happy if this is in the
- // header file (j.russell.noseworthy@objectsciences.com)
- return this->queue_.lock ();
- }
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Implement this via an <ACE_Message_Queue>.
- ACE_Message_Queue<ACE_SYNCH_USE> queue_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Message_Queue_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Message_Queue_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Message_Queue_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_MESSAGE_QUEUE_T_H */
diff --git a/ace/Message_Queue_T.i b/ace/Message_Queue_T.i
deleted file mode 100644
index 3cd1e3cd719..00000000000
--- a/ace/Message_Queue_T.i
+++ /dev/null
@@ -1,336 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue<ACE_SYNCH_USE>::dequeue (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue");
- return this->dequeue_head (first_item, timeout);
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE ACE_Notification_Strategy *
-ACE_Message_Queue<ACE_SYNCH_USE>::notification_strategy (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::notification_strategy");
-
- return this->notification_strategy_;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Message_Queue<ACE_SYNCH_USE>::notification_strategy (ACE_Notification_Strategy *s)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::notification_strategy");
-
- this->notification_strategy_ = s;
-}
-
-// Check if queue is empty (does not hold locks).
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue<ACE_SYNCH_USE>::is_empty_i (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::is_empty_i");
- return this->tail_ == 0;
-}
-
-// Check if queue is full (does not hold locks).
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue<ACE_SYNCH_USE>::is_full_i (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::is_full_i");
- return this->cur_bytes_ > this->high_water_mark_;
-}
-
-// Check if queue is empty (holds locks).
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue<ACE_SYNCH_USE>::is_empty (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::is_empty");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- return this->is_empty_i ();
-}
-
-// Check if queue is full (holds locks).
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue<ACE_SYNCH_USE>::is_full (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::is_full");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- return this->is_full_i ();
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE size_t
-ACE_Message_Queue<ACE_SYNCH_USE>::high_water_mark (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::high_water_mark");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0);
-
- return this->high_water_mark_;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Message_Queue<ACE_SYNCH_USE>::high_water_mark (size_t hwm)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::high_water_mark");
- ACE_GUARD (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_);
-
- this->high_water_mark_ = hwm;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE size_t
-ACE_Message_Queue<ACE_SYNCH_USE>::low_water_mark (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::low_water_mark");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0);
-
- return this->low_water_mark_;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Message_Queue<ACE_SYNCH_USE>::low_water_mark (size_t lwm)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::low_water_mark");
- ACE_GUARD (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_);
-
- this->low_water_mark_ = lwm;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE size_t
-ACE_Message_Queue<ACE_SYNCH_USE>::message_bytes (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::message_bytes");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0);
-
- return this->cur_bytes_;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE size_t
-ACE_Message_Queue<ACE_SYNCH_USE>::message_length (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::message_length");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0);
-
- return this->cur_length_;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue<ACE_SYNCH_USE>::message_count (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::message_count");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0);
-
- return this->cur_count_;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue<ACE_SYNCH_USE>::deactivate ()
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::deactivate");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- return this->deactivate_i (0); // Not a pulse
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue<ACE_SYNCH_USE>::activate (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::activate");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- return this->activate_i ();
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue<ACE_SYNCH_USE>::pulse ()
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::pulse");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- return this->deactivate_i (1); // Just a pulse
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue<ACE_SYNCH_USE>::deactivated (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::deactivated");
-
- return this->state_ == ACE_Message_Queue_Base::DEACTIVATED;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue<ACE_SYNCH_USE>::state (void)
-{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::state");
-
- return this->state_;
-}
-
-#if 0
-// The Sun Forte 6 (CC 5.1) compiler is only happy if this is in the
-// header file (j.russell.noseworthy@objectsciences.com)
-
-template <ACE_SYNCH_DECL> ACE_INLINE ACE_SYNCH_MUTEX_T &
-ACE_Message_Queue<ACE_SYNCH_USE>::lock (void)
-{
- return this->lock_;
-}
-#endif /* 0 */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Message_Queue_Reverse_Iterator)
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue (ACE_MESSAGE_TYPE *&first_item,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue");
-
- return this->dequeue_head (first_item, timeout);
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE ACE_Notification_Strategy *
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::notification_strategy (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::notification_strategy");
-
- return this->queue_.notification_strategy ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::notification_strategy (ACE_Notification_Strategy *s)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::notification_strategy");
-
- this->queue_.notification_strategy (s);
-}
-
-// Check if queue is empty (holds locks).
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::is_empty (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::is_empty");
-
- return this->queue_.is_empty ();
-}
-
-// Check if queue is full (holds locks).
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::is_full (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::is_full");
-
- return this->queue_.is_full ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE size_t
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::high_water_mark (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::high_water_mark");
-
- return this->queue_.high_water_mark ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::high_water_mark (size_t hwm)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::high_water_mark");
-
- this->queue_.high_water_mark (hwm);
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE size_t
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::low_water_mark (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::low_water_mark");
-
- return this->queue_.low_water_mark ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::low_water_mark (size_t lwm)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::low_water_mark");
-
- this->queue_.low_water_mark (lwm);
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE size_t
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_bytes (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_bytes");
-
- return this->queue_.message_bytes ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE size_t
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_length (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_length");
-
- return this->queue_.message_length ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_count (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_count");
-
- return this->queue_.message_count ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::deactivate (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::deactivate");
-
- return this->queue_.deactivate ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::activate (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::activate");
-
- return this->queue_.activate ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::pulse (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::pulse");
-
- return this->queue_.pulse ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::deactivated (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::deactivated");
-
- return this->queue_.deactivated ();
-}
-
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::state (void)
-{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::state");
-
- return this->queue_.state ();
-}
-
-#if 0
-// The Sun Forte 6 (CC 5.1) compiler is only happy if this is in the
-// header file (j.russell.noseworthy@objectsciences.com)
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_INLINE ACE_SYNCH_MUTEX_T &
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::lock (void)
-{
- return this->queue_.lock ();
-}
-#endif /* 0 */
diff --git a/ace/Method_Object.h b/ace/Method_Object.h
deleted file mode 100644
index 51d2896e05e..00000000000
--- a/ace/Method_Object.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Method_Object.h
- *
- * $Id$
- *
- * This file just #includes "ace/Method_Request.h" and is just here
- * for backwards compatibility with earlier versions of ACE.
- * Please don't use it directly since it may go away at some point.
- *
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_METHOD_OBJECT_H
-#define ACE_METHOD_OBJECT_H
-#include "ace/pre.h"
-
-#include "ace/Method_Request.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Maintain backwards compatibility so that Steve Huston doesn't go
-// postal... ;-)
-typedef ACE_Method_Request ACE_Method_Object;
-
-#include "ace/post.h"
-#endif /* ACE_METHOD_OBJECT_H */
diff --git a/ace/Method_Request.cpp b/ace/Method_Request.cpp
deleted file mode 100644
index 3215e1042d2..00000000000
--- a/ace/Method_Request.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-#include "ace/Method_Request.h"
-
-ACE_RCSID (ace,
- Method_Request,
- "$Id$")
-
-ACE_Method_Request::ACE_Method_Request (unsigned long prio)
- : priority_ (prio)
-{
-}
-
-ACE_Method_Request::~ACE_Method_Request (void)
-{
-}
-
-unsigned long
-ACE_Method_Request::priority (void) const
-{
- return this->priority_;
-}
-
-void
-ACE_Method_Request::priority (unsigned long prio)
-{
- this->priority_ = prio;
-}
diff --git a/ace/Method_Request.h b/ace/Method_Request.h
deleted file mode 100644
index 145b468566e..00000000000
--- a/ace/Method_Request.h
+++ /dev/null
@@ -1,93 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Method_Request.h
- *
- * $Id$
- *
- * @author Andres Kruse <Andres.Kruse@cern.ch>
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_METHOD_REQUEST_H
-#define ACE_METHOD_REQUEST_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Global_Macros.h"
-
-/**
- * @class ACE_Method_Request
- *
- * @brief Reifies a method into a request. Subclasses must provide
- * the necessary state and behavior.
- *
- * An ACE_Method_Request is inserted in an ACE_Activation_Queue,
- * where it is subsequently removed by a scheduler object (often
- * derived from ACE_Task), which invokes the @c call() method.
- *
- * This class is discussed in depth in the Active Object chapter
- * of POSA2.
- *
- * @sa ACE_Activation_Queue
- */
-class ACE_Export ACE_Method_Request
-{
-public:
- // = Initialization and termination methods.
- /// Constructor.
- ACE_Method_Request (unsigned long priority = 0);
-
- /// Destructor.
- virtual ~ACE_Method_Request (void);
-
- // = Accessors.
- /// Get priority.
- unsigned long priority (void) const;
-
- /// Set priority.
- /**
- * Priority values are user-defined. The default (set in the constructor)
- * is 0. The priority value is used in the ACE_Activation_Queue::enqueue()
- * method to order the method requests in the queue by priority.
- * 0 is the lowest priority.
- *
- * @param prio unsigned long, the new priority value for this object.
- *
- * @sa ACE_Activation_Queue::enqueue
- */
- void priority (unsigned long prio);
-
- // = Invocation method (must be overridden by subclasses).
- /// Invoked by the scheduler to execute the request.
- /**
- * This method must be implemented by the subclass to perform the
- * desired actions.
- *
- * @return int; not interpreted by ACE. The scheduler class must
- * decide the meaning of this return value and act on it
- * if needed.
- */
- virtual int call (void) = 0;
-
-protected:
- /// The priority of the request.
- unsigned long priority_;
-
-private:
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Method_Request &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Method_Request (const ACE_Method_Request &))
-};
-
-
-#include "ace/post.h"
-#endif /* ACE_METHOD_REQUEST_H */
diff --git a/ace/Min_Max.h b/ace/Min_Max.h
deleted file mode 100644
index b0ab16af6ed..00000000000
--- a/ace/Min_Max.h
+++ /dev/null
@@ -1,75 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Min_Max.h
- *
- * $Id$
- *
- * Define an appropriate set of min()/max() functions using templates.
- *
- *
- * @author Derek Dominish <Derek.Dominish@Australia.Boeing.com>
- */
-//=============================================================================
-
-#ifndef ACE_MIN_MAX_H
-#define ACE_MIN_MAX_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-# if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-# endif /* ACE_LACKS_PRAGMA_ONCE */
-
-# if !defined (ACE_LACKS_MIN_MAX_TEMPLATES)
-template <class T>
-inline const T &
-ace_min (const T &t1, const T &t2)
-{
- return t2 > t1 ? t1 : t2;
-}
-
-template <class T>
-inline const T &
-ace_max (const T &t1, const T &t2)
-{
- return t1 > t2 ? t1 : t2;
-}
-
-template <class T>
-inline const T &
-ace_min (const T &t1, const T &t2, const T &t3)
-{
- return ace_min (ace_min (t1, t2), t3);
-}
-
-template <class T>
-inline const T &
-ace_max (const T &t1, const T &t2, const T &t3)
-{
- return ace_max (ace_max (t1, t2), t3);
-}
-
-template <class T>
-inline const T &
-ace_range (const T &min, const T &max, const T &val)
-{
- return ace_min (ace_max (min, val), max);
-}
-# else
-// These macros should only be used if a C++ compiler can't grok the
-// inline templates
-# define ace_min(a,b) (((b) > (a)) ? (a) : (b))
-# define ace_max(a,b) (((a) > (b)) ? (a) : (b))
-# define ace_range(a,b,c) (ace_min(ace_max((a), (c)), (b))
-
-# endif /* ACE_LACKS_MIN_MAX_TEMPLATES */
-
-# define ACE_MIN(a,b) ace_min((a),(b))
-# define ACE_MAX(a,b) ace_max((a),(b))
-# define ACE_RANGE(a,b,c) ace_range((a),(b),(c))
-
-#include "ace/post.h"
-#endif /* ACE_MIN_MAX_H */
diff --git a/ace/Module.cpp b/ace/Module.cpp
deleted file mode 100644
index dec2486f12a..00000000000
--- a/ace/Module.cpp
+++ /dev/null
@@ -1,269 +0,0 @@
-// Module.cpp
-// $Id$
-
-#ifndef ACE_MODULE_C
-#define ACE_MODULE_C
-
-#include "ace/Module.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Stream_Modules.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Module.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Module, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Module)
-
-template <ACE_SYNCH_DECL> void
-ACE_Module<ACE_SYNCH_USE>::dump (void) const
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::dump");
-}
-
-template <ACE_SYNCH_DECL> void
-ACE_Module<ACE_SYNCH_USE>::writer (ACE_Task<ACE_SYNCH_USE> *q,
- int flags /* = M_DELETE_WRITER */)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::writer");
-
- // Close and maybe delete old writer
- this->close_i (1, flags);
-
- this->q_pair_[1] = q;
-
- if (q != 0)
- {
- ACE_CLR_BITS (q->flags_, ACE_Task_Flags::ACE_READER);
- // Set the q's module pointer to point to us.
- q->mod_ = this;
- }
-
- // Don't allow the caller to change the reader status.
- ACE_SET_BITS (flags_, (flags & M_DELETE_WRITER));
-}
-
-template <ACE_SYNCH_DECL> void
-ACE_Module<ACE_SYNCH_USE>::reader (ACE_Task<ACE_SYNCH_USE> *q,
- int flags /* = M_DELETE_READER */)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::reader");
-
- // Close and maybe delete old writer
- this->close_i (0, flags);
-
- this->q_pair_[0] = q;
-
- if (q != 0)
- {
- ACE_SET_BITS (q->flags_, ACE_Task_Flags::ACE_READER);
- // Set the q's module pointer to point to us.
- q->mod_ = this;
- }
-
- // don't allow the caller to change the reader status
- ACE_SET_BITS (flags_, (flags & M_DELETE_READER));
-}
-
-// Link this ACE_Module on top of ACE_Module M.
-
-template <ACE_SYNCH_DECL> void
-ACE_Module<ACE_SYNCH_USE>::link (ACE_Module<ACE_SYNCH_USE> *m)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::link");
- this->next (m);
- this->writer ()->next (m->writer ());
- m->reader ()->next (this->reader ());
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Module<ACE_SYNCH_USE>::open (const ACE_TCHAR *mod_name,
- ACE_Task<ACE_SYNCH_USE> *writer_q,
- ACE_Task<ACE_SYNCH_USE> *reader_q,
- void *arg,
- int flags /* = M_DELETE */)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::open");
- this->name (mod_name);
- this->arg_ = arg;
-
- // We may already have readers and/or writers.
- if (this->reader ())
- this->close_i (0, M_DELETE_READER);
-
- if (this->writer ())
- this->close_i (1, M_DELETE_WRITER);
-
- if (writer_q == 0)
- {
- ACE_NEW_RETURN (writer_q,
- ACE_Thru_Task<ACE_SYNCH_USE>,
- -1);
- ACE_SET_BITS (flags, M_DELETE_WRITER);
- }
-
- if (reader_q == 0)
- {
- ACE_NEW_RETURN (reader_q,
- ACE_Thru_Task<ACE_SYNCH_USE>,
- -1);
- ACE_SET_BITS (flags, M_DELETE_READER);
- }
-
- this->reader (reader_q);
- this->writer (writer_q);
-
- // Save the flags
- this->flags_ = flags;
-
- // Make sure that the memory is allocated before proceding.
- if (writer_q == 0 || reader_q == 0)
- {
- // These calls will delete writer_q and/or reader_q, if
- // necessary.
- this->close_i (0, M_DELETE_READER);
- this->close_i (1, M_DELETE_WRITER);
-
- errno = ENOMEM;
- return -1;
- }
-
- // Setup back pointers (this must come last, after we've made sure
- // there's memory allocated here.
- reader_q->mod_ = this;
- writer_q->mod_ = this;
-
- return 0;
-}
-
-// Set and get pointer to sibling ACE_Task in ACE_Module.
-
-template <ACE_SYNCH_DECL> ACE_Task<ACE_SYNCH_USE> *
-ACE_Module<ACE_SYNCH_USE>::sibling (ACE_Task<ACE_SYNCH_USE> *orig)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::sibling");
- if (this->q_pair_[0] == orig)
- return this->q_pair_[1];
- else if (this->q_pair_[1] == orig)
- return this->q_pair_[0];
- else
- return 0;
-}
-
-template <ACE_SYNCH_DECL>
-ACE_Module<ACE_SYNCH_USE>::ACE_Module (void)
- : flags_ (0)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::ACE_Module");
- this->name (ACE_LIB_TEXT ("<unknown>"));
- // Do nothing...
- this->q_pair_[0] = 0;
- this->q_pair_[1] = 0;
-}
-
-template <ACE_SYNCH_DECL>
-ACE_Module<ACE_SYNCH_USE>::~ACE_Module (void)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::~ACE_Module");
-
- // Only close down if we haven't already done so.
- if (this->reader () || this->writer ())
- this->close ();
-}
-
-template <ACE_SYNCH_DECL>
-ACE_Module<ACE_SYNCH_USE>::ACE_Module (const ACE_TCHAR *mod_name,
- ACE_Task<ACE_SYNCH_USE> *writer_q,
- ACE_Task<ACE_SYNCH_USE> *reader_q,
- void *args,
- int flags /* = M_DELETE */)
- : flags_ (0)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::ACE_Module");
-
- this->q_pair_[0] = 0;
- this->q_pair_[1] = 0;
-
- if (this->open (mod_name, writer_q, reader_q, args, flags) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Module")));
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Module<ACE_SYNCH_USE>::close (int flags /* = M_DELETE_NONE */)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::close");
-
- int result = 0;
-
- // Only pay attention to the flags parameter if we haven't already
- // set the task delete policies.
- if (this->flags_ == 0)
- ACE_SET_BITS (flags_, flags);
-
- if (this->close_i (0, flags_) == -1)
- result = -1;
-
- if (this->close_i (1, flags_) == -1)
- result = -1;
-
- return result;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Module<ACE_SYNCH_USE>::close_i (int which,
- int flags)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::close_i");
-
- if (this->q_pair_[which] == 0)
- return 0;
-
- // Copy task pointer to prevent problems when ACE_Task::close
- // changes the task pointer
- ACE_Task<ACE_SYNCH_USE> *task = this->q_pair_[which];
-
- // Change so that close doesn't get called again from the task base.
-
- // Now close the task.
- int result = 0;
-
- if (task->module_closed () == -1)
- result = -1;
-
- task->flush ();
- task->next (0);
-
- // Should we also delete it ?
- if (flags != M_DELETE_NONE
- && ACE_BIT_ENABLED (flags_, which + 1))
- {
- // Only delete the Tasks if there aren't any more threads
- // running in them.
- task->wait ();
-
- // If this assert happens it is likely because the task was
- // activated with the THR_DETACHED flag, which means that we
- // can't join() with the thread. Not using THR_DETACHED should
- // solve this problem.
- ACE_ASSERT (task->thr_count () == 0);
-
- delete task;
- }
-
- // Set the tasks pointer to 0 so that we don't try to close()
- // this object again if the destructor gets called.
- this->q_pair_[which] = 0;
-
- // Finally remove the delete bit.
- ACE_CLR_BITS (flags_, which + 1);
-
- return result;
-}
-#endif /* ACE_MODULE_C */
diff --git a/ace/Module.h b/ace/Module.h
deleted file mode 100644
index 092f0f915e7..00000000000
--- a/ace/Module.h
+++ /dev/null
@@ -1,209 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Module.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_MODULE_H
-#define ACE_MODULE_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Task_T.h"
-
-/**
- * @class ACE_Module_Base
- *
- * @brief Workaround HP/C++ compiler bug with enums in templates.
- *
- * Certain C++ compilers, e.g., the HP/UX 10.x and 9.x compilers,
- * seem to fail if enums are defined inside a template, hence we
- * have to move them into a base class.
- */
-class ACE_Export ACE_Module_Base
-{
-public:
- enum
- {
- /// Indicates that <close> should not delete any Tasks.
- M_DELETE_NONE = 0,
-
- /// Indicates that <close> should delete the writer Task.
- M_DELETE_READER = 1,
-
- /// Indicates that <close> should delete the reader Task.
- M_DELETE_WRITER = 2,
-
- /// Indicates that <close> deletes the Tasks.
- /**
- * Don't change this value without updating the same enum in class
- * ACE_Stream...
- * The <M_DELETE_READER> and <M_DELETE_WRITER> flags may be or'ed
- * together.
- */
- M_DELETE = 3
- };
-};
-
-/**
- * @class ACE_Module
- *
- * @brief An abstraction for managing a bi-directional flow of messages.
- *
- * This is based on the Module concept in System V Streams,
- * which contains a pair of Tasks, one for handling upstream
- * processing, one for handling downstream processing. In
- * general, you shouldn't subclass from this class, but instead
- * subclass from the <ACE_Task>.
- */
-template <ACE_SYNCH_DECL>
-class ACE_Module : public ACE_Module_Base
-{
-public:
- friend class ACE_Shutup_GPlusPlus; // Turn off g++ warning
-
- // = Initialization and termination methods.
- /// Create an empty Module.
- ACE_Module (void);
-
- /// Shutdown the Module.
- ~ACE_Module (void);
-
- /// Create an initialized module with @a module_name as its identity
- /// and @a reader and @a writer as its tasks.
- ACE_Module (const ACE_TCHAR *module_name,
- ACE_Task<ACE_SYNCH_USE> *writer = 0,
- ACE_Task<ACE_SYNCH_USE> *reader = 0,
- void *args = 0,
- int flags = M_DELETE);
-
- /**
- * Create an initialized module with <module_name> as its identity
- * and <reader> and <writer> as its tasks. Previously register
- * reader or writers or closed down and deleted according to the
- * value of flags_. Should not be called from within
- * <ACE_Task::module_closed>.
- */
- int open (const ACE_TCHAR *module_name,
- ACE_Task<ACE_SYNCH_USE> *writer = 0,
- ACE_Task<ACE_SYNCH_USE> *reader = 0,
- void *a = 0,
- int flags = M_DELETE);
-
- /**
- * Close down the Module and its Tasks. The flags argument can be
- * used to override the default behaviour, which depends on previous
- * <flags> values in calls to c'tor, <open>, <reader>, and <writer>.
- * A previous value M_DELETE[_XXX] can not be overridden. Should
- * not be called from within <ACE_Task::module_closed>.
- */
- int close (int flags = M_DELETE_NONE);
-
- // = ACE_Task manipulation routines
- /// Get the writer task.
- ACE_Task<ACE_SYNCH_USE> *writer (void);
-
- /**
- * Set the writer task. <flags> can be used to indicate that the
- * module should delete the writer during a call to close or to the
- * destructor. If a previous writer exists, it is closed. It may
- * also be deleted, depending on the old flags_ value. Should not
- * be called from within <ACE_Task::module_closed>.
- */
- void writer (ACE_Task<ACE_SYNCH_USE> *q, int flags = M_DELETE_WRITER);
-
- /// Get the reader task.
- ACE_Task<ACE_SYNCH_USE> *reader (void);
-
- /**
- * Set the reader task. <flags> can be used to indicate that the
- * module should delete the reader during a call to close or to the
- * destructor. If a previous reader exists, it is closed. It may
- * also be deleted, depending on the old flags_ value. Should not
- * be called from within <ACE_Task::module_closed>.
- */
- void reader (ACE_Task<ACE_SYNCH_USE> *q, int flags = M_DELETE_READER);
-
- /// Set and get pointer to sibling ACE_Task in an ACE_Module
- ACE_Task<ACE_SYNCH_USE> *sibling (ACE_Task<ACE_SYNCH_USE> *orig);
-
- // = Identify the module
- /// Get the module name.
- const ACE_TCHAR *name (void) const;
-
- /// Set the module name.
- void name (const ACE_TCHAR *);
-
- // = Argument to the Tasks.
- /// Get the argument passed to the tasks.
- void *arg (void) const;
-
- /// Set the argument passed to the tasks.
- void arg (void *);
-
- /// Link to other modules in the ustream stack
- void link (ACE_Module<ACE_SYNCH_USE> *m);
-
- /// Get the next pointer to the module above in the stream.
- ACE_Module<ACE_SYNCH_USE> *next (void);
-
- /// Set the next pointer to the module above in the stream.
- void next (ACE_Module<ACE_SYNCH_USE> *m);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Implements the close operation for either the reader or the
- /// writer task (depending on <which>).
- int close_i (int which, int flags);
-
- /// Pair of Tasks that form the "read-side" and "write-side" of the
- /// ACE_Module partitioning.
- ACE_Task<ACE_SYNCH_USE> *q_pair_[2];
-
- /// Name of the ACE_Module.
- ACE_TCHAR name_[MAXNAMLEN + 1];
-
- /// Next ACE_Module in the stack.
- ACE_Module<ACE_SYNCH_USE> *next_;
-
- /// Argument passed through to the reader and writer task when they
- /// are opened.
- void *arg_;
-
- /// Holds flags which are used to determine if the reader and writer
- /// task have to be deleted on exit
- int flags_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Module.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Module.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Module.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_MODULE_H */
diff --git a/ace/Module.i b/ace/Module.i
deleted file mode 100644
index f0ecad5881c..00000000000
--- a/ace/Module.i
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Module.i
-
-template <ACE_SYNCH_DECL> ACE_INLINE void *
-ACE_Module<ACE_SYNCH_USE>::arg (void) const
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::arg");
- return this->arg_;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Module<ACE_SYNCH_USE>::arg (void *a)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::arg");
- this->arg_ = a;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE const ACE_TCHAR *
-ACE_Module<ACE_SYNCH_USE>::name (void) const
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::name");
- return this->name_;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Module<ACE_SYNCH_USE>::name (const ACE_TCHAR *n)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::name");
- ACE_OS::strsncpy (this->name_, n, MAXNAMLEN);
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE ACE_Task<ACE_SYNCH_USE> *
-ACE_Module<ACE_SYNCH_USE>::writer (void)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::writer");
- return this->q_pair_[1];
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE ACE_Task<ACE_SYNCH_USE> *
-ACE_Module<ACE_SYNCH_USE>::reader (void)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::reader");
- return this->q_pair_[0];
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE ACE_Module<ACE_SYNCH_USE> *
-ACE_Module<ACE_SYNCH_USE>::next (void)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::next");
- return this->next_;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Module<ACE_SYNCH_USE>::next (ACE_Module<ACE_SYNCH_USE> *m)
-{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::next");
- this->next_ = m;
-}
-
-
diff --git a/ace/Msg_WFMO_Reactor.cpp b/ace/Msg_WFMO_Reactor.cpp
deleted file mode 100644
index deac06f6226..00000000000
--- a/ace/Msg_WFMO_Reactor.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-// $Id$
-
-#include "ace/Msg_WFMO_Reactor.h"
-
-ACE_RCSID(ace, Msg_WFMO_Reactor, "$Id$")
-
-#if defined (ACE_WIN32) && !defined (ACE_LACKS_MSG_WFMO)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Msg_WFMO_Reactor.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_Msg_WFMO_Reactor::ACE_Msg_WFMO_Reactor (ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq)
- : ACE_WFMO_Reactor (sh, tq)
-{
-}
-
-ACE_Msg_WFMO_Reactor::ACE_Msg_WFMO_Reactor (size_t size,
- int unused,
- ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq)
- : ACE_WFMO_Reactor (size, unused, sh, tq)
-{
-}
-
-ACE_Msg_WFMO_Reactor::~ACE_Msg_WFMO_Reactor (void)
-{
-}
-
-DWORD
-ACE_Msg_WFMO_Reactor::wait_for_multiple_events (int timeout,
- int alertable)
-{
- // Wait for any of handles_ to be active, or until timeout expires.
- // If <alertable> is enabled allow asynchronous completion of
- // ReadFile and WriteFile operations. QS_ALLINPUT allows
- // <MsgWaitForMultipleObjectsEx> to wait for any message is in the
- // queue.
-#if (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
- return ::MsgWaitForMultipleObjectsEx (this->handler_rep_.max_handlep1 (),
- this->handler_rep_.handles (),
- timeout,
- QS_ALLINPUT,
- alertable);
-#else
- ACE_UNUSED_ARG (alertable);
- return ::MsgWaitForMultipleObjects (this->handler_rep_.max_handlep1 (),
- this->handler_rep_.handles (),
- FALSE,
- timeout,
- QS_ALLINPUT);
-#endif /* (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) */
-}
-
-int
-ACE_Msg_WFMO_Reactor::dispatch_window_messages (void)
-{
- int number_of_messages = 0;
- MSG msg;
-
- // Process all pending message from this thread's message queue
- while (::PeekMessage (&msg, 0, 0, 0, PM_REMOVE))
- {
- ::TranslateMessage (&msg);
- if (msg.message == WM_QUIT)
- {
- // Should inform the main thread
- ::PostQuitMessage (msg.wParam);
- return -1;
- }
-
- ::DispatchMessage (&msg);
- number_of_messages++;
- }
-
- return number_of_messages;
-}
-
-DWORD
-ACE_Msg_WFMO_Reactor::poll_remaining_handles (DWORD slot)
-{
- return ::MsgWaitForMultipleObjects (this->handler_rep_.max_handlep1 () - slot,
- this->handler_rep_.handles () + slot,
- FALSE,
- 0,
- QS_ALLINPUT);
-}
-
-#endif /* ACE_WIN32 && !ACE_LACKS_MSG_WFMO */
diff --git a/ace/Msg_WFMO_Reactor.h b/ace/Msg_WFMO_Reactor.h
deleted file mode 100644
index 9f19831998e..00000000000
--- a/ace/Msg_WFMO_Reactor.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Msg_WFMO_Reactor.h
- *
- * $Id$
- *
- * @author Beskrovny Evgeny <evgeny_beskrovny@icomverse.com>
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_MSG_WFMO_REACTOR_H
-#define ACE_MSG_WFMO_REACTOR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_WIN32) && !defined (ACE_LACKS_MSG_WFMO)
-
-#include "ace/WFMO_Reactor.h"
-
-/**
- * @class ACE_Msg_WFMO_Reactor
- *
- * @brief An OO event demultiplexor and event handler dispatcher for
- * Win32 <MsgWaitForMultipleObjects>.
- *
- * The ACE_Msg_WFMO_Reactor is an OO event demultiplexor and
- * event handler Reactor. It differs from <ACE_WFMO_Reactor> by
- * its ability to react on Windows messages. It is needed when
- * the task should serve also as a COM/DCOM server.
- */
-class ACE_Export ACE_Msg_WFMO_Reactor : public ACE_WFMO_Reactor
-{
-public:
- // = Initialization and termination methods.
- /// Initialize <ACE_Msg_WFMO_Reactor> with the default size.
- ACE_Msg_WFMO_Reactor (ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0);
-
- /**
- * Initialize <ACE_Msg_WFMO_Reactor> with size <size>. Two slots will be
- * added to the <size> parameter which will store handles used for
- * internal management purposes.
- */
- ACE_Msg_WFMO_Reactor (size_t size,
- int unused = 0,
- ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0);
-
- /// Close down the ACE_Msg_WFMO_Reactor and release all of its resources.
- virtual ~ACE_Msg_WFMO_Reactor (void);
-
- /**
- * This event loop driver blocks for up to <max_wait_time> before
- * returning. It will return earlier if timer events, I/O events,
- * window events, or signal events occur. Note that <max_wait_time>
- * can be 0, in which case this method blocks indefinitely until
- * events occur.
- *
- * <max_wait_time> is decremented to reflect how much time this call
- * took. For instance, if a time value of 3 seconds is passed to
- * handle_events and an event occurs after 2 seconds,
- * <max_wait_time> will equal 1 second. This can be used if an
- * application wishes to handle events for some fixed amount of
- * time.
- *
- * <MsgWaitForMultipleObjects> is used as the demultiplexing call
- *
- * Returns the total number of <ACE_Event_Handler>s that were
- * dispatched, 0 if the <max_wait_time> elapsed without dispatching
- * any handlers, or -1 if an error occurs.
- *
- * The only difference between <alertable_handle_events> and
- * <handle_events> is that in the alertable case, MWMO_ALERTABLE is
- * passed to <MsgWaitForMultipleObjects> for the <bAlertable>
- * option.
- */
- virtual int handle_events (ACE_Time_Value *max_wait_time = 0);
- virtual int alertable_handle_events (ACE_Time_Value *max_wait_time = 0);
-
- /**
- * This method is just like the one above, except the
- * <max_wait_time> value is a reference and can therefore never be
- * NULL.
- */
- virtual int handle_events (ACE_Time_Value &max_wait_time);
- virtual int alertable_handle_events (ACE_Time_Value &max_wait_time);
-
-protected:
- /// Wait for timer and I/O events to occur.
- virtual DWORD wait_for_multiple_events (int timeout,
- int alertable);
-
- /// Check for activity on remaining handles.
- virtual DWORD poll_remaining_handles (DWORD index);
-
- /// Dispatches window messages.
- virtual int dispatch_window_messages (void);
-};
-
-#endif /* ACE_WIN32 && !ACE_LACKS_MSG_WFMO */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Msg_WFMO_Reactor.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_MSG_WFMO_REACTOR_H */
diff --git a/ace/Msg_WFMO_Reactor.i b/ace/Msg_WFMO_Reactor.i
deleted file mode 100644
index c8d7f25c8d7..00000000000
--- a/ace/Msg_WFMO_Reactor.i
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if defined (ACE_WIN32) && !defined (ACE_LACKS_MSG_WFMO)
-
-ACE_INLINE int
-ACE_Msg_WFMO_Reactor::handle_events (ACE_Time_Value &how_long)
-{
- return this->event_handling (&how_long, 0);
-}
-
-ACE_INLINE int
-ACE_Msg_WFMO_Reactor::alertable_handle_events (ACE_Time_Value &how_long)
-{
- return this->event_handling (&how_long, MWMO_ALERTABLE);
-}
-
-ACE_INLINE int
-ACE_Msg_WFMO_Reactor::handle_events (ACE_Time_Value *how_long)
-{
- return this->event_handling (how_long, 0);
-}
-
-ACE_INLINE int
-ACE_Msg_WFMO_Reactor::alertable_handle_events (ACE_Time_Value *how_long)
-{
- return this->event_handling (how_long, MWMO_ALERTABLE);
-}
-
-#endif /* ACE_WIN32 && !ACE_LACKS_MSG_WFMO */
diff --git a/ace/Multihomed_INET_Addr.cpp b/ace/Multihomed_INET_Addr.cpp
deleted file mode 100644
index e3e13a832f6..00000000000
--- a/ace/Multihomed_INET_Addr.cpp
+++ /dev/null
@@ -1,187 +0,0 @@
-// $Id$
-
-// Extends ACE_INET_Addr with support for multi-homed addresses.
-
-#include /**/ "ace/Multihomed_INET_Addr.h"
-#include /**/ "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include /**/ "ace/Multihomed_INET_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID (ace,
- Multihomed_INET_Addr,
- "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Multihomed_INET_Addr)
-
-// Default constructor
-
-ACE_Multihomed_INET_Addr::ACE_Multihomed_INET_Addr (void)
- : secondaries(0)
-{
- ACE_TRACE ("ACE_Multihomed_INET_Addr::ACE_Multihomed_INET_Addr");
-}
-
-ACE_Multihomed_INET_Addr::ACE_Multihomed_INET_Addr(u_short port_number,
- const char host_name[],
- int encode,
- int address_family,
- const char *(secondary_host_names[]),
- size_t size){
-
- // Initialize the primary INET addr
- ACE_INET_Addr::set(port_number, host_name, encode, address_family);
-
- // check for secondary INET addrs
- if (secondary_host_names && size){
- // we have a non-zero pointer and size
- this->secondaries.size(size); // size the array
-
- size_t next_empty_slot = 0;
- for (size_t i = 0; i < size; ++i) {
- int ret = this->secondaries[next_empty_slot].set(port_number,
- secondary_host_names[i],
- encode,
- address_family);
- if (ret) {
- ACE_DEBUG ((LM_DEBUG,
- "Invalid INET addr (%s:%u) will be ignored\n",
- secondary_host_names[i], port_number));
- this->secondaries.size(this->secondaries.size() - 1);
- }
- else
- ++next_empty_slot;
- }
- }
-
- return;
-}
-
-ACE_Multihomed_INET_Addr::ACE_Multihomed_INET_Addr(u_short port_number,
- ACE_UINT32 primary_ip_addr,
- int encode,
- const ACE_UINT32 *secondary_ip_addrs,
- size_t size){
-
- // Initialize the primary INET addr
- ACE_INET_Addr::set(port_number, primary_ip_addr, encode);
-
- // check for secondary INET addrs
- if (secondary_ip_addrs && size){
- // we have a non-zero pointer and size
- this->secondaries.size(size); // size the array
-
- size_t next_empty_slot = 0;
- for (size_t i = 0; i < size; ++i) {
- int ret = this->secondaries[next_empty_slot].set(port_number,
- secondary_ip_addrs[i],
- encode);
-
- if (ret) {
- ACE_DEBUG ((LM_DEBUG,
- "Invalid INET addr (%u:%u) will be ignored\n",
- secondary_ip_addrs[i], port_number));
- this->secondaries.size(this->secondaries.size() - 1);
- }
- else
- ++next_empty_slot;
- }
- }
-
- return;
-}
-
-// Set implementations (NEED BETTER COMMENT HERE)
-int
-ACE_Multihomed_INET_Addr::set (u_short port_number,
- const char host_name[],
- int encode,
- int address_family,
- const char *(secondary_host_names[]),
- size_t size)
-{
- this->secondaries.size(size);
-
- for (size_t i = 0; i < size; ++i) {
-
- int ret = this->secondaries[i].set(port_number,
- secondary_host_names[i],
- encode,
- address_family);
- if (ret) {
- return ret;
- }
- }
-
- return ACE_INET_Addr::set(port_number, host_name, encode, address_family);
-}
-
-int
-ACE_Multihomed_INET_Addr::set (u_short port_number,
- ACE_UINT32 primary_ip_addr,
- int encode,
- const ACE_UINT32 *secondary_ip_addrs,
- size_t size)
-{
- this->secondaries.size(size);
-
- for (size_t i = 0; i < size; ++i) {
-
- int ret = this->secondaries[i].set(port_number,
- secondary_ip_addrs[i],
- encode);
-
- if (ret) {
- return ret;
- }
- }
-
- return ACE_INET_Addr::set(port_number, primary_ip_addr, encode);
-}
-
-int
-ACE_Multihomed_INET_Addr::get_secondary_addresses(ACE_INET_Addr *secondary_addrs,
- size_t size) const
-{
- size_t top = size < this->secondaries.size() ?
- size : this->secondaries.size();
-
- for (size_t i = 0; i < top; ++i) {
-
- int ret = secondary_addrs[i].set(this->secondaries[i]);
-
- if (ret) {
- return ret;
- }
- }
-
- return 0;
-}
-
-void
-ACE_Multihomed_INET_Addr::get_addresses(sockaddr_in *addrs,
- size_t size) const
-{
- // Copy primary address to the first slot of the user-supplied array
- if (size > 0) {
- addrs[0] = *ACE_reinterpret_cast (sockaddr_in*, this->get_addr());
- }
-
- // Copy secondary addresses to remaining slots of the user-supplied
- // array. Secondary address [i] is copied to slot [i+1]
-
- size_t top = size - 1 < this->secondaries.size() ?
- size - 1 : this->secondaries.size();
-
- for (size_t i = 0; i < top; ++i) {
- addrs[i+1] = *ACE_reinterpret_cast (sockaddr_in*, this->secondaries[i].get_addr());
- }
-}
-
-// Default dtor.
-ACE_Multihomed_INET_Addr::~ACE_Multihomed_INET_Addr (void)
-{
-
-}
-
diff --git a/ace/Multihomed_INET_Addr.h b/ace/Multihomed_INET_Addr.h
deleted file mode 100644
index 32058a96f33..00000000000
--- a/ace/Multihomed_INET_Addr.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Multihomed_INET_Addr.h
- *
- * $Id$
- *
- * @author Edward R. Mulholland <emulholl@atl.lmco.com>
- */
-//=============================================================================
-
-#ifndef ACE_MULTIHOMED_INET_ADDR_H
-#define ACE_MULTIHOMED_INET_ADDR_H
-#include /**/ "ace/pre.h"
-
-#include /**/ "ace/INET_Addr.h"
-#include /**/ "ace/Containers_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Multihomed_INET_Addr
- *
- * @brief Extends ACE_INET_Addr with support for multi-homed
- * addresses.
- */
-class ACE_Export ACE_Multihomed_INET_Addr : public ACE_INET_Addr
-{
-public:
- // = Initialization methods.
-
- /// Default constructor.
- ACE_Multihomed_INET_Addr (void);
-
- /**
- * Constructs an <ACE_Multihomed_INET_Addr> from a <port_number>, a
- * <primary_host_name>, and an array of <secondary_host_names>.
- * <size> is taken to be the length of the array. If <encode> is
- * non-zero, then <port_number> is converted into network byte
- * order; otherwise it is assumed to be in network byte order
- * already and is passed straight through. <address_family> can be
- * used to select IPv4/IPv6 if the OS has IPv6 capability
- * (ACE_HAS_IPV6 is defined). To specify IPv6, use the value
- * AF_INET6. To specify IPv4, use AF_INET.
- */
- ACE_Multihomed_INET_Addr(u_short port_number,
- const char primary_host_name[],
- int encode = 1,
- int address_family = AF_UNSPEC,
- const char *(secondary_host_names[]) = 0,
- size_t size = 0);
-
- /**
- * Constructs an <ACE_Multihomed_INET_Addr> from a @a port_number,
- * a @a primary_ip_addr, and an array of @a secondary_ip_addrs. @a
- * size is taken to be the length of the array. If @a encode is
- * non-zero, then the port number and the IP addresses are converted
- * into network byte order; otherwise they are assumed to be in
- * network byte order already and are passed straight through.
- */
- ACE_Multihomed_INET_Addr(u_short port_number,
- ACE_UINT32 primary_ip_addr = INADDR_ANY,
- int encode = 1,
- const ACE_UINT32 *secondary_ip_addrs = 0,
- size_t size = 0);
-
- /// Use compiler-generated copy constructor.
-
- /// Use compiler-generated assignment operator.
-
- /// Default dtor.
- ~ACE_Multihomed_INET_Addr (void);
-
- // = Direct initialization methods.
-
- // These methods are useful after the object has been constructed.
-
- /**
- * Initializes an <ACE_Multihomed_INET_Addr> from a <port_number>, a
- * <primary_host_name>, and an array of <secondary_host_names>.
- * <size> is taken to be the length of the array. If <encode> is
- * non-zero, then <port_number> is converted into network byte
- * order; otherwise it is assumed to be in network byte order
- * already and is passed straight through. <address_family> can be
- * used to select IPv4/IPv6 if the OS has IPv6 capability
- * (ACE_HAS_IPV6 is defined). To specify IPv6, use the value
- * AF_INET6. To specify IPv4, use AF_INET.
- */
- int set (u_short port_number,
- const char primary_host_name[],
- int encode = 1,
- int address_family = AF_UNSPEC,
- const char *(secondary_host_names[]) = 0,
- size_t size = 0);
-
- /**
- * Initializes an <ACE_Multihomed_INET_Addr> from a @a port_number,
- * a @a primary_ip_addr, and an array of @a secondary_ip_addrs. @a
- * size is taken to be the length of the array. If @a encode is
- * non-zero, then the port number and the IP addresses are converted
- * into network byte order; otherwise they are assumed to be in
- * network byte order already and are passed straight through.
- */
- int set (u_short port_number,
- ACE_UINT32 primary_ip_addr = INADDR_ANY,
- int encode = 1,
- const ACE_UINT32 *secondary_ip_addrs = 0,
- size_t size = 0);
-
- // = Accessor methods.
-
- /**
- * Returns the number of secondary addresses.
- */
- size_t get_num_secondary_addresses () const;
-
- /**
- * Initialize user-supplied array <secondary_addrs> with the current
- * secondary addresses. <size> is taken as the size of this array.
- */
- int get_secondary_addresses(ACE_INET_Addr *secondary_addrs,
- size_t size) const;
-
- /**
- * Initialize user-supplied array <addrs> with the the current
- * primary and secondary addresses. <size> is taken as the size of
- * this array.
- */
- void get_addresses(sockaddr_in *addrs,
- size_t size) const;
-
-private:
-
- ACE_Array<ACE_INET_Addr> secondaries;
-};
-
-#if defined (__ACE_INLINE__)
-#include /**/ "ace/Multihomed_INET_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_MULTIHOMED_INET_ADDR_H */
-
diff --git a/ace/Multihomed_INET_Addr.i b/ace/Multihomed_INET_Addr.i
deleted file mode 100644
index 2f3c17e7d0c..00000000000
--- a/ace/Multihomed_INET_Addr.i
+++ /dev/null
@@ -1,12 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Multihomed_INET_Addr.i
-
-// Accessor implementations
-ACE_INLINE
-size_t
-ACE_Multihomed_INET_Addr::get_num_secondary_addresses() const
-{
- return this->secondaries.size();
-}
diff --git a/ace/Multiplexor.cpp b/ace/Multiplexor.cpp
deleted file mode 100644
index e4d33295b31..00000000000
--- a/ace/Multiplexor.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// Multiplexor.cpp
-// $Id$
-
-#if defined (ACE_HAS_THREADS)
-
-#include "ace/Multiplexor.h"
-
-ACE_RCSID(ace, Multiplexor, "$Id$")
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Multiplexor.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_THREADS */
diff --git a/ace/Multiplexor.h b/ace/Multiplexor.h
deleted file mode 100644
index 9e99d231681..00000000000
--- a/ace/Multiplexor.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Multiplexor.h
- *
- * $Id$
- *
- * Define the ACE_Driver and ACE_Multiplexor container classes.
- * Note that these classes have never been implemented due to lack
- * of need.
- *
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_MULTIPLEXOR_H
-#define ACE_MULTIPLEXOR_H
-#include "ace/pre.h"
-
-#include "ace/Module.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Map_Manager.h"
-
-#if defined (ACE_HAS_THREADS)
-
-#if 0
-/**
- * @class ACE_Driver
- *
- *
- */
-class ACE_Export ACE_Driver
-{
-public:
- ACE_Driver (void);
- ~ACE_Driver (void);
-
- virtual int link_from_below (ACE_Module *mod);
- virtual ACE_Module *alloc_module (ACE_Driver *) = 0;
- virtual int unlink_from_below (ACE_Module *);
-};
-
-/**
- * @class ACE_Multiplexor
- *
- *
- */
-class ACE_Export ACE_Multiplexor
-{
-public:
- // = Constructors and destructors
- ACE_Multiplexor (void);
- ~ACE_Multiplexor (void);
-
- virtual int link_from_above (ACE_Driver &ld);
- virtual int link_from_above (ACE_Multiplexor &lm);
- virtual int link_from_below (ACE_Module *mod);
- virtual ACE_Module *alloc_lower_module (ACE_Multiplexor *) = 0;
- virtual ACE_Module *alloc_upper_module (ACE_Multiplexor *) = 0;
-
- virtual int unlink_from_above (ACE_Driver &ld);
- virtual int unlink_from_above (ACE_Multiplexor &lm);
- virtual int unlink_from_below (ACE_Module *mod);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Multiplexor.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* 0 */
-
-#endif /* ACE_HAS_THREADS */
-#include "ace/post.h"
-#endif /* ACE_MULTIPLEXOR_H */
diff --git a/ace/Multiplexor.i b/ace/Multiplexor.i
deleted file mode 100644
index 18e022ac911..00000000000
--- a/ace/Multiplexor.i
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Multiplexor.i
-#if 0
-
-int
-Driver::link_from_below (ACE_Module *stream_head)
-{
- ACE_TRACE ("Driver::link_from_below");
- ACE_Module *stream_tail = this->alloc_module (this);
-
- stream_head->link (stream_tail);
- if (stream_tail->reader ()->open () == -1
- || stream_tail->writer ()->open () == -1)
- {
- stream_tail->close ();
- return -1;
- }
- return 0;
-}
-
-int
-Driver::unlink_from_below (ACE_Module *)
-{
- ACE_TRACE ("Driver::unlink_from_below");
- return -1;
-}
-
-ACE_Multiplexor::ACE_Multiplexor (void)
-{
- ACE_TRACE ("ACE_Multiplexor::ACE_Multiplexor");
-}
-
-ACE_Multiplexor::~ACE_Multiplexor (void)
-{
- ACE_TRACE ("ACE_Multiplexor::~ACE_Multiplexor");
-}
-
-int
-ACE_Multiplexor::link_from_above (Driver &ld)
-{
- ACE_TRACE ("ACE_Multiplexor::link_from_above");
- return ld.link_from_below (this->alloc_lower_module (this));
-}
-
-int
-ACE_Multiplexor::link_from_above (ACE_Multiplexor &lm)
-{
- ACE_TRACE ("ACE_Multiplexor::link_from_above");
- return lm.link_from_below (this->alloc_lower_module (this));
-}
-
-int
-ACE_Multiplexor::link_from_below (ACE_Module *stream_head)
-{
- ACE_TRACE ("ACE_Multiplexor::link_from_below");
- ACE_Module *stream_tail = this->alloc_upper_module (this);
-
- stream_head->link (stream_tail);
- if (stream_tail->reader ()->open () == -1
- || stream_tail->writer ()->open () == -1)
- {
- stream_tail->close ();
- return -1;
- }
- return 0;
-}
-
-int
-ACE_Multiplexor::unlink_from_above (Driver &)
-{
- ACE_TRACE ("ACE_Multiplexor::unlink_from_above");
- return -1;
-}
-
-int
-ACE_Multiplexor::unlink_from_above (ACE_Multiplexor &)
-{
- ACE_TRACE ("ACE_Multiplexor::unlink_from_above");
- return -1;
-}
-
-int
-ACE_Multiplexor::unlink_from_below (ACE_Module *)
-{
- ACE_TRACE ("ACE_Multiplexor::unlink_from_below");
- return -1;
-}
-
-#endif /* 0 */
diff --git a/ace/NT_Service.cpp b/ace/NT_Service.cpp
deleted file mode 100644
index 1562ed4c9f0..00000000000
--- a/ace/NT_Service.cpp
+++ /dev/null
@@ -1,610 +0,0 @@
-// $Id$
-
-// NT_Service.cpp
-
-#include "ace/config-all.h"
-#if defined (ACE_WIN32) && \
- !defined (ACE_HAS_PHARLAP) && !defined (ACE_HAS_WINCE)
-
-#include "ace/NT_Service.h"
-#include "ace/Log_Msg.h"
-#include "ace/Service_Object.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/NT_Service.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_NT_Service)
-
-// ACE_NT_Service destructor.
-
-ACE_NT_Service::~ACE_NT_Service (void)
-{
- if (this->svc_sc_handle_ != 0)
- {
- CloseServiceHandle (this->svc_sc_handle_);
- this->svc_sc_handle_ = 0;
- }
- delete [] this->desc_;
- delete [] this->name_;
- delete [] this->host_;
-}
-
-// This default implementation of ACE_NT_Service::open sets the
-// service's status to START_PENDING with the estimated time until
-// STARTED set to the value given when this object was constructed.
-// Then the svc function is called, which implements the guts of the
-// service. Note that this function is running in a thread created by
-// the OS, not by ACE_Thread_Manager. The thread manager does not
-// know anything about this thread. The service can, however, use
-// ACE_Thread_Manager to start more threads if desired. When the svc
-// function returns, the service status is set to STOPPED, and exit
-// codes set based on errno/GetLastError if the svc function returns
-// -1.
-//
-// The svc function is expected to set the service status to SERVICE_RUNNING
-// after it initializes.
-//
-// The handle_control function will be called for each time there is a
-// request for the service. It is up to that function and svc to
-// cooperate to both respond appropriately to the request (by at least
-// updating the service's status) and to fulfill the request.
-
-int
-ACE_NT_Service::open (void *args)
-{
- ACE_UNUSED_ARG (args);
- this->report_status (SERVICE_START_PENDING, 0);
-
- int svc_return = this->svc ();
- if (svc_return == 0)
- {
- this->svc_status_.dwWin32ExitCode = NO_ERROR;
- this->svc_status_.dwServiceSpecificExitCode = 0;
- }
- else
- {
- if (errno == 0)
- {
- this->svc_status_.dwWin32ExitCode = GetLastError ();
- }
- else
- {
- this->svc_status_.dwWin32ExitCode = ERROR_SERVICE_SPECIFIC_ERROR;
- this->svc_status_.dwServiceSpecificExitCode = errno;
- }
- }
-
- return svc_return;
-
-}
-
-int
-ACE_NT_Service::fini (void)
-{
- return this->report_status (SERVICE_STOPPED, 0);
-}
-
-
-void
-ACE_NT_Service::handle_control (DWORD control_code)
-{
- switch (control_code)
- {
- case SERVICE_CONTROL_SHUTDOWN:
- case SERVICE_CONTROL_STOP:
- this->stop_requested (control_code);
- break;
-
- case SERVICE_CONTROL_PAUSE:
- this->pause_requested (control_code);
- break;
-
- case SERVICE_CONTROL_CONTINUE:
- this->continue_requested (control_code);
- break;
-
- case SERVICE_CONTROL_INTERROGATE:
- this->interrogate_requested (control_code);
- break;
- }
-}
-
-void
-ACE_NT_Service::stop_requested (DWORD)
-{
- this->report_status (SERVICE_STOP_PENDING);
- /* how to cancel? */
-}
-
-void
-ACE_NT_Service::pause_requested (DWORD)
-{
- this->report_status (SERVICE_PAUSE_PENDING);
- this->suspend ();
- this->report_status (SERVICE_PAUSED);
-}
-
-void
-ACE_NT_Service::continue_requested (DWORD)
-{
- this->report_status (SERVICE_CONTINUE_PENDING);
- this->resume ();
- this->report_status (SERVICE_RUNNING);
-}
-
-void
-ACE_NT_Service::interrogate_requested (DWORD)
-{
- this->report_status (0);
-}
-
-void
-ACE_NT_Service::name (const ACE_TCHAR *name, const ACE_TCHAR *desc)
-{
- delete [] this->desc_;
- delete [] this->name_;
-
- if (desc == 0)
- desc = name;
-
- this->name_ = ACE::strnew (name);
- this->desc_ = ACE::strnew (desc);
-}
-
-void
-ACE_NT_Service::host (const ACE_TCHAR *host)
-{
- delete [] this->host_;
-
- if (this->svc_sc_handle_ != 0)
- {
- CloseServiceHandle (this->svc_sc_handle_);
- this->svc_sc_handle_ = 0;
- }
-
- if (host == 0)
- {
- this->host_ = 0;
- }
- else
- {
- this->host_ = ACE::strnew (host);
- }
-}
-
-int
-ACE_NT_Service::insert (DWORD start_type,
- DWORD error_control,
- const ACE_TCHAR *exe_path,
- const ACE_TCHAR *group_name,
- LPDWORD tag_id,
- const ACE_TCHAR *dependencies,
- const ACE_TCHAR *account_name,
- const ACE_TCHAR *password)
-{
- ACE_TCHAR this_exe[MAXPATHLEN];
-
- // Insure ACE_OS::last_error finds GetLastError unless we set errno.
- errno = 0;
-
- if (exe_path == 0)
- {
- if (ACE_TEXT_GetModuleFileName (0, this_exe, sizeof this_exe) == 0)
- return -1;
- exe_path = this_exe;
- }
-
- SC_HANDLE sc_mgr = ACE_TEXT_OpenSCManager (this->host (),
- 0,
- SC_MANAGER_ALL_ACCESS);
- if (sc_mgr == 0)
- return -1;
-
- SC_HANDLE sh = ACE_TEXT_CreateService (sc_mgr,
- this->name (),
- this->desc (),
- SERVICE_ALL_ACCESS,
- this->svc_status_.dwServiceType,
- start_type,
- error_control,
- exe_path,
- group_name,
- tag_id,
- dependencies,
- account_name,
- password);
- // If there was an error, stash GetLastError before CloseServiceHandle
- // smashes it. ACE_OS::last_error will find the saved error value.
- if (sh == 0)
- ACE_OS::set_errno_to_last_error ();
-
- CloseServiceHandle (sc_mgr);
-
- if (sh == 0)
- return -1;
-
- if (this->svc_sc_handle_ != 0)
- CloseServiceHandle (this->svc_sc_handle_);
- this->svc_sc_handle_ = sh;
-
- return 0;
-
-}
-
-int
-ACE_NT_Service::remove (void)
-{
- if (this->svc_sc_handle () == 0)
- return -1;
-
- if (DeleteService (this->svc_sc_handle()) == 0
- && GetLastError () != ERROR_SERVICE_MARKED_FOR_DELETE)
- return -1;
-
- return 0;
-}
-
-// Sets the startup type for the service. Returns -1 on error, 0 on
-// success.
-int
-ACE_NT_Service::startup (DWORD startup)
-{
- SC_HANDLE svc = this->svc_sc_handle ();
- if (svc == 0)
- return -1;
-
- BOOL ok =
- ChangeServiceConfig (svc,
- (DWORD) SERVICE_NO_CHANGE,// No change to service type
- startup, // New startup type
- (DWORD) SERVICE_NO_CHANGE,// No change to error ctrl
- 0, // No change to pathname
- 0, // No change to load group
- 0, // No change to tag
- 0, // No change to dependencies
- 0, 0, // No change to acct/passwd
- 0); // No change to name
-
- return ok ? 0 : -1;
-}
-
-// Returns the current startup type.
-
-DWORD
-ACE_NT_Service::startup (void)
-{
- // The query buffer will hold strings as well as the defined struct.
- // The string pointers in the struct point to other areas in the
- // passed memory area, so it has to be large enough to hold the
- // struct plus all the strings.
- char cfgbuff[1024];
- LPQUERY_SERVICE_CONFIG cfg;
- DWORD cfgsize, needed_size;
-
- SC_HANDLE svc = this->svc_sc_handle ();
- if (svc == 0)
- {
- // To distinguish this error from the QueryServiceConfig failure
- // below, return the DWORD equivalent of -2, rather than -1.
- return MAXDWORD - 1;
- }
- cfgsize = sizeof cfgbuff;
- cfg = (LPQUERY_SERVICE_CONFIG) cfgbuff;
- BOOL ok = QueryServiceConfig (svc, cfg, cfgsize, &needed_size);
- if (ok)
- return cfg->dwStartType;
- // Zero is a valid return value for QueryServiceConfig, so if
- // QueryServiceConfig fails, return the DWORD equivalent of -1.
- return MAXDWORD;
-
-}
-
-
-void
-ACE_NT_Service::capture_log_msg_attributes (void)
-{
- ACE_Log_Msg::init_hook (this->log_msg_attributes_);
-}
-
-void
-ACE_NT_Service::inherit_log_msg_attributes (void)
-{
- // There's no thread descriptor involved with a NT-started
- // thread, so the first arg is 0.
- ACE_Log_Msg::inherit_hook (0, this->log_msg_attributes_);
-}
-
-
-int
-ACE_NT_Service::start_svc (ACE_Time_Value *wait_time,
- DWORD *svc_state,
- DWORD argc, const ACE_TCHAR **argv)
-{
- SC_HANDLE svc = this->svc_sc_handle ();
- if (svc == 0)
- return -1;
-
- if (!ACE_TEXT_StartService (svc, argc, argv))
- return -1;
-
- this->wait_for_service_state (SERVICE_RUNNING, wait_time);
- if (svc_state != 0)
- *svc_state = this->svc_status_.dwCurrentState;
-
- return 0;
-}
-
-int
-ACE_NT_Service::stop_svc (ACE_Time_Value *wait_time,
- DWORD *svc_state)
-{
- SC_HANDLE svc = this->svc_sc_handle ();
- if (svc == 0)
- return -1;
-
- if (!ControlService (svc,
- SERVICE_CONTROL_STOP,
- &this->svc_status_))
- return -1;
-
- this->wait_for_service_state (SERVICE_STOPPED,
- wait_time);
- if (svc_state != 0)
- *svc_state = this->svc_status_.dwCurrentState;
-
- return 0;
-}
-
-int
-ACE_NT_Service::pause_svc (ACE_Time_Value *wait_time,
- DWORD *svc_state)
-{
- SC_HANDLE svc = this->svc_sc_handle ();
- if (svc == 0)
- return -1;
-
- if (!ControlService (svc,
- SERVICE_CONTROL_PAUSE,
- &this->svc_status_))
- return -1;
-
- this->wait_for_service_state (SERVICE_PAUSED,
- wait_time);
- if (svc_state != 0)
- *svc_state = this->svc_status_.dwCurrentState;
-
- return 0;
-}
-
-int
-ACE_NT_Service::continue_svc (ACE_Time_Value *wait_time,
- DWORD *svc_state)
-{
- SC_HANDLE svc = this->svc_sc_handle ();
- if (svc == 0)
- return -1;
-
- if (!ControlService (svc,
- SERVICE_CONTROL_CONTINUE,
- &this->svc_status_))
- return -1;
-
- this->wait_for_service_state (SERVICE_RUNNING,
- wait_time);
- if (svc_state != 0)
- *svc_state = this->svc_status_.dwCurrentState;
-
- return 0;
-}
-
-DWORD
-ACE_NT_Service::state (ACE_Time_Value *wait_hint)
-{
- DWORD curr_state;
-
- if (this->state (&curr_state,
- wait_hint) == -1)
- return 0;
- return curr_state;
-}
-
-int
-ACE_NT_Service::state (DWORD *pstate,
- ACE_Time_Value *wait_hint)
-{
- SC_HANDLE svc = this->svc_sc_handle ();
-
- if (svc == 0)
- return -1;
-
- // Need to create a temporary copy of this variable since the
- // QueryServiceStatus call will modify the setting depending on the
- // current state of the Service. If the service is currently
- // STOPPED, the value will be cleared.
- DWORD controls_accepted = this->svc_status_.dwControlsAccepted;
-
- if (QueryServiceStatus (svc,
- &this->svc_status_) == 0)
- return -1;
-
- if (wait_hint != 0)
- wait_hint->msec (this->svc_status_.dwWaitHint);
-
- *pstate = this->svc_status_.dwCurrentState;
- this->svc_status_.dwControlsAccepted = controls_accepted;
- return 0;
-}
-
-// test_access
-//
-// Open a new handle, ignoring any handle open in svc_sc_handle_.
-// This function's results are returned without leaving the handle
-// open.
-
-int
-ACE_NT_Service::test_access (DWORD desired_access)
-{
- int status = -1; // Guilty until proven innocent
-
- SC_HANDLE sc_mgr = ACE_TEXT_OpenSCManager (this->host (),
- 0,
- GENERIC_READ);
- if (sc_mgr != 0)
- {
- SC_HANDLE handle = ACE_TEXT_OpenService (sc_mgr,
- this->name (),
- desired_access);
- CloseServiceHandle (sc_mgr);
- if (handle != 0)
- {
- status = 0;
- CloseServiceHandle (handle);
- }
- }
-
- return status;
-}
-
-// report_status
-//
-// Reports the current status. If new_status is not 0, it sets the
-// status to the new value before reporting. NOTE - this assumes that
-// no actual service status values have the value 0. This is true in
-// WinNT 4. If the status is a 'pending' type, the supplied time hint
-// is used unless it's 0, in which case the existing hint is used.
-// The dwWaitHint is not updated by this function. The checkpoint is
-// incremented by one after a pending report.
-
-int
-ACE_NT_Service::report_status (DWORD new_status,
- DWORD time_hint)
-{
- int bump_checkpoint = 0;
- int retval = 0;
- DWORD save_controls = 0;
-
- if (new_status != 0)
- this->svc_status_.dwCurrentState = new_status;
- switch (this->svc_status_.dwCurrentState)
- {
- case SERVICE_START_PENDING:
- save_controls = this->svc_status_.dwControlsAccepted;
- this->svc_status_.dwControlsAccepted = 0;
- /* Fall through */
- case SERVICE_STOP_PENDING:
- case SERVICE_CONTINUE_PENDING:
- case SERVICE_PAUSE_PENDING:
- this->svc_status_.dwWaitHint = time_hint ? time_hint : this->start_time_;
- bump_checkpoint = 1;
- break;
-
- default:
- this->svc_status_.dwCheckPoint = 0;
- }
-
- retval = SetServiceStatus (this->svc_handle_,
- &this->svc_status_) ? 0 : -1;
-
- if (save_controls != 0)
- this->svc_status_.dwControlsAccepted = save_controls;
-
- if (bump_checkpoint)
- ++this->svc_status_.dwCheckPoint;
-
- return retval;
-}
-
-SC_HANDLE
-ACE_NT_Service::svc_sc_handle (void)
-{
- if (this->svc_sc_handle_ == 0)
- {
- SC_HANDLE sc_mgr = ACE_TEXT_OpenSCManager (this->host (),
- 0,
- SC_MANAGER_ALL_ACCESS);
- if (sc_mgr != 0)
- {
- this->svc_sc_handle_ = ACE_TEXT_OpenService (sc_mgr,
- this->name (),
- SERVICE_ALL_ACCESS);
- if (this->svc_sc_handle_ == 0)
- ACE_OS::set_errno_to_last_error ();
- CloseServiceHandle (sc_mgr);
- }
- else
- ACE_OS::set_errno_to_last_error ();
- }
-
- return this->svc_sc_handle_;
-}
-
-void
-ACE_NT_Service::wait_for_service_state (DWORD desired_state,
- ACE_Time_Value *wait_time)
-{
- DWORD last_state, last_check_point;
- int first_time = 1;
- int service_ok;
-
- ACE_Time_Value time_out = ACE_OS::gettimeofday ();
- if (wait_time != 0)
- time_out += *wait_time;
-
- // Poll until the service reaches the desired state.
- for (;;)
- {
- service_ok = 0 != QueryServiceStatus (this->svc_sc_handle_,
- &this->svc_status_);
-
- // If we cannot query the service, we are done.
- if (!service_ok)
- break;
-
- // If the service has the desired state, we are done.
- if (desired_state == this->svc_status_.dwCurrentState)
- break;
-
- // If we time-out, we are done
- if (wait_time != 0 && ACE_OS::gettimeofday () > time_out )
- {
- errno = ETIME;
- break;
- }
-
- if (first_time)
- {
- // remember the service state, the first time we wait
- last_state = this->svc_status_.dwCurrentState;
- last_check_point = this->svc_status_.dwCheckPoint;
- first_time = 0;
- }
- else
- {
- // update the state change.
- if (last_state != this->svc_status_.dwCurrentState)
- {
- last_state = this->svc_status_.dwCurrentState;
- last_check_point = this->svc_status_.dwCheckPoint;
- }
- else
- {
- // The check-point should have increased
- if (this->svc_status_.dwCheckPoint > last_check_point)
- last_check_point = this->svc_status_.dwCheckPoint;
- else
- {
- // Service control failure, we are done.
- service_ok = 0;
- break;
- }
- }
- }
-
- ::Sleep (this->svc_status_.dwWaitHint);
- }
-
- return;
-}
-
-#endif /* ACE_WIN32 && !ACE_HAS_PHARLAP */
diff --git a/ace/NT_Service.h b/ace/NT_Service.h
deleted file mode 100644
index e3675b6fa57..00000000000
--- a/ace/NT_Service.h
+++ /dev/null
@@ -1,435 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file NT_Service.h
- *
- * $Id$
- *
- * @author Steve Huston <shuston@riverace.com>
- */
-//==========================================================================
-
-#ifndef ACE_NT_SERVICE_H
-#define ACE_NT_SERVICE_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_WIN32) && !defined (ACE_HAS_PHARLAP) && \
- !defined (ACE_HAS_WINCE)
-
-#include "ace/ACE.h"
-#include "ace/OS_Log_Msg_Attributes.h"
-#include "ace/Service_Object.h"
-#include "ace/Synch.h"
-#include "ace/Task.h"
-
-// ACE_NT_SERVICE_START_TIMEOUT is an estimate of the number of
-// milliseconds your service will take to start. Default is 5
-// seconds; you can pass a different value (or set one) when you
-// create the ACE_NT_Service object for your service.
-#if !defined ACE_NT_SERVICE_START_TIMEOUT
-#define ACE_NT_SERVICE_START_TIMEOUT 5000
-#endif /* ACE_NT_SERVICE_TIMEOUT */
-
-/**
- * @class ACE_NT_Service
- *
- * @brief Provide the base class which defines the interface for controlling
- * an NT service.
- *
- * NT Services can be implemented using the framework defined by
- * the ACE_NT_Service class, and the macros defined in this file.
- * Some quick refresher notes on NT Services:
- *
- * - The main program defines an array of entries describing the
- * services offered. The ACE_NT_SERVICE_ENTRY macro can help with
- * this.
- * - For each service, a separate ServiceMain and Handler function
- * need to be defined. These are taken care of by the
- * ACE_NT_SERVICE_DEFINE macro.
- * - When the main program/thread calls
- * StartServiceCtrlDispatcher, NT creates a thread for each
- * service, and runs the ServiceMain function for the service in
- * that new thread. When that thread exits, the service is gone.
- *
- * To use this facility, you could derive a class from
- * ACE_Service_Object (if you want to start via ACE's service
- * configurator), or use any other class to run when the image
- * starts (assuming that NT runs the image). You must set up an
- * NT SERVICE_TABLE_ENTRY array to define your service(s). You
- * can use the ACE_NT_SERVICE_... macros defined below for this.
- *
- * A SERVICE_TABLE might look like this:
- * ACE_NT_SERVICE_REFERENCE(Svc1); // If service is in another file
- * SERVICE_TABLE_ENTRY myServices[] = {
- * ACE_NT_SERVICE_ENTRY ("MyNeatService", Svc1),
- * { 0, 0 } };
- *
- * In the file where your service(s) are implemented, use the
- * ACE_NT_SERVICE_DEFINE macro to set up the following:
- * 1. A pointer to the service's implementation object (must be derived
- * from ACE_NT_Service).
- * 2. The service's Handler function (forwards all requests to the
- * ACE_NT_Service-derived object's handle_control function).
- * 3. The service's ServiceMain function. Creates a new instance
- * of the ACE_NT_Service-derived class SVCCLASS, unless one has
- * been created already.
- *
- * If you are using all the default constructor values, you can
- * let the generated ServiceMain function create the object, else
- * you need to create it by hand before calling
- * StartServiceCtrlDispatcher. Set the pointer so ServiceMain
- * won't create another one. Another reason you may want to do
- * the object creation yourself is if you want to also implement
- * suspend and resume functions (the ones inherited from
- * ACE_Service_Object) to do something intelligent to the services
- * which are running, like call their handle_control functions to
- * request suspend and resume actions, similar to what NT would do
- * if a Services control panel applet would do if the user clicks
- * on Suspend.
- */
-class ACE_Export ACE_NT_Service : public ACE_Task<ACE_MT_SYNCH>
-{
-
-public:
- // = Initialization and termination methods.
- /// Constructor primarily for use when running the service.
- ACE_NT_Service (DWORD start_timeout = ACE_NT_SERVICE_START_TIMEOUT,
- DWORD service_type = SERVICE_WIN32_OWN_PROCESS,
- DWORD controls_mask = SERVICE_ACCEPT_STOP);
-
- /// Constructor primarily for use when inserting/removing/controlling
- /// the service.
- ACE_NT_Service (const ACE_TCHAR *name,
- const ACE_TCHAR *desc = 0,
- DWORD start_timeout = ACE_NT_SERVICE_START_TIMEOUT,
- DWORD service_type = SERVICE_WIN32_OWN_PROCESS,
- DWORD controls_mask = SERVICE_ACCEPT_STOP);
-
- virtual ~ACE_NT_Service (void);
-
- // = Functions to operate the service
-
- /**
- * Hook called to open the service. By default, sets the service
- * status to SERVICE_START_PENDING, calls the @c svc() method,
- * interprets and sets the service status, and returns.
- */
- virtual int open (void *args = 0);
-
- /**
- * Hook called when terminating the service. Inherited from
- * ACE_Shared_Object. Default implementation sets the service status
- * to SERVICE_STOPPED.
- */
- virtual int fini (void);
-
- /**
- * The actual service implementation. This function need not be overridden
- * by applications that are just using SCM capabilities, but must be
- * by subclasses when actually running the service. It is expected that
- * this function will set the status to RUNNING.
- */
- virtual int svc (void);
-
- /**
- * This function is called in response to a request from the Service
- * Dispatcher. It must interact with the <svc> function to effect the
- * requested control operation. The default implementation handles
- * all requests as follows:
- * SERVICE_CONTROL_STOP: set stop pending, set cancel flag
- * SERVICE_CONTROL_PAUSE: set pause pending, <suspend>, set paused
- * SERVICE_CONTROL_CONTINUE: set continue pending, <resume>, set running
- * SERVICE_CONTROL_INTERROGATE: reports current status
- * SERVICE_CONTROL_SHUTDOWN: same as SERVICE_CONTROL_STOP.
- */
- virtual void handle_control (DWORD control_code);
-
- /// Set the svc_handle_ member. This is only a public function because
- /// the macro-generated service function calls it.
- void svc_handle (const SERVICE_STATUS_HANDLE new_svc_handle);
-
-
- // = Methods which can be used to do SCP-like functions. The first group
- // are used to register/insert and remove the service's definition in the
- // SCM registry.
-
- /// Sets the name and description for the service.
- /// If desc is 0, it takes the same value as name.
- void name (const ACE_TCHAR *name, const ACE_TCHAR *desc = 0);
-
- /// Get the service name.
- const ACE_TCHAR *name (void) const;
-
- /// Get the service description.
- const ACE_TCHAR *desc (void) const;
-
- /// Sets the host machine
- void host (const ACE_TCHAR *host);
-
- /// Get the host machine.
- const ACE_TCHAR *host (void) const;
-
- /**
- * Insert (create) the service in the NT Service Control Manager,
- * with the given creation values. exe_path defaults to the path name
- * of the program that calls the function. All other 0-defaulted arguments
- * pass 0 into the service creation, taking NT_specified defaults.
- * Returns -1 on error, 0 on success.
- */
- int insert (DWORD start_type = SERVICE_DEMAND_START,
- DWORD error_control = SERVICE_ERROR_IGNORE,
- const ACE_TCHAR *exe_path = 0,
- const ACE_TCHAR *group_name = 0,
- LPDWORD tag_id = 0,
- const ACE_TCHAR *dependencies = 0,
- const ACE_TCHAR *account_name = 0,
- const ACE_TCHAR *password = 0);
-
- /**
- * Remove the service from the NT Service Control Manager. Returns -1 on
- * error, 0 on success. This just affects the SCM and registry - the
- * can and will keep running fine if it is already running.
- */
- int remove (void);
-
- /// Sets the startup type for the service. Returns -1 on error, 0 on success.
- int startup (DWORD startup);
-
- /// Returns the current startup type.
- DWORD startup (void);
-
- // = Methods to control ACE_Log_Msg behavior in the service.
-
- /**
- * Set the ACE_Log_Msg attributes that the service thread will use to
- * initialize its ACE_Log_Msg instance. This is how the initiating
- * thread's logging ostream, etc. get into the service thread. The
- * logging attributes in effect when this function is called are what
- * the service thread will have at its disposal when it starts; therefore,
- * the main thread should set up logging options for the process, and
- * call this function just before calling the StartServiceCtrlDispatcher
- * function.
- */
- void capture_log_msg_attributes (void);
-
- /**
- * Set the ACE_Log_Msg attributes in the current thread to those saved
- * in the most recent call to @c capture_log_msg_attributes(). This function
- * should be called from the service's service thread. Ideally, it is the
- * first method called to be sure that any logging done is incorporated
- * correctly into the process's established logging setup.
- */
- void inherit_log_msg_attributes (void);
-
- // = Methods which control the service's execution.
-
- // These methods to start/pause/resume/stop/check the service all
- // have the following common behavior with respect to <wait_time>
- // and return value. <wait_time> is a pointer to an ACE_Time_Value
- // object. If not supplied (a zero pointer) the function will wait
- // indefinitely for the action to be finalized (service reach
- // running state, completely shut down, etc.) or get "stuck" before
- // returning. If the time is supplied, it specifies how long to
- // wait for the service to reach a steady state, and on return, it
- // is updated to the service's last reported wait hint. So, if you
- // want to control the waiting yourself (for example, you want to
- // react to UI events during the wait) specify a <wait_time> of (0,
- // 0) and use the updated time to know when to check the service's
- // state again. NOTE!!!! The wait_time things don't work yet. The
- // calls always check status once, and do not wait for it to change.
- //
- // The return value from start_svc, stop_svc, pause_svc,
- // continue_svc is 0 if the request to NT to effect the change was
- // made successfully. The service may refuse to change, or not do
- // what you wanted; so if you need to know, supply a <svc_state>
- // pointer to receive the service's reported last state on return
- // and check it to see if it's what you want. The functions only
- // return -1 when the actual request to the service is refused -
- // this would include privilege restrictions and if the service is
- // not configured to receive the request (this is most likely to
- // happen in the case of pause and continue).
-
- /**
- * Start the service (must have been inserted before). wait_time is
- * the time to wait for the service to reach a steady state before
- * returning. If it is 0, the function waits as long as it takes
- * for the service to reach the 'running' state, or gets stuck in
- * some other state, or exits. If <wait_time> is supplied, it is
- * updated on return to hold the service's last reported wait hint.
- * svc_state can be used to receive the state which the service
- * settled in. If the value is 0, the service never ran. argc/argv
- * are passed to the service's ServiceMain function when it starts.
- * Returns 0 for success, -1 for error.
- */
- int start_svc (ACE_Time_Value *wait_time = 0,
- DWORD *svc_state = 0,
- DWORD argc = 0, const ACE_TCHAR **argv = 0);
-
- /**
- * Requests the service to stop. Will wait up to <wait_time> for
- * the service to actually stop. If not specified, the function
- * waits until the service either stops or gets stuck in some other
- * state before it stops. If <svc_state> is specified, it receives
- * the last reported state of the service. Returns 0 if the request
- * was made successfully, -1 if not.
- */
- int stop_svc (ACE_Time_Value *wait_time = 0, DWORD *svc_state = 0);
-
- /// Pause the service.
- int pause_svc (ACE_Time_Value *wait_time = 0, DWORD *svc_state = 0);
-
- /// Continue the service.
- int continue_svc (ACE_Time_Value *wait_time = 0, DWORD *svc_state = 0);
-
- /**
- * Get the current state for the service. If <wait_hint> is not 0,
- * it receives the service's reported wait hint. Note that this
- * function returns 0 on failure (not -1 as is usual in ACE). A
- * zero return would (probably) only be returned if there is either
- * no service with the given name in the SCM database, or the caller
- * does not have sufficient rights to access the service state. The
- * set of valid service state values are all greater than 0.
- */
- DWORD state (ACE_Time_Value *wait_hint = 0);
-
- /// A version of <state> that returns -1 for failure, 0 for success.
- /// The DWORD pointed to by pstate receives the state value.
- int state (DWORD *pstate, ACE_Time_Value *wait_hint = 0);
-
- /**
- * Test access to the object's service in the SCM. The service must
- * already have been inserted in the SCM database. This function
- * has no affect on the service itself. Returns 0 if the specified
- * access is allowed, -1 otherwise (either the access is denied, or
- * there is a problem with the service's definition - check
- * ACE_OS::last_error to get the specific error indication.
- */
- int test_access (DWORD desired_access = SERVICE_ALL_ACCESS);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- int report_status (DWORD new_status, DWORD time_hint = 0);
-
- /**
- * Return the svc_sc_handle_ member. If the member is null, it
- * retrieves the handle from the Service Control Manager and caches
- * it.
- */
- SC_HANDLE svc_sc_handle (void);
-
- /**
- * Waits for the service to reach <desired_state> or get
- * (apparently) stuck before it reaches that state. Will wait at
- * most <wait_time> to get to the desired state. If <wait_time> is
- * 0, then the function keeps waiting until the desired state is
- * reached or the service doesn't update its state any further. The
- * svc_status_ class member is updated upon return.
- */
- void wait_for_service_state (DWORD desired_state,
- ACE_Time_Value *wait_time);
-
- /// Called by <handle_control> when a stop/shutdown was requested.
- virtual void stop_requested (DWORD control_code);
-
- /// Called by <handle_control> when a pause was requested.
- virtual void pause_requested (DWORD control_code);
-
- /// Called by <handle_control> when a continue was requested.
- virtual void continue_requested (DWORD control_code);
-
- /// Called by <handle_control> when a interrogate was requested.
- virtual void interrogate_requested (DWORD control_code);
-
-protected:
- /// Estimate of init time needed
- DWORD start_time_;
- /// Service handle - doesn't need close.
- SERVICE_STATUS_HANDLE svc_handle_;
- SERVICE_STATUS svc_status_;
-
- /// Service's SCM handle
- SC_HANDLE svc_sc_handle_;
- ACE_TCHAR *name_;
- ACE_TCHAR *desc_;
- ACE_TCHAR *host_;
-
- /// ACE_Log_Msg attributes to inherit from the starting thread.
- ACE_OS_Log_Msg_Attributes log_msg_attributes_;
-};
-
-// These macros help to get things set up correctly at compile time
-// and to take most of the grudge work out of creating the proper
-// functions and doing the registrations.
-//
-// ACE_NT_SERVICE_DEFINE - defines the 'ServiceMain' function which NT will
-// call in its own thread when the service control
-// dispatcher starts.
-
-#define ACE_NT_SERVICE_DEFINE(SVCNAME, SVCCLASS, SVCDESC) \
- ACE_NT_Service * _ace_nt_svc_obj_##SVCNAME = 0; \
- VOID WINAPI ace_nt_svc_handler_##SVCNAME (DWORD fdwControl) { \
- _ace_nt_svc_obj_##SVCNAME->handle_control(fdwControl); \
- } \
- VOID WINAPI ace_nt_svc_main_##SVCNAME (DWORD dwArgc, \
- ACE_TCHAR **lpszArgv) { \
- int delete_svc_obj = 0; \
- if (_ace_nt_svc_obj_##SVCNAME == 0) { \
- ACE_NEW (_ace_nt_svc_obj_##SVCNAME, SVCCLASS); \
- if (_ace_nt_svc_obj_##SVCNAME == 0) \
- return; \
- delete_svc_obj = 1; \
- } \
- else \
- _ace_nt_svc_obj_##SVCNAME->inherit_log_msg_attributes (); \
- _ace_nt_svc_obj_##SVCNAME->init(dwArgc, lpszArgv); \
- _ace_nt_svc_obj_##SVCNAME->svc_handle( \
- ACE_TEXT_RegisterServiceCtrlHandler(SVCDESC, \
- &ace_nt_svc_handler_##SVCNAME)); \
- _ace_nt_svc_obj_##SVCNAME->open(); \
- _ace_nt_svc_obj_##SVCNAME->wait(); \
- _ace_nt_svc_obj_##SVCNAME->fini(); \
- if (delete_svc_obj) { \
- delete _ace_nt_svc_obj_##SVCNAME; \
- _ace_nt_svc_obj_##SVCNAME = 0; \
- } \
- return; \
- }
-
-#define ACE_NT_SERVICE_REFERENCE(SVCNAME) \
-extern ACE_NT_Service * _ace_nt_svc_obj_##SVCNAME; \
-extern VOID WINAPI ace_nt_svc_main_##SVCNAME (DWORD dwArgc, \
- ACE_TCHAR **lpszArgv);
-
-#define ACE_NT_SERVICE_ENTRY(SVCDESC, SVCNAME) \
- { SVCDESC, &ace_nt_svc_main_##SVCNAME }
-
-#define ACE_NT_SERVICE_RUN(SVCNAME, SVCINSTANCE, RET) \
- ACE_TEXT_SERVICE_TABLE_ENTRY _ace_nt_svc_table[2] = \
- { \
- ACE_NT_SERVICE_ENTRY(ACE_TEXT (#SVCNAME), SVCNAME), \
- { 0, 0 } \
- }; \
- _ace_nt_svc_obj_##SVCNAME = SVCINSTANCE; \
- _ace_nt_svc_obj_##SVCNAME->capture_log_msg_attributes (); \
- ACE_OS::last_error (0); \
- int RET = ACE_TEXT_StartServiceCtrlDispatcher(_ace_nt_svc_table);
-
-#if defined (__ACE_INLINE__)
-#include "ace/NT_Service.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_WIN32 && !ACE_HAS_PHARLAP && !ACE_HAS_WINCE */
-
-#include "ace/post.h"
-
-#endif /* ACE_SERVICE_OBJECT_H */
diff --git a/ace/NT_Service.i b/ace/NT_Service.i
deleted file mode 100644
index 5a465066727..00000000000
--- a/ace/NT_Service.i
+++ /dev/null
@@ -1,79 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_NT_Service::ACE_NT_Service (DWORD start_timeout,
- DWORD service_type,
- DWORD controls_mask) :
- start_time_(start_timeout),
- svc_handle_(0),
- svc_sc_handle_(0),
- name_(0),
- desc_(0),
- host_(0)
-{
- svc_status_.dwServiceType = service_type;
- svc_status_.dwCurrentState = 0;
- svc_status_.dwControlsAccepted = controls_mask;
- svc_status_.dwWin32ExitCode = NO_ERROR;
- svc_status_.dwServiceSpecificExitCode = 0;
- svc_status_.dwCheckPoint = 0;
-}
-
-
-ACE_INLINE
-ACE_NT_Service::ACE_NT_Service (const ACE_TCHAR *name,
- const ACE_TCHAR *desc,
- DWORD start_timeout,
- DWORD service_type,
- DWORD controls_mask) :
- start_time_(start_timeout),
- svc_handle_(0),
- svc_sc_handle_(0),
- name_(ACE::strnew(name)),
- desc_(ACE::strnew(desc)),
- host_(0)
-{
- svc_status_.dwServiceType = service_type;
- svc_status_.dwCurrentState = 0;
- svc_status_.dwControlsAccepted = controls_mask;
- svc_status_.dwWin32ExitCode = NO_ERROR;
- svc_status_.dwServiceSpecificExitCode = 0;
- svc_status_.dwCheckPoint = 0;
-}
-
-
-ACE_INLINE int
-ACE_NT_Service::svc (void)
-{
- return -1;
-}
-
-
-ACE_INLINE
-const ACE_TCHAR *
-ACE_NT_Service::name (void) const
-{
- return name_;
-}
-
-ACE_INLINE
-const ACE_TCHAR *
-ACE_NT_Service::desc (void) const
-{
- return desc_;
-}
-
-ACE_INLINE
-const ACE_TCHAR *
-ACE_NT_Service::host (void) const
-{
- return host_;
-}
-
-ACE_INLINE void
-ACE_NT_Service::svc_handle(const SERVICE_STATUS_HANDLE new_svc_handle)
-{
- this->svc_handle_ = new_svc_handle;
- return;
-}
diff --git a/ace/Name_Proxy.cpp b/ace/Name_Proxy.cpp
deleted file mode 100644
index cccd599912c..00000000000
--- a/ace/Name_Proxy.cpp
+++ /dev/null
@@ -1,201 +0,0 @@
-// Name_Proxy.cpp
-// $Id$
-
-#include "ace/Name_Proxy.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, Name_Proxy, "$Id$")
-
-void
-ACE_Name_Proxy::dump (void) const
-{
- ACE_TRACE ("ACE_Name_Proxy::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->connector_.dump ();
- this->peer_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("reactor_ = %x"), this->reactor_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Default constructor.
-
-ACE_Name_Proxy::ACE_Name_Proxy (void)
- : reactor_ (0)
-{
- ACE_TRACE ("ACE_Name_Proxy::ACE_Name_Proxy");
-}
-
-// Establish binding with the ACE_Name Server at remote_addr.
-
-int
-ACE_Name_Proxy::open (const ACE_INET_Addr &remote_addr,
- ACE_Synch_Options& options)
-{
- ACE_TRACE ("ACE_Name_Proxy::open");
- ACE_Time_Value *timeout = 0;
-
- if (options[ACE_Synch_Options::USE_TIMEOUT])
- timeout = ACE_const_cast (ACE_Time_Value *, options.time_value ());
-
- // Initiate the connection.
- return this->connector_.connect (this->peer_,
- remote_addr,
- timeout);
-}
-
-// Establish binding with the ACE_Name Server at remote_addr.
-
-ACE_Name_Proxy::ACE_Name_Proxy (const ACE_INET_Addr &remote_addr,
- ACE_Synch_Options& options)
-{
- ACE_TRACE ("ACE_Name_Proxy::ACE_Name_Proxy");
- if (this->open (remote_addr, options) == -1
- && options[ACE_Synch_Options::USE_TIMEOUT] && errno != EWOULDBLOCK)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Name_Proxy::ACE_Name_Proxy")));
-}
-
-// Obtain underlying handle.
-
-/* VIRTUAL */ ACE_HANDLE
-ACE_Name_Proxy::get_handle (void) const
-{
- ACE_TRACE ("ACE_Name_Proxy::get_handle");
- return this->peer_.get_handle ();
-}
-
-int
-ACE_Name_Proxy::request_reply (ACE_Name_Request &request)
-{
- ACE_TRACE ("ACE_Name_Proxy::request_reply");
- void *buffer;
- ssize_t length = request.encode (buffer);
-
- if (length == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("encode failed")),
- -1);
-
- // Transmit request via a blocking send.
-
- if (this->peer_.send_n (buffer, length) != length)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("send_n failed")),
- -1);
- else
- {
- ACE_Name_Reply reply;
-
- // Receive reply via blocking read.
-
- if (this->peer_.recv_n (&reply,
- sizeof reply) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("recv failed")),
- -1);
- else if (reply.decode () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("decode failed")),
- -1);
- errno = int (reply.errnum ());
- return reply.status ();
- }
-}
-
-int
-ACE_Name_Proxy::send_request (ACE_Name_Request &request)
-{
- ACE_TRACE ("ACE_Name_Proxy::send_request");
- void *buffer;
- ssize_t length = request.encode (buffer);
-
- if (length == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("encode failed")),
- -1);
-
- // Transmit request via a blocking send.
-
- else if (this->peer_.send_n (buffer, length) != length)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("send_n failed")),
- -1);
- return 0;
-}
-
-int
-ACE_Name_Proxy::recv_reply (ACE_Name_Request &reply)
-{
- ACE_TRACE ("ACE_Name_Proxy::recv_reply");
- // Read the first 4 bytes to get the length of the message This
- // implementation assumes that the first 4 bytes are the length of
- // the message.
- ssize_t n = this->peer_.recv ((void *) &reply, sizeof (ACE_UINT32));
-
- switch (n)
- {
- case -1:
- // FALLTHROUGH
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("****************** recv_reply returned -1\n")));
- default:
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p got %d bytes, expected %d bytes\n"),
- ACE_LIB_TEXT ("recv failed"),
- n,
- sizeof (ACE_UINT32)));
- // FALLTHROUGH
- case 0:
- // We've shutdown unexpectedly
- return -1;
- // NOTREACHED
- case sizeof (ACE_UINT32):
- {
- // Transform the length into host byte order.
- ssize_t length = ntohl (reply.length ());
-
- // Receive the rest of the request message.
- // @@ beware of blocking read!!!.
- n = this->peer_.recv ((void *) (((char *) &reply)
- + sizeof (ACE_UINT32)),
- length - sizeof (ACE_UINT32));
-
- // Subtract off the size of the part we skipped over...
- if (n != ssize_t (length - sizeof (ACE_UINT32)))
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p expected %d, got %d\n"),
- ACE_LIB_TEXT ("invalid length"),
- length,
- n));
- return -1;
- }
-
- // Decode the request into host byte order.
- if (reply.decode () == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("decode failed")));
- return -1;
- }
- }
- }
- return 0;
-}
-
-// Close down the connection to the server.
-
-ACE_Name_Proxy::~ACE_Name_Proxy (void)
-{
- ACE_TRACE ("ACE_Name_Proxy::~ACE_Name_Proxy");
- this->peer_.close ();
-}
diff --git a/ace/Name_Proxy.h b/ace/Name_Proxy.h
deleted file mode 100644
index 234f7b93c49..00000000000
--- a/ace/Name_Proxy.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Name_Proxy.h
- *
- * $Id$
- *
- * Proxy for dealing with remote server process managing NET_LOCAL
- * Name_Bindings.
- *
- *
- * @author Gerhard Lenzer
- * @author Douglas C. Schmidt
- * @author and Prashant Jain
- */
-//=============================================================================
-
-
-#ifndef ACE_NAME_PROXY_H
-#define ACE_NAME_PROXY_H
-#include "ace/pre.h"
-
-#include "ace/INET_Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Connector.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Service_Config.h"
-#include "ace/Synch_Options.h"
-#include "ace/Name_Request_Reply.h"
-
-/**
- * @class ACE_Name_Proxy
- *
- * @brief Proxy for dealing with remote server process managing NET_LOCAL
- * NameBindings.
- *
- * Shields applications from details of interacting with the
- * ACE_Name Server.
- */
-class ACE_Export ACE_Name_Proxy : public ACE_Event_Handler
-{
-public:
- /// Default constructor.
- ACE_Name_Proxy (void);
-
- // = Establish a binding with the ACE_Name Server.
- ACE_Name_Proxy (const ACE_INET_Addr &remote_addr, // Address of ACE_Name Server.
- ACE_Synch_Options& options =
- ACE_Synch_Options::defaults);
-
- int open (const ACE_INET_Addr &remote_addr, // Address of ACE_Name Server.
- ACE_Synch_Options& options =
- ACE_Synch_Options::defaults);
-
- /// Perform the request and wait for the reply.
- int request_reply (ACE_Name_Request &request);
-
- /// Perform the request.
- int send_request (ACE_Name_Request &request);
-
- /// Receive the reply.
- int recv_reply (ACE_Name_Request &reply);
-
- /// Obtain underlying handle.
- virtual ACE_HANDLE get_handle (void) const;
-
- /// Close down the connection to the server.
- virtual ~ACE_Name_Proxy (void);
-
- /// Dump the state of the object;
- void dump (void) const;
-
-private:
-
- /// ACE_Connector factory used to establish connections actively.
- ACE_SOCK_Connector connector_;
-
- /// Connection to ACE_Name Server peer.
- ACE_SOCK_Stream peer_;
-
- /// Pointer to ACE_Reactor (used if we are run in "reactive-mode").
- ACE_Reactor *reactor_;
-};
-
-#include "ace/post.h"
-#endif /* ACE_NAME_PROXY_H */
diff --git a/ace/Name_Request_Reply.cpp b/ace/Name_Request_Reply.cpp
deleted file mode 100644
index 03928be00c7..00000000000
--- a/ace/Name_Request_Reply.cpp
+++ /dev/null
@@ -1,560 +0,0 @@
-#include "ace/Name_Request_Reply.h"
-#include "ace/Log_Msg.h"
-#include "ace/Time_Value.h"
-
-
-ACE_RCSID (ace,
- Name_Request_Reply,
- "$Id$")
-
-
-// Default "do nothing" constructor.
-
-ACE_Name_Request::ACE_Name_Request (void)
-{
- ACE_TRACE ("ACE_Name_Request::ACE_Name_Request");
-}
-
-// Create a ACE_Name_Request message.
-
-ACE_Name_Request::ACE_Name_Request (
- ACE_INT32 t, // Type of request.
- const ACE_WCHAR_T name[], // Name
- const ACE_UINT32 name_length, // size in bytes
- const ACE_WCHAR_T value[], //
- const ACE_UINT32 value_length, // size in bytes
- const char type[], //
- const ACE_UINT32 type_length, // size in bytes
- ACE_Time_Value *timeout) // Max time waiting for request.
-{
- ACE_TRACE ("ACE_Name_Request::ACE_Name_Request");
- this->msg_type (t);
- this->name_len (name_length);
- this->value_len (value_length);
- this->type_len (type_length);
-
- // If timeout is a NULL pointer, then block forever...
- if (timeout == 0)
- {
- this->transfer_.block_forever_ = 1;
- this->transfer_.sec_timeout_ = 0;
- this->transfer_.usec_timeout_ = 0;
- }
- else // Do a "timed wait."
- {
- this->block_forever (0);
- // Keep track of how long client is willing to wait.
- this->transfer_.sec_timeout_ = timeout->sec ();
- this->transfer_.usec_timeout_ = timeout->usec ();
- }
-
- // Set up pointers and copy name value and type into request.
- this->name_ = this->transfer_.data_;
- this->value_ = &this->name_[name_length / sizeof (ACE_WCHAR_T) ];
- this->type_ = (char *)(&this->value_[value_length / sizeof (ACE_WCHAR_T)]); //
-
- (void) ACE_OS::memcpy (this->name_,
- name,
- name_length);
- (void) ACE_OS::memcpy (this->value_,
- value,
- value_length);
- (void) ACE_OS::memcpy (this->type_,
- type,
- type_length);
-
- // Compute size of the fixed portion of the message...
- size_t len = sizeof this->transfer_ - sizeof this->transfer_.data_;
-
- // ... then add in the amount of the variable-sized portion.
- len += name_length + value_length + type_length ;
-
- this->length (ACE_static_cast (ACE_UINT32, len));
-}
-
-// Initialize length_ in order to avoid problems with byte-ordering.
-
-void
-ACE_Name_Request::init (void)
-{
- ACE_TRACE ("ACE_Name_Request::init");
- this->length (sizeof this->transfer_);
-}
-
-// = Set/get the length of the encoded/decoded message.
-
-ACE_UINT32
-ACE_Name_Request::length (void) const
-{
- ACE_TRACE ("ACE_Name_Request::length");
- return this->transfer_.length_;
-}
-
-void
-ACE_Name_Request::length (ACE_UINT32 l)
-{
- ACE_TRACE ("ACE_Name_Request::length");
- this->transfer_.length_ = l;
-}
-
-// = Set/get the type of the message.
-
-ACE_INT32
-ACE_Name_Request::msg_type (void) const
-{
- ACE_TRACE ("ACE_Name_Request::msg_type");
- return this->transfer_.msg_type_;
-}
-
-void
-ACE_Name_Request::msg_type (ACE_INT32 t)
-{
- ACE_TRACE ("ACE_Name_Request::msg_type");
- this->transfer_.msg_type_ = t;
-}
-
-// = Set/get the len of the name
-
-ACE_UINT32
-ACE_Name_Request::name_len (void) const
-{
- ACE_TRACE ("ACE_Name_Request::name_len");
- return this->transfer_.name_len_;
-}
-
-void
-ACE_Name_Request::name_len (ACE_UINT32 t)
-{
- ACE_TRACE ("ACE_Name_Request::name_len");
- this->transfer_.name_len_ = t;
-}
-
-// = Set/get the len of the value
-
-ACE_UINT32
-ACE_Name_Request::value_len (void) const
-{
- ACE_TRACE ("ACE_Name_Request::value_len");
- return this->transfer_.value_len_;
-}
-
-void
-ACE_Name_Request::value_len (ACE_UINT32 t)
-{
- ACE_TRACE ("ACE_Name_Request::value_len");
- this->transfer_.value_len_ = t;
-}
-
-// = Set/get the len of the type
-
-ACE_UINT32
-ACE_Name_Request::type_len (void) const
-{
- ACE_TRACE ("ACE_Name_Request::type_len");
- return this->transfer_.type_len_;
-}
-
-void
-ACE_Name_Request::type_len (ACE_UINT32 t)
-{
- ACE_TRACE ("ACE_Name_Request::type_len");
- this->transfer_.type_len_ = t;
-}
-
-// = Set/get the blocking semantics.
-
-ACE_UINT32
-ACE_Name_Request::block_forever (void) const
-{
- ACE_TRACE ("ACE_Name_Request::block_forever");
- return this->transfer_.block_forever_;
-}
-
-void
-ACE_Name_Request::block_forever (ACE_UINT32 bs)
-{
- ACE_TRACE ("ACE_Name_Request::block_forever");
- this->transfer_.block_forever_ = bs;
-}
-
-// = Set/get the timeout.
-
-ACE_Time_Value
-ACE_Name_Request::timeout (void) const
-{
- ACE_TRACE ("ACE_Name_Request::timeout");
- return ACE_Time_Value (this->transfer_.sec_timeout_,
- this->transfer_.usec_timeout_);
-}
-
-void
-ACE_Name_Request::timeout (const ACE_Time_Value timeout)
-{
- ACE_TRACE ("ACE_Name_Request::timeout");
- this->transfer_.sec_timeout_ = timeout.sec ();
- this->transfer_.usec_timeout_ = timeout.usec ();
-}
-
-// = Set/get the name
-
-const ACE_WCHAR_T *
-ACE_Name_Request::name (void) const
-{
- ACE_TRACE ("ACE_Name_Request::name");
- return this->name_;
-}
-
-void
-ACE_Name_Request::name (const ACE_WCHAR_T *t)
-{
- ACE_TRACE ("ACE_Name_Request::name");
- (void) ACE_OS::memcpy (this->name_,
- t,
- this->name_len ());
-}
-
-// = Set/get the value
-
-const ACE_WCHAR_T *
-ACE_Name_Request::value (void) const
-{
- ACE_TRACE ("ACE_Name_Request::value");
- return this->value_;
-}
-
-void
-ACE_Name_Request::value (const ACE_WCHAR_T *c)
-{
- ACE_TRACE ("ACE_Name_Request::value");
-
- (void) ACE_OS::memcpy (this->value_,
- c,
- this->value_len());
-}
-
-// = Set/get the type
-
-const char *
-ACE_Name_Request::type (void) const
-{
- ACE_TRACE ("ACE_Name_Request::type");
- return this->type_;
-}
-
-void
-ACE_Name_Request::type (const char *c)
-{
- ACE_TRACE ("ACE_Name_Request::type");
- ACE_OS::strsncpy (this->type_,
- c,
- sizeof this->type_);
-}
-
-// Encode the transfer buffer into network byte order so that it can
-// be sent to the server.
-
-int
-ACE_Name_Request::encode (void *&buf)
-{
- ACE_TRACE ("ACE_Name_Request::encode");
- // Compute the length *before* doing the marshaling.
-
- ssize_t len = this->length ();
-
- size_t nv_data_len =
- (this->transfer_.name_len_ + this->transfer_.value_len_)
- / sizeof (ACE_WCHAR_T);
-
- for (size_t i = 0; i < nv_data_len; i++)
- this->transfer_.data_[i] =
- htons (this->transfer_.data_[i]);
-
- buf = (void *) &this->transfer_;
- this->transfer_.block_forever_ = htonl (this->transfer_.block_forever_);
- this->transfer_.usec_timeout_ = htonl (this->transfer_.usec_timeout_);
- this->transfer_.sec_timeout_ = htonl (this->transfer_.sec_timeout_);
- this->transfer_.length_ = htonl (this->transfer_.length_);
- this->transfer_.msg_type_ = htonl (this->transfer_.msg_type_);
- this->transfer_.name_len_ = htonl (this->transfer_.name_len_);
- this->transfer_.value_len_ = htonl (this->transfer_.value_len_);
- this->transfer_.type_len_ = htonl (this->transfer_.type_len_);
-
- return len;
-}
-
-// Decode the transfer buffer into host byte byte order so that it can
-// be used by the server.
-
-int
-ACE_Name_Request::decode (void)
-{
- ACE_TRACE ("ACE_Name_Request::decode");
- // Decode the fixed-sized portion first.
- this->transfer_.block_forever_ = ntohl (this->transfer_.block_forever_);
- this->transfer_.usec_timeout_ = ntohl (this->transfer_.usec_timeout_);
- this->transfer_.sec_timeout_ = ntohl (this->transfer_.sec_timeout_);
- this->transfer_.length_ = ntohl (this->transfer_.length_);
- this->transfer_.msg_type_ = ntohl (this->transfer_.msg_type_);
- this->transfer_.name_len_ = ntohl (this->transfer_.name_len_);
- this->transfer_.value_len_ = ntohl (this->transfer_.value_len_);
- this->transfer_.type_len_ = ntohl (this->transfer_.type_len_);
-
- size_t nv_data_len =
- (this->transfer_.name_len_ + this->transfer_.value_len_)
- / sizeof (ACE_WCHAR_T);
-
- for (size_t i = 0; i < nv_data_len; i++)
- this->transfer_.data_[i] =
- ntohs (this->transfer_.data_[i]);
-
- this->name_ = this->transfer_.data_;
- this->value_ = &this->name_[this->transfer_.name_len_ / sizeof (ACE_WCHAR_T)];
- this->type_ = (char *)(&this->value_[this->transfer_.value_len_ / sizeof (ACE_WCHAR_T)]);
- this->type_[this->transfer_.type_len_] = '\0';
-
- // Decode the variable-sized portion.
- return 0;
-}
-
-// Print out the current values of the ACE_Name_Request.
-
-void
-ACE_Name_Request::dump (void) const
-{
- ACE_TRACE ("ACE_Name_Request::dump");
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("*******\nlength = %d\n"),
- this->length ()));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("message-type = ")));
-
- switch (this->msg_type ())
- {
- case ACE_Name_Request::BIND:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("BIND\n")));
- break;
- case ACE_Name_Request::REBIND:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("REBIND\n")));
- break;
- case ACE_Name_Request::RESOLVE:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("RESOLVE\n")));
- break;
- case ACE_Name_Request::UNBIND:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("UNBIND\n")));
- break;
- case ACE_Name_Request::LIST_NAMES:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("LIST_NAMES\n")));
- break;
- case ACE_Name_Request::LIST_VALUES:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("LIST_VALUES\n")));
- break;
- case ACE_Name_Request::LIST_TYPES:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("LIST_TYPES\n")));
- break;
- case ACE_Name_Request::LIST_NAME_ENTRIES:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("LIST_NAME_ENTRIES\n")));
- break;
- case ACE_Name_Request::LIST_VALUE_ENTRIES:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("LIST_VALUE_ENTRIES\n")));
- break;
- case ACE_Name_Request::LIST_TYPE_ENTRIES:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("LIST_TYPE_ENTRIES\n")));
- break;
- default:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("<unknown type> = %d\n"),
- this->msg_type ()));
- break;
- }
-
- if (this->block_forever ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("blocking forever\n")));
- else
- {
-#if !defined (ACE_NLOGGING)
- ACE_Time_Value tv = this->timeout ();
-#endif /* ! ACE_NLOGGING */
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("waiting for %d secs and %d usecs\n"),
- tv.sec (),
- tv.usec ()));
- }
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("*******\nname_len = %d\n"),
- this->name_len ()));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("*******\nvalue_len = %d\n"),
- this->value_len ()));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("+++++++\n")));
-}
-
-// Default constructor.
-
-ACE_Name_Reply::ACE_Name_Reply (void)
-{
- ACE_TRACE ("ACE_Name_Reply::ACE_Name_Reply");
-
- // Initialize to a known quantity.
- this->msg_type (0);
- this->errnum (0);
- this->length (sizeof this->transfer_);
-}
-
-// Create a ACE_Name_Reply message.
-
-ACE_Name_Reply::ACE_Name_Reply (ACE_UINT32 t, ACE_UINT32 err) // Type of reply.
-{
- ACE_TRACE ("ACE_Name_Reply::ACE_Name_Reply");
- this->msg_type (t);
- this->errnum (err);
- this->length (sizeof this->transfer_);
-}
-
-// Initialize length_ to avoid problems with byte-ordering.
-
-void
-ACE_Name_Reply::init (void)
-{
- ACE_TRACE ("ACE_Name_Reply::init");
- this->length (sizeof this->transfer_);
-}
-
-// = Set/get the length of the encoded/decoded message.
-
-ACE_UINT32
-ACE_Name_Reply::length (void) const
-{
- ACE_TRACE ("ACE_Name_Reply::length");
- return this->transfer_.length_;
-}
-
-void
-ACE_Name_Reply::length (ACE_UINT32 l)
-{
- ACE_TRACE ("ACE_Name_Reply::length");
- this->transfer_.length_ = l;
-}
-
-// = Set/get the type of the message.
-
-ACE_INT32
-ACE_Name_Reply::msg_type (void) const
-{
- ACE_TRACE ("ACE_Name_Reply::msg_type");
- return this->transfer_.type_;
-}
-
-void
-ACE_Name_Reply::msg_type (ACE_INT32 t)
-{
- ACE_TRACE ("ACE_Name_Reply::msg_type");
- this->transfer_.type_ = t;
-}
-
-// Get the status of the reply (0 == success, -1 == failure).
-
-ACE_INT32
-ACE_Name_Reply::status (void) const
-{
- ACE_TRACE ("ACE_Name_Reply::status");
- return this->transfer_.type_;
-}
-
-// Set the status of the reply (0 == success, -1 == failure).
-
-void
-ACE_Name_Reply::status (ACE_INT32 s)
-{
- ACE_TRACE ("ACE_Name_Reply::status");
- if (s == -1)
- this->transfer_.type_ = -1;
- else
- this->transfer_.type_ = 0;
-}
-
-// = Set/get the errno of a failed reply.
-ACE_UINT32
-ACE_Name_Reply::errnum (void) const
-{
- ACE_TRACE ("ACE_Name_Reply::errnum");
- return this->transfer_.errno_;
-}
-
-void
-ACE_Name_Reply::errnum (ACE_UINT32 e)
-{
- ACE_TRACE ("ACE_Name_Reply::errnum");
- this->transfer_.errno_ = e;
-}
-
-// Encode the transfer buffer into network byte order
-// so that it can be sent to the client.
-
-int
-ACE_Name_Reply::encode (void *&buf)
-{
- ACE_TRACE ("ACE_Name_Reply::encode");
- int len = this->length (); // Get length *before* marshaling.
-
- this->transfer_.length_ = htonl (this->transfer_.length_);
- this->transfer_.type_ = htonl (this->transfer_.type_);
- this->transfer_.errno_ = htonl (this->transfer_.errno_);
- buf = (void *) &this->transfer_;
- return len;
-}
-
-// Decode the transfer buffer into host byte order so that it can be
-// used by the client.
-
-int
-ACE_Name_Reply::decode (void)
-{
- ACE_TRACE ("ACE_Name_Reply::decode");
- this->transfer_.length_ = ntohl (this->transfer_.length_);
- this->transfer_.type_ = ntohl (this->transfer_.type_);
- this->transfer_.errno_ = ntohl (this->transfer_.errno_);
- return 0;
-}
-
-// Print out current values of the ACE_Name_Reply object.
-
-void
-ACE_Name_Reply::dump (void) const
-{
- ACE_TRACE ("ACE_Name_Reply::dump");
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("*******\nlength = %d\nerrnum = %d"),
- this->length (),
- this->errnum ()));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("type = ")));
- switch (this->msg_type ())
- {
- case 0:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("SUCCESS\n")));
- break;
- case -1:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("FAILURE\n")));
- break;
- default:
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("<unknown type> = %d\n"),
- this->msg_type ()));
- break;
- }
-}
diff --git a/ace/Name_Request_Reply.h b/ace/Name_Request_Reply.h
deleted file mode 100644
index 9e6ec99b993..00000000000
--- a/ace/Name_Request_Reply.h
+++ /dev/null
@@ -1,261 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Name_Request_Reply.h
- *
- * $Id$
- *
- * Define the format used to exchange messages between the
- * ACE_Name Server and its clients.
- *
- * @author Gerhard Lenzer
- * @author Douglas C. Schmidt
- * @author and Prashant Jain
- */
-//=============================================================================
-
-
-#ifndef ACE_NAME_REQUEST_REPLY_H
-#define ACE_NAME_REQUEST_REPLY_H
-
-#include "ace/pre.h"
-
-#include "ace/Basic_Types.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_Time_Value;
-
-/**
- * @class ACE_Name_Request
- *
- * @brief Message format for delivering requests to the ACE_Name Server.
- *
- * This class is implemented to minimize data copying. In
- * particular, all marshaling is done in situ...
- */
-class ACE_Export ACE_Name_Request
-{
-public:
- /// Request message types.
- enum Constants
- {
- BIND = 01,
- REBIND = 02,
- RESOLVE = 03,
- UNBIND = 04,
- LIST_NAMES = 05,
- LIST_VALUES = 015,
- LIST_TYPES = 025,
- LIST_NAME_ENTRIES = 06,
- LIST_VALUE_ENTRIES = 016,
- LIST_TYPE_ENTRIES = 026,
- MAX_ENUM = 11,
- MAX_LIST = 3,
-
- // Mask for bitwise operation used for table lookup
- /// Mask for lookup of operation
- OP_TABLE_MASK = 07,
- /// Mask for lookup of list_operation
- LIST_OP_MASK = 030,
-
- /// Class-specific constant values.
- MAX_NAME_LENGTH = MAXPATHLEN + 1
- };
-
- /// Default constructor.
- ACE_Name_Request (void);
-
- /// Create a <ACE_Name_Request> message.
- ACE_Name_Request (ACE_INT32 msg_type, // Type of request.
- const ACE_WCHAR_T name[], //
- const ACE_UINT32 name_length,
- const ACE_WCHAR_T value[],
- const ACE_UINT32 value_length,
- const char type[],
- const ACE_UINT32 type_length,
- ACE_Time_Value *timeout = 0); // Max time willing to wait for request.
-
- /// Initialize length_ in order to ensure correct byte ordering
- /// before a request is sent.
- void init (void);
-
- // = Set/get the length of the encoded/decoded message.
- ACE_UINT32 length (void) const;
- void length (ACE_UINT32);
-
- // = Set/get the type of the message.
- ACE_INT32 msg_type (void) const;
- void msg_type (ACE_INT32);
-
- // = Set/get the blocking semantics.
- ACE_UINT32 block_forever (void) const;
- void block_forever (ACE_UINT32);
-
- // = Set/get the timeout.
- ACE_Time_Value timeout (void) const;
- void timeout (const ACE_Time_Value timeout);
-
- // = Set/get the name
- const ACE_WCHAR_T *name (void) const;
- void name (const ACE_WCHAR_T *);
-
- // = Set/get the value
- const ACE_WCHAR_T *value (void) const;
- void value (const ACE_WCHAR_T *);
-
- // = Set/get the type
- const char *type (void) const;
- void type (const char *);
-
- // = Set/get the len of name
- ACE_UINT32 name_len (void) const;
- void name_len (ACE_UINT32);
-
- // = Set/get the len of value
- ACE_UINT32 value_len (void) const;
- void value_len (ACE_UINT32);
-
- // = Set/get the len of type
- ACE_UINT32 type_len (void) const;
- void type_len (ACE_UINT32);
-
- /// Encode the message before transmission.
- int encode (void *&);
-
- /// Decode message after reception.
- int decode (void);
-
- /// Print out the values of the message for debugging purposes.
- void dump (void) const;
-
-private:
- // = The 5 fields in the <Transfer> struct are transmitted to the server.
- // The remaining 2 fields are not tranferred -- they are used only on
- // the server-side to simplify lookups.
-
- struct Transfer
- {
- /// Length of entire request.
- ACE_UINT32 length_;
-
- /// Type of the request (i.e., <BIND>, <REBIND>, <RESOLVE>, and <UNBIND>).
- ACE_UINT32 msg_type_;
-
- /// Indicates if we should block forever. If 0, then <secTimeout_>
- /// and <usecTimeout_> indicates how long we should wait.
- ACE_UINT32 block_forever_;
-
- /// Max seconds willing to wait for name if not blocking forever.
- ACE_UINT32 sec_timeout_;
-
- /// Max micro seconds to wait for name if not blocking forever.
- ACE_UINT32 usec_timeout_;
-
- /// Len of name in bytes
- ACE_UINT32 name_len_;
-
- /// Len of value in bytes
- ACE_UINT32 value_len_;
-
- /// Len of type in bytes
- ACE_UINT32 type_len_;
-
- /// The data portion contains the <name_>
- /// followed by the <value_>
- /// followed by the <type_>.
- ACE_WCHAR_T data_[MAX_NAME_LENGTH + MAXPATHLEN + MAXPATHLEN + 2];
- };
-
- /// Transfer buffer.
- Transfer transfer_;
-
- /// Pointer to the beginning of the name in this->data_.
- ACE_WCHAR_T *name_;
-
- /// Pointer to the beginning of the value in this->data_;
- ACE_WCHAR_T *value_;
-
- /// Pointer to the beginning of the type in this->data_;
- char *type_;
-};
-
-/**
- * @class ACE_Name_Reply
- *
- * @brief Message format for delivering replies from the ACE_Name Server.
- *
- * This class is implemented to minimize data copying. In
- * particular, all marshaling is done in situ...
- */
-class ACE_Export ACE_Name_Reply
-{
-public:
- enum Constants
- {
- /// Class-specific constant values.
- MAX_NAME_LENGTH = MAXPATHLEN + 1
- };
-
- /// Default constructor.
- ACE_Name_Reply (void);
-
- /// Create a <ACE_Name_Reply> message.
- ACE_Name_Reply (ACE_UINT32 type, ACE_UINT32 err); // Type of reply.
-
- /// Initialize length_ in order to ensure correct byte ordering
- /// before a reply is sent.
- void init (void);
-
- // = Set/get the length of the encoded/decoded message.
- ACE_UINT32 length (void) const;
- void length (ACE_UINT32);
-
- // = Set/get the type of the message.
- ACE_INT32 msg_type (void) const;
- void msg_type (ACE_INT32);
-
- // = Set/get the status of the reply (0 == success, -1 == failure).
- ACE_INT32 status (void) const;
- void status (ACE_INT32);
-
- // = Set/get the errno of a failed reply.
- ACE_UINT32 errnum (void) const;
- void errnum (ACE_UINT32);
-
- /// Encode the message before transfer.
- int encode (void *&);
-
- /// Decode a message after reception.
- int decode (void);
-
- /// Print out the values of the message for debugging purposes.
- void dump (void) const;
-
-private:
- // = The 3 fields in the <Transfer> struct are transmitted to the server.
-
- struct Transfer
- {
- /// Length of entire reply.
- ACE_UINT32 length_;
-
- /// Type of the reply, i.e., success (0) or failure (-1).
- ACE_INT32 type_;
-
- /// Indicates why error occurred if <this->type_> == failure (-1).
- /// Typical reasons include: <ETIME> (if the client timed out after
- /// waiting for the name).
- ACE_UINT32 errno_;
- };
-
- /// Transfer buffer.
- Transfer transfer_;
-};
-
-#include "ace/post.h"
-
-#endif /* ACE_NAME_REQUEST_REPLY_H */
diff --git a/ace/Name_Space.cpp b/ace/Name_Space.cpp
deleted file mode 100644
index b262bae826d..00000000000
--- a/ace/Name_Space.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// Name_Space.cpp
-// $Id$
-
-#include "ace/Name_Space.h"
-
-ACE_RCSID(ace, Name_Space, "$Id$")
-
-ACE_Name_Binding::ACE_Name_Binding (void)
- : type_ (ACE_OS::strdup (""))
-{
- ACE_TRACE ("ACE_Name_Binding::ACE_Name_Binding");
-}
-
-
-ACE_Name_Binding::~ACE_Name_Binding (void)
-{
- ACE_TRACE ("ACE_Name_Binding::~ACE_Name_Binding");
- ACE_OS::free ((void *) this->type_);
-}
-
-ACE_Name_Binding::ACE_Name_Binding (const ACE_NS_WString &name,
- const ACE_NS_WString &value,
- const char *type)
- : name_ (name),
- value_ (value),
- type_ (type == 0 ? ACE_OS::strdup ("") : ACE_OS::strdup (type))
-{
- ACE_TRACE ("ACE_Name_Binding::ACE_Name_Binding");
-}
-
-ACE_Name_Binding::ACE_Name_Binding (const ACE_Name_Binding &s)
- : name_ (s.name_),
- value_ (s.value_),
- type_ (ACE_OS::strdup (s.type_))
-{
- ACE_TRACE ("ACE_Name_Binding::ACE_Name_Binding");
-}
-
-void
-ACE_Name_Binding::operator = (const ACE_Name_Binding &s)
-{
- ACE_TRACE ("ACE_Name_Binding::operator =");
-
- if (this != &s)
- {
- ACE_OS::free ((void *) this->type_);
- this->name_ = s.name_;
- this->value_ = s.value_;
- this->type_ = ACE_OS::strdup (s.type_);
- }
-}
-
-int
-ACE_Name_Binding::operator == (const ACE_Name_Binding &s) const
-{
- ACE_TRACE ("ACE_Name_Binding::operator ==");
- return this->name_ == s.name_
- && this->value_ == s.value_
- && ACE_OS::strcmp (this->type_, s.type_) == 0;
-}
-
-ACE_Name_Space::~ACE_Name_Space (void)
-{
- ACE_TRACE ("ACE_Name_Space::~ACE_Name_Space");
-}
diff --git a/ace/Name_Space.h b/ace/Name_Space.h
deleted file mode 100644
index d65ee2f7b4f..00000000000
--- a/ace/Name_Space.h
+++ /dev/null
@@ -1,161 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Name_Space.h
- *
- * $Id$
- *
- * @author Prashant Jain
- */
-//==========================================================================
-
-
-#ifndef ACE_NAME_SPACE_H
-#define ACE_NAME_SPACE_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SString.h"
-#include "ace/Unbounded_Set.h"
-#include "ace/Name_Proxy.h"
-
-typedef ACE_Unbounded_Set<ACE_NS_WString> ACE_WSTRING_SET;
-
-/**
- * @class ACE_Name_Binding
- *
- * @brief Maintains a mapping from name to value and type.
- */
-class ACE_Export ACE_Name_Binding
-{
-public:
- // = Initialization and termination.
- /// Main constructor that initializes all the fields.
- ACE_Name_Binding (const ACE_NS_WString &n,
- const ACE_NS_WString &v,
- const char *t);
-
- /// Default constructor.
- ACE_Name_Binding (void);
-
- /// Copy constructor.
- ACE_Name_Binding (const ACE_Name_Binding &);
-
- /// Assignment operator.
- void operator= (const ACE_Name_Binding &);
-
- /// Destructor.
- ~ACE_Name_Binding (void);
-
- /// Test for equality.
- int operator == (const ACE_Name_Binding &s) const;
-
- /// Name of the binding.
- ACE_NS_WString name_;
-
- /// Value of the binding.
- ACE_NS_WString value_;
-
- /// Type of the binding.
- char *type_;
-};
-
-typedef ACE_Unbounded_Set<ACE_Name_Binding> ACE_BINDING_SET;
-typedef ACE_Unbounded_Set_Iterator<ACE_Name_Binding> ACE_BINDING_ITERATOR;
-
-typedef ACE_Unbounded_Set<ACE_NS_WString> ACE_PWSTRING_SET;
-typedef ACE_Unbounded_Set_Iterator<ACE_NS_WString> ACE_PWSTRING_ITERATOR;
-
-/**
- * @class ACE_Name_Space
- *
- * @brief Abstract base class that provides an abstract interface to
- * the database without exposing any implemenation details.
- *
- * Manages a Naming Service Name Space. Provides the basic
- * methods -- bind, unbind, rebind, find, and listnames.
- */
-class ACE_Export ACE_Name_Space
-{
-public:
-
- /// virtual destructor to ensure destructors of subclasses get
- /// called.
- virtual ~ACE_Name_Space (void);
-
- /// Bind a new name to a naming context (Wide character strings).
- virtual int bind (const ACE_NS_WString &name_in,
- const ACE_NS_WString &value_in,
- const char *type_in = "") = 0;
-
-
- /**
- * Overwrite the value or type of an existing name in a
- * ACE_Name_Space or bind a new name to the context, if it didn't
- * exist yet. (Wide charcter strings interface).
- */
- virtual int rebind (const ACE_NS_WString &name_in,
- const ACE_NS_WString &value_in,
- const char *type_in = "") = 0;
-
- /// Delete a name from a ACE_Name_Space (Wide charcter strings
- /// Interface).
- virtual int unbind (const ACE_NS_WString &name_in) = 0;
-
- /// Get value and type of a given name binding (Wide chars). The
- /// caller is responsible for deleting both <value_out> and <type_out>!
- virtual int resolve (const ACE_NS_WString &name_in,
- ACE_NS_WString &value_out,
- char *&type_out) = 0;
-
- /// Get a set of names matching a specified pattern (wchars). Matching
- /// means the names must begin with the pattern string.
- virtual int list_names (ACE_WSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in) = 0;
-
- /// Get a set of values matching a specified pattern (wchars). Matching
- /// means the values must begin with the pattern string.
- virtual int list_values (ACE_WSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in) = 0;
-
- /// Get a set of types matching a specified pattern (wchars). Matching
- /// means the types must begin with the pattern string.
- virtual int list_types (ACE_WSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in) = 0;
-
- /**
- * Get a set of names matching a specified pattern (wchars). Matching
- * means the names must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_name_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern) = 0;
-
- /**
- * Get a set of values matching a specified pattern (wchars). Matching
- * means the values must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_value_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern) = 0;
-
- /**
- * Get a set of types matching a specified pattern (wchars). Matching
- * means the types must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_type_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern) = 0;
-
- /// Dump the state of the object
- virtual void dump (void) const = 0;
-};
-
-#include "ace/post.h"
-#endif /* ACE_NAME_SPACE_H */
diff --git a/ace/Naming_Context.cpp b/ace/Naming_Context.cpp
deleted file mode 100644
index c3d682592c8..00000000000
--- a/ace/Naming_Context.cpp
+++ /dev/null
@@ -1,694 +0,0 @@
-// $Id$
-
-#include "ace/Get_Opt.h"
-#include "ace/Naming_Context.h"
-#include "ace/Remote_Name_Space.h"
-#include "ace/Local_Name_Space_T.h"
-#include "ace/Registry_Name_Space.h"
-#include "ace/Memory_Pool.h"
-#include "ace/RW_Process_Mutex.h"
-
-ACE_RCSID(ace, Naming_Context, "$Id$")
-
-// Make life easier later on...
-
-typedef ACE_Local_Name_Space <ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> LOCAL_NAME_SPACE;
-typedef ACE_Local_Name_Space <ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> LITE_LOCAL_NAME_SPACE;
-
-// The following Factory is used by the ACE_Service_Config and
-// svc.conf file to dynamically initialize the state of the Name
-// Server client.
-
-ACE_FACTORY_DEFINE (ACE, ACE_Naming_Context)
-ACE_STATIC_SVC_DEFINE (ACE_Naming_Context,
- ACE_LIB_TEXT ("ACE_Naming_Context"),
- ACE_SVC_OBJ_T,
- &ACE_SVC_NAME (ACE_Naming_Context),
- ACE_Service_Type::DELETE_THIS |
- ACE_Service_Type::DELETE_OBJ,
- 0)
-ACE_STATIC_SVC_REQUIRE (ACE_Naming_Context)
-
-// The ACE_Naming_Context static service object is now defined
-// by the ACE_Object_Manager, in Object_Manager.cpp.
-
-int
-ACE_Naming_Context::info (ACE_TCHAR **strp,
- size_t length) const
-{
- ACE_TRACE ("ACE_Naming_Context::info");
- ACE_UNUSED_ARG (length);
- ACE_TCHAR buf[BUFSIZ];
-
- ACE_OS::sprintf (buf,
- ACE_LIB_TEXT ("%s\t#%s\n"),
- ACE_LIB_TEXT ("ACE_Naming_Context"),
- ACE_LIB_TEXT ("Proxy for making calls to a Name Server"));
-
- if (*strp == 0 && (*strp = ACE_OS_String::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS_String::strsncpy (*strp, buf, length);
- return ACE_static_cast (int, ACE_OS_String::strlen (buf));
-}
-
-int
-ACE_Naming_Context::local (void)
-{
- ACE_TRACE ("ACE_Naming_Context::local");
- return ACE_OS::strcmp (this->netnameserver_host_,
- ACE_LIB_TEXT ("localhost")) == 0
- || ACE_OS::strcmp (this->netnameserver_host_,
- this->hostname_) == 0;
-}
-
-int
-ACE_Naming_Context::open (Context_Scope_Type scope_in, int lite)
-{
- ACE_TRACE ("ACE_Naming_Context::open");
- ACE_OS::hostname (this->hostname_,
- (sizeof this->hostname_ / sizeof (ACE_TCHAR)));
-
- this->netnameserver_host_ =
- this->name_options_->nameserver_host ();
- this->netnameserver_port_ =
- this->name_options_->nameserver_port ();
-
- // Perform factory operation to select appropriate type of
- // Name_Space subclass.
-
-#if (defined (ACE_WIN32) && defined (UNICODE))
-// This only works on Win32 platforms when UNICODE is turned on
-
- if (this->name_options_->use_registry ())
- // Use ACE_Registry
- ACE_NEW_RETURN (this->name_space_,
- ACE_Registry_Name_Space (this->name_options_),
- -1);
-#endif /* ACE_WIN32 && UNICODE */
- if (!this->name_options_->use_registry ())
- if (scope_in == ACE_Naming_Context::NET_LOCAL && this->local () == 0)
- {
- // Use NET_LOCAL name space, set up connection with remote server.
- ACE_NEW_RETURN (this->name_space_,
- ACE_Remote_Name_Space (this->netnameserver_host_,
- (u_short) this->netnameserver_port_),
- -1);
- }
- else // Use NODE_LOCAL or PROC_LOCAL name space.
- {
- if (lite)
- ACE_NEW_RETURN (this->name_space_,
- LITE_LOCAL_NAME_SPACE (scope_in,
- this->name_options_),
- -1);
- else
- ACE_NEW_RETURN (this->name_space_,
- LOCAL_NAME_SPACE (scope_in,
- this->name_options_),
- -1);
- }
-
- if (ACE_LOG_MSG->op_status () != 0 || this->name_space_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("NAME_SPACE::NAME_SPACE\n")),
- -1);
- return 0;
-}
-
-int
-ACE_Naming_Context::close_down (void)
-{
- ACE_TRACE ("ACE_Naming_Context::close_down");
-
- delete this->name_options_;
- this->name_options_ = 0;
-
- return this->close ();
-}
-
-int
-ACE_Naming_Context::close (void)
-{
- ACE_TRACE ("ACE_Naming_Context::close");
-
- delete this->name_space_;
- this->name_space_ = 0;
-
- return 0;
-}
-
-ACE_Naming_Context::ACE_Naming_Context (void)
- : name_options_ (0),
- name_space_ (0)
-{
- ACE_TRACE ("ACE_Naming_Context::ACE_Naming_Context");
-
- ACE_NEW (this->name_options_,
- ACE_Name_Options);
-}
-
-ACE_Naming_Context::ACE_Naming_Context (Context_Scope_Type scope_in,
- int lite)
- : name_options_ (0),
- name_space_ (0)
-{
- ACE_TRACE ("ACE_Naming_Context::ACE_Naming_Context");
-
- ACE_NEW (this->name_options_,
- ACE_Name_Options);
-
- // Initialize.
- if (this->open (scope_in, lite) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Naming_Context::ACE_Naming_Context")));
-}
-
-ACE_Name_Options *
-ACE_Naming_Context::name_options (void)
-{
- return this->name_options_;
-}
-
-int
-ACE_Naming_Context::bind (const ACE_NS_WString &name_in,
- const ACE_NS_WString &value_in,
- const char *type_in)
-{
- ACE_TRACE ("ACE_Naming_Context::bind");
- return this->name_space_->bind (name_in, value_in, type_in);
-}
-
-int
-ACE_Naming_Context::bind (const char *name_in,
- const char *value_in,
- const char *type_in)
-{
- ACE_TRACE ("ACE_Naming_Context::bind");
- return this->bind (ACE_NS_WString (name_in),
- ACE_NS_WString (value_in),
- type_in);
-}
-
-int
-ACE_Naming_Context::rebind (const ACE_NS_WString &name_in,
- const ACE_NS_WString &value_in,
- const char *type_in)
-{
- ACE_TRACE ("ACE_Naming_Context::rebind");
- return this->name_space_->rebind (name_in,
- value_in,
- type_in);
-}
-
-int
-ACE_Naming_Context::rebind (const char *name_in,
- const char *value_in,
- const char *type_in)
-{
- ACE_TRACE ("ACE_Naming_Context::rebind");
- return rebind (ACE_NS_WString (name_in),
- ACE_NS_WString (value_in),
- type_in);
-}
-
-int
-ACE_Naming_Context::resolve (const ACE_NS_WString &name_in,
- ACE_NS_WString &value_out,
- char *&type_out)
-{
- ACE_TRACE ("ACE_Naming_Context::resolve");
- return this->name_space_->resolve (name_in,
- value_out,
- type_out);
-}
-
-int
-ACE_Naming_Context::resolve (const char *name_in,
- ACE_NS_WString &value_out,
- char *&type_out)
-{
- ACE_TRACE ("ACE_Naming_Context::resolve");
- return this->resolve (ACE_NS_WString (name_in),
- value_out,
- type_out);
-}
-
-int
-ACE_Naming_Context::resolve (const char *name_in,
- char *&value_out,
- char *&type_out)
-{
- ACE_TRACE ("ACE_Naming_Context::resolve");
- ACE_NS_WString val_str;
-
- if (this->resolve (ACE_NS_WString (name_in),
- val_str,
- type_out) == -1)
- return -1;
-
- // Note that <char_rep> *allocates* the memory! Thus, caller is
- // responsible for deleting it!
- value_out = val_str.char_rep ();
-
- return value_out == 0 ? -1 : 0;
-}
-
-int
-ACE_Naming_Context::unbind (const ACE_NS_WString &name_in)
-{
- ACE_TRACE ("ACE_Naming_Context::unbind");
- return this->name_space_->unbind (name_in);
-}
-
-int
-ACE_Naming_Context::unbind (const char *name_in)
-{
- ACE_TRACE ("ACE_Naming_Context::unbind");
- return this->unbind (ACE_NS_WString (name_in));
-}
-
-int
-ACE_Naming_Context::list_names (ACE_PWSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in)
-{
- ACE_TRACE ("ACE_Naming_Context::list_names");
- return this->name_space_->list_names (set_out,
- pattern_in);
-}
-
-int
-ACE_Naming_Context::list_names (ACE_PWSTRING_SET &set_out,
- const char *pattern_in)
-{
- ACE_TRACE ("ACE_Naming_Context::list_names");
- return this->list_names (set_out,
- ACE_NS_WString (pattern_in));
-}
-
-int
-ACE_Naming_Context::list_values (ACE_PWSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in)
-{
- ACE_TRACE ("ACE_Naming_Context::list_values");
- return this->name_space_->list_values (set_out,
- pattern_in);
-}
-
-int
-ACE_Naming_Context::list_values (ACE_PWSTRING_SET &set_out,
- const char *pattern_in)
-{
- ACE_TRACE ("ACE_Naming_Context::list_values");
- return this->list_values (set_out,
- ACE_NS_WString (pattern_in));
-}
-
-int
-ACE_Naming_Context::list_types (ACE_PWSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in)
-{
- ACE_TRACE ("ACE_Naming_Context::list_types");
- return this->name_space_->list_types (set_out,
- pattern_in);
-}
-
-int
-ACE_Naming_Context::list_types (ACE_PWSTRING_SET &set_out,
- const char *pattern_in)
-{
- ACE_TRACE ("ACE_Naming_Context::list_types");
- return this->list_types (set_out,
- ACE_NS_WString (pattern_in));
-}
-
-int
-ACE_Naming_Context::list_name_entries (ACE_BINDING_SET &set_out,
- const ACE_NS_WString &pattern_in)
-{
- ACE_TRACE ("ACE_Naming_Context::list_name_entries");
- return this->name_space_->list_name_entries (set_out,
- pattern_in);
-}
-
-int
-ACE_Naming_Context::list_name_entries (ACE_BINDING_SET &set_out,
- const char *pattern_in)
-{
- ACE_TRACE ("ACE_Naming_Context::list_name_entries");
- return this->list_name_entries (set_out,
- ACE_NS_WString (pattern_in));
-}
-
-int
-ACE_Naming_Context::list_value_entries (ACE_BINDING_SET &set_out,
- const ACE_NS_WString &pattern_in)
-{
- ACE_TRACE ("ACE_Naming_Context::list_value_entries");
- return this->name_space_->list_value_entries (set_out,
- pattern_in);
-}
-
-int
-ACE_Naming_Context::list_value_entries (ACE_BINDING_SET &set_out,
- const char *pattern_in)
-{
- ACE_TRACE ("ACE_Naming_Context::list_value_entries");
- return this->list_value_entries (set_out,
- ACE_NS_WString (pattern_in));
-}
-
-int
-ACE_Naming_Context::list_type_entries (ACE_BINDING_SET &set_out,
- const ACE_NS_WString &pattern_in)
-{
- ACE_TRACE ("ACE_Naming_Context::list_type_entries");
- return this->name_space_->list_type_entries (set_out,
- pattern_in);
-}
-
-int
-ACE_Naming_Context::list_type_entries (ACE_BINDING_SET &set_out,
- const char *pattern_in)
-{
- ACE_TRACE ("ACE_Naming_Context::list_type_entries");
- return this->list_type_entries (set_out,
- ACE_NS_WString (pattern_in));
-}
-
-ACE_Naming_Context::~ACE_Naming_Context (void)
-{
- ACE_TRACE ("ACE_Naming_Context::~ACE_Naming_Context");
-
- this->close_down ();
-}
-
-void
-ACE_Naming_Context::dump ()
-{
- ACE_TRACE ("ACE_Naming_Context::dump");
- this->name_space_->dump();
-}
-
-int
-ACE_Naming_Context::init (int argc, ACE_TCHAR *argv[])
-{
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("ACE_Naming_Context::init\n")));
- this->name_options_->parse_args (argc, argv);
- return this->open (this->name_options_->context ());
-}
-
-int
-ACE_Naming_Context::fini (void)
-{
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("ACE_Naming_Context::fini\n")));
- this->close_down ();
- return 0;
-}
-
-ACE_Name_Options::ACE_Name_Options (void)
- : debugging_ (0),
- verbosity_ (0),
- use_registry_ (0),
- nameserver_port_ (ACE_DEFAULT_SERVER_PORT),
- nameserver_host_ (ACE_OS::strdup (ACE_DEFAULT_SERVER_HOST)),
- process_name_ (0),
- database_ (ACE_OS::strdup (ACE_DEFAULT_LOCALNAME)),
- base_address_ (ACE_DEFAULT_BASE_ADDR)
-{
- ACE_TRACE ("ACE_Name_Options::ACE_Name_Options");
-
-#if defined (ACE_DEFAULT_NAMESPACE_DIR)
- this->namespace_dir_ = ACE_OS::strdup (ACE_DEFAULT_NAMESPACE_DIR);
-#else /* ACE_DEFAULT_NAMESPACE_DIR */
- size_t pathsize = (MAXPATHLEN + 1) * sizeof (ACE_TCHAR);
- this->namespace_dir_ = ACE_static_cast (ACE_TCHAR *, ACE_OS::malloc (pathsize));
-
- if (ACE_Lib_Find::get_temp_dir (this->namespace_dir_, MAXPATHLEN) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Temporary path too long, ")
- ACE_LIB_TEXT ("defaulting to current directory\n")));
- ACE_OS::strcat (this->namespace_dir_, ACE_LIB_TEXT ("."));
- ACE_OS::strcat (this->namespace_dir_, ACE_DIRECTORY_SEPARATOR_STR);
- }
-#endif /* ACE_DEFAULT_NAMESPACE_DIR */
-}
-
-ACE_Name_Options::~ACE_Name_Options (void)
-{
- ACE_TRACE ("ACE_Name_Options::~ACE_Name_Options");
-
- ACE_OS::free ((void *) this->nameserver_host_);
- ACE_OS::free ((void *) this->namespace_dir_ );
- ACE_OS::free ((void *) this->process_name_ );
- ACE_OS::free ((void *) this->database_ );
-}
-
-void
-ACE_Name_Options::nameserver_port (int port)
-{
- ACE_TRACE ("ACE_Name_Options::nameserver_port");
- this->nameserver_port_ = port;
-}
-
-int
-ACE_Name_Options::nameserver_port (void)
-{
- ACE_TRACE ("ACE_Name_Options::nameserver_port");
- return this->nameserver_port_;
-}
-
-void
-ACE_Name_Options::namespace_dir (const ACE_TCHAR *dir)
-{
- ACE_TRACE ("ACE_Name_Options::namespace_dir");
- ACE_OS::free ((void *) this->namespace_dir_ );
- this->namespace_dir_ = ACE_OS::strdup (dir);
-}
-
-void
-ACE_Name_Options::process_name (const ACE_TCHAR *pname)
-{
- ACE_TRACE ("ACE_Name_Options::process_name");
- const ACE_TCHAR *t = ACE::basename (pname, ACE_DIRECTORY_SEPARATOR_CHAR);
- ACE_OS::free ((void *) this->process_name_ );
- this->process_name_ = ACE_OS::strdup (t);
-}
-
-void
-ACE_Name_Options::nameserver_host (const ACE_TCHAR *host)
-{
- ACE_TRACE ("ACE_Name_Options::nameserver_host");
- ACE_OS::free ((void *) this->nameserver_host_);
- this->nameserver_host_ = ACE_OS::strdup (host);
-}
-
-const ACE_TCHAR *
-ACE_Name_Options::nameserver_host (void)
-{
- ACE_TRACE ("ACE_Name_Options::nameserver_host");
- return this->nameserver_host_;
-}
-
-const ACE_TCHAR *
-ACE_Name_Options::database (void)
-{
- ACE_TRACE ("ACE_Name_Options::database");
- return this->database_;
-}
-
-void
-ACE_Name_Options::database (const ACE_TCHAR *db)
-{
- ACE_TRACE ("ACE_Name_Options::database");
- ACE_OS::free ((void *) this->database_);
- this->database_ = ACE_OS::strdup (db);
-}
-
-char *
-ACE_Name_Options::base_address (void)
-{
- ACE_TRACE ("ACE_Name_Options::base_address");
- return this->base_address_;
-}
-
-void
-ACE_Name_Options::base_address (char *base_address)
-{
- ACE_TRACE ("ACE_Name_Options::base_address");
- // HP-UX 11, aC++ has a bug with 64-bit pointer initialization from
- // a literal. To work around it, assign the literal to a long, then
- // to the pointer. This is allegedly fixed in aC++ A.03.10.
-#if defined (__hpux) && defined(__LP64__)
- long temp = ACE_DEFAULT_BASE_ADDRL;
- base_address = (char *) temp;
-#endif /* defined (__hpux) && defined(__LP64__) */
- this->base_address_ = base_address;
-}
-
-ACE_Naming_Context::Context_Scope_Type
-ACE_Name_Options::context (void)
-{
- ACE_TRACE ("ACE_Name_Options::context");
- return this->context_;
-}
-
-void
-ACE_Name_Options::context (ACE_Naming_Context::Context_Scope_Type context)
-{
- ACE_TRACE ("ACE_Name_Options::context");
- this->context_ = context;
-}
-
-const ACE_TCHAR *
-ACE_Name_Options::process_name (void)
-{
- ACE_TRACE ("ACE_Name_Options::process_name");
- return this->process_name_;
-}
-
-const ACE_TCHAR *
-ACE_Name_Options::namespace_dir (void)
-{
- ACE_TRACE ("ACE_Name_Options::namespace_dir");
- return this->namespace_dir_;
-}
-
-int
-ACE_Name_Options::debug (void)
-{
- ACE_TRACE ("ACE_Name_Options::debug");
- return this->debugging_;
-}
-
-int
-ACE_Name_Options::use_registry (void)
-{
- ACE_TRACE ("ACE_Name_Options::use_registry");
- return this->use_registry_;
-}
-
-void
-ACE_Name_Options::use_registry (int x)
-{
- ACE_TRACE ("ACE_Name_Options::use_registry");
- this->use_registry_ = x;
-}
-
-int
-ACE_Name_Options::verbose (void)
-{
- ACE_TRACE ("ACE_Name_Options::verbose");
- return this->verbosity_;
-}
-
-void
-ACE_Name_Options::parse_args (int argc, ACE_TCHAR *argv[])
-{
- ACE_TRACE ("ACE_Name_Options::parse_args");
- ACE_LOG_MSG->open (argv[0]);
- this->process_name (argv[0]);
-
- // Default is to use the PROC_LOCAL context...
- this->context (ACE_Naming_Context::PROC_LOCAL);
-
- // Make the database name the same as the process name by default
- // (note that this makes a copy of the process_name_ so that we can
- // clean it up in the destructor).
- this->database (this->process_name ());
-
- ACE_Get_Opt get_opt (argc, argv, ACE_LIB_TEXT ("b:c:dh:l:P:p:s:T:vr"));
-
- for (int c; (c = get_opt ()) != -1; )
- switch (c)
- {
- case 'c':
- {
- if (ACE_OS::strcmp (get_opt.opt_arg (), ACE_LIB_TEXT ("PROC_LOCAL")) == 0)
- this->context (ACE_Naming_Context::PROC_LOCAL);
- else if (ACE_OS::strcmp (get_opt.opt_arg (), ACE_LIB_TEXT ("NODE_LOCAL")) == 0)
- this->context (ACE_Naming_Context::NODE_LOCAL);
- else if (ACE_OS::strcmp (get_opt.opt_arg (), ACE_LIB_TEXT ("NET_LOCAL")) == 0)
- this->context (ACE_Naming_Context::NET_LOCAL);
- }
- break;
- case 'd':
- this->debugging_ = 1;
- break;
- case 'r':
- this->use_registry_ = 1;
- break;
- case 'h':
- this->nameserver_host (get_opt.opt_arg ());
- break;
- case 'l':
- this->namespace_dir (get_opt.opt_arg ());
- break;
- case 'P':
- this->process_name (get_opt.opt_arg ());
- break;
- case 'p':
- this->nameserver_port (ACE_OS::atoi (get_opt.opt_arg ()));
- break;
- case 's':
- this->database (get_opt.opt_arg ());
- break;
- case 'b':
- this->base_address
- (ACE_static_cast (char *, ACE_OS::atop (get_opt.opt_arg ())));
- break;
- case 'T':
- if (ACE_OS::strcasecmp (get_opt.opt_arg (), ACE_LIB_TEXT ("ON")) == 0)
- ACE_Trace::start_tracing ();
- else if (ACE_OS::strcasecmp (get_opt.opt_arg (), ACE_LIB_TEXT ("OFF")) == 0)
- ACE_Trace::stop_tracing ();
- break;
- case 'v':
- this->verbosity_ = 1;
- break;
- default:
- ACE_OS::fprintf (stderr, "%s\n"
- "\t[-d] (enable debugging)\n"
- "\t[-h nameserver host]\n"
- "\t[-l namespace directory]\n"
- "\t[-P processname]\n"
- "\t[-p nameserver port]\n"
- "\t[-s database name]\n"
- "\t[-b base address]\n"
- "\t[-v] (verbose) \n"
- "\t[-r] (use Win32 Registry) \n",
- argv[0]);
- /* NOTREACHED */
- break;
- }
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Local_Name_Space <ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex>;
-template class ACE_Local_Name_Space <ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex>;
-template class ACE_Malloc<ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex>;
-template class ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex>;
-template class ACE_Malloc_T<ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex, ACE_Control_Block>;
-template class ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex, ACE_Control_Block>;
-template class ACE_Allocator_Adapter<ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> >;
-template class ACE_Allocator_Adapter<ACE_Malloc<ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> >;
-template class ACE_Name_Space_Map <ACE_Allocator_Adapter <ACE_Malloc <ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> > >;
-template class ACE_Name_Space_Map <ACE_Allocator_Adapter <ACE_Malloc <ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> > >;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Local_Name_Space <ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex>
-#pragma instantiate ACE_Local_Name_Space <ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex>
-#pragma instantiate ACE_Malloc<ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex>
-#pragma instantiate ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex>
-#pragma instantiate ACE_Malloc_T<ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex, ACE_Control_Block>
-#pragma instantiate ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex, ACE_Control_Block>
-#pragma instantiate ACE_Allocator_Adapter<ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> >
-#pragma instantiate ACE_Allocator_Adapter<ACE_Malloc<ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> >
-#pragma instantiate ACE_Name_Space_Map <ACE_Allocator_Adapter <ACE_Malloc <ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> > >
-#pragma instantiate ACE_Name_Space_Map <ACE_Allocator_Adapter <ACE_Malloc <ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> > >
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Naming_Context.h b/ace/Naming_Context.h
deleted file mode 100644
index 1e06892c6b2..00000000000
--- a/ace/Naming_Context.h
+++ /dev/null
@@ -1,380 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Naming_Context.h
- *
- * $Id$
- *
- * @author Gerhard Lenzer
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author and Prashant Jain <pjain@uci.edu>
- */
-//==========================================================================
-
-#ifndef ACE_NAMING_CONTEXT_H
-#define ACE_NAMING_CONTEXT_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SString.h"
-#include "ace/Containers.h"
-#include "ace/Service_Object.h"
-#include "ace/Name_Proxy.h"
-#include "ace/Name_Space.h"
-
-// Forward decl
-class ACE_Name_Options;
-
-/**
- * @class ACE_Naming_Context
- *
- * @brief Maintaining accesses Name Server Databases. Allows to add
- * NameBindings, change them, remove them and resolve
- * NameBindings
- *
- * Manages a Naming Service . That represents a persistent
- * string to string mapping for different scopes. The scope of a
- * ACE_Naming_Context may be either local for the calling
- * process (Note : A process is hereby not identified by it's
- * pid, but by it's argv[0]. So different processes (in UNIX
- * syntax) may access the same NameBindings), global for all
- * processes running on one host or global for all processes on
- * the net (that know the address of the net name server
- * socket). Strings may be plain character strings or Wide
- * character strings. A Name Binding consists of a name string
- * (that's the key), a value string and an optional type string
- * (no wide chars).
- */
-class ACE_Export ACE_Naming_Context : public ACE_Service_Object
-{
-public:
- enum Context_Scope_Type
- {
- /// Name lookup is local to the process.
- PROC_LOCAL,
- /// Name lookup is local to the node (host).
- NODE_LOCAL,
- /// Name lookup is local to the (sub)network.
- NET_LOCAL
- };
-
- // = Initialization and termination methods.
- /// "Do-nothing" constructor.
- ACE_Naming_Context (void);
-
- /**
- * Specifies the scope of this namespace, opens and memory-maps the
- * associated file (if accessible) or contacts the dedicated name
- * server process for NET_LOCAL namespace. Note that <light>
- * specifies whether or not we want to use
- * ACE_Lite_MMap_Memory_Pool. By default we use ACE_MMap_Memory_Pool.
- */
- ACE_Naming_Context (Context_Scope_Type scope_in, int light = 0);
-
- /**
- * Specifies the scope of this namespace, opens and memory-maps the
- * associated file (if accessible) or contacts the dedicated name
- * server process for NET_LOCAL namespace. Note that <light>
- * specifies whether or not we want to use
- * ACE_Lite_MMap_Memory_Pool. By default we use ACE_MMap_Memory_Pool.
- */
- int open (Context_Scope_Type scope_in = ACE_Naming_Context::PROC_LOCAL,
- int light = 0);
-
- /// Deletes the instance of Name Space. Must be called before
- /// switching name spaces.
- int close (void);
-
- /// Release all resources. Gets called by destructor and fini.
- int close_down (void);
-
- /// destructor, do some cleanup :TBD: last dtor should "compress"
- /// file
- ~ACE_Naming_Context (void);
-
- // = Dynamic initialization hooks.
- /// Initialize name options and naming context when dynamically
- /// linked.
- virtual int init (int argc, ACE_TCHAR *argv[]);
-
- /// Close down the test when dynamically unlinked.
- virtual int fini (void);
-
- /// Returns information about this context.
- virtual int info (ACE_TCHAR **strp, size_t length) const;
-
- /// Returns the ACE_Name_Options associated with the Naming_Context
- ACE_Name_Options *name_options (void);
-
- /// Bind a new name to a naming context (Wide character strings).
- int bind (const ACE_NS_WString &name_in,
- const ACE_NS_WString &value_in,
- const char *type_in = "");
-
- /// Bind a new name to a naming context ( character strings).
- int bind (const char *name_in,
- const char *value_in,
- const char *type_in = "");
-
- /**
- * Overwrite the value or type of an existing name in a
- * ACE_Naming_Context or bind a new name to the context, if it
- * didn't exist yet. (Wide charcter strings interface).
- */
- int rebind (const ACE_NS_WString &name_in,
- const ACE_NS_WString &value_in,
- const char *type_in = "");
-
- /**
- * Overwrite the value or type of an existing name in a
- * ACE_Naming_Context or bind a new name to the context, if it
- * didn't exist yet. ( charcter strings interface)
- */
- int rebind (const char *name_in,
- const char *value_in,
- const char *type_in = "");
-
- /// Delete a name from a ACE_Naming_Context (Wide charcter strings
- /// Interface).
- int unbind (const ACE_NS_WString &name_in);
-
- /// Delete a name from a ACE_Naming_Context (character strings
- /// interface).
- int unbind (const char *name_in);
-
- /// Get value and type of a given name binding (Wide chars). The
- /// caller is responsible for deleting both <value_out> and <type_out>!
- int resolve (const ACE_NS_WString &name_in,
- ACE_NS_WString &value_out,
- char *&type_out);
-
- /**
- * Get value and type of a given name binding (Wide chars output).
- * The caller is responsible for deleting both <value_out> and
- * <type_out>!
- */
- int resolve (const char *name_in,
- ACE_NS_WString &value_out,
- char *&type_out);
-
- /// Get value and type of a given name binding ( chars ). The caller
- /// is responsible for deleting both <value_out> and <type_out>!
- int resolve (const char *name_in,
- char *&value_out,
- char *&type_out);
-
- /// Get a set of names matching a specified pattern (wchars). Matching
- /// means the names must begin with the pattern string.
- int list_names (ACE_PWSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in);
-
- /// Get a set of names matching a specified pattern (chars). Matching
- /// means the names must begin with the pattern string.
- int list_names (ACE_PWSTRING_SET &set_out,
- const char *pattern_in);
-
- /// Get a set of values matching a specified pattern (wchars). Matching
- /// means the values must begin with the pattern string.
- int list_values (ACE_PWSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in);
-
- /// Get a set of values matching a specified pattern (chars). Matching
- /// means the values must begin with the pattern string.
- int list_values (ACE_PWSTRING_SET &set_out,
- const char *pattern_in);
-
- /// Get a set of types matching a specified pattern (wchars). Matching
- /// means the types must begin with the pattern string.
- int list_types (ACE_PWSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in);
-
- /// Get a set of types matching a specified pattern (chars). Matching
- /// means the types must begin with the pattern string.
- int list_types (ACE_PWSTRING_SET &set_out,
- const char *pattern_in);
-
- /**
- * Get a set of names matching a specified pattern (wchars). Matching
- * means the names must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_name_entries (ACE_BINDING_SET &set_out,
- const ACE_NS_WString &pattern_in);
-
- /**
- * Get a set of names matching a specified pattern (wchars). Matching
- * means the names must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_name_entries (ACE_BINDING_SET &set_out,
- const char *pattern_in);
-
- /**
- * Get a set of values matching a specified pattern (wchars). Matching
- * means the values must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_value_entries (ACE_BINDING_SET &set_out,
- const ACE_NS_WString &pattern_in);
-
- /**
- * Get a set of values matching a specified pattern (wchars). Matching
- * means the values must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_value_entries (ACE_BINDING_SET &set_out,
- const char *pattern_in);
-
- /**
- * Get a set of types matching a specified pattern (wchars). Matching
- * means the types must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_type_entries (ACE_BINDING_SET &set_out,
- const ACE_NS_WString &pattern_in);
-
- /**
- * Get a set of types matching a specified pattern (wchars). Matching
- * means the types must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_type_entries (ACE_BINDING_SET &set_out,
- const char *pattern_in);
-
- /// Dump the state of the object.
- void dump (void);
-
-private:
- /// Keep track of the options such as database name etc per Naming Context
- ACE_Name_Options *name_options_;
-
- /// Name space (can be either local or remote) dynamically bound.
- ACE_Name_Space *name_space_;
-
- /// Holds the local hostname.
- ACE_TCHAR hostname_[MAXHOSTNAMELEN + 1];
-
- /// Holds name of net name server.
- const ACE_TCHAR *netnameserver_host_;
-
- /// Holds port number of the net name server.
- int netnameserver_port_;
-
- /// 1 if we're on the same local machine as the name server, else 0.
- int local (void);
-
-};
-
-/**
- * @class ACE_Name_Options
- *
- * @brief Manages the options for the ACE Name_Server.
- */
-class ACE_Export ACE_Name_Options
-{
-public:
- // = Initialization and termination methods.
- ACE_Name_Options (void);
- ~ACE_Name_Options (void);
-
- /// Parse arguments.
- void parse_args (int argc,
- ACE_TCHAR *argv[]);
-
- /// Set the port number
- void nameserver_port (int port);
-
- /// Get the port number
- int nameserver_port (void);
-
- /// Get the context
- ACE_Naming_Context::Context_Scope_Type context (void);
-
- /// Set the context
- void context (ACE_Naming_Context::Context_Scope_Type);
-
- /// Set the host name
- void nameserver_host (const ACE_TCHAR *host);
-
- /// Get the host name
- const ACE_TCHAR *nameserver_host (void);
-
- /// Set name space directory
- void namespace_dir (const ACE_TCHAR *dir);
-
- /// Get name space directory
- const ACE_TCHAR *namespace_dir (void);
-
- /// Set process name
- void process_name (const ACE_TCHAR *dir);
-
- /// Get process name
- const ACE_TCHAR *process_name (void);
-
- /// Set database name
- void database (const ACE_TCHAR *);
-
- /// Get database name
- const ACE_TCHAR *database (void);
-
- /// Set base address of the underlying allocator
- void base_address (char *address);
-
- /// Get base address of the underlying allocator
- char *base_address (void);
-
- /// Get use of registry in naming
- int use_registry (void);
-
- /// Set use of registry in naming
- void use_registry (int);
-
- /// Return debug status
- int debug (void);
-
- /// Return verbose status
- int verbose (void);
-
-private:
- /// Extra debugging info
- int debugging_;
-
- /// Extra verbose messages
- int verbosity_;
-
- /// Use Win32 Registry
- int use_registry_;
-
- /// Port to connect to nameserver process.
- int nameserver_port_;
-
- /// Hostname of nameserver.
- const ACE_TCHAR *nameserver_host_;
-
- /// Directory to hold name_bindings.
- ACE_TCHAR *namespace_dir_;
-
- /// Name of this process.
- const ACE_TCHAR *process_name_;
-
- /// Name of the database that stores the name/value/type bindings.
- const ACE_TCHAR *database_;
-
- /// Base address of the underlying allocator
- char *base_address_;
-
- /// The context in which the naming database will be created.
- ACE_Naming_Context::Context_Scope_Type context_;
-};
-
-ACE_FACTORY_DECLARE (ACE, ACE_Naming_Context)
-ACE_STATIC_SVC_DECLARE_EXPORT (ACE,ACE_Naming_Context)
-
-#include "ace/post.h"
-#endif /* ACE_NAMING_CONTEXT_H */
diff --git a/ace/Node.cpp b/ace/Node.cpp
deleted file mode 100644
index f13b18cde86..00000000000
--- a/ace/Node.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// $Id$
-
-#ifndef ACE_NODE_C
-#define ACE_NODE_C
-
-#include "ace/Node.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, Node, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Node)
-
-# if ! defined (ACE_HAS_BROKEN_NOOP_DTORS)
- template <class T>
-ACE_Node<T>::~ACE_Node (void)
-{
-}
-# endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */
-
-template <class T>
-ACE_Node<T>::ACE_Node (const T &i, ACE_Node<T> *n)
- : next_ (n),
- item_ (i),
- deleted_ (false)
-{
- // ACE_TRACE ("ACE_Node<T>::ACE_Node");
-}
-
-template <class T>
-ACE_Node<T>::ACE_Node (ACE_Node<T> *n, int)
- : next_ (n),
- deleted_ (false)
-{
- // ACE_TRACE ("ACE_Node<T>::ACE_Node");
-}
-
-template <class T>
-ACE_Node<T>::ACE_Node (const ACE_Node<T> &s)
- : next_ (s.next_),
- item_ (s.item_),
- deleted_ (false)
-{
- // ACE_TRACE ("ACE_Node<T>::ACE_Node");
-}
-
-#endif /* ACE_NODE_C */
diff --git a/ace/Node.h b/ace/Node.h
deleted file mode 100644
index 932997fcd35..00000000000
--- a/ace/Node.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Node.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_NODE_H
-#define ACE_NODE_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Forward declarations.
-template <class T> class ACE_Unbounded_Set;
-template <class T> class ACE_Unbounded_Set_Iterator;
-template <class T> class ACE_Unbounded_Set_Const_Iterator;
-template <class T> class ACE_Unbounded_Set_Ex;
-template <class T> class ACE_Unbounded_Set_Ex_Iterator;
-template <class T> class ACE_Unbounded_Set_Ex_Const_Iterator;
-template <class T> class ACE_Unbounded_Queue;
-template <class T> class ACE_Unbounded_Queue_Iterator;
-template <class T> class ACE_Unbounded_Stack;
-template <class T> class ACE_Unbounded_Stack_Iterator;
-
-/**
- * @class ACE_Node
- *
- * @brief Implementation element in a Queue, Set, and Stack.
- */
-template<class T>
-class ACE_Node
-{
-public:
- friend class ACE_Unbounded_Queue<T>;
- friend class ACE_Unbounded_Queue_Iterator<T>;
- friend class ACE_Unbounded_Set<T>;
- friend class ACE_Unbounded_Set_Iterator<T>;
- friend class ACE_Unbounded_Set_Const_Iterator<T>;
- friend class ACE_Unbounded_Set_Ex<T>;
- friend class ACE_Unbounded_Set_Ex_Iterator<T>;
- friend class ACE_Unbounded_Set_Ex_Const_Iterator<T>;
- friend class ACE_Unbounded_Stack<T>;
- friend class ACE_Unbounded_Stack_Iterator<T>;
-
-# if ! defined (ACE_HAS_BROKEN_NOOP_DTORS)
- /// This isn't necessary, but it keeps some compilers happy.
- ~ACE_Node (void);
-# endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */
-
-private:
- // = Initialization methods
- ACE_Node (const T &i, ACE_Node<T> *n);
- ACE_Node (ACE_Node<T> *n = 0, int = 0);
- ACE_Node (const ACE_Node<T> &n);
-
- /// Pointer to next element in the list of <ACE_Node>s.
- ACE_Node<T> *next_;
-
- /// Current value of the item in this node.
- T item_;
-
- /// Flag that indicates whether this node is deleted.
- int deleted_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Node.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Node.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_NODE_H */
diff --git a/ace/Notification_Strategy.cpp b/ace/Notification_Strategy.cpp
deleted file mode 100644
index 77d5dc235b0..00000000000
--- a/ace/Notification_Strategy.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "ace/Notification_Strategy.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Notification_Strategy.inl"
-#endif /* __ACE_INLINE __ */
-
-ACE_RCSID(ace, Strategies, "$Id$")
-
-ACE_Notification_Strategy::ACE_Notification_Strategy (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
- : eh_ (eh),
- mask_ (mask)
-{
-}
-
-ACE_Notification_Strategy::~ACE_Notification_Strategy (void)
-{
-}
diff --git a/ace/Notification_Strategy.h b/ace/Notification_Strategy.h
deleted file mode 100644
index 5ac5d304978..00000000000
--- a/ace/Notification_Strategy.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- C++ -*- */
-//=============================================================================
-/**
- * @file Notification_Strategy.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-#ifndef ACE_NOTIFICATION_STRATEGY_H
-#define ACE_NOTIFICATION_STRATEGY_H
-#include "ace/pre.h"
-
-#include "ace/Event_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Forward decls.
-class ACE_Reactor;
-
-/**
- * @class ACE_Notification_Strategy
- *
- * @brief Abstract class used for notifying an interested party
- *
- * A vehicle for extending the behavior of ACE_Message_Queue wrt
- * notification *without subclassing*. Thus, it's an example of
- * the Bridge/Strategy patterns.
- */
-class ACE_Export ACE_Notification_Strategy
-{
-public:
- /// Constructor.
- ACE_Notification_Strategy (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask);
-
- /// Destructor.
- virtual ~ACE_Notification_Strategy (void);
-
- virtual int notify (void) = 0;
- virtual int notify (ACE_Event_Handler *,
- ACE_Reactor_Mask mask) = 0;
-
- /// Get the event handler.
- ACE_Event_Handler *event_handler (void);
-
- /// Set the event handler.
- void event_handler (ACE_Event_Handler *eh);
-
- /// Get the reactor mask.
- ACE_Reactor_Mask mask (void) const;
-
- /// Set the reactor mask.
- void mask (ACE_Reactor_Mask m);
-
-protected:
- /// The event handler.
- ACE_Event_Handler *eh_;
-
- /// The reactor mask.
- ACE_Reactor_Mask mask_;
-};
-
-
-#if defined (__ACE_INLINE__)
-#include "ace/Notification_Strategy.inl"
-#endif /* __ACE_INLINE __ */
-
-#include "ace/post.h"
-#endif /*ACE_NOTIFICATION_STRATEGY_H */
diff --git a/ace/Notification_Strategy.inl b/ace/Notification_Strategy.inl
deleted file mode 100644
index fac4b0cd3b6..00000000000
--- a/ace/Notification_Strategy.inl
+++ /dev/null
@@ -1,26 +0,0 @@
-/* -*- C++ -*- */
-//$Id$
-
-ACE_INLINE ACE_Event_Handler *
-ACE_Notification_Strategy::event_handler (void)
-{
- return eh_;
-}
-
-ACE_INLINE void
-ACE_Notification_Strategy::event_handler (ACE_Event_Handler *eh)
-{
- this->eh_ = eh;
-}
-
-ACE_INLINE ACE_Reactor_Mask
-ACE_Notification_Strategy::mask (void) const
-{
- return mask_;
-}
-
-ACE_INLINE void
-ACE_Notification_Strategy::mask (ACE_Reactor_Mask m)
-{
- this->mask_ = m;
-}
diff --git a/ace/OS.cpp b/ace/OS.cpp
deleted file mode 100644
index ef9c4723c2f..00000000000
--- a/ace/OS.cpp
+++ /dev/null
@@ -1,7624 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-#include "ace/Sched_Params.h"
-#include "ace/OS_Thread_Adapter.h"
-
-#if !defined (ACE_HAS_WINCE)
-#include "ace/OS_QoS.h"
-#endif // ACE_HAS_WINCE
-
-// Perhaps we should *always* include ace/OS.i in order to make sure
-// we can always link against the OS symbols?
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "ace/OS.i"
-#endif /* ACE_HAS_INLINED_OS_CALLS */
-
-#if defined(INTEGRITY) && defined(ACE_HAS_SHM_OPEN)
-char* shm_area_name = "ACE_Area";
-char* shm_area_password = "******";
-#endif
-
-ACE_RCSID(ace, OS, "$Id$")
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-# if defined (ACE_HAS_WINCE)
-const wchar_t *ACE_OS::day_of_week_name[] = {ACE_LIB_TEXT ("Sun"), ACE_LIB_TEXT ("Mon"),
- ACE_LIB_TEXT ("Tue"), ACE_LIB_TEXT ("Wed"),
- ACE_LIB_TEXT ("Thu"), ACE_LIB_TEXT ("Fri"),
- ACE_LIB_TEXT ("Sat")};
-const wchar_t *ACE_OS::month_name[] = {ACE_LIB_TEXT ("Jan"), ACE_LIB_TEXT ("Feb"),
- ACE_LIB_TEXT ("Mar"), ACE_LIB_TEXT ("Apr"),
- ACE_LIB_TEXT ("May"), ACE_LIB_TEXT ("Jun"),
- ACE_LIB_TEXT ("Jul"), ACE_LIB_TEXT ("Aug"),
- ACE_LIB_TEXT ("Sep"), ACE_LIB_TEXT ("Oct"),
- ACE_LIB_TEXT ("Nov"), ACE_LIB_TEXT ("Dec") };
-
-static const ACE_TCHAR *ACE_OS_CTIME_R_FMTSTR = ACE_LIB_TEXT ("%3s %3s %02d %02d:%02d:%02d %04d\n");
-# endif /* ACE_HAS_WINCE */
-
-# if defined (ACE_WIN32)
-OSVERSIONINFO ACE_OS::win32_versioninfo_;
-// Cached win32 version information.
-
-HINSTANCE ACE_OS::win32_resource_module_;
-
-# if defined (ACE_OS_HAS_DLL) && (ACE_OS_HAS_DLL == 1) && !defined (ACE_HAS_WINCE)
-// This function is called by the OS when the ACE DLL is loaded. We
-// use it to determine the default module containing ACE's resources.
-BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID)
-{
- if (reason == DLL_PROCESS_ATTACH)
- {
-#if defined (ACE_DISABLES_THREAD_LIBRARY_CALLS) && (ACE_DISABLES_THREAD_LIBRARY_CALLS == 1)
- ::DisableThreadLibraryCalls (instance);
-#endif /* ACE_DISABLES_THREAD_LIBRARY_CALLS */
- ACE_OS::set_win32_resource_module(instance);
- }
- return TRUE;
-}
-# endif /* ACE_OS_HAS_DLL && ACE_OS_HAS_DLL == 1 */
-# endif /* ACE_WIN32 */
-
-/**
- * @class ACE_OS_Thread_Mutex_Guard
- *
- * This data structure is meant to be used within an ACE_OS
- * function. It performs automatic aquisition and release of
- * an ACE_thread_mutex_t.
- *
- * For internal use only by ACE_OS.
- */
-class ACE_OS_Thread_Mutex_Guard
-{
-public:
- /// Implicitly and automatically acquire the lock.
- ACE_OS_Thread_Mutex_Guard (ACE_thread_mutex_t &m);
-
- /// Implicitly release the lock.
- ~ACE_OS_Thread_Mutex_Guard (void);
-
- /// Explicitly acquire the lock.
- int acquire (void);
-
- /// Explicitly release the lock.
- int release (void);
-
-protected:
- /// Reference to the mutex.
- ACE_thread_mutex_t &lock_;
-
- /// Keeps track of whether we acquired the lock or failed.
- int owner_;
-
- // = Prevent assignment and initialization.
- ACE_OS_Thread_Mutex_Guard &operator= (const ACE_OS_Thread_Mutex_Guard &);
- ACE_OS_Thread_Mutex_Guard (const ACE_OS_Thread_Mutex_Guard &);
-};
-
-#if defined (ACE_IS_SPLITTING)
-# define ACE_SPECIAL_INLINE
-#else
-# define ACE_SPECIAL_INLINE inline
-#endif
-
-ACE_SPECIAL_INLINE
-int
-ACE_OS_Thread_Mutex_Guard::acquire (void)
-{
- return owner_ = ACE_OS::thread_mutex_lock (&lock_);
-}
-
-ACE_SPECIAL_INLINE
-int
-ACE_OS_Thread_Mutex_Guard::release (void)
-{
- if (owner_ == -1)
- return 0;
- else
- {
- owner_ = -1;
- return ACE_OS::thread_mutex_unlock (&lock_);
- }
-}
-
-ACE_SPECIAL_INLINE
-ACE_OS_Thread_Mutex_Guard::ACE_OS_Thread_Mutex_Guard (ACE_thread_mutex_t &m)
- : lock_ (m)
-{
- acquire ();
-}
-
-ACE_OS_Thread_Mutex_Guard::~ACE_OS_Thread_Mutex_Guard ()
-{
- release ();
-}
-
-/**
- * @class ACE_OS_Recursive_Thread_Mutex_Guard
- *
- * @brief For internal use only by ACE_OS.
- *
- * This data structure is meant to be used within an ACE_OS
- * function. It performs automatic aquisition and release of
- * an ACE_recursive_thread_mutex_t.
- */
-class ACE_OS_Recursive_Thread_Mutex_Guard
-{
-public:
- /// Implicitly and automatically acquire the lock.
- ACE_OS_Recursive_Thread_Mutex_Guard (ACE_recursive_thread_mutex_t &m);
-
- /// Implicitly release the lock.
- ~ACE_OS_Recursive_Thread_Mutex_Guard (void);
-
- /// Explicitly acquire the lock.
- int acquire (void);
-
- /// Explicitly release the lock.
- int release (void);
-
-protected:
- /// Reference to the mutex.
- ACE_recursive_thread_mutex_t &lock_;
-
- /// Keeps track of whether we acquired the lock or failed.
- int owner_;
-
- // = Prevent assignment and initialization.
- ACE_OS_Recursive_Thread_Mutex_Guard &operator= (
- const ACE_OS_Recursive_Thread_Mutex_Guard &);
- ACE_OS_Recursive_Thread_Mutex_Guard (
- const ACE_OS_Recursive_Thread_Mutex_Guard &);
-};
-
-ACE_SPECIAL_INLINE
-int
-ACE_OS_Recursive_Thread_Mutex_Guard::acquire (void)
-{
- return owner_ = ACE_OS::recursive_mutex_lock (&lock_);
-}
-
-ACE_SPECIAL_INLINE
-int
-ACE_OS_Recursive_Thread_Mutex_Guard::release (void)
-{
- if (owner_ == -1)
- return 0;
- else
- {
- owner_ = -1;
- return ACE_OS::recursive_mutex_unlock (&lock_);
- }
-}
-
-ACE_SPECIAL_INLINE
-ACE_OS_Recursive_Thread_Mutex_Guard::ACE_OS_Recursive_Thread_Mutex_Guard (
- ACE_recursive_thread_mutex_t &m)
- : lock_ (m),
- owner_ (-1)
-{
- acquire ();
-}
-
-ACE_OS_Recursive_Thread_Mutex_Guard::~ACE_OS_Recursive_Thread_Mutex_Guard ()
-{
- release ();
-}
-
-#define ACE_OS_GUARD \
- ACE_OS_Thread_Mutex_Guard ace_os_guard__ (*(ACE_thread_mutex_t *) \
- ACE_OS_Object_Manager::preallocated_object[ \
- ACE_OS_Object_Manager::ACE_OS_MONITOR_LOCK]);
-
-#define ACE_TSS_CLEANUP_GUARD \
- ACE_OS_Recursive_Thread_Mutex_Guard ace_tss_cleanup_guard__ (*(ACE_recursive_thread_mutex_t *) \
- ACE_OS_Object_Manager::preallocated_object[ \
- ACE_OS_Object_Manager::ACE_TSS_CLEANUP_LOCK]);
-
-#define ACE_TSS_BASE_GUARD \
- ACE_OS_Recursive_Thread_Mutex_Guard ace_tss_base_guard__ (*(ACE_recursive_thread_mutex_t *) \
- ACE_OS_Object_Manager::preallocated_object[ \
- ACE_OS_Object_Manager::ACE_TSS_BASE_LOCK]);
-
-
-# if defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
-int
-ACE_OS::netdb_acquire (void)
-{
- return ACE_OS::thread_mutex_lock ((ACE_thread_mutex_t *)
- ACE_OS_Object_Manager::preallocated_object[
- ACE_OS_Object_Manager::ACE_OS_MONITOR_LOCK]);
-}
-
-int
-ACE_OS::netdb_release (void)
-{
- return ACE_OS::thread_mutex_unlock ((ACE_thread_mutex_t *)
- ACE_OS_Object_Manager::preallocated_object[
- ACE_OS_Object_Manager::ACE_OS_MONITOR_LOCK]);
-}
-# endif /* defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) */
-#else /* ! ACE_MT_SAFE */
-# define ACE_OS_GUARD
-# define ACE_TSS_CLEANUP_GUARD
-# define ACE_TSS_BASE_GUARD
-#endif /* ! ACE_MT_SAFE */
-
-ACE_EXIT_HOOK ACE_OS::exit_hook_ = 0;
-
-ACE_Cleanup_Info::ACE_Cleanup_Info (void)
- : object_ (0),
- cleanup_hook_ (0),
- param_ (0)
-{
-}
-
-int
-ACE_Cleanup_Info::operator== (const ACE_Cleanup_Info &o) const
-{
- return o.object_ == this->object_
- && o.cleanup_hook_ == this->cleanup_hook_
- && o.param_ == this->param_;
-}
-
-int
-ACE_Cleanup_Info::operator!= (const ACE_Cleanup_Info &o) const
-{
- return !(*this == o);
-}
-
-/**
- * @class ACE_Cleanup_Info_Node
- *
- * @brief For maintaining a list of ACE_Cleanup_Info items.
- *
- * For internal use by ACE_Object_Manager.
- */
-class ACE_Cleanup_Info_Node
-{
-public:
- ACE_Cleanup_Info_Node (void);
- ACE_Cleanup_Info_Node (const ACE_Cleanup_Info &new_info,
- ACE_Cleanup_Info_Node *next);
- ~ACE_Cleanup_Info_Node (void);
- ACE_Cleanup_Info_Node *insert (const ACE_Cleanup_Info &);
-private:
- ACE_Cleanup_Info cleanup_info_;
- ACE_Cleanup_Info_Node *next_;
-
- friend class ACE_OS_Exit_Info;
-};
-
-ACE_Cleanup_Info_Node::ACE_Cleanup_Info_Node (void)
- : cleanup_info_ (),
- next_ (0)
-{
-}
-
-ACE_Cleanup_Info_Node::ACE_Cleanup_Info_Node (const ACE_Cleanup_Info &new_info,
- ACE_Cleanup_Info_Node *next)
- : cleanup_info_ (new_info),
- next_ (next)
-{
-}
-
-ACE_Cleanup_Info_Node::~ACE_Cleanup_Info_Node (void)
-{
- delete next_;
-}
-
-ACE_Cleanup_Info_Node *
-ACE_Cleanup_Info_Node::insert (const ACE_Cleanup_Info &new_info)
-{
- ACE_Cleanup_Info_Node *new_node;
-
- ACE_NEW_RETURN (new_node,
- ACE_Cleanup_Info_Node (new_info, this),
- 0);
-
- return new_node;
-}
-
-ACE_OS_Exit_Info::ACE_OS_Exit_Info (void)
-{
- ACE_NEW (registered_objects_, ACE_Cleanup_Info_Node);
-}
-
-ACE_OS_Exit_Info::~ACE_OS_Exit_Info (void)
-{
- delete registered_objects_;
- registered_objects_ = 0;
-}
-
-int
-ACE_OS_Exit_Info::at_exit_i (void *object,
- ACE_CLEANUP_FUNC cleanup_hook,
- void *param)
-{
- ACE_Cleanup_Info new_info;
- new_info.object_ = object;
- new_info.cleanup_hook_ = cleanup_hook;
- new_info.param_ = param;
-
- // Return -1 and sets errno if unable to allocate storage. Enqueue
- // at the head and dequeue from the head to get LIFO ordering.
-
- ACE_Cleanup_Info_Node *new_node;
-
- if ((new_node = registered_objects_->insert (new_info)) == 0)
- return -1;
- else
- {
- registered_objects_ = new_node;
- return 0;
- }
-}
-
-int
-ACE_OS_Exit_Info::find (void *object)
-{
- // Check for already in queue, and return 1 if so.
- for (ACE_Cleanup_Info_Node *iter = registered_objects_;
- iter && iter->next_ != 0;
- iter = iter->next_)
- {
- if (iter->cleanup_info_.object_ == object)
- {
- // The object has already been registered.
- return 1;
- }
- }
-
- return 0;
-}
-
-void
-ACE_OS_Exit_Info::call_hooks ()
-{
- // Call all registered cleanup hooks, in reverse order of
- // registration.
- for (ACE_Cleanup_Info_Node *iter = registered_objects_;
- iter && iter->next_ != 0;
- iter = iter->next_)
- {
- ACE_Cleanup_Info &info = iter->cleanup_info_;
- if (info.cleanup_hook_ == ACE_reinterpret_cast (ACE_CLEANUP_FUNC,
- ace_cleanup_destroyer))
- // The object is an ACE_Cleanup.
- ace_cleanup_destroyer (ACE_reinterpret_cast (ACE_Cleanup *,
- info.object_),
- info.param_);
- else if (info.object_ == &ace_exit_hook_marker)
- // The hook is an ACE_EXIT_HOOK.
- (* ACE_reinterpret_cast (ACE_EXIT_HOOK, info.cleanup_hook_)) ();
- else
- (*info.cleanup_hook_) (info.object_, info.param_);
- }
-}
-
-ACE_Countdown_Time::ACE_Countdown_Time (ACE_Time_Value *max_wait_time)
- : max_wait_time_ (max_wait_time),
- stopped_ (0)
-{
- this->start ();
-}
-
-ACE_Countdown_Time::~ACE_Countdown_Time (void)
-{
- this->stop ();
-}
-
-#if defined (ACE_HAS_POWERPC_TIMER) && defined (ghs)
-void
-ACE_OS::readPPCTimeBase (u_long &most, u_long &least)
-{
- ACE_OS_TRACE ("ACE_OS::readPPCTimeBase");
-
- // This function can't be inline because it depends on the arguments
- // being in particular registers (r3 and r4), in conformance with the
- // EABI standard. It would be nice if we knew how to put the variable
- // names directly into the assembler instructions . . .
- asm("aclock:");
- asm("mftb r5,TBU");
- asm("mftb r6,TBL");
- asm("mftb r7,TBU");
- asm("cmpw r5,r7");
- asm("bne aclock");
-
- asm("stw r5, 0(r3)");
- asm("stw r6, 0(r4)");
-}
-#elif defined (ACE_HAS_POWERPC_TIMER) && defined (__GNUG__)
-void
-ACE_OS::readPPCTimeBase (u_long &most, u_long &least)
-{
- ACE_OS_TRACE ("ACE_OS::readPPCTimeBase");
-
- // This function can't be inline because it defines a symbol,
- // aclock. If there are multiple calls to the function in a
- // compilation unit, then that symbol would be multiply defined if
- // the function was inline.
- asm volatile ("aclock:\n"
- "mftbu 5\n" /* upper time base register */
- "mftb 6\n" /* lower time base register */
- "mftbu 7\n" /* upper time base register */
- "cmpw 5,7\n" /* check for rollover of upper */
- "bne aclock\n"
- "stw 5,%0\n" /* most */
- "stw 6,%1" /* least */
- : "=m" (most), "=m" (least) /* outputs */
- : /* no inputs */
- : "5", "6", "7", "memory" /* constraints */);
-}
-#endif /* ACE_HAS_POWERPC_TIMER && (ghs or __GNUG__) */
-
-#if defined (ACE_WIN32) || defined (VXWORKS) || defined (CHORUS) || defined (ACE_PSOS)
-// Don't inline on those platforms because this function contains
-// string literals, and some compilers, e.g., g++, don't handle those
-// efficiently in unused inline functions.
-int
-ACE_OS::uname (ACE_utsname *name)
-{
- ACE_OS_TRACE ("ACE_OS::uname");
-# if defined (ACE_WIN32)
- size_t maxnamelen = sizeof name->nodename;
- ACE_OS::strcpy (name->sysname,
- ACE_LIB_TEXT ("Win32"));
-
- OSVERSIONINFO vinfo;
- vinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- ::GetVersionEx (&vinfo);
-
- SYSTEM_INFO sinfo;
-# if defined (ACE_HAS_PHARLAP)
- // PharLap doesn't do GetSystemInfo. What's really wanted is the
- // CPU architecture, so we can get that with EtsGetSystemInfo. Fill
- // in what's wanted in the SYSTEM_INFO structure, and carry on. Note
- // that the CPU type values in EK_KERNELINFO have the same values
- // are the ones defined for SYSTEM_INFO.
- EK_KERNELINFO ets_kern;
- EK_SYSTEMINFO ets_sys;
- EtsGetSystemInfo (&ets_kern, &ets_sys);
- sinfo.wProcessorLevel = ACE_static_cast (WORD, ets_kern.CpuType);
- sinfo.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_INTEL;
- sinfo.dwProcessorType = ets_kern.CpuType * 100 + 86;
-# else
- ::GetSystemInfo(&sinfo);
-
- ACE_OS::strcpy (name->sysname, ACE_LIB_TEXT ("Win32"));
-# endif /* ACE_HAS_PHARLAP */
-
- const ACE_TCHAR* unknown = ACE_LIB_TEXT ("???");
-
- if (vinfo.dwPlatformId == VER_PLATFORM_WIN32_NT)
- {
- // Get information from the two structures
- ACE_OS::sprintf (name->release,
-# if defined (ACE_HAS_WINCE)
- ACE_LIB_TEXT ("Windows CE %d.%d"),
-# else
- ACE_LIB_TEXT ("Windows NT %d.%d"),
-# endif /* ACE_HAS_WINCE */
- (int) vinfo.dwMajorVersion,
- (int) vinfo.dwMinorVersion);
- ACE_OS::sprintf (name->version,
- ACE_LIB_TEXT ("Build %d %s"),
- (int) vinfo.dwBuildNumber,
- vinfo.szCSDVersion);
-
- // We have to make sure that the size of (processor + subtype)
- // is not greater than the size of name->machine. So we give
- // half the space to the processor and half the space to
- // subtype. The -1 is necessary for because of the space
- // between processor and subtype in the machine name.
- const int bufsize = ((sizeof (name->machine) / sizeof (ACE_TCHAR)) / 2) - 1;
- ACE_TCHAR processor[bufsize] = ACE_LIB_TEXT ("Unknown");
- ACE_TCHAR subtype[bufsize] = ACE_LIB_TEXT ("Unknown");
-
-# if defined (ghs)
- WORD arch = sinfo.u.s.wProcessorArchitecture;
-# else
- WORD arch = sinfo.wProcessorArchitecture;
-# endif
-
- switch (arch)
- {
- case PROCESSOR_ARCHITECTURE_INTEL:
- ACE_OS::strcpy (processor, ACE_LIB_TEXT ("Intel"));
- if (sinfo.wProcessorLevel == 3)
- ACE_OS::strcpy (subtype, ACE_LIB_TEXT ("80386"));
- else if (sinfo.wProcessorLevel == 4)
- ACE_OS::strcpy (subtype, ACE_LIB_TEXT ("80486"));
- else if (sinfo.wProcessorLevel == 5)
- ACE_OS::strcpy (subtype, ACE_LIB_TEXT ("Pentium"));
- else if (sinfo.wProcessorLevel == 6)
- ACE_OS::strcpy (subtype, ACE_LIB_TEXT ("Pentium Pro"));
- else if (sinfo.wProcessorLevel == 7) // I'm guessing here
- ACE_OS::strcpy (subtype, ACE_LIB_TEXT ("Pentium II"));
- break;
- case PROCESSOR_ARCHITECTURE_MIPS:
- ACE_OS::strcpy (processor, ACE_LIB_TEXT ("MIPS"));
- ACE_OS::strcpy (subtype, ACE_LIB_TEXT ("R4000"));
- break;
- case PROCESSOR_ARCHITECTURE_ALPHA:
- ACE_OS::strcpy (processor, ACE_LIB_TEXT ("Alpha"));
- ACE_OS::sprintf (subtype, ACE_LIB_TEXT ("%d"), sinfo.wProcessorLevel);
- break;
- case PROCESSOR_ARCHITECTURE_PPC:
- ACE_OS::strcpy (processor, ACE_LIB_TEXT ("PPC"));
- if (sinfo.wProcessorLevel == 1)
- ACE_OS::strcpy (subtype, ACE_LIB_TEXT ("601"));
- else if (sinfo.wProcessorLevel == 3)
- ACE_OS::strcpy (subtype, ACE_LIB_TEXT ("603"));
- else if (sinfo.wProcessorLevel == 4)
- ACE_OS::strcpy (subtype, ACE_LIB_TEXT ("604"));
- else if (sinfo.wProcessorLevel == 6)
- ACE_OS::strcpy (subtype, ACE_LIB_TEXT ("603+"));
- else if (sinfo.wProcessorLevel == 9)
- ACE_OS::strcpy (subtype, ACE_LIB_TEXT ("804+"));
- else if (sinfo.wProcessorLevel == 20)
- ACE_OS::strcpy (subtype, ACE_LIB_TEXT ("620"));
- break;
-# if defined PROCESSOR_ARCHITECTURE_IA64
- case PROCESSOR_ARCHITECTURE_IA64:
- ACE_OS_String::strcpy (processor, ACE_LIB_TEXT ("Itanium"));
- ACE_OS::sprintf (subtype, ACE_LIB_TEXT ("%d"), sinfo.wProcessorLevel);
- break;
-# endif
- case PROCESSOR_ARCHITECTURE_UNKNOWN:
- default:
- // @@ We could provide WinCE specific info here. But let's
- // defer that to some later point.
- ACE_OS::strcpy (processor, ACE_LIB_TEXT ("Unknown"));
- break;
- }
- ACE_OS::sprintf (name->machine,
- ACE_LIB_TEXT ("%s %s"),
- processor, subtype);
- }
- else if (vinfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
- {
- if (vinfo.dwMajorVersion == 4 && vinfo.dwMinorVersion == 0)
- {
- ACE_OS::strcpy (name->release, ACE_LIB_TEXT ("Windows 95"));
- if (vinfo.szCSDVersion[1] == 'C')
- ACE_OS::strcat (name->release, ACE_LIB_TEXT (" OSR2"));
- }
- else if (vinfo.dwMajorVersion == 4 && vinfo.dwMinorVersion == 10)
- {
- ACE_OS::strcpy (name->release, ACE_LIB_TEXT ("Windows 98"));
- if (vinfo.szCSDVersion[1] == 'A')
- ACE_OS::strcat (name->release, ACE_LIB_TEXT (" SE"));
- }
- else if (vinfo.dwMajorVersion == 4 && vinfo.dwMinorVersion == 90)
- {
- ACE_OS::strcpy (name->release, ACE_LIB_TEXT ("Windows Me"));
- }
- else
- {
- ACE_OS::strcpy (name->release, unknown);
- }
-
- ACE_OS::sprintf (name->version, ACE_LIB_TEXT ("%d"),
- LOWORD (vinfo.dwBuildNumber));
- if (sinfo.dwProcessorType == PROCESSOR_INTEL_386)
- ACE_OS::strcpy (name->machine, ACE_LIB_TEXT ("Intel 80386"));
- else if (sinfo.dwProcessorType == PROCESSOR_INTEL_486)
- ACE_OS::strcpy (name->machine, ACE_LIB_TEXT ("Intel 80486"));
- else if (sinfo.dwProcessorType == PROCESSOR_INTEL_PENTIUM)
- ACE_OS::strcpy (name->machine, ACE_LIB_TEXT ("Intel Pentium"));
- else
- ACE_OS::strcpy (name->machine, unknown);
- }
- else
- {
- // We don't know what this is!
-
- ACE_OS::strcpy (name->release, unknown);
- ACE_OS::strcpy (name->version, unknown);
- ACE_OS::strcpy (name->machine, unknown);
- }
-
-# if defined (ACE_LACKS_HOSTNAME)
- return 0;
-# else /* ACE_LACKS_HOSTNAME */
- return ACE_OS::hostname (name->nodename, maxnamelen);
-# endif /* ACE_LACKS_HOSTNAME */
-
-# elif defined (VXWORKS)
- size_t maxnamelen = sizeof name->nodename;
- ACE_OS::strcpy (name->sysname, "VxWorks");
- ACE_OS::strcpy (name->release, "???");
- ACE_OS::strcpy (name->version, sysBspRev ());
- ACE_OS::strcpy (name->machine, sysModel ());
-
- return ACE_OS::hostname (name->nodename, maxnamelen);
-# elif defined (CHORUS)
- size_t maxnamelen = sizeof name->nodename;
- ACE_OS::strcpy (name->sysname, "CHORUS/ClassiX");
- ACE_OS::strcpy (name->release, "???");
- ACE_OS::strcpy (name->version, "???");
- ACE_OS::strcpy (name->machine, "???");
-
- return ACE_OS::hostname (name->nodename, maxnamelen);
-#elif defined (ACE_PSOS)
- const unsigned long buflen(64);
- char buf[buflen];
- unsigned long len;
- sys_info(PSOS_VERSION,(void *)buf,buflen,&len);
- ACE_OS::strcpy (name->sysname, "pSOS");
- ACE_OS::strcpy (name->release, "???");
- ACE_OS::strcpy (name->version, buf);
- ACE_OS::strcpy (name->machine, "PPC 405"); // a bit of a hack
-
-#endif /* ACE_WIN32 */
-}
-#endif /* ACE_WIN32 || VXWORKS */
-
-
-#if defined (VXWORKS)
-struct hostent *
-ACE_OS::gethostbyname (const char *name)
-{
- ACE_OS_TRACE ("ACE_OS::gethostbyname");
-
- // not thread safe!
- static hostent ret;
- static int first_addr;
- static char *hostaddr[2];
- static char *aliases[1];
-
- ACE_OSCALL (::hostGetByName ((char *) name), int, -1, first_addr);
- if (first_addr == -1)
- return 0;
-
- hostaddr[0] = (char *) &first_addr;
- hostaddr[1] = 0;
- aliases[0] = 0;
-
- // Might not be official: just echo input arg.
- ret.h_name = (char *) name;
- ret.h_addrtype = AF_INET;
- ret.h_length = 4; // VxWorks 5.2/3 doesn't define IP_ADDR_LEN;
- ret.h_addr_list = hostaddr;
- ret.h_aliases = aliases;
-
- return &ret;
-}
-
-struct hostent *
-ACE_OS::gethostbyaddr (const char *addr, int length, int type)
-{
- ACE_OS_TRACE ("ACE_OS::gethostbyaddr");
-
- if (length != 4 || type != AF_INET)
- {
- errno = EINVAL;
- return 0;
- }
-
- // not thread safe!
- static hostent ret;
- static char name [MAXNAMELEN + 1];
- static char *hostaddr[2];
- static char *aliases[1];
-
- if (::hostGetByAddr (*(int *) addr, name) != 0)
- {
- // errno will have been set to S_hostLib_UNKNOWN_HOST.
- return 0;
- }
-
- // Might not be official: just echo input arg.
- hostaddr[0] = (char *) addr;
- hostaddr[1] = 0;
- aliases[0] = 0;
-
- ret.h_name = name;
- ret.h_addrtype = AF_INET;
- ret.h_length = 4; // VxWorks 5.2/3 doesn't define IP_ADDR_LEN;
- ret.h_addr_list = hostaddr;
- ret.h_aliases = aliases;
-
- return &ret;
-}
-
-struct hostent *
-ACE_OS::gethostbyaddr_r (const char *addr, int length, int type,
- hostent *result, ACE_HOSTENT_DATA buffer,
- int *h_errnop)
-{
- ACE_OS_TRACE ("ACE_OS::gethostbyaddr_r");
- if (length != 4 || type != AF_INET)
- {
- errno = EINVAL;
- return 0;
- }
-
- if (ACE_OS::netdb_acquire ())
- return 0;
- else
- {
- // buffer layout:
- // buffer[0-3]: h_addr_list[0], the first (and only) addr.
- // buffer[4-7]: h_addr_list[1], the null terminator for the h_addr_list.
- // buffer[8]: the name of the host, null terminated.
-
- // Call ::hostGetByAddr (), which puts the (one) hostname into
- // buffer.
- if (::hostGetByAddr (*(int *) addr, &buffer[8]) == 0)
- {
- // Store the return values in result.
- result->h_name = &buffer[8]; // null-terminated host name
- result->h_addrtype = AF_INET;
- result->h_length = 4; // VxWorks 5.2/3 doesn't define IP_ADDR_LEN.
-
- result->h_addr_list = (char **) buffer;
- // Might not be official: just echo input arg.
- result->h_addr_list[0] = (char *) addr;
- // Null-terminate the list of addresses.
- result->h_addr_list[1] = 0;
- // And no aliases, so null-terminate h_aliases.
- result->h_aliases = &result->h_addr_list[1];
- }
- else
- {
- // errno will have been set to S_hostLib_UNKNOWN_HOST.
- result = 0;
- }
- }
-
- ACE_OS::netdb_release ();
- *h_errnop = errno;
- return result;
-}
-
-struct hostent *
-ACE_OS::gethostbyname_r (const char *name, hostent *result,
- ACE_HOSTENT_DATA buffer,
- int *h_errnop)
-{
- ACE_OS_TRACE ("ACE_OS::gethostbyname_r");
-
- if (ACE_OS::netdb_acquire ())
- return 0;
- else
- {
- int addr;
- ACE_OSCALL (::hostGetByName ((char *) name), int, -1, addr);
-
- if (addr == -1)
- {
- // errno will have been set to S_hostLib_UNKNOWN_HOST
- result = 0;
- }
- else
- {
- // Might not be official: just echo input arg.
- result->h_name = (char *) name;
- result->h_addrtype = AF_INET;
- result->h_length = 4; // VxWorks 5.2/3 doesn't define IP_ADDR_LEN;
-
- // buffer layout:
- // buffer[0-3]: h_addr_list[0], pointer to the addr.
- // buffer[4-7]: h_addr_list[1], null terminator for the h_addr_list.
- // buffer[8-11]: the first (and only) addr.
-
- // Store the address list in buffer.
- result->h_addr_list = (char **) buffer;
- // Store the actual address _after_ the address list.
- result->h_addr_list[0] = (char *) &result->h_addr_list[2];
- result->h_addr_list[2] = (char *) addr;
- // Null-terminate the list of addresses.
- result->h_addr_list[1] = 0;
- // And no aliases, so null-terminate h_aliases.
- result->h_aliases = &result->h_addr_list[1];
- }
- }
-
- ACE_OS::netdb_release ();
- *h_errnop = errno;
- return result;
-}
-
-// Leave this in the global scope to allow
-// users to adjust the delay value.
-int ACE_THR_JOIN_DELAY = 5;
-
-int
-ACE_OS::thr_join (ACE_hthread_t thr_handle,
- ACE_THR_FUNC_RETURN *status)
-{
- // We can't get the status of the thread
- if (status != 0)
- {
- *status = 0;
- }
-
- // This method can not support joining all threads
- if (ACE_OS::thr_cmp (thr_handle, ACE_OS::NULL_hthread))
- {
- ACE_NOTSUP_RETURN (-1);
- }
-
- int retval = ESRCH;
- ACE_hthread_t current;
- ACE_OS::thr_self (current);
-
- // Make sure we are not joining ourself
- if (ACE_OS::thr_cmp (thr_handle, current))
- {
- retval = EDEADLK;
- }
- else
- {
- // Whether the task exists or not
- // we will return a successful value
- retval = 0;
-
- // Verify that the task id still exists
- while (taskIdVerify (thr_handle) == OK)
- {
- // Wait a bit to see if the task is still active.
- ACE_OS::sleep (ACE_THR_JOIN_DELAY);
- }
- }
-
- // Adapt the return value into errno and return value.
- // The ACE_ADAPT_RETVAL macro doesn't exactly do what
- // we need to do here, so we do it manually.
- if (retval != 0)
- {
- errno = retval;
- retval = -1;
- }
-
- return retval;
-}
-
-int
-ACE_OS::thr_join (ACE_thread_t waiter_id,
- ACE_thread_t *thr_id,
- ACE_THR_FUNC_RETURN *status)
-{
- thr_id = 0;
- return ACE_OS::thr_join (taskNameToId (waiter_id), status);
-}
-#endif /* VXWORKS */
-
-void
-ACE_OS::ace_flock_t::dump (void) const
-{
- ACE_OS_TRACE ("ACE_OS::ace_flock_t::dump");
-
-#if 0
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("handle_ = %u"), this->handle_));
-#if defined (ACE_WIN32)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nInternal = %d"), this->overlapped_.Internal));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nInternalHigh = %d"), this->overlapped_.InternalHigh));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nOffsetHigh = %d"), this->overlapped_.OffsetHigh));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nhEvent = %d"), this->overlapped_.hEvent));
-#elif !defined (CHORUS)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nl_whence = %d"), this->lock_.l_whence));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nl_start = %d"), this->lock_.l_start));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nl_len = %d"), this->lock_.l_len));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nl_type = %d"), this->lock_.l_type));
-#endif /* ACE_WIN32 */
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-#endif /* 0 */
-}
-
-void
-ACE_OS::mutex_lock_cleanup (void *mutex)
-{
- ACE_OS_TRACE ("ACE_OS::mutex_lock_cleanup");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
- ACE_mutex_t *p_lock = (ACE_mutex_t *) mutex;
- ACE_OS::mutex_unlock (p_lock);
-# else
- ACE_UNUSED_ARG (mutex);
-# endif /* ACE_HAS_PTHREADS */
-# else
- ACE_UNUSED_ARG (mutex);
-# endif /* ACE_HAS_THREADS */
-}
-
-#if defined (ACE_USES_WCHAR)
-void ACE_OS::checkUnicodeFormat (FILE* fp)
-{
- if (fp != 0)
- {
- // Due to the ACE_TCHAR definition, all default input files, such as
- // svc.conf, have to be in Unicode format (small endian) on WinCE
- // because ACE has all 'char' converted into ACE_TCHAR.
- // However, for TAO, ASCII files, such as IOR file, can still be read and
- // be written without any error since given buffers are all in 'char' type
- // instead of ACE_TCHAR. Therefore, it is user's reponsibility to select
- // correct buffer type.
-
- // At this point, check if the file is Unicode or not.
- WORD first_two_bytes;
- int numRead = ACE_OS::fread(&first_two_bytes, sizeof(WORD), 1, fp);
-
- if (numRead == 1)
- {
- if ((first_two_bytes != 0xFFFE) && // not a small endian Unicode file
- (first_two_bytes != 0xFEFF)) // not a big endian Unicode file
- {
- ACE_OS::fseek(fp, 0, FILE_BEGIN); // set file pointer back to the beginning
- }
- }
- // if it is a Unicode file, file pointer will be right next to the first two-bytes
- }
-}
-#endif // ACE_USES_WCHAR
-
-#if defined (ACE_WIN32)
-FILE *
-ACE_OS::fopen (const ACE_TCHAR *filename,
- const ACE_TCHAR *mode)
-{
- ACE_OS_TRACE ("ACE_OS::fopen");
- int hmode = _O_TEXT;
-
- for (const ACE_TCHAR *mode_ptr = mode; *mode_ptr != 0; mode_ptr++)
- ACE_OS::fopen_mode_to_open_mode_converter (*mode_ptr, hmode);
-
- ACE_HANDLE handle = ACE_OS::open (filename, hmode);
- if (handle != ACE_INVALID_HANDLE)
- {
-# if defined (ACE_HAS_WINCE)
- FILE *fp = ::_wfdopen (handle, mode);
- if (fp != 0)
- {
- checkUnicodeFormat(fp);
- return fp;
- }
-# else
- hmode &= _O_TEXT | _O_RDONLY | _O_APPEND;
-# if defined (ACE_WIN64)
- int fd = _open_osfhandle (intptr_t (handle), hmode);
-# else
- int fd = _open_osfhandle (long (handle), hmode);
-# endif /* ACE_WIN64 */
- if (fd != -1)
- {
-# if defined (__BORLANDC__) && !defined (ACE_USES_WCHAR)
- FILE *fp = ::_fdopen (fd, ACE_const_cast (char *, mode));
-# elif defined (__BORLANDC__) && defined (ACE_USES_WCHAR)
- FILE *fp = ::_wfdopen (fd, ACE_const_cast (wchar_t *, mode));
-# elif defined (ACE_USES_WCHAR)
- FILE *fp = ::_wfdopen (fd, mode);
-# else
- FILE *fp = ::fdopen (fd, mode);
-# endif /* defined(__BORLANDC__) && !defined (ACE_USES_WCHAR)) */
- if (fp != 0)
- {
-# if defined (ACE_USES_WCHAR)
- checkUnicodeFormat(fp);
-# endif // ACE_USES_WCHAR
- return fp;
- }
- _close (fd);
- }
-# endif // ACE_HAS_WINCE
-
- ACE_OS::close (handle);
- }
- return 0;
-}
-#endif /* ACE_WIN32 */
-
-// The following *printf functions aren't inline because
-// they use varargs.
-
-int
-ACE_OS::fprintf (FILE *fp, const char *format, ...)
-{
- ACE_OS_TRACE ("ACE_OS::fprintf");
- int result = 0;
- va_list ap;
- va_start (ap, format);
- ACE_OSCALL (::vfprintf (fp, format, ap), int, -1, result);
- va_end (ap);
- return result;
-}
-
-#if defined (ACE_HAS_WCHAR)
-int
-ACE_OS::fprintf (FILE *fp, const wchar_t *format, ...)
-{
- ACE_OS_TRACE ("ACE_OS::fprintf");
-
-# if !defined (ACE_HAS_VFWPRINTF)
- ACE_UNUSED_ARG (fp);
- ACE_UNUSED_ARG (format);
- ACE_NOTSUP_RETURN (-1);
-
-# else
- int result = 0;
- va_list ap;
- va_start (ap, format);
- ACE_OSCALL (::vfwprintf (fp, format, ap), int, -1, result);
- va_end (ap);
- return result;
-
-# endif /* ACE_HAS_VFWPRINTF */
-}
-#endif /* ACE_HAS_WCHAR */
-
-int
-ACE_OS::printf (const char *format, ...)
-{
- ACE_OS_TRACE ("ACE_OS::printf");
- int result;
- va_list ap;
- va_start (ap, format);
- ACE_OSCALL (::vprintf (format, ap), int, -1, result);
- va_end (ap);
- return result;
-}
-
-int
-ACE_OS::sprintf (char *buf, const char *format, ...)
-{
- // ACE_OS_TRACE ("ACE_OS::sprintf");
-
- int result;
- va_list ap;
- va_start (ap, format);
- ACE_OSCALL (ACE_SPRINTF_ADAPTER (::vsprintf (buf, format, ap)), int, -1, result);
- va_end (ap);
- return result;
-}
-
-#if defined (ACE_HAS_WCHAR)
-int
-ACE_OS::sprintf (wchar_t *buf, const wchar_t *format, ...)
-{
- ACE_OS_TRACE ("ACE_OS::sprintf");
-
-# if defined (_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
-
- // The XPG4/UNIX98/C99 signature of the wide-char sprintf has a
- // maxlen argument. Since this method doesn't supply one, pass in
- // the max possible length. If this isn't ok, use ACE_OS::snprintf().
- int result;
- va_list ap;
- va_start (ap, format);
- ACE_OSCALL (::vswprintf (buf, ULONG_MAX, format, ap), int, -1, result);
- va_end (ap);
- return result;
-
-# elif defined (ACE_WIN32)
- // Windows has vswprintf, but the signature is from the older ISO C
- // standard. Also see ACE_OS::snprintf() for more info on this.
-
- int result;
- va_list ap;
- va_start (ap, format);
- ACE_OSCALL (::vswprintf (buf, format, ap), int, -1, result);
- va_end (ap);
- return result;
-
-# else
-
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (format);
- ACE_NOTSUP_RETURN (-1);
-
-# endif /* ACE_HAS_VSWPRINTF */
-}
-#endif /* ACE_HAS_WCHAR */
-
-int
-ACE_OS::snprintf (char *buf, size_t maxlen, const char *format, ...)
-{
- // ACE_OS_TRACE ("ACE_OS::snprintf");
-#if defined (ACE_HAS_SNPRINTF)
- int result;
- va_list ap;
- va_start (ap, format);
-# if defined (ACE_WIN32)
- ACE_OSCALL (ACE_SPRINTF_ADAPTER (::_vsnprintf (buf, maxlen, format, ap)),
- int, -1, result);
- // Win32 doesn't 0-terminate the string if it overruns maxlen.
- if (result == -1)
- buf[maxlen-1] = '\0';
-# else
- ACE_OSCALL (ACE_SPRINTF_ADAPTER (::vsnprintf (buf, maxlen, format, ap)),
- int, -1, result);
-# endif /* ACE_WIN32 */
- va_end (ap);
- // In out-of-range conditions, C99 defines vsnprintf to return the number
- // of characters that would have been written if enough space was available.
- // Earlier variants of the vsnprintf() (e.g. UNIX98) defined it to return
- // -1. This method follows the C99 standard, but needs to guess at the
- // value; uses maxlen + 1.
- if (result == -1)
- result = ACE_static_cast (int, (maxlen + 1));
- return result;
-
-#else
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (maxlen);
- ACE_UNUSED_ARG (format);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SNPRINTF */
-}
-
-#if defined (ACE_HAS_WCHAR)
-int
-ACE_OS::snprintf (wchar_t *buf, size_t maxlen, const wchar_t *format, ...)
-{
- // ACE_OS_TRACE ("ACE_OS::snprintf");
-#if (defined (_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)) || defined (ACE_WIN32)
- int result;
- va_list ap;
- va_start (ap, format);
-# if defined (ACE_WIN32)
- // Microsoft's vswprintf() doesn't have the maxlen argument that
- // XPG4/UNIX98 define. They do, however, recommend use of _vsnwprintf()
- // as a substitute, which does have the same signature as the UNIX98 one.
- ACE_OSCALL (ACE_SPRINTF_ADAPTER (::_vsnwprintf (buf, maxlen, format, ap)),
- int, -1, result);
- // Win32 doesn't 0-terminate the string if it overruns maxlen.
- if (result == -1)
- buf[maxlen-1] = '\0';
-# else
- ACE_OSCALL (ACE_SPRINTF_ADAPTER (::vswprintf (buf, maxlen, format, ap)),
- int, -1, result);
-# endif /* ACE_WIN32 */
- va_end (ap);
- // In out-of-range conditions, C99 defines vsnprintf to return the number
- // of characters that would have been written if enough space was available.
- // Earlier variants of the vsnprintf() (e.g. UNIX98) defined it to return
- // -1. This method follows the C99 standard, but needs to guess at the
- // value; uses maxlen + 1.
- if (result == -1)
- result = ACE_static_cast (int, (maxlen + 1));
- return result;
-
-#else
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (maxlen);
- ACE_UNUSED_ARG (format);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SNPRINTF */
-}
-#endif /* ACE_HAS_WCHAR */
-
-char *
-ACE_OS::gets (char *str, int n)
-{
- ACE_OS_TRACE ("ACE_OS::gets");
- int c;
- char *s = str;
-
- if (str == 0 || n < 0) n = 0;
- if (n == 0) str = 0;
- else n--;
-
- while ((c = getchar ()) != '\n')
- {
-
- if (c == EOF && errno == EINTR)
- {
-# if defined (ACE_HAS_SIGNAL_SAFE_OS_CALLS)
- continue;
-# else
- break;
-# endif /* ACE_HAS_SIGNAL_SAFE_OS_CALLS */
- }
-
- if (c == EOF)
- break;
-
- if (n > 0)
- n--, *s++ = c;
- }
- if (s) *s = '\0';
-
- return (c == EOF) ? 0 : str;
-}
-
-int
-ACE_OS::execl (const char * /* path */, const char * /* arg0 */, ...)
-{
- ACE_OS_TRACE ("ACE_OS::execl");
-#if defined (ACE_WIN32) || defined (VXWORKS)
- ACE_NOTSUP_RETURN (-1);
-#else
- ACE_NOTSUP_RETURN (-1);
- // Need to write this code.
- // ACE_OSCALL_RETURN (::execv (path, argv), int, -1);
-#endif /* ACE_WIN32 */
-}
-
-int
-ACE_OS::execle (const char * /* path */, const char * /* arg0 */, ...)
-{
- ACE_OS_TRACE ("ACE_OS::execle");
-#if defined (ACE_WIN32) || defined (VXWORKS)
- ACE_NOTSUP_RETURN (-1);
-#else
- ACE_NOTSUP_RETURN (-1);
- // Need to write this code.
- // ACE_OSCALL_RETURN (::execve (path, argv, envp), int, -1);
-#endif /* ACE_WIN32 */
-}
-
-int
-ACE_OS::execlp (const char * /* file */, const char * /* arg0 */, ...)
-{
- ACE_OS_TRACE ("ACE_OS::execlp");
-#if defined (ACE_WIN32) || defined (VXWORKS)
- ACE_NOTSUP_RETURN (-1);
-#else
- ACE_NOTSUP_RETURN (-1);
- // Need to write this code.
- // ACE_OSCALL_RETURN (::execvp (file, argv), int, -1);
-#endif /* ACE_WIN32 */
-}
-
-int
-ACE_OS::scheduling_class (const char *class_name, ACE_id_t &id)
-{
-#if defined (ACE_HAS_PRIOCNTL)
- // Get the priority class ID.
- pcinfo_t pcinfo;
- // The following is just to avoid Purify warnings about unitialized
- // memory reads.
- ACE_OS::memset (&pcinfo, 0, sizeof pcinfo);
-
- ACE_OS::strcpy (pcinfo.pc_clname, class_name);
- if (ACE_OS::priority_control (P_ALL /* ignored */,
- P_MYID /* ignored */,
- PC_GETCID,
- (char *) &pcinfo) == -1)
- {
- return -1;
- }
- else
- {
- id = pcinfo.pc_cid;
- return 0;
- }
-#else /* ! ACE_HAS_PRIOCNTL */
- ACE_UNUSED_ARG (class_name);
- ACE_UNUSED_ARG (id);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ! ACE_HAS_PRIOCNTL */
-}
-
-int
-ACE_OS::set_scheduling_params (const ACE_Sched_Params &sched_params,
- ACE_id_t id)
-{
-#if defined (ACE_HAS_PRIOCNTL)
- // Set priority class, priority, and quantum of this LWP or process as
- // specified in sched_params.
-
- // Get the priority class ID.
- ACE_id_t class_id;
- if (ACE_OS::scheduling_class (sched_params.policy() == ACE_SCHED_OTHER ?
- "TS" :
- "RT", class_id) == -1)
- {
- return -1;
- }
-
- pcparms_t pcparms;
- // The following is just to avoid Purify warnings about unitialized
- // memory reads.
- ACE_OS::memset (&pcparms, 0, sizeof pcparms);
-
- pcparms.pc_cid = class_id;
-
- if (sched_params.policy () == ACE_SCHED_OTHER &&
- sched_params.quantum () == ACE_Time_Value::zero)
- // SunOS doesn't support non-zero quantums in time-sharing class: use
- // real-time class instead.
- {
- tsparms_t tsparms;
- // The following is just to avoid Purify warnings about unitialized
- // memory reads.
- ACE_OS::memset (&tsparms, 0, sizeof tsparms);
-
- // Don't change ts_uprilim (user priority limit)
- tsparms.ts_uprilim = TS_NOCHANGE;
- tsparms.ts_upri = sched_params.priority ();
-
- // Package up the TS class ID and parameters for the
- // priority_control () call.
- ACE_OS::memcpy (pcparms.pc_clparms, &tsparms, sizeof tsparms);
- }
- else if (sched_params.policy () == ACE_SCHED_FIFO ||
- (sched_params.policy () == ACE_SCHED_RR &&
- sched_params.quantum () != ACE_Time_Value::zero))
- // must have non-zero quantum for RR, to make it meaningful
- // A zero quantum with FIFO has special significance: it actually
- // means infinite time quantum, i.e., run-to-completion.
- {
- rtparms_t rtparms;
- // The following is just to avoid Purify warnings about unitialized
- // memory reads.
- ACE_OS::memset (&rtparms, 0, sizeof rtparms);
-
- rtparms.rt_pri = sched_params.priority ();
-
- if (sched_params.quantum () == ACE_Time_Value::zero)
- {
- // rtparms.rt_tqsecs is ignored with RT_TQINF
- rtparms.rt_tqnsecs = RT_TQINF;
- }
- else
- {
- rtparms.rt_tqsecs = (ulong) sched_params.quantum ().sec ();
- rtparms.rt_tqnsecs = sched_params.quantum ().usec () * 1000;
- }
-
- // Package up the RT class ID and parameters for the
- // priority_control () call.
- ACE_OS::memcpy (pcparms.pc_clparms, &rtparms, sizeof rtparms);
- }
- else
- {
- errno = EINVAL;
- return -1;
- }
-
- if (ACE_OS::priority_control ((idtype_t) (sched_params.scope () == ACE_SCOPE_THREAD
- ? ACE_SCOPE_PROCESS
- : sched_params.scope ()),
- id,
- PC_SETPARMS,
- (char *) &pcparms) < 0)
- {
- return ACE_OS::last_error ();
- }
-
- return 0;
-#else /* ! ACE_HAS_PRIOCNTL */
- ACE_UNUSED_ARG (sched_params);
- ACE_UNUSED_ARG (id);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ! ACE_HAS_PRIOCNTL */
-}
-
-int
-ACE_OS::thr_setprio (const ACE_Sched_Priority prio)
-{
- // Set the thread priority on the current thread.
- ACE_hthread_t my_thread_id;
- ACE_OS::thr_self (my_thread_id);
-
- int status = ACE_OS::thr_setprio (my_thread_id, prio);
-
-# if defined (ACE_NEEDS_LWP_PRIO_SET)
- // If the thread is in the RT class, then set the priority on its
- // LWP. (Instead of doing this if the thread is in the RT class, it
- // should be done for all bound threads. But, there doesn't appear
- // to be an easy way to determine if the thread is bound.)
-
- if (status == 0)
- {
- // Find what scheduling class the thread's LWP is in.
- ACE_Sched_Params sched_params (ACE_SCHED_OTHER, 0);
- if (ACE_OS::lwp_getparams (sched_params) == -1)
- {
- return -1;
- }
- else if (sched_params.policy () == ACE_SCHED_FIFO ||
- sched_params.policy () == ACE_SCHED_RR)
- {
- // This thread's LWP is in the RT class, so we need to set
- // its priority.
- sched_params.priority (prio);
- return ACE_OS::lwp_setparams (sched_params);
- }
- // else this is not an RT thread. Nothing more needs to be
- // done.
- }
-# endif /* ACE_NEEDS_LWP_PRIO_SET */
-
- return status;
-}
-
-int
-ACE_OS::sched_params (const ACE_Sched_Params &sched_params,
- ACE_id_t id)
-{
- ACE_OS_TRACE ("ACE_OS::sched_params");
-# if defined (CHORUS)
- ACE_UNUSED_ARG (id);
- int result;
- struct sched_param param;
- ACE_thread_t thr_id = ACE_OS::thr_self ();
-
- param.sched_priority = sched_params.priority ();
-
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_setschedparam (thr_id,
- sched_params.policy (),
- &param),
- result),
- int, -1);
-# elif defined (ACE_HAS_STHREADS)
- return ACE_OS::set_scheduling_params (sched_params, id);
-# elif defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_SETSCHED)
- ACE_UNUSED_ARG (id);
- if (sched_params.quantum () != ACE_Time_Value::zero)
- {
- // quantums not supported
- errno = EINVAL;
- return -1;
- }
-
- // Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
- // providing this code for 1003.1c PThreads. Please note that this
- // has only been tested for POSIX 1003.1c threads, and may cause
- // problems with other PThreads flavors!
-
- struct sched_param param;
- param.sched_priority = sched_params.priority ();
-
- if (sched_params.scope () == ACE_SCOPE_PROCESS)
- {
- int result = ::sched_setscheduler (0, // this process
- sched_params.policy (),
- &param) == -1 ? -1 : 0;
-# if defined (DIGITAL_UNIX)
- return result == 0
- ? // Use priocntl (2) to set the process in the RT class,
- // if using an RT policy.
- ACE_OS::set_scheduling_params (sched_params)
- : result;
-# else /* ! DIGITAL_UNIX */
- return result;
-# endif /* ! DIGITAL_UNIX */
- }
- else if (sched_params.scope () == ACE_SCOPE_THREAD)
- {
- ACE_thread_t thr_id = ACE_OS::thr_self ();
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- return (::pthread_setscheduler (thr_id,
- sched_params.policy (),
- sched_params.priority()) == -1 ? -1 : 0);
-# else
- int result;
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_setschedparam (thr_id,
- sched_params.policy (),
- &param),
- result),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- }
-# if defined (sun)
- // We need to be able to set LWP priorities on Suns, even without
- // ACE_HAS_STHREADS, to obtain preemption.
- else if (sched_params.scope () == ACE_SCOPE_LWP)
- return ACE_OS::set_scheduling_params (sched_params, id);
-# endif /* sun */
- else // sched_params.scope () == ACE_SCOPE_LWP, which isn't POSIX
- {
- errno = EINVAL;
- return -1;
- }
-
-# elif defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
-
- // PharLap ETS can act on the current thread - it can set the
- // quantum also, unlike Win32. All this only works on the RT
- // version.
-# if defined (ACE_HAS_PHARLAP_RT)
- if (id != ACE_SELF)
- ACE_NOTSUP_RETURN (-1);
-
- if (sched_params.quantum() != ACE_Time_Value::zero)
- EtsSetTimeSlice (sched_params.quantum().msec());
-
-# else
- ACE_UNUSED_ARG (id);
-
- if (sched_params.scope () != ACE_SCOPE_PROCESS
- || sched_params.quantum () != ACE_Time_Value::zero)
- {
- // Win32 only allows setting priority class (therefore, policy)
- // at the process level. I don't know of a way to set the
- // quantum.
- errno = EINVAL;
- return -1;
- }
-
- // Set the priority class of this process to the REALTIME process class
- // _if_ the policy is ACE_SCHED_FIFO. Otherwise, set to NORMAL.
- if (!::SetPriorityClass (::GetCurrentProcess (),
- sched_params.policy () == ACE_SCHED_FIFO
- ? REALTIME_PRIORITY_CLASS
- : NORMAL_PRIORITY_CLASS))
- {
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
-# endif /* ACE_HAS_PHARLAP_RT */
-
- // Set the thread priority on the current thread.
- return ACE_OS::thr_setprio (sched_params.priority ());
-
-# elif defined (VXWORKS) || defined (ACE_PSOS)
- ACE_UNUSED_ARG (id);
-
- // There is only one class of priorities on VxWorks, and no time
- // quanta. So, just set the current thread's priority.
-
- if (sched_params.policy () != ACE_SCHED_FIFO
- || sched_params.scope () != ACE_SCOPE_PROCESS
- || sched_params.quantum () != ACE_Time_Value::zero)
- {
- errno = EINVAL;
- return -1;
- }
-
- // Set the thread priority on the current thread.
- return ACE_OS::thr_setprio (sched_params.priority ());
-# else
- ACE_UNUSED_ARG (sched_params);
- ACE_UNUSED_ARG (id);
- ACE_NOTSUP_RETURN (-1);
-# endif /* CHORUS */
-}
-
-// = Static initialization.
-
-// This is necessary to deal with POSIX pthreads insanity. This
-// guarantees that we've got a "zero'd" thread id even when
-// ACE_thread_t, ACE_hthread_t, and ACE_thread_key_t are implemented
-// as structures... Under no circumstances should these be given
-// initial values.
-// Note: these three objects require static construction.
-ACE_thread_t ACE_OS::NULL_thread;
-ACE_hthread_t ACE_OS::NULL_hthread;
-#if defined (ACE_HAS_TSS_EMULATION) || (defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS))
- ACE_thread_key_t ACE_OS::NULL_key = ACE_static_cast (ACE_thread_key_t, -1);
-#else /* ! ACE_HAS_TSS_EMULATION */
- ACE_thread_key_t ACE_OS::NULL_key;
-#endif /* ! ACE_HAS_TSS_EMULATION */
-
-#if defined (CHORUS)
-KnCap ACE_OS::actorcaps_[ACE_CHORUS_MAX_ACTORS];
-// This is used to map an actor's id into a KnCap for killing and
-// waiting actors.
-#endif /* CHORUS */
-
-#if defined (ACE_WIN32)
-
-// = Static initialization.
-
-// Keeps track of whether we've initialized the WinSock DLL.
-int ACE_OS::socket_initialized_;
-
-#endif /* WIN32 */
-
-#if defined (ACE_WIN32) || defined (ACE_HAS_TSS_EMULATION) || (defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS))
-
-// Moved class ACE_TSS_Ref declaration to OS.h so it can be visible to
-// the single file of template instantiations.
-
-ACE_TSS_Ref::ACE_TSS_Ref (ACE_thread_t id)
- : tid_(id)
-{
- ACE_OS_TRACE ("ACE_TSS_Ref::ACE_TSS_Ref");
-}
-
-ACE_TSS_Ref::ACE_TSS_Ref (void)
-{
- ACE_OS_TRACE ("ACE_TSS_Ref::ACE_TSS_Ref");
-}
-
-// Check for equality.
-int
-ACE_TSS_Ref::operator== (const ACE_TSS_Ref &info) const
-{
- ACE_OS_TRACE ("ACE_TSS_Ref::operator==");
-
- return this->tid_ == info.tid_;
-}
-
-// Check for inequality.
-ACE_SPECIAL_INLINE
-int
-ACE_TSS_Ref::operator != (const ACE_TSS_Ref &tss_ref) const
-{
- ACE_OS_TRACE ("ACE_TSS_Ref::operator !=");
-
- return !(*this == tss_ref);
-}
-
-// moved class ACE_TSS_Info declaration
-// to OS.h so it can be visible to the
-// single file of template instantiations
-
-ACE_TSS_Info::ACE_TSS_Info (ACE_thread_key_t key,
- void (*dest)(void *),
- void *tss_inst)
- : key_ (key),
- destructor_ (dest),
- tss_obj_ (tss_inst),
- thread_count_ (-1)
-{
- ACE_OS_TRACE ("ACE_TSS_Info::ACE_TSS_Info");
-}
-
-ACE_TSS_Info::ACE_TSS_Info (void)
- : key_ (ACE_OS::NULL_key),
- destructor_ (0),
- tss_obj_ (0),
- thread_count_ (-1)
-{
- ACE_OS_TRACE ("ACE_TSS_Info::ACE_TSS_Info");
-}
-
-# if defined (ACE_HAS_NONSCALAR_THREAD_KEY_T)
-static inline int operator== (const ACE_thread_key_t &lhs,
- const ACE_thread_key_t &rhs)
-{
- return ! ACE_OS::memcmp (&lhs, &rhs, sizeof (ACE_thread_key_t));
-}
-
-static inline int operator!= (const ACE_thread_key_t &lhs,
- const ACE_thread_key_t &rhs)
-{
- return ! (lhs == rhs);
-}
-# endif /* ACE_HAS_NONSCALAR_THREAD_KEY_T */
-
-// Check for equality.
-int
-ACE_TSS_Info::operator== (const ACE_TSS_Info &info) const
-{
- ACE_OS_TRACE ("ACE_TSS_Info::operator==");
-
- return this->key_ == info.key_;
-}
-
-// Check for inequality.
-int
-ACE_TSS_Info::operator != (const ACE_TSS_Info &info) const
-{
- ACE_OS_TRACE ("ACE_TSS_Info::operator !=");
-
- return !(*this == info);
-}
-
-void
-ACE_TSS_Info::dump (void)
-{
- // ACE_OS_TRACE ("ACE_TSS_Info::dump");
-
-#if 0
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("key_ = %u\n"), this->key_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("destructor_ = %u\n"), this->destructor_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("tss_obj_ = %u\n"), this->tss_obj_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-#endif /* 0 */
-}
-
-// Moved class ACE_TSS_Keys declaration to OS.h so it can be visible
-// to the single file of template instantiations.
-
-ACE_TSS_Keys::ACE_TSS_Keys (void)
-{
- for (u_int i = 0; i < ACE_WORDS; ++i)
- {
- key_bit_words_[i] = 0;
- }
-}
-
-ACE_SPECIAL_INLINE
-void
-ACE_TSS_Keys::find (const u_int key, u_int &word, u_int &bit)
-{
- word = key / ACE_BITS_PER_WORD;
- bit = key % ACE_BITS_PER_WORD;
-}
-
-int
-ACE_TSS_Keys::test_and_set (const ACE_thread_key_t key)
-{
- ACE_KEY_INDEX (key_index, key);
- u_int word, bit;
- find (key_index, word, bit);
-
- if (ACE_BIT_ENABLED (key_bit_words_[word], 1 << bit))
- {
- return 1;
- }
- else
- {
- ACE_SET_BITS (key_bit_words_[word], 1 << bit);
- return 0;
- }
-}
-
-int
-ACE_TSS_Keys::test_and_clear (const ACE_thread_key_t key)
-{
- ACE_KEY_INDEX (key_index, key);
- u_int word, bit;
- find (key_index, word, bit);
-
- if (ACE_BIT_ENABLED (key_bit_words_[word], 1 << bit))
- {
- ACE_CLR_BITS (key_bit_words_[word], 1 << bit);
- return 0;
- }
- else
- {
- return 1;
- }
-}
-
-int
-ACE_TSS_Keys::is_set (const ACE_thread_key_t key) const
-{
- ACE_KEY_INDEX (key_index, key);
- u_int word, bit;
- find (key_index, word, bit);
-
- return ACE_BIT_ENABLED (key_bit_words_[word], 1 << bit);
-}
-
-
-/**
- * @class ACE_TSS_Cleanup
- *
- * @brief Singleton that knows how to clean up all the thread-specific
- * resources for Win32.
- *
- * All this nonsense is required since Win32 doesn't
- * automatically cleanup thread-specific storage on thread exit,
- * unlike real operating systems... ;-)
- */
-class ACE_TSS_Cleanup
-{
-public:
- static ACE_TSS_Cleanup *instance (void);
-
- ~ACE_TSS_Cleanup (void);
-
- /// Cleanup the thread-specific objects. Does _NOT_ exit the thread.
- void exit (void *status);
-
- /// Insert a <key, destructor> tuple into the table.
- int insert (ACE_thread_key_t key, void (*destructor)(void *), void *inst);
-
- /// Remove a <key, destructor> tuple from the table.
- int remove (ACE_thread_key_t key);
-
- /// Detaches a tss_instance from its key.
- int detach (void *inst);
-
- /// Mark a key as being used by this thread.
- void key_used (ACE_thread_key_t key);
-
- /// Free all keys left in the table before destruction.
- int free_all_keys_left (void);
-
- /// Indication of whether the ACE_TSS_CLEANUP_LOCK is usable, and
- /// therefore whether we are in static constructor/destructor phase
- /// or not.
- static int lockable () { return instance_ != 0; }
-
-protected:
- void dump (void);
-
- /// Ensure singleton.
- ACE_TSS_Cleanup (void);
-
-private:
- // Array of <ACE_TSS_Info> objects.
- typedef ACE_TSS_Info ACE_TSS_TABLE[ACE_DEFAULT_THREAD_KEYS];
- typedef ACE_TSS_Info *ACE_TSS_TABLE_ITERATOR;
-
- /// Table of <ACE_TSS_Info>'s.
- ACE_TSS_TABLE table_;
-
- /// Key for the thread-specific array of whether each TSS key is in use.
- ACE_thread_key_t in_use_;
-
- /// Accessor for this threads ACE_TSS_Keys instance.
- ACE_TSS_Keys *tss_keys ();
-
-#if defined (ACE_HAS_TSS_EMULATION)
- /// Key that is used by in_use_. We save this key so that we know
- /// not to call its destructor in free_all_keys_left ().
- ACE_thread_key_t in_use_key_;
-#endif /* ACE_HAS_TSS_EMULATION */
-
- // = Static data.
- /// Pointer to the singleton instance.
- static ACE_TSS_Cleanup *instance_;
-};
-
-// = Static object initialization.
-
-// Pointer to the singleton instance.
-ACE_TSS_Cleanup *ACE_TSS_Cleanup::instance_ = 0;
-
-ACE_TSS_Cleanup::~ACE_TSS_Cleanup (void)
-{
- // Zero out the instance pointer to support lockable () accessor.
- ACE_TSS_Cleanup::instance_ = 0;
-}
-
-void
-ACE_TSS_Cleanup::exit (void * /* status */)
-{
- ACE_OS_TRACE ("ACE_TSS_Cleanup::exit");
-
- ACE_TSS_TABLE_ITERATOR key_info = table_;
- ACE_TSS_Info info_arr[ACE_DEFAULT_THREAD_KEYS];
- int info_ix = 0;
-
- // While holding the lock, we only collect the ACE_TSS_Info objects
- // in an array without invoking the according destructors.
- {
- ACE_TSS_CLEANUP_GUARD
-
- // Iterate through all the thread-specific items and free them all
- // up.
-
- for (unsigned int i = 0;
- i < ACE_DEFAULT_THREAD_KEYS;
- ++key_info, ++i)
- {
- if (key_info->key_ == ACE_OS::NULL_key ||
- ! key_info->key_in_use ()) continue;
-
- // If the key's ACE_TSS_Info in-use bit for this thread was set,
- // unset it and decrement the key's thread_count_.
- if (! tss_keys ()->test_and_clear (key_info->key_))
- {
- --key_info->thread_count_;
- }
-
- void *tss_info = 0;
-
- if (key_info->destructor_
- && ACE_OS::thr_getspecific (key_info->key_, &tss_info) == 0
- && tss_info)
- {
- info_arr[info_ix].key_ = key_info->key_;
- info_arr[info_ix].destructor_ = key_info->destructor_;
- info_arr[info_ix++].tss_obj_ = key_info->tss_obj_;
- }
- }
- }
-
- // Now we have given up the ACE_TSS_Cleanup::lock_ and we start
- // invoking destructors, in the reverse order of creation.
- for (int i = info_ix - 1; i >= 0; --i)
- {
- void *tss_info = 0;
-
- ACE_OS::thr_getspecific (info_arr[i].key_, &tss_info);
-
- if (tss_info != 0)
- {
- // Only call the destructor if the value is non-zero for this
- // thread.
- (*info_arr[i].destructor_)(tss_info);
- }
- }
-
- // Acquire the ACE_TSS_CLEANUP_LOCK, then free TLS keys and remove
- // entries from ACE_TSS_Info table.
- {
- ACE_TSS_CLEANUP_GUARD
-
-# if 0
- // We shouldn't free the key and remove it from the table here
- // because if we do and some thread ends before other threads
- // even get started (or their TSS object haven't been created yet,)
- // it's entry will be removed from the table and we are in big chaos.
- // For TSS object, these have been done in ACE_TSS_Cleanup::detach.
- // Two other use cases will be user managed TSS'es and system wide
- // TSS, ones are users responsibilities and the others should be
- // persistant system wide.
- for (int i = 0; i < index; i++)
- {
-# if defined (ACE_WIN32) || (defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS))
- // Calling thr_keyfree here ensure the key
- // gets removed appropriately. Notice that
- // a key should be removed before freeing it.
- ACE_OS::thr_keyfree (key_info->key_);
-# else
- // don't bother to free the key
- this->remove (key_info->key_);
-# endif /* ACE_WIN32 */
- }
-# endif /* 0 */
- }
-}
-
-int
-ACE_TSS_Cleanup::free_all_keys_left (void)
- // This is called from ACE_OS::cleanup_tss (). When this gets
- // called, all threads should have exited except the main thread.
- // No key should be freed from this routine. It there's any,
- // something might be wrong.
-{
- ACE_thread_key_t key_arr[ACE_DEFAULT_THREAD_KEYS];
- ACE_TSS_TABLE_ITERATOR key_info = table_;
- unsigned int idx = 0;
- unsigned int i;
-
- for (i = 0;
- i < ACE_DEFAULT_THREAD_KEYS;
- ++key_info, ++i)
-#if defined (ACE_HAS_TSS_EMULATION)
- if (key_info->key_ != in_use_key_)
-#endif /* ACE_HAS_TSS_EMULATION */
- // Don't call ACE_OS::thr_keyfree () on ACE_TSS_Cleanup's own
- // key. See the comments in ACE_OS::thr_key_detach (): the key
- // doesn't get detached, so it will be in the table here.
- // However, there's no resource associated with it, so we don't
- // need to keyfree it. The dynamic memory associated with it
- // was already deleted by ACE_TSS_Cleanup::exit (), so we don't
- // want to access it again.
- key_arr [idx++] = key_info->key_;
-
- for (i = 0; i < idx; i++)
- if (key_arr[i] != ACE_OS::NULL_key)
-#if defined (ACE_HAS_TSS_EMULATION)
- ACE_OS::thr_keyfree (key_arr[i]);
-#elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS)
- // Don't call ACE_OS::thr_keyfree here. It will try to use
- // <in_use_> which has already been cleaned up here.
- ::tsd_delete (key_arr[i]);
-#else /* ACE_WIN32 */
- // Don't call ACE_OS::thr_keyfree here. It will try to use
- // <in_use_> which has already been cleaned up here.
- TlsFree (key_arr[i]);
-#endif /* ACE_HAS_TSS_EMULATION */
-
- return 0;
-}
-
-extern "C" void
-ACE_TSS_Cleanup_keys_destroyer (void *tss_keys)
-{
- delete ACE_reinterpret_cast (ACE_TSS_Keys *, tss_keys);
-}
-
-ACE_TSS_Cleanup::ACE_TSS_Cleanup (void)
- : in_use_ (ACE_OS::NULL_key)
-#if defined (ACE_HAS_TSS_EMULATION)
- // ACE_TSS_Emulation::total_keys () provides the value of the next
- // key to be created.
- , in_use_key_ (ACE_TSS_Emulation::total_keys ())
-#endif /* ACE_HAS_TSS_EMULATION */
-{
- ACE_OS_TRACE ("ACE_TSS_Cleanup::ACE_TSS_Cleanup");
-}
-
-ACE_TSS_Cleanup *
-ACE_TSS_Cleanup::instance (void)
-{
- ACE_OS_TRACE ("ACE_TSS_Cleanup::instance");
-
- // Create and initialize thread-specific key.
- if (ACE_TSS_Cleanup::instance_ == 0)
- {
- // Insure that we are serialized!
- ACE_TSS_CLEANUP_GUARD
-
- // Now, use the Double-Checked Locking pattern to make sure we
- // only create the ACE_TSS_Cleanup instance once.
- if (ACE_TSS_Cleanup::instance_ == 0)
- ACE_NEW_RETURN (ACE_TSS_Cleanup::instance_,
- ACE_TSS_Cleanup,
- 0);
- }
-
- return ACE_TSS_Cleanup::instance_;
-}
-
-int
-ACE_TSS_Cleanup::insert (ACE_thread_key_t key,
- void (*destructor)(void *),
- void *inst)
-{
- ACE_OS_TRACE ("ACE_TSS_Cleanup::insert");
- ACE_TSS_CLEANUP_GUARD
-
- ACE_KEY_INDEX (key_index, key);
- if (key_index < ACE_DEFAULT_THREAD_KEYS)
- {
- table_[key_index] = ACE_TSS_Info (key, destructor, inst);
- return 0;
- }
- else
- {
- return -1;
- }
-}
-
-int
-ACE_TSS_Cleanup::remove (ACE_thread_key_t key)
-{
- ACE_OS_TRACE ("ACE_TSS_Cleanup::remove");
- ACE_TSS_CLEANUP_GUARD
-
- ACE_KEY_INDEX (key_index, key);
- if (key_index < ACE_DEFAULT_THREAD_KEYS)
- {
- // "Remove" the TSS_Info table entry by zeroing out its key_ and
- // destructor_ fields. Also, keep track of the number threads
- // using the key.
- ACE_TSS_Info &info = this->table_ [key_index];
-
- // Don't bother to test/clear the in "use bit" if the program is
- // shutting down. Doing so will cause a new ACE_TSS object to be
- // created again.
- if (!ACE_OS_Object_Manager::shutting_down ())
- tss_keys ()->test_and_clear (info.key_);
- info.key_in_use (0);
- info.key_ = ACE_OS::NULL_key;
- info.destructor_ = 0;
- return 0;
- }
- else
- return -1;
-}
-
-int
-ACE_TSS_Cleanup::detach (void *inst)
-{
- ACE_TSS_CLEANUP_GUARD
-
- ACE_TSS_TABLE_ITERATOR key_info = table_;
- int success = 0;
- int ref_cnt = 0;
-
- // Mark the key as detached in the TSS_Info table.
- // It only works for the first key that "inst" owns.
- // I don't know why.
- for (unsigned int i = 0;
- i < ACE_DEFAULT_THREAD_KEYS;
- ++key_info, ++i)
- {
- if (key_info->tss_obj_ == inst)
- {
- key_info->tss_obj_ = 0;
- ref_cnt = --key_info->thread_count_;
- success = 1;
- break;
- }
- }
-
- if (success == 0)
- return -1;
- else if (ref_cnt == 0)
- {
- // Mark the key as no longer being used.
- key_info->key_in_use (0);
-# if defined (ACE_WIN32) || (defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS))
- ACE_thread_key_t temp_key = key_info->key_;
-# endif /* ACE_WIN32 */
- int retv = this->remove (key_info->key_);
-
-# if defined (ACE_WIN32)
- ::TlsFree (temp_key);
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS)
- ::tsd_delete (temp_key);
-# endif /* ACE_WIN32 */
- return retv;
- }
-
- return 0;
-}
-
-void
-ACE_TSS_Cleanup::key_used (ACE_thread_key_t key)
-{
- // If the key's ACE_TSS_Info in-use bit for this thread is not set,
- // set it and increment the key's thread_count_.
- if (! tss_keys ()->test_and_set (key))
- {
- ACE_TSS_CLEANUP_GUARD
-
- // Retrieve the key's ACE_TSS_Info and increment its thread_count_.
- ACE_KEY_INDEX (key_index, key);
- ACE_TSS_Info &key_info = this->table_ [key_index];
- if (!key_info.key_in_use ())
- key_info.key_in_use (1);
- else
- ++key_info.thread_count_;
- }
-}
-
-void
-ACE_TSS_Cleanup::dump (void)
-{
- // Iterate through all the thread-specific items and dump them all.
-
- ACE_TSS_TABLE_ITERATOR key_info = table_;
- for (unsigned int i = 0;
- i < ACE_DEFAULT_THREAD_KEYS;
- ++key_info, ++i)
- key_info->dump ();
-}
-
-ACE_TSS_Keys *
-ACE_TSS_Cleanup::tss_keys ()
-{
- if (in_use_ == ACE_OS::NULL_key)
- {
- ACE_TSS_CLEANUP_GUARD
- // Double-check;
- if (in_use_ == ACE_OS::NULL_key)
- {
- // Initialize in_use_ with a new key.
- if (ACE_OS::thr_keycreate (&in_use_,
- &ACE_TSS_Cleanup_keys_destroyer))
- return 0; // Major problems, this should *never* happen!
- }
- }
-
- ACE_TSS_Keys *ts_keys = 0;
- if (ACE_OS::thr_getspecific (in_use_,
- ACE_reinterpret_cast (void **, &ts_keys)) == -1)
- return 0; // This should not happen!
-
- if (ts_keys == 0)
- {
- ACE_NEW_RETURN (ts_keys,
- ACE_TSS_Keys,
- 0);
- // Store the dynamically allocated pointer in thread-specific
- // storage.
- if (ACE_OS::thr_setspecific (in_use_,
- ACE_reinterpret_cast (void *,
- ts_keys)) == -1)
- {
- delete ts_keys;
- return 0; // Major problems, this should *never* happen!
- }
- }
-
- return ts_keys;
-}
-
-# if defined (ACE_HAS_TSS_EMULATION)
-u_int ACE_TSS_Emulation::total_keys_ = 0;
-
-ACE_TSS_Keys ACE_TSS_Emulation::tss_keys_used_;
-
-ACE_TSS_Emulation::ACE_TSS_DESTRUCTOR
-ACE_TSS_Emulation::tss_destructor_[ACE_TSS_Emulation::ACE_TSS_THREAD_KEYS_MAX]
- = { 0 };
-
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
-
-int ACE_TSS_Emulation::key_created_ = 0;
-
-ACE_OS_thread_key_t ACE_TSS_Emulation::native_tss_key_;
-
-/* static */
-# if defined (ACE_HAS_THR_C_FUNC)
-extern "C"
-void
-ACE_TSS_Emulation_cleanup (void *ptr)
-{
- ACE_UNUSED_ARG (ptr);
- // Really this must be used for ACE_TSS_Emulation code to make the TSS
- // cleanup
-}
-#else
-void
-ACE_TSS_Emulation_cleanup (void *ptr)
-{
- ACE_UNUSED_ARG (ptr);
- // Really this must be used for ACE_TSS_Emulation code to make the TSS
- // cleanup
-}
-# endif /* ACE_HAS_THR_C_FUNC */
-
-void **
-ACE_TSS_Emulation::tss_base (void* ts_storage[], u_int *ts_created)
-{
- // TSS Singleton implementation.
-
- // Create the one native TSS key, if necessary.
- if (key_created_ == 0)
- {
- // Double-checked lock . . .
- ACE_TSS_BASE_GUARD
-
- if (key_created_ == 0)
- {
- ACE_NO_HEAP_CHECK;
- if (ACE_OS::thr_keycreate (&native_tss_key_,
- &ACE_TSS_Emulation_cleanup) != 0)
- {
- return 0; // Major problems, this should *never* happen!
- }
- key_created_ = 1;
- }
- }
-
- void **old_ts_storage = 0;
-
- // Get the tss_storage from thread-OS specific storage.
- if (ACE_OS::thr_getspecific (native_tss_key_,
- (void **) &old_ts_storage) == -1)
- return 0; // This should not happen!
-
- // Check to see if this is the first time in for this thread.
- // This block can also be entered after a fork () in the child process,
- // at least on Pthreads Draft 4 platforms.
- if (old_ts_storage == 0)
- {
- if (ts_created)
- *ts_created = 1u;
-
- // Use the ts_storage passed as argument, if non-zero. It is
- // possible that this has been implemented in the stack. At the
- // moment, this is unknown. The cleanup must not do nothing.
- // If ts_storage is zero, allocate (and eventually leak) the
- // storage array.
- if (ts_storage == 0)
- {
- ACE_NO_HEAP_CHECK;
-
- ACE_NEW_RETURN (ts_storage,
- void*[ACE_TSS_THREAD_KEYS_MAX],
- 0);
-
- // Zero the entire TSS array. Do it manually instead of
- // using memset, for optimum speed. Though, memset may be
- // faster :-)
- void **tss_base_p = ts_storage;
-
- for (u_int i = 0;
- i < ACE_TSS_THREAD_KEYS_MAX;
- ++i)
- *tss_base_p++ = 0;
- }
-
- // Store the pointer in thread-specific storage. It gets
- // deleted via the ACE_TSS_Emulation_cleanup function when the
- // thread terminates.
- if (ACE_OS::thr_setspecific (native_tss_key_,
- (void *) ts_storage) != 0)
- return 0; // Major problems, this should *never* happen!
- }
- else
- if (ts_created)
- ts_created = 0;
-
- return ts_storage ? ts_storage : old_ts_storage;
-}
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
-
-u_int
-ACE_TSS_Emulation::total_keys ()
-{
- ACE_OS_Recursive_Thread_Mutex_Guard (
- *ACE_static_cast (ACE_recursive_thread_mutex_t *,
- ACE_OS_Object_Manager::preallocated_object[
- ACE_OS_Object_Manager::ACE_TSS_KEY_LOCK]));
-
- return total_keys_;
-}
-
-int
-ACE_TSS_Emulation::next_key (ACE_thread_key_t &key)
-{
- ACE_OS_Recursive_Thread_Mutex_Guard (
- *ACE_static_cast (ACE_recursive_thread_mutex_t *,
- ACE_OS_Object_Manager::preallocated_object[
- ACE_OS_Object_Manager::ACE_TSS_KEY_LOCK]));
-
- if (total_keys_ < ACE_TSS_THREAD_KEYS_MAX)
- {
- u_int counter = 0;
- // Loop through all possible keys and check whether a key is free
- for ( ;counter < ACE_TSS_THREAD_KEYS_MAX; counter++)
- {
- ACE_thread_key_t localkey;
-# if defined (ACE_HAS_NONSCALAR_THREAD_KEY_T)
- ACE_OS::memset (&localkey, 0, sizeof (ACE_thread_key_t));
- ACE_OS::memcpy (&localkey, &counter_, sizeof (u_int));
-# else
- localkey = counter;
-# endif /* ACE_HAS_NONSCALAR_THREAD_KEY_T */
- // If the key is not set as used, we can give out this key, if not
- // we have to search further
- if (tss_keys_used_.is_set(localkey) == 0)
- {
- tss_keys_used_.test_and_set(localkey);
- key = localkey;
- break;
- }
- }
-
- ++total_keys_;
- return 0;
- }
- else
- {
- key = ACE_OS::NULL_key;
- return -1;
- }
-}
-
-int
-ACE_TSS_Emulation::release_key (ACE_thread_key_t key)
-{
- ACE_OS_Recursive_Thread_Mutex_Guard (
- *ACE_static_cast (ACE_recursive_thread_mutex_t *,
- ACE_OS_Object_Manager::preallocated_object[
- ACE_OS_Object_Manager::ACE_TSS_KEY_LOCK]));
-
- if (tss_keys_used_.test_and_clear (key) == 0)
- {
- --total_keys_;
- return 0;
- }
- return 1;
-}
-
-void *
-ACE_TSS_Emulation::tss_open (void *ts_storage[ACE_TSS_THREAD_KEYS_MAX])
-{
-# if defined (ACE_PSOS)
- u_long tss_base;
-
- // Use the supplied array for this thread's TSS.
- tss_base = (u_long) ts_storage;
- t_setreg (0, PSOS_TASK_REG_TSS, tss_base);
-
- // Zero the entire TSS array.
- void **tss_base_p = ts_storage;
- for (u_int i = 0; i < ACE_TSS_THREAD_KEYS_MAX; ++i, ++tss_base_p)
- {
- *tss_base_p = 0;
- }
-
- return (void *) tss_base;
-# else /* ! ACE_PSOS */
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
- // On VxWorks, in particular, don't check to see if the field
- // is 0. It isn't always, specifically, when a program is run
- // directly by the shell (without spawning a new task) after
- // another program has been run.
-
- u_int ts_created = 0;
- tss_base (ts_storage, &ts_created);
- if (ts_created)
- {
-# else /* ! ACE_HAS_THREAD_SPECIFIC_STORAGE */
- tss_base () = ts_storage;
-# endif
-
- // Zero the entire TSS array. Do it manually instead of using
- // memset, for optimum speed. Though, memset may be faster :-)
- void **tss_base_p = tss_base ();
- for (u_int i = 0; i < ACE_TSS_THREAD_KEYS_MAX; ++i, ++tss_base_p)
- {
- *tss_base_p = 0;
- }
-
- return tss_base ();
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
- }
- else
- {
- return 0;
- }
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
-# endif /* ! ACE_PSOS */
-}
-
-void
-ACE_TSS_Emulation::tss_close ()
-{
-#if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
- // Free native_tss_key_ here.
-#endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
-}
-
-# endif /* ACE_HAS_TSS_EMULATION */
-
-#endif /* WIN32 || ACE_HAS_TSS_EMULATION */
-
-void
-ACE_OS::cleanup_tss (const u_int main_thread)
-{
-#if defined (ACE_HAS_TSS_EMULATION) || defined (ACE_WIN32) || (defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS))
- // Call TSS destructors for current thread.
- ACE_TSS_Cleanup::instance ()->exit (0);
-#endif /* ACE_HAS_TSS_EMULATION || ACE_WIN32 || ACE_PSOS_HAS_TSS */
-
- if (main_thread)
- {
-#if !defined (ACE_HAS_TSS_EMULATION) && !defined (ACE_HAS_MINIMAL_ACE_OS)
- // Just close the ACE_Log_Msg for the current (which should be
- // main) thread. We don't have TSS emulation; if there's native
- // TSS, it should call its destructors when the main thread
- // exits.
- ACE_Base_Thread_Adapter::close_log_msg ();
-#endif /* ! ACE_HAS_TSS_EMULATION && ! ACE_HAS_MINIMAL_ACE_OS */
-
-#if defined (ACE_WIN32) || defined (ACE_HAS_TSS_EMULATION) || (defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS))
-#if ! defined (ACE_HAS_TSS_EMULATION)
- // Don't do this with TSS_Emulation, because the the
- // ACE_TSS_Cleanup::instance () has already exited (). We can't
- // safely access the TSS values that were created by the main
- // thread.
-
- // Remove all TSS_Info table entries.
- ACE_TSS_Cleanup::instance ()->free_all_keys_left ();
-#endif /* ! ACE_HAS_TSS_EMULATION */
-
- // Finally, free up the ACE_TSS_Cleanup instance. This method gets
- // called by the ACE_Object_Manager.
- delete ACE_TSS_Cleanup::instance ();
-#endif /* WIN32 || ACE_HAS_TSS_EMULATION || ACE_PSOS_HAS_TSS */
-
-#if defined (ACE_HAS_TSS_EMULATION)
- ACE_TSS_Emulation::tss_close ();
-#endif /* ACE_HAS_TSS_EMULATION */
- }
-}
-
-#if !defined(ACE_WIN32) && defined (__IBMCPP__) && (__IBMCPP__ >= 400)
-#define ACE_BEGINTHREADEX(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID) \
- (*THR_ID = ::_beginthreadex ((void(_Optlink*)(void*))ENTRY_POINT, STACK, STACKSIZE, ARGS), *THR_ID)
-#elif defined(ACE_WIN32) && defined (__IBMCPP__) && (__IBMCPP__ >= 400)
-
-struct __IBMCPP__thread_params {
- __IBMCPP__thread_params(ACE_THR_C_FUNC e, LPVOID a)
- :entry_point(e),args(a) {}
- ACE_THR_C_FUNC entry_point;
- LPVOID args;
-};
-
-#pragma handler(initThread)
-extern "C" DWORD __stdcall __IBMCPP__initThread(void *arg)
-{
- // Must reset 387 since using CreateThread
- _fpreset();
-
- // Dispatch user function...
- auto_ptr<__IBMCPP__thread_params> parms((__IBMCPP__thread_params *)arg);
- (*parms->entry_point)(parms->args);
- _endthread();
- return 0;
-}
-
-HANDLE WINAPI __IBMCPP__beginthreadex(void *stack,
- DWORD stacksize,
- ACE_THR_C_FUNC entry_point,
- LPVOID args,
- DWORD flags,
- LPDWORD thr_id)
-{
- return CreateThread(0,
- stacksize,
- (LPTHREAD_START_ROUTINE)__IBMCPP__initThread,
- new __IBMCPP__thread_params(entry_point, args),
- flags,
- thr_id);
-}
-
-#define ACE_BEGINTHREADEX(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID) \
- __IBMCPP__beginthreadex(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID)
-
-#elif defined (ACE_HAS_WINCE) && defined (UNDER_CE) && (UNDER_CE >= 211)
-#define ACE_BEGINTHREADEX(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID) \
- CreateThread (0, STACKSIZE, (unsigned long (__stdcall *) (void *)) ENTRY_POINT, ARGS, (FLAGS) & CREATE_SUSPENDED, (unsigned long *) THR_ID)
-#elif defined(ACE_HAS_WTHREADS)
- // Green Hills compiler gets confused when __stdcall is imbedded in
- // parameter list, so we define the type ACE_WIN32THRFUNC_T and use it
- // instead.
- typedef unsigned (__stdcall *ACE_WIN32THRFUNC_T)(void*);
-#define ACE_BEGINTHREADEX(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID) \
- ::_beginthreadex (STACK, STACKSIZE, (ACE_WIN32THRFUNC_T) ENTRY_POINT, ARGS, FLAGS, (unsigned int *) THR_ID)
-#endif /* defined (__IBMCPP__) && (__IBMCPP__ >= 400) */
-
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
-int ACE_SEH_Default_Exception_Selector (void *)
-{
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("(%t) Win32 structured exception exiting thread\n")));
-#endif /* 0 */
- return (DWORD) ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION;
-}
-
-int ACE_SEH_Default_Exception_Handler (void *)
-{
- return 0;
-}
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-
-extern "C" void
-ace_cleanup_destroyer (ACE_Cleanup *object, void *param)
-{
- object->cleanup (param);
-}
-
-int
-ACE_OS::thr_create (ACE_THR_FUNC func,
- void *args,
- long flags,
- ACE_thread_t *thr_id,
- ACE_hthread_t *thr_handle,
- long priority,
- void *stack,
- size_t stacksize,
- ACE_Base_Thread_Adapter *thread_adapter)
-{
- ACE_OS_TRACE ("ACE_OS::thr_create");
-
- if (ACE_BIT_DISABLED (flags, THR_DETACHED) &&
- ACE_BIT_DISABLED (flags, THR_JOINABLE))
- ACE_SET_BITS (flags, THR_JOINABLE);
-
-# if defined (ACE_NO_THREAD_ADAPTER)
-# define ACE_THREAD_FUNCTION func
-# define ACE_THREAD_ARGUMENT args
-# else /* ! defined (ACE_NO_THREAD_ADAPTER) */
-# if defined (ACE_PSOS)
-# define ACE_THREAD_FUNCTION (PSOS_TASK_ENTRY_POINT) thread_args->entry_point ()
-# else
-# define ACE_THREAD_FUNCTION thread_args->entry_point ()
-# endif /* defined (ACE_PSOS) */
-# define ACE_THREAD_ARGUMENT thread_args
-# endif /* ! defined (ACE_NO_THREAD_ADAPTER) */
-
-
- ACE_Base_Thread_Adapter *thread_args;
- if (thread_adapter == 0)
-
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- ACE_NEW_RETURN (thread_args,
- ACE_OS_Thread_Adapter (func, args,
- (ACE_THR_C_FUNC) ace_thread_adapter,
- ACE_OS_Object_Manager::seh_except_selector(),
- ACE_OS_Object_Manager::seh_except_handler()),
- -1);
-# else
- ACE_NEW_RETURN (thread_args,
- ACE_OS_Thread_Adapter (func, args,
- (ACE_THR_C_FUNC) ace_thread_adapter),
- -1);
-
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- else
- thread_args = thread_adapter;
-
-# if defined (ACE_HAS_THREADS)
-
- // *** Set Stack Size
-# if defined (ACE_NEEDS_HUGE_THREAD_STACKSIZE)
- if (stacksize < ACE_NEEDS_HUGE_THREAD_STACKSIZE)
- stacksize = ACE_NEEDS_HUGE_THREAD_STACKSIZE;
-# endif /* ACE_NEEDS_HUGE_THREAD_STACKSIZE */
-
-# if !defined (VXWORKS)
- // On VxWorks, the OS will provide a task name if the user doesn't.
- // So, we don't need to create a tmp_thr. If the caller of this
- // member function is the Thread_Manager, than thr_id will be non-zero
- // anyways.
- ACE_thread_t tmp_thr;
-
- if (thr_id == 0)
- thr_id = &tmp_thr;
-# endif /* ! VXWORKS */
-
- ACE_hthread_t tmp_handle;
- if (thr_handle == 0)
- thr_handle = &tmp_handle;
-
-# if defined (ACE_HAS_PTHREADS)
-
- int result;
- pthread_attr_t attr;
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (::pthread_attr_create (&attr) != 0)
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
- if (::pthread_attr_init (&attr) != 0)
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- return -1;
-
-# if defined (CHORUS)
- // If it is a super actor, we can't set stacksize. But for the time
- // being we are all non-super actors. Should be fixed to take care
- // of super actors!!!
- if (stacksize == 0)
- stacksize = ACE_CHORUS_DEFAULT_MIN_STACK_SIZE;
- else if (stacksize < ACE_CHORUS_DEFAULT_MIN_STACK_SIZE)
- stacksize = ACE_CHORUS_DEFAULT_MIN_STACK_SIZE;
-# endif /*CHORUS */
-
-# if defined (ACE_HAS_PTHREAD_SETSTACK)
- if ((stacksize != 0) && (stack != 0))
-# else
- if (stacksize != 0)
-# endif /* ACE_HAS_PTHREAD_SETSTACK */
- {
- size_t size = stacksize;
-
-# if defined (PTHREAD_STACK_MIN)
- if (size < ACE_static_cast (size_t, PTHREAD_STACK_MIN))
- size = PTHREAD_STACK_MIN;
-# endif /* PTHREAD_STACK_MIN */
-
-# if !defined (ACE_LACKS_THREAD_STACK_SIZE) // JCEJ 12/17/96
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- if (::pthread_attr_setstacksize (&attr, size) != 0)
-# else
-# if defined (ACE_HAS_PTHREAD_SETSTACK)
- if (ACE_ADAPT_RETVAL(pthread_attr_setstack (&attr, stack, size), result) == -1)
-# else
- if (ACE_ADAPT_RETVAL(pthread_attr_setstacksize (&attr, size), result) == -1)
-# endif /* ACE_HAS_PTHREAD_SETSTACK */
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
- {
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
- ::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- return -1;
- }
-# else
- ACE_UNUSED_ARG (size);
-# endif /* !ACE_LACKS_THREAD_STACK_SIZE */
- }
-
- // *** Set Stack Address
-# if !defined (ACE_HAS_PTHREAD_SETSTACK)
-# if !defined (ACE_LACKS_THREAD_STACK_ADDR)
- if (stack != 0)
- {
- if (::pthread_attr_setstackaddr (&attr, stack) != 0)
- {
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
- ::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- return -1;
- }
- }
-# else
- ACE_UNUSED_ARG (stack);
-# endif /* !ACE_LACKS_THREAD_STACK_ADDR */
-# endif /* ACE_HAS_PTHREAD_SETSTACK */
-
- // *** Deal with various attributes
- if (flags != 0)
- {
- // *** Set Detach state
-# if !defined (ACE_LACKS_SETDETACH)
- if (ACE_BIT_ENABLED (flags, THR_DETACHED)
- || ACE_BIT_ENABLED (flags, THR_JOINABLE))
- {
- int dstate = PTHREAD_CREATE_JOINABLE;
-
- if (ACE_BIT_ENABLED (flags, THR_DETACHED))
- dstate = PTHREAD_CREATE_DETACHED;
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (::pthread_attr_setdetach_np (&attr, dstate) != 0)
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
-# if defined (ACE_HAS_PTHREADS_DRAFT6)
- if (::pthread_attr_setdetachstate (&attr, &dstate) != 0)
-# else
- if (ACE_ADAPT_RETVAL(::pthread_attr_setdetachstate (&attr, dstate),
- result) != 0)
-# endif /* ACE_HAS_PTHREADS_DRAFT6 */
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- {
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
- ::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- return -1;
- }
- }
-
- // Note: if ACE_LACKS_SETDETACH and THR_DETACHED is enabled, we
- // call ::pthread_detach () below. If THR_DETACHED is not
- // enabled, we call ::pthread_detach () in the Thread_Manager,
- // after joining with the thread.
-# endif /* ACE_LACKS_SETDETACH */
-
- // *** Set Policy
-# if !defined (ACE_LACKS_SETSCHED)
- // If we wish to set the priority explicitly, we have to enable
- // explicit scheduling, and a policy, too.
- if (priority != ACE_DEFAULT_THREAD_PRIORITY)
- {
- ACE_SET_BITS (flags, THR_EXPLICIT_SCHED);
- if (ACE_BIT_DISABLED (flags, THR_SCHED_FIFO)
- && ACE_BIT_DISABLED (flags, THR_SCHED_RR)
- && ACE_BIT_DISABLED (flags, THR_SCHED_DEFAULT))
- ACE_SET_BITS (flags, THR_SCHED_DEFAULT);
- }
-
- if (ACE_BIT_ENABLED (flags, THR_SCHED_FIFO)
- || ACE_BIT_ENABLED (flags, THR_SCHED_RR)
- || ACE_BIT_ENABLED (flags, THR_SCHED_DEFAULT))
- {
- int spolicy;
-
-# if defined (ACE_HAS_ONLY_SCHED_OTHER)
- // SunOS, thru version 5.6, only supports SCHED_OTHER.
- spolicy = SCHED_OTHER;
-# else
- // Make sure to enable explicit scheduling, in case we didn't
- // enable it above (for non-default priority).
- ACE_SET_BITS (flags, THR_EXPLICIT_SCHED);
-
- if (ACE_BIT_ENABLED (flags, THR_SCHED_DEFAULT))
- spolicy = SCHED_OTHER;
- else if (ACE_BIT_ENABLED (flags, THR_SCHED_FIFO))
- spolicy = SCHED_FIFO;
-# if defined (SCHED_IO)
- else if (ACE_BIT_ENABLED (flags, THR_SCHED_IO))
- spolicy = SCHED_IO;
-# else
- else if (ACE_BIT_ENABLED (flags, THR_SCHED_IO))
- {
- errno = ENOSYS;
- return -1;
- }
-# endif /* SCHED_IO */
- else
- spolicy = SCHED_RR;
-
-# if defined (ACE_HAS_FSU_PTHREADS)
- int ret;
- switch (spolicy)
- {
- case SCHED_FIFO:
- case SCHED_RR:
- ret = 0;
- break;
- default:
- ret = 22;
- break;
- }
- if (ret != 0)
- {
- ::pthread_attr_destroy (&attr);
- return -1;
- }
-# endif /* ACE_HAS_FSU_PTHREADS */
-
-# endif /* ACE_HAS_ONLY_SCHED_OTHER */
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- result = ::pthread_attr_setsched (&attr, spolicy);
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- result = ::pthread_attr_setschedpolicy (&attr, spolicy);
-# else /* draft 7 or std */
- ACE_ADAPT_RETVAL(::pthread_attr_setschedpolicy (&attr, spolicy),
- result);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- if (result != 0)
- {
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
- ::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- return -1;
- }
- }
-
- // *** Set Priority (use reasonable default priorities)
-# if defined(ACE_HAS_PTHREADS_STD)
- // If we wish to explicitly set a scheduling policy, we also
- // have to specify a priority. We choose a "middle" priority as
- // default. Maybe this is also necessary on other POSIX'ish
- // implementations?
- if ((ACE_BIT_ENABLED (flags, THR_SCHED_FIFO)
- || ACE_BIT_ENABLED (flags, THR_SCHED_RR)
- || ACE_BIT_ENABLED (flags, THR_SCHED_DEFAULT))
- && priority == ACE_DEFAULT_THREAD_PRIORITY)
- {
- if (ACE_BIT_ENABLED (flags, THR_SCHED_FIFO))
- priority = ACE_THR_PRI_FIFO_DEF;
- else if (ACE_BIT_ENABLED (flags, THR_SCHED_RR))
- priority = ACE_THR_PRI_RR_DEF;
- else // THR_SCHED_DEFAULT
- priority = ACE_THR_PRI_OTHER_DEF;
- }
-# endif /* ACE_HAS_PTHREADS_STD */
- if (priority != ACE_DEFAULT_THREAD_PRIORITY)
- {
- struct sched_param sparam;
- ACE_OS::memset ((void *) &sparam, 0, sizeof sparam);
-
-# if defined (ACE_HAS_IRIX62_THREADS)
- sparam.sched_priority = ACE_MIN (priority,
- (long) PTHREAD_MAX_PRIORITY);
-# elif defined (PTHREAD_MAX_PRIORITY) && !defined(ACE_HAS_PTHREADS_STD)
- /* For MIT pthreads... */
- sparam.prio = ACE_MIN (priority, PTHREAD_MAX_PRIORITY);
-# elif defined(ACE_HAS_PTHREADS_STD) && !defined (ACE_HAS_STHREADS)
- // The following code forces priority into range.
- if (ACE_BIT_ENABLED (flags, THR_SCHED_FIFO))
- sparam.sched_priority =
- ACE_MIN (ACE_THR_PRI_FIFO_MAX,
- ACE_MAX (ACE_THR_PRI_FIFO_MIN, priority));
- else if (ACE_BIT_ENABLED(flags, THR_SCHED_RR))
- sparam.sched_priority =
- ACE_MIN (ACE_THR_PRI_RR_MAX,
- ACE_MAX (ACE_THR_PRI_RR_MIN, priority));
- else // Default policy, whether set or not
- sparam.sched_priority =
- ACE_MIN (ACE_THR_PRI_OTHER_MAX,
- ACE_MAX (ACE_THR_PRI_OTHER_MIN, priority));
-# elif defined (PRIORITY_MAX)
- sparam.sched_priority = ACE_MIN (priority,
- (long) PRIORITY_MAX);
-# else
- sparam.sched_priority = priority;
-# endif /* ACE_HAS_IRIX62_THREADS */
-
-# if defined (ACE_HAS_FSU_PTHREADS)
- if (sparam.sched_priority >= PTHREAD_MIN_PRIORITY
- && sparam.sched_priority <= PTHREAD_MAX_PRIORITY)
- attr.prio = sparam.sched_priority;
- else
- {
- pthread_attr_destroy (&attr);
- errno = EINVAL;
- return -1;
- }
-# else
- {
-# if defined (sun) && defined (ACE_HAS_ONLY_SCHED_OTHER)
- // SunOS, through 5.6, POSIX only allows priorities > 0 to
- // ::pthread_attr_setschedparam. If a priority of 0 was
- // requested, set the thread priority after creating it, below.
- if (priority > 0)
-# endif /* sun && ACE_HAS_ONLY_SCHED_OTHER */
- {
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- result = ::pthread_attr_setprio (&attr,
- sparam.sched_priority);
-# else /* this is draft 7 or std */
- ACE_ADAPT_RETVAL(::pthread_attr_setschedparam (&attr, &sparam),
- result);
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
- if (result != 0)
- {
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
- ::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- return -1;
- }
- }
- }
-# endif /* ACE_HAS_FSU_PTHREADS */
- }
-
- // *** Set scheduling explicit or inherited
- if (ACE_BIT_ENABLED (flags, THR_INHERIT_SCHED)
- || ACE_BIT_ENABLED (flags, THR_EXPLICIT_SCHED))
- {
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- int sched = PTHREAD_DEFAULT_SCHED;
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
- int sched = PTHREAD_EXPLICIT_SCHED;
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- if (ACE_BIT_ENABLED (flags, THR_INHERIT_SCHED))
- sched = PTHREAD_INHERIT_SCHED;
- if (::pthread_attr_setinheritsched (&attr, sched) != 0)
- {
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
- ::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- return -1;
- }
- }
-# else /* ACE_LACKS_SETSCHED */
- ACE_UNUSED_ARG (priority);
-# endif /* ACE_LACKS_SETSCHED */
-
- // *** Set Scope
-# if !defined (ACE_LACKS_THREAD_PROCESS_SCOPING)
- if (ACE_BIT_ENABLED (flags, THR_SCOPE_SYSTEM)
- || ACE_BIT_ENABLED (flags, THR_SCOPE_PROCESS))
- {
-# if defined (ACE_CONFIG_LINUX_H) || defined (HPUX)
- // LinuxThreads do not have support for PTHREAD_SCOPE_PROCESS.
- // Neither does HPUX (up to HP-UX 11.00, as far as I know).
- int scope = PTHREAD_SCOPE_SYSTEM;
-# else /* ACE_CONFIG_LINUX_H */
- int scope = PTHREAD_SCOPE_PROCESS;
-# endif /* ACE_CONFIG_LINUX_H */
- if (ACE_BIT_ENABLED (flags, THR_SCOPE_SYSTEM))
- scope = PTHREAD_SCOPE_SYSTEM;
-
- if (::pthread_attr_setscope (&attr, scope) != 0)
- {
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
- ::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- return -1;
- }
- }
-# endif /* !ACE_LACKS_THREAD_PROCESS_SCOPING */
-
- if (ACE_BIT_ENABLED (flags, THR_NEW_LWP))
- {
- // Increment the number of LWPs by one to emulate the
- // SunOS semantics.
- int lwps = ACE_OS::thr_getconcurrency ();
- if (lwps == -1)
- {
- if (errno == ENOTSUP)
- // Suppress the ENOTSUP because it's harmless.
- errno = 0;
- else
- // This should never happen on SunOS:
- // ::thr_getconcurrency () should always succeed.
- return -1;
- }
- else if (ACE_OS::thr_setconcurrency (lwps + 1) == -1)
- {
- if (errno == ENOTSUP)
- {
- // Unlikely: ::thr_getconcurrency () is supported but
- // ::thr_setconcurrency () is not?
- }
- else
- return -1;
- }
- }
- }
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ACE_OSCALL (::pthread_create (thr_id, attr,
- thread_args->entry_point (),
- thread_args),
- int, -1, result);
-
-# if defined (ACE_LACKS_SETDETACH)
- if (ACE_BIT_ENABLED (flags, THR_DETACHED))
- {
-# if defined (HPUX_10)
- // HP-UX DCE threads' pthread_detach will smash thr_id if it's
- // just given as an argument. This will cause
- // ACE_Thread_Manager (if it's doing this create) to lose track
- // of the new thread since the ID will be passed back equal to
- // 0. So give pthread_detach a junker to scribble on.
- ACE_thread_t junker;
- cma_handle_assign(thr_id, &junker);
- ::pthread_detach (&junker);
-# else
- ::pthread_detach (thr_id);
-# endif /* HPUX_10 */
- }
-# endif /* ACE_LACKS_SETDETACH */
-
- ::pthread_attr_delete (&attr);
-
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL (::pthread_create (thr_id, &attr,
- thread_args->entry_point (),
- thread_args),
- int, -1, result);
- ::pthread_attr_destroy (&attr);
-
-# else /* this is draft 7 or std */
- ACE_OSCALL (ACE_ADAPT_RETVAL (::pthread_create (thr_id,
- &attr,
- thread_args->entry_point (),
- thread_args),
- result),
- int, -1, result);
- ::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-
- // This is a SunOS or POSIX implementation of pthreads, where we
- // assume that ACE_thread_t and ACE_hthread_t are the same. If this
- // *isn't* correct on some platform, please let us know.
- if (result != -1)
- *thr_handle = *thr_id;
-
-# if defined (sun) && defined (ACE_HAS_ONLY_SCHED_OTHER)
- // SunOS prior to 5.7:
-
- // If the priority is 0, then we might have to set it now because we
- // couldn't set it with ::pthread_attr_setschedparam, as noted
- // above. This doesn't provide strictly correct behavior, because
- // the thread was created (above) with the priority of its parent.
- // (That applies regardless of the inherit_sched attribute: if it
- // was PTHREAD_INHERIT_SCHED, then it certainly inherited its
- // parent's priority. If it was PTHREAD_EXPLICIT_SCHED, then "attr"
- // was initialized by the SunOS ::pthread_attr_init () to contain
- // NULL for the priority, which indicated to SunOS ::pthread_create
- // () to inherit the parent priority.)
- if (priority == 0)
- {
- // Check the priority of this thread, which is the parent
- // of the newly created thread. If it is 0, then the
- // newly created thread will have inherited the priority
- // of 0, so there's no need to explicitly set it.
- struct sched_param sparam;
- int policy = 0;
- ACE_OSCALL (ACE_ADAPT_RETVAL (::pthread_getschedparam (thr_self (),
- &policy,
- &sparam),
- result), int,
- -1, result);
-
- // The only policy supported by by SunOS, thru version 5.6,
- // is SCHED_OTHER, so that's hard-coded here.
- policy = ACE_SCHED_OTHER;
-
- if (sparam.sched_priority != 0)
- {
- ACE_OS::memset ((void *) &sparam, 0, sizeof sparam);
- // The memset to 0 sets the priority to 0, so we don't need
- // to explicitly set sparam.sched_priority.
-
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_setschedparam (*thr_id,
- policy,
- &sparam),
- result),
- int, -1);
- }
- }
-
-# if defined (ACE_NEEDS_LWP_PRIO_SET)
-# if 0
- // It would be useful if we could make this work. But, it requires
- // a mechanism for determining the ID of an LWP to which another
- // thread is bound. Is there a way to do that? Instead, just rely
- // on the code in ACE_Thread_Adapter::invoke () to set the LWP
- // priority.
-
- // If the thread is bound, then set the priority on its LWP.
- if (ACE_BIT_ENABLED (flags, THR_BOUND))
- {
- ACE_Sched_Params sched_params (ACE_BIT_ENABLED (flags, THR_SCHED_FIFO) ||
- ACE_BIT_ENABLED (flags, THR_SCHED_RR) ?
- ACE_SCHED_FIFO :
- ACE_SCHED_OTHER,
- priority);
- result = ACE_OS::lwp_setparams (sched_params,
- /* ? How do we find the ID of the LWP
- to which *thr_id is bound? */);
- }
-# endif /* 0 */
-# endif /* ACE_NEEDS_LWP_PRIO_SET */
-
-# endif /* sun && ACE_HAS_ONLY_SCHED_OTHER */
- return result;
-# elif defined (ACE_HAS_STHREADS)
- int result;
- int start_suspended = ACE_BIT_ENABLED (flags, THR_SUSPENDED);
-
- if (priority != ACE_DEFAULT_THREAD_PRIORITY)
- // If we need to set the priority, then we need to start the
- // thread in a suspended mode.
- ACE_SET_BITS (flags, THR_SUSPENDED);
-
- ACE_OSCALL (ACE_ADAPT_RETVAL (::thr_create (stack, stacksize,
- thread_args->entry_point (),
- thread_args,
- flags, thr_id), result),
- int, -1, result);
-
- if (result != -1)
- {
- // With SunOS threads, ACE_thread_t and ACE_hthread_t are the same.
- *thr_handle = *thr_id;
-
- if (priority != ACE_DEFAULT_THREAD_PRIORITY)
- {
- // Set the priority of the new thread and then let it
- // continue, but only if the user didn't start it suspended
- // in the first place!
- if ((result = ACE_OS::thr_setprio (*thr_id, priority)) != 0)
- {
- errno = result;
- return -1;
- }
-
- if (start_suspended == 0)
- {
- if ((result = ACE_OS::thr_continue (*thr_id)) != 0)
- {
- errno = result;
- return -1;
- }
- }
- }
- }
- return result;
-# elif defined (ACE_HAS_WTHREADS)
- ACE_UNUSED_ARG (stack);
-# if defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
- if (ACE_BIT_ENABLED (flags, THR_USE_AFX))
- {
- CWinThread *cwin_thread =
- ::AfxBeginThread ((AFX_THREADPROC) thread_args->entry_point (),
- thread_args,
- priority,
- 0,
- flags | THR_SUSPENDED);
- // Have to duplicate the handle because
- // CWinThread::~CWinThread() closes the original handle.
-# if !defined (ACE_HAS_WINCE)
- (void) ::DuplicateHandle (::GetCurrentProcess (),
- cwin_thread->m_hThread,
- ::GetCurrentProcess (),
- thr_handle,
- 0,
- TRUE,
- DUPLICATE_SAME_ACCESS);
-# endif /* ! ACE_HAS_WINCE */
- *thr_id = cwin_thread->m_nThreadID;
-
- if (ACE_BIT_ENABLED (flags, THR_SUSPENDED) == 0)
- cwin_thread->ResumeThread ();
- // cwin_thread will be deleted in AfxThreadExit()
- // Warning: If AfxThreadExit() is called from within the
- // thread, ACE_TSS_Cleanup->exit() never gets called !
- }
- else
-# endif /* ACE_HAS_MFC */
- {
- int start_suspended = ACE_BIT_ENABLED (flags, THR_SUSPENDED);
-
- if (priority != ACE_DEFAULT_THREAD_PRIORITY)
- // If we need to set the priority, then we need to start the
- // thread in a suspended mode.
- ACE_SET_BITS (flags, THR_SUSPENDED);
-
- *thr_handle = (void *) ACE_BEGINTHREADEX (0,
- ACE_static_cast
- (u_int, stacksize),
- thread_args->entry_point (),
- thread_args,
- flags,
- thr_id);
-
- if (priority != ACE_DEFAULT_THREAD_PRIORITY && *thr_handle != 0)
- {
- // Set the priority of the new thread and then let it
- // continue, but only if the user didn't start it suspended
- // in the first place!
- ACE_OS::thr_setprio (*thr_handle, priority);
-
- if (start_suspended == 0)
- ACE_OS::thr_continue (*thr_handle);
- }
- }
-# if 0
- *thr_handle = ::CreateThread
- (0,
- stacksize,
- LPTHREAD_START_ROUTINE (thread_args->entry_point ()),
- thread_args,
- flags,
- thr_id);
-# endif /* 0 */
-
- // Close down the handle if no one wants to use it.
- if (thr_handle == &tmp_handle)
- ::CloseHandle (tmp_handle);
-
- if (*thr_handle != 0)
- return 0;
- else
- ACE_FAIL_RETURN (-1);
- /* NOTREACHED */
-
-# elif defined (ACE_PSOS)
-
- // stack is created in the task's memory region 0
- ACE_UNUSED_ARG (stack);
-
- // task creation and start flags are fixed
- ACE_UNUSED_ARG (flags);
-
- // lowest priority is reserved for the IDLE pSOS+ system daemon,
- // highest are reserved for high priority pSOS+ system daemons
- if (priority < PSOS_TASK_MIN_PRIORITY)
- {
- priority = PSOS_TASK_MIN_PRIORITY;
- }
- else if (priority > PSOS_TASK_MAX_PRIORITY)
- {
- priority = PSOS_TASK_MAX_PRIORITY;
- }
-
- // set the stacksize to a default value if no size is specified
- if (stacksize == 0)
- stacksize = ACE_PSOS_DEFAULT_STACK_SIZE;
-
- ACE_hthread_t tid;
- *thr_handle = 0;
-
- // create the thread
- if (t_create ((char *) thr_id, // task name
- priority, // (possibly adjusted) task priority
- stacksize, // passed stack size is used for supervisor stack
- 0, // no user stack: tasks run strictly in supervisor mode
- T_LOCAL, // local to the pSOS+ node (does not support pSOS+m)
- &tid) // receives task id
- != 0)
- {
- return -1;
- }
-
- // pSOS tasks are passed an array of 4 u_longs
- u_long targs[4];
- targs[0] = (u_long) ACE_THREAD_ARGUMENT;
- targs[1] = 0;
- targs[2] = 0;
- targs[3] = 0;
-
- // start the thread
- if (t_start (tid,
- T_PREEMPT | // Task can be preempted
- // T_NOTSLICE | // Task is not timesliced with other tasks at same priority
- T_TSLICE | // Task is timesliced with other tasks at same priority
- T_NOASR | // Task level signals disabled
- T_SUPV | // Task runs strictly in supervisor mode
- T_ISR, // Hardware interrupts are enabled
- ACE_THREAD_FUNCTION, // Task entry point
- targs) // Task argument(s)
- != 0)
- {
- return -1;
- }
-
- // store the task id in the handle and return success
- *thr_handle = tid;
- return 0;
-
-# elif defined (VXWORKS)
- // The hard-coded values below are what ::sp () would use. (::sp ()
- // hardcodes priority to 100, flags to VX_FP_TASK, and stacksize to
- // 20,000.) stacksize should be an even integer. If a stack is not
- // specified, ::taskSpawn () is used so that we can set the
- // priority, flags, and stacksize. If a stack is specified,
- // ::taskInit ()/::taskActivate() are used.
-
- // If called with thr_create() defaults, use same default values as ::sp ():
- if (priority == ACE_DEFAULT_THREAD_PRIORITY) priority = 100;
- // Assumes that there is a floating point coprocessor. As noted
- // above, ::sp () hardcodes this, so we should be safe with it.
- if (flags == 0) flags = VX_FP_TASK;
- if (stacksize == 0) stacksize = 20000;
-
- const u_int thr_id_provided =
- thr_id && *thr_id && (*thr_id)[0] != ACE_THR_ID_ALLOCATED;
-
- ACE_hthread_t tid;
-# if 0 /* Don't support setting of stack, because it doesn't seem to work. */
- if (stack == 0)
- {
-# else
- ACE_UNUSED_ARG (stack);
-# endif /* 0 */
- // The call below to ::taskSpawn () causes VxWorks to assign a
- // unique task name of the form: "t" + an integer, because the
- // first argument is 0.
- tid = ::taskSpawn (thr_id_provided ? *thr_id : 0,
- priority,
- (int) flags,
- (int) stacksize,
- thread_args->entry_point (),
- (int) thread_args,
- 0, 0, 0, 0, 0, 0, 0, 0, 0);
-# if 0 /* Don't support setting of stack, because it doesn't seem to work. */
- }
- else
- {
- // If a task name (thr_id) was not supplied, then the task will
- // not have a unique name. That's VxWorks' behavior.
-
- // Carve out a TCB at the beginning of the stack space. The TCB
- // occupies 400 bytes with VxWorks 5.3.1/I386.
- WIND_TCB *tcb = (WIND_TCB *) stack;
-
- // The TID is defined to be the address of the TCB.
- int status = ::taskInit (tcb,
- thr_id_provided ? *thr_id : 0,
- priority,
- (int) flags,
- (char *) stack + sizeof (WIND_TCB),
- (int) (stacksize - sizeof (WIND_TCB)),
- thread_args->entry_point (),
- (int) thread_args,
- 0, 0, 0, 0, 0, 0, 0, 0, 0);
-
- if (status == OK)
- {
- // The task was successfully initialized, now activate it.
- status = ::taskActivate ((ACE_hthread_t) tcb);
- }
-
- tid = status == OK ? (ACE_hthread_t) tcb : ERROR;
- }
-# endif /* 0 */
-
- if (tid == ERROR)
- return -1;
- else
- {
- if (! thr_id_provided && thr_id)
- {
- if (*thr_id && (*thr_id)[0] == ACE_THR_ID_ALLOCATED)
- // *thr_id was allocated by the Thread_Manager. ::taskTcb
- // (int tid) returns the address of the WIND_TCB (task
- // control block). According to the ::taskSpawn()
- // documentation, the name of the new task is stored at
- // pStackBase, but is that of the current task? If so, it
- // might be a bit quicker than this extraction of the tcb
- // . . .
- ACE_OS::strsncpy (*thr_id + 1, ::taskTcb (tid)->name, 10);
- else
- // *thr_id was not allocated by the Thread_Manager.
- // Pass back the task name in the location pointed to
- // by thr_id.
- *thr_id = ::taskTcb (tid)->name;
- }
- // else if the thr_id was provided, there's no need to overwrite
- // it with the same value (string). If thr_id is 0, then we can't
- // pass the task name back.
-
- if (thr_handle)
- *thr_handle = tid;
-
- return 0;
- }
-
-# endif /* ACE_HAS_STHREADS */
-# else
- ACE_UNUSED_ARG (func);
- ACE_UNUSED_ARG (args);
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (thr_id);
- ACE_UNUSED_ARG (thr_handle);
- ACE_UNUSED_ARG (priority);
- ACE_UNUSED_ARG (stack);
- ACE_UNUSED_ARG (stacksize);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-void
-ACE_OS::thr_exit (ACE_THR_FUNC_RETURN status)
-{
- ACE_OS_TRACE ("ACE_OS::thr_exit");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
- ::pthread_exit (status);
-# elif defined (ACE_HAS_STHREADS)
- ::thr_exit (status);
-# elif defined (ACE_HAS_WTHREADS)
- // Can't call it here because on NT, the thread is exited
- // directly by ACE_Thread_Adapter::invoke ().
- // ACE_TSS_Cleanup::instance ()->exit (status);
-
-# if defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
- int using_afx = -1;
- // An ACE_Thread_Descriptor really is an ACE_OS_Thread_Descriptor.
- // But without #including ace/Thread_Manager.h, we don't know that.
- ACE_OS_Thread_Descriptor *td =
- ACE_Base_Thread_Adapter::thr_desc_log_msg ();
- if (td)
- using_afx = ACE_BIT_ENABLED (td->flags (), THR_USE_AFX);
-# endif /* ACE_HAS_MFC && (ACE_HAS_MFC != 0) */
-
- // Call TSS destructors.
- ACE_OS::cleanup_tss (0 /* not main thread */);
-
- // Exit the thread.
- // Allow CWinThread-destructor to be invoked from AfxEndThread.
- // _endthreadex will be called from AfxEndThread so don't exit the
- // thread now if we are running an MFC thread.
-# if defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
- if (using_afx != -1)
- {
- if (using_afx)
- ::AfxEndThread (status);
- else
- ACE_ENDTHREADEX (status);
- }
- else
- {
- // Not spawned by ACE_Thread_Manager, use the old buggy
- // version. You should seriously consider using
- // ACE_Thread_Manager to spawn threads. The following code is
- // know to cause some problem.
- CWinThread *pThread = ::AfxGetThread ();
- if (!pThread || pThread->m_nThreadID != ACE_OS::thr_self ())
- ACE_ENDTHREADEX (status);
- else
- ::AfxEndThread (status);
- }
-# else
- ACE_ENDTHREADEX (status);
-# endif /* ACE_HAS_MFC && ACE_HAS_MFS != 0*/
-
-# elif defined (VXWORKS)
- ACE_hthread_t tid;
- ACE_OS::thr_self (tid);
- *((int *) status) = ::taskDelete (tid);
-# elif defined (ACE_PSOS)
- ACE_hthread_t tid;
- ACE_OS::thr_self (tid);
-
-# if defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS)
- // Call TSS destructors.
- ACE_OS::cleanup_tss (0 /* not main thread */);
-# endif /* ACE_PSOS && ACE_PSOS_HAS_TSS */
-
- *((u_long *) status) = ::t_delete (tid);
-# endif /* ACE_HAS_PTHREADS */
-# else
- ACE_UNUSED_ARG (status);
-# endif /* ACE_HAS_THREADS */
-}
-
-int
-ACE_OS::lwp_getparams (ACE_Sched_Params &sched_params)
-{
-# if defined (ACE_HAS_STHREADS) || defined (sun)
- // Get the class TS and RT class IDs.
- ACE_id_t rt_id;
- ACE_id_t ts_id;
- if (ACE_OS::scheduling_class ("RT", rt_id) == -1
- || ACE_OS::scheduling_class ("TS", ts_id) == -1)
- return -1;
-
- // Get this LWP's scheduling parameters.
- pcparms_t pcparms;
- // The following is just to avoid Purify warnings about unitialized
- // memory reads.
- ACE_OS::memset (&pcparms, 0, sizeof pcparms);
- pcparms.pc_cid = PC_CLNULL;
-
- if (ACE_OS::priority_control (P_LWPID,
- P_MYID,
- PC_GETPARMS,
- (char *) &pcparms) == -1)
- return -1;
- else if (pcparms.pc_cid == rt_id)
- {
- // RT class.
- rtparms_t rtparms;
- ACE_OS::memcpy (&rtparms, pcparms.pc_clparms, sizeof rtparms);
-
- sched_params.policy (ACE_SCHED_FIFO);
- sched_params.priority (rtparms.rt_pri);
- sched_params.scope (ACE_SCOPE_THREAD);
- ACE_Time_Value quantum (rtparms.rt_tqsecs,
- rtparms.rt_tqnsecs == RT_TQINF
- ? 0 : rtparms.rt_tqnsecs * 1000);
- sched_params.quantum (quantum);
- return 0;
- }
- else if (pcparms.pc_cid == ts_id)
- {
- /* TS class */
- tsparms_t tsparms;
- ACE_OS::memcpy (&tsparms, pcparms.pc_clparms, sizeof tsparms);
-
- sched_params.policy (ACE_SCHED_OTHER);
- sched_params.priority (tsparms.ts_upri);
- sched_params.scope (ACE_SCOPE_THREAD);
- return 0;
- }
- else
- return -1;
-
-# else /* ! ACE_HAS_STHREADS && ! sun */
- ACE_UNUSED_ARG (sched_params);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ! ACE_HAS_STHREADS && ! sun */
-}
-
-int
-ACE_OS::lwp_setparams (const ACE_Sched_Params &sched_params)
-{
-# if defined (ACE_HAS_STHREADS) || defined (sun)
- ACE_Sched_Params lwp_params (sched_params);
- lwp_params.scope (ACE_SCOPE_LWP);
- return ACE_OS::sched_params (lwp_params);
-# else /* ! ACE_HAS_STHREADS && ! sun */
- ACE_UNUSED_ARG (sched_params);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ! ACE_HAS_STHREADS && ! sun */
-}
-
-# if defined (ACE_HAS_TSS_EMULATION) && defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
-int
-ACE_OS::thr_setspecific (ACE_OS_thread_key_t key, void *data)
-{
- // ACE_OS_TRACE ("ACE_OS::thr_setspecific");
-# if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_FSU_PTHREADS)
- // Call pthread_init() here to initialize threads package. FSU
- // threads need an initialization before the first thread constructor.
- // This seems to be the one; however, a segmentation fault may
- // indicate that another pthread_init() is necessary, perhaps in
- // Synch.cpp or Synch_T.cpp. FSU threads will not reinit if called
- // more than once, so another call to pthread_init will not adversely
- // affect existing threads.
- pthread_init ();
-# endif /* ACE_HAS_FSU_PTHREADS */
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_setspecific (key, data), ace_result_), int, -1);
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_setspecific (key, data), ace_result_), int, -1);
-# elif defined (ACE_HAS_WTHREADS)
- ::TlsSetValue (key, data);
- return 0;
-# endif /* ACE_HAS_STHREADS */
-# else
- ACE_UNUSED_ARG (key);
- ACE_UNUSED_ARG (data);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-# endif /* ACE_HAS_TSS_EMULATION && ACE_HAS_THREAD_SPECIFIC_STORAGE */
-
-int
-ACE_OS::thr_setspecific (ACE_thread_key_t key, void *data)
-{
- // ACE_OS_TRACE ("ACE_OS::thr_setspecific");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_TSS_EMULATION)
- ACE_KEY_INDEX (key_index, key);
-
- if (key_index >= ACE_TSS_Emulation::total_keys ())
- {
- errno = EINVAL;
- data = 0;
- return -1;
- }
- else
- {
- ACE_TSS_Emulation::ts_object (key) = data;
- ACE_TSS_Cleanup::instance ()->key_used (key);
-
- return 0;
- }
-# elif defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_FSU_PTHREADS)
- // Call pthread_init() here to initialize threads package. FSU
- // threads need an initialization before the first thread constructor.
- // This seems to be the one; however, a segmentation fault may
- // indicate that another pthread_init() is necessary, perhaps in
- // Synch.cpp or Synch_T.cpp. FSU threads will not reinit if called
- // more than once, so another call to pthread_init will not adversely
- // affect existing threads.
- pthread_init ();
-# endif /* ACE_HAS_FSU_PTHREADS */
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (::pthread_setspecific (key, data), int, -1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_setspecific (key, data),
- ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
-
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_setspecific (key, data), ace_result_), int, -1);
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS)
- ACE_hthread_t tid;
- ACE_OS::thr_self (tid);
- if (::tsd_setval (key, tid, data) != 0)
- return -1;
- ACE_TSS_Cleanup::instance ()->key_used (key);
- return 0;
-# elif defined (ACE_HAS_WTHREADS)
- ::TlsSetValue (key, data);
- ACE_TSS_Cleanup::instance ()->key_used (key);
- return 0;
-# else
- ACE_UNUSED_ARG (key);
- ACE_UNUSED_ARG (data);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_STHREADS */
-# else
- ACE_UNUSED_ARG (key);
- ACE_UNUSED_ARG (data);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-int
-ACE_OS::thr_keyfree (ACE_thread_key_t key)
-{
- ACE_OS_TRACE ("ACE_OS::thr_keyfree");
-# if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_TSS_EMULATION)
- // Release the key in the TSS_Emulation administration
- ACE_TSS_Emulation::release_key (key);
- return ACE_TSS_Cleanup::instance ()->remove (key);
-# elif defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_UNUSED_ARG (key);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_HAS_PTHREADS)
- return ::pthread_key_delete (key);
-# elif defined (ACE_HAS_THR_KEYDELETE)
- return ::thr_keydelete (key);
-# elif defined (ACE_HAS_STHREADS)
- ACE_UNUSED_ARG (key);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_HAS_WTHREADS)
- // Extract out the thread-specific table instance and free up
- // the key and destructor.
- ACE_TSS_Cleanup::instance ()->remove (key);
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::TlsFree (key), ace_result_), int, -1);
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS)
- // Extract out the thread-specific table instance and free up
- // the key and destructor.
- ACE_TSS_Cleanup::instance ()->remove (key);
- return (::tsd_delete (key) == 0) ? 0 : -1;
-# else
- ACE_UNUSED_ARG (key);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_TSS_EMULATION */
-# else
- ACE_UNUSED_ARG (key);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-# if defined (ACE_HAS_TSS_EMULATION) && defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
-int
-ACE_OS::thr_keycreate (ACE_OS_thread_key_t *key,
-# if defined (ACE_HAS_THR_C_DEST)
- ACE_THR_C_DEST dest,
-# else
- ACE_THR_DEST dest,
-# endif /* ACE_HAS_THR_C_DEST */
- void *inst)
-{
- // ACE_OS_TRACE ("ACE_OS::thr_keycreate");
-# if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
- ACE_UNUSED_ARG (inst);
-
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
-# if defined (ACE_HAS_STDARG_THR_DEST)
- ACE_OSCALL_RETURN (::pthread_keycreate (key, (void (*)(...)) dest), int, -1);
-# else /* ! ACE_HAS_STDARG_THR_DEST */
- ACE_OSCALL_RETURN (::pthread_keycreate (key, dest), int, -1);
-# endif /* ! ACE_HAS_STDARG_THR_DEST */
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (::pthread_key_create (key, dest), int, -1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_key_create (key, dest),
- ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-# elif defined (ACE_HAS_STHREADS)
- ACE_UNUSED_ARG (inst);
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_keycreate (key, dest),
- ace_result_),
- int, -1);
-# elif defined (ACE_HAS_WTHREADS)
- *key = ::TlsAlloc ();
-
- if (*key != ACE_SYSCALL_FAILED)
- {
- // Extract out the thread-specific table instance and stash away
- // the key and destructor so that we can free it up later on...
- return ACE_TSS_Cleanup::instance ()->insert (*key, dest, inst);
- }
- else
- ACE_FAIL_RETURN (-1);
- /* NOTREACHED */
-# endif /* ACE_HAS_STHREADS */
-# else
- ACE_UNUSED_ARG (key);
- ACE_UNUSED_ARG (dest);
- ACE_UNUSED_ARG (inst);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-# endif /* ACE_HAS_TSS_EMULATION && ACE_HAS_THREAD_SPECIFIC_STORAGE */
-
-int
-ACE_OS::thr_keycreate (ACE_thread_key_t *key,
-# if defined (ACE_HAS_THR_C_DEST)
- ACE_THR_C_DEST dest,
-# else
- ACE_THR_DEST dest,
-# endif /* ACE_HAS_THR_C_DEST */
- void *inst)
-{
- // ACE_OS_TRACE ("ACE_OS::thr_keycreate");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_TSS_EMULATION)
- if (ACE_TSS_Emulation::next_key (*key) == 0)
- {
- ACE_TSS_Emulation::tss_destructor (*key, dest);
-
- // Extract out the thread-specific table instance and stash away
- // the key and destructor so that we can free it up later on...
- return ACE_TSS_Cleanup::instance ()->insert (*key, dest, inst);
- }
- else
- {
- errno = EAGAIN;
- return -1;
- }
-# elif defined (ACE_HAS_PTHREADS)
- ACE_UNUSED_ARG (inst);
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
-# if defined (ACE_HAS_STDARG_THR_DEST)
- ACE_OSCALL_RETURN (::pthread_keycreate (key, (void (*)(...)) dest), int, -1);
-# else /* ! ACE_HAS_STDARG_THR_DEST */
- ACE_OSCALL_RETURN (::pthread_keycreate (key, dest), int, -1);
-# endif /* ! ACE_HAS_STDARG_THR_DEST */
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (::pthread_key_create (key, dest), int, -1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_key_create (key, dest),
- ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-
-# elif defined (ACE_HAS_STHREADS)
- ACE_UNUSED_ARG (inst);
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_keycreate (key, dest),
- ace_result_),
- int, -1);
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS)
-
- static u_long unique_name = 0;
- void *tsdanchor;
-
- ++unique_name;
- if (::tsd_create (ACE_reinterpret_cast (char *, &unique_name),
- 0,
- TSD_NOALLOC,
- (void ****) &tsdanchor,
- key) != 0)
- {
- return -1;
- }
-
- return ACE_TSS_Cleanup::instance ()->insert (*key, dest, inst);
-# elif defined (ACE_HAS_WTHREADS)
- *key = ::TlsAlloc ();
-
- if (*key != ACE_SYSCALL_FAILED)
- {
- // Extract out the thread-specific table instance and stash away
- // the key and destructor so that we can free it up later on...
- return ACE_TSS_Cleanup::instance ()->insert (*key, dest, inst);
- }
- else
- ACE_FAIL_RETURN (-1);
- /* NOTREACHED */
-# else
- ACE_UNUSED_ARG (key);
- ACE_UNUSED_ARG (dest);
- ACE_UNUSED_ARG (inst);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_TSS_EMULATION */
-# else
- ACE_UNUSED_ARG (key);
- ACE_UNUSED_ARG (dest);
- ACE_UNUSED_ARG (inst);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-int
-ACE_OS::thr_key_used (ACE_thread_key_t key)
-{
-# if defined (ACE_WIN32) || defined (ACE_HAS_TSS_EMULATION) || (defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS))
- ACE_TSS_Cleanup::instance ()->key_used (key);
- return 0;
-# else
- ACE_UNUSED_ARG (key);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_WIN32 || ACE_HAS_TSS_EMULATION || ACE_PSOS_HAS_TSS */
-}
-
-int
-ACE_OS::thr_key_detach (void *inst)
-{
-# if defined (ACE_WIN32) || defined (ACE_HAS_TSS_EMULATION) || (defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS))
- if (ACE_TSS_Cleanup::lockable ())
- return ACE_TSS_Cleanup::instance()->detach (inst);
- else
- // We're in static constructor/destructor phase. Don't
- // try to use the ACE_TSS_Cleanup instance because its lock
- // might not have been constructed yet, or might have been
- // destroyed already. Just leak the key . . .
- return -1;
-# else
- ACE_UNUSED_ARG (inst);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_WIN32 || ACE_HAS_TSS_EMULATION */
-}
-
-void
-ACE_OS::unique_name (const void *object,
- ACE_TCHAR *name,
- size_t length)
-{
- // The process ID will provide uniqueness between processes on the
- // same machine. The "this" pointer of the <object> will provide
- // uniqueness between other "live" objects in the same process. The
- // uniqueness of this name is therefore only valid for the life of
- // <object>.
- ACE_TCHAR temp_name[ACE_UNIQUE_NAME_LEN];
- ACE_OS::sprintf (temp_name,
- ACE_LIB_TEXT ("%p%d"),
- object,
- ACE_static_cast (int, ACE_OS::getpid ()));
- ACE_OS::strsncpy (name,
- temp_name,
- length);
-}
-
-int
-ACE_OS::argv_to_string (ACE_TCHAR **argv,
- ACE_TCHAR *&buf,
- int substitute_env_args)
-{
- if (argv == 0 || argv[0] == 0)
- return 0;
-
- size_t buf_len = 0;
-
- // Determine the length of the buffer.
-
- for (int i = 0; argv[i] != 0; i++)
- {
- ACE_TCHAR *temp = 0;
-
-#if !defined (ACE_LACKS_ENV)
- // Account for environment variables.
- if (substitute_env_args
- && (argv[i][0] == '$'
- && (temp = ACE_OS::getenv (&argv[i][1])) != 0))
- buf_len += ACE_OS_String::strlen (temp);
- else
-#endif /* ACE_LACKS_ENV */
- buf_len += ACE_OS_String::strlen (argv[i]);
-
- // Add one for the extra space between each string.
- buf_len++;
- }
-
- // Step through all argv params and copy each one into buf; separate
- // each param with white space.
-
- ACE_NEW_RETURN (buf,
- ACE_TCHAR[buf_len + 1],
- 0);
-
- // Initial null charater to make it a null string.
- buf[0] = '\0';
- ACE_TCHAR *end = buf;
- int j;
-
- for (j = 0; argv[j] != 0; j++)
- {
- ACE_TCHAR *temp = 0;
-
-# if !defined (ACE_LACKS_ENV)
- // Account for environment variables.
- if (substitute_env_args
- && (argv[j][0] == '$'
- && (temp = ACE_OS::getenv (&argv[j][1])) != 0))
- end = ACE_OS::strecpy (end, temp);
- else
-#endif /* ACE_LACKS_ENV */
- end = ACE_OS::strecpy (end, argv[j]);
-
- // Replace the null char that strecpy put there with white
- // space.
- end[-1] = ' ';
- }
-
- // Null terminate the string.
- *end = '\0';
- // The number of arguments.
- return j;
-}
-
-int
-ACE_OS::string_to_argv (ACE_TCHAR *buf,
- int &argc,
- ACE_TCHAR **&argv,
- int substitute_env_args)
-{
- // Reset the number of arguments
- argc = 0;
-
- if (buf == 0)
- return -1;
-
- ACE_TCHAR *cp = buf;
-
- // First pass: count arguments.
-
- // '#' is the start-comment token..
- while (*cp != ACE_LIB_TEXT ('\0') && *cp != ACE_LIB_TEXT ('#'))
- {
- // Skip whitespace..
- while (ACE_OS::ace_isspace (*cp))
- cp++;
-
- // Increment count and move to next whitespace..
- if (*cp != ACE_LIB_TEXT ('\0'))
- argc++;
-
- while (*cp != ACE_LIB_TEXT ('\0') && !ACE_OS::ace_isspace (*cp))
- {
- // Grok quotes....
- if (*cp == ACE_LIB_TEXT ('\'') || *cp == ACE_LIB_TEXT ('"'))
- {
- ACE_TCHAR quote = *cp;
-
- // Scan past the string..
- for (cp++; *cp != ACE_LIB_TEXT ('\0') && *cp != quote; cp++)
- continue;
-
- // '\0' implies unmatched quote..
- if (*cp == ACE_LIB_TEXT ('\0'))
- {
- argc--;
- break;
- }
- else
- cp++;
- }
- else
- cp++;
- }
- }
-
- // Second pass: copy arguments.
- ACE_TCHAR arg[ACE_DEFAULT_ARGV_BUFSIZ];
- ACE_TCHAR *argp = arg;
-
- // Make sure that the buffer we're copying into is always large
- // enough.
- if (cp - buf >= ACE_DEFAULT_ARGV_BUFSIZ)
- ACE_NEW_RETURN (argp,
- ACE_TCHAR[cp - buf + 1],
- -1);
-
- // Make a new argv vector of argc + 1 elements.
- ACE_NEW_RETURN (argv,
- ACE_TCHAR *[argc + 1],
- -1);
-
- ACE_TCHAR *ptr = buf;
-
- for (int i = 0; i < argc; i++)
- {
- // Skip whitespace..
- while (ACE_OS::ace_isspace (*ptr))
- ptr++;
-
- // Copy next argument and move to next whitespace..
- cp = argp;
- while (*ptr != ACE_LIB_TEXT ('\0') && !ACE_OS::ace_isspace (*ptr))
- if (*ptr == ACE_LIB_TEXT ('\'') || *ptr == ACE_LIB_TEXT ('"'))
- {
- ACE_TCHAR quote = *ptr++;
-
- while (*ptr != ACE_LIB_TEXT ('\0') && *ptr != quote)
- *cp++ = *ptr++;
-
- if (*ptr == quote)
- ptr++;
- }
- else
- *cp++ = *ptr++;
-
- *cp = ACE_LIB_TEXT ('\0');
-
-#if !defined (ACE_LACKS_ENV)
- // Check for environment variable substitution here.
- if (substitute_env_args) {
- argv[i] = ACE_OS::strenvdup(argp);
-
- if (argv[i] == 0)
- {
- if (argp != arg)
- delete [] argp;
- errno = ENOMEM;
- return -1;
- }
- }
- else
-#endif /* ACE_LACKS_ENV */
- {
- argv[i] = ACE_OS::strdup(argp);
-
- if (argv[i] == 0)
- {
- if (argp != arg)
- delete [] argp;
- errno = ENOMEM;
- return -1;
- }
- }
- }
-
- if (argp != arg)
- delete [] argp;
-
- argv[argc] = 0;
- return 0;
-}
-
-// Create a contiguous command-line argument buffer with each arg
-// separated by spaces.
-
-pid_t
-ACE_OS::fork_exec (ACE_TCHAR *argv[])
-{
-# if defined (ACE_WIN32)
- ACE_TCHAR *buf;
-
- if (ACE_OS::argv_to_string (argv, buf) != -1)
- {
- PROCESS_INFORMATION process_info;
-# if !defined (ACE_HAS_WINCE)
- ACE_TEXT_STARTUPINFO startup_info;
- ACE_OS::memset ((void *) &startup_info,
- 0,
- sizeof startup_info);
- startup_info.cb = sizeof startup_info;
-
- if (ACE_TEXT_CreateProcess (0,
- buf,
- 0, // No process attributes.
- 0, // No thread attributes.
- TRUE, // Allow handle inheritance.
- 0, // Don't create a new console window.
- 0, // No environment.
- 0, // No current directory.
- &startup_info,
- &process_info))
-# else
- if (ACE_TEXT_CreateProcess (0,
- buf,
- 0, // No process attributes.
- 0, // No thread attributes.
- FALSE, // Can's inherit handles on CE
- 0, // Don't create a new console window.
- 0, // No environment.
- 0, // No current directory.
- 0, // Can't use startup info on CE
- &process_info))
-# endif /* ! ACE_HAS_WINCE */
- {
- // Free resources allocated in kernel.
- ACE_OS::close (process_info.hThread);
- ACE_OS::close (process_info.hProcess);
- // Return new process id.
- delete [] buf;
- return process_info.dwProcessId;
- }
- }
-
- // CreateProcess failed.
- return -1;
-# elif defined (CHORUS)
- return ACE_OS::execv (argv[0], argv);
-# else
- pid_t result = ACE_OS::fork ();
-
- switch (result)
- {
- case -1:
- // Error.
- return -1;
- case 0:
- // Child process.
- if (ACE_OS::execv (argv[0], argv) == -1)
- {
- // The OS layer should not print stuff out
- // ACE_ERROR ((LM_ERROR,
- // "%p Exec failed\n"));
-
- // If the execv fails, this child needs to exit.
- ACE_OS::exit (errno);
- }
- default:
- // Server process. The fork succeeded.
- return result;
- }
-# endif /* ACE_WIN32 */
-}
-
-ssize_t
-ACE_OS::read_n (ACE_HANDLE handle,
- void *buf,
- size_t len,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- n = ACE_OS::read (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred);
-
- if (n == -1 || n == 0)
- return n;
- }
-
- return bytes_transferred;
-}
-
-// Write <len> bytes from <buf> to <handle> (uses the <write>
-// system call on UNIX and the <WriteFile> call on Win32).
-
-ssize_t
-ACE_OS::write_n (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- size_t *bt)
-{
- size_t temp;
- size_t &bytes_transferred = bt == 0 ? temp : *bt;
- ssize_t n;
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- n = ACE_OS::write (handle,
- (char *) buf + bytes_transferred,
- len - bytes_transferred);
-
- if (n == -1 || n == 0)
- return n;
- }
-
- return bytes_transferred;
-}
-
-# if defined (ACE_LACKS_WRITEV)
-
-// "Fake" writev for operating systems without it. Note that this is
-// thread-safe.
-
-int
-ACE_OS::writev_emulation (ACE_HANDLE handle, ACE_WRITEV_TYPE iov[], int n)
-{
- ACE_OS_TRACE ("ACE_OS::writev_emulation");
-
- size_t length = 0;
- int i;
-
- // Determine the total length of all the buffers in <iov>.
- for (i = 0; i < n; i++)
- if (ACE_static_cast (int, iov[i].iov_len) < 0)
- return -1;
- else
- length += iov[i].iov_len;
-
- char *buf;
-
-# if defined (ACE_HAS_ALLOCA)
- buf = (char *) alloca (length);
-# else
- ACE_NEW_RETURN (buf,
- char[length],
- -1);
-# endif /* !defined (ACE_HAS_ALLOCA) */
-
- char *ptr = buf;
-
- for (i = 0; i < n; i++)
- {
- ACE_OS::memcpy (ptr, iov[i].iov_base, iov[i].iov_len);
- ptr += iov[i].iov_len;
- }
-
- ssize_t result = ACE_OS::write (handle, buf, length);
-# if !defined (ACE_HAS_ALLOCA)
- delete [] buf;
-# endif /* !defined (ACE_HAS_ALLOCA) */
- return result;
-}
-# endif /* ACE_LACKS_WRITEV */
-
-# if defined (ACE_LACKS_READV)
-
-// "Fake" readv for operating systems without it. Note that this is
-// thread-safe.
-
-ssize_t
-ACE_OS::readv_emulation (ACE_HANDLE handle,
- ACE_READV_TYPE *iov,
- int n)
-{
- ACE_OS_TRACE ("ACE_OS::readv_emulation");
-
- ssize_t length = 0;
- int i;
-
- for (i = 0; i < n; i++)
- if (ACE_static_cast (int, iov[i].iov_len) < 0)
- return -1;
- else
- length += iov[i].iov_len;
-
- char *buf;
-# if defined (ACE_HAS_ALLOCA)
- buf = (char *) alloca (length);
-# else
- ACE_NEW_RETURN (buf,
- char[length],
- -1);
-# endif /* !defined (ACE_HAS_ALLOCA) */
-
- length = ACE_OS::read (handle, buf, length);
-
- if (length != -1)
- {
- char *ptr = buf;
- ssize_t copyn = length;
-
- for (i = 0;
- i < n && copyn > 0;
- i++)
- {
- ACE_OS::memcpy (iov[i].iov_base, ptr,
- // iov_len is int on some platforms, size_t on others
- copyn > (int) iov[i].iov_len
- ? (size_t) iov[i].iov_len
- : (size_t) copyn);
- ptr += iov[i].iov_len;
- copyn -= iov[i].iov_len;
- }
- }
-
-# if !defined (ACE_HAS_ALLOCA)
- delete [] buf;
-# endif /* !defined (ACE_HAS_ALLOCA) */
- return length;
-}
-# endif /* ACE_LACKS_READV */
-
-# if defined (ACE_NEEDS_FTRUNCATE)
-extern "C" int
-ftruncate (ACE_HANDLE handle, long len)
-{
- struct flock fl;
- fl.l_whence = 0;
- fl.l_len = 0;
- fl.l_start = len;
- fl.l_type = F_WRLCK;
-
- return ACE_OS::fcntl (handle, F_FREESP, ACE_reinterpret_cast (long, &fl));
-}
-# endif /* ACE_NEEDS_FTRUNCATE */
-
-# if defined (ACE_LACKS_MKTEMP)
-ACE_TCHAR *
-ACE_OS::mktemp (ACE_TCHAR *s)
-{
- ACE_OS_TRACE ("ACE_OS::mktemp");
- if (s == 0)
- // check for null template string failed!
- return 0;
- else
- {
- ACE_TCHAR *xxxxxx = ACE_OS::strstr (s, ACE_LIB_TEXT ("XXXXXX"));
-
- if (xxxxxx == 0)
- // the template string doesn't contain "XXXXXX"!
- return s;
- else
- {
- ACE_TCHAR unique_letter = ACE_LIB_TEXT ('a');
- ACE_stat sb;
-
- // Find an unused filename for this process. It is assumed
- // that the user will open the file immediately after
- // getting this filename back (so, yes, there is a race
- // condition if multiple threads in a process use the same
- // template). This appears to match the behavior of the
- // SunOS 5.5 mktemp().
- ACE_OS::sprintf (xxxxxx,
- ACE_LIB_TEXT ("%05d%c"),
- ACE_OS::getpid (),
- unique_letter);
- while (ACE_OS::stat (s, &sb) >= 0)
- {
- if (++unique_letter <= ACE_LIB_TEXT ('z'))
- ACE_OS::sprintf (xxxxxx,
- ACE_LIB_TEXT ("%05d%c"),
- ACE_OS::getpid (),
- unique_letter);
- else
- {
- // maximum of 26 unique files per template, per process
- ACE_OS::sprintf (xxxxxx, ACE_LIB_TEXT ("%s"), ACE_LIB_TEXT (""));
- return s;
- }
- }
- }
- return s;
- }
-}
-# endif /* ACE_LACKS_MKTEMP */
-
-int
-ACE_OS::socket_init (int version_high, int version_low)
-{
-# if defined (ACE_WIN32)
- if (ACE_OS::socket_initialized_ == 0)
- {
- WORD version_requested = MAKEWORD (version_high, version_low);
- WSADATA wsa_data;
- int error = WSAStartup (version_requested, &wsa_data);
-
- if (error != 0)
-# if defined (ACE_HAS_WINCE)
- {
- wchar_t fmt[] = ACE_LIB_TEXT ("%s failed, WSAGetLastError returned %d");
- wchar_t buf[80]; // @@ Eliminate magic number.
- ACE_OS::sprintf (buf, fmt, ACE_LIB_TEXT ("WSAStartup"), error);
- ::MessageBox (0, buf, ACE_LIB_TEXT ("WSAStartup failed!"), MB_OK);
- }
-# else
- ACE_OS::fprintf (stderr,
- "ACE_OS::socket_init; WSAStartup failed, "
- "WSAGetLastError returned %d\n",
- error);
-# endif /* ACE_HAS_WINCE */
-
- ACE_OS::socket_initialized_ = 1;
- }
-# else
- ACE_UNUSED_ARG (version_high);
- ACE_UNUSED_ARG (version_low);
-# endif /* ACE_WIN32 */
- return 0;
-}
-
-int
-ACE_OS::socket_fini (void)
-{
-# if defined (ACE_WIN32)
- if (ACE_OS::socket_initialized_ != 0)
- {
- if (WSACleanup () != 0)
- {
- int error = ::WSAGetLastError ();
-# if defined (ACE_HAS_WINCE)
- wchar_t fmt[] = ACE_LIB_TEXT ("%s failed, WSAGetLastError returned %d");
- wchar_t buf[80]; // @@ Eliminate magic number.
- ACE_OS::sprintf (buf, fmt, ACE_LIB_TEXT ("WSACleanup"), error);
- ::MessageBox (0, buf , ACE_LIB_TEXT ("WSACleanup failed!"), MB_OK);
-# else
- ACE_OS::fprintf (stderr,
- "ACE_OS::socket_fini; WSACleanup failed, "
- "WSAGetLastError returned %d\n",
- error);
-# endif /* ACE_HAS_WINCE */
- }
- ACE_OS::socket_initialized_ = 0;
- }
-# endif /* ACE_WIN32 */
- return 0;
-}
-
-# if defined (ACE_LACKS_SYS_NERR)
-# if defined (__rtems__)
-int sys_nerr = EWOULDBLOCK + 1; // definitely a hack.
-# else
- int sys_nerr = ERRMAX + 1;
-# endif /* __rtems__ */
-# endif /* ACE_LACKS_SYS_NERR */
-
-# if defined (VXWORKS)
-# include /**/ <usrLib.h> /* for ::sp() */
-
-// This global function can be used from the VxWorks shell to pass
-// arguments to a C main () function.
-//
-// usage: -> spa main, "arg1", "arg2"
-//
-// All arguments must be quoted, even numbers.
-int
-spa (FUNCPTR entry, ...)
-{
- static const unsigned int MAX_ARGS = 10;
- static char *argv[MAX_ARGS];
- va_list pvar;
- unsigned int argc;
-
- // Hardcode a program name because the real one isn't available
- // through the VxWorks shell.
- argv[0] = "ace_main";
-
- // Peel off arguments to spa () and put into argv. va_arg () isn't
- // necessarily supposed to return 0 when done, though since the
- // VxWorks shell uses a fixed number (10) of arguments, it might 0
- // the unused ones. This function could be used to increase that
- // limit, but then it couldn't depend on the trailing 0. So, the
- // number of arguments would have to be passed.
- va_start (pvar, entry);
-
- for (argc = 1; argc <= MAX_ARGS; ++argc)
- {
- argv[argc] = va_arg (pvar, char *);
-
- if (argv[argc] == 0)
- break;
- }
-
- if (argc > MAX_ARGS && argv[argc-1] != 0)
- {
- // try to read another arg, and warn user if the limit was exceeded
- if (va_arg (pvar, char *) != 0)
- ACE_OS::fprintf (stderr, "spa(): number of arguments limited to %d\n",
- MAX_ARGS);
- }
- else
- {
- // fill unused argv slots with 0 to get rid of leftovers
- // from previous invocations
- for (unsigned int i = argc; i <= MAX_ARGS; ++i)
- argv[i] = 0;
- }
-
- // The hard-coded options are what ::sp () uses, except for the
- // larger stack size (instead of ::sp ()'s 20000).
- const int ret = ::taskSpawn (argv[0], // task name
- 100, // task priority
- VX_FP_TASK, // task options
- ACE_NEEDS_HUGE_THREAD_STACKSIZE, // stack size
- entry, // entry point
- argc, // first argument to main ()
- (int) argv, // second argument to main ()
- 0, 0, 0, 0, 0, 0, 0, 0);
- va_end (pvar);
-
- // ::taskSpawn () returns the taskID on success: return 0 instead if
- // successful
- return ret > 0 ? 0 : ret;
-}
-
-
-
-// A helper function for the extended spa functions
-static void
-add_to_argv (int& argc, char** argv, int max_args, char* string)
-{
- char indouble = 0;
- size_t previous = 0;
- size_t length = ACE_OS_String::strlen (string);
-
- // We use <= to make sure that we get the last argument
- for (size_t i = 0; i <= length; i++)
- {
- // Is it a double quote that hasn't been escaped?
- if (string[i] == '\"' && (i == 0 || string[i - 1] != '\\'))
- {
- indouble ^= 1;
- if (indouble)
- {
- // We have just entered a double quoted string, so
- // save the starting position of the contents.
- previous = i + 1;
- }
- else
- {
- // We have just left a double quoted string, so
- // zero out the ending double quote.
- string[i] = '\0';
- }
- }
- else if (string[i] == '\\') // Escape the next character
- {
- // The next character is automatically
- // skipped because of the strcpy
- ACE_OS_String::strcpy (string + i, string + i + 1);
- length--;
- }
- else if (!indouble &&
- (ACE_OS::ace_isspace (string[i]) || string[i] == '\0'))
- {
- string[i] = '\0';
- if (argc < max_args)
- {
- argv[argc] = string + previous;
- argc++;
- }
- else
- {
- ACE_OS::fprintf (stderr, "spae(): number of arguments "
- "limited to %d\n", max_args);
- }
-
- // Skip over whitespace in between arguments
- for(++i; i < length && ACE_OS::ace_isspace (string[i]); ++i)
- {
- }
-
- // Save the starting point for the next time around
- previous = i;
-
- // Make sure we don't skip over a character due
- // to the above loop to skip over whitespace
- i--;
- }
- }
-}
-
-// This global function can be used from the VxWorks shell to pass
-// arguments to a C main () function.
-//
-// usage: -> spae main, "arg1 arg2 \"arg3 with spaces\""
-//
-// All arguments must be within double quotes, even numbers.
-int
-spae (FUNCPTR entry, ...)
-{
- static const int WINDSH_ARGS = 10;
- static const int MAX_ARGS = 128;
- static char* argv[MAX_ARGS] = { "ace_main", 0 };
- va_list pvar;
- int argc = 1;
-
- // Peel off arguments to spa () and put into argv. va_arg () isn't
- // necessarily supposed to return 0 when done, though since the
- // VxWorks shell uses a fixed number (10) of arguments, it might 0
- // the unused ones.
- va_start (pvar, entry);
-
- int i = 0;
- for (char* str = va_arg (pvar, char*);
- str != 0 && i < WINDSH_ARGS; str = va_arg (pvar, char*), ++i)
- {
- add_to_argv(argc, argv, MAX_ARGS, str);
- }
-
- // fill unused argv slots with 0 to get rid of leftovers
- // from previous invocations
- for (i = argc; i < MAX_ARGS; ++i)
- argv[i] = 0;
-
- // The hard-coded options are what ::sp () uses, except for the
- // larger stack size (instead of ::sp ()'s 20000).
- const int ret = ::taskSpawn (argv[0], // task name
- 100, // task priority
- VX_FP_TASK, // task options
- ACE_NEEDS_HUGE_THREAD_STACKSIZE, // stack size
- entry, // entry point
- argc, // first argument to main ()
- (int) argv, // second argument to main ()
- 0, 0, 0, 0, 0, 0, 0, 0);
- va_end (pvar);
-
- // ::taskSpawn () returns the taskID on success: return 0 instead if
- // successful
- return ret > 0 ? 0 : ret;
-}
-
-
-// This global function can be used from the VxWorks shell to pass
-// arguments to a C main () function. The function will be run
-// within the shells task.
-//
-// usage: -> spaef main, "arg1 arg2 \"arg3 with spaces\""
-//
-// All arguments must be within double quotes, even numbers.
-// Unlike the spae function, this fuction executes the supplied
-// routine in the foreground, rather than spawning it in a separate
-// task.
-int
-spaef (FUNCPTR entry, ...)
-{
- static const int WINDSH_ARGS = 10;
- static const int MAX_ARGS = 128;
- static char* argv[MAX_ARGS] = { "ace_main", 0 };
- va_list pvar;
- int argc = 1;
-
- // Peel off arguments to spa () and put into argv. va_arg () isn't
- // necessarily supposed to return 0 when done, though since the
- // VxWorks shell uses a fixed number (10) of arguments, it might 0
- // the unused ones.
- va_start (pvar, entry);
-
- int i = 0;
- for (char* str = va_arg (pvar, char*);
- str != 0 && i < WINDSH_ARGS; str = va_arg (pvar, char*), ++i)
- {
- add_to_argv(argc, argv, MAX_ARGS, str);
- }
-
- // fill unused argv slots with 0 to get rid of leftovers
- // from previous invocations
- for (i = argc; i < MAX_ARGS; ++i)
- argv[i] = 0;
-
- int ret = entry (argc, argv);
-
- va_end (pvar);
-
- // Return the return value of the invoked ace_main routine.
- return ret;
-}
-# endif /* VXWORKS */
-
-# if !defined (ACE_HAS_SIGINFO_T)
-siginfo_t::siginfo_t (ACE_HANDLE handle)
- : si_handle_ (handle),
- si_handles_ (&handle)
-{
-}
-
-siginfo_t::siginfo_t (ACE_HANDLE *handles)
- : si_handle_ (handles[0]),
- si_handles_ (handles)
-{
-}
-# endif /* ACE_HAS_SIGINFO_T */
-
-pid_t
-ACE_OS::fork (const ACE_TCHAR *program_name)
-{
- ACE_OS_TRACE ("ACE_OS::fork");
-# if defined (ACE_LACKS_FORK)
- ACE_UNUSED_ARG (program_name);
- ACE_NOTSUP_RETURN (pid_t (-1));
-# else
- pid_t pid =
-# if defined (ACE_HAS_STHREADS)
- ::fork1 ();
-#else
- ::fork ();
-#endif /* ACE_HAS_STHREADS */
-
-#if !defined (ACE_HAS_MINIMAL_ACE_OS)
- if (pid == 0)
- ACE_Base_Thread_Adapter::sync_log_msg (program_name);
-#endif /* ! ACE_HAS_MINIMAL_ACE_OS */
-
- return pid;
-# endif /* ACE_WIN32 */
-}
-
-void
-ACE_Cleanup::cleanup (void *)
-{
- delete this;
-}
-
-
-ACE_Cleanup::~ACE_Cleanup (void)
-{
-}
-
-// This is necessary to work around nasty problems with MVS C++.
-
-extern "C" void
-ace_mutex_lock_cleanup_adapter (void *args)
-{
- ACE_OS::mutex_lock_cleanup (args);
-}
-
-ACE_Thread_ID::ACE_Thread_ID (ACE_thread_t thread_id,
- ACE_hthread_t thread_handle)
- : thread_id_ (thread_id),
- thread_handle_ (thread_handle)
-{
-}
-
-ACE_Thread_ID::ACE_Thread_ID (const ACE_Thread_ID &id)
- : thread_id_ (id.thread_id_),
- thread_handle_ (id.thread_handle_)
-{
-}
-
-ACE_thread_t
-ACE_Thread_ID::id (void)
-{
- return this->thread_id_;
-}
-
-void
-ACE_Thread_ID::id (ACE_thread_t thread_id)
-{
- this->thread_id_ = thread_id;
-}
-
-ACE_hthread_t
-ACE_Thread_ID::handle (void)
-{
- return this->thread_handle_;
-}
-
-void
-ACE_Thread_ID::handle (ACE_hthread_t thread_handle)
-{
- this->thread_handle_ = thread_handle;
-}
-
-int
-ACE_Thread_ID::operator== (const ACE_Thread_ID &rhs) const
-{
- return ACE_OS::thr_cmp (this->thread_handle_, rhs.thread_handle_) == 0
- && ACE_OS::thr_equal (this->thread_id_, rhs.thread_id_) == 0;
-}
-
-int
-ACE_Thread_ID::operator!= (const ACE_Thread_ID &rhs) const
-{
- return !(*this == rhs);
-}
-
-// All other platforms have this inlined in OS.i
-#if defined (ACE_PSOS)
-char *
-ACE_OS::inet_ntoa (const struct in_addr addr)
-{
- ACE_OS_TRACE ("ACE_OS::inet_ntoa");
-
- static char addrstr[INET_ADDRSTRLEN + 1] = { 0 };
- ACE_UINT32 ipaddr = ntohl (addr.s_addr);
- //printf("Socket address %X, IP address %X.\n",addr.s_addr,ipaddr);
- sprintf(addrstr, "%d.%d.%d.%d",
- ((ipaddr & 0xff000000) >> 24) & 0x000000ff,
- (ipaddr & 0x00ff0000) >> 16,
- (ipaddr & 0x0000ff00) >> 8,
- (ipaddr & 0x000000ff));
- return addrstr;
-}
-#endif /* defined (ACE_PSOS) */
-
-int
-ACE_OS::inet_aton (const char *host_name, struct in_addr *addr)
-{
-#if defined (ACE_LACKS_INET_ATON)
- ACE_UINT32 ip_addr = ACE_OS::inet_addr (host_name);
-
- if (ip_addr == INADDR_NONE
- // Broadcast addresses are weird...
- && ACE_OS::strcmp (host_name, "255.255.255.255") != 0)
- return 0;
- else if (addr == 0)
- return 0;
- else
- {
- addr->s_addr = ip_addr; // Network byte ordered
- return 1;
- }
-#elif defined (VXWORKS)
- // inet_aton() returns 0 upon failure, not -1 since -1 is a valid
- // address (255.255.255.255).
- ACE_OSCALL_RETURN (::inet_aton ((char*)host_name, addr), int, 0);
-#else
- // inet_aton() returns 0 upon failure, not -1 since -1 is a valid
- // address (255.255.255.255).
- ACE_OSCALL_RETURN (::inet_aton (host_name, addr), int, 0);
-#endif /* ACE_LACKS_INET_ATON */
-}
-
-struct tm *
-ACE_OS::localtime_r (const time_t *t, struct tm *res)
-{
- ACE_OS_TRACE ("ACE_OS::localtime_r");
-#if defined (ACE_HAS_REENTRANT_FUNCTIONS)
-# if defined (DIGITAL_UNIX)
- ACE_OSCALL_RETURN (::_Plocaltime_r (t, res), struct tm *, 0);
-# elif defined (HPUX_10)
- return (::localtime_r (t, res) == 0 ? res : (struct tm *)0);
-# else
- ACE_OSCALL_RETURN (::localtime_r (t, res), struct tm *, 0);
-# endif /* DIGITAL_UNIX */
-#elif !defined (ACE_HAS_WINCE) && !defined(ACE_PSOS) || defined (ACE_PSOS_HAS_TIME)
- ACE_OS_GUARD
-
- ACE_UNUSED_ARG (res);
- struct tm * res_ptr;
- ACE_OSCALL (::localtime (t), struct tm *, 0, res_ptr);
- if (res_ptr == 0)
- return 0;
- else
- {
- *res = *res_ptr;
- return res;
- }
-#elif defined (ACE_HAS_WINCE)
- // This is really stupid, converting FILETIME to timeval back and
- // forth. It assumes FILETIME and DWORDLONG are the same structure
- // internally.
-
- TIME_ZONE_INFORMATION pTz;
-
- const unsigned short int __mon_yday[2][13] =
- {
- /* Normal years. */
- { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 },
- /* Leap years. */
- { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 }
- };
-
- ULARGE_INTEGER _100ns;
- ::GetTimeZoneInformation (&pTz);
-
- _100ns.QuadPart = (DWORDLONG) *t * 10000 * 1000 + ACE_Time_Value::FILETIME_to_timval_skew;
- FILETIME file_time;
- file_time.dwLowDateTime = _100ns.LowPart;
- file_time.dwHighDateTime = _100ns.HighPart;
-
- FILETIME localtime;
- SYSTEMTIME systime;
- FileTimeToLocalFileTime (&file_time, &localtime);
- FileTimeToSystemTime (&localtime, &systime);
-
- res->tm_hour = systime.wHour;
-
- if(pTz.DaylightBias!=0)
- res->tm_isdst = 1;
- else
- res->tm_isdst = 1;
-
- int iLeap;
- iLeap = (res->tm_year % 4 == 0 && (res->tm_year% 100 != 0 || res->tm_year % 400 == 0));
- // based on leap select which group to use
-
- res->tm_mday = systime.wDay;
- res->tm_min = systime.wMinute;
- res->tm_mon = systime.wMonth;
- res->tm_sec = systime.wSecond;
- res->tm_wday = systime.wDayOfWeek;
- res->tm_yday = __mon_yday[iLeap][systime.wMonth] + systime.wDay;
- res->tm_year = systime.wYear;// this the correct year but bias the value to start at the 1900
- res->tm_year = res->tm_year - 1900;
-
- return res;
-#else
- // @@ Same as ACE_OS::localtime (), you need to implement it
- // yourself.
- ACE_UNUSED_ARG (t);
- ACE_UNUSED_ARG (res);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_REENTRANT_FUNCTIONS */
-}
-
-ssize_t
-ACE_OS::pread (ACE_HANDLE handle,
- void *buf,
- size_t nbytes,
- off_t offset)
-{
-# if defined (ACE_HAS_P_READ_WRITE)
-# if defined (ACE_WIN32)
-
- ACE_OS_GUARD
-
- // Remember the original file pointer position
- DWORD original_position = ::SetFilePointer (handle,
- 0,
- 0,
- FILE_CURRENT);
-
- if (original_position == 0xFFFFFFFF)
- return -1;
-
- // Go to the correct position
- DWORD altered_position = ::SetFilePointer (handle,
- offset,
- 0,
- FILE_BEGIN);
- if (altered_position == 0xFFFFFFFF)
- return -1;
-
- DWORD bytes_read;
-
-# if defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)
-
- OVERLAPPED overlapped;
- overlapped.Internal = 0;
- overlapped.InternalHigh = 0;
- overlapped.Offset = offset;
- overlapped.OffsetHigh = 0;
- overlapped.hEvent = 0;
-
- BOOL result = ::ReadFile (handle,
- buf,
- ACE_static_cast (DWORD, nbytes),
- &bytes_read,
- &overlapped);
-
- if (result == FALSE)
- {
- if (::GetLastError () != ERROR_IO_PENDING)
- return -1;
-
- else
- {
- result = ::GetOverlappedResult (handle,
- &overlapped,
- &bytes_read,
- TRUE);
- if (result == FALSE)
- return -1;
- }
- }
-
-# else /* ACE_HAS_WINNT4 && (ACE_HAS_WINNT4 != 0) */
-
- BOOL result = ::ReadFile (handle,
- buf,
- nbytes,
- &bytes_read,
- 0);
- if (result == FALSE)
- return -1;
-
-# endif /* ACE_HAS_WINNT4 && (ACE_HAS_WINNT4 != 0) */
-
- // Reset the original file pointer position
- if (::SetFilePointer (handle,
- original_position,
- 0,
- FILE_BEGIN) == 0xFFFFFFFF)
- return -1;
-
- return (ssize_t) bytes_read;
-
-# else /* ACE_WIN32 */
-
- return ::pread (handle, buf, nbytes, offset);
-
-# endif /* ACE_WIN32 */
-
-# else /* ACE_HAS_P_READ_WRITE */
-
- ACE_OS_GUARD
-
- // Remember the original file pointer position
- off_t original_position = ACE_OS::lseek (handle,
- 0,
- SEEK_CUR);
-
- if (original_position == -1)
- return -1;
-
- // Go to the correct position
- off_t altered_position = ACE_OS::lseek (handle,
- offset,
- SEEK_SET);
-
- if (altered_position == -1)
- return -1;
-
- ssize_t bytes_read = ACE_OS::read (handle,
- buf,
- nbytes);
-
- if (bytes_read == -1)
- return -1;
-
- if (ACE_OS::lseek (handle,
- original_position,
- SEEK_SET) == -1)
- return -1;
-
- return bytes_read;
-
-# endif /* ACE_HAD_P_READ_WRITE */
-}
-
-ssize_t
-ACE_OS::pwrite (ACE_HANDLE handle,
- const void *buf,
- size_t nbytes,
- off_t offset)
-{
-# if defined (ACE_HAS_P_READ_WRITE)
-# if defined (ACE_WIN32)
-
- ACE_OS_GUARD
-
- // Remember the original file pointer position
- DWORD original_position = ::SetFilePointer (handle,
- 0,
- 0,
- FILE_CURRENT);
-
- if (original_position == 0xFFFFFFFF)
- return -1;
-
- // Go to the correct position
- DWORD altered_position = ::SetFilePointer (handle,
- offset,
- 0,
- FILE_BEGIN);
- if (altered_position == 0xFFFFFFFF)
- return -1;
-
- DWORD bytes_written;
-
-# if defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)
-
- OVERLAPPED overlapped;
- overlapped.Internal = 0;
- overlapped.InternalHigh = 0;
- overlapped.Offset = offset;
- overlapped.OffsetHigh = 0;
- overlapped.hEvent = 0;
-
- BOOL result = ::WriteFile (handle,
- buf,
- ACE_static_cast (DWORD, nbytes),
- &bytes_written,
- &overlapped);
-
- if (result == FALSE)
- {
- if (::GetLastError () != ERROR_IO_PENDING)
- return -1;
-
- else
- {
- result = ::GetOverlappedResult (handle,
- &overlapped,
- &bytes_written,
- TRUE);
- if (result == FALSE)
- return -1;
- }
- }
-
-# else /* ACE_HAS_WINNT4 && (ACE_HAS_WINNT4 != 0) */
-
- BOOL result = ::WriteFile (handle,
- buf,
- nbytes,
- &bytes_written,
- 0);
- if (result == FALSE)
- return -1;
-
-# endif /* ACE_HAS_WINNT4 && (ACE_HAS_WINNT4 != 0) */
-
- // Reset the original file pointer position
- if (::SetFilePointer (handle,
- original_position,
- 0,
- FILE_BEGIN) == 0xFFFFFFFF)
- return -1;
-
- return (ssize_t) bytes_written;
-
-# else /* ACE_WIN32 */
-
- return ::pwrite (handle, buf, nbytes, offset);
-# endif /* ACE_WIN32 */
-# else /* ACE_HAS_P_READ_WRITE */
-
- ACE_OS_GUARD
-
- // Remember the original file pointer position
- off_t original_position = ACE_OS::lseek (handle,
- 0,
- SEEK_CUR);
- if (original_position == -1)
- return -1;
-
- // Go to the correct position
- off_t altered_position = ACE_OS::lseek (handle,
- offset,
- SEEK_SET);
- if (altered_position == -1)
- return -1;
-
- ssize_t bytes_written = ACE_OS::write (handle,
- buf,
- nbytes);
- if (bytes_written == -1)
- return -1;
-
- if (ACE_OS::lseek (handle,
- original_position,
- SEEK_SET) == -1)
- return -1;
-
- return bytes_written;
-# endif /* ACE_HAD_P_READ_WRITE */
-}
-
-ACE_HANDLE
-ACE_OS::open (const char *filename,
- int mode,
- int perms,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_OS_TRACE ("ACE_OS::open");
-
-#if defined (ACE_WIN32)
- DWORD access = GENERIC_READ;
- if (ACE_BIT_ENABLED (mode, O_WRONLY))
- access = GENERIC_WRITE;
- else if (ACE_BIT_ENABLED (mode, O_RDWR))
- access = GENERIC_READ | GENERIC_WRITE;
-
- DWORD creation = OPEN_EXISTING;
-
- if ((mode & (_O_CREAT | _O_EXCL)) == (_O_CREAT | _O_EXCL))
- creation = CREATE_NEW;
- else if ((mode & (_O_CREAT | _O_TRUNC)) == (_O_CREAT | _O_TRUNC))
- creation = CREATE_ALWAYS;
- else if (ACE_BIT_ENABLED (mode, _O_CREAT))
- creation = OPEN_ALWAYS;
- else if (ACE_BIT_ENABLED (mode, _O_TRUNC))
- creation = TRUNCATE_EXISTING;
-
- DWORD flags = 0;
-
- if (ACE_BIT_ENABLED (mode, _O_TEMPORARY))
- flags |= FILE_FLAG_DELETE_ON_CLOSE | FILE_ATTRIBUTE_TEMPORARY;
-
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_WRITE_THROUGH))
- flags |= FILE_FLAG_WRITE_THROUGH;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_OVERLAPPED))
- flags |= FILE_FLAG_OVERLAPPED;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_NO_BUFFERING))
- flags |= FILE_FLAG_NO_BUFFERING;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_RANDOM_ACCESS))
- flags |= FILE_FLAG_RANDOM_ACCESS;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_SEQUENTIAL_SCAN))
- flags |= FILE_FLAG_SEQUENTIAL_SCAN;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_DELETE_ON_CLOSE))
- flags |= FILE_FLAG_DELETE_ON_CLOSE;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_BACKUP_SEMANTICS))
- flags |= FILE_FLAG_BACKUP_SEMANTICS;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_POSIX_SEMANTICS))
- flags |= FILE_FLAG_POSIX_SEMANTICS;
-
- ACE_MT (ACE_thread_mutex_t *ace_os_monitor_lock = 0;)
-
- if (ACE_BIT_ENABLED (mode, _O_APPEND))
- {
- ACE_MT
- (
- ace_os_monitor_lock = (ACE_thread_mutex_t *)
- ACE_OS_Object_Manager::preallocated_object[
- ACE_OS_Object_Manager::ACE_OS_MONITOR_LOCK];
- ACE_OS::thread_mutex_lock (ace_os_monitor_lock);
- )
- }
-
- DWORD shared_mode = perms;
-
-#if defined (ACE_HAS_WINCE)
- ACE_HANDLE h = ::CreateFileW (ACE_Ascii_To_Wide (filename).wchar_rep (), access,
- shared_mode,
- ACE_OS::default_win32_security_attributes (sa),
- creation,
- flags,
- 0);
-#else /* ACE_HAS_WINCE */
- ACE_HANDLE h = ::CreateFileA (filename, access,
- shared_mode,
- ACE_OS::default_win32_security_attributes (sa),
- creation,
- flags,
- 0);
-#endif /* ACE_HAS_WINCE */
-
- if (ACE_BIT_ENABLED (mode, _O_APPEND))
- {
- if (h != ACE_INVALID_HANDLE)
- {
- ::SetFilePointer (h, 0, 0, FILE_END);
- }
-
- ACE_MT (ACE_OS::thread_mutex_unlock (ace_os_monitor_lock);)
- }
-
- if (h == ACE_INVALID_HANDLE)
- ACE_FAIL_RETURN (h);
- else
- return h;
-#elif defined (ACE_PSOS)
- ACE_UNUSED_ARG (perms);
- ACE_UNUSED_ARG (sa);
-# if defined (ACE_PSOS_LACKS_PHILE)
- ACE_UNUSED_ARG (filename);
- return 0;
-# else
- unsigned long result, handle;
- result = ::open_f (&handle, ACE_const_cast(char *, filename), 0);
- if (result != 0)
- {
- // We need to clean this up...not 100% correct!
- // To correct we should handle all the cases of TRUNC and CREAT
- if ((result == 0x200B) && (ACE_BIT_ENABLED (mode, O_CREAT)))
- {
- result = ::create_f(ACE_const_cast(char *, filename),1,0);
- if (result != 0)
- {
- errno = result;
- return ACE_static_cast (ACE_HANDLE, -1);
- }
- else //File created...try to open it again
- {
- result = ::open_f (&handle, ACE_const_cast(char *, filename), 0);
- if (result != 0)
- {
- errno = result;
- return ACE_static_cast (ACE_HANDLE, -1);
- }
-
- }
- }
- else
- {
- errno = result;
- return ACE_static_cast (ACE_HANDLE, -1);
- }
- }
- return ACE_static_cast (ACE_HANDLE, handle);
-# endif /* defined (ACE_PSOS_LACKS_PHILE) */
-#elif defined (INTEGRITY)
- ACE_UNUSED_ARG (sa);
- if(!strcmp(filename,ACE_DEV_NULL)) {
- ACE_OSCALL_RETURN (::AllocateNullConsoleDescriptor(), ACE_HANDLE, -1);
- }
- else {
- ACE_OSCALL_RETURN (::open (filename, mode, perms), ACE_HANDLE, -1);
- }
-#else
- ACE_UNUSED_ARG (sa);
- ACE_OSCALL_RETURN (::open (filename, mode, perms), ACE_HANDLE, -1);
-#endif /* ACE_WIN32 */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_HANDLE
-ACE_OS::open (const wchar_t *filename,
- int mode,
- int perms,
- LPSECURITY_ATTRIBUTES sa)
-{
-#if defined (ACE_WIN32)
- // @@ (brunsch) Yuck, maybe there is a way to combine the code
- // here with the char version
-
- DWORD access = GENERIC_READ;
- if (ACE_BIT_ENABLED (mode, O_WRONLY))
- access = GENERIC_WRITE;
- else if (ACE_BIT_ENABLED (mode, O_RDWR))
- access = GENERIC_READ | GENERIC_WRITE;
-
- DWORD creation = OPEN_EXISTING;
-
- if ((mode & (_O_CREAT | _O_EXCL)) == (_O_CREAT | _O_EXCL))
- creation = CREATE_NEW;
- else if ((mode & (_O_CREAT | _O_TRUNC)) == (_O_CREAT | _O_TRUNC))
- creation = CREATE_ALWAYS;
- else if (ACE_BIT_ENABLED (mode, _O_CREAT))
- creation = OPEN_ALWAYS;
- else if (ACE_BIT_ENABLED (mode, _O_TRUNC))
- creation = TRUNCATE_EXISTING;
-
- DWORD flags = 0;
-
- if (ACE_BIT_ENABLED (mode, _O_TEMPORARY))
- flags |= FILE_FLAG_DELETE_ON_CLOSE | FILE_ATTRIBUTE_TEMPORARY;
-
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_WRITE_THROUGH))
- flags |= FILE_FLAG_WRITE_THROUGH;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_OVERLAPPED))
- flags |= FILE_FLAG_OVERLAPPED;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_NO_BUFFERING))
- flags |= FILE_FLAG_NO_BUFFERING;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_RANDOM_ACCESS))
- flags |= FILE_FLAG_RANDOM_ACCESS;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_SEQUENTIAL_SCAN))
- flags |= FILE_FLAG_SEQUENTIAL_SCAN;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_DELETE_ON_CLOSE))
- flags |= FILE_FLAG_DELETE_ON_CLOSE;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_BACKUP_SEMANTICS))
- flags |= FILE_FLAG_BACKUP_SEMANTICS;
- if (ACE_BIT_ENABLED (mode, FILE_FLAG_POSIX_SEMANTICS))
- flags |= FILE_FLAG_POSIX_SEMANTICS;
-
- ACE_MT (ACE_thread_mutex_t *ace_os_monitor_lock = 0;)
-
- if (ACE_BIT_ENABLED (mode, _O_APPEND))
- {
- ACE_MT
- (
- ace_os_monitor_lock = (ACE_thread_mutex_t *)
- ACE_OS_Object_Manager::preallocated_object[
- ACE_OS_Object_Manager::ACE_OS_MONITOR_LOCK];
- ACE_OS::thread_mutex_lock (ace_os_monitor_lock);
- )
- }
-
- DWORD shared_mode = perms;
-
- ACE_HANDLE h = ::CreateFileW (filename,
- access,
- shared_mode,
- ACE_OS::default_win32_security_attributes (sa),
- creation,
- flags,
- 0);
-
- if (ACE_BIT_ENABLED (mode, _O_APPEND))
- {
- if (h != ACE_INVALID_HANDLE)
- {
- ::SetFilePointer (h, 0, 0, FILE_END);
- }
-
- ACE_MT (ACE_OS::thread_mutex_unlock (ace_os_monitor_lock);)
- }
-
- if (h == ACE_INVALID_HANDLE)
- ACE_FAIL_RETURN (h);
- else
- return h;
-#else /* ACE_WIN32 */
- // Just emulate with ascii version
- return ACE_OS::open (ACE_Wide_To_Ascii (filename).char_rep (),
- mode,
- perms,
- sa);
-#endif /* ACE_WIN32 */
-}
-#endif /* ACE_HAS_WCHAR */
-
-# if defined (ACE_LACKS_DIFFTIME)
-double
-ACE_OS::difftime (time_t t1, time_t t0)
-{
- /* return t1 - t0 in seconds */
- struct tm tms[2], *ptms[2], temp;
- double seconds;
- double days;
- int swap = 0;
-
- /* extract the tm structure from time_t */
- ptms[1] = gmtime_r (&t1, &tms[1]);
- if (ptms[1] == 0) return 0.0;
-
- ptms[0] = gmtime_r (&t0, &tms[0]);
- if (ptms[0] == 0) return 0.0;
-
- /* make sure t1 is > t0 */
- if (tms[1].tm_year < tms[0].tm_year)
- swap = 1;
- else if (tms[1].tm_year == tms[0].tm_year)
- {
- if (tms[1].tm_yday < tms[0].tm_yday)
- swap = 1;
- else if (tms[1].tm_yday == tms[0].tm_yday)
- {
- if (tms[1].tm_hour < tms[0].tm_hour)
- swap = 1;
- else if (tms[1].tm_hour == tms[0].tm_hour)
- {
- if (tms[1].tm_min < tms[0].tm_min)
- swap = 1;
- else if (tms[1].tm_min == tms[0].tm_min)
- {
- if (tms[1].tm_sec < tms[0].tm_sec)
- swap = 1;
- }
- }
- }
- }
-
- if (swap)
- temp = tms[0], tms[0] = tms[1], tms[1] = temp;
-
- seconds = 0.0;
- if (tms[1].tm_year > tms[0].tm_year)
- {
- // Accumulate the time until t[0] catches up to t[1]'s year.
- seconds = 60 - tms[0].tm_sec;
- tms[0].tm_sec = 0;
- tms[0].tm_min += 1;
- seconds += 60 * (60 - tms[0].tm_min);
- tms[0].tm_min = 0;
- tms[0].tm_hour += 1;
- seconds += 60*60 * (24 - tms[0].tm_hour);
- tms[0].tm_hour = 0;
- tms[0].tm_yday += 1;
-
-# define ISLEAPYEAR(y) ((y)&3u?0:(y)%25u?1:(y)/25u&12?0:1)
-
- if (ISLEAPYEAR(tms[0].tm_year))
- seconds += 60*60*24 * (366 - tms[0].tm_yday);
- else
- seconds += 60*60*24 * (365 - tms[0].tm_yday);
-
- tms[0].tm_yday = 0;
- tms[0].tm_year += 1;
-
- while (tms[1].tm_year > tms[0].tm_year)
- {
- if (ISLEAPYEAR(tms[0].tm_year))
- seconds += 60*60*24 * 366;
- else
- seconds += 60*60*24 * 365;
-
- tms[0].tm_year += 1;
- }
-
-# undef ISLEAPYEAR
-
- }
- else
- {
- // Normalize
- if (tms[1].tm_sec < tms[0].tm_sec)
- {
- if (tms[1].tm_min == 0)
- {
- if (tms[1].tm_hour == 0)
- {
- tms[1].tm_yday -= 1;
- tms[1].tm_hour += 24;
- }
- tms[1].tm_hour -= 1;
- tms[1].tm_min += 60;
- }
- tms[1].tm_min -= 1;
- tms[1].tm_sec += 60;
- }
- tms[1].tm_sec -= tms[0].tm_sec;
-
- if (tms[1].tm_min < tms[0].tm_min)
- {
- if (tms[1].tm_hour == 0)
- {
- tms[1].tm_yday -= 1;
- tms[1].tm_hour += 24;
- }
- tms[1].tm_hour -= 1;
- tms[1].tm_min += 60;
- }
- tms[1].tm_min -= tms[0].tm_min;
-
- if (tms[1].tm_hour < tms[0].tm_hour)
- {
- tms[1].tm_yday -= 1;
- tms[1].tm_hour += 24;
- }
- tms[1].tm_hour -= tms[0].tm_hour;
-
- tms[1].tm_yday -= tms[0].tm_yday;
- }
-
- // accumulate the seconds
- seconds += tms[1].tm_sec;
- seconds += 60 * tms[1].tm_min;
- seconds += 60*60 * tms[1].tm_hour;
- seconds += 60*60*24 * tms[1].tm_yday;
-
- return seconds;
-}
-# endif /* ACE_LACKS_DIFFTIME */
-
-# if defined (ACE_HAS_WINCE)
-ACE_TCHAR *
-ACE_OS::ctime_r (const time_t *clock, ACE_TCHAR *buf, int buflen)
-{
- // buflen must be at least 26 wchar_t long.
- if (buflen < 26) // Again, 26 is a magic number.
- {
- errno = ERANGE;
- return 0;
- }
- // This is really stupid, converting FILETIME to timeval back and
- // forth. It assumes FILETIME and DWORDLONG are the same structure
- // internally.
- ULARGE_INTEGER _100ns;
- _100ns.QuadPart = (DWORDLONG) *clock * 10000 * 1000
- + ACE_Time_Value::FILETIME_to_timval_skew;
- FILETIME file_time;
- file_time.dwLowDateTime = _100ns.LowPart;
- file_time.dwHighDateTime = _100ns.HighPart;
-
- FILETIME localtime;
- SYSTEMTIME systime;
- FileTimeToLocalFileTime (&file_time, &localtime);
- FileTimeToSystemTime (&localtime, &systime);
- ACE_OS::sprintf (buf, ACE_OS_CTIME_R_FMTSTR,
- ACE_OS::day_of_week_name[systime.wDayOfWeek],
- ACE_OS::month_name[systime.wMonth - 1],
- systime.wDay,
- systime.wHour,
- systime.wMinute,
- systime.wSecond,
- systime.wYear);
- return buf;
-}
-# endif /* ACE_HAS_WINCE */
-
-time_t
-ACE_OS::mktime (struct tm *t)
-{
- ACE_OS_TRACE ("ACE_OS::mktime");
-# if defined (ACE_PSOS) && ! defined (ACE_PSOS_HAS_TIME)
- ACE_UNUSED_ARG (t);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_HAS_WINCE)
- SYSTEMTIME t_sys;
- FILETIME t_file;
- t_sys.wSecond = t->tm_sec;
- t_sys.wMinute = t->tm_min;
- t_sys.wHour = t->tm_hour;
- t_sys.wDay = t->tm_mday;
- t_sys.wMonth = t->tm_mon + 1; // SYSTEMTIME is 1-indexed, tm is 0-indexed
- t_sys.wYear = t->tm_year + 1900; // SYSTEMTIME is real; tm is since 1900
- t_sys.wDayOfWeek = t->tm_wday; // Ignored in below function call.
- if (SystemTimeToFileTime (&t_sys, &t_file) == 0)
- return -1;
- ACE_Time_Value tv (t_file);
- return tv.sec ();
-# else
-# if defined (ACE_HAS_THREADS) && !defined (ACE_HAS_MT_SAFE_MKTIME)
- ACE_OS_GUARD
-# endif /* ACE_HAS_THREADS && ! ACE_HAS_MT_SAFE_MKTIME */
-
- ACE_OSCALL_RETURN (::mktime (t), time_t, (time_t) -1);
-# endif /* ACE_PSOS && ! ACE_PSOS_HAS_TIME */
-}
-
-# if !defined (ACE_HAS_THREADS) || defined (ACE_LACKS_RWLOCK_T)
-int
-ACE_OS::rwlock_init (ACE_rwlock_t *rw,
- int type,
- const ACE_TCHAR *name,
- void *arg)
-{
- // ACE_OS_TRACE ("ACE_OS::rwlock_init");
-# if defined (ACE_HAS_THREADS) && defined (ACE_LACKS_RWLOCK_T)
- // NT, POSIX, and VxWorks don't support this natively.
- ACE_UNUSED_ARG (name);
- int result = -1;
-
- // Since we cannot use the user specified name for all three
- // objects, we will create three completely new names.
- ACE_TCHAR name1[ACE_UNIQUE_NAME_LEN];
- ACE_TCHAR name2[ACE_UNIQUE_NAME_LEN];
- ACE_TCHAR name3[ACE_UNIQUE_NAME_LEN];
- ACE_TCHAR name4[ACE_UNIQUE_NAME_LEN];
-
- ACE_OS::unique_name ((const void *) &rw->lock_,
- name1,
- ACE_UNIQUE_NAME_LEN);
- ACE_OS::unique_name ((const void *) &rw->waiting_readers_,
- name2,
- ACE_UNIQUE_NAME_LEN);
- ACE_OS::unique_name ((const void *) &rw->waiting_writers_,
- name3,
- ACE_UNIQUE_NAME_LEN);
- ACE_OS::unique_name ((const void *) &rw->waiting_important_writer_,
- name4,
- ACE_UNIQUE_NAME_LEN);
-
- ACE_condattr_t attributes;
- if (ACE_OS::condattr_init (attributes, type) == 0)
- {
- if (ACE_OS::mutex_init (&rw->lock_, type, name1,
- (ACE_mutexattr_t *) arg) == 0
- && ACE_OS::cond_init (&rw->waiting_readers_,
- attributes, name2, arg) == 0
- && ACE_OS::cond_init (&rw->waiting_writers_,
- attributes, name3, arg) == 0
- && ACE_OS::cond_init (&rw->waiting_important_writer_,
- attributes, name4, arg) == 0)
- {
- // Success!
- rw->ref_count_ = 0;
- rw->num_waiting_writers_ = 0;
- rw->num_waiting_readers_ = 0;
- rw->important_writer_ = 0;
- result = 0;
- }
- ACE_OS::condattr_destroy (attributes);
- }
-
- if (result == -1)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- ACE_OS::mutex_destroy (&rw->lock_);
- ACE_OS::cond_destroy (&rw->waiting_readers_);
- ACE_OS::cond_destroy (&rw->waiting_writers_);
- ACE_OS::cond_destroy (&rw->waiting_important_writer_);
- }
- return result;
-# else
- ACE_UNUSED_ARG (rw);
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-# endif /* ! ACE_HAS_THREADS || ACE_LACKS_RWLOCK_T */
-
-#if defined (ACE_LACKS_COND_T) && ! defined (ACE_PSOS_DIAB_MIPS)
-// NOTE: The ACE_OS::cond_* functions for some non-Unix platforms are
-// defined here either because they're too big to be inlined, or
-// to avoid use before definition if they were inline.
-
-int
-ACE_OS::cond_destroy (ACE_cond_t *cv)
-{
- ACE_OS_TRACE ("ACE_OS::cond_destroy");
-# if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_WTHREADS)
- ACE_OS::event_destroy (&cv->waiters_done_);
-# elif defined (VXWORKS) || defined (ACE_PSOS)
- ACE_OS::sema_destroy (&cv->waiters_done_);
-# endif /* VXWORKS */
- ACE_OS::thread_mutex_destroy (&cv->waiters_lock_);
- return ACE_OS::sema_destroy (&cv->sema_);
-# else
- ACE_UNUSED_ARG (cv);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-// @@ The following functions could be inlined if i could figure where
-// to put it among the #ifdefs!
-int
-ACE_OS::condattr_init (ACE_condattr_t &attributes,
- int type)
-{
- attributes.type = type;
- return 0;
-}
-
-int
-ACE_OS::condattr_destroy (ACE_condattr_t &)
-{
- return 0;
-}
-
-int
-ACE_OS::cond_init (ACE_cond_t *cv,
- ACE_condattr_t &attributes,
- const char *name, void *arg)
-{
- return ACE_OS::cond_init (cv, attributes.type, name, arg);
-}
-
-#if defined (ACE_HAS_WCHAR)
-int
-ACE_OS::cond_init (ACE_cond_t *cv,
- ACE_condattr_t &attributes,
- const wchar_t *name, void *arg)
-{
- return ACE_OS::cond_init (cv, attributes.type, name, arg);
-}
-#endif /* ACE_HAS_WCHAR */
-
-int
-ACE_OS::cond_init (ACE_cond_t *cv, short type, const char *name, void *arg)
-{
- ACE_OS_TRACE ("ACE_OS::cond_init");
-# if defined (ACE_HAS_THREADS)
- cv->waiters_ = 0;
- cv->was_broadcast_ = 0;
-
- int result = 0;
- if (ACE_OS::sema_init (&cv->sema_, 0, type, name, arg) == -1)
- result = -1;
- else if (ACE_OS::thread_mutex_init (&cv->waiters_lock_) == -1)
- result = -1;
-# if defined (VXWORKS) || defined (ACE_PSOS)
- else if (ACE_OS::sema_init (&cv->waiters_done_, 0, type) == -1)
-# else
- else if (ACE_OS::event_init (&cv->waiters_done_) == -1)
-# endif /* VXWORKS */
- result = -1;
- return result;
-# else
- ACE_UNUSED_ARG (cv);
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-#if defined (ACE_HAS_WCHAR)
-int
-ACE_OS::cond_init (ACE_cond_t *cv, short type, const wchar_t *name, void *arg)
-{
- ACE_OS_TRACE ("ACE_OS::cond_init");
-# if defined (ACE_HAS_THREADS)
- cv->waiters_ = 0;
- cv->was_broadcast_ = 0;
-
- int result = 0;
- if (ACE_OS::sema_init (&cv->sema_, 0, type, name, arg) == -1)
- result = -1;
- else if (ACE_OS::thread_mutex_init (&cv->waiters_lock_) == -1)
- result = -1;
-# if defined (VXWORKS) || defined (ACE_PSOS)
- else if (ACE_OS::sema_init (&cv->waiters_done_, 0, type) == -1)
-# else
- else if (ACE_OS::event_init (&cv->waiters_done_) == -1)
-# endif /* VXWORKS */
- result = -1;
- return result;
-# else
- ACE_UNUSED_ARG (cv);
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-#endif /* ACE_HAS_WCHAR */
-
-int
-ACE_OS::cond_signal (ACE_cond_t *cv)
-{
- ACE_OS_TRACE ("ACE_OS::cond_signal");
-# if defined (ACE_HAS_THREADS)
- // If there aren't any waiters, then this is a no-op. Note that
- // this function *must* be called with the <external_mutex> held
- // since other wise there is a race condition that can lead to the
- // lost wakeup bug... This is needed to ensure that the <waiters_>
- // value is not in an inconsistent internal state while being
- // updated by another thread.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
- int have_waiters = cv->waiters_ > 0;
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
-
- if (have_waiters != 0)
- return ACE_OS::sema_post (&cv->sema_);
- else
- return 0; // No-op
-# else
- ACE_UNUSED_ARG (cv);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-int
-ACE_OS::cond_broadcast (ACE_cond_t *cv)
-{
- ACE_OS_TRACE ("ACE_OS::cond_broadcast");
-# if defined (ACE_HAS_THREADS)
- // The <external_mutex> must be locked before this call is made.
-
- // This is needed to ensure that <waiters_> and <was_broadcast_> are
- // consistent relative to each other.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
- int have_waiters = 0;
-
- if (cv->waiters_ > 0)
- {
- // We are broadcasting, even if there is just one waiter...
- // Record the fact that we are broadcasting. This helps the
- // cond_wait() method know how to optimize itself. Be sure to
- // set this with the <waiters_lock_> held.
- cv->was_broadcast_ = 1;
- have_waiters = 1;
- }
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
- int result = 0;
- if (have_waiters)
- {
- // Wake up all the waiters.
- if (ACE_OS::sema_post (&cv->sema_, cv->waiters_) == -1)
- result = -1;
- // Wait for all the awakened threads to acquire their part of
- // the counting semaphore.
-# if defined (VXWORKS) || defined (ACE_PSOS)
- else if (ACE_OS::sema_wait (&cv->waiters_done_) == -1)
-# else
- else if (ACE_OS::event_wait (&cv->waiters_done_) == -1)
-# endif /* VXWORKS */
- result = -1;
- // This is okay, even without the <waiters_lock_> held because
- // no other waiter threads can wake up to access it.
- cv->was_broadcast_ = 0;
- }
- return result;
-# else
- ACE_UNUSED_ARG (cv);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-int
-ACE_OS::cond_wait (ACE_cond_t *cv,
- ACE_mutex_t *external_mutex)
-{
- ACE_OS_TRACE ("ACE_OS::cond_wait");
-# if defined (ACE_HAS_THREADS)
- // Prevent race conditions on the <waiters_> count.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
- cv->waiters_++;
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
-
- int result = 0;
-
-# if defined (ACE_HAS_SIGNAL_OBJECT_AND_WAIT)
- if (external_mutex->type_ == USYNC_PROCESS)
- // This call will automatically release the mutex and wait on the semaphore.
- ACE_WIN32CALL (ACE_ADAPT_RETVAL (::SignalObjectAndWait (external_mutex->proc_mutex_,
- cv->sema_, INFINITE, FALSE),
- result),
- int, -1, result);
- else
-# endif /* ACE_HAS_SIGNAL_OBJECT_AND_WAIT */
- {
- // We keep the lock held just long enough to increment the count of
- // waiters by one. Note that we can't keep it held across the call
- // to ACE_OS::sema_wait() since that will deadlock other calls to
- // ACE_OS::cond_signal().
- if (ACE_OS::mutex_unlock (external_mutex) != 0)
- return -1;
-
- // Wait to be awakened by a ACE_OS::cond_signal() or
- // ACE_OS::cond_broadcast().
- result = ACE_OS::sema_wait (&cv->sema_);
- }
-
- // Reacquire lock to avoid race conditions on the <waiters_> count.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
-
- // We're ready to return, so there's one less waiter.
- cv->waiters_--;
-
- int last_waiter = cv->was_broadcast_ && cv->waiters_ == 0;
-
- // Release the lock so that other collaborating threads can make
- // progress.
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
-
- if (result == -1)
- // Bad things happened, so let's just return below.
- /* NOOP */;
-# if defined (ACE_HAS_SIGNAL_OBJECT_AND_WAIT)
- else if (external_mutex->type_ == USYNC_PROCESS)
- {
- if (last_waiter)
-
- // This call atomically signals the <waiters_done_> event and
- // waits until it can acquire the mutex. This is important to
- // prevent unfairness.
- ACE_WIN32CALL (ACE_ADAPT_RETVAL (::SignalObjectAndWait (cv->waiters_done_,
- external_mutex->proc_mutex_,
- INFINITE, FALSE),
- result),
- int, -1, result);
- else
- // We must always regain the <external_mutex>, even when
- // errors occur because that's the guarantee that we give to
- // our callers.
- ACE_OS::mutex_lock (external_mutex);
-
- return result;
- /* NOTREACHED */
- }
-# endif /* ACE_HAS_SIGNAL_OBJECT_AND_WAIT */
- // If we're the last waiter thread during this particular broadcast
- // then let all the other threads proceed.
- else if (last_waiter)
-# if defined (VXWORKS) || defined (ACE_PSOS)
- ACE_OS::sema_post (&cv->waiters_done_);
-# else
- ACE_OS::event_signal (&cv->waiters_done_);
-# endif /* VXWORKS */
-
- // We must always regain the <external_mutex>, even when errors
- // occur because that's the guarantee that we give to our callers.
- ACE_OS::mutex_lock (external_mutex);
-
- return result;
-# else
- ACE_UNUSED_ARG (cv);
- ACE_UNUSED_ARG (external_mutex);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-int
-ACE_OS::cond_timedwait (ACE_cond_t *cv,
- ACE_mutex_t *external_mutex,
- ACE_Time_Value *timeout)
-{
- ACE_OS_TRACE ("ACE_OS::cond_timedwait");
-# if defined (ACE_HAS_THREADS)
- // Handle the easy case first.
- if (timeout == 0)
- return ACE_OS::cond_wait (cv, external_mutex);
-# if defined (ACE_HAS_WTHREADS) || defined (VXWORKS) || defined (ACE_PSOS)
-
- // Prevent race conditions on the <waiters_> count.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
- cv->waiters_++;
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
-
- int result = 0;
- ACE_Errno_Guard error (errno, 0);
- int msec_timeout;
-
- if (timeout->sec () == 0 && timeout->usec () == 0)
- msec_timeout = 0; // Do a "poll."
- else
- {
- // Note that we must convert between absolute time (which is
- // passed as a parameter) and relative time (which is what
- // WaitForSingleObjects() expects).
- ACE_Time_Value relative_time (*timeout - ACE_OS::gettimeofday ());
-
- // Watchout for situations where a context switch has caused the
- // current time to be > the timeout.
- if (relative_time < ACE_Time_Value::zero)
- msec_timeout = 0;
- else
- msec_timeout = relative_time.msec ();
- }
-
-# if defined (ACE_HAS_SIGNAL_OBJECT_AND_WAIT)
- if (external_mutex->type_ == USYNC_PROCESS)
- // This call will automatically release the mutex and wait on the
- // semaphore.
- result = ::SignalObjectAndWait (external_mutex->proc_mutex_,
- cv->sema_,
- msec_timeout,
- FALSE);
- else
-# endif /* ACE_HAS_SIGNAL_OBJECT_AND_WAIT */
- {
- // We keep the lock held just long enough to increment the count
- // of waiters by one. Note that we can't keep it held across
- // the call to WaitForSingleObject since that will deadlock
- // other calls to ACE_OS::cond_signal().
- if (ACE_OS::mutex_unlock (external_mutex) != 0)
- return -1;
-
- // Wait to be awakened by a ACE_OS::signal() or
- // ACE_OS::broadcast().
-# if defined (ACE_WIN32)
-# if !defined (ACE_USES_WINCE_SEMA_SIMULATION)
- result = ::WaitForSingleObject (cv->sema_, msec_timeout);
-# else /* ACE_USES_WINCE_SEMA_SIMULATION */
- // Can't use Win32 API on our simulated semaphores.
- result = ACE_OS::sema_wait (&cv->sema_,
- timeout);
-# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
-# elif defined (ACE_PSOS)
- // Inline the call to ACE_OS::sema_wait () because it takes an
- // ACE_Time_Value argument. Avoid the cost of that conversion . . .
- u_long ticks = (KC_TICKS2SEC * msec_timeout) / ACE_ONE_SECOND_IN_MSECS;
- //Tick set to 0 tells pSOS to wait forever is SM_WAIT is set.
- if(ticks == 0)
- result = ::sm_p (cv->sema_.sema_, SM_NOWAIT, ticks); //no timeout
- else
- result = ::sm_p (cv->sema_.sema_, SM_WAIT, ticks);
-# elif defined (VXWORKS)
- // Inline the call to ACE_OS::sema_wait () because it takes an
- // ACE_Time_Value argument. Avoid the cost of that conversion . . .
- int ticks_per_sec = ::sysClkRateGet ();
- int ticks = msec_timeout * ticks_per_sec / ACE_ONE_SECOND_IN_MSECS;
- result = ::semTake (cv->sema_.sema_, ticks);
-# endif /* ACE_WIN32 || VXWORKS */
- }
-
- // Reacquire lock to avoid race conditions.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
- cv->waiters_--;
-
- int last_waiter = cv->was_broadcast_ && cv->waiters_ == 0;
-
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
-
-# if defined (ACE_WIN32)
- if (result != WAIT_OBJECT_0)
- {
- switch (result)
- {
- case WAIT_TIMEOUT:
- error = ETIME;
- break;
- default:
- error = ::GetLastError ();
- break;
- }
- result = -1;
- }
-# elif defined (ACE_PSOS)
- if (result != 0)
- {
- switch (result)
- {
- case ERR_TIMEOUT: // Timeout occured with SM_WAIT
- case ERR_NOMSG: // Didn't acquire semaphore w/ SM_NOWAIT (ticks=0)
- error = ETIME;
- break;
- default:
- error = errno;
- break;
- }
- result = -1;
- }
-# elif defined (VXWORKS)
- if (result == ERROR)
- {
- switch (errno)
- {
- case S_objLib_OBJ_TIMEOUT:
- error = ETIME;
- break;
- case S_objLib_OBJ_UNAVAILABLE:
- if (msec_timeout == 0)
- error = ETIME;
- break;
- default:
- error = errno;
- break;
- }
- result = -1;
- }
-# endif /* ACE_WIN32 || VXWORKS */
-# if defined (ACE_HAS_SIGNAL_OBJECT_AND_WAIT)
- if (external_mutex->type_ == USYNC_PROCESS)
- {
- if (last_waiter)
- // This call atomically signals the <waiters_done_> event and
- // waits until it can acquire the mutex. This is important to
- // prevent unfairness.
- ACE_WIN32CALL (ACE_ADAPT_RETVAL (::SignalObjectAndWait (cv->waiters_done_,
- external_mutex->proc_mutex_,
- INFINITE, FALSE),
- result),
- int, -1, result);
- else
- // We must always regain the <external_Mutex>, even when
- // errors occur because that's the guarantee that we give to
- // our callers.
- ACE_OS::mutex_lock (external_mutex);
-
- return result;
- /* NOTREACHED */
- }
-# endif /* ACE_HAS_SIGNAL_OBJECT_AND_WAIT */
- // Note that this *must* be an "if" statement rather than an "else
- // if" statement since the caller may have timed out and hence the
- // result would have been -1 above.
- if (last_waiter)
- // Release the signaler/broadcaster if we're the last waiter.
-# if defined (ACE_WIN32)
- ACE_OS::event_signal (&cv->waiters_done_);
-# else
- ACE_OS::sema_post (&cv->waiters_done_);
-# endif /* ACE_WIN32 */
-
- // We must always regain the <external_mutex>, even when errors
- // occur because that's the guarantee that we give to our callers.
- ACE_OS::mutex_lock (external_mutex);
-
- return result;
-# endif /* ACE_HAS_WTHREADS || ACE_HAS_VXWORKS || ACE_PSOS */
-# else
- ACE_UNUSED_ARG (cv);
- ACE_UNUSED_ARG (external_mutex);
- ACE_UNUSED_ARG (timeout);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-# if defined (ACE_HAS_WTHREADS)
-int
-ACE_OS::cond_timedwait (ACE_cond_t *cv,
- ACE_thread_mutex_t *external_mutex,
- ACE_Time_Value *timeout)
-{
- ACE_OS_TRACE ("ACE_OS::cond_timedwait");
-# if defined (ACE_HAS_THREADS)
- // Handle the easy case first.
- if (timeout == 0)
- return ACE_OS::cond_wait (cv, external_mutex);
-
- // Prevent race conditions on the <waiters_> count.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
- cv->waiters_++;
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
-
- int result = 0;
- int error = 0;
- int msec_timeout;
-
- if (timeout->sec () == 0 && timeout->usec () == 0)
- msec_timeout = 0; // Do a "poll."
- else
- {
- // Note that we must convert between absolute time (which is
- // passed as a parameter) and relative time (which is what
- // WaitForSingleObjects() expects).
- ACE_Time_Value relative_time (*timeout - ACE_OS::gettimeofday ());
-
- // Watchout for situations where a context switch has caused the
- // current time to be > the timeout.
- if (relative_time < ACE_Time_Value::zero)
- msec_timeout = 0;
- else
- msec_timeout = relative_time.msec ();
- }
-
- // We keep the lock held just long enough to increment the count of
- // waiters by one. Note that we can't keep it held across the call
- // to WaitForSingleObject since that will deadlock other calls to
- // ACE_OS::cond_signal().
- if (ACE_OS::thread_mutex_unlock (external_mutex) != 0)
- return -1;
-
- // Wait to be awakened by a ACE_OS::signal() or ACE_OS::broadcast().
-# if defined (ACE_USES_WINCE_SEMA_SIMULATION)
- // Can't use Win32 API on simulated semaphores.
- result = ACE_OS::sema_wait (&cv->sema_,
- timeout);
-
- if (result == -1 && errno == ETIME)
- result = WAIT_TIMEOUT;
-# else
- result = ::WaitForSingleObject (cv->sema_, msec_timeout);
-# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
-
- // Reacquire lock to avoid race conditions.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
-
- cv->waiters_--;
-
- int last_waiter = cv->was_broadcast_ && cv->waiters_ == 0;
-
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
-
- if (result != WAIT_OBJECT_0)
- {
- switch (result)
- {
- case WAIT_TIMEOUT:
- error = ETIME;
- break;
- default:
- error = ::GetLastError ();
- break;
- }
- result = -1;
- }
-
- if (last_waiter)
- // Release the signaler/broadcaster if we're the last waiter.
- ACE_OS::event_signal (&cv->waiters_done_);
-
- // We must always regain the <external_mutex>, even when errors
- // occur because that's the guarantee that we give to our callers.
- ACE_OS::thread_mutex_lock (external_mutex);
- errno = error;
- return result;
-# else
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-int
-ACE_OS::cond_wait (ACE_cond_t *cv,
- ACE_thread_mutex_t *external_mutex)
-{
- ACE_OS_TRACE ("ACE_OS::cond_wait");
-# if defined (ACE_HAS_THREADS)
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
- cv->waiters_++;
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
-
- int result = 0;
- int error = 0;
-
- // We keep the lock held just long enough to increment the count of
- // waiters by one. Note that we can't keep it held across the call
- // to ACE_OS::sema_wait() since that will deadlock other calls to
- // ACE_OS::cond_signal().
- if (ACE_OS::thread_mutex_unlock (external_mutex) != 0)
- return -1;
-
- // Wait to be awakened by a ACE_OS::cond_signal() or
- // ACE_OS::cond_broadcast().
-# if !defined (ACE_USES_WINCE_SEMA_SIMULATION)
- result = ::WaitForSingleObject (cv->sema_, INFINITE);
-# else
- // Can't use Win32 API on simulated semaphores.
- result = ACE_OS::sema_wait (&cv->sema_);
-
- if (result != WAIT_OBJECT_0 && errno == ETIME)
- result = WAIT_TIMEOUT;
-
-# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
-
- // Reacquire lock to avoid race conditions.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
-
- cv->waiters_--;
-
- int last_waiter = cv->was_broadcast_ && cv->waiters_ == 0;
-
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
-
- if (result != WAIT_OBJECT_0)
- {
- switch (result)
- {
- case WAIT_TIMEOUT:
- error = ETIME;
- break;
- default:
- error = ::GetLastError ();
- break;
- }
- }
- else if (last_waiter)
- // Release the signaler/broadcaster if we're the last waiter.
- ACE_OS::event_signal (&cv->waiters_done_);
-
- // We must always regain the <external_mutex>, even when errors
- // occur because that's the guarantee that we give to our callers.
- ACE_OS::thread_mutex_lock (external_mutex);
-
- // Reset errno in case mutex_lock() also fails...
- errno = error;
- return result;
-# else
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-# endif /* ACE_HAS_WTHREADS */
-#endif /* ACE_LACKS_COND_T */
-
-void
-ACE_OS::exit (int status)
-{
- ACE_OS_TRACE ("ACE_OS::exit");
-
-#if defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER) && !defined (ACE_HAS_WINCE) && !defined (ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER)
- // Shut down the ACE_Object_Manager, if it had registered its exit_hook.
- // With ACE_HAS_NONSTATIC_OBJECT_MANAGER, the ACE_Object_Manager is
- // instantiated on the main's stack. ::exit () doesn't destroy it.
- if (exit_hook_)
- (*exit_hook_) ();
-#endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER && !ACE_HAS_WINCE && !ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER */
-
-#if !defined (ACE_HAS_WINCE)
-# if defined (ACE_WIN32)
- ::ExitProcess ((UINT) status);
-# elif defined (ACE_PSOSIM)
- ::u_exit (status);
-# else
- ::exit (status);
-# endif /* ACE_WIN32 */
-#else
- // @@ This is not exactly the same as ExitProcess. But this is the
- // closest one I can get.
- ::TerminateProcess (::GetCurrentProcess (), status);
-#endif /* ACE_HAS_WINCE */
-}
-
-# if defined (ACE_PSOS)
-
-// bit masks and shifts for prying info out of the pSOS time encoding
-const u_long ACE_PSOS_Time_t::year_mask = 0x0000FFFFul;
-const u_long ACE_PSOS_Time_t::month_mask = 0x000000FFul;
-const u_long ACE_PSOS_Time_t::day_mask = 0x000000FFul;
-const u_long ACE_PSOS_Time_t::hour_mask = 0x0000FFFFul;
-const u_long ACE_PSOS_Time_t::minute_mask = 0x000000FFul;
-const u_long ACE_PSOS_Time_t::second_mask = 0x000000FFul;
-const int ACE_PSOS_Time_t::year_shift = 16;
-const int ACE_PSOS_Time_t::month_shift = 8;
-const int ACE_PSOS_Time_t::hour_shift = 16;
-const int ACE_PSOS_Time_t::minute_shift = 8;
-const int ACE_PSOS_Time_t::year_origin = 1900;
-const int ACE_PSOS_Time_t::month_origin = 1;
-
-// maximum number of clock ticks supported
-const u_long ACE_PSOS_Time_t::max_ticks = ~0UL;
-
-ACE_PSOS_Time_t::ACE_PSOS_Time_t (void)
- : date_ (0),
- time_ (0),
- ticks_ (0)
-{
-}
-
-// default ctor: date, time, and ticks all zeroed
-
-ACE_PSOS_Time_t::ACE_PSOS_Time_t (const timespec_t& t)
-{
- struct tm* tm_struct = ACE_OS::gmtime (&(t.tv_sec));
-
- // Encode date values from tm struct into pSOS date bit array.
- date_ = (ACE_PSOS_Time_t::year_mask &
- ACE_static_cast (u_long,
- tm_struct->tm_year + ACE_PSOS_Time_t::year_origin)) <<
- ACE_PSOS_Time_t::year_shift;
- date_ |= (ACE_PSOS_Time_t::month_mask &
- ACE_static_cast (u_long,
- tm_struct->tm_mon + ACE_PSOS_Time_t::month_origin)) <<
- ACE_PSOS_Time_t::month_shift;
- date_ |= ACE_PSOS_Time_t::day_mask &
- ACE_static_cast (u_long, tm_struct->tm_mday);
- // Encode time values from tm struct into pSOS time bit array.
- time_ = (ACE_PSOS_Time_t::hour_mask &
- ACE_static_cast (u_long, tm_struct->tm_hour)) <<
- ACE_PSOS_Time_t::hour_shift;
- time_ |= (ACE_PSOS_Time_t::minute_mask &
- ACE_static_cast (u_long, tm_struct->tm_min)) <<
- ACE_PSOS_Time_t::minute_shift;
- time_ |= ACE_PSOS_Time_t::second_mask &
- ACE_static_cast (u_int, tm_struct->tm_sec);
-
- // encode nanoseconds as system clock ticks
- ticks_ = ACE_static_cast (u_long,
- ((ACE_static_cast (double, t.tv_nsec) *
- ACE_static_cast (double, KC_TICKS2SEC)) /
- ACE_static_cast (double, 1000000000)));
-
-}
-
-// ctor from a timespec_t
-
-ACE_PSOS_Time_t::operator timespec_t (void)
-{
- struct tm tm_struct;
-
- // Decode date and time bit arrays and fill in fields of tm_struct.
-
- tm_struct.tm_year =
- ACE_static_cast (int, (ACE_PSOS_Time_t::year_mask &
- (date_ >> ACE_PSOS_Time_t::year_shift))) -
- ACE_PSOS_Time_t::year_origin;
- tm_struct.tm_mon =
- ACE_static_cast (int, (ACE_PSOS_Time_t::month_mask &
- (date_ >> ACE_PSOS_Time_t::month_shift))) -
- ACE_PSOS_Time_t::month_origin;
- tm_struct.tm_mday =
- ACE_static_cast (int, (ACE_PSOS_Time_t::day_mask & date_));
- tm_struct.tm_hour =
- ACE_static_cast (int, (ACE_PSOS_Time_t::hour_mask &
- (time_ >> ACE_PSOS_Time_t::hour_shift)));
- tm_struct.tm_min =
- ACE_static_cast (int, (ACE_PSOS_Time_t::minute_mask &
- (time_ >> ACE_PSOS_Time_t::minute_shift)));
- tm_struct.tm_sec =
- ACE_static_cast (int, (ACE_PSOS_Time_t::second_mask & time_));
-
- // Indicate values we don't know as negative numbers.
- tm_struct.tm_wday = -1;
- tm_struct.tm_yday = -1;
- tm_struct.tm_isdst = -1;
-
- timespec_t t;
-
- // Convert calendar time to time struct.
- t.tv_sec = ACE_OS::mktime (&tm_struct);
-
- // Encode nanoseconds as system clock ticks.
- t.tv_nsec = ACE_static_cast (long,
- ((ACE_static_cast (double, ticks_) *
- ACE_static_cast (double, 1000000000)) /
- ACE_static_cast (double, KC_TICKS2SEC)));
- return t;
-}
-
-// type cast operator (to a timespec_t)
-
-u_long
-ACE_PSOS_Time_t::get_system_time (ACE_PSOS_Time_t& t)
-{
- u_long ret_val = 0;
-
-# if defined (ACE_PSOSIM) // system time is broken in simulator.
- timeval tv;
- int result = 0;
- ACE_OSCALL (::gettimeofday (&tv, 0), int, -1, result);
- if (result == -1)
- return 1;
-
- ACE_Time_Value atv (tv);
- timespec ts = atv;
- ACE_PSOS_Time_t pt (ts);
- t.date_ = pt.date_;
- t.time_ = pt.time_;
- t.ticks_ = pt.ticks_;
-# else
- ret_val = tm_get (&(t.date_), &(t.time_), &(t.ticks_));
-# endif /* ACE_PSOSIM */
- return ret_val;
-}
-
-// Static member function to get current system time.
-
-u_long
-ACE_PSOS_Time_t::set_system_time (const ACE_PSOS_Time_t& t)
-{
- return tm_set (t.date_, t.time_, t.ticks_);
-}
-
-// Static member function to set current system time.
-
-# if defined (ACE_PSOSIM)
-
-u_long
-ACE_PSOS_Time_t::init_simulator_time (void)
-{
- // This is a hack using a direct UNIX system call, because the
- // appropriate ACE_OS method ultimately uses the pSOS tm_get
- // function, which would fail because the simulator's system time is
- // uninitialized (chicken and egg).
- timeval t;
- int result = 0;
- ACE_OSCALL (::gettimeofday (&t, 0),
- int,
- -1,
- result);
-
- if (result == -1)
- return 1;
- else
- {
- ACE_Time_Value tv (t);
- timespec ts = tv;
- ACE_PSOS_Time_t pt (ts);
- u_long ret_val =
- ACE_PSOS_Time_t::set_system_time (pt);
- return ret_val;
-
- }
-}
-
-// Static member function to initialize system time, using UNIX calls.
-
-# endif /* ACE_PSOSIM */
-# endif /* ACE_PSOS && ! ACE_PSOS_DIAB_MIPS */
-
-# if defined (__DGUX) && defined (ACE_HAS_THREADS) && defined (_POSIX4A_DRAFT10_SOURCE)
-extern "C" int __d6_sigwait (sigset_t *set);
-
-extern "C" int __d10_sigwait (const sigset_t *set, int *sig)
-{
- sigset_t unconst_set = *set;
- int caught_sig = __d6_sigwait (&unconst_set);
-
- if (caught == -1)
- return -1;
-
- *sig = caught_sig;
- return 0;
-}
-# endif /* __DGUX && PTHREADS && _POSIX4A_DRAFT10_SOURCE */
-
-# define ACE_OS_PREALLOCATE_OBJECT(TYPE, ID)\
- {\
- TYPE *obj_p = 0;\
- ACE_NEW_RETURN (obj_p, TYPE, -1);\
- preallocated_object[ID] = (void *) obj_p;\
- }
-# define ACE_OS_DELETE_PREALLOCATED_OBJECT(TYPE, ID)\
- delete (TYPE *) preallocated_object[ID];\
- preallocated_object[ID] = 0;
-
-ACE_Object_Manager_Base::ACE_Object_Manager_Base (void)
- : object_manager_state_ (OBJ_MAN_UNINITIALIZED)
- , dynamically_allocated_ (0)
- , next_ (0)
-{
-}
-
-ACE_Object_Manager_Base::~ACE_Object_Manager_Base (void)
-{
-#if defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER)
- // Clear the flag so that fini () doesn't delete again.
- dynamically_allocated_ = 0;
-#endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER */
-}
-
-int
-ACE_Object_Manager_Base::starting_up_i ()
-{
- return object_manager_state_ < OBJ_MAN_INITIALIZED;
-}
-
-int
-ACE_Object_Manager_Base::shutting_down_i ()
-{
- return object_manager_state_ > OBJ_MAN_INITIALIZED;
-}
-
-extern "C"
-void
-ACE_OS_Object_Manager_Internal_Exit_Hook (void)
-{
- if (ACE_OS_Object_Manager::instance_)
- ACE_OS_Object_Manager::instance ()->fini ();
-}
-
-ACE_OS_Object_Manager *ACE_OS_Object_Manager::instance_ = 0;
-
-void *ACE_OS_Object_Manager::preallocated_object[
- ACE_OS_Object_Manager::ACE_OS_PREALLOCATED_OBJECTS] = { 0 };
-
-ACE_OS_Object_Manager::ACE_OS_Object_Manager (void)
- // default_mask_ isn't initialized, because it's defined by <init>.
- : thread_hook_ (0)
- , exit_info_ ()
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- , seh_except_selector_ (ACE_SEH_Default_Exception_Selector)
- , seh_except_handler_ (ACE_SEH_Default_Exception_Handler)
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-{
- // If instance_ was not 0, then another ACE_OS_Object_Manager has
- // already been instantiated (it is likely to be one initialized by
- // way of library/DLL loading). Let this one go through
- // construction in case there really is a good reason for it (like,
- // ACE is a static/archive library, and this one is the non-static
- // instance (with ACE_HAS_NONSTATIC_OBJECT_MANAGER, or the user has
- // a good reason for creating a separate one) but the original one
- // will be the one retrieved from calls to
- // ACE_Object_Manager::instance().
-
- // Be sure that no further instances are created via instance ().
- if (instance_ == 0)
- instance_ = this;
-
- init ();
-}
-
-ACE_OS_Object_Manager::~ACE_OS_Object_Manager (void)
-{
- dynamically_allocated_ = 0; // Don't delete this again in fini()
- fini ();
-}
-
-sigset_t *
-ACE_OS_Object_Manager::default_mask (void)
-{
- return ACE_OS_Object_Manager::instance ()->default_mask_;
-}
-
-ACE_Thread_Hook *
-ACE_OS_Object_Manager::thread_hook (void)
-{
- return ACE_OS_Object_Manager::instance ()->thread_hook_;
-}
-
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
-ACE_SEH_EXCEPT_HANDLER
-ACE_OS_Object_Manager::seh_except_selector (void)
-{
- return ACE_OS_Object_Manager::instance ()->seh_except_selector_;
-}
-
-ACE_SEH_EXCEPT_HANDLER
-ACE_OS_Object_Manager::seh_except_selector (ACE_SEH_EXCEPT_HANDLER n)
-{
- ACE_OS_Object_Manager *instance =
- ACE_OS_Object_Manager::instance ();
-
- ACE_SEH_EXCEPT_HANDLER retv = instance->seh_except_selector_;
- instance->seh_except_selector_ = n;
- return retv;
-}
-
-ACE_SEH_EXCEPT_HANDLER
-ACE_OS_Object_Manager::seh_except_handler (void)
-{
- return ACE_OS_Object_Manager::instance ()->seh_except_handler_;
-}
-
-ACE_SEH_EXCEPT_HANDLER
-ACE_OS_Object_Manager::seh_except_handler (ACE_SEH_EXCEPT_HANDLER n)
-{
- ACE_OS_Object_Manager *instance =
- ACE_OS_Object_Manager::instance ();
-
- ACE_SEH_EXCEPT_HANDLER retv = instance->seh_except_handler_;
- instance->seh_except_handler_ = n;
- return retv;
-}
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-
-ACE_Thread_Hook *
-ACE_OS_Object_Manager::thread_hook (ACE_Thread_Hook *new_thread_hook)
-{
- ACE_OS_Object_Manager *os_om = ACE_OS_Object_Manager::instance ();
- ACE_Thread_Hook *old_hook = os_om->thread_hook_;
- os_om->thread_hook_ = new_thread_hook;
- return old_hook;
-}
-
-ACE_OS_Object_Manager *
-ACE_OS_Object_Manager::instance (void)
-{
- // This function should be called during construction of static
- // instances, or before any other threads have been created in the
- // process. So, it's not thread safe.
-
- if (instance_ == 0)
- {
- ACE_OS_Object_Manager *instance_pointer;
-
- ACE_NEW_RETURN (instance_pointer,
- ACE_OS_Object_Manager,
- 0);
- // I (coryan) removed it, using asserts in the OS layer
- // brings down the Log msg stuff
- // ACE_ASSERT (instance_pointer == instance_);
-
- instance_pointer->dynamically_allocated_ = 1;
-
- }
-
- return instance_;
-}
-
-int
-ACE_OS_Object_Manager::init (void)
-{
- if (starting_up_i ())
- {
- // First, indicate that this ACE_OS_Object_Manager instance is being
- // initialized.
- object_manager_state_ = OBJ_MAN_INITIALIZING;
-
- if (this == instance_)
- {
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-# if defined (ACE_HAS_WINCE_BROKEN_ERRNO)
- ACE_CE_Errno::init ();
-# endif /* ACE_HAS_WINCE_BROKEN_ERRNO */
- ACE_OS_PREALLOCATE_OBJECT (ACE_thread_mutex_t, ACE_OS_MONITOR_LOCK)
- if (ACE_OS::thread_mutex_init
- // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor.
- (ACE_reinterpret_cast (ACE_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_OS_MONITOR_LOCK])) != 0)
- ACE_OS_Object_Manager::print_error_message (
- __LINE__, ACE_LIB_TEXT ("ACE_OS_MONITOR_LOCK"));
- ACE_OS_PREALLOCATE_OBJECT (ACE_recursive_thread_mutex_t,
- ACE_TSS_CLEANUP_LOCK)
- if (ACE_OS::recursive_mutex_init
- // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor.
- (ACE_reinterpret_cast (ACE_recursive_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_TSS_CLEANUP_LOCK])) != 0)
- ACE_OS_Object_Manager::print_error_message (
- __LINE__, ACE_LIB_TEXT ("ACE_TSS_CLEANUP_LOCK"));
- ACE_OS_PREALLOCATE_OBJECT (ACE_thread_mutex_t,
- ACE_LOG_MSG_INSTANCE_LOCK)
- if (ACE_OS::thread_mutex_init
- // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor.
- (ACE_reinterpret_cast (ACE_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_LOG_MSG_INSTANCE_LOCK])) != 0)
- ACE_OS_Object_Manager::print_error_message (
- __LINE__, ACE_LIB_TEXT ("ACE_LOG_MSG_INSTANCE_LOCK"));
-# if defined (ACE_HAS_TSS_EMULATION)
- ACE_OS_PREALLOCATE_OBJECT (ACE_recursive_thread_mutex_t,
- ACE_TSS_KEY_LOCK)
- if (ACE_OS::recursive_mutex_init
- // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor.
- (ACE_reinterpret_cast (ACE_recursive_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_TSS_KEY_LOCK])) != 0)
- ACE_OS_Object_Manager::print_error_message (
- __LINE__, ACE_LIB_TEXT ("ACE_TSS_KEY_LOCK"));
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
- ACE_OS_PREALLOCATE_OBJECT (ACE_recursive_thread_mutex_t,
- ACE_TSS_BASE_LOCK)
- if (ACE_OS::recursive_mutex_init
- // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor.
- (ACE_reinterpret_cast (ACE_recursive_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_TSS_BASE_LOCK])) != 0)
- ACE_OS_Object_Manager::print_error_message (
- __LINE__, ACE_LIB_TEXT ("ACE_TSS_BASE_LOCK"));
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
-# endif /* ACE_HAS_TSS_EMULATION */
-# endif /* ACE_MT_SAFE */
-
- // Open Winsock (no-op on other platforms).
- ACE_OS::socket_init (ACE_WSOCK_VERSION);
-
- // Register the exit hook, for use by ACE_OS::exit ().
- ACE_OS::set_exit_hook (&ACE_OS_Object_Manager_Internal_Exit_Hook);
- }
-
- ACE_NEW_RETURN (default_mask_, sigset_t, -1);
- ACE_OS::sigfillset (default_mask_);
-
- // Finally, indicate that the ACE_OS_Object_Manager instance has
- // been initialized.
- object_manager_state_ = OBJ_MAN_INITIALIZED;
-
-# if defined (ACE_WIN32)
- ACE_OS::win32_versioninfo_.dwOSVersionInfoSize =
- sizeof (OSVERSIONINFO);
- ::GetVersionEx (&ACE_OS::win32_versioninfo_);
-# endif /* ACE_WIN32 */
- return 0;
- } else {
- // Had already initialized.
- return 1;
- }
-}
-
-// Clean up an ACE_OS_Object_Manager. There can be instances of this object
-// other than The Instance. This can happen if a user creates one for some
-// reason. All objects clean up their per-object information and managed
-// objects, but only The Instance cleans up the static preallocated objects.
-int
-ACE_OS_Object_Manager::fini (void)
-{
- if (instance_ == 0 || shutting_down_i ())
- // Too late. Or, maybe too early. Either fini () has already
- // been called, or init () was never called.
- return object_manager_state_ == OBJ_MAN_SHUT_DOWN ? 1 : -1;
-
- // No mutex here. Only the main thread should destroy the singleton
- // ACE_OS_Object_Manager instance.
-
- // Indicate that the ACE_OS_Object_Manager instance is being shut
- // down. This object manager should be the last one to be shut
- // down.
- object_manager_state_ = OBJ_MAN_SHUTTING_DOWN;
-
- // If another Object_Manager has registered for termination, do it.
- if (next_)
- {
- next_->fini ();
- next_ = 0; // Protect against recursive calls.
- }
-
- // Call all registered cleanup hooks, in reverse order of
- // registration.
- exit_info_.call_hooks ();
-
- // Only clean up preallocated objects when the singleton Instance is being
- // destroyed.
- if (this == instance_)
- {
- // Close down Winsock (no-op on other platforms).
- ACE_OS::socket_fini ();
-
-#if ! defined (ACE_HAS_STATIC_PREALLOCATION)
- // Cleanup the dynamically preallocated objects.
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-# if !defined(ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK)
- if (ACE_OS::thread_mutex_destroy
- // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor.
- (ACE_reinterpret_cast (ACE_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_OS_MONITOR_LOCK])) != 0)
- ACE_OS_Object_Manager::print_error_message (
- __LINE__, ACE_LIB_TEXT ("ACE_OS_MONITOR_LOCK"));
-# endif /* ! ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK */
- ACE_OS_DELETE_PREALLOCATED_OBJECT (ACE_thread_mutex_t,
- ACE_OS_MONITOR_LOCK)
-# if !defined(ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK)
- if (ACE_OS::recursive_mutex_destroy
- // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor.
- (ACE_reinterpret_cast (ACE_recursive_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_TSS_CLEANUP_LOCK])) != 0)
- ACE_OS_Object_Manager::print_error_message (
- __LINE__, ACE_LIB_TEXT ("ACE_TSS_CLEANUP_LOCK"));
-# endif /* ! ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK */
- ACE_OS_DELETE_PREALLOCATED_OBJECT (ACE_recursive_thread_mutex_t,
- ACE_TSS_CLEANUP_LOCK)
-# if !defined(ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK)
- if (ACE_OS::thread_mutex_destroy
- // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor.
- (ACE_reinterpret_cast (ACE_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object [ACE_LOG_MSG_INSTANCE_LOCK])) != 0)
- ACE_OS_Object_Manager::print_error_message (
- __LINE__, ACE_LIB_TEXT ("ACE_LOG_MSG_INSTANCE_LOCK "));
-# endif /* ! ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK */
- ACE_OS_DELETE_PREALLOCATED_OBJECT (ACE_thread_mutex_t,
- ACE_LOG_MSG_INSTANCE_LOCK)
-# if defined (ACE_HAS_TSS_EMULATION)
-# if !defined(ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK)
- if (ACE_OS::recursive_mutex_destroy
- // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor.
- (ACE_reinterpret_cast (ACE_recursive_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_TSS_KEY_LOCK])) != 0)
- ACE_OS_Object_Manager::print_error_message (
- __LINE__, ACE_LIB_TEXT ("ACE_TSS_KEY_LOCK"));
-# endif /* ! ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK */
- ACE_OS_DELETE_PREALLOCATED_OBJECT (ACE_recursive_thread_mutex_t,
- ACE_TSS_KEY_LOCK)
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
-# if !defined(ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK)
- if (ACE_OS::recursive_mutex_destroy
- // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor.
- (ACE_reinterpret_cast (ACE_recursive_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_TSS_BASE_LOCK])) != 0)
- ACE_OS_Object_Manager::print_error_message (
- __LINE__, ACE_LIB_TEXT ("ACE_TSS_BASE_LOCK"));
-# endif /* ! ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK */
- ACE_OS_DELETE_PREALLOCATED_OBJECT (ACE_recursive_thread_mutex_t,
- ACE_TSS_BASE_LOCK)
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
-# endif /* ACE_HAS_TSS_EMULATION */
-# if defined (ACE_HAS_WINCE_BROKEN_ERRNO)
- ACE_CE_Errno::fini ();
-# endif /* ACE_HAS_WINCE_BROKEN_ERRNO */
-# endif /* ACE_MT_SAFE */
-#endif /* ! ACE_HAS_STATIC_PREALLOCATION */
- }
-
- delete default_mask_;
- default_mask_ = 0;
-
- // Indicate that this ACE_OS_Object_Manager instance has been shut down.
- object_manager_state_ = OBJ_MAN_SHUT_DOWN;
-
- if (dynamically_allocated_)
- {
- delete this;
- }
-
- if (this == instance_)
- instance_ = 0;
-
- return 0;
-}
-
-int ace_exit_hook_marker = 0;
-
-int
-ACE_OS_Object_Manager::at_exit (ACE_EXIT_HOOK func)
-{
- return exit_info_.at_exit_i (&ace_exit_hook_marker,
- ACE_reinterpret_cast (ACE_CLEANUP_FUNC, func),
- 0);
-}
-
-void
-ACE_OS_Object_Manager::print_error_message (u_int line_number,
- const ACE_TCHAR *message)
-{
- // To avoid duplication of these const strings in OS.o.
-#if !defined (ACE_HAS_WINCE)
- fprintf (stderr, "ace/OS.cpp, line %u: %s ",
- line_number,
- message);
- perror ("failed");
-#else
- // @@ Need to use the following information.
- ACE_UNUSED_ARG (line_number);
- ACE_UNUSED_ARG (message);
-
- ACE_TCHAR *lpMsgBuf = 0;
- ::FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM,
- 0,
- ::GetLastError (),
- MAKELANGID (LANG_NEUTRAL,
- SUBLANG_DEFAULT),
- // Default language
- (ACE_TCHAR *) &lpMsgBuf,
- 0,
- 0);
- ::MessageBox (NULL,
- lpMsgBuf,
- ACE_LIB_TEXT ("ACE_OS error"),
- MB_OK);
-#endif
-}
-
-int
-ACE_OS_Object_Manager::starting_up (void)
-{
- return ACE_OS_Object_Manager::instance_
- ? instance_->starting_up_i ()
- : 1;
-}
-
-int
-ACE_OS_Object_Manager::shutting_down (void)
-{
- return ACE_OS_Object_Manager::instance_
- ? instance_->shutting_down_i ()
- : 1;
-}
-
-#if !defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER)
-/**
- * @class ACE_OS_Object_Manager_Manager
- *
- * @brief Ensure that the <ACE_OS_Object_Manager> gets initialized at
- * program startup, and destroyed at program termination.
- *
- * Without ACE_HAS_NONSTATIC_OBJECT_MANAGER, a static instance of this
- * class is created. Therefore, it gets created before main ()
- * is called. And it gets destroyed after main () returns.
- */
-class ACE_OS_Object_Manager_Manager
-{
-public:
- /// Constructor.
- ACE_OS_Object_Manager_Manager (void);
-
- /// Destructor.
- ~ACE_OS_Object_Manager_Manager (void);
-
-private:
- /// Save the main thread ID, so that destruction can be suppressed.
- ACE_thread_t saved_main_thread_id_;
-};
-
-ACE_OS_Object_Manager_Manager::ACE_OS_Object_Manager_Manager (void)
- : saved_main_thread_id_ (ACE_OS::thr_self ())
-{
- // Ensure that the Object_Manager gets initialized before any
- // application threads have been spawned. Because this will be called
- // during construction of static objects, that should always be the
- // case.
- (void) ACE_OS_Object_Manager::instance ();
-}
-
-ACE_OS_Object_Manager_Manager::~ACE_OS_Object_Manager_Manager (void)
-{
- if (ACE_OS::thr_equal (ACE_OS::thr_self (),
- saved_main_thread_id_))
- {
- delete ACE_OS_Object_Manager::instance_;
- ACE_OS_Object_Manager::instance_ = 0;
- }
- // else if this destructor is not called by the main thread, then do
- // not delete the ACE_OS_Object_Manager. That causes problems, on
- // WIN32 at least.
-}
-
-static ACE_OS_Object_Manager_Manager ACE_OS_Object_Manager_Manager_instance;
-#endif /* ! ACE_HAS_NONSTATIC_OBJECT_MANAGER */
-
-// You may be asking yourself, why are we doing this? Well, in winbase.h,
-// MS didn't follow their normal Api_FunctionA and Api_FunctionW style,
-// so we have to #undef their define to get access to the unicode version.
-// And because we don't want to #undef this for the users code, we keep
-// this method in the .cpp file.
-#if defined (ACE_WIN32) && defined (UNICODE) && !defined (ACE_USES_TCHAR)
-#undef GetEnvironmentStrings
-#endif /* ACE_WIN32 && UNICODE !ACE_USES_TCHAR */
-
-ACE_TCHAR *
-ACE_OS::getenvstrings (void)
-{
-#if defined (ACE_LACKS_ENV)
- ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_WIN32)
-# if defined (ACE_USES_WCHAR)
- return ::GetEnvironmentStringsW ();
-# else /* ACE_USES_WCHAR */
- return ::GetEnvironmentStrings ();
-# endif /* ACE_USES_WCHAR */
-#else /* ACE_WIN32 */
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_WIN32 */
-}
-
-#if defined (ACE_HAS_STRPTIME)
-char *
-ACE_OS::strptime (char *buf, const char *format, struct tm *tm)
-{
-#if !defined (ACE_HAS_WINCE)
-#if defined (ACE_LACKS_NATIVE_STRPTIME)
- int bi = 0;
- int fi = 0;
- int percent = 0;
-
- if (!buf || !format)
- return 0;
-
- while (format[fi] != '\0')
- {
- if (percent)
- {
- percent = 0;
- switch (format[fi])
- {
- case '%': // an escaped %
- if (buf[bi] == '%')
- {
- fi++; bi++;
- }
- else
- return buf + bi;
- break;
-
- /* not supported yet: weekday via locale long/short names
- case 'a': / * weekday via locale * /
- / * FALL THROUGH * /
- case 'A': / * long/short names * /
- break;
- */
-
- /* not supported yet:
- case 'b': / * month via locale * /
- / * FALL THROUGH * /
- case 'B': / * long/short names * /
- / * FALL THROUGH * /
- case 'h':
- break;
- */
-
- /* not supported yet:
- case 'c': / * %x %X * /
- break;
- */
-
- /* not supported yet:
- case 'C': / * date & time - * /
- / * locale long format * /
- break;
- */
-
- case 'd': /* day of month (1-31) */
- /* FALL THROUGH */
- case 'e':
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_mday, &bi, &fi, 1, 31))
- return buf + bi;
-
- break;
-
- case 'D': /* %m/%d/%y */
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_mon, &bi, &fi, 1, 12))
- return buf + bi;
-
- fi--;
- tm->tm_mon--;
-
- if (buf[bi] != '/')
- return buf + bi;
-
- bi++;
-
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_mday, &bi, &fi, 1, 31))
- return buf + bi;
-
- fi--;
- if (buf[bi] != '/')
- return buf + bi;
- bi++;
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_year, &bi, &fi, 0, 99))
- return buf + bi;
- if (tm->tm_year < 69)
- tm->tm_year += 100;
- break;
-
- case 'H': /* hour (0-23) */
- /* FALL THROUGH */
- case 'k':
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_hour, &bi, &fi, 0, 23))
- return buf + bi;
- break;
-
- /* not supported yet:
- case 'I': / * hour (0-12) * /
- / * FALL THROUGH * /
- case 'l':
- break;
- */
-
- case 'j': /* day of year (0-366) */
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_yday, &bi, &fi, 1, 366))
- return buf + bi;
-
- tm->tm_yday--;
- break;
-
- case 'm': /* an escaped % */
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_mon, &bi, &fi, 1, 12))
- return buf + bi;
-
- tm->tm_mon--;
- break;
-
- case 'M': /* minute (0-59) */
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_min, &bi, &fi, 0, 59))
- return buf + bi;
-
- break;
-
- /* not supported yet:
- case 'p': / * am or pm for locale * /
- break;
- */
-
- /* not supported yet:
- case 'r': / * %I:%M:%S %p * /
- break;
- */
-
- case 'R': /* %H:%M */
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_hour, &bi, &fi, 0, 23))
- return buf + bi;
-
- fi--;
- if (buf[bi] != ':')
- return buf + bi;
- bi++;
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_min, &bi, &fi, 0, 59))
- return buf + bi;
-
- break;
-
- case 'S': /* seconds (0-61) */
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_sec, &bi, &fi, 0, 61))
- return buf + bi;
- break;
-
- case 'T': /* %H:%M:%S */
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_hour, &bi, &fi, 0, 23))
- return buf + bi;
-
- fi--;
- if (buf[bi] != ':')
- return buf + bi;
- bi++;
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_min, &bi, &fi, 0, 59))
- return buf + bi;
-
- fi--;
- if (buf[bi] != ':')
- return buf + bi;
- bi++;
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_sec, &bi, &fi, 0, 61))
- return buf + bi;
-
- break;
-
- case 'w': /* day of week (0=Sun-6) */
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_wday, &bi, &fi, 0, 6))
- return buf + bi;
-
- break;
-
- /* not supported yet: date, based on locale
- case 'x': / * date, based on locale * /
- break;
- */
-
- /* not supported yet:
- case 'X': / * time, based on locale * /
- break;
- */
-
- case 'y': /* the year - 1900 (0-99) */
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_year, &bi, &fi, 0, 99))
- return buf + bi;
-
- if (tm->tm_year < 69)
- tm->tm_year += 100;
- break;
-
- case 'Y': /* the full year (1999) */
- if (!ACE_OS::strptime_getnum (buf + bi, &tm->tm_year, &bi, &fi, 0, 0))
- return buf + bi;
-
- tm->tm_year -= 1900;
- break;
-
- default: /* unrecognised */
- return buf + bi;
- } /* switch (format[fi]) */
-
- }
- else
- { /* if (percent) */
- if (format[fi] == '%')
- {
- percent = 1;
- fi++;
- }
- else
- {
- if (format[fi] == buf[bi])
- {
- fi++;
- bi++;
- }
- else
- return buf + bi;
- }
- } /* if (percent) */
- } /* while (format[fi] */
-
- return buf + bi;
-#else /* ! ACE_LACKS_NATIVE_STRPTIME */
- return ::strptime (buf,
- format,
- tm);
-#endif /* ! ACE_LACKS_NATIVE_STRPTIME */
-#else /* ! ACE_HAS_WINCE */
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (format);
- ACE_UNUSED_ARG (tm);
-
- ACE_NOTSUP_RETURN (0);
-#endif /* ! ACE_HAS_WINCE */
-}
-
-# if defined (ACE_LACKS_NATIVE_STRPTIME)
-int
-ACE_OS::strptime_getnum (char *buf,
- int *num,
- int *bi,
- int *fi,
- int min,
- int max)
-{
- int i = 0, tmp = 0;
-
- while (isdigit (buf[i]))
- {
- tmp = (tmp * 10) + (buf[i] - '0');
- if (max && (tmp > max))
- return 0;
- i++;
- }
-
- if (tmp < min)
- return 0;
- else if (i)
- {
- *num = tmp;
- (*fi)++;
- *bi += i;
- return 1;
- }
- else
- return 0;
-}
-# endif /* ACE_LACKS_NATIVE_STRPTIME */
-#endif /* ACE_HAS_STRPTIME */
-
-#if !defined (ACE_HAS_WINCE)
-ACE_HANDLE
-ACE_OS::accept (ACE_HANDLE handle,
- struct sockaddr *addr,
- int *addrlen,
- const ACE_Accept_QoS_Params &qos_params)
-{
-# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- ACE_SOCKCALL_RETURN (::WSAAccept ((ACE_SOCKET) handle,
- addr,
- (ACE_SOCKET_LEN *) addrlen,
- (LPCONDITIONPROC) qos_params.qos_condition_callback (),
- qos_params.callback_data ()),
- ACE_HANDLE,
- ACE_INVALID_HANDLE);
-# else
- ACE_UNUSED_ARG (qos_params);
- return ACE_OS::accept (handle,
- addr,
- addrlen);
-# endif /* ACE_HAS_WINSOCK2 */
-}
-
-ACE_HANDLE
-ACE_OS::join_leaf (ACE_HANDLE socket,
- const sockaddr *name,
- int namelen,
- const ACE_QoS_Params &qos_params)
-{
-# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
-
- QOS qos;
- // Construct the WinSock2 QOS structure.
-
- qos.SendingFlowspec = *(qos_params.socket_qos ()->sending_flowspec ());
- qos.ReceivingFlowspec = *(qos_params.socket_qos ()->receiving_flowspec ());
- qos.ProviderSpecific = (WSABUF) qos_params.socket_qos ()->provider_specific ();
-
- ACE_SOCKCALL_RETURN (::WSAJoinLeaf ((ACE_SOCKET) socket,
- name,
- namelen,
- (WSABUF *) qos_params.caller_data (),
- (WSABUF *) qos_params.callee_data (),
- &qos,
- (QOS *) qos_params.group_socket_qos (),
- qos_params.flags ()),
- ACE_HANDLE,
- ACE_INVALID_HANDLE);
-
-# else
- ACE_UNUSED_ARG (socket);
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (namelen);
- ACE_UNUSED_ARG (qos_params);
- ACE_NOTSUP_RETURN (ACE_INVALID_HANDLE);
-# endif /* ACE_HAS_WINSOCK2 */
-}
-
-int
-ACE_OS::ioctl (ACE_HANDLE socket,
- u_long io_control_code,
- void *in_buffer_p,
- u_long in_buffer,
- void *out_buffer_p,
- u_long out_buffer,
- u_long *bytes_returned,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func)
-{
-# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- ACE_SOCKCALL_RETURN (::WSAIoctl ((ACE_SOCKET) socket,
- io_control_code,
- in_buffer_p,
- in_buffer,
- out_buffer_p,
- out_buffer,
- bytes_returned,
- (WSAOVERLAPPED *) overlapped,
- func),
- int,
- SOCKET_ERROR);
-# else
- ACE_UNUSED_ARG (socket);
- ACE_UNUSED_ARG (io_control_code);
- ACE_UNUSED_ARG (in_buffer_p);
- ACE_UNUSED_ARG (in_buffer);
- ACE_UNUSED_ARG (out_buffer_p);
- ACE_UNUSED_ARG (out_buffer);
- ACE_UNUSED_ARG (bytes_returned);
- ACE_UNUSED_ARG (overlapped);
- ACE_UNUSED_ARG (func);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_WINSOCK2 */
-}
-
-
-int
-ACE_OS::ioctl (ACE_HANDLE socket,
- u_long io_control_code,
- ACE_QoS &ace_qos,
- u_long *bytes_returned,
- void *buffer_p,
- u_long buffer,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func)
-{
-# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
-
- QOS qos;
- u_long qos_len = sizeof (QOS);
-
- if (io_control_code == SIO_SET_QOS)
- {
- qos.SendingFlowspec = *(ace_qos.sending_flowspec ());
- qos.ReceivingFlowspec = *(ace_qos.receiving_flowspec ());
- qos.ProviderSpecific = (WSABUF) ace_qos.provider_specific ();
-
- qos_len += ace_qos.provider_specific ().iov_len;
-
- ACE_SOCKCALL_RETURN (::WSAIoctl ((ACE_SOCKET) socket,
- io_control_code,
- &qos,
- qos_len,
- buffer_p,
- buffer,
- bytes_returned,
- (WSAOVERLAPPED *) overlapped,
- func),
- int,
- SOCKET_ERROR);
- }
- else
- {
- u_long dwBufferLen = 0;
-
- // Query for the buffer size.
- int result = ::WSAIoctl ((ACE_SOCKET) socket,
- io_control_code,
- NULL,
- 0,
- &dwBufferLen,
- sizeof (dwBufferLen),
- bytes_returned,
- NULL,
- NULL);
-
-
- if (result == SOCKET_ERROR)
- {
- u_long dwErr = ::WSAGetLastError ();
-
- if (dwErr == WSAEWOULDBLOCK)
- {
- errno = dwErr;
- return -1;
- }
- else
- if (dwErr != WSAENOBUFS)
- {
- errno = dwErr;
- return -1;
- }
- }
-
- char *qos_buf;
- ACE_NEW_RETURN (qos_buf,
- char [dwBufferLen],
- -1);
-
- QOS *qos = ACE_reinterpret_cast (QOS*,
- qos_buf);
-
- result = ::WSAIoctl ((ACE_SOCKET) socket,
- io_control_code,
- NULL,
- 0,
- qos,
- dwBufferLen,
- bytes_returned,
- NULL,
- NULL);
-
- if (result == SOCKET_ERROR)
- return result;
-
- ACE_Flow_Spec sending_flowspec (qos->SendingFlowspec.TokenRate,
- qos->SendingFlowspec.TokenBucketSize,
- qos->SendingFlowspec.PeakBandwidth,
- qos->SendingFlowspec.Latency,
- qos->SendingFlowspec.DelayVariation,
-# if defined(ACE_HAS_WINSOCK2_GQOS)
- qos->SendingFlowspec.ServiceType,
- qos->SendingFlowspec.MaxSduSize,
- qos->SendingFlowspec.MinimumPolicedSize,
-# else /* ACE_HAS_WINSOCK2_GQOS */
- 0,
- 0,
- 0,
-# endif /* ACE_HAS_WINSOCK2_GQOS */
- 0,
- 0);
-
- ACE_Flow_Spec receiving_flowspec (qos->ReceivingFlowspec.TokenRate,
- qos->ReceivingFlowspec.TokenBucketSize,
- qos->ReceivingFlowspec.PeakBandwidth,
- qos->ReceivingFlowspec.Latency,
- qos->ReceivingFlowspec.DelayVariation,
-# if defined(ACE_HAS_WINSOCK2_GQOS)
- qos->ReceivingFlowspec.ServiceType,
- qos->ReceivingFlowspec.MaxSduSize,
- qos->ReceivingFlowspec.MinimumPolicedSize,
-# else /* ACE_HAS_WINSOCK2_GQOS */
- 0,
- 0,
- 0,
-# endif /* ACE_HAS_WINSOCK2_GQOS */
- 0,
- 0);
-
- ace_qos.sending_flowspec (&sending_flowspec);
- ace_qos.receiving_flowspec (&receiving_flowspec);
- ace_qos.provider_specific (*((struct iovec *) (&qos->ProviderSpecific)));
-
-
- return result;
- }
-
-# else
- ACE_UNUSED_ARG (socket);
- ACE_UNUSED_ARG (io_control_code);
- ACE_UNUSED_ARG (ace_qos);
- ACE_UNUSED_ARG (bytes_returned);
- ACE_UNUSED_ARG (buffer_p);
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (overlapped);
- ACE_UNUSED_ARG (func);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_WINSOCK2 */
-}
-
-int
-ACE_OS::connect (ACE_HANDLE handle,
- const sockaddr *addr,
- int addrlen,
- const ACE_QoS_Params &qos_params)
-{
- ACE_OS_TRACE ("ACE_OS::connect");
-# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- ACE_SOCKCALL_RETURN (::WSAConnect ((ACE_SOCKET) handle,
- (const sockaddr *) addr,
- (ACE_SOCKET_LEN) addrlen,
- (WSABUF *) qos_params.caller_data (),
- (WSABUF *) qos_params.callee_data (),
- (QOS *) qos_params.socket_qos (),
- (QOS *) qos_params.group_socket_qos ()),
- int, -1);
-# else
- ACE_UNUSED_ARG (qos_params);
- return ACE_OS::connect (handle,
- (sockaddr *) addr,
- addrlen);
-# endif /* ACE_HAS_WINSOCK2 */
-}
-#endif // ACE_HAS_WINCE
-
-long
-ACE_OS::num_processors (void)
-{
- ACE_OS_TRACE ("ACE_OS::num_processors");
-
-#if defined (ACE_WIN32) || defined (ACE_WIN64)
- SYSTEM_INFO sys_info;
- ::GetSystemInfo (&sys_info);
- return sys_info.dwNumberOfProcessors;
-#elif defined (linux) || defined (sun)
- return ::sysconf (_SC_NPROCESSORS_CONF);
-#else
- ACE_NOTSUP_RETURN (-1);
-#endif
-}
-
-long
-ACE_OS::num_processors_online (void)
-{
- ACE_OS_TRACE ("ACE_OS::num_processors_online");
-
-#if defined (ACE_WIN32) || defined (ACE_WIN64)
- SYSTEM_INFO sys_info;
- ::GetSystemInfo (&sys_info);
- return sys_info.dwNumberOfProcessors;
-#elif defined (linux) || defined (sun)
- return ::sysconf (_SC_NPROCESSORS_ONLN);
-#elif defined (__hpux)
- struct pst_dynamic psd;
- if (::pstat_getdynamic (&psd, sizeof (psd), (size_t) 1, 0) != -1)
- return psd.psd_proc_cnt;
- else
- return -1;
-#else
- ACE_NOTSUP_RETURN (-1);
-#endif
-}
diff --git a/ace/OS.h b/ace/OS.h
deleted file mode 100644
index 81478b21f02..00000000000
--- a/ace/OS.h
+++ /dev/null
@@ -1,7049 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file OS.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author Jesper S. M|ller<stophph@diku.dk>
- * @author and a cast of thousands...
- */
-//=============================================================================
-
-#ifndef ACE_OS_H
-#define ACE_OS_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if defined (ACE_HAS_VIRTUAL_TIME)
-#include /**/ <sys/times.h>
-#endif /*ACE_HAS_VIRTUAL_TIME*/
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Include the split up ACE_OS classes
-#include "ace/OS_Dirent.h"
-#include "ace/OS_String.h"
-#include "ace/OS_Memory.h"
-#include "ace/OS_TLI.h"
-#include "ace/OS_Errno.h"
-
-#include "ace/Time_Value.h"
-
-class ACE_Timeout_Manager;
-
-#if !defined (_SC_AIO_MAX)
-#define _SC_AIO_MAX 1
-#endif /* _SC_AIO_MAX */
-
-// Do not change these values wantonly since GPERF depends on them..
-#define ACE_ASCII_SIZE 128
-#define ACE_EBCDIC_SIZE 256
-
-#if 'a' < 'A'
-#define ACE_HAS_EBCDIC
-#define ACE_STANDARD_CHARACTER_SET_SIZE 256
-#else
-#define ACE_HAS_ASCII
-#define ACE_STANDARD_CHARACTER_SET_SIZE 128
-#endif /* 'a' < 'A' */
-
-# if defined (ACE_PSOS_TM)
-typedef long long longlong_t;
-typedef long id_t;
-# endif /* ACE_PSOS_TM */
-
-// Here are all ACE-specific default constants, needed throughout ACE
-// and its applications. The values can be over written by user
-// specific values in config.h files.
-#include "ace/Default_Constants.h"
-
-# if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- // Control message size to pass a file descriptor.
-# define ACE_BSD_CONTROL_MSG_LEN sizeof (struct cmsghdr) + sizeof (ACE_HANDLE)
-# if defined (ACE_LACKS_CMSG_DATA_MACRO)
-# if defined (ACE_LACKS_CMSG_DATA_MEMBER)
-# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
-# else
-# define CMSG_DATA(cmsg) ((cmsg)->cmsg_data)
-# endif /* ACE_LACKS_CMSG_DATA_MEMBER */
-# endif /* ACE_LACKS_CMSG_DATA_MACRO */
-# endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
-
-
-// Default size of the ACE Reactor.
-# if defined (FD_SETSIZE)
-int const ACE_FD_SETSIZE = FD_SETSIZE;
-# else
-# define ACE_FD_SETSIZE FD_SETSIZE
-# endif /* ACE_FD_SETSIZE */
-
-# if !defined (ACE_DEFAULT_SELECT_REACTOR_SIZE)
-# define ACE_DEFAULT_SELECT_REACTOR_SIZE ACE_FD_SETSIZE
-# endif /* ACE_DEFAULT_SELECT_REACTOR_SIZE */
-
-
-// Here are all ACE-specific global declarations needed throughout
-// ACE.
-#include "ace/Global_Macros.h"
-
-#if !defined (ACE_WIN32) && !defined (INTEGRITY)
-#define ACE_MAX_USERID L_cuserid
-#endif /*!ACE_WIN32*/
-
-// include the ACE min()/max() functions.
-# include "ace/Min_Max.h"
-
-
-// These hooks enable ACE to have all dynamic memory management
-// automatically handled on a per-object basis.
-
-# if defined (ACE_LACKS_KEY_T)
-# if defined (ACE_WIN32)
- // Win32 doesn't use numeric values to name its semaphores, it uses
- // strings!
-typedef char *key_t;
-# else
-typedef int key_t;
-# endif /* ACE_WIN32 */
-# endif /* ACE_LACKS_KEY_T */
-
-///////////////////////////////////////////
-// //
-// NOTE: Please do not add any #includes //
-// before this point. On VxWorks, //
-// vxWorks.h must be #included //
-// first! //
-// //
-///////////////////////////////////////////
-
-# if defined (ACE_PSOS)
-
-# if defined (ACE_LACKS_ASSERT_MACRO)
-# define assert(expr)
-# endif
-
-# if defined (ACE_PSOSIM)
-
-# include /**/ "ace/sys_conf.h" /* system configuration file */
-# include /**/ <psos.h> /* pSOS+ system calls */
-# include /**/ <pna.h> /* pNA+ TCP/IP Network Manager calls */
-
- /* In the *simulator* environment, use unsigned int for size_t */
-# define size_t unsigned int
-
-
- /* include <rpc.h> pRPC+ Remote Procedure Call Library calls */
- /* are not supported by pSOSim */
- /* */
- /* include <phile.h> pHILE+ file system calls are not supported */
- /* by pSOSim *so*, for the time being, we make */
- /* use of UNIX file system headers and then */
- /* when we have time, we wrap UNIX file system */
- /* calls w/ pHILE+ wrappers, and modify ACE to */
- /* use the wrappers under pSOSim */
-
- /* put includes for necessary UNIX file system calls here */
-# include /**/ <sys/stat.h>
-# include /**/ <sys/ioctl.h>
-# include /**/ <sys/sockio.h>
-# include /**/ <netinet/tcp.h>
-
-# define TCP_
-# if ! defined (BUFSIZ)
-# define BUFSIZ 1024
-# endif /* ! defined (BUFSIZ) */
-
-
-# else
-
-# if defined (ACE_PSOS_CANT_USE_SYS_TYPES)
- // these are missing from the pSOS types.h file, and the compiler
- // supplied types.h file collides with the pSOS version.
-# if !defined (ACE_SHOULD_NOT_DEFINE_SYS_TYPES)
- typedef unsigned char u_char;
- typedef unsigned short u_short;
-# endif /* ACE_SHOULD_NOT_DEFINE_SYS_TYPES */
- typedef unsigned int u_int;
-# if !defined (ACE_SHOULD_NOT_DEFINE_SYS_TYPES)
- typedef unsigned long u_long;
-# endif /* ACE_SHOULD_NOT_DEFINE_SYS_TYPES */
-
- // These are defined in types.h included by (among others) pna.h
-# if 0
- typedef unsigned char uchar_t;
- typedef unsigned short ushort_t;
- typedef unsigned int uint_t;
- typedef unsigned long ulong_t;
-# endif /* 0 */
- typedef char * caddr_t;
-
-# if defined (ACE_PSOS_DIAB_PPC)
- // pid_t is defined in sys/types.h
-# if 0
- typedef unsigned long pid_t;
-# endif /* 0 */
-# define ACE_INVALID_PID ((pid_t) ~0)
-# else /* !defined (ACE_PSOS_DIAB_PPC) */
- typedef long pid_t;
-# define ACE_INVALID_PID ((pid_t) -1)
-# endif /* defined (ACE_PSOS_DIAB_PPC) */
-
-// typedef unsigned char wchar_t;
-# endif /* ACE_PSOS_CANT_USE_SYS_TYPES */
-
-# include /**/ "ace/sys_conf.h" /* system configuration file */
-# include /**/ <configs.h> /* includes all pSOS headers */
-// #include /**/ <psos.h> /* pSOS system calls */
-# include /**/ <pna.h> /* pNA+ TCP/IP Network Manager calls */
-# include /**/ <phile.h> /* pHILE+ file system calls */
-// #include /**/ <prepccfg.h> /* pREPC+ file system calls */
-# if defined (ACE_PSOS_DIAB_MIPS)
-# if defined (ACE_PSOS_USES_DIAB_SYS_CALLS)
-# include /**/ <unistd.h> /* Diab Data supplied file system calls */
-# else
-# include /**/ <prepc.h>
-# endif /* ACE_PSOS_USES_DIAB_SYS_CALLS */
-# include /**/ <sys/wait.h> /* Diab Data supplied header file */
-# endif /* ACE_PSOS_DIAB_MIPS */
-
-// This collides with phile.h
-// #include /**/ <sys/stat.h> /* Diab Data supplied header file */
-
-// Some versions have missing preprocessor definitions
-# if !defined (AF_UNIX)
-# define AF_UNIX 0x1
-# endif /* AF_UNIX */
-# define PF_UNIX AF_UNIX
-# define PF_INET AF_INET
-# if !defined (AF_MAX)
-# define AF_MAX AF_INET
-# endif /* AF_MAX */
-# if !defined (IFF_LOOPBACK)
-# define IFF_LOOPBACK IFF_EXTLOOPBACK
-# endif /* IFF_LOOPBACK */
-
- typedef long fd_mask;
-# define IPPORT_RESERVED 1024
-# define IPPORT_USERRESERVED 5000
-
-# if !defined (howmany)
-# define howmany(x, y) (((x)+((y)-1))/(y))
-# endif /* howmany */
-
- extern "C"
- {
- typedef void (* ACE_SignalHandler) (void);
- typedef void (* ACE_SignalHandlerV) (void);
- }
-
-# if !defined(SIG_DFL)
-# define SIG_DFL (ACE_SignalHandler) 0
-# endif /* philabs */
-
-# endif /* defined (ACE_PSOSIM) */
-
-// Some versions of pSOS do not define error numbers, but newer
-// versions do. So, include errno.h and then see which ones are not
-// yet defined.
-# include /**/ <errno.h>
-
-# if !defined (EPERM)
-# define EPERM 1 /* Not super-user */
-# endif /* EPERM */
-# if !defined (ENOENT)
-# define ENOENT 2 /* No such file or directory */
-# endif /* ENOENT */
-# if !defined (ESRCH)
-# define ESRCH 3 /* No such process */
-# endif /* ESRCH */
-# if ! defined (EINTR)
-# define EINTR 4 /* interrupted system call */
-# endif /* EINTR */
-# if !defined (EBADF)
-# define EBADF 9 /* Bad file number */
-# endif /* EBADF */
-# if !defined (EAGAIN)
-# define EAGAIN 11 /* Resource temporarily unavailable */
-# endif /* EAGAIN */
-# if !defined (EWOULDBLOCK)
-# define EWOULDBLOCK EAGAIN /* Blocking resource request would block */
-# endif /* EWOULDBLOCK */
-# if !defined (ENOMEM)
-# define ENOMEM 12 /* Not enough core */
-# endif /* ENOMEM */
-# if !defined (EACCES)
-# define EACCES 13 /* Permission denied */
-# endif /* EACCES */
-# if !defined (EFAULT)
-# define EFAULT 14 /* Bad access */
-# endif /* EFAULT */
-# if !defined (EEXIST)
-# define EEXIST 17 /* File exists */
-# endif /* EEXIST */
-# if !defined (ENOSPC)
-# define ENOSPC 28 /* No space left on device */
-# endif /* ENOSPC */
-# if !defined (EPIPE)
-# define EPIPE 32 /* Broken pipe */
-# endif /* EPIPE */
-# if !defined (ETIME)
-# define ETIME 62 /* timer expired */
-# endif /* ETIME */
-# if !defined (ENAMETOOLONG)
-# define ENAMETOOLONG 78 /* path name is too long */
-# endif /* ENAMETOOLONG */
-# if !defined (ENOSYS)
-# define ENOSYS 89 /* Unsupported file system operation */
-# endif /* ENOSYS */
-# if !defined (EADDRINUSE)
-# define EADDRINUSE 125 /* Address already in use */
-# endif /* EADDRINUSE */
-# if !defined (ENETUNREACH)
-# define ENETUNREACH 128 /* Network is unreachable */
-# endif /* ENETUNREACH */
-# if !defined (EISCONN)
-# define EISCONN 133 /* Socket is already connected */
-# endif /* EISCONN */
-# if !defined (ESHUTDOWN)
-# define ESHUTDOWN 143 /* Can't send after socket shutdown */
-# endif /* ESHUTDOWN */
-# if !defined (ECONNREFUSED)
-# define ECONNREFUSED 146 /* Connection refused */
-# endif /* ECONNREFUSED */
-# if !defined (EINPROGRESS)
-# define EINPROGRESS 150 /* operation now in progress */
-# endif /* EINPROGRESS */
-# if !defined (ERRMAX)
-# define ERRMAX 151 /* Last error number */
-# endif /* ERRMAX */
-
-# if ! defined (NSIG)
-# define NSIG 32
-# endif /* NSIG */
-
-# if ! defined (TCP_NODELAY)
-# define TCP_NODELAY 1
-# endif /* TCP_NODELAY */
-
-// For general purpose portability
-
-# define ACE_BITS_PER_ULONG (8 * sizeof (u_long))
-
-typedef u_long ACE_idtype_t;
-typedef u_long ACE_id_t;
-# define ACE_SELF (0)
-typedef u_long ACE_pri_t;
-
-// pHILE+ calls the DIR struct XDIR instead
-# if !defined (ACE_PSOS_DIAB_PPC)
-typedef XDIR ACE_DIR;
-# endif /* !defined (ACE_PSOS_DIAB_PPC) */
-
-// Use pSOS semaphores, wrapped . . .
-typedef struct
-{
- /// Semaphore handle. This is allocated by pSOS.
- u_long sema_;
-
- /// Name of the semaphore: really a 32 bit number to pSOS
- char name_[4];
-} ACE_sema_t;
-
-// Used for dynamic linking.
-# if !defined (ACE_DEFAULT_SVC_CONF)
-# if (ACE_USES_CLASSIC_SVC_CONF == 1)
-# define ACE_DEFAULT_SVC_CONF "./svc.conf"
-# else
-# define ACE_DEFAULT_SVC_CONF "./svc.conf.xml"
-# endif /* ACE_USES_CLASSIC_SVC_CONF ==1 */
-# endif /* ACE_DEFAULT_SVC_CONF */
-
-# if !defined (ACE_DEFAULT_SEM_KEY)
-# define ACE_DEFAULT_SEM_KEY 1234
-# endif /* ACE_DEFAULT_SEM_KEY */
-
-# define ACE_STDIN 0
-# define ACE_STDOUT 1
-# define ACE_STDERR 2
-
-# define ACE_DIRECTORY_SEPARATOR_STR_A "/"
-# define ACE_DIRECTORY_SEPARATOR_CHAR_A '/'
-# define ACE_PLATFORM_A "pSOS"
-# define ACE_PLATFORM_EXE_SUFFIX_A ""
-
-# define ACE_DLL_SUFFIX ACE_LIB_TEXT (".so")
-# define ACE_DLL_PREFIX ACE_LIB_TEXT ("lib")
-# define ACE_LD_SEARCH_PATH ACE_LIB_TEXT ("LD_LIBRARY_PATH")
-# define ACE_LD_SEARCH_PATH_SEPARATOR_STR ACE_LIB_TEXT (":")
-# define ACE_LOGGER_KEY ACE_LIB_TEXT ("/tmp/server_daemon")
-
-# define ACE_MAX_DEFAULT_PORT 65535
-
-# if ! defined(MAXPATHLEN)
-# define MAXPATHLEN 1024
-# endif /* MAXPATHLEN */
-
-# if ! defined(MAXNAMLEN)
-# define MAXNAMLEN 255
-# endif /* MAXNAMLEN */
-
-# if defined (ACE_LACKS_MMAP)
-# define PROT_READ 0
-# define PROT_WRITE 0
-# define PROT_EXEC 0
-# define PROT_NONE 0
-# define PROT_RDWR 0
-# define MAP_PRIVATE 0
-# define MAP_SHARED 0
-# define MAP_FIXED 0
-# endif /* ACE_LACKS_MMAP */
-
-typedef int ACE_exitcode;
-
-typedef ACE_HANDLE ACE_SHLIB_HANDLE;
-# define ACE_SHLIB_INVALID_HANDLE ACE_INVALID_HANDLE
-# define ACE_DEFAULT_SHLIB_MODE 0
-
-# define ACE_INVALID_SEM_KEY -1
-
-struct hostent {
- char *h_name; /* official name of host */
- char **h_aliases; /* alias list */
- int h_addrtype; /* host address type */
- int h_length; /* address length */
- char **h_addr_list; /* (first, only) address from name server */
-# define h_addr h_addr_list[0] /* the first address */
-};
-
-struct servent {
- char *s_name; /* official service name */
- char **s_aliases; /* alias list */
- int s_port; /* port # */
- char *s_proto; /* protocol to use */
-};
-
-# define ACE_SEH_TRY if (1)
-# define ACE_SEH_EXCEPT(X) while (0)
-# define ACE_SEH_FINALLY if (1)
-
-# if !defined (LPSECURITY_ATTRIBUTES)
-# define LPSECURITY_ATTRIBUTES int
-# endif /* !defined LPSECURITY_ATTRIBUTES */
-# if !defined (GENERIC_READ)
-# define GENERIC_READ 0
-# endif /* !defined GENERIC_READ */
-# if !defined (FILE_SHARE_READ)
-# define FILE_SHARE_READ 0
-# endif /* !defined FILE_SHARE_READ */
-# if !defined (OPEN_EXISTING)
-# define OPEN_EXISTING 0
-# endif /* !defined OPEN_EXISTING */
-# if !defined (FILE_ATTRIBUTE_NORMAL)
-# define FILE_ATTRIBUTE_NORMAL 0
-# endif /* !defined FILE_ATTRIBUTE_NORMAL */
-# if !defined (MAXIMUM_WAIT_OBJECTS)
-# define MAXIMUM_WAIT_OBJECTS 0
-# endif /* !defined MAXIMUM_WAIT_OBJECTS */
-# if !defined (FILE_FLAG_OVERLAPPED)
-# define FILE_FLAG_OVERLAPPED 0
-# endif /* !defined FILE_FLAG_OVERLAPPED */
-# if !defined (FILE_FLAG_SEQUENTIAL_SCAN)
-# define FILE_FLAG_SEQUENTIAL_SCAN 0
-# endif /* !defined FILE_FLAG_SEQUENTIAL_SCAN */
-# if !defined(FILE_FLAG_WRITE_THROUGH)
-# define FILE_FLAG_WRITE_THROUGH 0
-# endif /* !defined FILE_FLAG_WRITE_THROUGH */
-# if !defined(PIPE_WAIT)
-# define PIPE_WAIT 0
-# endif /* !defined PIPE_WAIT */
-# if !defined(PIPE_NOWAIT)
-# define PIPE_NOWAIT 0
-# endif /* !defined PIPE_WAIT */
-# if !defined(PIPE_READMODE_BYTE)
-# define PIPE_READMODE_BYTE 0
-# endif /* !defined PIPE_READMODE_BYTE */
-# if !defined(PIPE_READMODE_MESSAGE)
-# define PIPE_READMODE_MESSAGE 0
-# endif /* !defined PIPE_READMODE_MESSAGE */
-# if !defined(PIPE_TYPE_BYTE)
-# define PIPE_TYPE_BYTE 0
-# endif /* !defined PIPE_TYPE_BYTE */
-# if !defined(PIPE_TYPE_MESSAGE)
-# define PIPE_TYPE_MESSAGE 0
-# endif /* !defined PIPE_TYPE_MESSAGE */
-
-struct ACE_OVERLAPPED
-{
- u_long Internal;
- u_long InternalHigh;
- u_long Offset;
- u_long OffsetHigh;
- ACE_HANDLE hEvent;
-};
-
-# if !defined (USER_INCLUDE_SYS_TIME_TM)
-# if defined (ACE_PSOS_DIAB_PPC)
-typedef struct timespec timespec_t;
-# else /* ! defined (ACE_PSOS_DIAB_PPC) */
-typedef struct timespec
-{
- time_t tv_sec; // Seconds
- long tv_nsec; // Nanoseconds
-} timespec_t;
-# endif /* defined (ACE_PSOS_DIAB_PPC) */
-# endif /* !defined (USER_INCLUDE_SYS_TIME_TM) */
-
-#if defined (ACE_PSOS_HAS_TIME)
-
-// Use pSOS time, wrapped . . .
-class ACE_OS_Export ACE_PSOS_Time_t
-{
-public:
- /// default ctor: date, time, and ticks all zeroed.
- ACE_PSOS_Time_t (void);
-
- /// ctor from a timespec_t
- ACE_PSOS_Time_t (const timespec_t& t);
-
- /// type cast operator (to a timespec_t)
- operator timespec_t ();
-
- /// static member function to get current system time
- static u_long get_system_time (ACE_PSOS_Time_t& t);
-
- /// static member function to set current system time
- static u_long set_system_time (const ACE_PSOS_Time_t& t);
-
-# if defined (ACE_PSOSIM)
- /// static member function to initialize system time, using UNIX calls
- static u_long init_simulator_time (void);
-# endif /* ACE_PSOSIM */
-
- /// max number of ticks supported in a single system call
- static const u_long max_ticks;
-private:
- // = Constants for prying info out of the pSOS time encoding.
- static const u_long year_mask;
- static const u_long month_mask;
- static const u_long day_mask;
- static const u_long hour_mask;
- static const u_long minute_mask;
- static const u_long second_mask;
- static const int year_shift;
- static const int month_shift;
- static const int hour_shift;
- static const int minute_shift;
- static const int year_origin;
- static const int month_origin;
-
- // error codes
- static const u_long err_notime; // system time not set
- static const u_long err_illdate; // date out of range
- static const u_long err_illtime; // time out of range
- static const u_long err_illticks; // ticks out of range
-
- /// date : year in bits 31-16, month in bits 15-8, day in bits 7-0
- u_long date_;
-
- /// time : hour in bits 31-16, minutes in bits 15-8, seconds in bits 7-0
- u_long time_;
-
- /// ticks: number of system clock ticks (KC_TICKS2SEC-1 max)
- u_long ticks_;
-} ;
-#endif /* ACE_PSOS_HAS_TIME */
-
-# endif /* defined (ACE_PSOS) */
-
-# if defined (ACE_HAS_CHARPTR_SPRINTF)
-# define ACE_SPRINTF_ADAPTER(X) ::strlen (X)
-# else
-# define ACE_SPRINTF_ADAPTER(X) X
-# endif /* ACE_HAS_CHARPTR_SPRINTF */
-
-// Default address for shared memory mapped files and SYSV shared memory
-// (defaults to 64 M).
-# if !defined (ACE_DEFAULT_BASE_ADDR)
-# define ACE_DEFAULT_BASE_ADDR ((char *) (64 * 1024 * 1024))
-# endif /* ACE_DEFAULT_BASE_ADDR */
-
-// This fudge factor can be overriden for timers that need it, such as on
-// Solaris, by defining the ACE_TIMER_SKEW symbol in the appropriate config
-// header.
-#if !defined (ACE_TIMER_SKEW)
-# define ACE_TIMER_SKEW 0
-#endif /* ACE_TIMER_SKEW */
-
-// This needs to go here *first* to avoid problems with AIX.
-# if defined (ACE_HAS_PTHREADS)
-extern "C" {
-# define ACE_DONT_INCLUDE_ACE_SIGNAL_H
-# include /**/ <signal.h>
-# undef ACE_DONT_INCLUDE_ACE_SIGNAL_H
-# include /**/ <pthread.h>
-# if defined (DIGITAL_UNIX)
-# define pthread_self __pthread_self
-extern "C" pthread_t pthread_self (void);
-# endif /* DIGITAL_UNIX */
-}
-# if defined (HPUX_10)
-// HP-UX 10 needs to see cma_sigwait, and since _CMA_NOWRAPPERS_ is defined,
-// this header does not get included from pthreads.h.
-# include /**/ <dce/cma_sigwait.h>
-# endif /* HPUX_10 */
-# endif /* ACE_HAS_PTHREADS */
-
-// There are a lot of threads-related macro definitions in the config files.
-// They came in at different times and from different places and platform
-// requirements as threads evolved. They are probably not all needed - some
-// overlap or are otherwise confused. This is an attempt to start
-// straightening them out.
-# if defined (ACE_HAS_PTHREADS_STD) /* POSIX.1c threads (pthreads) */
- // ... and 2-parameter asctime_r and ctime_r
-# if !defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R) && \
- !defined (ACE_HAS_STHREADS)
-# define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-# endif
-# endif /* ACE_HAS_PTHREADS_STD */
-
-// By default we perform no tracing on the OS layer, otherwise the
-// coupling between the OS layer and Log_Msg is too tight. But the
-// application can override the default if they wish to.
-# if !defined(ACE_OS_TRACE)
-# define ACE_OS_TRACE(X)
-# endif /* ACE_OS_TRACE */
-
-# if defined (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB) && \
- (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB != 0)
-using std::time_t;
-using std::tm;
-# if defined (ACE_WIN32)
-using std::_timezone;
-# else
-using std::timezone;
-# endif
-using std::difftime;
-# endif /* ACE_USES_STD_NAMESPACE_FOR_STDC_LIB */
-
-# if !defined (ACE_HAS_CLOCK_GETTIME) && !(defined (_CLOCKID_T_) || defined (_CLOCKID_T))
-typedef int clockid_t;
-# if !defined (CLOCK_REALTIME)
-# define CLOCK_REALTIME 0
-# endif /* CLOCK_REALTIME */
-# endif /* ! ACE_HAS_CLOCK_GETTIME && ! _CLOCKID_T_ */
-
-#if !defined (E2BIG)
-# define E2BIG 7
-#endif /* E2BIG */
-
-/**
- * @class ACE_Countdown_Time
- *
- * @brief Keeps track of the amount of elapsed time.
- *
- * This class has a side-effect on the <max_wait_time> -- every
- * time the <stop> method is called the <max_wait_time> is
- * updated.
- */
-class ACE_OS_Export ACE_Countdown_Time
-{
-public:
- // = Initialization and termination methods.
- /// Cache the <max_wait_time> and call <start>.
- ACE_Countdown_Time (ACE_Time_Value *max_wait_time);
-
- /// Call <stop>.
- ~ACE_Countdown_Time (void);
-
- /// Cache the current time and enter a start state.
- int start (void);
-
- /// Subtract the elapsed time from max_wait_time_ and enter a stopped
- /// state.
- int stop (void);
-
- /// Calls stop and then start. max_wait_time_ is modified by the
- /// call to stop.
- int update (void);
-
- /// Returns 1 if we've already been stopped, else 0.
- int stopped (void) const;
-
-private:
- /// Maximum time we were willing to wait.
- ACE_Time_Value *max_wait_time_;
-
- /// Beginning of the start time.
- ACE_Time_Value start_time_;
-
- /// Keeps track of whether we've already been stopped.
- int stopped_;
-};
-
-# if defined (ACE_HAS_USING_KEYWORD)
-# define ACE_USING using
-# else
-# define ACE_USING
-# endif /* ACE_HAS_USING_KEYWORD */
-
-# if defined (ACE_HAS_TYPENAME_KEYWORD)
-# define ACE_TYPENAME typename
-# else
-# define ACE_TYPENAME
-# endif /* ACE_HAS_TYPENAME_KEYWORD */
-
-# if defined (ACE_HAS_STD_TEMPLATE_SPECIALIZATION)
-# define ACE_TEMPLATE_SPECIALIZATION template<>
-# else
-# define ACE_TEMPLATE_SPECIALIZATION
-# endif /* ACE_HAS_STD_TEMPLATE_SPECIALIZATION */
-
-# if defined (ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION)
-# define ACE_TEMPLATE_METHOD_SPECIALIZATION template<>
-# else
-# define ACE_TEMPLATE_METHOD_SPECIALIZATION
-# endif /* ACE_HAS_STD_TEMPLATE_SPECIALIZATION */
-
-// The following is necessary since many C++ compilers don't support
-// typedef'd types inside of classes used as formal template
-// arguments... ;-(. Luckily, using the C++ preprocessor I can hide
-// most of this nastiness!
-
-# if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-
-// Handle ACE_Message_Queue.
-# define ACE_SYNCH_DECL class _ACE_SYNCH
-# define ACE_SYNCH_USE _ACE_SYNCH
-# define ACE_SYNCH_MUTEX_T ACE_TYPENAME _ACE_SYNCH::MUTEX
-# define ACE_SYNCH_CONDITION_T ACE_TYPENAME _ACE_SYNCH::CONDITION
-# define ACE_SYNCH_SEMAPHORE_T ACE_TYPENAME _ACE_SYNCH::SEMAPHORE
-
-// Handle ACE_Malloc*
-# define ACE_MEM_POOL_1 class _ACE_MEM_POOL
-# define ACE_MEM_POOL_2 _ACE_MEM_POOL
-# define ACE_MEM_POOL _ACE_MEM_POOL
-# define ACE_MEM_POOL_OPTIONS ACE_TYPENAME _ACE_MEM_POOL::OPTIONS
-
-// Handle ACE_Svc_Handler
-# define ACE_PEER_STREAM_1 class _ACE_PEER_STREAM
-# define ACE_PEER_STREAM_2 _ACE_PEER_STREAM
-# define ACE_PEER_STREAM _ACE_PEER_STREAM
-# define ACE_PEER_STREAM_ADDR ACE_TYPENAME _ACE_PEER_STREAM::PEER_ADDR
-
-// Handle ACE_Acceptor
-# define ACE_PEER_ACCEPTOR_1 class _ACE_PEER_ACCEPTOR
-# define ACE_PEER_ACCEPTOR_2 _ACE_PEER_ACCEPTOR
-# define ACE_PEER_ACCEPTOR _ACE_PEER_ACCEPTOR
-# define ACE_PEER_ACCEPTOR_ADDR ACE_TYPENAME _ACE_PEER_ACCEPTOR::PEER_ADDR
-
-// Handle ACE_Connector
-# define ACE_PEER_CONNECTOR_1 class _ACE_PEER_CONNECTOR
-# define ACE_PEER_CONNECTOR_2 _ACE_PEER_CONNECTOR
-# define ACE_PEER_CONNECTOR _ACE_PEER_CONNECTOR
-# define ACE_PEER_CONNECTOR_ADDR ACE_TYPENAME _ACE_PEER_CONNECTOR::PEER_ADDR
-# if !defined(ACE_HAS_TYPENAME_KEYWORD)
-# define ACE_PEER_CONNECTOR_ADDR_ANY ACE_PEER_CONNECTOR_ADDR::sap_any
-# else
- //
- // If the compiler supports 'typename' we cannot use
- //
- // PEER_CONNECTOR::PEER_ADDR::sap_any
- //
- // because PEER_CONNECTOR::PEER_ADDR is not considered a type. But:
- //
- // typename PEER_CONNECTOR::PEER_ADDR::sap_any
- //
- // will not work either, because now we are declaring sap_any a
- // type, further:
- //
- // (typename PEER_CONNECTOR::PEER_ADDR)::sap_any
- //
- // is considered a casting expression. All I can think of is using a
- // typedef, I tried PEER_ADDR but that was a source of trouble on
- // some platforms. I will try:
- //
-# define ACE_PEER_CONNECTOR_ADDR_ANY ACE_PEER_ADDR_TYPEDEF::sap_any
-# endif /* ACE_HAS_TYPENAME_KEYWORD */
-
-// Handle ACE_SOCK_*
-# define ACE_SOCK_ACCEPTOR ACE_SOCK_Acceptor
-# define ACE_SOCK_CONNECTOR ACE_SOCK_Connector
-# define ACE_SOCK_STREAM ACE_SOCK_Stream
-
-// Handle ACE_MEM_*
-# define ACE_MEM_ACCEPTOR ACE_MEM_Acceptor
-# define ACE_MEM_CONNECTOR ACE_MEM_Connector
-# define ACE_MEM_STREAM ACE_MEM_Stream
-
-// Handle ACE_LSOCK_*
-# define ACE_LSOCK_ACCEPTOR ACE_LSOCK_Acceptor
-# define ACE_LSOCK_CONNECTOR ACE_LSOCK_Connector
-# define ACE_LSOCK_STREAM ACE_LSOCK_Stream
-
-// Handle ACE_TLI_*
-# define ACE_TLI_ACCEPTOR ACE_TLI_Acceptor
-# define ACE_TLI_CONNECTOR ACE_TLI_Connector
-# define ACE_TLI_STREAM ACE_TLI_Stream
-
-// Handle ACE_SPIPE_*
-# define ACE_SPIPE_ACCEPTOR ACE_SPIPE_Acceptor
-# define ACE_SPIPE_CONNECTOR ACE_SPIPE_Connector
-# define ACE_SPIPE_STREAM ACE_SPIPE_Stream
-
-// Handle ACE_UPIPE_*
-# define ACE_UPIPE_ACCEPTOR ACE_UPIPE_Acceptor
-# define ACE_UPIPE_CONNECTOR ACE_UPIPE_Connector
-# define ACE_UPIPE_STREAM ACE_UPIPE_Stream
-
-// Handle ACE_FILE_*
-# define ACE_FILE_CONNECTOR ACE_FILE_Connector
-# define ACE_FILE_STREAM ACE_FILE_IO
-
-// Handle ACE_*_Memory_Pool.
-# define ACE_MMAP_MEMORY_POOL ACE_MMAP_Memory_Pool
-# define ACE_LITE_MMAP_MEMORY_POOL ACE_Lite_MMAP_Memory_Pool
-# define ACE_SBRK_MEMORY_POOL ACE_Sbrk_Memory_Pool
-# define ACE_SHARED_MEMORY_POOL ACE_Shared_Memory_Pool
-# define ACE_LOCAL_MEMORY_POOL ACE_Local_Memory_Pool
-# define ACE_PAGEFILE_MEMORY_POOL ACE_Pagefile_Memory_Pool
-
-# else /* TEMPLATES are broken in some form or another (i.e., most C++ compilers) */
-
-// Handle ACE_Message_Queue.
-# if defined (ACE_HAS_OPTIMIZED_MESSAGE_QUEUE)
-# define ACE_SYNCH_DECL class _ACE_SYNCH_MUTEX_T, class _ACE_SYNCH_CONDITION_T, class _ACE_SYNCH_SEMAPHORE_T
-# define ACE_SYNCH_USE _ACE_SYNCH_MUTEX_T, _ACE_SYNCH_CONDITION_T, _ACE_SYNCH_SEMAPHORE_T
-# else
-# define ACE_SYNCH_DECL class _ACE_SYNCH_MUTEX_T, class _ACE_SYNCH_CONDITION_T
-# define ACE_SYNCH_USE _ACE_SYNCH_MUTEX_T, _ACE_SYNCH_CONDITION_T
-# endif /* ACE_HAS_OPTIMIZED_MESSAGE_QUEUE */
-# define ACE_SYNCH_MUTEX_T _ACE_SYNCH_MUTEX_T
-# define ACE_SYNCH_CONDITION_T _ACE_SYNCH_CONDITION_T
-# define ACE_SYNCH_SEMAPHORE_T _ACE_SYNCH_SEMAPHORE_T
-
-// Handle ACE_Malloc*
-# define ACE_MEM_POOL_1 class _ACE_MEM_POOL, class _ACE_MEM_POOL_OPTIONS
-# define ACE_MEM_POOL_2 _ACE_MEM_POOL, _ACE_MEM_POOL_OPTIONS
-# define ACE_MEM_POOL _ACE_MEM_POOL
-# define ACE_MEM_POOL_OPTIONS _ACE_MEM_POOL_OPTIONS
-
-// Handle ACE_Svc_Handler
-# define ACE_PEER_STREAM_1 class _ACE_PEER_STREAM, class _ACE_PEER_ADDR
-# define ACE_PEER_STREAM_2 _ACE_PEER_STREAM, _ACE_PEER_ADDR
-# define ACE_PEER_STREAM _ACE_PEER_STREAM
-# define ACE_PEER_STREAM_ADDR _ACE_PEER_ADDR
-
-// Handle ACE_Acceptor
-# define ACE_PEER_ACCEPTOR_1 class _ACE_PEER_ACCEPTOR, class _ACE_PEER_ADDR
-# define ACE_PEER_ACCEPTOR_2 _ACE_PEER_ACCEPTOR, _ACE_PEER_ADDR
-# define ACE_PEER_ACCEPTOR _ACE_PEER_ACCEPTOR
-# define ACE_PEER_ACCEPTOR_ADDR _ACE_PEER_ADDR
-
-// Handle ACE_Connector
-# define ACE_PEER_CONNECTOR_1 class _ACE_PEER_CONNECTOR, class _ACE_PEER_ADDR
-# define ACE_PEER_CONNECTOR_2 _ACE_PEER_CONNECTOR, _ACE_PEER_ADDR
-# define ACE_PEER_CONNECTOR _ACE_PEER_CONNECTOR
-# define ACE_PEER_CONNECTOR_ADDR _ACE_PEER_ADDR
-# define ACE_PEER_CONNECTOR_ADDR_ANY ACE_PEER_CONNECTOR_ADDR::sap_any
-
-// Handle ACE_SOCK_*
-# define ACE_SOCK_ACCEPTOR ACE_SOCK_Acceptor, ACE_INET_Addr
-# define ACE_SOCK_CONNECTOR ACE_SOCK_Connector, ACE_INET_Addr
-# define ACE_SOCK_STREAM ACE_SOCK_Stream, ACE_INET_Addr
-
-// Handle ACE_MEM_*
-# define ACE_MEM_ACCEPTOR ACE_MEM_Acceptor, ACE_MEM_Addr
-# define ACE_MEM_CONNECTOR ACE_MEM_Connector, ACE_INET_Addr
-# define ACE_MEM_STREAM ACE_MEM_Stream, ACE_INET_Addr
-
-// Handle ACE_LSOCK_*
-# define ACE_LSOCK_ACCEPTOR ACE_LSOCK_Acceptor, ACE_UNIX_Addr
-# define ACE_LSOCK_CONNECTOR ACE_LSOCK_Connector, ACE_UNIX_Addr
-# define ACE_LSOCK_STREAM ACE_LSOCK_Stream, ACE_UNIX_Addr
-
-// Handle ACE_TLI_*
-# define ACE_TLI_ACCEPTOR ACE_TLI_Acceptor, ACE_INET_Addr
-# define ACE_TLI_CONNECTOR ACE_TLI_Connector, ACE_INET_Addr
-# define ACE_TLI_STREAM ACE_TLI_Stream, ACE_INET_Addr
-
-// Handle ACE_SPIPE_*
-# define ACE_SPIPE_ACCEPTOR ACE_SPIPE_Acceptor, ACE_SPIPE_Addr
-# define ACE_SPIPE_CONNECTOR ACE_SPIPE_Connector, ACE_SPIPE_Addr
-# define ACE_SPIPE_STREAM ACE_SPIPE_Stream, ACE_SPIPE_Addr
-
-// Handle ACE_UPIPE_*
-# define ACE_UPIPE_ACCEPTOR ACE_UPIPE_Acceptor, ACE_SPIPE_Addr
-# define ACE_UPIPE_CONNECTOR ACE_UPIPE_Connector, ACE_SPIPE_Addr
-# define ACE_UPIPE_STREAM ACE_UPIPE_Stream, ACE_SPIPE_Addr
-
-// Handle ACE_FILE_*
-# define ACE_FILE_CONNECTOR ACE_FILE_Connector, ACE_FILE_Addr
-# define ACE_FILE_STREAM ACE_FILE_IO, ACE_FILE_Addr
-
-// Handle ACE_*_Memory_Pool.
-# define ACE_MMAP_MEMORY_POOL ACE_MMAP_Memory_Pool, ACE_MMAP_Memory_Pool_Options
-# define ACE_LITE_MMAP_MEMORY_POOL ACE_Lite_MMAP_Memory_Pool, ACE_MMAP_Memory_Pool_Options
-# define ACE_SBRK_MEMORY_POOL ACE_Sbrk_Memory_Pool, ACE_Sbrk_Memory_Pool_Options
-# define ACE_SHARED_MEMORY_POOL ACE_Shared_Memory_Pool, ACE_Shared_Memory_Pool_Options
-# define ACE_LOCAL_MEMORY_POOL ACE_Local_Memory_Pool, ACE_Local_Memory_Pool_Options
-# define ACE_PAGEFILE_MEMORY_POOL ACE_Pagefile_Memory_Pool, ACE_Pagefile_Memory_Pool_Options
-# endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
-// These two are only for backward compatibility. You should avoid
-// using them if not necessary.
-# define ACE_SYNCH_1 ACE_SYNCH_DECL
-# define ACE_SYNCH_2 ACE_SYNCH_USE
-
-// For Win32 compatibility...
-# if !defined (ACE_WSOCK_VERSION)
-# define ACE_WSOCK_VERSION 0, 0
-# endif /* ACE_WSOCK_VERSION */
-
-# if defined (ACE_HAS_BROKEN_CTIME)
-# undef ctime
-# endif /* ACE_HAS_BROKEN_CTIME */
-
-/// Service Objects, i.e., objects dynamically loaded via the service
-/// configurator, must provide a destructor function with the
-/// following prototype to perform object cleanup.
-typedef void (*ACE_Service_Object_Exterminator)(void *);
-
-/** @name Service Configurator macros
- *
- * The following macros are used to define helper objects used in
- * ACE's Service Configurator. This is an implementation of the
- * Service Configurator pattern:
- *
- * http://www.cs.wustl.edu/~schmidt/PDF/SvcConf.pdf
- *
- * The intent of this pattern is to allow developers to dynamically
- * load and configure services into a system. With a little help from
- * this macros statically linked services can also be dynamically
- * configured.
- *
- * More details about this component are available in the documentation
- * of the ACE_Service_Configurator class and also
- * ACE_Dynamic_Service.
- *
- * Notice that in all the macros the SERVICE_CLASS parameter must be
- * the name of a class derived from ACE_Service_Object.
- */
-//@{
-/// Declare a the data structure required to register a statically
-/// linked service into the service configurator.
-/**
- * The macro should be used in the header file where the service is
- * declared, its only argument is usually the name of the class that
- * implements the service.
- *
- * @param SERVICE_CLASS The name of the class implementing the
- * service.
- */
-# define ACE_STATIC_SVC_DECLARE(SERVICE_CLASS) \
-extern ACE_Static_Svc_Descriptor ace_svc_desc_##SERVICE_CLASS ;
-
-/// As ACE_STATIC_SVC_DECLARE, but using an export macro for NT
-/// compilers.
-/**
- * NT compilers require the use of explicit directives to export and
- * import symbols from a DLL. If you need to define a service in a
- * dynamic library you should use this version instead.
- * Normally ACE uses a macro to inject the correct export/import
- * directives on NT. Naturally it also the macro expands to a blank
- * on platforms that do not require such directives.
- * The first argument (EXPORT_NAME) is the prefix for this export
- * macro, the full name is formed by appending _Export.
- * ACE provides tools to generate header files that define the macro
- * correctly on all platforms, please see
- * $ACE_ROOT/bin/generate_export_file.pl
- *
- * @param EXPORT_NAME The export macro name prefix.
- * @param SERVICE_CLASS The name of the class implementing the service.
- */
-#define ACE_STATIC_SVC_DECLARE_EXPORT(EXPORT_NAME,SERVICE_CLASS) \
-extern EXPORT_NAME##_Export ACE_Static_Svc_Descriptor ace_svc_desc_##SERVICE_CLASS;
-
-/// Define the data structure used to register a statically linked
-/// service into the Service Configurator.
-/**
- * The service configurator requires several arguments to build and
- * control an statically linked service, including its name, the
- * factory function used to construct the service, and some flags.
- * All those parameters are configured in a single structure, an
- * instance of this structure is statically initialized using the
- * following macro.
- *
- * @param SERVICE_CLASS The name of the class that implements the
- * service, must be derived (directly or indirectly) from
- * ACE_Service_Object.
- * @param NAME The name for this service, this name is used by the
- * service configurator to match configuration options provided in
- * the svc.conf file.
- * @param TYPE The type of object. Objects can be streams or service
- * objects. Please read the ACE_Service_Configurator and ASX
- * documentation for more details.
- * @param FN The name of the factory function, usually the
- * ACE_SVC_NAME macro can be used to generate the name. The
- * factory function is often defined using ACE_FACTORY_DECLARE and
- * ACE_FACTORY_DEFINE.
- * @param FLAGS Flags to control the ownership and lifecycle of the
- * object. Please read the ACE_Service_Configurator documentation
- * for more details.
- * @param ACTIVE If not zero then a thread will be dedicate to the
- * service. Please read the ACE_Service_Configurator documentation
- * for more details.
- */
-#define ACE_STATIC_SVC_DEFINE(SERVICE_CLASS, NAME, TYPE, FN, FLAGS, ACTIVE) \
-ACE_Static_Svc_Descriptor ace_svc_desc_##SERVICE_CLASS = { NAME, TYPE, FN, FLAGS, ACTIVE };
-
-/// Automatically register a service with the service configurator
-/**
- * In some applications the services must be automatically registered
- * with the service configurator, before main() starts.
- * The ACE_STATIC_SVC_REQUIRE macro defines a class whose constructor
- * register the service, it also defines a static instance of that
- * class to ensure that the service is registered before main.
- *
- * On platforms that lack adequate support for static C++ objects the
- * macro ACE_STATIC_SVC_REGISTER can be used to explicitly register
- * the service.
- *
- * @todo One class per-Service_Object seems wasteful. It should be
- * possible to define a single class and re-use it for all the
- * service objects, just by passing the Service_Descriptor as an
- * argument to the constructor.
- */
-#if defined(ACE_LACKS_STATIC_CONSTRUCTORS)
-# define ACE_STATIC_SVC_REQUIRE(SERVICE_CLASS)\
-class ACE_Static_Svc_##SERVICE_CLASS {\
-public:\
- ACE_Static_Svc_##SERVICE_CLASS() { \
- ACE_Service_Config::static_svcs ()->insert (\
- &ace_svc_desc_##SERVICE_CLASS); \
- } \
-};
-#define ACE_STATIC_SVC_REGISTER(SERVICE_CLASS)\
-ACE_Static_Svc_##SERVICE_CLASS ace_static_svc_##SERVICE_CLASS
-
-#else /* !ACE_LACKS_STATIC_CONSTRUCTORS */
-
-# define ACE_STATIC_SVC_REQUIRE(SERVICE_CLASS)\
-class ACE_Static_Svc_##SERVICE_CLASS {\
-public:\
- ACE_Static_Svc_##SERVICE_CLASS() { \
- ACE_Service_Config::static_svcs ()->insert (\
- &ace_svc_desc_##SERVICE_CLASS); \
- } \
-};\
-static ACE_Static_Svc_##SERVICE_CLASS ace_static_svc_##SERVICE_CLASS;
-#define ACE_STATIC_SVC_REGISTER(SERVICE_CLASS) do {} while (0)
-
-#endif /* !ACE_LACKS_STATIC_CONSTRUCTORS */
-
-/// Declare the factory method used to create dynamically loadable
-/// services.
-/**
- * Once the service implementation is dynamically loaded the Service
- * Configurator uses a factory method to create the object.
- * This macro declares such a factory function with the proper
- * interface and export macros.
- * Normally used in the header file that declares the service
- * implementation.
- *
- * @param CLS must match the prefix of the export macro used for this
- * service.
- * @param SERVICE_CLASS must match the name of the class that
- * implements the service.
- *
- */
-#define ACE_FACTORY_DECLARE(CLS,SERVICE_CLASS) \
-extern "C" CLS##_Export ACE_Service_Object *\
-_make_##SERVICE_CLASS (ACE_Service_Object_Exterminator *);
-
-/// Define the factory method (and destructor) for a dynamically
-/// loadable service.
-/**
- * Use with arguments matching ACE_FACTORY_DECLARE.
- * Normally used in the .cpp file that defines the service
- * implementation.
- *
- * This macro defines both the factory method and the function used to
- * cleanup the service object.
- *
- * If this macro is used to define a factory function that need not be
- * exported (for example, in a static service situation), CLS can be
- * specified as ACE_Local_Service.
- */
-# define ACE_Local_Service_Export
-
-# define ACE_FACTORY_DEFINE(CLS,SERVICE_CLASS) \
-void _gobble_##SERVICE_CLASS (void *p) { \
- ACE_Service_Object *_p = ACE_static_cast (ACE_Service_Object *, p); \
- ACE_ASSERT (_p != 0); \
- delete _p; } \
-extern "C" CLS##_Export ACE_Service_Object *\
-_make_##SERVICE_CLASS (ACE_Service_Object_Exterminator *gobbler) \
-{ \
- ACE_TRACE (#SERVICE_CLASS); \
- if (gobbler != 0) \
- *gobbler = (ACE_Service_Object_Exterminator) _gobble_##SERVICE_CLASS; \
- return new SERVICE_CLASS; \
-}
-
-/// The canonical name for a service factory method
-#define ACE_SVC_NAME(SERVICE_CLASS) _make_##SERVICE_CLASS
-
-/// The canonical way to invoke (i.e. construct) a service factory
-/// method.
-#define ACE_SVC_INVOKE(SERVICE_CLASS) _make_##SERVICE_CLASS (0)
-
-//@}
-
-/** @name Helper macros for services defined in the netsvcs library.
- *
- * The ACE services defined in netsvcs use this helper macros for
- * simplicity.
- *
- */
-//@{
-# define ACE_SVC_FACTORY_DECLARE(X) ACE_FACTORY_DECLARE (ACE_Svc, X)
-# define ACE_SVC_FACTORY_DEFINE(X) ACE_FACTORY_DEFINE (ACE_Svc, X)
-//@}
-
-# if defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION))
-# define ACE_TSS_TYPE(T) ACE_TSS< T >
-# if defined (ACE_HAS_BROKEN_CONVERSIONS)
-# define ACE_TSS_GET(I, T) (*(I))
-# else
-# define ACE_TSS_GET(I, T) ((I)->operator T * ())
-# endif /* ACE_HAS_BROKEN_CONVERSIONS */
-# else
-# define ACE_TSS_TYPE(T) T
-# define ACE_TSS_GET(I, T) (I)
-# endif /* ACE_HAS_THREADS && (ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATIOND) */
-
-# if defined (ACE_LACKS_MODE_MASKS)
-// MODE MASKS
-
-// the following macros are for POSIX conformance.
-
-# if !defined (ACE_HAS_USER_MODE_MASKS)
-# define S_IRWXU 00700 /* read, write, execute: owner. */
-# define S_IRUSR 00400 /* read permission: owner. */
-# define S_IWUSR 00200 /* write permission: owner. */
-# define S_IXUSR 00100 /* execute permission: owner. */
-# endif /* ACE_HAS_USER_MODE_MASKS */
-# define S_IRWXG 00070 /* read, write, execute: group. */
-# define S_IRGRP 00040 /* read permission: group. */
-# define S_IWGRP 00020 /* write permission: group. */
-# define S_IXGRP 00010 /* execute permission: group. */
-# define S_IRWXO 00007 /* read, write, execute: other. */
-# define S_IROTH 00004 /* read permission: other. */
-# define S_IWOTH 00002 /* write permission: other. */
-# define S_IXOTH 00001 /* execute permission: other. */
-
-// eVC doesn't define these bits, but MSVC does. The bit settings are copied
-// from the MSVC defs.
-# if defined (ACE_HAS_WINCE)
-# define S_IFDIR 0040000
-# define S_IFREG 0100000
-# endif /* ACE_HAS_WINCE */
-# endif /* ACE_LACKS_MODE_MASKS */
-
-# if defined (ACE_LACKS_SEMBUF_T)
-struct sembuf
-{
- /// semaphore #
- unsigned short sem_num;
-
- /// semaphore operation
- short sem_op;
-
- /// operation flags
- short sem_flg;
-};
-# endif /* ACE_LACKS_SEMBUF_T */
-
-# if defined (ACE_LACKS_MSGBUF_T)
-struct msgbuf {};
-# endif /* ACE_LACKS_MSGBUF_T */
-
-# if defined (ACE_LACKS_STRRECVFD)
-struct strrecvfd {};
-# endif /* ACE_LACKS_STRRECVFD */
-
-# if defined (ACE_HAS_PROC_FS)
-# include /**/ <sys/procfs.h>
-# endif /* ACE_HAS_PROC_FS */
-
-# if defined(__rtems__)
-struct iovec {
- /// Base address.
- char *iov_base;
- /// Length.
- size_t iov_len;
-};
-# endif
-
-# if defined (ACE_HAS_BROKEN_WRITEV)
-typedef struct iovec ACE_WRITEV_TYPE;
-# else
-typedef const struct iovec ACE_WRITEV_TYPE;
-# endif /* ACE_HAS_BROKEN_WRITEV */
-
-# if defined (ACE_HAS_BROKEN_READV)
-typedef const struct iovec ACE_READV_TYPE;
-# else
-typedef struct iovec ACE_READV_TYPE;
-# endif /* ACE_HAS_BROKEN_READV */
-
-# if defined (ACE_HAS_BROKEN_SETRLIMIT)
-typedef struct rlimit ACE_SETRLIMIT_TYPE;
-# else
-typedef const struct rlimit ACE_SETRLIMIT_TYPE;
-# endif /* ACE_HAS_BROKEN_SETRLIMIT */
-
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-# define ACE_MT(X) X
-# if !defined (_REENTRANT)
-# define _REENTRANT
-# endif /* _REENTRANT */
-# else
-# define ACE_MT(X)
-# endif /* ACE_MT_SAFE */
-
-# if !defined (ACE_DEFAULT_THREAD_PRIORITY)
-# define ACE_DEFAULT_THREAD_PRIORITY (-0x7fffffffL - 1L)
-# endif /* ACE_DEFAULT_THREAD_PRIORITY */
-
-# if defined (ACE_HAS_POSIX_SEM)
-# include /**/ <semaphore.h>
-# if !defined (SEM_FAILED) && !defined (ACE_LACKS_NAMED_POSIX_SEM)
-# define SEM_FAILED ((sem_t *) -1)
-# endif /* !SEM_FAILED */
-
-typedef struct
-{
- /// Pointer to semaphore handle. This is allocated by ACE if we are
- /// working with an unnamed POSIX semaphore or by the OS if we are
- /// working with a named POSIX semaphore.
- sem_t *sema_;
-
- /// Name of the semaphore (if this is non-NULL then this is a named
- /// POSIX semaphore, else its an unnamed POSIX semaphore).
- char *name_;
-
-# if defined (ACE_LACKS_NAMED_POSIX_SEM)
- /// this->sema_ doesn't always get created dynamically if a platform
- /// doesn't support named posix semaphores. We use this flag to
- /// remember if we need to delete <sema_> or not.
- int new_sema_;
-# endif /* ACE_LACKS_NAMED_POSIX_SEM */
-} ACE_sema_t;
-# endif /* ACE_HAS_POSIX_SEM */
-
-struct cancel_state
-{
- /// e.g., PTHREAD_CANCEL_ENABLE, PTHREAD_CANCEL_DISABLE,
- /// PTHREAD_CANCELED.
- int cancelstate;
-
- /// e.g., PTHREAD_CANCEL_DEFERRED and PTHREAD_CANCEL_ASYNCHRONOUS.
- int canceltype;
-};
-
-# if defined (ACE_HAS_WINCE)
-# include /**/ <types.h>
-
-# if (_WIN32_WCE < 400)
-typedef unsigned long ptrdiff_t; // evc3, PocketPC don't defined ptrdiff_t
-# else
-# include /**/ <stddef.h> // WinCE .NET puts it in stddef.h
-# endif
-
-//typedef DWORD nlink_t;
-
-// CE's add-on for c-style fstat/stat functionalities. This struct is
-// by no mean complete compared to what you usually find in UNIX
-// platforms. Only members that have direct conversion using Win32's
-// BY_HANDLE_FILE_INFORMATION are defined so that users can discover
-// non-supported members at compile time. Time values are of type
-// ACE_Time_Value for easy comparison.
-
-// Since CE does not have _stat by default as NT/2000 does, the 'stat'
-// struct defined here will be used. Also note that CE file system
-// struct is only for the CE 3.0 or later.
-// Refer to the WCHAR.H from Visual C++ and WIBASE.H from eVC 3.0.
-
-typedef unsigned int dev_t;
-
-struct stat
-{
- /// always 0 on Windows platforms
- dev_t st_dev;
-
- /// always 0 on Windows platforms
- dev_t st_rdev;
-
- /// file attribute
- unsigned short st_mode;
-
- /// number of hard links
- short st_nlink;
-
- /// time of last access
- ACE_Time_Value st_atime;
-
- /// time of last data modification
- ACE_Time_Value st_mtime;
-
- /// time of creation
- ACE_Time_Value st_ctime;
-
- /// file size, in bytes
- off_t st_size;
-
- // Following members do not have direct conversion in Window platforms.
-// u_long st_blksize; // optimal blocksize for I/O
-// u_long st_flags; // user defined flags for file
-};
-
-# else /* ! ACE_HAS_WINCE */
-# if defined (ACE_LACKS_SYS_TYPES_H) \
- || (defined (__GLIBC__) && !defined (_BSD_SOURCE))
-# if ! defined (ACE_PSOS)
- typedef unsigned char u_char;
- typedef unsigned short u_short;
- typedef unsigned int u_int;
- typedef unsigned long u_long;
-
- typedef unsigned char uchar_t;
- typedef unsigned short ushort_t;
- typedef unsigned int uint_t;
- typedef unsigned long ulong_t;
-# endif /* ! defined (ACE_PSOS) */
-# else
-# include /**/ <sys/types.h>
-# endif /* ACE_LACKS_SYS_TYPES_H */
-
-# if ! defined (ACE_PSOS)
-# include /**/ <sys/stat.h>
-# endif
-# endif /* ACE_HAS_WINCE */
-
-#if !defined (ACE_LACKS_UNISTD_H)
-# include /**/ <unistd.h>
-#endif /* ACE_LACKS_UNISTD_H */
-
-#if defined (ACE_HAS_PRIOCNTL)
- // Need to #include thread.h before #defining THR_BOUND, etc.,
- // when building without threads on SunOS 5.x.
-# if defined (sun)
-# include /**/ <thread.h>
-# endif /* sun */
-
- // Need to #include these before #defining USYNC_PROCESS on SunOS 5.x.
-# include /**/ <sys/rtpriocntl.h>
-# include /**/ <sys/tspriocntl.h>
-#endif /* ACE_HAS_PRIOCNTL */
-
-# if defined (ACE_HAS_THREADS)
-
-# if defined (ACE_HAS_STHREADS)
-# include /**/ <synch.h>
-# include /**/ <thread.h>
-# define ACE_SCOPE_PROCESS P_PID
-# define ACE_SCOPE_LWP P_LWPID
-# define ACE_SCOPE_THREAD (ACE_SCOPE_LWP + 1)
-# else
-# define ACE_SCOPE_PROCESS 0
-# define ACE_SCOPE_LWP 1
-# define ACE_SCOPE_THREAD 2
-# endif /* ACE_HAS_STHREADS */
-
-# if !defined (ACE_HAS_PTHREADS)
-# define ACE_SCHED_OTHER 0
-# define ACE_SCHED_FIFO 1
-# define ACE_SCHED_RR 2
-# endif /* ! ACE_HAS_PTHREADS */
-
-# if defined (ACE_HAS_PTHREADS)
-# define ACE_SCHED_OTHER SCHED_OTHER
-# define ACE_SCHED_FIFO SCHED_FIFO
-# define ACE_SCHED_RR SCHED_RR
-
-// Definitions for mapping POSIX pthreads draft 6 into 1003.1c names
-
-# if defined (ACE_HAS_PTHREADS_DRAFT6)
-# define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_LOCAL
-# define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_GLOBAL
-# define PTHREAD_CREATE_UNDETACHED 0
-# define PTHREAD_CREATE_DETACHED 1
-# define PTHREAD_CREATE_JOINABLE 0
-# define PTHREAD_EXPLICIT_SCHED 0
-# define PTHREAD_MIN_PRIORITY 0
-# define PTHREAD_MAX_PRIORITY 126
-# endif /* ACE_HAS_PTHREADS_DRAFT6 */
-
-// Definitions for THREAD- and PROCESS-LEVEL priorities...some
-// implementations define these while others don't. In order to
-// further complicate matters, we don't redefine the default (*_DEF)
-// values if they've already been defined, which allows individual
-// programs to have their own ACE-wide "default".
-
-// PROCESS-level values
-# if defined (_POSIX_PRIORITY_SCHEDULING) && \
- !defined(_UNICOS) && !defined(UNIXWARE_7_1)
-# define ACE_PROC_PRI_FIFO_MIN (sched_get_priority_min(SCHED_FIFO))
-# define ACE_PROC_PRI_RR_MIN (sched_get_priority_min(SCHED_RR))
-# if defined (HPUX)
- // HP-UX's other is the SCHED_HPUX class, which uses historical
- // values that have reverse semantics from POSIX (low value is
- // more important priority). To use these in pthreads calls,
- // the values need to be converted. The other scheduling classes
- // don't need this special treatment.
-# define ACE_PROC_PRI_OTHER_MIN \
- (sched_get_priority_min(SCHED_OTHER))
-# else
-# define ACE_PROC_PRI_OTHER_MIN (sched_get_priority_min(SCHED_OTHER))
-# endif /* HPUX */
-# else /* UNICOS is missing a sched_get_priority_min() implementation,
- SCO too */
-# define ACE_PROC_PRI_FIFO_MIN 0
-# define ACE_PROC_PRI_RR_MIN 0
-# define ACE_PROC_PRI_OTHER_MIN 0
-# endif
-
-# if defined (_POSIX_PRIORITY_SCHEDULING) && !defined(UNIXWARE_7_1)
-# define ACE_PROC_PRI_FIFO_MAX (sched_get_priority_max(SCHED_FIFO))
-# define ACE_PROC_PRI_RR_MAX (sched_get_priority_max(SCHED_RR))
-# if defined (HPUX)
-# define ACE_PROC_PRI_OTHER_MAX \
- (sched_get_priority_max(SCHED_OTHER))
-# else
-# define ACE_PROC_PRI_OTHER_MAX (sched_get_priority_max(SCHED_OTHER))
-# endif /* HPUX */
-# else /* SCO missing sched_get_priority_max() implementation */
-# define ACE_PROC_PRI_FIFO_MAX 59
-# define ACE_PROC_PRI_RR_MAX 59
-# define ACE_PROC_PRI_OTHER_MAX 59
-# endif
-
-# if !defined(ACE_PROC_PRI_FIFO_DEF)
-# define ACE_PROC_PRI_FIFO_DEF (ACE_PROC_PRI_FIFO_MIN + (ACE_PROC_PRI_FIFO_MAX - ACE_PROC_PRI_FIFO_MIN)/2)
-# endif
-# if !defined(ACE_PROC_PRI_RR_DEF)
-# define ACE_PROC_PRI_RR_DEF (ACE_PROC_PRI_RR_MIN + (ACE_PROC_PRI_RR_MAX - ACE_PROC_PRI_RR_MIN)/2)
-# endif
-# if !defined(ACE_PROC_PRI_OTHER_DEF)
-# define ACE_PROC_PRI_OTHER_DEF (ACE_PROC_PRI_OTHER_MIN + (ACE_PROC_PRI_OTHER_MAX - ACE_PROC_PRI_OTHER_MIN)/2)
-# endif
-
-// THREAD-level values
-# if defined(PRI_FIFO_MIN) && defined(PRI_FIFO_MAX) && defined(PRI_RR_MIN) && defined(PRI_RR_MAX) && defined(PRI_OTHER_MIN) && defined(PRI_OTHER_MAX)
-# if !defined (ACE_THR_PRI_FIFO_MIN)
-# define ACE_THR_PRI_FIFO_MIN (long) PRI_FIFO_MIN
-# endif /* !ACE_THR_PRI_FIFO_MIN */
-# if !defined (ACE_THR_PRI_FIFO_MAX)
-# define ACE_THR_PRI_FIFO_MAX (long) PRI_FIFO_MAX
-# endif /* !ACE_THR_PRI_FIFO_MAX */
-# if !defined (ACE_THR_PRI_RR_MIN)
-# define ACE_THR_PRI_RR_MIN (long) PRI_RR_MIN
-# endif /* !ACE_THR_PRI_RR_MIN */
-# if !defined (ACE_THR_PRI_RR_MAX)
-# define ACE_THR_PRI_RR_MAX (long) PRI_RR_MAX
-# endif /* !ACE_THR_PRI_RR_MAX */
-# if !defined (ACE_THR_PRI_OTHER_MIN)
-# define ACE_THR_PRI_OTHER_MIN (long) PRI_OTHER_MIN
-# endif /* !ACE_THR_PRI_OTHER_MIN */
-# if !defined (ACE_THR_PRI_OTHER_MAX)
-# define ACE_THR_PRI_OTHER_MAX (long) PRI_OTHER_MAX
-# endif /* !ACE_THR_PRI_OTHER_MAX */
-# elif defined (AIX)
- // AIX's priority range is 1 (low) to 127 (high). There aren't
- // any preprocessor macros I can find. PRIORITY_MIN is for
- // process priorities, as far as I can see, and does not apply
- // to thread priority. The 1 to 127 range is from the
- // pthread_attr_setschedparam man page (Steve Huston, 18-May-2001).
-# if !defined (ACE_THR_PRI_FIFO_MIN)
-# define ACE_THR_PRI_FIFO_MIN (long) 1
-# endif /* !ACE_THR_PRI_FIFO_MIN */
-# if !defined (ACE_THR_PRI_FIFO_MAX)
-# define ACE_THR_PRI_FIFO_MAX (long) 127
-# endif /* !ACE_THR_PRI_FIFO_MAX */
-# if !defined (ACE_THR_PRI_RR_MIN)
-# define ACE_THR_PRI_RR_MIN (long) 1
-# endif /* !ACE_THR_PRI_RR_MIN */
-# if !defined (ACE_THR_PRI_RR_MAX)
-# define ACE_THR_PRI_RR_MAX (long) 127
-# endif /* !ACE_THR_PRI_RR_MAX */
-# if !defined (ACE_THR_PRI_OTHER_MIN)
-# define ACE_THR_PRI_OTHER_MIN (long) 1
-# endif /* !ACE_THR_PRI_OTHER_MIN */
-# if !defined (ACE_THR_PRI_OTHER_MAX)
-# define ACE_THR_PRI_OTHER_MAX (long) 127
-# endif /* !ACE_THR_PRI_OTHER_MAX */
-# elif defined (sun)
-# if !defined (ACE_THR_PRI_FIFO_MIN)
-# define ACE_THR_PRI_FIFO_MIN (long) 0
-# endif /* !ACE_THR_PRI_FIFO_MIN */
-# if !defined (ACE_THR_PRI_FIFO_MAX)
-# define ACE_THR_PRI_FIFO_MAX (long) 59
-# endif /* !ACE_THR_PRI_FIFO_MAX */
-# if !defined (ACE_THR_PRI_RR_MIN)
-# define ACE_THR_PRI_RR_MIN (long) 0
-# endif /* !ACE_THR_PRI_RR_MIN */
-# if !defined (ACE_THR_PRI_RR_MAX)
-# define ACE_THR_PRI_RR_MAX (long) 59
-# endif /* !ACE_THR_PRI_RR_MAX */
-# if !defined (ACE_THR_PRI_OTHER_MIN)
-# define ACE_THR_PRI_OTHER_MIN (long) 0
-# endif /* !ACE_THR_PRI_OTHER_MIN */
-# if !defined (ACE_THR_PRI_OTHER_MAX)
-# define ACE_THR_PRI_OTHER_MAX (long) 127
-# endif /* !ACE_THR_PRI_OTHER_MAX */
-# else
-# if !defined (ACE_THR_PRI_FIFO_MIN)
-# define ACE_THR_PRI_FIFO_MIN (long) ACE_PROC_PRI_FIFO_MIN
-# endif /* !ACE_THR_PRI_FIFO_MIN */
-# if !defined (ACE_THR_PRI_FIFO_MAX)
-# define ACE_THR_PRI_FIFO_MAX (long) ACE_PROC_PRI_FIFO_MAX
-# endif /* !ACE_THR_PRI_FIFO_MAX */
-# if !defined (ACE_THR_PRI_RR_MIN)
-# define ACE_THR_PRI_RR_MIN (long) ACE_PROC_PRI_RR_MIN
-# endif /* !ACE_THR_PRI_RR_MIN */
-# if !defined (ACE_THR_PRI_RR_MAX)
-# define ACE_THR_PRI_RR_MAX (long) ACE_PROC_PRI_RR_MAX
-# endif /* !ACE_THR_PRI_RR_MAX */
-# if !defined (ACE_THR_PRI_OTHER_MIN)
-# define ACE_THR_PRI_OTHER_MIN (long) ACE_PROC_PRI_OTHER_MIN
-# endif /* !ACE_THR_PRI_OTHER_MIN */
-# if !defined (ACE_THR_PRI_OTHER_MAX)
-# define ACE_THR_PRI_OTHER_MAX (long) ACE_PROC_PRI_OTHER_MAX
-# endif /* !ACE_THR_PRI_OTHER_MAX */
-# endif
-# if !defined(ACE_THR_PRI_FIFO_DEF)
-# define ACE_THR_PRI_FIFO_DEF ((ACE_THR_PRI_FIFO_MIN + ACE_THR_PRI_FIFO_MAX)/2)
-# endif
-# if !defined(ACE_THR_PRI_RR_DEF)
-# define ACE_THR_PRI_RR_DEF ((ACE_THR_PRI_RR_MIN + ACE_THR_PRI_RR_MAX)/2)
-# endif
-# if !defined(ACE_THR_PRI_OTHER_DEF)
-# define ACE_THR_PRI_OTHER_DEF ((ACE_THR_PRI_OTHER_MIN + ACE_THR_PRI_OTHER_MAX)/2)
-# endif
-
-// Typedefs to help compatibility with Windows NT and Pthreads.
-typedef pthread_t ACE_hthread_t;
-typedef pthread_t ACE_thread_t;
-
-# if defined (ACE_HAS_TSS_EMULATION)
- typedef pthread_key_t ACE_OS_thread_key_t;
- typedef u_long ACE_thread_key_t;
-# else /* ! ACE_HAS_TSS_EMULATION */
- typedef pthread_key_t ACE_thread_key_t;
-# endif /* ! ACE_HAS_TSS_EMULATION */
-
-# if !defined (ACE_LACKS_COND_T)
-typedef pthread_mutex_t ACE_mutex_t;
-typedef pthread_cond_t ACE_cond_t;
-typedef pthread_condattr_t ACE_condattr_t;
-typedef pthread_mutexattr_t ACE_mutexattr_t;
-# endif /* ! ACE_LACKS_COND_T */
-typedef pthread_mutex_t ACE_thread_mutex_t;
-
-# if !defined (PTHREAD_CANCEL_DISABLE)
-# define PTHREAD_CANCEL_DISABLE 0
-# endif /* PTHREAD_CANCEL_DISABLE */
-
-# if !defined (PTHREAD_CANCEL_ENABLE)
-# define PTHREAD_CANCEL_ENABLE 0
-# endif /* PTHREAD_CANCEL_ENABLE */
-
-# if !defined (PTHREAD_CANCEL_DEFERRED)
-# define PTHREAD_CANCEL_DEFERRED 0
-# endif /* PTHREAD_CANCEL_DEFERRED */
-
-# if !defined (PTHREAD_CANCEL_ASYNCHRONOUS)
-# define PTHREAD_CANCEL_ASYNCHRONOUS 0
-# endif /* PTHREAD_CANCEL_ASYNCHRONOUS */
-
-# define THR_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE
-# define THR_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE
-# define THR_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED
-# define THR_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS
-
-# if !defined (PTHREAD_CREATE_JOINABLE)
-# if defined (PTHREAD_CREATE_UNDETACHED)
-# define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED
-# else
-# define PTHREAD_CREATE_JOINABLE 0
-# endif /* PTHREAD_CREATE_UNDETACHED */
-# endif /* PTHREAD_CREATE_JOINABLE */
-
-# if !defined (PTHREAD_CREATE_DETACHED)
-# define PTHREAD_CREATE_DETACHED 1
-# endif /* PTHREAD_CREATE_DETACHED */
-
-# if !defined (PTHREAD_PROCESS_PRIVATE) && !defined (ACE_HAS_PTHREAD_PROCESS_ENUM)
-# if defined (PTHREAD_MUTEXTYPE_FAST)
-# define PTHREAD_PROCESS_PRIVATE PTHREAD_MUTEXTYPE_FAST
-# else
-# define PTHREAD_PROCESS_PRIVATE 0
-# endif /* PTHREAD_MUTEXTYPE_FAST */
-# endif /* PTHREAD_PROCESS_PRIVATE */
-
-# if !defined (PTHREAD_PROCESS_SHARED) && !defined (ACE_HAS_PTHREAD_PROCESS_ENUM)
-# if defined (PTHREAD_MUTEXTYPE_FAST)
-# define PTHREAD_PROCESS_SHARED PTHREAD_MUTEXTYPE_FAST
-# else
-# define PTHREAD_PROCESS_SHARED 1
-# endif /* PTHREAD_MUTEXTYPE_FAST */
-# endif /* PTHREAD_PROCESS_SHARED */
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
-# if defined (PTHREAD_PROCESS_PRIVATE)
-# if !defined (USYNC_THREAD)
-# define USYNC_THREAD PTHREAD_PROCESS_PRIVATE
-# endif /* ! USYNC_THREAD */
-# else
-# if !defined (USYNC_THREAD)
-# define USYNC_THREAD MUTEX_NONRECURSIVE_NP
-# endif /* ! USYNC_THREAD */
-# endif /* PTHREAD_PROCESS_PRIVATE */
-
-# if defined (PTHREAD_PROCESS_SHARED)
-# if !defined (USYNC_PROCESS)
-# define USYNC_PROCESS PTHREAD_PROCESS_SHARED
-# endif /* ! USYNC_PROCESS */
-# else
-# if !defined (USYNC_PROCESS)
-# define USYNC_PROCESS MUTEX_NONRECURSIVE_NP
-# endif /* ! USYNC_PROCESS */
-# endif /* PTHREAD_PROCESS_SHARED */
-# elif !defined (ACE_HAS_STHREADS)
-# if !defined (USYNC_THREAD)
-# define USYNC_THREAD PTHREAD_PROCESS_PRIVATE
-# endif /* ! USYNC_THREAD */
-# if !defined (USYNC_PROCESS)
-# define USYNC_PROCESS PTHREAD_PROCESS_SHARED
-# endif /* ! USYNC_PROCESS */
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-
-/* MM-Graz: prevent warnings */
-#undef THR_BOUND
-#undef THR_NEW_LWP
-#undef THR_DETACHED
-#undef THR_SUSPENDED
-#undef THR_DAEMON
-
-# define THR_BOUND 0x00000001
-# if defined (CHORUS)
-# define THR_NEW_LWP 0x00000000
-# else
-# define THR_NEW_LWP 0x00000002
-# endif /* CHORUS */
-# define THR_DETACHED 0x00000040
-# define THR_SUSPENDED 0x00000080
-# define THR_DAEMON 0x00000100
-# define THR_JOINABLE 0x00010000
-# define THR_SCHED_FIFO 0x00020000
-# define THR_SCHED_RR 0x00040000
-# define THR_SCHED_DEFAULT 0x00080000
-
-# if defined (ACE_HAS_IRIX62_THREADS)
-# define THR_SCOPE_SYSTEM 0x00100000
-# else
-# define THR_SCOPE_SYSTEM THR_BOUND
-#endif /*ACE_HAS_IRIX62_THREADS*/
-
-# define THR_SCOPE_PROCESS 0x00200000
-# define THR_INHERIT_SCHED 0x00400000
-# define THR_EXPLICIT_SCHED 0x00800000
-# define THR_SCHED_IO 0x01000000
-
-# if !defined (ACE_HAS_STHREADS)
-# if !defined (ACE_HAS_POSIX_SEM)
-/**
- * @class ACE_sema_t
- *
- * @brief This is used to implement semaphores for platforms that support
- * POSIX pthreads, but do *not* support POSIX semaphores, i.e.,
- * it's a different type than the POSIX <sem_t>.
- */
-class ACE_OS_Export ACE_sema_t
-{
-friend class ACE_OS;
-protected:
- /// Serialize access to internal state.
- ACE_mutex_t lock_;
-
- /// Block until there are no waiters.
- ACE_cond_t count_nonzero_;
-
- /// Count of the semaphore.
- u_long count_;
-
- /// Number of threads that have called <ACE_OS::sema_wait>.
- u_long waiters_;
-};
-# endif /* !ACE_HAS_POSIX_SEM */
-
-# if defined (ACE_LACKS_PTHREAD_YIELD) && defined (ACE_HAS_THR_YIELD)
- // If we are on Solaris we can just reuse the existing
- // implementations of these synchronization types.
-# if !defined (ACE_LACKS_RWLOCK_T)
-# include /**/ <synch.h>
-typedef rwlock_t ACE_rwlock_t;
-# endif /* !ACE_LACKS_RWLOCK_T */
-# include /**/ <thread.h>
-# endif /* (ACE_LACKS_PTHREAD_YIELD) && defined (ACE_HAS_THR_YIELD) */
-
-# else
-# if !defined (ACE_HAS_POSIX_SEM)
-typedef sema_t ACE_sema_t;
-# endif /* !ACE_HAS_POSIX_SEM */
-# endif /* !ACE_HAS_STHREADS */
-# elif defined (ACE_HAS_STHREADS)
-// Solaris threads, without PTHREADS.
-// Typedefs to help compatibility with Windows NT and Pthreads.
-typedef thread_t ACE_thread_t;
-typedef thread_key_t ACE_thread_key_t;
-typedef mutex_t ACE_mutex_t;
-# if !defined (ACE_LACKS_RWLOCK_T)
-typedef rwlock_t ACE_rwlock_t;
-# endif /* !ACE_LACKS_RWLOCK_T */
-# if !defined (ACE_HAS_POSIX_SEM)
-typedef sema_t ACE_sema_t;
-# endif /* !ACE_HAS_POSIX_SEM */
-
-typedef cond_t ACE_cond_t;
-struct ACE_OS_Export ACE_condattr_t
-{
- int type;
-};
-struct ACE_OS_Export ACE_mutexattr_t
-{
- int type;
-};
-typedef ACE_thread_t ACE_hthread_t;
-typedef ACE_mutex_t ACE_thread_mutex_t;
-
-# define THR_CANCEL_DISABLE 0
-# define THR_CANCEL_ENABLE 0
-# define THR_CANCEL_DEFERRED 0
-# define THR_CANCEL_ASYNCHRONOUS 0
-# define THR_JOINABLE 0
-# define THR_SCHED_FIFO 0
-# define THR_SCHED_RR 0
-# define THR_SCHED_DEFAULT 0
-
-# elif defined (ACE_PSOS)
-
-// Some versions of pSOS provide native mutex support. For others,
-// implement ACE_thread_mutex_t and ACE_mutex_t using pSOS semaphores.
-// Either way, the types are all u_longs.
-typedef u_long ACE_mutex_t;
-typedef u_long ACE_thread_mutex_t;
-typedef u_long ACE_thread_t;
-typedef u_long ACE_hthread_t;
-
-#if defined (ACE_PSOS_HAS_COND_T)
-typedef u_long ACE_cond_t;
-typedef u_long ACE_condattr_t;
-struct ACE_OS_Export ACE_mutexattr_t
-{
- int type;
-};
-#endif /* ACE_PSOS_HAS_COND_T */
-
-
-// TCB registers 0-7 are for application use
-# define PSOS_TASK_REG_TSS 0
-# define PSOS_TASK_REG_MAX 7
-
-# define PSOS_TASK_MIN_PRIORITY 1
-# define PSOS_TASK_MAX_PRIORITY 239
-
-// Key type: the ACE TSS emulation requires the key type be unsigned,
-// for efficiency. Current POSIX and Solaris TSS implementations also
-// use unsigned int, so the ACE TSS emulation is compatible with them.
-// Native pSOS TSD, where available, uses unsigned long as the key type.
-# if defined (ACE_PSOS_HAS_TSS)
-typedef u_long ACE_thread_key_t;
-# else
-typedef u_int ACE_thread_key_t;
-# endif /* ACE_PSOS_HAS_TSS */
-
-# define THR_CANCEL_DISABLE 0 /* thread can never be cancelled */
-# define THR_CANCEL_ENABLE 0 /* thread can be cancelled */
-# define THR_CANCEL_DEFERRED 0 /* cancellation deferred to cancellation point */
-# define THR_CANCEL_ASYNCHRONOUS 0 /* cancellation occurs immediately */
-
-# define THR_BOUND 0
-# define THR_NEW_LWP 0
-# define THR_DETACHED 0
-# define THR_SUSPENDED 0
-# define THR_DAEMON 0
-# define THR_JOINABLE 0
-
-# define THR_SCHED_FIFO 0
-# define THR_SCHED_RR 0
-# define THR_SCHED_DEFAULT 0
-# define USYNC_THREAD T_LOCAL
-# define USYNC_PROCESS T_GLOBAL
-
-/* from psos.h */
-/* #define T_NOPREEMPT 0x00000001 Not preemptible bit */
-/* #define T_PREEMPT 0x00000000 Preemptible */
-/* #define T_TSLICE 0x00000002 Time-slicing enabled bit */
-/* #define T_NOTSLICE 0x00000000 No Time-slicing */
-/* #define T_NOASR 0x00000004 ASRs disabled bit */
-/* #define T_ASR 0x00000000 ASRs enabled */
-
-/* #define SM_GLOBAL 0x00000001 1 = Global */
-/* #define SM_LOCAL 0x00000000 0 = Local */
-/* #define SM_PRIOR 0x00000002 Queue by priority */
-/* #define SM_FIFO 0x00000000 Queue by FIFO order */
-
-/* #define T_NOFPU 0x00000000 Not using FPU */
-/* #define T_FPU 0x00000002 Using FPU bit */
-
-# elif defined (VXWORKS)
-// For mutex implementation using mutual-exclusion semaphores (which
-// can be taken recursively).
-# include /**/ <semLib.h>
-
-# include /**/ <envLib.h>
-# include /**/ <hostLib.h>
-# include /**/ <ioLib.h>
-# include /**/ <remLib.h>
-# include /**/ <selectLib.h>
-# include /**/ <sigLib.h>
-# include /**/ <sockLib.h>
-# include /**/ <sysLib.h>
-# include /**/ <taskLib.h>
-# include /**/ <taskHookLib.h>
-# include /**/ <inetLib.h>
-extern "C"
-struct sockaddr_un {
- short sun_family; // AF_UNIX.
- char sun_path[108]; // path name.
-};
-
-# define MAXNAMLEN 255
-# define NSIG (_NSIGS + 1)
-
-// task options: the other options are either obsolete, internal, or for
-// Fortran or Ada support
-# define VX_UNBREAKABLE 0x0002 /* breakpoints ignored */
-# define VX_FP_TASK 0x0008 /* floating point coprocessor */
-# define VX_PRIVATE_ENV 0x0080 /* private environment support */
-# define VX_NO_STACK_FILL 0x0100 /* do not stack fill for
- checkstack () */
-
-# define THR_CANCEL_DISABLE 0
-# define THR_CANCEL_ENABLE 0
-# define THR_CANCEL_DEFERRED 0
-# define THR_CANCEL_ASYNCHRONOUS 0
-# define THR_BOUND 0
-# define THR_NEW_LWP 0
-# define THR_DETACHED 0
-# define THR_SUSPENDED 0
-# define THR_DAEMON 0
-# define THR_JOINABLE 0
-# define THR_SCHED_FIFO 0
-# define THR_SCHED_RR 0
-# define THR_SCHED_DEFAULT 0
-# define THR_INHERIT_SCHED 0
-# define THR_EXPLICIT_SCHED 0
-# define THR_SCHED_IO 0
-# define THR_SCOPE_SYSTEM 0
-# define THR_SCOPE_PROCESS 0
-# define USYNC_THREAD 0
-# define USYNC_PROCESS 1 /* It's all global on VxWorks
- (without MMU option). */
-
-# if !defined (ACE_DEFAULT_SYNCH_TYPE)
- // Types include these options: SEM_Q_PRIORITY, SEM_Q_FIFO,
- // SEM_DELETE_SAFE, and SEM_INVERSION_SAFE. SEM_Q_FIFO is
- // used as the default because that is VxWorks' default.
-# define ACE_DEFAULT_SYNCH_TYPE SEM_Q_FIFO
-# endif /* ! ACE_DEFAULT_SYNCH_TYPE */
-
-typedef SEM_ID ACE_mutex_t;
-// Implement ACE_thread_mutex_t with ACE_mutex_t because there's just
-// one process . . .
-typedef ACE_mutex_t ACE_thread_mutex_t;
-# if !defined (ACE_HAS_POSIX_SEM)
-// Use VxWorks semaphores, wrapped ...
-typedef struct
-{
- /// Semaphore handle. This is allocated by VxWorks.
- SEM_ID sema_;
-
- /// Name of the semaphore: always NULL with VxWorks.
- char *name_;
-} ACE_sema_t;
-# endif /* !ACE_HAS_POSIX_SEM */
-typedef char * ACE_thread_t;
-typedef int ACE_hthread_t;
-// Key type: the ACE TSS emulation requires the key type be unsigned,
-// for efficiency. (Current POSIX and Solaris TSS implementations also
-// use u_int, so the ACE TSS emulation is compatible with them.)
-typedef u_int ACE_thread_key_t;
-
- // Marker for ACE_Thread_Manager to indicate that it allocated
- // an ACE_thread_t. It is placed at the beginning of the ID.
-# define ACE_THR_ID_ALLOCATED '\022'
-
-# elif defined (ACE_HAS_WTHREADS)
-
-typedef CRITICAL_SECTION ACE_thread_mutex_t;
-
-typedef struct
-{
- /// Either USYNC_THREAD or USYNC_PROCESS
- int type_;
- union
- {
- HANDLE proc_mutex_;
- CRITICAL_SECTION thr_mutex_;
- };
-} ACE_mutex_t;
-
-// Wrapper for NT Events.
-typedef HANDLE ACE_event_t;
-
-# if defined (ACE_WIN32)
-//@@ ACE_USES_WINCE_SEMA_SIMULATION is used to debug
-// semaphore simulation on WinNT. It should be
-// changed to ACE_USES_HAS_WINCE at some later point.
-# if !defined (ACE_USES_WINCE_SEMA_SIMULATION)
-typedef HANDLE ACE_sema_t;
-# else
-/**
- * @class ACE_sema_t
- *
- * @brief Semaphore simulation for Windows CE.
- */
-class ACE_OS_Export ACE_sema_t
-{
-public:
- /// Serializes access to <count_>.
- ACE_thread_mutex_t lock_;
-
- /// This event is signaled whenever the count becomes non-zero.
- ACE_event_t count_nonzero_;
-
- /// Current count of the semaphore.
- u_int count_;
-};
-
-# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
-# endif /* defined (ACE_WIN32) */
-
-// These need to be different values, neither of which can be 0...
-# define USYNC_THREAD 1
-# define USYNC_PROCESS 2
-
-# define THR_CANCEL_DISABLE 0
-# define THR_CANCEL_ENABLE 0
-# define THR_CANCEL_DEFERRED 0
-# define THR_CANCEL_ASYNCHRONOUS 0
-# define THR_DETACHED 0x02000000 /* ignore in most places */
-# define THR_BOUND 0 /* ignore in most places */
-# define THR_NEW_LWP 0 /* ignore in most places */
-# define THR_DAEMON 0 /* ignore in most places */
-# define THR_JOINABLE 0 /* ignore in most places */
-# define THR_SUSPENDED CREATE_SUSPENDED
-# define THR_USE_AFX 0x01000000
-# define THR_SCHED_FIFO 0
-# define THR_SCHED_RR 0
-# define THR_SCHED_DEFAULT 0
-# define THR_SCOPE_PROCESS 0
-# define THR_SCOPE_SYSTEM 0
-# endif /* ACE_HAS_PTHREADS / STHREADS / PSOS / VXWORKS / WTHREADS */
-
-// If we're using PACE then we don't want this class (since PACE
-// takes care of it) unless we're on Windows. Win32 mutexes, semaphores,
-// and condition variables are not yet supported in PACE.
-# if defined (ACE_LACKS_COND_T)
-/**
- * @class ACE_cond_t
- *
- * @brief This structure is used to implement condition variables on
- * platforms that lack it natively, such as VxWorks, pSoS, and
- * Win32.
- *
- * At the current time, this stuff only works for threads
- * within the same process.
- */
-class ACE_OS_Export ACE_cond_t
-{
-public:
- friend class ACE_OS;
-
- /// Returns the number of waiters.
- long waiters (void) const;
-
-protected:
- /// Number of waiting threads.
- long waiters_;
-
- /// Serialize access to the waiters count.
- ACE_thread_mutex_t waiters_lock_;
-
- /// Queue up threads waiting for the condition to become signaled.
- ACE_sema_t sema_;
-
-# if defined (VXWORKS) || defined (ACE_PSOS)
- /**
- * A semaphore used by the broadcast/signal thread to wait for all
- * the waiting thread(s) to wake up and be released from the
- * semaphore.
- */
- ACE_sema_t waiters_done_;
-# elif defined (ACE_WIN32)
- /**
- * An auto reset event used by the broadcast/signal thread to wait
- * for the waiting thread(s) to wake up and get a chance at the
- * semaphore.
- */
- HANDLE waiters_done_;
-# else
-# error "Please implement this feature or check your config.h file!"
-# endif /* VXWORKS || ACE_PSOS */
-
- /// Keeps track of whether we were broadcasting or just signaling.
- size_t was_broadcast_;
-};
-
-struct ACE_OS_Export ACE_condattr_t
-{
- int type;
-};
-
-struct ACE_OS_Export ACE_mutexattr_t
-{
- int type;
-};
-# endif /* ACE_LACKS_COND_T */
-
-# if defined (ACE_LACKS_RWLOCK_T) && !defined (ACE_HAS_PTHREADS_UNIX98_EXT)
-
-/**
- * @class ACE_rwlock_t
- *
- * @brief This is used to implement readers/writer locks on NT,
- * VxWorks, and POSIX pthreads.
- *
- * At the current time, this stuff only works for threads
- * within the same process.
- */
-struct ACE_OS_Export ACE_rwlock_t
-{
-protected:
- friend class ACE_OS;
-
- ACE_mutex_t lock_;
- // Serialize access to internal state.
-
- ACE_cond_t waiting_readers_;
- // Reader threads waiting to acquire the lock.
-
- int num_waiting_readers_;
- // Number of waiting readers.
-
- ACE_cond_t waiting_writers_;
- // Writer threads waiting to acquire the lock.
-
- int num_waiting_writers_;
- // Number of waiting writers.
-
- int ref_count_;
- // Value is -1 if writer has the lock, else this keeps track of the
- // number of readers holding the lock.
-
- int important_writer_;
- // indicate that a reader is trying to upgrade
-
- ACE_cond_t waiting_important_writer_;
- // condition for the upgrading reader
-};
-# elif defined (ACE_HAS_PTHREADS_UNIX98_EXT)
-typedef pthread_rwlock_t ACE_rwlock_t;
-# elif defined (ACE_HAS_STHREADS)
-# include /**/ <synch.h>
-typedef rwlock_t ACE_rwlock_t;
-# endif /* ACE_LACKS_RWLOCK_T */
-
-// Define some default thread priorities on all threaded platforms, if
-// not defined above or in the individual platform config file.
-// ACE_THR_PRI_FIFO_DEF should be used by applications for default
-// real-time thread priority. ACE_THR_PRI_OTHER_DEF should be used
-// for non-real-time priority.
-# if !defined(ACE_THR_PRI_FIFO_DEF)
-# if defined (ACE_WTHREADS)
- // It would be more in spirit to use THREAD_PRIORITY_NORMAL. But,
- // using THREAD_PRIORITY_ABOVE_NORMAL should give preference to the
- // threads in this process, even if the process is not in the
- // REALTIME_PRIORITY_CLASS.
-# define ACE_THR_PRI_FIFO_DEF THREAD_PRIORITY_ABOVE_NORMAL
-# else /* ! ACE_WTHREADS */
-# define ACE_THR_PRI_FIFO_DEF 0
-# endif /* ! ACE_WTHREADS */
-# endif /* ! ACE_THR_PRI_FIFO_DEF */
-
-# if !defined(ACE_THR_PRI_OTHER_DEF)
-# if defined (ACE_WTHREADS)
- // It would be more in spirit to use THREAD_PRIORITY_NORMAL. But,
- // using THREAD_PRIORITY_ABOVE_NORMAL should give preference to the
- // threads in this process, even if the process is not in the
- // REALTIME_PRIORITY_CLASS.
-# define ACE_THR_PRI_OTHER_DEF THREAD_PRIORITY_NORMAL
-# else /* ! ACE_WTHREADS */
-# define ACE_THR_PRI_OTHER_DEF 0
-# endif /* ! ACE_WTHREADS */
-# endif /* ! ACE_THR_PRI_OTHER_DEF */
-
-// Recursive mutex support.
-//
-// There are two parts to this:
-// 1. The mutex type itself. This is based on whether or not the
-// platform supports recursive mutexes natively or they're emulated.
-// 2. Support for using the recursive mutex with a condition variable.
-// When a thread waits on a condition variable, it has to relinquish
-// the lock and wait atomically, then reacquire it after the condition
-// variable is signaled. In non-recursive mutexes, the platform
-// handles this automatically. But in recursive mutexes, especially
-// when emulated, the recursion count needs to be maintained across
-// the wait. Since another thread needs to be able to acquire the
-// lock, it needs to appear free, even if the waiting thread had done
-// multiple acquires. Thus, there's another structure to hold this
-// information, and is used with the recursive_mutex_cond_unlock()
-// and recursive_mutex_cond_relock() methods to maintain the expected
-// state when the wait finishes.
-#if defined (ACE_HAS_RECURSIVE_MUTEXES)
-typedef ACE_thread_mutex_t ACE_recursive_thread_mutex_t;
-# if defined (ACE_WIN32)
-// Windows has recursive mutexes, but doesn't have condition variables,
-// so there's no built-in support for this. Thus, the condition-related
-// unlock/relock is augmented in ACE.
-struct ACE_recursive_mutex_state
-{
- // On Windows the augmented processing is simply unlocking/relocking
- // the recursive locks - the condition handles a single lock ok.
- LONG relock_count_;
-};
-# else
-// No need for special handling; just need a type for method signatures.
-typedef int ACE_recursive_mutex_state;
-# endif /* ACE_WIN32 */
-#else
-/**
- * @class ACE_recursive_thread_mutex_t
- *
- * @brief Implement a thin C++ wrapper that allows nested acquisition
- * and release of a mutex that occurs in the same thread.
- *
- * This implementation is based on an algorithm sketched by Dave
- * Butenhof <butenhof@zko.dec.com>. Naturally, I take the
- * credit for any mistakes ;-)
- */
-class ACE_recursive_thread_mutex_t
-{
-public:
- /// Guards the state of the nesting level and thread id.
- ACE_thread_mutex_t nesting_mutex_;
-
- /// This condition variable suspends other waiting threads until the
- /// mutex is available.
- ACE_cond_t lock_available_;
-
- /// Current nesting level of the recursion.
- int nesting_level_;
-
- /// Current owner of the lock.
- ACE_thread_t owner_id_;
-};
-
-// Since recursive mutex is emulated, the state saving needs to be handled
-// in ACE as well. These members save those from ACE_recursive_thread_mutex_t.
-struct ACE_recursive_mutex_state
-{
- int nesting_level_;
- ACE_thread_t owner_id_;
-};
-#endif /* ACE_HAS_RECURSIVE_MUTEXES */
-
-# else /* !ACE_HAS_THREADS, i.e., the OS/platform doesn't support threading. */
-
-// Give these things some reasonable value...
-# define ACE_SCOPE_PROCESS 0
-# define ACE_SCOPE_LWP 1
-# define ACE_SCOPE_THREAD 2
-# define ACE_SCHED_OTHER 0
-# define ACE_SCHED_FIFO 1
-# define ACE_SCHED_RR 2
-# if !defined (THR_CANCEL_DISABLE)
-# define THR_CANCEL_DISABLE 0
-# endif /* ! THR_CANCEL_DISABLE */
-# if !defined (THR_CANCEL_ENABLE)
-# define THR_CANCEL_ENABLE 0
-# endif /* ! THR_CANCEL_ENABLE */
-# if !defined (THR_CANCEL_DEFERRED)
-# define THR_CANCEL_DEFERRED 0
-# endif /* ! THR_CANCEL_DEFERRED */
-# if !defined (THR_CANCEL_ASYNCHRONOUS)
-# define THR_CANCEL_ASYNCHRONOUS 0
-# endif /* ! THR_CANCEL_ASYNCHRONOUS */
-# if !defined (THR_JOINABLE)
-# define THR_JOINABLE 0 /* ignore in most places */
-# endif /* ! THR_JOINABLE */
-# if !defined (THR_DETACHED)
-# define THR_DETACHED 0 /* ignore in most places */
-# endif /* ! THR_DETACHED */
-# if !defined (THR_DAEMON)
-# define THR_DAEMON 0 /* ignore in most places */
-# endif /* ! THR_DAEMON */
-# if !defined (THR_BOUND)
-# define THR_BOUND 0 /* ignore in most places */
-# endif /* ! THR_BOUND */
-# if !defined (THR_NEW_LWP)
-# define THR_NEW_LWP 0 /* ignore in most places */
-# endif /* ! THR_NEW_LWP */
-# if !defined (THR_SUSPENDED)
-# define THR_SUSPENDED 0 /* ignore in most places */
-# endif /* ! THR_SUSPENDED */
-# if !defined (THR_SCHED_FIFO)
-# define THR_SCHED_FIFO 0
-# endif /* ! THR_SCHED_FIFO */
-# if !defined (THR_SCHED_RR)
-# define THR_SCHED_RR 0
-# endif /* ! THR_SCHED_RR */
-# if !defined (THR_SCHED_DEFAULT)
-# define THR_SCHED_DEFAULT 0
-# endif /* ! THR_SCHED_DEFAULT */
-# if !defined (USYNC_THREAD)
-# define USYNC_THREAD 0
-# endif /* ! USYNC_THREAD */
-# if !defined (USYNC_PROCESS)
-# define USYNC_PROCESS 0
-# endif /* ! USYNC_PROCESS */
-# if !defined (THR_SCOPE_PROCESS)
-# define THR_SCOPE_PROCESS 0
-# endif /* ! THR_SCOPE_PROCESS */
-# if !defined (THR_SCOPE_SYSTEM)
-# define THR_SCOPE_SYSTEM 0
-# endif /* ! THR_SCOPE_SYSTEM */
-
-// These are dummies needed for class OS.h
-typedef int ACE_cond_t;
-struct ACE_OS_Export ACE_condattr_t
-{
- int type;
-};
-struct ACE_OS_Export ACE_mutexattr_t
-{
- int type;
-};
-typedef int ACE_mutex_t;
-typedef int ACE_thread_mutex_t;
-typedef int ACE_recursive_thread_mutex_t;
-typedef int ACE_recursive_mutex_state;
-# if !defined (ACE_HAS_POSIX_SEM) && !defined (ACE_PSOS)
-typedef int ACE_sema_t;
-# endif /* !ACE_HAS_POSIX_SEM && !ACE_PSOS */
-typedef int ACE_rwlock_t;
-typedef int ACE_thread_t;
-typedef int ACE_hthread_t;
-typedef u_int ACE_thread_key_t;
-
-// Ensure that ACE_THR_PRI_FIFO_DEF and ACE_THR_PRI_OTHER_DEF are
-// defined on non-threaded platforms, to support application source
-// code compatibility. ACE_THR_PRI_FIFO_DEF should be used by
-// applications for default real-time thread priority.
-// ACE_THR_PRI_OTHER_DEF should be used for non-real-time priority.
-# if !defined(ACE_THR_PRI_FIFO_DEF)
-# define ACE_THR_PRI_FIFO_DEF 0
-# endif /* ! ACE_THR_PRI_FIFO_DEF */
-# if !defined(ACE_THR_PRI_OTHER_DEF)
-# define ACE_THR_PRI_OTHER_DEF 0
-# endif /* ! ACE_THR_PRI_OTHER_DEF */
-
-# endif /* ACE_HAS_THREADS */
-
-# if defined (ACE_PSOS)
-
-// Wrapper for NT events on pSOS.
-class ACE_OS_Export ACE_event_t
-{
- friend class ACE_OS;
-
-protected:
-
- /// Protect critical section.
- ACE_mutex_t lock_;
-
- /// Keeps track of waiters.
- ACE_cond_t condition_;
-
- /// Specifies if this is an auto- or manual-reset event.
- int manual_reset_;
-
- /// "True" if signaled.
- int is_signaled_;
-
- /// Number of waiting threads.
- u_long waiting_threads_;
-};
-
-# endif /* ACE_PSOS */
-
-// Standard C Library includes
-// NOTE: stdarg.h must be #included before stdio.h on LynxOS.
-# include /**/ <stdarg.h>
-# if !defined (ACE_HAS_WINCE)
-# include /**/ <assert.h>
-# include /**/ <stdio.h>
-// this is a nasty hack to get around problems with the
-// pSOS definition of BUFSIZ as the config table entry
-// (which is valued using the LC_BUFSIZ value anyway)
-# if defined (ACE_PSOS)
-# if defined (BUFSIZ)
-# undef BUFSIZ
-# endif /* defined (BUFSIZ) */
-# define BUFSIZ LC_BUFSIZ
-# endif /* defined (ACE_PSOS) */
-
-#if defined (ACE_PSOS_DIAB_MIPS)
-#undef size_t
-typedef unsigned int size_t;
-#endif
-
-# if !defined (ACE_LACKS_NEW_H)
-# if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-# include /**/ <new>
-# else
-# include /**/ <new.h>
-# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
-# endif /* ! ACE_LACKS_NEW_H */
-
-# if !defined (ACE_PSOS_DIAB_MIPS) && !defined (VXWORKS)
-# define ACE_DONT_INCLUDE_ACE_SIGNAL_H
-# include /**/ <signal.h>
-# undef ACE_DONT_INCLUDE_ACE_SIGNAL_H
-# endif /* ! ACE_PSOS_DIAB_MIPS && ! VXWORKS */
-
-# if ! defined (ACE_PSOS_DIAB_MIPS)
-# include /**/ <fcntl.h>
-# endif /* ! ACE_PSOS_DIAB_MIPS */
-# endif /* ACE_HAS_WINCE */
-
-# include /**/ <limits.h>
-# include /**/ <ctype.h>
-# if ! defined (ACE_PSOS_DIAB_MIPS)
-# include /**/ <string.h>
-# include /**/ <stdlib.h>
-# endif /* ! ACE_PSOS_DIAB_MIPS */
-# include /**/ <float.h>
-
-// This is defined by XOPEN to be a minimum of 16. POSIX.1g
-// also defines this value. platform-specific config.h can
-// override this if need be.
-# if !defined (IOV_MAX)
-# define IOV_MAX 16
-# endif /* IOV_MAX */
-
-# if !defined (ACE_IOV_MAX)
-#define ACE_IOV_MAX IOV_MAX
-# endif /* ACE_IOV_MAX */
-
-# if defined (ACE_PSOS_SNARFS_HEADER_INFO)
- // Header information snarfed from compiler provided header files
- // that are not included because there is already an identically
- // named file provided with pSOS, which does not have this info
- // from compiler supplied stdio.h
- extern FILE *fdopen(int, const char *);
- extern int getopt(int, char *const *, const char *);
- extern char *tempnam(const char *, const char *);
- extern "C" int fileno(FILE *);
-
-// #define fileno(stream) ((stream)->_file)
-
- // from compiler supplied string.h
- extern char *strdup (const char *);
-
- // from compiler supplied stat.h
- extern mode_t umask (mode_t);
- extern int mkfifo (const char *, mode_t);
- extern int mkdir (const char *, mode_t);
-
- // from compiler supplied stdlib.h
- extern int putenv (char *);
-
- int isatty (int h);
-
-# endif /* ACE_PSOS_SNARFS_HEADER_INFO */
-
-# if defined (ACE_NEEDS_SCHED_H)
-# include /**/ <sched.h>
-# endif /* ACE_NEEDS_SCHED_H */
-
-#if !defined (ACE_OSTREAM_TYPE)
-# if defined (ACE_LACKS_IOSTREAM_TOTALLY)
-# define ACE_OSTREAM_TYPE FILE
-# else /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-# define ACE_OSTREAM_TYPE ostream
-# endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-#endif /* ! ACE_OSTREAM_TYPE */
-
-#if !defined (ACE_DEFAULT_LOG_STREAM)
-# if defined (ACE_LACKS_IOSTREAM_TOTALLY)
-# define ACE_DEFAULT_LOG_STREAM 0
-# else /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-# define ACE_DEFAULT_LOG_STREAM (&cerr)
-# endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-#endif /* ! ACE_DEFAULT_LOG_STREAM */
-
-// If the user wants minimum IOStream inclusion, we will just include
-// the forward declarations
-# if defined (ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION)
-// Forward declaration for streams
-# include "ace/iosfwd.h"
-# else /* ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION */
-// Else they will get all the stream header files
-# include "ace/streams.h"
-# endif /* ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION */
-
-# if !defined (ACE_HAS_WINCE)
-# if ! defined (ACE_PSOS_DIAB_MIPS)
-# include /**/ <fcntl.h>
-# endif /* ! ACE_PSOS_DIAB_MIPS */
-# endif /* ACE_HAS_WINCE */
-
-// This must come after signal.h is #included.
-# if defined (SCO)
-# define SIGIO SIGPOLL
-# include /**/ <sys/regset.h>
-# endif /* SCO */
-
-# if defined ACE_HAS_BYTESEX_H
-# include /**/ <bytesex.h>
-# endif /* ACE_HAS_BYTESEX_H */
-# include "ace/Basic_Types.h"
-
-/* This should work for linux, solaris 5.6 and above, IRIX, OSF */
-# if defined (ACE_HAS_LLSEEK) || defined (ACE_HAS_LSEEK64)
-# if ACE_SIZEOF_LONG == 8
- typedef off_t ACE_LOFF_T;
-# elif defined (__sgi) || defined (AIX) || defined (HPUX) \
- || defined (__QNX__)
- typedef off64_t ACE_LOFF_T;
-# elif defined (__sun)
- typedef offset_t ACE_LOFF_T;
-# elif defined (WIN32) //Add by Nick Lin -- for win32 llseek
- typedef __int64 ACE_LOFF_T; //Add by Nick Lin -- for win32 llseek
-# else
- typedef loff_t ACE_LOFF_T;
-# endif
-# endif /* ACE_HAS_LLSEEK || ACE_HAS_LSEEK64 */
-
-// Type-safe, and unsigned.
-static const ACE_UINT32 ACE_U_ONE_SECOND_IN_MSECS = 1000U;
-static const ACE_UINT32 ACE_U_ONE_SECOND_IN_USECS = 1000000U;
-static const ACE_UINT32 ACE_U_ONE_SECOND_IN_NSECS = 1000000000U;
-
-# if defined (ACE_HAS_SIG_MACROS)
-# undef sigemptyset
-# undef sigfillset
-# undef sigaddset
-# undef sigdelset
-# undef sigismember
-# endif /* ACE_HAS_SIG_MACROS */
-
-// This must come after signal.h is #included. It's to counteract
-// the sigemptyset and sigfillset #defines, which only happen
-// when __OPTIMIZE__ is #defined (really!) on Linux.
-# if defined (linux) && defined (__OPTIMIZE__)
-# undef sigemptyset
-# undef sigfillset
-# endif /* linux && __OPTIMIZE__ */
-
-// Prototypes should come after ace/Basic_Types.h since some types may
-// be used in the prototypes.
-
-#if defined (ACE_LACKS_GETPGID_PROTOTYPE) && \
- !defined (_XOPEN_SOURCE) && !defined (_XOPEN_SOURCE_EXTENDED)
-extern "C" pid_t getpgid (pid_t pid);
-#endif /* ACE_LACKS_GETPGID_PROTOTYPE &&
- !_XOPEN_SOURCE && !_XOPEN_SOURCE_EXTENDED */
-
-#if defined (ACE_LACKS_STRPTIME_PROTOTYPE) && !defined (_XOPEN_SOURCE)
-extern "C" char *strptime (const char *s, const char *fmt, struct tm *tp);
-#endif /* ACE_LACKS_STRPTIME_PROTOTYPE */
-
-#if defined (ACE_LACKS_STRTOK_R_PROTOTYPE) && !defined (_POSIX_SOURCE)
-extern "C" char *strtok_r (char *s, const char *delim, char **save_ptr);
-#endif /* ACE_LACKS_STRTOK_R_PROTOTYPE */
-
-#if !defined (_LARGEFILE64_SOURCE)
-# if defined (ACE_LACKS_LSEEK64_PROTOTYPE) && \
- defined (ACE_LACKS_LLSEEK_PROTOTYPE)
-# error Define either ACE_LACKS_LSEEK64_PROTOTYPE or ACE_LACKS_LLSEEK_PROTOTYPE, not both!
-# elif defined (ACE_LACKS_LSEEK64_PROTOTYPE)
-extern "C" ACE_LOFF_T lseek64 (int fd, ACE_LOFF_T offset, int whence);
-# elif defined (ACE_LACKS_LLSEEK_PROTOTYPE)
-extern "C" ACE_LOFF_T llseek (int fd, ACE_LOFF_T offset, int whence);
-# endif
-#endif /* _LARGEFILE64_SOURCE */
-
-#if defined (ACE_LACKS_PREAD_PROTOTYPE) && (_XOPEN_SOURCE - 0) < 500
-// _XOPEN_SOURCE == 500 Single Unix conformance
-// It seems that _XOPEN_SOURCE == 500 means that the prototypes are
-// already defined in the system headers.
-extern "C" ssize_t pread (int fd,
- void *buf,
- size_t nbytes,
- off_t offset);
-
-extern "C" ssize_t pwrite (int fd,
- const void *buf,
- size_t n,
- off_t offset);
-#endif /* ACE_LACKS_PREAD_PROTOTYPE && (_XOPEN_SOURCE - 0) < 500 */
-
-# if defined (ACE_LACKS_UALARM_PROTOTYPE)
-extern "C" u_int ualarm (u_int usecs, u_int interval);
-# endif /* ACE_LACKS_UALARM_PROTOTYPE */
-
-# if defined (ACE_HAS_BROKEN_SENDMSG)
-typedef struct msghdr ACE_SENDMSG_TYPE;
-# else
-typedef const struct msghdr ACE_SENDMSG_TYPE;
-# endif /* ACE_HAS_BROKEN_SENDMSG */
-
-# if defined (ACE_HAS_BROKEN_RANDR)
-// The SunOS 5.4.X version of rand_r is inconsistent with the header
-// files...
-typedef u_int ACE_RANDR_TYPE;
-extern "C" int rand_r (ACE_RANDR_TYPE seed);
-# else
-# if defined (HPUX_10)
-// HP-UX 10.x's stdlib.h (long *) doesn't match that man page (u_int *)
-typedef long ACE_RANDR_TYPE;
-# else
-typedef u_int ACE_RANDR_TYPE;
-# endif /* HPUX_10 */
-# endif /* ACE_HAS_BROKEN_RANDR */
-
-# if defined (ACE_HAS_UTIME)
-# include /**/ <utime.h>
-# endif /* ACE_HAS_UTIME */
-
-# if !defined (ACE_HAS_MSG) && !defined (SCO)
-struct msghdr {};
-# endif /* ACE_HAS_MSG */
-
-# if defined (ACE_HAS_MSG) && defined (ACE_LACKS_MSG_ACCRIGHTS)
-# if !defined (msg_accrights)
-# undef msg_control
-# define msg_accrights msg_control
-# endif /* ! msg_accrights */
-
-# if !defined (msg_accrightslen)
-# undef msg_controllen
-# define msg_accrightslen msg_controllen
-# endif /* ! msg_accrightslen */
-# endif /* ACE_HAS_MSG && ACE_LACKS_MSG_ACCRIGHTS */
-
-# if !defined (ACE_HAS_SIG_ATOMIC_T)
-typedef int sig_atomic_t;
-# endif /* !ACE_HAS_SIG_ATOMIC_T */
-
-# if defined (ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES)
-// Prototypes for both signal() and struct sigaction are consistent..
-# if defined (ACE_HAS_SIG_C_FUNC)
-extern "C" {
-# endif /* ACE_HAS_SIG_C_FUNC */
-# if !defined (ACE_PSOS)
-typedef void (*ACE_SignalHandler)(int);
-typedef void (*ACE_SignalHandlerV)(int);
-# endif /* !defined (ACE_PSOS) */
-# if defined (ACE_HAS_SIG_C_FUNC)
-}
-# endif /* ACE_HAS_SIG_C_FUNC */
-# elif defined (ACE_HAS_LYNXOS_SIGNALS)
-typedef void (*ACE_SignalHandler)(...);
-typedef void (*ACE_SignalHandlerV)(...);
-# elif defined (ACE_HAS_TANDEM_SIGNALS)
-typedef void (*ACE_SignalHandler)(...);
-typedef void (*ACE_SignalHandlerV)(...);
-# elif defined (ACE_HAS_IRIX_53_SIGNALS)
-typedef void (*ACE_SignalHandler)(...);
-typedef void (*ACE_SignalHandlerV)(...);
-# elif defined (ACE_HAS_SPARCWORKS_401_SIGNALS)
-typedef void (*ACE_SignalHandler)(int, ...);
-typedef void (*ACE_SignalHandlerV)(int,...);
-# elif defined (ACE_HAS_SUNOS4_SIGNAL_T)
-typedef void (*ACE_SignalHandler)(...);
-typedef void (*ACE_SignalHandlerV)(...);
-# elif defined (ACE_HAS_SVR4_SIGNAL_T)
-// SVR4 Signals are inconsistent (e.g., see struct sigaction)..
-typedef void (*ACE_SignalHandler)(int);
-# if !defined (m88k) /* with SVR4_SIGNAL_T */
-typedef void (*ACE_SignalHandlerV)(void);
-# else
-typedef void (*ACE_SignalHandlerV)(int);
-# endif /* m88k */ /* with SVR4_SIGNAL_T */
-# elif defined (ACE_WIN32)
-typedef void (__cdecl *ACE_SignalHandler)(int);
-typedef void (__cdecl *ACE_SignalHandlerV)(int);
-# elif defined (ACE_HAS_UNIXWARE_SVR4_SIGNAL_T)
-typedef void (*ACE_SignalHandler)(int);
-typedef void (*ACE_SignalHandlerV)(...);
-# elif defined (INTEGRITY)
-typedef void (*ACE_SignalHandler)();
-typedef void (*ACE_SignalHandlerV)(int);
-# else /* This is necessary for some older broken version of cfront */
-# if defined (SIG_PF)
-# define ACE_SignalHandler SIG_PF
-# else
-typedef void (*ACE_SignalHandler)(int);
-# endif /* SIG_PF */
-typedef void (*ACE_SignalHandlerV)(...);
-# endif /* ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES */
-
-# if defined (BUFSIZ)
-# define ACE_STREAMBUF_SIZE BUFSIZ
-# else
-# define ACE_STREAMBUF_SIZE 1024
-# endif /* BUFSIZ */
-
-# if defined (ACE_WIN32)
-// Turn off warnings for /W4
-// To resume any of these warning: #pragma warning(default: 4xxx)
-// which should be placed after these defines
-
-# if !defined (ALL_WARNINGS) && defined(_MSC_VER) && !defined(ghs) && !defined(__MINGW32__)
-// #pragma warning(disable: 4101) // unreferenced local variable
-# pragma warning(disable: 4127) /* constant expression for TRACE/ASSERT */
-# pragma warning(disable: 4134) /* message map member fxn casts */
-# pragma warning(disable: 4511) /* private copy constructors are good to have */
-# pragma warning(disable: 4512) /* private operator= are good to have */
-# pragma warning(disable: 4514) /* unreferenced inlines are common */
-# pragma warning(disable: 4710) /* private constructors are disallowed */
-# pragma warning(disable: 4705) /* statement has no effect in optimized code */
-// #pragma warning(disable: 4701) // local variable *may* be used without init
-// #pragma warning(disable: 4702) // unreachable code caused by optimizations
-# pragma warning(disable: 4791) /* loss of debugging info in retail version */
-// #pragma warning(disable: 4204) // non-constant aggregate initializer
-# pragma warning(disable: 4275) /* deriving exported class from non-exported */
-# pragma warning(disable: 4251) /* using non-exported as public in exported */
-# pragma warning(disable: 4786) /* identifier was truncated to '255' characters in the browser information */
-# pragma warning(disable: 4097) /* typedef-name used as synonym for class-name */
-# endif /* !ALL_WARNINGS && _MSV_VER && !ghs && !__MINGW32__ */
-
-// STRICT type checking in WINDOWS.H enhances type safety for Windows
-// programs by using distinct types to represent all the different
-// HANDLES in Windows. So for example, STRICT prevents you from
-// mistakenly passing an HPEN to a routine expecting an HBITMAP.
-// Note that we only use this if we
-# if defined (ACE_HAS_STRICT) && (ACE_HAS_STRICT != 0)
-# if !defined (STRICT) /* may already be defined */
-# define STRICT
-# endif /* !STRICT */
-# endif /* ACE_HAS_STRICT */
-
-# if !defined (ACE_HAS_WINCE)
-# include /**/ <sys/timeb.h>
-# endif /* ACE_HAS_WINCE */
-
-// Need to work around odd glitches with NT.
-# if !defined (ACE_MAX_DEFAULT_PORT)
-# define ACE_MAX_DEFAULT_PORT 65535
-# endif /* ACE_MAX_DEFAULT_PORT */
-
-// We're on WinNT or Win95
-# define ACE_PLATFORM_A "Win32"
-# define ACE_PLATFORM_EXE_SUFFIX_A ".exe"
-
-// Used for dynamic linking
-# if !defined (ACE_DEFAULT_SVC_CONF)
-# if (ACE_USES_CLASSIC_SVC_CONF == 1)
-# define ACE_DEFAULT_SVC_CONF ACE_LIB_TEXT (".\\svc.conf")
-# else
-# define ACE_DEFAULT_SVC_CONF ACE_LIB_TEXT (".\\svc.conf.xml")
-# endif /* ACE_USES_CLASSIC_SVC_CONF ==1 */
-# endif /* ACE_DEFAULT_SVC_CONF */
-
-// The following are #defines and #includes that are specific to
-// WIN32.
-# if defined (ACE_HAS_WINCE)
-# define ACE_STDIN _fileno (stdin)
-# define ACE_STDOUT _fileno (stdout)
-# define ACE_STDERR _fileno (stderr)
-# else
-# define ACE_STDIN GetStdHandle (STD_INPUT_HANDLE)
-# define ACE_STDOUT GetStdHandle (STD_OUTPUT_HANDLE)
-# define ACE_STDERR GetStdHandle (STD_ERROR_HANDLE)
-# endif // ACE_HAS_WINCE
-
-// Default semaphore key and mutex name
-# if !defined (ACE_DEFAULT_SEM_KEY)
-# define ACE_DEFAULT_SEM_KEY "ACE_SEM_KEY"
-# endif /* ACE_DEFAULT_SEM_KEY */
-
-# define ACE_INVALID_SEM_KEY 0
-
-# if !defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
-# define ACE_SEH_TRY if (1)
-# define ACE_SEH_EXCEPT(X) while (0)
-# define ACE_SEH_FINALLY if (1)
-# elif defined(__BORLANDC__)
-# if (__BORLANDC__ >= 0x0530) /* Borland C++ Builder 3.0 */
-# define ACE_SEH_TRY try
-# define ACE_SEH_EXCEPT(X) __except(X)
-# define ACE_SEH_FINALLY __finally
-# else
-# define ACE_SEH_TRY if (1)
-# define ACE_SEH_EXCEPT(X) while (0)
-# define ACE_SEH_FINALLY if (1)
-# endif
-# elif defined (__IBMCPP__) && (__IBMCPP__ >= 400)
-# define ACE_SEH_TRY if (1)
-# define ACE_SEH_EXCEPT(X) while (0)
-# define ACE_SEH_FINALLY if (1)
-# else
-# define ACE_SEH_TRY __try
-# define ACE_SEH_EXCEPT(X) __except(X)
-# define ACE_SEH_FINALLY __finally
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-
-// The "null" device on Win32.
-# define ACE_DEV_NULL "nul"
-
-// Define the pathname separator characters for Win32 (ugh).
-# define ACE_DIRECTORY_SEPARATOR_STR_A "\\"
-# define ACE_DIRECTORY_SEPARATOR_CHAR_A '\\'
-# define ACE_LD_SEARCH_PATH ACE_LIB_TEXT ("PATH")
-# define ACE_LD_SEARCH_PATH_SEPARATOR_STR ACE_LIB_TEXT (";")
-# define ACE_DLL_SUFFIX ACE_LIB_TEXT (".dll")
-# if defined (__MINGW32__)
-# define ACE_DLL_PREFIX ACE_LIB_TEXT ("lib")
-# else /* __MINGW32__ */
-# define ACE_DLL_PREFIX ACE_LIB_TEXT ("")
-# endif /* __MINGW32__ */
-
-// This will help until we figure out everything:
-# define NFDBITS 32 /* only used in unused functions... */
-// These two may be used for internal flags soon:
-# define MAP_PRIVATE 1
-# define MAP_SHARED 2
-# define MAP_FIXED 4
-
-# define RUSAGE_SELF 1
-
-struct shmaddr { };
-struct msqid_ds {};
-
-/// Fake the UNIX rusage structure. Perhaps we can add more to this
-/// later on?
-struct rusage
-{
- FILETIME ru_utime;
- FILETIME ru_stime;
-};
-
-// MMAP flags
-# define PROT_READ PAGE_READONLY
-# define PROT_WRITE PAGE_READWRITE
-# define PROT_RDWR PAGE_READWRITE
-/* If we can find suitable use for these flags, here they are:
-PAGE_WRITECOPY
-PAGE_EXECUTE
-PAGE_EXECUTE_READ
-PAGE_EXECUTE_READWRITE
-PAGE_EXECUTE_WRITECOPY
-PAGE_GUARD
-PAGE_NOACCESS
-PAGE_NOCACHE */
-
-# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
-# include /**/ <ws2tcpip.h>
-# endif /* ACE_HAS_WINSOCK2 */
-
-// error code mapping
-# define ETIME ERROR_SEM_TIMEOUT
-# define EWOULDBLOCK WSAEWOULDBLOCK
-# define EINPROGRESS WSAEINPROGRESS
-# define EALREADY WSAEALREADY
-# define ENOTSOCK WSAENOTSOCK
-# define EDESTADDRREQ WSAEDESTADDRREQ
-# define EMSGSIZE WSAEMSGSIZE
-# define EPROTOTYPE WSAEPROTOTYPE
-# define ENOPROTOOPT WSAENOPROTOOPT
-# define EPROTONOSUPPORT WSAEPROTONOSUPPORT
-# define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
-# define EOPNOTSUPP WSAEOPNOTSUPP
-# define EPFNOSUPPORT WSAEPFNOSUPPORT
-# define EAFNOSUPPORT WSAEAFNOSUPPORT
-# define EADDRINUSE WSAEADDRINUSE
-# define EADDRNOTAVAIL WSAEADDRNOTAVAIL
-# define ENETDOWN WSAENETDOWN
-# define ENETUNREACH WSAENETUNREACH
-# define ENETRESET WSAENETRESET
-# define ECONNABORTED WSAECONNABORTED
-# define ECONNRESET WSAECONNRESET
-# define ENOBUFS WSAENOBUFS
-# define EISCONN WSAEISCONN
-# define ENOTCONN WSAENOTCONN
-# define ESHUTDOWN WSAESHUTDOWN
-# define ETOOMANYREFS WSAETOOMANYREFS
-# define ETIMEDOUT WSAETIMEDOUT
-# define ECONNREFUSED WSAECONNREFUSED
-# define ELOOP WSAELOOP
-# define EHOSTDOWN WSAEHOSTDOWN
-# define EHOSTUNREACH WSAEHOSTUNREACH
-# define EPROCLIM WSAEPROCLIM
-# define EUSERS WSAEUSERS
-# define EDQUOT WSAEDQUOT
-# define ESTALE WSAESTALE
-# define EREMOTE WSAEREMOTE
-// Grrr! ENAMETOOLONG and ENOTEMPTY are already defined by the horrible
-// 'standard' library.
-// #define ENAMETOOLONG WSAENAMETOOLONG
-
-# if defined (__BORLANDC__) && (__BORLANDC__ <= 0x540)
-# define ENOTEMPTY WSAENOTEMPTY
-# endif /* __BORLANDC__ && __BORLANDC__ <= 0x540*/
-
-
-# if !defined (ACE_HAS_WINCE)
-# include /**/ <time.h>
-# include /**/ <direct.h>
-# include /**/ <process.h>
-# include /**/ <io.h>
-# endif /* ACE_HAS_WINCE */
-
-# if defined (__BORLANDC__)
-# include /**/ <fcntl.h>
-# define _chdir chdir
-# define _ftime ftime
-# undef _access
-# define _access access
-# if (__BORLANDC__ <= 0x540)
-# define _getcwd getcwd
-# define _stat stat
-# endif
-# define _isatty isatty
-# define _umask umask
-# define _fstat fstat
-# define _stricmp stricmp
-# define _strnicmp strnicmp
-
-# define _timeb timeb
-
-# define _O_CREAT O_CREAT
-# define _O_EXCL O_EXCL
-# define _O_TRUNC O_TRUNC
- // 0x0800 is used for O_APPEND. 0x08 looks free.
-# define _O_TEMPORARY 0x08 /* see fcntl.h */
-# define _O_RDWR O_RDWR
-# define _O_WRONLY O_WRONLY
-# define _O_RDONLY O_RDONLY
-# define _O_APPEND O_APPEND
-# define _O_BINARY O_BINARY
-# define _O_TEXT O_TEXT
-# endif /* __BORLANDC__ */
-
-typedef OVERLAPPED ACE_OVERLAPPED;
-
-typedef DWORD ACE_thread_t;
-# if !defined(__MINGW32__)
-typedef long pid_t;
-# endif /* __MINGW32__ */
-typedef HANDLE ACE_hthread_t;
-
-#define ACE_INVALID_PID ((pid_t) -1)
-# if defined (ACE_HAS_TSS_EMULATION)
- typedef DWORD ACE_OS_thread_key_t;
- typedef u_int ACE_thread_key_t;
-# else /* ! ACE_HAS_TSS_EMULATION */
- typedef DWORD ACE_thread_key_t;
-# endif /* ! ACE_HAS_TSS_EMULATION */
-
-# if !defined (ACE_LACKS_LONGLONG_T)
-// 64-bit quad-word definitions.
-typedef unsigned __int64 ACE_QWORD;
-typedef unsigned __int64 ACE_hrtime_t;
-inline ACE_QWORD ACE_MAKE_QWORD (DWORD lo, DWORD hi) { return ACE_QWORD (lo) | (ACE_QWORD (hi) << 32); }
-inline DWORD ACE_LOW_DWORD (ACE_QWORD q) { return (DWORD) q; }
-inline DWORD ACE_HIGH_DWORD (ACE_QWORD q) { return (DWORD) (q >> 32); }
-# else
-// Can't find ANY place that ACE_QWORD is used, but hrtime_t is.
-typedef ACE_UINT64 ACE_hrtime_t;
-# endif // ACE_LACKS_LONGLONG_T
-
-// Win32 dummies to help compilation.
-
-// These are used in SPIPE_Acceptor/Connector, but are ignored at runtime.
-# if defined (ACE_HAS_WINCE)
-# if !defined (PIPE_TYPE_MESSAGE)
-# define PIPE_TYPE_MESSAGE 0
-# endif
-# if !defined (PIPE_READMODE_MESSAGE)
-# define PIPE_READMODE_MESSAGE 0
-# endif
-# if !defined (PIPE_WAIT)
-# define PIPE_WAIT 0
-# endif
-# endif /* ACE_HAS_WINCE */
-
-# if !defined (__BORLANDC__)
-typedef DWORD nlink_t;
-# if !defined(__MINGW32__)
-typedef u_short mode_t;
-# endif /* !__MINGW32__ */
-typedef long uid_t;
-typedef long gid_t;
-# endif /* __BORLANDC__ */
-typedef char *caddr_t;
-
-typedef DWORD ACE_exitcode;
-# define ACE_SYSCALL_FAILED 0xFFFFFFFF
-
-// Needed to map calls to NT transparently.
-# define MS_ASYNC 0
-# define MS_INVALIDATE 0
-
-// Reliance on CRT - I don't really like this.
-
-# define O_NDELAY 1
-# if !defined (MAXPATHLEN)
-# define MAXPATHLEN _MAX_PATH
-# endif /* !MAXPATHLEN */
-# define MAXNAMLEN _MAX_FNAME
-# define EADDRINUSE WSAEADDRINUSE
-
-/// The ordering of the fields in this struct is important. It has to
-/// match those in WSABUF.
-struct iovec
-{
- /// byte count to read/write
- u_long iov_len;
- /// data to be read/written
- char *iov_base;
-
- // WSABUF is a Winsock2-only type.
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- operator WSABUF &(void) { return *((WSABUF *) this); }
-#endif /* defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) */
-};
-
-struct msghdr
-{
- /// Optional address
- sockaddr * msg_name;
-
- /// Size of address
- int msg_namelen;
-
- /// Scatter/gather array
- iovec *msg_iov;
-
- /// # elements in msg_iov
- int msg_iovlen;
-
- /// Access rights sent/received
- caddr_t msg_accrights;
-
- int msg_accrightslen;
-};
-
-typedef int ACE_idtype_t;
-typedef DWORD ACE_id_t;
-# define ACE_SELF (0)
-typedef int ACE_pri_t;
-
-// Dynamic loading-related types - used for dlopen and family.
-typedef HINSTANCE ACE_SHLIB_HANDLE;
-# define ACE_SHLIB_INVALID_HANDLE 0
-# define ACE_DEFAULT_SHLIB_MODE 0
-
-# elif defined (ACE_PSOS)
-
-typedef ACE_UINT64 ACE_hrtime_t;
-
-# if defined (ACE_SIGINFO_IS_SIGINFO_T)
- typedef struct siginfo siginfo_t;
-# endif /* ACE_LACKS_SIGINFO_H */
-
-# else /* !defined (ACE_WIN32) && !defined (ACE_PSOS) */
-
-# if defined (m88k)
-# define RUSAGE_SELF 1
-# endif /* m88k */
-
-// Default port is MAX_SHORT.
-# define ACE_MAX_DEFAULT_PORT 65535
-
-// Default semaphore key
-# if !defined (ACE_DEFAULT_SEM_KEY)
-# define ACE_DEFAULT_SEM_KEY 1234
-# endif /* ACE_DEFAULT_SEM_KEY */
-
-# define ACE_INVALID_SEM_KEY -1
-
-// Define the pathname separator characters for UNIX.
-# define ACE_DIRECTORY_SEPARATOR_STR_A "/"
-# define ACE_DIRECTORY_SEPARATOR_CHAR_A '/'
-
-// We're some kind of UNIX...
-# define ACE_PLATFORM_A "UNIX"
-# define ACE_PLATFORM_EXE_SUFFIX_A ""
-
-# if !defined (ACE_LD_SEARCH_PATH)
-# define ACE_LD_SEARCH_PATH "LD_LIBRARY_PATH"
-# endif /* ACE_LD_SEARCH_PATH */
-# if !defined (ACE_LD_SEARCH_PATH_SEPARATOR_STR)
-# define ACE_LD_SEARCH_PATH_SEPARATOR_STR ":"
-# endif /* ACE_LD_SEARCH_PATH_SEPARATOR_STR */
-
-# if !defined (ACE_DLL_SUFFIX)
-# define ACE_DLL_SUFFIX ".so"
-# endif /* ACE_DLL_SUFFIX */
-# if !defined (ACE_DLL_PREFIX)
-# define ACE_DLL_PREFIX "lib"
-# endif /* ACE_DLL_PREFIX */
-
-// Used for dynamic linking.
-# if !defined (ACE_DEFAULT_SVC_CONF)
-# if (ACE_USES_CLASSIC_SVC_CONF == 1)
-# define ACE_DEFAULT_SVC_CONF ACE_LIB_TEXT ("./svc.conf")
-# else
-# define ACE_DEFAULT_SVC_CONF ACE_LIB_TEXT ("./svc.conf.xml")
-# endif /* ACE_USES_CLASSIC_SVC_CONF ==1 */
-# endif /* ACE_DEFAULT_SVC_CONF */
-
-// The following are #defines and #includes that are specific to UNIX.
-
-# define ACE_STDIN 0
-# define ACE_STDOUT 1
-# define ACE_STDERR 2
-
-// Be consistent with Winsock naming
-typedef int ACE_exitcode;
-# define ACE_INVALID_HANDLE -1
-# define ACE_SYSCALL_FAILED -1
-
-# define ACE_SEH_TRY if (1)
-# define ACE_SEH_EXCEPT(X) while (0)
-# define ACE_SEH_FINALLY if (1)
-
-# if !defined (ACE_INVALID_PID)
-# define ACE_INVALID_PID ((pid_t) -1)
-# endif /* ACE_INVALID_PID */
-
-// The "null" device on UNIX.
-# define ACE_DEV_NULL "/dev/null"
-
-/**
- * @class ACE_event_t
- *
- * @brief Wrapper for NT events on UNIX.
- */
-class ACE_OS_Export ACE_event_t
-{
- friend class ACE_OS;
-protected:
- /// Protect critical section.
- ACE_mutex_t lock_;
-
- /// Keeps track of waiters.
- ACE_cond_t condition_;
-
- /// Specifies if this is an auto- or manual-reset event.
- int manual_reset_;
-
- /// "True" if signaled.
- int is_signaled_;
-
- /// Number of waiting threads.
- u_long waiting_threads_;
-};
-
-struct ACE_OVERLAPPED
-{
- u_long Internal;
- u_long InternalHigh;
- u_long Offset;
- u_long OffsetHigh;
- ACE_HANDLE hEvent;
-};
-
-
-// Add some typedefs and macros to enhance Win32 conformance...
-# if !defined (LPSECURITY_ATTRIBUTES)
-# define LPSECURITY_ATTRIBUTES int
-# endif /* !defined LPSECURITY_ATTRIBUTES */
-# if !defined (GENERIC_READ)
-# define GENERIC_READ 0
-# endif /* !defined GENERIC_READ */
-# if !defined (FILE_SHARE_READ)
-# define FILE_SHARE_READ 0
-# endif /* !defined FILE_SHARE_READ */
-# if !defined (OPEN_EXISTING)
-# define OPEN_EXISTING 0
-# endif /* !defined OPEN_EXISTING */
-# if !defined (FILE_ATTRIBUTE_NORMAL)
-# define FILE_ATTRIBUTE_NORMAL 0
-# endif /* !defined FILE_ATTRIBUTE_NORMAL */
-# if !defined (MAXIMUM_WAIT_OBJECTS)
-# define MAXIMUM_WAIT_OBJECTS 0
-# endif /* !defined MAXIMUM_WAIT_OBJECTS */
-# if !defined (FILE_FLAG_OVERLAPPED)
-# define FILE_FLAG_OVERLAPPED 0
-# endif /* !defined FILE_FLAG_OVERLAPPED */
-# if !defined (FILE_FLAG_SEQUENTIAL_SCAN)
-# define FILE_FLAG_SEQUENTIAL_SCAN 0
-# endif /* FILE_FLAG_SEQUENTIAL_SCAN */
-# if !defined(FILE_FLAG_WRITE_THROUGH)
-# define FILE_FLAG_WRITE_THROUGH 0
-# endif /* !defined FILE_FLAG_WRITE_THROUGH */
-# if !defined(PIPE_WAIT)
-# define PIPE_WAIT 0
-# endif /* !defined PIPE_WAIT */
-# if !defined(PIPE_NOWAIT)
-# define PIPE_NOWAIT 0
-# endif /* !defined PIPE_WAIT */
-# if !defined(PIPE_READMODE_BYTE)
-# define PIPE_READMODE_BYTE 0
-# endif /* !defined PIPE_READMODE_BYTE */
-# if !defined(PIPE_READMODE_MESSAGE)
-# define PIPE_READMODE_MESSAGE 0
-# endif /* !defined PIPE_READMODE_MESSAGE */
-# if !defined(PIPE_TYPE_BYTE)
-# define PIPE_TYPE_BYTE 0
-# endif /* !defined PIPE_TYPE_BYTE */
-# if !defined(PIPE_TYPE_MESSAGE)
-# define PIPE_TYPE_MESSAGE 0
-# endif /* !defined PIPE_TYPE_MESSAGE */
-
-# if defined (ACE_HAS_BROKEN_IF_HEADER)
-struct ifafilt;
-# endif /* ACE_HAS_BROKEN_IF_HEADER */
-
-# if defined (ACE_HAS_AIX_BROKEN_SOCKET_HEADER)
-# undef __cplusplus
-# include /**/ <sys/socket.h>
-# define __cplusplus
-# else
-# include /**/ <sys/socket.h>
-# endif /* ACE_HAS_AIX_BROKEN_SOCKET_HEADER */
-
-extern "C"
-{
-# if defined (VXWORKS)
- struct hostent {
- char *h_name; /* official name of host */
- char **h_aliases; /* aliases: not used on VxWorks */
- int h_addrtype; /* host address type */
- int h_length; /* address length */
- char **h_addr_list; /* (first, only) address from name server */
-# define h_addr h_addr_list[0] /* the first address */
- };
-# elif defined (ACE_HAS_CYGWIN32_SOCKET_H)
-# include /**/ <cygwin32/socket.h>
-# else
-# if defined (ACE_HAS_STL_QUEUE_CONFLICT)
-# define queue _Queue_
-# endif /* ACE_HAS_STL_QUEUE_CONFLICT */
-# include /**/ <netdb.h>
-# if defined (ACE_HAS_STL_QUEUE_CONFLICT)
-# undef queue
-# endif /* ACE_HAS_STL_QUEUE_CONFLICT */
-# endif /* VXWORKS */
-
-
-// This part if to avoid STL name conflict with the map structure
-// in net/if.h.
-# if defined (ACE_HAS_STL_MAP_CONFLICT)
-# define map _Resource_Allocation_Map_
-# endif /* ACE_HAS_STL_MAP_CONFLICT */
-# include /**/ <net/if.h>
-# if defined (ACE_HAS_STL_MAP_CONFLICT)
-# undef map
-# endif /* ACE_HAS_STL_MAP_CONFLICT */
-
-# if defined (ACE_HAS_STL_QUEUE_CONFLICT)
-# define queue _Queue_
-# endif /* ACE_HAS_STL_QUEUE_CONFLICT */
-# include /**/ <netinet/in.h>
-# if defined (ACE_HAS_STL_QUEUE_CONFLICT)
-# undef queue
-# endif /* ACE_HAS_STL_QUEUE_CONFLICT */
-
-# if defined (ACE_VXWORKS) && ACE_VXWORKS <= 0x540
- // Work around a lack of ANSI prototypes for these functions on VxWorks.
- unsigned long inet_addr (const char *);
- char *inet_ntoa (const struct in_addr);
- struct in_addr inet_makeaddr (const int, const int);
- unsigned long inet_network (const char *);
-# else /* ! (ACE_VXWORKS) && ACE_VXWORKS <= 0x540 */
-# include /**/ <arpa/inet.h>
-# endif /* ! (ACE_VXWORKS) && ACE_VXWORKS <= 0x540 */
-}
-# if !defined (ACE_LACKS_TCP_H)
-# if defined(ACE_HAS_CONFLICTING_XTI_MACROS)
-# if defined(TCP_NODELAY)
-# undef TCP_NODELAY
-# endif
-# if defined(TCP_MAXSEG)
-# undef TCP_MAXSEG
-# endif
-# endif
-# include /**/ <netinet/tcp.h>
-# endif /* ACE_LACKS_TCP_H */
-
-# if defined (__Lynx__)
-# ifndef howmany
-# define howmany(x, y) (((x)+((y)-1))/(y))
-# endif /* howmany */
-# endif /* __Lynx__ */
-
-# if defined (CHORUS)
-# include /**/ <chorus.h>
-# if !defined(CHORUS_4)
-# include /**/ <cx/select.h>
-# else
-# include /**/ <stdio.h>
-# endif
-# include /**/ <sys/uio.h>
-# include /**/ <time.h>
-# include /**/ <stdfileio.h>
-# include /**/ <am/afexec.h>
-# include /**/ <sys/types.h>
-# include /**/ <sys/signal.h>
-# include /**/ <sys/wait.h>
-# include /**/ <pwd.h>
-# include /**/ <timer/chBench.h>
-extern_C int getgid __((void));
-extern_C int getuid __((void));
-extern_C char* getcwd __((char* buf, size_t size));
-extern_C int pipe __((int* fildes));
-extern_C int gethostname __((char*, size_t));
-
-// This must come after limits.h is included
-# define MAXPATHLEN _POSIX_PATH_MAX
-
-# if !defined(CHORUS_4)
-typedef cx_fd_mask fd_mask;
-typedef void (*__sighandler_t)(int); // keep Signal compilation happy
-# endif
-# ifndef howmany
-# define howmany(x, y) (((x)+((y)-1))/(y))
-# endif /* howmany */
-# elif defined (CYGWIN32)
-# include /**/ <sys/uio.h>
-# include /**/ <sys/file.h>
-# include /**/ <sys/time.h>
-# include /**/ <sys/resource.h>
-# include /**/ <sys/wait.h>
-# include /**/ <pwd.h>
-# elif defined (__QNX__)
-# include /**/ <sys/uio.h>
-# include /**/ <sys/ipc.h>
-# include /**/ <sys/sem.h>
-# include /**/ <sys/time.h>
-# include /**/ <sys/wait.h>
-# include /**/ <sys/resource.h>
-# include /**/ <pwd.h>
- // sets O_NDELAY
-# include /**/ <unix.h>
-# include /**/ <sys/param.h> /* for NBBY */
- typedef long fd_mask;
-# if !defined (NFDBITS)
-# define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */
-# endif /* ! NFDBITS */
-# if !defined (howmany)
-# define howmany(x, y) (((x)+((y)-1))/(y))
-# endif /* ! howmany */
-# elif defined(__rtems__)
-# include /**/ <sys/file.h>
-# include /**/ <sys/resource.h>
-# include /**/ <sys/fcntl.h>
-# include /**/ <sys/time.h>
-# include /**/ <sys/utsname.h>
-# include /**/ <sys/wait.h>
-# include /**/ <pwd.h>
-
-extern "C"
-{
- int select (int n, fd_set *readfds, fd_set *writefds,
- fd_set *exceptfds, const struct timeval *timeout);
-};
-# elif ! defined (VXWORKS) && ! defined (INTEGRITY)
-# include /**/ <sys/uio.h>
-# include /**/ <sys/ipc.h>
-# if !defined(ACE_LACKS_SYSV_SHMEM)
-// No reason to #include this if the platform lacks support for SHMEM
-# include /**/ <sys/shm.h>
-# endif /* ACE_LACKS_SYSV_SHMEM */
-# include /**/ <sys/sem.h>
-# include /**/ <sys/file.h>
-# include /**/ <sys/time.h>
-# include /**/ <sys/resource.h>
-# include /**/ <sys/wait.h>
-# include /**/ <pwd.h>
-# endif /* ! VXWORKS */
-# include /**/ <sys/ioctl.h>
-
-// IRIX5 defines bzero() in this odd file...
-# if defined (ACE_HAS_BSTRING)
-# include /**/ <bstring.h>
-# endif /* ACE_HAS_BSTRING */
-
-// AIX defines bzero() in this odd file...
-# if defined (ACE_HAS_STRINGS)
-# include /**/ <strings.h>
-# endif /* ACE_HAS_STRINGS */
-
-# if defined (ACE_HAS_TERM_IOCTLS)
-# if defined (__QNX__)
-# include /**/ <termios.h>
-# else /* ! __QNX__ */
-# include /**/ <sys/termios.h>
-# endif /* ! __QNX__ */
-# if defined (HPUX)
-# include /**/ <sys/modem.h>
-# endif /* HPUX */
-# endif /* ACE_HAS_TERM_IOCTLS */
-
-#if !defined (VMIN)
-#define ACE_VMIN 4
-#else
-#define ACE_VMIN VMIN
-#endif /* VMIN */
-
-#if !defined (VTIME)
-#define ACE_VTIME 5
-#else
-#define ACE_VTIME VTIME
-#endif /* VTIME */
-
-# if defined (ACE_HAS_AIO_CALLS)
-# include /**/ <aio.h>
-# endif /* ACE_HAS_AIO_CALLS */
-
-# if !defined (ACE_LACKS_PARAM_H)
-# include /**/ <sys/param.h>
-# endif /* ACE_LACKS_PARAM_H */
-
-// This is here for ACE_OS::num_processors_online(). On HP-UX, it
-// needs sys/param.h (above) and sys/pstat.h. The implementation of the
-// num_processors_online() method also uses 'defined (__hpux)' to decide
-// whether or not to try the syscall.
-# if defined (__hpux)
-# include /**/ <sys/pstat.h>
-# endif /* __hpux **/
-
-# if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS) && !defined (VXWORKS)
-# include /**/ <sys/un.h>
-# endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
-
-# if defined (ACE_HAS_SIGINFO_T)
-# if !defined (ACE_LACKS_SIGINFO_H)
-# if defined (__QNX__) || defined (__OpenBSD__)
-# include /**/ <sys/siginfo.h>
-# elif defined(__rtems__)
-# include /**/ <signal.h>
-# else /* __QNX__ || __OpenBSD__ */
-# include /**/ <siginfo.h>
-# endif /* __QNX__ || __OpenBSD__ */
-# endif /* ACE_LACKS_SIGINFO_H */
-# if !defined (ACE_LACKS_UCONTEXT_H)
-# include /**/ <ucontext.h>
-# endif /* ACE_LACKS_UCONTEXT_H */
-# endif /* ACE_HAS_SIGINFO_T */
-
-# if defined (ACE_HAS_POLL)
-# include /**/ <poll.h>
-# endif /* ACE_HAS_POLL */
-
-# if defined (ACE_HAS_STREAMS)
-# if defined (AIX)
-# if !defined (_XOPEN_EXTENDED_SOURCE)
-# define _XOPEN_EXTENDED_SOURCE
-# endif /* !_XOPEN_EXTENDED_SOURCE */
-# include /**/ <stropts.h>
-# undef _XOPEN_EXTENDED_SOURCE
-# else
-# include /**/ <stropts.h>
-# endif /* AIX */
-# endif /* ACE_HAS_STREAMS */
-
-# if defined (DIGITAL_UNIX)
- // sigwait is yet another macro on Digital UNIX 4.0, just causing
- // trouble when introducing member functions with the same name.
- // Thanks to Thilo Kielmann" <kielmann@informatik.uni-siegen.de> for
- // this fix.
-# if defined (__DECCXX_VER)
-# undef sigwait
- // cxx on Digital Unix 4.0 needs this declaration. With it,
- // <::_Psigwait> works with cxx -pthread. g++ does _not_ need
- // it.
- extern "C" int _Psigwait __((const sigset_t *set, int *sig));
-# elif defined (__KCC)
-# undef sigwait
- inline int sigwait (const sigset_t* set, int* sig)
- { return _Psigwait (set, sig); }
-# endif /* __DECCXX_VER */
-# elif !defined (ACE_HAS_SIGWAIT)
-# if defined(__rtems__)
- extern "C" int sigwait (const sigset_t *set, int *sig);
-# else
- extern "C" int sigwait (sigset_t *set);
-# endif /* __rtems__ */
-# endif /* ! DIGITAL_UNIX && ! ACE_HAS_SIGWAIT */
-
-# if defined (ACE_HAS_SELECT_H)
-# include /**/ <sys/select.h>
-# endif /* ACE_HAS_SELECT_H */
-
-# if defined (ACE_HAS_ALLOCA_H)
-# include /**/ <alloca.h>
-# endif /* ACE_HAS_ALLOCA_H */
-
-/* Set the proper handle type for dynamically-loaded libraries. */
-/* Also define a default 'mode' for loading a library - the names and values */
-/* differ between OSes, so if you write code that uses the mode, be careful */
-/* of the platform differences. */
-# if defined (ACE_HAS_SVR4_DYNAMIC_LINKING)
-# if defined (ACE_HAS_DLFCN_H_BROKEN_EXTERN_C)
-extern "C" {
-# endif /* ACE_HAS_DLFCN_H_BROKEN_EXTERN_C */
-# include /**/ <dlfcn.h>
-# if defined (ACE_HAS_DLFCN_H_BROKEN_EXTERN_C)
-}
-# endif /* ACE_HAS_DLFCN_H_BROKEN_EXTERN_C */
- typedef void *ACE_SHLIB_HANDLE;
-# define ACE_SHLIB_INVALID_HANDLE 0
-# if defined (__KCC) && defined(RTLD_GROUP) && defined(RTLD_NODELETE)
-# define ACE_DEFAULT_SHLIB_MODE RTLD_LAZY | RTLD_GROUP | RTLD_NODELETE
-# else
-# define ACE_DEFAULT_SHLIB_MODE RTLD_LAZY
-# endif /* KCC */
-# elif defined (__hpux)
-# if defined(__GNUC__) || __cplusplus >= 199707L
-# include /**/ <dl.h>
-# else
-# include /**/ <cxxdl.h>
-# endif /* (g++ || HP aC++) vs. HP C++ */
- typedef shl_t ACE_SHLIB_HANDLE;
-# define ACE_SHLIB_INVALID_HANDLE 0
-# define ACE_DEFAULT_SHLIB_MODE BIND_DEFERRED
-# else
- typedef void *ACE_SHLIB_HANDLE;
-# define ACE_SHLIB_INVALID_HANDLE 0
-# define ACE_DEFAULT_SHLIB_MODE RTLD_LAZY
-
-# endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */
-
-#if !defined (RTLD_LAZY)
-#define RTLD_LAZY 1
-#endif /* !RTLD_LAZY */
-
-#if !defined (RTLD_NOW)
-#define RTLD_NOW 2
-#endif /* !RTLD_NOW */
-
-#if !defined (RTLD_GLOBAL)
-#define RTLD_GLOBAL 3
-#endif /* !RTLD_GLOBAL */
-
-# if defined (ACE_HAS_SOCKIO_H)
-# include /**/ <sys/sockio.h>
-# endif /* ACE_HAS_SOCKIO_ */
-
-// There must be a better way to do this...
-# if !defined (RLIMIT_NOFILE)
-# if defined (linux) || defined (AIX) || defined (SCO)
-# if defined (RLIMIT_OFILE)
-# define RLIMIT_NOFILE RLIMIT_OFILE
-# else
-# define RLIMIT_NOFILE 200
-# endif /* RLIMIT_OFILE */
-# endif /* defined (linux) || defined (AIX) || defined (SCO) */
-# endif /* RLIMIT_NOFILE */
-
-# if defined (ACE_LACKS_MMAP)
-# define PROT_READ 0
-# define PROT_WRITE 0
-# define PROT_EXEC 0
-# define PROT_NONE 0
-# define PROT_RDWR 0
-# define MAP_PRIVATE 0
-# define MAP_SHARED 0
-# define MAP_FIXED 0
-# endif /* ACE_LACKS_MMAP */
-
-// Fixes a problem with HP/UX.
-# if defined (ACE_HAS_BROKEN_MMAP_H)
-extern "C"
-{
-# include /**/ <sys/mman.h>
-}
-# elif !defined (ACE_LACKS_MMAP)
-# include /**/ <sys/mman.h>
-# endif /* ACE_HAS_BROKEN_MMAP_H */
-
-// OSF1 has problems with sys/msg.h and C++...
-# if defined (ACE_HAS_BROKEN_MSG_H)
-# define _KERNEL
-# endif /* ACE_HAS_BROKEN_MSG_H */
-# if !defined (ACE_LACKS_SYSV_MSG_H)
-# include /**/ <sys/msg.h>
-# endif /* ACE_LACKS_SYSV_MSG_H */
-# if defined (ACE_HAS_BROKEN_MSG_H)
-# undef _KERNEL
-# endif /* ACE_HAS_BROKEN_MSG_H */
-
-# if defined (ACE_LACKS_SYSV_MSQ_PROTOS)
-extern "C"
-{
- int msgget (key_t, int);
- int msgrcv (int, void *, size_t, long, int);
- int msgsnd (int, const void *, size_t, int);
- int msgctl (int, int, struct msqid_ds *);
-}
-# endif /* ACE_LACKS_SYSV_MSQ_PROTOS */
-
-# if defined (ACE_HAS_PRIOCNTL)
-# include /**/ <sys/priocntl.h>
-# endif /* ACE_HAS_PRIOCNTL */
-
-# if defined (ACE_HAS_IDTYPE_T)
- typedef idtype_t ACE_idtype_t;
-# else
- typedef int ACE_idtype_t;
-# endif /* ACE_HAS_IDTYPE_T */
-
-# if defined (ACE_HAS_STHREADS) || defined (DIGITAL_UNIX)
-# if defined (ACE_LACKS_PRI_T)
- typedef int pri_t;
-# endif /* ACE_LACKS_PRI_T */
- typedef id_t ACE_id_t;
-# define ACE_SELF P_MYID
- typedef pri_t ACE_pri_t;
-# else /* ! ACE_HAS_STHREADS && ! DIGITAL_UNIX */
- typedef long ACE_id_t;
-# define ACE_SELF (-1)
- typedef short ACE_pri_t;
-# endif /* ! ACE_HAS_STHREADS && ! DIGITAL_UNIX */
-
-# if defined (ACE_HAS_HI_RES_TIMER) && !defined (ACE_LACKS_LONGLONG_T)
- /* hrtime_t is defined on systems (Suns) with ACE_HAS_HI_RES_TIMER */
- typedef hrtime_t ACE_hrtime_t;
-# else /* ! ACE_HAS_HI_RES_TIMER || ACE_LACKS_LONGLONG_T */
- typedef ACE_UINT64 ACE_hrtime_t;
-# endif /* ! ACE_HAS_HI_RES_TIMER || ACE_LACKS_LONGLONG_T */
-
-# endif /* !defined (ACE_WIN32) && !defined (ACE_PSOS) */
-
-// Define the Wide character and normal versions of some of the string macros
-# if defined (ACE_HAS_WCHAR)
-# define ACE_DIRECTORY_SEPARATOR_STR_W ACE_TEXT_WIDE(ACE_DIRECTORY_SEPARATOR_STR_A)
-# define ACE_DIRECTORY_SEPARATOR_CHAR_W ACE_TEXT_WIDE(ACE_DIRECTORY_SEPARATOR_CHAR_A)
-# define ACE_PLATFORM_W ACE_TEXT_WIDE(ACE_PLATFORM_A)
-# define ACE_PLATFORM_EXE_SUFFIX_W ACE_TEXT_WIDE(ACE_PLATFORM_EXE_SUFFIX_A)
-# endif /* ACE_HAS_WCHAR */
-
-# define ACE_DIRECTORY_SEPARATOR_STR ACE_LIB_TEXT (ACE_DIRECTORY_SEPARATOR_STR_A)
-# define ACE_DIRECTORY_SEPARATOR_CHAR ACE_LIB_TEXT (ACE_DIRECTORY_SEPARATOR_CHAR_A)
-# define ACE_PLATFORM ACE_LIB_TEXT (ACE_PLATFORM_A)
-# define ACE_PLATFORM_EXE_SUFFIX ACE_LIB_TEXT (ACE_PLATFORM_EXE_SUFFIX_A)
-
-// Theses defines are used by the ACE Name Server.
-# if !defined (ACE_DEFAULT_LOCALNAME_A)
-# define ACE_DEFAULT_LOCALNAME_A "localnames"
-# endif /* ACE_DEFAULT_LOCALNAME_A */
-# if !defined (ACE_DEFAULT_GLOBALNAME_A)
-# define ACE_DEFAULT_GLOBALNAME_A "globalnames"
-# endif /* ACE_DEFAULT_GLOBALNAME_A */
-
-// ACE_DEFAULT_NAMESPACE_DIR is for legacy mode apps. A better
-// way of doing this is something like ACE_Lib_Find::get_temp_dir, since
-// this directory may not exist
-# if defined (ACE_LEGACY_MODE)
-# if defined (ACE_WIN32)
-# define ACE_DEFAULT_NAMESPACE_DIR_A "C:\\temp"
-# else /* ACE_WIN32 */
-# define ACE_DEFAULT_NAMESPACE_DIR_A "/tmp"
-# endif /* ACE_WIN32 */
-# if defined (ACE_HAS_WCHAR)
-# define ACE_DEFAULT_NAMESPACE_DIR_W ACE_TEXT_WIDE(ACE_DEFAULT_NAMESPACE_DIR_A)
-# endif /* ACE_HAS_WCHAR */
-# define ACE_DEFAULT_NAMESPACE_DIR ACE_LIB_TEXT(ACE_DEFAULT_NAMESPACE_DIR_A)
-# endif /* ACE_LEGACY_MODE */
-
-# if defined (ACE_HAS_WCHAR)
-# define ACE_DEFAULT_LOCALNAME_W ACE_TEXT_WIDE(ACE_DEFAULT_LOCALNAME_A)
-# define ACE_DEFAULT_GLOBALNAME_W ACE_TEXT_WIDE(ACE_DEFAULT_GLOBALNAME_A)
-# endif /* ACE_HAS_WCHAR */
-
-# define ACE_DEFAULT_LOCALNAME ACE_LIB_TEXT (ACE_DEFAULT_LOCALNAME_A)
-# define ACE_DEFAULT_GLOBALNAME ACE_LIB_TEXT (ACE_DEFAULT_GLOBALNAME_A)
-
-// defined Win32 specific macros for UNIX platforms
-# if !defined (O_BINARY)
-# define O_BINARY 0
-# endif /* O_BINARY */
-# if !defined (_O_BINARY)
-# define _O_BINARY O_BINARY
-# endif /* _O_BINARY */
-# if !defined (O_TEXT)
-# define O_TEXT 0
-# endif /* O_TEXT */
-# if !defined (_O_TEXT)
-# define _O_TEXT O_TEXT
-# endif /* _O_TEXT */
-# if !defined (O_RAW)
-# define O_RAW 0
-# endif /* O_RAW */
-# if !defined (_O_RAW)
-# define _O_RAW O_RAW
-# endif /* _O_RAW */
-
-# if !defined (ACE_DEFAULT_SYNCH_TYPE)
-# define ACE_DEFAULT_SYNCH_TYPE USYNC_THREAD
-# endif /* ! ACE_DEFAULT_SYNCH_TYPE */
-
-# if !defined (ACE_MAP_PRIVATE)
-# define ACE_MAP_PRIVATE MAP_PRIVATE
-# endif /* ! ACE_MAP_PRIVATE */
-
-# if !defined (ACE_MAP_SHARED)
-# define ACE_MAP_SHARED MAP_SHARED
-# endif /* ! ACE_MAP_SHARED */
-
-# if !defined (ACE_MAP_FIXED)
-# define ACE_MAP_FIXED MAP_FIXED
-# endif /* ! ACE_MAP_FIXED */
-
-#if defined (ACE_LACKS_UTSNAME_T)
-# if !defined (SYS_NMLN)
-# define SYS_NMLN 257
-# endif /* SYS_NMLN */
-# if !defined (_SYS_NMLN)
-# define _SYS_NMLN SYS_NMLN
-# endif /* _SYS_NMLN */
-struct ACE_utsname
-{
- ACE_TCHAR sysname[_SYS_NMLN];
- ACE_TCHAR nodename[_SYS_NMLN];
- ACE_TCHAR release[_SYS_NMLN];
- ACE_TCHAR version[_SYS_NMLN];
- ACE_TCHAR machine[_SYS_NMLN];
-};
-# else
-# include /**/ <sys/utsname.h>
-typedef struct utsname ACE_utsname;
-# endif /* ACE_LACKS_UTSNAME_T */
-
-// Increase the range of "address families". Please note that this
-// must appear _after_ the include of sys/socket.h, for the AF_FILE
-// definition on Linux/glibc2.
-#if !defined (AF_ANY)
-# define AF_ANY (-1)
-#endif /* AF_ANY */
-
-# define AF_SPIPE (AF_MAX + 1)
-# if !defined (AF_FILE)
-# define AF_FILE (AF_MAX + 2)
-# endif /* ! AF_FILE */
-# define AF_DEV (AF_MAX + 3)
-# define AF_UPIPE (AF_SPIPE)
-
-# if defined (ACE_SELECT_USES_INT)
-typedef int ACE_FD_SET_TYPE;
-# else
-typedef fd_set ACE_FD_SET_TYPE;
-# endif /* ACE_SELECT_USES_INT */
-
-# if !defined (MAXNAMELEN)
-# if defined (FILENAME_MAX)
-# define MAXNAMELEN FILENAME_MAX
-# else
-# define MAXNAMELEN 256
-# endif /* FILENAME_MAX */
-# endif /* MAXNAMELEN */
-
-# if !defined(MAXHOSTNAMELEN)
-# define MAXHOSTNAMELEN 256
-# endif /* MAXHOSTNAMELEN */
-
-// Define INET loopback address constant if it hasn't been defined
-// Dotted Decimal 127.0.0.1 == Hexidecimal 0x7f000001
-# if !defined (INADDR_LOOPBACK)
-# define INADDR_LOOPBACK ((ACE_UINT32) 0x7f000001)
-# endif /* INADDR_LOOPBACK */
-
-// The INADDR_NONE address is generally 255.255.255.255.
-# if !defined (INADDR_NONE)
-# define INADDR_NONE ((ACE_UINT32) 0xffffffff)
-# endif /* INADDR_NONE */
-
-// Define INET string length constants if they haven't been defined
-//
-// for IPv4 dotted-decimal
-# if !defined (INET_ADDRSTRLEN)
-# define INET_ADDRSTRLEN 16
-# endif /* INET_ADDRSTRLEN */
-//
-// for IPv6 hex string
-# if !defined (INET6_ADDRSTRLEN)
-# define INET6_ADDRSTRLEN 46
-# endif /* INET6_ADDRSTRLEN */
-
-#if defined (ACE_HAS_IPV6)
-
-# if defined (ACE_USES_IPV4_IPV6_MIGRATION)
-# define ACE_ADDRESS_FAMILY_INET AF_UNSPEC
-# define ACE_PROTOCOL_FAMILY_INET PF_UNSPEC
-# else
-# define ACE_ADDRESS_FAMILY_INET AF_INET6
-# define ACE_PROTOCOL_FAMILY_INET PF_INET6
-# endif /* ACE_USES_IPV4_IPV6_MIGRATION */
-
-#else
-# define ACE_ADDRESS_FAMILY_INET AF_INET
-# define ACE_PROTOCOL_FAMILY_INET PF_INET
-#endif
-
-# if defined (ACE_LACKS_SIGSET)
-# if !defined(__MINGW32__)
-typedef u_int sigset_t;
-# endif /* !__MINGW32__*/
-# endif /* ACE_LACKS_SIGSET */
-
-# if defined (ACE_LACKS_SIGACTION)
-struct sigaction
-{
- int sa_flags;
- ACE_SignalHandlerV sa_handler;
- sigset_t sa_mask;
-};
-# endif /* ACE_LACKS_SIGACTION */
-
-# if !defined (SIGHUP)
-# define SIGHUP 0
-# endif /* SIGHUP */
-
-# if !defined (SIGINT)
-# define SIGINT 0
-# endif /* SIGINT */
-
-# if !defined (SIGSEGV)
-# define SIGSEGV 0
-# endif /* SIGSEGV */
-
-# if !defined (SIGIO)
-# define SIGIO 0
-# endif /* SIGSEGV */
-
-# if !defined (SIGUSR1)
-# define SIGUSR1 0
-# endif /* SIGUSR1 */
-
-# if !defined (SIGUSR2)
-# define SIGUSR2 0
-# endif /* SIGUSR2 */
-
-# if !defined (SIGCHLD)
-# define SIGCHLD 0
-# endif /* SIGCHLD */
-
-# if !defined (SIGCLD)
-# define SIGCLD SIGCHLD
-# endif /* SIGCLD */
-
-# if !defined (SIGQUIT)
-# define SIGQUIT 0
-# endif /* SIGQUIT */
-
-# if !defined (SIGPIPE)
-# define SIGPIPE 0
-# endif /* SIGPIPE */
-
-# if !defined (SIGALRM)
-# define SIGALRM 0
-# endif /* SIGALRM */
-
-# if !defined (SIG_DFL)
-# if defined (ACE_PSOS_DIAB_MIPS) || defined (ACE_PSOS_DIAB_PPC)
-# define SIG_DFL ((void *) 0)
-# else
-# define SIG_DFL ((__sighandler_t) 0)
-# endif
-# endif /* SIG_DFL */
-
-# if !defined (SIG_IGN)
-# if defined (ACE_PSOS_DIAB_MIPS) || defined (ACE_PSOS_DIAB_PPC)
-# define SIG_IGN ((void *) 1) /* ignore signal */
-# else
-# define SIG_IGN ((__sighandler_t) 1) /* ignore signal */
-# endif
-# endif /* SIG_IGN */
-
-# if !defined (SIG_ERR)
-# if defined (ACE_PSOS_DIAB_MIPS) || defined (ACE_PSOS_DIAB_PPC)
-# define SIG_ERR ((void *) -1) /* error return from signal */
-# else
-# define SIG_ERR ((__sighandler_t) -1) /* error return from signal */
-# endif
-# endif /* SIG_ERR */
-
-# if !defined (O_NONBLOCK)
-# define O_NONBLOCK 1
-# endif /* O_NONBLOCK */
-
-# if !defined (SIG_BLOCK)
-# define SIG_BLOCK 1
-# endif /* SIG_BLOCK */
-
-# if !defined (SIG_UNBLOCK)
-# define SIG_UNBLOCK 2
-# endif /* SIG_UNBLOCK */
-
-# if !defined (SIG_SETMASK)
-# define SIG_SETMASK 3
-# endif /* SIG_SETMASK */
-
-# if !defined (IPC_CREAT)
-# define IPC_CREAT 0
-# endif /* IPC_CREAT */
-
-# if !defined (IPC_NOWAIT)
-# define IPC_NOWAIT 0
-# endif /* IPC_NOWAIT */
-
-# if !defined (IPC_RMID)
-# define IPC_RMID 0
-# endif /* IPC_RMID */
-
-# if !defined (IPC_EXCL)
-# define IPC_EXCL 0
-# endif /* IPC_EXCL */
-
-# if !defined (IP_DROP_MEMBERSHIP)
-# define IP_DROP_MEMBERSHIP 0
-# endif /* IP_DROP_MEMBERSHIP */
-
-# if !defined (IP_ADD_MEMBERSHIP)
-# define IP_ADD_MEMBERSHIP 0
-# define ACE_LACKS_IP_ADD_MEMBERSHIP
-# endif /* IP_ADD_MEMBERSHIP */
-
-# if !defined (IP_DEFAULT_MULTICAST_TTL)
-# define IP_DEFAULT_MULTICAST_TTL 0
-# endif /* IP_DEFAULT_MULTICAST_TTL */
-
-# if !defined (IP_DEFAULT_MULTICAST_LOOP)
-# define IP_DEFAULT_MULTICAST_LOOP 0
-# endif /* IP_DEFAULT_MULTICAST_LOOP */
-
-# if !defined (IP_MULTICAST_IF)
-# define IP_MULTICAST_IF 0
-#endif /* IP_MULTICAST_IF */
-
-# if !defined (IP_MULTICAST_TTL)
-# define IP_MULTICAST_TTL 1
-#endif /* IP_MULTICAST_TTL */
-
-# if !defined (IP_MAX_MEMBERSHIPS)
-# define IP_MAX_MEMBERSHIPS 0
-# endif /* IP_MAX_MEMBERSHIP */
-
-# if !defined (SIOCGIFBRDADDR)
-# define SIOCGIFBRDADDR 0
-# endif /* SIOCGIFBRDADDR */
-
-# if !defined (SIOCGIFADDR)
-# define SIOCGIFADDR 0
-# endif /* SIOCGIFADDR */
-
-# if !defined (IPC_PRIVATE)
-# define IPC_PRIVATE ACE_INVALID_SEM_KEY
-# endif /* IPC_PRIVATE */
-
-# if !defined (IPC_STAT)
-# define IPC_STAT 0
-# endif /* IPC_STAT */
-
-# if !defined (GETVAL)
-# define GETVAL 0
-# endif /* GETVAL */
-
-# if !defined (F_GETFL)
-# define F_GETFL 0
-# endif /* F_GETFL */
-
-# if !defined (SETVAL)
-# define SETVAL 0
-# endif /* SETVAL */
-
-# if !defined (GETALL)
-# define GETALL 0
-# endif /* GETALL */
-
-# if !defined (SETALL)
-# define SETALL 0
-# endif /* SETALL */
-
-# if !defined (SEM_UNDO)
-# define SEM_UNDO 0
-# endif /* SEM_UNDO */
-
-# if defined (__Lynx__)
- // LynxOS Neutrino sets NSIG to the highest-numbered signal.
-# define ACE_NSIG (NSIG + 1)
-# elif defined (__rtems__)
-# define ACE_NSIG (SIGRTMAX)
-# else
- // All other platforms set NSIG to one greater than the
- // highest-numbered signal.
-# define ACE_NSIG NSIG
-# endif /* __Lynx__ */
-
-# if !defined (R_OK)
-# define R_OK 04 /* Test for Read permission. */
-# endif /* R_OK */
-
-# if !defined (W_OK)
-# define W_OK 02 /* Test for Write permission. */
-# endif /* W_OK */
-
-# if !defined (X_OK)
-# define X_OK 01 /* Test for eXecute permission. */
-# endif /* X_OK */
-
-# if !defined (F_OK)
-# define F_OK 0 /* Test for existence of File. */
-# endif /* F_OK */
-
-# if !defined (ESUCCESS)
-# define ESUCCESS 0
-# endif /* !ESUCCESS */
-
-# if !defined (EIDRM)
-# define EIDRM 0
-# endif /* !EIDRM */
-
-# if !defined (ENFILE)
-# define ENFILE EMFILE /* No more socket descriptors are available. */
-# endif /* !ENFILE */
-
-# if !defined (ECOMM)
- // Not the same, but ECONNABORTED is provided on NT.
-# define ECOMM ECONNABORTED
-# endif /* ECOMM */
-
-# if !defined (WNOHANG)
-# define WNOHANG 0100
-# endif /* !WNOHANG */
-
-# if !defined (EDEADLK)
-# define EDEADLK 1000 /* Some large number.... */
-# endif /* !EDEADLK */
-
-#if !defined (ENXIO) /* Needed in SOCK_Dgram_Mcast */
-# define ENXIO 6
-#endif /* ENXIO */
-
-# if !defined (MS_SYNC)
-# define MS_SYNC 0x0
-# endif /* !MS_SYNC */
-
-# if !defined (PIPE_BUF)
-# define PIPE_BUF 5120
-# endif /* PIPE_BUF */
-
-# if !defined (PROT_RDWR)
-# define PROT_RDWR (PROT_READ|PROT_WRITE)
-# endif /* PROT_RDWR */
-
-# if defined (ACE_HAS_POSIX_NONBLOCK)
-# define ACE_NONBLOCK O_NONBLOCK
-# else
-# define ACE_NONBLOCK O_NDELAY
-# endif /* ACE_HAS_POSIX_NONBLOCK */
-
-// These are used by the <ACE_IPC_SAP::enable> and
-// <ACE_IPC_SAP::disable> methods. They must be unique and cannot
-// conflict with the value of <ACE_NONBLOCK>. We make the numbers
-// negative here so they won't conflict with other values like SIGIO,
-// etc.
-# define ACE_SIGIO -1
-# define ACE_SIGURG -2
-# define ACE_CLOEXEC -3
-
-# define LOCALNAME 0
-# define REMOTENAME 1
-
-# if !defined (ETIMEDOUT) && defined (ETIME)
-# define ETIMEDOUT ETIME
-# endif /* ETIMEDOUT */
-
-# if !defined (ETIME) && defined (ETIMEDOUT)
-# define ETIME ETIMEDOUT
-# endif /* ETIMED */
-
-# if !defined (EBUSY)
-# define EBUSY ETIME
-# endif /* EBUSY */
-
-# if !defined (_SC_TIMER_MAX)
-# define _SC_TIMER_MAX 44
-# endif /* _SC_TIMER_MAX */
-
-// Default number of <ACE_Event_Handler>s supported by
-// <ACE_Timer_Heap>.
-# if !defined (ACE_DEFAULT_TIMERS)
-# define ACE_DEFAULT_TIMERS _SC_TIMER_MAX
-# endif /* ACE_DEFAULT_TIMERS */
-
-# if defined (ACE_HAS_STRUCT_NETDB_DATA)
-typedef char ACE_HOSTENT_DATA[sizeof(struct hostent_data)];
-typedef char ACE_SERVENT_DATA[sizeof(struct servent_data)];
-typedef char ACE_PROTOENT_DATA[sizeof(struct protoent_data)];
-# else
-# if !defined ACE_HOSTENT_DATA_SIZE
-# define ACE_HOSTENT_DATA_SIZE (4*1024)
-# endif /*ACE_HOSTENT_DATA_SIZE */
-# if !defined ACE_SERVENT_DATA_SIZE
-# define ACE_SERVENT_DATA_SIZE (4*1024)
-# endif /*ACE_SERVENT_DATA_SIZE */
-# if !defined ACE_PROTOENT_DATA_SIZE
-# define ACE_PROTOENT_DATA_SIZE (2*1024)
-# endif /*ACE_PROTOENT_DATA_SIZE */
-typedef char ACE_HOSTENT_DATA[ACE_HOSTENT_DATA_SIZE];
-typedef char ACE_SERVENT_DATA[ACE_SERVENT_DATA_SIZE];
-typedef char ACE_PROTOENT_DATA[ACE_PROTOENT_DATA_SIZE];
-# endif /* ACE_HAS_STRUCT_NETDB_DATA */
-
-# if !defined (ACE_HAS_SEMUN) || (defined (__GLIBC__) && defined (_SEM_SEMUN_UNDEFINED))
-union semun
-{
- /// value for SETVAL
- int val;
- /// buffer for IPC_STAT & IPC_SET
- struct semid_ds *buf;
- /// array for GETALL & SETALL
- u_short *array;
-};
-# endif /* !ACE_HAS_SEMUN || (defined (__GLIBC__) && defined (_SEM_SEMUN_UNDEFINED)) */
-
-
-// Create some useful typedefs.
-
-typedef const char **SYS_SIGLIST;
-
-# if !defined (MAP_FAILED) || defined (ACE_HAS_BROKEN_MAP_FAILED)
-# undef MAP_FAILED
-# define MAP_FAILED ((void *) -1)
-# elif defined (ACE_HAS_LONG_MAP_FAILED)
-# undef MAP_FAILED
-# define MAP_FAILED ((void *) -1L)
-# endif /* !MAP_FAILED || ACE_HAS_BROKEN_MAP_FAILED */
-
-# if defined (ACE_HAS_CHARPTR_DL)
-typedef ACE_TCHAR * ACE_DL_TYPE;
-# else
-typedef const ACE_TCHAR * ACE_DL_TYPE;
-# endif /* ACE_HAS_CHARPTR_DL */
-
-# if !defined (ACE_HAS_SIGINFO_T)
-struct ACE_OS_Export siginfo_t
-{
- siginfo_t (ACE_HANDLE handle);
- siginfo_t (ACE_HANDLE *handles); // JCEJ 12/23/96
-
- /// Win32 HANDLE that has become signaled.
- ACE_HANDLE si_handle_;
-
- /// Array of Win32 HANDLEs all of which have become signaled.
- ACE_HANDLE *si_handles_;
-};
-# endif /* ACE_HAS_SIGINFO_T */
-
-// Typedef for the null handler func.
-extern "C"
-{
- typedef void (*ACE_SIGNAL_C_FUNC)(int,siginfo_t*,void*);
-}
-
-# if !defined (ACE_HAS_UCONTEXT_T)
-typedef int ucontext_t;
-# endif /* ACE_HAS_UCONTEXT_T */
-
-# if !defined (SA_SIGINFO)
-# define SA_SIGINFO 0
-# endif /* SA_SIGINFO */
-
-# if !defined (SA_RESTART)
-# define SA_RESTART 0
-# endif /* SA_RESTART */
-
-# if defined (ACE_HAS_TIMOD_H)
-# if defined (ACE_HAS_STL_QUEUE_CONFLICT)
-# define queue _Queue_
-# endif /* ACE_HAS_STL_QUEUE_CONFLICT */
-# include /**/ <sys/timod.h>
-# if defined (ACE_HAS_STL_QUEUE_CONFLICT)
-# undef queue
-# endif /* ACE_HAS_STL_QUEUE_CONFLICT */
-# elif defined (ACE_HAS_OSF_TIMOD_H)
-# include /**/ <tli/timod.h>
-# endif /* ACE_HAS_TIMOD_H */
-
-/**
- * @class ACE_Thread_ID
- *
- * @brief Defines a platform-independent thread ID.
- */
-class ACE_OS_Export ACE_Thread_ID
-{
-public:
- // = Initialization method.
- ACE_Thread_ID (ACE_thread_t, ACE_hthread_t);
- ACE_Thread_ID (const ACE_Thread_ID &id);
-
- // = Set/Get the Thread ID.
- ACE_thread_t id (void);
- void id (ACE_thread_t);
-
- // = Set/Get the Thread handle.
- ACE_hthread_t handle (void);
- void handle (ACE_hthread_t);
-
- // != Comparison operator.
- int operator== (const ACE_Thread_ID &) const;
- int operator!= (const ACE_Thread_ID &) const;
-
-private:
- /// Identify the thread.
- ACE_thread_t thread_id_;
-
- /// Handle to the thread (typically used to "wait" on Win32).
- ACE_hthread_t thread_handle_;
-};
-
-// Type of the extended signal handler.
-typedef void (*ACE_Sig_Handler_Ex) (int, siginfo_t *siginfo, ucontext_t *ucontext);
-
-// = The ACE_Sched_Priority type should be used for platform-
-// independent thread and process priorities, by convention.
-// int should be used for OS-specific priorities.
-typedef int ACE_Sched_Priority;
-
-// forward declaration
-class ACE_Sched_Params;
-
-# if defined (ACE_LACKS_FILELOCKS)
-# if ! defined (VXWORKS) && ! defined (ACE_PSOS) && ! defined (__rtems__) && !defined (INTEGRITY)
-// VxWorks defines struct flock in sys/fcntlcom.h. But it doesn't
-// appear to support flock (). RTEMS defines struct flock but
-// currently does not support locking.
-struct flock
-{
- short l_type;
- short l_whence;
- off_t l_start;
- off_t l_len; /* len == 0 means until end of file */
- long l_sysid;
- pid_t l_pid;
- long l_pad[4]; /* reserve area */
-};
-# endif /* ! VXWORKS */
-# endif /* ACE_LACKS_FILELOCKS */
-
-# if !defined (ACE_HAS_IP_MULTICAST) && defined (ACE_LACKS_IP_ADD_MEMBERSHIP)
- // Even if ACE_HAS_IP_MULTICAST is not defined, if IP_ADD_MEMBERSHIP
- // is defined, assume that the ip_mreq struct is also defined
- // (presumably in netinet/in.h).
- struct ip_mreq
- {
- /// IP multicast address of group
- struct in_addr imr_multiaddr;
- /// Local IP address of interface
- struct in_addr imr_interface;
- };
-# endif /* ! ACE_HAS_IP_MULTICAST && ACE_LACKS_IP_ADD_MEMBERSHIP */
-
-# if !defined (ACE_HAS_STRBUF_T)
-struct strbuf
-{
- /// No. of bytes in buffer.
- int maxlen;
- /// No. of bytes returned.
- int len;
- /// Pointer to data.
- void *buf;
-};
-# endif /* ACE_HAS_STRBUF_T */
-
-/**
- * @class ACE_Str_Buf
- *
- * @brief Simple wrapper for STREAM pipes strbuf.
- */
-class ACE_OS_Export ACE_Str_Buf : public strbuf
-{
-public:
- // = Initialization method
- /// Constructor.
- ACE_Str_Buf (void *b = 0, int l = 0, int max = 0);
-
- /// Constructor.
- ACE_Str_Buf (strbuf &);
-};
-
-# if defined (ACE_HAS_BROKEN_BITSHIFT)
- // This might not be necessary any more: it was added prior to the
- // (fd_mask) cast being added to the version below. Maybe that cast
- // will fix the problem on tandems. Fri Dec 12 1997 David L. Levine
-# define ACE_MSB_MASK (~(ACE_UINT32 (1) << ACE_UINT32 (NFDBITS - 1)))
-# else
- // This needs to go here to avoid overflow problems on some compilers.
-# if defined (ACE_WIN32)
- // Does ACE_WIN32 have an fd_mask?
-# define ACE_MSB_MASK (~(1 << (NFDBITS - 1)))
-# else /* ! ACE_WIN32 */
-# define ACE_MSB_MASK (~((fd_mask) 1 << (NFDBITS - 1)))
-# endif /* ! ACE_WIN32 */
-# endif /* ACE_HAS_BROKEN_BITSHIFT */
-
-// Signature for registering a cleanup function that is used by the
-// <ACE_Object_Manager> and the <ACE_Thread_Manager>.
-# if defined (ACE_HAS_SIG_C_FUNC)
-extern "C" {
-# endif /* ACE_HAS_SIG_C_FUNC */
-typedef void (*ACE_CLEANUP_FUNC)(void *object, void *param) /* throw () */;
-# if defined (ACE_HAS_SIG_C_FUNC)
-}
-# endif /* ACE_HAS_SIG_C_FUNC */
-
-# if defined (ACE_WIN32)
-// Default WIN32 structured exception handler.
-int ACE_SEH_Default_Exception_Selector (void *);
-int ACE_SEH_Default_Exception_Handler (void *);
-# endif /* ACE_WIN32 */
-
-/**
- * @class ACE_Cleanup
- *
- * @brief Base class for objects that are cleaned by ACE_Object_Manager.
- */
-class ACE_OS_Export ACE_Cleanup
-{
-public:
- /// No-op constructor.
- ACE_Cleanup (void);
-
- /// Destructor.
- virtual ~ACE_Cleanup (void);
-
- /// Cleanup method that, by default, simply deletes itself.
- virtual void cleanup (void *param = 0);
-};
-
-// Adapter for cleanup, used by ACE_Object_Manager.
-extern "C" ACE_OS_Export
-void ace_cleanup_destroyer (ACE_Cleanup *, void *param = 0);
-
-/**
- * @class ACE_Cleanup_Info
- *
- * @brief Hold cleanup information for thread/process
- */
-class ACE_OS_Export ACE_Cleanup_Info
-{
-public:
- /// Default constructor.
- ACE_Cleanup_Info (void);
-
- /// Equality operator.
- int operator== (const ACE_Cleanup_Info &o) const;
-
- /// Inequality operator.
- int operator!= (const ACE_Cleanup_Info &o) const;
-
- /// Point to object that gets passed into the <cleanup_hook_>.
- void *object_;
-
- /// Cleanup hook that gets called back.
- ACE_CLEANUP_FUNC cleanup_hook_;
-
- /// Parameter passed to the <cleanup_hook_>.
- void *param_;
-};
-
-class ACE_Cleanup_Info_Node;
-
-/**
- * @class ACE_OS_Exit_Info
- *
- * @brief Hold Object Manager cleanup (exit) information.
- *
- * For internal use by the ACE library, only.
- */
-class ACE_OS_Export ACE_OS_Exit_Info
-{
-public:
- /// Default constructor.
- ACE_OS_Exit_Info (void);
-
- /// Destructor.
- ~ACE_OS_Exit_Info (void);
-
- /// Use to register a cleanup hook.
- int at_exit_i (void *object, ACE_CLEANUP_FUNC cleanup_hook, void *param);
-
- /// Look for a registered cleanup hook object. Returns 1 if already
- /// registered, 0 if not.
- int find (void *object);
-
- /// Call all registered cleanup hooks, in reverse order of
- /// registration.
- void call_hooks ();
-
-private:
- /**
- * Keeps track of all registered objects. The last node is only
- * used to terminate the list (it doesn't contain a valid
- * ACE_Cleanup_Info).
- */
- ACE_Cleanup_Info_Node *registered_objects_;
-};
-
-class ACE_Base_Thread_Adapter;
-class ACE_Thread_Hook;
-
-# if defined (ACE_HAS_PHARLAP_RT)
-#define ACE_IPPROTO_TCP SOL_SOCKET
-# else
-#define ACE_IPPROTO_TCP IPPROTO_TCP
-# endif /* ACE_HAS_PHARLAP_RT */
-
-# if defined (ACE_LACKS_FLOATING_POINT)
-typedef ACE_UINT32 ACE_timer_t;
-# else
-typedef double ACE_timer_t;
-# endif /* ACE_LACKS_FLOATING_POINT */
-
-# if defined (ACE_HAS_PRUSAGE_T)
- typedef prusage_t ACE_Rusage;
-# elif defined (ACE_HAS_GETRUSAGE)
- typedef rusage ACE_Rusage;
-# else
- typedef int ACE_Rusage;
-# endif /* ACE_HAS_PRUSAGE_T */
-
-# if !defined (ACE_WIN32) && !defined (ACE_LACKS_UNIX_SYSLOG)
-# include /**/ <syslog.h>
-# endif /* !defined (ACE_WIN32) && !defined (ACE_LACKS_UNIX_SYSLOG) */
-
-# if defined (ACE_HAS_SYS_FILIO_H)
-# include /**/ <sys/filio.h>
-# endif /* ACE_HAS_SYS_FILIO_H */
-
-# if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && !defined (__BORLANDC__)
- typedef struct _stat ACE_stat;
-# else
- typedef struct stat ACE_stat;
-# endif /* ACE_WIN32 */
-
-// We need this for MVS...
-extern "C" {
- typedef int (*ACE_COMPARE_FUNC)(const void *, const void *);
-}
-
-#if defined (ACE_HAS_WINCE)
-// WinCE doesn't have most of the standard C library time functions. It
-// also doesn't define struct tm. SYSTEMTIME has pretty much the same
-// info though, so we can map it when needed. Define struct tm here and
-// use it when needed. This is taken from the standard C library.
-struct tm {
- int tm_sec;
- int tm_min;
- int tm_hour;
- int tm_mday; // Day of the month
- int tm_mon;
- int tm_year;
- int tm_wday; // Day of the week
- int tm_yday; // Day in the year
- int tm_isdst; // >0 if dst in effet; 0 if not; <0 if unknown
-};
-#endif /* ACE_HAS_WINCE */
-
-
-/// Helper for the ACE_OS::timezone() function
-/**
- * We put all the timezone stuff that used to be in ACE_OS::timezone()
- * here because on some platforms "timezone" is a macro. Because of this,
- * the name ACE_OS::timezone will cause errors. So in order to use the
- * macro as it is defined but also keep the name ACE_OS::timezone, we
- * use timezone first here in this inline function, and then undefine
- * timezone.
- */
-inline long ace_timezone()
-{
-#if !defined (VXWORKS) && !defined (ACE_PSOS) && !defined (CHORUS)
-# if defined (ACE_HAS_WINCE)
- TIME_ZONE_INFORMATION tz;
- GetTimeZoneInformation (&tz);
- return tz.Bias * 60;
-# elif defined (ACE_WIN32)
- return _timezone; // For Win32.
-# elif ( defined (__Lynx__) || defined (__FreeBSD__) || defined (ACE_HAS_SUNOS4_GETTIMEOFDAY) ) && ( !defined (__linux__) )
- long result = 0;
- struct timeval time;
- struct timezone zone;
- ACE_UNUSED_ARG (result);
- ACE_OSCALL (::gettimeofday (&time, &zone), int, -1, result);
- return zone.tz_minuteswest * 60;
-# else /* __Lynx__ || __FreeBSD__ ... */
-# if defined (__linux__)
- // Under Linux, gettimeofday() does not correctly set the timezone
- // struct, so we should use the global variable <timezone>.
- // However, it is initialized by tzset(). I assume other systems
- // are the same (i.e., tzset() needs to be called to set
- // <timezone>), but since no one is complaining, I will only make
- // the change for Linux.
- ::tzset();
-# endif
- return timezone;
-# endif /* __Lynx__ || __FreeBSD__ ... */
-#else
- ACE_NOTSUP_RETURN (0);
-#endif /* !ACE_HAS_WINCE && !VXWORKS && !ACE_PSOS */
-}
-
-
-#if !defined (ACE_LACKS_DIFFTIME)
-/// Helper for the ACE_OS::difftime() function
-/**
- * We moved the difftime code that used to be in ACE_OS::difftime()
- * here because on some platforms "difftime" is a macro. Because of this,
- * the name ACE_OS::difftime will cause errors. So in order to use the
- * macro as it is defined but also keep the name ACE_OS::difftime, we
- * use difftime first here in this inline function, and then undefine
- * it.
- */
-inline double ace_difftime(time_t t1, time_t t0)
-{
-# if defined (ACE_PSOS) && ! defined (ACE_PSOS_HAS_TIME)
- // simulate difftime ; just subtracting ; ACE_PSOS case
- return ((double)t1) - ((double)t0);
-# else
- return difftime (t1, t0);
-# endif /* ACE_PSOS !ACE_PSOS_HAS_TIME */
-}
-#endif /* !ACE_LACKS_DIFFTIME */
-
-
-/// Helper for the ACE_OS::cuserid() function
-/**
- * On some platforms cuserid is a macro. Defining ACE_OS::cuserid()
- * becomes really hard, as there is no way to save the macro
- * definition using the pre-processor.
- * This inline function achieves the same effect, without namespace
- * pollution or performance penalties.
- *
- * @todo We maybe should move a lot of the code in ACE_OS::cuserid here so
- * it is treated the same as the above ace_difftime and ace_timezone.
- * But since there is a good deal more code in ACE_OS::cuserid, we
- * probably need to move some of it off into some sort of emulation
- * function.
- */
-#if !defined (ACE_LACKS_CUSERID) && !defined(ACE_HAS_ALT_CUSERID) \
- && !defined(ACE_WIN32) && !defined (VXWORKS)
-inline char *ace_cuserid(char *user)
-{
- return cuserid(user);
-}
-#endif /* !ACE_LACKS_CUSERID && !ACE_HAS_ALT_CUSERID && ... */
-
-#if defined (SD_RECEIVE)
-#define ACE_SHUTDOWN_READ SD_RECEIVE
-#elif defined (SHUT_RD)
-#define ACE_SHUTDOWN_READ SHUT_RD
-#else
-#define ACE_SHUTDOWN_READ 0
-#endif /* SD_RECEIVE */
-
-#if defined (SD_SEND)
-#define ACE_SHUTDOWN_WRITE SD_SEND
-#elif defined (SHUT_WR)
-#define ACE_SHUTDOWN_WRITE SHUT_WR
-#else
-#define ACE_SHUTDOWN_WRITE 1
-#endif /* SD_RECEIVE */
-
-#if defined (SD_BOTH)
-#define ACE_SHUTDOWN_BOTH SD_BOTH
-#elif defined (SHUT_RDWR)
-#define ACE_SHUTDOWN_BOTH SHUT_RDWR
-#else
-#define ACE_SHUTDOWN_BOTH 2
-#endif /* SD_RECEIVE */
-
-#if !defined (ACE_HAS_WINCE)
-// forward declarations of QoS data structures
-class ACE_QoS;
-class ACE_QoS_Params;
-class ACE_Accept_QoS_Params;
-#endif // ACE_HAS_WINCE
-
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
-typedef WSAPROTOCOL_INFO ACE_Protocol_Info;
-
-// Callback function that's used by the QoS-enabled <ACE_OS::ioctl>
-// method.
-typedef LPWSAOVERLAPPED_COMPLETION_ROUTINE ACE_OVERLAPPED_COMPLETION_FUNC;
-typedef GROUP ACE_SOCK_GROUP;
-#else /* (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) */
-struct ACE_Protocol_Info
-{
- u_long dwServiceFlags1;
- int iAddressFamily;
- int iProtocol;
- char szProtocol[255+1];
-};
-
-// Callback function that's used by the QoS-enabled <ACE_OS::ioctl>
-// method.
-typedef void (*ACE_OVERLAPPED_COMPLETION_FUNC) (u_long error,
- u_long bytes_transferred,
- ACE_OVERLAPPED *overlapped,
- u_long flags);
-typedef u_long ACE_SOCK_GROUP;
-
-#endif /* (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) */
-
-/**
- * @class ACE_OS
- *
- * @brief This class defines an OS independent programming API that
- * shields developers from nonportable aspects of writing
- * efficient system programs on Win32, POSIX and other versions
- * of UNIX, and various real-time operating systems.
- *
- * This class encapsulates the differences between various OS
- * platforms. When porting ACE to a new platform, this class is
- * the place to focus on. Once this file is ported to a new
- * platform, pretty much everything else comes for "free." See
- * <www.cs.wustl.edu/~schmidt/ACE_wrappers/etc/ACE-porting.html>
- * for instructions on porting ACE. Please see the README file
- * in this directory for complete information on the meaning of
- * the various macros.
- */
-class ACE_OS_Export ACE_OS
- : public ACE_OS_Dirent,
- public ACE_OS_String,
- public ACE_OS_Memory,
- public ACE_OS_TLI
-{
-
- ACE_CLASS_IS_NAMESPACE (ACE_OS);
-public:
- friend class ACE_Timeout_Manager;
-
-# if defined (CHORUS) && !defined (CHORUS_4)
- // We must format this code as follows to avoid confusing OSE.
- enum ACE_HRTimer_Op
- {
- ACE_HRTIMER_START = K_BSTART,
- ACE_HRTIMER_INCR = K_BPOINT,
- ACE_HRTIMER_STOP = K_BSTOP,
- ACE_HRTIMER_GETTIME = 0xFFFF
- };
-# else /* ! CHORUS */
- enum ACE_HRTimer_Op
- {
- ACE_HRTIMER_START = 0x0, // Only use these if you can stand
- ACE_HRTIMER_INCR = 0x1, // for interrupts to be disabled during
- ACE_HRTIMER_STOP = 0x2, // the timed interval!!!!
- ACE_HRTIMER_GETTIME = 0xFFFF
- };
-# endif /* ! CHORUS */
-
- /**
- * @class ace_flock_t
- *
- * @brief OS file locking structure.
- */
- class ACE_OS_Export ace_flock_t
- {
- public:
- /// Dump state of the object.
- void dump (void) const;
-
-# if defined (ACE_WIN32)
- ACE_OVERLAPPED overlapped_;
-# else
- struct flock lock_;
-# endif /* ACE_WIN32 */
-
- /// Name of this filelock.
- const ACE_TCHAR *lockname_;
-
- /// Handle to the underlying file.
- ACE_HANDLE handle_;
-
-# if defined (CHORUS)
- /// This is the mutex that's stored in shared memory. It can only
- /// be destroyed by the actor that initialized it.
- ACE_mutex_t *process_lock_;
-# endif /* CHORUS */
- };
-
-# if defined (ACE_WIN32)
- // = Default Win32 Security Attributes definition.
- static LPSECURITY_ATTRIBUTES default_win32_security_attributes (LPSECURITY_ATTRIBUTES);
-
- // = Win32 OS version determination function.
- /// Return the win32 OSVERSIONINFO structure.
- static const OSVERSIONINFO &get_win32_versioninfo (void);
-
- // = A pair of functions for modifying ACE's Win32 resource usage.
- /// Return the handle of the module containing ACE's resources. By
- /// default, for a DLL build of ACE this is a handle to the ACE DLL
- /// itself, and for a static build it is a handle to the executable.
- static HINSTANCE get_win32_resource_module (void);
-
- /// Allow an application to modify which module contains ACE's
- /// resources. This is mainly useful for a static build of ACE where
- /// the required resources reside somewhere other than the executable.
- static void set_win32_resource_module (HINSTANCE);
-
-# endif /* ACE_WIN32 */
-
- // = A set of wrappers for miscellaneous operations.
- static int atoi (const char *s);
-
-# if defined (ACE_HAS_WCHAR)
- static int atoi (const wchar_t *s);
-# endif /* ACE_HAS_WCHAR */
-
-#if defined (atop)
-#undef atop
-#endif /* atop */
-
- static void *atop (const char *s);
-
-# if defined (ACE_HAS_WCHAR)
- static void *atop (const wchar_t *s);
-# endif /* ACE_HAS_WCHAR */
-
- /// This method computes the largest integral value not greater than x.
- static double floor (double x);
-
- /// This method computes the smallest integral value not less than x.
- static double ceil (double x);
-
- static char *getenv (const char *symbol);
-# if defined (ACE_HAS_WCHAR) && defined (ACE_WIN32)
- static wchar_t *getenv (const wchar_t *symbol);
-# endif /* ACE_HAS_WCHAR && ACE_WIN32 */
- static int putenv (const ACE_TCHAR *string);
- static ACE_TCHAR *strenvdup (const ACE_TCHAR *str);
- static ACE_TCHAR *getenvstrings (void);
-
- static int getopt (int argc,
- char *const *argv,
- const char *optstring);
- static int argv_to_string (ACE_TCHAR **argv,
- ACE_TCHAR *&buf,
- int substitute_env_args = 1);
- static int string_to_argv (ACE_TCHAR *buf,
- int &argc,
- ACE_TCHAR **&argv,
- int substitute_env_args = 1);
- static long sysconf (int);
-
- //@{ @name A set of wrappers for condition variables.
- static int condattr_init (ACE_condattr_t &attributes,
- int type = ACE_DEFAULT_SYNCH_TYPE);
- static int condattr_destroy (ACE_condattr_t &attributes);
- static int cond_broadcast (ACE_cond_t *cv);
- static int cond_destroy (ACE_cond_t *cv);
- static int cond_init (ACE_cond_t *cv,
- short type = ACE_DEFAULT_SYNCH_TYPE,
- const char *name = 0,
- void *arg = 0);
- static int cond_init (ACE_cond_t *cv,
- ACE_condattr_t &attributes,
- const char *name = 0,
- void *arg = 0);
-# if defined (ACE_HAS_WCHAR)
- static int cond_init (ACE_cond_t *cv,
- short type,
- const wchar_t *name,
- void *arg = 0);
- static int cond_init (ACE_cond_t *cv,
- ACE_condattr_t &attributes,
- const wchar_t *name,
- void *arg = 0);
-# endif /* ACE_HAS_WCHAR */
- static int cond_signal (ACE_cond_t *cv);
- static int cond_timedwait (ACE_cond_t *cv,
- ACE_mutex_t *m,
- ACE_Time_Value *);
- static int cond_wait (ACE_cond_t *cv,
- ACE_mutex_t *m);
-# if defined (ACE_WIN32) && defined (ACE_HAS_WTHREADS)
- static int cond_timedwait (ACE_cond_t *cv,
- ACE_thread_mutex_t *m,
- ACE_Time_Value *);
- static int cond_wait (ACE_cond_t *cv,
- ACE_thread_mutex_t *m);
-# endif /* ACE_WIN32 && ACE_HAS_WTHREADS */
- //@}
-
-
- //@{ @name Wrappers to obtain the current user id
-# if !defined (ACE_LACKS_CUSERID)
-#if defined(cuserid)
-# undef cuserid
-#endif /* cuserid */
- static char *cuserid (char *user,
- size_t maxlen = ACE_MAX_USERID);
-
-# if defined (ACE_HAS_WCHAR)
- static wchar_t *cuserid (wchar_t *user,
- size_t maxlen = ACE_MAX_USERID);
-# endif /* ACE_HAS_WCHAR */
-# endif /* ACE_LACKS_CUSERID */
- //@}
-
- //@{ @name Wrappers to obtain configuration info
- static int uname (ACE_utsname *name);
- static long sysinfo (int cmd,
- char *buf,
- long count);
- static int hostname (char *name,
- size_t maxnamelen);
-
-#if defined (ACE_HAS_WCHAR)
- static int hostname (wchar_t *name,
- size_t maxnamelen);
-#endif /* ACE_HAS_WCHAR */
- //@}
-
- //@{ @name A set of wrappers for explicit dynamic linking.
- static int dlclose (ACE_SHLIB_HANDLE handle);
-
- static ACE_TCHAR *dlerror (void);
- static ACE_SHLIB_HANDLE dlopen (const ACE_TCHAR *filename,
- int mode = ACE_DEFAULT_SHLIB_MODE);
- static void *dlsym (ACE_SHLIB_HANDLE handle,
- const ACE_TCHAR *symbol);
- //@}
-
- //@{ @name A set of wrappers for stdio file operations.
- static int last_error (void);
- static void last_error (int);
- static int set_errno_to_last_error (void);
- static int set_errno_to_wsa_last_error (void);
- static int fclose (FILE *fp);
- static int fcntl (ACE_HANDLE handle,
- int cmd,
- long arg = 0);
- static int fdetach (const char *file);
-
- static int fsync (ACE_HANDLE handle);
-
-# if defined (ACE_USES_WCHAR)
- // If fp points to the Unicode format file, the file pointer will be moved right next
- // to the Unicode header (2 types). Otherwise, file pointer will be at the beginning.
- static void checkUnicodeFormat (FILE* fp);
-# endif // ACE_USES_WCHAR
-
- static FILE *fopen (const ACE_TCHAR *filename, const ACE_TCHAR *mode);
- static FILE *freopen (const ACE_TCHAR *filename, const ACE_TCHAR *mode, FILE* stream);
-# if defined (fdopen)
-# undef fdopen
-# endif /* fdopen */
- static FILE *fdopen (ACE_HANDLE handle, const ACE_TCHAR *mode);
- static ACE_TCHAR *fgets (ACE_TCHAR *buf, int size, FILE *fp);
- static int stat (const ACE_TCHAR *file, ACE_stat *);
- static int truncate (const ACE_TCHAR *filename, off_t length);
-
- static int fprintf (FILE *fp, const char *format, ...);
- static int sprintf (char *buf, const char *format, ...);
- static int snprintf (char *buf, size_t maxlen, const char *format, ...);
- static int vsprintf (char *buffer, const char *format, va_list argptr);
- static int printf (const char *format, ...);
-# if defined (ACE_HAS_WCHAR)
- static int sprintf (wchar_t *buf, const wchar_t *format, ...);
- static int snprintf (wchar_t *buf, size_t maxlen, const wchar_t *format,...);
- static int fprintf (FILE *fp, const wchar_t *format, ...);
- static int vsprintf (wchar_t *buffer, const wchar_t *format, va_list argptr);
-# endif /* ACE_HAS_WCHAR */
-
- static void perror (const ACE_TCHAR *s);
-
- // The old gets () which directly maps to the evil, unprotected
- // gets () has been deprecated. If you really need gets (),
- // consider the following one.
-
- // A better gets ().
- // If n == 0, input is swallowed, but NULL is returned.
- // Otherwise, reads up to n-1 bytes (not including the newline),
- // then swallows rest up to newline
- // then swallows newline
- static char *gets (char *str, int n = 0);
- static int puts (const ACE_TCHAR *s);
- static int fputs (const ACE_TCHAR *s,
- FILE *stream);
-
- static int fflush (FILE *fp);
- static size_t fread (void *ptr,
- size_t size,
- size_t nelems,
- FILE *fp);
-
- static int fgetc (FILE* fp);
-
-#if !defined (ACE_LACKS_CLEARERR)
-#if defined (clearerr)
-#define __ace_clearerr clearerr
-#undef clearerr
-#endif /* defined (clearerr) */
- static void clearerr (FILE* fp);
-#if defined (clearerr)
-#define clearerr __ace_clearerr
-#undef __ace_clearerr
-#endif /* defined (clearerr) */
-#endif /* !ACE_LACKS_CLEARERR */
-
-#if defined (ACE_HAS_WCHAR)
- static wint_t fgetwc (FILE* fp);
- static wint_t ungetwc (wint_t c, FILE* fp);
-#endif /* ACE_HAS_WCHAR */
-
- static int fseek (FILE *fp,
- long offset,
- int ptrname);
- static long ftell (FILE* fp);
- static int fgetpos (FILE* fp, fpos_t* pos);
- static int fsetpos (FILE* fp, fpos_t* pos);
- static int fstat (ACE_HANDLE,
- ACE_stat *);
- static int lstat (const char *,
- ACE_stat *);
- static int ftruncate (ACE_HANDLE,
- off_t);
- static size_t fwrite (const void *ptr,
- size_t size,
- size_t nitems,
- FILE *fp);
- static void rewind (FILE *fp);
- //@}
-
- //@{ @name Wrappers for searching and sorting.
- static void *bsearch (const void *key,
- const void *base,
- size_t nel,
- size_t size,
- ACE_COMPARE_FUNC);
- static void qsort (void *base,
- size_t nel,
- size_t width,
- ACE_COMPARE_FUNC);
- //@}
-
- //@{ @name A set of wrappers for file locks.
- static int flock_init (ACE_OS::ace_flock_t *lock,
- int flags = 0,
- const ACE_TCHAR *name = 0,
- mode_t perms = 0);
- static int flock_destroy (ACE_OS::ace_flock_t *lock,
- int unlink_file = 1);
-# if defined (ACE_WIN32)
- static void adjust_flock_params (ACE_OS::ace_flock_t *lock,
- short whence,
- off_t &start,
- off_t &len);
-# endif /* ACE_WIN32 */
- static int flock_rdlock (ACE_OS::ace_flock_t *lock,
- short whence = 0,
- off_t start = 0,
- off_t len = 0);
- static int flock_tryrdlock (ACE_OS::ace_flock_t *lock,
- short whence = 0,
- off_t start = 0,
- off_t len = 0);
- static int flock_trywrlock (ACE_OS::ace_flock_t *lock,
- short whence = 0,
- off_t start = 0,
- off_t len = 0);
- static int flock_unlock (ACE_OS::ace_flock_t *lock,
- short whence = 0,
- off_t start = 0,
- off_t len = 0);
- static int flock_wrlock (ACE_OS::ace_flock_t *lock,
- short whence = 0,
- off_t start = 0,
- off_t len = 0);
- //@}
-
- //@{ @name A set of wrappers for low-level process operations.
- static int atexit (ACE_EXIT_HOOK func);
- static int execl (const char *path,
- const char *arg0, ...);
- static int execle (const char *path,
- const char *arg0, ...);
- static int execlp (const char *file,
- const char *arg0, ...);
- static int execv (const char *path,
- char *const argv[]);
- static int execvp (const char *file,
- char *const argv[]);
- static int execve (const char *path,
- char *const argv[],
- char *const envp[]);
- static void _exit (int status = 0);
- static void exit (int status = 0);
- static void abort (void);
- static pid_t fork (void);
-
- static int getpagesize (void);
- static int allocation_granularity (void);
-
- static gid_t getgid (void);
- static int setgid (gid_t);
- static pid_t getpid (void);
- static pid_t getpgid (pid_t pid);
- static pid_t getppid (void);
- static uid_t getuid (void);
- static int setuid (uid_t);
- static pid_t setsid (void);
- static int setpgid (pid_t pid, pid_t pgid);
- static int setreuid (uid_t ruid, uid_t euid);
- static int setregid (gid_t rgid, gid_t egid);
- static int system (const ACE_TCHAR *s);
- //@}
-
- //@{
- /// Forks and exec's a process in a manner that works on Solaris and
- /// NT. argv[0] must be the full path name to the executable.
- static pid_t fork (const ACE_TCHAR *program_name);
- static pid_t fork_exec (ACE_TCHAR *argv[]);
- //@}
-
- /**
- * Calls <::waitpid> on UNIX/POSIX platforms and <::await> on
- * Chorus. Does not work on Vxworks, or pSoS.
- * On Win32, <pid> is ignored if the <handle> is not equal to 0.
- * Passing the process <handle> is prefer on Win32 because using
- * <pid> to wait on the project doesn't always work correctly
- * if the waited process has already terminated.
- */
- static pid_t waitpid (pid_t pid,
- ACE_exitcode *status = 0,
- int wait_options = 0,
- ACE_HANDLE handle = 0);
-
- /**
- * Calls <::WaitForSingleObject> on Win32 and <ACE::waitpid>
- * otherwise. Returns the passed in <pid_t> on success and -1 on
- * failure.
- * On Win32, <pid> is ignored if the <handle> is not equal to 0.
- * Passing the process <handle> is prefer on Win32 because using
- * <pid> to wait on the project doesn't always work correctly
- * if the waited process has already terminated.
- */
- static pid_t wait (pid_t pid,
- ACE_exitcode *status,
- int wait_options = 0,
- ACE_HANDLE handle = 0);
-
- /// Calls OS <::wait> function, so it's only portable to UNIX/POSIX
- /// platforms.
- static pid_t wait (int * = 0);
-
- //@{ @name A set of wrappers for timers and resource stats.
- static u_int alarm (u_int secs);
- static u_int ualarm (u_int usecs,
- u_int interval = 0);
- static u_int ualarm (const ACE_Time_Value &tv,
- const ACE_Time_Value &tv_interval = ACE_Time_Value::zero);
- static ACE_hrtime_t gethrtime (const ACE_HRTimer_Op = ACE_HRTIMER_GETTIME);
-# if defined (ACE_HAS_POWERPC_TIMER) && (defined (ghs) || defined (__GNUG__))
- static void readPPCTimeBase (u_long &most,
- u_long &least);
-# endif /* ACE_HAS_POWERPC_TIMER && (ghs or __GNUG__) */
- static int clock_gettime (clockid_t,
- struct timespec *);
- static ACE_Time_Value gettimeofday (void);
- static int getrusage (int who,
- struct rusage *rusage);
- static int getrlimit (int resource,
- struct rlimit *rl);
- static int setrlimit (int resource,
- ACE_SETRLIMIT_TYPE *rl);
- static int sleep (u_int seconds);
- static int sleep (const ACE_Time_Value &tv);
- static int nanosleep (const struct timespec *requested,
- struct timespec *remaining = 0);
-
-# if defined (ACE_HAS_BROKEN_R_ROUTINES)
-# undef ctime_r
-# undef asctime_r
-# undef rand_r
-# undef getpwnam_r
-# endif /* ACE_HAS_BROKEN_R_ROUTINES */
- //@}
-
- //@{ @name A set of wrappers for operations on time.
-
- // Get the current time.
- static time_t mktime (struct tm *timeptr);
-
- // wrapper for time zone information.
- static void tzset (void);
-
-# if defined (timezone)
-# undef timezone
-# endif /* timezone */
- static long timezone (void);
-
-# if defined (difftime)
-# undef difftime
-# endif /* difftime */
- static double difftime (time_t t1,
- time_t t0);
- static time_t time (time_t *tloc = 0);
- static struct tm *localtime (const time_t *clock);
- static struct tm *localtime_r (const time_t *clock,
- struct tm *res);
- static struct tm *gmtime (const time_t *clock);
- static struct tm *gmtime_r (const time_t *clock,
- struct tm *res);
- static char *asctime (const struct tm *tm);
- static char *asctime_r (const struct tm *tm,
- char *buf, int buflen);
- static ACE_TCHAR *ctime (const time_t *t);
- static ACE_TCHAR *ctime_r (const time_t *clock, ACE_TCHAR *buf, int buflen);
- static size_t strftime (char *s,
- size_t maxsize,
- const char *format,
- const struct tm *timeptr);
- //@}
-
- //@{ @name A set of wrappers for System V message queues.
- static int msgctl (int msqid,
- int cmd,
- struct msqid_ds *);
- static int msgget (key_t key,
- int msgflg);
- static int msgrcv (int int_id,
- void *buf,
- size_t len,
- long type,
- int flags);
- static int msgsnd (int int_id,
- const void *buf,
- size_t len,
- int flags);
- //@}
-
- //@{ @name A set of wrappers for memory mapped files.
- static int madvise (caddr_t addr,
- size_t len,
- int advice);
- static void *mmap (void *addr,
- size_t len,
- int prot,
- int flags,
- ACE_HANDLE handle,
- off_t off = 0,
- ACE_HANDLE *file_mapping = 0,
- LPSECURITY_ATTRIBUTES sa = 0,
- const ACE_TCHAR *file_mapping_name = 0);
- static int mprotect (void *addr,
- size_t len,
- int prot);
- static int msync (void *addr,
- size_t len,
- int sync);
- static int munmap (void *addr,
- size_t len);
- //@}
-
- //@{ @name A set of wrappers for recursive mutex locks.
- static int recursive_mutex_init (ACE_recursive_thread_mutex_t *m,
- const ACE_TCHAR *name = 0,
- ACE_mutexattr_t *arg = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
- static int recursive_mutex_destroy (ACE_recursive_thread_mutex_t *m);
- static int recursive_mutex_lock (ACE_recursive_thread_mutex_t *m);
- static int recursive_mutex_trylock (ACE_recursive_thread_mutex_t *m);
- static int recursive_mutex_unlock (ACE_recursive_thread_mutex_t *m);
- // These two methods are primarily in support of
- // ACE_Condition<ACE_Recursive_Thread_Mutex> and should probably not
- // be called outside that context.
- static int recursive_mutex_cond_unlock (ACE_recursive_thread_mutex_t *m,
- ACE_recursive_mutex_state &state);
- static void recursive_mutex_cond_relock (ACE_recursive_thread_mutex_t *m,
- ACE_recursive_mutex_state &state);
- //@}
-
- //@{ @name A set of wrappers for mutex locks.
- static int mutex_init (ACE_mutex_t *m,
- int type = ACE_DEFAULT_SYNCH_TYPE,
- const char *name = 0,
- ACE_mutexattr_t *arg = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
-#if defined (ACE_HAS_WCHAR)
- static int mutex_init (ACE_mutex_t *m,
- int type,
- const wchar_t *name,
- ACE_mutexattr_t *arg = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
-#endif /* ACE_HAS_WCHAR */
- static int mutex_destroy (ACE_mutex_t *m);
-
- /// Win32 note: Abandoned mutexes are not treated differently. 0 is
- /// returned since the calling thread does get the ownership.
- static int mutex_lock (ACE_mutex_t *m);
-
- /// This method is only implemented for Win32. For abandoned
- /// mutexes, <abandoned> is set to 1 and 0 is returned.
- static int mutex_lock (ACE_mutex_t *m,
- int &abandoned);
-
- /**
- * This method attempts to acquire a lock, but gives up if the lock
- * has not been acquired by the given time. If the lock is not
- * acquired within the given amount of time, then this method
- * returns -1 with an <ETIME> errno on platforms that actually
- * support timed mutexes. The timeout should be an absolute time.
- * Note that the mutex should not be a recursive one, i.e., it
- * should only be a standard mutex or an error checking mutex.
- */
- static int mutex_lock (ACE_mutex_t *m,
- const ACE_Time_Value &timeout);
-
- /**
- * If <timeout> == 0, calls <ACE_OS::mutex_lock(m)>. Otherwise,
- * this method attempts to acquire a lock, but gives up if the lock
- * has not been acquired by the given time, in which case it returns
- * -1 with an <ETIME> errno on platforms that actually support timed
- * mutexes. The timeout should be an absolute time. Note that the
- * mutex should not be a recursive one, i.e., it should only be a
- * standard mutex or an error checking mutex.
- */
- static int mutex_lock (ACE_mutex_t *m,
- const ACE_Time_Value *timeout);
-
- /// Win32 note: Abandoned mutexes are not treated differently. 0 is
- /// returned since the calling thread does get the ownership.
- static int mutex_trylock (ACE_mutex_t *m);
-
- /// This method is only implemented for Win32. For abandoned
- /// mutexes, <abandoned> is set to 1 and 0 is returned.
- static int mutex_trylock (ACE_mutex_t *m,
- int &abandoned);
-
- static int mutex_unlock (ACE_mutex_t *m);
- //@}
-
- //@{ @name A set of wrappers for mutex locks that only work within a single process.
- static int thread_mutex_init (ACE_thread_mutex_t *m,
- int type = ACE_DEFAULT_SYNCH_TYPE,
- const char *name = 0,
- ACE_mutexattr_t *arg = 0);
-#if defined (ACE_HAS_WCHAR)
- static int thread_mutex_init (ACE_thread_mutex_t *m,
- int type,
- const wchar_t *name,
- ACE_mutexattr_t *arg = 0);
-#endif /* ACE_HAS_WCHAR */
- static int thread_mutex_destroy (ACE_thread_mutex_t *m);
- static int thread_mutex_lock (ACE_thread_mutex_t *m);
- static int thread_mutex_lock (ACE_thread_mutex_t *m,
- const ACE_Time_Value &timeout);
- static int thread_mutex_lock (ACE_thread_mutex_t *m,
- const ACE_Time_Value *timeout);
- static int thread_mutex_trylock (ACE_thread_mutex_t *m);
- static int thread_mutex_unlock (ACE_thread_mutex_t *m);
- //@}
-
- //@{ @name A set of wrappers for low-level file operations.
- static int access (const char *path, int amode);
-#if defined (ACE_HAS_WCHAR)
- static int access (const wchar_t *path, int amode);
-#endif /* ACE_HAS_WCHAR */
-
- static int close (ACE_HANDLE handle);
- static ACE_HANDLE creat (const ACE_TCHAR *filename,
- mode_t mode);
- static ACE_HANDLE dup (ACE_HANDLE handle);
- static int dup2 (ACE_HANDLE oldfd,
- ACE_HANDLE newfd);
- static int fattach (int handle,
- const char *path);
- static long filesize (ACE_HANDLE handle);
- static long filesize (const ACE_TCHAR *handle);
- static int getmsg (ACE_HANDLE handle,
- struct strbuf *ctl,
- struct strbuf
- *data, int *flags);
- static int getpmsg (ACE_HANDLE handle,
- struct strbuf *ctl,
- struct strbuf
- *data,
- int *band,
- int *flags);
-
- /// UNIX-style <ioctl>.
- static int ioctl (ACE_HANDLE handle,
- int cmd,
- void * = 0);
-
-#if !defined (ACE_HAS_WINCE)
- /// QoS-enabled <ioctl>.
- static int ioctl (ACE_HANDLE socket,
- u_long io_control_code,
- void *in_buffer_p,
- u_long in_buffer,
- void *out_buffer_p,
- u_long out_buffer,
- u_long *bytes_returned,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func);
-
- /// QoS-enabled <ioctl> when the I/O control code is either
- /// SIO_SET_QOS or SIO_GET_QOS.
- static int ioctl (ACE_HANDLE socket,
- u_long io_control_code,
- ACE_QoS &ace_qos,
- u_long *bytes_returned,
- void *buffer_p = 0,
- u_long buffer = 0,
- ACE_OVERLAPPED *overlapped = 0,
- ACE_OVERLAPPED_COMPLETION_FUNC func = 0);
-#endif // ACE_HAS_WINCE
-
- static int isastream (ACE_HANDLE handle);
- static int isatty (int handle);
-#if defined (ACE_WIN32)
- static int isatty (ACE_HANDLE handle);
-#endif /* ACE_WIN32 */
- static off_t lseek (ACE_HANDLE handle,
- off_t offset,
- int whence);
-#if defined (ACE_HAS_LLSEEK) || defined (ACE_HAS_LSEEK64)
- static ACE_LOFF_T llseek (ACE_HANDLE handle, ACE_LOFF_T offset, int whence);
-#endif /* ACE_HAS_LLSEEK */
-
- // It used to be that the <perms> argument default was 0 on all
- // platforms. Further, the ACE_OS::open implementations ignored <perms>
- // for Win32 and always supplied read|write|delete. To preserve
- // backward compatibility and allow users to pass in values
- // that are used as desired, the defaults are now what the default
- // action used to be on Win32. The implementation now obeys what is passed.
-#if defined (ACE_WIN32)
-# if defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 == 1)
-# define ACE_DEFAULT_OPEN_PERMS (FILE_SHARE_READ | FILE_SHARE_WRITE | \
- FILE_SHARE_DELETE)
-# else
-# define ACE_DEFAULT_OPEN_PERMS (FILE_SHARE_READ | FILE_SHARE_WRITE)
-# endif /* ACE_HAS_WINCE */
-#else
-# define ACE_DEFAULT_OPEN_PERMS 0
-#endif /* ACE_WIN32 */
-
- /// The O_APPEND flag is only partly supported on Win32. If you specify
- /// O_APPEND, then the file pointer will be positioned at the end of
- /// the file initially during open, but it is not re-positioned at
- /// the end prior to each write, as specified by POSIX. This
- /// is generally good enough for typical situations, but it is ``not
- /// quite right'' in its semantics.
- static ACE_HANDLE open (const char *filename,
- int mode,
- int perms = ACE_DEFAULT_OPEN_PERMS,
- LPSECURITY_ATTRIBUTES sa = 0);
-#if defined (ACE_HAS_WCHAR)
- static ACE_HANDLE open (const wchar_t *filename,
- int mode,
- int perms = ACE_DEFAULT_OPEN_PERMS,
- LPSECURITY_ATTRIBUTES sa = 0);
-#endif /* ACE_HAS_WCHAR */
- static int putmsg (ACE_HANDLE handle,
- const struct strbuf *ctl,
- const struct strbuf *data,
- int flags);
- static int putpmsg (ACE_HANDLE handle,
- const struct strbuf *ctl,
- const struct strbuf *data,
- int band,
- int flags);
- static ssize_t read (ACE_HANDLE handle,
- void *buf,
- size_t len);
- static ssize_t read (ACE_HANDLE handle,
- void *buf,
- size_t len,
- ACE_OVERLAPPED *);
- /**
- * Receive <len> bytes into <buf> from <handle> (uses the
- * <ACE_OS::read> call, which uses the <read> system call on UNIX
- * and the <ReadFile> call on Win32). If errors occur, -1 is
- * returned. If EOF occurs, 0 is returned. Whatever data has been
- * transmitted will be returned to the caller through
- * <bytes_transferred>.
- */
- static ssize_t read_n (ACE_HANDLE handle,
- void *buf,
- size_t len,
- size_t *bytes_transferred = 0);
-
- static int readlink (const char *path,
- char *buf,
- size_t bufsiz);
- static ssize_t pread (ACE_HANDLE handle,
- void *buf,
- size_t nbyte,
- off_t offset);
- static int recvmsg (ACE_HANDLE handle,
- struct msghdr *msg,
- int flags);
- static int sendmsg (ACE_HANDLE handle,
- const struct msghdr *msg,
- int flags);
- static ssize_t write (ACE_HANDLE handle,
- const void *buf,
- size_t nbyte);
- static ssize_t write (ACE_HANDLE handle,
- const void *buf,
- size_t nbyte,
- ACE_OVERLAPPED *);
-
- /**
- * Send <len> bytes from <buf> to <handle> (uses the <ACE_OS::write>
- * calls, which is uses the <write> system call on UNIX and the
- * <WriteFile> call on Win32). If errors occur, -1 is returned. If
- * EOF occurs, 0 is returned. Whatever data has been transmitted
- * will be returned to the caller through <bytes_transferred>.
- */
- static ssize_t write_n (ACE_HANDLE handle,
- const void *buf,
- size_t len,
- size_t *bytes_transferred = 0);
-
- static ssize_t pwrite (ACE_HANDLE handle,
- const void *buf,
- size_t nbyte,
- off_t offset);
- static ssize_t readv (ACE_HANDLE handle,
- iovec *iov,
- int iovlen);
- static ssize_t writev (ACE_HANDLE handle,
- const iovec *iov,
- int iovcnt);
- static ssize_t recvv (ACE_HANDLE handle,
- iovec *iov,
- int iovlen);
- static ssize_t sendv (ACE_HANDLE handle,
- const iovec *iov,
- int iovcnt);
- //@}
-
- //@{ @name A set of wrappers for event demultiplexing and IPC.
- static int select (int width,
- fd_set *rfds,
- fd_set *wfds = 0,
- fd_set *efds = 0,
- const ACE_Time_Value *tv = 0);
- static int select (int width,
- fd_set *rfds,
- fd_set *wfds,
- fd_set *efds,
- const ACE_Time_Value &tv);
- static int poll (struct pollfd *pollfds,
- u_long len,
- const ACE_Time_Value *tv = 0);
- static int poll (struct pollfd *pollfds,
- u_long len,
- const ACE_Time_Value &tv);
- static int pipe (ACE_HANDLE handles[]);
-
- static ACE_HANDLE shm_open (const ACE_TCHAR *filename,
- int mode,
- int perms = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
- static int shm_unlink (const ACE_TCHAR *path);
- //@}
-
- //@{ @name A set of wrappers for directory operations.
- static mode_t umask (mode_t cmask);
-
-#if !defined (ACE_LACKS_CHDIR)
- static int chdir (const char *path);
-
-#if defined (ACE_HAS_WCHAR)
- static int chdir (const wchar_t *path);
-#endif /* ACE_HAS_WCHAR */
-#endif /* ACE_LACKS_CHDIR */
-
- static int mkdir (const ACE_TCHAR *path,
- mode_t mode = ACE_DEFAULT_DIR_PERMS);
- static int mkfifo (const ACE_TCHAR *file,
- mode_t mode = ACE_DEFAULT_FILE_PERMS);
- static ACE_TCHAR *mktemp (ACE_TCHAR *t);
- static ACE_HANDLE mkstemp (ACE_TCHAR *t);
- static ACE_TCHAR *getcwd (ACE_TCHAR *, size_t);
- static int rename (const ACE_TCHAR *old_name,
- const ACE_TCHAR *new_name,
- int flags = -1);
- static int unlink (const ACE_TCHAR *path);
- static ACE_TCHAR *tempnam (const ACE_TCHAR *dir = 0,
- const ACE_TCHAR *pfx = 0);
- //@}
-
- //@{ @name A set of wrappers for random number operations.
- static int rand (void);
- static int rand_r (ACE_RANDR_TYPE &seed);
- static void srand (u_int seed);
- //@}
-
- //@{ @name A set of wrappers for readers/writer locks.
- static int rwlock_init (ACE_rwlock_t *rw,
- int type = ACE_DEFAULT_SYNCH_TYPE,
- const ACE_TCHAR *name = 0,
- void *arg = 0);
- static int rwlock_destroy (ACE_rwlock_t *rw);
- static int rw_rdlock (ACE_rwlock_t *rw);
- static int rw_wrlock (ACE_rwlock_t *rw);
- static int rw_tryrdlock (ACE_rwlock_t *rw);
- static int rw_trywrlock (ACE_rwlock_t *rw);
- static int rw_trywrlock_upgrade (ACE_rwlock_t *rw);
- static int rw_unlock (ACE_rwlock_t *rw);
- //@}
-
- //@{ @name A set of wrappers for auto-reset and manual events.
- static int event_init (ACE_event_t *event,
- int manual_reset = 0,
- int initial_state = 0,
- int type = ACE_DEFAULT_SYNCH_TYPE,
- const char *name = 0,
- void *arg = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
-# if defined (ACE_HAS_WCHAR)
- static int event_init (ACE_event_t *event,
- int manual_reset,
- int initial_state,
- int type,
- const wchar_t *name,
- void *arg = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
-# endif /* ACE_HAS_WCHAR */
- static int event_destroy (ACE_event_t *event);
- static int event_wait (ACE_event_t *event);
- static int event_timedwait (ACE_event_t *event,
- ACE_Time_Value *timeout,
- int use_absolute_time = 1);
- static int event_signal (ACE_event_t *event);
- static int event_pulse (ACE_event_t *event);
- static int event_reset (ACE_event_t *event);
- //@}
-
- //@{ @name A set of wrappers for semaphores.
- static int sema_destroy (ACE_sema_t *s);
- static int sema_init (ACE_sema_t *s,
- u_int count,
- int type = ACE_DEFAULT_SYNCH_TYPE,
- const char *name = 0,
- void *arg = 0,
- int max = 0x7fffffff,
- LPSECURITY_ATTRIBUTES sa = 0);
-# if defined (ACE_HAS_WCHAR)
- static int sema_init (ACE_sema_t *s,
- u_int count,
- int type,
- const wchar_t *name,
- void *arg = 0,
- int max = 0x7fffffff,
- LPSECURITY_ATTRIBUTES sa = 0);
-# endif /* ACE_HAS_WCHAR */
- static int sema_post (ACE_sema_t *s);
- static int sema_post (ACE_sema_t *s,
- u_int release_count);
- static int sema_trywait (ACE_sema_t *s);
- static int sema_wait (ACE_sema_t *s);
- static int sema_wait (ACE_sema_t *s,
- ACE_Time_Value &tv);
- static int sema_wait (ACE_sema_t *s,
- ACE_Time_Value *tv);
- //@}
-
- //@{ @name A set of wrappers for System V semaphores.
- static int semctl (int int_id,
- int semnum,
- int cmd,
- semun);
- static int semget (key_t key,
- int nsems,
- int flags);
- static int semop (int int_id,
- struct sembuf *sops,
- size_t nsops);
- //@}
-
- //@{ @name Thread scheduler interface.
- /// Set scheduling parameters. An id of ACE_SELF indicates, e.g.,
- /// set the parameters on the calling thread.
- static int sched_params (const ACE_Sched_Params &, ACE_id_t id = ACE_SELF);
- //@}
-
- //@{ @name A set of wrappers for System V shared memory.
- static void *shmat (int int_id,
- void *shmaddr,
- int shmflg);
- static int shmctl (int int_id,
- int cmd,
- struct shmid_ds *buf);
- static int shmdt (void *shmaddr);
- static int shmget (key_t key,
- int size,
- int flags);
- ///@}
-
- //@{ @name A set of wrappers for Signals.
- static int kill (pid_t pid,
- int signum);
- static int sigaction (int signum,
- const struct sigaction *nsa,
- struct sigaction *osa);
- static int sigaddset (sigset_t *s,
- int signum);
- static int sigdelset (sigset_t *s,
- int signum);
- static int sigemptyset (sigset_t *s);
- static int sigfillset (sigset_t *s);
- static int sigismember (sigset_t *s,
- int signum);
- static ACE_SignalHandler signal (int signum,
- ACE_SignalHandler);
- static int sigsuspend (const sigset_t *set);
- static int sigprocmask (int how,
- const sigset_t *nsp,
- sigset_t *osp);
-
- static int pthread_sigmask (int how,
- const sigset_t *nsp,
- sigset_t *osp);
- //@}
-
- //@{ @name A set of wrappers for sockets.
- /// BSD-style <accept> (no QoS).
- static ACE_HANDLE accept (ACE_HANDLE handle,
- struct sockaddr *addr,
- int *addrlen);
-
-#if !defined (ACE_HAS_WINCE)
- /**
- * QoS-enabled <accept>, which passes <qos_params> to <accept>. If
- * the OS platform doesn't support QoS-enabled <accept> then the
- * <qos_params> are ignored and the BSD-style <accept> is called.
- */
- static ACE_HANDLE accept (ACE_HANDLE handle,
- struct sockaddr *addr,
- int *addrlen,
- const ACE_Accept_QoS_Params &qos_params);
-#endif // ACE_HAS_WINCE
-
- /// BSD-style <connect> (no QoS).
- static int connect (ACE_HANDLE handle,
- struct sockaddr *addr,
- int addrlen);
-
-#if !defined (ACE_HAS_WINCE)
- /**
- * QoS-enabled <connect>, which passes <qos_params> to <connect>.
- * If the OS platform doesn't support QoS-enabled <connect> then the
- * <qos_params> are ignored and the BSD-style <connect> is called.
- */
- static int connect (ACE_HANDLE handle,
- const sockaddr *addr,
- int addrlen,
- const ACE_QoS_Params &qos_params);
-#endif // ACE_HAS_WINCE
-
- static int bind (ACE_HANDLE s,
- struct sockaddr *name,
- int namelen);
-
- static int closesocket (ACE_HANDLE s);
- static struct hostent *gethostbyaddr (const char *addr,
- int length,
- int type);
- static struct hostent *gethostbyname (const char *name);
- static struct hostent *getipnodebyname (const char *name, int family,
- int flags = 0);
- static struct hostent *getipnodebyaddr (const void *src, size_t len,
- int family);
- static struct hostent *gethostbyaddr_r (const char *addr,
- int length,
- int type,
- struct hostent *result,
- ACE_HOSTENT_DATA buffer,
- int *h_errnop);
- static struct hostent *gethostbyname_r (const char *name,
- struct hostent *result,
- ACE_HOSTENT_DATA buffer,
- int *h_errnop);
- static int getpeername (ACE_HANDLE handle,
- struct sockaddr *addr,
- int *addrlen);
- static struct protoent *getprotobyname (const char *name);
- static struct protoent *getprotobyname_r (const char *name,
- struct protoent *result,
- ACE_PROTOENT_DATA buffer);
- static struct protoent *getprotobynumber (int proto);
- static struct protoent *getprotobynumber_r (int proto,
- struct protoent *result,
- ACE_PROTOENT_DATA buffer);
- static struct servent *getservbyname (const char *svc,
- const char *proto);
- static struct servent *getservbyname_r (const char *svc,
- const char *proto,
- struct servent *result,
- ACE_SERVENT_DATA buf);
- static int getsockname (ACE_HANDLE handle,
- struct sockaddr *addr,
- int *addrlen);
- static int getsockopt (ACE_HANDLE handle,
- int level,
- int optname,
- char *optval,
- int *optlen);
- static unsigned long inet_addr (const char *name);
- static char *inet_ntoa (const struct in_addr addr);
- static int inet_aton (const char *strptr,
- struct in_addr *addr);
- static const char *inet_ntop (int family,
- const void *addrptr,
- char *strptr,
- size_t len);
- static int inet_pton (int family,
- const char *strptr,
- void *addrptr);
- /// Retrieve information about available transport protocols
- /// installed on the local machine.
- static int enum_protocols (int *protocols,
- ACE_Protocol_Info *protocol_buffer,
- u_long *buffer_length);
-
-#if !defined (ACE_HAS_WINCE)
- /// Joins a leaf node into a QoS-enabled multi-point session.
- static ACE_HANDLE join_leaf (ACE_HANDLE socket,
- const sockaddr *name,
- int namelen,
- const ACE_QoS_Params &qos_params);
-#endif // ACE_HAS_WINCE
-
- static int listen (ACE_HANDLE handle,
- int backlog);
- static int recv (ACE_HANDLE handle,
- char *buf,
- size_t len,
- int flags = 0);
- static int recvfrom (ACE_HANDLE handle,
- char *buf,
- size_t len,
- int flags,
- struct sockaddr *addr,
- int *addrlen);
- static int recvfrom (ACE_HANDLE handle,
- iovec *buffers,
- int buffer_count,
- size_t &number_of_bytes_recvd,
- int &flags,
- struct sockaddr *addr,
- int *addrlen,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func);
- static int send (ACE_HANDLE handle,
- const char *buf,
- size_t len,
- int flags = 0);
- static int sendto (ACE_HANDLE handle,
- const char *buf,
- size_t len,
- int flags,
- const struct sockaddr *addr,
- int addrlen);
- static int sendto (ACE_HANDLE handle,
- const iovec *buffers,
- int buffer_count,
- size_t &number_of_bytes_sent,
- int flags,
- const struct sockaddr *addr,
- int addrlen,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func);
-
- /// Manipulate the options associated with a socket.
- static int setsockopt (ACE_HANDLE handle,
- int level,
- int optname,
- const char *optval,
- int optlen);
- static int shutdown (ACE_HANDLE handle,
- int how);
-
- /// Create a BSD-style socket (no QoS).
- static ACE_HANDLE socket (int protocol_family,
- int type,
- int proto);
-
- /// Create a QoS-enabled socket. If the OS platform doesn't support
- /// QoS-enabled <socket> then the BSD-style <socket> is called.
- static ACE_HANDLE socket (int protocol_family,
- int type,
- int proto,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags);
-
- static int socketpair (int domain,
- int type,
- int protocol,
- ACE_HANDLE sv[2]);
-
- /// Initialize WinSock before first use (e.g., when a DLL is first
- /// loaded or the first use of a socket() call.
- static int socket_init (int version_high = 1,
- int version_low = 1);
-
- /// Finalize WinSock after last use (e.g., when a DLL is unloaded).
- static int socket_fini (void);
- //@}
-
- //@{ @name A set of wrappers for password routines.
- static void setpwent (void);
- static void endpwent (void);
- static struct passwd *getpwent (void);
- static struct passwd *getpwnam (const char *user);
- static struct passwd *getpwnam_r (const char *name,
- struct passwd *pwent,
- char *buffer,
- int buflen);
- //@}
-
- //@{ @name A set of wrappers for regular expressions.
- static char *compile (const char *instring,
- char *expbuf,
- char *endbuf);
- static int step (const char *str,
- char *expbuf);
- //@}
-
- //@{ @name Wide-character strings
- typedef ACE_WCHAR_T WChar;
-
- static u_int wslen (const WChar *);
- static WChar *wscpy (WChar *,
- const WChar *);
- static int wscmp (const WChar *,
- const WChar *);
- static int wsncmp (const WChar *,
- const WChar *,
- size_t len);
- //@}
-
-# if 0
- //@{ @name A set of wrappers for threads (these are portable since they use the ACE_Thread_ID).
- static int thr_continue (const ACE_Thread_ID &thread);
- static int thr_create (ACE_THR_FUNC,
- void *args,
- long flags,
- ACE_Thread_ID *,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- void *stack = 0,
- size_t stacksize = 0);
- static int thr_getprio (ACE_Thread_ID thr_id,
- int &prio,
- int *policy = 0);
- static int thr_join (ACE_Thread_ID waiter_id,
- ACE_THR_FUNC_RETURN *status);
- static int thr_kill (ACE_Thread_ID thr_id,
- int signum);
- static ACE_Thread_ID thr_self (void);
- static int thr_setprio (ACE_Thread_ID thr_id,
- int prio);
- static int thr_setprio (const ACE_Sched_Priority prio);
- static int thr_suspend (ACE_Thread_ID target_thread);
- static int thr_cancel (ACE_Thread_ID t_id);
- //@}
-# endif /* 0 */
-
- //@{ @name A set of wrappers for threads
-
- // These are non-portable since they use ACE_thread_t and
- // ACE_hthread_t and will go away in a future release.
- static int thr_continue (ACE_hthread_t target_thread);
-
- /*
- * Creates a new thread having <flags> attributes and running <func>
- * with <args> (if <thread_adapter> is non-0 then <func> and <args>
- * are ignored and are obtained from <thread_adapter>). <thr_id>
- * and <t_handle> are set to the thread's ID and handle (?),
- * respectively. The thread runs at <priority> priority (see
- * below).
- *
- * The <flags> are a bitwise-OR of the following:
- * = BEGIN<INDENT>
- * THR_CANCEL_DISABLE, THR_CANCEL_ENABLE, THR_CANCEL_DEFERRED,
- * THR_CANCEL_ASYNCHRONOUS, THR_BOUND, THR_NEW_LWP, THR_DETACHED,
- * THR_SUSPENDED, THR_DAEMON, THR_JOINABLE, THR_SCHED_FIFO,
- * THR_SCHED_RR, THR_SCHED_DEFAULT, THR_EXPLICIT_SCHED,
- * THR_SCOPE_SYSTEM, THR_SCOPE_PROCESS
- * = END<INDENT>
- *
- * By default, or if <priority> is set to
- * ACE_DEFAULT_THREAD_PRIORITY, an "appropriate" priority value for
- * the given scheduling policy (specified in <flags}>, e.g.,
- * <THR_SCHED_DEFAULT>) is used. This value is calculated
- * dynamically, and is the median value between the minimum and
- * maximum priority values for the given policy. If an explicit
- * value is given, it is used. Note that actual priority values are
- * EXTREMEMLY implementation-dependent, and are probably best
- * avoided.
- *
- * Note that <thread_adapter> is always deleted by <thr_create>,
- * therefore it must be allocated with global operator new.
- */
- static int thr_create (ACE_THR_FUNC func,
- void *args,
- long flags,
- ACE_thread_t *thr_id,
- ACE_hthread_t *t_handle = 0,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- void *stack = 0,
- size_t stacksize = 0,
- ACE_Base_Thread_Adapter *thread_adapter = 0);
-
- static int thr_join (ACE_hthread_t waiter_id,
- ACE_THR_FUNC_RETURN *status);
- static int thr_join (ACE_thread_t waiter_id,
- ACE_thread_t *thr_id,
- ACE_THR_FUNC_RETURN *status);
- static int thr_kill (ACE_thread_t thr_id,
- int signum);
- static ACE_thread_t thr_self (void);
- static void thr_self (ACE_hthread_t &);
- static int thr_getprio (ACE_hthread_t id,
- int &priority);
- static int thr_getprio (ACE_hthread_t id,
- int &priority,
- int &policy);
- static int thr_setprio (ACE_hthread_t id,
- int priority,
- int policy = -1);
- static int thr_setprio (const ACE_Sched_Priority prio);
- static int thr_suspend (ACE_hthread_t target_thread);
- static int thr_cancel (ACE_thread_t t_id);
-
- static int thr_cmp (ACE_hthread_t t1,
- ACE_hthread_t t2);
- static int thr_equal (ACE_thread_t t1,
- ACE_thread_t t2);
- static void thr_exit (ACE_THR_FUNC_RETURN status = 0);
- static int thr_getconcurrency (void);
- static int lwp_getparams (ACE_Sched_Params &);
-# if defined (ACE_HAS_TSS_EMULATION) && defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
- static int thr_getspecific (ACE_OS_thread_key_t key,
- void **data);
-# endif /* ACE_HAS_TSS_EMULATION && ACE_HAS_THREAD_SPECIFIC_STORAGE */
- static int thr_getspecific (ACE_thread_key_t key,
- void **data);
- static int thr_keyfree (ACE_thread_key_t key);
- static int thr_key_detach (void *inst);
-# if defined (ACE_HAS_THR_C_DEST)
-# if defined (ACE_HAS_TSS_EMULATION) && defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
- static int thr_keycreate (ACE_OS_thread_key_t *key,
- ACE_THR_C_DEST,
- void *inst = 0);
-# endif /* ACE_HAS_TSS_EMULATION && ACE_HAS_THREAD_SPECIFIC_STORAGE */
- static int thr_keycreate (ACE_thread_key_t *key,
- ACE_THR_C_DEST,
- void *inst = 0);
-# else
-# if defined (ACE_HAS_TSS_EMULATION) && defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
- static int thr_keycreate (ACE_OS_thread_key_t *key,
- ACE_THR_DEST,
- void *inst = 0);
-# endif /* ACE_HAS_TSS_EMULATION && ACE_HAS_THREAD_SPECIFIC_STORAGE */
- static int thr_keycreate (ACE_thread_key_t *key,
- ACE_THR_DEST,
- void *inst = 0);
-# endif /* ACE_HAS_THR_C_DEST */
- static int thr_key_used (ACE_thread_key_t key);
- static size_t thr_min_stack (void);
- static int thr_setconcurrency (int hint);
- static int lwp_setparams (const ACE_Sched_Params &);
-# if defined (ACE_HAS_TSS_EMULATION) && defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
- static int thr_setspecific (ACE_OS_thread_key_t key,
- void *data);
-# endif /* ACE_HAS_TSS_EMULATION && ACE_HAS_THREAD_SPECIFIC_STORAGE */
- static int thr_setspecific (ACE_thread_key_t key,
- void *data);
- static int thr_sigsetmask (int how,
- const sigset_t *nsm,
- sigset_t *osm);
- static int thr_setcancelstate (int new_state,
- int *old_state);
- static int thr_setcanceltype (int new_type,
- int *old_type);
- static int sigwait (sigset_t *set,
- int *sig = 0);
- static int sigtimedwait (const sigset_t *set,
- siginfo_t *info,
- const ACE_Time_Value *timeout);
- static int sigwaitinfo (const sigset_t *set,
- siginfo_t *info);
- static void thr_testcancel (void);
- static void thr_yield (void);
-
- /**
- * This method uses process id and object pointer to come up with a
- * machine wide unique name. The process ID will provide uniqueness
- * between processes on the same machine. The "this" pointer of the
- * <object> will provide uniqueness between other "live" objects in
- * the same process. The uniqueness of this name is therefore only
- * valid for the life of <object>.
- */
- static void unique_name (const void *object,
- ACE_TCHAR *name,
- size_t length);
-
- /// This is necessary to deal with POSIX pthreads and their use of
- /// structures for thread ids.
- static ACE_thread_t NULL_thread;
-
- /// This is necessary to deal with POSIX pthreads and their use of
- /// structures for thread handles.
- static ACE_hthread_t NULL_hthread;
-
- /// This is necessary to deal with POSIX pthreads and their use of
- /// structures for TSS keys.
- static ACE_thread_key_t NULL_key;
-
-# if defined (CHORUS)
- /// This is used to map an actor's id into a KnCap for killing and
- /// waiting actors.
- static KnCap actorcaps_[ACE_CHORUS_MAX_ACTORS];
-# endif /* CHORUS */
- //@}
-
-# if defined (ACE_WIN32)
- /// Keeps track of whether we've already initialized WinSock...
- static int socket_initialized_;
-# endif /* ACE_WIN32 */
-
- /// Handle asynchronous thread cancellation cleanup.
- static void mutex_lock_cleanup (void *mutex);
-
- /**
- * Call TSS destructors for the current thread. If the current
- * thread is the main thread, then the argument must be 1.
- * For private use of ACE_Object_Manager and ACE_Thread_Adapter only.
- */
- static void cleanup_tss (const u_int main_thread);
-
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) && defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
- static int netdb_acquire (void);
- static int netdb_release (void);
-# endif /* defined (ACE_MT_SAFE) && ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
-
- /// Find the schedling class ID that corresponds to the class name.
- static int scheduling_class (const char *class_name, ACE_id_t &);
-
- /// Friendly interface to <priocntl>(2).
- static int set_scheduling_params (const ACE_Sched_Params &,
- ACE_id_t id = ACE_SELF);
-
- /// Low-level interface to <priocntl>(2).
- /**
- * Can't call the following priocntl, because that's a macro on
- * Solaris.
- */
- static int priority_control (ACE_idtype_t, ACE_id_t, int, void *);
-
-#if defined (ACE_HAS_STRPTIME)
- static char *strptime (char *buf,
- const char *format,
- struct tm *tm);
-
-# if defined (ACE_LACKS_NATIVE_STRPTIME)
- static int strptime_getnum (char *buf, int *num, int *bi,
- int *fi, int min, int max);
-# endif /* ACE_LACKS_NATIVE_STRPTIME */
-#endif /* ACE_HAS_STRPTIME */
-
- /// Get the number of CPUs configured in the machine.
- static long num_processors (void);
-
- /// Get the number of CPUs currently online.
- static long num_processors_online (void);
-
-private:
-
-#if defined (ACE_LACKS_WRITEV)
- static int writev_emulation (ACE_HANDLE handle,
- ACE_WRITEV_TYPE *iov,
- int iovcnt);
-#endif /* ACE_LACKS_WRITEV */
-
-#if defined (ACE_LACKS_READV)
- static ssize_t readv_emulation (ACE_HANDLE handle,
- ACE_READV_TYPE *iov,
- int iovcnt);
-#endif /* ACE_LACKS_READV */
-
- /// Function that is called by <ACE_OS::exit>, if non-null.
- static ACE_EXIT_HOOK exit_hook_;
-
- /// For use by ACE_Object_Manager only, to register its exit hook..
- static ACE_EXIT_HOOK set_exit_hook (ACE_EXIT_HOOK hook);
-
- /// Allow the ACE_OS_Object_Manager to call set_exit_hook.
- friend class ACE_OS_Object_Manager;
-
-# if defined (ACE_WIN32)
-# if defined (ACE_HAS_WINCE)
- /// Supporting data for ctime and ctime_r functions on WinCE.
- static const wchar_t *day_of_week_name[7];
- static const wchar_t *month_name[12];
-# endif /* ACE_HAS_WINCE */
-
- /// Translate fopen's mode char to open's mode. This helper function
- /// is here to avoid maintaining several pieces of identical code.
- static void fopen_mode_to_open_mode_converter (ACE_TCHAR x, int &hmode);
-
- static OSVERSIONINFO win32_versioninfo_;
-
- static HINSTANCE win32_resource_module_;
-
-# endif /* ACE_WIN32 */
-
-#if defined (ACE_HAS_VIRTUAL_TIME)
- static clock_t times (struct tms *buf);
-#endif /* ACE_HAS_VIRTUAL_TIME */
-
- //changed for ACE_HAS_VIRTUAL_TIME changes.
-
- static int cond_timedwait_i (ACE_cond_t *cv,
- ACE_mutex_t *m,
- ACE_Time_Value *);
-
- static u_int alarm_i (u_int secs);
-
- static u_int ualarm_i (u_int usecs, u_int interval = 0);
-
- static u_int ualarm_i (const ACE_Time_Value &tv,
- const ACE_Time_Value &tv_interval = ACE_Time_Value::zero);
-
- static int sleep_i (u_int seconds);
-
- static int sleep_i (const ACE_Time_Value &tv);
-
- static int nanosleep_i (const struct timespec *requested,
- struct timespec *remaining = 0);
-
- static int select_i (int width,
- fd_set *rfds,
- fd_set *wfds,
- fd_set *efds,
- const ACE_Time_Value *tv = 0);
-
- static int select_i (int width,
- fd_set *rfds,
- fd_set *wfds,
- fd_set *efds,
- const ACE_Time_Value &tv);
-
- static int poll_i (struct pollfd *pollfds,
- u_long len,
- const ACE_Time_Value *tv = 0);
-
- static int poll_i (struct pollfd *pollfds,
- u_long len,
- const ACE_Time_Value &tv);
-
- static int sema_wait_i (ACE_sema_t *s);
-
- static int sema_wait_i (ACE_sema_t *s,
- ACE_Time_Value &tv);
-
- static int sigtimedwait_i (const sigset_t *set,
- siginfo_t *info,
- const ACE_Time_Value *timeout);
-
- static ACE_Time_Value gettimeofday_i (void);
-};
-
-/**
- * @class ACE_Object_Manager_Base
- *
- * @brief Base class for ACE_Object_Manager(s).
- *
- * Encapsulates the most useful ACE_Object_Manager data structures.
- */
-class ACE_OS_Export ACE_Object_Manager_Base
-{
-# if (defined (ACE_PSOS) && defined (__DIAB)) || \
- (defined (__DECCXX_VER) && __DECCXX_VER < 60000000)
- // The Diab compiler got confused and complained about access rights
- // if this section was protected (changing this to public makes it happy).
- // Similarly, DEC CXX 5.6 needs the methods to be public.
-public:
-# else /* ! (ACE_PSOS && __DIAB) || ! __DECCXX_VER < 60000000 */
-protected:
-# endif /* ! (ACE_PSOS && __DIAB) || ! __DECCXX_VER < 60000000 */
- /// Default constructor.
- ACE_Object_Manager_Base (void);
-
- /// Destructor.
- virtual ~ACE_Object_Manager_Base (void);
-
-public:
- /**
- * Explicitly initialize. Returns 0 on success, -1 on failure due
- * to dynamic allocation failure (in which case errno is set to
- * ENOMEM), or 1 if it had already been called.
- */
- virtual int init (void) = 0;
-
- /**
- * Explicitly destroy. Returns 0 on success, -1 on failure because
- * the number of fini () calls hasn't reached the number of init ()
- * calls, or 1 if it had already been called.
- */
- virtual int fini (void) = 0;
-
- enum Object_Manager_State
- {
- OBJ_MAN_UNINITIALIZED = 0,
- OBJ_MAN_INITIALIZING,
- OBJ_MAN_INITIALIZED,
- OBJ_MAN_SHUTTING_DOWN,
- OBJ_MAN_SHUT_DOWN
- };
-
-protected:
- /**
- * Returns 1 before ACE_Object_Manager_Base has been constructed.
- * This flag can be used to determine if the program is constructing
- * static objects. If no static object spawns any threads, the
- * program will be single-threaded when this flag returns 1. (Note
- * that the program still might construct some static objects when
- * this flag returns 0, if ACE_HAS_NONSTATIC_OBJECT_MANAGER is not
- * defined.)
- */
- int starting_up_i (void);
-
- /**
- * Returns 1 after ACE_Object_Manager_Base has been destroyed. This
- * flag can be used to determine if the program is in the midst of
- * destroying static objects. (Note that the program might destroy
- * some static objects before this flag can return 1, if
- * ACE_HAS_NONSTATIC_OBJECT_MANAGER is not defined.)
- */
- int shutting_down_i (void);
-
- /// State of the Object_Manager;
- Object_Manager_State object_manager_state_;
-
- /**
- * Flag indicating whether the ACE_Object_Manager was dynamically
- * allocated by ACE. (If is was dynamically allocated by the
- * application, then the application is responsible for destroying
- * it.)
- */
- u_int dynamically_allocated_;
-
- /// Link to next Object_Manager, for chaining.
- ACE_Object_Manager_Base *next_;
-private:
- // Disallow copying by not implementing the following . . .
- ACE_Object_Manager_Base (const ACE_Object_Manager_Base &);
- ACE_Object_Manager_Base &operator= (const ACE_Object_Manager_Base &);
-};
-
-extern "C"
-void
-ACE_OS_Object_Manager_Internal_Exit_Hook (void);
-
-
-// @@ This forward declaration should go away.
-class ACE_Log_Msg;
-
-class ACE_OS_Export ACE_OS_Object_Manager : public ACE_Object_Manager_Base
-{
-public:
- /// Explicitly initialize.
- virtual int init (void);
-
- /// Explicitly destroy.
- virtual int fini (void);
-
- /**
- * Returns 1 before the <ACE_OS_Object_Manager> has been
- * constructed. See <ACE_Object_Manager::starting_up> for more
- * information.
- */
- static int starting_up (void);
-
- /// Returns 1 after the <ACE_OS_Object_Manager> has been destroyed.
- /// See <ACE_Object_Manager::shutting_down> for more information.
- static int shutting_down (void);
-
- /// Unique identifiers for preallocated objects.
- enum Preallocated_Object
- {
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- ACE_OS_MONITOR_LOCK,
- ACE_TSS_CLEANUP_LOCK,
- ACE_LOG_MSG_INSTANCE_LOCK,
-# if defined (ACE_HAS_TSS_EMULATION)
- ACE_TSS_KEY_LOCK,
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
- ACE_TSS_BASE_LOCK,
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
-# endif /* ACE_HAS_TSS_EMULATION */
-# else
- // Without ACE_MT_SAFE, There are no preallocated objects. Make
- // sure that the preallocated_array size is at least one by
- // declaring this dummy . . .
- ACE_OS_EMPTY_PREALLOCATED_OBJECT,
-# endif /* ACE_MT_SAFE */
-
- /// This enum value must be last!
- ACE_OS_PREALLOCATED_OBJECTS
- };
-
- /// Accesses a default signal set used, for example, in
- /// <ACE_Sig_Guard> methods.
- static sigset_t *default_mask (void);
-
- /// Returns the current thread hook for the process.
- static ACE_Thread_Hook *thread_hook (void);
-
- /// Returns the existing thread hook and assign a <new_thread_hook>.
- static ACE_Thread_Hook *thread_hook (ACE_Thread_Hook *new_thread_hook);
-
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- /// Get/Set TSS exception action.
- static ACE_SEH_EXCEPT_HANDLER seh_except_selector (void);
- static ACE_SEH_EXCEPT_HANDLER seh_except_selector (ACE_SEH_EXCEPT_HANDLER);
-
- static ACE_SEH_EXCEPT_HANDLER seh_except_handler (void);
- static ACE_SEH_EXCEPT_HANDLER seh_except_handler (ACE_SEH_EXCEPT_HANDLER);
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-
-public:
- // = Applications shouldn't use these so they're hidden here.
-
- // They're public so that the <ACE_Object_Manager> can be
- // constructed/destructed in <main> with
- // <ACE_HAS_NONSTATIC_OBJECT_MANAGER>.
- /// Constructor.
- ACE_OS_Object_Manager (void);
-
- /// Destructor.
- ~ACE_OS_Object_Manager (void);
-
-private:
- /// Accessor to singleton instance.
- static ACE_OS_Object_Manager *instance (void);
-
- /// Singleton instance pointer.
- static ACE_OS_Object_Manager *instance_;
-
- /// Table of preallocated objects.
- static void *preallocated_object[ACE_OS_PREALLOCATED_OBJECTS];
-
- /// Default signal set used, for example, in ACE_Sig_Guard.
- sigset_t *default_mask_;
-
- /// Thread hook that's used by this process.
- ACE_Thread_Hook *thread_hook_;
-
- /// For at_exit support.
- ACE_OS_Exit_Info exit_info_;
-
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- /// These handlers determine how a thread handles win32 structured
- /// exception.
- ACE_SEH_EXCEPT_HANDLER seh_except_selector_;
- ACE_SEH_EXCEPT_HANDLER seh_except_handler_;
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-
- /// For <ACE_OS::atexit> support.
- int at_exit (ACE_EXIT_HOOK func);
-
- /// For use by init () and fini (), to consolidate error reporting.
- static void print_error_message (u_int line_number, const ACE_TCHAR *message);
-
- /// This class is for internal use by ACE_OS, etc., only.
- friend class ACE_OS;
- friend class ACE_Object_Manager;
- friend class ACE_OS_Object_Manager_Manager;
- friend class ACE_TSS_Cleanup;
- friend class ACE_TSS_Emulation;
- friend class ACE_Log_Msg;
- friend void ACE_OS_Object_Manager_Internal_Exit_Hook ();
-};
-
-# if defined (ACE_LACKS_TIMEDWAIT_PROTOTYPES)
-extern "C" ssize_t recv_timedwait (ACE_HANDLE handle,
- char *buf,
- int len,
- int flags,
- struct timespec *timeout);
-extern "C" ssize_t read_timedwait (ACE_HANDLE handle,
- char *buf,
- size_t n,
- struct timespec *timeout);
-extern "C" ssize_t recvmsg_timedwait (ACE_HANDLE handle,
- struct msghdr *msg,
- int flags,
- struct timespec *timeout);
-extern "C" ssize_t recvfrom_timedwait (ACE_HANDLE handle,
- char *buf,
- int len,
- int flags,
- struct sockaddr *addr,
- int
- *addrlen,
- struct timespec *timeout);
-extern "C" ssize_t readv_timedwait (ACE_HANDLE handle,
- iovec *iov,
- int iovcnt,
- struct timespec* timeout);
-extern "C" ssize_t send_timedwait (ACE_HANDLE handle,
- const char *buf,
- int len,
- int flags,
- struct timespec *timeout);
-extern "C" ssize_t write_timedwait (ACE_HANDLE handle,
- const void *buf,
- size_t n,
- struct timespec *timeout);
-extern "C" ssize_t sendmsg_timedwait (ACE_HANDLE handle,
- ACE_SENDMSG_TYPE *msg,
- int flags,
- struct timespec *timeout);
-extern "C" ssize_t sendto_timedwait (ACE_HANDLE handle,
- const char *buf,
- int len,
- int flags,
- const struct sockaddr *addr,
- int addrlen,
- struct timespec *timeout);
-extern "C" ssize_t writev_timedwait (ACE_HANDLE handle,
- ACE_WRITEV_TYPE *iov,
- int iovcnt,
- struct timespec *timeout);
-# endif /* ACE_LACKS_TIMEDWAIT_PROTOTYPES */
-
-# if defined (ACE_HAS_TSS_EMULATION)
- // Allow config.h to set the default number of thread keys.
-# if !defined (ACE_DEFAULT_THREAD_KEYS)
-# define ACE_DEFAULT_THREAD_KEYS 64
-# endif /* ! ACE_DEFAULT_THREAD_KEYS */
-
-// forward declaration
-class ACE_TSS_Keys;
-
-/**
- * @class ACE_TSS_Emulation
- *
- * @brief Thread-specific storage emulation.
- *
- * This provides a thread-specific storage implementation.
- * It is intended for use on platforms that don't have a
- * native TSS, or have a TSS with limitations such as the
- * number of keys or lack of support for removing keys.
- */
-class ACE_OS_Export ACE_TSS_Emulation
-{
-public:
- typedef void (*ACE_TSS_DESTRUCTOR)(void *value) /* throw () */;
-
- /// Maximum number of TSS keys allowed over the life of the program.
- enum { ACE_TSS_THREAD_KEYS_MAX = ACE_DEFAULT_THREAD_KEYS };
-
- /// Returns the total number of keys allocated so far.
- static u_int total_keys ();
-
- /// Sets the argument to the next available key. Returns 0 on success,
- /// -1 if no keys are available.
- static int next_key (ACE_thread_key_t &key);
-
- /// Release a key that was used. This way the key can be given out in a
- /// new request. Returns 0 on success, 1 if the key was not reserved.
- static int release_key (ACE_thread_key_t key);
-
- /// Returns the exit hook associated with the key. Does _not_ check
- /// for a valid key.
- static ACE_TSS_DESTRUCTOR tss_destructor (const ACE_thread_key_t key);
-
- /// Associates the TSS destructor with the key. Does _not_ check
- /// for a valid key.
- static void tss_destructor (const ACE_thread_key_t key,
- ACE_TSS_DESTRUCTOR destructor);
-
- /// Accesses the object referenced by key in the current thread's TSS array.
- /// Does _not_ check for a valid key.
- static void *&ts_object (const ACE_thread_key_t key);
-
- /**
- * Setup an array to be used for local TSS. Returns the array
- * address on success. Returns 0 if local TSS had already been
- * setup for this thread. There is no corresponding tss_close ()
- * because it is not needed.
- * NOTE: tss_open () is called by ACE for threads that it spawns.
- * If your application spawns threads without using ACE, and it uses
- * ACE's TSS emulation, each of those threads should call tss_open
- * (). See the ace_thread_adapter () implementation for an example.
- */
- static void *tss_open (void *ts_storage[ACE_TSS_THREAD_KEYS_MAX]);
-
- /// Shutdown TSS emulation. For use only by ACE_OS::cleanup_tss ().
- static void tss_close ();
-
-private:
- // Global TSS structures.
- /// Contains the possible value of the next key to be allocated. Which key
- /// is actually allocated is based on the tss_keys_used
- static u_int total_keys_;
-
- /// Array of thread exit hooks (TSS destructors) that are called for each
- /// key (that has one) when the thread exits.
- static ACE_TSS_DESTRUCTOR tss_destructor_ [ACE_TSS_THREAD_KEYS_MAX];
-
- /// TSS_Keys instance to administrate whether a specific key is in used
- /// or not
- static ACE_TSS_Keys tss_keys_used_;
-
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
- /// Location of current thread's TSS array.
- static void **tss_base (void* ts_storage[] = 0, u_int *ts_created = 0);
-# else /* ! ACE_HAS_THREAD_SPECIFIC_STORAGE */
- /// Location of current thread's TSS array.
- static void **&tss_base ();
-# endif /* ! ACE_HAS_THREAD_SPECIFIC_STORAGE */
-
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
- // Rely on native thread specific storage for the implementation,
- // but just use one key.
- static ACE_OS_thread_key_t native_tss_key_;
-
- // Used to indicate if native tss key has been allocated
- static int key_created_;
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
-};
-
-# else /* ! ACE_HAS_TSS_EMULATION */
-# if defined (TLS_MINIMUM_AVAILABLE)
- // WIN32 platforms define TLS_MINIMUM_AVAILABLE natively.
-# define ACE_DEFAULT_THREAD_KEYS TLS_MINIMUM_AVAILABLE
-# endif /* TSL_MINIMUM_AVAILABLE */
-
-# endif /* ACE_HAS_TSS_EMULATION */
-
-// moved ACE_TSS_Ref, ACE_TSS_Info, and ACE_TSS_Keys class
-// declarations from OS.cpp so they are visible to the single
-// file of template instantiations.
-# if defined (ACE_WIN32) || defined (ACE_HAS_TSS_EMULATION) || (defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS))
-/**
- * @class ACE_TSS_Ref
- *
- * @brief "Reference count" for thread-specific storage keys.
- *
- * Since the <ACE_Unbounded_Stack> doesn't allow duplicates, the
- * "reference count" is the identify of the thread_id.
- */
-class ACE_TSS_Ref
-{
-public:
- /// Constructor
- ACE_TSS_Ref (ACE_thread_t id);
-
- /// Default constructor
- ACE_TSS_Ref (void);
-
- /// Check for equality.
- int operator== (const ACE_TSS_Ref &) const;
-
- /// Check for inequality.
- int operator!= (const ACE_TSS_Ref &) const;
-
-// private:
-
- /// ID of thread using a specific key.
- ACE_thread_t tid_;
-};
-
-/**
- * @class ACE_TSS_Info
- *
- * @brief Thread Specific Key management.
- *
- * This class maps a key to a "destructor."
- */
-class ACE_TSS_Info
-{
-public:
- /// Constructor
- ACE_TSS_Info (ACE_thread_key_t key,
- void (*dest)(void *) = 0,
- void *tss_inst = 0);
-
- /// Default constructor
- ACE_TSS_Info (void);
-
- /// Returns 1 if the key is in use, 0 if not.
- int key_in_use (void) const { return thread_count_ != -1; }
-
- /// Mark the key as being in use if the flag is non-zero, or
- /// not in use if the flag is 0.
- void key_in_use (int flag) { thread_count_ = flag == 0 ? -1 : 1; }
-
- /// Check for equality.
- int operator== (const ACE_TSS_Info &) const;
-
- /// Check for inequality.
- int operator!= (const ACE_TSS_Info &) const;
-
- /// Dump the state.
- void dump (void);
-
-private:
- /// Key to the thread-specific storage item.
- ACE_thread_key_t key_;
-
- /// "Destructor" that gets called when the item is finally released.
- void (*destructor_)(void *);
-
- /// Pointer to ACE_TSS<xxx> instance that has/will allocate the key.
- void *tss_obj_;
-
- /// Count of threads that are using this key. Contains -1 when the
- /// key is not in use.
- int thread_count_;
-
- friend class ACE_TSS_Cleanup;
-};
-
-/**
- * @class ACE_TSS_Keys
- *
- * @brief Collection of in-use flags for a thread's TSS keys.
- * For internal use only by ACE_TSS_Cleanup; it is public because
- * some compilers can't use nested classes for template instantiation
- * parameters.
- *
- * Wrapper around array of whether each key is in use. A simple
- * typedef doesn't work with Sun C++ 4.2.
- */
-class ACE_TSS_Keys
-{
-public:
- /// Default constructor, to initialize all bits to zero (unused).
- ACE_TSS_Keys (void);
-
- /// Mark the specified key as being in use, if it was not already so marked.
- /// Returns 1 if the had already been marked, 0 if not.
- int test_and_set (const ACE_thread_key_t key);
-
- /// Mark the specified key as not being in use, if it was not already so
- /// cleared. Returns 1 if the key had already been cleared, 0 if not.
- int test_and_clear (const ACE_thread_key_t key);
-
- /// Return whether the specific key is marked as in use.
- /// Returns 1 if the key is been marked, 0 if not.
- int is_set (const ACE_thread_key_t key) const;
-
-private:
- /// For a given key, find the word and bit number that represent it.
- static void find (const u_int key, u_int &word, u_int &bit);
-
- enum
- {
-# if ACE_SIZEOF_LONG == 8
- ACE_BITS_PER_WORD = 64,
-# elif ACE_SIZEOF_LONG == 4
- ACE_BITS_PER_WORD = 32,
-# else
-# error ACE_TSS_Keys only supports 32 or 64 bit longs.
-# endif /* ACE_SIZEOF_LONG == 8 */
- ACE_WORDS = (ACE_DEFAULT_THREAD_KEYS - 1) / ACE_BITS_PER_WORD + 1
- };
-
- /// Bit flag collection. A bit value of 1 indicates that the key is in
- /// use by this thread.
- u_long key_bit_words_[ACE_WORDS];
-};
-
-# endif /* defined (ACE_WIN32) || defined (ACE_HAS_TSS_EMULATION) */
-
-// Support non-scalar thread keys, such as with some POSIX
-// implementations, e.g., MVS.
-# if defined (ACE_HAS_NONSCALAR_THREAD_KEY_T)
-# define ACE_KEY_INDEX(OBJ,KEY) \
- u_int OBJ; \
- ACE_OS::memcpy (&OBJ, &KEY, sizeof (u_int))
-# else
-# define ACE_KEY_INDEX(OBJ,KEY) u_int OBJ = KEY
-# endif /* ACE_HAS_NONSCALAR_THREAD_KEY_T */
-
-// Some useful abstrations for expressions involving
-// ACE_Allocator.malloc (). The difference between ACE_NEW_MALLOC*
-// with ACE_ALLOCATOR* is that they call constructors also.
-
-# define ACE_ALLOCATOR_RETURN(POINTER,ALLOCATOR,RET_VAL) \
- do { POINTER = ALLOCATOR; \
- if (POINTER == 0) { errno = ENOMEM; return RET_VAL; } \
- } while (0)
-# define ACE_ALLOCATOR(POINTER,ALLOCATOR) \
- do { POINTER = ALLOCATOR; \
- if (POINTER == 0) { errno = ENOMEM; return; } \
- } while (0)
-# define ACE_ALLOCATOR_NORETURN(POINTER,ALLOCATOR) \
- do { POINTER = ALLOCATOR; \
- if (POINTER == 0) { errno = ENOMEM; } \
- } while (0)
-
-# define ACE_NEW_MALLOC_RETURN(POINTER,ALLOCATOR,CONSTRUCTOR,RET_VAL) \
- do { POINTER = ALLOCATOR; \
- if (POINTER == 0) { errno = ENOMEM; return RET_VAL;} \
- else { new (POINTER) CONSTRUCTOR; } \
- } while (0)
-# define ACE_NEW_MALLOC(POINTER,ALLOCATOR,CONSTRUCTOR) \
- do { POINTER = ALLOCATOR; \
- if (POINTER == 0) { errno = ENOMEM; return;} \
- else { new (POINTER) CONSTRUCTOR; } \
- } while (0)
-# define ACE_NEW_MALLOC_NORETURN(POINTER,ALLOCATOR,CONSTRUCTOR) \
- do { POINTER = ALLOCATOR; \
- if (POINTER == 0) { errno = ENOMEM;} \
- else { new (POINTER) CONSTRUCTOR; } \
- } while (0)
-
-# define ACE_NOOP(x)
-
-# if defined (ACE_HAS_THR_C_FUNC)
-// This is necessary to work around nasty problems with MVS C++.
-extern "C" ACE_OS_Export void ace_mutex_lock_cleanup_adapter (void *args);
-# define ACE_PTHREAD_CLEANUP_PUSH(A) pthread_cleanup_push (ace_mutex_lock_cleanup_adapter, (void *) A);
-# define ACE_PTHREAD_CLEANUP_POP(A) pthread_cleanup_pop(A)
-# elif defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CLEANUP)
-// Though we are defining a extern "C" function to match the prototype of
-// pthread_cleanup_push, it is undone by the Solaris header file
-// /usr/include/pthread.h. So this macro generates a warning under Solaris
-// with SunCC. This is a bug in the Solaris header file.
-extern "C" ACE_OS_Export void ace_mutex_lock_cleanup_adapter (void *args);
-# define ACE_PTHREAD_CLEANUP_PUSH(A) pthread_cleanup_push (ace_mutex_lock_cleanup_adapter, (void *) A);
-# define ACE_PTHREAD_CLEANUP_POP(A) pthread_cleanup_pop(A)
-# else
-# define ACE_PTHREAD_CLEANUP_PUSH(A)
-# define ACE_PTHREAD_CLEANUP_POP(A)
-# endif /* ACE_HAS_THR_C_FUNC */
-
-# if !defined (ACE_DEFAULT_MUTEX_A)
-# define ACE_DEFAULT_MUTEX_A "ACE_MUTEX"
-# endif /* ACE_DEFAULT_MUTEX_A */
-
-# if defined (ACE_HAS_WCHAR)
-# define ACE_DEFAULT_MUTEX_W ACE_TEXT_WIDE(ACE_DEFAULT_MUTEX_A)
-# endif /* ACE_HAS_WCHAR */
-
-# define ACE_DEFAULT_MUTEX ACE_LIB_TEXT (ACE_DEFAULT_MUTEX_A)
-
-# if !defined (ACE_MAIN)
-# define ACE_MAIN main
-# endif /* ! ACE_MAIN */
-
-# if !defined (ACE_WMAIN)
-# define ACE_WMAIN wmain
-# endif /* ! ACE_WMAIN */
-
-# if defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
-# define ACE_TMAIN wmain
-# else
-# define ACE_TMAIN main
-# endif
-
-# if defined (ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER)
-# if !defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER)
-# define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-# endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER */
-# endif /* ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER */
-
-# if defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER) && !defined (ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER)
-
-# if !defined (ACE_HAS_MINIMAL_ACE_OS)
-# include "ace/Object_Manager.h"
-# endif /* ! ACE_HAS_MINIMAL_ACE_OS */
-
-// Rename "main ()" on platforms that don't allow it to be called "main ()".
-
-// Also, create ACE_Object_Manager static instance(s) in "main ()".
-// ACE_MAIN_OBJECT_MANAGER defines the ACE_Object_Manager(s) that will
-// be instantiated on the stack of main (). Note that it is only used
-// when compiling main (): its value does not affect the contents of
-// ace/OS.o.
-# if !defined (ACE_MAIN_OBJECT_MANAGER)
-# define ACE_MAIN_OBJECT_MANAGER \
- ACE_OS_Object_Manager ace_os_object_manager; \
- ACE_Object_Manager ace_object_manager;
-# endif /* ! ACE_MAIN_OBJECT_MANAGER */
-
-# if defined (ACE_PSOSIM)
-// PSOSIM root lacks the standard argc, argv command line parameters,
-// create dummy argc and argv in the "real" main and pass to "user" main.
-// NOTE: ACE_MAIN must be defined to give the return type as well as the
-// name of the entry point.
-# define main \
-ace_main_i (int, char *[]); /* forward declaration */ \
-ACE_MAIN () /* user's entry point, e.g., "main" w/out argc, argv */ \
-{ \
- int argc = 1; /* dummy arg count */ \
- char *argv[] = {"psosim"}; /* dummy arg list */ \
- ACE_MAIN_OBJECT_MANAGER \
- int ret_val = -1; /* assume the worst */ \
- if (ACE_PSOS_Time_t::init_simulator_time ()) /* init simulator time */ \
- { \
- ACE_ERROR((LM_ERROR, "init_simulator_time failed\n")); /* report */ \
- } \
- else \
- { \
- ret_val = ace_main_i (argc, argv); /* call user main, save result */ \
- } \
- ACE_OS::exit (ret_val); /* pass code to simulator exit */ \
-} \
-int \
-ace_main_i
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_LACKS_ARGC_ARGV)
-// PSOS root lacks the standard argc, argv command line parameters,
-// create dummy argc and argv in the "real" main and pass to "user" main.
-// Ignore return value from user main as well. NOTE: ACE_MAIN must be
-// defined to give the return type as well as the name of the entry point
-# define main \
-ace_main_i (int, char *[]); /* forward declaration */ \
-ACE_MAIN () /* user's entry point, e.g., "main" w/out argc, argv */ \
-{ \
- int argc = 1; /* dummy arg count */ \
- char *argv[] = {"root"}; /* dummy arg list */ \
- ACE_MAIN_OBJECT_MANAGER \
- ace_main_i (argc, argv); /* call user main, ignore result */ \
-} \
-int \
-ace_main_i
-
-# elif defined (ACE_HAS_WINCE)
-
-# if defined (ACE_TMAIN) // Use WinMain on CE; others give warning/error.
-# undef ACE_TMAIN
-# endif // ACE_TMAIN
-
-// CE only gets a command line string; no argv. So we need to convert it
-// when the main entrypoint expects argc/argv. ACE_ARGV supports this.
-# include "ace/ARGV.h"
-
-// Support for ACE_TMAIN, which is a recommended way. It would be nice if
-// CE had CommandLineToArgvW()... but it's only on NT3.5 and up.
-
-# define ACE_TMAIN \
-ace_main_i (int, ACE_TCHAR *[]); /* forward declaration */ \
-int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) \
-{ \
- ACE_TCHAR cmdline[1024]; \
- ACE_OS::strcpy (cmdline, ACE_LIB_TEXT ("program ")); \
- ACE_OS::strcat (cmdline, lpCmdLine); \
- ACE_ARGV ce_argv (cmdline); \
- ACE::init (); \
- ACE_MAIN_OBJECT_MANAGER \
- int i = ace_main_i (ce_argv.argc (), ce_argv.argv ()); \
- ACE::fini (); \
- return i; \
-} \
-int ace_main_i
-
-// Support for wchar_t but still can't fit to CE because of the command
-// line parameters.
-# define wmain \
-ace_main_i (int, ACE_TCHAR *[]); /* forward declaration */ \
-int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) \
-{ \
- ACE_TCHAR cmdline[1024]; \
- ACE_OS::strcpy (cmdline, ACE_LIB_TEXT ("program ")); \
- ACE_OS::strcat (cmdline, lpCmdLine); \
- ACE_ARGV ce_argv (cmdline); \
- ACE::init (); \
- ACE_MAIN_OBJECT_MANAGER \
- int i = ace_main_i (ce_argv.argc (), ce_argv.argv ()); \
- ACE::fini (); \
- return i; \
-} \
-int ace_main_i
-
-// Supporting legacy 'main' is A LOT easier for users than changing existing
-// code on WinCE. Unfortunately, evc 3 can't grok a #include within the macro
-// expansion, so it needs to go out here.
-# include "ace/Argv_Type_Converter.h"
-# define main \
-ace_main_i (int, char *[]); /* forward declaration */ \
-int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) \
-{ \
- ACE_TCHAR cmdline[1024]; \
- ACE_OS::strcpy (cmdline, ACE_LIB_TEXT ("program ")); \
- ACE_OS::strcat (cmdline, lpCmdLine); \
- ACE_ARGV ce_argv (cmdline); \
- ACE::init (); \
- ACE_MAIN_OBJECT_MANAGER \
- ACE_Argv_Type_Converter command_line (ce_argv.argc (), ce_argv.argv ()); \
- int i = ace_main_i (command_line.get_argc(), command_line.get_ASCII_argv());\
- ACE::fini (); \
- return i; \
-} \
-int ace_main_i
-
-# else
-# define main \
-ace_main_i (int, char *[]); /* forward declaration */ \
-int \
-ACE_MAIN (int argc, char *argv[]) /* user's entry point, e.g., main */ \
-{ \
- ACE_MAIN_OBJECT_MANAGER \
- return ace_main_i (argc, argv); /* what the user calls "main" */ \
-} \
-int \
-ace_main_i
-# if defined (ACE_WIN32)
-# define wmain \
-ace_main_i (int, ACE_TCHAR *[]); /* forward declaration */ \
-int \
-ACE_WMAIN (int argc, ACE_TCHAR *argv[]) /* user's entry point, e.g., main */ \
-{ \
- ACE_MAIN_OBJECT_MANAGER \
- return ace_main_i (argc, argv); /* what the user calls "main" */ \
-} \
-int \
-ace_main_i
-# endif /* ACE_WIN32 && UNICODE */
-# endif /* ACE_PSOSIM */
-# endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER && !ACE_HAS_WINCE && !ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER */
-
-# if defined (ACE_WIN32) && ! defined (ACE_HAS_WINCE) \
- && ! defined (ACE_HAS_PHARLAP)
-typedef TRANSMIT_FILE_BUFFERS ACE_TRANSMIT_FILE_BUFFERS;
-typedef LPTRANSMIT_FILE_BUFFERS ACE_LPTRANSMIT_FILE_BUFFERS;
-typedef PTRANSMIT_FILE_BUFFERS ACE_PTRANSMIT_FILE_BUFFERS;
-
-# define ACE_INFINITE INFINITE
-# define ACE_STATUS_TIMEOUT STATUS_TIMEOUT
-# define ACE_WAIT_FAILED WAIT_FAILED
-# define ACE_WAIT_TIMEOUT WAIT_TIMEOUT
-# else /* ACE_WIN32 */
-struct ACE_TRANSMIT_FILE_BUFFERS
-{
- void *Head;
- size_t HeadLength;
- void *Tail;
- size_t TailLength;
-};
-typedef ACE_TRANSMIT_FILE_BUFFERS* ACE_PTRANSMIT_FILE_BUFFERS;
-typedef ACE_TRANSMIT_FILE_BUFFERS* ACE_LPTRANSMIT_FILE_BUFFERS;
-
-# if !defined (ACE_INFINITE)
-# define ACE_INFINITE LONG_MAX
-# endif /* ACE_INFINITE */
-# define ACE_STATUS_TIMEOUT LONG_MAX
-# define ACE_WAIT_FAILED LONG_MAX
-# define ACE_WAIT_TIMEOUT LONG_MAX
-# endif /* ACE_WIN32 */
-
-# if !defined (ACE_HAS_MINIMAL_ACE_OS)
-# include "ace/Trace.h"
-# endif /* ! ACE_HAS_MINIMAL_ACE_OS */
-
-# if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "ace/OS.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-// Byte swapping macros to deal with differences between little endian
-// and big endian machines. Note that "long" here refers to 32 bit
-// quantities.
-# define ACE_SWAP_LONG(L) ((ACE_SWAP_WORD ((L) & 0xFFFF) << 16) \
- | ACE_SWAP_WORD(((L) >> 16) & 0xFFFF))
-# define ACE_SWAP_WORD(L) ((((L) & 0x00FF) << 8) | (((L) & 0xFF00) >> 8))
-
-# if defined (ACE_LITTLE_ENDIAN)
-# define ACE_HTONL(X) ACE_SWAP_LONG (X)
-# define ACE_NTOHL(X) ACE_SWAP_LONG (X)
-# define ACE_IDL_NCTOHL(X) (X)
-# define ACE_IDL_NSTOHL(X) (X)
-# else
-# define ACE_HTONL(X) X
-# define ACE_NTOHL(X) X
-# define ACE_IDL_NCTOHL(X) (X << 24)
-# define ACE_IDL_NSTOHL(X) ((X) << 16)
-# endif /* ACE_LITTLE_ENDIAN */
-
-# if defined (ACE_LITTLE_ENDIAN)
-# define ACE_HTONS(x) ACE_SWAP_WORD(x)
-# define ACE_NTOHS(x) ACE_SWAP_WORD(x)
-# else
-# define ACE_HTONS(x) x
-# define ACE_NTOHS(x) x
-# endif /* ACE_LITTLE_ENDIAN */
-
-# if defined (ACE_HAS_POSIX_REALTIME_SIGNALS)
- // = Giving unique ACE scoped names for some important
- // RTSignal-Related constants. Becuase sometimes, different
- // platforms use different names for these constants.
-
- // Number of realtime signals provided in the system.
- // _POSIX_RTSIG_MAX is the upper limit on the number of real time
- // signals supported in a posix-4 compliant system.
-# if defined (_POSIX_RTSIG_MAX)
-# define ACE_RTSIG_MAX _POSIX_RTSIG_MAX
-# else /* not _POSIX_RTSIG_MAX */
- // POSIX-4 compilant system has to provide atleast 8 RT signals.
- // @@ Make sure the platform does *not* define this constant with
- // some other name. If yes, use that instead of 8.
-# define ACE_RTSIG_MAX 8
-# endif /* _POSIX_RTSIG_MAX */
-# endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
-
- // Wrapping around wait status <wstat> macros for platforms that
- // lack them.
-
- // Evaluates to a non-zero value if status was returned for a child
- // process that terminated normally. 0 means status wasn't
- // returned.
-#if !defined (WIFEXITED)
-# define WIFEXITED(stat) 1
-#endif /* WIFEXITED */
-
- // If the value of WIFEXITED(stat) is non-zero, this macro evaluates
- // to the exit code that the child process exit(3C), or the value
- // that the child process returned from main. Peaceful exit code is
- // 0.
-#if !defined (WEXITSTATUS)
-# define WEXITSTATUS(stat) stat
-#endif /* WEXITSTATUS */
-
- // Evaluates to a non-zero value if status was returned for a child
- // process that terminated due to the receipt of a signal. 0 means
- // status wasnt returned.
-#if !defined (WIFSIGNALED)
-# define WIFSIGNALED(stat) 0
-#endif /* WIFSIGNALED */
-
- // If the value of WIFSIGNALED(stat) is non-zero, this macro
- // evaluates to the number of the signal that caused the
- // termination of the child process.
-#if !defined (WTERMSIG)
-# define WTERMSIG(stat) 0
-#endif /* WTERMSIG */
-
-#if !defined (WIFSTOPPED)
-# define WIFSTOPPED(stat) 0
-#endif /* WIFSTOPPED */
-
-#if !defined (WSTOPSIG)
-# define WSTOPSIG(stat) 0
-#endif /* WSTOPSIG */
-
-#if !defined (WIFCONTINUED)
-# define WIFCONTINUED(stat) 0
-#endif /* WIFCONTINUED */
-
-#if !defined (WCOREDUMP)
-# define WCOREDUMP(stat) 0
-#endif /* WCOREDUMP */
-
-/**
- * In some environments it is useful to swap the bytes on write, for
- * instance: a fast server can be feeding a lot of slow clients that
- * happen to have the wrong byte order.
- * Because this is a rarely used feature we disable it by default to
- * minimize footprint.
- * This macro enables the functionality, but we still need a way to
- * activate it on a per-connection basis.
- */
-// #define ACE_ENABLE_SWAP_ON_WRITE
-
-/**
- * In some environements we never need to swap bytes when reading, for
- * instance embebbed systems (such as avionics) or homogenous
- * networks.
- * Setting this macro disables the capabilities to demarshall streams
- * in the wrong byte order.
- */
-// #define ACE_DISABLE_SWAP_ON_READ
-
-// Defining POSIX4 real-time signal range.
-#if defined(ACE_HAS_POSIX_REALTIME_SIGNALS)
-#define ACE_SIGRTMIN SIGRTMIN
-#define ACE_SIGRTMAX SIGRTMAX
-
-#else /* !ACE_HAS_POSIX_REALTIME_SIGNALS */
-
-#ifndef ACE_SIGRTMIN
-#define ACE_SIGRTMIN 0
-#endif /* ACE_SIGRTMIN */
-
-#ifndef ACE_SIGRTMAX
-#define ACE_SIGRTMAX 0
-#endif /* ACE_SIGRTMAX */
-
-#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
-
-# if defined (ACE_LACKS_SYS_NERR)
-extern ACE_OS_Export int sys_nerr;
-# endif /* ACE_LACKS_SYS_NERR */
-
-#if defined (ACE_LEGACY_MODE)
-# include "ace/Log_Msg.h"
-# include "ace/Thread_Hook.h"
-# include "ace/Thread_Adapter.h"
-# include "ace/Thread_Exit.h"
-# include "ace/Thread_Control.h"
-#endif /* ACE_LEGACY_MODE */
-
-#include "ace/post.h"
-#endif /* ACE_OS_H */
diff --git a/ace/OS.i b/ace/OS.i
deleted file mode 100644
index 6c1ce286e30..00000000000
--- a/ace/OS.i
+++ /dev/null
@@ -1,11160 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-#if defined (__CYGWIN32__)
-# include /**/ <getopt.h>
-#endif
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-#if defined (ACE_LACKS_RLIMIT_PROTOTYPE)
-int getrlimit (int resource, struct rlimit *rlp);
-int setrlimit (int resource, const struct rlimit *rlp);
-#endif /* ACE_LACKS_RLIMIT_PROTOTYPE */
-
-#if !defined (ACE_HAS_STRERROR)
-# if defined (ACE_HAS_SYS_ERRLIST)
-extern char *sys_errlist[];
-# define strerror(err) sys_errlist[err]
-# else
-# define strerror(err) "strerror is unsupported"
-# endif /* ACE_HAS_SYS_ERRLIST */
-#endif /* !ACE_HAS_STERROR */
-
-#if defined (ACE_HAS_SYS_SIGLIST)
-# if !defined (_sys_siglist)
-# define _sys_siglist sys_siglist
-# endif /* !defined (sys_siglist) */
-//extern char **_sys_siglist;
-#endif /* ACE_HAS_SYS_SIGLIST */
-
-#if defined (ACE_HAS_SOCKLEN_T)
-typedef socklen_t ACE_SOCKET_LEN;
-#elif defined (ACE_HAS_SIZET_SOCKET_LEN)
-typedef size_t ACE_SOCKET_LEN;
-#else
-typedef int ACE_SOCKET_LEN;
-#endif /* ACE_HAS_SIZET_SOCKET_LEN */
-
-#if defined (ACE_LACKS_CONST_STRBUF_PTR)
-typedef struct strbuf *ACE_STRBUF_TYPE;
-#else
-typedef const struct strbuf *ACE_STRBUF_TYPE;
-#endif /* ACE_LACKS_CONST_STRBUF_PTR */
-
-#if defined (ACE_HAS_VOIDPTR_SOCKOPT)
-typedef void *ACE_SOCKOPT_TYPE1;
-#elif defined (ACE_HAS_CHARPTR_SOCKOPT)
-typedef char *ACE_SOCKOPT_TYPE1;
-#else
-typedef const char *ACE_SOCKOPT_TYPE1;
-#endif /* ACE_HAS_VOIDPTR_SOCKOPT */
-
-#if (!defined (_BSD_SOURCE) && \
- !defined (_XOPEN_SOURCE) && !defined (_XOPEN_SOURCE_EXTENDED)) \
- || (defined (_XOPEN_SOURCE) && defined (__GNUC__))
-
-# if defined (ACE_LACKS_SETREUID_PROTOTYPE)
-extern "C" {
-extern int setreuid (uid_t ruid, uid_t euid);
-}
-# endif /* ACE_LACKS_SETREUID_PROTOTYPE */
-
-# if defined (ACE_LACKS_SETREGID_PROTOTYPE)
-extern "C" {
-extern int setregid (gid_t rgid, gid_t egid);
-}
-# endif /* ACE_LACKS_SETREGID_PROTOTYPE */
-#endif /* !_BSD_SOURCE && !_XOPEN_SOURCE && !_XOPEN_SOURCE_EXTENDED
- || _XOPEN_SOURCE && __GNUC__ */
-
-#if defined (ACE_NEEDS_FTRUNCATE)
-extern "C" ACE_Export int ftruncate (ACE_HANDLE handle, long len);
-#endif /* ACE_NEEDS_FTRUNCATE */
-
-#if defined (ACE_HAS_VOIDPTR_MMAP)
-// Needed for some odd OS's (e.g., SGI).
-typedef void *ACE_MMAP_TYPE;
-#else
-typedef char *ACE_MMAP_TYPE;
-#endif /* ACE_HAS_VOIDPTR_MMAP */
-
-#if defined (ACE_HAS_XLI)
-# include /**/ <xliuser.h>
-#endif /* ACE_HAS_XLI */
-
-#if defined (_M_UNIX)
-extern "C" int _dlclose (void *);
-extern "C" char *_dlerror (void);
-extern "C" void *_dlopen (const char *, int);
-extern "C" void * _dlsym (void *, const char *);
-#endif /* _M_UNIX */
-
-#if !defined (ACE_HAS_CPLUSPLUS_HEADERS)
-# include /**/ <libc.h>
-# include /**/ <osfcn.h>
-#endif /* ACE_HAS_CPLUSPLUS_HEADERS */
-
-#if defined (ACE_HAS_SYSENT_H)
-# include /**/ <sysent.h>
-#endif /* ACE_HAS_SYSENT_H_*/
-
-#if defined (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB) && \
- (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB != 0)
-using std::bsearch;
-using std::qsort;
-# if defined (ACE_WIN32)
-using std::_tzset;
-# else
-using std::tzset;
-# endif
-using std::ctime;
-using std::localtime;
-using std::gmtime;
-using std::asctime;
-using std::strftime;
-#endif /* ACE_USES_STD_NAMESPACE_FOR_STDC_LIB */
-
-#if defined (ACE_HAS_SVR4_GETTIMEOFDAY)
-# if !defined (m88k) && !defined (SCO)
-extern "C" int gettimeofday (struct timeval *tp, void * = 0);
-# else
-extern "C" int gettimeofday (struct timeval *tp);
-# endif /* !m88k && !SCO */
-#elif defined (ACE_HAS_OSF1_GETTIMEOFDAY)
-extern "C" int gettimeofday (struct timeval *tp, struct timezone * = 0);
-#elif defined (ACE_HAS_SUNOS4_GETTIMEOFDAY)
-# define ACE_HAS_SVR4_GETTIMEOFDAY
-#endif /* ACE_HAS_SVR4_GETTIMEOFDAY */
-
-#if defined (ACE_LACKS_CONST_TIMESPEC_PTR)
-typedef struct timespec * ACE_TIMESPEC_PTR;
-#else
-typedef const struct timespec * ACE_TIMESPEC_PTR;
-#endif /* HPUX */
-
-#if !defined (ACE_LACKS_MALLOC_H)
-# include /**/ <malloc.h>
-#endif /* ACE_LACKS_MALLOC_H */
-
-ACE_INLINE int
-ACE_OS::fcntl (ACE_HANDLE handle, int cmd, long arg)
-{
- ACE_OS_TRACE ("ACE_OS::fcntl");
-# if defined (ACE_LACKS_FCNTL)
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (cmd);
- ACE_UNUSED_ARG (arg);
- ACE_NOTSUP_RETURN (-1);
-# else
- ACE_OSCALL_RETURN (::fcntl (handle, cmd, arg), int, -1);
-# endif /* ACE_LACKS_FCNTL */
-}
-
-#if !defined (ACE_LACKS_CHDIR)
-ACE_INLINE int
-ACE_OS::chdir (const char *path)
-{
- ACE_OS_TRACE ("ACE_OS::chdir");
-#if defined (VXWORKS)
- ACE_OSCALL_RETURN (::chdir (ACE_const_cast (char *, path)), int, -1);
-
-#elif defined (ACE_PSOS_LACKS_PHILE)
- ACE_UNUSED_ARG (path);
- ACE_NOTSUP_RETURN (-1);
-
-#elif defined (ACE_PSOS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::change_dir ((char *) path), ace_result_),
- int, -1);
-
-// This #elif seems weird... is Visual Age on NT not setting ACE_WIN32?
-#elif !defined (ACE_WIN32) && !defined (AIX) && defined (__IBMCPP__) && (__IBMCPP__ >= 400)
- ACE_OSCALL_RETURN (::_chdir (path), int, -1);
-
-#elif defined (ACE_HAS_WINCE)
- ACE_UNUSED_ARG (path);
- ACE_NOTSUP_RETURN (-1);
-
-#else
- ACE_OSCALL_RETURN (::chdir (path), int, -1);
-
-#endif /* VXWORKS */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_OS::chdir (const wchar_t *path)
-{
-#if defined (ACE_WIN32)
- ACE_OSCALL_RETURN (::_wchdir (path), int, -1);
-#else /* ACE_WIN32 */
- return ACE_OS::chdir (ACE_Wide_To_Ascii (path).char_rep ());
-#endif /* ACE_WIN32 */
-}
-#endif /* ACE_HAS_WCHAR */
-#endif /* ACE_LACKS_CHDIR */
-
-#if !defined (ACE_LACKS_MKTEMP)
-ACE_INLINE ACE_TCHAR *
-ACE_OS::mktemp (ACE_TCHAR *s)
-{
-# if defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- return ::_wmktemp (s);
-# elif defined (ACE_WIN32)
- return ::_mktemp (s);
-# else /* ACE_WIN32 */
- return ::mktemp (s);
-# endif /* ACE_WIN32 */
-}
-#endif /* !ACE_LACKS_MKTEMP */
-
-#if !defined (ACE_LACKS_MKSTEMP)
-ACE_INLINE ACE_HANDLE
-ACE_OS::mkstemp (ACE_TCHAR *s)
-{
- return ::mkstemp (s);
-}
-#endif /* !ACE_LACKS_MKSTEMP */
-
-ACE_INLINE int
-ACE_OS::mkfifo (const ACE_TCHAR *file, mode_t mode)
-{
- ACE_OS_TRACE ("ACE_OS::mkfifo");
-#if defined (ACE_LACKS_MKFIFO)
- ACE_UNUSED_ARG (file);
- ACE_UNUSED_ARG (mode);
- ACE_NOTSUP_RETURN (-1);
-#else
- ACE_OSCALL_RETURN (::mkfifo (file, mode), int, -1);
-#endif /* ACE_LACKS_MKFIFO */
-}
-
-#if !defined (ACE_WIN32)
-
-// Matthew Stevens 7-10-95 Fix GNU GCC 2.7 for memchr() problem.
-# if defined (ACE_HAS_GNU_CSTRING_H)
-// Define this file to keep /usr/include/memory.h from being included.
-# include /**/ <cstring>
-# else
-# if defined (ACE_LACKS_MEMORY_H)
-# if !defined (ACE_PSOS_DIAB_MIPS)
-# include /**/ <string.h>
-# endif /* ACE_PSOS_DIAB_MIPS */
-# else
-# include /**/ <memory.h>
-# endif /* VXWORKS */
-# endif /* ACE_HAS_GNU_CSTRING_H */
-
-// These prototypes are chronically lacking from many versions of
-// UNIX.
-#if !defined (ACE_HAS_ISASTREAM_PROTO)
-extern "C" int isastream (int);
-#endif /* ACE_HAS_ISASTREAM_PROTO */
-
-# if !defined (ACE_HAS_GETRUSAGE_PROTO)
-extern "C" int getrusage (int who, struct rusage *rusage);
-# endif /* ! ACE_HAS_GETRUSAGE_PROTO */
-
-# if defined (ACE_LACKS_SYSCALL)
-extern "C" int syscall (int, ACE_HANDLE, struct rusage *);
-# endif /* ACE_LACKS_SYSCALL */
-
-# if defined (ACE_LACKS_MKTEMP)
-extern "C" char *mktemp (char *);
-# endif /* ACE_LACKS_MKTEMP */
-
-// The following are #defines and #includes that must be visible for
-// ACE to compile it's OS wrapper class implementation correctly. We
-// put them inside of here to reduce compiler overhead if we're not
-// inlining...
-
-# if defined (ACE_HAS_REGEX)
-# include /**/ <regexpr.h>
-# endif /* ACE_HAS_REGEX */
-
-# if defined (ACE_HAS_SYSINFO)
-# include /**/ <sys/systeminfo.h>
-# endif /* ACE_HAS_SYS_INFO */
-
-# if defined (ACE_HAS_SYSCALL_H)
-# include /**/ <sys/syscall.h>
-# endif /* ACE_HAS_SYSCALL_H */
-
-# if defined (UNIXWARE) /* See strcasecmp, below */
-# include /**/ <ctype.h>
-# endif /* UNIXWARE */
-
-# if defined (ACE_HAS_GETIFADDRS)
-# include /**/ <ifaddrs.h>
-# endif /* ACE_HAS_GETIFADDRS */
-
-// Adapt the weird threading and synchronization routines (which
-// return errno rather than -1) so that they return -1 and set errno.
-// This is more consistent with the rest of ACE_OS and enables use to
-// use the ACE_OSCALL* macros.
-# if defined (VXWORKS)
-# define ACE_ADAPT_RETVAL(OP,RESULT) ((RESULT = (OP)) != OK ? (errno = RESULT, -1) : 0)
-# else
-# define ACE_ADAPT_RETVAL(OP,RESULT) ((RESULT = (OP)) != 0 ? (errno = RESULT, -1) : 0)
-# endif /* VXWORKS */
-
-ACE_INLINE int
-ACE_OS::fstat (ACE_HANDLE handle, ACE_stat *stp)
-{
- ACE_OS_TRACE ("ACE_OS::fstat");
-#if defined (ACE_PSOS_LACKS_PHILE)
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (stp);
- ACE_NOTSUP_RETURN (-1);
-#elif defined (ACE_PSOS)
- ACE_OSCALL_RETURN (::fstat_f (handle, stp), int, -1);
-#else
-# if defined (ACE_HAS_X86_STAT_MACROS)
- // Solaris for intel uses an macro for fstat(), this is a wrapper
- // for _fxstat() use of the macro.
- // causes compile and runtime problems.
- ACE_OSCALL_RETURN (::_fxstat (_STAT_VER, handle, stp), int, -1);
-# elif defined (ACE_WIN32)
- ACE_OSCALL_RETURN (::_fstat (handle, stp), int, -1);
-# else
- ACE_OSCALL_RETURN (::fstat (handle, stp), int, -1);
-# endif /* !ACE_HAS_X86_STAT_MACROS */
-#endif /* ACE_PSOS_LACKS_PHILE */
-}
-
-ACE_INLINE int
-ACE_OS::lstat (const char *file, ACE_stat *stp)
-{
- ACE_OS_TRACE ("ACE_OS::lstat");
-# if defined (ACE_LACKS_LSTAT) || \
- defined (ACE_HAS_WINCE) || defined (ACE_WIN32)
- ACE_UNUSED_ARG (file);
- ACE_UNUSED_ARG (stp);
- ACE_NOTSUP_RETURN (-1);
-# else
-# if defined (ACE_HAS_X86_STAT_MACROS)
- // Solaris for intel uses an macro for lstat(), this macro is a
- // wrapper for _lxstat().
- ACE_OSCALL_RETURN (::_lxstat (_STAT_VER, file, stp), int, -1);
-# elif defined (ACE_WIN32)
- ACE_OSCALL_RETURN (::_lstat (file, stp), int, -1);
-# else /* !ACE_HAS_X86_STAT_MACROS */
- ACE_OSCALL_RETURN (::lstat (file, stp), int, -1);
-# endif /* !ACE_HAS_X86_STAT_MACROS */
-# endif /* ACE_LACKS_LSTAT */
-}
-
-ACE_INLINE int
-ACE_OS::fsync (ACE_HANDLE handle)
-{
- ACE_OS_TRACE ("ACE_OS::fsync");
-# if defined (ACE_LACKS_FSYNC)
- ACE_UNUSED_ARG (handle);
- ACE_NOTSUP_RETURN (-1);
-# else
- ACE_OSCALL_RETURN (::fsync (handle), int, -1);
-# endif /* ACE_LACKS_FSYNC */
-}
-
-ACE_INLINE int
-ACE_OS::getopt (int argc, char *const *argv, const char *optstring)
-{
- ACE_OS_TRACE ("ACE_OS::getopt");
-#if defined (VXWORKS) || defined (ACE_PSOS) || defined (INTEGRITY)
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
- ACE_UNUSED_ARG (optstring);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_LACKS_GETOPT_PROTO)
- ACE_OSCALL_RETURN (::getopt (argc, (char**) argv, optstring), int, -1);
-# elif defined (ACE_LACKS_POSIX_PROTOTYPES)
- ACE_OSCALL_RETURN (::getopt (argc, (const char* const *) argv, optstring), int, -1);
-# else
- ACE_OSCALL_RETURN (::getopt (argc, argv, optstring), int, -1);
-# endif /* VXWORKS */
-}
-
-ACE_INLINE int
-ACE_OS::pipe (ACE_HANDLE fds[])
-{
- ACE_OS_TRACE ("ACE_OS::pipe");
-# if defined (VXWORKS) || defined (ACE_PSOS) || defined (INTEGRITY)
- ACE_UNUSED_ARG (fds);
- ACE_NOTSUP_RETURN (-1);
-# else
- ACE_OSCALL_RETURN (::pipe (fds), int, -1);
-# endif /* VXWORKS || ACE_PSOS */
-}
-
-# if defined (DIGITAL_UNIX)
-extern "C" {
- extern char *_Pctime_r (const time_t *, char *);
- extern struct tm *_Plocaltime_r (const time_t *, struct tm *);
- extern struct tm *_Pgmtime_r (const time_t *, struct tm *);
- extern char *_Pasctime_r (const struct tm *, char *);
- extern int _Prand_r (unsigned int *seedptr);
- extern int _Pgetpwnam_r (const char *, struct passwd *,
- char *, size_t, struct passwd **);
-}
-# endif /* DIGITAL_UNIX */
-
-// VAC++ doesn't correctly grok the ::getpwnam_r - the function is redefined
-// in pwd.h, and that redefinition is used here
-# if defined (_AIX) && defined (__IBMCPP__) && (__IBMCPP__ >= 400)
-extern "C" {
- extern int _posix_getpwnam_r(const char *, struct passwd *, char *,
- int, struct passwd **);
- }
-#endif /* AIX and VAC++ 4 */
-
-ACE_INLINE int
-ACE_OS::rand_r (ACE_RANDR_TYPE &seed)
-{
- ACE_OS_TRACE ("ACE_OS::rand_r");
-# if defined (ACE_HAS_REENTRANT_FUNCTIONS) && \
- !defined (ACE_LACKS_RAND_REENTRANT_FUNCTIONS)
-# if defined (DIGITAL_UNIX)
- ACE_OSCALL_RETURN (::_Prand_r (&seed), int, -1);
-# elif defined (HPUX_10)
- // rand() is thread-safe on HP-UX 10. rand_r's signature is not consistent
- // with latest POSIX and will change in a future HP-UX release so that it
- // is consistent. At that point, this #elif section can be changed or
- // removed, and just call rand_r.
- ACE_UNUSED_ARG (seed);
- ACE_OSCALL_RETURN (::rand(), int, -1);
-# elif defined (ACE_HAS_BROKEN_RANDR)
- ACE_OSCALL_RETURN (::rand_r (seed), int, -1);
-# else
- ACE_OSCALL_RETURN (::rand_r (&seed), int, -1);
-# endif /* DIGITAL_UNIX */
-# else
- ACE_UNUSED_ARG (seed);
- ACE_OSCALL_RETURN (::rand (), int, -1);
-# endif /* ACE_HAS_REENTRANT_FUNCTIONS */
-}
-
-ACE_INLINE pid_t
-ACE_OS::setsid (void)
-{
- ACE_OS_TRACE ("ACE_OS::setsid");
-# if defined (VXWORKS) || defined (CHORUS) || defined (ACE_PSOS) || defined (INTEGRITY)
- ACE_NOTSUP_RETURN (-1);
-# else
- ACE_OSCALL_RETURN (::setsid (), int, -1);
-# endif /* VXWORKS || CHORUS || ACE_PSOS */
-}
-
-ACE_INLINE mode_t
-ACE_OS::umask (mode_t cmask)
-{
- ACE_OS_TRACE ("ACE_OS::umask");
-# if defined (VXWORKS) || defined (ACE_PSOS) || defined (INTEGRITY)
- ACE_UNUSED_ARG (cmask);
- ACE_NOTSUP_RETURN ((mode_t)-1);
-# else
- return ::umask (cmask); // This call shouldn't fail...
-# endif /* VXWORKS || ACE_PSOS */
-}
-
-#else /* ACE_WIN32 */
-
-// Adapt the Win32 System Calls (which return BOOLEAN values of TRUE
-// and FALSE) into int values expected by the ACE_OSCALL macros.
-# define ACE_ADAPT_RETVAL(OP,RESULT) ((RESULT = (OP)) == FALSE ? -1 : 0)
-
-// Perform a mapping of Win32 error numbers into POSIX errnos.
-# define ACE_FAIL_RETURN(RESULT) do { \
- switch (ACE_OS::set_errno_to_last_error ()) { \
- case ERROR_NOT_ENOUGH_MEMORY: errno = ENOMEM; break; \
- case ERROR_FILE_EXISTS: errno = EEXIST; break; \
- case ERROR_SHARING_VIOLATION: errno = EACCES; break; \
- case ERROR_PATH_NOT_FOUND: errno = ENOENT; break; \
- } \
- return RESULT; } while (0)
-
-ACE_INLINE LPSECURITY_ATTRIBUTES
-ACE_OS::default_win32_security_attributes (LPSECURITY_ATTRIBUTES sa)
-{
-#if defined (ACE_DEFINES_DEFAULT_WIN32_SECURITY_ATTRIBUTES)
- if (sa == 0)
- {
- // @@ This is a good place to use pthread_once.
- static SECURITY_ATTRIBUTES default_sa;
- static SECURITY_DESCRIPTOR sd;
- InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION);
- SetSecurityDescriptorDacl(&sd, TRUE, 0, FALSE);
- default_sa.nLength = sizeof(SECURITY_ATTRIBUTES);
- default_sa.lpSecurityDescriptor = &sd;
- default_sa.bInheritHandle = TRUE;
- sa = &default_sa;
- }
- return sa;
-#else /* !ACE_DEFINES_DEFAULT_WIN32_SECURITY_ATTRIBUTES */
- return sa;
-#endif /* ACE_DEFINES_DEFAULT_WIN32_SECURITY_ATTRIBUTES */
-}
-
-ACE_INLINE int
-ACE_OS::getopt (int argc, char *const *argv, const char *optstring)
-{
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
- ACE_UNUSED_ARG (optstring);
-
- ACE_OS_TRACE ("ACE_OS::getopt");
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_OS::pipe (ACE_HANDLE fds[])
-{
-# if !defined (ACE_HAS_WINCE) && !defined (__IBMCPP__)
- ACE_OS_TRACE ("ACE_OS::pipe");
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL
- (::CreatePipe (&fds[0], &fds[1], 0, 0),
- ace_result_), int, -1);
-# else
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_WINCE && !__IBMCPP__ */
-}
-
-ACE_INLINE int
-ACE_OS::rand_r (ACE_RANDR_TYPE& seed)
-{
- ACE_UNUSED_ARG (seed);
-
- ACE_OS_TRACE ("ACE_OS::rand_r");
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE pid_t
-ACE_OS::setsid (void)
-{
- ACE_OS_TRACE ("ACE_OS::setsid");
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE mode_t
-ACE_OS::umask (mode_t cmask)
-{
-#if !defined (ACE_HAS_WINCE)
- ACE_OS_TRACE ("ACE_OS::umask");
- ACE_OSCALL_RETURN (::_umask (cmask), mode_t, -1);
-# else
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_WINCE */
-}
-
-ACE_INLINE int
-ACE_OS::fstat (ACE_HANDLE handle, ACE_stat *stp)
-{
- ACE_OS_TRACE ("ACE_OS::fstat");
-# if 1
- BY_HANDLE_FILE_INFORMATION fdata;
-
- if (::GetFileInformationByHandle (handle, &fdata) == FALSE)
- {
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
- else if (fdata.nFileSizeHigh != 0)
- {
- errno = EINVAL;
- return -1;
- }
- else
- {
- stp->st_size = fdata.nFileSizeLow;
- stp->st_atime = ACE_Time_Value (fdata.ftLastAccessTime).sec ();
- stp->st_mtime = ACE_Time_Value (fdata.ftLastWriteTime).sec ();
- stp->st_ctime = ACE_Time_Value (fdata.ftCreationTime).sec ();
- stp->st_nlink = ACE_static_cast (short, fdata.nNumberOfLinks);
- stp->st_dev = stp->st_rdev = 0; // No equivalent conversion.
- stp->st_mode = S_IXOTH | S_IROTH |
- (fdata.dwFileAttributes & FILE_ATTRIBUTE_READONLY ? 0 : S_IWOTH) |
- (fdata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ? S_IFDIR : S_IFREG);
- }
- return 0;
-# else /* 1 */
- // This implementation close the handle.
- int retval = -1;
- int fd = ::_open_osfhandle ((long) handle, 0);
- if (fd != -1)
- retval = ::_fstat (fd, stp);
-
- ::_close (fd);
- // Remember to close the file handle.
- return retval;
-# endif /* 1 */
-}
-
-#endif /* WIN32 */
-
-ACE_INLINE int
-ACE_OS::clock_gettime (clockid_t clockid, struct timespec *ts)
-{
- ACE_OS_TRACE ("ACE_OS::clock_gettime");
-#if defined (ACE_HAS_CLOCK_GETTIME)
- ACE_OSCALL_RETURN (::clock_gettime (clockid, ts), int, -1);
-# elif defined (ACE_PSOS) && ! defined (ACE_PSOS_DIAB_MIPS)
- ACE_UNUSED_ARG (clockid);
- ACE_PSOS_Time_t pt;
- int result = ACE_PSOS_Time_t::get_system_time (pt);
- *ts = ACE_static_cast (struct timespec, pt);
- return result;
-#else
- ACE_UNUSED_ARG (clockid);
- ACE_UNUSED_ARG (ts);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_CLOCK_GETTIME */
-}
-
-ACE_INLINE ACE_Time_Value
-ACE_OS::gettimeofday (void)
-{
- // ACE_OS_TRACE ("ACE_OS::gettimeofday");
-
-#if !defined (ACE_HAS_WINCE)&& !defined (ACE_WIN32)
- timeval tv;
- int result = 0;
-#endif // !defined (ACE_HAS_WINCE)&& !defined (ACE_WIN32)
-
-#if (0)
- struct timespec ts;
-
- ACE_OSCALL (ACE_OS::clock_gettime (CLOCK_REALTIME, &ts), int, -1, result);
- tv.tv_sec = ts.tv_sec;
- tv.tv_usec = ts.tv_nsec / 1000L; // timespec has nsec, but timeval has usec
-
-#elif defined (ACE_HAS_WINCE)
- SYSTEMTIME tsys;
- FILETIME tfile;
- ::GetSystemTime (&tsys);
- ::SystemTimeToFileTime (&tsys, &tfile);
- return ACE_Time_Value (tfile);
-#elif defined (ACE_WIN32)
- FILETIME tfile;
- ::GetSystemTimeAsFileTime (&tfile);
- return ACE_Time_Value (tfile);
-#if 0
- // From Todd Montgomery...
- struct _timeb tb;
- ::_ftime (&tb);
- tv.tv_sec = tb.time;
- tv.tv_usec = 1000 * tb.millitm;
-#endif /* 0 */
-#elif defined (ACE_HAS_AIX_HI_RES_TIMER)
- timebasestruct_t tb;
-
- ::read_real_time (&tb, TIMEBASE_SZ);
- ::time_base_to_time (&tb, TIMEBASE_SZ);
-
- tv.tv_sec = tb.tb_high;
- tv.tv_usec = tb.tb_low / 1000L;
-#else
-# if defined (ACE_HAS_TIMEZONE_GETTIMEOFDAY) || \
- (defined (ACE_HAS_SVR4_GETTIMEOFDAY) && !defined (m88k) && !defined (SCO))
- ACE_OSCALL (::gettimeofday (&tv, 0), int, -1, result);
-# elif defined (VXWORKS) || defined (CHORUS) || defined (ACE_PSOS)
- // Assumes that struct timespec is same size as struct timeval,
- // which assumes that time_t is a long: it currently (VxWorks
- // 5.2/5.3) is.
- struct timespec ts;
-
- ACE_OSCALL (ACE_OS::clock_gettime (CLOCK_REALTIME, &ts), int, -1, result);
- tv.tv_sec = ts.tv_sec;
- tv.tv_usec = ts.tv_nsec / 1000L; // timespec has nsec, but timeval has usec
-# else
- ACE_OSCALL (::gettimeofday (&tv), int, -1, result);
-# endif /* ACE_HAS_SVR4_GETTIMEOFDAY */
-#endif /* 0 */
-#if !defined (ACE_HAS_WINCE)&& !defined (ACE_WIN32)
- if (result == -1)
- return -1;
- else
- return ACE_Time_Value (tv);
-#endif // !defined (ACE_HAS_WINCE)&& !defined (ACE_WIN32)
-}
-
-ACE_INLINE int
-ACE_OS::stat (const ACE_TCHAR *file, ACE_stat *stp)
-{
- ACE_OS_TRACE ("ACE_OS::stat");
-#if defined (VXWORKS)
- ACE_OSCALL_RETURN (::stat ((char *) file, stp), int, -1);
-#elif defined (ACE_PSOS_LACKS_PHILE)
- ACE_UNUSED_ARG (file);
- ACE_UNUSED_ARG (stp);
- ACE_NOTSUP_RETURN (-1);
-#elif defined (ACE_PSOS)
- ACE_OSCALL_RETURN (::stat_f ((char *) file, stp), int, -1);
-#elif defined (ACE_HAS_WINCE)
- ACE_TEXT_WIN32_FIND_DATA fdata;
-
- HANDLE fhandle;
-
- fhandle = ::FindFirstFile (file, &fdata);
- if (fhandle == INVALID_HANDLE_VALUE)
- {
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
- else if (fdata.nFileSizeHigh != 0)
- {
- errno = EINVAL;
- return -1;
- }
- else
- {
- stp->st_size = fdata.nFileSizeLow;
- stp->st_atime = ACE_Time_Value (fdata.ftLastAccessTime);
- stp->st_mtime = ACE_Time_Value (fdata.ftLastWriteTime);
- }
- return 0;
-#elif defined (ACE_HAS_X86_STAT_MACROS)
- // Solaris for intel uses an macro for stat(), this macro is a
- // wrapper for _xstat().
- ACE_OSCALL_RETURN (::_xstat (_STAT_VER, file, stp), int, -1);
-#elif defined (__BORLANDC__) && (__BORLANDC__ <= 0x540) && defined (ACE_USES_WCHAR)
- ACE_OSCALL_RETURN (::_wstat (file, stp), int, -1);
-#elif defined (ACE_WIN32)
-# if defined (ACE_USES_WCHAR)
- ACE_OSCALL_RETURN (::_wstat (file, (struct _stat *) stp), int, -1);
-# else
- ACE_OSCALL_RETURN (::_stat (file, (struct _stat *) stp), int, -1);
-# endif /* ACE_USES_WCHAR */
-#else /* VXWORKS */
- ACE_OSCALL_RETURN (::stat (file, stp), int, -1);
-#endif /* VXWORKS */
-}
-
-ACE_INLINE time_t
-ACE_OS::time (time_t *tloc)
-{
-#if !defined (ACE_HAS_WINCE)
- ACE_OS_TRACE ("ACE_OS::time");
-# if defined (ACE_PSOS) && ! defined (ACE_PSOS_HAS_TIME)
- unsigned long d_date, d_time, d_tick;
- tm_get(&d_date, &d_time, &d_tick); // get current time
- if (tloc)
- *tloc = d_time; // set time as time_t
- return d_time;
-# else
- ACE_OSCALL_RETURN (::time (tloc), time_t, (time_t) -1);
-# endif /* ACE_PSOS && ! ACE_PSOS_HAS_TIME */
-#else
- time_t retv = ACE_OS::gettimeofday ().sec ();
- if (tloc)
- *tloc = retv;
- return retv;
-#endif /* ACE_HAS_WINCE */
-}
-
-ACE_INLINE void
-ACE_OS::srand (u_int seed)
-{
- ACE_OS_TRACE ("ACE_OS::srand");
- ::srand (seed);
-}
-
-ACE_INLINE int
-ACE_OS::rand (void)
-{
- ACE_OS_TRACE ("ACE_OS::rand");
- ACE_OSCALL_RETURN (::rand (), int, -1);
-}
-
-ACE_INLINE int
-ACE_OS::unlink (const ACE_TCHAR *path)
-{
- ACE_OS_TRACE ("ACE_OS::unlink");
-# if defined (VXWORKS)
- ACE_OSCALL_RETURN (::unlink (ACE_const_cast (char *, path)), int, -1);
-# elif defined (ACE_PSOS) && ! defined (ACE_PSOS_LACKS_PHILE)
- ACE_OSCALL_RETURN (::remove_f ((char *) path), int , -1);
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_C_LIBRARY)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::remove ((char *) path),
- ace_result_),
- int, -1);
-# elif defined (ACE_HAS_WINCE)
- // @@ The problem is, DeleteFile is not actually equals to unlink. ;(
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::DeleteFile (path), ace_result_),
- int, -1);
-# elif defined (ACE_LACKS_UNLINK)
- ACE_UNUSED_ARG (path);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_OSCALL_RETURN (::_wunlink (path), int, -1);
-# else
- ACE_OSCALL_RETURN (::unlink (path), int, -1);
-# endif /* VXWORKS */
-}
-
-ACE_INLINE int
-ACE_OS::rename (const ACE_TCHAR *old_name,
- const ACE_TCHAR *new_name,
- int flags)
-{
-# if defined (ACE_LACKS_RENAME)
- ACE_UNUSED_ARG (old_name);
- ACE_UNUSED_ARG (new_name);
- ACE_UNUSED_ARG (flags);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_HAS_WINCE)
- ACE_UNUSED_ARG (flags);
- if (MoveFile (old_name, new_name) != 0)
- ACE_FAIL_RETURN (-1);
- return 0;
-# elif defined (ACE_WIN32) && defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 == 1)
- // NT4 (and up) provides a way to rename/move a file with similar semantics
- // to what's usually done on UNIX - if there's an existing file with
- // <new_name> it is removed before the file is renamed/moved. The
- // MOVEFILE_COPY_ALLOWED is specified to allow such a rename across drives.
- if (flags == -1)
- flags = MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING;
- if (ACE_TEXT_MoveFileEx(old_name, new_name, flags) == 0)
- ACE_FAIL_RETURN (-1);
- return 0;
-# elif defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_UNUSED_ARG (flags);
- ACE_OSCALL_RETURN (::_wrename (old_name, new_name), int, -1);
-# else /* ACE_LACKS_RENAME */
- ACE_UNUSED_ARG (flags);
- ACE_OSCALL_RETURN (::rename (old_name, new_name), int, -1);
-# endif /* ACE_LACKS_RENAME */
-}
-
-ACE_INLINE ACE_TCHAR *
-ACE_OS::tempnam (const ACE_TCHAR *dir, const ACE_TCHAR *pfx)
-{
- ACE_OS_TRACE ("ACE_OS::tempnam");
-#if defined (VXWORKS) || defined (ACE_HAS_WINCE) || defined (ACE_LACKS_TEMPNAM)
- ACE_UNUSED_ARG (dir);
- ACE_UNUSED_ARG (pfx);
- ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_PSOS)
- // pSOS only considers the directory prefix
- ACE_UNUSED_ARG (pfx);
- ACE_OSCALL_RETURN (::tmpnam ((char *) dir), char *, 0);
-#elif (defined (ACE_WIN32) && ((defined (__BORLANDC__) && !defined(ACE_USES_WCHAR)) || defined (__IBMCPP__)))
- ACE_OSCALL_RETURN (::_tempnam ((char *) dir, (char *) pfx), char *, 0);
-#elif defined(ACE_WIN32) && defined (__BORLANDC__) && defined (ACE_USES_WCHAR)
- ACE_OSCALL_RETURN (::_wtempnam ((wchar_t*) dir, (wchar_t*) pfx), wchar_t *, 0);
-#elif defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_OSCALL_RETURN (::_wtempnam (dir, pfx), wchar_t *, 0);
-#else /* VXWORKS */
- ACE_OSCALL_RETURN (::tempnam (dir, pfx), char *, 0);
-#endif /* VXWORKS */
-}
-
-#if defined (ACE_HAS_SHM_OPEN) && defined(INTEGRITY)
-#include /**/ <sys/mman.h>
-#endif
-
-ACE_INLINE ACE_HANDLE
-ACE_OS::shm_open (const ACE_TCHAR *filename,
- int mode,
- int perms,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_OS_TRACE ("ACE_OS::shm_open");
-# if defined (ACE_HAS_SHM_OPEN)
- ACE_UNUSED_ARG (sa);
- ACE_OSCALL_RETURN (::shm_open (filename, mode, perms), ACE_HANDLE, -1);
-# else /* ! ACE_HAS_SHM_OPEN */
- // Just use ::open.
- return ACE_OS::open (filename, mode, perms, sa);
-# endif /* ACE_HAS_SHM_OPEN */
-}
-
-ACE_INLINE int
-ACE_OS::shm_unlink (const ACE_TCHAR *path)
-{
- ACE_OS_TRACE ("ACE_OS::shm_unlink");
-# if defined (ACE_HAS_SHM_OPEN)
- ACE_OSCALL_RETURN (::shm_unlink (path), int, -1);
-# else /* ! ACE_HAS_SHM_OPEN */
- // Just use ::unlink.
- return ACE_OS::unlink (path);
-# endif /* ACE_HAS_SHM_OPEN */
-}
-
-#if !defined (ACE_LACKS_CUSERID)
-ACE_INLINE char *
-ACE_OS::cuserid (char *user, size_t maxlen)
-{
- ACE_OS_TRACE ("ACE_OS::cuserid");
-#if defined (VXWORKS)
- ACE_UNUSED_ARG (maxlen);
- if (user == 0)
- {
- // Require that the user field be non-null, i.e., don't
- // allocate or use static storage.
- ACE_NOTSUP_RETURN (0);
- }
- else
- {
- ::remCurIdGet (user, 0);
- return user;
- }
-#elif defined (CHORUS) || defined (ACE_PSOS) || defined (__QNXNTO__)
- ACE_UNUSED_ARG (user);
- ACE_UNUSED_ARG (maxlen);
- ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_WIN32)
- BOOL result = GetUserNameA (user, (u_long *) &maxlen);
- if (result == FALSE)
- ACE_FAIL_RETURN (0);
- else
- return user;
-#elif defined (ACE_HAS_ALT_CUSERID)
-# if defined (ACE_LACKS_PWD_FUNCTIONS)
-# error Cannot use alternate cuserid() without POSIX password functions!
-# endif /* ACE_LACKS_PWD_FUNCTIONS */
-
- // POSIX.1 dropped the cuserid() function.
- // GNU GLIBC and other platforms correctly deprecate the cuserid()
- // function.
-
- if (maxlen == 0)
- {
- // It doesn't make sense to have a zero length user ID.
- errno = EINVAL;
- return 0;
- }
-
- struct passwd *pw = 0;
-
- // Make sure the file pointer is at the beginning of the password file
- ::setpwent ();
- // Should use ACE_OS::setpwent() but I didn't want to move this
- // method after it.
-
- // Use the effective user ID to determine the user name.
- pw = ::getpwuid (::geteuid ());
-
- // Make sure the password file is closed.
- ::endpwent ();
-
- size_t max_length = 0;
- char *userid = 0;
-
- if (user == 0)
- {
- // Not reentrant/thread-safe, but nothing else can be done if a
- // zero pointer was passed in as the destination.
-
-#if defined (_POSIX_SOURCE)
- const size_t ACE_L_cuserid = L_cuserid;
-#else
- const size_t ACE_L_cuserid = 9; // 8 character user ID + NULL
-#endif /* _POSIX_SOURCE */
-
- static ACE_TCHAR tmp[ACE_L_cuserid] = { '\0' };
- max_length = ACE_L_cuserid - 1; // Do not include NULL in length
-
- userid = tmp;
- }
- else
- {
- max_length = maxlen;
- userid = user;
- }
-
- // Extract the user name from the passwd structure.
- if (ACE_OS_String::strlen (pw->pw_name) <= max_length)
- {
- return ACE_OS_String::strcpy (userid, pw->pw_name);
- }
- else
- {
- errno = ENOSPC; // Buffer is not large enough.
- return 0;
- }
-#else
- // Hackish because of missing buffer size!
- ACE_UNUSED_ARG (maxlen);
- ACE_OSCALL_RETURN (::ace_cuserid(user), char*, 0);
-#endif /* VXWORKS */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE wchar_t *
-ACE_OS::cuserid (wchar_t *user, size_t maxlen)
-{
-# if defined (ACE_WIN32)
- BOOL result = GetUserNameW (user, (u_long *) &maxlen);
- if (result == FALSE)
- ACE_FAIL_RETURN (0);
- else
- return user;
-# else /* ACE_WIN32 */
- char *char_user;
- wchar_t *result = 0;
-
- ACE_NEW_RETURN (char_user, char[maxlen + 1], 0);
-
- if (ACE_OS::cuserid (char_user, maxlen))
- {
- ACE_OS::strcpy (user, ACE_Ascii_To_Wide (char_user).wchar_rep ());
- result = user;
- }
-
- delete [] char_user;
-
- return result;
-# endif /* ACE_WIN32 */
-}
-#endif /* ACE_HAS_WCHAR */
-#endif /* ACE_LACKS_CUSERID */
-
-ACE_INLINE int
-ACE_OS::atexit (ACE_EXIT_HOOK func)
-{
- return ACE_OS_Object_Manager::instance ()->at_exit (func);
-}
-
-// Doesn't need a macro since it *never* returns!
-
-ACE_INLINE void
-ACE_OS::_exit (int status)
-{
- ACE_OS_TRACE ("ACE_OS::_exit");
-#if defined (VXWORKS)
- ::exit (status);
-#elif defined (ACE_PSOSIM)
- ::u_exit (status);
-#elif defined (ACE_PSOS)
-# if defined (ACE_PSOS_LACKS_PREPC) /* pSoS TM does not support exit. */
- ACE_UNUSED_ARG (status);
- return;
-# else
- ::exit (status);
-# endif /* defined (ACE_PSOS_LACKS_PREPC) */
-#elif !defined (ACE_HAS_WINCE)
- ::_exit (status);
-#else
- ::TerminateProcess (::GetCurrentProcess (),
- status);
-#endif /* VXWORKS */
-}
-
-ACE_INLINE void
-ACE_OS::abort (void)
-{
-#if !defined (ACE_HAS_WINCE)
- ::abort ();
-#else
- // @@ CE doesn't support abort?
- exit (1);
-#endif /* !ACE_HAS_WINCE */
-}
-
-ACE_INLINE int
-ACE_OS::vsprintf (char *buffer, const char *format, va_list argptr)
-{
- return ACE_SPRINTF_ADAPTER (::vsprintf (buffer, format, argptr));
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_OS::vsprintf (wchar_t *buffer, const wchar_t *format, va_list argptr)
-{
-# if defined (ACE_HAS_VSWPRINTF)
- return ::vswprintf (buffer, format, argptr);
-
-# else
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (format);
- ACE_UNUSED_ARG (argptr);
- ACE_NOTSUP_RETURN (-1);
-
-# endif /* ACE_HAS_VSWPRINTF */
-}
-#endif /* ACE_HAS_WCHAR */
-
-
-ACE_INLINE long
-ACE_OS::sysconf (int name)
-{
- ACE_OS_TRACE ("ACE_OS::sysconf");
-#if defined (ACE_WIN32) || defined (VXWORKS) || defined (ACE_PSOS) || defined (INTEGRITY)
- ACE_UNUSED_ARG (name);
- ACE_NOTSUP_RETURN (-1);
-#else
- ACE_OSCALL_RETURN (::sysconf (name), long, -1);
-#endif /* ACE_WIN32 || VXWORKS || ACE_PSOS */
-}
-
-ACE_INLINE int
-ACE_OS::mutex_init (ACE_mutex_t *m,
- int type,
- const char *name,
- ACE_mutexattr_t *attributes,
- LPSECURITY_ATTRIBUTES sa)
-{
- // ACE_OS_TRACE ("ACE_OS::mutex_init");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (attributes);
- ACE_UNUSED_ARG (sa);
-
- pthread_mutexattr_t l_attributes;
- if (attributes == 0)
- attributes = &l_attributes;
- int result = 0;
- int attr_init = 0; // have we initialized the local attributes.
-
- // Only do these initializations if the <attributes> parameter
- // wasn't originally set.
- if (attributes == &l_attributes)
- {
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (::pthread_mutexattr_create (attributes) == 0)
-# elif defined (ACE_HAS_PTHREADS_DRAFT7) || defined (ACE_HAS_PTHREADS_STD)
- if (ACE_ADAPT_RETVAL (::pthread_mutexattr_init (attributes), result) == 0)
-# else /* draft 6 */
- if (::pthread_mutexattr_init (attributes) == 0)
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- {
- result = 0;
- attr_init = 1; // we have initialized these attributes
- }
- else
- result = -1; // ACE_ADAPT_RETVAL used it for intermediate status
- }
-
- if (result == 0)
- {
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (
-# if defined (ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP)
- ::pthread_mutexattr_setkind_np (attributes, type) == 0 &&
-# endif /* ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP */
- ::pthread_mutex_init (m, *attributes) == 0)
-# elif defined (ACE_HAS_PTHREADS_DRAFT7) || defined (ACE_HAS_PTHREADS_STD)
- if (
-# if defined (_POSIX_THREAD_PROCESS_SHARED) && !defined (ACE_LACKS_MUTEXATTR_PSHARED)
- ACE_ADAPT_RETVAL (::pthread_mutexattr_setpshared (attributes, type),
- result) == 0 &&
-# endif /* _POSIX_THREAD_PROCESS_SHARED && ! ACE_LACKS_MUTEXATTR_PSHARED */
- ACE_ADAPT_RETVAL (::pthread_mutex_init (m, attributes), result) == 0)
-# else
- if (
-# if !defined (ACE_LACKS_MUTEXATTR_PSHARED)
- ::pthread_mutexattr_setpshared (attributes, type) == 0 &&
-# endif /* ACE_LACKS_MUTEXATTR_PSHARED */
-# if defined (ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP)
- ::pthread_mutexattr_setkind_np (attributes, type) == 0 &&
-# endif /* ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP */
- ::pthread_mutex_init (m, attributes) == 0)
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- result = 0;
- else
- result = -1; // ACE_ADAPT_RETVAL used it for intermediate status
- }
-
-# if (!defined (ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP) && !defined (_POSIX_THREAD_PROCESS_SHARED) || defined (ACE_LACKS_MUTEXATTR_PSHARED)) \
- || ((defined (ACE_HAS_PTHREADS_DRAFT7) || defined (ACE_HAS_PTHREADS_STD)) && !defined (_POSIX_THREAD_PROCESS_SHARED))
- ACE_UNUSED_ARG (type);
-# endif /* ! ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP */
-
- // Only do the deletions if the <attributes> parameter wasn't
- // originally set.
- if (attributes == &l_attributes && attr_init)
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_mutexattr_delete (&l_attributes);
-# else
- ::pthread_mutexattr_destroy (&l_attributes);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-
- return result;
-# elif defined (ACE_HAS_STHREADS)
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (sa);
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_init (m, type, attributes),
- ace_result_),
- int, -1);
-# elif defined (ACE_HAS_WTHREADS)
- m->type_ = type;
-
- switch (type)
- {
- case USYNC_PROCESS:
-# if defined (ACE_HAS_WINCE)
- // @@todo (brunsch) This idea should be moved into ACE_OS_Win32.
- m->proc_mutex_ = ::CreateMutexW (ACE_OS::default_win32_security_attributes (sa),
- FALSE,
- ACE_Ascii_To_Wide (name).wchar_rep ());
-# else /* ACE_HAS_WINCE */
- m->proc_mutex_ = ::CreateMutexA (ACE_OS::default_win32_security_attributes (sa),
- FALSE,
- name);
-# endif /* ACE_HAS_WINCE */
- if (m->proc_mutex_ == 0)
- ACE_FAIL_RETURN (-1);
- else
- {
- // Make sure to set errno to ERROR_ALREADY_EXISTS if necessary.
- ACE_OS::set_errno_to_last_error ();
- return 0;
- }
- case USYNC_THREAD:
- return ACE_OS::thread_mutex_init (&m->thr_mutex_,
- type,
- name,
- attributes);
- default:
- errno = EINVAL;
- return -1;
- }
- /* NOTREACHED */
-
-# elif defined (ACE_PSOS)
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (attributes);
- ACE_UNUSED_ARG (sa);
-# if defined (ACE_PSOS_HAS_MUTEX)
-
- u_long flags = MU_LOCAL;
- u_long ceiling = 0;
-
-# if defined (ACE_HAS_RECURSIVE_MUTEXES)
- flags |= MU_RECURSIVE;
-# else /* ! ACE_HAS_RECURSIVE_MUTEXES */
- flags |= MU_NONRECURSIVE;
-# endif /* ACE_HAS_RECURSIVE_MUTEXES */
-
-# if defined (ACE_PSOS_HAS_PRIO_MUTEX)
-
- flags |= MU_PRIOR;
-
-# if defined (ACE_PSOS_HAS_PRIO_INHERIT_MUTEX)
- flags |= MU_PRIO_INHERIT;
-# elif defined (ACE_PSOS_HAS_PRIO_PROTECT_MUTEX)
- ceiling = PSOS_TASK_MAX_PRIORITY;
- flags |= MU_PRIO_PROTECT;
-# else
- flags |= MU_PRIO_NONE;
-# endif /* ACE_PSOS_HAS_PRIO_INHERIT_MUTEX */
-
-# else /* ! ACE_PSOS_HAS_PRIO_MUTEX */
-
- flags |= MU_FIFO | MU_PRIO_NONE;
-
-# endif
-
- // Fake a pSOS name - it can be any 4-byte value, not necessarily needing
- // to be ASCII. So use the mutex pointer passed in. That should identify
- // each one uniquely.
- union { ACE_mutex_t *p; char n[4]; } m_name;
- m_name.p = m;
-
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mu_create (m_name.n,
- flags,
- ceiling,
- m),
- ace_result_),
- int, -1);
-
-# else /* ! ACE_PSOS_HAS_MUTEX */
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sm_create ((char *) name,
- 1,
- SM_LOCAL | SM_PRIOR,
- m),
- ace_result_),
- int, -1);
-# endif /* ACE_PSOS_HAS_MUTEX */
-# elif defined (VXWORKS)
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (attributes);
- ACE_UNUSED_ARG (sa);
-
- return (*m = ::semMCreate (type)) == 0 ? -1 : 0;
-# endif /* ACE_HAS_PTHREADS */
-#else
- ACE_UNUSED_ARG (m);
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (attributes);
- ACE_UNUSED_ARG (sa);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_OS::mutex_init (ACE_mutex_t *m,
- int type,
- const wchar_t *name,
- ACE_mutexattr_t *attributes,
- LPSECURITY_ATTRIBUTES sa)
-{
-#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_WTHREADS)
- m->type_ = type;
-
- switch (type)
- {
- case USYNC_PROCESS:
- m->proc_mutex_ = ::CreateMutexW (ACE_OS::default_win32_security_attributes (sa),
- FALSE,
- name);
- if (m->proc_mutex_ == 0)
- ACE_FAIL_RETURN (-1);
- else
- return 0;
- case USYNC_THREAD:
- return ACE_OS::thread_mutex_init (&m->thr_mutex_,
- type,
- name,
- attributes);
- }
-
- errno = EINVAL;
- return -1;
-#else /* ACE_HAS_THREADS && ACE_HAS_WTHREADS */
- return ACE_OS::mutex_init (m,
- type, ACE_Wide_To_Ascii (name).char_rep (),
- attributes,
- sa);
-#endif /* ACE_HAS_THREADS && ACE_HAS_WTHREADS */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE int
-ACE_OS::mutex_destroy (ACE_mutex_t *m)
-{
- ACE_OS_TRACE ("ACE_OS::mutex_destroy");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
-# if (defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6))
- ACE_OSCALL_RETURN (::pthread_mutex_destroy (m), int, -1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_mutex_destroy (m),
- ace_result_), int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6*/
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_destroy (m), ace_result_), int, -1);
-# elif defined (ACE_HAS_WTHREADS)
- switch (m->type_)
- {
- case USYNC_PROCESS:
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CloseHandle (m->proc_mutex_),
- ace_result_),
- int, -1);
- case USYNC_THREAD:
- return ACE_OS::thread_mutex_destroy (&m->thr_mutex_);
- default:
- errno = EINVAL;
- return -1;
- }
- /* NOTREACHED */
-# elif defined (ACE_PSOS)
-# if defined (ACE_PSOS_HAS_MUTEX)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mu_delete (*m), ace_result_),
- int, -1);
-# else /* ! ACE_PSOS_HAS_MUTEX */
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sm_delete (*m), ace_result_),
- int, -1);
-# endif /* ACE_PSOS_HAS_MUTEX */
-# elif defined (VXWORKS)
- return ::semDelete (*m) == OK ? 0 : -1;
-# endif /* Threads variety case */
-#else
- ACE_UNUSED_ARG (m);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::mutex_lock (ACE_mutex_t *m)
-{
- // ACE_OS_TRACE ("ACE_OS::mutex_lock");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
- // Note, don't use "::" here since the following call is often a macro.
-# if (defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6))
- ACE_OSCALL_RETURN (pthread_mutex_lock (m), int, -1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_mutex_lock (m), ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_lock (m), ace_result_), int, -1);
-# elif defined (ACE_HAS_WTHREADS)
- switch (m->type_)
- {
- case USYNC_PROCESS:
- switch (::WaitForSingleObject (m->proc_mutex_, INFINITE))
- {
- //
- // Timeout can't occur, so don't bother checking...
- //
- case WAIT_OBJECT_0:
- case WAIT_ABANDONED:
- // We will ignore abandonments in this method
- // Note that we still hold the lock
- return 0;
- default:
- // This is a hack, we need to find an appropriate mapping...
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
- case USYNC_THREAD:
- return ACE_OS::thread_mutex_lock (&m->thr_mutex_);
- default:
- errno = EINVAL;
- return -1;
- }
- /* NOTREACHED */
-# elif defined (ACE_PSOS)
-# if defined (ACE_PSOS_HAS_MUTEX)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mu_lock (*m, MU_WAIT, 0),
- ace_result_),
- int, -1);
-# else /* ACE_PSOS_HAS_MUTEX */
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sm_p (*m, SM_WAIT, 0),
- ace_result_),
- int, -1);
-# endif /* ACE_PSOS_HAS_MUTEX */
-# elif defined (VXWORKS)
- return ::semTake (*m, WAIT_FOREVER) == OK ? 0 : -1;
-# endif /* Threads variety case */
-#else
- ACE_UNUSED_ARG (m);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::mutex_lock (ACE_mutex_t *m,
- int &abandoned)
-{
- ACE_OS_TRACE ("ACE_OS::mutex_lock");
-#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_WTHREADS)
- abandoned = 0;
- switch (m->type_)
- {
- case USYNC_PROCESS:
- switch (::WaitForSingleObject (m->proc_mutex_, INFINITE))
- {
- //
- // Timeout can't occur, so don't bother checking...
- //
- case WAIT_OBJECT_0:
- return 0;
- case WAIT_ABANDONED:
- abandoned = 1;
- return 0; // something goofed, but we hold the lock ...
- default:
- // This is a hack, we need to find an appropriate mapping...
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
- case USYNC_THREAD:
- return ACE_OS::thread_mutex_lock (&m->thr_mutex_);
- default:
- errno = EINVAL;
- return -1;
- }
- /* NOTREACHED */
-#else
- ACE_UNUSED_ARG (m);
- ACE_UNUSED_ARG (abandoned);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS and ACE_HAS_WTHREADS */
-}
-
-ACE_INLINE int
-ACE_OS::mutex_trylock (ACE_mutex_t *m)
-{
- ACE_OS_TRACE ("ACE_OS::mutex_trylock");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
- // Note, don't use "::" here since the following call is often a macro.
-# if (defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6))
- int status = pthread_mutex_trylock (m);
- if (status == 1)
- status = 0;
- else if (status == 0) {
- status = -1;
- errno = EBUSY;
- }
- return status;
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_mutex_trylock (m), ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_trylock (m), ace_result_), int, -1);
-# elif defined (ACE_HAS_WTHREADS)
- switch (m->type_)
- {
- case USYNC_PROCESS:
- {
- // Try for 0 milliseconds - i.e. nonblocking.
- switch (::WaitForSingleObject (m->proc_mutex_, 0))
- {
- case WAIT_OBJECT_0:
- return 0;
- case WAIT_ABANDONED:
- // We will ignore abandonments in this method. Note that
- // we still hold the lock.
- return 0;
- case WAIT_TIMEOUT:
- errno = EBUSY;
- return -1;
- default:
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
- }
- case USYNC_THREAD:
- return ACE_OS::thread_mutex_trylock (&m->thr_mutex_);
- default:
- errno = EINVAL;
- return -1;
- }
- /* NOTREACHED */
-# elif defined (ACE_PSOS)
-# if defined (ACE_PSOS_HAS_MUTEX)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mu_lock (*m, MU_NOWAIT, 0),
- ace_result_),
- int, -1);
-# else /* ! ACE_PSOS_HAS_MUTEX */
- switch (::sm_p (*m, SM_NOWAIT, 0))
- {
- case 0:
- return 0;
- case ERR_NOSEM:
- errno = EBUSY;
- // intentional fall through
- default:
- return -1;
- }
-# endif /* ACE_PSOS_HAS_MUTEX */
-
-# elif defined (VXWORKS)
- if (::semTake (*m, NO_WAIT) == ERROR)
- if (errno == S_objLib_OBJ_UNAVAILABLE)
- {
- // couldn't get the semaphore
- errno = EBUSY;
- return -1;
- }
- else
- // error
- return -1;
- else
- // got the semaphore
- return 0;
-# endif /* Threads variety case */
-#else
- ACE_UNUSED_ARG (m);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::mutex_trylock (ACE_mutex_t *m, int &abandoned)
-{
-#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_WTHREADS)
- abandoned = 0;
- switch (m->type_)
- {
- case USYNC_PROCESS:
- {
- // Try for 0 milliseconds - i.e. nonblocking.
- switch (::WaitForSingleObject (m->proc_mutex_, 0))
- {
- case WAIT_OBJECT_0:
- return 0;
- case WAIT_ABANDONED:
- abandoned = 1;
- return 0; // something goofed, but we hold the lock ...
- case WAIT_TIMEOUT:
- errno = EBUSY;
- return -1;
- default:
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
- }
- case USYNC_THREAD:
- return ACE_OS::thread_mutex_trylock (&m->thr_mutex_);
- default:
- errno = EINVAL;
- return -1;
- }
- /* NOTREACHED */
-#else
- ACE_UNUSED_ARG (m);
- ACE_UNUSED_ARG (abandoned);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS and ACE_HAS_WTHREADS */
-}
-
-ACE_INLINE int
-ACE_OS::mutex_lock (ACE_mutex_t *m,
- const ACE_Time_Value &timeout)
-{
-#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_MUTEX_TIMEOUTS)
-
-# if defined (ACE_HAS_PTHREADS)
- int result;
-
- // "timeout" should be an absolute time.
-
- timespec_t ts = timeout; // Calls ACE_Time_Value::operator timespec_t().
-
- // Note that the mutex should not be a recursive one, i.e., it
- // should only be a standard mutex or an error checking mutex.
-
- ACE_OSCALL (ACE_ADAPT_RETVAL (::pthread_mutex_timedlock (m, &ts), result), int, -1, result);
-
- // We need to adjust this to make the errno values consistent.
- if (result == -1 && errno == ETIMEDOUT)
- errno = ETIME;
- return result;
-
-# elif defined (ACE_HAS_WTHREADS)
- // Note that we must convert between absolute time (which is passed
- // as a parameter) and relative time (which is what the system call
- // expects).
- ACE_Time_Value relative_time (timeout - ACE_OS::gettimeofday ());
-
- switch (m->type_)
- {
- case USYNC_PROCESS:
- switch (::WaitForSingleObject (m->proc_mutex_,
- relative_time.msec ()))
- {
- case WAIT_OBJECT_0:
- case WAIT_ABANDONED:
- // We will ignore abandonments in this method
- // Note that we still hold the lock
- return 0;
- case WAIT_TIMEOUT:
- errno = ETIME;
- return -1;
- default:
- // This is a hack, we need to find an appropriate mapping...
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
- case USYNC_THREAD:
- ACE_NOTSUP_RETURN (-1);
- default:
- errno = EINVAL;
- return -1;
- }
- /* NOTREACHED */
-
-# elif defined (ACE_PSOS)
-
- // Note that we must convert between absolute time (which is
- // passed as a parameter) and relative time (which is what
- // the system call expects).
- ACE_Time_Value relative_time (timeout - ACE_OS::gettimeofday ());
-
- u_long ticks = relative_time.sec() * KC_TICKS2SEC +
- relative_time.usec () * KC_TICKS2SEC /
- ACE_ONE_SECOND_IN_USECS;
- if (ticks == 0)
- ACE_OSCALL_RETURN (::sm_p (*m, SM_NOWAIT, 0), int, -1); // no timeout
- else
- ACE_OSCALL_RETURN (::sm_p (*m, SM_WAIT, ticks), int, -1);
-
-# elif defined (VXWORKS)
-
- // Note that we must convert between absolute time (which is passed
- // as a parameter) and relative time (which is what the system call
- // expects).
- ACE_Time_Value relative_time (timeout - ACE_OS::gettimeofday ());
-
- int ticks_per_sec = ::sysClkRateGet ();
-
- int ticks = relative_time.sec() * ticks_per_sec +
- relative_time.usec () * ticks_per_sec / ACE_ONE_SECOND_IN_USECS;
- if (::semTake (*m, ticks) == ERROR)
- {
- if (errno == S_objLib_OBJ_TIMEOUT)
- // Convert the VxWorks errno to one that's common for to ACE
- // platforms.
- errno = ETIME;
- else if (errno == S_objLib_OBJ_UNAVAILABLE)
- errno = EBUSY;
- return -1;
- }
- else
- return 0;
-# endif /* ACE_HAS_PTHREADS */
-
-#else
- ACE_UNUSED_ARG (m);
- ACE_UNUSED_ARG (timeout);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS && ACE_HAS_MUTEX_TIMEOUTS */
-}
-
-ACE_INLINE int
-ACE_OS::mutex_lock (ACE_mutex_t *m,
- const ACE_Time_Value *timeout)
-{
- return timeout == 0 ? ACE_OS::mutex_lock (m) : ACE_OS::mutex_lock (m, *timeout);
-}
-
-ACE_INLINE int
-ACE_OS::mutex_unlock (ACE_mutex_t *m)
-{
- ACE_OS_TRACE ("ACE_OS::mutex_unlock");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
- // Note, don't use "::" here since the following call is often a macro.
-# if (defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6))
- ACE_OSCALL_RETURN (pthread_mutex_unlock (m), int, -1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_mutex_unlock (m), ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_unlock (m), ace_result_), int, -1);
-# elif defined (ACE_HAS_WTHREADS)
- switch (m->type_)
- {
- case USYNC_PROCESS:
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::ReleaseMutex (m->proc_mutex_),
- ace_result_),
- int, -1);
- case USYNC_THREAD:
- return ACE_OS::thread_mutex_unlock (&m->thr_mutex_);
- default:
- errno = EINVAL;
- return -1;
- }
- /* NOTREACHED */
-# elif defined (ACE_PSOS)
-# if defined (ACE_PSOS_HAS_MUTEX)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mu_unlock (*m), ace_result_),
- int, -1);
-# else /* ! ACE_PSOS_HAS_MUTEX */
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sm_v (*m), ace_result_),
- int, -1);
-# endif /* ACE_PSOS_HAS_MUTEX */
-# elif defined (VXWORKS)
- return ::semGive (*m) == OK ? 0 : -1;
-# endif /* Threads variety case */
-#else
- ACE_UNUSED_ARG (m);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thread_mutex_init (ACE_thread_mutex_t *m,
- int type,
- const char *name,
- ACE_mutexattr_t *arg)
-{
- // ACE_OS_TRACE ("ACE_OS::thread_mutex_init");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_WTHREADS)
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
- ::InitializeCriticalSection (m);
- return 0;
-
-# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS)
- ACE_UNUSED_ARG (type);
- // Force the use of USYNC_THREAD!
- return ACE_OS::mutex_init (m, USYNC_THREAD, name, arg);
-
-# elif defined (VXWORKS) || defined (ACE_PSOS)
- return mutex_init (m, type, name, arg);
-
-# endif /* ACE_HAS_STHREADS || ACE_HAS_PTHREADS */
-
-#else
- ACE_UNUSED_ARG (m);
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
- ACE_NOTSUP_RETURN (-1);
-
-#endif /* ACE_HAS_THREADS */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_OS::thread_mutex_init (ACE_thread_mutex_t *m,
- int type,
- const wchar_t *name,
- ACE_mutexattr_t *arg)
-{
- // ACE_OS_TRACE ("ACE_OS::thread_mutex_init");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_WTHREADS)
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
- ::InitializeCriticalSection (m);
- return 0;
-
-# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS)
- ACE_UNUSED_ARG (type);
- // Force the use of USYNC_THREAD!
- return ACE_OS::mutex_init (m, USYNC_THREAD, name, arg);
-
-# elif defined (VXWORKS) || defined (ACE_PSOS)
- return mutex_init (m, type, name, arg);
-
-# endif /* ACE_HAS_STHREADS || ACE_HAS_PTHREADS */
-
-#else
- ACE_UNUSED_ARG (m);
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
- ACE_NOTSUP_RETURN (-1);
-
-#endif /* ACE_HAS_THREADS */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE int
-ACE_OS::thread_mutex_destroy (ACE_thread_mutex_t *m)
-{
- ACE_OS_TRACE ("ACE_OS::thread_mutex_destroy");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_WTHREADS)
- ::DeleteCriticalSection (m);
- return 0;
-
-# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS)
- return ACE_OS::mutex_destroy (m);
-
-# elif defined (VXWORKS) || defined (ACE_PSOS)
- return mutex_destroy (m);
-
-# endif /* ACE_HAS_STHREADS || ACE_HAS_PTHREADS */
-
-#else
- ACE_UNUSED_ARG (m);
- ACE_NOTSUP_RETURN (-1);
-
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thread_mutex_lock (ACE_thread_mutex_t *m)
-{
- // ACE_OS_TRACE ("ACE_OS::thread_mutex_lock");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_WTHREADS)
- ::EnterCriticalSection (m);
- return 0;
-# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS)
- return ACE_OS::mutex_lock (m);
-# elif defined (VXWORKS) || defined (ACE_PSOS)
- return mutex_lock (m);
-# endif /* ACE_HAS_STHREADS || ACE_HAS_PTHREADS */
-#else
- ACE_UNUSED_ARG (m);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thread_mutex_lock (ACE_thread_mutex_t *m,
- const ACE_Time_Value &timeout)
-{
- // ACE_OS_TRACE ("ACE_OS::thread_mutex_lock");
-
- // For all platforms, except MS Windows, this method is equivalent
- // to calling ACE_OS::mutex_lock() since ACE_thread_mutex_t and
- // ACE_mutex_t are the same type. However, those typedefs evaluate
- // to different types on MS Windows. The "thread mutex"
- // implementation in ACE for MS Windows cannot readily support
- // timeouts due to a lack of timeout features for this type of MS
- // Windows synchronization mechanism.
-
-#if defined (ACE_HAS_THREADS) && !defined (ACE_HAS_WTHREADS)
-# if defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS)
- return ACE_OS::mutex_lock (m, timeout);
-#elif defined (VXWORKS) || defined (ACE_PSOS)
- return mutex_lock (m, timeout);
-#endif /* ACE_HAS_STHREADS || ACE_HAS_PTHREADS */
-#else
- ACE_UNUSED_ARG (m);
- ACE_UNUSED_ARG (timeout);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thread_mutex_lock (ACE_thread_mutex_t *m,
- const ACE_Time_Value *timeout)
-{
- return timeout == 0
- ? ACE_OS::thread_mutex_lock (m)
- : ACE_OS::thread_mutex_lock (m, *timeout);
-}
-
-ACE_INLINE int
-ACE_OS::thread_mutex_trylock (ACE_thread_mutex_t *m)
-{
- ACE_OS_TRACE ("ACE_OS::thread_mutex_trylock");
-
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_WTHREADS)
-# if defined (ACE_HAS_WIN32_TRYLOCK)
- BOOL result = ::TryEnterCriticalSection (m);
- if (result == TRUE)
- return 0;
- else
- {
- errno = EBUSY;
- return -1;
- }
-# else
- ACE_UNUSED_ARG (m);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_WIN32_TRYLOCK */
-# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS)
- return ACE_OS::mutex_trylock (m);
-# elif defined (VXWORKS) || defined (ACE_PSOS)
- return ACE_OS::mutex_trylock (m);
-#endif /* Threads variety case */
-
-#else
- ACE_UNUSED_ARG (m);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thread_mutex_unlock (ACE_thread_mutex_t *m)
-{
- ACE_OS_TRACE ("ACE_OS::thread_mutex_unlock");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_WTHREADS)
- ::LeaveCriticalSection (m);
- return 0;
-# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS)
- return ACE_OS::mutex_unlock (m);
-# elif defined (VXWORKS) || defined (ACE_PSOS)
- return ACE_OS::mutex_unlock (m);
-# endif /* Threads variety case */
-#else
- ACE_UNUSED_ARG (m);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-#if !defined (ACE_LACKS_COND_T)
-// NOTE: The ACE_OS::cond_* functions for Unix platforms are defined
-// here because the ACE_OS::sema_* functions below need them.
-// However, ACE_WIN32 and VXWORKS define the ACE_OS::cond_* functions
-// using the ACE_OS::sema_* functions. So, they are defined in OS.cpp.
-
-ACE_INLINE int
-ACE_OS::cond_destroy (ACE_cond_t *cv)
-{
- ACE_OS_TRACE ("ACE_OS::cond_destroy");
-# if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (::pthread_cond_destroy (cv), int, -1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_cond_destroy (cv), ace_result_), int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_destroy (cv), ace_result_), int, -1);
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_COND_T)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cv_delete (*cv), ace_result_),
- int, -1);
-# endif /* ACE_HAS_STHREADS */
-# else
- ACE_UNUSED_ARG (cv);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::condattr_init (ACE_condattr_t &attributes,
- int type)
-{
- ACE_UNUSED_ARG (type);
-# if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
- int result = -1;
-
- if (
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_condattr_create (&attributes) == 0
-# elif defined (ACE_HAS_PTHREADS_STD) || defined (ACE_HAS_PTHREADS_DRAFT7)
- ACE_ADAPT_RETVAL(::pthread_condattr_init (&attributes), result) == 0
-# if defined (_POSIX_THREAD_PROCESS_SHARED) && !defined (ACE_LACKS_MUTEXATTR_PSHARED)
- && ACE_ADAPT_RETVAL(::pthread_condattr_setpshared(&attributes, type),
- result) == 0
-# endif /* _POSIX_THREAD_PROCESS_SHARED && ! ACE_LACKS_MUTEXATTR_PSHARED */
-# else /* this is draft 6 */
- ::pthread_condattr_init (&attributes) == 0
-# if !defined (ACE_LACKS_CONDATTR_PSHARED)
- && ::pthread_condattr_setpshared (&attributes, type) == 0
-# endif /* ACE_LACKS_CONDATTR_PSHARED */
-# if defined (ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP)
- && ::pthread_condattr_setkind_np (&attributes, type) == 0
-# endif /* ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP */
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- )
- result = 0;
- else
- result = -1; // ACE_ADAPT_RETVAL used it for intermediate status
-
- return result;
-# elif defined (ACE_HAS_STHREADS)
- attributes.type = type;
-
- return 0;
-
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_COND_T)
-# if defined (ACE_PSOS_HAS_PRIO_MUTEX)
- attributes = CV_LOCAL | CV_PRIOR;
-# else /* ACE_PSOS_HAS_PRIO_MUTEX */
- attributes = CV_LOCAL | CV_FIFO;
-# endif /* ACE_PSOS_HAS_PRIO_MUTEX */
- return 0;
-
-# else
- ACE_UNUSED_ARG (attributes);
- ACE_UNUSED_ARG (type);
- ACE_NOTSUP_RETURN (-1);
-
-# endif /* ACE_HAS_PTHREADS vs. ACE_HAS_STHREADS vs. pSOS */
-
-# else
- ACE_UNUSED_ARG (attributes);
- ACE_UNUSED_ARG (type);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::condattr_destroy (ACE_condattr_t &attributes)
-{
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_condattr_delete (&attributes);
-# else
- ::pthread_condattr_destroy (&attributes);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-
-# elif defined (ACE_HAS_STHREADS)
- attributes.type = 0;
-
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_COND_T)
- attributes = 0;
-
-# endif /* ACE_HAS_PTHREADS vs. ACE_HAS_STHREADS vs. ACE_PSOS */
- return 0;
-# else
- ACE_UNUSED_ARG (attributes);
- return 0;
-# endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::cond_init (ACE_cond_t *cv,
- ACE_condattr_t &attributes,
- const char *name,
- void *arg)
-{
- // ACE_OS_TRACE ("ACE_OS::cond_init");
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
-# if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
- int result = -1;
-
- if (
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_cond_init (cv, attributes) == 0
-# elif defined (ACE_HAS_PTHREADS_STD) || defined (ACE_HAS_PTHREADS_DRAFT7)
- ACE_ADAPT_RETVAL(::pthread_cond_init (cv, &attributes), result) == 0
-# else /* this is draft 6 */
- ::pthread_cond_init (cv, &attributes) == 0
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- )
- result = 0;
- else
- result = -1; // ACE_ADAPT_RETVAL used it for intermediate status
-
- return result;
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_init (cv,
- attributes.type,
- arg),
- ace_result_),
- int, -1);
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_COND_T)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cv_create (ACE_const_cast (char *, name),
- attributes,
- cv),
- ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS vs. ACE_HAS_STHREADS vs. ACE_PSOS */
-# else
- ACE_UNUSED_ARG (cv);
- ACE_UNUSED_ARG (attributes);
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_OS::cond_init (ACE_cond_t *cv,
- ACE_condattr_t &attributes,
- const wchar_t *name,
- void *arg)
-{
- return ACE_OS::cond_init (cv, attributes, ACE_Wide_To_Ascii (name).char_rep (), arg);
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE int
-ACE_OS::cond_init (ACE_cond_t *cv, short type, const char *name, void *arg)
-{
- ACE_condattr_t attributes;
- if (ACE_OS::condattr_init (attributes, type) == 0
- && ACE_OS::cond_init (cv, attributes, name, arg) == 0)
- {
- (void) ACE_OS::condattr_destroy (attributes);
- return 0;
- }
- return -1;
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_OS::cond_init (ACE_cond_t *cv, short type, const wchar_t *name, void *arg)
-{
- return ACE_OS::cond_init (cv, type, ACE_Wide_To_Ascii (name).char_rep (), arg);
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE int
-ACE_OS::cond_signal (ACE_cond_t *cv)
-{
- ACE_OS_TRACE ("ACE_OS::cond_signal");
-# if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (::pthread_cond_signal (cv), int, -1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_cond_signal (cv),ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_signal (cv), ace_result_), int, -1);
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_COND_T)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cv_signal (*cv), ace_result_),
- int, -1);
-# endif /* ACE_HAS_STHREADS */
-# else
- ACE_UNUSED_ARG (cv);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::cond_broadcast (ACE_cond_t *cv)
-{
- ACE_OS_TRACE ("ACE_OS::cond_broadcast");
-# if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (::pthread_cond_broadcast (cv), int, -1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_cond_broadcast (cv),
- ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_broadcast (cv),
- ace_result_),
- int, -1);
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_COND_T)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cv_broadcast (*cv), ace_result_),
- int, -1);
-# endif /* ACE_HAS_STHREADS */
-# else
- ACE_UNUSED_ARG (cv);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::cond_wait (ACE_cond_t *cv,
- ACE_mutex_t *external_mutex)
-{
- ACE_OS_TRACE ("ACE_OS::cond_wait");
-# if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (::pthread_cond_wait (cv, external_mutex), int, -1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_cond_wait (cv, external_mutex), ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_wait (cv, external_mutex), ace_result_),
- int, -1);
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_COND_T)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cv_wait (*cv, *external_mutex, 0),
- ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS */
-# else
- ACE_UNUSED_ARG (cv);
- ACE_UNUSED_ARG (external_mutex);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::cond_timedwait (ACE_cond_t *cv,
- ACE_mutex_t *external_mutex,
- ACE_Time_Value *timeout)
-{
- ACE_OS_TRACE ("ACE_OS::cond_timedwait");
-# if defined (ACE_HAS_THREADS)
- int result;
- timespec_t ts;
-
- if (timeout != 0)
- ts = *timeout; // Calls ACE_Time_Value::operator timespec_t().
-
-# if defined (ACE_HAS_PTHREADS)
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- if (timeout == 0)
- ACE_OSCALL (::pthread_cond_wait (cv, external_mutex),
- int, -1, result);
- else
- {
-
-# if defined (__Lynx__)
- // Note that we must convert between absolute time (which is
- // passed as a parameter) and relative time (which is what the
- // LynxOS pthread_cond_timedwait expects). This differs from 1003.4a
- // draft 4.
-
- timespec_t relative_time = *timeout - ACE_OS::gettimeofday ();
-
- ACE_OSCALL (::pthread_cond_timedwait (cv, external_mutex,
- &relative_time),
- int, -1, result);
-# else
- ACE_OSCALL (::pthread_cond_timedwait (cv, external_mutex,
- (ACE_TIMESPEC_PTR) &ts),
- int, -1, result);
-# endif /* __Lynx__ */
- }
-
-# else
- ACE_OSCALL (ACE_ADAPT_RETVAL (timeout == 0
- ? ::pthread_cond_wait (cv, external_mutex)
- : ::pthread_cond_timedwait (cv, external_mutex,
- (ACE_TIMESPEC_PTR) &ts),
- result),
- int, -1, result);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6*/
- // We need to adjust this to make the POSIX and Solaris return
- // values consistent. EAGAIN is from Pthreads DRAFT4 (HP-UX 10.20 and
- // down); EINTR is from LynxOS.
- if (result == -1 &&
- (errno == ETIMEDOUT || errno == EAGAIN || errno == EINTR))
- errno = ETIME;
-
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL (ACE_ADAPT_RETVAL (timeout == 0
- ? ::cond_wait (cv, external_mutex)
- : ::cond_timedwait (cv,
- external_mutex,
- (timestruc_t*)&ts),
- result),
- int, -1, result);
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_COND_T)
- // pSOS condition value timeout is expressed in ticks. If the
- // cv_wait times out, the mutex is unlocked upon return.
- if (timeout == 0)
- {
- ACE_OSCALL (ACE_ADAPT_RETVAL (::cv_wait (*cv, *external_mutex, 0),
- result),
- int, -1, result);
- }
- else
- {
- // Need to convert the passed absolute time to relative time
- // expressed in ticks.
- ACE_Time_Value relative_time (*timeout - ACE_OS::gettimeofday ());
- int ticks = (relative_time.sec () * KC_TICKS2SEC) +
- (relative_time.usec () * KC_TICKS2SEC /
- ACE_ONE_SECOND_IN_USECS);
- if (ticks <= 0)
- ticks = 1; // Don't wait forever
- ACE_OSCALL (ACE_ADAPT_RETVAL (::cv_wait (*cv, *external_mutex, ticks),
- result),
- int, -1, result);
- if (result == -1 && errno == 1)
- {
- // cv timed out and returned pSOS timeout error 0x01, which
- // ACE_ADAPT_RETVAL stored in errno.
- ::mu_lock (*external_mutex, MU_WAIT, 0);
- errno = ETIME;
- }
- }
-
- return result;
-
-# endif /* ACE_HAS_STHREADS */
- if (timeout != 0)
- timeout->set (ts); // Update the time value before returning.
-
- return result;
-# else
- ACE_UNUSED_ARG (cv);
- ACE_UNUSED_ARG (external_mutex);
- ACE_UNUSED_ARG (timeout);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-#endif /* !ACE_LACKS_COND_T */
-
-ACE_INLINE int
-ACE_OS::thr_equal (ACE_thread_t t1, ACE_thread_t t2)
-{
-#if defined (ACE_HAS_PTHREADS)
-# if defined (pthread_equal)
- // If it's a macro we can't say "::pthread_equal"...
- return pthread_equal (t1, t2);
-# else
- return ::pthread_equal (t1, t2);
-# endif /* pthread_equal */
-#elif defined (VXWORKS)
- return ! ACE_OS::strcmp (t1, t2);
-#else /* For both STHREADS and WTHREADS... */
- // Hum, Do we need to treat WTHREAD differently?
- // levine 13 oct 98 % I don't think so, ACE_thread_t is a DWORD.
- return t1 == t2;
-#endif /* ACE_HAS_PTHREADS */
-}
-
-ACE_INLINE void
-ACE_OS::thr_self (ACE_hthread_t &self)
-{
- ACE_OS_TRACE ("ACE_OS::thr_self");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
- // Note, don't use "::" here since the following call is often a macro.
- self = pthread_self ();
-# elif defined (ACE_HAS_THREAD_SELF)
- self = ::thread_self ();
-# elif defined (ACE_HAS_STHREADS)
- self = ::thr_self ();
-# elif defined (ACE_HAS_WTHREADS)
- self = ::GetCurrentThread ();
-# elif defined (ACE_PSOS)
- t_ident ((char *) 0, 0, &self);
-# elif defined (VXWORKS)
- self = ::taskIdSelf ();
-# endif /* ACE_HAS_STHREADS */
-#else
- self = 1; // Might as well make it the main thread ;-)
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE ACE_thread_t
-ACE_OS::thr_self (void)
-{
- // ACE_OS_TRACE ("ACE_OS::thr_self");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
- // Note, don't use "::" here since the following call is often a macro.
- ACE_OSCALL_RETURN (pthread_self (), int, -1);
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (::thr_self (), int, -1);
-# elif defined (ACE_HAS_WTHREADS)
- return ::GetCurrentThreadId ();
-# elif defined (ACE_PSOS)
- // there does not appear to be a way to get
- // a task's name other than at creation
- return 0;
-# elif defined (VXWORKS)
- return ::taskName (::taskIdSelf ());
-# endif /* ACE_HAS_STHREADS */
-#else
- return 1; // Might as well make it the first thread ;-)
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::recursive_mutex_init (ACE_recursive_thread_mutex_t *m,
- const ACE_TCHAR *name,
- ACE_mutexattr_t *arg,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_UNUSED_ARG (sa);
-#if defined (ACE_HAS_THREADS)
-#if defined (ACE_HAS_RECURSIVE_MUTEXES)
- return ACE_OS::thread_mutex_init (m, 0, name, arg);
-#else
- if (ACE_OS::thread_mutex_init (&m->nesting_mutex_, 0, name, arg) == -1)
- return -1;
- else if (ACE_OS::cond_init (&m->lock_available_,
- (short) USYNC_THREAD,
- name,
- 0) == -1)
- return -1;
- else
- {
- m->nesting_level_ = 0;
- m->owner_id_ = ACE_OS::NULL_thread;
- return 0;
- }
-#endif /* ACE_HAS_RECURSIVE_MUTEXES */
-#else
- ACE_UNUSED_ARG (m);
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::recursive_mutex_destroy (ACE_recursive_thread_mutex_t *m)
-{
-#if defined (ACE_HAS_THREADS)
-#if defined (ACE_HAS_RECURSIVE_MUTEXES)
- return ACE_OS::thread_mutex_destroy (m);
-#else
- if (ACE_OS::thread_mutex_destroy (&m->nesting_mutex_) == -1)
- return -1;
- else if (ACE_OS::cond_destroy (&m->lock_available_) == -1)
- return -1;
- else
- return 0;
-#endif /* ACE_HAS_RECURSIVE_MUTEXES */
-#else
- ACE_UNUSED_ARG (m);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::recursive_mutex_lock (ACE_recursive_thread_mutex_t *m)
-{
-#if defined (ACE_HAS_THREADS)
-#if defined (ACE_HAS_RECURSIVE_MUTEXES)
- return ACE_OS::thread_mutex_lock (m);
-#else
- ACE_thread_t t_id = ACE_OS::thr_self ();
- int result = 0;
-
- // Acquire the guard.
- if (ACE_OS::thread_mutex_lock (&m->nesting_mutex_) == -1)
- result = -1;
- else
- {
- // If there's no contention, just grab the lock immediately
- // (since this is the common case we'll optimize for it).
- if (m->nesting_level_ == 0)
- m->owner_id_ = t_id;
- // If we already own the lock, then increment the nesting level
- // and return.
- else if (ACE_OS::thr_equal (t_id, m->owner_id_) == 0)
- {
- // Wait until the nesting level has dropped to zero, at
- // which point we can acquire the lock.
- while (m->nesting_level_ > 0)
- ACE_OS::cond_wait (&m->lock_available_,
- &m->nesting_mutex_);
-
- // At this point the nesting_mutex_ is held...
- m->owner_id_ = t_id;
- }
-
- // At this point, we can safely increment the nesting_level_ no
- // matter how we got here!
- m->nesting_level_++;
- }
-
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- ACE_OS::thread_mutex_unlock (&m->nesting_mutex_);
- }
- return result;
-#endif /* ACE_HAS_RECURSIVE_MUTEXES */
-#else
- ACE_UNUSED_ARG (m);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::recursive_mutex_trylock (ACE_recursive_thread_mutex_t *m)
-{
-#if defined (ACE_HAS_THREADS)
-#if defined (ACE_HAS_RECURSIVE_MUTEXES)
- return ACE_OS::thread_mutex_trylock (m);
-#else
- ACE_thread_t t_id = ACE_OS::thr_self ();
- int result = 0;
-
- // Acquire the guard.
- if (ACE_OS::thread_mutex_lock (&m->nesting_mutex_) == -1)
- result = -1;
- else
- {
- // If there's no contention, just grab the lock immediately.
- if (m->nesting_level_ == 0)
- {
- m->owner_id_ = t_id;
- m->nesting_level_ = 1;
- }
- // If we already own the lock, then increment the nesting level
- // and proceed.
- else if (ACE_OS::thr_equal (t_id, m->owner_id_))
- m->nesting_level_++;
- else
- {
- errno = EBUSY;
- result = -1;
- }
- }
-
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- ACE_OS::thread_mutex_unlock (&m->nesting_mutex_);
- }
- return result;
-#endif /* ACE_HAS_RECURSIVE_MUTEXES */
-#else
- ACE_UNUSED_ARG (m);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::recursive_mutex_unlock (ACE_recursive_thread_mutex_t *m)
-{
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_RECURSIVE_MUTEXES)
- return ACE_OS::thread_mutex_unlock (m);
-# else
- ACE_OS_TRACE ("ACE_OS::recursive_mutex_unlock");
-# if !defined (ACE_NDEBUG)
- ACE_thread_t t_id = ACE_OS::thr_self ();
-# endif /* ACE_NDEBUG */
- int result = 0;
-
- if (ACE_OS::thread_mutex_lock (&m->nesting_mutex_) == -1)
- result = -1;
- else
- {
-# if !defined (ACE_NDEBUG)
- if (m->nesting_level_ == 0
- || ACE_OS::thr_equal (t_id, m->owner_id_) == 0)
- {
- errno = EINVAL;
- result = -1;
- }
- else
-# endif /* ACE_NDEBUG */
- {
- m->nesting_level_--;
- if (m->nesting_level_ == 0)
- {
- // This may not be strictly necessary, but it does put
- // the mutex into a known state...
- m->owner_id_ = ACE_OS::NULL_thread;
-
- // Inform a waiter that the lock is free.
- if (ACE_OS::cond_signal (&m->lock_available_) == -1)
- result = -1;
- }
- }
- }
-
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- ACE_OS::thread_mutex_unlock (&m->nesting_mutex_);
- }
- return result;
-# endif /* ACE_HAS_RECURSIVE_MUTEXES */
-#else
- ACE_UNUSED_ARG (m);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-// This method is used to prepare the recursive mutex for releasing
-// when waiting on a condition variable. If the platform doesn't have
-// native recursive mutex and condition variable support, then ACE needs
-// to save the recursion state around the wait and also ensure that the
-// wait and lock release are atomic. recursive_mutex_cond_relock()
-// is the inverse of this method.
-ACE_INLINE int
-ACE_OS::recursive_mutex_cond_unlock (ACE_recursive_thread_mutex_t *m,
- ACE_recursive_mutex_state &state)
-{
-#if defined (ACE_HAS_THREADS)
- ACE_OS_TRACE ("ACE_OS::recursive_mutex_cond_unlock");
-# if defined (ACE_HAS_RECURSIVE_MUTEXES)
- // Windows need special handling since it has recursive mutexes, but
- // does not integrate them into a condition variable.
-# if defined (ACE_WIN32)
- // For Windows, the OS takes care of the mutex and its recursion. We just
- // need to release the lock one fewer times than this thread has acquired
- // it. Remember how many times, and reacquire it that many more times when
- // the condition is signaled.
- state.relock_count_ = 0;
- while (m->LockCount > 0
-# if !defined (ACE_HAS_WINCE) /* WinCE doesn't have RecursionCount */
- && m->RecursionCount > 1
-# endif
- )
- {
- // This may fail if the current thread doesn't own the mutex. If it
- // does fail, it'll be on the first try, so don't worry about resetting
- // the state.
- if (ACE_OS::recursive_mutex_unlock (m) == -1)
- return -1;
- ++state.relock_count_;
- }
-# else /* not ACE_WIN32 */
- // prevent warnings for unused variables
- ACE_UNUSED_ARG (state);
- ACE_UNUSED_ARG (m);
-# endif /* ACE_WIN32 */
- return 0;
-# else /* ACE_HAS_RECURSIVE_MUTEXES */
- // For platforms without recursive mutexes, we obtain the nesting mutex
- // to gain control over the mutex internals. Then set the internals to say
- // the mutex is available. If there are waiters, signal the condition
- // to notify them (this is mostly like the recursive_mutex_unlock() method).
- // Then, return with the nesting mutex still held. The condition wait
- // will release it atomically, allowing mutex waiters to continue.
- // Note that this arrangement relies on the fact that on return from
- // the condition wait, this thread will again own the nesting mutex
- // and can either set the mutex internals directly or get in line for
- // the mutex... this part is handled in recursive_mutex_cond_relock().
- if (ACE_OS::thread_mutex_lock (&m->nesting_mutex_) == -1)
- return -1;
-
-# if !defined (ACE_NDEBUG)
- if (m->nesting_level_ == 0
- || ACE_OS::thr_equal (ACE_OS::thr_self (), m->owner_id_) == 0)
- {
- ACE_OS::thread_mutex_unlock (&m->nesting_mutex_);
- errno = EINVAL;
- return -1;
- }
-# endif /* ACE_NDEBUG */
-
- // To make error recovery a bit easier, signal the condition now. Any
- // waiter won't regain control until the mutex is released, which won't
- // be until the caller returns and does the wait on the condition.
- if (ACE_OS::cond_signal (&m->lock_available_) == -1)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- ACE_OS::thread_mutex_unlock (&m->nesting_mutex_);
- return -1;
- }
-
- // Ok, the nesting_mutex_ lock is still held, the condition has been
- // signaled... reset the nesting info and return _WITH_ the lock
- // held. The lock will be released when the condition waits, in the
- // caller.
- state.nesting_level_ = m->nesting_level_;
- state.owner_id_ = m->owner_id_;
- m->nesting_level_ = 0;
- m->owner_id_ = ACE_OS::NULL_thread;
- return 0;
-# endif /* ACE_HAS_RECURSIVE_MUTEXES */
-#else
- ACE_UNUSED_ARG (m);
- ACE_UNUSED_ARG (state);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-
-// This method is called after waiting on a condition variable when a
-// recursive mutex must be reacquired. If the platform doesn't natively
-// integrate recursive mutexes and condition variables, it's taken care
-// of here (inverse of ACE_OS::recursive_mutex_cond_unlock).
-ACE_INLINE void
-ACE_OS::recursive_mutex_cond_relock (ACE_recursive_thread_mutex_t *m,
- ACE_recursive_mutex_state &state)
-{
-#if defined (ACE_HAS_THREADS)
- ACE_OS_TRACE ("ACE_OS::recursive_mutex_cond_relock");
-# if defined (ACE_HAS_RECURSIVE_MUTEXES)
- // Windows need special handling since it has recursive mutexes, but
- // does not integrate them into a condition variable.
- // On entry, the OS has already reacquired the lock for us. Just
- // reacquire it the proper number of times so the recursion is the same as
- // before waiting on the condition.
-# if defined (ACE_WIN32)
- while (state.relock_count_ > 0)
- {
- ACE_OS::recursive_mutex_lock (m);
- --state.relock_count_;
- }
- return;
-# else /* not ACE_WIN32 */
- // prevent warnings for unused variables
- ACE_UNUSED_ARG (state);
- ACE_UNUSED_ARG (m);
-
-# endif /* ACE_WIN32 */
-# else
- // Without recursive mutex support, it's somewhat trickier. On entry,
- // the current thread holds the nesting_mutex_, but another thread may
- // still be holding the ACE_recursive_mutex_t. If so, mimic the code
- // in ACE_OS::recursive_mutex_lock that waits to acquire the mutex.
- // After acquiring it, restore the nesting counts and release the
- // nesting mutex. This will restore the conditions to what they were
- // before calling ACE_OS::recursive_mutex_cond_unlock().
- while (m->nesting_level_ > 0)
- ACE_OS::cond_wait (&m->lock_available_, &m->nesting_mutex_);
-
- // At this point, we still have nesting_mutex_ and the mutex is free.
- m->nesting_level_ = state.nesting_level_;
- m->owner_id_ = state.owner_id_;
- ACE_OS::thread_mutex_unlock (&m->nesting_mutex_);
- return;
-# endif /* ACE_HAS_RECURSIVE_MUTEXES */
-#else
- ACE_UNUSED_ARG (m);
- ACE_UNUSED_ARG (state);
- return;
-#endif /* ACE_HAS_THREADS */
-}
-
-
-ACE_INLINE int
-ACE_OS::sema_destroy (ACE_sema_t *s)
-{
- ACE_OS_TRACE ("ACE_OS::sema_destroy");
-# if defined (ACE_HAS_POSIX_SEM)
- int result;
-# if defined (ACE_LACKS_NAMED_POSIX_SEM)
- if (s->name_)
- {
- // Only destroy the semaphore if we're the ones who
- // initialized it.
- ACE_OSCALL (::sem_destroy (s->sema_),int, -1, result);
- ACE_OS::shm_unlink (s->name_);
- delete s->name_;
- return result;
- }
-# else
- if (s->name_)
- {
- ACE_OSCALL (::sem_unlink (s->name_), int, -1, result);
- ACE_OS::free ((void *) s->name_);
- ACE_OSCALL_RETURN (::sem_close (s->sema_), int, -1);
- }
-# endif /* ACE_LACKS_NAMED_POSIX_SEM */
- else
- {
- ACE_OSCALL (::sem_destroy (s->sema_), int, -1, result);
-# if defined (ACE_LACKS_NAMED_POSIX_SEM)
- if (s->new_sema_ != 0)
-# endif /* ACE_LACKS_NAMED_POSIX_SEM */
- delete s->sema_;
- s->sema_ = 0;
- return result;
- }
-# elif defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_destroy (s), ace_result_), int, -1);
-# elif defined (ACE_HAS_PTHREADS)
- int r1 = ACE_OS::mutex_destroy (&s->lock_);
- int r2 = ACE_OS::cond_destroy (&s->count_nonzero_);
- return r1 != 0 || r2 != 0 ? -1 : 0;
-# elif defined (ACE_HAS_WTHREADS)
-# if !defined (ACE_USES_WINCE_SEMA_SIMULATION)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CloseHandle (*s), ace_result_), int, -1);
-# else /* ACE_USES_WINCE_SEMA_SIMULATION */
- // Free up underlying objects of the simulated semaphore.
- int r1 = ACE_OS::thread_mutex_destroy (&s->lock_);
- int r2 = ACE_OS::event_destroy (&s->count_nonzero_);
- return r1 != 0 || r2 != 0 ? -1 : 0;
-# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
-# elif defined (ACE_PSOS)
- int result;
- ACE_OSCALL (ACE_ADAPT_RETVAL (::sm_delete (s->sema_), result), int, -1, result);
- s->sema_ = 0;
- return result;
-# elif defined (VXWORKS)
- int result;
- ACE_OSCALL (::semDelete (s->sema_), int, -1, result);
- s->sema_ = 0;
- return result;
-# endif /* ACE_HAS_STHREADS */
-# else
- ACE_UNUSED_ARG (s);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_POSIX_SEM */
-}
-
-// NOTE: The following four function definitions must appear before
-// ACE_OS::sema_init ().
-
-ACE_INLINE int
-ACE_OS::close (ACE_HANDLE handle)
-{
- ACE_OS_TRACE ("ACE_OS::close");
-#if defined (ACE_WIN32)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CloseHandle (handle), ace_result_), int, -1);
-#elif defined (ACE_PSOS) && ! defined (ACE_PSOS_LACKS_PHILE)
- u_long result = ::close_f (handle);
- if (result != 0)
- {
- errno = result;
- return ACE_static_cast (int, -1);
- }
- return ACE_static_cast (int, 0);
-#else
- ACE_OSCALL_RETURN (::close (handle), int, -1);
-#endif /* ACE_WIN32 */
-}
-
-// This function returns the number of bytes in the file referenced by
-// FD.
-
-ACE_INLINE long
-ACE_OS::filesize (ACE_HANDLE handle)
-{
- ACE_OS_TRACE ("ACE_OS::filesize");
-#if defined (ACE_WIN32)
- ACE_WIN32CALL_RETURN (::GetFileSize (handle, 0), long, -1);
-#else /* !ACE_WIN32 */
- struct stat sb;
- return ACE_OS::fstat (handle, &sb) == -1 ? -1 : (long) sb.st_size;
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::ftruncate (ACE_HANDLE handle, off_t offset)
-{
- ACE_OS_TRACE ("ACE_OS::ftruncate");
-#if defined (ACE_WIN32)
- if (::SetFilePointer (handle, offset, 0, FILE_BEGIN) != (unsigned) -1)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::SetEndOfFile (handle), ace_result_), int, -1);
- else
- ACE_FAIL_RETURN (-1);
- /* NOTREACHED */
-#elif defined (ACE_PSOS_LACKS_PHILE)
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (offset);
- ACE_NOTSUP_RETURN (-1);
-#elif defined (ACE_PSOS)
- ACE_OSCALL_RETURN (::ftruncate_f (handle, offset), int, -1);
-#else
- ACE_OSCALL_RETURN (::ftruncate (handle, offset), int, -1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE void *
-ACE_OS::mmap (void *addr,
- size_t len,
- int prot,
- int flags,
- ACE_HANDLE file_handle,
- off_t off,
- ACE_HANDLE *file_mapping,
- LPSECURITY_ATTRIBUTES sa,
- const ACE_TCHAR *file_mapping_name)
-{
- ACE_OS_TRACE ("ACE_OS::mmap");
-#if !defined (ACE_WIN32) || defined (ACE_HAS_PHARLAP)
- ACE_UNUSED_ARG (file_mapping_name);
-#endif /* !defined (ACE_WIN32) || defined (ACE_HAS_PHARLAP) */
-
-#if defined (ACE_WIN32) && !defined (ACE_HAS_PHARLAP)
-
-# if defined(ACE_HAS_WINCE)
- ACE_UNUSED_ARG (addr);
- if (ACE_BIT_ENABLED (flags, MAP_FIXED)) // not supported
- {
- errno = EINVAL;
- return MAP_FAILED;
- }
-# else
- if (!ACE_BIT_ENABLED (flags, MAP_FIXED))
- addr = 0;
- else if (addr == 0) // can not map to address 0
- {
- errno = EINVAL;
- return MAP_FAILED;
- }
-# endif
-
- int nt_flags = 0;
- ACE_HANDLE local_handle = ACE_INVALID_HANDLE;
-
- // Ensure that file_mapping is non-zero.
- if (file_mapping == 0)
- file_mapping = &local_handle;
-
- if (ACE_BIT_ENABLED (flags, MAP_PRIVATE))
- {
-# if !defined(ACE_HAS_WINCE)
- prot = PAGE_WRITECOPY;
-# endif // ACE_HAS_WINCE
- nt_flags = FILE_MAP_COPY;
- }
- else if (ACE_BIT_ENABLED (flags, MAP_SHARED))
- {
- if (ACE_BIT_ENABLED (prot, PAGE_READONLY))
- nt_flags = FILE_MAP_READ;
- if (ACE_BIT_ENABLED (prot, PAGE_READWRITE))
- nt_flags = FILE_MAP_WRITE;
- }
-
- // Only create a new handle if we didn't have a valid one passed in.
- if (*file_mapping == ACE_INVALID_HANDLE)
- {
-# if !defined(ACE_HAS_WINCE) && (!defined (ACE_HAS_WINNT4) || (ACE_HAS_WINNT4 == 0))
- int try_create = 1;
- if ((file_mapping_name != 0) && (*file_mapping_name != 0))
- {
- // On Win9x, we first try to OpenFileMapping to
- // file_mapping_name. Only if there is no mapping object
- // with that name, and the desired name is valid, do we try
- // CreateFileMapping.
-
- *file_mapping = ACE_TEXT_OpenFileMapping (nt_flags,
- 0,
- file_mapping_name);
- if (*file_mapping != 0
- || (::GetLastError () == ERROR_INVALID_NAME
- && ::GetLastError () == ERROR_FILE_NOT_FOUND))
- try_create = 0;
- }
-
- if (try_create)
-# endif /* !ACE_HAS_WINCE && (ACE_HAS_WINNT4 || ACE_HAS_WINNT4 == 0) */
- {
- const LPSECURITY_ATTRIBUTES attr =
- ACE_OS::default_win32_security_attributes (sa);
-
- *file_mapping = ACE_TEXT_CreateFileMapping (file_handle,
- attr,
- prot,
- 0,
- 0,
- file_mapping_name);
- }
- }
-
- if (*file_mapping == 0)
- ACE_FAIL_RETURN (MAP_FAILED);
-
-# if defined (ACE_OS_EXTRA_MMAP_FLAGS)
- nt_flags |= ACE_OS_EXTRA_MMAP_FLAGS;
-# endif /* ACE_OS_EXTRA_MMAP_FLAGS */
-
-# if !defined (ACE_HAS_WINCE)
- void *addr_mapping = ::MapViewOfFileEx (*file_mapping,
- nt_flags,
- 0,
- off,
- len,
- addr);
-# else
- void *addr_mapping = ::MapViewOfFile (*file_mapping,
- nt_flags,
- 0,
- off,
- len);
-# endif /* ! ACE_HAS_WINCE */
-
- // Only close this down if we used the temporary.
- if (file_mapping == &local_handle)
- ::CloseHandle (*file_mapping);
-
- if (addr_mapping == 0)
- ACE_FAIL_RETURN (MAP_FAILED);
- else
- return addr_mapping;
-#elif defined (__Lynx__)
- // The LynxOS 2.5.0 mmap doesn't allow operations on plain
- // file descriptors. So, create a shm object and use that.
- ACE_UNUSED_ARG (sa);
-
- char name [128];
- sprintf (name, "%d", file_handle);
-
- // Assumes that this was called by ACE_Mem_Map, so &file_mapping !=
- // 0. Otherwise, we don't support the incomplete LynxOS mmap
- // implementation. We do support it by creating a hidden shared
- // memory object, and using that for the mapping.
- int shm_handle;
- if (! file_mapping)
- file_mapping = &shm_handle;
- if ((*file_mapping = ::shm_open (name,
- O_RDWR | O_CREAT | O_TRUNC,
- ACE_DEFAULT_FILE_PERMS)) == -1)
- return MAP_FAILED;
- else
- {
- // The size of the shared memory object must be explicitly set on LynxOS.
- const off_t filesize = ACE_OS::filesize (file_handle);
- if (::ftruncate (*file_mapping, filesize) == -1)
- return MAP_FAILED;
- else
- {
-# if defined (ACE_OS_EXTRA_MMAP_FLAGS)
- flags |= ACE_OS_EXTRA_MMAP_FLAGS;
-# endif /* ACE_OS_EXTRA_MMAP_FLAGS */
- char *map = (char *) ::mmap ((ACE_MMAP_TYPE) addr,
- len,
- prot,
- flags,
- *file_mapping,
- off);
- if (map == MAP_FAILED)
- return MAP_FAILED;
- else
- // Finally, copy the file contents to the shared memory object.
- return ::read (file_handle, map, (int) filesize) == filesize
- ? map
- : MAP_FAILED;
- }
- }
-#elif !defined (ACE_LACKS_MMAP)
- ACE_UNUSED_ARG (sa);
-
-# if defined (ACE_OS_EXTRA_MMAP_FLAGS)
- flags |= ACE_OS_EXTRA_MMAP_FLAGS;
-# endif /* ACE_OS_EXTRA_MMAP_FLAGS */
- ACE_UNUSED_ARG (file_mapping);
- ACE_OSCALL_RETURN ((void *) ::mmap ((ACE_MMAP_TYPE) addr,
- len,
- prot,
- flags,
- file_handle,
- off),
- void *, MAP_FAILED);
-#else
- ACE_UNUSED_ARG (addr);
- ACE_UNUSED_ARG (len);
- ACE_UNUSED_ARG (prot);
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (file_handle);
- ACE_UNUSED_ARG (off);
- ACE_UNUSED_ARG (file_mapping);
- ACE_UNUSED_ARG (sa);
- ACE_NOTSUP_RETURN (MAP_FAILED);
-#endif /* ACE_WIN32 && !ACE_HAS_PHARLAP */
-}
-
-// NOTE: The previous four function definitions must appear before
-// ACE_OS::sema_init ().
-
-ACE_INLINE int
-ACE_OS::sema_init (ACE_sema_t *s,
- u_int count,
- int type,
- const char *name,
- void *arg,
- int max,
- LPSECURITY_ATTRIBUTES sa)
-{
- ACE_OS_TRACE ("ACE_OS::sema_init");
-#if defined (ACE_HAS_POSIX_SEM)
- ACE_UNUSED_ARG (arg);
- ACE_UNUSED_ARG (max);
- ACE_UNUSED_ARG (sa);
-
- s->name_ = 0;
-
-# if defined (ACE_LACKS_NAMED_POSIX_SEM)
- s->new_sema_ = 0;
- if (type == USYNC_PROCESS)
- {
- // Let's see if it already exists.
- ACE_HANDLE fd = ACE_OS::shm_open (name,
- O_RDWR | O_CREAT | O_EXCL,
- ACE_DEFAULT_FILE_PERMS);
- if (fd == ACE_INVALID_HANDLE)
- {
- if (errno == EEXIST)
- fd = ACE_OS::shm_open (name,
- O_RDWR | O_CREAT,
- ACE_DEFAULT_FILE_PERMS);
- else
- return -1;
- }
- else
- {
- // We own this shared memory object! Let's set its
- // size.
- if (ACE_OS::ftruncate (fd,
- sizeof (ACE_sema_t)) == -1)
- return -1;
- s->name_ = ACE_OS::strdup (name);
- if (s->name_ == 0)
- return -1;
- }
- if (fd == -1)
- return -1;
-
- s->sema_ = (sem_t *)
- ACE_OS::mmap (0,
- sizeof (ACE_sema_t),
- PROT_RDWR,
- MAP_SHARED,
- fd,
- 0);
- ACE_OS::close (fd);
- if (s->sema_ == (sem_t *) MAP_FAILED)
- return -1;
- if (s->name_
- // @@ According UNIX Network Programming V2 by Stevens,
- // sem_init() is currently not required to return zero on
- // success, but it *does* return -1 upon failure. For
- // this reason, check for failure by comparing to -1,
- // instead of checking for success by comparing to zero.
- // -Ossama
- // Only initialize it if we're the one who created it.
- && ::sem_init (s->sema_, type == USYNC_PROCESS, count) == -1)
- return -1;
- return 0;
- }
-# else
- if (name)
- {
-# if defined (sun) || defined (HPUX)
- // Solaris and HP-UX require the name to start with a slash. Solaris
- // further requires that there be no other slashes than the first.
- const char *last_slash = ACE_OS::strrchr (name, '/');
- char name2[MAXPATHLEN];
- if (0 == last_slash)
- {
- ACE_OS::strcpy (name2, "/");
- ACE_OS::strcat (name2, name);
- name = name2;
- }
-# if defined (sun)
- else
- name = last_slash; // Chop off chars preceding last slash
-# endif /* sun */
-# endif /* sun || HPUX */
-
- ACE_ALLOCATOR_RETURN (s->name_,
- ACE_OS::strdup (name),
- -1);
- s->sema_ = ::sem_open (s->name_,
- O_CREAT,
- ACE_DEFAULT_FILE_PERMS,
- count);
- if (s->sema_ == (sem_t *) SEM_FAILED)
- return -1;
- else
- return 0;
- }
-# endif /* ACE_LACKS_NAMED_POSIX_SEM */
- else
- {
- ACE_NEW_RETURN (s->sema_,
- sem_t,
- -1);
-# if defined (ACE_LACKS_NAMED_POSIX_SEM)
- s->new_sema_ = 1;
-# endif /* ACE_LACKS_NAMED_POSIX_SEM */
- ACE_OSCALL_RETURN (::sem_init (s->sema_,
- type != USYNC_THREAD,
- count), int, -1);
- }
-#elif defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_STHREADS)
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (max);
- ACE_UNUSED_ARG (sa);
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_init (s, count, type, arg), ace_result_),
- int, -1);
-# elif defined (ACE_HAS_PTHREADS)
- ACE_UNUSED_ARG (max);
- ACE_UNUSED_ARG (sa);
- int result = -1;
-
- if (ACE_OS::mutex_init (&s->lock_, type, name,
- (ACE_mutexattr_t *) arg) == 0
- && ACE_OS::cond_init (&s->count_nonzero_, type, name, arg) == 0
- && ACE_OS::mutex_lock (&s->lock_) == 0)
- {
- s->count_ = count;
- s->waiters_ = 0;
-
- if (ACE_OS::mutex_unlock (&s->lock_) == 0)
- result = 0;
- }
-
- if (result == -1)
- {
- ACE_OS::mutex_destroy (&s->lock_);
- ACE_OS::cond_destroy (&s->count_nonzero_);
- }
- return result;
-# elif defined (ACE_HAS_WTHREADS)
-# if ! defined (ACE_USES_WINCE_SEMA_SIMULATION)
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (arg);
- // Create the semaphore with its value initialized to <count> and
- // its maximum value initialized to <max>.
- *s =
- ::CreateSemaphoreA (ACE_OS::default_win32_security_attributes (sa),
- count,
- max,
- name);
-
- if (*s == 0)
- ACE_FAIL_RETURN (-1);
- /* NOTREACHED */
- else
- return 0;
-# else /* ACE_USES_WINCE_SEMA_SIMULATION */
- int result = -1;
-
- // Initialize internal object for semaphore simulation.
- // Grab the lock as soon as possible when we initializing
- // the semaphore count. Notice that we initialize the
- // event object as "manually reset" so we can amortize the
- // cost for singling/reseting the event.
- // @@ I changed the mutex type to thread_mutex. Notice that this
- // is basically a CriticalSection object and doesn't not has
- // any security attribute whatsoever. However, since this
- // semaphore implementation only works within a process, there
- // shouldn't any security issue at all.
- if (ACE_OS::thread_mutex_init (&s->lock_, type, name, (ACE_mutexattr_t *)arg) == 0
- && ACE_OS::event_init (&s->count_nonzero_, 1,
- count > 0, type, name, arg, sa) == 0
- && ACE_OS::thread_mutex_lock (&s->lock_) == 0)
- {
- s->count_ = count;
-
- if (ACE_OS::thread_mutex_unlock (&s->lock_) == 0)
- result = 0;
- }
-
- // Destroy the internal objects if we didn't initialize
- // either of them successfully. Don't bother to check
- // for errors.
- if (result == -1)
- {
- ACE_OS::thread_mutex_destroy (&s->lock_);
- ACE_OS::event_destroy (&s->count_nonzero_);
- }
- return result;
-# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
-# elif defined (ACE_PSOS)
- u_long result;
- ACE_OS::memcpy (s->name_, name, sizeof (s->name_));
- // default semaphore creation flags to priority based, global across nodes
- u_long flags = 0;
- flags |= (type & SM_LOCAL) ? SM_LOCAL : SM_GLOBAL;
- flags |= (type & SM_FIFO) ? SM_FIFO : SM_PRIOR;
- result = ::sm_create (s->name_, count, flags, &(s->sema_));
- return (result == 0) ? 0 : -1;
-# elif defined (VXWORKS)
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
- ACE_UNUSED_ARG (max);
- ACE_UNUSED_ARG (sa);
- s->name_ = 0;
- s->sema_ = ::semCCreate (type, count);
- return s->sema_ ? 0 : -1;
-# endif /* ACE_HAS_STHREADS */
-#else
- ACE_UNUSED_ARG (s);
- ACE_UNUSED_ARG (count);
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
- ACE_UNUSED_ARG (max);
- ACE_UNUSED_ARG (sa);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_POSIX_SEM */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_OS::sema_init (ACE_sema_t *s,
- u_int count,
- int type,
- const wchar_t *name,
- void *arg,
- int max,
- LPSECURITY_ATTRIBUTES sa)
-{
-# if defined (ACE_HAS_WTHREADS)
-# if ! defined (ACE_USES_WINCE_SEMA_SIMULATION)
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (arg);
- // Create the semaphore with its value initialized to <count> and
- // its maximum value initialized to <max>.
- *s =
- ::CreateSemaphoreW (ACE_OS::default_win32_security_attributes (sa),
- count,
- max,
- name);
-
- if (*s == 0)
- ACE_FAIL_RETURN (-1);
- /* NOTREACHED */
- else
- return 0;
-# else /* ACE_USES_WINCE_SEMA_SIMULATION */
- int result = -1;
-
- // Initialize internal object for semaphore simulation.
- // Grab the lock as soon as possible when we initializing
- // the semaphore count. Notice that we initialize the
- // event object as "manually reset" so we can amortize the
- // cost for singling/reseting the event.
- // @@ I changed the mutex type to thread_mutex. Notice that this
- // is basically a CriticalSection object and doesn't not has
- // any security attribute whatsoever. However, since this
- // semaphore implementation only works within a process, there
- // shouldn't any security issue at all.
- if (ACE_OS::thread_mutex_init (&s->lock_, type, name, (ACE_mutexattr_t *)arg) == 0
- && ACE_OS::event_init (&s->count_nonzero_, 1,
- count > 0, type, name, arg, sa) == 0
- && ACE_OS::thread_mutex_lock (&s->lock_) == 0)
- {
- s->count_ = count;
-
- if (ACE_OS::thread_mutex_unlock (&s->lock_) == 0)
- result = 0;
- }
-
- // Destroy the internal objects if we didn't initialize
- // either of them successfully. Don't bother to check
- // for errors.
- if (result == -1)
- {
- ACE_OS::thread_mutex_destroy (&s->lock_);
- ACE_OS::event_destroy (&s->count_nonzero_);
- }
- return result;
-# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
-# else /* ACE_HAS_WTHREADS */
- // Just call the normal char version.
- return ACE_OS::sema_init (s, count, type, ACE_Wide_To_Ascii (name).char_rep (), arg, max, sa);
-# endif /* ACE_HAS_WTHREADS */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE int
-ACE_OS::sema_post (ACE_sema_t *s)
-{
- ACE_OS_TRACE ("ACE_OS::sema_post");
-# if defined (ACE_HAS_POSIX_SEM)
- ACE_OSCALL_RETURN (::sem_post (s->sema_), int, -1);
-# elif defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_post (s), ace_result_), int, -1);
-# elif defined (ACE_HAS_PTHREADS)
- int result = -1;
-
- if (ACE_OS::mutex_lock (&s->lock_) == 0)
- {
- // Always allow a waiter to continue if there is one.
- if (s->waiters_ > 0)
- result = ACE_OS::cond_signal (&s->count_nonzero_);
- else
- result = 0;
-
- s->count_++;
- ACE_OS::mutex_unlock (&s->lock_);
- }
- return result;
-# elif defined (ACE_HAS_WTHREADS)
-# if !defined (ACE_USES_WINCE_SEMA_SIMULATION)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::ReleaseSemaphore (*s, 1, 0),
- ace_result_),
- int, -1);
-# else /* ACE_USES_WINCE_SEMA_SIMULATION */
- int result = -1;
-
- // Since we are simulating semaphores, we need to update semaphore
- // count manually. Grab the lock to prevent race condition first.
- if (ACE_OS::thread_mutex_lock (&s->lock_) == 0)
- {
- // Check the original state of event object. Single the event
- // object in transition from semaphore not available to
- // semaphore available.
- if (s->count_++ <= 0)
- result = ACE_OS::event_signal (&s->count_nonzero_);
- else
- result = 0;
-
- ACE_OS::thread_mutex_unlock (&s->lock_);
- }
- return result;
-# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
-# elif defined (ACE_PSOS)
- int result;
- ACE_OSCALL (ACE_ADAPT_RETVAL (::sm_v (s->sema_), result), int, -1, result);
- return result;
-# elif defined (VXWORKS)
- ACE_OSCALL_RETURN (::semGive (s->sema_), int, -1);
-# endif /* ACE_HAS_STHREADS */
-# else
- ACE_UNUSED_ARG (s);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_POSIX_SEM */
-}
-
-ACE_INLINE int
-ACE_OS::sema_post (ACE_sema_t *s, u_int release_count)
-{
-#if defined (ACE_WIN32) && !defined (ACE_USES_WINCE_SEMA_SIMULATION)
- // Win32 supports this natively.
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::ReleaseSemaphore (*s, release_count, 0),
- ace_result_), int, -1);
-#else
- // On POSIX platforms we need to emulate this ourselves.
- // @@ We can optimize on this implementation. However,
- // the semaphore promitive on Win32 doesn't allow one
- // to increase a semaphore to more than the count it was
- // first initialized. Posix and solaris don't seem to have
- // this restriction. Should we impose the restriction in
- // our semaphore simulation?
- for (size_t i = 0; i < release_count; i++)
- if (ACE_OS::sema_post (s) == -1)
- return -1;
-
- return 0;
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::sema_trywait (ACE_sema_t *s)
-{
- ACE_OS_TRACE ("ACE_OS::sema_trywait");
-# if defined (ACE_HAS_POSIX_SEM)
- // POSIX semaphores set errno to EAGAIN if trywait fails
- ACE_OSCALL_RETURN (::sem_trywait (s->sema_), int, -1);
-# elif defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_STHREADS)
- // STHREADS semaphores set errno to EBUSY if trywait fails.
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_trywait (s),
- ace_result_),
- int, -1);
-# elif defined (ACE_HAS_PTHREADS)
-
- int result = -1;
-
- if (ACE_OS::mutex_lock (&s->lock_) == 0)
- {
- if (s->count_ > 0)
- {
- --s->count_;
- result = 0;
- }
- else
- errno = EBUSY;
-
- ACE_OS::mutex_unlock (&s->lock_);
- }
- return result;
-# elif defined (ACE_HAS_WTHREADS)
-# if !defined (ACE_USES_WINCE_SEMA_SIMULATION)
- int result = ::WaitForSingleObject (*s, 0);
-
- if (result == WAIT_OBJECT_0)
- return 0;
- else
- {
- if (result == WAIT_TIMEOUT)
- errno = EBUSY;
- else
- ACE_OS::set_errno_to_last_error ();
- // This is a hack, we need to find an appropriate mapping...
- return -1;
- }
-# else /* ACE_USES_WINCE_SEMA_SIMULATION */
- // Check the status of semaphore first. Return immediately
- // if the semaphore is not available and avoid grabing the
- // lock.
- int result = ::WaitForSingleObject (s->count_nonzero_, 0);
-
- if (result == WAIT_OBJECT_0) // Proceed when it is available.
- {
- ACE_OS::thread_mutex_lock (&s->lock_);
-
- // Need to double check if the semaphore is still available.
- // The double checking scheme will slightly affect the
- // efficiency if most of the time semaphores are not blocked.
- result = ::WaitForSingleObject (s->count_nonzero_, 0);
- if (result == WAIT_OBJECT_0)
- {
- // Adjust the semaphore count. Only update the event
- // object status when the state changed.
- s->count_--;
- if (s->count_ <= 0)
- ACE_OS::event_reset (&s->count_nonzero_);
- result = 0;
- }
-
- ACE_OS::thread_mutex_unlock (&s->lock_);
- }
-
- // Translate error message to errno used by ACE.
- if (result == WAIT_TIMEOUT)
- errno = EBUSY;
- else
- ACE_OS::set_errno_to_last_error ();
- // This is taken from the hack above. ;)
- return -1;
-# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
-# elif defined (ACE_PSOS)
- switch (::sm_p (s->sema_, SM_NOWAIT, 0))
- {
- case 0:
- return 0;
- case ERR_NOSEM:
- errno = EBUSY;
- // intentional fall through
- default:
- return -1;
- }
-# elif defined (VXWORKS)
- if (::semTake (s->sema_, NO_WAIT) == ERROR)
- if (errno == S_objLib_OBJ_UNAVAILABLE)
- {
- // couldn't get the semaphore
- errno = EBUSY;
- return -1;
- }
- else
- // error
- return -1;
- else
- // got the semaphore
- return 0;
-# endif /* ACE_HAS_STHREADS */
-# else
- ACE_UNUSED_ARG (s);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_POSIX_SEM */
-}
-
-ACE_INLINE int
-ACE_OS::sema_wait (ACE_sema_t *s)
-{
- ACE_OS_TRACE ("ACE_OS::sema_wait");
-# if defined (ACE_HAS_POSIX_SEM)
- ACE_OSCALL_RETURN (::sem_wait (s->sema_), int, -1);
-# elif defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_wait (s), ace_result_), int, -1);
-# elif defined (ACE_HAS_PTHREADS)
- int result = 0;
-
- ACE_PTHREAD_CLEANUP_PUSH (&s->lock_);
-
- if (ACE_OS::mutex_lock (&s->lock_) != 0)
- result = -1;
- else
- {
- // Keep track of the number of waiters so that we can signal
- // them properly in <ACE_OS::sema_post>.
- s->waiters_++;
-
- // Wait until the semaphore count is > 0.
- while (s->count_ == 0)
- if (ACE_OS::cond_wait (&s->count_nonzero_,
- &s->lock_) == -1)
- {
- result = -2; // -2 means that we need to release the mutex.
- break;
- }
-
- --s->waiters_;
- }
-
- if (result == 0)
- --s->count_;
-
- if (result != -1)
- ACE_OS::mutex_unlock (&s->lock_);
- ACE_PTHREAD_CLEANUP_POP (0);
- return result < 0 ? -1 : result;
-
-# elif defined (ACE_HAS_WTHREADS)
-# if !defined (ACE_USES_WINCE_SEMA_SIMULATION)
- switch (::WaitForSingleObject (*s, INFINITE))
- {
- case WAIT_OBJECT_0:
- return 0;
- default:
- // This is a hack, we need to find an appropriate mapping...
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
- /* NOTREACHED */
-# else /* ACE_USES_WINCE_SEMA_SIMULATION */
- // Timed wait.
- int result = -1;
- for (;;)
- // Check if the semaphore is avialable or not and wait forever.
- // Don't bother to grab the lock if it is not available (to avoid
- // deadlock.)
- switch (::WaitForSingleObject (s->count_nonzero_, INFINITE))
- {
- case WAIT_OBJECT_0:
- ACE_OS::thread_mutex_lock (&s->lock_);
-
- // Need to double check if the semaphore is still available.
- // This time, we shouldn't wait at all.
- if (::WaitForSingleObject (s->count_nonzero_, 0) == WAIT_OBJECT_0)
- {
- // Decrease the internal counter. Only update the event
- // object's status when the state changed.
- s->count_--;
- if (s->count_ <= 0)
- ACE_OS::event_reset (&s->count_nonzero_);
- result = 0;
- }
-
- ACE_OS::thread_mutex_unlock (&s->lock_);
- // if we didn't get a hold on the semaphore, the result won't
- // be 0 and thus, we'll start from the beginning again.
- if (result == 0)
- return 0;
- break;
-
- default:
- // Since we wait indefinitely, anything other than
- // WAIT_OBJECT_O indicates an error.
- ACE_OS::set_errno_to_last_error ();
- // This is taken from the hack above. ;)
- return -1;
- }
- /* NOTREACHED */
-# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
-# elif defined (ACE_PSOS)
- int result;
- ACE_OSCALL (ACE_ADAPT_RETVAL (::sm_p (s->sema_, SM_WAIT, 0), result),
- int, -1, result);
- return result;
-# elif defined (VXWORKS)
- ACE_OSCALL_RETURN (::semTake (s->sema_, WAIT_FOREVER), int, -1);
-# endif /* ACE_HAS_STHREADS */
-# else
- ACE_UNUSED_ARG (s);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_POSIX_SEM */
-}
-
-ACE_INLINE int
-ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv)
-{
- ACE_OS_TRACE ("ACE_OS::sema_wait");
-# if defined (ACE_HAS_POSIX_SEM)
- ACE_UNUSED_ARG (s);
- ACE_UNUSED_ARG (tv);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_STHREADS)
- ACE_UNUSED_ARG (s);
- ACE_UNUSED_ARG (tv);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_HAS_PTHREADS)
- int result = 0;
- ACE_Errno_Guard error (errno);
-
- ACE_PTHREAD_CLEANUP_PUSH (&s->lock_);
-
- if (ACE_OS::mutex_lock (&s->lock_) != 0)
- result = -1;
- else
- {
- // Keep track of the number of waiters so that we can signal
- // them properly in <ACE_OS::sema_post>.
- s->waiters_++;
-
- // Wait until the semaphore count is > 0 or until we time out.
- while (s->count_ == 0)
- if (ACE_OS::cond_timedwait (&s->count_nonzero_,
- &s->lock_,
- &tv) == -1)
- {
- error = errno;
- result = -2; // -2 means that we need to release the mutex.
- break;
- }
-
- --s->waiters_;
- }
-
- if (result == 0)
- {
-# if defined (ACE_LACKS_COND_TIMEDWAIT_RESET)
- tv = ACE_OS::gettimeofday ();
-# endif /* ACE_LACKS_COND_TIMEDWAIT_RESET */
- --s->count_;
- }
-
- if (result != -1)
- ACE_OS::mutex_unlock (&s->lock_);
- ACE_PTHREAD_CLEANUP_POP (0);
- return result < 0 ? -1 : result;
-# elif defined (ACE_HAS_WTHREADS)
-# if !defined (ACE_USES_WINCE_SEMA_SIMULATION)
- int msec_timeout;
-
- if (tv.sec () == 0 && tv.usec () == 0)
- msec_timeout = 0; // Do a "poll."
- else
- {
- // Note that we must convert between absolute time (which is
- // passed as a parameter) and relative time (which is what
- // <WaitForSingleObjects> expects).
- ACE_Time_Value relative_time (tv - ACE_OS::gettimeofday ());
-
- // Watchout for situations where a context switch has caused the
- // current time to be > the timeout.
- if (relative_time < ACE_Time_Value::zero)
- msec_timeout = 0;
- else
- msec_timeout = relative_time.msec ();
- }
-
- switch (::WaitForSingleObject (*s, msec_timeout))
- {
- case WAIT_OBJECT_0:
- tv = ACE_OS::gettimeofday (); // Update time to when acquired
- return 0;
- case WAIT_TIMEOUT:
- errno = ETIME;
- return -1;
- default:
- // This is a hack, we need to find an appropriate mapping...
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
- /* NOTREACHED */
-# else /* ACE_USES_WINCE_SEMA_SIMULATION */
- // Note that in this mode, the acquire is done in two steps, and
- // we may get signaled but cannot grab the semaphore before
- // timeout. In that case, we'll need to restart the process with
- // updated timeout value.
-
- // <tv> is an absolute time
- ACE_Time_Value relative_time = tv - ACE_OS::gettimeofday ();
- int result = -1;
-
- // While we are not timeout yet.
- while (relative_time > ACE_Time_Value::zero)
- {
- // Wait for our turn to get the object.
- switch (::WaitForSingleObject (s->count_nonzero_, relative_time.msec ()))
- {
- case WAIT_OBJECT_0:
- ACE_OS::thread_mutex_lock (&s->lock_);
-
- // Need to double check if the semaphore is still available.
- // We can only do a "try lock" styled wait here to avoid
- // blocking threads that want to signal the semaphore.
- if (::WaitForSingleObject (s->count_nonzero_, 0) == WAIT_OBJECT_0)
- {
- // As before, only reset the object when the semaphore
- // is no longer available.
- s->count_--;
- if (s->count_ <= 0)
- ACE_OS::event_reset (&s->count_nonzero_);
- result = 0;
- }
-
- ACE_OS::thread_mutex_unlock (&s->lock_);
-
- // Only return when we successfully get the semaphore.
- if (result == 0)
- {
- tv = ACE_OS::gettimeofday (); // Update to time acquired
- return 0;
- }
- break;
-
- // We have timed out.
- case WAIT_TIMEOUT:
- errno = ETIME;
- return -1;
-
- // What?
- default:
- ACE_OS::set_errno_to_last_error ();
- // This is taken from the hack above. ;)
- return -1;
- };
-
- // Haven't been able to get the semaphore yet, update the
- // timeout value to reflect the remaining time we want to wait.
- relative_time = tv - ACE_OS::gettimeofday ();
- }
-
- // We have timed out.
- errno = ETIME;
- return -1;
-# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
-# elif defined (ACE_PSOS)
- // Note that we must convert between absolute time (which is
- // passed as a parameter) and relative time (which is what
- // the system call expects).
- ACE_Time_Value relative_time (tv - ACE_OS::gettimeofday ());
-
- u_long ticks = relative_time.sec() * KC_TICKS2SEC +
- relative_time.usec () * KC_TICKS2SEC /
- ACE_ONE_SECOND_IN_USECS;
- if(ticks == 0)
- ACE_OSCALL_RETURN (::sm_p (s->sema_, SM_NOWAIT, 0), int, -1); //no timeout
- else
- ACE_OSCALL_RETURN (::sm_p (s->sema_, SM_WAIT, ticks), int, -1);
-# elif defined (VXWORKS)
- // Note that we must convert between absolute time (which is
- // passed as a parameter) and relative time (which is what
- // the system call expects).
- ACE_Time_Value relative_time (tv - ACE_OS::gettimeofday ());
-
- int ticks_per_sec = ::sysClkRateGet ();
-
- int ticks = relative_time.sec() * ticks_per_sec +
- relative_time.usec () * ticks_per_sec / ACE_ONE_SECOND_IN_USECS;
- if (::semTake (s->sema_, ticks) == ERROR)
- {
- if (errno == S_objLib_OBJ_TIMEOUT)
- // Convert the VxWorks errno to one that's common for to ACE
- // platforms.
- errno = ETIME;
- else if (errno == S_objLib_OBJ_UNAVAILABLE)
- errno = EBUSY;
- return -1;
- }
- else
- {
- tv = ACE_OS::gettimeofday (); // Update to time acquired
- return 0;
- }
-# endif /* ACE_HAS_STHREADS */
-# else
- ACE_UNUSED_ARG (s);
- ACE_UNUSED_ARG (tv);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_POSIX_SEM */
-}
-
-ACE_INLINE int
-ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value *tv)
-{
- return tv == 0 ? ACE_OS::sema_wait (s) : ACE_OS::sema_wait (s, *tv);
-}
-
-ACE_INLINE int
-ACE_OS::rw_tryrdlock (ACE_rwlock_t *rw)
-{
- ACE_OS_TRACE ("ACE_OS::rw_tryrdlock");
-#if defined (ACE_HAS_THREADS)
-# if !defined (ACE_LACKS_RWLOCK_T) || defined (ACE_HAS_PTHREADS_UNIX98_EXT)
-# if defined (ACE_HAS_PTHREADS_UNIX98_EXT)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_rwlock_tryrdlock (rw),
- ace_result_),
- int, -1);
-# else /* Solaris */
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_tryrdlock (rw), ace_result_), int, -1);
-# endif /* ACE_HAS_PTHREADS_UNIX98_EXT */
-# else /* NT, POSIX, and VxWorks don't support this natively. */
- int result = -1;
-
- if (ACE_OS::mutex_lock (&rw->lock_) != -1)
- {
- ACE_Errno_Guard error (errno);
-
- if (rw->ref_count_ == -1 || rw->num_waiting_writers_ > 0)
- {
- error = EBUSY;
- result = -1;
- }
- else
- {
- rw->ref_count_++;
- result = 0;
- }
-
- ACE_OS::mutex_unlock (&rw->lock_);
- }
- return result;
-# endif /* ! ACE_LACKS_RWLOCK_T */
-#else
- ACE_UNUSED_ARG (rw);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::rw_trywrlock (ACE_rwlock_t *rw)
-{
- ACE_OS_TRACE ("ACE_OS::rw_trywrlock");
-#if defined (ACE_HAS_THREADS)
-# if !defined (ACE_LACKS_RWLOCK_T) || defined (ACE_HAS_PTHREADS_UNIX98_EXT)
-# if defined (ACE_HAS_PTHREADS_UNIX98_EXT)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_rwlock_trywrlock (rw),
- ace_result_),
- int, -1);
-# else /* Solaris */
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_trywrlock (rw), ace_result_), int, -1);
-# endif /* ACE_HAS_PTHREADS_UNIX98_EXT */
-# else /* NT, POSIX, and VxWorks don't support this natively. */
- int result = -1;
-
- if (ACE_OS::mutex_lock (&rw->lock_) != -1)
- {
- ACE_Errno_Guard error (errno);
-
- if (rw->ref_count_ != 0)
- {
- error = EBUSY;
- result = -1;
- }
- else
- {
- rw->ref_count_ = -1;
- result = 0;
- }
-
- ACE_OS::mutex_unlock (&rw->lock_);
- }
- return result;
-# endif /* ! ACE_LACKS_RWLOCK_T */
-#else
- ACE_UNUSED_ARG (rw);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::rw_rdlock (ACE_rwlock_t *rw)
-{
- ACE_OS_TRACE ("ACE_OS::rw_rdlock");
-#if defined (ACE_HAS_THREADS)
-# if !defined (ACE_LACKS_RWLOCK_T) || defined (ACE_HAS_PTHREADS_UNIX98_EXT)
-# if defined (ACE_HAS_PTHREADS_UNIX98_EXT)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_rwlock_rdlock (rw),
- ace_result_),
- int, -1);
-# else /* Solaris */
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_rdlock (rw), ace_result_), int, -1);
-# endif /* ACE_HAS_PTHREADS_UNIX98_EXT */
-# else /* NT, POSIX, and VxWorks don't support this natively. */
-# if defined (ACE_HAS_PTHREADS)
- ACE_PTHREAD_CLEANUP_PUSH (&rw->lock_);
-# endif /* ACE_HAS_PTHREADS */
- int result = 0;
- if (ACE_OS::mutex_lock (&rw->lock_) == -1)
- result = -1; // -1 means didn't get the mutex.
- else
- {
- // Give preference to writers who are waiting.
- while (rw->ref_count_ < 0 || rw->num_waiting_writers_ > 0)
- {
- rw->num_waiting_readers_++;
- if (ACE_OS::cond_wait (&rw->waiting_readers_, &rw->lock_) == -1)
- {
- result = -2; // -2 means that we need to release the mutex.
- break;
- }
- rw->num_waiting_readers_--;
- }
- }
- if (result == 0)
- rw->ref_count_++;
- if (result != -1)
- ACE_OS::mutex_unlock (&rw->lock_);
-# if defined (ACE_HAS_PTHREADS)
- ACE_PTHREAD_CLEANUP_POP (0);
-# endif /* defined (ACE_HAS_PTHREADS) */
- return 0;
-# endif /* ! ACE_LACKS_RWLOCK_T */
-#else
- ACE_UNUSED_ARG (rw);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::rw_wrlock (ACE_rwlock_t *rw)
-{
- ACE_OS_TRACE ("ACE_OS::rw_wrlock");
-#if defined (ACE_HAS_THREADS)
-# if !defined (ACE_LACKS_RWLOCK_T) || defined (ACE_HAS_PTHREADS_UNIX98_EXT)
-# if defined (ACE_HAS_PTHREADS_UNIX98_EXT)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_rwlock_wrlock (rw),
- ace_result_),
- int, -1);
-# else /* Solaris */
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_wrlock (rw), ace_result_), int, -1);
-# endif /* ACE_HAS_PTHREADS_UNIX98_EXT */
-# else /* NT, POSIX, and VxWorks don't support this natively. */
-# if defined (ACE_HAS_PTHREADS)
- ACE_PTHREAD_CLEANUP_PUSH (&rw->lock_);
-# endif /* defined (ACE_HAS_PTHREADS) */
- int result = 0;
-
- if (ACE_OS::mutex_lock (&rw->lock_) == -1)
- result = -1; // -1 means didn't get the mutex.
- else
- {
- while (rw->ref_count_ != 0)
- {
- rw->num_waiting_writers_++;
-
- if (ACE_OS::cond_wait (&rw->waiting_writers_, &rw->lock_) == -1)
- {
- result = -2; // -2 means we need to release the mutex.
- break;
- }
-
- rw->num_waiting_writers_--;
- }
- }
- if (result == 0)
- rw->ref_count_ = -1;
- if (result != -1)
- ACE_OS::mutex_unlock (&rw->lock_);
-# if defined (ACE_HAS_PTHREADS)
- ACE_PTHREAD_CLEANUP_POP (0);
-# endif /* defined (ACE_HAS_PTHREADS) */
- return 0;
-# endif /* ! ACE_LACKS_RWLOCK_T */
-#else
- ACE_UNUSED_ARG (rw);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::rw_unlock (ACE_rwlock_t *rw)
-{
- ACE_OS_TRACE ("ACE_OS::rw_unlock");
-#if defined (ACE_HAS_THREADS)
-# if !defined (ACE_LACKS_RWLOCK_T) || defined (ACE_HAS_PTHREADS_UNIX98_EXT)
-# if defined (ACE_HAS_PTHREADS_UNIX98_EXT)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_rwlock_unlock (rw),
- ace_result_),
- int, -1);
-# else /* Solaris */
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_unlock (rw), ace_result_), int, -1);
-# endif /* ACE_HAS_PTHREADS_UNIX98_EXT */
-# else /* NT, POSIX, and VxWorks don't support this natively. */
- if (ACE_OS::mutex_lock (&rw->lock_) == -1)
- return -1;
-
- if (rw->ref_count_ > 0) // Releasing a reader.
- rw->ref_count_--;
- else if (rw->ref_count_ == -1) // Releasing a writer.
- rw->ref_count_ = 0;
- else
- return -1; // @@ ACE_ASSERT (!"count should not be 0!\n");
-
-
- int result = 0;
- ACE_Errno_Guard error (errno);
-
- if (rw->important_writer_ && rw->ref_count_ == 1)
- // only the reader requesting to upgrade its lock is left over.
- {
- result = ACE_OS::cond_signal (&rw->waiting_important_writer_);
- error = errno;
- }
- else if (rw->num_waiting_writers_ > 0 && rw->ref_count_ == 0)
- // give preference to writers over readers...
- {
- result = ACE_OS::cond_signal (&rw->waiting_writers_);
- error = errno;
- }
- else if (rw->num_waiting_readers_ > 0 && rw->num_waiting_writers_ == 0)
- {
- result = ACE_OS::cond_broadcast (&rw->waiting_readers_);
- error = errno;
- }
-
- ACE_OS::mutex_unlock (&rw->lock_);
- return result;
-# endif /* ! ace_lacks_rwlock_t */
-#else
- ACE_UNUSED_ARG (rw);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ace_has_threads */
-}
-
-// Note that the caller of this method *must* already possess this
-// lock as a read lock.
-// return {-1 and no errno set means: error,
-// -1 and errno==EBUSY set means: could not upgrade,
-// 0 means: upgraded successfully}
-
-ACE_INLINE int
-ACE_OS::rw_trywrlock_upgrade (ACE_rwlock_t *rw)
-{
- ACE_OS_TRACE ("ACE_OS::rw_trywrlock_upgrade");
-#if defined (ACE_HAS_THREADS)
-# if !defined (ACE_LACKS_RWLOCK_T)
- // Some native rwlocks, such as those on Solaris and HP-UX 11, don't
- // support the upgrade feature . . .
- ACE_UNUSED_ARG (rw);
- ACE_NOTSUP_RETURN (-1);
-# else /* NT, POSIX, and VxWorks don't support this natively. */
- // The ACE rwlock emulation does support upgrade . . .
- int result = 0;
-
-# if defined (ACE_HAS_PTHREADS)
- ACE_PTHREAD_CLEANUP_PUSH (&rw->lock_);
-# endif /* defined (ACE_HAS_PTHREADS) */
-
- if (ACE_OS::mutex_lock (&rw->lock_) == -1)
- return -1;
- // -1 means didn't get the mutex, error
- else if (rw->important_writer_)
- // an other reader upgrades already
- {
- result = -1;
- errno = EBUSY;
- }
- else
- {
- while (rw->ref_count_ > 1) // wait until only I am left
- {
- rw->num_waiting_writers_++; // prohibit any more readers
- rw->important_writer_ = 1;
-
- if (ACE_OS::cond_wait (&rw->waiting_important_writer_, &rw->lock_) == -1)
- {
- result = -1;
- // we know that we have the lock again, we have this guarantee,
- // but something went wrong
- }
- rw->important_writer_ = 0;
- rw->num_waiting_writers_--;
- }
- if (result == 0)
- {
- // nothing bad happend
- rw->ref_count_ = -1;
- // now I am a writer
- // everything is O.K.
- }
- }
-
- ACE_OS::mutex_unlock (&rw->lock_);
-
-# if defined (ACE_HAS_PTHREADS)
- ACE_PTHREAD_CLEANUP_POP (0);
-# endif /* defined (ACE_HAS_PTHREADS) */
-
- return result;
-
-# endif /* ! ACE_LACKS_RWLOCK_T */
-#else
- ACE_UNUSED_ARG (rw);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-#if defined (ACE_HAS_THREADS) && (!defined (ACE_LACKS_RWLOCK_T) || \
- defined (ACE_HAS_PTHREADS_UNIX98_EXT))
-ACE_INLINE int
-ACE_OS::rwlock_init (ACE_rwlock_t *rw,
- int type,
- const ACE_TCHAR *name,
- void *arg)
-{
- // ACE_OS_TRACE ("ACE_OS::rwlock_init");
-# if defined (ACE_HAS_PTHREADS_UNIX98_EXT)
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
-
- int status;
- pthread_rwlockattr_t attr;
- pthread_rwlockattr_init (&attr);
- pthread_rwlockattr_setpshared (&attr, (type == USYNC_THREAD ?
- PTHREAD_PROCESS_PRIVATE :
- PTHREAD_PROCESS_SHARED));
- status = ACE_ADAPT_RETVAL (pthread_rwlock_init (rw, &attr), status);
- pthread_rwlockattr_destroy (&attr);
-
- return status;
-
-# else
- type = type;
- name = name;
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rwlock_init (rw, type, arg), ace_result_), int, -1);
-# endif /* ACE_HAS_PTHREADS_UNIX98_EXT */
-}
-#endif /* ACE_HAS THREADS && !defined (ACE_LACKS_RWLOCK_T) */
-
-ACE_INLINE int
-ACE_OS::rwlock_destroy (ACE_rwlock_t *rw)
-{
- ACE_OS_TRACE ("ACE_OS::rwlock_destroy");
-#if defined (ACE_HAS_THREADS)
-# if !defined (ACE_LACKS_RWLOCK_T) || defined (ACE_HAS_PTHREADS_UNIX98_EXT)
-# if defined (ACE_HAS_PTHREADS_UNIX98_EXT)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_rwlock_destroy (rw),
- ace_result_),
- int, -1);
-# else /* Solaris */
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rwlock_destroy (rw), ace_result_), int, -1);
-# endif /* ACE_HAS_PTHREADS_UNIX98_EXT */
-# else /* NT, POSIX, and VxWorks don't support this natively. */
- ACE_OS::mutex_destroy (&rw->lock_);
- ACE_OS::cond_destroy (&rw->waiting_readers_);
- ACE_OS::cond_destroy (&rw->waiting_important_writer_);
- return ACE_OS::cond_destroy (&rw->waiting_writers_);
-# endif /* ACE_HAS_STHREADS && !defined (ACE_LACKS_RWLOCK_T) */
-#else
- ACE_UNUSED_ARG (rw);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::event_init (ACE_event_t *event,
- int manual_reset,
- int initial_state,
- int type,
- const char *name,
- void *arg,
- LPSECURITY_ATTRIBUTES sa)
-{
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (arg);
-# if defined (ACE_HAS_WINCE)
- // @@todo (brunsch) This idea should be moved into ACE_OS_Win32.
- *event = ::CreateEventW (ACE_OS::default_win32_security_attributes(sa),
- manual_reset,
- initial_state,
- ACE_Ascii_To_Wide (name).wchar_rep ());
-# else /* ACE_HAS_WINCE */
- *event = ::CreateEventA (ACE_OS::default_win32_security_attributes(sa),
- manual_reset,
- initial_state,
- name);
-# endif /* ACE_HAS_WINCE */
- if (*event == 0)
- ACE_FAIL_RETURN (-1);
- else
- return 0;
-#elif defined (ACE_HAS_THREADS)
- ACE_UNUSED_ARG (sa);
- event->manual_reset_ = manual_reset;
- event->is_signaled_ = initial_state;
- event->waiting_threads_ = 0;
-
- int result = ACE_OS::cond_init (&event->condition_,
- ACE_static_cast (short, type),
- name,
- arg);
- if (result == 0)
- result = ACE_OS::mutex_init (&event->lock_,
- type,
- name,
- (ACE_mutexattr_t *) arg);
- return result;
-#else
- ACE_UNUSED_ARG (event);
- ACE_UNUSED_ARG (manual_reset);
- ACE_UNUSED_ARG (initial_state);
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (arg);
- ACE_UNUSED_ARG (sa);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_WIN32 */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_OS::event_init (ACE_event_t *event,
- int manual_reset,
- int initial_state,
- int type,
- const wchar_t *name,
- void *arg,
- LPSECURITY_ATTRIBUTES sa)
-{
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (arg);
- *event = ::CreateEventW (ACE_OS::default_win32_security_attributes(sa),
- manual_reset,
- initial_state,
- name);
- if (*event == 0)
- ACE_FAIL_RETURN (-1);
-
- return 0;
-#else /* ACE_WIN32 */
- return ACE_OS::event_init (event,
- manual_reset,
- initial_state,
- type,
- ACE_Wide_To_Ascii (name).char_rep (),
- arg,
- sa);
-#endif /* ACE_WIN32 */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE int
-ACE_OS::event_destroy (ACE_event_t *event)
-{
-#if defined (ACE_WIN32)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CloseHandle (*event), ace_result_), int, -1);
-#elif defined (ACE_HAS_THREADS)
- int r1 = ACE_OS::mutex_destroy (&event->lock_);
- int r2 = ACE_OS::cond_destroy (&event->condition_);
- return r1 != 0 || r2 != 0 ? -1 : 0;
-#else
- ACE_UNUSED_ARG (event);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::event_wait (ACE_event_t *event)
-{
-#if defined (ACE_WIN32)
- switch (::WaitForSingleObject (*event, INFINITE))
- {
- case WAIT_OBJECT_0:
- return 0;
- default:
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
-#elif defined (ACE_HAS_THREADS)
- int result = 0;
- int error = 0;
-
- // grab the lock first
- if (ACE_OS::mutex_lock (&event->lock_) == 0)
- {
- if (event->is_signaled_ == 1)
- // Event is currently signaled.
- {
- if (event->manual_reset_ == 0)
- // AUTO: reset state
- event->is_signaled_ = 0;
- }
- else
- // event is currently not signaled
- {
- event->waiting_threads_++;
-
- if (ACE_OS::cond_wait (&event->condition_,
- &event->lock_) != 0)
- {
- result = -1;
- error = errno;
- // Something went wrong...
- }
-
- event->waiting_threads_--;
- }
-
- // Now we can let go of the lock.
- ACE_OS::mutex_unlock (&event->lock_);
-
- if (result == -1)
- // Reset errno in case mutex_unlock() also fails...
- errno = error;
- }
- else
- result = -1;
- return result;
-#else
- ACE_UNUSED_ARG (event);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::event_timedwait (ACE_event_t *event,
- ACE_Time_Value *timeout,
- int use_absolute_time)
-{
-#if defined (ACE_WIN32)
- DWORD result;
-
- if (timeout == 0)
- // Wait forever
- result = ::WaitForSingleObject (*event, INFINITE);
- else if (timeout->sec () == 0 && timeout->usec () == 0)
- // Do a "poll".
- result = ::WaitForSingleObject (*event, 0);
- else
- {
- // Wait for upto <relative_time> number of milliseconds. Note
- // that we must convert between absolute time (which is passed
- // as a parameter) and relative time (which is what
- // WaitForSingleObjects() expects).
- // <timeout> parameter is given in absolute or relative value
- // depending on parameter <use_absolute_time>.
- int msec_timeout;
- if (use_absolute_time)
- {
- // Time is given in absolute time, we should use
- // gettimeofday() to calculate relative time
- ACE_Time_Value relative_time (*timeout - ACE_OS::gettimeofday ());
-
- // Watchout for situations where a context switch has caused
- // the current time to be > the timeout. Thanks to Norbert
- // Rapp <NRapp@nexus-informatics.de> for pointing this.
- if (relative_time < ACE_Time_Value::zero)
- msec_timeout = 0;
- else
- msec_timeout = relative_time.msec ();
- }
- else
- // time is given in relative time, just convert it into
- // milliseconds and use it
- msec_timeout = timeout->msec ();
- result = ::WaitForSingleObject (*event, msec_timeout);
- }
-
- switch (result)
- {
- case WAIT_OBJECT_0:
- return 0;
- case WAIT_TIMEOUT:
- errno = ETIME;
- return -1;
- default:
- // This is a hack, we need to find an appropriate mapping...
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
-#elif defined (ACE_HAS_THREADS)
- int result = 0;
- int error = 0;
-
- // grab the lock first
- if (ACE_OS::mutex_lock (&event->lock_) == 0)
- {
- if (event->is_signaled_ == 1)
- // event is currently signaled
- {
- if (event->manual_reset_ == 0)
- // AUTO: reset state
- event->is_signaled_ = 0;
- }
- else
- // event is currently not signaled
- {
- event->waiting_threads_++;
-
- // cond_timewait() expects absolute time, check
- // <use_absolute_time> flag.
- if (use_absolute_time == 0 && timeout != 0)
- *timeout += ACE_OS::gettimeofday ();
-
- if (ACE_OS::cond_timedwait (&event->condition_,
- &event->lock_,
- timeout) != 0)
- {
- result = -1;
- error = errno;
- }
-
- event->waiting_threads_--;
- }
-
- // Now we can let go of the lock.
- ACE_OS::mutex_unlock (&event->lock_);
-
- if (result == -1)
- // Reset errno in case mutex_unlock() also fails...
- errno = error;
- }
- else
- result = -1;
- return result;
-#else
- ACE_UNUSED_ARG (event);
- ACE_UNUSED_ARG (timeout);
- ACE_UNUSED_ARG (use_absolute_time);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::event_signal (ACE_event_t *event)
-{
-#if defined (ACE_WIN32)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::SetEvent (*event), ace_result_), int, -1);
-#elif defined (ACE_HAS_THREADS)
- int result = 0;
- int error = 0;
-
- // grab the lock first
- if (ACE_OS::mutex_lock (&event->lock_) == 0)
- {
- // Manual-reset event.
- if (event->manual_reset_ == 1)
- {
- // signal event
- event->is_signaled_ = 1;
- // wakeup all
- if (ACE_OS::cond_broadcast (&event->condition_) != 0)
- {
- result = -1;
- error = errno;
- }
- }
- // Auto-reset event
- else
- {
- if (event->waiting_threads_ == 0)
- // No waiters: signal event.
- event->is_signaled_ = 1;
-
- // Waiters: wakeup one waiter.
- else if (ACE_OS::cond_signal (&event->condition_) != 0)
- {
- result = -1;
- error = errno;
- }
- }
-
- // Now we can let go of the lock.
- ACE_OS::mutex_unlock (&event->lock_);
-
- if (result == -1)
- // Reset errno in case mutex_unlock() also fails...
- errno = error;
- }
- else
- result = -1;
- return result;
-#else
- ACE_UNUSED_ARG (event);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::event_pulse (ACE_event_t *event)
-{
-#if defined (ACE_WIN32)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::PulseEvent (*event), ace_result_), int, -1);
-#elif defined (ACE_HAS_THREADS)
- int result = 0;
- int error = 0;
-
- // grab the lock first
- if (ACE_OS::mutex_lock (&event->lock_) == 0)
- {
- // Manual-reset event.
- if (event->manual_reset_ == 1)
- {
- // Wakeup all waiters.
- if (ACE_OS::cond_broadcast (&event->condition_) != 0)
- {
- result = -1;
- error = errno;
- }
- }
- // Auto-reset event: wakeup one waiter.
- else if (ACE_OS::cond_signal (&event->condition_) != 0)
- {
- result = -1;
- error = errno;
- }
-
- // Reset event.
- event->is_signaled_ = 0;
-
- // Now we can let go of the lock.
- ACE_OS::mutex_unlock (&event->lock_);
-
- if (result == -1)
- // Reset errno in case mutex_unlock() also fails...
- errno = error;
- }
- else
- result = -1;
- return result;
-#else
- ACE_UNUSED_ARG (event);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::event_reset (ACE_event_t *event)
-{
-#if defined (ACE_WIN32)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::ResetEvent (*event), ace_result_), int, -1);
-#elif defined (ACE_HAS_THREADS)
- int result = 0;
-
- // Grab the lock first.
- if (ACE_OS::mutex_lock (&event->lock_) == 0)
- {
- // Reset event.
- event->is_signaled_ = 0;
-
- // Now we can let go of the lock.
- ACE_OS::mutex_unlock (&event->lock_);
- }
- else
- result = -1;
- return result;
-#else
- ACE_UNUSED_ARG (event);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_WIN32 */
-}
-
-#if defined (ACE_WIN32)
-# define ACE_SOCKCALL_RETURN(OP,TYPE,FAILVALUE) \
- do { TYPE ace_result_ = (TYPE) OP; \
- if (ace_result_ == FAILVALUE) { int ___ = ::WSAGetLastError (); errno = ___; return (TYPE) FAILVALUE; } else return ace_result_; \
- } while (0)
-#else
-# define ACE_SOCKCALL_RETURN(OP,TYPE,FAILVALUE) ACE_OSCALL_RETURN(OP,TYPE,FAILVALUE)
-#endif /* ACE_WIN32 */
-
-#if defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-# define ACE_NETDBCALL_RETURN(OP,TYPE,FAILVALUE,TARGET,SIZE) \
- do \
- { \
- if (ACE_OS::netdb_acquire ()) \
- return FAILVALUE; \
- else \
- { \
- TYPE ace_result_; \
- ACE_OSCALL (OP, TYPE, FAILVALUE, ace_result_); \
- if (ace_result_ != FAILVALUE) \
- ::memcpy (TARGET, \
- ace_result_, \
- SIZE < sizeof (TYPE) ? SIZE : sizeof (TYPE)); \
- ACE_OS::netdb_release (); \
- return ace_result_; \
- } \
- } while(0)
-# else /* ! (ACE_MT_SAFE && ACE_MT_SAFE != 0) */
-# define ACE_NETDBCALL_RETURN(OP,TYPE,FAILVALUE,TARGET,SIZE) \
- do \
- { \
- TYPE ace_result_; \
- ACE_OSCALL(OP,TYPE,FAILVALUE,ace_result_); \
- if (ace_result_ != FAILVALUE) \
- ::memcpy (TARGET, \
- ace_result_, \
- SIZE < sizeof (TYPE) ? SIZE : sizeof (TYPE)); \
- return ace_result_; \
- } while(0)
-# endif /* ACE_MT_SAFE && ACE_MT_SAFE != 0 */
-#endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
-
-ACE_INLINE ACE_HANDLE
-ACE_OS::accept (ACE_HANDLE handle,
- struct sockaddr *addr,
- int *addrlen)
-{
- ACE_OS_TRACE ("ACE_OS::accept");
-#if defined (ACE_PSOS)
-# if !defined (ACE_PSOS_DIAB_PPC)
- ACE_SOCKCALL_RETURN (::accept ((ACE_SOCKET) handle,
- (struct sockaddr_in *) addr,
- (ACE_SOCKET_LEN *) addrlen),
- ACE_HANDLE,
- ACE_INVALID_HANDLE);
-# else
-ACE_SOCKCALL_RETURN (::accept ((ACE_SOCKET) handle,
- (struct sockaddr *) addr,
- (ACE_SOCKET_LEN *) addrlen),
- ACE_HANDLE,
- ACE_INVALID_HANDLE);
-# endif /* defined ACE_PSOS_DIAB_PPC */
-#else
- // On a non-blocking socket with no connections to accept, this
- // system call will return EWOULDBLOCK or EAGAIN, depending on the
- // platform. UNIX 98 allows either errno, and they may be the same
- // numeric value. So to make life easier for upper ACE layers as
- // well as application programmers, always change EAGAIN to
- // EWOULDBLOCK. Rather than hack the ACE_OSCALL_RETURN macro, it's
- // handled explicitly here. If the ACE_OSCALL macro ever changes,
- // this function needs to be reviewed. On Win32, the regular macros
- // can be used, as this is not an issue.
-
-# if defined (ACE_WIN32)
- ACE_SOCKCALL_RETURN (::accept ((ACE_SOCKET) handle,
- addr,
- (ACE_SOCKET_LEN *) addrlen),
- ACE_HANDLE,
- ACE_INVALID_HANDLE);
-# else
-# if defined (ACE_HAS_BROKEN_ACCEPT_ADDR)
- // Apparently some platforms like VxWorks can't correctly deal with
- // a NULL addr.
-
- sockaddr_in fake_addr;
- int fake_addrlen;
-
- if (addrlen == 0)
- addrlen = &fake_addrlen;
-
- if (addr == 0)
- {
- addr = (sockaddr *) &fake_addr;
- *addrlen = sizeof fake_addr;
- }
-# endif /* VXWORKS */
- ACE_HANDLE ace_result = ::accept ((ACE_SOCKET) handle,
- addr,
- (ACE_SOCKET_LEN *) addrlen) ;
- if (ace_result == ACE_INVALID_HANDLE && errno == EAGAIN)
- errno = EWOULDBLOCK;
- return ace_result;
-
-# endif /* defined (ACE_WIN32) */
-#endif /* defined (ACE_PSOS) */
-}
-
-ACE_INLINE int
-ACE_OS::enum_protocols (int *protocols,
- ACE_Protocol_Info *protocol_buffer,
- u_long *buffer_length)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
-
- ACE_SOCKCALL_RETURN (::WSAEnumProtocols (protocols,
- protocol_buffer,
- buffer_length),
- int,
- SOCKET_ERROR);
-
-#else
- ACE_UNUSED_ARG (protocols);
- ACE_UNUSED_ARG (protocol_buffer);
- ACE_UNUSED_ARG (buffer_length);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-
-ACE_INLINE int
-ACE_OS::bind (ACE_HANDLE handle, struct sockaddr *addr, int addrlen)
-{
- ACE_OS_TRACE ("ACE_OS::bind");
-#if defined (ACE_PSOS) && !defined (ACE_PSOS_DIAB_PPC)
- ACE_SOCKCALL_RETURN (::bind ((ACE_SOCKET) handle,
- (struct sockaddr_in *) addr,
- (ACE_SOCKET_LEN) addrlen),
- int, -1);
-#else /* !defined (ACE_PSOS) || defined (ACE_PSOS_DIAB_PPC) */
- ACE_SOCKCALL_RETURN (::bind ((ACE_SOCKET) handle,
- addr,
- (ACE_SOCKET_LEN) addrlen), int, -1);
-#endif /* defined (ACE_PSOS) && !defined (ACE_PSOS_DIAB_PPC) */
-}
-
-ACE_INLINE int
-ACE_OS::connect (ACE_HANDLE handle,
- struct sockaddr *addr,
- int addrlen)
-{
- ACE_OS_TRACE ("ACE_OS::connect");
-#if defined (ACE_PSOS) && !defined (ACE_PSOS_DIAB_PPC)
- ACE_SOCKCALL_RETURN (::connect ((ACE_SOCKET) handle,
- (struct sockaddr_in *) addr,
- (ACE_SOCKET_LEN) addrlen),
- int, -1);
-#else /* !defined (ACE_PSOS) || defined (ACE_PSOS_DIAB_PPC) */
- ACE_SOCKCALL_RETURN (::connect ((ACE_SOCKET) handle,
- addr,
- (ACE_SOCKET_LEN) addrlen), int, -1);
-#endif /* defined (ACE_PSOS) && !defined (ACE_PSOS_DIAB_PPC) */
-}
-
-#if !defined (VXWORKS)
-ACE_INLINE struct hostent *
-ACE_OS::gethostbyname (const char *name)
-{
- ACE_OS_TRACE ("ACE_OS::gethostbyname");
-# if defined (ACE_PSOS)
- ACE_UNUSED_ARG (name);
- ACE_NOTSUP_RETURN (0);
-# elif defined (ACE_HAS_NONCONST_GETBY)
- ACE_SOCKCALL_RETURN (::gethostbyname (ACE_const_cast (char *, name)),
- struct hostent *,
- 0);
-# else
- ACE_SOCKCALL_RETURN (::gethostbyname (name),
- struct hostent *,
- 0);
-# endif /* ACE_HAS_NONCONST_GETBY */
-}
-
-
-ACE_INLINE struct hostent *
-ACE_OS::gethostbyaddr (const char *addr, int length, int type)
-{
- ACE_OS_TRACE ("ACE_OS::gethostbyaddr");
-# if defined (ACE_PSOS)
- ACE_UNUSED_ARG (addr);
- ACE_UNUSED_ARG (length);
- ACE_UNUSED_ARG (type);
- ACE_NOTSUP_RETURN (0);
-# elif defined (ACE_HAS_NONCONST_GETBY)
- ACE_SOCKCALL_RETURN (::gethostbyaddr (ACE_const_cast (char *, addr),
- (ACE_SOCKET_LEN) length,
- type),
- struct hostent *,
- 0);
-# else
- ACE_SOCKCALL_RETURN (::gethostbyaddr (addr,
- (ACE_SOCKET_LEN) length,
- type),
- struct hostent *,
- 0);
-# endif /* ACE_HAS_NONCONST_GETBY */
-}
-
-
-ACE_INLINE struct hostent *
-ACE_OS::getipnodebyname (const char *name, int family, int flags)
-{
- ACE_OS_TRACE ("ACE_OS::getipnodebyname");
-# if defined (ACE_PSOS)
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (family);
- ACE_UNUSED_ARG (flags);
- ACE_NOTSUP_RETURN (0);
-# elif defined (ACE_HAS_IPV6)
-# if defined (__GLIBC__)
- ACE_UNUSED_ARG (flags);
-# if defined (ACE_HAS_NONCONST_GETBY)
- ACE_SOCKCALL_RETURN (::gethostbyname2 (ACE_const_cast (char *, name),
- family),
- struct hostent *, 0);
-# else
- ACE_SOCKCALL_RETURN (::gethostbyname2 (name, family),
- struct hostent *, 0);
-# endif /* ACE_HAS_NONCONST_GETBY */
-# else
- struct hostent *hptr;
- int errnum;
- if ((hptr = ::getipnodebyname (name, family, flags, &errnum)) == 0)
- {
- errno = errnum;
- }
- return hptr;
-# endif /* __GLIBC__ */
-# else
- // IPv4-only implementation
- ACE_UNUSED_ARG (flags);
- if (family == AF_INET)
- return ACE_OS::gethostbyname (name);
-
- ACE_NOTSUP_RETURN (0);
-# endif /* ACE_PSOS */
-}
-
-
-ACE_INLINE struct hostent *
-ACE_OS::getipnodebyaddr (const void *src, size_t len, int family)
-{
-#if defined (ACE_HAS_IPV6)
-# if defined (__GLIBC__)
- ACE_UNUSED_ARG (src);
- ACE_UNUSED_ARG (len);
- ACE_UNUSED_ARG (family);
- ACE_NOTSUP_RETURN (0);
-# else
- struct hostent *hptr;
- int errnum;
- if ((hptr = ::getipnodebyaddr (src, len, family, &errnum)) == 0)
- {
- errno = errnum;
- }
- return hptr;
-# endif /* whatever_doesnt_have_getipnodebyname */
-#else
- // IPv4-only implementation
- if (family == AF_INET)
- return ACE_OS::gethostbyaddr (ACE_static_cast (const char *, src),
- ACE_static_cast (int, len),
- family);
-
- ACE_NOTSUP_RETURN (0);
-# endif /* ACE_PSOS */
-}
-#endif /* ! VXWORKS */
-
-// It would be really cool to add another version of select that would
-// function like the one we're defending against below!
-ACE_INLINE int
-ACE_OS::select (int width,
- fd_set *rfds, fd_set *wfds, fd_set *efds,
- const ACE_Time_Value *timeout)
-{
- ACE_OS_TRACE ("ACE_OS::select");
-#if defined (ACE_HAS_NONCONST_SELECT_TIMEVAL)
- // We must defend against non-conformity!
- timeval copy;
- timeval *timep;
-
- if (timeout != 0)
- {
- copy = *timeout;
- timep = &copy;
- }
- else
- timep = 0;
-#else
- const timeval *timep = (timeout == 0 ? (const timeval *)0 : *timeout);
-#endif /* ACE_HAS_NONCONST_SELECT_TIMEVAL */
- ACE_SOCKCALL_RETURN (::select (width,
- (ACE_FD_SET_TYPE *) rfds,
- (ACE_FD_SET_TYPE *) wfds,
- (ACE_FD_SET_TYPE *) efds,
- timep),
- int, -1);
-}
-
-ACE_INLINE int
-ACE_OS::select (int width,
- fd_set *rfds, fd_set *wfds, fd_set *efds,
- const ACE_Time_Value &timeout)
-{
- ACE_OS_TRACE ("ACE_OS::select");
-#if defined (ACE_HAS_NONCONST_SELECT_TIMEVAL)
-# define ___ACE_TIMEOUT &copy
- timeval copy = timeout;
-#else
-# define ___ACE_TIMEOUT timep
- const timeval *timep = timeout;
-#endif /* ACE_HAS_NONCONST_SELECT_TIMEVAL */
- ACE_SOCKCALL_RETURN (::select (width,
- (ACE_FD_SET_TYPE *) rfds,
- (ACE_FD_SET_TYPE *) wfds,
- (ACE_FD_SET_TYPE *) efds,
- ___ACE_TIMEOUT),
- int, -1);
-#undef ___ACE_TIMEOUT
-}
-
-ACE_INLINE int
-ACE_OS::recv (ACE_HANDLE handle, char *buf, size_t len, int flags)
-{
- ACE_OS_TRACE ("ACE_OS::recv");
-
- // On UNIX, a non-blocking socket with no data to receive, this
- // system call will return EWOULDBLOCK or EAGAIN, depending on the
- // platform. UNIX 98 allows either errno, and they may be the same
- // numeric value. So to make life easier for upper ACE layers as
- // well as application programmers, always change EAGAIN to
- // EWOULDBLOCK. Rather than hack the ACE_OSCALL_RETURN macro, it's
- // handled explicitly here. If the ACE_OSCALL macro ever changes,
- // this function needs to be reviewed. On Win32, the regular macros
- // can be used, as this is not an issue.
-#if defined (ACE_WIN32)
- ACE_SOCKCALL_RETURN (::recv ((ACE_SOCKET) handle, buf,
- ACE_static_cast (int, len), flags), int, -1);
-#else
- int ace_result_;
- ace_result_ = ::recv ((ACE_SOCKET) handle, buf, len, flags);
- if (ace_result_ == -1 && errno == EAGAIN)
- errno = EWOULDBLOCK;
- return ace_result_;
-#endif /* defined (ACE_WIN32) */
-}
-
-ACE_INLINE int
-ACE_OS::recvfrom (ACE_HANDLE handle,
- char *buf,
- size_t len,
- int flags,
- struct sockaddr *addr,
- int *addrlen)
-{
- ACE_OS_TRACE ("ACE_OS::recvfrom");
-#if defined (ACE_PSOS)
-# if !defined ACE_PSOS_DIAB_PPC
- ACE_SOCKCALL_RETURN (::recvfrom ((ACE_SOCKET) handle, buf, len, flags,
- (struct sockaddr_in *) addr, (ACE_SOCKET_LEN *) addrlen),
- int, -1);
-# else
- ACE_SOCKCALL_RETURN (::recvfrom ((ACE_SOCKET) handle, buf, len, flags,
- (struct sockaddr *) addr, (ACE_SOCKET_LEN *) addrlen),
- int, -1);
-# endif /* defined ACE_PSOS_DIAB_PPC */
-#elif defined (ACE_WIN32)
- int shortened_len = ACE_static_cast (int, len);
- int result = ::recvfrom ((ACE_SOCKET) handle,
- buf,
- shortened_len,
- flags,
- addr,
- (ACE_SOCKET_LEN *) addrlen);
- if (result == SOCKET_ERROR)
- {
- ACE_OS::set_errno_to_wsa_last_error ();
- if (errno == WSAEMSGSIZE &&
- ACE_BIT_ENABLED (flags, MSG_PEEK))
- return shortened_len;
- else
- return -1;
- }
- else
- return result;
-#else /* non Win32 and non PSOS */
- ACE_SOCKCALL_RETURN (::recvfrom ((ACE_SOCKET) handle, buf, len, flags,
- addr, (ACE_SOCKET_LEN *) addrlen),
- int, -1);
-#endif /* defined (ACE_PSOS) */
-}
-
-ACE_INLINE int
-ACE_OS::send (ACE_HANDLE handle, const char *buf, size_t len, int flags)
-{
- ACE_OS_TRACE ("ACE_OS::send");
-
- // On UNIX, a non-blocking socket with no data to receive, this
- // system call will return EWOULDBLOCK or EAGAIN, depending on the
- // platform. UNIX 98 allows either errno, and they may be the same
- // numeric value. So to make life easier for upper ACE layers as
- // well as application programmers, always change EAGAIN to
- // EWOULDBLOCK. Rather than hack the ACE_OSCALL_RETURN macro, it's
- // handled explicitly here. If the ACE_OSCALL macro ever changes,
- // this function needs to be reviewed. On Win32, the regular macros
- // can be used, as this is not an issue.
-#if defined (ACE_WIN32)
- ACE_SOCKCALL_RETURN (::send ((ACE_SOCKET) handle,
- buf,
- ACE_static_cast (int, len),
- flags), int, -1);
-#else
- int ace_result_;
-# if defined (VXWORKS) || defined (HPUX) || defined (ACE_PSOS)
- ace_result_ = ::send ((ACE_SOCKET) handle, (char *) buf, len, flags);
-# else
- ace_result_ = ::send ((ACE_SOCKET) handle, buf, len, flags);
-# endif /* VXWORKS */
- if (ace_result_ == -1 && errno == EAGAIN)
- errno = EWOULDBLOCK;
- return ace_result_;
-#endif /* defined (ACE_WIN32) */
-}
-
-ACE_INLINE int
-ACE_OS::recvfrom (ACE_HANDLE handle,
- iovec *buffers,
- int buffer_count,
- size_t &number_of_bytes_recvd,
- int &flags,
- struct sockaddr *addr,
- int *addrlen,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func)
-{
- ACE_OS_TRACE ("ACE_OS::recvfrom");
-
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- DWORD bytes_recvd;
- DWORD the_flags = flags;
- int result = ::WSARecvFrom ((SOCKET) handle,
- (WSABUF*)buffers,
- buffer_count,
- &bytes_recvd,
- &the_flags,
- addr,
- addrlen,
- overlapped,
- func);
- if (result != 0) {
- ACE_OS::set_errno_to_last_error ();
- }
- flags = the_flags;
- number_of_bytes_recvd = ACE_static_cast (size_t, bytes_recvd);
- return result;
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (buffers);
- ACE_UNUSED_ARG (buffer_count);
- ACE_UNUSED_ARG (number_of_bytes_recvd);
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (addr);
- ACE_UNUSED_ARG (addrlen);
- ACE_UNUSED_ARG (overlapped);
- ACE_UNUSED_ARG (func);
- ACE_NOTSUP_RETURN (-1);
-#endif /* defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) */
-}
-
-ACE_INLINE int
-ACE_OS::sendto (ACE_HANDLE handle,
- const char *buf,
- size_t len,
- int flags,
- const struct sockaddr *addr,
- int addrlen)
-{
- ACE_OS_TRACE ("ACE_OS::sendto");
-#if defined (VXWORKS)
- ACE_SOCKCALL_RETURN (::sendto ((ACE_SOCKET) handle, (char *) buf, len, flags,
- ACE_const_cast (struct sockaddr *, addr), addrlen),
- int, -1);
-#elif defined (ACE_PSOS)
-# if !defined (ACE_PSOS_DIAB_PPC)
- ACE_SOCKCALL_RETURN (::sendto ((ACE_SOCKET) handle, (char *) buf, len, flags,
- (struct sockaddr_in *) addr, addrlen),
- int, -1);
-# else
- ACE_SOCKCALL_RETURN (::sendto ((ACE_SOCKET) handle, (char *) buf, len, flags,
- (struct sockaddr *) addr, addrlen),
- int, -1);
-# endif /*defined ACE_PSOS_DIAB_PPC */
-#else
-# if defined (ACE_WIN32)
- ACE_SOCKCALL_RETURN (::sendto ((ACE_SOCKET) handle, buf,
- ACE_static_cast (int, len), flags,
- ACE_const_cast (struct sockaddr *, addr), addrlen),
- int, -1);
-# else
- ACE_SOCKCALL_RETURN (::sendto ((ACE_SOCKET) handle, buf, len, flags,
- ACE_const_cast (struct sockaddr *, addr), addrlen),
- int, -1);
-# endif /* ACE_WIN32 */
-#endif /* VXWORKS */
-}
-
-ACE_INLINE int
-ACE_OS::sendto (ACE_HANDLE handle,
- const iovec *buffers,
- int buffer_count,
- size_t &number_of_bytes_sent,
- int flags,
- const struct sockaddr *addr,
- int addrlen,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func)
-{
- ACE_OS_TRACE ("ACE_OS::sendto");
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- DWORD bytes_sent;
- int result = ::WSASendTo ((SOCKET) handle,
- (WSABUF*)buffers,
- buffer_count,
- &bytes_sent,
- flags,
- addr,
- addrlen,
- overlapped,
- func);
- if (result != 0) {
- ACE_OS::set_errno_to_last_error ();
- }
- number_of_bytes_sent = ACE_static_cast (size_t, bytes_sent);
- return result;
-#else
- ACE_UNUSED_ARG (overlapped);
- ACE_UNUSED_ARG (func);
-
- number_of_bytes_sent = 0;
-
- int result = 0;
-
- for (int i = 0; i < buffer_count; i++)
- {
- result = ACE_OS::sendto (handle,
- ACE_reinterpret_cast (char *ACE_CAST_CONST,
- buffers[i].iov_base),
- buffers[i].iov_len,
- flags,
- addr,
- addrlen);
- if (result == -1)
- break;
- number_of_bytes_sent += result;
- }
-
- return result;
-#endif /* defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) */
-}
-
-ACE_INLINE int
-ACE_OS::getpeername (ACE_HANDLE handle, struct sockaddr *addr,
- int *addrlen)
-{
- ACE_OS_TRACE ("ACE_OS::getpeername");
-#if defined (ACE_PSOS) && !defined ACE_PSOS_DIAB_PPC
- ACE_SOCKCALL_RETURN (::getpeername ((ACE_SOCKET) handle,
- (struct sockaddr_in *) addr,
- (ACE_SOCKET_LEN *) addrlen),
- int, -1);
-#else
- ACE_SOCKCALL_RETURN (::getpeername ((ACE_SOCKET) handle,
- addr,
- (ACE_SOCKET_LEN *) addrlen),
- int, -1);
-#endif /* defined (ACE_PSOS) */
-}
-
-ACE_INLINE struct protoent *
-ACE_OS::getprotobyname (const char *name)
-{
-#if defined (VXWORKS) || defined (ACE_HAS_WINCE) || (defined (ghs) && defined (__Chorus)) || defined (ACE_PSOS)
- ACE_UNUSED_ARG (name);
- ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_HAS_NONCONST_GETBY)
- ACE_SOCKCALL_RETURN (::getprotobyname (ACE_const_cast (char *, name)),
- struct protoent *,
- 0);
-#else
- ACE_SOCKCALL_RETURN (::getprotobyname (name),
- struct protoent *,
- 0);
-#endif /* VXWORKS */
-}
-
-ACE_INLINE struct protoent *
-ACE_OS::getprotobyname_r (const char *name,
- struct protoent *result,
- ACE_PROTOENT_DATA buffer)
-{
-#if defined (VXWORKS) || defined (ACE_HAS_WINCE) || (defined (ghs) && defined (__Chorus)) || defined (ACE_PSOS)
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (result);
- ACE_UNUSED_ARG (buffer);
- ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE)
-# if defined (AIX) || defined (DIGITAL_UNIX) || defined (HPUX_10)
- if (::getprotobyname_r (name, result, (struct protoent_data *) buffer) == 0)
- return result;
- else
- return 0;
-# elif defined (__GLIBC__)
- // GNU C library has a different signature
- if (::getprotobyname_r (name,
- result,
- buffer,
- sizeof (ACE_PROTOENT_DATA),
- &result) == 0)
- return result;
- else
- return 0;
-# else
-# if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
- ACE_UNUSED_ARG (result);
- ACE_NETDBCALL_RETURN (::getprotobyname (name),
- struct protoent *, 0,
- buffer, sizeof (ACE_PROTOENT_DATA));
-# else
- ACE_SOCKCALL_RETURN (::getprotobyname_r (name,
- result,
- buffer,
- sizeof (ACE_PROTOENT_DATA)),
- struct protoent *, 0);
-# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
-# endif /* defined (AIX) || defined (DIGITAL_UNIX) */
-#elif defined (ACE_HAS_NONCONST_GETBY)
- ACE_UNUSED_ARG (result);
- ACE_UNUSED_ARG (buffer);
- ACE_SOCKCALL_RETURN (::getprotobyname (ACE_const_cast (char *, name)),
- struct protoent *, 0);
-#else
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (result);
-
- ACE_SOCKCALL_RETURN (::getprotobyname (name),
- struct protoent *,
- 0);
-#endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) !defined (UNIXWARE) */
-}
-
-ACE_INLINE struct protoent *
-ACE_OS::getprotobynumber (int proto)
-{
-#if defined (VXWORKS) || defined (ACE_HAS_WINCE) || (defined (ghs) && defined (__Chorus)) || defined (ACE_PSOS)
- ACE_UNUSED_ARG (proto);
- ACE_NOTSUP_RETURN (0);
-#else
- ACE_SOCKCALL_RETURN (::getprotobynumber (proto),
- struct protoent *, 0);
-#endif /* VXWORKS */
-}
-
-ACE_INLINE struct protoent *
-ACE_OS::getprotobynumber_r (int proto,
- struct protoent *result,
- ACE_PROTOENT_DATA buffer)
-{
-#if defined (VXWORKS) || defined (ACE_HAS_WINCE) || (defined (ghs) && defined (__Chorus)) || defined (ACE_PSOS)
- ACE_UNUSED_ARG (proto);
- ACE_UNUSED_ARG (result);
- ACE_UNUSED_ARG (buffer);
- ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE)
-# if defined (AIX) || defined (DIGITAL_UNIX) || defined (HPUX_10)
- if (::getprotobynumber_r (proto, result, (struct protoent_data *) buffer) == 0)
- return result;
- else
- return 0;
-# elif defined (__GLIBC__)
- // GNU C library has a different signature
- if (::getprotobynumber_r (proto,
- result,
- buffer,
- sizeof (ACE_PROTOENT_DATA),
- &result) == 0)
- return result;
- else
- return 0;
-# else
-# if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
- ACE_UNUSED_ARG (result);
- ACE_NETDBCALL_RETURN (::getprotobynumber (proto),
- struct protoent *, 0,
- buffer, sizeof (ACE_PROTOENT_DATA));
-# else
- ACE_SOCKCALL_RETURN (::getprotobynumber_r (proto, result, buffer, sizeof (ACE_PROTOENT_DATA)),
- struct protoent *, 0);
-# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
-# endif /* defined (AIX) || defined (DIGITAL_UNIX) */
-#else
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (result);
-
- ACE_SOCKCALL_RETURN (::getprotobynumber (proto),
- struct protoent *, 0);
-#endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) */
-}
-
-ACE_INLINE struct servent *
-ACE_OS::getservbyname (const char *svc, const char *proto)
-{
- ACE_OS_TRACE ("ACE_OS::getservbyname");
-#if defined (ACE_LACKS_GETSERVBYNAME)
- ACE_UNUSED_ARG (svc);
- ACE_UNUSED_ARG (proto);
- ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_HAS_NONCONST_GETBY)
- ACE_SOCKCALL_RETURN (::getservbyname (ACE_const_cast (char *, svc),
- ACE_const_cast (char *, proto)),
- struct servent *,
- 0);
-#else
- ACE_SOCKCALL_RETURN (::getservbyname (svc,
- proto),
- struct servent *,
- 0);
-#endif /* ACE_HAS_NONCONST_GETBY */
-}
-
-ACE_INLINE int
-ACE_OS::getsockname (ACE_HANDLE handle,
- struct sockaddr *addr,
- int *addrlen)
-{
- ACE_OS_TRACE ("ACE_OS::getsockname");
-#if defined (ACE_PSOS) && !defined (ACE_PSOS_DIAB_PPC)
- ACE_SOCKCALL_RETURN (::getsockname ((ACE_SOCKET) handle,
- (struct sockaddr_in *) addr,
- (ACE_SOCKET_LEN *) addrlen),
- int, -1);
-#else
- ACE_SOCKCALL_RETURN (::getsockname ((ACE_SOCKET) handle,
- addr,
- (ACE_SOCKET_LEN *) addrlen),
- int, -1);
-#endif /* defined (ACE_PSOS) */
-}
-
-ACE_INLINE int
-ACE_OS::getsockopt (ACE_HANDLE handle,
- int level,
- int optname,
- char *optval,
- int *optlen)
-{
- ACE_OS_TRACE ("ACE_OS::getsockopt");
- ACE_SOCKCALL_RETURN (::getsockopt ((ACE_SOCKET) handle,
- level,
- optname,
- optval,
- (ACE_SOCKET_LEN *) optlen),
- int,
- -1);
-}
-
-ACE_INLINE int
-ACE_OS::listen (ACE_HANDLE handle, int backlog)
-{
- ACE_OS_TRACE ("ACE_OS::listen");
- ACE_SOCKCALL_RETURN (::listen ((ACE_SOCKET) handle, backlog), int, -1);
-}
-
-ACE_INLINE int
-ACE_OS::setsockopt (ACE_HANDLE handle,
- int level,
- int optname,
- const char *optval,
- int optlen)
-{
- ACE_OS_TRACE ("ACE_OS::setsockopt");
-
- #if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && defined(SO_REUSEPORT)
- // To work around an inconsistency with Microsofts implementation of
- // sockets, we will check for SO_REUSEADDR, and ignore it. Winsock
- // always behaves as if SO_REUSEADDR=1. Some implementations have the
- // same behaviour as Winsock, but use a new name for it. SO_REUSEPORT.
- // If you want the normal behaviour for SO_REUSEADDR=0, then NT 4 sp4 and later
- // supports SO_EXCLUSIVEADDRUSE. This also requires using an updated Platform SDK
- // so it was decided to ignore the option for now. (Especially since ACE always
- // sets SO_REUSEADDR=1, which we can mimic by doing nothing.)
- if (level == SOL_SOCKET) {
- if (optname == SO_REUSEADDR) {
- return 0; // Not supported by Winsock
- }
- if (optname == SO_REUSEPORT) {
- optname = SO_REUSEADDR;
- }
- }
- #endif /*ACE_HAS_WINSOCK2*/
-
- ACE_SOCKCALL_RETURN (::setsockopt ((ACE_SOCKET) handle,
- level,
- optname,
- (ACE_SOCKOPT_TYPE1) optval,
- optlen),
- int,
- -1);
-}
-
-ACE_INLINE int
-ACE_OS::shutdown (ACE_HANDLE handle, int how)
-{
- ACE_OS_TRACE ("ACE_OS::shutdown");
- ACE_SOCKCALL_RETURN (::shutdown ((ACE_SOCKET) handle, how), int, -1);
-}
-
-ACE_INLINE ACE_HANDLE
-ACE_OS::socket (int domain,
- int type,
- int proto)
-{
- ACE_OS_TRACE ("ACE_OS::socket");
- ACE_SOCKCALL_RETURN (::socket (domain,
- type,
- proto),
- ACE_HANDLE,
- ACE_INVALID_HANDLE);
-}
-
-ACE_INLINE ACE_HANDLE
-ACE_OS::socket (int domain,
- int type,
- int proto,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags)
-{
- ACE_OS_TRACE ("ACE_OS::socket");
-
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- ACE_SOCKCALL_RETURN (::WSASocket (domain,
- type,
- proto,
- protocolinfo,
- g,
- flags),
- ACE_HANDLE,
- ACE_INVALID_HANDLE);
-#else
- ACE_UNUSED_ARG (protocolinfo);
- ACE_UNUSED_ARG (g);
- ACE_UNUSED_ARG (flags);
-
- return ACE_OS::socket (domain,
- type,
- proto);
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-ACE_INLINE int
-ACE_OS::atoi (const char *s)
-{
- ACE_OSCALL_RETURN (::atoi (s), int, -1);
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_OS::atoi (const wchar_t *s)
-{
-#if defined (ACE_WIN32)
- ACE_OSCALL_RETURN (::_wtoi (s), int, -1);
-#else /* ACE_WIN32 */
- return ACE_OS::atoi (ACE_Wide_To_Ascii(s).char_rep());
-#endif /* ACE_WIN32 */
-}
-#endif /* ACE_HAS_WCHAR */
-
-
-ACE_INLINE void *
-ACE_OS::atop (const char *s)
-{
- ACE_TRACE ("ACE_OS::atop");
- // It would be nice to make use of Basic_Types.h here, but that
- // file relies on OS.h. Fortunately, most platforms have int
- // the same as pointer size (IA32, IA64), with Win64 being the
- // exception.
-#if defined (ACE_WIN64)
- __int64 ip = ::_atoi64 (s);
-#else
- int ip = ::atoi (s);
-#endif /* ACE_WIN64 */
- void *p = ACE_reinterpret_cast (void *, ip);
- return p;
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE void *
-ACE_OS::atop (const wchar_t *s)
-{
-# if defined (ACE_WIN64)
- __int64 ip = ::_wtoi64 (s);
-# else
- int ip = ACE_OS::atoi (s);
-# endif /* ACE_WIN64 */
- void *p = ACE_reinterpret_cast (void *, ip);
- return p;
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE double
-ACE_OS::floor (double x)
-{
- // This method computes the largest integral value not greater than x.
- return double (ACE_static_cast (long, x));
-}
-
-ACE_INLINE double
-ACE_OS::ceil (double x)
-{
- // This method computes the smallest integral value not less than x.
- double floor = ACE_OS::floor (x);
- if (floor == x)
- return floor;
- else
- return floor + 1;
-}
-
-ACE_INLINE int
-ACE_OS::recvmsg (ACE_HANDLE handle, struct msghdr *msg, int flags)
-{
- ACE_OS_TRACE ("ACE_OS::recvmsg");
-#if !defined (ACE_LACKS_RECVMSG)
-# if (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0))
- DWORD bytes_received = 0;
-
- int result = ::WSARecvFrom ((SOCKET) handle,
- (WSABUF *) msg->msg_iov,
- msg->msg_iovlen,
- &bytes_received,
- (DWORD *) &flags,
- msg->msg_name,
- &msg->msg_namelen,
- 0,
- 0);
-
- if (result != 0)
- {
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
- else
- return (ssize_t) bytes_received;
-# else /* ACE_HAS_WINSOCK2 */
- ACE_SOCKCALL_RETURN (::recvmsg (handle, msg, flags), int, -1);
-# endif /* ACE_HAS_WINSOCK2 */
-#else
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (msg);
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_LACKS_RECVMSG */
-}
-
-ACE_INLINE int
-ACE_OS::sendmsg (ACE_HANDLE handle,
- const struct msghdr *msg,
- int flags)
-{
- ACE_OS_TRACE ("ACE_OS::sendmsg");
-#if !defined (ACE_LACKS_SENDMSG)
-# if (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0))
- DWORD bytes_sent = 0;
- int result = ::WSASendTo ((SOCKET) handle,
- (WSABUF *) msg->msg_iov,
- msg->msg_iovlen,
- &bytes_sent,
- flags,
- msg->msg_name,
- msg->msg_namelen,
- 0,
- 0);
-
- if (result != 0)
- {
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
- else
- return (ssize_t) bytes_sent;
-# elif defined (ACE_LACKS_POSIX_PROTOTYPES) || defined (ACE_PSOS)
- ACE_SOCKCALL_RETURN (::sendmsg (handle, (struct msghdr *) msg, flags), int, -1);
-# else
- ACE_SOCKCALL_RETURN (::sendmsg (handle, (ACE_SENDMSG_TYPE *) msg, flags), int, -1);
-# endif /* ACE_LACKS_POSIX_PROTOTYPES */
-#else
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (msg);
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_LACKS_SENDMSG */
-}
-
-ACE_INLINE int
-ACE_OS::fclose (FILE *fp)
-{
- ACE_OS_TRACE ("ACE_OS::fclose");
- ACE_OSCALL_RETURN (::fclose (fp), int, -1);
-}
-
-ACE_INLINE ACE_TCHAR *
-ACE_OS::fgets (ACE_TCHAR *buf, int size, FILE *fp)
-{
- ACE_OS_TRACE ("ACE_OS::fgets");
-#if defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_OSCALL_RETURN (::fgetws (buf, size, fp), wchar_t *, 0);
-#else /* ACE_WIN32 */
- ACE_OSCALL_RETURN (::fgets (buf, size, fp), char *, 0);
-#endif /* ACE_WIN32 && ACE_USES_WCHAR */
-}
-
-#if !defined (ACE_WIN32)
-// Win32 implementation of fopen(const ACE_TCHAR*, const ACE_TCHAR*)
-// is in OS.cpp.
-ACE_INLINE FILE *
-ACE_OS::fopen (const ACE_TCHAR *filename, const ACE_TCHAR *mode)
-{
- ACE_OS_TRACE ("ACE_OS::fopen");
- ACE_OSCALL_RETURN (::fopen (filename, mode), FILE *, 0);
-}
-#endif /* ACE_WIN32 */
-
-ACE_INLINE FILE *
-ACE_OS::freopen (const ACE_TCHAR *filename, const ACE_TCHAR *mode, FILE* stream)
-{
- ACE_OS_TRACE ("ACE_OS::freopen");
-#if defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_OSCALL_RETURN (::_wfreopen (filename, mode, stream), FILE *, 0);
-#else
- ACE_OSCALL_RETURN (::freopen (filename, mode, stream), FILE *, 0);
-#endif /* ACE_WIN32 && ACE_USES_WCHAR */
-}
-
-ACE_INLINE int
-ACE_OS::fflush (FILE *fp)
-{
- ACE_OS_TRACE ("ACE_OS::fflush");
-#if defined (VXWORKS)
- if (fp == 0)
- {
- // Do not allow fflush(0) on VxWorks
- return 0;
- }
-#endif /* VXWORKS */
-
- ACE_OSCALL_RETURN (::fflush (fp), int, -1);
-}
-
-ACE_INLINE size_t
-ACE_OS::fread (void *ptr, size_t size, size_t nelems, FILE *fp)
-{
- ACE_OS_TRACE ("ACE_OS::fread");
-#if defined (ACE_LACKS_POSIX_PROTOTYPES)
- ACE_OSCALL_RETURN (::fread ((char *) ptr, size, nelems, fp), int, 0);
-#else
- ACE_OSCALL_RETURN (::fread (ptr, size, nelems, fp), int, 0);
-#endif /* ACE_LACKS_POSIX_PROTOTYPES */
-}
-
-ACE_INLINE size_t
-ACE_OS::fwrite (const void *ptr, size_t size, size_t nitems, FILE *fp)
-{
- ACE_OS_TRACE ("ACE_OS::fwrite");
-#if defined (ACE_LACKS_POSIX_PROTOTYPES)
- ACE_OSCALL_RETURN (::fwrite ((const char *) ptr, size, nitems, fp), int, 0);
-#else
- ACE_OSCALL_RETURN (::fwrite (ptr, size, nitems, fp), int, 0);
-#endif /* ACE_LACKS_POSIX_PROTOTYPES */
-}
-
-ACE_INLINE int
-ACE_OS::truncate (const ACE_TCHAR *filename,
- off_t offset)
-{
- ACE_OS_TRACE ("ACE_OS::truncate");
-#if defined (ACE_WIN32)
- ACE_HANDLE handle = ACE_OS::open (filename,
- O_WRONLY,
- ACE_DEFAULT_FILE_PERMS);
- if (handle == ACE_INVALID_HANDLE)
- ACE_FAIL_RETURN (-1);
- else if (::SetFilePointer (handle,
- offset,
- 0,
- FILE_BEGIN) != (unsigned) -1)
- {
- BOOL result = ::SetEndOfFile (handle);
- ::CloseHandle (handle);
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (result, ace_result_), int, -1);
- }
- else
- {
- ::CloseHandle (handle);
- ACE_FAIL_RETURN (-1);
- }
- /* NOTREACHED */
-#elif !defined (ACE_LACKS_TRUNCATE)
- ACE_OSCALL_RETURN (::truncate (filename, offset), int, -1);
-#else
- ACE_UNUSED_ARG (filename);
- ACE_UNUSED_ARG (offset);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_WIN32 */
-}
-
-// Accessors to PWD file.
-
-ACE_INLINE struct passwd *
-ACE_OS::getpwnam (const char *name)
-{
-#if !defined (ACE_LACKS_PWD_FUNCTIONS)
-# if !defined (ACE_WIN32)
- return ::getpwnam (name);
-# else
- ACE_UNUSED_ARG (name);
- ACE_NOTSUP_RETURN (0);
-# endif /* ACE_WIN32 */
-#else
- ACE_UNUSED_ARG (name);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_LACKS_PWD_FUNCTIONS */
-}
-
-ACE_INLINE void
-ACE_OS::setpwent (void)
-{
-#if !defined (ACE_LACKS_PWD_FUNCTIONS)
-# if !defined (ACE_WIN32)
- ::setpwent ();
-# else
-# endif /* ACE_WIN32 */
-#else
-#endif /* ! ACE_LACKS_PWD_FUNCTIONS */
-}
-
-ACE_INLINE void
-ACE_OS::endpwent (void)
-{
-#if !defined (ACE_LACKS_PWD_FUNCTIONS)
-# if !defined (ACE_WIN32)
- ::endpwent ();
-# else
-# endif /* ACE_WIN32 */
-#else
-#endif /* ! ACE_LACKS_PWD_FUNCTIONS */
-}
-
-ACE_INLINE struct passwd *
-ACE_OS::getpwent (void)
-{
-#if !defined (ACE_LACKS_PWD_FUNCTIONS)
-# if !defined (ACE_WIN32)
- return ::getpwent ();
-# else
- ACE_NOTSUP_RETURN (0);
-# endif /* ACE_WIN32 */
-#else
- ACE_NOTSUP_RETURN (0);
-#endif /* ! ACE_LACKS_PWD_FUNCTIONS */
-}
-
-ACE_INLINE struct passwd *
-ACE_OS::getpwnam_r (const char *name, struct passwd *pwent,
- char *buffer, int buflen)
-{
-#if defined (ACE_HAS_POSIX_GETPWNAM_R)
- struct passwd *result;
- int status;
-
- status = ::getpwnam_r (name, pwent, buffer, buflen, &result);
-
- if (status != 0)
- {
- errno = status;
- result = 0;
- }
- return result;
-#elif !defined (ACE_LACKS_PWD_FUNCTIONS)
-# if defined (ACE_HAS_REENTRANT_FUNCTIONS)
-# if !defined (ACE_LACKS_PWD_REENTRANT_FUNCTIONS)
-# if defined (ACE_HAS_PTHREADS_STD) && \
- !defined (ACE_HAS_STHREADS) || \
- defined (HPUX_11) || \
- defined (__USLC__) // Added by Roland Gigler for SCO UnixWare 7.
- struct passwd *result;
- int status;
-# if defined (DIGITAL_UNIX)
- ::_Pgetpwnam_r (name, pwent, buffer, buflen, &result);
-# else
- // VAC++ doesn't correctly grok the ::getpwnam_r - the function is redefined
- // in pwd.h, and that redefinition is used here
-# if defined (__IBMCPP__) && (__IBMCPP__ >= 400) /* VAC++ 4 */
- status = _posix_getpwnam_r (name, pwent, buffer, buflen, &result);
-# else
- status = ::getpwnam_r (name, pwent, buffer, buflen, &result);
-# endif /* __IBMCPP__ && (__IBMCPP__ >= 400) */
- if (status != 0)
- {
- errno = status;
- result = 0;
- }
-# endif /* (DIGITAL_UNIX) */
- return result;
-# elif defined (AIX) || defined (HPUX_10)
- if (::getpwnam_r (name, pwent, buffer, buflen) == -1)
- return 0;
- else
- return pwent;
-# else
- return ::getpwnam_r (name, pwent, buffer, buflen);
-# endif /* ACE_HAS_PTHREADS_STD */
-# else
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (pwent);
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (buflen);
- ACE_NOTSUP_RETURN (0);
-# endif /* ! ACE_LACKS_PWD_REENTRANT_FUNCTIONS */
-# else
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (pwent);
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (buflen);
- ACE_NOTSUP_RETURN (0);
-# endif /* ACE_HAS_REENTRANT_FUNCTIONS */
-#else
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (pwent);
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (buflen);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_POSIX_GETPWNAM_R */
-}
-
-// DNS accessors.
-
-#if !defined (VXWORKS)
-ACE_INLINE struct hostent *
-ACE_OS::gethostbyaddr_r (const char *addr,
- int length,
- int type,
- struct hostent *result,
- ACE_HOSTENT_DATA buffer,
- int *h_errnop)
-{
- ACE_OS_TRACE ("ACE_OS::gethostbyaddr_r");
-# if defined (ACE_PSOS)
- ACE_UNUSED_ARG (addr);
- ACE_UNUSED_ARG (length);
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (result);
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (h_errnop);
- ACE_NOTSUP_RETURN (0);
-# elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE)
-# if defined (AIX) || defined (DIGITAL_UNIX) || defined (HPUX_10)
- ::memset (buffer, 0, sizeof (ACE_HOSTENT_DATA));
-
- if (::gethostbyaddr_r ((char *) addr, length, type, result,
- (struct hostent_data *) buffer)== 0)
- return result;
- else
- {
- *h_errnop = h_errno;
- return (struct hostent *) 0;
- }
-# elif defined (__GLIBC__)
- // GNU C library has a different signature
- ::memset (buffer, 0, sizeof (ACE_HOSTENT_DATA));
-
- if (::gethostbyaddr_r ((char *) addr,
- length,
- type,
- result,
- buffer,
- sizeof (ACE_HOSTENT_DATA),
- &result,
- h_errnop) == 0)
- return result;
- else
- return (struct hostent *) 0;
-# else
-# if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
- ACE_UNUSED_ARG (result);
- ACE_UNUSED_ARG (h_errnop);
- ACE_NETDBCALL_RETURN (::gethostbyaddr (addr, (ACE_SOCKET_LEN) length, type),
- struct hostent *, 0,
- buffer, sizeof (ACE_HOSTENT_DATA));
-# else
- ACE_SOCKCALL_RETURN (::gethostbyaddr_r (addr, length, type, result,
- buffer, sizeof (ACE_HOSTENT_DATA),
- h_errnop),
- struct hostent *, 0);
-# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
-# endif /* defined (AIX) || defined (DIGITAL_UNIX) */
-# elif defined (ACE_HAS_NONCONST_GETBY)
- ACE_UNUSED_ARG (result);
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (h_errnop);
- ACE_SOCKCALL_RETURN (::gethostbyaddr (ACE_const_cast (char *, addr),
- (ACE_SOCKET_LEN) length,
- type),
- struct hostent *,
- 0);
-# else
- ACE_UNUSED_ARG (h_errnop);
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (result);
-
- ACE_SOCKCALL_RETURN (::gethostbyaddr (addr,
- (ACE_SOCKET_LEN) length,
- type),
- struct hostent *,
- 0);
-# endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) */
-}
-
-ACE_INLINE struct hostent *
-ACE_OS::gethostbyname_r (const char *name,
- struct hostent *result,
- ACE_HOSTENT_DATA buffer,
- int *h_errnop)
-{
- ACE_OS_TRACE ("ACE_OS::gethostbyname_r");
-#if defined (ACE_PSOS)
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (result);
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (h_errnop);
- ACE_NOTSUP_RETURN (0);
-# elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE)
-# if defined (DIGITAL_UNIX) || \
- (defined (ACE_AIX_MINOR_VERS) && (ACE_AIX_MINOR_VERS > 2))
- ACE_UNUSED_ARG (result);
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (h_errnop);
-
- // gethostbyname returns thread-specific storage on Digital Unix and
- // AIX 4.3
- ACE_SOCKCALL_RETURN (::gethostbyname (name), struct hostent *, 0);
-# elif defined (AIX) || defined (HPUX_10)
- ::memset (buffer, 0, sizeof (ACE_HOSTENT_DATA));
-
- if (::gethostbyname_r (name, result, (struct hostent_data *) buffer) == 0)
- return result;
- else
- {
- *h_errnop = h_errno;
- return (struct hostent *) 0;
- }
-# elif defined (__GLIBC__)
- // GNU C library has a different signature
- ::memset (buffer, 0, sizeof (ACE_HOSTENT_DATA));
-
- if (::gethostbyname_r (name,
- result,
- buffer,
- sizeof (ACE_HOSTENT_DATA),
- &result,
- h_errnop) == 0)
- return result;
- else
- return (struct hostent *) 0;
-# else
-# if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
- ACE_UNUSED_ARG (result);
- ACE_UNUSED_ARG (h_errnop);
- ACE_NETDBCALL_RETURN (::gethostbyname (name),
- struct hostent *, 0,
- buffer, sizeof (ACE_HOSTENT_DATA));
-# else
- ACE_SOCKCALL_RETURN (::gethostbyname_r (name, result, buffer,
- sizeof (ACE_HOSTENT_DATA),
- h_errnop),
- struct hostent *,
- 0);
-# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
-# endif /* defined (AIX) || defined (DIGITAL_UNIX) */
-# elif defined (ACE_HAS_NONCONST_GETBY)
- ACE_UNUSED_ARG (result);
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (h_errnop);
- ACE_SOCKCALL_RETURN (::gethostbyname (ACE_const_cast (char *, name)),
- struct hostent *,
- 0);
-# else
- ACE_UNUSED_ARG (result);
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (h_errnop);
-
- ACE_SOCKCALL_RETURN (::gethostbyname (name),
- struct hostent *,
- 0);
-# endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) */
-}
-#endif /* ! VXWORKS */
-
-#if 0
-// @@ gets is evil anyway.
-// and it is *** DEPRECATED *** now. If you
-// really needs gets, use ACE_OS::gets (char*, int)
-// instead.
-ACE_INLINE char *
-ACE_OS::gets (char *str)
-{
- ACE_OS_TRACE ("ACE_OS::gets");
- ACE_OSCALL_RETURN (::gets (str), char *, 0);
-}
-#endif /* 0 */
-
-ACE_INLINE struct servent *
-ACE_OS::getservbyname_r (const char *svc,
- const char *proto,
- struct servent *result,
- ACE_SERVENT_DATA buf)
-{
- ACE_OS_TRACE ("ACE_OS::getservbyname_r");
-#if defined (ACE_LACKS_GETSERVBYNAME)
- ACE_UNUSED_ARG (svc);
- ACE_UNUSED_ARG (proto);
- ACE_UNUSED_ARG (result);
- ACE_UNUSED_ARG (buf);
- ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE)
-# if defined (AIX) || defined (DIGITAL_UNIX) || defined (HPUX_10)
- ::memset (buf, 0, sizeof (ACE_SERVENT_DATA));
-
- if (::getservbyname_r (svc, proto, result, (struct servent_data *) buf) == 0)
- return result;
- else
- return (struct servent *) 0;
-# elif defined (__GLIBC__)
- // GNU C library has a different signature
- ::memset (buf, 0, sizeof (ACE_SERVENT_DATA));
-
- if (::getservbyname_r (svc,
- proto,
- result,
- buf,
- sizeof (ACE_SERVENT_DATA),
- &result) == 0)
- return result;
- else
- return (struct servent *) 0;
-# else
-# if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
- ACE_UNUSED_ARG (result);
- ACE_NETDBCALL_RETURN (::getservbyname (svc, proto),
- struct servent *, 0,
- buf, sizeof (ACE_SERVENT_DATA));
-# else
- ACE_SOCKCALL_RETURN (::getservbyname_r (svc, proto, result, buf,
- sizeof (ACE_SERVENT_DATA)),
- struct servent *, 0);
-# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
-# endif /* defined (AIX) || defined (DIGITAL_UNIX) */
-#elif defined (ACE_HAS_NONCONST_GETBY)
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (result);
- ACE_SOCKCALL_RETURN (::getservbyname (ACE_const_cast (char *, svc),
- ACE_const_cast (char *, proto)),
- struct servent *,
- 0);
-#else
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (result);
-
- ACE_SOCKCALL_RETURN (::getservbyname (svc,
- proto),
- struct servent *,
- 0);
-#endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) */
-}
-
-ACE_INLINE unsigned long
-ACE_OS::inet_addr (const char *name)
-{
- ACE_OS_TRACE ("ACE_OS::inet_addr");
-#if defined (VXWORKS) || defined (ACE_PSOS)
-
- u_long ret = 0;
- u_int segment;
- u_int valid = 1;
-
- for (u_int i = 0; i < 4; ++i)
- {
- ret <<= 8;
- if (*name != '\0')
- {
- segment = 0;
-
- while (*name >= '0' && *name <= '9')
- {
- segment *= 10;
- segment += *name++ - '0';
- }
- if (*name != '.' && *name != '\0')
- {
- valid = 0;
- break;
- }
-
- ret |= segment;
-
- if (*name == '.')
- {
- ++name;
- }
- }
- }
- return valid ? htonl (ret) : INADDR_NONE;
-#elif defined (ACE_HAS_NONCONST_GETBY)
- return ::inet_addr ((char *) name);
-#else
- return ::inet_addr (name);
-#endif /* ACE_HAS_NONCONST_GETBY */
-}
-
-// For pSOS, this function is in OS.cpp
-#if !defined (ACE_PSOS)
-ACE_INLINE char *
-ACE_OS::inet_ntoa (const struct in_addr addr)
-{
- ACE_OS_TRACE ("ACE_OS::inet_ntoa");
- ACE_OSCALL_RETURN (::inet_ntoa (addr),
- char *,
- 0);
-}
-#endif /* defined (ACE_PSOS) */
-
-ACE_INLINE int
-ACE_OS::inet_pton (int family, const char *strptr, void *addrptr)
-{
- ACE_OS_TRACE ("ACE_OS::inet_pton");
-
-#if defined (ACE_HAS_IPV6)
- ACE_OSCALL_RETURN (::inet_pton (family, strptr, addrptr), int, -1);
-#else
- if (family == AF_INET)
- {
- struct in_addr in_val;
-
- if (ACE_OS::inet_aton (strptr, &in_val))
- {
- ACE_OS::memcpy (addrptr, &in_val, sizeof (struct in_addr));
- return 1; // Success
- }
-
- return 0; // Input is not a valid presentation format
- }
-
- ACE_NOTSUP_RETURN(-1);
-#endif /* ACE_HAS_IPV6 */
-}
-
-ACE_INLINE const char *
-ACE_OS::inet_ntop (int family, const void *addrptr, char *strptr, size_t len)
-{
- ACE_OS_TRACE ("ACE_OS::inet_ntop");
-
-#if defined (ACE_HAS_IPV6)
- ACE_OSCALL_RETURN (::inet_ntop (family, addrptr, strptr, len), const char *, 0);
-#else
- const u_char *p =
- ACE_reinterpret_cast (const u_char *, addrptr);
-
- if (family == AF_INET)
- {
- char temp[INET_ADDRSTRLEN];
-
- // Stevens uses snprintf() in his implementation but snprintf()
- // doesn't appear to be very portable. For now, hope that using
- // sprintf() will not cause any string/memory overrun problems.
- ACE_OS::sprintf (temp,
- "%d.%d.%d.%d",
- p[0], p[1], p[2], p[3]);
-
- if (ACE_OS::strlen (temp) >= len)
- {
- errno = ENOSPC;
- return 0; // Failure
- }
-
- ACE_OS::strcpy (strptr, temp);
- return strptr;
- }
-
- ACE_NOTSUP_RETURN(0);
-#endif /* ACE_HAS_IPV6 */
-}
-
-ACE_INLINE int
-ACE_OS::set_errno_to_last_error (void)
-{
-# if defined (ACE_WIN32)
-// Borland C++ Builder 4 has a bug in the RTL that resets the
-// <GetLastError> value to zero when errno is accessed. Thus, we have
-// to use this to set errno to GetLastError. It's bad, but only for
-// WIN32.
-# if defined(__BORLANDC__) && (__BORLANDC__ == 0x540) || defined (__IBMCPP__) && (__IBMCPP__ >= 400)
- int last_error = ::GetLastError ();
- return errno = last_error;
-# else /* defined(__BORLANDC__) && (__BORLANDC__ == 0x540) */
- return errno = ::GetLastError ();
-# endif /* defined(__BORLANDC__) && (__BORLANDC__ == 0x540) */
-#else
- return errno;
-# endif /* defined(ACE_WIN32) */
-}
-
-ACE_INLINE int
-ACE_OS::set_errno_to_wsa_last_error (void)
-{
-# if defined (ACE_WIN32)
-// Borland C++ Builder 4 has a bug in the RTL that resets the
-// <GetLastError> value to zero when errno is accessed. Thus, we have
-// to use this to set errno to GetLastError. It's bad, but only for
-// WIN32
-# if defined(__BORLANDC__) && (__BORLANDC__ == 0x540) || defined (__IBMCPP__) && (__IBMCPP__ >= 400)
- int last_error = ::WSAGetLastError ();
- return errno = last_error;
-# else /* defined(__BORLANDC__) && (__BORLANDC__ == 0x540) */
- return errno = ::WSAGetLastError ();
-# endif /* defined(__BORLANDC__) && (__BORLANDC__ == 0x540) */
-#else
- return errno;
-# endif /* defined(ACE_WIN32) */
-}
-
-ACE_INLINE int
-ACE_OS::last_error (void)
-{
- // ACE_OS_TRACE ("ACE_OS::last_error");
-
-#if defined (ACE_WIN32)
- int lerror = ::GetLastError ();
- int lerrno = errno;
- return lerrno == 0 ? lerror : lerrno;
-#else
- return errno;
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE void
-ACE_OS::last_error (int error)
-{
- ACE_OS_TRACE ("ACE_OS::last_error");
-#if defined (ACE_WIN32)
- ::SetLastError (error);
-#else
- errno = error;
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE void
-ACE_OS::perror (const ACE_TCHAR *s)
-{
- ACE_OS_TRACE ("ACE_OS::perror");
-#if defined (ACE_HAS_WINCE)
- // @@ WINCE: How should this be handled
- ACE_UNUSED_ARG (s);
-#elif defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ::_wperror (s);
-#else
- ::perror (s);
-#endif /* ACE_HAS_WINCE */
-}
-
-ACE_INLINE int
-ACE_OS::puts (const ACE_TCHAR *s)
-{
- ACE_OS_TRACE ("ACE_OS::puts");
-#if defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_OSCALL_RETURN (::_putws (s), int, -1);
-#else /* ACE_WIN32 */
- ACE_OSCALL_RETURN (::puts (s), int, -1);
-#endif /* ACE_WIN32 && ACE_USES_WCHAR */
-}
-
-ACE_INLINE int
-ACE_OS::fputs (const ACE_TCHAR *s, FILE *stream)
-{
- ACE_OS_TRACE ("ACE_OS::fputs");
-#if defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_OSCALL_RETURN (::fputws (s, stream), int, -1);
-#else /* ACE_WIN32 */
- ACE_OSCALL_RETURN (::fputs (s, stream), int, -1);
-#endif /* ACE_WIN32 && ACE_USES_WCHAR */
-}
-
-ACE_INLINE ACE_SignalHandler
-ACE_OS::signal (int signum, ACE_SignalHandler func)
-{
- if (signum == 0)
- return 0;
- else
-#if defined (ACE_PSOS) && !defined (ACE_PSOS_TM) && !defined (ACE_PSOS_DIAB_MIPS) && !defined (ACE_PSOS_DIAB_PPC)
- return (ACE_SignalHandler) ::signal (signum, (void (*)(void)) func);
-#elif defined (ACE_PSOS_DIAB_MIPS) || defined (ACE_PSOS_DIAB_PPC)
- return 0;
-#elif defined (ACE_PSOS_TM)
- // @@ It would be good to rework this so the ACE_PSOS_TM specific
- // branch is not needed, but prying it out of ACE_LACKS_UNIX_SIGNALS
- // will take some extra work - deferred for now.
- return (ACE_SignalHandler) ::signal (signum, (void (*)(int)) func);
-#elif defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) || !defined (ACE_LACKS_UNIX_SIGNALS)
-# if !defined (ACE_HAS_TANDEM_SIGNALS) && !defined (ACE_HAS_LYNXOS_SIGNALS)
- return ::signal (signum, func);
-# else
- return (ACE_SignalHandler) ::signal (signum, (void (*)(int)) func);
-# endif /* !ACE_HAS_TANDEM_SIGNALS */
-#else
- // @@ WINCE: Don't know how to implement signal on WinCE (yet.)
- ACE_UNUSED_ARG (signum);
- ACE_UNUSED_ARG (func);
- ACE_NOTSUP_RETURN (0); // Should return SIG_ERR but it is not defined on WinCE.
-#endif /* ACE_PSOS && !ACE_PSOS_TM && !ACE_PSOS_DIAB_MIPS && !ACE_PSOS_DIAB_PPC */
-}
-
-ACE_INLINE int
-ACE_OS::system (const ACE_TCHAR *s)
-{
- // ACE_OS_TRACE ("ACE_OS::system");
-#if defined (CHORUS) || defined (ACE_HAS_WINCE) || defined(ACE_PSOS)
- ACE_UNUSED_ARG (s);
- ACE_NOTSUP_RETURN (-1);
-#elif defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_OSCALL_RETURN (::_wsystem (s), int, -1);
-#else
- ACE_OSCALL_RETURN (::system (s), int, -1);
-#endif /* !CHORUS */
-}
-
-ACE_INLINE int
-ACE_OS::thr_continue (ACE_hthread_t target_thread)
-{
- ACE_OS_TRACE ("ACE_OS::thr_continue");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_continue (target_thread), ace_result_), int, -1);
-# elif defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREAD_CONTINUE)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_continue (target_thread),
- ace_result_),
- int, -1);
-# else
- ACE_UNUSED_ARG (target_thread);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_PTHREAD_CONTINUE */
-# elif defined (ACE_HAS_WTHREADS)
- DWORD result = ::ResumeThread (target_thread);
- if (result == ACE_SYSCALL_FAILED)
- ACE_FAIL_RETURN (-1);
- else
- return 0;
-# elif defined (ACE_PSOS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::t_resume (target_thread), ace_result_), int, -1);
-# elif defined (VXWORKS)
- ACE_OSCALL_RETURN (::taskResume (target_thread), int, -1);
-# endif /* ACE_HAS_STHREADS */
-#else
- ACE_UNUSED_ARG (target_thread);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thr_cmp (ACE_hthread_t t1, ACE_hthread_t t2)
-{
-#if defined (ACE_HAS_PTHREADS)
-# if defined (pthread_equal)
- // If it's a macro we can't say "::pthread_equal"...
- return pthread_equal (t1, t2);
-# else
- return ::pthread_equal (t1, t2);
-# endif /* pthread_equal */
-#else /* For STHREADS, WTHREADS, and VXWORKS ... */
- // Hum, Do we need to treat WTHREAD differently?
- // levine 13 oct 98 % Probably, ACE_hthread_t is a HANDLE.
- return t1 == t2;
-#endif /* ACE_HAS_PTHREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thr_getconcurrency (void)
-{
- ACE_OS_TRACE ("ACE_OS::thr_getconcurrency");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_STHREADS)
- return ::thr_getconcurrency ();
-# elif defined (ACE_HAS_PTHREADS) || defined (VXWORKS) || defined (ACE_PSOS)
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_HAS_WTHREADS)
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_STHREADS */
-#else
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thr_getprio (ACE_hthread_t id, int &priority, int &policy)
-{
- ACE_OS_TRACE ("ACE_OS::thr_getprio");
- ACE_UNUSED_ARG (policy);
-#if defined (ACE_HAS_THREADS)
-# if (defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_SETSCHED))
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- int result;
- result = ::pthread_getprio (id);
- if (result != -1)
- {
- priority = result;
- return 0;
- }
- else
- return -1;
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
-
- pthread_attr_t attr;
- if (pthread_getschedattr (id, &attr) == 0)
- {
- priority = pthread_attr_getprio(&attr);
- return 0;
- }
- return -1;
-# else
-
- struct sched_param param;
- int result;
-
- ACE_OSCALL (ACE_ADAPT_RETVAL (::pthread_getschedparam (id, &policy, &param),
- result), int,
- -1, result);
- priority = param.sched_priority;
- return result;
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_getprio (id, &priority), ace_result_), int, -1);
-# elif defined (ACE_HAS_WTHREADS)
- priority = ::GetThreadPriority (id);
- if (priority == THREAD_PRIORITY_ERROR_RETURN)
- ACE_FAIL_RETURN (-1);
- else
- return 0;
-# elif defined (ACE_PSOS)
- // passing a 0 in the second argument does not alter task priority, third arg gets existing one
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::t_setpri (id, 0, (u_long *) &priority), ace_result_), int, -1);
-# elif defined (VXWORKS)
- ACE_OSCALL_RETURN (::taskPriorityGet (id, &priority), int, -1);
-# else
- ACE_UNUSED_ARG (id);
- ACE_UNUSED_ARG (priority);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_STHREADS */
-#else
- ACE_UNUSED_ARG (id);
- ACE_UNUSED_ARG (priority);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thr_getprio (ACE_hthread_t id, int &priority)
-{
- ACE_OS_TRACE ("ACE_OS::thr_getprio");
- int policy = 0;
- return ACE_OS::thr_getprio (id, priority, policy);
-}
-
-#if defined (ACE_HAS_TSS_EMULATION)
-
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
-ACE_INLINE int
-ACE_OS::thr_getspecific (ACE_OS_thread_key_t key, void **data)
-{
- ACE_OS_TRACE ("ACE_OS::thr_getspecific");
-# if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- return pthread_getspecific (key, data);
-# else /* this is ACE_HAS_PTHREADS_DRAFT7 or STD */
-# if (pthread_getspecific)
- // This is a macro on some platforms, e.g., CHORUS!
- *data = pthread_getspecific (key);
-# else
- *data = pthread_getspecific (key);
-# endif /* pthread_getspecific */
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
- return 0;
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_getspecific (key, data), ace_result_), int, -1);
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS)
- ACE_hthread_t tid;
- ACE_OS::thr_self (tid);
- return (::tsd_getval (key, tid, data) == 0) ? 0 : -1;
-# elif defined (ACE_HAS_WTHREADS)
-
- // The following handling of errno is designed like this due to
- // ACE_Log_Msg::instance calling ACE_OS::thr_getspecific.
- // Basically, it is ok for a system call to reset the error to zero.
- // (It really shouldn't, though). However, we have to remember to
- // store errno *immediately* after an error is detected. Calling
- // ACE_ERROR_RETURN((..., errno)) did not work because errno was
- // cleared before being passed to the thread-specific instance of
- // ACE_Log_Msg. The workaround for was to make it so
- // thr_getspecific did not have the side effect of clearing errno.
- // The correct fix is for ACE_ERROR_RETURN to store errno
- //(actually ACE_OS::last_error) before getting the ACE_Log_Msg tss
- // pointer, which is how it is implemented now. However, other uses
- // of ACE_Log_Msg may not work correctly, so we're keeping this as
- // it is for now.
-
- ACE_Errno_Guard error (errno);
- *data = ::TlsGetValue (key);
- if (*data == 0 && (error = ::GetLastError ()) != NO_ERROR)
- return -1;
- else
- return 0;
-# endif /* ACE_HAS_STHREADS */
-# else
- ACE_UNUSED_ARG (key);
- ACE_UNUSED_ARG (data);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_THREADS */
-}
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
-
-# if !defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
-ACE_INLINE
-void **&
-ACE_TSS_Emulation::tss_base ()
-{
-# if defined (VXWORKS)
- return (void **&) taskIdCurrent->ACE_VXWORKS_SPARE;
-# elif defined (ACE_PSOS)
- // not supported
- long x=0; //JINLU
- return (void **&) x;
-# else
- // Uh oh.
- ACE_NOTSUP_RETURN (0);
-# endif /* VXWORKS */
-}
-# endif /* ! ACE_HAS_THREAD_SPECIFIC_STORAGE */
-
-ACE_INLINE
-ACE_TSS_Emulation::ACE_TSS_DESTRUCTOR
-ACE_TSS_Emulation::tss_destructor (const ACE_thread_key_t key)
-{
- ACE_KEY_INDEX (key_index, key);
- return tss_destructor_ [key_index];
-}
-
-ACE_INLINE
-void
-ACE_TSS_Emulation::tss_destructor (const ACE_thread_key_t key,
- ACE_TSS_DESTRUCTOR destructor)
-{
- ACE_KEY_INDEX (key_index, key);
- tss_destructor_ [key_index] = destructor;
-}
-
-ACE_INLINE
-void *&
-ACE_TSS_Emulation::ts_object (const ACE_thread_key_t key)
-{
- ACE_KEY_INDEX (key_index, key);
-
-#if defined (ACE_PSOS)
- u_long tss_base;
- t_getreg (0, PSOS_TASK_REG_TSS, &tss_base);
- return ((void **) tss_base)[key_index];
-#else
-# if defined (VXWORKS)
- /* If someone wants tss_base make sure they get one. This
- gets used if someone spawns a VxWorks task directly, not
- through ACE. The allocated array will never be deleted! */
- if (0 == taskIdCurrent->ACE_VXWORKS_SPARE)
- {
- taskIdCurrent->ACE_VXWORKS_SPARE =
- ACE_reinterpret_cast (int, new void *[ACE_TSS_THREAD_KEYS_MAX]);
-
- // Zero the entire TSS array. Do it manually instead of using
- // memset, for optimum speed. Though, memset may be faster :-)
- void **tss_base_p =
- ACE_reinterpret_cast (void **, taskIdCurrent->ACE_VXWORKS_SPARE);
- for (u_int i = 0; i < ACE_TSS_THREAD_KEYS_MAX; ++i, ++tss_base_p)
- {
- *tss_base_p = 0;
- }
- }
-# endif /* VXWORKS */
-
- return tss_base ()[key_index];
-#endif /* defined (ACE_PSOS) */
-}
-
-#endif /* ACE_HAS_TSS_EMULATION */
-
-
-ACE_INLINE int
-ACE_OS::thr_getspecific (ACE_thread_key_t key, void **data)
-{
- // ACE_OS_TRACE ("ACE_OS::thr_getspecific");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_TSS_EMULATION)
- ACE_KEY_INDEX (key_index, key);
- if (key_index >= ACE_TSS_Emulation::total_keys ())
- {
- errno = EINVAL;
- data = 0;
- return -1;
- }
- else
- {
- *data = ACE_TSS_Emulation::ts_object (key);
- return 0;
- }
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_getspecific (key, data), ace_result_), int, -1);
-# elif defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- return ::pthread_getspecific (key, data);
-# else /* this is Draft 7 or STD */
- *data = pthread_getspecific (key);
- return 0;
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
-# elif defined (ACE_HAS_WTHREADS)
-
- // The following handling of errno is designed like this due to
- // ACE_Log_Msg::instance calling ACE_OS::thr_getspecific.
- // Basically, it is ok for a system call to reset the error to zero.
- // (It really shouldn't, though). However, we have to remember to
- // store errno *immediately* after an error is detected. Calling
- // ACE_ERROR_RETURN((..., errno)) did not work because errno was
- // cleared before being passed to the thread-specific instance of
- // ACE_Log_Msg. The workaround for was to make it so
- // thr_getspecific did not have the side effect of clearing errno.
- // The correct fix is for ACE_ERROR_RETURN to store errno
- //(actually ACE_OS::last_error) before getting the ACE_Log_Msg tss
- // pointer, which is how it is implemented now. However, other uses
- // of ACE_Log_Msg may not work correctly, so we're keeping this as
- // it is for now.
-
- ACE_Errno_Guard error (errno);
- *data = ::TlsGetValue (key);
- if (*data == 0 && (error = ::GetLastError ()) != NO_ERROR)
- return -1;
- else
- return 0;
-# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_TSS)
- ACE_hthread_t tid;
- ACE_OS::thr_self (tid);
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::tsd_getval (key, tid, data),
- ace_result_),
- int, -1);
-# else
- ACE_UNUSED_ARG (key);
- ACE_UNUSED_ARG (data);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_STHREADS */
-#else
- ACE_UNUSED_ARG (key);
- ACE_UNUSED_ARG (data);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-#if !defined (VXWORKS)
-ACE_INLINE int
-ACE_OS::thr_join (ACE_hthread_t thr_handle,
- ACE_THR_FUNC_RETURN *status)
-{
- ACE_OS_TRACE ("ACE_OS::thr_join");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_join (thr_handle, 0, status), ace_result_),
- int, -1);
-# elif defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- int ace_result;
-# if defined (ACE_LACKS_NULL_PTHREAD_STATUS)
- void *temp;
- ACE_OSCALL (::pthread_join (thr_handle,
- status == 0 ? &temp : status),
- int, -1, ace_result);
-# else
- ACE_OSCALL (::pthread_join (thr_handle, status), int, -1, ace_result);
-# endif /* ACE_LACKS_NULL_PTHREAD_STATUS */
- // Joinable threads need to be detached after joining on Pthreads
- // draft 4 (at least) to reclaim thread storage.
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
-# if defined (HPUX_10)
- // HP-UX DCE threads' pthread_detach will smash thr_id if it's just given
- // as an argument. Since the id is still needed, give pthread_detach
- // a junker to scribble on.
- ACE_thread_t junker;
- cma_handle_assign(&thr_handle, &junker);
- ::pthread_detach (&junker);
-# else
- ::pthread_detach (&thr_handle);
-# endif /* HPUX_10 */
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-
- return ace_result;
-
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_join (thr_handle, status), ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
-# elif defined (ACE_HAS_WTHREADS)
- ACE_THR_FUNC_RETURN local_status = 0;
-
- // Make sure that status is non-NULL.
- if (status == 0)
- status = &local_status;
-
- if (::WaitForSingleObject (thr_handle, INFINITE) == WAIT_OBJECT_0
- && ::GetExitCodeThread (thr_handle, status) != FALSE)
- {
- ::CloseHandle (thr_handle);
- return 0;
- }
- ACE_FAIL_RETURN (-1);
- /* NOTREACHED */
-# elif defined (ACE_PSOS)
- ACE_UNUSED_ARG (thr_handle);
- ACE_UNUSED_ARG (status);
- ACE_NOTSUP_RETURN (-1);
-# else
- ACE_UNUSED_ARG (thr_handle);
- ACE_UNUSED_ARG (status);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_STHREADS */
-#else
- ACE_UNUSED_ARG (thr_handle);
- ACE_UNUSED_ARG (status);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thr_join (ACE_thread_t waiter_id,
- ACE_thread_t *thr_id,
- ACE_THR_FUNC_RETURN *status)
-{
- ACE_OS_TRACE ("ACE_OS::thr_join");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_join (waiter_id, thr_id, status), ace_result_),
- int, -1);
-# elif defined (ACE_HAS_PTHREADS)
- ACE_UNUSED_ARG (thr_id);
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
-# if defined (ACE_LACKS_NULL_PTHREAD_STATUS)
- void *temp;
- ACE_OSCALL_RETURN (::pthread_join (waiter_id,
- status == 0 ? &temp : status), int, -1);
-# else
- ACE_OSCALL_RETURN (::pthread_join (waiter_id, status), int, -1);
-# endif
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_join (waiter_id, status), ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
-# elif defined (ACE_HAS_WTHREADS)
- ACE_UNUSED_ARG (waiter_id);
- ACE_UNUSED_ARG (thr_id);
- ACE_UNUSED_ARG (status);
-
- // This could be implemented if the DLL-Main function or the
- // task exit base class some log the threads which have exited
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_PSOS)
- ACE_UNUSED_ARG (waiter_id);
- ACE_UNUSED_ARG (thr_id);
- ACE_UNUSED_ARG (status);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_STHREADS */
-#else
- ACE_UNUSED_ARG (waiter_id);
- ACE_UNUSED_ARG (thr_id);
- ACE_UNUSED_ARG (status);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-#endif /* !VXWORKS */
-
-ACE_INLINE int
-ACE_OS::thr_setcancelstate (int new_state, int *old_state)
-{
- ACE_OS_TRACE ("ACE_OS::thr_setcancelstate");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL)
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- int old;
- old = pthread_setcancel (new_state);
- if (old == -1)
- return -1;
- *old_state = old;
- return 0;
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_UNUSED_ARG(old_state);
- ACE_OSCALL_RETURN (pthread_setintr (new_state), int, -1);
-# else /* this is draft 7 or std */
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_setcancelstate (new_state,
- old_state),
- ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-# elif defined (ACE_HAS_STHREADS)
- ACE_UNUSED_ARG (new_state);
- ACE_UNUSED_ARG (old_state);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_HAS_WTHREADS)
- ACE_UNUSED_ARG (new_state);
- ACE_UNUSED_ARG (old_state);
- ACE_NOTSUP_RETURN (-1);
-# else /* Could be ACE_HAS_PTHREADS && ACE_LACKS_PTHREAD_CANCEL */
- ACE_UNUSED_ARG (new_state);
- ACE_UNUSED_ARG (old_state);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_PTHREADS */
-#else
- ACE_UNUSED_ARG (new_state);
- ACE_UNUSED_ARG (old_state);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thr_setcanceltype (int new_type, int *old_type)
-{
- ACE_OS_TRACE ("ACE_OS::thr_setcanceltype");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL)
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- int old;
- old = pthread_setasynccancel(new_type);
- if (old == -1)
- return -1;
- *old_type = old;
- return 0;
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_UNUSED_ARG(old_type);
- ACE_OSCALL_RETURN (pthread_setintrtype (new_type), int, -1);
-# else /* this is draft 7 or std */
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_setcanceltype (new_type,
- old_type),
- ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-# else /* Could be ACE_HAS_PTHREADS && ACE_LACKS_PTHREAD_CANCEL */
- ACE_UNUSED_ARG (new_type);
- ACE_UNUSED_ARG (old_type);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_PTHREADS */
-#else
- ACE_UNUSED_ARG (new_type);
- ACE_UNUSED_ARG (old_type);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thr_cancel (ACE_thread_t thr_id)
-{
- ACE_OS_TRACE ("ACE_OS::thr_cancel");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (::pthread_cancel (thr_id), int, -1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_cancel (thr_id),
- ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
-# else /* Could be ACE_HAS_PTHREADS && ACE_LACKS_PTHREAD_CANCEL */
- ACE_UNUSED_ARG (thr_id);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_PTHREADS */
-#else
- ACE_UNUSED_ARG (thr_id);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::sigwait (sigset_t *sset, int *sig)
-{
- ACE_OS_TRACE ("ACE_OS::sigwait");
- int local_sig;
- if (sig == 0)
- sig = &local_sig;
-#if defined (ACE_HAS_THREADS)
-# if (defined (__FreeBSD__) && (__FreeBSD__ < 3)) || defined (CHORUS) || defined (ACE_PSOS)
- ACE_UNUSED_ARG (sset);
- ACE_NOTSUP_RETURN (-1);
-# elif (defined (ACE_HAS_STHREADS) && !defined (_POSIX_PTHREAD_SEMANTICS))
- *sig = ::sigwait (sset);
- return *sig;
-# elif defined (ACE_HAS_PTHREADS)
- // LynxOS and Digital UNIX have their own hoops to jump through.
-# if defined (__Lynx__)
- // Second arg is a void **, which we don't need (the selected
- // signal number is returned).
- *sig = ::sigwait (sset, 0);
- return *sig;
-# elif defined (DIGITAL_UNIX) && defined (__DECCXX_VER)
- // DEC cxx (but not g++) needs this direct call to its internal
- // sigwait (). This allows us to #undef sigwait, so that we can
- // have ACE_OS::sigwait. cxx gets confused by ACE_OS::sigwait
- // if sigwait is _not_ #undef'ed.
- errno = ::_Psigwait (sset, sig);
- return errno == 0 ? *sig : -1;
-# else /* ! __Lynx __ && ! (DIGITAL_UNIX && __DECCXX_VER) */
-# if (defined (ACE_HAS_PTHREADS_DRAFT4) || (defined (ACE_HAS_PTHREADS_DRAFT6)) && !defined(ACE_HAS_FSU_PTHREADS)) || (defined (_UNICOS) && _UNICOS == 9)
-# if defined (HPUX_10)
- *sig = cma_sigwait (sset);
-# else
- *sig = ::sigwait (sset);
-# endif /* HPUX_10 */
- return *sig;
-# elif defined(ACE_HAS_FSU_PTHREADS)
- return ::sigwait (sset, sig);
-# else /* this is draft 7 or std */
- errno = ::sigwait (sset, sig);
- return errno == 0 ? *sig : -1;
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
-# endif /* ! __Lynx__ && ! (DIGITAL_UNIX && __DECCXX_VER) */
-# elif defined (ACE_HAS_WTHREADS)
- ACE_UNUSED_ARG (sset);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (VXWORKS)
- // Second arg is a struct siginfo *, which we don't need (the
- // selected signal number is returned). Third arg is timeout: 0
- // means forever.
- *sig = ::sigtimedwait (sset, 0, 0);
- return *sig;
-# endif /* __FreeBSD__ */
-#else
- ACE_UNUSED_ARG (sset);
- ACE_UNUSED_ARG (sig);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::sigtimedwait (const sigset_t *sset,
- siginfo_t *info,
- const ACE_Time_Value *timeout)
-{
- ACE_OS_TRACE ("ACE_OS::sigtimedwait");
-#if defined (ACE_HAS_SIGTIMEDWAIT)
- timespec_t ts;
- timespec_t *tsp;
-
- if (timeout != 0)
- {
- ts = *timeout; // Calls ACE_Time_Value::operator timespec_t().
- tsp = &ts;
- }
- else
- tsp = 0;
-
- ACE_OSCALL_RETURN (::sigtimedwait (sset, info, tsp),
- int, -1);
-#else
- ACE_UNUSED_ARG (sset);
- ACE_UNUSED_ARG (info);
- ACE_UNUSED_ARG (timeout);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SIGTIMEDWAIT */
-}
-
-ACE_INLINE int
-ACE_OS::sigwaitinfo (const sigset_t *sset,
- siginfo_t *info)
-{
- ACE_OS_TRACE ("ACE_OS::sigwaitinfo");
- // If this platform has sigtimedwait, it should have sigwaitinfo as well.
- // If this isn't true somewhere, let me know and I'll fix this.
- // -Steve Huston <shuston@riverace.com>.
-#if defined (ACE_HAS_SIGTIMEDWAIT)
- ACE_OSCALL_RETURN (::sigwaitinfo (sset, info), int, -1);
-#else
- ACE_UNUSED_ARG (sset);
- ACE_UNUSED_ARG (info);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SIGTIMEDWAIT */
-}
-
-ACE_INLINE void
-ACE_OS::thr_testcancel (void)
-{
- ACE_OS_TRACE ("ACE_OS::thr_testcancel");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL)
-#if defined(ACE_HAS_PTHREADS_DRAFT6)
- ::pthread_testintr ();
-#else /* ACE_HAS_PTHREADS_DRAFT6 */
- ::pthread_testcancel ();
-#endif /* !ACE_HAS_PTHREADS_DRAFT6 */
-# elif defined (ACE_HAS_STHREADS)
-# elif defined (ACE_HAS_WTHREADS)
-# elif defined (VXWORKS) || defined (ACE_PSOS)
-# else
- // no-op: can't use ACE_NOTSUP_RETURN because there is no return value
-# endif /* ACE_HAS_PTHREADS */
-#else
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thr_sigsetmask (int how,
- const sigset_t *nsm,
- sigset_t *osm)
-{
- ACE_OS_TRACE ("ACE_OS::thr_sigsetmask");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
- // DCE threads and Solaris 2.4 have no such function.
- ACE_UNUSED_ARG (osm);
- ACE_UNUSED_ARG (nsm);
- ACE_UNUSED_ARG (how);
-
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_HAS_SIGTHREADMASK)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sigthreadmask (how, nsm, osm),
- ace_result_), int, -1);
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_sigsetmask (how, nsm, osm),
- ace_result_),
- int, -1);
-# elif defined (ACE_HAS_PTHREADS)
-# if defined (AIX)
- ACE_OSCALL_RETURN (sigthreadmask (how, nsm, osm), int, -1);
- // Draft 4 and 6 implementations will sometimes have a sigprocmask () that
- // modifies the calling thread's mask only. If this is not so for your
- // platform, define ACE_LACKS_PTHREAD_THR_SIGSETMASK.
-# elif defined(ACE_HAS_PTHREADS_DRAFT4) || \
- defined (ACE_HAS_PTHREADS_DRAFT6) || (defined (_UNICOS) && _UNICOS == 9)
- ACE_OSCALL_RETURN (::sigprocmask (how, nsm, osm), int, -1);
-# elif !defined (ACE_LACKS_PTHREAD_SIGMASK)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_sigmask (how, nsm, osm),
- ace_result_), int, -1);
-# endif /* AIX */
-
-#if 0
- /* Don't know if anyt platform actually needs this... */
- // as far as I can tell, this is now pthread_sigaction() -- jwr
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_sigaction (how, nsm, osm),
- ace_result_), int, -1);
-#endif /* 0 */
-
-# elif defined (ACE_HAS_WTHREADS) || defined (ACE_PSOS)
- ACE_UNUSED_ARG (osm);
- ACE_UNUSED_ARG (nsm);
- ACE_UNUSED_ARG (how);
-
- ACE_NOTSUP_RETURN (-1);
-# elif defined (VXWORKS)
- switch (how)
- {
- case SIG_BLOCK:
- case SIG_UNBLOCK:
- {
- // get the old mask
- *osm = ::sigsetmask (*nsm);
- // create a new mask: the following assumes that sigset_t is 4 bytes,
- // which it is on VxWorks 5.2, so bit operations are done simply . . .
- ::sigsetmask (how == SIG_BLOCK ? (*osm |= *nsm) : (*osm &= ~*nsm));
- break;
- }
- case SIG_SETMASK:
- *osm = ::sigsetmask (*nsm);
- break;
- default:
- return -1;
- }
-
- return 0;
-# else /* Should not happen. */
- ACE_UNUSED_ARG (how);
- ACE_UNUSED_ARG (nsm);
- ACE_UNUSED_ARG (osm);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
-#else
- ACE_UNUSED_ARG (how);
- ACE_UNUSED_ARG (nsm);
- ACE_UNUSED_ARG (osm);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thr_kill (ACE_thread_t thr_id, int signum)
-{
- ACE_OS_TRACE ("ACE_OS::thr_kill");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined(ACE_LACKS_PTHREAD_KILL)
- ACE_UNUSED_ARG (signum);
- ACE_UNUSED_ARG (thr_id);
- ACE_NOTSUP_RETURN (-1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_kill (thr_id, signum),
- ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_kill (thr_id, signum),
- ace_result_),
- int, -1);
-# elif defined (ACE_HAS_WTHREADS) || defined (ACE_PSOS)
- ACE_UNUSED_ARG (signum);
- ACE_UNUSED_ARG (thr_id);
-
- ACE_NOTSUP_RETURN (-1);
-# elif defined (VXWORKS)
- ACE_hthread_t tid;
- ACE_OSCALL (::taskNameToId (thr_id), int, ERROR, tid);
-
- if (tid == ERROR)
- return -1;
- else
- ACE_OSCALL_RETURN (::kill (tid, signum), int, -1);
-
-# else /* This should not happen! */
- ACE_UNUSED_ARG (thr_id);
- ACE_UNUSED_ARG (signum);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_STHREADS */
-#else
- ACE_UNUSED_ARG (thr_id);
- ACE_UNUSED_ARG (signum);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE size_t
-ACE_OS::thr_min_stack (void)
-{
- ACE_OS_TRACE ("ACE_OS::thr_min_stack");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_STHREADS)
-# if defined (ACE_HAS_THR_MINSTACK)
- // Tandem did some weirdo mangling of STHREAD names...
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_minstack (),
- ace_result_),
- int, -1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_min_stack (),
- ace_result_),
- int, -1);
-# endif /* !ACE_HAS_THR_MINSTACK */
-# elif defined (ACE_HAS_PTHREADS)
-# if defined (_SC_THREAD_STACK_MIN)
- return (size_t) ACE_OS::sysconf (_SC_THREAD_STACK_MIN);
-# elif defined (PTHREAD_STACK_MIN)
- return PTHREAD_STACK_MIN;
-# else
- ACE_NOTSUP_RETURN (0);
-# endif /* _SC_THREAD_STACK_MIN */
-# elif defined (ACE_HAS_WTHREADS)
- ACE_NOTSUP_RETURN (0);
-# elif defined (ACE_PSOS)
- // there does not appear to be a way to get the
- // task stack size except at task creation
- ACE_NOTSUP_RETURN (0);
-# elif defined (VXWORKS)
- TASK_DESC taskDesc;
- STATUS status;
-
- ACE_hthread_t tid;
- ACE_OS::thr_self (tid);
-
- ACE_OSCALL (ACE_ADAPT_RETVAL (::taskInfoGet (tid, &taskDesc),
- status),
- STATUS, -1, status);
- return status == OK ? taskDesc.td_stackSize : 0;
-# else /* Should not happen... */
- ACE_NOTSUP_RETURN (0);
-# endif /* ACE_HAS_STHREADS */
-#else
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thr_setconcurrency (int hint)
-{
- ACE_OS_TRACE ("ACE_OS::thr_setconcurrency");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_setconcurrency (hint),
- ace_result_),
- int, -1);
-# elif defined (ACE_HAS_PTHREADS)
- ACE_UNUSED_ARG (hint);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_HAS_WTHREADS)
- ACE_UNUSED_ARG (hint);
-
- ACE_NOTSUP_RETURN (-1);
-# elif defined (VXWORKS) || defined (ACE_PSOS)
- ACE_UNUSED_ARG (hint);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_STHREADS */
-#else
- ACE_UNUSED_ARG (hint);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thr_setprio (ACE_hthread_t id, int priority, int policy)
-{
- ACE_OS_TRACE ("ACE_OS::thr_setprio");
- ACE_UNUSED_ARG (policy);
-#if defined (ACE_HAS_THREADS)
-# if (defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_SETSCHED))
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- int result;
- result = ::pthread_setprio (id, priority);
- return (result == -1 ? -1 : 0);
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- pthread_attr_t attr;
- if (pthread_getschedattr (id, &attr) == -1)
- return -1;
- if (pthread_attr_setprio (attr, priority) == -1)
- return -1;
- return pthread_setschedattr (id, attr);
-# else
- int result;
- struct sched_param param;
- memset ((void *) &param, 0, sizeof param);
-
- // If <policy> is -1, we don't want to use it for
- // pthread_setschedparam(). Instead, obtain policy from
- // pthread_getschedparam().
- if (policy == -1)
- {
- ACE_OSCALL (ACE_ADAPT_RETVAL (::pthread_getschedparam (id, &policy, &param),
- result),
- int, -1, result);
- if (result == -1)
- return result;
- }
-
- param.sched_priority = priority;
-
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_setschedparam (id, policy, &param),
- ace_result_),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-# elif defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_setprio (id, priority),
- ace_result_),
- int, -1);
-# elif defined (ACE_HAS_WTHREADS)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::SetThreadPriority (id, priority),
- ace_result_),
- int, -1);
-# elif defined (ACE_PSOS)
- u_long oldpriority;
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::t_setpri (id, priority, &oldpriority),
- ace_result_),
- int, -1);
-# elif defined (VXWORKS)
- ACE_OSCALL_RETURN (::taskPrioritySet (id, priority), int, -1);
-# else
- // For example, platforms that support Pthreads but LACK_SETSCHED.
- ACE_UNUSED_ARG (id);
- ACE_UNUSED_ARG (priority);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_STHREADS */
-#else
- ACE_UNUSED_ARG (id);
- ACE_UNUSED_ARG (priority);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::thr_suspend (ACE_hthread_t target_thread)
-{
- ACE_OS_TRACE ("ACE_OS::thr_suspend");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_STHREADS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_suspend (target_thread), ace_result_), int, -1);
-# elif defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREAD_SUSPEND)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_suspend (target_thread),
- ace_result_),
- int, -1);
-# else
- ACE_UNUSED_ARG (target_thread);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_PTHREAD_SUSPEND */
-# elif defined (ACE_HAS_WTHREADS)
- if (::SuspendThread (target_thread) != ACE_SYSCALL_FAILED)
- return 0;
- else
- ACE_FAIL_RETURN (-1);
- /* NOTREACHED */
-# elif defined (ACE_PSOS)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::t_suspend (target_thread), ace_result_), int, -1);
-# elif defined (VXWORKS)
- ACE_OSCALL_RETURN (::taskSuspend (target_thread), int, -1);
-# endif /* ACE_HAS_STHREADS */
-#else
- ACE_UNUSED_ARG (target_thread);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE void
-ACE_OS::thr_yield (void)
-{
- ACE_OS_TRACE ("ACE_OS::thr_yield");
-#if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_STD)
- // Note - this is a POSIX.4 function - not a POSIX.1c function...
- ::sched_yield ();
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- ::pthread_yield (0);
-# else /* Draft 4 and 7 */
- ::pthread_yield ();
-# endif /* ACE_HAS_PTHREADS_STD */
-# elif defined (ACE_HAS_STHREADS)
- ::thr_yield ();
-# elif defined (ACE_HAS_WTHREADS)
- ::Sleep (0);
-# elif defined (VXWORKS)
- // An argument of 0 to ::taskDelay doesn't appear to yield the
- // current thread.
- // Now, it does seem to work. The context_switch_time test
- // works fine with task_delay set to 0.
- ::taskDelay (0);
-# endif /* ACE_HAS_STHREADS */
-#else
- ;
-#endif /* ACE_HAS_THREADS */
-}
-
-ACE_INLINE int
-ACE_OS::priority_control (ACE_idtype_t idtype, ACE_id_t id, int cmd, void *arg)
-{
- ACE_OS_TRACE ("ACE_OS::priority_control");
-#if defined (ACE_HAS_PRIOCNTL)
- ACE_OSCALL_RETURN (priocntl (idtype, id, cmd, ACE_static_cast (caddr_t, arg)),
- int, -1);
-#else /* ! ACE_HAS_PRIOCNTL*/
- ACE_UNUSED_ARG (idtype);
- ACE_UNUSED_ARG (id);
- ACE_UNUSED_ARG (cmd);
- ACE_UNUSED_ARG (arg);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ! ACE_HAS_PRIOCNTL*/
-}
-
-ACE_INLINE void
-ACE_OS::rewind (FILE *fp)
-{
-#if !defined (ACE_HAS_WINCE)
- ACE_OS_TRACE ("ACE_OS::rewind");
- ::rewind (fp);
-#else
- // In WinCE, "FILE *" is actually a HANDLE.
- ::SetFilePointer (fp, 0L, 0L, FILE_BEGIN);
-#endif /* ACE_HAS_WINCE */
-}
-
-ACE_INLINE ssize_t
-ACE_OS::readv (ACE_HANDLE handle,
- iovec *iov,
- int iovlen)
-{
- ACE_OS_TRACE ("ACE_OS::readv");
-#if defined (ACE_LACKS_READV)
- ACE_OSCALL_RETURN (ACE_OS::readv_emulation (handle, iov, iovlen),
- ssize_t,
- -1);
-#else /* ACE_LACKS_READV */
- ACE_OSCALL_RETURN (::readv (handle, iov, iovlen), ssize_t, -1);
-#endif /* ACE_LACKS_READV */
-}
-
-ACE_INLINE ssize_t
-ACE_OS::writev (ACE_HANDLE handle,
- const iovec *iov,
- int iovcnt)
-{
- ACE_OS_TRACE ("ACE_OS::writev");
-#if defined (ACE_LACKS_WRITEV)
- ACE_OSCALL_RETURN (ACE_OS::writev_emulation (handle,
- (ACE_WRITEV_TYPE *) iov,
- iovcnt), int, -1);
-#else /* ACE_LACKS_WRITEV */
- ACE_OSCALL_RETURN (::writev (handle,
- (ACE_WRITEV_TYPE *) iov,
- iovcnt), int, -1);
-#endif /* ACE_LACKS_WRITEV */
-}
-
-ACE_INLINE ssize_t
-ACE_OS::recvv (ACE_HANDLE handle,
- iovec *buffers,
- int n)
-{
-#if defined (ACE_HAS_WINSOCK2)
-
- DWORD bytes_received = 0;
- int result = 1;
-
- // Winsock 2 has WSARecv and can do this directly, but Winsock 1 needs
- // to do the recvs piece-by-piece.
-
-# if (ACE_HAS_WINSOCK2 != 0)
- DWORD flags = 0;
- result = ::WSARecv ((SOCKET) handle,
- (WSABUF *) buffers,
- n,
- &bytes_received,
- &flags,
- 0,
- 0);
-# else
- int i, chunklen;
- char *chunkp = 0;
-
- // Step through the buffers requested by caller; for each one, cycle
- // through reads until it's filled or an error occurs.
- for (i = 0; i < n && result > 0; i++)
- {
- chunkp = buffers[i].iov_base; // Point to part of chunk being read
- chunklen = buffers[i].iov_len; // Track how much to read to chunk
- while (chunklen > 0 && result > 0)
- {
- result = ::recv ((SOCKET) handle, chunkp, chunklen, 0);
- if (result > 0)
- {
- chunkp += result;
- chunklen -= result;
- bytes_received += result;
- }
- }
- }
-# endif /* ACE_HAS_WINSOCK2 != 0 */
-
- if (result == SOCKET_ERROR)
- {
- ACE_OS::set_errno_to_wsa_last_error ();
- return -1;
- }
- else
- return (ssize_t) bytes_received;
-#else
- return ACE_OS::readv (handle, buffers, n);
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-ACE_INLINE ssize_t
-ACE_OS::sendv (ACE_HANDLE handle,
- const iovec *buffers,
- int n)
-{
-#if defined (ACE_HAS_WINSOCK2)
- DWORD bytes_sent = 0;
- int result = 0;
-
- // Winsock 2 has WSASend and can do this directly, but Winsock 1
- // needs to do the sends one-by-one.
-# if (ACE_HAS_WINSOCK2 != 0)
- result = ::WSASend ((SOCKET) handle,
- (WSABUF *) buffers,
- n,
- &bytes_sent,
- 0,
- 0,
- 0);
-# else
- int i;
- for (i = 0; i < n && result != SOCKET_ERROR; i++)
- {
- result = ::send ((SOCKET) handle,
- buffers[i].iov_base,
- buffers[i].iov_len,
- 0);
- // Gets ignored on error anyway
- bytes_sent += buffers[i].iov_len;
-
- // If the transfer isnt complete just drop out of the loop.
- if (result < (int)buffers[i].iov_len)
- break;
- }
-# endif /* ACE_HAS_WINSOCK2 != 0 */
-
- if (result == SOCKET_ERROR)
- {
- ACE_OS::set_errno_to_wsa_last_error ();
- return -1;
- }
- else
- return (ssize_t) bytes_sent;
-
-#else
- return ACE_OS::writev (handle, buffers, n);
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-ACE_INLINE int
-ACE_OS::poll (struct pollfd *pollfds, u_long len, const ACE_Time_Value *timeout)
-{
- ACE_OS_TRACE ("ACE_OS::poll");
-#if defined (ACE_HAS_POLL)
- int to = timeout == 0 ? -1 : int (timeout->msec ());
- ACE_OSCALL_RETURN (::poll (pollfds, len, to), int, -1);
-#else
- ACE_UNUSED_ARG (timeout);
- ACE_UNUSED_ARG (len);
- ACE_UNUSED_ARG (pollfds);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_POLL */
-}
-
-ACE_INLINE int
-ACE_OS::poll (struct pollfd *pollfds, u_long len, const ACE_Time_Value &timeout)
-{
- ACE_OS_TRACE ("ACE_OS::poll");
-#if defined (ACE_HAS_POLL)
- ACE_OSCALL_RETURN (::poll (pollfds, len, int (timeout.msec ())), int, -1);
-#else
- ACE_UNUSED_ARG (timeout);
- ACE_UNUSED_ARG (len);
- ACE_UNUSED_ARG (pollfds);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_POLL */
-}
-
-ACE_INLINE char *
-ACE_OS::compile (const char *instring, char *expbuf, char *endbuf)
-{
- ACE_OS_TRACE ("ACE_OS::compile");
-#if defined (ACE_HAS_REGEX)
- ACE_OSCALL_RETURN (::compile (instring, expbuf, endbuf), char *, 0);
-#else
- ACE_UNUSED_ARG (instring);
- ACE_UNUSED_ARG (expbuf);
- ACE_UNUSED_ARG (endbuf);
-
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_REGEX */
-}
-
-ACE_INLINE long
-ACE_OS::filesize (const ACE_TCHAR *filename)
-{
- ACE_OS_TRACE ("ACE_OS::filesize");
-
- ACE_HANDLE h = ACE_OS::open (filename, O_RDONLY);
- if (h != ACE_INVALID_HANDLE)
- {
- long size = ACE_OS::filesize (h);
- ACE_OS::close (h);
- return size;
- }
- else
- return -1;
-}
-
-ACE_INLINE int
-ACE_OS::closesocket (ACE_HANDLE handle)
-{
- ACE_OS_TRACE ("ACE_OS::closesocket");
-#if defined (ACE_WIN32)
- ACE_SOCKCALL_RETURN (::closesocket ((SOCKET) handle), int, -1);
-#elif defined (ACE_PSOS_DIAB_PPC)
- ACE_OSCALL_RETURN (::pna_close (handle), int, -1);
-#else
- ACE_OSCALL_RETURN (::close (handle), int, -1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::access (const char *path, int amode)
-{
- ACE_OS_TRACE ("ACE_OS::access");
-#if defined (ACE_LACKS_ACCESS)
-# if defined (ACE_HAS_WINCE)
- // @@ WINCE: There should be a Win32 API that can do this.
- // Hard coded read access here.
- FILE* handle = ACE_OS::fopen (ACE_TEXT_CHAR_TO_TCHAR(path), ACE_LIB_TEXT ("r"));
- ACE_UNUSED_ARG (amode);
-
- ACE_OS::fclose (handle);
- return (handle == ACE_INVALID_HANDLE ? -1 : 0);
-# else
- ACE_UNUSED_ARG (path);
- ACE_UNUSED_ARG (amode);
- ACE_NOTSUP_RETURN (-1);
-# endif // ACE_HAS_WINCE
-#else
- ACE_OSCALL_RETURN (::access (path, amode), int, -1);
-#endif /* ACE_LACKS_ACCESS */
-}
-
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_OS::access (const wchar_t *path, int amode)
-{
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
- ACE_OSCALL_RETURN (::_waccess (path, amode), int, -1);
-#else /* ACE_WIN32 && !ACE_HAS_WINCE */
- return ACE_OS::access (ACE_Wide_To_Ascii (path).char_rep (), amode);
-#endif /* ACE_WIN32 && !ACE_HAS_WINCE */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE ACE_HANDLE
-ACE_OS::creat (const ACE_TCHAR *filename, mode_t mode)
-{
- ACE_OS_TRACE ("ACE_OS::creat");
-#if defined (ACE_WIN32)
- return ACE_OS::open (filename, O_CREAT|O_TRUNC|O_WRONLY, mode);
-#elif defined(ACE_PSOS)
- ACE_OSCALL_RETURN(::create_f((char *)filename, 1024,
- S_IRUSR | S_IWUSR | S_IXUSR),
- ACE_HANDLE, ACE_INVALID_HANDLE);
-#elif defined(ACE_PSOS_TM)
- ACE_UNUSED_ARG (filename);
- ACE_UNUSED_ARG (mode);
- ACE_NOTSUP_RETURN (-1);
-#elif defined(ACE_PSOS)
- ACE_UNUSED_ARG (filename);
- ACE_UNUSED_ARG (mode);
- ACE_NOTSUP_RETURN (-1);
-#else
- ACE_OSCALL_RETURN (::creat (filename, mode),
- ACE_HANDLE, ACE_INVALID_HANDLE);
-#endif /* ACE_WIN32 */
-}
-
-#if !defined (ACE_WIN32) && !defined (VXWORKS) && !defined (CHORUS) && !defined (ACE_PSOS)
-// Don't inline on those platforms because this function contains
-// string literals, and some compilers, e.g., g++, don't handle those
-// efficiently in unused inline functions.
-ACE_INLINE int
-ACE_OS::uname (ACE_utsname *name)
-{
-#if defined (INTEGRITY)
- if(!name) {
- errno = EFAULT;
- return -1;
- }
- strcpy(name->sysname,"INTEGRITY");
- int status = gethostname(name->nodename,_SYS_NMLN);
- strcpy(name->release,"4.0");
- strcpy(name->version,"4.0.9");
- strcpy(name->machine,"a standard name");
- return status;
-#else
- ACE_OS_TRACE ("ACE_OS::uname");
- ACE_OSCALL_RETURN (::uname (name), int, -1);
-#endif
-}
-#endif /* ! ACE_WIN32 && ! VXWORKS && ! CHORUS */
-
-ACE_INLINE int
-ACE_OS::hostname (char name[], size_t maxnamelen)
-{
- ACE_OS_TRACE ("ACE_OS::hostname");
-#if defined (ACE_HAS_PHARLAP)
- // PharLap only can do net stuff with the RT version.
-# if defined (ACE_HAS_PHARLAP_RT)
- // @@This is not at all reliable... requires ethernet and BOOTP to be used.
- // A more reliable way is to go thru the devices w/ EtsTCPGetDeviceCfg until
- // a legit IP address is found, then get its name w/ gethostbyaddr.
- ACE_SOCKCALL_RETURN (gethostname (name, maxnamelen), int, SOCKET_ERROR);
-# else
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (maxnamelen);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_PHARLAP_RT */
-#elif defined (VXWORKS) || defined (ACE_HAS_WINCE)
- ACE_OSCALL_RETURN (::gethostname (name, maxnamelen), int, -1);
-#elif defined (ACE_WIN32)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::GetComputerNameA (name,
- LPDWORD (&maxnamelen)),
- ace_result_), int, -1);
-#elif defined (CHORUS)
- if (::gethostname (name, maxnamelen) == -1)
- return -1;
- else
- {
- if (ACE_OS::strlen (name) == 0)
- {
- // Try the HOST environment variable.
- ACE_TCHAR *const hostenv = ::getenv (ACE_LIB_TEXT ("HOST"));
- if (hostenv)
- ACE_OS::strsncpy (name, hostenv, maxnamelen);
- }
- return 0;
- }
-#else /* ACE_HAS_PHARLAP */
- ACE_utsname host_info;
-
- if (ACE_OS::uname (&host_info) == -1)
- return -1;
- else
- {
- ACE_OS::strsncpy (name, host_info.nodename, maxnamelen);
- return 0;
- }
-#endif /* ACE_HAS_PHARLAP */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_OS::hostname (wchar_t name[], size_t maxnamelen)
-{
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (GetComputerNameW (name,
- LPDWORD (&maxnamelen)),
- ace_result_), int, -1);
-#else /* ACE_WIN32 && !ACE_HAS_WINCE */
- // Emulate using the char version
- char *char_name = 0;
- int result = 0;
-
- ACE_NEW_RETURN (char_name, char[maxnamelen], -1);
-
- result = ACE_OS::hostname(char_name, maxnamelen);
- ACE_OS::strcpy (name, ACE_Ascii_To_Wide (char_name).wchar_rep ());
-
- delete [] char_name;
- return result;
-#endif /* ACE_WIN32 && !ACE_HAS_WINCE */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE int
-ACE_OS::msgctl (int msqid, int cmd, struct msqid_ds *val)
-{
- ACE_OS_TRACE ("ACE_OS::msgctl");
-#if defined (ACE_HAS_SYSV_IPC)
- ACE_OSCALL_RETURN (::msgctl (msqid, cmd, val), int, -1);
-#else
- ACE_UNUSED_ARG (msqid);
- ACE_UNUSED_ARG (cmd);
- ACE_UNUSED_ARG (val);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SYSV_IPC */
-}
-
-ACE_INLINE int
-ACE_OS::msgget (key_t key, int msgflg)
-{
- ACE_OS_TRACE ("ACE_OS::msgget");
-#if defined (ACE_HAS_SYSV_IPC)
- ACE_OSCALL_RETURN (::msgget (key, msgflg), int, -1);
-#else
- ACE_UNUSED_ARG (key);
- ACE_UNUSED_ARG (msgflg);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SYSV_IPC */
-}
-
-ACE_INLINE int
-ACE_OS::msgrcv (int int_id, void *buf, size_t len,
- long type, int flags)
-{
- ACE_OS_TRACE ("ACE_OS::msgrcv");
-#if defined (ACE_HAS_SYSV_IPC)
-# if defined (ACE_LACKS_POSIX_PROTOTYPES) || defined (ACE_LACKS_SOME_POSIX_PROTOTYPES)
- ACE_OSCALL_RETURN (::msgrcv (int_id, (msgbuf *) buf, len, type, flags),
- int, -1);
-# else
- ACE_OSCALL_RETURN (::msgrcv (int_id, buf, len, type, flags),
- int, -1);
-# endif /* ACE_LACKS_POSIX_PROTOTYPES */
-#else
- ACE_UNUSED_ARG (int_id);
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (len);
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (flags);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SYSV_IPC */
-}
-
-ACE_INLINE int
-ACE_OS::msgsnd (int int_id, const void *buf, size_t len, int flags)
-{
- ACE_OS_TRACE ("ACE_OS::msgsnd");
-#if defined (ACE_HAS_SYSV_IPC)
-# if defined (ACE_HAS_NONCONST_MSGSND)
- ACE_OSCALL_RETURN (::msgsnd (int_id, (void *) buf, len, flags), int, -1);
-# elif defined (ACE_LACKS_POSIX_PROTOTYPES) || defined (ACE_LACKS_SOME_POSIX_PROTOTYPES)
- ACE_OSCALL_RETURN (::msgsnd (int_id, (msgbuf *) buf, len, flags), int, -1);
-# else
- ACE_OSCALL_RETURN (::msgsnd (int_id, buf, len, flags), int, -1);
-# endif /* ACE_LACKS_POSIX_PROTOTYPES || ACE_HAS_NONCONST_MSGSND */
-#else
- ACE_UNUSED_ARG (int_id);
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (len);
- ACE_UNUSED_ARG (flags);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SYSV_IPC */
-}
-
-ACE_INLINE u_int
-ACE_OS::alarm (u_int secs)
-{
- ACE_OS_TRACE ("ACE_OS::alarm");
-#if defined (ACE_WIN32) || defined (VXWORKS) || defined (CHORUS) || defined (ACE_PSOS)
- ACE_UNUSED_ARG (secs);
-
- ACE_NOTSUP_RETURN (0);
-#else
- return ::alarm (secs);
-#endif /* ACE_WIN32 || VXWORKS || CHORUS || ACE_PSOS */
-}
-
-ACE_INLINE u_int
-ACE_OS::ualarm (u_int usecs, u_int interval)
-{
- ACE_OS_TRACE ("ACE_OS::ualarm");
-
-#if defined (ACE_HAS_UALARM)
- return ::ualarm (usecs, interval);
-#elif !defined (ACE_LACKS_UNIX_SIGNALS)
- ACE_UNUSED_ARG (interval);
- return ::alarm (usecs * ACE_ONE_SECOND_IN_USECS);
-#else
- ACE_UNUSED_ARG (usecs);
- ACE_UNUSED_ARG (interval);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_UALARM */
-}
-
-ACE_INLINE u_int
-ACE_OS::ualarm (const ACE_Time_Value &tv,
- const ACE_Time_Value &tv_interval)
-{
- ACE_OS_TRACE ("ACE_OS::ualarm");
-
-#if defined (ACE_HAS_UALARM)
- u_int usecs = (tv.sec () * ACE_ONE_SECOND_IN_USECS) + tv.usec ();
- u_int interval = (tv_interval.sec () * ACE_ONE_SECOND_IN_USECS) + tv_interval.usec ();
- return ::ualarm (usecs, interval);
-#elif !defined (ACE_LACKS_UNIX_SIGNALS)
- ACE_UNUSED_ARG (tv_interval);
- return ::alarm (tv.sec ());
-#else
- ACE_UNUSED_ARG (tv_interval);
- ACE_UNUSED_ARG (tv);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_UALARM */
-}
-
-ACE_INLINE int
-ACE_OS::dlclose (ACE_SHLIB_HANDLE handle)
-{
- ACE_OS_TRACE ("ACE_OS::dlclose");
-#if defined (ACE_LACKS_DLCLOSE)
- ACE_UNUSED_ARG (handle);
- return 0;
-#elif defined (ACE_HAS_SVR4_DYNAMIC_LINKING)
-
-# if !defined (ACE_HAS_AUTOMATIC_INIT_FINI)
- // SunOS4 does not automatically call _fini()!
- void *ptr;
-
- ACE_OSCALL (::dlsym (handle, ACE_LIB_TEXT ("_fini")), void *, 0, ptr);
-
- if (ptr != 0)
- (*((int (*)(void)) ptr)) (); // Call _fini hook explicitly.
-# endif /* ACE_HAS_AUTOMATIC_INIT_FINI */
-#if defined (_M_UNIX)
- ACE_OSCALL_RETURN (::_dlclose (handle), int, -1);
-#else /* _MUNIX */
- ACE_OSCALL_RETURN (::dlclose (handle), int, -1);
-#endif /* _M_UNIX */
-#elif defined (ACE_WIN32)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::FreeLibrary (handle), ace_result_), int, -1);
-#elif defined (__hpux)
- // HP-UX 10.x and 32-bit 11.00 do not pay attention to the ref count
- // when unloading a dynamic lib. So, if the ref count is more than
- // 1, do not unload the lib. This will cause a library loaded more
- // than once to not be unloaded until the process runs down, but
- // that's life. It's better than unloading a library that's in use.
- // So far as I know, there's no way to decrement the refcnt that the
- // kernel is looking at - the shl_descriptor is a copy of what the
- // kernel has, not the actual struct. On 64-bit HP-UX using dlopen,
- // this problem has been fixed.
- struct shl_descriptor desc;
- if (shl_gethandle_r (handle, &desc) == -1)
- return -1;
- if (desc.ref_count > 1)
- return 0;
-# if defined(__GNUC__) || __cplusplus >= 199707L
- ACE_OSCALL_RETURN (::shl_unload (handle), int, -1);
-# else
- ACE_OSCALL_RETURN (::cxxshl_unload (handle), int, -1);
-# endif /* aC++ vs. Hp C++ */
-#else
- ACE_UNUSED_ARG (handle);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */
-}
-
-ACE_INLINE ACE_TCHAR *
-ACE_OS::dlerror (void)
-{
- ACE_OS_TRACE ("ACE_OS::dlerror");
-# if defined (ACE_HAS_SVR4_DYNAMIC_LINKING)
-#if defined(_M_UNIX)
- ACE_OSCALL_RETURN ((char *)::_dlerror (), char *, 0);
-#else /* _M_UNIX */
- ACE_OSCALL_RETURN ((char *)::dlerror (), char *, 0);
-#endif /* _M_UNIX */
-# elif defined (__hpux)
- ACE_OSCALL_RETURN (::strerror(errno), char *, 0);
-# elif defined (ACE_WIN32)
- static ACE_TCHAR buf[128];
-# if defined (ACE_HAS_PHARLAP)
- ACE_OS::sprintf (buf, "error code %d", GetLastError());
-# else
- ACE_TEXT_FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM,
- 0,
- ::GetLastError (),
- 0,
- buf,
- sizeof buf / sizeof buf[0],
- 0);
-# endif /* ACE_HAS_PHARLAP */
- return buf;
-# else
- ACE_NOTSUP_RETURN (0);
-# endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */
-}
-
-ACE_INLINE ACE_SHLIB_HANDLE
-ACE_OS::dlopen (const ACE_TCHAR *fname,
- int mode)
-{
- ACE_OS_TRACE ("ACE_OS::dlopen");
-
- // Get the correct OS type.
- ACE_DL_TYPE filename = ACE_const_cast (ACE_DL_TYPE, fname);
-
-# if defined (ACE_HAS_SVR4_DYNAMIC_LINKING)
- void *handle;
-# if defined (ACE_HAS_SGIDLADD)
- ACE_OSCALL (::sgidladd (filename, mode), void *, 0, handle);
-# elif defined (_M_UNIX)
- ACE_OSCALL (::_dlopen (filename, mode), void *, 0, handle);
-# else
- ACE_OSCALL (::dlopen (filename, mode), void *, 0, handle);
-# endif /* ACE_HAS_SGIDLADD */
-# if !defined (ACE_HAS_AUTOMATIC_INIT_FINI)
- if (handle != 0)
- {
- void *ptr;
- // Some systems (e.g., SunOS4) do not automatically call _init(), so
- // we'll have to call it manually.
-
- ACE_OSCALL (::dlsym (handle, ACE_LIB_TEXT ("_init")), void *, 0, ptr);
-
- if (ptr != 0 && (*((int (*)(void)) ptr)) () == -1) // Call _init hook explicitly.
- {
- // Close down the handle to prevent leaks.
- ::dlclose (handle);
- return 0;
- }
- }
-# endif /* ACE_HAS_AUTOMATIC_INIT_FINI */
- return handle;
-# elif defined (ACE_WIN32)
- ACE_UNUSED_ARG (mode);
-
- ACE_WIN32CALL_RETURN (ACE_TEXT_LoadLibrary (filename), ACE_SHLIB_HANDLE, 0);
-# elif defined (__hpux)
-
-# if defined(__GNUC__) || __cplusplus >= 199707L
- ACE_OSCALL_RETURN (::shl_load(filename, mode, 0L), ACE_SHLIB_HANDLE, 0);
-# else
- ACE_OSCALL_RETURN (::cxxshl_load(filename, mode, 0L), ACE_SHLIB_HANDLE, 0);
-# endif /* aC++ vs. Hp C++ */
-
-# else
- ACE_UNUSED_ARG (filename);
- ACE_UNUSED_ARG (mode);
- ACE_NOTSUP_RETURN (0);
-# endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */
-}
-
-ACE_INLINE void *
-ACE_OS::dlsym (ACE_SHLIB_HANDLE handle,
- const ACE_TCHAR *sname)
-{
- ACE_OS_TRACE ("ACE_OS::dlsym");
-
-#if defined (ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE)
- // Check if the handle is valid before making any calls using it.
- if (handle == ACE_SHLIB_INVALID_HANDLE)
- return 0;
-#endif /* ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE */
-
- // Get the correct OS type.
-#if defined (ACE_HAS_WINCE)
- const wchar_t *symbolname = sname;
-#elif defined (ACE_HAS_CHARPTR_DL)
- char *symbolname = ACE_const_cast (char *, sname);
-#elif !defined (ACE_WIN32) || !defined (ACE_USES_WCHAR)
- const char *symbolname = sname;
-#endif /* ACE_HAS_CHARPTR_DL */
-
-# if defined (ACE_HAS_SVR4_DYNAMIC_LINKING)
-
-# if defined (ACE_LACKS_POSIX_PROTOTYPES)
- ACE_OSCALL_RETURN (::dlsym (handle, symbolname), void *, 0);
-# elif defined (ACE_USES_ASM_SYMBOL_IN_DLSYM)
- int l = ACE_OS::strlen (symbolname) + 2;
- char *asm_symbolname = 0;
- ACE_NEW_RETURN (asm_symbolname, char[l], 0);
- ACE_OS::strcpy (asm_symbolname, "_") ;
- ACE_OS::strcpy (asm_symbolname + 1, symbolname) ;
- void *ace_result;
- ACE_OSCALL (::dlsym (handle, asm_symbolname), void *, 0, ace_result);
- delete [] asm_symbolname;
- return ace_result;
-# elif defined (_M_UNIX)
- ACE_OSCALL_RETURN (::_dlsym (handle, symbolname), void *, 0);
-# else
- ACE_OSCALL_RETURN (::dlsym (handle, symbolname), void *, 0);
-# endif /* ACE_LACKS_POSIX_PROTOTYPES */
-
-# elif defined (ACE_WIN32) && defined (ACE_USES_WCHAR) && !defined (ACE_HAS_WINCE)
-
- ACE_WIN32CALL_RETURN (::GetProcAddress (handle, ACE_TEXT_ALWAYS_CHAR (sname)), void *, 0);
-
-# elif defined (ACE_WIN32)
-
- ACE_WIN32CALL_RETURN (::GetProcAddress (handle, symbolname), void *, 0);
-
-# elif defined (__hpux)
-
- void *value;
- int status;
- shl_t _handle = handle;
- ACE_OSCALL (::shl_findsym(&_handle, symbolname, TYPE_UNDEFINED, &value), int, -1, status);
- return status == 0 ? value : 0;
-
-# else
-
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (symbolname);
- ACE_NOTSUP_RETURN (0);
-
-# endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */
-}
-
-ACE_INLINE int
-ACE_OS::step (const char *str, char *expbuf)
-{
- ACE_OS_TRACE ("ACE_OS::step");
-#if defined (ACE_HAS_REGEX)
- ACE_OSCALL_RETURN (::step (str, expbuf), int, -1);
-#else
- ACE_UNUSED_ARG (str);
- ACE_UNUSED_ARG (expbuf);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_REGEX */
-}
-
-ACE_INLINE long
-ACE_OS::sysinfo (int cmd, char *buf, long count)
-{
- ACE_OS_TRACE ("ACE_OS::sysinfo");
-#if defined (ACE_HAS_SYSINFO)
- ACE_OSCALL_RETURN (::sysinfo (cmd, buf, count), long, -1);
-#else
- ACE_UNUSED_ARG (cmd);
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (count);
-
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_SYSINFO */
-}
-
-ACE_INLINE ssize_t
-ACE_OS::write (ACE_HANDLE handle, const void *buf, size_t nbyte)
-{
- ACE_OS_TRACE ("ACE_OS::write");
-#if defined (ACE_WIN32)
- DWORD bytes_written; // This is set to 0 byte WriteFile.
-
- // Strictly correctly, we should loop writing all the data if more
- // than a DWORD length can hold.
- DWORD short_nbyte = ACE_static_cast (DWORD, nbyte);
- if (::WriteFile (handle, buf, short_nbyte, &bytes_written, 0))
- return (ssize_t) bytes_written;
- else
- ACE_FAIL_RETURN (-1);
-#elif defined (ACE_PSOS)
-# if defined (ACE_PSOS_LACKS_PHILE)
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (nbyte);
- ACE_NOTSUP_RETURN (-1);
-# else
- if(::write_f (handle, (void *) buf, nbyte) == 0)
- return (ssize_t) nbyte;
- else
- return -1;
-# endif /* defined (ACE_PSOS_LACKS_PHILE) */
-#else
-# if defined (ACE_LACKS_POSIX_PROTOTYPES)
- ACE_OSCALL_RETURN (::write (handle, (const char *) buf, nbyte), ssize_t, -1);
-# elif defined (ACE_PSOS)
- ACE_OSCALL_RETURN (::write_f(handle, (void *) buf, nbyte), ssize_t, -1);
-# elif defined (ACE_HAS_CHARPTR_SOCKOPT)
- ACE_OSCALL_RETURN (::write (handle, (char *) buf, nbyte), ssize_t, -1);
-# else
- ACE_OSCALL_RETURN (::write (handle, buf, nbyte), ssize_t, -1);
-# endif /* ACE_LACKS_POSIX_PROTOTYPES */
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE ssize_t
-ACE_OS::write (ACE_HANDLE handle, const void *buf, size_t nbyte,
- ACE_OVERLAPPED *overlapped)
-{
- ACE_OS_TRACE ("ACE_OS::write");
- overlapped = overlapped;
-#if defined (ACE_WIN32)
- DWORD bytes_written; // This is set to 0 byte WriteFile.
-
- DWORD short_nbyte = ACE_static_cast (DWORD, nbyte);
- if (::WriteFile (handle, buf, short_nbyte, &bytes_written, overlapped))
- return (ssize_t) bytes_written;
- else
- return -1;
-#else
- return ACE_OS::write (handle, buf, nbyte);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE ssize_t
-ACE_OS::read (ACE_HANDLE handle, void *buf, size_t len)
-{
- ACE_OS_TRACE ("ACE_OS::read");
-#if defined (ACE_WIN32)
- DWORD ok_len;
- if (::ReadFile (handle, buf, ACE_static_cast (DWORD, len), &ok_len, 0))
- return (ssize_t) ok_len;
- else
- ACE_FAIL_RETURN (-1);
-#elif defined (ACE_PSOS)
-# if defined (ACE_PSOS_LACKS_PHILE)
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (len);
- ACE_NOTSUP_RETURN (-1);
-# else
- u_long count;
- u_long result = ::read_f (handle, buf, len, &count);
- if (result != 0)
- return ACE_static_cast (ssize_t, -1);
- else
- return ACE_static_cast (ssize_t, count == len ? count : 0);
-# endif /* defined (ACE_PSOS_LACKS_PHILE */
-#else
-
- int result;
-
-# if defined (ACE_LACKS_POSIX_PROTOTYPES) || defined (ACE_HAS_CHARPTR_SOCKOPT)
- ACE_OSCALL (::read (handle, (char *) buf, len), ssize_t, -1, result);
-# else
- ACE_OSCALL (::read (handle, buf, len), ssize_t, -1, result);
-# endif /* ACE_LACKS_POSIX_PROTOTYPES */
- if (result == -1 && errno == EAGAIN)
- errno = EWOULDBLOCK;
- return result;
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE ssize_t
-ACE_OS::read (ACE_HANDLE handle, void *buf, size_t len,
- ACE_OVERLAPPED *overlapped)
-{
- ACE_OS_TRACE ("ACE_OS::read");
- overlapped = overlapped;
-#if defined (ACE_WIN32)
- DWORD ok_len;
- DWORD short_len = ACE_static_cast (DWORD, len);
- if (::ReadFile (handle, buf, short_len, &ok_len, overlapped))
- return (ssize_t) ok_len;
- else
- ACE_FAIL_RETURN (-1);
-#else
- return ACE_OS::read (handle, buf, len);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::readlink (const char *path, char *buf, size_t bufsiz)
-{
- ACE_OS_TRACE ("ACE_OS::readlink");
-# if defined (ACE_LACKS_READLINK) || \
- defined (ACE_HAS_WINCE) || defined (ACE_WIN32)
- ACE_UNUSED_ARG (path);
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (bufsiz);
- ACE_NOTSUP_RETURN (-1);
-# else
-# if !defined(ACE_HAS_NONCONST_READLINK)
- ACE_OSCALL_RETURN (::readlink (path, buf, bufsiz), int, -1);
-# else
- ACE_OSCALL_RETURN (::readlink ((char *)path, buf, bufsiz), int, -1);
-# endif
-# endif /* ACE_LACKS_READLINK */
-}
-
-ACE_INLINE int
-ACE_OS::getmsg (ACE_HANDLE handle,
- struct strbuf *ctl,
- struct strbuf *data,
- int *flags)
-{
- ACE_OS_TRACE ("ACE_OS::getmsg");
-#if defined (ACE_HAS_STREAM_PIPES)
- ACE_OSCALL_RETURN (::getmsg (handle, ctl, data, flags), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (ctl);
- ACE_UNUSED_ARG (data);
- ACE_UNUSED_ARG (flags);
-
- // I'm not sure how to implement this correctly.
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_STREAM_PIPES */
-}
-
-ACE_INLINE int
-ACE_OS::getpmsg (ACE_HANDLE handle,
- struct strbuf *ctl,
- struct strbuf *data,
- int *band,
- int *flags)
-{
- ACE_OS_TRACE ("ACE_OS::getpmsg");
-#if defined (ACE_HAS_STREAM_PIPES)
- ACE_OSCALL_RETURN (::getpmsg (handle, ctl, data, band, flags), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (ctl);
- ACE_UNUSED_ARG (data);
- ACE_UNUSED_ARG (band);
- ACE_UNUSED_ARG (flags);
-
- // I'm not sure how to implement this correctly.
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_STREAM_PIPES */
-}
-
-ACE_INLINE int
-ACE_OS::getrusage (int who, struct rusage *ru)
-{
- ACE_OS_TRACE ("ACE_OS::getrusage");
-
-#if defined (ACE_HAS_SYSCALL_GETRUSAGE)
- // This nonsense is necessary for HP/UX...
- ACE_OSCALL_RETURN (::syscall (SYS_GETRUSAGE, who, ru), int, -1);
-#elif defined (ACE_HAS_GETRUSAGE)
-# if defined (ACE_WIN32)
- ACE_UNUSED_ARG (who);
-
- FILETIME dummy_1;
- FILETIME dummy_2;
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::GetProcessTimes (::GetCurrentProcess(),
- &dummy_1, // start
- &dummy_2, // exited
- &ru->ru_stime,
- &ru->ru_utime),
- ace_result_),
- int, -1);
-# else
-# if defined (ACE_HAS_RUSAGE_WHO_ENUM)
- ACE_OSCALL_RETURN (::getrusage ((ACE_HAS_RUSAGE_WHO_ENUM) who, ru), int, -1);
-# else
- ACE_OSCALL_RETURN (::getrusage (who, ru), int, -1);
-# endif /* ACE_HAS_RUSAGE_WHO_ENUM */
-# endif /* ACE_WIN32 */
-#else
- who = who;
- ru = ru;
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SYSCALL_GETRUSAGE */
-}
-
-ACE_INLINE int
-ACE_OS::isastream (ACE_HANDLE handle)
-{
- ACE_OS_TRACE ("ACE_OS::isastream");
-#if defined (ACE_HAS_STREAM_PIPES)
- ACE_OSCALL_RETURN (::isastream (handle), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_STREAM_PIPES */
-}
-
-// Implements simple read/write control for pages. Affects a page if
-// part of the page is referenced. Currently PROT_READ, PROT_WRITE,
-// and PROT_RDWR has been mapped in OS.h. This needn't have anything
-// to do with a mmap region.
-
-ACE_INLINE int
-ACE_OS::mprotect (void *addr, size_t len, int prot)
-{
- ACE_OS_TRACE ("ACE_OS::mprotect");
-#if defined (ACE_WIN32) && !defined (ACE_HAS_PHARLAP)
- DWORD dummy; // Sigh!
- return ::VirtualProtect(addr, len, prot, &dummy) ? 0 : -1;
-#elif !defined (ACE_LACKS_MPROTECT)
- ACE_OSCALL_RETURN (::mprotect ((ACE_MMAP_TYPE) addr, len, prot), int, -1);
-#else
- ACE_UNUSED_ARG (addr);
- ACE_UNUSED_ARG (len);
- ACE_UNUSED_ARG (prot);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_WIN32 && !ACE_HAS_PHARLAP */
-}
-
-ACE_INLINE int
-ACE_OS::msync (void *addr, size_t len, int sync)
-{
- ACE_OS_TRACE ("ACE_OS::msync");
-#if defined (ACE_WIN32) && !defined (ACE_HAS_PHARLAP)
- ACE_UNUSED_ARG (sync);
-
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::FlushViewOfFile (addr, len), ace_result_), int, -1);
-#elif !defined (ACE_LACKS_MSYNC)
-# if !defined (ACE_HAS_BROKEN_NETBSD_MSYNC)
- ACE_OSCALL_RETURN (::msync ((ACE_MMAP_TYPE) addr, len, sync), int, -1);
-# else
- ACE_OSCALL_RETURN (::msync ((ACE_MMAP_TYPE) addr, len), int, -1);
- ACE_UNUSED_ARG (sync);
-# endif /* ACE_HAS_BROKEN_NETBSD_MSYNC */
-#else
- ACE_UNUSED_ARG (addr);
- ACE_UNUSED_ARG (len);
- ACE_UNUSED_ARG (sync);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_WIN32 && !ACE_HAS_PHARLAP */
-}
-
-ACE_INLINE int
-ACE_OS::munmap (void *addr, size_t len)
-{
- ACE_OS_TRACE ("ACE_OS::munmap");
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG (len);
-
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::UnmapViewOfFile (addr), ace_result_), int, -1);
-#elif !defined (ACE_LACKS_MMAP)
- ACE_OSCALL_RETURN (::munmap ((ACE_MMAP_TYPE) addr, len), int, -1);
-#else
- ACE_UNUSED_ARG (addr);
- ACE_UNUSED_ARG (len);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::madvise (caddr_t addr, size_t len, int advice)
-{
- ACE_OS_TRACE ("ACE_OS::madvise");
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG (addr);
- ACE_UNUSED_ARG (len);
- ACE_UNUSED_ARG (advice);
-
- ACE_NOTSUP_RETURN (-1);
-#elif !defined (ACE_LACKS_MADVISE)
- ACE_OSCALL_RETURN (::madvise (addr, len, advice), int, -1);
-#else
- ACE_UNUSED_ARG (addr);
- ACE_UNUSED_ARG (len);
- ACE_UNUSED_ARG (advice);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::putmsg (ACE_HANDLE handle, const struct strbuf *ctl,
- const struct strbuf *data, int flags)
-{
- ACE_OS_TRACE ("ACE_OS::putmsg");
-#if defined (ACE_HAS_STREAM_PIPES)
- ACE_OSCALL_RETURN (::putmsg (handle,
- (ACE_STRBUF_TYPE) ctl,
- (ACE_STRBUF_TYPE) data,
- flags), int, -1);
-#else
- ACE_UNUSED_ARG (flags);
- if (ctl == 0 && data == 0)
- {
- errno = EINVAL;
- return 0;
- }
- // Handle the two easy cases.
- else if (ctl != 0)
- return ACE_OS::write (handle, ctl->buf, ctl->len);
- else if (data != 0)
- return ACE_OS::write (handle, data->buf, data->len);
- else
- {
- // This is the hard case.
- char *buf;
- ACE_NEW_RETURN (buf, char [ctl->len + data->len], -1);
- ACE_OS::memcpy (buf, ctl->buf, ctl->len);
- ACE_OS::memcpy (buf + ctl->len, data->buf, data->len);
- int result = ACE_OS::write (handle, buf, ctl->len + data->len);
- delete [] buf;
- return result;
- }
-#endif /* ACE_HAS_STREAM_PIPES */
-}
-
-ACE_INLINE int
-ACE_OS::putpmsg (ACE_HANDLE handle,
- const struct strbuf *ctl,
- const struct strbuf *data,
- int band,
- int flags)
-{
- ACE_OS_TRACE ("ACE_OS::putpmsg");
-#if defined (ACE_HAS_STREAM_PIPES)
- ACE_OSCALL_RETURN (::putpmsg (handle,
- (ACE_STRBUF_TYPE) ctl,
- (ACE_STRBUF_TYPE) data,
- band, flags), int, -1);
-#else
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (band);
- return ACE_OS::putmsg (handle, ctl, data, flags);
-#endif /* ACE_HAS_STREAM_PIPES */
-}
-
-ACE_INLINE int
-ACE_OS::semctl (int int_id, int semnum, int cmd, semun value)
-{
- ACE_OS_TRACE ("ACE_OS::semctl");
-#if defined (ACE_HAS_SYSV_IPC)
- ACE_OSCALL_RETURN (::semctl (int_id, semnum, cmd, value), int, -1);
-#else
- ACE_UNUSED_ARG (int_id);
- ACE_UNUSED_ARG (semnum);
- ACE_UNUSED_ARG (cmd);
- ACE_UNUSED_ARG (value);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SYSV_IPC */
-}
-
-ACE_INLINE int
-ACE_OS::semget (key_t key, int nsems, int flags)
-{
- ACE_OS_TRACE ("ACE_OS::semget");
-#if defined (ACE_HAS_SYSV_IPC)
- ACE_OSCALL_RETURN (::semget (key, nsems, flags), int, -1);
-#else
- ACE_UNUSED_ARG (key);
- ACE_UNUSED_ARG (nsems);
- ACE_UNUSED_ARG (flags);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SYSV_IPC */
-}
-
-ACE_INLINE int
-ACE_OS::semop (int int_id, struct sembuf *sops, size_t nsops)
-{
- ACE_OS_TRACE ("ACE_OS::semop");
-#if defined (ACE_HAS_SYSV_IPC)
- ACE_OSCALL_RETURN (::semop (int_id, sops, nsops), int, -1);
-#else
- ACE_UNUSED_ARG (int_id);
- ACE_UNUSED_ARG (sops);
- ACE_UNUSED_ARG (nsops);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SYSV_IPC */
-}
-
-ACE_INLINE void *
-ACE_OS::shmat (int int_id, void *shmaddr, int shmflg)
-{
- ACE_OS_TRACE ("ACE_OS::shmat");
-#if defined (ACE_HAS_SYSV_IPC)
-# if defined (ACE_LACKS_POSIX_PROTOTYPES) || defined (ACE_LACKS_SOME_POSIX_PROTOTYPES)
- ACE_OSCALL_RETURN (::shmat (int_id, (char *)shmaddr, shmflg), void *, (void *) -1);
-# else
- ACE_OSCALL_RETURN (::shmat (int_id, shmaddr, shmflg), void *, (void *) -1);
-# endif /* ACE_LACKS_POSIX_PROTOTYPES */
-#else
- ACE_UNUSED_ARG (int_id);
- ACE_UNUSED_ARG (shmaddr);
- ACE_UNUSED_ARG (shmflg);
-
- ACE_NOTSUP_RETURN ((void *) -1);
-#endif /* ACE_HAS_SYSV_IPC */
-}
-
-ACE_INLINE int
-ACE_OS::shmctl (int int_id, int cmd, struct shmid_ds *buf)
-{
- ACE_OS_TRACE ("ACE_OS::shmctl");
-#if defined (ACE_HAS_SYSV_IPC)
- ACE_OSCALL_RETURN (::shmctl (int_id, cmd, buf), int, -1);
-#else
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (cmd);
- ACE_UNUSED_ARG (int_id);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SYSV_IPC */
-}
-
-ACE_INLINE int
-ACE_OS::shmdt (void *shmaddr)
-{
- ACE_OS_TRACE ("ACE_OS::shmdt");
-#if defined (ACE_HAS_SYSV_IPC)
- ACE_OSCALL_RETURN (::shmdt ((char *) shmaddr), int, -1);
-#else
- ACE_UNUSED_ARG (shmaddr);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SYSV_IPC */
-}
-
-ACE_INLINE int
-ACE_OS::shmget (key_t key, int size, int flags)
-{
- ACE_OS_TRACE ("ACE_OS::shmget");
-#if defined (ACE_HAS_SYSV_IPC)
- ACE_OSCALL_RETURN (::shmget (key, size, flags), int, -1);
-#else
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (size);
- ACE_UNUSED_ARG (key);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SYSV_IPC */
-}
-
-ACE_INLINE void
-ACE_OS::tzset (void)
-{
-#if !defined (ACE_HAS_WINCE) && !defined (VXWORKS) && !defined (ACE_PSOS) && ! defined(__rtems__)
-# if defined (ACE_WIN32)
- ::_tzset (); // For Win32.
-# else
- ::tzset (); // For UNIX platforms.
-# endif /* ACE_WIN32 */
-# else
- errno = ENOTSUP;
-# endif /* ACE_HAS_WINCE && !VXWORKS && !ACE_PSOS && !__rtems__ */
-}
-
-ACE_INLINE long
-ACE_OS::timezone (void)
-{
- return ::ace_timezone ();
-}
-
-#if !defined (ACE_LACKS_DIFFTIME)
-ACE_INLINE double
-ACE_OS::difftime (time_t t1, time_t t0)
-{
- return ::ace_difftime (t1, t0);
-}
-#endif /* ! ACE_LACKS_DIFFTIME */
-
-// Magic number declaration and definition for ctime and ctime_r ()
-static const int ctime_buf_size = 26;
-
-ACE_INLINE ACE_TCHAR *
-ACE_OS::ctime (const time_t *t)
-{
- ACE_OS_TRACE ("ACE_OS::ctime");
-#if defined (ACE_HAS_BROKEN_CTIME)
- ACE_OSCALL_RETURN (::asctime (::localtime (t)), char *, 0);
-#elif defined(ACE_PSOS) && ! defined (ACE_PSOS_HAS_TIME)
- return "ctime-return";
-#elif defined (ACE_HAS_WINCE)
- static ACE_TCHAR buf [ctime_buf_size];
- return ACE_OS::ctime_r (t,
- buf,
- ctime_buf_size);
-#elif defined (ACE_USES_WCHAR)
- ACE_OSCALL_RETURN (::_wctime (t), wchar_t *, 0);
-#else
- ACE_OSCALL_RETURN (::ctime (t), char *, 0);
-# endif /* ACE_HAS_BROKEN_CTIME */
-}
-
-#if !defined (ACE_HAS_WINCE) /* CE version in OS.cpp */
-ACE_INLINE ACE_TCHAR *
-ACE_OS::ctime_r (const time_t *t, ACE_TCHAR *buf, int buflen)
-{
- ACE_OS_TRACE ("ACE_OS::ctime_r");
-
-#if defined (ACE_HAS_REENTRANT_FUNCTIONS)
-# if defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R)
- if (buflen < ctime_buf_size)
- {
- errno = ERANGE;
- return 0;
- }
-# if defined (DIGITAL_UNIX)
- ACE_OSCALL_RETURN (::_Pctime_r (t, buf), ACE_TCHAR *, 0);
-# else /* DIGITAL_UNIX */
- ACE_OSCALL_RETURN (::ctime_r (t, buf), ACE_TCHAR *, 0);
-# endif /* DIGITAL_UNIX */
- return buf;
-# else /* ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R */
-
-# if defined (ACE_CTIME_R_RETURNS_INT)
- return (::ctime_r (t, buf, buflen) == -1 ? 0 : buf);
-# else /* ACE_CTIME_R_RETURNS_INT */
- ACE_OSCALL_RETURN (::ctime_r (t, buf, buflen), ACE_TCHAR *, 0);
-# endif /* ACE_CTIME_R_RETURNS_INT */
-
-# endif /* ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R */
-#else /* ACE_HAS_REENTRANT_FUNCTIONS */
-# if defined(ACE_PSOS) && ! defined (ACE_PSOS_HAS_TIME)
- ACE_OS::strsncpy (buf, "ctime-return", buflen);
- return buf;
-# else /* ACE_PSOS && !ACE_PSOS_HAS_TIME */
- if (buflen < ctime_buf_size)
- {
- errno = ERANGE;
- return 0;
- }
-
- ACE_TCHAR *result;
-# if defined (ACE_USES_WCHAR)
- ACE_OSCALL (::_wctime (t), wchar_t *, 0, result);
-# else /* ACE_USES_WCHAR */
- ACE_OSCALL (::ctime (t), char *, 0, result);
-# endif /* ACE_USES_WCHAR */
- if (result != 0)
- ACE_OS::strsncpy (buf, result, buflen);
- return buf;
-# endif /* ACE_PSOS && !ACE_PSOS_HAS_TIME */
-#endif /* ACE_HAS_REENTRANT_FUNCTIONS */
-}
-#endif /* !ACE_HAS_WINCE */
-
-ACE_INLINE struct tm *
-ACE_OS::localtime (const time_t *t)
-{
-#if !defined (ACE_HAS_WINCE) && !defined (ACE_PSOS) || defined (ACE_PSOS_HAS_TIME)
- ACE_OS_TRACE ("ACE_OS::localtime");
- ACE_OSCALL_RETURN (::localtime (t), struct tm *, 0);
-#else
- // @@ Don't you start wondering what kind of functions
- // does WinCE really support?
- ACE_UNUSED_ARG (t);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_WINCE && !ACE_PSOS || ACE_PSOS_HAS_TIME */
-}
-
-ACE_INLINE struct tm *
-ACE_OS::gmtime (const time_t *t)
-{
-#if !defined (ACE_HAS_WINCE) && !defined (ACE_PSOS) || defined (ACE_PSOS_HAS_TIME)
- ACE_OS_TRACE ("ACE_OS::gmtime");
- ACE_OSCALL_RETURN (::gmtime (t), struct tm *, 0);
-#else
- // @@ WinCE doesn't have gmtime also.
- ACE_UNUSED_ARG (t);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_WINCE && !ACE_PSOS || ACE_PSOS_HAS_TIME */
-}
-
-ACE_INLINE struct tm *
-ACE_OS::gmtime_r (const time_t *t, struct tm *res)
-{
- ACE_OS_TRACE ("ACE_OS::gmtime_r");
-#if defined (ACE_HAS_REENTRANT_FUNCTIONS)
-# if defined (DIGITAL_UNIX)
- ACE_OSCALL_RETURN (::_Pgmtime_r (t, res), struct tm *, 0);
-# elif defined (HPUX_10)
- return (::gmtime_r (t, res) == 0 ? res : (struct tm *) 0);
-# else
- ACE_OSCALL_RETURN (::gmtime_r (t, res), struct tm *, 0);
-# endif /* DIGITAL_UNIX */
-#elif !defined (ACE_HAS_WINCE) && !defined(ACE_PSOS) || defined (ACE_PSOS_HAS_TIME)
- struct tm *result;
- ACE_OSCALL (::gmtime (t), struct tm *, 0, result) ;
- if (result != 0)
- *res = *result;
- return res;
-#else
- // @@ Same as ACE_OS::gmtime (), you need to implement it
- // yourself.
- ACE_UNUSED_ARG (t);
- ACE_UNUSED_ARG (res);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_REENTRANT_FUNCTIONS */
-}
-
-ACE_INLINE char *
-ACE_OS::asctime (const struct tm *t)
-{
-#if !defined (ACE_HAS_WINCE) && !defined(ACE_PSOS) || defined (ACE_PSOS_HAS_TIME)
- ACE_OS_TRACE ("ACE_OS::asctime");
- ACE_OSCALL_RETURN (::asctime (t), char *, 0);
-#else
- // @@ WinCE doesn't have gmtime also.
- ACE_UNUSED_ARG (t);
- ACE_NOTSUP_RETURN (0);
-#endif /* !ACE_HAS_WINCE && !ACE_PSOS || ACE_PSOS_HAS_TIME */
-}
-
-ACE_INLINE char *
-ACE_OS::asctime_r (const struct tm *t, char *buf, int buflen)
-{
- ACE_OS_TRACE ("ACE_OS::asctime_r");
-#if defined (ACE_HAS_REENTRANT_FUNCTIONS)
-# if defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R)
- char *result;
-# if defined (DIGITAL_UNIX)
- ACE_OSCALL (::_Pasctime_r (t, buf), char *, 0, result);
-# else
- ACE_OSCALL (::asctime_r (t, buf), char *, 0, result);
-# endif /* DIGITAL_UNIX */
- ACE_OS::strsncpy (buf, result, buflen);
- return buf;
-# else
-# if defined (HPUX_10)
- return (::asctime_r(t, buf, buflen) == 0 ? buf : (char *)0);
-# else
- ACE_OSCALL_RETURN (::asctime_r (t, buf, buflen), char *, 0);
-# endif /* HPUX_10 */
-# endif /* ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R */
-#elif ! defined (ACE_HAS_WINCE) && !defined(ACE_PSOS) || defined (ACE_PSOS_HAS_TIME)
- char *result;
- ACE_OSCALL (::asctime (t), char *, 0, result);
- ACE_OS::strsncpy (buf, result, buflen);
- return buf;
-#else
- // @@ Same as ACE_OS::asctime (), you need to implement it
- // yourself.
- ACE_UNUSED_ARG (t);
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (buflen);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_REENTRANT_FUNCTIONS */
-}
-
-ACE_INLINE size_t
-ACE_OS::strftime (char *s, size_t maxsize, const char *format,
- const struct tm *timeptr)
-{
-#if !defined (ACE_HAS_WINCE) && !defined(ACE_PSOS) || defined (ACE_PSOS_HAS_TIME)
- return ::strftime (s, maxsize, format, timeptr);
-#else
- ACE_UNUSED_ARG (s);
- ACE_UNUSED_ARG (maxsize);
- ACE_UNUSED_ARG (format);
- ACE_UNUSED_ARG (timeptr);
- ACE_NOTSUP_RETURN (0);
-#endif /* !ACE_HAS_WINCE && !ACE_PSOS || ACE_PSOS_HAS_TIME */
-}
-
-ACE_INLINE int
-ACE_OS::flock_init (ACE_OS::ace_flock_t *lock,
- int flags,
- const ACE_TCHAR *name,
- mode_t perms)
-{
- ACE_OS_TRACE ("ACE_OS::flock_init");
-#if defined (CHORUS)
- lock->lockname_ = 0;
- // Let's see if it already exists.
- lock->handle_ = ACE_OS::shm_open (name,
- flags | O_CREAT | O_EXCL,
- perms);
- if (lock->handle_ == ACE_INVALID_HANDLE)
- {
- if (errno == EEXIST)
- // It's already there, so we'll just open it.
- lock->handle_ = ACE_OS::shm_open (name,
- flags | O_CREAT,
- ACE_DEFAULT_FILE_PERMS);
- else
- return -1;
- }
- else
- {
- // We own this shared memory object! Let's set its size.
- if (ACE_OS::ftruncate (lock->handle_,
- sizeof (ACE_mutex_t)) == -1)
- return -1;
- // Note that only the owner can destroy a file lock...
- ACE_ALLOCATOR_RETURN (lock->lockname_,
- ACE_OS::strdup (name),
- -1);
- }
- if (lock->handle_ == ACE_INVALID_HANDLE)
- return -1;
-
- lock->process_lock_ =
- (ACE_mutex_t *) ACE_OS::mmap (0,
- sizeof (ACE_mutex_t),
- PROT_RDWR,
- MAP_SHARED,
- lock->handle_,
- 0);
- if (lock->process_lock_ == MAP_FAILED)
- return -1;
-
- if (lock->lockname_
- // Only initialize it if we're the one who created it.
- && ACE_OS::mutex_init (lock->process_lock_,
- USYNC_PROCESS,
- name,
- 0) != 0)
- return -1;
- return 0;
-#else
-#if defined (ACE_WIN32)
- // Once initialized, these values are never changed.
- lock->overlapped_.Internal = 0;
- lock->overlapped_.InternalHigh = 0;
- lock->overlapped_.OffsetHigh = 0;
- lock->overlapped_.hEvent = 0;
-#endif /* ACE_WIN32 */
- lock->handle_ = ACE_INVALID_HANDLE;
- lock->lockname_ = 0;
-
- if (name != 0)
- {
- ACE_OSCALL (ACE_OS::open (name, flags, perms),
- ACE_HANDLE,
- ACE_INVALID_HANDLE,
- lock->handle_);
- lock->lockname_ = ACE_OS::strdup (name);
- return lock->handle_ == ACE_INVALID_HANDLE ? -1 : 0;
- }
- else
- return 0;
-#endif /* CHORUS */
-}
-
-#if defined (ACE_WIN32)
-ACE_INLINE void
-ACE_OS::adjust_flock_params (ACE_OS::ace_flock_t *lock,
- short whence,
- off_t &start,
- off_t &len)
-{
- switch (whence)
- {
- case SEEK_SET:
- break;
- case SEEK_CUR:
- start += SetFilePointer (lock->handle_, 0, 0, FILE_CURRENT);
- break;
- case SEEK_END:
- start += ::GetFileSize (lock->handle_, 0);
- break;
- }
- lock->overlapped_.Offset = start;
- if (len == 0)
- len = ::GetFileSize (lock->handle_,
- 0) - start;
-}
-#endif /* ACE_WIN32 */
-
-ACE_INLINE int
-ACE_OS::flock_wrlock (ACE_OS::ace_flock_t *lock,
- short whence,
- off_t start,
- off_t len)
-{
- ACE_OS_TRACE ("ACE_OS::flock_wrlock");
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
- ACE_OS::adjust_flock_params (lock, whence, start, len);
-# if defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::LockFileEx (lock->handle_,
- LOCKFILE_EXCLUSIVE_LOCK,
- 0,
- len,
- 0,
- &lock->overlapped_),
- ace_result_), int, -1);
-# else /* ACE_HAS_WINNT4 && (ACE_HAS_WINNT4 != 0) */
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::LockFile (lock->handle_,
- lock->overlapped_.Offset,
- 0,
- len,
- 0),
- ace_result_), int, -1);
-# endif /* ACE_HAS_WINNT4 && (ACE_HAS_WINNT4 != 0) */
-#elif defined (CHORUS)
- ACE_UNUSED_ARG (whence);
- ACE_UNUSED_ARG (start);
- ACE_UNUSED_ARG (len);
- return ACE_OS::mutex_lock (lock->process_lock_);
-#elif defined (ACE_LACKS_FILELOCKS)
- ACE_UNUSED_ARG (lock);
- ACE_UNUSED_ARG (whence);
- ACE_UNUSED_ARG (start);
- ACE_UNUSED_ARG (len);
- ACE_NOTSUP_RETURN (-1);
-#else
- lock->lock_.l_whence = whence;
- lock->lock_.l_start = start;
- lock->lock_.l_len = len;
- lock->lock_.l_type = F_WRLCK; // set write lock
- // block, if no access
- ACE_OSCALL_RETURN (ACE_OS::fcntl (lock->handle_, F_SETLKW,
- ACE_reinterpret_cast (long, &lock->lock_)),
- int, -1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::flock_rdlock (ACE_OS::ace_flock_t *lock,
- short whence,
- off_t start,
- off_t len)
-{
- ACE_OS_TRACE ("ACE_OS::flock_rdlock");
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
- ACE_OS::adjust_flock_params (lock, whence, start, len);
-# if defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::LockFileEx (lock->handle_,
- 0,
- 0,
- len,
- 0,
- &lock->overlapped_),
- ace_result_), int, -1);
-# else /* ACE_HAS_WINNT4 && (ACE_HAS_WINNT4 != 0) */
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::LockFile (lock->handle_,
- lock->overlapped_.Offset,
- 0,
- len,
- 0),
- ace_result_), int, -1);
-# endif /* ACE_HAS_WINNT4 && (ACE_HAS_WINNT4 != 0) */
-#elif defined (CHORUS)
- ACE_UNUSED_ARG (whence);
- ACE_UNUSED_ARG (start);
- ACE_UNUSED_ARG (len);
- return ACE_OS::mutex_lock (lock->process_lock_);
-#elif defined (ACE_LACKS_FILELOCKS)
- ACE_UNUSED_ARG (lock);
- ACE_UNUSED_ARG (whence);
- ACE_UNUSED_ARG (start);
- ACE_UNUSED_ARG (len);
- ACE_NOTSUP_RETURN (-1);
-#else
- lock->lock_.l_whence = whence;
- lock->lock_.l_start = start;
- lock->lock_.l_len = len;
- lock->lock_.l_type = F_RDLCK; // set read lock
- // block, if no access
- ACE_OSCALL_RETURN (ACE_OS::fcntl (lock->handle_, F_SETLKW,
- ACE_reinterpret_cast (long, &lock->lock_)),
- int, -1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::flock_trywrlock (ACE_OS::ace_flock_t *lock,
- short whence,
- off_t start,
- off_t len)
-{
- ACE_OS_TRACE ("ACE_OS::ace_flock_trywrlock");
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
-# if defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)
- ACE_OS::adjust_flock_params (lock, whence, start, len);
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::LockFileEx (lock->handle_,
- LOCKFILE_FAIL_IMMEDIATELY | LOCKFILE_EXCLUSIVE_LOCK,
- 0,
- len,
- 0,
- &lock->overlapped_),
- ace_result_), int, -1);
-# else /* ACE_HAS_WINNT4 && (ACE_HAS_WINNT4 != 0) */
- ACE_UNUSED_ARG (lock);
- ACE_UNUSED_ARG (whence);
- ACE_UNUSED_ARG (start);
- ACE_UNUSED_ARG (len);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_WINNT4 && (ACE_HAS_WINNT4 != 0) */
-#elif defined (CHORUS)
- ACE_UNUSED_ARG (whence);
- ACE_UNUSED_ARG (start);
- ACE_UNUSED_ARG (len);
- return ACE_OS::mutex_trylock (lock->process_lock_);
-#elif defined (ACE_LACKS_FILELOCKS)
- ACE_UNUSED_ARG (lock);
- ACE_UNUSED_ARG (whence);
- ACE_UNUSED_ARG (start);
- ACE_UNUSED_ARG (len);
- ACE_NOTSUP_RETURN (-1);
-#else
- lock->lock_.l_whence = whence;
- lock->lock_.l_start = start;
- lock->lock_.l_len = len;
- lock->lock_.l_type = F_WRLCK; // set write lock
-
- int result = 0;
- // Does not block, if no access, returns -1 and set errno = EBUSY;
- ACE_OSCALL (ACE_OS::fcntl (lock->handle_,
- F_SETLK,
- ACE_reinterpret_cast (long, &lock->lock_)),
- int, -1, result);
-
-# if ! defined (ACE_PSOS)
- if (result == -1 && (errno == EACCES || errno == EAGAIN))
- errno = EBUSY;
-# endif /* ! defined (ACE_PSOS) */
-
- return result;
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::flock_tryrdlock (ACE_OS::ace_flock_t *lock,
- short whence,
- off_t start,
- off_t len)
-{
- ACE_OS_TRACE ("ACE_OS::ace_flock_tryrdlock");
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
-# if defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)
- ACE_OS::adjust_flock_params (lock, whence, start, len);
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::LockFileEx (lock->handle_,
- LOCKFILE_FAIL_IMMEDIATELY,
- 0,
- len,
- 0,
- &lock->overlapped_),
- ace_result_), int, -1);
-# else /* ACE_HAS_WINNT4 && (ACE_HAS_WINNT4 != 0) */
- ACE_UNUSED_ARG (lock);
- ACE_UNUSED_ARG (whence);
- ACE_UNUSED_ARG (start);
- ACE_UNUSED_ARG (len);
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_WINNT4 && (ACE_HAS_WINNT4 != 0) */
-#elif defined (CHORUS)
- ACE_UNUSED_ARG (whence);
- ACE_UNUSED_ARG (start);
- ACE_UNUSED_ARG (len);
- return ACE_OS::mutex_trylock (lock->process_lock_);
-#elif defined (ACE_LACKS_FILELOCKS)
- ACE_UNUSED_ARG (lock);
- ACE_UNUSED_ARG (whence);
- ACE_UNUSED_ARG (start);
- ACE_UNUSED_ARG (len);
- ACE_NOTSUP_RETURN (-1);
-#else
- lock->lock_.l_whence = whence;
- lock->lock_.l_start = start;
- lock->lock_.l_len = len;
- lock->lock_.l_type = F_RDLCK; // set read lock
-
- int result = 0;
- // Does not block, if no access, returns -1 and set errno = EBUSY;
- ACE_OSCALL (ACE_OS::fcntl (lock->handle_, F_SETLK,
- ACE_reinterpret_cast (long, &lock->lock_)),
- int, -1, result);
-
-# if ! defined (ACE_PSOS)
- if (result == -1 && (errno == EACCES || errno == EAGAIN))
- errno = EBUSY;
-# endif /* ! defined (ACE_PSOS) */
-
- return result;
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::flock_unlock (ACE_OS::ace_flock_t *lock,
- short whence,
- off_t start,
- off_t len)
-{
- ACE_OS_TRACE ("ACE_OS::flock_unlock");
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
- ACE_OS::adjust_flock_params (lock, whence, start, len);
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::UnlockFile (lock->handle_,
- lock->overlapped_.Offset,
- 0,
- len,
- 0),
- ace_result_), int, -1);
-#elif defined (CHORUS)
- ACE_UNUSED_ARG (whence);
- ACE_UNUSED_ARG (start);
- ACE_UNUSED_ARG (len);
- return ACE_OS::mutex_unlock (lock->process_lock_);
-#elif defined (ACE_LACKS_FILELOCKS)
- ACE_UNUSED_ARG (lock);
- ACE_UNUSED_ARG (whence);
- ACE_UNUSED_ARG (start);
- ACE_UNUSED_ARG (len);
- ACE_NOTSUP_RETURN (-1);
-#else
- lock->lock_.l_whence = whence;
- lock->lock_.l_start = start;
- lock->lock_.l_len = len;
- lock->lock_.l_type = F_UNLCK; // Unlock file.
-
- // release lock
- ACE_OSCALL_RETURN (ACE_OS::fcntl (lock->handle_, F_SETLK,
- ACE_reinterpret_cast (long, &lock->lock_)),
- int, -1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::flock_destroy (ACE_OS::ace_flock_t *lock,
- int unlink_file)
-{
- ACE_OS_TRACE ("ACE_OS::flock_destroy");
- if (lock->handle_ != ACE_INVALID_HANDLE)
- {
- ACE_OS::flock_unlock (lock);
- // Close the handle.
- ACE_OS::close (lock->handle_);
- lock->handle_ = ACE_INVALID_HANDLE;
-#if defined (CHORUS)
- // Are we the owner?
- if (lock->process_lock_ && lock->lockname_ != 0)
- {
- // Only destroy the lock if we're the owner
- ACE_OS::mutex_destroy (lock->process_lock_);
- ACE_OS::munmap (lock->process_lock_,
- sizeof (ACE_mutex_t));
- if (unlink_file)
- ACE_OS::shm_unlink (lock->lockname_);
- ACE_OS::free (ACE_static_cast (void *,
- ACE_const_cast (ACE_TCHAR *,
- lock->lockname_)));
- }
- else if (lock->process_lock_)
- // Just unmap the memory.
- ACE_OS::munmap (lock->process_lock_,
- sizeof (ACE_mutex_t));
-#else
- if (lock->lockname_ != 0)
- {
- if (unlink_file)
- ACE_OS::unlink (lock->lockname_);
- ACE_OS::free (ACE_static_cast (void *,
- ACE_const_cast (ACE_TCHAR *,
- lock->lockname_)));
- }
-#endif /* CHORUS */
- lock->lockname_ = 0;
- }
- return 0;
-}
-
-ACE_INLINE int
-ACE_OS::execv (const char *path,
- char *const argv[])
-{
- ACE_OS_TRACE ("ACE_OS::execv");
-#if defined (ACE_LACKS_EXEC)
- ACE_UNUSED_ARG (path);
- ACE_UNUSED_ARG (argv);
-
- ACE_NOTSUP_RETURN (-1);
-#elif defined (CHORUS)
- KnCap cactorcap;
- int result = ::afexecv (path, &cactorcap, 0, argv);
- if (result != -1)
- ACE_OS::actorcaps_[result] = cactorcap;
- return result;
-#elif defined (ACE_WIN32)
-# if defined (__BORLANDC__) /* VSB */
- return ::execv (path, argv);
-# elif defined (__MINGW32__)
- return ::_execv (path, (char *const *) argv);
-# else
- return ::_execv (path, (const char *const *) argv);
-# endif /* __BORLANDC__ */
-#elif defined (ACE_LACKS_POSIX_PROTOTYPES)
- ACE_OSCALL_RETURN (::execv (path, (const char **) argv), int, -1);
-#else
- ACE_OSCALL_RETURN (::execv (path, argv), int, -1);
-#endif /* ACE_LACKS_EXEC */
-}
-
-ACE_INLINE int
-ACE_OS::execve (const char *path,
- char *const argv[],
- char *const envp[])
-{
- ACE_OS_TRACE ("ACE_OS::execve");
-#if defined (ACE_LACKS_EXEC)
- ACE_UNUSED_ARG (path);
- ACE_UNUSED_ARG (argv);
- ACE_UNUSED_ARG (envp);
-
- ACE_NOTSUP_RETURN (-1);
-#elif defined(CHORUS)
- KnCap cactorcap;
- int result = ::afexecve (path, &cactorcap, 0, argv, envp);
- if (result != -1)
- ACE_OS::actorcaps_[result] = cactorcap;
- return result;
-#elif defined (ACE_WIN32)
-# if defined (__BORLANDC__) /* VSB */
- return ::execve (path, argv, envp);
-# elif defined (__MINGW32__)
- return ::_execve (path, (char *const *) argv, (char *const *) envp);
-# else
- return ::_execve (path, (const char *const *) argv, (const char *const *) envp);
-# endif /* __BORLANDC__ */
-#elif defined (ACE_LACKS_POSIX_PROTOTYPES)
- ACE_OSCALL_RETURN (::execve (path, (const char **) argv, (char **) envp), int, -1);
-#else
- ACE_OSCALL_RETURN (::execve (path, argv, envp), int, -1);
-#endif /* ACE_LACKS_EXEC */
-}
-
-ACE_INLINE int
-ACE_OS::execvp (const char *file,
- char *const argv[])
-{
- ACE_OS_TRACE ("ACE_OS::execvp");
-#if defined (ACE_LACKS_EXEC)
- ACE_UNUSED_ARG (file);
- ACE_UNUSED_ARG (argv);
-
- ACE_NOTSUP_RETURN (-1);
-#elif defined(CHORUS)
- KnCap cactorcap;
- int result = ::afexecvp (file, &cactorcap, 0, argv);
- if (result != -1)
- ACE_OS::actorcaps_[result] = cactorcap;
- return result;
-#elif defined (ACE_WIN32)
-# if defined (__BORLANDC__) /* VSB */
- return ::execvp (file, argv);
-# elif defined (__MINGW32__)
- return ::_execvp (file, (char *const *) argv);
-# else
- return ::_execvp (file, (const char *const *) argv);
-# endif /* __BORLANDC__ */
-#elif defined (ACE_LACKS_POSIX_PROTOTYPES)
- ACE_OSCALL_RETURN (::execvp (file, (const char **) argv), int, -1);
-#else
- ACE_OSCALL_RETURN (::execvp (file, argv), int, -1);
-#endif /* ACE_LACKS_EXEC */
-}
-
-ACE_INLINE FILE *
-ACE_OS::fdopen (ACE_HANDLE handle, const ACE_TCHAR *mode)
-{
- ACE_OS_TRACE ("ACE_OS::fdopen");
-# if defined (ACE_HAS_WINCE)
- ACE_OSCALL_RETURN (::_wfdopen (handle, mode), FILE*, 0);
-# elif defined (ACE_WIN32)
- // kernel file handle -> FILE* conversion...
- // Options: _O_APPEND, _O_RDONLY and _O_TEXT are lost
-
- FILE *file = 0;
-
-# if defined (ACE_WIN64)
- int crt_handle = ::_open_osfhandle (intptr_t (handle), 0);
-# else
- int crt_handle = ::_open_osfhandle (long (handle), 0);
-# endif /* ACE_WIN64 */
-
- if (crt_handle != -1)
- {
-# if defined(__BORLANDC__) /* VSB */
- file = ::_fdopen (crt_handle, (char *) mode);
-# elif defined (ACE_USES_WCHAR)
- file = ::_wfdopen (crt_handle, mode);
-# else
- file = ::_fdopen (crt_handle, mode);
-# endif /* __BORLANDC__ */
-
- if (!file)
- {
-# if (defined(__BORLANDC__) && __BORLANDC__ >= 0x0530)
- ::_rtl_close (crt_handle);
-# else
- ::_close (crt_handle);
-# endif /* (defined(__BORLANDC__) && __BORLANDC__ >= 0x0530) */
- }
- }
-
- return file;
-# elif defined (ACE_PSOS)
- // @@ it may be possible to implement this for pSOS,
- // but it isn't obvious how to do this (perhaps via
- // f_stat to glean the default volume, and then open_fn ?)
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (mode);
- ACE_NOTSUP_RETURN (0);
-# else
- ACE_OSCALL_RETURN (::fdopen (handle, mode), FILE *, 0);
-# endif /* ACE_HAS_WINCE */
-}
-
-ACE_INLINE int
-ACE_OS::getrlimit (int resource, struct rlimit *rl)
-{
- ACE_OS_TRACE ("ACE_OS::getrlimit");
-
-#if defined (ACE_LACKS_RLIMIT)
- ACE_UNUSED_ARG (resource);
- ACE_UNUSED_ARG (rl);
-
- ACE_NOTSUP_RETURN (-1);
-#else
-# if defined (ACE_HAS_RLIMIT_RESOURCE_ENUM)
- ACE_OSCALL_RETURN (::getrlimit ((ACE_HAS_RLIMIT_RESOURCE_ENUM) resource, rl), int, -1);
-# else
- ACE_OSCALL_RETURN (::getrlimit (resource, rl), int, -1);
-# endif /* ACE_HAS_RLIMIT_RESOURCE_ENUM */
-#endif /* ACE_LACKS_RLIMIT */
-}
-
-ACE_INLINE int
-ACE_OS::setrlimit (int resource, ACE_SETRLIMIT_TYPE *rl)
-{
- ACE_OS_TRACE ("ACE_OS::setrlimit");
-
-#if defined (ACE_LACKS_RLIMIT)
- ACE_UNUSED_ARG (resource);
- ACE_UNUSED_ARG (rl);
-
- ACE_NOTSUP_RETURN (-1);
-#else
-# if defined (ACE_HAS_RLIMIT_RESOURCE_ENUM)
- ACE_OSCALL_RETURN (::setrlimit ((ACE_HAS_RLIMIT_RESOURCE_ENUM) resource, rl), int, -1);
-# else
- ACE_OSCALL_RETURN (::setrlimit (resource, rl), int, -1);
-# endif /* ACE_HAS_RLIMIT_RESOURCE_ENUM */
-#endif /* ACE_LACKS_RLIMIT */
-}
-
-ACE_INLINE int
-ACE_OS::socketpair (int domain, int type,
- int protocol, ACE_HANDLE sv[2])
-{
- ACE_OS_TRACE ("ACE_OS::socketpair");
-#if defined (ACE_WIN32) || defined (ACE_LACKS_SOCKETPAIR)
- ACE_UNUSED_ARG (domain);
- ACE_UNUSED_ARG (type);
- ACE_UNUSED_ARG (protocol);
- ACE_UNUSED_ARG (sv);
-
- ACE_NOTSUP_RETURN (-1);
-#else
- ACE_OSCALL_RETURN (::socketpair (domain, type, protocol, sv),
- int, -1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE ACE_HANDLE
-ACE_OS::dup (ACE_HANDLE handle)
-{
- ACE_OS_TRACE ("ACE_OS::dup");
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
- ACE_HANDLE new_fd;
- if (::DuplicateHandle(::GetCurrentProcess (),
- handle,
- ::GetCurrentProcess(),
- &new_fd,
- 0,
- TRUE,
- DUPLICATE_SAME_ACCESS))
- return new_fd;
- else
- ACE_FAIL_RETURN (ACE_INVALID_HANDLE);
- /* NOTREACHED */
-#elif defined (VXWORKS) || defined (ACE_PSOS)
- ACE_UNUSED_ARG (handle);
- ACE_NOTSUP_RETURN (-1);
-#elif defined (ACE_HAS_WINCE)
- ACE_UNUSED_ARG (handle);
- ACE_NOTSUP_RETURN (0);
-#else
- ACE_OSCALL_RETURN (::dup (handle), ACE_HANDLE, ACE_INVALID_HANDLE);
-#endif /* ACE_WIN32 && !ACE_HAS_WINCE */
-}
-
-ACE_INLINE int
-ACE_OS::dup2 (ACE_HANDLE oldhandle, ACE_HANDLE newhandle)
-{
- ACE_OS_TRACE ("ACE_OS::dup2");
-#if defined (ACE_WIN32) || defined (VXWORKS) || defined (ACE_PSOS)
- // msvcrt has _dup2 ?!
- ACE_UNUSED_ARG (oldhandle);
- ACE_UNUSED_ARG (newhandle);
-
- ACE_NOTSUP_RETURN (-1);
-#else
- ACE_OSCALL_RETURN (::dup2 (oldhandle, newhandle), int, -1);
-#endif /* ACE_WIN32 || VXWORKS || ACE_PSOS */
-}
-
-#if defined (ghs) && defined (ACE_HAS_PENTIUM) && !defined (ACE_WIN32)
- extern "C" ACE_hrtime_t ACE_gethrtime ();
-#endif /* ghs && ACE_HAS_PENTIUM */
-
-ACE_INLINE ACE_hrtime_t
-ACE_OS::gethrtime (const ACE_HRTimer_Op op)
-{
- ACE_OS_TRACE ("ACE_OS::gethrtime");
-#if defined (ACE_HAS_HI_RES_TIMER)
- ACE_UNUSED_ARG (op);
- return ::gethrtime ();
-#elif defined (ACE_HAS_AIX_HI_RES_TIMER)
- ACE_UNUSED_ARG (op);
- timebasestruct_t tb;
-
- ::read_real_time(&tb, TIMEBASE_SZ);
- ::time_base_to_time(&tb, TIMEBASE_SZ);
-
- return ACE_hrtime_t(tb.tb_high) * ACE_ONE_SECOND_IN_NSECS + tb.tb_low;
-#elif defined (ghs) && defined (ACE_HAS_PENTIUM) && !defined (ACE_WIN32)
- ACE_UNUSED_ARG (op);
- // Use .obj/gethrtime.o, which was compiled with g++.
- return ACE_gethrtime ();
-#elif (defined(__KCC) || defined (__GNUG__)) && !defined (__MINGW32__) && defined (ACE_HAS_PENTIUM)
- ACE_UNUSED_ARG (op);
-
-# if defined (ACE_LACKS_LONGLONG_T)
- double now;
-# else /* ! ACE_LACKS_LONGLONG_T */
- ACE_hrtime_t now;
-# endif /* ! ACE_LACKS_LONGLONG_T */
-
- // See comments about the RDTSC Pentium instruction for the ACE_WIN32
- // version of ACE_OS::gethrtime (), below.
- //
- // Read the high-res tick counter directly into memory variable "now".
- // The A constraint signifies a 64-bit int.
- asm volatile ("rdtsc" : "=A" (now) : : "memory");
-
-# if defined (ACE_LACKS_LONGLONG_T)
- ACE_UINT32 least, most;
- ACE_OS::memcpy (&least, &now, sizeof (ACE_UINT32));
- ACE_OS::memcpy (&most, (u_char *) &now + sizeof (ACE_UINT32),
- sizeof (ACE_UINT32));
-
- ACE_hrtime_t ret (least, most);
- return ret;
-# else /* ! ACE_LACKS_LONGLONG_T */
- return now;
-# endif /* ! ACE_LACKS_LONGLONG_T */
-#elif defined (linux) && defined (ACE_HAS_ALPHA_TIMER)
- // NOTE: alphas only have a 32 bit tick (cycle) counter. The rpcc
- // instruction actually reads 64 bits, but the high 32 bits are
- // implementation-specific. Linux and Digital Unix, for example,
- // use them for virtual tick counts, i.e., taking into account only
- // the time that the process was running. This information is from
- // David Mosberger's article, see comment below.
- ACE_UINT32 now;
-
- // The following statement is based on code published by:
- // Mosberger, David, "How to Make Your Applications Fly, Part 1",
- // Linux Journal Issue 42, October 1997, page 50. It reads the
- // high-res tick counter directly into the memory variable.
- asm volatile ("rpcc %0" : "=r" (now) : : "memory");
-
- return now;
-#elif defined (ACE_WIN32)
- ACE_UNUSED_ARG(op);
- LARGE_INTEGER freq;
-
- ::QueryPerformanceCounter (&freq);
-
-# if defined (ACE_LACKS_LONGLONG_T)
- ACE_UINT64 uint64_freq(freq.u.LowPart, ACE_static_cast (unsigned int, freq.u.HighPart));
- return uint64_freq;
-# else
- return freq.QuadPart;
-# endif //ACE_LACKS_LONGLONG_T
-
-#elif defined (CHORUS)
- if (op == ACE_OS::ACE_HRTIMER_GETTIME)
- {
- struct timespec ts;
-
- ACE_OS::clock_gettime (CLOCK_REALTIME, &ts);
-
- // Carefully create the return value to avoid arithmetic overflow
- // if ACE_hrtime_t is ACE_U_LongLong.
- ACE_hrtime_t now = ts.tv_sec;
- now *= ACE_U_ONE_SECOND_IN_NSECS;
- now += ts.tv_nsec;
-
- return now;
- }
- else
- {
- // Use the sysBench timer on Chorus. On MVME177, at least, it only
- // has 32 bits. Be careful, because using it disables interrupts!
- ACE_UINT32 now;
- if (::sysBench (op, (int *) &now) == K_OK)
- {
- now *= 1000u /* nanoseconds/microsecond */;
- return (ACE_hrtime_t) now;
- }
- else
- {
- // Something went wrong. Just return 0.
- return (ACE_hrtime_t) 0;
- }
- }
-
-#elif defined (ACE_HAS_POWERPC_TIMER) && (defined (ghs) || defined (__GNUG__))
- // PowerPC w/ GreenHills or g++.
-
- ACE_UNUSED_ARG (op);
- u_long most;
- u_long least;
- ACE_OS::readPPCTimeBase (most, least);
-#if defined (ACE_LACKS_LONGLONG_T)
- return ACE_U_LongLong (least, most);
-#else /* ! ACE_LACKS_LONGLONG_T */
- return 0x100000000llu * most + least;
-#endif /* ! ACE_LACKS_LONGLONG_T */
-
-#elif defined (ACE_HAS_CLOCK_GETTIME) || defined (ACE_PSOS)
- // e.g., VxWorks (besides POWERPC && GreenHills) . . .
- ACE_UNUSED_ARG (op);
- struct timespec ts;
-
- ACE_OS::clock_gettime (CLOCK_REALTIME, &ts);
-
- // Carefully create the return value to avoid arithmetic overflow
- // if ACE_hrtime_t is ACE_U_LongLong.
- return ACE_static_cast (ACE_hrtime_t, ts.tv_sec) *
- ACE_U_ONE_SECOND_IN_NSECS + ACE_static_cast (ACE_hrtime_t, ts.tv_nsec);
-#else
- ACE_UNUSED_ARG (op);
- const ACE_Time_Value now = ACE_OS::gettimeofday ();
-
- // Carefully create the return value to avoid arithmetic overflow
- // if ACE_hrtime_t is ACE_U_LongLong.
- return (ACE_static_cast (ACE_hrtime_t, now.sec ()) * (ACE_UINT32) 1000000 +
- ACE_static_cast (ACE_hrtime_t, now.usec ())) * (ACE_UINT32) 1000;
-#endif /* ACE_HAS_HI_RES_TIMER */
-}
-
-ACE_INLINE int
-ACE_OS::fdetach (const char *file)
-{
- ACE_OS_TRACE ("ACE_OS::fdetach");
-#if defined (ACE_HAS_STREAM_PIPES)
- ACE_OSCALL_RETURN (::fdetach (file), int, -1);
-#else
- ACE_UNUSED_ARG (file);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_STREAM_PIPES */
-}
-
-ACE_INLINE int
-ACE_OS::fattach (int handle, const char *path)
-{
- ACE_OS_TRACE ("ACE_OS::fattach");
-#if defined (ACE_HAS_STREAM_PIPES)
- ACE_OSCALL_RETURN (::fattach (handle, path), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (path);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_STREAM_PIPES */
-}
-
-ACE_INLINE pid_t
-ACE_OS::fork (void)
-{
- ACE_OS_TRACE ("ACE_OS::fork");
-#if defined (ACE_LACKS_FORK)
- ACE_NOTSUP_RETURN (pid_t (-1));
-#else
- ACE_OSCALL_RETURN (::fork (), pid_t, -1);
-#endif /* ACE_LACKS_FORK */
-}
-
-ACE_INLINE int
-ACE_OS::getpagesize (void)
-{
- ACE_OS_TRACE ("ACE_OS::getpagesize");
-#if defined (ACE_WIN32) && !defined (ACE_HAS_PHARLAP)
- SYSTEM_INFO sys_info;
- ::GetSystemInfo (&sys_info);
- return (int) sys_info.dwPageSize;
-#elif defined (_SC_PAGESIZE)
- return (int) ::sysconf (_SC_PAGESIZE);
-#elif defined (ACE_HAS_GETPAGESIZE)
- return ::getpagesize ();
-#else
- // Use the default set in config.h
- return ACE_PAGE_SIZE;
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::allocation_granularity (void)
-{
-#if defined (ACE_WIN32)
- SYSTEM_INFO sys_info;
- ::GetSystemInfo (&sys_info);
- return (int) sys_info.dwAllocationGranularity;
-#else
- return ACE_OS::getpagesize ();
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE pid_t
-ACE_OS::getpid (void)
-{
- // ACE_OS_TRACE ("ACE_OS::getpid");
-#if defined (ACE_WIN32)
- return ::GetCurrentProcessId ();
-#elif defined (VXWORKS) || defined (ACE_PSOS)
- // getpid() is not supported: just one process anyways
- return 0;
-#elif defined (CHORUS)
- return (pid_t) (::agetId ());
-#else
- ACE_OSCALL_RETURN (::getpid (), int, -1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE pid_t
-ACE_OS::getpgid (pid_t pid)
-{
- ACE_OS_TRACE ("ACE_OS::getpgid");
-#if defined (ACE_LACKS_GETPGID)
- ACE_UNUSED_ARG (pid);
- ACE_NOTSUP_RETURN (-1);
-#elif defined (VXWORKS) || defined (ACE_PSOS)
- // getpgid() is not supported, only one process anyway.
- ACE_UNUSED_ARG (pid);
- return 0;
-#elif defined (linux) && __GLIBC__ > 1 && __GLIBC_MINOR__ >= 0
- // getpgid() is from SVR4, which appears to be the reason why GLIBC
- // doesn't enable its prototype by default.
- // Rather than create our own extern prototype, just use the one
- // that is visible (ugh).
- ACE_OSCALL_RETURN (::__getpgid (pid), pid_t, -1);
-#else
- ACE_OSCALL_RETURN (::getpgid (pid), pid_t, -1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE pid_t
-ACE_OS::getppid (void)
-{
- ACE_OS_TRACE ("ACE_OS::getppid");
-#if defined (ACE_LACKS_GETPPID)
- ACE_NOTSUP_RETURN (-1);
-#elif defined (VXWORKS) || defined (ACE_PSOS)
- // getppid() is not supported, only one process anyway.
- return 0;
-#else
- ACE_OSCALL_RETURN (::getppid (), pid_t, -1);
-#endif /* ACE_LACKS_GETPPID */
-}
-
-ACE_INLINE int
-ACE_OS::setpgid (pid_t pid, pid_t pgid)
-{
- ACE_OS_TRACE ("ACE_OS::setpgid");
-#if defined (ACE_LACKS_SETPGID)
- ACE_UNUSED_ARG (pid);
- ACE_UNUSED_ARG (pgid);
- ACE_NOTSUP_RETURN (-1);
-#elif defined (VXWORKS) || defined (ACE_PSOS)
- // <setpgid> is not supported, only one process anyway.
- ACE_UNUSED_ARG (pid);
- ACE_UNUSED_ARG (pgid);
- return 0;
-#else
- ACE_OSCALL_RETURN (::setpgid (pid, pgid), int, -1);
-#endif /* ACE_LACKS_SETPGID */
-}
-
-ACE_INLINE int
-ACE_OS::setreuid (uid_t ruid, uid_t euid)
-{
- ACE_OS_TRACE ("ACE_OS::setreuid");
-#if defined (ACE_LACKS_SETREUID)
- ACE_UNUSED_ARG (ruid);
- ACE_UNUSED_ARG (euid);
- ACE_NOTSUP_RETURN (-1);
-#elif defined (VXWORKS) || defined (ACE_PSOS)
- // <setpgid> is not supported, only one process anyway.
- ACE_UNUSED_ARG (ruid);
- ACE_UNUSED_ARG (euid);
- return 0;
-#else
- ACE_OSCALL_RETURN (::setreuid (ruid, euid), int, -1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::setregid (gid_t rgid, gid_t egid)
-{
- ACE_OS_TRACE ("ACE_OS::setregid");
-#if defined (ACE_LACKS_SETREGID)
- ACE_UNUSED_ARG (rgid);
- ACE_UNUSED_ARG (egid);
- ACE_NOTSUP_RETURN (-1);
-#elif defined (VXWORKS) || defined (ACE_PSOS)
- // <setregid> is not supported, only one process anyway.
- ACE_UNUSED_ARG (rgid);
- ACE_UNUSED_ARG (egid);
- return 0;
-#else
- ACE_OSCALL_RETURN (::setregid (rgid, egid), int, -1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE off_t
-ACE_OS::lseek (ACE_HANDLE handle, off_t offset, int whence)
-{
- ACE_OS_TRACE ("ACE_OS::lseek");
-#if defined (ACE_WIN32)
-# if SEEK_SET != FILE_BEGIN || SEEK_CUR != FILE_CURRENT || SEEK_END != FILE_END
- //#error Windows NT is evil AND rude!
- switch (whence)
- {
- case SEEK_SET:
- whence = FILE_BEGIN;
- break;
- case SEEK_CUR:
- whence = FILE_CURRENT;
- break;
- case SEEK_END:
- whence = FILE_END;
- break;
- default:
- errno = EINVAL;
- return ACE_static_cast (off_t, -1); // rather safe than sorry
- }
-# endif /* SEEK_SET != FILE_BEGIN || SEEK_CUR != FILE_CURRENT || SEEK_END != FILE_END */
- DWORD result = ::SetFilePointer (handle, offset, 0, whence);
- if (result == ACE_SYSCALL_FAILED)
- ACE_FAIL_RETURN (ACE_static_cast (off_t, -1));
- else
- return result;
-#elif defined (ACE_PSOS)
-# if defined (ACE_PSOS_LACKS_PHILE)
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (offset);
- ACE_UNUSED_ARG (whence);
- ACE_NOTSUP_RETURN (ACE_static_cast (off_t, -1));
-# else
- unsigned long oldptr, newptr, result;
- // seek to the requested position
- result = ::lseek_f (handle, whence, offset, &oldptr);
- if (result != 0)
- {
- errno = result;
- return ACE_static_cast (off_t, -1);
- }
- // now do a dummy seek to the current position to obtain the position
- result = ::lseek_f (handle, SEEK_CUR, 0, &newptr);
- if (result != 0)
- {
- errno = result;
- return ACE_static_cast (off_t, -1);
- }
- return ACE_static_cast (off_t, newptr);
-# endif /* defined (ACE_PSOS_LACKS_PHILE */
-#else
- ACE_OSCALL_RETURN (::lseek (handle, offset, whence), off_t, -1);
-#endif /* ACE_WIN32 */
-}
-
-#if defined (ACE_HAS_LLSEEK) || defined (ACE_HAS_LSEEK64)
-ACE_INLINE ACE_LOFF_T
-ACE_OS::llseek (ACE_HANDLE handle, ACE_LOFF_T offset, int whence)
-{
- ACE_OS_TRACE ("ACE_OS::llseek");
-
-#if ACE_SIZEOF_LONG == 8
- /* The native lseek is 64 bit. Use it. */
- return ACE_OS::lseek (handle, offset, whence);
-#elif defined (ACE_HAS_LLSEEK) && defined (ACE_HAS_LSEEK64)
-# error Either ACE_HAS_LSEEK64 and ACE_HAS_LLSEEK should be defined, not both!
-#elif defined (ACE_HAS_LSEEK64)
- ACE_OSCALL_RETURN (::lseek64 (handle, offset, whence), ACE_LOFF_T, -1);
-#elif defined (ACE_HAS_LLSEEK)
- # if defined (ACE_WIN32)
- LARGE_INTEGER li;
- li.QuadPart = offset;
- li.LowPart = ::SetFilePointer (handle, li.LowPart, &li.HighPart, whence);
- if (li.LowPart == 0xFFFFFFFF && GetLastError() != NO_ERROR)
- li.QuadPart = -1;
- return li.QuadPart;
- # else
- ACE_OSCALL_RETURN (::llseek (handle, offset, whence), ACE_LOFF_T, -1);
- # endif /* WIN32 */
-#endif
-}
-#endif /* ACE_HAS_LLSEEK || ACE_HAS_LSEEK64 */
-
-ACE_INLINE int
-ACE_OS::fseek (FILE *fp, long offset, int whence)
-{
-# if defined (ACE_WIN32)
-# if SEEK_SET != FILE_BEGIN || SEEK_CUR != FILE_CURRENT || SEEK_END != FILE_END
- //#error Windows NT is evil AND rude!
- switch (whence)
- {
- case SEEK_SET:
- whence = FILE_BEGIN;
- break;
- case SEEK_CUR:
- whence = FILE_CURRENT;
- break;
- case SEEK_END:
- whence = FILE_END;
- break;
- default:
- errno = EINVAL;
- return -1; // rather safe than sorry
- }
-# endif /* SEEK_SET != FILE_BEGIN || SEEK_CUR != FILE_CURRENT || SEEK_END != FILE_END */
-# endif /* ACE_WIN32 */
- ACE_OSCALL_RETURN (::fseek (fp, offset, whence), int, -1);
-}
-
-ACE_INLINE long
-ACE_OS::ftell (FILE* fp)
-{
- ACE_OSCALL_RETURN (::ftell (fp), long, -1);
-}
-
-ACE_INLINE int
-ACE_OS::fgetpos (FILE* fp, fpos_t* pos)
-{
- ACE_OSCALL_RETURN (::fgetpos (fp, pos), int, -1);
-}
-
-ACE_INLINE int
-ACE_OS::fsetpos (FILE* fp, fpos_t* pos)
-{
- ACE_OSCALL_RETURN (::fsetpos (fp, pos), int, -1);
-}
-
-ACE_INLINE int
-ACE_OS::fgetc (FILE* fp)
-{
- ACE_OSCALL_RETURN (::fgetc (fp), int, -1);
-}
-
-#if !defined (ACE_LACKS_CLEARERR)
-ACE_INLINE void
-ACE_OS::clearerr (FILE* fp)
-{
- ::clearerr(fp);
-}
-#endif /* !ACE_LACKS_CLEARERR */
-
-#if defined (ACE_HAS_WCHAR)
-
-ACE_INLINE wint_t
-ACE_OS::fgetwc (FILE* fp)
-{
-#if defined (ACE_LACKS_FGETWC)
- ACE_UNUSED_ARG (fp);
- ACE_NOTSUP_RETURN (0);
-#else
- ACE_OSCALL_RETURN (::fgetwc (fp), wint_t, WEOF);
-#endif /* ACE_LACKS_FGETWC */
-}
-
-ACE_INLINE wint_t
-ACE_OS::ungetwc (wint_t c, FILE* fp)
-{
-#if defined (ACE_LACKS_FGETWC)
- ACE_UNUSED_ARG (c);
- ACE_UNUSED_ARG (fp);
- ACE_NOTSUP_RETURN (0);
-#else
- ACE_OSCALL_RETURN (::ungetwc (c, fp), wint_t, WEOF);
-#endif /* ACE_LACKS_FGETWC */
-}
-
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE pid_t
-ACE_OS::waitpid (pid_t pid,
- ACE_exitcode *status,
- int wait_options,
- ACE_HANDLE handle)
-{
- ACE_OS_TRACE ("ACE_OS::waitpid");
-#if defined (VXWORKS) || defined (ACE_PSOS) || defined (INTEGRITY)
- ACE_UNUSED_ARG (pid);
- ACE_UNUSED_ARG (status);
- ACE_UNUSED_ARG (wait_options);
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_WIN32)
- int blocking_period = ACE_BIT_ENABLED (wait_options, WNOHANG)
- ? 0 /* don't hang */
- : INFINITE;
-
- ACE_HANDLE phandle = handle;
-
- if (phandle == 0)
- {
- phandle = ::OpenProcess (SYNCHRONIZE,
- FALSE,
- pid);
-
- if (phandle == 0)
- {
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
- }
-
- pid_t result = pid;
-
- // Don't try to get the process exit status if wait failed so we can
- // keep the original error code intact.
- switch (::WaitForSingleObject (phandle,
- blocking_period))
- {
- case WAIT_OBJECT_0:
- if (status != 0)
- // The error status of <GetExitCodeProcess> is nonetheless
- // not tested because we don't know how to return the value.
- ::GetExitCodeProcess (phandle,
- status);
- break;
- case WAIT_TIMEOUT:
- errno = ETIME;
- result = 0;
- break;
- default:
- ACE_OS::set_errno_to_last_error ();
- result = -1;
- }
- if (handle == 0)
- ::CloseHandle (phandle);
- return result;
-#elif defined (CHORUS)
- ACE_UNUSED_ARG (status);
- ACE_UNUSED_ARG (wait_options);
- ACE_UNUSED_ARG (handle);
- ACE_OSCALL_RETURN (::await (&ACE_OS::actorcaps_[pid]),
- pid_t, -1);
-#else
- ACE_UNUSED_ARG (handle);
- ACE_OSCALL_RETURN (::waitpid (pid, status, wait_options),
- pid_t, -1);
-#endif /* VXWORKS || ACE_PSOS */
-}
-
-ACE_INLINE pid_t
-ACE_OS::wait (pid_t pid,
- ACE_exitcode *status,
- int wait_options,
- ACE_HANDLE handle)
-{
- ACE_OS_TRACE ("ACE_OS::wait");
- return ACE_OS::waitpid (pid,
- status,
- wait_options,
- handle);
-}
-
-ACE_INLINE pid_t
-ACE_OS::wait (int *status)
-{
- ACE_OS_TRACE ("ACE_OS::wait");
-#if defined (ACE_WIN32) || defined (VXWORKS) || defined(CHORUS) || defined (ACE_PSOS) || defined (INTEGRITY)
- ACE_UNUSED_ARG (status);
-
- ACE_NOTSUP_RETURN (0);
-#else
-# if defined (ACE_HAS_UNION_WAIT)
- ACE_OSCALL_RETURN (::wait ((union wait *) status), pid_t, -1);
-# else
- ACE_OSCALL_RETURN (::wait (status), pid_t, -1);
-# endif /* ACE_HAS_UNION_WAIT */
-#endif /* ACE_WIN32 || VXWORKS || CHORUS || ACE_PSOS */
-}
-
-ACE_INLINE int
-ACE_OS::ioctl (ACE_HANDLE handle,
- int cmd,
- void *val)
-{
- ACE_OS_TRACE ("ACE_OS::ioctl");
-
-#if defined (ACE_WIN32)
- ACE_SOCKET sock = (ACE_SOCKET) handle;
- ACE_SOCKCALL_RETURN (::ioctlsocket (sock, cmd, (u_long *) val), int, -1);
-#elif defined (VXWORKS)
- ACE_OSCALL_RETURN (::ioctl (handle, cmd, ACE_reinterpret_cast (int, val)),
- int, -1);
-#elif defined (ACE_PSOS)
- ACE_OSCALL_RETURN (::ioctl (handle, cmd, (char *) val), int, -1);
-#elif defined (__CYGWIN32__)
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (cmd);
- ACE_UNUSED_ARG (val);
- ACE_NOTSUP_RETURN (-1);
-#else
- ACE_OSCALL_RETURN (::ioctl (handle, cmd, val), int, -1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::kill (pid_t pid, int signum)
-{
- ACE_OS_TRACE ("ACE_OS::kill");
-#if defined (ACE_WIN32) || defined (CHORUS) || defined (ACE_PSOS)
- ACE_UNUSED_ARG (pid);
- ACE_UNUSED_ARG (signum);
- ACE_NOTSUP_RETURN (-1);
-#else
- ACE_OSCALL_RETURN (::kill (pid, signum), int, -1);
-#endif /* ACE_WIN32 || CHORUS || ACE_PSOS */
-}
-
-ACE_INLINE int
-ACE_OS::sigaction (int signum,
- const struct sigaction *nsa,
- struct sigaction *osa)
-{
- ACE_OS_TRACE ("ACE_OS::sigaction");
- if (signum == 0)
- return 0;
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
- struct sigaction sa;
-
- if (osa == 0)
- osa = &sa;
-
- if (nsa == 0)
- {
- osa->sa_handler = ::signal (signum, SIG_IGN);
- ::signal (signum, osa->sa_handler);
- }
- else
- osa->sa_handler = ::signal (signum, nsa->sa_handler);
- return osa->sa_handler == SIG_ERR ? -1 : 0;
-#elif defined (CHORUS) || defined (ACE_HAS_WINCE) || defined(ACE_PSOS)
- ACE_UNUSED_ARG (signum);
- ACE_UNUSED_ARG (nsa);
- ACE_UNUSED_ARG (osa);
- ACE_NOTSUP_RETURN (-1);
-#elif defined (ACE_LACKS_POSIX_PROTOTYPES) || defined (ACE_LACKS_SOME_POSIX_PROTOTYPES)
- ACE_OSCALL_RETURN (::sigaction (signum, (struct sigaction*) nsa, osa), int, -1);
-#else
- ACE_OSCALL_RETURN (::sigaction (signum, nsa, osa), int, -1);
-#endif /* ACE_WIN32 !ACE_HAS_WINCE */
-}
-
-ACE_INLINE ACE_TCHAR *
-ACE_OS::getcwd (ACE_TCHAR *buf, size_t size)
-{
- ACE_OS_TRACE ("ACE_OS::getcwd");
-#if defined (ACE_PSOS_LACKS_PHILE)
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (size);
- ACE_NOTSUP_RETURN ( (char*)-1);
-#elif defined (ACE_PSOS)
-
- static char pathbuf [BUFSIZ];
-
- // blank the path buffer
- ACE_OS::memset (pathbuf, '\0', BUFSIZ);
-
- // the following was suggested in the documentation for get_fn ()
- u_long result;
- char cur_dir_name [BUFSIZ] = ".";
-
- u_long cur_dir = 0, prev_dir = 0;
- while ((ACE_OS::strlen (pathbuf) < BUFSIZ) &&
- (ACE_OS::strlen (cur_dir_name) < BUFSIZ - ACE_OS::strlen ("/..")))
- {
- // get the current directory handle
- result = ::get_fn (cur_dir_name, &cur_dir);
-
- // check whether we're at the root: this test is
- // really lame, but the get_fn documentation says
- // *either* condition indicates you're trying to
- // move above the root.
- if ((result != 0) || ( cur_dir == prev_dir))
- {
- break;
- }
-
- // change name to the parent directory
- ACE_OS::strcat (cur_dir_name, "/..");
-
- // open the parent directory
- XDIR xdir;
- result = ::open_dir (cur_dir_name, &xdir);
- if (result != 0)
- {
- return 0;
- }
-
- // look for an entry that matches the current directory handle
- struct dirent dir_entry;
- while (1)
- {
- // get the next directory entry
- result = ::read_dir (&xdir, &dir_entry);
- if (result != 0)
- {
- return 0;
- }
-
- // check for a match
- if (dir_entry.d_filno == cur_dir)
- {
- // prefix the previous path with the entry's name and break
- if (ACE_OS::strlen (pathbuf) + ACE_OS::strlen (dir_entry.d_name) < BUFSIZ)
- {
- ACE_OS::strcpy (pathbuf + ACE_OS::strlen (dir_entry.d_name), pathbuf);
- ACE_OS::strcpy (pathbuf, dir_entry.d_name);
- break;
- }
- else
- {
- // we're out of room in the buffer
- return 0;
- }
- }
- }
-
- // close the parent directory
- result = ::close_dir (&xdir);
- if (result != 0)
- {
- return 0;
- }
-
- // save the current directory handle as the previous
- prev_dir = cur_dir;
- }
-
- // return the path, if there is one
- return (ACE_OS::strlen (pathbuf) > 0) ? pathbuf : (char *) 0;
-#elif defined (ACE_HAS_WINCE)
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (size);
- ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_WIN32)
-# if defined (ACE_USES_WCHAR)
- return ::_wgetcwd (buf, ACE_static_cast (int, size));
-# else
- return ::getcwd (buf, ACE_static_cast (int, size));
-# endif /* ACE_USES_WCHAR */
-#else
- ACE_OSCALL_RETURN (::getcwd (buf, size), char *, 0);
-#endif /* ACE_PSOS_LACKS_PHILE */
-}
-
-ACE_INLINE int
-ACE_OS::sleep (u_int seconds)
-{
- ACE_OS_TRACE ("ACE_OS::sleep");
-#if defined (ACE_WIN32)
- ::Sleep (seconds * ACE_ONE_SECOND_IN_MSECS);
- return 0;
-#if 0
-#elif defined (HPUX_10) && defined (ACE_HAS_PTHREADS_DRAFT4)
- // On HP-UX 10, _CMA_NOWRAPPERS_ disables the mapping from sleep to cma_sleep
- // which makes sleep() put the whole process to sleep, and keeps it from
- // noticing pending cancels. So, in this case, use pthread_delay_np
- struct timespec rqtp;
- rqtp.tv_sec = seconds;
- rqtp.tv_nsec = 0L;
- return pthread_delay_np (&rqtp);
-#endif /* 0 */
-#elif defined (ACE_HAS_CLOCK_GETTIME)
- struct timespec rqtp;
- // Initializer doesn't work with Green Hills 1.8.7
- rqtp.tv_sec = seconds;
- rqtp.tv_nsec = 0L;
- ACE_OSCALL_RETURN (::nanosleep (&rqtp, 0), int, -1);
-#elif defined (ACE_PSOS)
- timeval wait;
- wait.tv_sec = seconds;
- wait.tv_usec = 0;
- ACE_OSCALL_RETURN (::select (0, 0, 0, 0, &wait), int, -1);
-#else
- ACE_OSCALL_RETURN (::sleep (seconds), int, -1);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::sleep (const ACE_Time_Value &tv)
-{
- ACE_OS_TRACE ("ACE_OS::sleep");
-#if defined (ACE_WIN32)
- ::Sleep (tv.msec ());
- return 0;
-#else
-# if defined (ACE_HAS_NONCONST_SELECT_TIMEVAL)
- // Copy the timeval, because this platform doesn't declare the timeval
- // as a pointer to const.
- timeval tv_copy = tv;
- ACE_OSCALL_RETURN (::select (0, 0, 0, 0, &tv_copy), int, -1);
-# else /* ! ACE_HAS_NONCONST_SELECT_TIMEVAL */
- const timeval *tvp = tv;
- ACE_OSCALL_RETURN (::select (0, 0, 0, 0, tvp), int, -1);
-# endif /* ACE_HAS_NONCONST_SELECT_TIMEVAL */
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::nanosleep (const struct timespec *requested,
- struct timespec *remaining)
-{
- ACE_OS_TRACE ("ACE_OS::nanosleep");
-#if defined (ACE_HAS_CLOCK_GETTIME)
- // ::nanosleep () is POSIX 1003.1b. So is ::clock_gettime (). So,
- // if ACE_HAS_CLOCK_GETTIME is defined, then ::nanosleep () should
- // be available on the platform. On Solaris 2.x, both functions
- // require linking with -lposix4.
- return ::nanosleep ((ACE_TIMESPEC_PTR) requested, remaining);
-#elif defined (ACE_PSOS)
-# if ! defined (ACE_PSOS_DIAB_MIPS)
- double ticks = KC_TICKS2SEC * requested->tv_sec +
- ( ACE_static_cast (double, requested->tv_nsec) *
- ACE_static_cast (double, KC_TICKS2SEC) ) /
- ACE_static_cast (double, ACE_ONE_SECOND_IN_NSECS);
-
- if (ticks > ACE_static_cast (double, ACE_PSOS_Time_t::max_ticks))
- {
- ticks -= ACE_static_cast (double, ACE_PSOS_Time_t::max_ticks);
- remaining->tv_sec = ACE_static_cast (time_t,
- (ticks /
- ACE_static_cast (double,
- KC_TICKS2SEC)));
- ticks -= ACE_static_cast (double, remaining->tv_sec) *
- ACE_static_cast (double, KC_TICKS2SEC);
-
- remaining->tv_nsec =
- ACE_static_cast (long,
- (ticks * ACE_static_cast (double,
- ACE_ONE_SECOND_IN_NSECS)) /
- ACE_static_cast (double, KC_TICKS2SEC));
-
- ::tm_wkafter (ACE_PSOS_Time_t::max_ticks);
- }
- else
- {
- remaining->tv_sec = 0;
- remaining->tv_nsec = 0;
- ::tm_wkafter (ACE_static_cast (u_long, ticks));
- }
-
- // tm_wkafter always returns 0
-# endif /* ACE_PSOS_DIAB_MIPS */
- return 0;
-#else
- ACE_UNUSED_ARG (remaining);
-
- // Convert into seconds and microseconds.
-# if ! defined(ACE_HAS_BROKEN_TIMESPEC_MEMBERS)
- ACE_Time_Value tv (requested->tv_sec,
- requested->tv_nsec / 1000);
-# else
- ACE_Time_Value tv (requested->ts_sec,
- requested->ts_nsec / 1000);
-# endif /* ACE_HAS_BROKEN_TIMESPEC_MEMBERS */
- return ACE_OS::sleep (tv);
-#endif /* ACE_HAS_CLOCK_GETTIME */
-}
-
-ACE_INLINE int
-ACE_OS::mkdir (const ACE_TCHAR *path, mode_t mode)
-{
-#if defined (ACE_PSOS_LACKS_PHILE)
- ACE_UNUSED_ARG (path);
- ACE_UNUSED_ARG (mode);
- ACE_NOTSUP_RETURN (-1);
-#elif defined (ACE_PSOS)
- //The pSOS make_dir fails if the last character is a '/'
- int location;
- char *phile_path;
-
- phile_path = (char *)ACE_OS::malloc(strlen(path));
- if (phile_path == 0)
- {
- ACE_OS::printf ("malloc in make_dir failed: [%X]\n",
- errno);
- return -1;
- }
- else
- ACE_OS::strcpy (phile_path, path);
-
- location = ACE_OS::strlen(phile_path);
- if(phile_path[location-1] == '/')
- {
- phile_path[location-1] = 0;
- }
-
- u_long result;
- result = ::make_dir ((char *) phile_path, mode);
- if (result == 0x2011) // Directory already exists
- {
- result = 0;
- }
- else if (result != 0)
- {
- result = -1;
- }
-
- ACE_OS::free(phile_path);
- return result;
-
-#elif defined (VXWORKS)
- ACE_UNUSED_ARG (mode);
- ACE_OSCALL_RETURN (::mkdir ((char *) path), int, -1);
-#elif defined (ACE_WIN32) && defined (__IBMCPP__) && (__IBMCPP__ >= 400)
- ACE_UNUSED_ARG (mode);
- ACE_OSCALL_RETURN (::_mkdir ((char *) path), int, -1);
-#elif defined (ACE_HAS_WINCE)
- ACE_UNUSED_ARG (mode);
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CreateDirectory (path, 0),
- ace_result_),
- int, -1);
-#elif defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_UNUSED_ARG (mode);
- ACE_OSCALL_RETURN (::_wmkdir (path), int, -1);
-#elif defined (ACE_WIN32)
- ACE_UNUSED_ARG (mode);
- ACE_OSCALL_RETURN (::mkdir (path), int, -1);
-#else
- ACE_OSCALL_RETURN (::mkdir (path, mode), int, -1);
-#endif /* ACE_PSOS_LACKS_PHILE */
-}
-
-ACE_INLINE char *
-ACE_OS::getenv (const char *symbol)
-{
- ACE_OS_TRACE ("ACE_OS::getenv");
-#if defined (ACE_LACKS_ENV)
- ACE_UNUSED_ARG (symbol);
- ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_PSOS)
- ACE_UNUSED_ARG (symbol);
- ACE_NOTSUP_RETURN (0);
-#else /* ACE_PSOS */
- ACE_OSCALL_RETURN (::getenv (symbol), char *, 0);
-#endif /* ACE_LACKS_ENV */
-}
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_WIN32)
-ACE_INLINE wchar_t *
-ACE_OS::getenv (const wchar_t *symbol)
-{
-#if defined (ACE_LACKS_ENV)
- ACE_UNUSED_ARG (symbol);
- ACE_NOTSUP_RETURN (0);
-#else
- ACE_OSCALL_RETURN (::_wgetenv (symbol), wchar_t *, 0);
-#endif /* ACE_LACKS_ENV */
-}
-#endif /* ACE_HAS_WCHAR && ACE_WIN32 */
-
-#if defined(INTEGRITY)
-extern "C" {
- int putenv(char *string);
-}
-#endif
-
-ACE_INLINE int
-ACE_OS::putenv (const ACE_TCHAR *string)
-{
- ACE_OS_TRACE ("ACE_OS::putenv");
-#if defined (ACE_HAS_WINCE) || defined (ACE_PSOS)
- // WinCE and pSOS don't have the concept of environment variables.
- ACE_UNUSED_ARG (string);
- ACE_NOTSUP_RETURN (-1);
-#elif defined (ACE_LACKS_ENV)
- ACE_UNUSED_ARG (string);
- ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_OSCALL_RETURN (::_wputenv (string), int, -1);
-#else /* ! ACE_HAS_WINCE && ! ACE_PSOS */
- // VxWorks declares ::putenv with a non-const arg.
- ACE_OSCALL_RETURN (::putenv ((char *) string), int, -1);
-#endif /* ACE_HAS_WINCE */
-}
-
-ACE_INLINE
-ACE_Str_Buf::ACE_Str_Buf (void *b, int l, int max)
-{
- this->maxlen = max;
- this->len = l;
- this->buf = (char *) b;
-}
-
-ACE_INLINE
-ACE_Str_Buf::ACE_Str_Buf (strbuf &sb)
-{
- this->maxlen = sb.maxlen;
- this->len = sb.len;
- this->buf = sb.buf;
-}
-
-ACE_INLINE u_int
-ACE_OS::wslen (const WChar *s)
-{
- u_int len = 0;
-
- while (*s++ != 0)
- len++;
-
- return len;
-}
-
-ACE_INLINE ACE_OS::WChar *
-ACE_OS::wscpy (WChar *dest, const WChar *src)
-{
- WChar *original_dest = dest;
-
- while ((*dest++ = *src++) != 0)
- continue;
-
- return original_dest;
-}
-
-ACE_INLINE int
-ACE_OS::wscmp (const WChar *s, const WChar *t)
-{
- const WChar *scan1 = s;
- const WChar *scan2 = t;
-
- while (*scan1 != 0 && *scan1 == *scan2)
- {
- ++scan1;
- ++scan2;
- }
-
- return *scan1 - *scan2;
-}
-
-ACE_INLINE int
-ACE_OS::wsncmp (const WChar *s, const WChar *t, size_t len)
-{
- const WChar *scan1 = s;
- const WChar *scan2 = t;
-
- while (len != 0 && *scan1 != 0 && *scan1 == *scan2)
- {
- ++scan1;
- ++scan2;
- --len;
- }
-
- return len == 0 ? 0 : *scan1 - *scan2;
-}
-
-#if defined (ACE_LACKS_COND_T) && defined (ACE_HAS_THREADS)
-ACE_INLINE long
-ACE_cond_t::waiters (void) const
-{
- return this->waiters_;
-}
-#endif /* ACE_LACKS_COND_T && ACE_HAS_THREADS */
-
-#if 0
-ACE_INLINE int
-ACE_OS::thr_continue (const ACE_Thread_ID &thr_id)
-{
- ACE_OS_TRACE ("ACE_OS::thr_continue");
- return ACE_OS::thr_continue (thr_id.id ());
-}
-
-ACE_INLINE int
-ACE_OS::thr_create (ACE_THR_FUNC func,
- void *args,
- long flags,
- ACE_Thread_ID *thr_id,
- long priority,
- void *stack,
- size_t stacksize);
-{
- ACE_OS_TRACE ("ACE_OS::thr_create");
- ACE_thread_t thread_id;
- ACE_hthread_t thread_handle;
-
- int result = ACE_OS::thr_create (func, args, flags,
- &thread_id, &thread_handle,
- priority, stack, stacksize);
- if (result == -1)
- return -1;
- else if (thr_id != 0)
- {
- thr_id->id (thread_id);
- thr_id->handle (thread_handle);
- return result;
- }
-}
-
-ACE_INLINE int
-ACE_OS::thr_getprio (const ACE_Thread_ID &thr_id, int &prio)
-{
- ACE_OS_TRACE ("ACE_OS::thr_getprio");
- return ACE_OS::thr_getprio (thr_id.handle (), prio);
-}
-
-ACE_INLINE int
-ACE_OS::thr_join (const ACE_Thread_ID &thr_id, ACE_THR_FUNC_RETURN *status)
-{
-# if defined (ACE_WIN32)
- return ACE_OS::thr_join (thr_id.handle (), status);
-# else
- return ACE_OS::thr_join (thr_id.id (), status);
-# endif /* ACE_WIN32 */
-}
-
-ACE_INLINE int
-ACE_OS::thr_cancel (const ACE_Thread_ID &thr_id)
-{
- return ACE_OS::thr_cancel (thr_id.id ());
-}
-
-ACE_INLINE int
-ACE_OS::thr_kill (const ACE_Thread_ID &thr_id, int signum)
-{
- return ACE_OS::thr_kill (thr_id.id (), signum);
-}
-
-ACE_INLINE ACE_Thread_ID
-ACE_OS::thr_self (void)
-{
- ACE_hthread_t thr_handle;
- ACE_OS::thr_self (thr_handle);
- ACE_thread_t thr_id = ACE_OS::thr_self ();
-
- return ACE_Thread_ID (thr_id, thr_handle);
-}
-
-ACE_INLINE int
-ACE_OS::thr_setprio (const ACE_Thread_ID &thr_id, int prio)
-{
- ACE_OS_TRACE ("ACE_OS::thr_setprio");
- return ACE_OS::thr_setprio (thr_id.handle (), prio);
-}
-
-ACE_INLINE int
-ACE_OS::thr_suspend (const ACE_Thread_ID &thr_id)
-{
- return ACE_OS::thr_suspend (thr_id.handle ());
-}
-
-#endif /* 0 */
-
-ACE_INLINE int
-ACE_OS::sigaddset (sigset_t *s, int signum)
-{
- ACE_OS_TRACE ("ACE_OS::sigaddset");
-#if defined (ACE_LACKS_SIGSET) || defined (ACE_LACKS_SIGSET_DEFINITIONS)
- if (s == 0)
- {
- errno = EFAULT;
- return -1;
- }
- else if (signum < 1 || signum >= ACE_NSIG)
- {
- errno = EINVAL;
- return -1; // Invalid signum, return error
- }
-# if defined (ACE_PSOS) && defined (__DIAB) && ! defined(ACE_PSOS_DIAB_MIPS) && !defined (ACE_PSOS_DIAB_PPC)
- // treat 0th u_long of sigset_t as high bits,
- // and 1st u_long of sigset_t as low bits.
- if (signum <= ACE_BITS_PER_ULONG)
- s->s[1] |= (1 << (signum - 1));
- else
- s->s[0] |= (1 << (signum - ACE_BITS_PER_ULONG - 1));
-# else
- *s |= (1 << (signum - 1)) ;
-# endif /* defined (ACE_PSOS) && defined (__DIAB) */
- return 0 ;
-#else
- ACE_OSCALL_RETURN (::sigaddset (s, signum), int, -1);
-#endif /* ACE_LACKS_SIGSET || ACE_LACKS_SIGSET_DEFINITIONS */
-}
-
-ACE_INLINE int
-ACE_OS::sigdelset (sigset_t *s, int signum)
-{
-#if defined (ACE_LACKS_SIGSET) || defined (ACE_LACKS_SIGSET_DEFINITIONS)
- if (s == 0)
- {
- errno = EFAULT;
- return -1;
- }
- else if (signum < 1 || signum >= ACE_NSIG)
- {
- errno = EINVAL;
- return -1; // Invalid signum, return error
- }
-# if defined (ACE_PSOS) && defined (__DIAB) && ! defined (ACE_PSOS_DIAB_MIPS) && !defined (ACE_PSOS_DIAB_PPC)
- // treat 0th u_long of sigset_t as high bits,
- // and 1st u_long of sigset_t as low bits.
- if (signum <= ACE_BITS_PER_ULONG)
- s->s[1] &= ~(1 << (signum - 1));
- else
- s->s[0] &= ~(1 << (signum - ACE_BITS_PER_ULONG - 1));
-# else
- *s &= ~(1 << (signum - 1)) ;
-# endif /* defined (ACE_PSOS) && defined (__DIAB) */
- return 0;
-#else
- ACE_OSCALL_RETURN (::sigdelset (s, signum), int, -1);
-#endif /* ACE_LACKS_SIGSET || ACE_LACKS_SIGSET_DEFINITIONS */
-}
-
-ACE_INLINE int
-ACE_OS::sigemptyset (sigset_t *s)
-{
-#if defined (ACE_LACKS_SIGSET) || defined (ACE_LACKS_SIGSET_DEFINITIONS)
- if (s == 0)
- {
- errno = EFAULT;
- return -1;
- }
-# if defined (ACE_PSOS) && defined (__DIAB) && ! defined (ACE_PSOS_DIAB_MIPS) && !defined (ACE_PSOS_DIAB_PPC)
- s->s[0] = 0;
- s->s[1] = 0;
-# else
- *s = 0 ;
-# endif /* defined (ACE_PSOS) && defined (__DIAB) */
- return 0 ;
-#else
- ACE_OSCALL_RETURN (::sigemptyset (s), int, -1);
-#endif /* ACE_LACKS_SIGSET || ACE_LACKS_SIGSET_DEFINITIONS */
-}
-
-ACE_INLINE int
-ACE_OS::sigfillset (sigset_t *s)
-{
-#if defined (ACE_LACKS_SIGSET) || defined (ACE_LACKS_SIGSET_DEFINITIONS)
- if (s == 0)
- {
- errno = EFAULT;
- return -1;
- }
-# if defined (ACE_PSOS) && defined (__DIAB) && ! defined (ACE_PSOS_DIAB_MIPS) && !defined (ACE_PSOS_DIAB_PPC)
- s->s[0] = ~(u_long) 0;
- s->s[1] = ~(u_long) 0;
-# else
- *s = ~(sigset_t) 0;
-# endif /* defined (ACE_PSOS) && defined (__DIAB) */
- return 0 ;
-#else
- ACE_OSCALL_RETURN (::sigfillset (s), int, -1);
-#endif /* ACE_LACKS_SIGSET || ACE_LACKS_SIGSET_DEFINITIONS */
-}
-
-ACE_INLINE int
-ACE_OS::sigismember (sigset_t *s, int signum)
-{
-#if defined (ACE_LACKS_SIGSET) || defined (ACE_LACKS_SIGSET_DEFINITIONS)
- if (s == 0)
- {
- errno = EFAULT;
- return -1;
- }
- else if (signum < 1 || signum >= ACE_NSIG)
- {
- errno = EINVAL;
- return -1; // Invalid signum, return error
- }
-# if defined (ACE_PSOS) && defined (__DIAB) && ! defined (ACE_PSOS_DIAB_MIPS) && !defined (ACE_PSOS_DIAB_PPC)
- // treat 0th u_long of sigset_t as high bits,
- // and 1st u_long of sigset_t as low bits.
- if (signum <= ACE_BITS_PER_ULONG)
- return ((s->s[1] & (1 << (signum - 1))) != 0);
- else
- return ((s->s[0] & (1 << (signum - ACE_BITS_PER_ULONG - 1))) != 0);
-# else
- return ((*s & (1 << (signum - 1))) != 0) ;
-# endif /* defined (ACE_PSOS) && defined (__DIAB) */
-#else
-# if defined (ACE_HAS_SIGISMEMBER_BUG)
- if (signum < 1 || signum >= ACE_NSIG)
- {
- errno = EINVAL;
- return -1; // Invalid signum, return error
- }
-# endif /* ACE_HAS_SIGISMEMBER_BUG */
- ACE_OSCALL_RETURN (::sigismember (s, signum), int, -1);
-#endif /* ACE_LACKS_SIGSET || ACE_LACKS_SIGSET_DEFINITIONS */
-}
-
-ACE_INLINE int
-ACE_OS::sigsuspend (const sigset_t *sigset)
-{
-#if defined (ACE_HAS_SIGSUSPEND)
- sigset_t s;
-
- if (sigset == 0)
- {
- sigset = &s;
- ACE_OS::sigemptyset (&s);
- }
- ACE_OSCALL_RETURN (::sigsuspend (sigset), int, -1);
-#else
- ACE_UNUSED_ARG (sigset);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SIGSUSPEND */
-}
-
-ACE_INLINE int
-ACE_OS::sigprocmask (int how, const sigset_t *nsp, sigset_t *osp)
-{
-#if defined (ACE_LACKS_SIGSET) || defined (ACE_LACKS_SIGSET_DEFINITIONS)
- ACE_UNUSED_ARG (how);
- ACE_UNUSED_ARG (nsp);
- ACE_UNUSED_ARG (osp);
- ACE_NOTSUP_RETURN (-1);
-#else
-# if defined (ACE_LACKS_POSIX_PROTOTYPES)
- ACE_OSCALL_RETURN (::sigprocmask (how, (int*) nsp, osp), int, -1);
-# else
- ACE_OSCALL_RETURN (::sigprocmask (how, nsp, osp), int, -1);
-# endif /* ACE_LACKS_POSIX_PROTOTYPES */
-#endif /* ACE_LACKS_SIGSET || ACE_LACKS_SIGSET_DEFINITIONS */
-}
-
-ACE_INLINE int
-ACE_OS::pthread_sigmask (int how, const sigset_t *nsp, sigset_t *osp)
-{
-#if defined (ACE_HAS_PTHREADS_STD) && !defined (ACE_LACKS_PTHREAD_SIGMASK)
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_sigmask (how, nsp, osp),
- ace_result_),
- int,
- -1);
-#else /* !ACE_HAS_PTHREADS_STD && !ACE_LACKS_PTHREAD_SIGMASK */
- ACE_UNUSED_ARG (how);
- ACE_UNUSED_ARG (nsp);
- ACE_UNUSED_ARG (osp);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_PTHREADS_STD && !ACE_LACKS_PTHREAD_SIGMASK */
-}
-
-// ****************************************************************
-
-#if defined (ACE_PSOS)
-ACE_INLINE int
-isatty (int h)
-{
- return ACE_OS::isatty (h);
-}
-#if defined (fileno)
-#undef fileno
-#endif /* defined (fileno)*/
-ACE_INLINE ACE_HANDLE
-fileno (FILE *fp)
-{
- return (ACE_HANDLE) fp;
-}
-#endif /* defined (ACE_PSOS) */
-
-ACE_INLINE
-ACE_Cleanup::ACE_Cleanup (void)
-{
-}
-
-ACE_INLINE void *
-ACE_OS::bsearch (const void *key,
- const void *base,
- size_t nel,
- size_t size,
- ACE_COMPARE_FUNC compar)
-{
-#if !defined (ACE_LACKS_BSEARCH)
- return ::bsearch (key, base, nel, size, compar);
-#else
- ACE_UNUSED_ARG (key);
- ACE_UNUSED_ARG (base);
- ACE_UNUSED_ARG (nel);
- ACE_UNUSED_ARG (size);
- ACE_UNUSED_ARG (compar);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_LACKS_BSEARCH */
-}
-
-ACE_INLINE void
-ACE_OS::qsort (void *base,
- size_t nel,
- size_t width,
- ACE_COMPARE_FUNC compar)
-{
-#if !defined (ACE_LACKS_QSORT)
- ::qsort (base, nel, width, compar);
-#else
- ACE_UNUSED_ARG (base);
- ACE_UNUSED_ARG (nel);
- ACE_UNUSED_ARG (width);
- ACE_UNUSED_ARG (compar);
-#endif /* !ACE_LACKS_QSORT */
-}
-
-ACE_INLINE int
-ACE_OS::setuid (uid_t uid)
-{
- ACE_OS_TRACE ("ACE_OS::setuid");
-#if defined (VXWORKS) || defined (ACE_PSOS) || defined (INTEGRITY)
- // setuid() is not supported: just one user anyways
- ACE_UNUSED_ARG (uid);
- return 0;
-# elif defined (ACE_WIN32) || defined(CHORUS)
- ACE_UNUSED_ARG (uid);
- ACE_NOTSUP_RETURN (-1);
-# else
- ACE_OSCALL_RETURN (::setuid (uid), int, -1);
-# endif /* VXWORKS || ACE_PSOS */
-}
-
-ACE_INLINE uid_t
-ACE_OS::getuid (void)
-{
- ACE_OS_TRACE ("ACE_OS::getuid");
-#if defined (VXWORKS) || defined (ACE_PSOS) || defined (INTEGRITY)
- // getuid() is not supported: just one user anyways
- return 0;
-# elif defined (ACE_WIN32) || defined (CHORUS)
- ACE_NOTSUP_RETURN (ACE_static_cast (uid_t, -1));
-# else
- ACE_OSCALL_RETURN (::getuid (), uid_t, (uid_t) -1);
-# endif /* VXWORKS || ACE_PSOS */
-}
-
-ACE_INLINE int
-ACE_OS::setgid (gid_t gid)
-{
- ACE_OS_TRACE ("ACE_OS::setgid");
-#if defined (VXWORKS) || defined (ACE_PSOS) || defined (INTEGRITY)
- // setgid() is not supported: just one user anyways
- ACE_UNUSED_ARG (gid);
- return 0;
-# elif defined (ACE_WIN32) || defined (CHORUS)
- ACE_UNUSED_ARG (gid);
- ACE_NOTSUP_RETURN (-1);
-# else
- ACE_OSCALL_RETURN (::setgid (gid), int, -1);
-# endif /* VXWORKS || ACE_PSOS */
-}
-
-ACE_INLINE gid_t
-ACE_OS::getgid (void)
-{
- ACE_OS_TRACE ("ACE_OS::getgid");
-#if defined (VXWORKS) || defined (ACE_PSOS) || defined (INTEGRITY)
- // getgid() is not supported: just one user anyways
- return 0;
-# elif defined (ACE_WIN32) || defined (CHORUS)
- ACE_NOTSUP_RETURN (ACE_static_cast (gid_t, -1));
-# else
- ACE_OSCALL_RETURN (::getgid (), gid_t, (gid_t) -1);
-# endif /* VXWORKS || ACE_PSOS */
-}
-
-ACE_INLINE ACE_EXIT_HOOK
-ACE_OS::set_exit_hook (ACE_EXIT_HOOK exit_hook)
-{
- ACE_EXIT_HOOK old_hook = exit_hook_;
- exit_hook_ = exit_hook;
- return old_hook;
-}
-
-ACE_INLINE int
-ACE_OS::isatty (int handle)
-{
-#if defined (ACE_LACKS_ISATTY)
- ACE_UNUSED_ARG (handle);
- return 0;
-# elif defined (ACE_WIN32)
- ACE_OS_TRACE ("ACE_OS::isatty");
- return ::_isatty (handle);
-# else
- ACE_OS_TRACE ("ACE_OS::isatty");
- ACE_OSCALL_RETURN (::isatty (handle), int, -1);
-# endif /* defined (ACE_LACKS_ISATTY) */
-}
-
-#if defined (ACE_WIN32)
-ACE_INLINE int
-ACE_OS::isatty (ACE_HANDLE handle)
-{
-#if defined (ACE_LACKS_ISATTY)
- ACE_UNUSED_ARG (handle);
- return 0;
-#else
-# if defined (ACE_WIN64)
- int fd = ::_open_osfhandle (intptr_t (handle), 0);
-# else
- int fd = ::_open_osfhandle (long (handle), 0);
-# endif /* ACE_WIN64 */
-
- int status = ::_isatty (fd);
- ::_close (fd);
- return status;
-#endif /* ACE_LACKS_ISATTY */
-}
-
-ACE_INLINE void
-ACE_OS::fopen_mode_to_open_mode_converter (ACE_TCHAR x, int &hmode)
-{
- switch (x)
- {
- case ACE_LIB_TEXT ('r'):
- if (ACE_BIT_DISABLED (hmode, _O_RDWR))
- {
- ACE_CLR_BITS (hmode, _O_WRONLY);
- ACE_SET_BITS (hmode, _O_RDONLY);
- }
- break;
- case ACE_LIB_TEXT ('w'):
- if (ACE_BIT_DISABLED (hmode, _O_RDWR))
- {
- ACE_CLR_BITS (hmode, _O_RDONLY);
- ACE_SET_BITS (hmode, _O_WRONLY);
- }
- ACE_SET_BITS (hmode, _O_CREAT | _O_TRUNC);
- break;
- case ACE_LIB_TEXT ('a'):
- if (ACE_BIT_DISABLED (hmode, _O_RDWR))
- {
- ACE_CLR_BITS (hmode, _O_RDONLY);
- ACE_SET_BITS (hmode, _O_WRONLY);
- }
- ACE_SET_BITS (hmode, _O_CREAT | _O_APPEND);
- break;
- case ACE_LIB_TEXT ('+'):
- ACE_CLR_BITS (hmode, _O_RDONLY | _O_WRONLY);
- ACE_SET_BITS (hmode, _O_RDWR);
- break;
- case ACE_LIB_TEXT ('t'):
- ACE_CLR_BITS (hmode, _O_BINARY);
- ACE_SET_BITS (hmode, _O_TEXT);
- break;
- case ACE_LIB_TEXT ('b'):
- ACE_CLR_BITS (hmode, _O_TEXT);
- ACE_SET_BITS (hmode, _O_BINARY);
- break;
- }
-}
-#endif /* ACE_WIN32 */
-
-// Return a dynamically allocated duplicate of <str>, substituting the
-// environment variable if <str[0] == '$'>. Note that the pointer is
-// allocated with <ACE_OS::malloc> and must be freed by
-// <ACE_OS::free>.
-
-ACE_INLINE ACE_TCHAR *
-ACE_OS::strenvdup (const ACE_TCHAR *str)
-{
-#if defined (ACE_HAS_WINCE)
- // WinCE doesn't have environment variables so we just skip it.
- return ACE_OS::strdup (str);
-#elif defined (ACE_LACKS_ENV)
- ACE_UNUSED_ARG (str);
- ACE_NOTSUP_RETURN (0);
-#else
- ACE_TCHAR *temp = 0;
-
- if (str[0] == ACE_LIB_TEXT ('$')
- && (temp = ACE_OS::getenv (&str[1])) != 0)
- return ACE_OS::strdup (temp);
- else
- return ACE_OS::strdup (str);
-#endif /* ACE_HAS_WINCE */
-}
-
-ACE_INLINE int
-ACE_Countdown_Time::start (void)
-{
- if (this->max_wait_time_ != 0)
- {
- this->start_time_ = ACE_OS::gettimeofday ();
- this->stopped_ = 0;
- }
- return 0;
-}
-
-ACE_INLINE int
-ACE_Countdown_Time::stopped (void) const
-{
- return stopped_;
-}
-
-ACE_INLINE int
-ACE_Countdown_Time::stop (void)
-{
- if (this->max_wait_time_ != 0 && this->stopped_ == 0)
- {
- ACE_Time_Value elapsed_time =
- ACE_OS::gettimeofday () - this->start_time_;
-
- if (*this->max_wait_time_ > elapsed_time)
- *this->max_wait_time_ -= elapsed_time;
- else
- {
- // Used all of timeout.
- *this->max_wait_time_ = ACE_Time_Value::zero;
- // errno = ETIME;
- }
- this->stopped_ = 1;
- }
- return 0;
-}
-
-ACE_INLINE int
-ACE_Countdown_Time::update (void)
-{
- return this->stop () == 0 && this->start ();
-}
-
-#if defined (ACE_WIN32)
-ACE_INLINE const OSVERSIONINFO &
-ACE_OS::get_win32_versioninfo ()
-{
- return ACE_OS::win32_versioninfo_;
-}
-
-ACE_INLINE HINSTANCE
-ACE_OS::get_win32_resource_module ()
-{
- return ACE_OS::win32_resource_module_;
-}
-
-ACE_INLINE void
-ACE_OS::set_win32_resource_module (HINSTANCE instance)
-{
- ACE_OS::win32_resource_module_ = instance;
-}
-#endif /* ACE_WIN32 */
diff --git a/ace/OS_Dirent.cpp b/ace/OS_Dirent.cpp
deleted file mode 100644
index 15d12a45f2f..00000000000
--- a/ace/OS_Dirent.cpp
+++ /dev/null
@@ -1,257 +0,0 @@
-// $Id$
-
-#include "ace/OS_Dirent.h"
-#include "ace/OS_String.h"
-#include "ace/OS_Memory.h"
-#include "ace/Log_Msg.h"
-#include "ace/OS.h"
-
-ACE_RCSID(ace, OS_Dirent, "$Id$")
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "ace/OS_Dirent.inl"
-#endif /* ACE_HAS_INLINED_OS_CALLS */
-
-ACE_DIR *
-ACE_OS_Dirent::opendir_emulation (const ACE_TCHAR *filename)
-{
-#if defined (ACE_WIN32)
- ACE_DIR *dir;
- ACE_TCHAR extra[3] = {0,0,0};
-
-/*
- Note: the semantics of the win32 function FindFirstFile take the
- basename(filename) as a pattern to be matched within the dirname(filename).
- This is contrary to the behavior of the posix function readdir which treats
- basename(filename) as a directory to be opened and read.
-
- For this reason, we append a slash-star or backslash-star to the supplied
- filename so the result is that FindFirstFile will do what we need.
-
- According to the documentation for FindFirstFile, either a '/' or a '\' may
- be used as a directory name separator.
-
- Of course, it is necessary to ensure that this is only done if the trailing
- filespec is not already there.
-
- Phil Mesnier
-*/
-
- size_t lastchar = ACE_OS_String::strlen (filename);
- if (lastchar > 0)
- {
- if (filename[lastchar-1] != '*')
- {
- if (filename[lastchar-1] != '/' && filename[lastchar-1] != '\\')
- ACE_OS_String::strcpy (extra, ACE_LIB_TEXT ("/*"));
- else
- ACE_OS_String::strcpy (extra, ACE_LIB_TEXT ("*"));
- }
- }
-
- ACE_NEW_RETURN (dir, ACE_DIR, 0);
- ACE_NEW_RETURN (dir->directory_name_,
- ACE_TCHAR[lastchar + ACE_OS_String::strlen (extra) + 1],
- 0);
- ACE_OS_String::strcpy (dir->directory_name_, filename);
- if (extra[0])
- ACE_OS_String::strcat (dir->directory_name_, extra);
- dir->current_handle_ = INVALID_HANDLE_VALUE;
- dir->started_reading_ = 0;
- dir->dirent_ = 0;
- return dir;
-#else /* ACE_WIN32 */
- ACE_UNUSED_ARG (filename);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_WIN32 */
-}
-
-void
-ACE_OS_Dirent::closedir_emulation (ACE_DIR *d)
-{
-#if defined (ACE_WIN32)
- if (d->current_handle_ != INVALID_HANDLE_VALUE)
- ::FindClose (d->current_handle_);
-
- d->current_handle_ = INVALID_HANDLE_VALUE;
- d->started_reading_ = 0;
- if (d->dirent_ != 0)
- {
- ACE_OS_Memory::free (d->dirent_->d_name);
- ACE_OS_Memory::free (d->dirent_);
- }
-#else /* ACE_WIN32 */
- ACE_UNUSED_ARG (d);
-#endif /* ACE_WIN32 */
-}
-
-dirent *
-ACE_OS_Dirent::readdir_emulation (ACE_DIR *d)
-{
-#if defined (ACE_WIN32)
- if (d->dirent_ != 0)
- {
- ACE_OS_Memory::free (d->dirent_->d_name);
- ACE_OS_Memory::free (d->dirent_);
- d->dirent_ = 0;
- }
-
- if (!d->started_reading_)
- {
- d->current_handle_ = ACE_TEXT_FindFirstFile (d->directory_name_,
- &d->fdata_);
- d->started_reading_ = 1;
- }
- else
- {
- int retval = ACE_TEXT_FindNextFile (d->current_handle_,
- &d->fdata_);
- if (retval == 0)
- {
- // Make sure to close the handle explicitly to avoid a leak!
- ::FindClose (d->current_handle_);
- d->current_handle_ = INVALID_HANDLE_VALUE;
- }
- }
-
- if (d->current_handle_ != INVALID_HANDLE_VALUE)
- {
- d->dirent_ = (dirent *)
- ACE_OS_Memory::malloc (sizeof (dirent));
-
- if (d->dirent_ != 0)
- {
- d->dirent_->d_name = (ACE_TCHAR*)
- ACE_OS_Memory::malloc ((ACE_OS_String::strlen (d->fdata_.cFileName) + 1)
- * sizeof (ACE_TCHAR));
- ACE_OS_String::strcpy (d->dirent_->d_name, d->fdata_.cFileName);
- d->dirent_->d_reclen = sizeof (dirent);
- }
-
- return d->dirent_;
- }
- else
- return 0;
-#else /* ACE_WIN32 */
- ACE_UNUSED_ARG (d);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_WIN32 */
-}
-
-extern "C"
-{
- typedef int (*ACE_SCANDIR_COMPARATOR) (const void *, const void *);
-}
-
-int
-ACE_OS_Dirent::scandir_emulation (const ACE_TCHAR *dirname,
- dirent **namelist[],
- int (*selector) (const dirent *entry),
- int (*comparator) (const dirent **f1,
- const dirent **f2))
-{
- ACE_DIR *dirp = ACE_OS_Dirent::opendir (dirname);
-
- if (dirp == 0)
- return -1;
- // A sanity check here. "namelist" had better not be zero.
- else if (namelist == 0)
- return -1;
-
- dirent **vector = 0;
- dirent *dp;
- int arena_size = 0;
-
- int nfiles = 0;
- int fail = 0;
-
- // @@ This code shoulduse readdir_r() rather than readdir().
- for (dp = ACE_OS_Dirent::readdir (dirp);
- dp != 0;
- dp = ACE_OS_Dirent::readdir (dirp))
- {
- if (selector && (*selector)(dp) == 0)
- continue;
-
- // If we get here, we have a dirent that the user likes.
- if (nfiles == arena_size)
- {
- dirent **newv;
- if (arena_size == 0)
- arena_size = 10;
- else
- arena_size *= 2;
-
- newv = (dirent **) ACE_OS_Memory::realloc (vector,
- arena_size * sizeof (dirent *));
- if (newv == 0)
- {
- fail = 1;
- break;
- }
- vector = newv;
- }
-
-#if defined (ACE_LACKS_STRUCT_DIR)
- dirent *newdp = (dirent *) ACE_OS_Memory::malloc (sizeof (dirent));
-#else
- int dsize =
- sizeof (dirent) +
- ((ACE_OS_String::strlen (dp->d_name) + 1) * sizeof (ACE_TCHAR));
- dirent *newdp = (dirent *) ACE_OS_Memory::malloc (dsize);
-#endif /* ACE_LACKS_STRUCT_DIR */
-
- if (newdp == 0)
- {
- fail = 1;
- break;
- }
-
-#if defined (ACE_LACKS_STRUCT_DIR)
- newdp->d_name = (ACE_TCHAR*) ACE_OS_Memory::malloc (
- (ACE_OS_String::strlen (dp->d_name) + 1) * sizeof (ACE_TCHAR));
-
- if (newdp->d_name == 0)
- {
- fail = 1;
- ACE_OS_Memory::free (newdp);
- break;
- }
-
- // Don't use memcpy here since d_name is now a pointer
- newdp->d_ino = dp->d_ino;
- newdp->d_off = dp->d_off;
- newdp->d_reclen = dp->d_reclen;
- ACE_OS_String::strcpy (newdp->d_name, dp->d_name);
- vector[nfiles++] = newdp;
-#else
- vector[nfiles++] = (dirent *) ACE_OS_String::memcpy (newdp, dp, dsize);
-#endif /* ACE_LACKS_STRUCT_DIR */
- }
-
- if (fail)
- {
- ACE_OS_Dirent::closedir (dirp);
- while (nfiles-- > 0)
- {
-#if defined (ACE_LACKS_STRUCT_DIR)
- ACE_OS_Memory::free (vector[nfiles]->d_name);
-#endif /* ACE_LACKS_STRUCT_DIR */
- ACE_OS_Memory::free (vector[nfiles]);
- }
- ACE_OS_Memory::free (vector);
- return -1;
- }
-
- ACE_OS_Dirent::closedir (dirp);
-
- *namelist = vector;
-
- if (comparator)
- ACE_OS::qsort (*namelist,
- nfiles,
- sizeof (dirent *),
- (ACE_SCANDIR_COMPARATOR) comparator);
-
- return nfiles;
-}
diff --git a/ace/OS_Dirent.h b/ace/OS_Dirent.h
deleted file mode 100644
index 11c5c716112..00000000000
--- a/ace/OS_Dirent.h
+++ /dev/null
@@ -1,134 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file OS_Dirent.h
- *
- * $Id$
- *
- * @author Doug Schmidt <schmidt@cs.wustl.edu>
- * @author Jesper S. M|ller<stophph@diku.dk>
- * @author and a cast of thousands...
- */
-//=============================================================================
-
-#ifndef ACE_OS_DIRENT_H
-#define ACE_OS_DIRENT_H
-#include "ace/pre.h"
-
-#include "ace/OS_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS_Errno.h"
-
-#if !defined (ACE_WIN32) && !defined (ACE_PSOS) && !defined (ACE_HAS_WINCE)
-# include /**/ <sys/types.h>
-# if !defined (ACE_LACKS_UNISTD_H)
-# include /**/ <unistd.h> // VxWorks needs this to compile
-# endif /* !ACE_LACKS_UNISTD_H */
-# include /**/ <dirent.h>
-#endif /* !ACE_WIN32 && !ACE_PSOS */
-
-// At least compile on some of the platforms without <ACE_DIR> info yet.
-# if !defined (ACE_HAS_DIRENT)
-typedef int ACE_DIR;
-struct dirent {
-};
-# endif /* ACE_HAS_DIRENT */
-
-#if defined (ACE_LACKS_STRUCT_DIR)
-struct dirent {
- unsigned short d_ino;
- unsigned short d_off;
- unsigned short d_reclen;
- // This must be a ACE_TCHAR * and not a one element
- // ACE_TCHAR array. It causes problems on wide
- // character builds with Visual C++ 6.0.
- ACE_TCHAR *d_name;
-};
-
-struct ACE_DIR {
- /// The name of the directory we are looking into
- ACE_TCHAR *directory_name_;
-
- /// Remember the handle between calls.
- HANDLE current_handle_;
-
- /// The struct for the results
- dirent *dirent_;
-
- /// The struct for intermediate results.
- ACE_TEXT_WIN32_FIND_DATA fdata_;
-
- /// A flag to remember if we started reading already.
- int started_reading_;
-};
-#elif defined (ACE_PSOS) && !defined (ACE_PSOS_DIAB_PPC)
-// Create our own definition of the DIR struct, like what
-// is available in the newer DIAB PPC header files
-struct ACE_DIR
-{
- /// The directory handle
- XDIR xdir;
-
- /// The directory entry
- struct dirent dirent;
-};
-#else
-typedef DIR ACE_DIR;
-# endif /* ACE_LACKS_STRUCT_DIR */
-
-#if defined rewinddir
-# undef rewinddir
-#endif /* rewinddir */
-
-/**
- * @class ACE_OS_Dirent
- *
- * @brief This class is a wrapper for the dirent.h operations
- *
- */
-class ACE_OS_Export ACE_OS_Dirent
-{
-public:
- static ACE_DIR *opendir (const ACE_TCHAR *filename);
- static void closedir (ACE_DIR *);
- static dirent *readdir (ACE_DIR *);
- static int readdir_r (ACE_DIR *dirp,
- struct dirent *entry,
- struct dirent **result);
- static long telldir (ACE_DIR *);
- static void seekdir (ACE_DIR *,
- long loc);
- static void rewinddir (ACE_DIR *);
-
- static int scandir (const ACE_TCHAR *dirname,
- struct dirent **namelist[],
- int (*selector) (const struct dirent *filename),
- int (*comparator) (const struct dirent **f1,
- const struct dirent **f2));
-private:
- // Win32 emulation functions
- static ACE_DIR *opendir_emulation (const ACE_TCHAR *filename);
- static int scandir_emulation (const ACE_TCHAR *dirname,
- dirent **namelist[],
- int (*selector)(const dirent *entry),
- int (*comparator)(const dirent **f1,
- const dirent**f2));
- static void closedir_emulation (ACE_DIR *);
- static dirent *readdir_emulation (ACE_DIR *);
-};
-
-# if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "ace/OS_Dirent.inl"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#include "ace/post.h"
-#endif /* ACE_OS_DIRENT_H */
diff --git a/ace/OS_Dirent.inl b/ace/OS_Dirent.inl
deleted file mode 100644
index c1f227fbb78..00000000000
--- a/ace/OS_Dirent.inl
+++ /dev/null
@@ -1,191 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-ACE_INLINE ACE_DIR *
-ACE_OS_Dirent::opendir (const ACE_TCHAR *filename)
-{
-#if defined (ACE_HAS_DIRENT)
-# if defined (ACE_PSOS)
- // The pointer to the <ACE_DIR> buffer *must* be passed to
- // <ACE_OS_Dirent::closedir> to free it and avoid a memory leak.
- ACE_DIR *dir;
- u_long result;
- ACE_NEW_RETURN (dir, ACE_DIR, 0);
- result = ::open_dir (ACE_const_cast (ACE_TCHAR *,
- filename),
- &dir->xdir);
- if (result == 0)
- return dir;
- else
- {
- errno = result;
- return 0;
- }
-# else /* ! ACE_PSOS */
-# if defined (ACE_WIN32)
- return ::ACE_OS_Dirent::opendir_emulation (filename);
-# else /* ! ACE_WIN32 */
- // VxWorks' ::opendir () is declared with a non-const argument.
- return ::opendir (ACE_const_cast (ACE_TCHAR *, filename));
-# endif /* ACE_WIN32 */
-# endif /* ACE_PSOS */
-#else
- ACE_UNUSED_ARG (filename);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_DIRENT */
-}
-
-ACE_INLINE void
-ACE_OS_Dirent::closedir (ACE_DIR *d)
-{
-#if defined (ACE_HAS_DIRENT)
-# if defined (ACE_PSOS)
-
- u_long result = ::close_dir (&(d->xdir));
- delete d;
- if (result != 0)
- errno = result;
-
-# else /* ! ACE_PSOS */
-
-# if defined (ACE_WIN32)
- ACE_OS_Dirent::closedir_emulation (d);
- delete [] d->directory_name_;
- delete d;
-# else /* ACE_WIN32 */
- ::closedir (d);
-# endif /* ACE_WIN32 */
-
-# endif /* ACE_PSOS */
-#else /* ACE_HAS_DIRENT */
- ACE_UNUSED_ARG (d);
-#endif /* ACE_HAS_DIRENT */
-}
-
-ACE_INLINE struct dirent *
-ACE_OS_Dirent::readdir (ACE_DIR *d)
-{
-#if defined (ACE_HAS_DIRENT)
-# if defined (ACE_PSOS)
-
- u_long result = ::read_dir (&d->xdir, &d->dirent);
- if (0 == result)
- return &d->dirent;
- else
- {
- errno = result;
- return 0;
- }
-
-# else /* ! ACE_PSOS */
-# if defined (ACE_WIN32)
- return ACE_OS_Dirent::readdir_emulation (d);
-# else /* defined (ACE_WIN32) */
- return ::readdir (d);
-# endif /* defined (ACE_WIN32) */
-# endif /* ACE_PSOS */
-#else
- ACE_UNUSED_ARG (d);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_DIRENT */
-}
-
-ACE_INLINE int
-ACE_OS_Dirent::readdir_r (ACE_DIR *dirp,
- struct dirent *entry,
- struct dirent **result)
-{
-#if !defined (ACE_HAS_REENTRANT_FUNCTIONS)
- ACE_UNUSED_ARG (entry);
- // <result> has better not be 0!
- *result = ACE_OS_Dirent::readdir (dirp);
- if (*result)
- return 0; // Keep iterating
- else
- return 1; // Oops, some type of error!
-#elif defined (ACE_HAS_DIRENT) && !defined (ACE_LACKS_READDIR_R)
-# if (defined (sun) && (defined (_POSIX_PTHREAD_SEMANTICS) || \
- (_FILE_OFFSET_BITS == 64))) || \
- (!defined (sun) && (defined (ACE_HAS_PTHREADS_STD) || \
- defined (ACE_HAS_PTHREADS_DRAFT7) || \
- defined (__USE_POSIX) || \
- defined (HPUX_11)))
-# if defined (__GNUG__) && defined (DIGITAL_UNIX)
- return readdir_r (dirp, entry, result);
-# else
- return ::readdir_r (dirp, entry, result);
-# endif /* defined (__GNUG__) && defined (DIGITAL_UNIX) */
-# else /* ! POSIX.1c - this is draft 4 or draft 6 */
-# if defined (HPUX_10) /* But HP 10.x doesn't follow the draft either */
- *result = entry;
- return ::readdir_r (dirp, entry);
-# else
- // <result> had better not be 0!
- *result = ::readdir_r (dirp, entry);
- return 0;
-# endif /* HPUX_10 */
-# endif /* ! POSIX.1c */
-#else /* ! ACE_HAS_DIRENT || ACE_LACKS_READDIR_R */
- ACE_UNUSED_ARG (dirp);
- ACE_UNUSED_ARG (entry);
- ACE_UNUSED_ARG (result);
- ACE_NOTSUP_RETURN (0);
-
-#endif /* ACE_HAS_REENTRANT_FUNCTIONS */
-}
-
-ACE_INLINE long
-ACE_OS_Dirent::telldir (ACE_DIR *d)
-{
-#if defined (ACE_HAS_DIRENT) && !defined (ACE_LACKS_TELLDIR)
- return ::telldir (d);
-#else /* ! ACE_HAS_DIRENT || ACE_LACKS_TELLDIR */
- ACE_UNUSED_ARG (d);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ! ACE_HAS_DIRENT || ACE_LACKS_TELLDIR */
-}
-
-ACE_INLINE void
-ACE_OS_Dirent::seekdir (ACE_DIR *d, long loc)
-{
-#if defined (ACE_HAS_DIRENT) && !defined (ACE_LACKS_SEEKDIR)
- ::seekdir (d, loc);
-#else /* ! ACE_HAS_DIRENT || ACE_LACKS_SEEKDIR */
- ACE_UNUSED_ARG (d);
- ACE_UNUSED_ARG (loc);
-#endif /* ! ACE_HAS_DIRENT || ACE_LACKS_SEEKDIR */
-}
-
-ACE_INLINE void
-ACE_OS_Dirent::rewinddir (ACE_DIR *d)
-{
-#if defined (ACE_HAS_DIRENT)
-# if defined (ACE_LACKS_SEEKDIR)
-# if defined (ACE_LACKS_REWINDDIR)
- ACE_UNUSED_ARG (d);
-# else /* ! defined (ACE_LACKS_REWINDDIR) */
- ::rewinddir (d);
-# endif /* ! defined (ACE_LACKS_REWINDDIR) */
-# else /* ! ACE_LACKS_SEEKDIR */
- // We need to implement <rewinddir> using <seekdir> since it's often
- // defined as a macro...
- ::seekdir (d, long (0));
-# endif /* ! ACE_LACKS_SEEKDIR */
-#else
- ACE_UNUSED_ARG (d);
-#endif /* ACE_HAS_DIRENT */
-}
-
-ACE_INLINE int
-ACE_OS_Dirent::scandir (const ACE_TCHAR *dirname,
- struct dirent **namelist[],
- int (*selector)(const struct dirent *),
- int (*comparator) (const struct dirent **f1,
- const struct dirent **f2))
-{
-#if defined (ACE_HAS_SCANDIR)
- return ::scandir (dirname, namelist, selector, comparator);
-#else /* ! defined ( ACE_HAS_SCANDIR) */
- return ACE_OS_Dirent::scandir_emulation (dirname, namelist, selector, comparator);
-#endif /* ACE_HAS_SCANDIR */
-}
diff --git a/ace/OS_Errno.cpp b/ace/OS_Errno.cpp
deleted file mode 100644
index 59c6790b529..00000000000
--- a/ace/OS_Errno.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-#include "ace/OS_Errno.h"
-
-ACE_RCSID(ace, OS_Errno, "$Id$")
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "ace/OS_Errno.inl"
-#endif /* ACE_HAS_INLINED_OS_CALLS */
-
-#if defined (ACE_HAS_WINCE_BROKEN_ERRNO)
-
-#include "ace/OS_Memory.h"
-
-ACE_CE_Errno *ACE_CE_Errno::instance_ = 0;
-DWORD ACE_CE_Errno::errno_key_ = 0xffffffff;
-
-void
-ACE_CE_Errno::init ()
-{
- ACE_NEW (ACE_CE_Errno::instance_,
- ACE_CE_Errno ());
- ACE_CE_Errno::errno_key_ = TlsAlloc ();
-}
-
-void
-ACE_CE_Errno::fini ()
-{
- TlsFree (ACE_CE_Errno::errno_key_);
- delete ACE_CE_Errno::instance_;
- ACE_CE_Errno::instance_ = 0;
-}
-
-#endif /* ACE_HAS_WINCE_BROKEN_ERRNO */
diff --git a/ace/OS_Errno.h b/ace/OS_Errno.h
deleted file mode 100644
index 378e092a445..00000000000
--- a/ace/OS_Errno.h
+++ /dev/null
@@ -1,142 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file OS_Errno.h
- *
- * $Id$
- *
- * @author (Originally in OS.h)Doug Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_OS_ERRNO_H
-#define ACE_OS_ERRNO_H
-#include "ace/pre.h"
-
-#include "ace/OS_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_H_ERRNO)
-void herror (const char *str);
-#endif /* ACE_HAS_H_ERRNO */
-
-#if !defined (ACE_HAS_WINCE)
-# include /**/ <errno.h>
-#endif /* ACE_HAS_WINCE */
-
-#if !defined (ACE_WIN32) && !defined (ACE_PSOS) && defined (ACE_LACKS_T_ERRNO)
-extern int t_errno;
-#endif /* ACE_WIN32 && !ACE_PSOS && ACE_LACKS_T_ERRNO */
-
-#if !defined (ENOSYS)
-# define ENOSYS EFAULT /* Operation not supported or unknown error. */
-#endif /* !ENOSYS */
-
-#if !defined (ENOTSUP)
-# define ENOTSUP ENOSYS /* Operation not supported. */
-#endif /* !ENOTSUP */
-
-#if defined (ACE_HAS_WINCE_BROKEN_ERRNO)
-/**
- * @class ACE_CE_Errno
- *
- * Some versions of CE don't support <errno> and some versions'
- * implementations are busted. So we implement our own.
- * Our implementation takes up one Tls key, however, it does not
- * allocate memory fromt the heap so there's no problem with cleanin
- * up the errno when a thread exit.
- */
-class ACE_OS_Export ACE_CE_Errno
-{
-public:
- ACE_CE_Errno () {}
- static void init ();
- static void fini ();
- static ACE_CE_Errno *instance ();
-
- operator int (void) const;
- int operator= (int);
-
-private:
- static ACE_CE_Errno *instance_;
- static DWORD errno_key_;
-};
-
-# define errno (* (ACE_CE_Errno::instance ()))
-#endif /* ACE_HAS_WINCE_BROKEN_ERRNO */
-
-#if defined (ACE_HAS_WINCE_BROKEN_ERRNO)
-# define ACE_ERRNO_TYPE ACE_CE_Errno
-#else
-# define ACE_ERRNO_TYPE int
-#endif /* ACE_HAS_WINCE */
-
-/**
- * @class ACE_Errno_Guard
- *
- * @brief Provides a wrapper to improve performance when thread-specific
- * errno must be saved and restored in a block of code.
- *
- * The typical use-case for this is the following:
- * int error = errno;
- * call_some_function_that_might_change_errno ();
- * errno = error;
- * This can be replaced with
- * {
- * ACE_Errno_Guard guard (errno);
- * call_some_function_that_might_change_errno ();
- * }
- * This implementation is more elegant and more efficient since it
- * avoids an unnecessary second access to thread-specific storage
- * by caching a pointer to the value of errno in TSS.
- */
-class ACE_OS_Export ACE_Errno_Guard
-{
-public:
- /// Stash the value of <error> into <error_> and initialize the
- /// <errno_ptr_> to the address of <errno_ref>.
- ACE_Errno_Guard (ACE_ERRNO_TYPE &errno_ref,
- int error);
-
- /// Stash the value of <errno> into <error_> and initialize the
- /// <errno_ptr_> to the address of <errno_ref>.
- ACE_Errno_Guard (ACE_ERRNO_TYPE &errno_ref);
-
- /// Reset the value of <errno> to <error>.
- ~ACE_Errno_Guard (void);
-
-#if defined (ACE_HAS_WINCE_BROKEN_ERRNO)
- /// Assign <errno_ref> to <error_>.
- int operator= (const ACE_ERRNO_TYPE &errno_ref);
-#endif /* ACE_HAS_WINCE_BROKEN_ERRNO */
-
- /// Assign <error> to <error_>.
- int operator= (int error);
-
- /// Compare <error> with <error_> for equality.
- int operator== (int error);
-
- /// Compare <error> with <error_> for inequality.
- int operator!= (int error);
-
-private:
-#if defined (ACE_MT_SAFE)
- ACE_ERRNO_TYPE *errno_ptr_;
-#endif /* ACE_MT_SAFE */
- int error_;
-};
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "ace/OS_Errno.inl"
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-#include "ace/post.h"
-#endif /* ACE_OS_ERRNO_H */
diff --git a/ace/OS_Errno.inl b/ace/OS_Errno.inl
deleted file mode 100644
index 1fb222075be..00000000000
--- a/ace/OS_Errno.inl
+++ /dev/null
@@ -1,87 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-#if defined (ACE_HAS_WINCE_BROKEN_ERRNO)
-
-ACE_INLINE ACE_CE_Errno *
-ACE_CE_Errno::instance ()
-{
- // This should be inlined.
- return ACE_CE_Errno::instance_;
-}
-
-ACE_INLINE
-ACE_CE_Errno::operator int (void) const
-{
- return (int) TlsGetValue (ACE_CE_Errno::errno_key_);
-}
-
-ACE_INLINE int
-ACE_CE_Errno::operator= (int x)
-{
- // error checking?
- TlsSetValue (ACE_CE_Errno::errno_key_, (void *) x);
- return x;
-}
-
-#endif /* ACE_HAS_WINCE_BROKEN_ERRNO */
-
-ACE_INLINE
-ACE_Errno_Guard::ACE_Errno_Guard (ACE_ERRNO_TYPE &errno_ref,
- int error)
- :
-#if defined (ACE_MT_SAFE)
- errno_ptr_ (&errno_ref),
-#endif /* ACE_MT_SAFE */
- error_ (error)
-{
-#if !defined(ACE_MT_SAFE)
- ACE_UNUSED_ARG (errno_ref);
-#endif /* ACE_MT_SAFE */
-}
-
-ACE_INLINE
-ACE_Errno_Guard::ACE_Errno_Guard (ACE_ERRNO_TYPE &errno_ref)
- :
-#if defined (ACE_MT_SAFE)
- errno_ptr_ (&errno_ref),
-#endif /* ACE_MT_SAFE */
- error_ (errno_ref)
-{
-}
-
-ACE_INLINE
-ACE_Errno_Guard::~ACE_Errno_Guard (void)
-{
-#if defined (ACE_MT_SAFE)
- *errno_ptr_ = this->error_;
-#else
- errno = this->error_;
-#endif /* ACE_MT_SAFE */
-}
-
-#if defined (ACE_HAS_WINCE_BROKEN_ERRNO)
-ACE_INLINE int
-ACE_Errno_Guard::operator= (const ACE_ERRNO_TYPE &error)
-{
- return this->error_ = error;
-}
-#endif /* ACE_HAS_WINCE_BROKEN_ERRNO */
-
-ACE_INLINE int
-ACE_Errno_Guard::operator= (int error)
-{
- return this->error_ = error;
-}
-
-ACE_INLINE int
-ACE_Errno_Guard::operator== (int error)
-{
- return this->error_ == error;
-}
-
-ACE_INLINE int
-ACE_Errno_Guard::operator!= (int error)
-{
- return this->error_ != error;
-}
diff --git a/ace/OS_Export.h b/ace/OS_Export.h
deleted file mode 100644
index cec9673f645..00000000000
--- a/ace/OS_Export.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// -*- C++ -*-
-// $Id$
-// Definition for Win32 Export directives.
-// This file is generated automatically by
-// generate_export_file.pl
-// ------------------------------
-#ifndef ACE_OS_EXPORT_H
-#define ACE_OS_EXPORT_H
-
-#include "ace/config-all.h"
-
-#if defined (ACE_AS_STATIC_LIBS)
-# if !defined (ACE_OS_HAS_DLL)
-# define ACE_OS_HAS_DLL 0
-# endif /* ! ACE_OS_HAS_DLL */
-#else
-# if !defined (ACE_OS_HAS_DLL)
-# define ACE_OS_HAS_DLL 1
-# endif /* ! ACE_OS_HAS_DLL */
-#endif /* ACE_AS_STATIC_LIB */
-
-#if defined (ACE_OS_HAS_DLL)
-# if (ACE_OS_HAS_DLL == 1)
-# if defined (ACE_OS_BUILD_DLL)
-# define ACE_OS_Export ACE_Proper_Export_Flag
-# define ACE_OS_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
-# define ACE_OS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# else
-# define ACE_OS_Export ACE_Proper_Import_Flag
-# define ACE_OS_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
-# define ACE_OS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ACE_OS_BUILD_DLL */
-# else
-# define ACE_OS_Export
-# define ACE_OS_SINGLETON_DECLARATION(T)
-# define ACE_OS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ! ACE_OS_HAS_DLL == 1 */
-#else
-# define ACE_OS_Export
-# define ACE_OS_SINGLETON_DECLARATION(T)
-# define ACE_OS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-#endif /* ACE_OS_HAS_DLL */
-
-#endif /* ACE_OS_EXPORT_H */
-
-// End of auto generated file.
diff --git a/ace/OS_Log_Msg_Attributes.cpp b/ace/OS_Log_Msg_Attributes.cpp
deleted file mode 100644
index 1e0db5e1ab8..00000000000
--- a/ace/OS_Log_Msg_Attributes.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// $Id$
-
-#include "ace/OS_Log_Msg_Attributes.h"
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "ace/OS_Log_Msg_Attributes.inl"
-#endif /* ACE_HAS_INLINED_OS_CALLS */
-
-ACE_RCSID(ace, OS_Log_Msg_Attributes, "$Id$")
diff --git a/ace/OS_Log_Msg_Attributes.h b/ace/OS_Log_Msg_Attributes.h
deleted file mode 100644
index 4ec9bafb1be..00000000000
--- a/ace/OS_Log_Msg_Attributes.h
+++ /dev/null
@@ -1,89 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file OS_Log_Msg_Attributes.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan
- */
-//=============================================================================
-
-
-#ifndef ACE_OS_LOG_MSG_ATTRIBUTES_H
-#define ACE_OS_LOG_MSG_ATTRIBUTES_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-#include "ace/streams.h"
-#include /**/ <stdarg.h> // LynxOS requires this before stdio.h
-#include /**/ <stdio.h>
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_OSTREAM_TYPE)
-# if defined (ACE_LACKS_IOSTREAM_TOTALLY)
-# define ACE_OSTREAM_TYPE FILE
-# else /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-# define ACE_OSTREAM_TYPE ostream
-# endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-#endif /* ! ACE_OSTREAM_TYPE */
-
-
-#include "ace/OS_Export.h"
-
-/// The attributes required by ACE_Log_Msg.
-/**
- * When a new thread is created the TSS resources for the Log_Msg
- * class in the new thread may be inherited by the creator thread.
- * The base_attributes are encapsulated in this class to simplify their
- * manipulation and destruction.
- *
- * The contents of the class must be made available to the OS layer,
- * because they are part of the thread descriptor.
- */
-class ACE_OS_Export ACE_OS_Log_Msg_Attributes
-{
-public:
- /// Constructor
- ACE_OS_Log_Msg_Attributes (void);
-
-protected:
- friend class ACE_Log_Msg;
-
- /// Ostream where the new TSS Log_Msg will use.
- ACE_OSTREAM_TYPE *ostream_;
-
- /// Priority_mask to be used in new TSS Log_Msg.
- unsigned long priority_mask_;
-
- /// Are we allowing tracing in this thread?
- int tracing_enabled_;
-
- /// Indicates whether we should restart system calls that are
- /// interrupted.
- int restart_;
-
- /// Depth of the nesting for printing traces.
- int trace_depth_;
-
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- /// Structured exception handling Callbacks, only used under Win32
- ACE_SEH_EXCEPT_HANDLER seh_except_selector_;
- ACE_SEH_EXCEPT_HANDLER seh_except_handler_;
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-};
-
-# if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "ace/OS_Log_Msg_Attributes.inl"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#include "ace/post.h"
-#endif /* ACE_OS_LOG_MSG_ATTRIBUTES_H */
diff --git a/ace/OS_Log_Msg_Attributes.inl b/ace/OS_Log_Msg_Attributes.inl
deleted file mode 100644
index d79e7fe90f8..00000000000
--- a/ace/OS_Log_Msg_Attributes.inl
+++ /dev/null
@@ -1,6 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_OS_Log_Msg_Attributes::ACE_OS_Log_Msg_Attributes (void)
-{
-}
diff --git a/ace/OS_Memory.cpp b/ace/OS_Memory.cpp
deleted file mode 100644
index 4dfea835b72..00000000000
--- a/ace/OS_Memory.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// $Id$
-
-#include "ace/OS_Memory.h"
-
-ACE_RCSID(ace, OS_Memory, "$Id$")
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "ace/OS_Memory.inl"
-#else /* !ACE_HAS_INLINED_OSCALLS */
-#if defined (__hpux) && !defined (__GNUG__)
-static int shut_up_aCC = 0;
-#endif /* HPUX && !g++ */
-#endif /* !ACE_HAS_INLINED_OS_CALLS */
-
-void *
-ACE_OS_Memory::malloc (size_t nbytes)
-{
- return ACE_MALLOC_FUNC (nbytes);
-}
-
-void *
-ACE_OS_Memory::calloc (size_t elements, size_t sizeof_elements)
-{
-#if !defined (ACE_HAS_WINCE)
- return ACE_CALLOC_FUNC (elements, sizeof_elements);
-#else
- // @@ This will probably not work since it doesn't consider
- // alignment properly.
- return ACE_MALLOC_FUNC (elements * sizeof_elements);
-#endif /* ACE_HAS_WINCE */
-}
-
-void *
-ACE_OS_Memory::realloc (void *ptr, size_t nbytes)
-{
- return ACE_REALLOC_FUNC (ACE_MALLOC_T (ptr), nbytes);
-}
-
-void
-ACE_OS_Memory::free (void *ptr)
-{
- ACE_FREE_FUNC (ACE_MALLOC_T (ptr));
-}
diff --git a/ace/OS_Memory.h b/ace/OS_Memory.h
deleted file mode 100644
index aad6cc2657b..00000000000
--- a/ace/OS_Memory.h
+++ /dev/null
@@ -1,264 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file OS_Memory.h
- *
- * $Id$
- *
- * @author Doug Schmidt <schmidt@cs.wustl.edu>
- * @author Jesper S. M|ller<stophph@diku.dk>
- * @author and a cast of thousands...
- */
-//=============================================================================
-
-#ifndef ACE_OS_MEMORY_H
-#define ACE_OS_MEMORY_H
-#include "ace/pre.h"
-
-#include "ace/OS_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS_Errno.h"
-
-#ifndef ACE_HAS_WINCE
-#include <stddef.h>
-#endif // ACE_HAS_WINCE
-
-// Allow an installation to replace the lowest-level allocation
-// functions without changing the source of ACE.
-//
-// To do this, simple #define ACE_*_FUNC macros in config.h to
-// the names of the site-specific functions, e.g.,
-//
-// #define ACE_MALLOC_FUNC dlmalloc
-// #define ACE_CALLOC_FUNC dlcalloc
-// #define ACE_FREE_FUNC dlfree
-// #define ACE_REALLOC_FUNC dlrealloc
-//
-// For completeness' sake, you should probably put
-// #define ACE_HAS_STRDUP_EMULATION
-// too, so that you guarantee that strdup() calls your desired mallocator
-// and not the system mallocator.
-//
-#if !defined (ACE_MALLOC_FUNC)
-# define ACE_MALLOC_FUNC ::malloc
-#endif
-#if !defined (ACE_CALLOC_FUNC)
-# define ACE_CALLOC_FUNC ::calloc
-#endif
-#if !defined (ACE_FREE_FUNC)
-# define ACE_FREE_FUNC ::free
-#endif
-#if !defined (ACE_REALLOC_FUNC)
-# define ACE_REALLOC_FUNC ::realloc
-#endif
-
-#if defined (ACE_HAS_OLD_MALLOC)
-typedef char *ACE_MALLOC_T;
-#else
-typedef void *ACE_MALLOC_T;
-#endif /* ACE_HAS_OLD_MALLOC */
-
-// ============================================================================
-// ACE_NEW macros
-//
-// A useful abstraction for expressions involving operator new since
-// we can change memory allocation error handling policies (e.g.,
-// depending on whether ANSI/ISO exception handling semantics are
-// being used).
-// ============================================================================
-
-#if defined (ACE_NEW_THROWS_EXCEPTIONS)
-
-// Since new() throws exceptions, we need a way to avoid passing
-// exceptions past the call to new because ACE counts on having a 0
-// return value for a failed allocation. Some compilers offer the
-// new (nothrow) version, which does exactly what we want. Others
-// do not. For those that do not, this sets up what exception is thrown,
-// and then below we'll do a try/catch around the new to catch it and
-// return a 0 pointer instead.
-
-# if defined (__HP_aCC)
- // I know this works for HP aC++... if <stdexcept> is used, it
- // introduces other stuff that breaks things, like <memory>, which
- // screws up auto_ptr.
-# include /**/ <new>
- // _HP_aCC was first defined at aC++ 03.13 on HP-UX 11. Prior to that
- // (03.10 and before) a failed new threw bad_alloc. After that (03.13
- // and above) the exception thrown is dependent on the below settings.
-# if (HPUX_VERS >= 1100)
-# if ((__HP_aCC < 32500 && !defined (RWSTD_NO_NAMESPACE)) || \
- defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB))
-# define ACE_bad_alloc std::bad_alloc
-# define ACE_nothrow std::nothrow
-# define ACE_nothrow_t std::nothrow_t
-# else
-# define ACE_bad_alloc bad_alloc
-# define ACE_nothrow nothrow
-# define ACE_nothrow_t nothrow_t
-# endif /* __HP_aCC */
-# elif ((__HP_aCC < 12500 && !defined (RWSTD_NO_NAMESPACE)) || \
- defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB))
-# define ACE_bad_alloc std::bad_alloc
-# define ACE_nothrow std::nothrow
-# define ACE_nothrow_t std::nothrow_t
-# else
-# define ACE_bad_alloc bad_alloc
-# define ACE_nothrow nothrow
-# define ACE_nothrow_t nothrow_t
-# endif /* HPUX_VERS < 1100 */
-# define ACE_throw_bad_alloc throw ACE_bad_alloc ()
-# elif defined (__SUNPRO_CC)
-# if (__SUNPRO_CC < 0x500) || (__SUNPRO_CC_COMPAT == 4)
-# include /**/ <exception.h>
- // Note: we catch ::xalloc rather than just xalloc because of
- // a name clash with unsafe_ios::xalloc()
-# define ACE_bad_alloc ::xalloc
-# define ACE_throw_bad_alloc throw ACE_bad_alloc ("no more memory")
-# else
-# include /**/ <new>
-# define ACE_bad_alloc std::bad_alloc
-# define ACE_throw_bad_alloc throw ACE_bad_alloc ()
-# endif /* __SUNPRO_CC < 0x500 */
-# elif defined (__BORLANDC__) || defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-# include /**/ <new>
-# define ACE_bad_alloc std::bad_alloc
-# define ACE_throw_bad_alloc throw ACE_bad_alloc ()
-# else
-# include /**/ <new>
-# define ACE_bad_alloc bad_alloc
-# define ACE_throw_bad_alloc throw ACE_bad_alloc ()
-# endif /* __HP_aCC */
-
-# if defined (ACE_HAS_NEW_NOTHROW)
-# define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) \
- do { POINTER = new (ACE_nothrow) CONSTRUCTOR; \
- if (POINTER == 0) { errno = ENOMEM; return RET_VAL; } \
- } while (0)
-# define ACE_NEW(POINTER,CONSTRUCTOR) \
- do { POINTER = new(ACE_nothrow) CONSTRUCTOR; \
- if (POINTER == 0) { errno = ENOMEM; return; } \
- } while (0)
-# define ACE_NEW_NORETURN(POINTER,CONSTRUCTOR) \
- do { POINTER = new(ACE_nothrow) CONSTRUCTOR; \
- if (POINTER == 0) { errno = ENOMEM; } \
- } while (0)
-
-# else
-
-# define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) \
- do { try { POINTER = new CONSTRUCTOR; } \
- catch (ACE_bad_alloc) { errno = ENOMEM; POINTER = 0; return RET_VAL; } \
- } while (0)
-
-# define ACE_NEW(POINTER,CONSTRUCTOR) \
- do { try { POINTER = new CONSTRUCTOR; } \
- catch (ACE_bad_alloc) { errno = ENOMEM; POINTER = 0; return; } \
- } while (0)
-
-# define ACE_NEW_NORETURN(POINTER,CONSTRUCTOR) \
- do { try { POINTER = new CONSTRUCTOR; } \
- catch (ACE_bad_alloc) { errno = ENOMEM; POINTER = 0; } \
- } while (0)
-# endif /* ACE_HAS_NEW_NOTHROW */
-
-#else /* ACE_NEW_THROWS_EXCEPTIONS */
-
-# define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) \
- do { POINTER = new CONSTRUCTOR; \
- if (POINTER == 0) { errno = ENOMEM; return RET_VAL; } \
- } while (0)
-# define ACE_NEW(POINTER,CONSTRUCTOR) \
- do { POINTER = new CONSTRUCTOR; \
- if (POINTER == 0) { errno = ENOMEM; return; } \
- } while (0)
-# define ACE_NEW_NORETURN(POINTER,CONSTRUCTOR) \
- do { POINTER = new CONSTRUCTOR; \
- if (POINTER == 0) { errno = ENOMEM; } \
- } while (0)
-
-# define ACE_throw_bad_alloc \
- void* gcc_will_complain_if_literal_0_is_returned = 0; \
- return gcc_will_complain_if_literal_0_is_returned
-
-#endif /* ACE_NEW_THROWS_EXCEPTIONS */
-
-//@{
-/**
- * @name Efficiently compute aligned pointers to powers of 2 boundaries.
- */
-
-/**
- * Efficiently align "value" up to "alignment", knowing that all such
- * boundaries are binary powers and that we're using two's complement
- * arithmetic.
- *
- * Since the alignment is a power of two its binary representation is:
- *
- * alignment = 0...010...0
- *
- * hence
- *
- * alignment - 1 = 0...001...1 = T1
- *
- * so the complement is:
- *
- * ~(alignment - 1) = 1...110...0 = T2
- *
- * Notice that there is a multiple of <alignment> in the range
- * [<value>,<value> + T1], also notice that if
- *
- * X = ( <value> + T1 ) & T2
- *
- * then
- *
- * <value> <= X <= <value> + T1
- *
- * because the & operator only changes the last bits, and since X is a
- * multiple of <alignment> (its last bits are zero) we have found the
- * multiple we wanted.
- */
-/// Return the next integer aligned to a required boundary
-/**
- * @param ptr the base pointer
- * @param alignment the required alignment
- */
-#define ACE_align_binary(ptr, alignment) \
- ((ptr + ((ptr_arith_t)((alignment)-1))) & (~((ptrdiff_t)((alignment)-1))))
-
-/// Return the next address aligned to a required boundary
-#define ACE_ptr_align_binary(ptr, alignment) \
- ((char *) ACE_align_binary (((ptrdiff_t) (ptr)), (alignment)))
-//@}
-
-/**
- * @class ACE_OS_Memory
- *
- * @brief This class is a wrapper for dynamic memory operations.
- *
- */
-class ACE_OS_Export ACE_OS_Memory
-{
-public:
- // = A set of wrappers for memory managment.
- static void *sbrk (int brk);
- static void *calloc (size_t elements, size_t sizeof_elements);
- static void *malloc (size_t);
- static void *realloc (void *, size_t);
- static void free (void *);
-};
-
-# if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "ace/OS_Memory.inl"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#include "ace/post.h"
-#endif /* ACE_OS_MEMORY_H */
diff --git a/ace/OS_Memory.inl b/ace/OS_Memory.inl
deleted file mode 100644
index 28a7c76bf74..00000000000
--- a/ace/OS_Memory.inl
+++ /dev/null
@@ -1,20 +0,0 @@
-// $Id$
-
-#if ! defined (ACE_PSOS_DIAB_MIPS)
-# include /**/ <stdlib.h>
-#endif /* ! ACE_PSOS_DIAB_MIPS */
-
-#if !defined (ACE_LACKS_UNISTD_H) && !defined (ACE_PSOS)
-# include /**/ <unistd.h>
-#endif /* !ACE_LACKS_UNISTD_H && !ACE_PSOS */
-
-ACE_INLINE void *
-ACE_OS_Memory::sbrk (int brk)
-{
-#if defined (ACE_LACKS_SBRK)
- ACE_UNUSED_ARG (brk);
- ACE_NOTSUP_RETURN (0);
-#else
- ACE_OSCALL_RETURN (::sbrk (brk), void *, 0);
-#endif /* VXWORKS */
-}
diff --git a/ace/OS_QoS.cpp b/ace/OS_QoS.cpp
deleted file mode 100644
index b1985171661..00000000000
--- a/ace/OS_QoS.cpp
+++ /dev/null
@@ -1,471 +0,0 @@
-//=============================================================================
-///**
-// * @file OS_QoS.cpp
-// *
-// * $Id$
-// *
-// * @brief Contains OS specific data structures for QoS networking.
-// *
-// * @author Craig Rodrigues <crodrigu@bbn.com>
-// */
-//=============================================================================
-
-#include "ace/OS_QoS.h"
-
-ACE_Flow_Spec::ACE_Flow_Spec (u_long token_rate,
- u_long token_bucket_size,
- u_long peak_bandwidth,
- u_long latency,
- u_long delay_variation,
- ACE_SERVICE_TYPE service_type,
- u_long max_sdu_size,
- u_long minimum_policed_size,
- int ttl,
- int priority)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- this->TokenRate = token_rate;
- this->TokenBucketSize = token_bucket_size;
- this->PeakBandwidth = peak_bandwidth;
- this->Latency = latency;
- this->DelayVariation = delay_variation;
-#if defined(ACE_HAS_WINSOCK2_GQOS)
- this->ServiceType = service_type;
- this->MaxSduSize = max_sdu_size;
- this->MinimumPolicedSize = minimum_policed_size;
-#else
- ACE_UNUSED_ARG (service_type);
- ACE_UNUSED_ARG (max_sdu_size);
- ACE_UNUSED_ARG (minimum_policed_size);
-#endif /* ACE_HAS_WINSOCK2_GQOS */
- ACE_UNUSED_ARG (ttl);
- ACE_UNUSED_ARG (priority);
-#else
-
- this->token_rate_ = token_rate;
- this->token_bucket_size_ = token_bucket_size;
- this->peak_bandwidth_ = peak_bandwidth;
- this->latency_ = latency;
- this->delay_variation_ = delay_variation;
- this->service_type_ = service_type;
- this->max_sdu_size_ = max_sdu_size;
- this->minimum_policed_size_ = minimum_policed_size;
- this->ttl_ = ttl;
- this->priority_ = priority;
-
-#endif /* defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) */
-}
-
-ACE_Flow_Spec::ACE_Flow_Spec (void)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && \
- defined (ACE_HAS_WINSOCK2_GQOS)
- this->TokenRate = 0;
- this->TokenBucketSize = 0;
- this->PeakBandwidth = 0;
- this->Latency = 0;
- this->DelayVariation = 0;
-#if defined(ACE_HAS_WINSOCK2_GQOS)
- this->ServiceType = 0;
- this->MaxSduSize = 0;
- this->MinimumPolicedSize = 0;
-#endif /* ACE_HAS_WINSOCK2_GQOS */
-#else
-
- this->token_rate_ = 0;
- this->token_bucket_size_ = 0;
- this->peak_bandwidth_ = 0;
- this->latency_ = 0;
- this->delay_variation_ = 0;
- this->service_type_ = 0;
- this->max_sdu_size_ = 0;
- this->minimum_policed_size_ = 0;
- this->ttl_ = 0;
- this->priority_ = 0;
-
-#endif /* defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) */
-}
-
-u_long
-ACE_Flow_Spec::token_rate (void) const
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- return this->TokenRate;
-#else
- return this->token_rate_;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-void
-ACE_Flow_Spec::token_rate (u_long tr)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- this->TokenRate = tr;
-#else
- this->token_rate_ = tr;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-u_long
-ACE_Flow_Spec::token_bucket_size (void) const
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- return this->TokenBucketSize;
-#else
- return this->token_bucket_size_;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-void
-ACE_Flow_Spec::token_bucket_size (u_long tbs)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- this->TokenBucketSize = tbs;
-#else
- this->token_bucket_size_ = tbs;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-u_long
-ACE_Flow_Spec::peak_bandwidth (void) const
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- return this->PeakBandwidth;
-#else
- return this->peak_bandwidth_;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-void
-ACE_Flow_Spec::peak_bandwidth (u_long pb)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- this->PeakBandwidth = pb;
-#else
- this->peak_bandwidth_ = pb;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-u_long
-ACE_Flow_Spec::latency (void) const
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- return this->Latency;
-#else
- return this->latency_;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-void
-ACE_Flow_Spec::latency (u_long l)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- this->Latency = l;
-#else
- this->latency_ = l;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-u_long
-ACE_Flow_Spec::delay_variation (void) const
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- return this->DelayVariation;
-#else
- return this->delay_variation_;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-void
-ACE_Flow_Spec::delay_variation (u_long dv)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- this->DelayVariation = dv;
-#else
- this->delay_variation_ = dv;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-ACE_SERVICE_TYPE
-ACE_Flow_Spec::service_type (void) const
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && \
- defined (ACE_HAS_WINSOCK2_GQOS)
- return this->ServiceType;
-#else
- return this->service_type_;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-void
-ACE_Flow_Spec::service_type (ACE_SERVICE_TYPE st)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && \
- defined (ACE_HAS_WINSOCK2_GQOS)
- this->ServiceType = st;
-#else
- this->service_type_ = st;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-u_long
-ACE_Flow_Spec::max_sdu_size (void) const
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && \
- defined (ACE_HAS_WINSOCK2_GQOS)
- return this->MaxSduSize;
-#else
- return this->max_sdu_size_;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-void
-ACE_Flow_Spec::max_sdu_size (u_long mss)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && \
- defined (ACE_HAS_WINSOCK2_GQOS)
- this->MaxSduSize = mss;
-#else
- this->max_sdu_size_ = mss;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-u_long
-ACE_Flow_Spec::minimum_policed_size (void) const
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && \
- defined (ACE_HAS_WINSOCK2_GQOS)
- return this->MinimumPolicedSize;
-#else
- return this->minimum_policed_size_;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-void
-ACE_Flow_Spec::minimum_policed_size (u_long mps)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && \
- defined (ACE_HAS_WINSOCK2_GQOS)
- this->MinimumPolicedSize = mps;
-#else
- this->minimum_policed_size_ = mps;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-int
-ACE_Flow_Spec::ttl (void) const
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && \
- defined (ACE_HAS_WINSOCK2_GQOS)
- ACE_NOTSUP_RETURN (-1);
-#else
- return this->ttl_;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-void
-ACE_Flow_Spec::ttl (int t)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && \
- defined (ACE_HAS_WINSOCK2_GQOS)
- ACE_UNUSED_ARG (t);
- // TBD...
-#else
- this->ttl_ = t;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-int
-ACE_Flow_Spec::priority (void) const
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && \
- defined (ACE_HAS_WINSOCK2_GQOS)
- ACE_NOTSUP_RETURN (-1);
-#else
- return this->priority_;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-void
-ACE_Flow_Spec::priority (int p)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && \
- defined (ACE_HAS_WINSOCK2_GQOS)
- ACE_UNUSED_ARG (p);
- // TBD...
-#else
- this->priority_ = p;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-ACE_QoS::ACE_QoS (void)
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
-#else
- : sending_flowspec_ (0),
- receiving_flowspec_ (0)
-#endif /* ACE_HAS_WINSOCK2 */
-{
-}
-
-ACE_Flow_Spec*
-ACE_QoS::sending_flowspec (void) const
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- return &((ACE_Flow_Spec &) this->SendingFlowspec);
-#else
- return this->sending_flowspec_;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-void
-ACE_QoS::sending_flowspec (ACE_Flow_Spec *fs)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- this->SendingFlowspec = (FLOWSPEC) (*fs);
-#else
- this->sending_flowspec_ = fs;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-ACE_Flow_Spec*
-ACE_QoS::receiving_flowspec (void) const
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- return &((ACE_Flow_Spec &) this->ReceivingFlowspec);
-#else
- return receiving_flowspec_;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-void
-ACE_QoS::receiving_flowspec (ACE_Flow_Spec *fs)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- this->ReceivingFlowspec = (FLOWSPEC) (*fs);
-#else
- this->receiving_flowspec_ = fs;
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-iovec
-ACE_QoS::provider_specific (void) const
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- return (iovec&) this->ProviderSpecific;
-#else
- ACE_NOTSUP_RETURN (iovec ());
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-void
-ACE_QoS::provider_specific (const iovec &ps)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- this->ProviderSpecific = (WSABUF) ((iovec &) ps);
-#else
- ACE_UNUSED_ARG (ps);
-#endif /* ACE_HAS_WINSOCK2 */
-}
-
-ACE_QoS_Params::ACE_QoS_Params (iovec *caller_data,
- iovec *callee_data,
- ACE_QoS *socket_qos,
- ACE_QoS *group_socket_qos,
- u_long flags)
- : caller_data_ (caller_data),
- callee_data_ (callee_data),
- socket_qos_ (socket_qos),
- group_socket_qos_ (group_socket_qos),
- flags_ (flags)
-{
-}
-
-iovec *
-ACE_QoS_Params::caller_data (void) const
-{
- return this->caller_data_;
-}
-
-void
-ACE_QoS_Params::caller_data (iovec *cd)
-{
- this->caller_data_ = cd;
-}
-
-iovec *
-ACE_QoS_Params::callee_data (void) const
-{
- return this->callee_data_;
-}
-
-void
-ACE_QoS_Params::callee_data (iovec *cd)
-{
- this->callee_data_ = cd;
-}
-
-ACE_QoS *
-ACE_QoS_Params::socket_qos (void) const
-{
- return this->socket_qos_;
-}
-
-void
-ACE_QoS_Params::socket_qos (ACE_QoS *sq)
-{
- this->socket_qos_ = sq;
-}
-
-ACE_QoS *
-ACE_QoS_Params::group_socket_qos (void) const
-{
- return this->group_socket_qos_;
-}
-
-void
-ACE_QoS_Params::group_socket_qos (ACE_QoS *gsq)
-{
- this->group_socket_qos_ = gsq;
-}
-
-u_long
-ACE_QoS_Params::flags (void) const
-{
- return this->flags_;
-}
-
-void
-ACE_QoS_Params::flags (u_long f)
-{
- this->flags_ = f;
-}
-
-ACE_Accept_QoS_Params::ACE_Accept_QoS_Params (ACE_QOS_CONDITION_FUNC qos_condition_callback,
- u_long callback_data)
- : qos_condition_callback_ (qos_condition_callback),
- callback_data_ (callback_data)
-{
-}
-
-ACE_QOS_CONDITION_FUNC
-ACE_Accept_QoS_Params::qos_condition_callback (void) const
-{
- return this->qos_condition_callback_;
-}
-
-void
-ACE_Accept_QoS_Params::qos_condition_callback (ACE_QOS_CONDITION_FUNC qcc)
-{
- this->qos_condition_callback_ = qcc;
-}
-
-u_long
-ACE_Accept_QoS_Params::callback_data (void) const
-{
- return this->callback_data_;
-}
-
-void
-ACE_Accept_QoS_Params::callback_data (u_long cd)
-{
- this->callback_data_ = cd;
-}
diff --git a/ace/OS_QoS.h b/ace/OS_QoS.h
deleted file mode 100644
index 7d831ff0dbc..00000000000
--- a/ace/OS_QoS.h
+++ /dev/null
@@ -1,386 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file OS_QoS.h
- *
- * $Id$
- *
- * @brief Contains OS specific data structures for QoS networking.
- *
- * @author Craig Rodrigues <crodrigu@bbn.com>
- */
-//=============================================================================
-
-#ifndef ACE_OS_QOS_H
-#define ACE_OS_QOS_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
-#if defined (ACE_HAS_WINSOCK2_GQOS)
-typedef SERVICETYPE ACE_SERVICE_TYPE;
-#else
-typedef u_long ACE_SERVICE_TYPE;
-#endif /* ACE_HAS_WINSOCK2_GQOS */
-
-
-#define ACE_OVERLAPPED_SOCKET_FLAG WSA_FLAG_OVERLAPPED
-
-#define ACE_XP1_QOS_SUPPORTED XP1_QOS_SUPPORTED
-#define ACE_XP1_SUPPORT_MULTIPOINT XP1_SUPPORT_MULTIPOINT
-
-#define ACE_BASEERR WSABASEERR
-#define ACE_ENOBUFS WSAENOBUFS
-#define ACE_FROM_PROTOCOL_INFO FROM_PROTOCOL_INFO
-#define ACE_FLAG_MULTIPOINT_C_ROOT WSA_FLAG_MULTIPOINT_C_ROOT
-#define ACE_FLAG_MULTIPOINT_C_LEAF WSA_FLAG_MULTIPOINT_C_LEAF
-#define ACE_FLAG_MULTIPOINT_D_ROOT WSA_FLAG_MULTIPOINT_D_ROOT
-#define ACE_FLAG_MULTIPOINT_D_LEAF WSA_FLAG_MULTIPOINT_D_LEAF
-
-#define ACE_QOS_NOT_SPECIFIED QOS_NOT_SPECIFIED
-#define ACE_SERVICETYPE_NOTRAFFIC SERVICETYPE_NOTRAFFIC
-#define ACE_SERVICETYPE_CONTROLLEDLOAD SERVICETYPE_CONTROLLEDLOAD
-#define ACE_SERVICETYPE_GUARANTEED SERVICETYPE_GUARANTEED
-
-#define ACE_JL_SENDER_ONLY JL_SENDER_ONLY
-#define ACE_JL_BOTH JL_BOTH
-
-#define ACE_SIO_GET_QOS SIO_GET_QOS
-#define ACE_SIO_MULTIPOINT_LOOPBACK SIO_MULTIPOINT_LOOPBACK
-#define ACE_SIO_MULTICAST_SCOPE SIO_MULTICAST_SCOPE
-#define ACE_SIO_SET_QOS SIO_SET_QOS
-
-#else
-typedef u_long ACE_SERVICE_TYPE;
-
-#define ACE_OVERLAPPED_SOCKET_FLAG 0
-#define ACE_XP1_QOS_SUPPORTED 0x00002000
-#define ACE_XP1_SUPPORT_MULTIPOINT 0x00000400
-
-#define ACE_BASEERR 10000
-#define ACE_ENOBUFS (ACE_BASEERR+55)
-
-#define ACE_FROM_PROTOCOL_INFO (-1)
-
-#define ACE_FLAG_MULTIPOINT_C_ROOT 0x02
-#define ACE_FLAG_MULTIPOINT_C_LEAF 0x04
-#define ACE_FLAG_MULTIPOINT_D_ROOT 0x08
-#define ACE_FLAG_MULTIPOINT_D_LEAF 0x10
-
-#define ACE_QOS_NOT_SPECIFIED 0xFFFFFFFF
-#define ACE_SERVICETYPE_NOTRAFFIC 0x00000000 /* No data in this */
- /* direction. */
-#define ACE_SERVICETYPE_CONTROLLEDLOAD 0x00000001 /* Controlled Load. */
-#define ACE_SERVICETYPE_GUARANTEED 0x00000003 /* Guaranteed. */
-
-#define ACE_JL_SENDER_ONLY 0x01
-#define ACE_JL_BOTH 0x04
-
-#define ACE_SIO_GET_QOS (0x40000000 | 0x08000000 | 7)
-#define ACE_SIO_MULTIPOINT_LOOPBACK (0x08000000 | 9)
-#define ACE_SIO_MULTICAST_SCOPE (0x08000000 | 10)
-#define ACE_SIO_SET_QOS (0x08000000 | 11)
-
-#endif /* ACE_HAS_WINSOCK2 && ACE_HAS_WINSOCK2 != 0 */
-
-
-
-
-/**
- * @class ACE_Flow_Spec
- *
- * @brief Wrapper class that defines the flow spec QoS information,
- * which is used by IntServ (RSVP) and DiffServ.
- */
-class ACE_OS_Export ACE_Flow_Spec
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- : public FLOWSPEC
-#endif /* ACE_HAS_WINSOCK2 */
-{
-public:
- /// Default constructor.
- ACE_Flow_Spec (void);
-
- /// Constructor that initializes all the fields.
- ACE_Flow_Spec (u_long token_rate,
- u_long token_bucket_size,
- u_long peak_bandwidth,
- u_long latency,
- u_long delay_variation,
- ACE_SERVICE_TYPE service_type,
- u_long max_sdu_size,
- u_long minimum_policed_size,
- int ttl,
- int priority);
-
- /// Get the token rate in bytes/sec.
- u_long token_rate (void) const;
-
- /// Set the token rate in bytes/sec.
- void token_rate (u_long tr);
-
- /// Get the token bucket size in bytes.
- u_long token_bucket_size (void) const;
-
- /// Set the token bucket size in bytes.
- void token_bucket_size (u_long tbs);
-
- /// Get the PeakBandwidth in bytes/sec.
- u_long peak_bandwidth (void) const;
-
- /// Set the PeakBandwidth in bytes/sec.
- void peak_bandwidth (u_long pb);
-
- /// Get the latency in microseconds.
- u_long latency (void) const;
-
- /// Set the latency in microseconds.
- void latency (u_long l);
-
- /// Get the delay variation in microseconds.
- u_long delay_variation (void) const;
-
- /// Set the delay variation in microseconds.
- void delay_variation (u_long dv);
-
- /// Get the service type.
- ACE_SERVICE_TYPE service_type (void) const;
-
- /// Set the service type.
- void service_type (ACE_SERVICE_TYPE st);
-
- /// Get the maximum SDU size in bytes.
- u_long max_sdu_size (void) const;
-
- /// Set the maximum SDU size in bytes.
- void max_sdu_size (u_long mss);
-
- /// Get the minimum policed size in bytes.
- u_long minimum_policed_size (void) const;
-
- /// Set the minimum policed size in bytes.
- void minimum_policed_size (u_long mps);
-
- /// Get the time-to-live.
- int ttl (void) const;
-
- /// Set the time-to-live.
- void ttl (int t);
-
- /// Get the priority.
- int priority (void) const;
-
- /// Set the priority.
- void priority (int p);
-
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && \
- defined (ACE_HAS_WINSOCK2_GQOS)
-#else
-private:
- u_long token_rate_;
- u_long token_bucket_size_;
- u_long peak_bandwidth_;
- u_long latency_;
- u_long delay_variation_;
- ACE_SERVICE_TYPE service_type_;
- u_long max_sdu_size_;
- u_long minimum_policed_size_;
- int ttl_;
- int priority_;
-#endif /* defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && \
- defined (ACE_HAS_WINSOCK2_GQOS) */
-};
-
-/**
- * @class ACE_QoS
- *
- * @brief Wrapper class that holds the sender and receiver flow spec
- * information, which is used by IntServ (RSVP) and DiffServ.
- */
-class ACE_OS_Export ACE_QoS
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- : public QOS
-#endif /* ACE_HAS_WINSOCK2 */
-{
-public:
- /// Constructor
- ACE_QoS (void);
-
- /// Get the flow spec for data sending.
- ACE_Flow_Spec *sending_flowspec (void) const;
-
- /// Set the flow spec for data sending.
- void sending_flowspec (ACE_Flow_Spec *fs);
-
- /// Get the flow spec for data receiving.
- ACE_Flow_Spec *receiving_flowspec (void) const;
-
- /// Set the flow spec for data receiving.
- void receiving_flowspec (ACE_Flow_Spec *fs);
-
- /// Get the provider specific information.
- iovec provider_specific (void) const;
-
- /// Set the provider specific information.
- void provider_specific (const iovec &ps);
-
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
-#else
-private:
-
- ACE_Flow_Spec *sending_flowspec_;
- ACE_Flow_Spec *receiving_flowspec_;
-#endif
-
-};
-
-/**
- * @class ACE_QoS_Params
- *
- * @brief Wrapper class that simplifies the information passed to the QoS
- * enabled <ACE_OS::connect> and <ACE_OS::join_leaf> methods.
- */
-class ACE_OS_Export ACE_QoS_Params
-{
-public:
- /**
- * Initialize the data members. The <caller_data> is a pointer to
- * the user data that is to be transferred to the peer during
- * connection establishment. The <callee_data> is a pointer to the
- * user data that is to be transferred back from the peer during
- * connection establishment. The_<socket_qos> is a pointer to the
- * flow specifications for the socket, one for each direction. The
- * <group_socket_qos> is a pointer to the flow speicfications for
- * the socket group, if applicable. The_<flags> indicate if we're a
- * sender, receiver, or both.
- */
- ACE_QoS_Params (iovec *caller_data = 0,
- iovec *callee_data = 0,
- ACE_QoS *socket_qos = 0,
- ACE_QoS *group_socket_qos = 0,
- u_long flags = 0);
-
- /// Get caller data.
- iovec *caller_data (void) const;
-
- /// Set caller data.
- void caller_data (iovec *);
-
- /// Get callee data.
- iovec *callee_data (void) const;
-
- /// Set callee data.
- void callee_data (iovec *);
-
- /// Get socket qos.
- ACE_QoS *socket_qos (void) const;
-
- /// Set socket qos.
- void socket_qos (ACE_QoS *);
-
- /// Get group socket qos.
- ACE_QoS *group_socket_qos (void) const;
-
- /// Set group socket qos.
- void group_socket_qos (ACE_QoS *);
-
- /// Get flags.
- u_long flags (void) const;
-
- /// Set flags.
- void flags (u_long);
-
-private:
- /// A pointer to the user data that is to be transferred to the peer
- /// during connection establishment.
- iovec *caller_data_;
-
- /// A pointer to the user data that is to be transferred back from
- /// the peer during connection establishment.
- iovec *callee_data_;
-
- /// A pointer to the flow speicfications for the socket, one for each
- /// direction.
- ACE_QoS *socket_qos_;
-
- /// A pointer to the flow speicfications for the socket group, if
- /// applicable.
- ACE_QoS *group_socket_qos_;
-
- /// Flags that indicate if we're a sender, receiver, or both.
- u_long flags_;
-};
-
-// Callback function that's used by the QoS-enabled <ACE_OS::accept>
-// method.
-typedef int (*ACE_QOS_CONDITION_FUNC) (iovec *caller_id,
- iovec *caller_data,
- ACE_QoS *socket_qos,
- ACE_QoS *group_socket_qos,
- iovec *callee_id,
- iovec *callee_data,
- ACE_SOCK_GROUP *g,
- u_long callbackdata);
-
-
-/**
- * @class ACE_Accept_QoS_Params
- *
- * @brief Wrapper class that simplifies the information passed to the QoS
- * enabled <ACE_OS::accept> method.
- */
-class ACE_OS_Export ACE_Accept_QoS_Params
-{
-public:
- /**
- * Initialize the data members. The <qos_condition_callback> is the
- * address of an optional, application-supplied condition function
- * that will make an accept/reject decision based on the caller
- * information pass in as parameters, and optionally create or join
- * a socket group by assinging an appropriate value to the result
- * parameter <g> of this function. The <callback_data> data is
- * passed back to the application as a condition function parameter,
- * i.e., it is an Asynchronous Completion Token (ACT).
- */
- ACE_Accept_QoS_Params (ACE_QOS_CONDITION_FUNC qos_condition_callback = 0,
- u_long callback_data = 0);
-
- /// Get QoS condition callback.
- ACE_QOS_CONDITION_FUNC qos_condition_callback (void) const;
-
- /// Set QoS condition callback.
- void qos_condition_callback (ACE_QOS_CONDITION_FUNC qcc);
-
- /// Get callback data.
- u_long callback_data (void) const;
-
- /// Set callback data.
- void callback_data (u_long cd);
-
-private:
- /**
- * This is the address of an optional, application-supplied
- * condition function that will make an accept/reject decision based
- * on the caller information pass in as parameters, and optionally
- * create or join a socket group by assinging an appropriate value
- * to the result parameter <g> of this function.
- */
- ACE_QOS_CONDITION_FUNC qos_condition_callback_;
-
- /**
- * This data is passed back to the application as a condition
- * function parameter, i.e., it is an Asynchronous Completion Token
- * (ACT).
- */
- u_long callback_data_;
-};
-
-
-#include "ace/post.h"
-#endif /* ACE_OS_QOS_H */
diff --git a/ace/OS_String.cpp b/ace/OS_String.cpp
deleted file mode 100644
index a7388fffd86..00000000000
--- a/ace/OS_String.cpp
+++ /dev/null
@@ -1,1073 +0,0 @@
-//=============================================================================
-/**
- * @file OS_String.cpp
- *
- * $Id$
- *
- * @brief Contains definitions for class ACE_OS_String.
- */
-//=============================================================================
-
-#include "ace/OS_String.h"
-#include "ace/OS_Memory.h"
-
-ACE_RCSID (ace, OS_String, "$Id$")
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "ace/OS_String.inl"
-#endif /* ACE_HAS_INLINED_OS_CALLS */
-
-#if defined (ACE_LACKS_WCSDUP_PROTOTYPE)
-extern "C" wchar_t *wcsdup __P ((__const wchar_t *__s));
-#endif /* ACE_LACKS_WCSDUP_PROTOTYPE */
-
-const char *
-ACE_OS_String::strnstr (const char *s1, const char *s2, size_t len2)
-{
- // Substring length
- size_t len1 = ACE_OS_String::strlen (s1);
-
- // Check if the substring is longer than the string being searched.
- if (len2 > len1)
- return 0;
-
- // Go upto <len>
- size_t len = len1 - len2;
-
- for (size_t i = 0; i <= len; i++)
- {
- if (ACE_OS_String::memcmp (s1 + i, s2, len2) == 0)
- // Found a match! Return the index.
- return s1 + i;
- }
-
- return 0;
-}
-
-const ACE_WCHAR_T *
-ACE_OS_String::strnstr (const ACE_WCHAR_T *s1, const ACE_WCHAR_T *s2, size_t len2)
-{
- // Substring length
- size_t len1 = ACE_OS_String::strlen (s1);
-
- // Check if the substring is longer than the string being searched.
- if (len2 > len1)
- return 0;
-
- // Go upto <len>
- size_t len = len1 - len2;
-
- for (size_t i = 0; i <= len; i++)
- {
- if (ACE_OS_String::memcmp (s1 + i, s2, len2 * sizeof (ACE_WCHAR_T)) == 0)
- // Found a match! Return the index.
- return s1 + i;
- }
-
- return 0;
-}
-
-char *
-ACE_OS_String::strdup (const char *s)
-{
-#if defined (ACE_HAS_STRDUP_EMULATION)
- char *t = (char *) ACE_OS_Memory::malloc (ACE_OS_String::strlen (s) + 1);
- if (t == 0)
- return 0;
-
- return ACE_OS_String::strcpy (t, s);
-#else
- return ::strdup (s);
-#endif /* ACE_HAS_STRDUP_EMULATION */
-}
-
-#if defined (ACE_HAS_WCHAR)
-wchar_t *
-ACE_OS_String::strdup (const wchar_t *s)
-{
-# if defined (ACE_LACKS_WCSDUP)
- wchar_t *buffer =
- (wchar_t *) ACE_OS_Memory::malloc ((ACE_OS_String::strlen (s) + 1)
- * sizeof (wchar_t));
- if (buffer == 0)
- return 0;
-
- return ACE_OS_String::strcpy (buffer, s);
-# elif defined (ACE_WCSDUP_EQUIVALENT)
- return ACE_WCSDUP_EQUIVALENT (s);
-# else /* ACE_LACKS_WCSDUP */
-# if defined (__MINGW32__)
- return ::wcsdup (ACE_const_cast(wchar_t*, s));
-# else /* __MINGW32__ */
- return ::wcsdup (s);
-# endif /* __MINGW32__ */
-# endif /* ACE_LACKS_WCSDUP */
-}
-#endif /* ACE_HAS_WCHAR */
-
-#if defined (ACE_LACKS_STRERROR)
-/**
- * Just returns "Unknown Error" all the time.
- */
-char *
-ACE_OS_String::strerror_emulation (int errnum)
-{
- return "Unknown Error";
-}
-#endif /* ACE_LACKS_STRERROR */
-
-#if defined (ACE_LACKS_STRCHR)
-char *
-ACE_OS_String::strchr_emulation (char *s, int c)
-{
- for (;;++s)
- {
- if (*s == c)
- return s;
- if (*s == 0)
- return 0;
- }
-}
-
-const char *
-ACE_OS_String::strchr_emulation (const char *s, int c)
-{
- for (;;++s)
- {
- if (*s == c)
- return s;
- if (*s == 0)
- return 0;
- }
-}
-#endif /* ACE_LACKS_STRCHR */
-
-const char *
-ACE_OS_String::strnchr (const char *s, int c, size_t len)
-{
- for (size_t i = 0; i < len; i++)
- if (s[i] == c)
- return s + i;
-
- return 0;
-}
-
-const ACE_WCHAR_T *
-ACE_OS_String::strnchr (const ACE_WCHAR_T *s, ACE_WINT_T c, size_t len)
-{
- for (size_t i = 0; i < len; i++)
- if (s[i] == ACE_static_cast(ACE_WCHAR_T, c))
- return s + i;
-
- return 0;
-}
-
-#if defined (ACE_LACKS_STRRCHR)
-char *
-ACE_OS_String::strrchr_emulation (char *s, int c)
-{
- char *p = s + ACE_OS_String::strlen (s);
-
- while (*p != c)
- if (p == s)
- return 0;
- else
- p--;
-
- return p;
-}
-
-const char *
-ACE_OS_String::strrchr_emulation (const char *s, int c)
-{
- const char *p = s + ACE_OS_String::strlen (s);
-
- while (*p != c)
- if (p == s)
- return 0;
- else
- p--;
-
- return p;
-}
-#endif /* ACE_LACKS_STRRCHR */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSRCHR)
-const wchar_t *
-ACE_OS_String::wcsrchr_emulation (const wchar_t *s, wint_t c)
-{
- const wchar_t *p = s + ACE_OS_String::strlen (s);
-
- while (*p != ACE_static_cast (wchar_t, c))
- if (p == s)
- return 0;
- else
- p--;
-
- return p;
-}
-
-wchar_t *
-ACE_OS_String::wcsrchr_emulation (wchar_t *s, wint_t c)
-{
- wchar_t *p = s + ACE_OS_String::strlen (s);
-
- while (*p != ACE_static_cast(wchar_t, c))
- if (p == s)
- return 0;
- else
- p--;
-
- return p;
-}
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSRCHR */
-
-char *
-ACE_OS_String::strecpy (char *s, const char *t)
-{
- register char *dscan = s;
- register const char *sscan = t;
-
- while ((*dscan++ = *sscan++) != '\0')
- continue;
-
- return dscan;
-}
-
-#if defined (ACE_HAS_WCHAR)
-wchar_t *
-ACE_OS_String::strecpy (wchar_t *s, const wchar_t *t)
-{
- register wchar_t *dscan = s;
- register const wchar_t *sscan = t;
-
- while ((*dscan++ = *sscan++) != ACE_TEXT_WIDE ('\0'))
- continue;
-
- return dscan;
-}
-#endif /* ACE_HAS_WCHAR */
-
-#if defined (ACE_LACKS_STRCSPN)
-size_t
-ACE_OS_String::strcspn_emulation (const char *s, const char *reject)
-{
- const char *scan;
- const char *rej_scan;
- int count = 0;
-
- for (scan = s; *scan; scan++)
- {
-
- for (rej_scan = reject; *rej_scan; rej_scan++)
- if (*scan == *rej_scan)
- return count;
-
- count++;
- }
-
- return count;
-}
-#endif /* ACE_LACKS_STRCSPN */
-
-#if defined (ACE_LACKS_STRCASECMP)
-int
-ACE_OS_String::strcasecmp_emulation (const char *s, const char *t)
-{
- const char *scan1 = s;
- const char *scan2 = t;
-
- while (*scan1 != 0
- && ACE_OS_String::to_lower (*scan1)
- == ACE_OS_String::to_lower (*scan2))
- {
- ++scan1;
- ++scan2;
- }
-
- // The following case analysis is necessary so that characters which
- // look negative collate low against normal characters but high
- // against the end-of-string NUL.
-
- if (*scan1 == '\0' && *scan2 == '\0')
- return 0;
- else if (*scan1 == '\0')
- return -1;
- else if (*scan2 == '\0')
- return 1;
- else
- return ACE_OS_String::to_lower (*scan1) - ACE_OS_String::to_lower (*scan2);
-}
-#endif /* ACE_LACKS_STRCASECMP */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSICMP)
-int
-ACE_OS_String::wcsicmp_emulation (const wchar_t *s, const wchar_t *t)
-{
- const wchar_t *scan1 = s;
- const wchar_t *scan2 = t;
-
- while (*scan1 != 0
- && ACE_OS_String::to_lower (*scan1)
- == ACE_OS_String::to_lower (*scan2))
- {
- ++scan1;
- ++scan2;
- }
-
- // The following case analysis is necessary so that characters which
- // look negative collate low against normal characters but high
- // against the end-of-string NUL.
-
- if (*scan1 == '\0' && *scan2 == '\0')
- return 0;
- else if (*scan1 == '\0')
- return -1;
- else if (*scan2 == '\0')
- return 1;
- else
- return ACE_OS_String::to_lower (*scan1) - ACE_OS_String::to_lower (*scan2);
-}
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSICMP */
-
-#if defined (ACE_LACKS_STRCASECMP)
-int
-ACE_OS_String::strncasecmp_emulation (const char *s,
- const char *t,
- size_t len)
-{
- const char *scan1 = s;
- const char *scan2 = t;
- size_t count = 0;
-
- while (count++ < len
- && *scan1 != 0
- && ACE_OS_String::to_lower (*scan1)
- == ACE_OS_String::to_lower (*scan2))
- {
- ++scan1;
- ++scan2;
- }
-
- if (count > len)
- return 0;
-
- // The following case analysis is necessary so that characters which
- // look negative collate low against normal characters but high
- // against the end-of-string NUL.
-
- if (*scan1 == '\0' && *scan2 == '\0')
- return 0;
- else if (*scan1 == '\0')
- return -1;
- else if (*scan2 == '\0')
- return 1;
- else
- return ACE_OS_String::to_lower (*scan1) - ACE_OS_String::to_lower (*scan2);
-}
-#endif /* ACE_LACKS_STRCASECMP */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSNICMP)
-int
-ACE_OS_String::wcsnicmp_emulation (const wchar_t *s,
- const wchar_t *t,
- size_t len)
-{
- const wchar_t *scan1 = s;
- const wchar_t *scan2 = t;
- size_t count = 0;
-
- while (count++ < len
- && *scan1 != 0
- && ACE_OS_String::to_lower (*scan1)
- == ACE_OS_String::to_lower (*scan2))
- {
- ++scan1;
- ++scan2;
- }
-
- if (count > len)
- return 0;
-
- // The following case analysis is necessary so that characters which
- // look negative collate low against normal characters but high
- // against the end-of-string NUL.
-
- if (*scan1 == '\0' && *scan2 == '\0')
- return 0;
- else if (*scan1 == '\0')
- return -1;
- else if (*scan2 == '\0')
- return 1;
- else
- return ACE_OS_String::to_lower (*scan1) - ACE_OS_String::to_lower (*scan2);
-}
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSNICMP */
-
-#if !defined (ACE_HAS_REENTRANT_FUNCTIONS)
-char *
-ACE_OS_String::strtok_r_emulation (char *s, const char *tokens, char **lasts)
-{
- if (s == 0)
- s = *lasts;
- else
- *lasts = s;
- if (*s == 0) // We have reached the end
- return 0;
- size_t l_org = ACE_OS_String::strlen (s);
- s = ::strtok (s, tokens);
- if (s == 0)
- return 0;
- size_t l_sub = ACE_OS_String::strlen (s);
- if (s + l_sub < *lasts + l_org)
- *lasts = s + l_sub + 1;
- else
- *lasts = s + l_sub;
- return s ;
-}
-#endif /* !ACE_HAS_REENTRANT_FUNCTIONS */
-
-# if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSTOK)
-wchar_t*
-ACE_OS_String::strtok_r_emulation (ACE_WCHAR_T *s, const ACE_WCHAR_T *tokens, ACE_WCHAR_T **lasts)
-{
- if (s == 0)
- s = *lasts;
- else
- *lasts = s;
- if (*s == 0) // We have reached the end
- return 0;
- int l_org = ACE_OS_String::strlen (s);
- s = ACE_OS_String::strtok (s, tokens);
- if (s == 0)
- return 0;
- int l_sub = ACE_OS_String::strlen (s);
- if (s + l_sub < *lasts + l_org)
- *lasts = s + l_sub + 1;
- else
- *lasts = s + l_sub;
- return s ;
-}
-# endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSTOK */
-
-#if !defined (ACE_HAS_MEMCHR)
-const void *
-ACE_OS_String::memchr_emulation (const void *s, int c, size_t len)
-{
- const unsigned char *t = (const unsigned char *) s;
- const unsigned char *e = (const unsigned char *) s + len;
-
- while (t < e)
- if (((int) *t) == c)
- return t;
- else
- t++;
-
- return 0;
-}
-#endif /*ACE_HAS_MEMCHR*/
-
-#if !defined (ACE_HAS_ITOA)
-char *
-ACE_OS_String::itoa_emulation (int value, char *string, int radix)
-{
- char *e = string;
- char *b = string;
-
- // Short circuit if 0
-
- if (value == 0)
- {
- string[0] = '0';
- string[1] = 0;
- return string;
- }
-
- // If negative and base 10, print a - and then do the
- // number.
-
- if (value < 0 && radix == 10)
- {
- string[0] = '-';
- ++b;
- ++e; // Don't overwrite the negative sign.
- value = -value; // Drop negative sign so character selection is correct.
- }
-
- // Convert to base <radix>, but in reverse order
-
- while (value != 0)
- {
- int mod = value % radix;
- value = value / radix;
-
- *e++ = (mod < 10) ? '0' + mod : 'a' + mod - 10;
- }
-
- *e-- = 0;
-
- // Now reverse the string to get the correct result
-
- while (e > b)
- {
- char temp = *e;
- *e = *b;
- *b = temp;
- ++b;
- --e;
- }
-
- return string;
-}
-#endif /* !ACE_HAS_ITOA */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_ITOW)
-wchar_t *
-ACE_OS_String::itow_emulation (int value, wchar_t *string, int radix)
-{
- wchar_t *e = string;
- wchar_t *b = string;
-
- // Short circuit if 0
-
- if (value == 0)
- {
- string[0] = '0';
- string[1] = 0;
- return string;
- }
-
- // If negative and base 10, print a - and then do the
- // number.
-
- if (value < 0 && radix == 10)
- {
- string[0] = '-';
- b++;
- }
-
- // Convert to base <radix>, but in reverse order
-
- while (value != 0)
- {
- int mod = value % radix;
- value = value / radix;
-
- *e++ = (mod < 10) ? '0' + mod : 'a' + mod - 10;
- }
-
- *e-- = 0;
-
- // Now reverse the string to get the correct result
-
- while (e > b)
- {
- wchar_t temp = *e;
- *e = *b;
- *b = temp;
- ++b;
- --e;
- }
-
- return string;
-}
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_ITOW */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSCSPN)
-size_t
-ACE_OS_String::wcscspn_emulation (const wchar_t *s, const wchar_t *reject)
-{
- const wchar_t *scan;
- const wchar_t *rej_scan;
- int count = 0;
-
- for (scan = s; *scan; scan++)
- {
-
- for (rej_scan = reject; *rej_scan; rej_scan++)
- if (*scan == *rej_scan)
- return count;
-
- count++;
- }
-
- return count;
-}
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSCSPN */
-
-// The following wcs*_emulation methods were created based on BSD code:
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * James W. Williams of NASA Goddard Space Flight Center.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-
-
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSCAT)
-wchar_t *
-ACE_OS_String::wcscat_emulation (wchar_t *destination,
- const wchar_t *source)
-{
- wchar_t *save = destination;
-
- for (; *destination; ++destination);
- while ((*destination++ = *source++));
- return save;
-}
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSCAT */
-
-#if defined (ACE_LACKS_STRSPN)
-size_t
-ACE_OS_String::strspn_emulation (const char *string,
- const char *charset)
-{
- const char *p = string;
- const char *spanp;
- wchar_t c, sc;
-
- // Skip any characters in charset, excluding the terminating \0.
-cont:
- c = *p++;
- for (spanp = charset; (sc = *spanp++) != 0;)
- if (sc == c)
- goto cont;
- return (p - 1 - string);
-}
-#endif /* ACE_LACKS_STRSPN */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSSPN)
-size_t
-ACE_OS_String::wcsspn_emulation (const wchar_t *string,
- const wchar_t *charset)
-{
- const wchar_t *p = string;
- const wchar_t *spanp;
- wchar_t c, sc;
-
- // Skip any characters in charset, excluding the terminating \0.
-cont:
- c = *p++;
- for (spanp = charset; (sc = *spanp++) != 0;)
- if (sc == c)
- goto cont;
- return (p - 1 - string);
-}
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSSPN */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSSTR)
-wchar_t *
-ACE_OS_String::wcsstr_emulation (const wchar_t *string,
- const wchar_t *charset)
-{
- wchar_t c, sc;
- size_t len;
-
- if ((c = *charset++) != 0)
- {
- len = strlen(charset);
- do
- {
- do
- {
- if ((sc = *string++) == 0)
- return 0;
- } while (sc != c);
- } while (strncmp(string, charset, len) != 0);
- string--;
- }
-
- return ACE_const_cast (wchar_t *, string);
-}
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSSTR */
-
-#if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSLEN)
-size_t
-ACE_OS_String::wcslen_emulation (const ACE_WCHAR_T *string)
-{
- const ACE_WCHAR_T *s;
-
- for (s = string; *s; ++s)
- continue;
-
- return s - string;
-}
-#endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSLEN */
-
-#if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSNCPY)
-ACE_WCHAR_T *
-ACE_OS_String::wcsncpy_emulation (ACE_WCHAR_T *destination,
- const ACE_WCHAR_T *source,
- size_t len)
-{
- if (len != 0)
- {
- ACE_WCHAR_T *d = destination;
- const ACE_WCHAR_T *s = source;
-
- do
- {
- if ((*d++ = *s++) == 0)
- {
- // NUL pad the remaining n-1 bytes
- while (--len != 0)
- *d++ = 0;
- break;
- }
- } while (--len != 0);
- }
-
- return destination;
-}
-#endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSNCPY */
-
-#if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSCMP)
-int
-ACE_OS_String::wcscmp_emulation (const ACE_WCHAR_T *string1,
- const ACE_WCHAR_T *string2)
-{
- while (*string1 == *string2++)
- if (*string1++ == 0)
- return (0);
- return (*string1 - *--string2);
-}
-#endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSCMP */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSCPY)
-wchar_t *
-ACE_OS_String::wcscpy_emulation (wchar_t *destination,
- const wchar_t *source)
-{
- wchar_t *save = destination;
-
- for (; (*destination = *source); ++source, ++destination);
- return save;
-}
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSCPY */
-
-#if defined (ACE_LACKS_STRPBRK)
-char *
-ACE_OS_String::strpbrk_emulation (const char *string,
- const char *charset)
-{
- const char *scanp;
- int c, sc;
-
- while ((c = *string++) != 0)
- {
- for (scanp = charset; (sc = *scanp++) != 0;)
- if (sc == c)
- return ACE_const_cast (char *, string - 1);
- }
-
- return 0;
-}
-#endif /* ACE_LACKS_STRPBRK */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSPBRK)
-wchar_t *
-ACE_OS_String::wcspbrk_emulation (const wchar_t *string,
- const wchar_t *charset)
-{
- const wchar_t *scanp;
- int c, sc;
-
- while ((c = *string++) != 0)
- {
- for (scanp = charset; (sc = *scanp++) != 0;)
- if (sc == c)
- return ACE_const_cast (wchar_t *, string - 1);
- }
-
- return 0;
-}
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSPBRK */
-
-#if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSNCAT)
-ACE_WCHAR_T *
-ACE_OS_String::wcsncat_emulation (ACE_WCHAR_T *destination,
- const ACE_WCHAR_T *source,
- size_t count)
-{
- if (count != 0)
- {
- ACE_WCHAR_T *d = destination;
- const ACE_WCHAR_T *s = source;
-
- while (*d != 0)
- d++;
-
- do
- {
- if ((*d = *s++) == 0)
- break;
-
- d++;
- } while (--count != 0);
-
- *d = 0;
- }
-
- return destination;
-}
-#endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSCAT */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSCHR)
-wchar_t *
-ACE_OS_String::wcschr_emulation (const wchar_t *string, wint_t c)
-{
- for (;*string ; ++string)
- if (*string == ACE_static_cast (wchar_t, c))
- return ACE_const_cast (wchar_t *, string);
-
- return 0;
-}
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSCHR */
-
-#if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSNCMP)
-int
-ACE_OS_String::wcsncmp_emulation (const ACE_WCHAR_T *s1,
- const ACE_WCHAR_T *s2,
- size_t len)
-{
- if (len == 0)
- return 0;
-
- do
- {
- if (*s1 != *s2++)
- return (*s1 - *--s2);
- if (*s1++ == 0)
- break;
- } while (--len != 0);
-
- return 0;
-}
-#endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSNCMP */
-
-#if defined (ACE_LACKS_STRTOL)
-long
-ACE_OS_String::strtol_emulation (const char *nptr, char **endptr, int base)
-{
- register const char *s = nptr;
- register unsigned long acc;
- register int c;
- register unsigned long cutoff;
- register int neg = 0, any, cutlim;
-
- /*
- * Skip white space and pick up leading +/- sign if any.
- * If base is 0, allow 0x for hex and 0 for octal, else
- * assume decimal; if base is already 16, allow 0x.
- */
- do {
- c = *s++;
- } while (isspace(c));
- if (c == '-') {
- neg = 1;
- c = *s++;
- } else if (c == '+')
- c = *s++;
- if ((base == 0 || base == 16) &&
- c == '0' && (*s == 'x' || *s == 'X')) {
- c = s[1];
- s += 2;
- base = 16;
- }
- if (base == 0)
- base = c == '0' ? 8 : 10;
-
- /*
- * Compute the cutoff value between legal numbers and illegal
- * numbers. That is the largest legal value, divided by the
- * base. An input number that is greater than this value, if
- * followed by a legal input character, is too big. One that
- * is equal to this value may be valid or not; the limit
- * between valid and invalid numbers is then based on the last
- * digit. For instance, if the range for longs is
- * [-2147483648..2147483647] and the input base is 10,
- * cutoff will be set to 214748364 and cutlim to either
- * 7 (neg==0) or 8 (neg==1), meaning that if we have accumulated
- * a value > 214748364, or equal but the next digit is > 7 (or 8),
- * the number is too big, and we will return a range error.
- *
- * Set any if any `digits' consumed; make it negative to indicate
- * overflow.
- */
- cutoff = neg ? -(unsigned long)LONG_MIN : LONG_MAX;
- cutlim = cutoff % (unsigned long)base;
- cutoff /= (unsigned long)base;
- for (acc = 0, any = 0;; c = *s++) {
- if (isdigit(c))
- c -= '0';
- else if (isalpha(c))
- c -= isupper(c) ? 'A' - 10 : 'a' - 10;
- else
- break;
- if (c >= base)
- break;
- if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim)
- any = -1;
- else {
- any = 1;
- acc *= base;
- acc += c;
- }
- }
- if (any < 0) {
- acc = neg ? LONG_MIN : LONG_MAX;
- errno = ERANGE;
- } else if (neg)
- acc = -acc;
- if (endptr != 0)
- *endptr = any ? (char *)s - 1 : (char *)nptr;
- return (acc);
-}
-#endif /* ACE_LACKS_STRTOL */
-
-#if defined (ACE_LACKS_STRTOUL)
-unsigned long
-ACE_OS_String::strtoul_emulation (const char *nptr,
- char **endptr,
- register int base)
-{
- register const char *s = nptr;
- register unsigned long acc;
- register int c;
- register unsigned long cutoff;
- register int neg = 0, any, cutlim;
-
- /*
- * See strtol for comments as to the logic used.
- */
- do
- c = *s++;
- while (isspace(c));
- if (c == '-')
- {
- neg = 1;
- c = *s++;
- }
- else if (c == '+')
- c = *s++;
- if ((base == 0 || base == 16) &&
- c == '0' && (*s == 'x' || *s == 'X'))
- {
- c = s[1];
- s += 2;
- base = 16;
- }
- if (base == 0)
- base = c == '0' ? 8 : 10;
- cutoff = (unsigned long) ULONG_MAX / (unsigned long) base;
- cutlim = (unsigned long) ULONG_MAX % (unsigned long) base;
-
- for (acc = 0, any = 0;; c = *s++)
- {
- if (isdigit(c))
- c -= '0';
- else if (isalpha(c))
- c -= isupper(c) ? 'A' - 10 : 'a' - 10;
- else
- break;
- if (c >= base)
- break;
- if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim)
- any = -1;
- else
- {
- any = 1;
- acc *= base;
- acc += c;
- }
- }
- if (any < 0)
- {
- acc = ULONG_MAX;
- errno = ERANGE;
- } else if (neg)
- acc = -acc;
- if (endptr != 0)
- *endptr = any ? (char *) s - 1 : (char *) nptr;
- return (acc);
-}
-#endif /* ACE_LACKS_STRTOUL */
-
-char *
-ACE_OS_String::strsncpy (char *dst, const char *src, size_t maxlen)
-{
- register char *rdst = dst;
- register const char *rsrc = src;
- register size_t rmaxlen = maxlen;
-
- if (rmaxlen > 0)
- {
- if (rdst!=rsrc)
- {
- *rdst = '\0';
- if (rsrc != 0)
- strncat (rdst, rsrc, --rmaxlen);
- }
- else
- {
- rdst += (rmaxlen - 1);
- *rdst = '\0';
- }
- }
- return dst;
-}
-
-ACE_WCHAR_T *
-ACE_OS_String::strsncpy (ACE_WCHAR_T *dst, const ACE_WCHAR_T *src, size_t maxlen)
-{
- register ACE_WCHAR_T *rdst = dst;
- register const ACE_WCHAR_T *rsrc = src;
- register size_t rmaxlen = maxlen;
-
- if (rmaxlen > 0)
- {
- if (rdst!=rsrc)
- {
- *rdst = ACE_TEXT_WIDE ('\0');
- if (rsrc != 0)
- strncat (rdst, rsrc, --rmaxlen);
- }
- else
- {
- rdst += (rmaxlen - 1);
- *rdst = ACE_TEXT_WIDE ('\0');
- }
- }
- return dst;
-}
diff --git a/ace/OS_String.h b/ace/OS_String.h
deleted file mode 100644
index 14da8b81b42..00000000000
--- a/ace/OS_String.h
+++ /dev/null
@@ -1,631 +0,0 @@
-// -*- C++ -*-
-//=============================================================================
-/**
- * @file OS_String.h
- *
- * $Id$
- *
- * @brief Contains definition of class ACE_OS_String.
- *
- * @author Doug Schmidt <schmidt@cs.wustl.edu>
- * @author Jesper S. M|ller <stophph@diku.dk>
- * @author and a cast of thousands...
- */
-//=============================================================================
-
-#ifndef ACE_OS_STRING_H
-#define ACE_OS_STRING_H
-#include "ace/pre.h"
-
-#include "ace/OS_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Basic_Types.h"
-
-#if !defined (ACE_HAS_WINCE)
-#include <stddef.h>
-#endif // ACE_HAS_WINCE
-
-#if defined (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB) && \
- (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB != 0)
-using std::size_t;
-using std::wint_t;
-#endif /* ACE_USES_STD_NAMESPACE_FOR_STDC_LIB */
-
-/**
- * @class ACE_OS_String
- *
- * @brief This class includes functions available in string.h and ctype.h.
- */
-class ACE_OS_Export ACE_OS_String
-{
-public:
- /** @name Functions from <cstring>
- *
- * Included are the functions defined in <cstring> and their <cwchar>
- * equivalents.
- *
- * @todo To be complete, we should add strcoll, and strxfrm.
- */
- //@{
-
- /// Finds characters in a buffer (const void version).
- static const void *memchr (const void *s, int c, size_t len);
-
- /// Finds characters in a buffer (void version).
- static void *memchr (void *s, int c, size_t len);
-
- /// Compares two buffers.
- static int memcmp (const void *t, const void *s, size_t len);
-
- /// Copies one buffer to another.
- static void *memcpy (void *t, const void *s, size_t len);
-
- /// Moves one buffer to another.
- static void *memmove (void *t, const void *s, size_t len);
-
- /// Fills a buffer with a character value.
- static void *memset (void *s, int c, size_t len);
-
- /// Appends a string to another string (char version).
- static char *strcat (char *s, const char *t);
-
-#if defined (ACE_HAS_WCHAR)
- /// Appends a string to another string (wchar_t version).
- static wchar_t *strcat (wchar_t *s, const wchar_t *t);
-#endif /* ACE_HAS_WCHAR */
-
- /// Finds the first occurance of a character in a string (const char
- /// version).
- static const char *strchr (const char *s, int c);
-
-#if defined (ACE_HAS_WCHAR)
- /// Finds the first occurance of a character in a string (const wchar_t
- /// version).
- static const wchar_t *strchr (const wchar_t *s, wint_t c);
-#endif /* ACE_HAS_WCHAR */
-
- /// Finds the first occurance of a character in a string (char version).
- static char *strchr (char *s, int c);
-
-#if defined (ACE_HAS_WCHAR)
- /// Finds the first occurance of a character in a string (wchar_t version).
- static wchar_t *strchr (wchar_t *s, wint_t c);
-#endif /* ACE_HAS_WCHAR */
-
- /// Compares two strings (char version).
- static int strcmp (const char *s, const char *t);
-
- /// Compares two strings (wchar_t version).
- static int strcmp (const ACE_WCHAR_T *s, const ACE_WCHAR_T *t);
-
- /// Copies a string (char version).
- static char *strcpy (char *s, const char *t);
-
-#if defined (ACE_HAS_WCHAR)
- /// Copies a string (wchar_t version).
- static wchar_t *strcpy (wchar_t *s, const wchar_t *t);
-#endif /* ACE_HAS_WCHAR */
-
- /// Searches for the first substring without any of the specified
- /// characters and returns the size of the substring (char version).
- static size_t strcspn (const char *s, const char *reject);
-
-#if defined (ACE_HAS_WCHAR)
- /// Searches for the first substring without any of the specified
- /// characters and returns the size of the substring (wchar_t version).
- static size_t strcspn (const wchar_t *s, const wchar_t *reject);
-#endif /* ACE_HAS_WCHAR */
-
- /// Returns a system error message.
- static char *strerror (int errnum);
-
- /// Finds the length of a string (char version).
- static size_t strlen (const char *s);
-
- /// Finds the length of a string (ACE_WCHAR_T version).
- static size_t strlen (const ACE_WCHAR_T *s);
-
- /// Finds the length of a limited-length string (char version).
- /**
- * @param s The character string to find the length of.
- * @param maxlen The maximum number of characters that will be
- * scanned for the terminating nul character.
- *
- * @return The length of @arg s, if the terminating nul character
- * is located, else @arg maxlen.
- */
- static size_t strnlen (const char *s, size_t maxlen);
-
- /// Finds the length of a limited-length string (ACE_WCHAR_T version).
- /**
- * @param s The character string to find the length of.
- * @param maxlen The maximum number of characters that will be
- * scanned for the terminating nul character.
- *
- * @return The length of @arg s, if the terminating nul character
- * is located, else @arg maxlen.
- */
- static size_t strnlen (const ACE_WCHAR_T *s, size_t maxlen);
-
- /// Appends part of a string to another string (char version).
- static char *strncat (char *s, const char *t, size_t len);
-
- /// Appends part of a string to another string (wchar_t version).
- static ACE_WCHAR_T *strncat (ACE_WCHAR_T *s, const ACE_WCHAR_T *t, size_t len);
-
- /// Compares two arrays (char version).
- static int strncmp (const char *s, const char *t, size_t len);
-
- /// Compares two arrays (wchar_t version).
- static int strncmp (const ACE_WCHAR_T *s, const ACE_WCHAR_T *t, size_t len);
-
- /// Copies an array (char version)
- static char *strncpy (char *s, const char *t, size_t len);
-
- /// Copies an array (ACE_WCHAR_T version)
- static ACE_WCHAR_T *strncpy (ACE_WCHAR_T *s, const ACE_WCHAR_T *t, size_t len);
-
- /// Searches for characters in a string (const char version).
- static const char *strpbrk (const char *s1, const char *s2);
-
-#if defined (ACE_HAS_WCHAR)
- /// Searches for characters in a string (const wchar_t version).
- static const wchar_t *strpbrk (const wchar_t *s1, const wchar_t *s2);
-#endif /* ACE_HAS_WCHAR */
-
- /// Searches for characters in a string (char version).
- static char *strpbrk (char *s1, const char *s2);
-
-#if defined (ACE_HAS_WCHAR)
- /// Searches for characters in a string (wchar_t version).
- static wchar_t *strpbrk (wchar_t *s1, const wchar_t *s2);
-#endif /* ACE_HAS_WCHAR */
-
- /// Finds the last occurance of a character in a string (const char
- /// version).
- static const char *strrchr (const char *s, int c);
-
-#if defined (ACE_HAS_WCHAR)
- /// Finds the last occurance of a character in a string (const wchar_t
- /// version).
- static const wchar_t *strrchr (const wchar_t *s, wint_t c);
-#endif /* ACE_HAS_WCHAR */
-
- /// Finds the last occurance of a character in a string (char version).
- static char *strrchr (char *s, int c);
-
-#if defined (ACE_HAS_WCHAR)
- /// Finds the last occurance of a character in a string (wchar_t version).
- static wchar_t *strrchr (wchar_t *s, wint_t c);
-#endif /* ACE_HAS_WCHAR */
-
- /// Searches for the first substring containing only the specified
- /// characters and returns the size of the substring (char version).
- static size_t strspn (const char *s1, const char *s2);
-
-#if defined (ACE_HAS_WCHAR)
- /// Searches for the first substring containing only the specified
- /// characters and returns the size of the substring (wchar_t version).
- static size_t strspn (const wchar_t *s1, const wchar_t *s2);
-#endif /* ACE_HAS_WCHAR */
-
- /// Finds the first occurance of a substring in a string (const char
- /// version).
- static const char *strstr (const char *s, const char *t);
-
-#if defined (ACE_HAS_WCHAR)
- /// Finds the first occurance of a substring in a string (const wchar_t
- /// version).
- static const wchar_t *strstr (const wchar_t *s, const wchar_t *t);
-#endif /* ACE_HAS_WCHAR */
-
- /// Finds the first occurance of a substring in a string (char version).
- static char *strstr (char *s, const char *t);
-
-#if defined (ACE_HAS_WCHAR)
- /// Finds the first occurance of a substring in a string (wchar_t version).
- static wchar_t *strstr (wchar_t *s, const wchar_t *t);
-#endif /* ACE_HAS_WCHAR */
-
- /// Finds the next token in a string (char version).
- static char *strtok (char *s, const char *tokens);
-
-#if defined (ACE_HAS_WCHAR) && !defined (ACE_LACKS_WCSTOK)
- /// Finds the next token in a string (wchar_t version).
- static wchar_t *strtok (wchar_t *s, const wchar_t *tokens);
-#endif /* ACE_HAS_WCHAR && !ACE_LACKS_WCSTOK */
-
- //@}
-
- /** @name Functions from <cctype>
- *
- * Included are the functions defined in <cctype> and their <cwctype>
- * equivalents.
- *
- * Since they are often implemented as macros, we don't use the same name
- * here. Instead, we change by prepending "ace_" (with the exception of
- * to_lower).
- *
- * @todo To be complete, we should add: isalnum, isalpha, iscntrl
- * isdigit, isgraph, islower, ispunct, isupper, isxdigit, and toupper.
- */
- //@{
-
- /// Returns true if the character is a printable character.
- static int ace_isprint (const ACE_TCHAR c);
-
- /// Returns true if the character is a space character.
- static int ace_isspace (const ACE_TCHAR c);
-
- /// Converts a character to lower case (char version).
- static int to_lower (int c);
-
-#if defined (ACE_HAS_WCHAR) && !defined (ACE_LACKS_TOWLOWER)
- /// Converts a character to lower case (wchar_t version).
- static wint_t to_lower (wint_t c);
-#endif /* ACE_HAS_WCHAR && !ACE_LACKS_TOWLOWER */
-
- //@}
-
- /** @name Non-standard functions
- *
- * These functions aren't in the standard.
- *
- */
- //@{
-
- /// Converts an integer to a string.
- static char *itoa (int value, char *string, int radix);
-
-#if defined (ACE_HAS_WCHAR)
- /// Converts an integer to a string.
- static wchar_t *itoa (int value, wchar_t *string, int radix);
-#endif /* ACE_HAS_WCHAR */
-
- /// Compares two strings (case insensitive const char version).
- static int strcasecmp (const char *s, const char *t);
-
-#if defined (ACE_HAS_WCHAR)
- /// Compares two strings (case insensitive const wchar_t version).
- static int strcasecmp (const wchar_t *s, const wchar_t *t);
-#endif /* ACE_HAS_WCHAR */
-
- /// Finds the first occurance of a character in an array (const char
- /// version).
- static const char *strnchr (const char *s, int c, size_t len);
-
- /// Finds the first occurance of a character in an array (const ACE_WCHAR_T
- /// version).
- static const ACE_WCHAR_T *strnchr (const ACE_WCHAR_T *s, ACE_WINT_T c, size_t len);
-
- /// Finds the first occurance of a character in an array (char version).
- static char *strnchr (char *s, int c, size_t len);
-
- /// Finds the first occurance of a character in an array (ACE_WCHAR_T version).
- static ACE_WCHAR_T *strnchr (ACE_WCHAR_T *s, ACE_WINT_T c, size_t len);
-
- /// Compares two arrays (case insensitive const char version).
- static int strncasecmp (const char *s, const char *t, size_t len);
-
-#if defined (ACE_HAS_WCHAR)
- /// Compares two arrays (case insensitive const wchar_t version).
- static int strncasecmp (const wchar_t *s, const wchar_t *t, size_t len);
-#endif /* ACE_HAS_WCHAR */
-
- /// Copies a string, but returns a pointer to the end of the
- /// copied region (char version).
- static char *strecpy (char *des, const char *src);
-
-#if defined (ACE_HAS_WCHAR)
- /// Copies a string, but returns a pointer to the end of the
- /// copied region (wchar_t version).
- static wchar_t *strecpy (wchar_t *s, const wchar_t *t);
-#endif /* ACE_HAS_WCHAR */
-
- /// This is a "safe" c string copy function (char version).
- /**
- * Unlike strncpy() this function will always add a terminating '\0'
- * char if maxlen > 0. So the user doesn't has to provide an extra
- * '\0' if the user wants a '\0' terminated dst. The function
- * doesn't check for a 0 <dst>, because this will give problems
- * anyway. When <src> is 0 an empty string is made. We do not
- * "touch" *<dst> if maxlen is 0. Returns <dst>. Care should be
- * taken when replacing strncpy() calls, because in some cases a
- * strncpy() user is using the "not '\0' terminating" feature from
- * strncpy(). This happens most when the call to strncpy() was
- * optimized by using a maxlen which is 1 smaller than the size
- * because there's always written a '\0' inside this last position.
- * Very seldom it's possible that the '\0' padding feature from
- * strncpy() is needed.
- */
- static char *strsncpy (char *dst,
- const char *src,
- size_t maxlen);
-
- /// This is a "safe" c string copy function (wchar_t version).
- /**
- * Unlike strncpy() this function will always add a terminating '\0'
- * char if maxlen > 0. So the user doesn't has to provide an extra
- * '\0' if the user wants a '\0' terminated dst. The function
- * doesn't check for a 0 <dst>, because this will give problems
- * anyway. When <src> is 0 an empty string is made. We do not
- * "touch" *<dst> if maxlen is 0. Returns <dst>. Care should be
- * taken when replacing strncpy() calls, because in some cases a
- * strncpy() user is using the "not '\0' terminating" feature from
- * strncpy(). This happens most when the call to strncpy() was
- * optimized by using a maxlen which is 1 smaller than the size
- * because there's always written a '\0' inside this last position.
- * Very seldom it's possible that the '\0' padding feature from
- * strncpy() is needed.
- */
- static ACE_WCHAR_T *strsncpy (ACE_WCHAR_T *dst,
- const ACE_WCHAR_T *src,
- size_t maxlen);
-
- /// Finds the first occurance of a substring in an array (const char
- /// version).
- static const char *strnstr (const char *s, const char *t, size_t len);
-
- /// Finds the first occurance of a substring in an array (const wchar_t
- /// version).
- static const ACE_WCHAR_T *strnstr (const ACE_WCHAR_T *s,
- const ACE_WCHAR_T *t,
- size_t len);
-
- /// Finds the first occurance of a substring in an array (char version).
- static char *strnstr (char *s, const char *t, size_t len);
-
- /// Finds the first occurance of a substring in an array (wchar_t version).
- static ACE_WCHAR_T *strnstr (ACE_WCHAR_T *s, const ACE_WCHAR_T *t, size_t len);
-
- /// Returns a malloced duplicated string (char version).
- static char *strdup (const char *s);
-
-#if defined (ACE_HAS_WCHAR)
- /// Returns a malloced duplicated string (wchar_t version).
- static wchar_t *strdup (const wchar_t *s);
-#endif /* ACE_HAS_WCHAR */
-
- /// Finds the next token in a string (safe char version).
- static char *strtok_r (char *s, const char *tokens, char **lasts);
-
-#if defined (ACE_HAS_WCHAR)
- /// Finds the next token in a string (wchar_t version).
- static wchar_t *strtok_r (ACE_WCHAR_T *s, const ACE_WCHAR_T *tokens, ACE_WCHAR_T **lasts);
-#endif // ACE_HAS_WCHAR
-
-#if !defined (ACE_LACKS_STRTOD)
- /// Converts a string to a double value (char version).
- static double strtod (const char *s, char **endptr);
-#endif /* !ACE_LACKS_STRTOD */
-
-#if defined (ACE_HAS_WCHAR) && !defined (ACE_LACKS_WCSTOD)
- /// Converts a string to a double value (wchar_t version).
- static double strtod (const wchar_t *s, wchar_t **endptr);
-#endif /* ACE_HAS_WCHAR && !ACE_LACKS_WCSTOD */
-
- /// Converts a string to a long value (char version).
- static long strtol (const char *s, char **ptr, int base);
-
-#if defined (ACE_HAS_WCHAR) && !defined (ACE_LACKS_WCSTOL)
- /// Converts a string to a long value (wchar_t version).
- static long strtol (const wchar_t *s, wchar_t **ptr, int base);
-#endif /* ACE_HAS_WCHAR && !ACE_LACKS_WCSTOL */
-
- /// Converts a string to an unsigned long value (char version).
- static unsigned long strtoul (const char *s, char **ptr, int base);
-
-#if defined (ACE_HAS_WCHAR) && !defined (ACE_LACKS_WCSTOUL)
- /// Converts a string to an unsigned long value (wchar_t version).
- static unsigned long strtoul (const wchar_t *s, wchar_t **ptr, int base);
-#endif /* ACE_HAS_WCHAR && !ACE_LACKS_WCSTOUL */
-
- //@}
-
-private:
-
- /** @name Emulation
- *
- * These methods are provided for platforms that do not have a native
- * implementation.
- */
- //@{
-
-#if !defined (ACE_HAS_ITOA)
- /// Emulated itoa - Converts an integer to a string.
- static char *itoa_emulation (int value, char *string, int radix);
-#endif /* !ACE_HAS_ITOA */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_ITOW)
- /// Emulated itow - Converts an integer to a string.
- static wchar_t *itow_emulation (int value, wchar_t *string, int radix);
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_ITOW */
-
-#if !defined (ACE_HAS_MEMCHR)
- /// Emulated memchr - Finds a character in a buffer.
- static const void *memchr_emulation (const void *s, int c, size_t len);
-#endif /* ACE_HAS_MEMCHR */
-
-#if defined (ACE_LACKS_STRCASECMP)
- /// Emulated strcasecmp - Performs a case insensitive comparison of strings.
- static int strcasecmp_emulation (const char *s, const char *t);
-
- /// Emulated strncasecmp - Performs a case insensitvie comparison of arrays.
- static int strncasecmp_emulation (const char *s, const char *t, size_t len);
-#endif /* ACE_LACKS_STRCASECMP */
-
-#if defined (ACE_LACKS_STRCSPN)
- /// Emulated strcspn - Finds a substring in a string.
- static size_t strcspn_emulation (const char *s, const char *reject);
-#endif /* ACE_LACKS_STRCSPN */
-
-#if defined (ACE_LACKS_STRCHR)
- /// Emulated strchr (char version) - Finds the first occurance of a
- /// character in a string.
- static char *strchr_emulation (char *s, int c);
-
- /// Emulated strchr (const char version) - Finds the first occurance of a
- /// character in a string.
- static const char *strchr_emulation (const char *s, int c);
-#endif /* ACE_LACKS_STRCHR */
-
-#if defined (ACE_LACKS_STRERROR)
- /// Emulated strerror - Returns a system error message.
- static char *strerror_emulation (int errnum);
-#endif /* ACE_LACKS_STRERROR */
-
-#if defined (ACE_LACKS_STRPBRK)
- /// Emulated strpbrk - Searches for characters in a string.
- static char *strpbrk_emulation (const char *string,
- const char *charset);
-#endif /* ACE_LACKS_STRPBRK */
-
-#if defined (ACE_LACKS_STRRCHR)
- /// Emulated strrchr (char version) - Finds the last occurance of a
- /// character in a string.
- static char *strrchr_emulation (char *s, int c);
-
- /// Emulated strrchr (const char version) - Finds the last occurance of a
- /// character in a string.
- static const char *strrchr_emulation (const char *s, int c);
-#endif /* ACE_LACKS_STRRCHR */
-
-#if !defined (ACE_HAS_REENTRANT_FUNCTIONS)
- /// Emulated strtok_r.
- static char *strtok_r_emulation (char *s, const char *tokens, char **lasts);
-
-# if defined (ACE_HAS_WCHAR)
- /// Emulated strtok_r (wchar_t version).
- static wchar_t *strtok_r_emulation (ACE_WCHAR_T *s, const ACE_WCHAR_T *tokens, ACE_WCHAR_T **lasts);
-# endif // ACE_HAS_WCHAR
-#endif /* !ACE_HAS_REENTRANT_FUNCTIONS */
-
-#if defined (ACE_LACKS_STRSPN)
- /// Emulated wcsspn.
- static size_t strspn_emulation (const char *string,
- const char *charset);
-#endif /* ACE_LACKS_STRSPN */
-
-#if defined (ACE_LACKS_STRTOL)
- static long strtol_emulation (const char *nptr, char **endptr, int base);
-#endif /* ACE_LACKS_STRTOL */
-
-#if defined (ACE_LACKS_STRTOUL)
- static unsigned long strtoul_emulation (const char *nptr,
- char **endptr,
- int base);
-#endif /* ACE_LACKS_STRTOUL */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSCAT)
- /// Emulated wcscat - Appends a string.
- static wchar_t *wcscat_emulation (wchar_t *destination,
- const wchar_t *source);
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSCAT */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSCHR)
- /// Emulated wcschr - Finds a character in a string.
- static wchar_t *wcschr_emulation (const wchar_t *string, wint_t c);
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSCHR */
-
-#if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSCMP)
- /// Emulated wcscmp - Compares strings.
- static int wcscmp_emulation (const ACE_WCHAR_T *string1, const ACE_WCHAR_T *string2);
-#endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSCMP */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSCPY)
- /// Emulated wcscpy - Copies a string.
- static wchar_t *wcscpy_emulation (wchar_t *destination,
- const wchar_t *source);
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSCPY */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSICMP)
- /// Emulated wcsicmp - Performs a case insensitive comparison of strings.
- static int wcsicmp_emulation (const wchar_t *string1,
- const wchar_t *string2);
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSICMP */
-
-#if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSLEN)
- /// Emulated wcslen - Returns the length of a string.
- static size_t wcslen_emulation (const ACE_WCHAR_T *string);
-#endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSLEN */
-
-#if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSNCAT)
- /// Emulated wcscat - Appends a string.
- static ACE_WCHAR_T *wcsncat_emulation (ACE_WCHAR_T *destination,
- const ACE_WCHAR_T *source,
- size_t count);
-#endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSCAT */
-
-#if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSNCMP)
- /// Emulated wcsncmp - Compares two arrays.
- static int wcsncmp_emulation (const ACE_WCHAR_T *string1,
- const ACE_WCHAR_T *string2,
- size_t len);
-#endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSNCMP */
-
-#if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSNCPY)
- /// Emulated wcsncpy - Copies an array.
- static ACE_WCHAR_T *wcsncpy_emulation (ACE_WCHAR_T *destination,
- const ACE_WCHAR_T *source,
- size_t len);
-#endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSNCPY */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSNICMP)
- /// Emulated wcsnicmp - Performs a case insensitive comparison of two
- /// arrays
- static int wcsnicmp_emulation (const wchar_t *string1,
- const wchar_t *string2,
- size_t len);
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSNICMP */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSPBRK)
- /// Emulated wcspbrk - Searches for characters in a string.
- static wchar_t *wcspbrk_emulation (const wchar_t *string,
- const wchar_t *charset);
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSPBRK */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSRCHR)
- /// Emulated wcsrchr (wchar_t version) - Finds the last occurance of a
- /// character in a string.
- static wchar_t *wcsrchr_emulation (wchar_t *string, wint_t c);
-
- /// Emulated wcsrchr (const wchar_t version) - Finds the last occurance of a
- /// character in a string.
- static const wchar_t *wcsrchr_emulation (const wchar_t *string, wint_t c);
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSRCHR */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSCSPN)
- /// Emulated wcscspn.
- static size_t wcscspn_emulation (const wchar_t *string,
- const wchar_t *reject);
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSCSPN */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSSPN)
- /// Emulated wcsspn.
- static size_t wcsspn_emulation (const wchar_t *string,
- const wchar_t *charset);
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSSPN */
-
-#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSSTR)
- /// Emulated wcsstr - Performs a case insensitive comparison of two strings.
- static wchar_t *wcsstr_emulation (const wchar_t *string,
- const wchar_t *charset);
-#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSSTR */
-
- //@}
-};
-
-# if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "ace/OS_String.inl"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#include "ace/post.h"
-#endif /* ACE_OS_STRING_H */
diff --git a/ace/OS_String.inl b/ace/OS_String.inl
deleted file mode 100644
index 977d838bc07..00000000000
--- a/ace/OS_String.inl
+++ /dev/null
@@ -1,679 +0,0 @@
-// -*- C++ -*-
-//=============================================================================
-/**
- * @file OS_String.inl
- *
- * $Id$
- *
- * @brief Contains inline definitions for class ACE_OS_String.
- */
-//=============================================================================
-
-// Matthew Stevens 7-10-95 Fix GNU GCC 2.7 for memchr() problem.
-#if defined (ACE_HAS_GNU_CSTRING_H)
-// Define this file to keep /usr/include/memory.h from being included.
-# include /**/ <cstring>
-#else
-# if !defined (ACE_LACKS_MEMORY_H)
-# include /**/ <memory.h>
-# endif /* !ACE_LACKS_MEMORY_H */
-#endif /* ACE_HAS_GNU_CSTRING_H */
-
-#if !defined (ACE_PSOS_DIAB_MIPS)
-# include /**/ <stdlib.h>
-# include /**/ <string.h>
-#endif /* !ACE_PSOS_DIAB_MIPS */
-
-// We need strings.h on some platforms (qnx-neutrino, for example)
-// to get the declaration for strcasecmp
-#if defined (ACE_HAS_STRINGS)
-# include /**/ <strings.h>
-#endif /* ACE_HAS_STRINGS */
-
-#include /**/ <ctype.h>
-
-ACE_INLINE const void *
-ACE_OS_String::memchr (const void *s, int c, size_t len)
-{
-#if defined (ACE_HAS_MEMCHR)
- return ::memchr (s, c, len);
-#else /* ACE_HAS_MEMCHR */
- return ACE_OS_String::memchr_emulation (s, c, len);
-#endif /* ACE_HAS_MEMCHR */
-}
-
-ACE_INLINE void *
-ACE_OS_String::memchr (void *s, int c, size_t len)
-{
- return ACE_const_cast (void *,
- ACE_OS_String::memchr (ACE_static_cast (const void *, s), c, len));
-}
-
-
-ACE_INLINE int
-ACE_OS_String::memcmp (const void *t, const void *s, size_t len)
-{
- return ::memcmp (t, s, len);
-}
-
-
-ACE_INLINE void *
-ACE_OS_String::memcpy (void *t, const void *s, size_t len)
-{
- return ::memcpy (t, s, len);
-}
-
-ACE_INLINE void *
-ACE_OS_String::memmove (void *t, const void *s, size_t len)
-{
- return ::memmove (t, s, len);
-}
-
-ACE_INLINE void *
-ACE_OS_String::memset (void *s, int c, size_t len)
-{
- return ::memset (s, c, len);
-}
-
-ACE_INLINE char *
-ACE_OS_String::strcat (char *s, const char *t)
-{
- return ::strcat (s, t);
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE wchar_t *
-ACE_OS_String::strcat (wchar_t *s, const wchar_t *t)
-{
-# if defined (ACE_LACKS_WCSCAT)
- return ACE_OS_String::wcscat_emulation (s, t);
-# else /* ACE_LACKS_WCSCAT */
- return ::wcscat (s, t);
-# endif /* ACE_LACKS_WCSCAT */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE const char *
-ACE_OS_String::strchr (const char *s, int c)
-{
-#if defined (ACE_LACKS_STRCHR)
- return ACE_OS_String::strchr_emulation (s, c);
-#else /* ! ACE_LACKS_STRCHR */
- return (const char *) ::strchr (s, c);
-#endif /* ACE_LACKS_STRCHR */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE const wchar_t *
-ACE_OS_String::strchr (const wchar_t *s, wint_t c)
-{
-# if defined (ACE_LACKS_WCSCHR)
- return ACE_OS_String::wcschr_emulation (s, c);
-# else /* ACE_LACKS_WCSCHR */
- return ::wcschr (s, c);
-# endif /* ACE_LACKS_WCSCHR */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE char *
-ACE_OS_String::strchr (char *s, int c)
-{
-#if defined (ACE_LACKS_STRCHR)
- return ACE_OS_String::strchr_emulation (s, c);
-#else /* ! ACE_LACKS_STRCHR */
- return ::strchr (s, c);
-#endif /* ACE_LACKS_STRCHR */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE wchar_t *
-ACE_OS_String::strchr (wchar_t *s, wint_t c)
-{
- return ACE_const_cast (wchar_t *,
- ACE_OS_String::strchr (ACE_static_cast (const wchar_t *, s), c));
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE int
-ACE_OS_String::strcmp (const char *s, const char *t)
-{
- return ::strcmp (s, t);
-}
-
-ACE_INLINE int
-ACE_OS_String::strcmp (const ACE_WCHAR_T *s, const ACE_WCHAR_T *t)
-{
-# if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSCMP)
- return ACE_OS_String::wcscmp_emulation (s, t);
-# else /* !ACE_HAS_WCHAR || ACE_LACKS_WCSCMP */
- return ::wcscmp (s, t);
-# endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSCMP */
-}
-
-ACE_INLINE char *
-ACE_OS_String::strcpy (char *s, const char *t)
-{
- return ::strcpy (s, t);
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE wchar_t *
-ACE_OS_String::strcpy (wchar_t *s, const wchar_t *t)
-{
-# if defined (ACE_LACKS_WCSCPY)
- return ACE_OS_String::wcscpy_emulation (s, t);
-# else /* ACE_LACKS_WCSCPY */
- return ::wcscpy (s, t);
-# endif /* ACE_LACKS_WCSCPY */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE size_t
-ACE_OS_String::strcspn (const char *s, const char *reject)
-{
-#if defined (ACE_LACKS_STRCSPN)
- return ACE_OS_String::strcspn_emulation (s, reject);
-#else /* ACE_LACKS_STRCSPN */
- return ::strcspn (s, reject);
-#endif /* ACE_LACKS_STRCSPN */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE size_t
-ACE_OS_String::strcspn (const wchar_t *s, const wchar_t *reject)
-{
-# if defined (ACE_LACKS_WCSCSPN)
- return ACE_OS_String::wcscspn_emulation (s, reject);
-# else /* ACE_LACKS_WCSCSPN */
- return ::wcscspn (s, reject);
-# endif /* ACE_LACKS_WCSCSPN */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE char *
-ACE_OS_String::strerror (int errnum)
-{
-#if defined (ACE_LACKS_STRERROR)
- return ACE_OS_String::strerror_emulation (errnum);
-#else /* ACE_LACKS_STRERROR */
- return ::strerror (errnum);
-#endif /* ACE_LACKS_STRERROR */
-}
-
-ACE_INLINE size_t
-ACE_OS_String::strlen (const char *s)
-{
- return ::strlen (s);
-}
-
-ACE_INLINE size_t
-ACE_OS_String::strlen (const ACE_WCHAR_T *s)
-{
-# if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSLEN)
- return ACE_OS_String::wcslen_emulation (s);
-# else /* !ACE_HAS_WCHAR || ACE_LACKS_WCSLEN */
- return ::wcslen (s);
-# endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSLEN */
-}
-
-ACE_INLINE size_t
-ACE_OS_String::strnlen (const char *s, size_t maxlen)
-{
-#if defined (ACE_HAS_STRNLEN)
- return ::strnlen (s, maxlen);
-#else /* ACE_HAS_STRNLEN */
- size_t i;
- for (i = 0; i < maxlen; ++i)
- if (s[i] == '\0')
- break;
- return i;
-#endif /* ACE_HAS_STRNLEN */
-}
-
-ACE_INLINE size_t
-ACE_OS_String::strnlen (const ACE_WCHAR_T *s, size_t maxlen)
-{
-#if defined (ACE_HAS_WCHAR) && defined (ACE_HAS_WCSNLEN)
- return wcsnlen (s, maxlen);
-#else /* ACE_HAS_WCSNLEN */
- size_t i;
- for (i = 0; i < maxlen; ++i)
- if (s[i] == '\0')
- break;
- return i;
-#endif /* ACE_HAS_WCSNLEN */
-}
-
-ACE_INLINE char *
-ACE_OS_String::strncat (char *s, const char *t, size_t len)
-{
- return ::strncat (s, t, len);
-}
-
-ACE_INLINE ACE_WCHAR_T *
-ACE_OS_String::strncat (ACE_WCHAR_T *s, const ACE_WCHAR_T *t, size_t len)
-{
-# if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSNCAT)
- return ACE_OS_String::wcsncat_emulation (s, t, len);
-# else /* !ACE_HAS_WCHAR || ACE_LACKS_WCSNCAT */
- return ::wcsncat (s, t, len);
-# endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSNCAT */
-}
-
-ACE_INLINE int
-ACE_OS_String::strncmp (const char *s, const char *t, size_t len)
-{
- return ::strncmp (s, t, len);
-}
-
-ACE_INLINE int
-ACE_OS_String::strncmp (const ACE_WCHAR_T *s, const ACE_WCHAR_T *t, size_t len)
-{
-# if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSNCMP)
- return ACE_OS_String::wcsncmp_emulation (s, t, len);
-# else /* !ACE_HAS_WCHAR || ACE_LACKS_WCSNCMP */
- return ::wcsncmp (s, t, len);
-# endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSNCMP */
-}
-
-ACE_INLINE char *
-ACE_OS_String::strncpy (char *s, const char *t, size_t len)
-{
- return ::strncpy (s, t, len);
-}
-
-ACE_INLINE ACE_WCHAR_T *
-ACE_OS_String::strncpy (ACE_WCHAR_T *s, const ACE_WCHAR_T *t, size_t len)
-{
-# if !defined (ACE_HAS_WCHAR) || defined (ACE_LACKS_WCSNCPY)
- return ACE_OS_String::wcsncpy_emulation (s, t, len);
-# else /* !ACE_HAS_WCHAR || ACE_LACKS_WCSNCPY */
- return ::wcsncpy (s, t, len);
-# endif /* !ACE_HAS_WCHAR || ACE_LACKS_WCSNCPY */
-}
-
-ACE_INLINE const char *
-ACE_OS_String::strpbrk (const char *s1, const char *s2)
-{
-#if defined (ACE_LACKS_STRPBRK)
- return ACE_OS_String::strpbrk_emulation (s1, s2);
-#else /* ACE_LACKS_STRPBRK */
- return (const char *) ::strpbrk (s1, s2);
-#endif /* ACE_LACKS_STRPBRK */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE const wchar_t *
-ACE_OS_String::strpbrk (const wchar_t *s, const wchar_t *t)
-{
-# if defined (ACE_LACKS_WCSPBRK)
- return ACE_OS_String::wcspbrk_emulation (s, t);
-# else /* ACE_LACKS_WCSPBRK */
- return ::wcspbrk (s, t);
-# endif /* ACE_LACKS_WCSPBRK */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE char *
-ACE_OS_String::strpbrk (char *s1, const char *s2)
-{
-#if defined (ACE_LACKS_STRPBRK)
- return ACE_OS_String::strpbrk_emulation (s1, s2);
-#else /* ACE_LACKS_STRPBRK */
- return ::strpbrk (s1, s2);
-#endif /* ACE_LACKS_STRPBRK */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE wchar_t *
-ACE_OS_String::strpbrk (wchar_t *s, const wchar_t *t)
-{
- return ACE_const_cast (wchar_t *,
- ACE_OS_String::strpbrk (ACE_static_cast (const wchar_t *, s), t));
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE const char *
-ACE_OS_String::strrchr (const char *s, int c)
-{
-#if defined (ACE_LACKS_STRRCHR)
- return ACE_OS_String::strrchr_emulation (s, c);
-#else /* ! ACE_LACKS_STRRCHR */
- return (const char *) ::strrchr (s, c);
-#endif /* ! ACE_LACKS_STRRCHR */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE const wchar_t *
-ACE_OS_String::strrchr (const wchar_t *s, wint_t c)
-{
-#if defined (ACE_LACKS_WCSRCHR)
- return ACE_OS_String::wcsrchr_emulation (s, c);
-#else /* ! ACE_LACKS_WCSRCHR */
- return (const wchar_t *) ::wcsrchr (s, c);
-#endif /* ! ACE_LACKS_WCSRCHR */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE char *
-ACE_OS_String::strrchr (char *s, int c)
-{
-#if defined (ACE_LACKS_STRRCHR)
- return ACE_OS_String::strrchr_emulation (s, c);
-#else /* ! ACE_LACKS_STRRCHR */
- return ::strrchr (s, c);
-#endif /* ! ACE_LACKS_STRRCHR */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE wchar_t *
-ACE_OS_String::strrchr (wchar_t *s, wint_t c)
-{
- return ACE_const_cast (wchar_t *,
- ACE_OS_String::strrchr (ACE_static_cast (const wchar_t *, s), c));
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE size_t
-ACE_OS_String::strspn (const char *s, const char *t)
-{
-#if defined (ACE_LACKS_STRSPN)
- return ACE_OS_String::strspn_emulation (s, t);
-#else /* ACE_LACKS_STRSPN */
- return ::strspn (s, t);
-#endif /* ACE_LACKS_STRSPN */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE size_t
-ACE_OS_String::strspn (const wchar_t *s, const wchar_t *t)
-{
-# if defined (ACE_LACKS_WCSSPN)
- return ACE_OS_String::wcsspn_emulation (s, t);
-# else /* ACE_LACKS_WCSSPN */
- return ::wcsspn (s, t);
-# endif /* ACE_LACKS_WCSSPN */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE const char *
-ACE_OS_String::strstr (const char *s, const char *t)
-{
- return (const char *) ::strstr (s, t);
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE const wchar_t *
-ACE_OS_String::strstr (const wchar_t *s, const wchar_t *t)
-{
-# if defined (ACE_LACKS_WCSSTR)
- return ACE_OS_String::wcsstr_emulation (s, t);
-# elif defined (HPUX)
- return (const wchar_t *) ::wcswcs (s, t);
-# else /* ACE_LACKS_WCSSTR */
- return (const wchar_t *) ::wcsstr (s, t);
-# endif /* ACE_LACKS_WCSSTR */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE char *
-ACE_OS_String::strstr (char *s, const char *t)
-{
- return ::strstr (s, t);
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE wchar_t *
-ACE_OS_String::strstr (wchar_t *s, const wchar_t *t)
-{
-# if defined (ACE_LACKS_WCSSTR)
- return ACE_OS_String::wcsstr_emulation (s, t);
-# elif defined (HPUX)
- return ::wcswcs (s, t);
-# else /* ACE_LACKS_WCSSTR */
- return ::wcsstr (s, t);
-# endif /* ACE_LACKS_WCSSTR */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE char *
-ACE_OS_String::strtok (char *s, const char *tokens)
-{
- return ::strtok (s, tokens);
-}
-
-#if defined (ACE_HAS_WCHAR) && !defined (ACE_LACKS_WCSTOK)
-ACE_INLINE wchar_t *
-ACE_OS_String::strtok (wchar_t *s, const wchar_t *tokens)
-{
-#if defined (ACE_HAS_3_PARAM_WCSTOK)
- static wchar_t *lasts;
- return ::wcstok (s, tokens, &lasts);
-#else
- return ::wcstok (s, tokens);
-#endif /* ACE_HAS_3_PARAM_WCSTOK */
-}
-#endif /* ACE_HAS_WCHAR && !ACE_LACKS_WCSTOK */
-
-ACE_INLINE int
-ACE_OS_String::ace_isprint (const ACE_TCHAR c)
-{
-#if defined (ACE_USES_WCHAR)
- return iswprint (c);
-#else /* ACE_USES_WCHAR */
- return isprint ((unsigned char) c);
-#endif /* ACE_USES_WCHAR */
-}
-
-ACE_INLINE int
-ACE_OS_String::ace_isspace (const ACE_TCHAR c)
-{
-#if defined (ACE_USES_WCHAR)
- return iswspace (c);
-#else /* ACE_USES_WCHAR */
- return isspace ((unsigned char) c);
-#endif /* ACE_USES_WCHAR */
-}
-
-ACE_INLINE int
-ACE_OS_String::to_lower (int c)
-{
- return tolower (c);
-}
-
-#if defined (ACE_HAS_WCHAR) && !defined (ACE_LACKS_TOWLOWER)
-ACE_INLINE wint_t
-ACE_OS_String::to_lower (wint_t c)
-{
- return towlower (c);
-}
-#endif /* ACE_HAS_WCHAR && !ACE_LACKS_TOWLOWER */
-
-ACE_INLINE char *
-ACE_OS_String::itoa (int value, char *string, int radix)
-{
-#if !defined (ACE_HAS_ITOA)
- return ACE_OS_String::itoa_emulation (value, string, radix);
-#elif defined (ACE_ITOA_EQUIVALENT)
- return ACE_ITOA_EQUIVALENT (value, string, radix);
-#else /* !ACE_HAS_ITOA */
- return ::itoa (value, string, radix);
-#endif /* !ACE_HAS_ITOA */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE wchar_t *
-ACE_OS_String::itoa (int value, wchar_t *string, int radix)
-{
-#if defined (ACE_LACKS_ITOW)
- return ACE_OS_String::itow_emulation (value, string, radix);
-#else /* ACE_LACKS_ITOW */
- return ::_itow (value, string, radix);
-#endif /* ACE_LACKS_ITOW */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE int
-ACE_OS_String::strcasecmp (const char *s, const char *t)
-{
-#if defined (ACE_LACKS_STRCASECMP)
- return ACE_OS_String::strcasecmp_emulation (s, t);
-#elif defined (ACE_STRCASECMP_EQUIVALENT)
- return ACE_STRCASECMP_EQUIVALENT (s, t);
-#else /* ACE_LACKS_STRCASECMP */
- return ::strcasecmp (s, t);
-#endif /* ACE_LACKS_STRCASECMP */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_OS_String::strcasecmp (const wchar_t *s, const wchar_t *t)
-{
-# if defined (ACE_LACKS_WCSICMP)
- return ACE_OS_String::wcsicmp_emulation (s, t);
-# else /* ACE_LACKS_WCSICMP */
- return ::_wcsicmp (s, t);
-# endif /* ACE_LACKS_WCSICMP */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE char *
-ACE_OS_String::strnchr (char *s, int c, size_t len)
-{
-#if defined ACE_PSOS_DIAB_PPC /* Compiler problem Diab 4.2b */
- const char *const_char_s = s;
- return ACE_const_cast (char *,
- ACE_OS_String::strnchr (const_char_s, c, len));
-#else
- return ACE_const_cast (char *,
- ACE_OS_String::strnchr (ACE_static_cast (const char *, s), c, len));
-#endif
-}
-
-ACE_INLINE ACE_WCHAR_T *
-ACE_OS_String::strnchr (ACE_WCHAR_T *s, ACE_WINT_T c, size_t len)
-{
- return ACE_const_cast (ACE_WCHAR_T *,
- ACE_OS_String::strnchr (ACE_static_cast (const ACE_WCHAR_T *, s), c, len));
-}
-
-ACE_INLINE int
-ACE_OS_String::strncasecmp (const char *s, const char *t, size_t len)
-{
-#if defined (ACE_LACKS_STRCASECMP)
- return ACE_OS_String::strncasecmp_emulation (s, t, len);
-#elif defined (ACE_STRNCASECMP_EQUIVALENT)
- return ACE_STRNCASECMP_EQUIVALENT (s, t, len);
-#else /* ACE_LACKS_STRCASECMP */
- return ::strncasecmp (s, t, len);
-#endif /* ACE_LACKS_STRCASECMP */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
-ACE_OS_String::strncasecmp (const wchar_t *s, const wchar_t *t, size_t len)
-{
-#if defined (ACE_LACKS_WCSNICMP)
- return ACE_OS_String::wcsnicmp_emulation (s, t, len);
-#else /* ACE_LACKS_WCSNICMP */
- return ::_wcsnicmp (s, t, len);
-#endif /* ACE_LACKS_WCSNICMP */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE char *
-ACE_OS_String::strnstr (char *s, const char *t, size_t len)
-{
-#if defined ACE_PSOS_DIAB_PPC /* Compiler problem Diab 4.2b */
- const char *const_char_s=s;
- return (char *) ACE_OS_String::strnstr (const_char_s, t, len);
-#else
- return (char *) ACE_OS_String::strnstr ((const char *) s, t, len);
-#endif
-}
-
-ACE_INLINE ACE_WCHAR_T *
-ACE_OS_String::strnstr (ACE_WCHAR_T *s, const ACE_WCHAR_T *t, size_t len)
-{
- return ACE_const_cast (ACE_WCHAR_T *,
- ACE_OS_String::strnstr (ACE_static_cast (const ACE_WCHAR_T *, s), t, len));
-}
-
-ACE_INLINE char *
-ACE_OS_String::strtok_r (char *s, const char *tokens, char **lasts)
-{
-#if defined (ACE_HAS_REENTRANT_FUNCTIONS)
- return ::strtok_r (s, tokens, lasts);
-#else
- return ACE_OS_String::strtok_r_emulation (s, tokens, lasts);
-#endif /* (ACE_HAS_REENTRANT_FUNCTIONS) */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE wchar_t*
-ACE_OS_String::strtok_r (ACE_WCHAR_T *s, const ACE_WCHAR_T *tokens, ACE_WCHAR_T **lasts)
-{
-#if defined (ACE_LACKS_WCSTOK)
- return ACE_OS_String::strtok_r_emulation (s, tokens, lasts);
-#else
-# if defined (ACE_HAS_3_PARAM_WCSTOK)
- return ::wcstok (s, tokens, lasts);
-# else /* ACE_HAS_3_PARAM_WCSTOK */
- *lasts = ::wcstok (s, tokens);
- return *lasts;
-# endif /* ACE_HAS_3_PARAM_WCSTOK */
-#endif /* ACE_LACKS_WCSTOK */
-}
-#endif // ACE_HAS_WCHAR
-
-#if !defined (ACE_LACKS_STRTOD)
-ACE_INLINE double
-ACE_OS_String::strtod (const char *s, char **endptr)
-{
- return ::strtod (s, endptr);
-}
-#endif /* !ACE_LACKS_STRTOD */
-
-#if defined (ACE_HAS_WCHAR) && !defined (ACE_LACKS_WCSTOD)
-ACE_INLINE double
-ACE_OS_String::strtod (const wchar_t *s, wchar_t **endptr)
-{
- return ::wcstod (s, endptr);
-}
-#endif /* ACE_HAS_WCHAR && !ACE_LACKS_WCSTOD */
-
-ACE_INLINE long
-ACE_OS_String::strtol (const char *s, char **ptr, int base)
-{
-#if defined (ACE_LACKS_STRTOL)
- return ACE_OS_String::strtol_emulation (s, ptr, base);
-#else /* ACE_LACKS_STRTOL */
- return ::strtol (s, ptr, base);
-#endif /* ACE_LACKS_STRTOL */
-}
-
-#if defined (ACE_HAS_WCHAR) && !defined (ACE_LACKS_WCSTOL)
-ACE_INLINE long
-ACE_OS_String::strtol (const wchar_t *s, wchar_t **ptr, int base)
-{
- return ::wcstol (s, ptr, base);
-}
-#endif /* ACE_HAS_WCHAR && !ACE_LACKS_WCSTOL */
-
-ACE_INLINE unsigned long
-ACE_OS_String::strtoul (const char *s, char **ptr, int base)
-{
-#if defined (ACE_LACKS_STRTOUL)
- return ACE_OS_String::strtoul_emulation (s, ptr, base);
-#else /* ACE_LACKS_STRTOUL */
- return ::strtoul (s, ptr, base);
-#endif /* ACE_LACKS_STRTOUL */
-}
-
-#if defined (ACE_HAS_WCHAR) && !defined (ACE_LACKS_WCSTOUL)
-ACE_INLINE unsigned long
-ACE_OS_String::strtoul (const wchar_t *s, wchar_t **ptr, int base)
-{
- return ::wcstoul (s, ptr, base);
-}
-#endif /* ACE_HAS_WCHAR && !ACE_LACKS_WCSTOUL */
diff --git a/ace/OS_TLI.cpp b/ace/OS_TLI.cpp
deleted file mode 100644
index 0a8ad8269cc..00000000000
--- a/ace/OS_TLI.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-// $Id$
-
-#include "ace/OS_TLI.h"
-
-ACE_RCSID(ace, OS_TLI, "$Id$")
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "ace/OS_TLI.inl"
-#else /* !ACE_HAS_INLINED_OSCALLS */
-#if defined (__hpux) && !defined (__GNUG__)
-static int shut_up_aCC = 0;
-#endif /* HPUX && !g++ */
-#endif /* !ACE_HAS_INLINED_OS_CALLS */
diff --git a/ace/OS_TLI.h b/ace/OS_TLI.h
deleted file mode 100644
index 2e033e1aea6..00000000000
--- a/ace/OS_TLI.h
+++ /dev/null
@@ -1,197 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file OS_TLI.h
- *
- * $Id$
- *
- * @author Doug Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_OS_TLI_H
-#define ACE_OS_TLI_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-#include "ace/OS_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS_Errno.h"
-
-# if !defined (ACE_HAS_TLI)
-// Dummies to help compilation.
-struct t_call { };
-struct t_bind { };
-struct t_info { };
-struct t_optmgmt { };
-struct t_discon { };
-struct t_unitdata { };
-struct t_uderr { };
-struct netbuf { };
-
-# else /* !ACE_WIN32 */
-
-# if !defined (ACE_HAS_TLI_PROTOTYPES)
-
-// Define ACE_TLI headers for systems that don't prototype them....
-extern "C"
-{
- int t_accept(int fildes, int resfd, struct t_call *call);
- char *t_alloc(int fildes, int struct_type, int fields);
- int t_bind(int fildes, struct t_bind *req, struct t_bind *ret);
- int t_close(int fildes);
- int t_connect(int fildes, struct t_call *sndcall,
- struct t_call *rcvcall);
- void t_error(const char *errmsg);
- int t_free(char *ptr, int struct_type);
- int t_getinfo(int fildes, struct t_info *info);
- int t_getname (int fildes, struct netbuf *namep, int type);
- int t_getstate(int fildes);
- int t_listen(int fildes, struct t_call *call);
- int t_look(int fildes);
- int t_open(char *path, int oflag, struct t_info *info);
- int t_optmgmt(int fildes, struct t_optmgmt *req,
- struct t_optmgmt *ret);
- int t_rcv(int fildes, char *buf, unsigned int nbytes, int *flags);
- int t_rcvconnect(int fildes, struct t_call *call);
- int t_rcvdis(int fildes, struct t_discon *discon);
- int t_rcvrel(int fildes);
- int t_rcvudata(int fildes, struct t_unitdata *unitdata, int *flags);
- int t_rcvuderr(int fildes, struct t_uderr *uderr);
- int t_snd(int fildes, const char *buf, unsigned int nbytes, int flags);
- int t_snddis(int fildes, struct t_call *call);
- int t_sndrel(int fildes);
- int t_sndudata(int fildes, struct t_unitdata *unitdata);
- int t_sync(int fildes);
- int t_unbind(int fildes);
-}
-# endif /* !ACE_HAS_TLI_PROTOTYPES */
-
-# if defined (ACE_HAS_TIUSER_H) || defined (ACE_HAS_XTI) || defined (ACE_HAS_FORE_ATM_XTI)
-# if defined (ACE_HAS_BROKEN_XTI_MACROS)
-# undef TCP_NODELAY
-# undef TCP_MAXSEG
-# endif /* ACE_HAS_BROKEN_XTI_MACROS */
-# if defined (ACE_HAS_TIUSER_H_BROKEN_EXTERN_C)
-extern "C" {
-# endif /* ACE_HAS_TIUSER_H_BROKEN_EXTERN_C */
-# if defined (ACE_HAS_FORE_ATM_XTI)
-# include /**/ <fore_xti/xti_user_types.h>
-# include /**/ <fore_xti/xti.h>
-# include /**/ <fore_xti/xti_atm.h>
-# include /**/ <fore_xti/netatm/atm.h>
-# include /**/ <fore_xti/ans.h>
-# elif defined (ACE_HAS_TIUSER_H)
-# include /**/ <tiuser.h>
-# elif defined (ACE_HAS_SYS_XTI_H)
-# define class ace_xti_class
-# include /**/ <sys/xti.h>
-# undef class
-# else
-# include /**/ <xti.h>
-# endif /* ACE_HAS_FORE_ATM_XTI */
-# if defined (ACE_HAS_TIUSER_H_BROKEN_EXTERN_C)
-}
-# endif /* ACE_HAS_TIUSER_H_BROKEN_EXTERN_C */
-# endif /* ACE_HAS_TIUSER_H || ACE_HAS_XTI */
-
-// Apparently this particular prototype is missing in so many
-// platforms that is just better to declare it ourselves.
-extern "C" int t_getname (int, struct netbuf *, int);
-
-# endif /* ACE_WIN32 */
-
-// If the xti.h file redefines the function names, do it now, else
-// when the function definitions are encountered, they won't match the
-// declaration here.
-
-# if defined (ACE_REDEFINES_XTI_FUNCTIONS)
-# include /**/ <xti.h>
-# if defined (UNIXWARE_2_0) /* They apparently forgot one... */
-extern "C" int _xti_error(char *);
-# endif /* UNIXWARE */
-# endif /* ACE_REDEFINES_XTI_FUNCTIONS */
-
-/**
- * @class ACE_OS_TLI
- *
- * @brief This class is a wrapper for the TLI operations
- *
- */
-class ACE_OS_Export ACE_OS_TLI
-{
-public:
- // = A set of wrappers for TLI.
- static int t_accept (ACE_HANDLE fildes,
- ACE_HANDLE resfd,
- struct t_call
- *call);
- static char *t_alloc (ACE_HANDLE fildes,
- int struct_type,
- int
- fields);
- static int t_bind (ACE_HANDLE fildes,
- struct t_bind *req,
- struct
- t_bind *ret);
- static int t_close (ACE_HANDLE fildes);
- static int t_connect (ACE_HANDLE fildes,
- struct t_call *sndcall,
- struct t_call *rcvcall);
- static void t_error (const char *errmsg);
- static int t_free (char *ptr,
- int struct_type);
- static int t_getinfo (ACE_HANDLE fildes,
- struct t_info *info);
- static int t_getname (ACE_HANDLE fildes,
- struct netbuf *namep,
- int type);
- static int t_getstate (ACE_HANDLE fildes);
- static int t_listen (ACE_HANDLE fildes,
- struct t_call *call);
- static int t_look (ACE_HANDLE fildes);
- static ACE_HANDLE t_open (char *path,
- int oflag,
- struct t_info *info);
- static int t_optmgmt (ACE_HANDLE fildes,
- struct t_optmgmt *req,
- struct t_optmgmt *ret);
- static int t_rcv (ACE_HANDLE fildes,
- char *buf,
- unsigned int nbytes,
- int *flags);
- static int t_rcvdis (ACE_HANDLE fildes,
- struct t_discon *discon);
- static int t_rcvrel (ACE_HANDLE fildes);
- static int t_rcvudata (ACE_HANDLE fildes,
- struct t_unitdata *unitdata,
- int *flags);
- static int t_rcvuderr (ACE_HANDLE fildes,
- struct t_uderr *uderr);
- static int t_snd (ACE_HANDLE fildes,
- const char *buf,
- unsigned int nbytes,
- int flags);
- static int t_snddis (ACE_HANDLE fildes,
- struct t_call *call);
- static int t_sndrel (ACE_HANDLE fildes);
- static int t_sync (ACE_HANDLE fildes);
- static int t_unbind (ACE_HANDLE fildes);
-};
-
-# if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "ace/OS_TLI.inl"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#include "ace/post.h"
-#endif /* ACE_OS_TLI_H */
diff --git a/ace/OS_TLI.inl b/ace/OS_TLI.inl
deleted file mode 100644
index c4dc02d5346..00000000000
--- a/ace/OS_TLI.inl
+++ /dev/null
@@ -1,343 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE int
-ACE_OS_TLI::t_accept (ACE_HANDLE handle,
- ACE_HANDLE reshandle,
- struct t_call *call)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_accept (handle, reshandle, call), int, -1);
-#else
- ACE_UNUSED_ARG (call);
- ACE_UNUSED_ARG (reshandle);
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE char *
-ACE_OS_TLI::t_alloc (ACE_HANDLE handle, int struct_type,
- int fields)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_alloc (handle, struct_type, fields),
- char *, 0);
-#else
- ACE_UNUSED_ARG (fields);
- ACE_UNUSED_ARG (struct_type);
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_bind (ACE_HANDLE handle, struct t_bind *req,
- struct t_bind *ret)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_bind (handle, req, ret), int, -1);
-#else
- ACE_UNUSED_ARG (ret);
- ACE_UNUSED_ARG (req);
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_close (ACE_HANDLE handle)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_close (handle), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_connect(ACE_HANDLE fildes,
- struct t_call *sndcall,
- struct t_call *rcvcall)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_connect (fildes, sndcall, rcvcall), int, -1);
-#else
- ACE_UNUSED_ARG (fildes);
- ACE_UNUSED_ARG (sndcall);
- ACE_UNUSED_ARG (rcvcall);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE void
-ACE_OS_TLI::t_error (const char *errmsg)
-{
-#if defined (ACE_HAS_TLI)
-#if defined (ACE_HAS_BROKEN_T_ERROR)
- ::t_error (ACE_const_cast (char *, errmsg));
-#else
- ::t_error (errmsg);
-#endif /* ACE_HAS_BROKEN_T_ERROR */
-#else
- ACE_UNUSED_ARG (errmsg);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_free (char *ptr, int struct_type)
-{
-#if defined (ACE_HAS_TLI)
- if (ptr == 0)
- return 0;
- ACE_OSCALL_RETURN (::t_free (ptr, struct_type), int, -1);
-#else
- ACE_UNUSED_ARG (struct_type);
- ACE_UNUSED_ARG (ptr);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_getinfo (ACE_HANDLE handle, struct t_info *info)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_getinfo (handle, info), int, -1);
-#else
- ACE_UNUSED_ARG (info);
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_getname (ACE_HANDLE handle,
- struct netbuf *namep,
- int type)
-{
-#if defined (ACE_HAS_SVR4_TLI)
- ACE_OSCALL_RETURN (::t_getname (handle, namep, type), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (namep);
- ACE_UNUSED_ARG (type);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SVR4_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_getstate (ACE_HANDLE handle)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_getstate (handle), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_listen (ACE_HANDLE handle, struct t_call *call)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_listen (handle, call), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (call);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_look (ACE_HANDLE handle)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_look (handle), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE ACE_HANDLE
-ACE_OS_TLI::t_open (char *path, int oflag, struct t_info *info)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_open (path, oflag, info), ACE_HANDLE, ACE_INVALID_HANDLE);
-#else
- ACE_UNUSED_ARG (path);
- ACE_UNUSED_ARG (oflag);
- ACE_UNUSED_ARG (info);
-
- ACE_NOTSUP_RETURN (ACE_INVALID_HANDLE);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_optmgmt (ACE_HANDLE handle,
- struct t_optmgmt *req,
- struct t_optmgmt *ret)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_optmgmt (handle, req, ret), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (req);
- ACE_UNUSED_ARG (ret);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_rcv (ACE_HANDLE handle,
- char *buf,
- unsigned int nbytes,
- int *flags)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_rcv (handle, buf, nbytes, flags),
- int, -1);
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (nbytes);
- ACE_UNUSED_ARG (flags);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_rcvdis (ACE_HANDLE handle, struct t_discon *discon)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_rcvdis (handle, discon), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (discon);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_rcvrel (ACE_HANDLE handle)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_rcvrel (handle), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_rcvudata (ACE_HANDLE handle,
- struct t_unitdata *unitdata,
- int *flags)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_rcvudata (handle, unitdata, flags),
- int, -1);
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (unitdata);
- ACE_UNUSED_ARG (flags);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_rcvuderr (ACE_HANDLE handle, struct t_uderr *uderr)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_rcvuderr (handle, uderr), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (uderr);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_snd (ACE_HANDLE handle,
- const char *buf,
- unsigned int nbytes,
- int flags)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_snd (handle, (char *) buf, nbytes, flags), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (buf);
- ACE_UNUSED_ARG (nbytes);
- ACE_UNUSED_ARG (flags);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_snddis (ACE_HANDLE handle, struct t_call *call)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_snddis (handle, call), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (call);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_sndrel (ACE_HANDLE handle)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_sndrel (handle), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_sync (ACE_HANDLE handle)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_sync (handle), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
-
-ACE_INLINE int
-ACE_OS_TLI::t_unbind (ACE_HANDLE handle)
-{
-#if defined (ACE_HAS_TLI)
- ACE_OSCALL_RETURN (::t_unbind (handle), int, -1);
-#else
- ACE_UNUSED_ARG (handle);
-
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TLI */
-}
diff --git a/ace/OS_Thread_Adapter.cpp b/ace/OS_Thread_Adapter.cpp
deleted file mode 100644
index 0e59ad0926b..00000000000
--- a/ace/OS_Thread_Adapter.cpp
+++ /dev/null
@@ -1,175 +0,0 @@
-// $Id$
-
-#include "ace/OS_Thread_Adapter.h"
-#include "ace/Thread_Hook.h"
-#include "ace/OS.h"
-
-ACE_RCSID (ace,
- OS_Thread_Adapter,
- "$Id$")
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "ace/OS_Thread_Adapter.inl"
-#endif /* ACE_HAS_INLINED_OS_CALLS */
-
-ACE_OS_Thread_Adapter::ACE_OS_Thread_Adapter (
- ACE_THR_FUNC user_func
- , void *arg
- , ACE_THR_C_FUNC entry_point
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- , ACE_SEH_EXCEPT_HANDLER selector
- , ACE_SEH_EXCEPT_HANDLER handler
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- )
- : ACE_Base_Thread_Adapter (user_func, arg, entry_point
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- , 0
- , selector
- , handler
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- )
-{
-}
-
-ACE_OS_Thread_Adapter::~ACE_OS_Thread_Adapter (void)
-{
-}
-
-ACE_THR_FUNC_RETURN
-ACE_OS_Thread_Adapter::invoke (void)
-{
- // Inherit the logging features if the parent thread has an
- // ACE_Log_Msg instance in thread-specific storage.
- this->inherit_log_msg ();
-
- // Extract the arguments.
- ACE_THR_FUNC_INTERNAL func =
- ACE_reinterpret_cast (ACE_THR_FUNC_INTERNAL, this->user_func_);
- void *arg = this->arg_;
-
- // Delete ourselves since we don't need <this> anymore. Make sure
- // not to access <this> anywhere below this point.
- delete this;
-
-#if defined (ACE_NEEDS_LWP_PRIO_SET)
- // On SunOS, the LWP priority needs to be set in order to get
- // preemption when running in the RT class. This is the ACE way to
- // do that . . .
- ACE_hthread_t thr_handle;
- ACE_OS::thr_self (thr_handle);
- int prio;
-
- // thr_getprio () on the current thread should never fail.
- ACE_OS::thr_getprio (thr_handle, prio);
-
- // ACE_OS::thr_setprio () has the special logic to set the LWP priority,
- // if running in the RT class.
- ACE_OS::thr_setprio (prio);
-
-#endif /* ACE_NEEDS_LWP_PRIO_SET */
-
- ACE_THR_FUNC_RETURN status = 0;
-
- ACE_SEH_TRY
- {
- ACE_SEH_TRY
- {
- ACE_Thread_Hook *hook =
- ACE_OS_Object_Manager::thread_hook ();
-
- if (hook)
- // Invoke the start hook to give the user a chance to
- // perform some initialization processing before the
- // <func> is invoked.
- status = hook->start (ACE_reinterpret_cast (ACE_THR_FUNC, func),
- arg);
- else
- {
- // Call thread entry point.
-#if defined (ACE_PSOS)
- (*func) (arg);
- status = 0;
-#else /* ! ACE_PSOS */
- status = (*func) (arg);
-#endif /* ACE_PSOS */
- }
- }
-
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- ACE_SEH_EXCEPT (ACE_OS_Object_Manager::seh_except_selector ()(
- (void *) GetExceptionInformation ()))
- {
- ACE_OS_Object_Manager::seh_except_handler ()(0);
- }
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- }
-
- ACE_SEH_FINALLY
- {
- // If we changed this to 1, change the respective if in
- // Task::svc_run to 0.
-#if 0
- // Call the <Task->close> hook.
- if (func == ACE_reinterpret_cast (ACE_THR_FUNC_INTERNAL,
- ACE_Task_Base::svc_run))
- {
- ACE_Task_Base *task_ptr = (ACE_Task_Base *) arg;
- ACE_Thread_Manager *thr_mgr_ptr = task_ptr->thr_mgr ();
-
- // This calls the Task->close () hook.
- task_ptr->cleanup (task_ptr, 0);
-
- // This prevents a second invocation of the cleanup code
- // (called later by <ACE_Thread_Manager::exit>.
- thr_mgr_ptr->at_exit (task_ptr, 0, 0);
- }
-#endif /* 0 */
-
-#if defined (ACE_WIN32) || defined (ACE_HAS_TSS_EMULATION)
- // Call TSS destructors.
- ACE_OS::cleanup_tss (0 /* not main thread */);
-
-# if defined (ACE_WIN32)
- // Exit the thread. Allow CWinThread-destructor to be invoked
- // from AfxEndThread. _endthreadex will be called from
- // AfxEndThread so don't exit the thread now if we are running
- // an MFC thread.
-# if defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
- // Not spawned by ACE_Thread_Manager, use the old buggy
- // version. You should seriously consider using
- // ACE_Thread_Manager to spawn threads. The following code
- // is know to cause some problem.
- CWinThread *pThread = ::AfxGetThread ();
-
- if (!pThread || pThread->m_nThreadID != ACE_OS::thr_self ())
- ACE_ENDTHREADEX (status);
- else
- ::AfxEndThread (status);
-# else
- ACE_ENDTHREADEX (status);
-# endif /* ACE_HAS_MFC && ACE_HAS_MFS != 0*/
-# endif /* ACE_WIN32 */
-#endif /* ACE_WIN32 || ACE_HAS_TSS_EMULATION */
-
-#if defined (ACE_PSOS)
- // This sequence of calls is documented by ISI as the proper way to
- // clean up a pSOS task. They affect different components, so only
- // try the ones for components that are built with ACE.
-# if defined (SC_PREPC) && (SC_PREPC == YES)
- ::fclose (0); // Return pREPC+ resources
-# endif /* SC_PREPC */
-# if defined (SC_PHILE) && (SC_PHILE == YES)
- ::close_f (0); // Return pHILE+ resources
-# endif /* SC_PHILE */
-# if defined (SC_PNA) && (SC_PNA == YES)
- ::close (0); // Return pNA+ resources
-# endif /* SC_PNA */
-# if defined (SC_SC_PREPC) && (SC_PREPC == YES)
- ::free (-1); // Return pREPC+ memory
-# endif /* SC_PREPC */
- status = ::t_delete (0); // Suicide - only returns on error
-#endif /* ACE_PSOS */
- }
-
- return status;
-}
diff --git a/ace/OS_Thread_Adapter.h b/ace/OS_Thread_Adapter.h
deleted file mode 100644
index 01f92702b1e..00000000000
--- a/ace/OS_Thread_Adapter.h
+++ /dev/null
@@ -1,78 +0,0 @@
-
-//=============================================================================
-/**
- * @file OS_Thread_Adapter.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_OS_THREAD_ADAPTER_H
-#define ACE_OS_THREAD_ADAPTER_H
-#include "ace/pre.h"
-
-#include "ace/Base_Thread_Adapter.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS_Export.h"
-
-/**
- * @class ACE_OS_Thread_Adapter
- *
- * @brief Converts a C++ function into a function that can be
- * called from a thread creation routine
- * (e.g., pthread_create() or _beginthreadex()) that expects an
- * extern "C" entry point. This class also makes it possible to
- * transparently provide hooks to register a thread with an
- * ACE_Thread_Manager.
- *
- * This class is used in ACE_OS::thr_create(). In general, the
- * thread that creates an object of this class is different from
- * the thread that calls invoke() on this object. Therefore,
- * the invoke() method is responsible for deleting itself.
- */
-class ACE_OS_Export ACE_OS_Thread_Adapter : public ACE_Base_Thread_Adapter
-{
-public:
- /// Constructor.
- ACE_OS_Thread_Adapter (ACE_THR_FUNC user_func,
- void *arg,
- ACE_THR_C_FUNC entry_point = (ACE_THR_C_FUNC) ace_thread_adapter
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- , ACE_SEH_EXCEPT_HANDLER selector = 0
- , ACE_SEH_EXCEPT_HANDLER handler = 0
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- );
-
- /**
- * Execute the @a user_func_ with the @a arg. This function deletes
- * @c this, thereby rendering the object useless after the call
- * returns.
- */
- virtual ACE_THR_FUNC_RETURN invoke (void);
-
-private:
- /// Ensure that this object must be allocated on the heap.
- ~ACE_OS_Thread_Adapter (void);
-
-private:
- /// Friend declaration to avoid compiler warning: only defines a private
- /// destructor and has no friends.
- friend class ACE_Thread_Adapter_Has_Private_Destructor;
-};
-
-# if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "ace/OS_Thread_Adapter.inl"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#include "ace/post.h"
-#endif /* ACE_THREAD_ADAPTER_H */
diff --git a/ace/OS_Thread_Adapter.inl b/ace/OS_Thread_Adapter.inl
deleted file mode 100644
index cfa1da318d3..00000000000
--- a/ace/OS_Thread_Adapter.inl
+++ /dev/null
@@ -1 +0,0 @@
-// $Id$
diff --git a/ace/Obchunk.cpp b/ace/Obchunk.cpp
deleted file mode 100644
index 5143a07a20c..00000000000
--- a/ace/Obchunk.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-// $Id$
-
-#include "ace/Obchunk.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Obchunk.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Obchunk, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Obchunk)
-
-void
-ACE_Obchunk::dump (void) const
-{
- ACE_TRACE ("ACE_Obchunk::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("end_ = %x\n"), this->end_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("cur_ = %x\n"), this->cur_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Obchunk::ACE_Obchunk (size_t size)
- : end_ (contents_ + size),
- block_ (contents_),
- cur_ (contents_),
- next_ (0)
-{
-}
diff --git a/ace/Obchunk.h b/ace/Obchunk.h
deleted file mode 100644
index 9259b97a7a0..00000000000
--- a/ace/Obchunk.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- C++ -*- */
-//=============================================================================
-/**
- * @file Obchunk.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_OBCHUNK_H
-#define ACE_OBCHUNK_H
-#include "ace/pre.h"
-
-#include "ace/Malloc.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Obchunk
- *
- * @brief Defines the state that represents a "chunk" of memory.
- * Evenything in this class is public because it is designed
- * as an internal structure of Obstack_T and users are
- * not supposed to use this class directly.
- * @sa ACE_Obstack_T
- */
-class ACE_Export ACE_Obchunk
-{
-public:
- /// Constructor.
- ACE_Obchunk (size_t size);
-
- /// Dtor.
- ~ACE_Obchunk (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /// Pointer to the end of the chunk.
- char *end_;
-
- /// Pointer to the head of the current building block.
- char *block_;
-
- /// Pointer to the current location in the chunk.
- char *cur_;
-
- /// Next chunk in the chain.
- ACE_Obchunk *next_;
-
- /**
- * Pointer to the beginning contents of this chunk. This field is
- * actually overlayed by the memory allocated by
- * <ACE_Obstack::new_chunk>. Therefore, it *must* come last.
- */
- char contents_[4];
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Obchunk.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_OBCHUNK_H */
diff --git a/ace/Obchunk.i b/ace/Obchunk.i
deleted file mode 100644
index 510c511d4f9..00000000000
--- a/ace/Obchunk.i
+++ /dev/null
@@ -1,9 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Obchunk.i
-
-ACE_INLINE
-ACE_Obchunk::~ACE_Obchunk (void)
-{
-}
diff --git a/ace/Object_Manager.cpp b/ace/Object_Manager.cpp
deleted file mode 100644
index 54316097327..00000000000
--- a/ace/Object_Manager.cpp
+++ /dev/null
@@ -1,873 +0,0 @@
-// $Id$
-
-#include "ace/Object_Manager.h"
-#if !defined (ACE_LACKS_ACE_TOKEN)
-# include "ace/Token_Manager.h"
-#endif /* ! ACE_LACKS_ACE_TOKEN */
-#include "ace/Thread_Manager.h"
-#if !defined (ACE_LACKS_ACE_SVCCONF)
-# include "ace/Service_Manager.h"
-# include "ace/Service_Config.h"
-#endif /* ! ACE_LACKS_ACE_SVCCONF */
-#include "ace/Signal.h"
-#include "ace/Log_Msg.h"
-#include "ace/Containers.h"
-#include "ace/Synch.h"
-#include "ace/Malloc.h"
-#include "ace/Signal.h"
-#include "ace/Framework_Component.h"
-#include "ace/Atomic_Op.h"
-
-#if !defined (__ACE_INLINE__)
-# include "ace/Object_Manager.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Object_Manager, "$Id$")
-
-#if ! defined (ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS)
-# define ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS
-#endif /* ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS */
-
-#if ! defined (ACE_APPLICATION_PREALLOCATED_ARRAY_DEFINITIONS)
-# define ACE_APPLICATION_PREALLOCATED_ARRAY_DEFINITIONS
-#endif /* ACE_APPLICATION_PREALLOCATED_ARRAY_DEFINITIONS */
-
-#if ! defined (ACE_APPLICATION_PREALLOCATED_OBJECT_DELETIONS)
-# define ACE_APPLICATION_PREALLOCATED_OBJECT_DELETIONS
-#endif /* ACE_APPLICATION_PREALLOCATED_OBJECT_DELETIONS */
-
-#if ! defined (ACE_APPLICATION_PREALLOCATED_ARRAY_DELETIONS)
-# define ACE_APPLICATION_PREALLOCATED_ARRAY_DELETIONS
-#endif /* ACE_APPLICATION_PREALLOCATED_ARRAY_DELETIONS */
-
-// Singleton pointer.
-ACE_Object_Manager *ACE_Object_Manager::instance_ = 0;
-
-void *ACE_Object_Manager::preallocated_object[
- ACE_Object_Manager::ACE_PREALLOCATED_OBJECTS] = { 0 };
-
-void *ACE_Object_Manager::preallocated_array[
- ACE_Object_Manager::ACE_PREALLOCATED_ARRAYS] = { 0 };
-
-// Handy macros for use by ACE_Object_Manager constructor to
-// preallocate or delete an object or array, either statically (in
-// global data) or dynamically (on the heap).
-#if defined (ACE_HAS_STATIC_PREALLOCATION)
-# define ACE_PREALLOCATE_OBJECT(TYPE, ID)\
- {\
- static ACE_Cleanup_Adapter<TYPE> obj;\
- preallocated_object[ID] = &obj;\
- }
-# define ACE_PREALLOCATE_ARRAY(TYPE, ID, COUNT)\
- {\
- static ACE_Cleanup_Adapter<TYPE> obj[COUNT];\
- preallocated_array[ID] = &obj;\
- }
-#else
-# define ACE_PREALLOCATE_OBJECT(TYPE, ID)\
- {\
- ACE_Cleanup_Adapter<TYPE> *obj_p;\
- ACE_NEW_RETURN (obj_p, ACE_Cleanup_Adapter<TYPE>, -1);\
- preallocated_object[ID] = obj_p;\
- }
-# define ACE_PREALLOCATE_ARRAY(TYPE, ID, COUNT)\
- {\
- ACE_Cleanup_Adapter<TYPE[COUNT]> *array_p;\
- ACE_NEW_RETURN (array_p, ACE_Cleanup_Adapter<TYPE[COUNT]>, -1);\
- preallocated_array[ID] = array_p;\
- }
-# define ACE_DELETE_PREALLOCATED_OBJECT(TYPE, ID)\
- ace_cleanup_destroyer (\
- (ACE_Cleanup_Adapter<TYPE> *) preallocated_object[ID], 0);\
- preallocated_object[ID] = 0;
-# define ACE_DELETE_PREALLOCATED_ARRAY(TYPE, ID, COUNT)\
- delete (ACE_Cleanup_Adapter<TYPE[COUNT]> *) preallocated_array[ID];\
- preallocated_array[ID] = 0;
-#endif /* ACE_HAS_STATIC_PREALLOCATION */
-
-#if !defined (ACE_LACKS_ACE_SVCCONF)
-
-/**
- * @class ACE_Object_Manager_Preallocations
- *
- * @brief Performs preallocations of certain statically allocated services
- * needed by ACE.
- */
-class ACE_Object_Manager_Preallocations
-{
-public:
- ACE_Object_Manager_Preallocations (void);
- ~ACE_Object_Manager_Preallocations (void);
-
-private:
- ACE_Static_Svc_Descriptor ace_svc_desc_ACE_Service_Manager;
-};
-
-// We can't use the ACE_SVC_FACTORY_DECLARE macro here because this
-// needs to be in the ACE_Export context rather than the
-// ACE_Svc_Export context.
-//extern "C" ACE_Export
-//ACE_Service_Object *
-//_make_ACE_Service_Manager (ACE_Service_Object_Exterminator *);
-
-ACE_Object_Manager_Preallocations::ACE_Object_Manager_Preallocations (void)
-{
- ACE_STATIC_SVC_DEFINE (ACE_Service_Manager_initializer,
- ACE_LIB_TEXT ("ACE_Service_Manager"),
- ACE_SVC_OBJ_T,
- &ACE_SVC_NAME (ACE_Service_Manager),
- ACE_Service_Type::DELETE_THIS |
- ACE_Service_Type::DELETE_OBJ,
- 0)
-
- // Initialize the static service objects using the descriptors created
- // above.
- ace_svc_desc_ACE_Service_Manager =
- ace_svc_desc_ACE_Service_Manager_initializer;
-
- // Add to the list of static configured services.
- ACE_Service_Config::static_svcs ()->
- insert (&ace_svc_desc_ACE_Service_Manager);
-}
-
-ACE_Object_Manager_Preallocations::~ACE_Object_Manager_Preallocations (void)
-{
-}
-
-#endif /* ! ACE_LACKS_ACE_SVCCONF */
-
-int
-ACE_Object_Manager::starting_up (void)
-{
- return ACE_Object_Manager::instance_ ? instance_->starting_up_i () : 1;
-}
-
-int
-ACE_Object_Manager::shutting_down (void)
-{
- return ACE_Object_Manager::instance_ ? instance_->shutting_down_i () : 1;
-}
-
-#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS)
-// Instead of popping up a window for exceptions, just print something out
-LONG _stdcall ACE_UnhandledExceptionFilter (PEXCEPTION_POINTERS pExceptionInfo)
-{
- DWORD dwExceptionCode = pExceptionInfo->ExceptionRecord->ExceptionCode;
-
- if (dwExceptionCode == EXCEPTION_ACCESS_VIOLATION)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("\nERROR: ACCESS VIOLATION\n")));
- else
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("\nERROR: UNHANDLED EXCEPTION\n")));
-
- return EXCEPTION_EXECUTE_HANDLER;
-}
-#endif /* ACE_DISABLE_WIN32_ERROR_WINDOWS */
-
-// Initialize an ACE_Object_Manager. There can be instances of this object
-// other than The Instance. This can happen if a user creates one for some
-// reason. All objects set up their per-object information and managed
-// objects, but only The Instance sets up the static preallocated objects and
-// the (static) ACE_Service_Config signal handler.
-int
-ACE_Object_Manager::init (void)
-{
- if (starting_up_i ())
- {
- // First, indicate that the ACE_Object_Manager instance is being
- // initialized.
- object_manager_state_ = OBJ_MAN_INITIALIZING;
-
- // Only The Instance sets up with ACE_OS_Object_Manager and initializes
- // the preallocated objects.
- if (this == instance_)
- {
- // Make sure that the ACE_OS_Object_Manager has been created,
- // and register with it for chained fini ().
- ACE_OS_Object_Manager::instance ()->next_ = this;
-
-# if defined (ACE_HAS_BUILTIN_ATOMIC_OP)
- ACE_Atomic_Op<ACE_Thread_Mutex, long>::init_functions ();
-# endif /* ACE_HAS_BUILTIN_ATOMIC_OP */
-
-# if !defined (ACE_LACKS_ACE_SVCCONF)
- // Construct the ACE_Service_Config's signal handler.
- ACE_NEW_RETURN (ace_service_config_sig_handler_,
- ACE_Sig_Adapter (&ACE_Service_Config::handle_signal), -1);
- ACE_Service_Config::signal_handler (ace_service_config_sig_handler_);
-# endif /* ! ACE_LACKS_ACE_SVCCONF */
-
- // Allocate the preallocated (hard-coded) object instances.
- ACE_PREALLOCATE_OBJECT (ACE_SYNCH_RW_MUTEX, ACE_FILECACHE_LOCK)
-# if defined (ACE_HAS_THREADS)
- ACE_PREALLOCATE_OBJECT (ACE_Recursive_Thread_Mutex,
- ACE_STATIC_OBJECT_LOCK)
-# endif /* ACE_HAS_THREADS */
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- ACE_PREALLOCATE_OBJECT (ACE_Thread_Mutex,
- ACE_MT_CORBA_HANDLER_LOCK)
- ACE_PREALLOCATE_OBJECT (ACE_Thread_Mutex, ACE_DUMP_LOCK)
- ACE_PREALLOCATE_OBJECT (ACE_Recursive_Thread_Mutex,
- ACE_SIG_HANDLER_LOCK)
- ACE_PREALLOCATE_OBJECT (ACE_Null_Mutex, ACE_SINGLETON_NULL_LOCK)
- ACE_PREALLOCATE_OBJECT (ACE_Recursive_Thread_Mutex,
- ACE_SINGLETON_RECURSIVE_THREAD_LOCK)
- ACE_PREALLOCATE_OBJECT (ACE_Thread_Mutex, ACE_THREAD_EXIT_LOCK)
-#if !defined (ACE_LACKS_ACE_TOKEN) && defined (ACE_HAS_TOKENS_LIBRARY)
- ACE_PREALLOCATE_OBJECT (ACE_TOKEN_CONST::MUTEX,
- ACE_TOKEN_MANAGER_CREATION_LOCK)
- ACE_PREALLOCATE_OBJECT (ACE_TOKEN_CONST::MUTEX,
- ACE_TOKEN_INVARIANTS_CREATION_LOCK)
-#endif /* ! ACE_LACKS_ACE_TOKEN && ACE_HAS_TOKENS_LIBRARY */
- ACE_PREALLOCATE_OBJECT (ACE_Thread_Mutex,
- ACE_PROACTOR_EVENT_LOOP_LOCK)
-# endif /* ACE_MT_SAFE */
- }
-
- if (this == instance_)
- {
- // Hooks for preallocated objects and arrays provided by application.
- ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS
- ACE_APPLICATION_PREALLOCATED_ARRAY_DEFINITIONS
-
-# if defined (ACE_HAS_TSS_EMULATION)
- // Initialize the main thread's TS storage.
- ACE_TSS_Emulation::tss_open (ts_storage_);
-# endif /* ACE_HAS_TSS_EMULATION */
-
-#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS)
-#if defined (_DEBUG) && defined (_MSC_VER)
- // This will keep the ACE_Assert window
- _CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE );
- _CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDERR );
-#endif /* _DEBUG && _MSC_VER */
-
- // And this will catch all unhandled exceptions.
- SetUnhandledExceptionFilter (&ACE_UnhandledExceptionFilter);
-#endif /* ACE_DISABLE_WIN32_ERROR_WINDOWS */
-
-
-
-# if !defined (ACE_LACKS_ACE_SVCCONF)
- ACE_NEW_RETURN (preallocations_,
- ACE_Object_Manager_Preallocations,
- -1);
-# endif /* ! ACE_LACKS_ACE_SVCCONF */
-
- // Open the main thread's ACE_Log_Msg.
- if (NULL == ACE_LOG_MSG)
- return -1;
- }
-
- // Finally, indicate that the ACE_Object_Manager instance has
- // been initialized.
- object_manager_state_ = OBJ_MAN_INITIALIZED;
-
- // Allow tracing again (useful if user does init/fini/init)
- ACE_Trace::start_tracing ();
-
- return 0;
- } else {
- // Had already initialized.
- return 1;
- }
-}
-
-ACE_Object_Manager::ACE_Object_Manager (void)
- // With ACE_HAS_TSS_EMULATION, ts_storage_ is initialized by the call to
- // ACE_OS::tss_open () in the function body.
- : exit_info_ ()
-#if !defined (ACE_LACKS_ACE_SVCCONF)
- , preallocations_ (0)
- , ace_service_config_sig_handler_ (0)
-#endif /* ! ACE_LACKS_ACE_SVCCONF */
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- , singleton_null_lock_ (0)
- , singleton_recursive_lock_ (0)
-# endif /* ACE_MT_SAFE */
-{
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- ACE_NEW (internal_lock_, ACE_Recursive_Thread_Mutex);
-# endif /* ACE_MT_SAFE */
-
- // If instance_ was not 0, then another ACE_Object_Manager has
- // already been instantiated (it is likely to be one initialized by way
- // of library/DLL loading). Let this one go through construction in
- // case there really is a good reason for it (like, ACE is a static/archive
- // library, and this one is the non-static instance (with
- // ACE_HAS_NONSTATIC_OBJECT_MANAGER, or the user has a good reason for
- // creating a separate one) but the original one will be the one retrieved
- // from calls to ACE_Object_Manager::instance().
-
- // Be sure that no further instances are created via instance ().
- if (instance_ == 0)
- instance_ = this;
-
- init ();
-}
-
-ACE_Object_Manager::~ACE_Object_Manager (void)
-{
- dynamically_allocated_ = 0; // Don't delete this again in fini()
- fini ();
-}
-
-ACE_Object_Manager *
-ACE_Object_Manager::instance (void)
-{
- // This function should be called during construction of static
- // instances, or before any other threads have been created in
- // the process. So, it's not thread safe.
-
- if (instance_ == 0)
- {
- ACE_Object_Manager *instance_pointer;
-
- ACE_NEW_RETURN (instance_pointer,
- ACE_Object_Manager,
- 0);
- ACE_ASSERT (instance_pointer == instance_);
-
- instance_pointer->dynamically_allocated_ = 1;
-
- return instance_pointer;
- }
- else
- return instance_;
-}
-
-int
-ACE_Object_Manager::at_exit_i (void *object,
- ACE_CLEANUP_FUNC cleanup_hook,
- void *param)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *instance_->internal_lock_, -1));
-
- if (shutting_down_i ())
- {
- errno = EAGAIN;
- return -1;
- }
-
- if (exit_info_.find (object))
- {
- // The object has already been registered.
- errno = EEXIST;
- return -1;
- }
-
- return exit_info_.at_exit_i (object, cleanup_hook, param);
-}
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-
-int
-ACE_Object_Manager::get_singleton_lock (ACE_Null_Mutex *&lock)
-{
- if (starting_up () || shutting_down ())
- {
- // The preallocated lock has not been constructed yet.
- // Therefore, the program is single-threaded at this point. Or,
- // the ACE_Object_Manager instance has been destroyed, so the
- // preallocated lock is not available. Allocate a lock to use,
- // for interface compatibility, though there should be no
- // contention on it.
- if (ACE_Object_Manager::instance ()->singleton_null_lock_ == 0)
- {
- ACE_NEW_RETURN (ACE_Object_Manager::instance ()->
- singleton_null_lock_,
- ACE_Cleanup_Adapter<ACE_Null_Mutex>,
- -1);
-
- // Can't register with the ACE_Object_Manager here! The
- // lock's declaration is visible to the ACE_Object_Manager
- // destructor, so it will clean it up as a special case.
- }
-
- if (ACE_Object_Manager::instance ()->singleton_null_lock_ != 0)
- lock = &ACE_Object_Manager::instance ()->singleton_null_lock_->
- object ();
- }
- else
- // Use the Object_Manager's preallocated lock.
- lock = ACE_Managed_Object<ACE_Null_Mutex>::get_preallocated_object
- (ACE_Object_Manager::ACE_SINGLETON_NULL_LOCK);
-
- return 0;
-}
-
-int
-ACE_Object_Manager::get_singleton_lock (ACE_Thread_Mutex *&lock)
-{
- if (lock == 0)
- {
- if (starting_up () || shutting_down ())
- {
- // The Object_Manager and its internal lock have not been
- // constructed yet. Therefore, the program is single-
- // threaded at this point. Or, the ACE_Object_Manager
- // instance has been destroyed, so the internal lock is not
- // available. Either way, we can not use double-checked
- // locking. So, we'll leak the lock.
- ACE_NEW_RETURN (lock,
- ACE_Thread_Mutex,
- -1);
- }
- else
- {
- // Allocate a new lock, but use double-checked locking to
- // ensure that only one thread allocates it.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex,
- ace_mon,
- *ACE_Object_Manager::instance ()->
- internal_lock_,
- -1));
-
- if (lock == 0)
- {
- ACE_Cleanup_Adapter<ACE_Thread_Mutex> *lock_adapter;
- ACE_NEW_RETURN (lock_adapter,
- ACE_Cleanup_Adapter<ACE_Thread_Mutex>,
- -1);
- lock = &lock_adapter->object ();
-
- // Register the lock for destruction at program
- // termination. This call will cause us to grab the
- // ACE_Object_Manager::instance ()->internal_lock_
- // again; that's why it is a recursive lock.
- ACE_Object_Manager::at_exit (lock_adapter);
- }
- }
- }
-
- return 0;
-}
-
-int
-ACE_Object_Manager::get_singleton_lock (ACE_Mutex *&lock)
-{
- if (lock == 0)
- {
- if (starting_up () || shutting_down ())
- {
- // The Object_Manager and its internal lock have not been
- // constructed yet. Therefore, the program is single-
- // threaded at this point. Or, the ACE_Object_Manager
- // instance has been destroyed, so the internal lock is not
- // available. Either way, we can not use double-checked
- // locking. So, we'll leak the lock.
-
- ACE_NEW_RETURN (lock,
- ACE_Mutex,
- -1);
- }
- else
- {
- // Allocate a new lock, but use double-checked locking to
- // ensure that only one thread allocates it.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex,
- ace_mon,
- *ACE_Object_Manager::instance ()->
- internal_lock_,
- -1));
-
- if (lock == 0)
- {
- ACE_Cleanup_Adapter<ACE_Mutex> *lock_adapter;
- ACE_NEW_RETURN (lock_adapter,
- ACE_Cleanup_Adapter<ACE_Mutex>,
- -1);
- lock = &lock_adapter->object ();
-
- // Register the lock for destruction at program
- // termination. This call will cause us to grab the
- // ACE_Object_Manager::instance ()->internal_lock_
- // again; that's why it is a recursive lock.
- ACE_Object_Manager::at_exit (lock_adapter);
- }
- }
- }
-
- return 0;
-}
-
-int
-ACE_Object_Manager::get_singleton_lock (ACE_Recursive_Thread_Mutex *&lock)
-{
- if (starting_up () || shutting_down ())
- {
- // The preallocated lock has not been constructed yet.
- // Therefore, the program is single-threaded at this point. Or,
- // the ACE_Object_Manager instance has been destroyed, so the
- // preallocated lock is not available. Allocate a lock to use,
- // for interface compatibility, though there should be no
- // contention on it.
- if (ACE_Object_Manager::instance ()->singleton_recursive_lock_ == 0)
- ACE_NEW_RETURN (ACE_Object_Manager::instance ()->
- singleton_recursive_lock_,
- ACE_Cleanup_Adapter<ACE_Recursive_Thread_Mutex>,
- -1);
-
- // Can't register with the ACE_Object_Manager here! The lock's
- // declaration is visible to the ACE_Object_Manager destructor,
- // so it will clean it up as a special case.
-
- if (ACE_Object_Manager::instance ()->singleton_recursive_lock_ != 0)
- lock = &ACE_Object_Manager::instance ()->singleton_recursive_lock_->
- object ();
- }
- else
- {
- // Use the Object_Manager's preallocated lock.
- lock = ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::
- get_preallocated_object (ACE_Object_Manager::
- ACE_SINGLETON_RECURSIVE_THREAD_LOCK);
- }
-
- return 0;
-}
-
-int
-ACE_Object_Manager::get_singleton_lock (ACE_RW_Thread_Mutex *&lock)
-{
- if (lock == 0)
- {
- if (starting_up () || shutting_down ())
- {
- // The Object_Manager and its internal lock have not been
- // constructed yet. Therefore, the program is single-
- // threaded at this point. Or, the ACE_Object_Manager
- // instance has been destroyed, so the internal lock is not
- // available. Either way, we can not use double-checked
- // locking. So, we'll leak the lock.
-
- ACE_NEW_RETURN (lock,
- ACE_RW_Thread_Mutex,
- -1);
- }
- else
- {
- // Allocate a new lock, but use double-checked locking to
- // ensure that only one thread allocates it.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex,
- ace_mon,
- *ACE_Object_Manager::instance ()->
- internal_lock_,
- -1));
-
- if (lock == 0)
- {
- ACE_Cleanup_Adapter<ACE_RW_Thread_Mutex> *lock_adapter;
- ACE_NEW_RETURN (lock_adapter,
- ACE_Cleanup_Adapter<ACE_RW_Thread_Mutex>,
- -1);
- lock = &lock_adapter->object ();
-
-
- // Register the lock for destruction at program
- // termination. This call will cause us to grab the
- // ACE_Object_Manager::instance ()->internal_lock_
- // again; that's why it is a recursive lock.
- ACE_Object_Manager::at_exit (lock_adapter);
- }
- }
- }
-
- return 0;
-}
-#endif /* ACE_MT_SAFE */
-
-// NOTE: this function needs to appear _after_ the
-// get_singleton_lock () functions in order to compile with
-// g++ 2.7.2.3.
-//
-// Clean up an ACE_Object_Manager. There can be instances of this object
-// other than The Instance. This can happen if (on Win32) the ACE DLL
-// causes one to be created, or if a user creates one for some reason.
-// Only The Instance cleans up the static preallocated objects. All objects
-// clean up their per-object information and managed objects.
-int
-ACE_Object_Manager::fini (void)
-{
- if (shutting_down_i ())
- // Too late. Or, maybe too early. Either fini () has already
- // been called, or init () was never called.
- return object_manager_state_ == OBJ_MAN_SHUT_DOWN ? 1 : -1;
-
- // No mutex here. Only the main thread should destroy the singleton
- // ACE_Object_Manager instance.
-
- // First, indicate that this ACE_Object_Manager instance is being
- // shut down.
- object_manager_state_ = OBJ_MAN_SHUTTING_DOWN;
-
- // Call all registered cleanup hooks, in reverse order of
- // registration.
- exit_info_.call_hooks ();
-
- if (this == instance_)
- {
-#if !defined (ACE_LACKS_ACE_SVCCONF)
- delete preallocations_;
- preallocations_ = 0;
-#endif /* ! ACE_LACKS_ACE_SVCCONF */
-
- ACE_Trace::stop_tracing ();
-
-#if !defined (ACE_LACKS_ACE_SVCCONF)
- // Close and possibly delete all service instances in the Service
- // Repository.
- ACE_Service_Config::fini_svcs ();
-
- // Unlink all services in the Service Repository and close/delete
- // all ACE library services and singletons.
- ACE_Service_Config::close ();
-#endif /* ! ACE_LACKS_ACE_SVCCONF */
-
- // This must come after closing ACE_Service_Config, since it will
- // close down it's dlls--it manages ACE_DLL_Manager.
- ACE_Framework_Repository::close_singleton ();
-
-# if ! defined (ACE_THREAD_MANAGER_LACKS_STATICS)
- ACE_Thread_Manager::close_singleton ();
-# endif /* ! ACE_THREAD_MANAGER_LACKS_STATICS */
-
- // Close the main thread's TSS, including its Log_Msg instance.
- ACE_OS::cleanup_tss (1 /* main thread */);
-
- //
- // Note: Do not access Log Msg after this since it is gone
- //
-
- // Close the ACE_Allocator.
- ACE_Allocator::close_singleton ();
-
-#if ! defined (ACE_HAS_STATIC_PREALLOCATION)
- // Hooks for deletion of preallocated objects and arrays provided by
- // application.
- ACE_APPLICATION_PREALLOCATED_ARRAY_DELETIONS
- ACE_APPLICATION_PREALLOCATED_OBJECT_DELETIONS
-
- // Cleanup the dynamically preallocated arrays.
- // (none)
-
- // Cleanup the dynamically preallocated objects.
- ACE_DELETE_PREALLOCATED_OBJECT (ACE_SYNCH_RW_MUTEX, ACE_FILECACHE_LOCK)
-#if defined (ACE_HAS_THREADS)
- ACE_DELETE_PREALLOCATED_OBJECT (ACE_Recursive_Thread_Mutex,
- ACE_STATIC_OBJECT_LOCK)
-#endif /* ACE_HAS_THREADS */
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- ACE_DELETE_PREALLOCATED_OBJECT (ACE_Thread_Mutex,
- ACE_MT_CORBA_HANDLER_LOCK)
- ACE_DELETE_PREALLOCATED_OBJECT (ACE_Thread_Mutex, ACE_DUMP_LOCK)
- ACE_DELETE_PREALLOCATED_OBJECT (ACE_Recursive_Thread_Mutex,
- ACE_SIG_HANDLER_LOCK)
- ACE_DELETE_PREALLOCATED_OBJECT (ACE_Null_Mutex,
- ACE_SINGLETON_NULL_LOCK)
- ACE_DELETE_PREALLOCATED_OBJECT (ACE_Recursive_Thread_Mutex,
- ACE_SINGLETON_RECURSIVE_THREAD_LOCK)
- ACE_DELETE_PREALLOCATED_OBJECT (ACE_Thread_Mutex, ACE_THREAD_EXIT_LOCK)
-#if !defined (ACE_LACKS_ACE_TOKEN) && defined (ACE_HAS_TOKENS_LIBRARY)
- ACE_DELETE_PREALLOCATED_OBJECT (ACE_TOKEN_CONST::MUTEX,
- ACE_TOKEN_MANAGER_CREATION_LOCK)
- ACE_DELETE_PREALLOCATED_OBJECT (ACE_TOKEN_CONST::MUTEX,
- ACE_TOKEN_INVARIANTS_CREATION_LOCK)
-#endif /* ! ACE_LACKS_ACE_TOKEN && ACE_HAS_TOKENS_LIBRARY */
- ACE_DELETE_PREALLOCATED_OBJECT (ACE_Thread_Mutex,
- ACE_PROACTOR_EVENT_LOOP_LOCK)
-# endif /* ACE_MT_SAFE */
-#endif /* ! ACE_HAS_STATIC_PREALLOCATION */
-
-#if defined (ACE_HAS_THREADS)
- ACE_Static_Object_Lock::cleanup_lock ();
-#endif /* ACE_HAS_THREADS */
- }
-
-#if !defined (ACE_LACKS_ACE_SVCCONF)
- delete ace_service_config_sig_handler_;
- ace_service_config_sig_handler_ = 0;
-#endif /* ! ACE_LACKS_ACE_SVCCONF */
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- delete internal_lock_;
- internal_lock_ = 0;
-
- delete singleton_null_lock_;
- singleton_null_lock_ = 0;
-
- delete singleton_recursive_lock_;
- singleton_recursive_lock_ = 0;
-#endif /* ACE_MT_SAFE */
-
- // Indicate that this ACE_Object_Manager instance has been shut down.
- object_manager_state_ = OBJ_MAN_SHUT_DOWN;
-
- // Then, ensure that the ACE_OS_Object_Manager gets shut down.
- if (this == instance_ && ACE_OS_Object_Manager::instance_)
- ACE_OS_Object_Manager::instance_->fini ();
-
- if (dynamically_allocated_)
- {
- delete this;
- }
-
- if (this == instance_)
- instance_ = 0;
-
- return 0;
-}
-
-
-#if !defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER)
-/**
- * @class ACE_Object_Manager_Manager
- *
- * @brief Ensure that the <ACE_Object_Manager> gets initialized at program
- * startup, and destroyed at program termination.
- *
- * Without ACE_HAS_NONSTATIC_OBJECT_MANAGER, a static instance of this
- * class is created. Therefore, it gets created before main ()
- * is called. And it gets destroyed after main () returns.
- */
-class ACE_Export ACE_Object_Manager_Manager
-{
-public:
- ACE_Object_Manager_Manager (void);
- ~ACE_Object_Manager_Manager (void);
-
-private:
- /// Save the main thread ID, so that destruction can be suppressed.
- ACE_thread_t saved_main_thread_id_;
-};
-
-ACE_Object_Manager_Manager::ACE_Object_Manager_Manager (void)
- : saved_main_thread_id_ (ACE_OS::thr_self ())
-{
- // Ensure that the Object_Manager gets initialized before any
- // application threads have been spawned. Because this will be called
- // during construction of static objects, that should always be the
- // case.
- (void) ACE_Object_Manager::instance ();
-}
-
-ACE_Object_Manager_Manager::~ACE_Object_Manager_Manager (void)
-{
- if (ACE_OS::thr_equal (ACE_OS::thr_self (),
- saved_main_thread_id_))
- {
- delete ACE_Object_Manager::instance_;
- ACE_Object_Manager::instance_ = 0;
- }
- // else if this destructor is not called by the main thread, then do
- // not delete the ACE_Object_Manager. That causes problems, on
- // WIN32 at least.
-}
-
-static ACE_Object_Manager_Manager ACE_Object_Manager_Manager_instance;
-#endif /* ! ACE_HAS_NONSTATIC_OBJECT_MANAGER */
-
-#if defined (ACE_HAS_THREADS)
-
-// hack to get around errors while compiling using split-cpp
-#if !defined (ACE_IS_SPLITTING)
-// This is global so that it doesn't have to be declared in the header
-// file. That would cause nasty circular include problems.
-typedef ACE_Cleanup_Adapter<ACE_Recursive_Thread_Mutex> ACE_Static_Object_Lock_Type;
-static ACE_Static_Object_Lock_Type *ACE_Static_Object_Lock_lock = 0;
-#endif /* ! ACE_IS_SPLITTING */
-
-// ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK isn't (currently) used by ACE.
-// But, applications may find it useful for avoiding recursive calls
-// if they have overridden operator new. Thanks to Jody Hagins
-// <jody@atdesk.com> for contributing it.
-
-ACE_Recursive_Thread_Mutex *
-ACE_Static_Object_Lock::instance (void)
-{
- if (ACE_Object_Manager::starting_up () ||
- ACE_Object_Manager::shutting_down ())
- {
- // The preallocated ACE_STATIC_OBJECT_LOCK has not been
- // constructed yet. Therefore, the program is single-threaded
- // at this point. Or, the ACE_Object_Manager instance has been
- // destroyed, so the preallocated lock is not available.
- // Allocate a lock to use, for interface compatibility, though
- // there should be no contention on it.
- if (ACE_Static_Object_Lock_lock == 0)
- {
-# if defined (ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK)
- // Allocate a buffer with malloc, and then use placement
- // new for the object, on the malloc'd buffer.
- void *buffer =
- ACE_OS::malloc (sizeof (*ACE_Static_Object_Lock_lock));
- if (buffer == 0)
- {
- return 0;
- }
- ACE_NEW_RETURN (ACE_Static_Object_Lock_lock,
- (buffer) ACE_Static_Object_Lock_Type (),
- 0);
-# else /* ! ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK */
- ACE_NEW_RETURN (ACE_Static_Object_Lock_lock,
- ACE_Cleanup_Adapter<ACE_Recursive_Thread_Mutex>,
- 0);
-# endif /* ! ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK */
- }
-
- // Can't register with the ACE_Object_Manager here! The lock's
- // declaration is visible to the ACE_Object_Manager destructor,
- // so it will clean it up as a special case.
-
- return &ACE_Static_Object_Lock_lock->object ();
- }
- else
- // Return the preallocated ACE_STATIC_OBJECT_LOCK.
- return
- ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
- (ACE_Object_Manager::ACE_STATIC_OBJECT_LOCK);
-}
-
-void
-ACE_Static_Object_Lock::cleanup_lock (void)
-{
-# if defined(ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK)
- // It was malloc'd, so we need to explicitly call the dtor
- // and then free the memory.
- ACE_DES_FREE (ACE_Static_Object_Lock_lock,
- ACE_OS::free,
- ACE_Static_Object_Lock_Type);
-# else /* ! ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK */
- delete ACE_Static_Object_Lock_lock;
-# endif /* ! ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK */
- ACE_Static_Object_Lock_lock = 0;
-}
-#endif /* ACE_HAS_THREADS */
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- template class ACE_Cleanup_Adapter<ACE_Null_Mutex>;
- template class ACE_Cleanup_Adapter<ACE_Mutex>;
- template class ACE_Cleanup_Adapter<ACE_Recursive_Thread_Mutex>;
- template class ACE_Cleanup_Adapter<ACE_Thread_Mutex>;
- template class ACE_Managed_Object<ACE_Null_Mutex>;
- template class ACE_Managed_Object<ACE_Mutex>;
- template class ACE_Managed_Object<ACE_Recursive_Thread_Mutex>;
- template class ACE_Managed_Object<ACE_Thread_Mutex>;
-# endif /* ACE_MT_SAFE */
- template class ACE_Cleanup_Adapter<ACE_SYNCH_RW_MUTEX>;
- template class ACE_Managed_Object<ACE_SYNCH_RW_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-# pragma instantiate ACE_Cleanup_Adapter<ACE_Null_Mutex>
-# pragma instantiate ACE_Cleanup_Adapter<ACE_Mutex>
-# pragma instantiate ACE_Cleanup_Adapter<ACE_Recursive_Thread_Mutex>
-# pragma instantiate ACE_Cleanup_Adapter<ACE_Thread_Mutex>
-# pragma instantiate ACE_Managed_Object<ACE_Null_Mutex>
-# pragma instantiate ACE_Managed_Object<ACE_Mutex>
-# pragma instantiate ACE_Managed_Object<ACE_Recursive_Thread_Mutex>
-# pragma instantiate ACE_Managed_Object<ACE_Thread_Mutex>
-# endif /* ACE_MT_SAFE */
-# pragma instantiate ACE_Cleanup_Adapter<ACE_SYNCH_RW_MUTEX>
-# pragma instantiate ACE_Managed_Object<ACE_SYNCH_RW_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Object_Manager.h b/ace/Object_Manager.h
deleted file mode 100644
index d8e4abc80b8..00000000000
--- a/ace/Object_Manager.h
+++ /dev/null
@@ -1,480 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Object_Manager.h
- *
- * $Id$
- *
- * @author David L. Levine <levine@cs.wustl.edu>
- * @author Matthias Kerkhoff
- * @author and Per Andersson
- */
-//=============================================================================
-
-#ifndef ACE_OBJECT_MANAGER_H
-#define ACE_OBJECT_MANAGER_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Forward declarations.
-class ACE_Object_Manager_Preallocations;
-class ACE_Sig_Adapter;
-class ACE_Sig_Set;
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- class ACE_Mutex;
- class ACE_Null_Mutex;
- class ACE_Thread_Mutex;
- class ACE_Recursive_Thread_Mutex;
- class ACE_RW_Thread_Mutex;
-#endif /* ACE_MT_SAFE */
-
-class ACE_Cleanup_Info_Node;
-template <class T> class ACE_Cleanup_Adapter;
-
-
-// Configuration parameters.
-#if !defined (ACE_MAX_MANAGED_OBJECTS)
-# define ACE_MAX_MANAGED_OBJECTS 128
-#endif /* ! ACE_MAX_MANAGED_OBJECTS */
-
-#if !defined (ACE_APPLICATION_PREALLOCATED_OBJECT_DECLARATIONS)
-# define ACE_APPLICATION_PREALLOCATED_OBJECT_DECLARATIONS
-#endif /* ! ACE_APPLICATION_PREALLOCATED_OBJECT_DECLARATIONS */
-
-#if !defined (ACE_APPLICATION_PREALLOCATED_ARRAY_DECLARATIONS)
-# define ACE_APPLICATION_PREALLOCATED_ARRAY_DECLARATIONS
-#endif /* ! ACE_APPLICATION_PREALLOCATED_ARRAY_DECLARATIONS */
-
-
-/**
- * @class ACE_Object_Manager
- *
- * @brief Manager for ACE library services and singleton cleanup.
- *
- * The <ACE_Object_Manager> manages cleanup of objects, typically
- * singletons, at program termination. In addition to managing
- * the cleanup of the ACE library, it provides an interface for
- * application to register objects to be cleaned up.
- * This class also shuts down ACE library services, so that they
- * can reclaim their storage, at program termination. It works
- * by creating a static instance whose destructor gets called
- * along with those of all other static objects. Hooks are
- * provided for application code to register objects and arrays
- * for cleanup, e.g., destruction. The order of such cleanup
- * calls is in the reverse order of registration, i.e., that
- * last object/array to register gets cleaned up first.
- * The <ACE_Object_Manager> API includes <ACE_Managed_Object>. That
- * class is contained in a separate file because it is a
- * template class, and some compilers require that template and
- * non-template class definitions appear in separate files.
- * Please see ace/Managed_Object.h for a description of that
- * part of the API. In summary, <ACE_Managed_Object> provides two
- * adapters, the <ACE_Cleanup_Adapter> and <ACE_Managed_Object>
- * template classes for adapting objects of any type to be
- * easily managed by the <ACE_Object_Manager>. There are several
- * mechanisms for adapting objects and arrays for cleanup at
- * program termination, in roughly increasing order of ease-of-use:
- * 1) Derive the object's class from <ACE_Cleanup>.
- * 2) Allow the <ACE_Object_Manager> to both dynamically allocate
- * and deallocate the object.
- * 3) Provide an <ACE_CLEANUP_FUNC> cleanup hook for the object or
- * array.
- * 4) Allow the <ACE_Object_Manager> to both preallocate the object
- * or array, either statically in global data or dynamically on
- * the heap, when its singleton instance is construction.
- *
- * There are also several mechanisms for registering objects and
- * arrays for cleanup. In decreasing order of flexibility and
- * complexity (with the exception of the last mechanism):
- *
- * 1) ACE_Object_Manager::at_exit (void *object,
- * ACE_CLEANUP_FUNC cleanup_hook,
- * void *param);
- * can be used to register any object or array for any
- * cleanup activity at program termination.
- * 2) ACE_Object_Manager::at_exit (ACE_Cleanup *object,
- * void *param = 0);
- * can be used to register an <ACE_Cleanup> object
- * for any cleanup activity at program termination.
- * The final mechanism is not general purpose, but can only
- * be used to allocate objects and arrays at program startup:
- * 3) ACE_Managed_Object::get_preallocated_object
- * (ACE_Object_Manager::Preallocated_Object id);
- * and
- * ACE_Managed_Object::get_preallocated_array
- * (ACE_Object_Manager::Preallocated_Array id);
- * can only be used to allocate objects at program startup,
- * either in global data or on the heap (selected at compile
- * time). These are intended to replace static locks, etc.
- * Instead of creating a static <ACE_Object_Manager> instance, one
- * can alternatively be created on the stack of the main program
- * thread. It is created just after entry to ::main (int, char
- * *[]), and before any existing code in that function is
- * executed. To enable this alternative, add #define
- * ACE_HAS_NONSTATIC_OBJECT_MANAGER before including the platform
- * specific config-* file in ace/config.h prior to
- * building the ACE library and your applications. This #define
- * is enabled in some config files that are supplied with ACE.
- *
- * To ensure a static object manager is used, #undef
- * ACE_HAS_NONSTATIC_OBJECT_MANAGER *after* including the platform
- * specific config-* file.
- * Note that the ACE_Object_Manager _must_ be created before
- * any threads are spawned by the program.
- * If ACE_HAS_NONSTATIC_OBJECT_MANAGER is not #defined, the ACE
- * library creates a static, singleton <ACE_Object_Manager> instance.
- * The instance is placed in global program data, and constructed
- * via a static object constructor. If ACE_HAS_NONSTATIC_OBJECT_MANAGER
- * is #defined, the <ACE_Object_Manager> instance is created on the stack
- * of the main program thread, as noted above.
- *
- * With ACE_HAS_NONSTATIC_OBJECT_MANAGER enabled, the ACE
- * library has no static objects that require destruction.
- * However, there are two drawbacks to using it:
- * 1) main (int, char *[]) must be declared with arguments, even
- * if they're not used. All of ACE is converted to this, so
- * just applications have to be concerned with it.
- * 2) If there any static objects that depend on those that are
- * cleaned up by the Object_Manager, they'll get cleaned up too
- * late. The ACE tests do not violate this requirement.
- * However, applications may have trouble with it.
- * NOTE on the use of <::exit> -- <::exit> does not destroy
- * automatic objects. Therefore, if
- * ACE_HAS_NONSTATIC_OBJECT_MANAGER is enabled, the
- * <ACE_Object_Manager> instance will *not* be destroyed if
- * <::exit> is called! However, <ACE_OS::exit> will properly
- * destroy the ACE_Object_Manager. It is highly recommended
- * that <ACE_OS::exit> be used instead of <::exit>.
- *
- * However, <::exit> and <ACE_OS::exit> are tricky to use
- * properly, especially in multithread programs. It is much
- * safer to throw an exception (or simulate that effect) that
- * will be caught by <main> instead of calling exit. Then,
- * <main> can perform any necessary application-specific cleanup
- * and return the status value. In addition, it's usually best
- * to avoid calling <::exit> and <ACE_OS::exit> from threads
- * other than the main thread. Thanks to Jeff Greif
- * <jmg@trivida.com> for pointing out that <::exit> doesn't
- * destroy automatic objects, and for developing the
- * recommendations in this paragraph.
- *
- * Instead of creating a static <ACE_Object_Manager>, or letting
- * ACE create it on the stack of <main> for you, another
- * alternative is to #define
- * ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER. With that
- * #define, the application must create the ACE_Object_Manager.
- * The recommended way is to call <ACE::init> at the start of
- * the program, and call <ACE::fini> at the end. Alternatively,
- * the application could explicity construct an
- * <ACE_Object_Manager>.
- */
-class ACE_Export ACE_Object_Manager : public ACE_Object_Manager_Base
-{
-
-public:
- /**
- * Explicitly initialize (construct the singleton instance of) the
- * ACE_Object_Manager. Returns 0 on success, -1 on failure, and 1
- * if it had already been called.
- */
- virtual int init (void);
-
- /**
- * Explicitly destroy the singleton instance of the
- * ACE_Object_Manager. Returns 0 on success, -1 on failure, and 1
- * if it had already been called.
- */
- virtual int fini (void);
-
- /**
- * Returns 1 before the ACE_Object_Manager has been constructed.
- * This flag can be used to determine if the program is constructing
- * static objects. If no static object spawns any threads, the
- * program will be single-threaded when this flag returns 1. (Note
- * that the program still might construct some static objects when
- * this flag returns 0, if ACE_HAS_NONSTATIC_OBJECT_MANAGER is not
- * defined.)
- */
- static int starting_up (void);
-
- /**
- * Returns 1 after the ACE_Object_Manager has been destroyed. This
- * flag can be used to determine if the program is in the midst of
- * destroying static objects. (Note that the program might destroy
- * some static objects before this flag can return 1, if
- * ACE_HAS_NONSTATIC_OBJECT_MANAGER is not defined.)
- */
- static int shutting_down (void);
-
- /**
- * Register an ACE_Cleanup object for cleanup at process
- * termination. The object is deleted via the
- * <ace_cleanup_destroyer>. If you need more flexiblity, see the
- * <other at_exit> method below. For OS's that do not have
- * processes, cleanup takes place at the end of <main>. Returns 0
- * on success. On failure, returns -1 and sets errno to: EAGAIN if
- * shutting down, ENOMEM if insufficient virtual memory, or EEXIST
- * if the object (or array) had already been registered.
- */
- static int at_exit (ACE_Cleanup *object, void *param = 0);
-
- /**
- * Register an object (or array) for cleanup at process termination.
- * "cleanup_hook" points to a (global, or static member) function
- * that is called for the object or array when it to be destroyed.
- * It may perform any necessary cleanup specific for that object or
- * its class. "param" is passed as the second parameter to the
- * "cleanup_hook" function; the first parameter is the object (or
- * array) to be destroyed. "cleanup_hook", for example, may delete
- * the object (or array). For OS's that do not have processes, this
- * function is the same as <at_thread_exit>. Returns 0 on success.
- * On failure, returns -1 and sets errno to: EAGAIN if shutting
- * down, ENOMEM if insufficient virtual memory, or EEXIST if the
- * object (or array) had already been registered.
- */
- static int at_exit (void *object,
- ACE_CLEANUP_FUNC cleanup_hook,
- void *param);
-
-#if 0 /* not implemented yet */
- /// Similar to <at_exit>, except that the cleanup_hook is called
- /// when the current thread exits instead of when the program terminates.
- static int at_thread_exit (void *object,
- ACE_CLEANUP_FUNC cleanup_hook,
- void *param);
-#endif /* 0 */
-
- /// Unique identifiers for preallocated objects. Please see
- /// ace/Managed_Object.h for information on accessing preallocated
- /// objects.
- enum Preallocated_Object
- {
- ACE_FILECACHE_LOCK,
-#if defined (ACE_HAS_THREADS)
- ACE_STATIC_OBJECT_LOCK,
-#endif /* ACE_HAS_THREADS */
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- ACE_MT_CORBA_HANDLER_LOCK,
- ACE_DUMP_LOCK,
- ACE_SIG_HANDLER_LOCK,
- ACE_SINGLETON_NULL_LOCK,
- ACE_SINGLETON_RECURSIVE_THREAD_LOCK,
- ACE_THREAD_EXIT_LOCK,
-#if !defined (ACE_LACKS_ACE_TOKEN)
- ACE_TOKEN_MANAGER_CREATION_LOCK,
- ACE_TOKEN_INVARIANTS_CREATION_LOCK,
-#endif /* ! ACE_LACKS_ACE_TOKEN */
- ACE_PROACTOR_EVENT_LOOP_LOCK,
-#endif /* ACE_MT_SAFE */
-
- // Hook for preallocated objects provided by application.
- ACE_APPLICATION_PREALLOCATED_OBJECT_DECLARATIONS
-
- ACE_PREALLOCATED_OBJECTS // This enum value must be last!
- };
-
- /// Unique identifiers for preallocated arrays. Please see
- /// ace/Managed_Object.h for information on accessing preallocated
- /// arrays.
- enum Preallocated_Array
- {
- /// There currently are no preallocated arrays in the ACE
- /// library. If the application doesn't have any, make sure
- /// the the preallocated_array size is at least one by declaring
- /// this dummy . . .
- ACE_EMPTY_PREALLOCATED_ARRAY,
-
- /// Hook for preallocated arrays provided by application.
- ACE_APPLICATION_PREALLOCATED_ARRAY_DECLARATIONS
-
- ACE_PREALLOCATED_ARRAYS // This enum value must be last!
- };
-
- /**
- * @deprecated Accesses a default signal set used, for example,
- * in ACE_Sig_Guard methods.
- * Deprecated: use ACE_Object_Manager::default_mask () instead.
- */
- static ACE_Sig_Set &default_mask (void);
-
-private:
- /// For at_exit support.
- ACE_OS_Exit_Info exit_info_;
-
-#if !defined (ACE_LACKS_ACE_SVCCONF)
- /// Preallocated objects collection.
- ACE_Object_Manager_Preallocations *preallocations_;
-
- /// ACE_Service_Config signal handler.
- ACE_Sig_Adapter *ace_service_config_sig_handler_;
-#endif /* ! ACE_LACKS_ACE_SVCCONF */
-
- /// Register an object or array for deletion at program termination.
- /// See description of static version above for return values.
- int at_exit_i (void *object, ACE_CLEANUP_FUNC cleanup_hook, void *param);
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-public:
- // = The <get_singleton_lock> accessors are for internal
- // use by ACE_Singleton _only_.
-
- /**
- * Accesses an <ACE_Null_Mutex> to be used for construction of
- * <ACE_Singletons>. Returns 0, and the lock in the argument, on
- * success; returns -1 on failure.
- */
- static int get_singleton_lock (ACE_Null_Mutex *&);
-
- /**
- * Accesses a non-recursive <ACE_Thread_Mutex> to be used for
- * construction of <ACE_Singletons>. Returns 0, and the lock in the
- * argument, on success; returns -1 on failure.
- */
- static int get_singleton_lock (ACE_Thread_Mutex *&);
-
- /**
- * Accesses a non-recursive <ACE_Mutex> to be used for construction
- * of <ACE_Singletons>. Returns 0, and the lock in the argument, on
- * success; returns -1 on failure.
- */
- static int get_singleton_lock (ACE_Mutex *&);
-
- /**
- * Accesses a recursive <ACE_Recursive_Thread_Mutex> to be used for
- * construction of <ACE_Singletons>. Returns 0, and the lock in the
- * argument, on success; returns -1 on failure.
- */
- static int get_singleton_lock (ACE_Recursive_Thread_Mutex *&);
-
- /**
- * Accesses a readers/writer <ACE_RW_Thread_Mutex> to be used for
- * construction of <ACE_Singletons>. Returns 0, and the lock in the
- * argument, on success; returns -1 on failure.
- */
- static int get_singleton_lock (ACE_RW_Thread_Mutex *&);
-#endif /* ACE_MT_SAFE */
-
-public:
- // For internal use only by ACE_Managed_Objects.
-
- /**
- * Accessor to singleton instance. Because static member functions
- * are provided in the interface, this should not be public. However,
- * it is public so that ACE_Managed_Object<TYPE> can access it.
- */
- static ACE_Object_Manager *instance (void);
-
- /// Table of preallocated objects.
- static void *preallocated_object[ACE_PREALLOCATED_OBJECTS];
-
- /// Table of preallocated arrays.
- static void *preallocated_array[ACE_PREALLOCATED_ARRAYS];
-
-public:
- // Application code should not use these explicitly, so they're
- // hidden here. They're public so that the ACE_Object_Manager can
- // be constructed/destructed in <main> with
- // ACE_HAS_NONSTATIC_OBJECT_MANAGER.
- ACE_Object_Manager (void);
- ~ACE_Object_Manager (void);
-
-private:
- /// Singleton pointer.
- static ACE_Object_Manager *instance_;
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- /// Lock that is used to guard internal structures.
- ACE_Recursive_Thread_Mutex *internal_lock_;
-
- /// Null lock for guarding singleton creation.
- ACE_Cleanup_Adapter<ACE_Null_Mutex> *singleton_null_lock_;
-
- /// Lock for guarding singleton creation, when Object_Manager
- /// hasn't been started up, or has already been shut down.
- ACE_Cleanup_Adapter<ACE_Recursive_Thread_Mutex> *singleton_recursive_lock_;
-#endif /* ACE_MT_SAFE */
-
-#if defined (ACE_HAS_TSS_EMULATION)
- // Main thread's thread-specific storage array.
- void *ts_storage_[ACE_TSS_Emulation::ACE_TSS_THREAD_KEYS_MAX];
-#endif /* ACE_HAS_TSS_EMULATION */
-
-#if !defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER)
- friend class ACE_Object_Manager_Manager;
-#endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER */
-
- // Disallow copying by not implementing the following . . .
- ACE_Object_Manager (const ACE_Object_Manager &);
- ACE_Object_Manager &operator= (const ACE_Object_Manager &);
-};
-
-
-#if defined (ACE_HAS_THREADS)
-
-class ACE_Recursive_Thread_Mutex;
-
-/**
- * @class ACE_Static_Object_Lock
- *
- * @brief Provide an interface to access a global lock.
- *
- * This class is used to serialize the creation of static
- * singleton objects. It really isn't needed any more, because
- * anyone can access ACE_STATIC_OBJECT_LOCK directly. But, it
- * is retained for backward compatibility.
- */
-class ACE_Export ACE_Static_Object_Lock
-{
-public:
- /// Static lock access point.
- static ACE_Recursive_Thread_Mutex *instance (void);
-
- /// For use only by ACE_Object_Manager to clean up lock if it
- /// what dynamically allocated.
- static void cleanup_lock (void);
-};
-
-#endif /* ACE_HAS_THREADS */
-
-
-#if defined (__ACE_INLINE__)
-#include "ace/Object_Manager.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Managed_Object.h"
-
-#if !defined (ACE_LACKS_ACE_SVCCONF)
-// We can't use the ACE_SVC_FACTORY_DECLARE macro here because this
-// needs to be in the ACE_Export context rather than the
-// ACE_Svc_Export context.
-class ACE_Service_Object;
-extern "C" ACE_Export
-ACE_Service_Object *
-_make_ACE_Service_Manager (ACE_Service_Object_Exterminator *);
-#endif /* ! ACE_LACKS_ACE_SVCCONF */
-
-// hack to get around errors while compiling using split-cpp
-#if defined (ACE_HAS_THREADS)
-
-# if defined (ACE_IS_SPLITTING)
-typedef ACE_Cleanup_Adapter<ACE_Recursive_Thread_Mutex> ACE_Static_Object_Lock_Type;
-
-# if defined (__GNUC__)
-// With g++, suppress the warning that this is unused.
-static ACE_Static_Object_Lock_Type *ACE_Static_Object_Lock_lock __attribute__ ((unused)) = 0;
-# else
-static ACE_Static_Object_Lock_Type *ACE_Static_Object_Lock_lock = 0;
-# endif /* __GNUC__ */
-
-# endif /* ACE_IS_SPLITTING */
-
-#endif /* ACE_HAS_THREADS */
-
-#include "ace/post.h"
-#endif /* ACE_OBJECT_MANAGER_H */
diff --git a/ace/Object_Manager.i b/ace/Object_Manager.i
deleted file mode 100644
index a93cbc208b1..00000000000
--- a/ace/Object_Manager.i
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-int
-ACE_Object_Manager::at_exit (ACE_Cleanup *object,
- void *param)
-{
- return ACE_Object_Manager::instance ()->at_exit_i (
- object,
- (ACE_CLEANUP_FUNC) ace_cleanup_destroyer,
- param);
-}
-
-ACE_INLINE
-int
-ACE_Object_Manager::at_exit (void *object,
- ACE_CLEANUP_FUNC cleanup_hook,
- void *param)
-{
- return ACE_Object_Manager::instance ()->at_exit_i (
- object,
- cleanup_hook,
- param);
-}
-
-ACE_INLINE
-ACE_Sig_Set &
-ACE_Object_Manager::default_mask (void)
-{
- // A safe cast, but this static method shouldn't be used anyways.
- // Use ACE_Object_Manager::default_mask () instead.
- return *ACE_reinterpret_cast (ACE_Sig_Set *,
- ACE_OS_Object_Manager::default_mask ());
-}
diff --git a/ace/Obstack.cpp b/ace/Obstack.cpp
deleted file mode 100644
index d794f1263fe..00000000000
--- a/ace/Obstack.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// $Id$
-
-#include "ace/Obstack.h"
-
-ACE_RCSID(ace, Obstack, "$Id$")
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Obstack_T<char>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Obstack_T<char>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Obstack.h b/ace/Obstack.h
deleted file mode 100644
index afc944dcc6e..00000000000
--- a/ace/Obstack.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* -*- C++ -*- */
-//=============================================================================
-/**
- * @file Obstack.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_OBSTACK_H
-#define ACE_OBSTACK_H
-#include "ace/pre.h"
-
-#include "ace/Obstack_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-typedef ACE_Obstack_T<char> ACE_Obstack;
-
-ACE_SINGLETON_DECLARATION (ACE_Obstack_T <char>;)
-
-#include "ace/post.h"
-#endif /* ACE_OBSTACK_H */
diff --git a/ace/Obstack_T.cpp b/ace/Obstack_T.cpp
deleted file mode 100644
index cb96dd40a13..00000000000
--- a/ace/Obstack_T.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-// $Id$
-
-#ifndef ACE_OBSTACK_T_C
-#define ACE_OBSTACK_T_C
-
-#include "ace/Obstack_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Obstack_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Obstack_T, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Obstack_T)
-
-template <class CHAR> void
-ACE_Obstack_T<CHAR>::dump (void) const
-{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("size_ = %d\n"), this->size_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("head_ = %x\n"), this->head_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("curr_ = %x\n"), this->curr_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class CHAR> int
-ACE_Obstack_T<CHAR>::request (size_t len)
-{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::request");
-
- // normalize the length.
- len *= sizeof (CHAR);
-
- // Check to see if there's room for the requested length, including
- // any part of an existing string, if any.
- size_t resulting_len = (this->curr_->cur_ - this->curr_->block_) + len;
-
- // Increase the length of the underlying chunks if the request made is
- // for bigger sized chunks.
- if (this->size_ < resulting_len)
- this->size_ = this->size_ << 1;
-
- // We now know the request will fit; see if it can fit in the current
- // chunk or will need a new one.
- if (this->curr_->cur_ + len >= this->curr_->end_)
- {
- // Need a new chunk. Save the current one so the current string can be
- // copied to the new chunk.
- ACE_Obchunk *temp = this->curr_;
- if (this->curr_->next_ == 0)
- {
- // We must allocate new memory.
- ACE_Obchunk* tmp = this->new_chunk();
- if (!tmp)
- return -1;
- this->curr_->next_ = tmp;
- this->curr_ = this->curr_->next_;
- }
- else
- {
- // We can reuse previously allocated memory.
- this->curr_ = this->curr_->next_;
- this->curr_->block_ = this->curr_->cur_ = this->curr_->contents_;
- }
-
- // Copy any initial characters to the new chunk.
- if (temp->cur_ != temp->block_)
- {
- size_t datasize = temp->cur_ - temp->block_;
- ACE_OS::memcpy (this->curr_->block_,
- temp->block_,
- datasize);
- this->curr_->cur_ = this->curr_->block_ + datasize;
- // Reset the old chunk.
- temp->cur_ = temp->block_;
- }
- }
-
- return 0;
-}
-
-template <class CHAR> CHAR *
-ACE_Obstack_T<CHAR>::grow (CHAR c)
-{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::grow");
-
- if (this->request (1) == 0)
- {
- CHAR *retv = ACE_reinterpret_cast (CHAR *,
- this->curr_->cur_);
- this->curr_->cur_ += sizeof (CHAR);
- *retv = c;
- return retv;
- }
- else
- return 0;
-}
-
-template <class CHAR> ACE_Obchunk *
-ACE_Obstack_T<CHAR>::new_chunk (void)
-{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::new_chunk");
-
- ACE_Obchunk *temp;
-
- ACE_NEW_MALLOC_RETURN (temp,
- ACE_static_cast (ACE_Obchunk *,
- this->allocator_strategy_->malloc
- (sizeof (class ACE_Obchunk) + this->size_)),
- ACE_Obchunk (this->size_),
- 0);
- return temp;
-}
-
-template <class CHAR>
-ACE_Obstack_T<CHAR>::ACE_Obstack_T (size_t size,
- ACE_Allocator *allocator_strategy)
- : allocator_strategy_ (allocator_strategy),
- size_ (size)
-{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::ACE_Obstack");
-
- if (this->allocator_strategy_ == 0)
- ACE_ALLOCATOR (this->allocator_strategy_,
- ACE_Allocator::instance ());
-
- this->head_ = this->new_chunk ();
- this->curr_ = this->head_;
-}
-
-template <class CHAR>
-ACE_Obstack_T<CHAR>::~ACE_Obstack_T (void)
-{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::~ACE_Obstack_T");
-
- ACE_Obchunk *temp = this->head_;
-
- while (temp != 0)
- {
- ACE_Obchunk *next = temp->next_;
- temp->next_ = 0;
- this->allocator_strategy_->free (temp);
- temp = next;
- }
-}
-
-template <class CHAR> CHAR *
-ACE_Obstack_T<CHAR>::copy (const CHAR *s,
- size_t len)
-{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::copy");
-
- if (this->request (len) != 0)
- return 0;
-
- size_t tsize = len * sizeof (CHAR);
- ACE_OS::memcpy (this->curr_->cur_, s, tsize);
- this->curr_->cur_ += tsize ;
- return this->freeze ();
-}
-
-template <class CHAR> void
-ACE_Obstack_T<CHAR>::unwind (void* obj)
-{
- if (obj >= this->curr_->contents_ && obj < this->curr_->end_)
- this->curr_->block_ = this->curr_->cur_ = ACE_reinterpret_cast (char*,
- obj);
- else
- this->unwind_i (obj);
-}
-
-template <class CHAR> void
-ACE_Obstack_T<CHAR>::unwind_i (void* obj)
-{
- ACE_Obchunk* curr;
-
- curr = this->head_;
- while (curr != 0 && (curr->contents_ > obj || curr->end_ < obj))
- curr = curr->next_;
- if (curr)
- {
- this->curr_ = curr;
- this->curr_->block_ = this->curr_->cur_ = ACE_reinterpret_cast (char*,
- obj);
- }
- else if (obj != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Deletion of non-existent object.\n%a")));
-}
-
-template <class CHAR> void
-ACE_Obstack_T<CHAR>::release (void)
-{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::release");
-
- this->curr_ = this->head_;
- this->curr_->block_ = this->curr_->cur_ = this->curr_->contents_;
-}
-
-#endif /* ACE_OBSTACK_T_C */
diff --git a/ace/Obstack_T.h b/ace/Obstack_T.h
deleted file mode 100644
index 87a6f15bbc6..00000000000
--- a/ace/Obstack_T.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* -*- C++ -*- */
-//=============================================================================
-/**
- * @file Obstack_T.h
- *
- * $Id$
- *
- * @author Doug Schmidt <schmidt@cs.wustl.edu> and Nanbor Wang <nanbor@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_OBSTACK_T_H
-#define ACE_OBSTACK_T_H
-#include "ace/pre.h"
-
-#include "ace/Obchunk.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Obstack
- *
- * @brief Define a simple "mark and release" memory allocation utility.
- *
- * The implementation is similar to the GNU obstack utility,
- * which is used extensively in the GCC compiler.
- */
-template <class CHAR>
-class ACE_Obstack_T
-{
-public:
- // = Initialization and termination methods.
- ACE_Obstack_T (size_t size = (4096 * sizeof (CHAR)) - sizeof (ACE_Obchunk),
- ACE_Allocator *allocator_strategy = 0);
- ~ACE_Obstack_T (void);
-
- /// Request Obstack to prepare a block at least @a len long for building
- /// a new string. Return -1 if fail, 0 if success.
- int request (size_t len);
-
- /// Inserting a new CHAR \a c into the current building
- /// block without freezing (null terminating) the block.
- /// This function will create new chunk by checking the
- /// boundary of current Obchunk. Return
- /// the location \a c gets inserted to, or 0 if error.
- CHAR *grow (CHAR c);
-
- /// Inserting a new CHAR \a c into the current building
- /// block without freezing (null terminating) the block and without
- /// checking for out-of-bound error.
- void grow_fast (CHAR c);
-
- /// Freeze the current building block by null terminating it.
- /// Return the starting address of the current building block, 0
- /// if error occurs.
- CHAR *freeze (void);
-
- /// Copy the data into the current Obchunk and freeze the current
- /// block. Return the starting address of the current building
- /// block, 0 if error occurs. @a len specify the string length,
- /// not the actually data size.
- CHAR *copy (const CHAR *data,
- size_t len);
-
- /// Return the maximum @a length or @a size of a string that can be put
- /// into this Obstack. @a size = @a length * sizeof (CHAR).
- ///
- /// Deprecated : No need to use this function as you can put objects of
- /// arbitrary lengths into the obstack now.
- size_t length (void) const;
- size_t size (void) const;
-
- /// "Unwind" the stack. If @a obj is a null pointer, everything allocated
- /// in the stack is released. Otherwise, @a obj must be an address of an
- /// object allocated in the stack. In this case, @a obj is released along
- /// with everthing allocated in the Obstack since @a obj.
- void unwind (void* obj);
-
- /// "Release" the entire stack of Obchunks, putting it back on the free
- /// list.
- void release (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- class ACE_Obchunk *new_chunk (void);
-
- /// Search through the list of Obchunks and release them. Helper funtion
- /// used by unwind.
- void unwind_i (void* obj);
-
- /// Pointer to the allocator used by this Obstack.
- ACE_Allocator *allocator_strategy_;
-
- /// Current size of the Obstack;
- size_t size_;
-
- // Don't change the order of the following two fields.
- /// Head of the Obchunk chain.
- class ACE_Obchunk *head_;
-
- /// Pointer to the current Obchunk.
- class ACE_Obchunk *curr_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Obstack_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Obstack_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Obstack_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_OBSTACK_T_H */
diff --git a/ace/Obstack_T.i b/ace/Obstack_T.i
deleted file mode 100644
index f6ff337ba6e..00000000000
--- a/ace/Obstack_T.i
+++ /dev/null
@@ -1,33 +0,0 @@
-// $Id$
-
-template <class CHAR> ACE_INLINE size_t
-ACE_Obstack_T<CHAR>::length () const
-{
- return this->size_ / sizeof (CHAR);
-}
-
-template <class CHAR> ACE_INLINE size_t
-ACE_Obstack_T<CHAR>::size () const
-{
- return this->size_;
-}
-
-template <class CHAR> ACE_INLINE void
-ACE_Obstack_T<CHAR>::grow_fast (CHAR c)
-{
- * (ACE_reinterpret_cast (CHAR *,
- this->curr_->cur_)) = c;
- this->curr_->cur_ += sizeof (CHAR);
-}
-
-template <class CHAR> ACE_INLINE CHAR *
-ACE_Obstack_T<CHAR>::freeze (void)
-{
- CHAR *retv = ACE_reinterpret_cast (CHAR *, this->curr_->block_);
- * (ACE_reinterpret_cast (CHAR *,
- this->curr_->cur_)) = 0;
-
- this->curr_->cur_ += sizeof (CHAR);
- this->curr_->block_ = this->curr_->cur_;
- return retv;
-}
diff --git a/ace/PI_Malloc.cpp b/ace/PI_Malloc.cpp
deleted file mode 100644
index 031d8b53d7e..00000000000
--- a/ace/PI_Malloc.cpp
+++ /dev/null
@@ -1,170 +0,0 @@
-#ifndef ACE_PI_MALLOC_CPP
-#define ACE_PI_MALLOC_CPP
-
-#include "ace/PI_Malloc.h"
-
-ACE_RCSID (ace,
- PI_Malloc,
- "$Id$")
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-
-#include "ace/Object_Manager.h"
-#include "ace/Process_Mutex.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/PI_Malloc.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Synch_T.h"
-
-void
-ACE_PI_Control_Block::ACE_Malloc_Header::dump (void) const
-{
- ACE_TRACE ("ACE_PI_Control_Block::ACE_Malloc_Header::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nnext_block = %x"), (ACE_Malloc_Header *) this->next_block_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nsize = %d\n"), this->size_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_PI_Control_Block::print_alignment_info (void)
-{
- ACE_TRACE ("ACE_PI_Control_Block::ACE_Control_Block::print_alignment_info");
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("Start ---> ACE_PI_Control_Block::print_alignment_info:\n")));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Sizeof ptr: %d\n")
- ACE_LIB_TEXT ("Sizeof size_t: %d\n")
- ACE_LIB_TEXT ("Sizeof long: %d\n")
- ACE_LIB_TEXT ("Sizeof double: %d\n")
- ACE_LIB_TEXT ("Sizeof ACE_MALLOC_ALIGN: %d\n")
- ACE_LIB_TEXT ("sizeof ACE_MALLOC_PADDING: %d\n")
- ACE_LIB_TEXT ("Sizeof ACE_MALLOC_HEADER_SIZE: %d\n")
- ACE_LIB_TEXT ("Sizeof ACE_PI_MALLOC_PADDING_SIZE: %d\n")
- ACE_LIB_TEXT ("Sizeof ACE_PI_CONTROL_BLOCK_SIZE: %d\n")
- ACE_LIB_TEXT ("Sizeof ACE_PI_CONTROL_BLOCK_ALIGN_BYTES: %d\n")
- ACE_LIB_TEXT ("Sizeof (MALLOC_HEADER): %d\n")
- ACE_LIB_TEXT ("Sizeof (CONTROL_BLOCK): %d\n"),
- sizeof (char *),
- sizeof (size_t),
- sizeof (long),
- sizeof (double),
- ACE_MALLOC_ALIGN,
- ACE_MALLOC_PADDING,
- ACE_MALLOC_HEADER_SIZE,
- ACE_PI_MALLOC_PADDING_SIZE,
- ACE_PI_CONTROL_BLOCK_SIZE,
- ACE_PI_CONTROL_BLOCK_ALIGN_BYTES,
- sizeof (ACE_Malloc_Header),
- sizeof (ACE_PI_Control_Block)
- ));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("End <--- ACE_PI_Control_Block::print_alignment_info:\n")));
-}
-
-void
-ACE_PI_Control_Block::dump (void) const
-{
- ACE_TRACE ("ACE_PI_Control_Block::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("Name Node:\n")));
- for (ACE_Name_Node *nextn = this->name_head_;
- nextn != 0;
- nextn = nextn->next_)
- nextn->dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("freep_ = %x"), (ACE_Malloc_Header *) this->freep_));
- this->base_.dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nMalloc Header:\n")));
- for (ACE_Malloc_Header *nexth = ((ACE_Malloc_Header *)this->freep_)->next_block_;
- nexth != 0 && nexth != &this->base_;
- nexth = nexth->next_block_)
- nexth->dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_PI_Control_Block::ACE_Name_Node::ACE_Name_Node (void)
-{
- ACE_TRACE ("ACE_PI_Control_Block::ACE_Name_Node::ACE_Name_Node");
-}
-
-ACE_PI_Control_Block::ACE_Name_Node::ACE_Name_Node (const char *name,
- char *name_ptr,
- char *pointer,
- ACE_Name_Node *next)
- : name_ (name_ptr),
- pointer_ (pointer),
- next_ (next),
- prev_ (0)
-{
- ACE_TRACE ("ACE_PI_Control_Block::ACE_Name_Node::ACE_Name_Node");
- char *n = this->name_;
- ACE_OS::strcpy (n, name);
- if (next != 0)
- next->prev_ = this;
-}
-
-ACE_PI_Control_Block::ACE_Name_Node::ACE_Name_Node (const ACE_Name_Node &)
-{
- ACE_TRACE ("ACE_PI_Control_Block::ACE_Name_Node::ACE_Name_Node");
- ACE_ASSERT (0); // not implemented!
-}
-
-const char *
-ACE_PI_Control_Block::ACE_Name_Node::name (void) const
-{
- const char *c = this->name_;
- return c;
-}
-
-void
-ACE_PI_Control_Block::ACE_Name_Node::name (const char *)
-{
- ACE_ASSERT (0); // not implemented yet.
-}
-
-ACE_PI_Control_Block::ACE_Malloc_Header::ACE_Malloc_Header (void)
- : next_block_ (0),
- size_ (0)
-{
-}
-
-void
-ACE_PI_Control_Block::ACE_Name_Node::dump (void) const
-{
- ACE_TRACE ("ACE_PI_Control_Block::ACE_Name_Node::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT("pointer = %x"), (const char *) this->pointer_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT("\nnext_ = %x"), (ACE_Name_Node *) this->next_));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT("\nname_ = (%x, %s)"),
- (const char *) this->name_,
- (const char *) this->name_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Based_Pointer_Basic<ACE_PI_Control_Block::ACE_Malloc_Header>;
-template class ACE_Based_Pointer_Basic<ACE_PI_Control_Block::ACE_Name_Node>;
-template class ACE_Based_Pointer_Basic<char>;
-template class ACE_Based_Pointer<ACE_PI_Control_Block::ACE_Malloc_Header>;
-template class ACE_Based_Pointer<ACE_PI_Control_Block::ACE_Name_Node>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Based_Pointer_Basic<ACE_PI_Control_Block::ACE_Malloc_Header>
-#pragma instantiate ACE_Based_Pointer_Basic<ACE_PI_Control_Block::ACE_Name_Node>
-#pragma instantiate ACE_Based_Pointer_Basic<char>
-#pragma instantiate ACE_Based_Pointer<ACE_PI_Control_Block::ACE_Malloc_Header>
-#pragma instantiate ACE_Based_Pointer<ACE_PI_Control_Block::ACE_Name_Node>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1*/
-
-#endif /* ACE_PI_MALLOC_CPP */
diff --git a/ace/PI_Malloc.h b/ace/PI_Malloc.h
deleted file mode 100644
index f6d13443337..00000000000
--- a/ace/PI_Malloc.h
+++ /dev/null
@@ -1,201 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file PI_Malloc.h
- *
- * $Id$
- *
- * @author Priyanka Gontla <pgontla@ece.uci.edu>
- * @author Based on code that existed in other ACE files.
- */
-//==========================================================================
-
-#ifndef ACE_PI_MALLOC_H
-#define ACE_PI_MALLOC_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-
-#include "ace/Malloc.h"
-#include "ace/Based_Pointer_T.h"
-
-// prepare for position independent malloc
-/**
- * @class ACE_PI_Control_Block
- *
- * @brief This information is stored in memory allocated by the <Memory_Pool>.
- *
- * This class implements the control block structure that can be
- * used in a "position indepent" fashion, i.e., you don't need to
- * "map" the underlying memory pool to the same address in
- * processes sharing the memory. The tradoff of this flexibility
- * is more expensive malloc/free operations.
- */
-class ACE_Export ACE_PI_Control_Block
-{
-public:
- class ACE_Malloc_Header;
- class ACE_Name_Node;
-
- typedef ACE_Based_Pointer<ACE_Malloc_Header> MALLOC_HEADER_PTR;
- typedef ACE_Based_Pointer<ACE_Name_Node> NAME_NODE_PTR;
- typedef ACE_Based_Pointer_Basic<char> CHAR_PTR;
-
- /**
- * @class ACE_Malloc_Header
- *
- * @brief This is the control block header. It's used by <ACE_Malloc>
- * to keep track of each chunk of data when it's in the free
- * list or in use.
- */
- class ACE_Export ACE_Malloc_Header
- {
- public:
- ACE_Malloc_Header (void);
-
- /// Points to next block if on free list.
- MALLOC_HEADER_PTR next_block_;
-
- /// Initialize a malloc header pointer.
- static void init_ptr (MALLOC_HEADER_PTR *ptr,
- ACE_Malloc_Header *init,
- void *base_addr);
-
- /// Size of this header control block.
- size_t size_;
-
-# if !defined (ACE_PI_MALLOC_PADDING_SIZE)
-# define ACE_PI_MALLOC_PADDING_SIZE ACE_MALLOC_ROUNDUP (ACE_MALLOC_HEADER_SIZE + sizeof (MALLOC_HEADER_PTR) + sizeof (size_t), ACE_MALLOC_ALIGN) - (sizeof (MALLOC_HEADER_PTR) + sizeof (size_t))
-# endif /* !ACE_PI_MALLOC_PADDING_SIZE */
- char padding_[(ACE_PI_MALLOC_PADDING_SIZE) ? ACE_PI_MALLOC_PADDING_SIZE : ACE_MALLOC_ALIGN];
-
- /// Dump the state of the object.
- void dump (void) const;
-
- private:
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Malloc_Header &))
- };
-
- /**
- * @class ACE_Name_Node
- *
- * @brief This class supports "named memory regions" within <ACE_Malloc>.
- *
- * Internally, the named memory regions are stored as a
- * doubly-linked list within the <Memory_Pool>. This makes
- * it easy to iterate over the items in the list in both FIFO
- * and LIFO order.
- */
- class ACE_Export ACE_Name_Node
- {
- public:
- // = Initialization methods.
- /// Constructor.
- ACE_Name_Node (const char *name,
- char *name_ptr,
- char *pointer,
- ACE_Name_Node *head);
-
- /// Copy constructor.
- ACE_Name_Node (const ACE_Name_Node &);
-
- /// Constructor.
- ACE_Name_Node (void);
-
- /// Constructor.
- ~ACE_Name_Node (void);
-
- /// Initialize a name node pointer.
- static void init_ptr (NAME_NODE_PTR *ptr,
- ACE_Name_Node *init,
- void *base_addr);
-
- /// Return a pointer to the name of this node.
- const char *name (void) const;
-
- /// Assign a name;
- void name (const char *);
-
- /// Name of the Node.
- CHAR_PTR name_;
-
- /// Pointer to the contents.
- CHAR_PTR pointer_;
-
- /// Pointer to the next node in the doubly-linked list.
- NAME_NODE_PTR next_;
-
- /// Pointer to the previous node in the doubly-linked list.
- NAME_NODE_PTR prev_;
-
- /// Dump the state of the object.
- void dump (void) const;
-
- private:
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Name_Node &))
- };
-
- /// Print out a bunch of size info for debugging.
- static void print_alignment_info (void);
-
- /// Reference counter.
- int ref_counter_;
-
- /// Head of the linked list of Name Nodes.
- NAME_NODE_PTR name_head_;
-
- /// Current head of the freelist.
- MALLOC_HEADER_PTR freep_;
-
- /// Name of lock thats ensures mutual exclusion.
- char lock_name_[MAXNAMELEN];
-
-#if defined (ACE_HAS_MALLOC_STATS)
- /// Keep statistics about ACE_Malloc state and performance.
- ACE_Malloc_Stats malloc_stats_;
-#define ACE_PI_CONTROL_BLOCK_SIZE ((int)(sizeof (NAME_NODE_PTR) \
- + sizeof (MALLOC_HEADER_PTR) \
- + sizeof (int) \
- + MAXNAMELEN \
- + sizeof (ACE_Malloc_Stats)))
-#else
-#define ACE_PI_CONTROL_BLOCK_SIZE ((int)(sizeof (NAME_NODE_PTR) \
- + sizeof (MALLOC_HEADER_PTR) \
- + sizeof (int) \
- + MAXNAMELEN))
-#endif /* ACE_HAS_MALLOC_STATS */
-
-# if !defined (ACE_PI_CONTROL_BLOCK_ALIGN_BYTES)
-# define ACE_PI_CONTROL_BLOCK_ALIGN_BYTES \
- ACE_MALLOC_ROUNDUP (ACE_PI_CONTROL_BLOCK_SIZE, ACE_MALLOC_ALIGN) - ACE_PI_CONTROL_BLOCK_SIZE
-# endif /* !ACE_PI_CONTROL_BLOCK_ALIGN_LONGS */
- /// Force alignment.
- char align_[(ACE_PI_CONTROL_BLOCK_ALIGN_BYTES) ? ACE_PI_CONTROL_BLOCK_ALIGN_BYTES : ACE_MALLOC_ALIGN];
-
- /// Dummy node used to anchor the freelist. This needs to come last...
- ACE_Malloc_Header base_;
-
- /// Dump the state of the object.
- void dump (void) const;
-
-private:
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Control_Block &))
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/PI_Malloc.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-
-#include "ace/post.h"
-
-#endif /* ACE_PI_MALLOC_H */
diff --git a/ace/PI_Malloc.i b/ace/PI_Malloc.i
deleted file mode 100644
index b082b523618..00000000000
--- a/ace/PI_Malloc.i
+++ /dev/null
@@ -1,25 +0,0 @@
-// $Id$
-
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
-ACE_INLINE
-ACE_PI_Control_Block::ACE_Name_Node::~ACE_Name_Node (void)
-{
-}
-
-ACE_INLINE void
-ACE_PI_Control_Block::ACE_Malloc_Header::init_ptr
- (MALLOC_HEADER_PTR *ptr, ACE_Malloc_Header *init, void *base_addr)
-{
- new ((void *) ptr) MALLOC_HEADER_PTR (base_addr, 0);
- *ptr = init;
-}
-
-ACE_INLINE void
-ACE_PI_Control_Block::ACE_Name_Node::init_ptr
- (NAME_NODE_PTR *ptr, ACE_Name_Node *init, void *base_addr)
-{
- new ((void *) ptr) NAME_NODE_PTR (base_addr, 0);
- *ptr = init;
-}
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-
diff --git a/ace/POSIX_Asynch_IO.cpp b/ace/POSIX_Asynch_IO.cpp
deleted file mode 100644
index d1d153e5baa..00000000000
--- a/ace/POSIX_Asynch_IO.cpp
+++ /dev/null
@@ -1,2599 +0,0 @@
-#include "ace/POSIX_Asynch_IO.h"
-
-#if defined (ACE_HAS_AIO_CALLS)
-
-#include "ace/Proactor.h"
-#include "ace/Message_Block.h"
-#include "ace/INET_Addr.h"
-#include "ace/Asynch_Pseudo_Task.h"
-#include "ace/POSIX_Proactor.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/POSIX_Asynch_IO.i"
-#endif /* __ACE_INLINE__ */
-
-
-ACE_RCSID (ace,
- POSIX_Asynch_IO,
- "$Id$")
-
-
-size_t
-ACE_POSIX_Asynch_Result::bytes_transferred (void) const
-{
- return this->bytes_transferred_;
-}
-
-void
-ACE_POSIX_Asynch_Result::set_bytes_transferred (size_t nbytes)
-{
- this->bytes_transferred_= nbytes;
-}
-
-const void *
-ACE_POSIX_Asynch_Result::act (void) const
-{
- return this->act_;
-}
-
-int
-ACE_POSIX_Asynch_Result::success (void) const
-{
- return this->success_;
-}
-
-const void *
-ACE_POSIX_Asynch_Result::completion_key (void) const
-{
- return this->completion_key_;
-}
-
-u_long
-ACE_POSIX_Asynch_Result::error (void) const
-{
- return this->error_;
-}
-
-void
-ACE_POSIX_Asynch_Result::set_error (u_long errcode)
-{
- this->error_=errcode;
-}
-ACE_HANDLE
-ACE_POSIX_Asynch_Result::event (void) const
-{
- return ACE_INVALID_HANDLE;
-}
-
-u_long
-ACE_POSIX_Asynch_Result::offset (void) const
-{
- return this->aio_offset;
-}
-
-u_long
-ACE_POSIX_Asynch_Result::offset_high (void) const
-{
- //
- // @@ Support aiocb64??
- //
- ACE_NOTSUP_RETURN (0);
-}
-
-int
-ACE_POSIX_Asynch_Result::priority (void) const
-{
- return this->aio_reqprio;
-}
-
-int
-ACE_POSIX_Asynch_Result::signal_number (void) const
-{
- return this->aio_sigevent.sigev_signo;
-}
-
-int
-ACE_POSIX_Asynch_Result::post_completion (ACE_Proactor_Impl *proactor_impl)
-{
- // Get to the platform specific implementation.
- ACE_POSIX_Proactor *posix_proactor = ACE_dynamic_cast (ACE_POSIX_Proactor *,
- proactor_impl);
-
- if (posix_proactor == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "Dynamic cast to POSIX Proactor failed\n"), -1);
-
- // Post myself.
- return posix_proactor->post_completion (this);
-}
-
-ACE_POSIX_Asynch_Result::~ACE_POSIX_Asynch_Result (void)
-{
-}
-
-ACE_POSIX_Asynch_Result::ACE_POSIX_Asynch_Result (ACE_Handler &handler,
- const void* act,
- ACE_HANDLE event,
- u_long offset,
- u_long offset_high,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- aiocb (),
- handler_ (handler),
- act_ (act),
- bytes_transferred_ (0),
- success_ (0),
- completion_key_ (0),
- error_ (0)
-{
- aio_offset = offset;
- aio_reqprio = priority;
- aio_sigevent.sigev_signo = signal_number;
-
- // Event is not used on POSIX.
- ACE_UNUSED_ARG (event);
-
- //
- // @@ Support offset_high with aiocb64.
- //
- ACE_UNUSED_ARG (offset_high);
-
- // Other fields in the <aiocb> will be initialized by the
- // subclasses.
-}
-
-// ****************************************************************
-
-int
-ACE_POSIX_Asynch_Operation::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- this->proactor_ = proactor;
- this->handler_ = &handler;
- this->handle_ = handle;
-
- // Grab the handle from the <handler> if <handle> is invalid
- if (this->handle_ == ACE_INVALID_HANDLE)
- this->handle_ = this->handler_->handle ();
- if (this->handle_ == ACE_INVALID_HANDLE)
- return -1;
-
-#if 0
- // @@ If <proactor> is 0, let us not bother about getting this
- // Proactor, we have already got the specific implementation
- // Proactor.
-
- // If no proactor was passed
- if (this->proactor_ == 0)
- {
- // Grab the proactor from the <Service_Config> if
- // <handler->proactor> is zero
- this->proactor_ = this->handler_->proactor ();
- if (this->proactor_ == 0)
- this->proactor_ = ACE_Proactor::instance();
- }
-#endif /* 0 */
-
- // AIO stuff is present. So no registering.
- ACE_UNUSED_ARG (completion_key);
- return 0;
-}
-
-int
-ACE_POSIX_Asynch_Operation::cancel (void)
-{
- if (!posix_proactor_)
- return -1;
- return posix_proactor_->cancel_aio (this->handle_);
-}
-
-ACE_Proactor *
-ACE_POSIX_Asynch_Operation::proactor (void) const
-{
- return this->proactor_;
-}
-
-ACE_POSIX_Proactor *
-ACE_POSIX_Asynch_Operation::posix_proactor (void) const
-{
- return this->posix_proactor_;
-}
-
-ACE_POSIX_Asynch_Operation::~ACE_POSIX_Asynch_Operation (void)
-{
-}
-
-ACE_POSIX_Asynch_Operation::ACE_POSIX_Asynch_Operation (ACE_POSIX_Proactor *posix_proactor)
- : ACE_Asynch_Operation_Impl (),
- posix_proactor_ (posix_proactor),
- handler_ (0),
- handle_ (ACE_INVALID_HANDLE)
-{
-}
-
-// *********************************************************************
-
-size_t
-ACE_POSIX_Asynch_Read_Stream_Result::bytes_to_read (void) const
-{
- return this->aio_nbytes;
-}
-
-ACE_Message_Block &
-ACE_POSIX_Asynch_Read_Stream_Result::message_block (void) const
-{
- return this->message_block_;
-}
-
-ACE_HANDLE
-ACE_POSIX_Asynch_Read_Stream_Result::handle (void) const
-{
- return this->aio_fildes;
-}
-
-ACE_POSIX_Asynch_Read_Stream_Result::ACE_POSIX_Asynch_Read_Stream_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Read_Stream_Result_Impl (),
- ACE_POSIX_Asynch_Result (handler, act, event, 0, 0, priority, signal_number),
- message_block_ (message_block)
-{
- this->aio_fildes = handle;
- this->aio_buf = message_block.wr_ptr ();
- this->aio_nbytes = bytes_to_read;
- ACE_UNUSED_ARG (event);
-}
-
-void
-ACE_POSIX_Asynch_Read_Stream_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // <errno> is available in the aiocb.
- ACE_UNUSED_ARG (error);
-
- // Appropriately move the pointers in the message block.
- this->message_block_.wr_ptr (bytes_transferred);
-
- // Create the interface result class.
- ACE_Asynch_Read_Stream::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_read_stream (result);
-}
-
-ACE_POSIX_Asynch_Read_Stream_Result::~ACE_POSIX_Asynch_Read_Stream_Result (void)
-{
-}
-
-// ************************************************************
-
-ACE_POSIX_Asynch_Read_Stream::ACE_POSIX_Asynch_Read_Stream (ACE_POSIX_Proactor *posix_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Read_Stream_Impl (),
- ACE_POSIX_Asynch_Operation (posix_proactor)
-{
-}
-
-int
-ACE_POSIX_Asynch_Read_Stream::read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number)
-{
- size_t space = message_block.space ();
- if (bytes_to_read > space)
- bytes_to_read=space;
-
- if (bytes_to_read == 0)
- {
- errno = ENOSPC;
- return -1;
- }
-
- // Create the Asynch_Result.
- ACE_POSIX_Asynch_Read_Stream_Result *result = 0;
- ACE_POSIX_Proactor *proactor = this->posix_proactor ();
- ACE_NEW_RETURN (result,
- ACE_POSIX_Asynch_Read_Stream_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_read,
- act,
- proactor->get_handle (),
- priority,
- signal_number),
- -1);
-
- int return_val = proactor->start_aio (result, ACE_POSIX_Proactor::READ);
- if (return_val == -1)
- delete result;
-
- return return_val;
-}
-
-ACE_POSIX_Asynch_Read_Stream::~ACE_POSIX_Asynch_Read_Stream (void)
-{
-}
-
-// *********************************************************************
-
-size_t
-ACE_POSIX_Asynch_Write_Stream_Result::bytes_to_write (void) const
-{
- return this->aio_nbytes;
-}
-
-ACE_Message_Block &
-ACE_POSIX_Asynch_Write_Stream_Result::message_block (void) const
-{
- return this->message_block_;
-}
-
-ACE_HANDLE
-ACE_POSIX_Asynch_Write_Stream_Result::handle (void) const
-{
- return this->aio_fildes;
-}
-
-ACE_POSIX_Asynch_Write_Stream_Result::ACE_POSIX_Asynch_Write_Stream_Result
- (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Write_Stream_Result_Impl (),
- ACE_POSIX_Asynch_Result (handler, act, event, 0, 0, priority, signal_number),
- message_block_ (message_block)
-{
- this->aio_fildes = handle;
- this->aio_buf = message_block.rd_ptr ();
- this->aio_nbytes = bytes_to_write;
- ACE_UNUSED_ARG (event);
-}
-
-void
-ACE_POSIX_Asynch_Write_Stream_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Get all the data copied.
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // <errno> is available in the aiocb.
- ACE_UNUSED_ARG (error);
-
- // Appropriately move the pointers in the message block.
- this->message_block_.rd_ptr (bytes_transferred);
-
- // Create the interface result class.
- ACE_Asynch_Write_Stream::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_write_stream (result);
-}
-
-ACE_POSIX_Asynch_Write_Stream_Result::~ACE_POSIX_Asynch_Write_Stream_Result (void)
-{
-}
-
-// *********************************************************************
-
-ACE_POSIX_Asynch_Write_Stream::ACE_POSIX_Asynch_Write_Stream (ACE_POSIX_Proactor *posix_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Write_Stream_Impl (),
- ACE_POSIX_Asynch_Operation (posix_proactor)
-{
-}
-
-int
-ACE_POSIX_Asynch_Write_Stream::write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number)
-{
- size_t len = message_block.length ();
- if (bytes_to_write > len)
- bytes_to_write = len;
-
- if (bytes_to_write == 0)
- ACE_ERROR_RETURN
- ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_POSIX_Asynch_Write_Stream::write:")
- ACE_LIB_TEXT ("Attempt to write 0 bytes\n")),
- -1);
-
- ACE_POSIX_Asynch_Write_Stream_Result *result = 0;
- ACE_POSIX_Proactor *proactor = this->posix_proactor ();
- ACE_NEW_RETURN (result,
- ACE_POSIX_Asynch_Write_Stream_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_write,
- act,
- proactor->get_handle (),
- priority,
- signal_number),
- -1);
-
- int return_val = proactor->start_aio (result, ACE_POSIX_Proactor::WRITE);
- if (return_val == -1)
- delete result;
-
- return return_val;
-}
-
-ACE_POSIX_Asynch_Write_Stream::~ACE_POSIX_Asynch_Write_Stream (void)
-{
-}
-
-// *********************************************************************
-
-ACE_POSIX_Asynch_Read_File_Result::ACE_POSIX_Asynch_Read_File_Result
- (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Read_Stream_Result_Impl (),
- ACE_Asynch_Read_File_Result_Impl (),
- ACE_POSIX_Asynch_Read_Stream_Result (handler,
- handle,
- message_block,
- bytes_to_read,
- act,
- event,
- priority,
- signal_number)
-{
- this->aio_offset = offset;
- //
- // @@ Use aiocb64??
- //
- ACE_UNUSED_ARG (offset_high);
-}
-
-void
-ACE_POSIX_Asynch_Read_File_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy all the data.
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // <errno> is available in the aiocb.
- ACE_UNUSED_ARG (error);
-
- // Appropriately move the pointers in the message block.
- this->message_block_.wr_ptr (bytes_transferred);
-
- // Create the interface result class.
- ACE_Asynch_Read_File::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_read_file (result);
-}
-
-ACE_POSIX_Asynch_Read_File_Result::~ACE_POSIX_Asynch_Read_File_Result (void)
-{
-}
-
-// *********************************************************************
-
-ACE_POSIX_Asynch_Read_File::ACE_POSIX_Asynch_Read_File (ACE_POSIX_Proactor *posix_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Read_Stream_Impl (),
- ACE_Asynch_Read_File_Impl (),
- ACE_POSIX_Asynch_Read_Stream (posix_proactor)
-{
-}
-
-int
-ACE_POSIX_Asynch_Read_File::read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number)
-{
- size_t space = message_block.space ();
- if ( bytes_to_read > space )
- bytes_to_read=space;
-
- if ( bytes_to_read == 0 )
- ACE_ERROR_RETURN
- ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_POSIX_Asynch_Read_File::read:")
- ACE_LIB_TEXT ("Attempt to read 0 bytes or no space in the message block\n")),
- -1);
-
- ACE_POSIX_Asynch_Read_File_Result *result = 0;
- ACE_POSIX_Proactor *proactor = this->posix_proactor ();
- ACE_NEW_RETURN (result,
- ACE_POSIX_Asynch_Read_File_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_read,
- act,
- offset,
- offset_high,
- posix_proactor ()->get_handle (),
- priority,
- signal_number),
- -1);
-
- int return_val = proactor->start_aio (result, ACE_POSIX_Proactor::READ);
- if (return_val == -1)
- delete result;
-
- return return_val;
-}
-
-ACE_POSIX_Asynch_Read_File::~ACE_POSIX_Asynch_Read_File (void)
-{
-}
-
-int
-ACE_POSIX_Asynch_Read_File::read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number)
-{
- return ACE_POSIX_Asynch_Read_Stream::read (message_block,
- bytes_to_read,
- act,
- priority,
- signal_number);
-}
-
-// ************************************************************
-
-ACE_POSIX_Asynch_Write_File_Result::ACE_POSIX_Asynch_Write_File_Result
- (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Write_Stream_Result_Impl (),
- ACE_Asynch_Write_File_Result_Impl (),
- ACE_POSIX_Asynch_Write_Stream_Result (handler,
- handle,
- message_block,
- bytes_to_write,
- act,
- event,
- priority,
- signal_number)
-{
- this->aio_offset = offset;
- //
- // @@ Support offset_high with aiocb64.
- //
- ACE_UNUSED_ARG (offset_high);
-}
-
-void
-ACE_POSIX_Asynch_Write_File_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data.
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // <error> is available in <aio_resultp.aio_error>
- ACE_UNUSED_ARG (error);
-
- // Appropriately move the pointers in the message block.
- this->message_block_.rd_ptr (bytes_transferred);
-
- // Create the interface result class.
- ACE_Asynch_Write_File::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_write_file (result);
-}
-
-ACE_POSIX_Asynch_Write_File_Result::~ACE_POSIX_Asynch_Write_File_Result (void)
-{
-}
-
-// *********************************************************************
-
-ACE_POSIX_Asynch_Write_File::ACE_POSIX_Asynch_Write_File (ACE_POSIX_Proactor *posix_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Write_Stream_Impl (),
- ACE_Asynch_Write_File_Impl (),
- ACE_POSIX_Asynch_Write_Stream (posix_proactor)
-{
-}
-
-int
-ACE_POSIX_Asynch_Write_File::write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number)
-{
- size_t len = message_block.length ();
- if (bytes_to_write > len)
- bytes_to_write = len;
-
- if (bytes_to_write == 0)
- ACE_ERROR_RETURN
- ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_POSIX_Asynch_Write_File::write:")
- ACE_LIB_TEXT ("Attempt to write 0 bytes\n")),
- -1);
-
- ACE_POSIX_Asynch_Write_File_Result *result = 0;
- ACE_POSIX_Proactor *proactor = this->posix_proactor ();
- ACE_NEW_RETURN (result,
- ACE_POSIX_Asynch_Write_File_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_write,
- act,
- offset,
- offset_high,
- proactor->get_handle (),
- priority,
- signal_number),
- -1);
-
- int return_val = proactor->start_aio (result, ACE_POSIX_Proactor::WRITE);
- if (return_val == -1)
- delete result;
-
- return return_val;
-}
-
-ACE_POSIX_Asynch_Write_File::~ACE_POSIX_Asynch_Write_File (void)
-{
-}
-
-int
-ACE_POSIX_Asynch_Write_File::write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number)
-{
- return ACE_POSIX_Asynch_Write_Stream::write (message_block,
- bytes_to_write,
- act,
- priority,
- signal_number);
-}
-
-// *********************************************************************
-
-
-size_t
-ACE_POSIX_Asynch_Accept_Result::bytes_to_read (void) const
-{
- return this->aio_nbytes;
-}
-
-ACE_Message_Block &
-ACE_POSIX_Asynch_Accept_Result::message_block (void) const
-{
- return this->message_block_;
-}
-
-ACE_HANDLE
-ACE_POSIX_Asynch_Accept_Result::listen_handle (void) const
-{
- return this->listen_handle_;
-}
-
-ACE_HANDLE
-ACE_POSIX_Asynch_Accept_Result::accept_handle (void) const
-{
- return this->aio_fildes;
-}
-
-ACE_POSIX_Asynch_Accept_Result::ACE_POSIX_Asynch_Accept_Result
- (ACE_Handler &handler,
- ACE_HANDLE listen_handle,
- ACE_HANDLE accept_handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Accept_Result_Impl (),
- ACE_POSIX_Asynch_Result (handler, act, event, 0, 0, priority, signal_number),
- message_block_ (message_block),
- listen_handle_ (listen_handle)
-{
- this->aio_fildes = accept_handle;
- this->aio_nbytes = bytes_to_read;
-}
-
-void
-ACE_POSIX_Asynch_Accept_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data.
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // Appropriately move the pointers in the message block.
- this->message_block_.wr_ptr (bytes_transferred);
-
- // Create the interface result class.
- ACE_Asynch_Accept::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_accept (result);
-}
-
-ACE_POSIX_Asynch_Accept_Result::~ACE_POSIX_Asynch_Accept_Result (void)
-{
-}
-
-// *********************************************************************
-
-ACE_POSIX_Asynch_Accept::ACE_POSIX_Asynch_Accept (ACE_POSIX_Proactor * posix_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Accept_Impl (),
- ACE_POSIX_Asynch_Operation (posix_proactor),
- flg_open_ (0),
- task_lock_count_ (0)
-{
-}
-
-ACE_POSIX_Asynch_Accept::~ACE_POSIX_Asynch_Accept (void)
-{
- this->close ();
- this->reactor(0); // to avoid purge_pending_notifications
-}
-
-ACE_HANDLE
-ACE_POSIX_Asynch_Accept::get_handle (void) const
-{
- return this->handle_;
-}
-
-void
-ACE_POSIX_Asynch_Accept::set_handle (ACE_HANDLE handle)
-{
- ACE_ASSERT (handle_ == ACE_INVALID_HANDLE);
- this->handle_ = handle;
-}
-
-int
-ACE_POSIX_Asynch_Accept::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Accept::open\n"));
-
- int result=0;
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- // if we are already opened,
- // we could not create a new handler without closing the previous
-
- if (this->flg_open_ != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT("%N:%l:ACE_POSIX_Asynch_Accept::open:")
- ACE_LIB_TEXT("acceptor already open \n")),
- -1);
-
- result = ACE_POSIX_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
- if (result == -1)
- return result;
-
- flg_open_ = 1;
-
- task_lock_count_++;
-
- // At this moment asynch_accept_task does not know about us,
- // so we can lock task's token with our lock_ locked.
- // In all other cases we should release our lock_ before
- // calling task's methods to avoid deadlock
- ACE_Asynch_Pseudo_Task & task =
- this->posix_proactor()->get_asynch_pseudo_task();
-
- result = task.register_io_handler (this->get_handle(),
- this,
- ACE_Event_Handler::ACCEPT_MASK,
- 1); // suspend after register
-
- task_lock_count_-- ;
-
- if (result < 0)
- {
- this->flg_open_= 0;
- this->handle_ = ACE_INVALID_HANDLE;
- return -1 ;
- }
-
- return 0;
-}
-
-int
-ACE_POSIX_Asynch_Accept::accept (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- ACE_HANDLE accept_handle,
- const void *act,
- int priority,
- int signal_number)
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Accept::accept\n"));
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- if (this->flg_open_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT("%N:%l:ACE_POSIX_Asynch_Accept::accept")
- ACE_LIB_TEXT("acceptor was not opened before\n")),
- -1);
-
- // Sanity check: make sure that enough space has been allocated by
- // the caller.
- size_t address_size = sizeof (sockaddr_in) + sizeof (sockaddr);
- size_t space_in_use = message_block.wr_ptr () - message_block.base ();
- size_t total_size = message_block.size ();
- size_t available_space = total_size - space_in_use;
- size_t space_needed = bytes_to_read + 2 * address_size;
-
- if (available_space < space_needed)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Buffer too small\n")),
- -1);
-
- // Common code for both WIN and POSIX.
- // Create future Asynch_Accept_Result
- ACE_POSIX_Asynch_Accept_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_POSIX_Asynch_Accept_Result (*this->handler_,
- this->handle_,
- accept_handle,
- message_block,
- bytes_to_read,
- act,
- this->posix_proactor()->get_handle (),
- priority,
- signal_number),
- -1);
-
- // Enqueue result
- if (this->result_queue_.enqueue_tail (result) == -1)
- {
- delete result; // to avoid memory leak
-
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT("%N:%l:ACE_POSIX_Asynch_Accept::accept:")
- ACE_LIB_TEXT("enqueue accept call failed\n")),
- -1);
- }
-
- if (this->result_queue_.size () > 1)
- return 0;
-
- task_lock_count_ ++;
- }
-
- // If this is the only item, then it means there the set was empty
- // before. So enable the <handle> in the reactor.
-
- ACE_Asynch_Pseudo_Task & task =
- this->posix_proactor ()->get_asynch_pseudo_task ();
-
- int rc_task = task.resume_io_handler (this->get_handle());
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- task_lock_count_ --;
-
- if (rc_task == -2 && task_lock_count_ == 0) // task is closing
- task.unlock_finish ();
- }
-
- if (rc_task < 0)
- return -1;
-
- return 0;
-}
-
-//@@ New method cancel_uncompleted
-// It performs cancellation of all pending requests
-//
-// Parameter flg_notify can be
-// 0 - don't send notifications about canceled accepts
-// !0 - notify user about canceled accepts
-// according POSIX standards we should receive notifications
-// on canceled AIO requests
-//
-// Return value : number of cancelled requests
-//
-
-int
-ACE_POSIX_Asynch_Accept::cancel_uncompleted (int flg_notify)
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Accept::cancel_uncompleted\n"));
-
- int retval = 0;
-
- for (; ; retval++)
- {
- ACE_POSIX_Asynch_Accept_Result* result = 0;
-
- this->result_queue_.dequeue_head (result);
-
- if (result == 0)
- break;
-
- if (this->flg_open_ == 0 || flg_notify == 0) //if we should not notify
- delete result ; // we have to delete result
- else //else notify as any cancelled AIO
- {
- // Store the new handle.
- result->aio_fildes = ACE_INVALID_HANDLE ;
- result->set_bytes_transferred (0);
- result->set_error (ECANCELED);
-
- if (this->posix_proactor ()->post_completion (result) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT("Error:(%P | %t):%p\n"),
- ACE_LIB_TEXT("ACE_POSIX_Asynch_Accept::")
- ACE_LIB_TEXT("cancel_uncompleted:<post_completion> failed")
- ));
- }
- }
- return retval;
-}
-
-int
-ACE_POSIX_Asynch_Accept::cancel (void)
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Accept::cancel\n"));
-
- //We are not really ACE_POSIX_Asynch_Operation
- //so we could not call ::aiocancel ()
- // or just write
- //return ACE_POSIX_Asynch_Operation::cancel ();
- //We delegate real cancelation to cancel_uncompleted (1)
-
- int rc = -1 ; // ERRORS
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- int num_cancelled = cancel_uncompleted (flg_open_);
-
- if (num_cancelled == 0)
- rc = 1 ; // AIO_ALLDONE
- else if (num_cancelled > 0)
- rc = 0 ; // AIO_CANCELED
-
- if (this->flg_open_ == 0)
- return rc ;
-
- task_lock_count_++;
- }
-
- ACE_Asynch_Pseudo_Task & task =
- this->posix_proactor ()->get_asynch_pseudo_task ();
-
- int rc_task = task.suspend_io_handler (this->get_handle());
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- task_lock_count_--;
-
- if (rc_task == -2 && task_lock_count_ == 0) // task is closing
- task.unlock_finish ();
- }
-
- return rc;
-}
-
-int
-ACE_POSIX_Asynch_Accept::close ()
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Accept::close\n"));
-
- // 1. It performs cancellation of all pending requests
- // 2. Removes itself from Reactor ( ACE_Asynch_Pseudo_Task)
- // 3. close the socket
- //
- // Parameter flg_notify can be
- // 0 - don't send notifications about canceled accepts
- // !0 - notify user about canceled accepts
- // according POSIX standards we should receive notifications
- // on canceled AIO requests
- //
- // Return codes : 0 - OK ,
- // -1 - Errors
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- this->cancel_uncompleted (flg_open_);
-
- if (this->flg_open_ == 0)
- {
- if (this->handle_ != ACE_INVALID_HANDLE)
- {
- ACE_OS::closesocket (this->handle_);
- this->handle_ = ACE_INVALID_HANDLE;
- }
- return 0;
- }
-
- task_lock_count_++;
- }
-
- ACE_Asynch_Pseudo_Task & task =
- this->posix_proactor ()->get_asynch_pseudo_task ();
-
- int rc_task = task.remove_io_handler (this->get_handle ());
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- task_lock_count_--;
-
- if (rc_task == -2 && task_lock_count_ == 0) // task is closing
- task.unlock_finish ();
-
- if (this->handle_ != ACE_INVALID_HANDLE)
- {
- ACE_OS::closesocket (this->handle_);
- this->handle_ = ACE_INVALID_HANDLE;
- }
-
- this->flg_open_ = 0;
- }
-
- return 0;
-}
-
-int
-ACE_POSIX_Asynch_Accept::handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask)
-{
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (close_mask);
-
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Accept::handle_close\n"));
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, 0));
-
- // handle_close is called only in one case :
- // when Asynch_accept_task is closing ( i.e. proactor destructor )
-
- // In all other cases we deregister ourself
- // with ACE_Event_Handler::DONT_CALL mask
-
- this->cancel_uncompleted (0);
-
- this->flg_open_ = 0;
-
- // it means other thread is waiting for reactor token_
- if (task_lock_count_ > 0)
- {
- ACE_Asynch_Pseudo_Task & task =
- this->posix_proactor ()->get_asynch_pseudo_task ();
-
- task.lock_finish ();
- }
-
- return 0;
-}
-
-int
-ACE_POSIX_Asynch_Accept::handle_input (ACE_HANDLE /* fd */)
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Accept::handle_input\n"));
-
- // An <accept> has been sensed on the <listen_handle>. We should be
- // able to just go ahead and do the <accept> now on this <fd>. This
- // should be the same as the <listen_handle>.
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, 0));
-
- ACE_POSIX_Asynch_Accept_Result* result = 0;
-
- // Deregister this info pertaining to this <accept> call.
- if (this->result_queue_.dequeue_head (result) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT("%N:%l:(%P | %t):%p\n"),
- ACE_LIB_TEXT("ACE_POSIX_Asynch_Accept::handle_input:")
- ACE_LIB_TEXT( " dequeueing failed")));
-
- // Disable the <handle> in the reactor if no <accept>'s are pending.
-
- // we allow the following sequence of locks :
- // reactor::token , then our mutex lock_
- // to avoid deadlock prohibited reverse sequence
-
- if (this->result_queue_.size () == 0)
- {
- ACE_Asynch_Pseudo_Task & task =
- this->posix_proactor ()->get_asynch_pseudo_task ();
-
- task.suspend_io_handler (this->get_handle());
- }
-
- // Issue <accept> now.
- // @@ We shouldnt block here since we have already done poll/select
- // thru reactor. But are we sure?
-
- ACE_HANDLE new_handle = ACE_OS::accept (this->handle_, 0, 0);
-
- if (result == 0) // there is nobody to notify
- {
- ACE_OS::closesocket (new_handle);
- return 0;
- }
-
- if (new_handle == ACE_INVALID_HANDLE)
- {
- result->set_error(errno);
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT("%N:%l:(%P | %t):%p\n"),
- ACE_LIB_TEXT("ACE_POSIX_Asynch_Accept::handle_input: ")
- ACE_LIB_TEXT(" <accept> system call failed")));
-
- // Notify client as usual, "AIO" finished with errors
- }
-
- // Store the new handle.
- result->aio_fildes = new_handle;
-
- // Notify the main process about this completion
- // Send the Result through the notification pipe.
- if (this->posix_proactor ()->post_completion (result) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT("Error:(%P | %t):%p\n"),
- ACE_LIB_TEXT("ACE_POSIX_Asynch_Accept::handle_input: ")
- ACE_LIB_TEXT(" <post_completion> failed")));
-
- return 0;
-}
-
-// *********************************************************************
-
-ACE_HANDLE
-ACE_POSIX_Asynch_Connect_Result::connect_handle (void) const
-{
- return this->aio_fildes;
-}
-
-void ACE_POSIX_Asynch_Connect_Result::connect_handle (ACE_HANDLE handle)
-{
- this->aio_fildes = handle;
-}
-
-
-ACE_POSIX_Asynch_Connect_Result::ACE_POSIX_Asynch_Connect_Result
- (ACE_Handler &handler,
- ACE_HANDLE connect_handle,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Connect_Result_Impl (),
- ACE_POSIX_Asynch_Result (handler, act, event, 0, 0, priority, signal_number)
-{
- this->aio_fildes = connect_handle;
- this->aio_nbytes = 0;
-}
-
-void
-ACE_POSIX_Asynch_Connect_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data.
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // Create the interface result class.
- ACE_Asynch_Connect::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_connect (result);
-}
-
-ACE_POSIX_Asynch_Connect_Result::~ACE_POSIX_Asynch_Connect_Result (void)
-{
-}
-
-// *********************************************************************
-
-ACE_POSIX_Asynch_Connect::ACE_POSIX_Asynch_Connect (ACE_POSIX_Proactor * posix_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Connect_Impl (),
- ACE_POSIX_Asynch_Operation (posix_proactor),
- flg_open_ (0),
- task_lock_count_ (0)
-{
-}
-
-ACE_POSIX_Asynch_Connect::~ACE_POSIX_Asynch_Connect (void)
-{
- this->close ();
- this->reactor(0); // to avoid purge_pending_notifications
-}
-
-ACE_HANDLE
-ACE_POSIX_Asynch_Connect::get_handle (void) const
-{
-
- ACE_ASSERT (0);
- return ACE_INVALID_HANDLE;
-}
-
-void
-ACE_POSIX_Asynch_Connect::set_handle (ACE_HANDLE)
-{
- ACE_ASSERT (0) ;
-}
-
-int
-ACE_POSIX_Asynch_Connect::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Connect::open\n"));
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- // if we are already opened,
- // we could not create a new handler without closing the previous
-
- if (this->flg_open_ != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT("%N:%l:ACE_POSIX_Asynch_Connect::open:")
- ACE_LIB_TEXT("connector already open \n")),
- -1);
-
- //int result =
- ACE_POSIX_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-
- // Ignore result as we pass ACE_INVALID_HANDLE
- //if (result == -1)
- // return result;
-
- this->flg_open_ = 1;
-
- return 0;
-}
-
-int
-ACE_POSIX_Asynch_Connect::connect (ACE_HANDLE connect_handle,
- const ACE_Addr & remote_sap,
- const ACE_Addr & local_sap,
- int reuse_addr,
- const void *act,
- int priority,
- int signal_number)
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Connect::connect\n"));
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- if (this->flg_open_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT("%N:%l:ACE_POSIX_Asynch_Connect::connect")
- ACE_LIB_TEXT("connector was not opened before\n")),
- -1);
-
- // Common code for both WIN and POSIX.
- // Create future Asynch_Connect_Result
- ACE_POSIX_Asynch_Connect_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_POSIX_Asynch_Connect_Result (*this->handler_,
- connect_handle,
- act,
- this->posix_proactor ()->get_handle (),
- priority,
- signal_number),
- -1);
-
- int rc = connect_i (result,
- remote_sap,
- local_sap,
- reuse_addr);
-
- // update handle
- connect_handle = result->connect_handle ();
-
- if (rc != 0)
- return post_result (result, 1);
-
- // Enqueue result we will wait for completion
-
- if (this->result_map_.bind (connect_handle, result) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT("%N:%l:ACE_POSIX_Asynch_Connect::connect:")
- ACE_LIB_TEXT("result map binding failed\n")));
-
- result->set_error (EFAULT);
- return post_result (result, 1);
- }
-
- task_lock_count_ ++;
- }
-
- ACE_Asynch_Pseudo_Task & task =
- this->posix_proactor ()->get_asynch_pseudo_task ();
-
- int rc_task = task.register_io_handler (connect_handle,
- this,
- ACE_Event_Handler::CONNECT_MASK,
- 0); // not to suspend after register
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- this->task_lock_count_ --;
-
- int post_enable = 1;
-
- if (rc_task == -2 && task_lock_count_ == 0) // task is closing
- {
- post_enable = 0;
- task.unlock_finish ();
- }
-
- if (rc_task < 0)
- {
- ACE_POSIX_Asynch_Connect_Result *result = 0;
-
- this->result_map_.unbind (connect_handle, result);
-
- if (result != 0)
- {
- result->set_error (EFAULT);
-
- return post_result (result, post_enable);
- }
- }
- }
-
- return 0;
-}
-
-int ACE_POSIX_Asynch_Connect::post_result (ACE_POSIX_Asynch_Connect_Result * result,
- int post_enable)
-{
- if (this->flg_open_ != 0 && post_enable != 0)
- {
- if (this->posix_proactor ()->post_completion (result) == 0)
- return 0 ;
-
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT("Error:(%P | %t):%p\n"),
- ACE_LIB_TEXT("ACE_POSIX_Asynch_Connect::post_result: ")
- ACE_LIB_TEXT(" <post_completion> failed")));
- }
-
- ACE_HANDLE handle = result->connect_handle ();
-
- if (handle != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (handle);
-
- delete result;
-
- return -1;
-}
-
-//@@ New method connect_i
-// return code :
-// -1 errors before attempt to connect
-// 0 connect started
-// 1 connect finished ( may be unsuccessfully)
-
-int
-ACE_POSIX_Asynch_Connect::connect_i (ACE_POSIX_Asynch_Connect_Result *result,
- const ACE_Addr & remote_sap,
- const ACE_Addr & local_sap,
- int reuse_addr)
-{
- result->set_bytes_transferred (0);
-
- ACE_HANDLE handle = result->connect_handle ();
-
- if (handle == ACE_INVALID_HANDLE)
- {
- int protocol_family = remote_sap.get_type ();
-
- handle = ACE_OS::socket (protocol_family,
- SOCK_STREAM,
- 0);
- // save it
- result->connect_handle (handle);
-
- if (handle == ACE_INVALID_HANDLE)
- {
- result->set_error (errno);
-
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT("%N:%l:ACE_POSIX_Asynch_Connect::connect_i: ")
- ACE_LIB_TEXT(" ACE_OS::socket failed\n")),
- -1);
- }
-
- // Reuse the address
- int one = 1;
- if (protocol_family != PF_UNIX &&
- reuse_addr != 0 &&
- ACE_OS::setsockopt (handle,
- SOL_SOCKET,
- SO_REUSEADDR,
- (const char*) &one,
- sizeof one) == -1 )
- {
- result->set_error (errno);
-
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT("%N:%l:ACE_POSIX_Asynch_Connect::connect_i: ")
- ACE_LIB_TEXT(" ACE_OS::setsockopt failed\n")),
- -1);
- }
- }
-
- if (local_sap != ACE_Addr::sap_any)
- {
- sockaddr * laddr = ACE_reinterpret_cast (sockaddr *,
- local_sap.get_addr ());
- size_t size = local_sap.get_size ();
-
- if (ACE_OS::bind (handle, laddr, size) == -1)
- {
- result->set_error (errno);
-
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT("%N:%l:ACE_POSIX_Asynch_Connect::connect_i: ")
- ACE_LIB_TEXT(" ACE_OS::bind failed\n")),
- -1);
- }
- }
-
- // set non blocking mode
- if (ACE::set_flags (handle, ACE_NONBLOCK) != 0)
- {
- result->set_error (errno);
-
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT("%N:%l:ACE_POSIX_Asynch_Connect::connect_i: ")
- ACE_LIB_TEXT(" ACE::set_flags failed\n")),
- -1);
- }
-
- for (;;)
- {
- int rc = ACE_OS::connect (handle,
- ACE_reinterpret_cast (sockaddr *,
- remote_sap.get_addr ()),
- remote_sap.get_size ());
- if (rc < 0) // failure
- {
- if (errno == EWOULDBLOCK || errno == EINPROGRESS)
- return 0; // connect started
-
- if (errno == EINTR)
- continue;
-
- result->set_error (errno);
- }
-
- return 1 ; // connect finished
- }
-
- ACE_NOTREACHED (return 0);
-}
-
-
-//@@ New method cancel_uncompleted
-// It performs cancellation of all pending requests
-//
-// Parameter flg_notify can be
-// 0 - don't send notifications about canceled accepts
-// !0 - notify user about canceled accepts
-// according POSIX standards we should receive notifications
-// on canceled AIO requests
-//
-// Return value : number of cancelled requests
-//
-
-int
-ACE_POSIX_Asynch_Connect::cancel_uncompleted (int flg_notify,
- ACE_Handle_Set & set)
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Connect::cancel_uncompleted\n"));
-
- int retval = 0;
-
- MAP_MANAGER::ITERATOR iter (result_map_);
- MAP_MANAGER::ENTRY * me = 0;
-
- set.reset ();
-
- for (; iter.next (me) != 0; retval++ , iter.advance ())
- {
- ACE_HANDLE handle = me->ext_id_;
- ACE_POSIX_Asynch_Connect_Result* result = me->int_id_ ;
-
- set.set_bit (handle);
-
- result->set_bytes_transferred (0);
- result->set_error (ECANCELED);
- this->post_result (result, flg_notify);
- }
-
- result_map_.unbind_all ();
-
- return retval;
-}
-
-int
-ACE_POSIX_Asynch_Connect::cancel (void)
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Connect::cancel\n"));
-
- //We are not really ACE_POSIX_Asynch_Operation
- //so we could not call ::aiocancel ()
- // or just write
- //return ACE_POSIX_Asynch_Operation::cancel ();
- //We delegate real cancelation to cancel_uncompleted (1)
-
- int rc = -1 ; // ERRORS
-
- ACE_Handle_Set set;
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- int num_cancelled = cancel_uncompleted (flg_open_, set);
-
- if (num_cancelled == 0)
- rc = 1 ; // AIO_ALLDONE
- else if (num_cancelled > 0)
- rc = 0 ; // AIO_CANCELED
-
- if (this->flg_open_ == 0)
- return rc ;
-
- this->task_lock_count_++;
- }
-
- ACE_Asynch_Pseudo_Task & task =
- this->posix_proactor ()->get_asynch_pseudo_task ();
-
- int rc_task = task.remove_io_handler (set);
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- this->task_lock_count_--;
-
- if (rc_task == -2 && task_lock_count_ == 0) // task is closing
- task.unlock_finish ();
- }
-
- return rc;
-}
-
-int
-ACE_POSIX_Asynch_Connect::close (void)
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Connect::close\n"));
-
- ACE_Handle_Set set ;
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- int num_cancelled = cancel_uncompleted (flg_open_, set);
-
- if (num_cancelled == 0 || this->flg_open_ == 0)
- {
- this->flg_open_ = 0;
- return 0;
- }
-
- this->task_lock_count_++;
- }
-
- ACE_Asynch_Pseudo_Task & task =
- this->posix_proactor ()->get_asynch_pseudo_task ();
-
- int rc_task = task.remove_io_handler (set);
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- this->task_lock_count_--;
-
- if (rc_task == -2 && task_lock_count_ == 0) // task is closing
- task.unlock_finish ();
-
- this->flg_open_ = 0;
- }
-
- return 0;
-}
-
-int
-ACE_POSIX_Asynch_Connect::handle_exception (ACE_HANDLE fd)
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Connect::handle_exception\n"));
- return handle_input (fd);
-}
-
-int
-ACE_POSIX_Asynch_Connect::handle_input (ACE_HANDLE fd)
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Connect::handle_input\n"));
-
- return handle_input (fd);
-}
-
-int
-ACE_POSIX_Asynch_Connect::handle_output (ACE_HANDLE fd)
-{
- ACE_TRACE (ACE_LIB_TEXT("ACE_POSIX_Asynch_Connect::handle_output\n"));
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, 0));
-
- ACE_POSIX_Asynch_Connect_Result* result = 0;
-
- if (this->result_map_.unbind (fd, result) != 0) // not found
- return -1;
-
- int sockerror = 0 ;
- int lsockerror = sizeof sockerror;
-
- ACE_OS::getsockopt (fd,
- SOL_SOCKET,
- SO_ERROR,
- (char*) &sockerror,
- &lsockerror);
-
- result->set_bytes_transferred (0);
- result->set_error (sockerror);
- this->post_result (result, this->flg_open_);
-
- return -1;
-
- //ACE_Asynch_Pseudo_Task & task =
- // this->posix_proactor()->get_asynch_pseudo_task();
-
- //task.remove_io_handler ( fd );
-
- //return 0;
-}
-
-
-int
-ACE_POSIX_Asynch_Connect::handle_close (ACE_HANDLE fd, ACE_Reactor_Mask)
-{
- ACE_TRACE (ACE_LIB_TEXT ("ACE_POSIX_Asynch_Connect::handle_close\n"));
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, 0));
-
- ACE_Asynch_Pseudo_Task &task =
- this->posix_proactor ()->get_asynch_pseudo_task ();
-
- if (task.is_active() == 0) // task is closing
- {
- if (this->flg_open_ !=0) // we are open
- {
- this->flg_open_ = 0;
-
- // it means other thread is waiting for reactor token_
- if (task_lock_count_ > 0)
- task.lock_finish ();
- }
-
- ACE_Handle_Set set;
- this->cancel_uncompleted (0, set);
-
- return 0;
- }
-
- // remove_io_handler() contains flag DONT_CALL
- // so it is save
- task.remove_io_handler (fd);
-
- ACE_POSIX_Asynch_Connect_Result* result = 0;
-
- if (this->result_map_.unbind (fd, result) != 0 ) // not found
- return -1;
-
- result->set_bytes_transferred (0);
- result->set_error (ECANCELED);
- this->post_result (result, this->flg_open_);
-
- return 0;
-}
-
-// *********************************************************************
-
-ACE_HANDLE
-ACE_POSIX_Asynch_Transmit_File_Result::socket (void) const
-{
- return this->socket_;
-}
-
-ACE_HANDLE
-ACE_POSIX_Asynch_Transmit_File_Result::file (void) const
-{
- return this->aio_fildes;
-}
-
-ACE_Asynch_Transmit_File::Header_And_Trailer *
-ACE_POSIX_Asynch_Transmit_File_Result::header_and_trailer (void) const
-{
- return this->header_and_trailer_;
-}
-
-size_t
-ACE_POSIX_Asynch_Transmit_File_Result::bytes_to_write (void) const
-{
- return this->aio_nbytes;
-}
-
-size_t
-ACE_POSIX_Asynch_Transmit_File_Result::bytes_per_send (void) const
-{
- return this->bytes_per_send_;
-}
-
-u_long
-ACE_POSIX_Asynch_Transmit_File_Result::flags (void) const
-{
- return this->flags_;
-}
-
-ACE_POSIX_Asynch_Transmit_File_Result::ACE_POSIX_Asynch_Transmit_File_Result
- (ACE_Handler &handler,
- ACE_HANDLE socket,
- ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Transmit_File_Result_Impl (),
- ACE_POSIX_Asynch_Result (handler, act, event, offset, offset_high, priority, signal_number),
- socket_ (socket),
- header_and_trailer_ (header_and_trailer),
- bytes_per_send_ (bytes_per_send),
- flags_ (flags)
-{
- this->aio_fildes = file;
- this->aio_nbytes = bytes_to_write;
-}
-
-void
-ACE_POSIX_Asynch_Transmit_File_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data.
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // We will not do this because (a) the header and trailer blocks may
- // be the same message_blocks and (b) in cases of failures we have
- // no idea how much of what (header, data, trailer) was sent.
- /*
- if (this->success_ && this->header_and_trailer_ != 0)
- {
- ACE_Message_Block *header = this->header_and_trailer_->header ();
- if (header != 0)
- header->rd_ptr (this->header_and_trailer_->header_bytes ());
-
- ACE_Message_Block *trailer = this->header_and_trailer_->trailer ();
- if (trailer != 0)
- trailer->rd_ptr (this->header_and_trailer_->trailer_bytes ());
- }
- */
-
- // Create the interface result class.
- ACE_Asynch_Transmit_File::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_transmit_file (result);
-}
-
-ACE_POSIX_Asynch_Transmit_File_Result::~ACE_POSIX_Asynch_Transmit_File_Result (void)
-{
-}
-
-
-// *********************************************************************
-
-/**
- * @class ACE_POSIX_Asynch_Transmit_Handler
- *
- * @brief Auxillary handler for doing <Asynch_Transmit_File> in
- * Unix. <ACE_POSIX_Asynch_Transmit_File> internally uses this.
- *
- * This is a helper class for implementing
- * <ACE_POSIX_Asynch_Transmit_File> in Unix systems.
- */
-class ACE_Export ACE_POSIX_Asynch_Transmit_Handler : public ACE_Handler
-{
-public:
- /// Constructor. Result pointer will have all the information to do
- /// the file transmission (socket, file, application handler, bytes
- /// to write).
- ACE_POSIX_Asynch_Transmit_Handler (ACE_POSIX_Proactor *posix_proactor,
- ACE_POSIX_Asynch_Transmit_File_Result *result);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Transmit_Handler (void);
-
- /// Do the transmission. All the info to do the transmission is in
- /// the <result> member.
- int transmit (void);
-
-protected:
-
- /// The asynch result pointer made from the initial transmit file
- /// request.
- ACE_POSIX_Asynch_Transmit_File_Result *result_;
-
- /// Message bloack used to do the transmission.
- ACE_Message_Block *mb_;
-
- enum ACT
- {
- HEADER_ACT = 1,
- DATA_ACT = 2,
- TRAILER_ACT = 3
- };
-
- /// ACT to transmit header.
- ACT header_act_;
-
- /// ACT to transmit data.
- ACT data_act_;
-
- /// ACT to transmit trailer.
- ACT trailer_act_;
-
- /// Current offset of the file being transmitted.
- size_t file_offset_;
-
- /// Total size of the file.
- size_t file_size_;
-
- /// Number of bytes transferred on the stream.
- size_t bytes_transferred_;
-
- /// This is called when asynchronous writes from the socket complete.
- virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result);
-
- /// This is called when asynchronous reads from the file complete.
- virtual void handle_read_file (const ACE_Asynch_Read_File::Result &result);
-
- /// Issue asynch read from the file.
- int initiate_read_file (void);
-
- /// To read from the file to be transmitted.
- ACE_POSIX_Asynch_Read_File rf_;
-
- /// Write stream to write the header, trailer and the data.
- ACE_POSIX_Asynch_Write_Stream ws_;
-};
-
-// ************************************************************
-
-// Constructor.
-ACE_POSIX_Asynch_Transmit_Handler::ACE_POSIX_Asynch_Transmit_Handler
- (ACE_POSIX_Proactor *posix_proactor,
- ACE_POSIX_Asynch_Transmit_File_Result *result)
- : result_ (result),
- mb_ (0),
- header_act_ (this->HEADER_ACT),
- data_act_ (this->DATA_ACT),
- trailer_act_ (this->TRAILER_ACT),
- file_offset_ (result->offset ()),
- file_size_ (0),
- bytes_transferred_ (0),
- rf_ (posix_proactor),
- ws_ (posix_proactor)
-{
- // Allocate memory for the message block.
- ACE_NEW (this->mb_,
- ACE_Message_Block (this->result_->bytes_per_send ()
- + 1));
- // Init the file size.
- file_size_ = ACE_OS::filesize (this->result_->file ());
-}
-
-// Destructor.
-ACE_POSIX_Asynch_Transmit_Handler::~ACE_POSIX_Asynch_Transmit_Handler (void)
-{
- delete result_;
- mb_->release ();
-}
-
-
-// Do the transmission.
-// Initiate transmitting the header. When that completes
-// handle_write_stream will be called, there start transmitting the file.
-int
-ACE_POSIX_Asynch_Transmit_Handler::transmit (void)
-{
- // No proactor is given for the <open>'s. Because we are using the
- // concrete implementations of the Asynch_Operations, and we have
- // already given them the specific proactor, so they wont need the
- // general <proactor> interface pointer.
-
- // Open Asynch_Read_File.
- if (this->rf_.open (*this,
- this->result_->file (),
- 0,
- 0) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "ACE_Asynch_Transmit_Handler:read_file open failed\n"),
- -1);
-
- // Open Asynch_Write_Stream.
- if (this->ws_.open (*this,
- this->result_->socket (),
- 0,
- 0) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "ACE_Asynch_Transmit_Handler:write_stream open failed\n"),
- -1);
-
- // Transmit the header.
- if (this->ws_.write (*this->result_->header_and_trailer ()->header (),
- this->result_->header_and_trailer ()->header_bytes (),
- ACE_reinterpret_cast (void *, &this->header_act_),
- 0) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Asynch_Transmit_Handler:transmitting header:write_stream failed\n"),
- -1);
- return 0;
-}
-
-void
-ACE_POSIX_Asynch_Transmit_Handler::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
-{
- // Update bytes transferred so far.
- this->bytes_transferred_ += result.bytes_transferred ();
-
- // Check the success parameter.
- if (result.success () == 0)
- {
- // Failure.
-
- ACE_ERROR ((LM_ERROR,
- "Asynch_Transmit_File failed.\n"));
-
- ACE_SEH_TRY
- {
- this->result_->complete (this->bytes_transferred_,
- 0, // Failure.
- 0, // @@ Completion key.
- 0); // @@ Error no.
- }
- ACE_SEH_FINALLY
- {
- // This is crucial to prevent memory leaks. This deletes
- // the result pointer also.
- delete this;
- }
- }
-
- // Write stream successful.
-
- // Partial write to socket.
- int unsent_data = result.bytes_to_write () - result.bytes_transferred ();
- if (unsent_data != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%N:%l:Partial write to socket: Asynch_write called again\n"));
-
- // Duplicate the message block and retry remaining data
- if (this->ws_.write (*result.message_block ().duplicate (),
- unsent_data,
- result.act (),
- this->result_->priority (),
- this->result_->signal_number ()) == -1)
- {
- // @@ Handle this error.
- ACE_ERROR ((LM_ERROR,
- "Asynch_Transmit_Handler:write_stream failed\n"));
- return;
- }
-
- // @@ Handling *partial write* to a socket. Let us not continue
- // further before this write finishes. Because proceeding with
- // another read and then write might change the order of the
- // file transmission, because partial write to the stream is
- // always possible.
- return;
- }
-
- // Not a partial write. A full write.
-
- // Check ACT to see what was sent.
- ACT act = * (ACT *) result.act ();
-
- switch (act)
- {
- case TRAILER_ACT:
- // If it is the "trailer" that is just sent, then transmit file
- // is complete.
- // Call the application handler.
- ACE_SEH_TRY
- {
- this->result_->complete (this->bytes_transferred_,
- 1, // @@ Success.
- 0, // @@ Completion key.
- 0); // @@ Errno.
- }
- ACE_SEH_FINALLY
- {
- delete this;
- }
- break;
-
- case HEADER_ACT:
- case DATA_ACT:
- // If header/data was sent, initiate the file data transmission.
- if (this->initiate_read_file () == -1)
- // @@ Handle this error.
- ACE_ERROR ((LM_ERROR,
- "Error:Asynch_Transmit_Handler:read_file couldnt be initiated\n"));
- break;
-
- default:
- // @@ Handle this error.
- ACE_ERROR ((LM_ERROR,
- "Error:ACE_Asynch_Transmit_Handler::handle_write_stream::Unexpected act\n"));
- }
-}
-
-void
-ACE_POSIX_Asynch_Transmit_Handler::handle_read_file (const ACE_Asynch_Read_File::Result &result)
-{
- // Failure.
- if (result.success () == 0)
- {
- //
- ACE_SEH_TRY
- {
- this->result_->complete (this->bytes_transferred_,
- 0, // Failure.
- 0, // @@ Completion key.
- errno); // Error no.
- }
- ACE_SEH_FINALLY
- {
- delete this;
- }
- return;
- }
-
- // Read successful.
- if (result.bytes_transferred () == 0)
- return;
-
- // Increment offset.
- this->file_offset_ += result.bytes_transferred ();
-
- // Write data to network.
- if (this->ws_.write (result.message_block (),
- result.bytes_transferred (),
- (void *)&this->data_act_,
- this->result_->priority (),
- this->result_->signal_number ()) == -1)
- {
- // @@ Handle this error.
- ACE_ERROR ((LM_ERROR,
- "Error:ACE_Asynch_Transmit_File : write to the stream failed\n"));
- return;
- }
-}
-
-int
-ACE_POSIX_Asynch_Transmit_Handler::initiate_read_file (void)
-{
- // Is there something to read.
- if (this->file_offset_ >= this->file_size_)
- {
- // File is sent. Send the trailer.
- if (this->ws_.write (*this->result_->header_and_trailer ()->trailer (),
- this->result_->header_and_trailer ()->trailer_bytes (),
- (void *)&this->trailer_act_,
- this->result_->priority (),
- this->result_->signal_number ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Error:Asynch_Transmit_Handler:write_stream writing trailer failed\n"),
- -1);
- return 0;
- }
- else
- {
- // @@ Is this right??
- // Previous reads and writes are over. For the new read, adjust
- // the wr_ptr and the rd_ptr to the beginning.
- this->mb_->rd_ptr (this->mb_->base ());
- this->mb_->wr_ptr (this->mb_->base ());
-
- // Inititiate an asynchronous read from the file.
- if (this->rf_.read (*this->mb_,
- this->mb_->size () - 1,
- this->file_offset_,
- 0, // @@ offset_high !!! if aiocb64 is used.
- 0, // Act
- this->result_->priority (),
- this->result_->signal_number ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Error:Asynch_Transmit_Handler::read from file failed\n"),
- -1);
- return 0;
- }
-}
-
-// *********************************************************************
-
-ACE_POSIX_Asynch_Transmit_File::ACE_POSIX_Asynch_Transmit_File (ACE_POSIX_Proactor *posix_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Transmit_File_Impl (),
- ACE_POSIX_Asynch_Operation (posix_proactor)
-{
-}
-
-int
-ACE_POSIX_Asynch_Transmit_File::transmit_file (ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- int priority,
- int signal_number)
-{
- // Adjust these parameters if there are default values specified.
- ssize_t file_size = ACE_OS::filesize (file);
-
- if (file_size == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Error:%N:%l:%p\n",
- "POSIX_Asynch_Transmit_File:filesize failed"),
- -1);
-
- if (bytes_to_write == 0)
- bytes_to_write = file_size;
-
- if (offset > (size_t) file_size)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Error:%p\n",
- "Asynch_Transmit_File:File size is less than offset"),
- -1);
-
- if (offset != 0)
- bytes_to_write = file_size - offset + 1;
-
- if (bytes_per_send == 0)
- bytes_per_send = bytes_to_write;
-
- // Configure the result parameter.
- ACE_POSIX_Asynch_Transmit_File_Result *result = 0;
-
- ACE_NEW_RETURN (result,
- ACE_POSIX_Asynch_Transmit_File_Result (*this->handler_,
- this->handle_,
- file,
- header_and_trailer,
- bytes_to_write,
- offset,
- offset_high,
- bytes_per_send,
- flags,
- act,
- this->posix_proactor ()->get_handle (),
- priority,
- signal_number),
- -1);
-
- // Make the auxillary handler and initiate transmit.
- ACE_POSIX_Asynch_Transmit_Handler *transmit_handler = 0;
-
- ACE_NEW_RETURN (transmit_handler,
- ::ACE_POSIX_Asynch_Transmit_Handler (this->posix_proactor (),
- result),
- -1);
-
- ssize_t return_val = transmit_handler->transmit ();
-
- if (return_val == -1)
- // This deletes the <result> in it too.
- delete transmit_handler;
-
- return 0;
-}
-
-ACE_POSIX_Asynch_Transmit_File::~ACE_POSIX_Asynch_Transmit_File (void)
-{
-}
-
-// *********************************************************************
-size_t
-ACE_POSIX_Asynch_Read_Dgram_Result::bytes_to_read (void) const
-{
- return this->bytes_to_read_;
-}
-
-int
-ACE_POSIX_Asynch_Read_Dgram_Result::remote_address (ACE_Addr& addr) const
-{
- int retVal = -1; // failure
-
- // make sure the addresses are of the same type
- if (addr.get_type () == this->remote_address_->get_type ())
- { // copy the remote_address_ into addr
- addr.set_addr (this->remote_address_->get_addr (),
- this->remote_address_->get_size ());
- retVal = 0; // success
- }
-
- return retVal;
-}
-
-sockaddr *
-ACE_POSIX_Asynch_Read_Dgram_Result::saddr () const
-{
- return (sockaddr *) this->remote_address_->get_addr ();
-}
-
-
-int
-ACE_POSIX_Asynch_Read_Dgram_Result::flags (void) const
-{
- return this->flags_;
-}
-
-ACE_HANDLE
-ACE_POSIX_Asynch_Read_Dgram_Result::handle (void) const
-{
- return this->handle_;
-}
-
-ACE_Message_Block*
-ACE_POSIX_Asynch_Read_Dgram_Result::message_block () const
-{
- return this->message_block_;
-}
-
-ACE_POSIX_Asynch_Read_Dgram_Result::ACE_POSIX_Asynch_Read_Dgram_Result
- (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_read,
- int flags,
- int protocol_family,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Read_Dgram_Result_Impl(),
- ACE_POSIX_Asynch_Result (handler, act, event, 0, 0, priority, signal_number),
- bytes_to_read_ (bytes_to_read),
- message_block_ (message_block),
- remote_address_ (0),
- addr_len_ (0),
- flags_ (flags),
- handle_ (handle)
-{
- ACE_UNUSED_ARG (protocol_family);
- this->aio_fildes = handle;
- this->aio_nbytes = bytes_to_read;
- ACE_NEW (this->remote_address_, ACE_INET_Addr);
-}
-
-void
-ACE_POSIX_Asynch_Read_Dgram_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data which was returned by GetQueuedCompletionStatus
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // <errno> is available in the aiocb.
- ACE_UNUSED_ARG (error);
-
- this->remote_address_->set_size(this->addr_len_);
-
- // Create the interface result class.
- ACE_Asynch_Read_Dgram::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_read_dgram (result);
-}
-
-ACE_POSIX_Asynch_Read_Dgram_Result::~ACE_POSIX_Asynch_Read_Dgram_Result (void)
-{
- delete this->remote_address_;
-}
-
-//***************************************************************************
-size_t
-ACE_POSIX_Asynch_Write_Dgram_Result::bytes_to_write (void) const
-{
- return this->bytes_to_write_;
-}
-
-int
-ACE_POSIX_Asynch_Write_Dgram_Result::flags (void) const
-{
- return this->flags_;
-}
-
-ACE_HANDLE
-ACE_POSIX_Asynch_Write_Dgram_Result::handle (void) const
-{
- return this->handle_;
-}
-
-
-ACE_Message_Block*
-ACE_POSIX_Asynch_Write_Dgram_Result::message_block () const
-{
- return this->message_block_;
-}
-
-ACE_POSIX_Asynch_Write_Dgram_Result::ACE_POSIX_Asynch_Write_Dgram_Result
- (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_write,
- int flags,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Write_Dgram_Result_Impl(),
- ACE_POSIX_Asynch_Result (handler, act, event, 0, 0, priority, signal_number),
- bytes_to_write_ (bytes_to_write),
- message_block_ (message_block),
- flags_ (flags),
- handle_ (handle)
-
-{
- this->aio_fildes = handle;
- this->aio_nbytes = bytes_to_write;
-}
-
-void
-ACE_POSIX_Asynch_Write_Dgram_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data which was returned by GetQueuedCompletionStatus
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // <errno> is available in the aiocb.
- ACE_UNUSED_ARG (error);
-
- // Appropriately move the pointers in the message block.
- //this->message_block_.wr_ptr (bytes_transferred);
-
- // Create the interface result class.
- ACE_Asynch_Write_Dgram::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_write_dgram (result);
-}
-
-ACE_POSIX_Asynch_Write_Dgram_Result::~ACE_POSIX_Asynch_Write_Dgram_Result (void)
-{
-}
-
-/***************************************************************************/
-ACE_POSIX_Asynch_Read_Dgram::~ACE_POSIX_Asynch_Read_Dgram (void)
-{
-}
-
-ssize_t
-ACE_POSIX_Asynch_Read_Dgram::recv (ACE_Message_Block *message_block,
- size_t &number_of_bytes_recvd,
- int flags,
- int protocol_family,
- const void *act,
- int priority,
- int signal_number)
-{
- ACE_UNUSED_ARG (message_block);
- ACE_UNUSED_ARG (number_of_bytes_recvd);
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (protocol_family);
- ACE_UNUSED_ARG (act);
- ACE_UNUSED_ARG (priority);
- ACE_UNUSED_ARG (signal_number);
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_POSIX_Asynch_Read_Dgram::ACE_POSIX_Asynch_Read_Dgram (ACE_POSIX_Proactor *posix_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Read_Dgram_Impl (),
- ACE_POSIX_Asynch_Operation (posix_proactor)
-{
-}
-
-//***************************************************************************
-
-ACE_POSIX_Asynch_Write_Dgram::~ACE_POSIX_Asynch_Write_Dgram (void)
-{
-}
-
-ssize_t
-ACE_POSIX_Asynch_Write_Dgram::send (ACE_Message_Block *message_block,
- size_t &number_of_bytes_sent,
- int flags,
- const ACE_Addr &addr,
- const void *act,
- int priority,
- int signal_number)
-{
- ACE_UNUSED_ARG (message_block);
- ACE_UNUSED_ARG (number_of_bytes_sent);
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (addr);
- ACE_UNUSED_ARG (act);
- ACE_UNUSED_ARG (priority);
- ACE_UNUSED_ARG (signal_number);
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_POSIX_Asynch_Write_Dgram::ACE_POSIX_Asynch_Write_Dgram
- (ACE_POSIX_Proactor *posix_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Write_Dgram_Impl (),
- ACE_POSIX_Asynch_Operation (posix_proactor)
-{
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Unbounded_Queue<ACE_POSIX_Asynch_Accept_Result *>;
-template class ACE_Node<ACE_POSIX_Asynch_Accept_Result *>;
-template class ACE_Unbounded_Queue_Iterator<ACE_POSIX_Asynch_Accept_Result *>;
-
-template class ACE_Unbounded_Queue<ACE_POSIX_Asynch_Result *>;
-template class ACE_Node<ACE_POSIX_Asynch_Result *>;
-template class ACE_Unbounded_Queue_Iterator<ACE_POSIX_Asynch_Result *>;
-
-template class ACE_Map_Entry<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *>;
-template class ACE_Map_Manager<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Map_Iterator_Base<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Map_Const_Iterator_Base<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Map_Iterator<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Map_Const_Iterator<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_Unbounded_Queue<ACE_POSIX_Asynch_Accept_Result *>
-#pragma instantiate ACE_Node<ACE_POSIX_Asynch_Accept_Result *>
-#pragma instantiate ACE_Unbounded_Queue_Iterator<ACE_POSIX_Asynch_Accept_Result *>
-
-#pragma instantiate ACE_Unbounded_Queue<ACE_POSIX_Asynch_Result *>
-#pragma instantiate ACE_Node<ACE_POSIX_Asynch_Result *>
-#pragma instantiate ACE_Unbounded_Queue_Iterator<ACE_POSIX_Asynch_Result *>
-
-#pragma instantiate ACE_Map_Entry<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *>
-#pragma instantiate ACE_Map_Manager<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Map_Const_Iterator_Base<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Map_Iterator<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Map_Const_Iterator<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
-
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-
-#endif /* ACE_HAS_AIO_CALLS */
diff --git a/ace/POSIX_Asynch_IO.h b/ace/POSIX_Asynch_IO.h
deleted file mode 100644
index e54a4a2de57..00000000000
--- a/ace/POSIX_Asynch_IO.h
+++ /dev/null
@@ -1,1309 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file POSIX_Asynch_IO.h
- *
- * $Id$
- *
- * The implementation classes for POSIX implementation of Asynch
- * Operations are defined here in this file.
- *
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- * @author Tim Harrison <harrison@cs.wustl.edu>
- * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
- * @author Roger Tragin <r.tragin@computer.org>
- * @author Alexander Libman <alibman@baltimore.com>
- */
-//=============================================================================
-
-#ifndef ACE_POSIX_ASYNCH_IO_H
-#define ACE_POSIX_ASYNCH_IO_H
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_AIO_CALLS)
-
-#include "ace/OS.h"
-
-#include "ace/Asynch_IO_Impl.h"
-#include "ace/Unbounded_Queue.h"
-#include "ace/Map_Manager.h"
-#if defined(INTEGRITY)
-#include "ace/Event_Handler.h"
-#include "ace/ACE.h"
-#endif
-
-// Forward declarations
-class ACE_POSIX_Proactor;
-class ACE_Proactor_Impl;
-class ACE_Handle_Set;
-
-/**
- * @class ACE_POSIX_Asynch_Result
- *
- * This class provides concrete implementation for ACE_Asynch_Result
- * for POSIX4 platforms. This class extends @c aiocb and makes it more
- * useful.
- */
-class ACE_Export ACE_POSIX_Asynch_Result : public virtual ACE_Asynch_Result_Impl,
- public aiocb
-{
-public:
- /// Number of bytes transferred by the operation.
- size_t bytes_transferred (void) const;
-
- /// ACT associated with the operation.
- const void *act (void) const;
-
- /// Did the operation succeed?
- int success (void) const;
-
- /**
- * This is the ACT associated with the handle on which the
- * Asynch_Operation takes place.
- *
- * @@ This is not implemented for POSIX4 platforms.
- *
- */
- const void *completion_key (void) const;
-
- /// Error value if the operation fail.
- u_long error (void) const;
-
- /// This returns ACE_INVALID_HANDLE on POSIX4 platforms.
- ACE_HANDLE event (void) const;
-
- /**
- * This really make sense only when doing file I/O.
- *
- * @@ On POSIX4-Unix, offset_high should be supported using
- * aiocb64.
- *
- */
- u_long offset (void) const;
- u_long offset_high (void) const;
-
- /// Priority of the operation.
- int priority (void) const;
-
- /**
- * POSIX4 realtime signal number to be used for the
- * operation. <signal_number> ranges from SIGRTMIN to SIGRTMAX. By
- * default, SIGRTMIN is used to issue <aio_> calls.
- */
- int signal_number (void) const;
-
- /// Post <this> to the Proactor.
- int post_completion (ACE_Proactor_Impl *proactor);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Result (void);
-
- /// Simulate error value to use in the post_completion ()
- void set_error (u_long errcode);
-
- /// Simulate value to use in the post_completion ()
- void set_bytes_transferred (size_t nbytes);
-
-protected:
- /// Constructor. <Event> is not used on POSIX.
- ACE_POSIX_Asynch_Result (ACE_Handler &handler,
- const void* act,
- ACE_HANDLE event,
- u_long offset,
- u_long offset_high,
- int priority,
- int signal_number);
-
- /// Handler that will be called back.
- ACE_Handler &handler_;
-
- /**
- * ACT for this operation.
- * We could use <aiocb::aio_sigevent.sigev_value.sival_ptr> for
- * this. But it doesnot provide the constness, so this may be
- * better.
- */
- const void *act_;
-
- /// Bytes transferred by this operation.
- size_t bytes_transferred_;
-
- /// Success indicator.
- int success_;
-
- /// ACT associated with handle.
- const void *completion_key_;
-
- /// Error if operation failed.
- u_long error_;
-};
-
-/**
- * @class ACE_POSIX_Asynch_Operation
- *
- * @brief This class implements <ACE_Asynch_Operation> for all
- * implementations of Proactor (AIOCB, SIG, SUN)
- * Specific future implementations
- * can derive from this class.
- */
-class ACE_Export ACE_POSIX_Asynch_Operation : public virtual ACE_Asynch_Operation_Impl
-{
-public:
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle. No need for the Proactor since the sub classes
- * will know the correct implementation Proactor class, since this
- * Operation class itself was created by the correct implementation
- * Proactor class.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor = 0);
-
- /// Check the documentation for <ACE_Asynch_Operation::cancel>.
- int cancel (void);
-
- // = Access methods.
-
- /// Return the underlying proactor.
- ACE_Proactor* proactor (void) const;
-
- /// Return the underlying Proactor implementation.
- ACE_POSIX_Proactor * posix_proactor (void) const;
-
-protected:
- /// Contructor.
- ACE_POSIX_Asynch_Operation (ACE_POSIX_Proactor *posix_proactor);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Operation (void);
-
- // This call is for the POSIX implementation. This method is used by
- // <ACE_Asynch_Operation> to store some information with the
- // Proactor after an <aio_> call is issued, so that the Proactor can
- // retreve this information to do <aio_return> and <aio_error>.
- // Passing a '0' ptr returns the status, indicating whether there
- // are slots available or no. Passing a valid ptr stores the ptr
- // with the Proactor.
-
- /**
- * It is easy to get this specific implementation proactor here,
- * since it is the one that creates the correct POSIX_Asynch_*
- * objects. We can use this to get to the implementation proactor
- * directly.
- */
- ACE_POSIX_Proactor *posix_proactor_;
-
- /// Proactor that this Asynch IO will be registered with.
- ACE_Proactor *proactor_;
-
- /// Handler that will receive the callback.
- ACE_Handler *handler_;
-
- /// I/O handle used for reading.
- ACE_HANDLE handle_;
-};
-
-/**
- * @class ACE_POSIX_Asynch_Read_Stream_Result
- *
- * @brief This class provides concrete implementation for
- * <ACE_Asynch_Read_Stream::Result> class for POSIX platforms.
- */
-class ACE_Export ACE_POSIX_Asynch_Read_Stream_Result : public virtual ACE_Asynch_Read_Stream_Result_Impl,
- public ACE_POSIX_Asynch_Result
-{
-
- /// Factory classes will have special permissions.
- friend class ACE_POSIX_Asynch_Read_Stream;
-
- /// The Proactor constructs the Result class for faking results.
- friend class ACE_POSIX_Proactor;
-
-public:
- /// The number of bytes which were requested at the start of the
- /// asynchronous read.
- size_t bytes_to_read (void) const;
-
- /// Message block which contains the read data.
- ACE_Message_Block &message_block (void) const;
-
- /// I/O handle used for reading.
- ACE_HANDLE handle (void) const;
-
-protected:
- ACE_POSIX_Asynch_Read_Stream_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number);
- // Constructor is protected since creation is limited to
- // ACE_Asynch_Read_Stream factory.
-
- /// Get the data copied to this class, before calling application
- /// handler.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Read_Stream_Result (void);
-
- // aiocb::aio_nbytes
- // Bytes requested when the asynchronous read was initiated.
-
- /// Message block for reading the data into.
- ACE_Message_Block &message_block_;
-
- // aiocb::aio_filedes
- // I/O handle used for reading.
-};
-
-/**
- * @class ACE_POSIX_Asynch_Read_Stream
- *
- * This class implements <ACE_Asynch_Read_Stream> for all POSIX
- * based implementation of Proactor.
- *
- */
-class ACE_Export ACE_POSIX_Asynch_Read_Stream : public virtual ACE_Asynch_Read_Stream_Impl,
- public ACE_POSIX_Asynch_Operation
-{
-public:
- /// Constructor.
- ACE_POSIX_Asynch_Read_Stream (ACE_POSIX_Proactor *posix_proactor);
-
- /// This starts off an asynchronous read. Upto <bytes_to_read> will
- /// be read and stored in the <message_block>.
- int read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Read_Stream (void);
-};
-
-
-/**
- * @class ACE_POSIX_Asynch_Write_Stream_Result
- *
- * @brief This class provides concrete implementation for
- * <ACE_Asynch_Write_Stream::Result> on POSIX platforms.
- *
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous write.
- */
-class ACE_Export ACE_POSIX_Asynch_Write_Stream_Result : public virtual ACE_Asynch_Write_Stream_Result_Impl,
- public ACE_POSIX_Asynch_Result
-{
- /// Factory classes will have special privilages.
- friend class ACE_POSIX_Asynch_Write_Stream;
-
- /// The Proactor constructs the Result class for faking results.
- friend class ACE_POSIX_Proactor;
-
-public:
- /// The number of bytes which were requested at the start of the
- /// asynchronous write.
- size_t bytes_to_write (void) const;
-
- /// Message block that contains the data to be written.
- ACE_Message_Block &message_block (void) const;
-
- /// I/O handle used for writing.
- ACE_HANDLE handle (void) const;
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Write_Stream factory.
- ACE_POSIX_Asynch_Write_Stream_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number);
-
- /// ACE_Proactor will call this method when the write completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Write_Stream_Result (void);
-
-protected:
- // aiocb::aio_nbytes
- // The number of bytes which were requested at the start of the
- // asynchronous write.
-
- /// Message block that contains the data to be written.
- ACE_Message_Block &message_block_;
-
- // aiocb::aio_filedes
- // I/O handle used for writing.
-};
-
-/**
- * @class ACE_POSIX_Asynch_Write_Stream
- *
- * @brief This class implements <ACE_Asynch_Write_Stream> for
- * all POSIX implementations of ACE_Proactor.
- */
-class ACE_Export ACE_POSIX_Asynch_Write_Stream : public virtual ACE_Asynch_Write_Stream_Impl,
- public ACE_POSIX_Asynch_Operation
-{
-public:
- /// Constructor.
- ACE_POSIX_Asynch_Write_Stream (ACE_POSIX_Proactor *posix_proactor);
-
- /// This starts off an asynchronous write. Upto <bytes_to_write>
- /// will be written from the <message_block>.
- int write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Write_Stream (void);
-};
-
-/**
- * @class ACE_POSIX_Asynch_Read_File_Result
- *
- * @brief This class provides concrete implementation for
- * <ACE_Asynch_Read_File::Result> class for POSIX platforms.
- */
-class ACE_Export ACE_POSIX_Asynch_Read_File_Result : public virtual ACE_Asynch_Read_File_Result_Impl,
- public ACE_POSIX_Asynch_Read_Stream_Result
-{
- /// Factory classes will have special permissions.
- friend class ACE_POSIX_Asynch_Read_File;
-
- /// The Proactor constructs the Result class for faking results.
- friend class ACE_POSIX_Proactor;
-
-public:
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Read_File factory.
- ACE_POSIX_Asynch_Read_File_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number);
-
- /// ACE_Proactor will call this method when the read completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Read_File_Result (void);
-};
-
-/**
- * @class ACE_POSIX_Asynch_Read_File
- *
- * @brief This class is a factory for starting off asynchronous reads
- * on a file. This class implements <ACE_Asynch_Read_File> for
- * all POSIX implementations of Proactor.
- *
- * Once <open> is called, multiple asynchronous <read>s can
- * started using this class. A <ACE_Asynch_Read_File::Result>
- * will be passed back to the <handler> when the asynchronous
- * reads completes through the <ACE_Handler::handle_read_file>
- * callback.
- *
- * This class differs slightly from <ACE_Asynch_Read_Stream> as it
- * allows the user to specify an offset for the read.
- */
-class ACE_Export ACE_POSIX_Asynch_Read_File : public virtual ACE_Asynch_Read_File_Impl,
- public ACE_POSIX_Asynch_Read_Stream
-{
-
-public:
- /// Constructor.
- ACE_POSIX_Asynch_Read_File (ACE_POSIX_Proactor *posix_proactor);
-
- /**
- * This starts off an asynchronous read. Upto <bytes_to_read> will
- * be read and stored in the <message_block>. The read will start
- * at <offset> from the beginning of the file.
- */
- int read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Read_File (void);
-
-private:
- /**
- * This belongs to ACE_POSIX_Asynch_Read_Stream. We have
- * defined this here to avoid compiler warnings and forward the
- * method to <ACE_POSIX_Asynch_Read_Stream::read>.
- */
- int read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number = 0);
-};
-
-
-/**
- * @class ACE_POSIX_Asynch_Write_File_Result
- *
- * @brief This class provides implementation for
- * <ACE_Asynch_Write_File_Result> for POSIX platforms.
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous write.
- *
- * This class differs slightly from
- * <ACE_Asynch_Write_Stream::Result> as it calls back
- * <ACE_Handler::handle_write_file> on the <handler> instead of
- * <ACE_Handler::handle_write_stream>. No additional state is
- * required by this class as <ACE_Asynch_Result> can store the
- * <offset>.
- */
-class ACE_Export ACE_POSIX_Asynch_Write_File_Result : public virtual ACE_Asynch_Write_File_Result_Impl,
- public ACE_POSIX_Asynch_Write_Stream_Result
-{
- /// Factory classes will have special permissions.
- friend class ACE_POSIX_Asynch_Write_File;
-
- /// The Proactor constructs the Result class for faking results.
- friend class ACE_POSIX_Proactor;
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Write_File factory.
- ACE_POSIX_Asynch_Write_File_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number);
-
- /// ACE_Proactor will call this method when the write completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Write_File_Result (void);
-};
-
-/**
- * @class ACE_POSIX_Asynch_Write_File
- *
- * This class provides concrete implementation for
- * <ACE_Asynch_Write_File> for POSIX platforms where the
- * completion strategy for Proactor is based on AIOCB (AIO
- * Control Blocks).
- *
- */
-class ACE_Export ACE_POSIX_Asynch_Write_File : public virtual ACE_Asynch_Write_File_Impl,
- public ACE_POSIX_Asynch_Write_Stream
-{
-public:
- /// Constructor.
- ACE_POSIX_Asynch_Write_File (ACE_POSIX_Proactor *posix_proactor);
-
- /**
- * This starts off an asynchronous write. Upto <bytes_to_write>
- * will be written and stored in the <message_block>. The write will
- * start at <offset> from the beginning of the file.
- */
- int write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Write_File (void);
-
-private:
- /**
- * This <write> belongs to ACE_POSIX_Asynch_Write_Stream. We
- * have put this here to avoid compiler warnings. We forward this
- * method call to the <ACE_POSIX_Asynch_Write_Stream::write>
- * one.
- */
- int write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number = 0);
-};
-
-/**
- * @class ACE_POSIX_Asynch_Accept_Result
- *
- * @brief This is that class which will be passed back to the
- * <handler> when the asynchronous accept completes.
- *
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous accept.
- */
-class ACE_Export ACE_POSIX_Asynch_Accept_Result : public virtual ACE_Asynch_Accept_Result_Impl,
- public ACE_POSIX_Asynch_Result
-{
- /// Factory classes will have special permissions.
- friend class ACE_POSIX_Asynch_Accept;
-
- /// The Proactor constructs the Result class for faking results.
- friend class ACE_POSIX_Proactor;
-
-public:
- /// The number of bytes which were requested at the start of the
- /// asynchronous accept.
- size_t bytes_to_read (void) const;
-
- /// Message block which contains the read data.
- ACE_Message_Block &message_block (void) const;
-
- /// I/O handle used for accepting new connections.
- ACE_HANDLE listen_handle (void) const;
-
- /// I/O handle for the new connection.
- ACE_HANDLE accept_handle (void) const;
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Accept factory.
- ACE_POSIX_Asynch_Accept_Result (ACE_Handler &handler,
- ACE_HANDLE listen_handle,
- ACE_HANDLE accept_handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number);
-
- /// ACE_Proactor will call this method when the accept completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Accept_Result (void);
-
- // aiocb::aio_nbytes
- // Bytes requested when the asynchronous read was initiated.
- // Actually, on POSIX implementation, we dont read any intial data.
-
- /// Message block for reading the data into.
- ACE_Message_Block &message_block_;
-
- /// I/O handle used for accepting new connections.
- ACE_HANDLE listen_handle_;
-
- // aiocb::aio_filedes
- // I/O handle for the new connection.
-};
-
-
-/**
- * @class ACE_POSIX_Asynch_Accept
- *
- * @brief For the POSIX implementation this class is common for all Proactors
- * (AIOCB/SIG/SUN)
- */
-class ACE_Export ACE_POSIX_Asynch_Accept :
- public virtual ACE_Asynch_Accept_Impl,
- public ACE_POSIX_Asynch_Operation,
- public ACE_Event_Handler
-{
-public:
-
- /// Constructor.
- ACE_POSIX_Asynch_Accept (ACE_POSIX_Proactor * posix_proactor);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Accept (void);
-
- /**
- * This <open> belongs to ACE_POSIX_Asynch_Operation. We forward
- * this call to that method. We have put this here to avoid the
- * compiler warnings.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor = 0);
-
- /**
- * This starts off an asynchronous accept. The asynchronous accept
- * call also allows any initial data to be returned to the
- * <handler>. Upto <bytes_to_read> will be read and stored in the
- * <message_block>. The <accept_handle> will be used for the
- * <accept> call. If (<accept_handle> == INVALID_HANDLE), a new
- * handle will be created.
- *
- * <message_block> must be specified. This is because the address of
- * the new connection is placed at the end of this buffer.
- */
- int accept (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- ACE_HANDLE accept_handle,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /**
- * Cancel all pending pseudo-asynchronus requests
- * Behavior as usual AIO request
- */
- int cancel (void);
-
- /**
- * Close performs cancellation of all pending requests
- * and closure the listen handle
- */
- int close ();
-
- /// virtual from ACE_Event_Handler
- ACE_HANDLE get_handle (void) const;
-
- /// virtual from ACE_Event_Handler
- void set_handle (ACE_HANDLE handle);
-
- /// virtual from ACE_Event_Handler
- /// Called when accept event comes up on <listen_handle>
- int handle_input (ACE_HANDLE handle);
-
- /// virtual from ACE_Event_Handler
- int handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask);
-
-private:
- /// flg_notify points whether or not we should send notification about
- /// canceled accepts
- /// Parameter flg_notify can be
- /// 0 - don't send notifications about canceled accepts
- /// 1 - notify user about canceled accepts
- /// according POSIX standards we should receive notifications
- /// on canceled AIO requests
- int cancel_uncompleted (int flg_notify);
-
- /// 1 - Accept is registered in ACE_Asynch_Pseudo_Task
- /// 0 - Aceept is deregisted in ACE_Asynch_Pseudo_Task
- int flg_open_ ;
-
- /// To prevent ACE_Asynch_Pseudo_Task from deletion
- /// while we make a call to the ACE_Asynch_Pseudo_Task
- /// This is extra cost !!!
- /// we could avoid them if all applications will follow the rule:
- /// Proactor should be deleted only after deletion all
- /// AsynchOperation objects connected with it
- int task_lock_count_;
-
- /// Queue of Result pointers that correspond to all the pending
- /// accept operations.
- ACE_Unbounded_Queue<ACE_POSIX_Asynch_Accept_Result*> result_queue_;
-
- /// The lock to protect the result queue which is shared. The queue
- /// is updated by main thread in the register function call and
- /// through the auxillary thread in the deregister fun. So let us
- /// mutex it.
- ACE_SYNCH_MUTEX lock_;
-};
-
-/**
- * @class ACE_POSIX_Asynch_Connect_Result
- *
- * @brief This is that class which will be passed back to the
- * completion handler when the asynchronous connect completes.
- *
- * This class has all the information necessary for a
- * completion handler to uniquely identify the completion of the
- * asynchronous connect.
- */
-class ACE_Export ACE_POSIX_Asynch_Connect_Result : public virtual ACE_Asynch_Connect_Result_Impl,
- public ACE_POSIX_Asynch_Result
-{
- /// Factory classes will have special permissions.
- friend class ACE_POSIX_Asynch_Connect;
-
- /// The Proactor constructs the Result class for faking results.
- friend class ACE_POSIX_Proactor;
-
-public:
-
- /// I/O handle for the connection.
- ACE_HANDLE connect_handle (void) const;
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Connect factory.
- ACE_POSIX_Asynch_Connect_Result (ACE_Handler &handler,
- ACE_HANDLE connect_handle,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number);
-
- /// ACE_Proactor will call this method when the accept completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Connect_Result (void);
-
- // aiocb::aio_filedes
- // I/O handle for the new connection.
- void connect_handle (ACE_HANDLE handle);
-};
-
-
-/**
- * @class ACE_POSIX_Asynch_Connect
- *
- */
-class ACE_Export ACE_POSIX_Asynch_Connect :
- public virtual ACE_Asynch_Connect_Impl,
- public ACE_POSIX_Asynch_Operation,
- public ACE_Event_Handler
-{
-public:
-
- /// Constructor.
- ACE_POSIX_Asynch_Connect (ACE_POSIX_Proactor * posix_proactor);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Connect (void);
-
- /**
- * This belongs to ACE_POSIX_Asynch_Operation. We forward
- * this call to that method. We have put this here to avoid the
- * compiler warnings.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor = 0);
-
- /**
- * This starts off an asynchronous connect.
- *
- * @arg connect_handle will be used for the connect call. If
- * ACE_INVALID_HANDLE is specified, a new
- * handle will be created.
- */
- int connect (ACE_HANDLE connect_handle,
- const ACE_Addr &remote_sap,
- const ACE_Addr &local_sap,
- int reuse_addr,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /**
- * Cancel all pending pseudo-asynchronus requests
- * Behavior as usual AIO request
- */
- int cancel (void);
-
- /**
- * Close performs cancellation of all pending requests.
- */
- int close (void);
-
- /// virtual from ACE_Event_Handler
- ACE_HANDLE get_handle (void) const;
-
- /// virtual from ACE_Event_Handler
- void set_handle (ACE_HANDLE handle);
-
- /// virtual from ACE_Event_Handler
- /// Called when accept event comes up on <listen_hanlde>
- int handle_input (ACE_HANDLE handle);
- int handle_output (ACE_HANDLE handle);
- int handle_exception (ACE_HANDLE handle);
-
- /// virtual from ACE_Event_Handler
- int handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask) ;
-
-private:
- int connect_i (ACE_POSIX_Asynch_Connect_Result *result,
- const ACE_Addr & remote_sap,
- const ACE_Addr & local_sap,
- int reuse_addr);
-
- int post_result (ACE_POSIX_Asynch_Connect_Result *result, int flg_post);
-
- /// Cancel uncompleted connect operations.
- /**
- * @arg flg_notify Indicates whether or not we should send notification
- * about canceled accepts. If this is 0, don't send
- * notifications about canceled connects. If 1, notify
- * user about canceled connects according POSIX
- * standards we should receive notifications on canceled
- * AIO requests.
- */
- int cancel_uncompleted (int flg_notify, ACE_Handle_Set & set);
-
- int flg_open_ ;
- /// 1 - Connect is registered in ACE_Asynch_Pseudo_Task
- /// 0 - Aceept is deregisted in ACE_Asynch_Pseudo_Task
-
-
- /// to prevent ACE_Asynch_Pseudo_Task from deletion
- /// while we make a call to the ACE_Asynch_Pseudo_Task
- /// This is extra cost !!!
- /// we could avoid them if all applications will follow the rule:
- /// Proactor should be deleted only after deletion all
- /// AsynchOperation objects connected with it
- int task_lock_count_;
-
- typedef ACE_Map_Manager<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
- MAP_MANAGER;
-
- // (Two) Deprecated typedefs. Use the map traits instead.
- typedef MAP_MANAGER::ITERATOR MAP_ITERATOR;
- typedef MAP_MANAGER::ENTRY MAP_ENTRY;
-
- /// Map of Result pointers that correspond to all the <accept>'s
- /// pending.
- MAP_MANAGER result_map_;
-
- /// The lock to protect the result queue which is shared. The queue
- /// is updated by main thread in the register function call and
- /// through the auxillary thread in the deregister fun. So let us
- /// mutex it.
- ACE_SYNCH_MUTEX lock_;
-};
-
-
-/**
- * @class ACE_POSIX_Asynch_Transmit_File_Result
- *
- * @brief This is that class which will be passed back to the
- * <handler> when the asynchronous transmit file completes.
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous transmit file.
- */
-class ACE_Export ACE_POSIX_Asynch_Transmit_File_Result : public virtual ACE_Asynch_Transmit_File_Result_Impl,
- public ACE_POSIX_Asynch_Result
-{
- /// Factory classes will have special permissions.
- friend class ACE_POSIX_Asynch_Transmit_File;
-
- /// Handlers do all the job.
- friend class ACE_POSIX_Asynch_Transmit_Handler;
-
- /// The Proactor constructs the Result class for faking results.
- friend class ACE_POSIX_Proactor;
-
-public:
- /// Socket used for transmitting the file.
- ACE_HANDLE socket (void) const;
-
- /// File from which the data is read.
- ACE_HANDLE file (void) const;
-
- /// Header and trailer data associated with this transmit file.
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer (void) const;
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous transmit file.
- size_t bytes_to_write (void) const;
-
- /// Number of bytes per send requested at the start of the transmit
- /// file.
- size_t bytes_per_send (void) const;
-
- /// Flags which were passed into transmit file.
- u_long flags (void) const;
-
-protected:
- ACE_POSIX_Asynch_Transmit_File_Result (ACE_Handler &handler,
- ACE_HANDLE socket,
- ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- ACE_HANDLE event,
- int priority,
- int signal_number);
- // Constructor is protected since creation is limited to
- // ACE_Asynch_Transmit_File factory.
-
- /// ACE_Proactor will call this method when the write completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Transmit_File_Result (void);
-
- /// Network I/O handle.
- ACE_HANDLE socket_;
-
- // aiocb::aio_filedes
- // File I/O handle.
-
- /// Header and trailer data associated with this transmit file.
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer_;
-
- // aiocb::aio_nbytes
- // The number of bytes which were requested at the start of the
- // asynchronous transmit file.
-
- /// Number of bytes per send requested at the start of the transmit
- /// file.
- size_t bytes_per_send_;
-
- /// Flags which were passed into transmit file.
- u_long flags_;
-};
-
-/**
- * @class ACE_POSIX_Asynch_Transmit_File
- *
- * @brief Implementation for transmit_file will make use of
- * POSIX_Asynch_Transmit_Handler.
- */
-class ACE_Export ACE_POSIX_Asynch_Transmit_File : public virtual ACE_Asynch_Transmit_File_Impl,
- public ACE_POSIX_Asynch_Operation
-{
-public:
- /// Constructor.
- ACE_POSIX_Asynch_Transmit_File (ACE_POSIX_Proactor *posix_proactor);
-
- /**
- * This starts off an asynchronous transmit file. The <file> is a
- * handle to an open file. <header_and_trailer> is a pointer to a
- * data structure that contains pointers to data to send before and
- * after the file data is sent. Set this parameter to 0 if you only
- * want to transmit the file data. Upto <bytes_to_write> will be
- * written to the <socket>. If you want to send the entire file,
- * let <bytes_to_write> = 0. <bytes_per_send> is the size of each
- * block of data sent per send operation. Please read the POSIX
- * documentation on what the flags should be.
- */
- int transmit_file (ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Transmit_File (void);
-};
-
-
-/**
- * @class ACE_POSIX_Asynch_Read_Dgram
- *
- * @brief This class is a factory for starting off asynchronous reads
- * on a UDP socket.
- *
- * Once <open> is called, multiple asynchronous <read>s can be
- * started using this class. An ACE_Asynch_Read_Dgram::Result
- * will be passed back to the <handler> when the asynchronous
- * reads completes through the <ACE_Handler::handle_read_stream>
- * callback.
- *
- */
-class ACE_Export ACE_POSIX_Asynch_Read_Dgram : public virtual ACE_Asynch_Read_Dgram_Impl,
- public ACE_POSIX_Asynch_Operation
-{
-public:
- /// Constructor.
- ACE_POSIX_Asynch_Read_Dgram (ACE_POSIX_Proactor *posix_proactor);
- virtual ~ACE_POSIX_Asynch_Read_Dgram (void);
-
- /** This starts off an asynchronous read. Upto
- * <message_block->total_size()> will be read and stored in the
- * <message_block>. <message_block>'s <wr_ptr> will be updated to reflect
- * the added bytes if the read operation is successful completed.
- * Return code of 1 means immediate success and number_of_bytes_recvd
- * will contain number of bytes read. The <ACE_Handler::handle_read_dgram>
- * method will still be called. Return code of 0 means the IO will
- * complete proactively. Return code of -1 means there was an error, use
- * errno to get the error code.
- *
- * Priority of the operation is specified by <priority>. On POSIX4-Unix,
- * this is supported. Works like <nice> in Unix. Negative values are not
- * allowed. 0 means priority of the operation same as the process
- * priority. 1 means priority of the operation is one less than
- * process. <signal_number> argument is a no-op on non-POSIX4 systems.
- */
- virtual ssize_t recv (ACE_Message_Block *message_block,
- size_t &number_of_bytes_recvd,
- int flags,
- int protocol_family,
- const void *act,
- int priority,
- int signal_number);
-
-protected:
- /// Do-nothing constructor.
- ACE_POSIX_Asynch_Read_Dgram (void);
-};
-
-/**
- * @class ACE_POSIX__Asynch_Write_Dgram_Result
- *
- * @brief This is class provides concrete implementation for
- * ACE_Asynch_Write_Dgram::Result class.
- */
-class ACE_Export ACE_POSIX_Asynch_Write_Dgram_Result : public virtual ACE_Asynch_Write_Dgram_Result_Impl,
- public ACE_POSIX_Asynch_Result
-{
- /// Factory classes will have special permissions.
- friend class ACE_POSIX_Asynch_Write_Dgram;
-
- /// Proactor class has special permission.
- friend class ACE_POSIX_Proactor;
-
-public:
- /// The number of bytes which were requested at the start of the
- /// asynchronous write.
- size_t bytes_to_write (void) const;
-
- /// Message block which contains the sent data
- ACE_Message_Block *message_block (void) const;
-
- /// The flags using in the write
- int flags (void) const;
-
- /// I/O handle used for writing.
- ACE_HANDLE handle (void) const;
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Write_Stream factory.
- ACE_POSIX_Asynch_Write_Dgram_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_write,
- int flags,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number);
-
- /// ACE_Proactor will call this method when the write completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Write_Dgram_Result (void);
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous write.
- size_t bytes_to_write_;
-
- /// Message block used for the send.
- ACE_Message_Block *message_block_;
-
- /// The flags using in the write
- int flags_;
-
- /// I/O handle used for writing.
- ACE_HANDLE handle_;
-
- };
-
-/**
- * @class ACE_POSIX_Asynch_Write_Dgram
- *
- * @brief This class is a factory for starting off asynchronous writes
- * on a UDP socket.
- *
- * Once <open> is called, multiple asynchronous <writes>s can
- * started using this class. A ACE_Asynch_Write_Stream::Result
- * will be passed back to the <handler> when the asynchronous
- * write completes through the
- * <ACE_Handler::handle_write_stream> callback.
- */
-class ACE_Export ACE_POSIX_Asynch_Write_Dgram : public virtual ACE_Asynch_Write_Dgram_Impl,
- public ACE_POSIX_Asynch_Operation
-{
-public:
- /// Constructor.
- ACE_POSIX_Asynch_Write_Dgram (ACE_POSIX_Proactor *posix_proactor);
-
- /// Destructor
- virtual ~ACE_POSIX_Asynch_Write_Dgram (void);
-
- /** This starts off an asynchronous send. Up to
- * <message_block->total_length()> will be sent. <message_block>'s
- * <rd_ptr> will be updated to reflect the sent bytes if the send operation
- * is successful completed.
- * Return code of 1 means immediate success and number_of_bytes_sent
- * is updated to number of bytes sent. The <ACE_Handler::handle_write_dgram>
- * method will still be called. Return code of 0 means the IO will
- * complete proactively. Return code of -1 means there was an error, use
- * errno to get the error code.
- *
- * Priority of the operation is specified by <priority>. On POSIX4-Unix,
- * this is supported. Works like <nice> in Unix. Negative values are not
- * allowed. 0 means priority of the operation same as the process
- * priority. 1 means priority of the operation is one less than
- * process. And so forth. <signal_number> is a no-op on non-POSIX4 systems.
- */
- virtual ssize_t send (ACE_Message_Block *message_block,
- size_t &number_of_bytes_sent,
- int flags,
- const ACE_Addr &addr,
- const void *act,
- int priority,
- int signal_number);
-
-protected:
- /// Do-nothing constructor.
- ACE_POSIX_Asynch_Write_Dgram (void);
-};
-
-
-/*****************************************************/
-
-/**
- * @class ACE_POSIX_Asynch_Read_Dgram_Result
- *
- * @brief This is class provides concrete implementation for
- * ACE_Asynch_Read_Dgram::Result class.
- */
-class ACE_Export ACE_POSIX_Asynch_Read_Dgram_Result : public virtual ACE_Asynch_Read_Dgram_Result_Impl,
- public virtual ACE_POSIX_Asynch_Result
-{
-
- /// Factory classes will have special permissions.
- friend class ACE_POSIX_Asynch_Read_Dgram;
-
- /// Proactor class has special permission.
- friend class ACE_POSIX_Proactor;
-
-public:
- /// The number of bytes which were requested at the start of the
- /// asynchronous read.
- size_t bytes_to_read (void) const;
-
- /// Message block which contains the read data
- ACE_Message_Block *message_block (void) const;
-
- /// The address of where the packet came from
- int remote_address (ACE_Addr& addr) const;
-
- sockaddr *saddr (void) const;
-
- /// The flags used in the read
- int flags (void) const;
-
- /// I/O handle used for reading.
- ACE_HANDLE handle (void) const;
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Read_Dgram factory.
- ACE_POSIX_Asynch_Read_Dgram_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_read,
- int flags,
- int protocol_family,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
- /// Proactor will call this method when the read completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Read_Dgram_Result (void);
-
- /// Bytes requested when the asynchronous read was initiated.
- size_t bytes_to_read_;
-
- /// Message block for reading the data into.
- ACE_Message_Block *message_block_;
-
- /// The address of where the packet came from
- ACE_Addr *remote_address_;
-
- int addr_len_;
-
- /// The flags used in the read
- int flags_;
-
- /// I/O handle used for reading.
- ACE_HANDLE handle_;
-
-};
-
-
-#if defined (__ACE_INLINE__)
-#include "ace/POSIX_Asynch_IO.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_AIO_CALLS */
-#endif /* ACE_POSIX_ASYNCH_IO_H */
diff --git a/ace/POSIX_Asynch_IO.i b/ace/POSIX_Asynch_IO.i
deleted file mode 100644
index 6318deb79a0..00000000000
--- a/ace/POSIX_Asynch_IO.i
+++ /dev/null
@@ -1,2 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
diff --git a/ace/POSIX_CB_Proactor.cpp b/ace/POSIX_CB_Proactor.cpp
deleted file mode 100644
index 05b9e7a322d..00000000000
--- a/ace/POSIX_CB_Proactor.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/POSIX_CB_Proactor.h"
-
-#if defined (ACE_HAS_AIO_CALLS) && !defined(__sun) && !defined(__Lynx__)
-
-#include "ace/Task_T.h"
-#include "ace/Log_Msg.h"
-#include "ace/Object_Manager.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/POSIX_CB_Proactor.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_POSIX_CB_Proactor::ACE_POSIX_CB_Proactor (size_t max_aio_operations)
- : ACE_POSIX_AIOCB_Proactor (max_aio_operations,
- ACE_POSIX_Proactor::PROACTOR_CB),
- sema_ (0)
-{
- // we should start pseudo-asynchronous accept task
- // one per all future acceptors
-
- this->get_asynch_pseudo_task ().start ();
-}
-
-// Destructor.
-ACE_POSIX_CB_Proactor::~ACE_POSIX_CB_Proactor (void)
-{
- this->close ();
-}
-
-void ACE_POSIX_CB_Proactor::aio_completion_func ( sigval_t cb_data )
-{
-#if defined (__FreeBSD__)
- ACE_POSIX_CB_Proactor * impl = ACE_static_cast (ACE_POSIX_CB_Proactor *, cb_data.sigval_ptr);
-#else
- ACE_POSIX_CB_Proactor * impl = ACE_static_cast (ACE_POSIX_CB_Proactor *, cb_data.sival_ptr);
-#endif
-
- if ( impl != 0 )
- impl->notify_completion (0);
-}
-
-int
-ACE_POSIX_CB_Proactor::handle_events (ACE_Time_Value &wait_time)
-{
- // Decrement <wait_time> with the amount of time spent in the method
- ACE_Countdown_Time countdown (&wait_time);
- return this->handle_events_i (wait_time.msec ());
-}
-
-int
-ACE_POSIX_CB_Proactor::handle_events (void)
-{
- return this->handle_events_i (ACE_INFINITE);
-}
-
-int
-ACE_POSIX_CB_Proactor::notify_completion (int sig_num)
-{
- ACE_UNUSED_ARG (sig_num);
-
- return this->sema_.release();
-}
-
-
-ssize_t
-ACE_POSIX_CB_Proactor::allocate_aio_slot (ACE_POSIX_Asynch_Result *result)
-{
- ssize_t slot = ACE_POSIX_AIOCB_Proactor::allocate_aio_slot (result);
- if (slot == -1)
- return -1;
-
- // setup OS notification methods for this aio
- // store index!!, not pointer in signal info
- // need to figure out correct thing to do here when we are not on SGI
-#if defined(__sgi)
- result->aio_sigevent.sigev_notify = SIGEV_CALLBACK;
- result->aio_sigevent.sigev_func = aio_completion_func ;
-#else
- result->aio_sigevent.sigev_notify = SIGEV_SIGNAL;
-#endif /* __sgi */
-
-#if defined (__FreeBSD__)
- result->aio_sigevent.sigev_value.sigval_ptr = this ;
-#else
- result->aio_sigevent.sigev_value.sival_ptr = this ;
-#endif /* __FreeBSD__ */
-
- return slot;
-}
-
-int
-ACE_POSIX_CB_Proactor::handle_events_i (unsigned long milli_seconds)
-{
-
- int result_wait=0;
-
- // Wait for the signals.
- if (milli_seconds == ACE_INFINITE)
- {
- result_wait = this->sema_.acquire();
- }
- else
- {
- // Wait for <milli_seconds> amount of time.
- ACE_Time_Value abs_time = ACE_OS::gettimeofday ()
- + ACE_Time_Value ( milli_seconds);
-
- result_wait = this->sema_.acquire(abs_time);
- }
-
- // Check for errors
- // but let continue work in case of errors
- // we should check "post_completed" queue
- if (result_wait == -1)
- {
- if (errno != ETIME && // timeout
- errno != EINTR ) // interrupted system call
- ACE_ERROR ((LM_ERROR,
- "%N:%l:(%P | %t)::%p\n",
- "ACE_POSIX_CB_Proactor::handle_events:"
- "semaphore acquire failed"
- ));
- }
-
- size_t index = 0; // start index to scan aiocb list
- size_t count = this->aiocb_list_max_size_; // max number to iterate
-
- int error_status = 0;
- size_t return_status = 0;
-
- int ret_aio = 0;
- int ret_que = 0;
-
- for (;; ret_aio++)
- {
- ACE_POSIX_Asynch_Result * asynch_result =
- this->find_completed_aio (error_status,
- return_status,
- index,
- count);
-
- if (asynch_result == 0)
- break;
-
- // Call the application code.
- this->application_specific_code (asynch_result,
- return_status, // Bytes transferred.
- 0, // No completion key.
- error_status); // Error
- }
-
- // process post_completed results
- ret_que = this->process_result_queue ();
-
- // Uncomment this if you want to test
- // and research the behavior of you system
- // ACE_DEBUG ((LM_DEBUG,
- // "(%t) NumAIO=%d NumQueue=%d\n",
- // ret_aio, ret_que));
-
- return ret_aio + ret_que > 0 ? 1 : 0;
-}
-
-#endif /* ACE_HAS_AIO_CALLS && !__sun && !__Lynx__ */
diff --git a/ace/POSIX_CB_Proactor.h b/ace/POSIX_CB_Proactor.h
deleted file mode 100644
index e880cfe3315..00000000000
--- a/ace/POSIX_CB_Proactor.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file POSIX_CB_Proactor.h
- *
- * $Id$
- *
- * @author Alexander Libman <alibman@ihug.com.au>
- */
-//=============================================================================
-
-#ifndef ACE_POSIX_CB_PROACTOR_H
-#define ACE_POSIX_CB_PROACTOR_H
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_AIO_CALLS) && !defined(__sun) && !defined(__Lynx__)
-
-#include "ace/POSIX_Proactor.h"
-
-/**
- * @class ACE_POSIX_CB_Proactor
- *
- * @brief Implementation of Callback-based Proactor
- * };
- */
-class ACE_Export ACE_POSIX_CB_Proactor : public ACE_POSIX_AIOCB_Proactor
-{
-
-public:
- virtual Proactor_Type get_impl_type (void);
-
- /// Destructor.
- virtual ~ACE_POSIX_CB_Proactor (void);
-
- /// Constructor defines max number asynchronous operations that can
- /// be started at the same time.
- ACE_POSIX_CB_Proactor (size_t max_aio_operations = ACE_AIO_DEFAULT_SIZE);
-
-protected:
-
- static void aio_completion_func (sigval_t cb_data);
-
- /**
- * Dispatch a single set of events. If <wait_time> elapses before
- * any events occur, return 0. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (ACE_Time_Value &wait_time);
-
- /**
- * Block indefinitely until at least one event is dispatched.
- * Dispatch a single set of events. If <wait_time> elapses before
- * any events occur, return 0. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (void);
-
- /// Find free slot to store result and aiocb pointer
- virtual ssize_t allocate_aio_slot (ACE_POSIX_Asynch_Result *result);
-
- /// Notify queue of "post_completed" ACE_POSIX_Asynch_Results
- /// called from post_completion method
- virtual int notify_completion (int sig_num);
-
- /**
- * Dispatch a single set of events. If <milli_seconds> elapses
- * before any events occur, return 0. Return 1 if a completion is
- * dispatched. Return -1 on errors.
- */
- int handle_events_i (u_long milli_seconds);
-
- /// semaphore variable to notify
- /// used to wait the first AIO start
- ACE_SYNCH_SEMAPHORE sema_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/POSIX_CB_Proactor.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_AIO_CALLS && !__sun && !__Lynx__ */
-#endif /* ACE_POSIX_CB_PROACTOR_H*/
diff --git a/ace/POSIX_CB_Proactor.i b/ace/POSIX_CB_Proactor.i
deleted file mode 100644
index 5e6be74df26..00000000000
--- a/ace/POSIX_CB_Proactor.i
+++ /dev/null
@@ -1,12 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if defined (ACE_HAS_AIO_CALLS)
-
-ACE_INLINE
-ACE_POSIX_Proactor::Proactor_Type ACE_POSIX_CB_Proactor::get_impl_type (void)
-{
- return PROACTOR_CB;
-}
-
-#endif /* ACE_HAS_AIO_CALLS */
diff --git a/ace/POSIX_Proactor.cpp b/ace/POSIX_Proactor.cpp
deleted file mode 100644
index d0c52aa7f9e..00000000000
--- a/ace/POSIX_Proactor.cpp
+++ /dev/null
@@ -1,2000 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/POSIX_Proactor.h"
-
-#if defined (ACE_HAS_AIO_CALLS)
-
-#include "ace/ACE.h"
-#include "ace/Task_T.h"
-#include "ace/Log_Msg.h"
-#include "ace/Object_Manager.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/POSIX_Proactor.i"
-#endif /* __ACE_INLINE__ */
-
-# if defined (ACE_HAS_SYSINFO)
-# include /**/ <sys/systeminfo.h>
-# endif /* ACE_HAS_SYS_INFO */
-
-// *********************************************************************
-/**
- * @class ACE_POSIX_Wakeup_Completion
- *
- * This result object is used by the <end_event_loop> of the
- * ACE_Proactor interface to wake up all the threads blocking
- * for completions.
- */
-class ACE_Export ACE_POSIX_Wakeup_Completion : public ACE_POSIX_Asynch_Result
-{
-public:
- /// Constructor.
- ACE_POSIX_Wakeup_Completion (ACE_Handler &handler,
- const void *act = 0,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Destructor.
- virtual ~ACE_POSIX_Wakeup_Completion (void);
-
-
- /// This method calls the <handler>'s <handle_wakeup> method.
- virtual void complete (size_t bytes_transferred = 0,
- int success = 1,
- const void *completion_key = 0,
- u_long error = 0);
-};
-
-// *********************************************************************
-ACE_POSIX_Proactor::ACE_POSIX_Proactor (void)
- : os_id_ (OS_UNDEFINED)
-{
-#if defined(sun)
-
- os_id_ = OS_SUN; // set family
-
- char Buf [32];
-
- ::memset(Buf,0,sizeof(Buf));
-
- ACE_OS::sysinfo (SI_RELEASE , Buf, sizeof(Buf)-1);
-
- if (ACE_OS_String::strcasecmp (Buf , "5.6") == 0)
- os_id_ = OS_SUN_56;
- else if (ACE_OS_String::strcasecmp (Buf , "5.7") == 0)
- os_id_ = OS_SUN_57;
- else if (ACE_OS_String::strcasecmp (Buf , "5.8") == 0)
- os_id_ = OS_SUN_58;
-
-#elif defined(HPUX)
-
- os_id_ = OS_HPUX; // set family
-
-#elif defined(__sgi)
-
- os_id_ = OS_IRIX; // set family
-
-#elif defined(__OpenBSD)
-
- os_id_ = OS_OPENBSD; // set family
-
- // do the same
-
-//#else defined (LINUX, __FreeBSD__ ...)
-//setup here os_id_
-#endif
-}
-
-ACE_POSIX_Proactor::~ACE_POSIX_Proactor (void)
-{
- this->close ();
-}
-
-int
-ACE_POSIX_Proactor::close (void)
-{
- return 0;
-}
-
-int
-ACE_POSIX_Proactor::register_handle (ACE_HANDLE handle,
- const void *completion_key)
-{
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (completion_key);
- return 0;
-}
-
-int
-ACE_POSIX_Proactor::wake_up_dispatch_threads (void)
-{
- return 0;
-}
-
-int
-ACE_POSIX_Proactor::close_dispatch_threads (int)
-{
- return 0;
-}
-
-size_t
-ACE_POSIX_Proactor::number_of_threads (void) const
-{
- // @@ Implement it.
- ACE_NOTSUP_RETURN (0);
-}
-
-void
-ACE_POSIX_Proactor::number_of_threads (size_t threads)
-{
- // @@ Implement it.
- ACE_UNUSED_ARG (threads);
-}
-
-ACE_HANDLE
-ACE_POSIX_Proactor::get_handle (void) const
-{
- return ACE_INVALID_HANDLE;
-}
-
-ACE_Asynch_Read_Stream_Impl *
-ACE_POSIX_Proactor::create_asynch_read_stream (void)
-{
- ACE_Asynch_Read_Stream_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Read_Stream (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Read_Stream_Result_Impl *
-ACE_POSIX_Proactor::create_asynch_read_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Read_Stream_Result_Impl *implementation;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Read_Stream_Result (handler,
- handle,
- message_block,
- bytes_to_read,
- act,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-
-ACE_Asynch_Write_Stream_Impl *
-ACE_POSIX_Proactor::create_asynch_write_stream (void)
-{
- ACE_Asynch_Write_Stream_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Write_Stream (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Write_Stream_Result_Impl *
-ACE_POSIX_Proactor::create_asynch_write_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Write_Stream_Result_Impl *implementation;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Write_Stream_Result (handler,
- handle,
- message_block,
- bytes_to_write,
- act,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-
-ACE_Asynch_Read_File_Impl *
-ACE_POSIX_Proactor::create_asynch_read_file (void)
-{
- ACE_Asynch_Read_File_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Read_File (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Read_File_Result_Impl *
-ACE_POSIX_Proactor::create_asynch_read_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Read_File_Result_Impl *implementation;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Read_File_Result (handler,
- handle,
- message_block,
- bytes_to_read,
- act,
- offset,
- offset_high,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-
-ACE_Asynch_Write_File_Impl *
-ACE_POSIX_Proactor::create_asynch_write_file (void)
-{
- ACE_Asynch_Write_File_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Write_File (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Write_File_Result_Impl *
-ACE_POSIX_Proactor::create_asynch_write_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Write_File_Result_Impl *implementation;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Write_File_Result (handler,
- handle,
- message_block,
- bytes_to_write,
- act,
- offset,
- offset_high,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-
-ACE_Asynch_Read_Dgram_Impl *
-ACE_POSIX_Proactor::create_asynch_read_dgram (void)
-{
- ACE_Asynch_Read_Dgram_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Read_Dgram (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Read_Dgram_Result_Impl *
-ACE_POSIX_Proactor::create_asynch_read_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_read,
- int flags,
- int protocol_family,
- const void* act,
- ACE_HANDLE event ,
- int priority ,
- int signal_number)
-{
- ACE_Asynch_Read_Dgram_Result_Impl *implementation=0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Read_Dgram_Result(handler,
- handle,
- message_block,
- bytes_to_read,
- flags,
- protocol_family,
- act,
- event,
- priority,
- signal_number),
- 0);
-
- return implementation;
-}
-
-
-ACE_Asynch_Write_Dgram_Impl *
-ACE_POSIX_Proactor::create_asynch_write_dgram (void)
-{
- ACE_Asynch_Write_Dgram_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Write_Dgram (this),
- 0);
-
- return implementation;
-}
-
-ACE_Asynch_Write_Dgram_Result_Impl *
-ACE_POSIX_Proactor::create_asynch_write_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_write,
- int flags,
- const void* act,
- ACE_HANDLE event,
- int priority ,
- int signal_number)
-{
- ACE_Asynch_Write_Dgram_Result_Impl *implementation=0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Write_Dgram_Result(handler,
- handle,
- message_block,
- bytes_to_write,
- flags,
- act,
- event,
- priority,
- signal_number),
- 0);
-
- return implementation;
-}
-
-
-ACE_Asynch_Accept_Impl *
-ACE_POSIX_Proactor::create_asynch_accept (void)
-{
- ACE_Asynch_Accept_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Accept (this),
- 0);
-
- return implementation;
-}
-
-ACE_Asynch_Accept_Result_Impl *
-ACE_POSIX_Proactor::create_asynch_accept_result (ACE_Handler &handler,
- ACE_HANDLE listen_handle,
- ACE_HANDLE accept_handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Accept_Result_Impl *implementation;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Accept_Result (handler,
- listen_handle,
- accept_handle,
- message_block,
- bytes_to_read,
- act,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-
-ACE_Asynch_Connect_Impl *
-ACE_POSIX_Proactor::create_asynch_connect (void)
-{
- ACE_Asynch_Connect_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Connect (this),
- 0);
-
- return implementation;
-}
-
-ACE_Asynch_Connect_Result_Impl *
-ACE_POSIX_Proactor::create_asynch_connect_result (ACE_Handler &handler,
- ACE_HANDLE connect_handle,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Connect_Result_Impl *implementation;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Connect_Result (handler,
- connect_handle,
- act,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-
-ACE_Asynch_Transmit_File_Impl *
-ACE_POSIX_Proactor::create_asynch_transmit_file (void)
-{
- ACE_Asynch_Transmit_File_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Transmit_File (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Transmit_File_Result_Impl *
-ACE_POSIX_Proactor::create_asynch_transmit_file_result (ACE_Handler &handler,
- ACE_HANDLE socket,
- ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Transmit_File_Result_Impl *implementation;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Transmit_File_Result (handler,
- socket,
- file,
- header_and_trailer,
- bytes_to_write,
- offset,
- offset_high,
- bytes_per_send,
- flags,
- act,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Result_Impl *
-ACE_POSIX_Proactor::create_asynch_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &tv,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Result_Impl *implementation;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Timer (handler,
- act,
- tv,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-#if 0
-int
-ACE_POSIX_Proactor::handle_signal (int, siginfo_t *, ucontext_t *)
-{
- // Perform a non-blocking "poll" for all the I/O events that have
- // completed in the I/O completion queue.
-
- ACE_Time_Value timeout (0, 0);
- int result = 0;
-
- for (;;)
- {
- result = this->handle_events (timeout);
- if (result != 0 || errno == ETIME)
- break;
- }
-
- // If our handle_events failed, we'll report a failure to the
- // Reactor.
- return result == -1 ? -1 : 0;
-}
-
-int
-ACE_POSIX_Proactor::handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask close_mask)
-{
- ACE_UNUSED_ARG (close_mask);
- ACE_UNUSED_ARG (handle);
-
- return this->close ();
-}
-#endif /* 0 */
-
-void
-ACE_POSIX_Proactor::application_specific_code (ACE_POSIX_Asynch_Result *asynch_result,
- size_t bytes_transferred,
- const void */* completion_key*/,
- u_long error)
-{
- ACE_SEH_TRY
- {
- // Call completion hook
- asynch_result->complete (bytes_transferred,
- error ? 0 : 1,
- 0, // No completion key.
- error);
- }
- ACE_SEH_FINALLY
- {
- // This is crucial to prevent memory leaks
- delete asynch_result;
- }
-}
-
-int
-ACE_POSIX_Proactor::post_wakeup_completions (int how_many)
-{
- ACE_POSIX_Wakeup_Completion *wakeup_completion = 0;
-
- for (int ci = 0; ci < how_many; ci++)
- {
- ACE_NEW_RETURN (wakeup_completion,
- ACE_POSIX_Wakeup_Completion (this->wakeup_handler_),
- -1);
- if (this->post_completion (wakeup_completion) == -1)
- return -1;
- }
-
- return 0;
-}
-
-/**
- * @class ACE_AIOCB_Notify_Pipe_Manager
- *
- * @brief This class manages the notify pipe of the AIOCB Proactor.
- *
- * This class acts as the Handler for the
- * <Asynch_Read> operations issued on the notify pipe. This
- * class is very useful in implementing <Asynch_Accept> operation
- * class for the <AIOCB_Proactor>. This is also useful for
- * implementing <post_completion> for <AIOCB_Proactor>.
-
- * <AIOCB_Proactor> class issues a <Asynch_Read> on
- * the pipe, using this class as the
- * Handler. <POSIX_Asynch_Result *>'s are sent through the
- * notify pipe. When <POSIX_Asynch_Result *>'s show up on the
- * notify pipe, the <POSIX_AIOCB_Proactor> dispatches the
- * completion of the <Asynch_Read_Stream> and calls the
- * <handle_read_stream> of this class. This class calls
- * <complete> on the <POSIX_Asynch_Result *> and thus calls the
- * application handler.
- * Handling the MessageBlock:
- * We give this message block to read the result pointer through
- * the notify pipe. We expect that to read 4 bytes from the
- * notify pipe, for each <accept> call. Before giving this
- * message block to another <accept>, we update <wr_ptr> and put
- * it in its initial position.
- */
-class ACE_Export ACE_AIOCB_Notify_Pipe_Manager : public ACE_Handler
-{
-public:
- /// Constructor. You need the posix proactor because you need to call
- /// <application_specific_code>
- ACE_AIOCB_Notify_Pipe_Manager (ACE_POSIX_AIOCB_Proactor *posix_aiocb_proactor);
-
- /// Destructor.
- virtual ~ACE_AIOCB_Notify_Pipe_Manager (void);
-
- /// Send the result pointer through the notification pipe.
- int notify ();
-
- /// This is the call back method when <Asynch_Read> from the pipe is
- /// complete.
- virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result);
-
-private:
- /// The implementation proactor class.
- ACE_POSIX_AIOCB_Proactor *posix_aiocb_proactor_;
-
- /// Message block to get ACE_POSIX_Asynch_Result pointer from the pipe.
- ACE_Message_Block message_block_;
-
- /// Pipe for the communication between Proactor and the
- /// Asynch_Accept/Asynch_Connect and other post_completions
- ACE_Pipe pipe_;
-
- /// To do asynch_read on the pipe.
- ACE_POSIX_Asynch_Read_Stream read_stream_;
-
- /// Default constructor. Shouldnt be called.
- ACE_AIOCB_Notify_Pipe_Manager (void);
-};
-
-ACE_AIOCB_Notify_Pipe_Manager::ACE_AIOCB_Notify_Pipe_Manager (ACE_POSIX_AIOCB_Proactor *posix_aiocb_proactor)
- : posix_aiocb_proactor_ (posix_aiocb_proactor),
- message_block_ (sizeof (2)),
- read_stream_ (posix_aiocb_proactor)
-{
- // Open the pipe.
- this->pipe_.open ();
-
- // Set write side in NONBLOCK mode
- ACE::set_flags (this->pipe_.write_handle (), ACE_NONBLOCK);
-
- // Let AIOCB_Proactor know about our handle
- posix_aiocb_proactor_->set_notify_handle (this->pipe_.read_handle ());
-
- // Open the read stream.
- if (this->read_stream_.open (*this,
- this->pipe_.read_handle (),
- 0, // Completion Key
- 0) // Proactor
- == -1)
- ACE_ERROR ((LM_ERROR,
- "%N:%l:%p\n",
- "ACE_AIOCB_Notify_Pipe_Manager::ACE_AIOCB_Notify_Pipe_Manager:"
- "Open on Read Stream failed"));
-
- // Issue an asynch_read on the read_stream of the notify pipe.
- if (this->read_stream_.read (this->message_block_,
- 1, // enough to read 1 byte
- 0, // ACT
- 0) // Priority
- == -1)
- ACE_ERROR ((LM_ERROR,
- "%N:%l:%p\n",
- "ACE_AIOCB_Notify_Pipe_Manager::ACE_AIOCB_Notify_Pipe_Manager:"
- "Read from pipe failed"));
-}
-
-ACE_AIOCB_Notify_Pipe_Manager::~ACE_AIOCB_Notify_Pipe_Manager (void)
-{
- // 1. try to cancel pending aio
- this->read_stream_.cancel ();
-
- // 2. close both handles
- // Destuctor of ACE_Pipe does not close handles.
- // We can not use ACE_Pipe::close() as it
- // closes read_handle and than write_handle.
- // In some systems close() may wait for
- // completion for all asynch. pending requests.
- // So we should close write_handle firstly
- // to force read completion ( if 1. does not help )
- // and then read_handle and not vice versa
-
- ACE_HANDLE h = this->pipe_.write_handle ();
- if (h != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (h);
-
- h = this->pipe_.read_handle ();
- if ( h != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (h);
-
-}
-
-
-int
-ACE_AIOCB_Notify_Pipe_Manager::notify ()
-{
- // Send the result pointer through the pipe.
- char char_send = 0;
- int ret_val = ACE::send (this->pipe_.write_handle (),
- &char_send,
- sizeof (char_send));
-
- if (ret_val < 0)
- {
- if (errno != EWOULDBLOCK)
-#if 0
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("(%P %t):%p\n"),
- ACE_LIB_TEXT ("ACE_AIOCB_Notify_Pipe_Manager::notify")
- ACE_LIB_TEXT ("Error:Writing on to notify pipe failed")));
-#endif /* 0 */
- return -1;
- }
-
- return 0;
-}
-
-void
-ACE_AIOCB_Notify_Pipe_Manager::handle_read_stream
- (const ACE_Asynch_Read_Stream::Result & /*result*/)
-{
- // 1. Start new read to avoid pipe overflow
-
- // Set the message block properly. Put the <wr_ptr> back in the
- // initial position.
- if (this->message_block_.length () > 0)
- this->message_block_.wr_ptr (this->message_block_.rd_ptr ());
-
- // One accept has completed. Issue a read to handle any
- // <post_completion>s in the future.
- if (-1 == this->read_stream_.read (this->message_block_,
- 1, // enough to read 1 byte
- 0, // ACT
- 0)) // Priority
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:(%P | %t):%p\n"),
- ACE_LIB_TEXT ("ACE_AIOCB_Notify_Pipe_Manager::handle_read_stream:")
- ACE_LIB_TEXT ("Read from pipe failed")));
-
-
- // 2. Do the upcalls
- // this->posix_aiocb_proactor_->process_result_queue ();
-}
-
-// Public constructor for common use.
-ACE_POSIX_AIOCB_Proactor::ACE_POSIX_AIOCB_Proactor (size_t max_aio_operations)
- : aiocb_notify_pipe_manager_ (0),
- aiocb_list_ (0),
- result_list_ (0),
- aiocb_list_max_size_ (max_aio_operations),
- aiocb_list_cur_size_ (0),
- notify_pipe_read_handle_ (ACE_INVALID_HANDLE),
- num_deferred_aiocb_ (0),
- num_started_aio_ (0)
-{
- // Check for correct value for max_aio_operations
- check_max_aio_num ();
-
- this->create_result_aiocb_list ();
-
- this->create_notify_manager ();
-
- // start pseudo-asynchronous accept task
- // one per all future acceptors
- this->get_asynch_pseudo_task().start ();
-
-}
-
-// Special protected constructor for ACE_SUN_Proactor
-ACE_POSIX_AIOCB_Proactor::ACE_POSIX_AIOCB_Proactor (size_t max_aio_operations,
- ACE_POSIX_Proactor::Proactor_Type)
- : aiocb_notify_pipe_manager_ (0),
- aiocb_list_ (0),
- result_list_ (0),
- aiocb_list_max_size_ (max_aio_operations),
- aiocb_list_cur_size_ (0),
- notify_pipe_read_handle_ (ACE_INVALID_HANDLE),
- num_deferred_aiocb_ (0),
- num_started_aio_ (0)
-{
- //check for correct value for max_aio_operations
- this->check_max_aio_num ();
-
- this->create_result_aiocb_list ();
-
- // @@ We should create Notify_Pipe_Manager in the derived class to
- // provide correct calls for virtual functions !!!
-}
-
-// Destructor.
-ACE_POSIX_AIOCB_Proactor::~ACE_POSIX_AIOCB_Proactor (void)
-{
- this->close();
-}
-
-int
-ACE_POSIX_AIOCB_Proactor::close (void)
-{
- // stop asynch accept task
- this->get_asynch_pseudo_task().stop ();
-
- this->delete_notify_manager ();
-
- this->clear_result_queue ();
-
- return this->delete_result_aiocb_list ();
-}
-
-void ACE_POSIX_AIOCB_Proactor::set_notify_handle (ACE_HANDLE h)
-{
- notify_pipe_read_handle_ = h;
-}
-
-int ACE_POSIX_AIOCB_Proactor::create_result_aiocb_list (void)
-{
- if (aiocb_list_ != 0)
- return 0;
-
- ACE_NEW_RETURN (aiocb_list_, aiocb *[aiocb_list_max_size_], -1);
-
- ACE_NEW_RETURN (result_list_,
- ACE_POSIX_Asynch_Result *[aiocb_list_max_size_],
- -1);
-
- // Initialize the array.
- for (size_t ai = 0; ai < this->aiocb_list_max_size_; ai++)
- {
- aiocb_list_[ai] = 0;
- result_list_[ai] = 0;
- }
-
- return 0;
-}
-
-int ACE_POSIX_AIOCB_Proactor::delete_result_aiocb_list (void)
-{
- if (aiocb_list_ == 0) // already deleted
- return 0;
-
- size_t ai;
-
- // Try to cancel all uncomlpeted operarion POSIX systems may have
- // hidden system threads that still can work with our aiocb's!
- for (ai = 0; ai < aiocb_list_max_size_; ai++)
- if (this->aiocb_list_[ai] != 0) // active operation
- this->cancel_aiocb (result_list_[ai]);
-
- int num_pending = 0;
-
- for (ai = 0; ai < aiocb_list_max_size_; ai++)
- {
- if (this->aiocb_list_[ai] == 0 ) // not active operation
- continue;
-
- // Get the error and return status of the aio_ operation.
- int error_status = 0;
- size_t transfer_count = 0;
- int flg_completed = this->get_result_status (result_list_[ai],
- error_status,
- transfer_count);
-
- //don't delete uncompleted AIOCB's
- if (flg_completed == 0) // not completed !!!
- {
- num_pending++;
-#if 0
- char * errtxt = ACE_OS::strerror (error_status);
- if (errtxt == 0)
- errtxt ="?????????";
-
- char * op = (aiocb_list_[ai]->aio_lio_opcode == LIO_WRITE )?
- "WRITE":"READ" ;
-
-
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT("slot=%d op=%s status=%d xfercnt=%d %s\n"),
- ai,
- op,
- error_status,
- transfer_count,
- errtxt));
-#endif /* 0 */
- }
- else // completed , OK
- {
- delete this->result_list_[ai];
- this->result_list_[ai] = 0;
- this->aiocb_list_[ai] = 0;
- }
- }
-
- // If it is not possible cancel some operation (num_pending > 0 ),
- // we can do only one thing -report about this
- // and complain about POSIX implementation.
- // We know that we have memory leaks, but it is better than
- // segmentation fault!
- ACE_DEBUG
- ((LM_DEBUG,
- ACE_LIB_TEXT("ACE_POSIX_AIOCB_Proactor::delete_result_aiocb_list\n")
- ACE_LIB_TEXT(" number pending AIO=%d\n"),
- num_pending));
-
- delete [] this->aiocb_list_;
- this->aiocb_list_ = 0;
-
- delete [] this->result_list_;
- this->result_list_ = 0;
-
- return (num_pending == 0 ? 0 : -1);
- // ?? or just always return 0;
-}
-
-void ACE_POSIX_AIOCB_Proactor::check_max_aio_num ()
-{
- long max_os_aio_num = ACE_OS::sysconf (_SC_AIO_MAX);
-
- // Define max limit AIO's for concrete OS
- // -1 means that there is no limit, but it is not true
- // (example, SunOS 5.6)
-
- if (max_os_aio_num > 0 &&
- aiocb_list_max_size_ > (unsigned long) max_os_aio_num)
- aiocb_list_max_size_ = max_os_aio_num;
-
-#if defined (HPUX)
- // Although HPUX 11.00 allows to start 2048 AIO's
- // for all process in system
- // it has a limit 256 max elements for aio_suspend ()
- // It is a pity, but ...
-
- long max_os_listio_num = ACE_OS::sysconf (_SC_AIO_LISTIO_MAX);
- if (max_os_listio_num > 0
- && aiocb_list_max_size_ > (unsigned long) max_os_listio_num)
- aiocb_list_max_size_ = max_os_listio_num;
-#endif /* HPUX */
-
- // check for user-defined value
- // ACE_AIO_MAX_SIZE if defined in POSIX_Proactor.h
-
- if (aiocb_list_max_size_ <= 0
- || aiocb_list_max_size_ > ACE_AIO_MAX_SIZE)
- aiocb_list_max_size_ = ACE_AIO_MAX_SIZE;
-
- // check for max number files to open
-
- int max_num_files = ACE::max_handles ();
-
- if (max_num_files > 0
- && aiocb_list_max_size_ > (unsigned long) max_num_files)
- {
- ACE::set_handle_limit (aiocb_list_max_size_);
-
- max_num_files = ACE::max_handles ();
- }
-
- if (max_num_files > 0
- && aiocb_list_max_size_ > (unsigned long) max_num_files)
- aiocb_list_max_size_ = (unsigned long) max_num_files;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P | %t) ACE_POSIX_AIOCB_Proactor::Max Number of AIOs=%d\n",
- aiocb_list_max_size_));
-
-#if defined(__sgi)
-
- ACE_DEBUG((LM_DEBUG,
- ACE_LIB_TEXT( "SGI IRIX specific: aio_init!\n")));
-
-//typedef struct aioinit {
-// int aio_threads; /* The number of aio threads to start (5) */
-// int aio_locks; /* Initial number of preallocated locks (3) */
-// int aio_num; /* estimated total simultanious aiobc structs (1000) */
-// int aio_usedba; /* Try to use DBA for raw I/O in lio_listio (0) */
-// int aio_debug; /* turn on debugging (0) */
-// int aio_numusers; /* max number of user sprocs making aio_* calls (5) */
-// int aio_reserved[3];
-//} aioinit_t;
-
- aioinit_t aioinit;
-
- aioinit.aio_threads = 10; /* The number of aio threads to start (5) */
- aioinit.aio_locks = 20; /* Initial number of preallocated locks (3) */
- /* estimated total simultaneous aiobc structs (1000) */
- aioinit.aio_num = aiocb_list_max_size_;
- aioinit.aio_usedba = 0; /* Try to use DBA for raw IO in lio_listio (0) */
- aioinit.aio_debug = 0; /* turn on debugging (0) */
- aioinit.aio_numusers = 100; /* max number of user sprocs making aio_* calls (5) */
- aioinit.aio_reserved[0] = 0;
- aioinit.aio_reserved[1] = 0;
- aioinit.aio_reserved[2] = 0;
-
- aio_sgi_init (&aioinit);
-
-#endif
-
- return;
-}
-
-void
-ACE_POSIX_AIOCB_Proactor::create_notify_manager (void)
-{
- // Remember! this issues a Asynch_Read
- // on the notify pipe for doing the Asynch_Accept/Connect.
-
- if (aiocb_notify_pipe_manager_ == 0)
- ACE_NEW (aiocb_notify_pipe_manager_,
- ACE_AIOCB_Notify_Pipe_Manager (this));
-}
-
-void
-ACE_POSIX_AIOCB_Proactor::delete_notify_manager (void)
-{
- // We are responsible for delete as all pointers set to 0 after
- // delete, it is save to delete twice
-
- delete aiocb_notify_pipe_manager_;
- aiocb_notify_pipe_manager_ = 0;
-}
-
-int
-ACE_POSIX_AIOCB_Proactor::handle_events (ACE_Time_Value &wait_time)
-{
- // Decrement <wait_time> with the amount of time spent in the method
- ACE_Countdown_Time countdown (&wait_time);
- return this->handle_events_i (wait_time.msec ());
-}
-
-int
-ACE_POSIX_AIOCB_Proactor::handle_events (void)
-{
- return this->handle_events_i (ACE_INFINITE);
-}
-
-int
-ACE_POSIX_AIOCB_Proactor::notify_completion(int sig_num)
-{
- ACE_UNUSED_ARG (sig_num);
-
- return this->aiocb_notify_pipe_manager_->notify ();
-}
-
-int
-ACE_POSIX_AIOCB_Proactor::post_completion (ACE_POSIX_Asynch_Result *result)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1));
-
- int ret_val = this->putq_result (result);
-
- return ret_val;
-}
-
-int
-ACE_POSIX_AIOCB_Proactor::putq_result (ACE_POSIX_Asynch_Result *result)
-{
- // this protected method should be called with locked mutex_
- // we can't use GUARD as Proactor uses non-recursive mutex
-
- if (!result)
- return -1;
-
- int sig_num = result->signal_number ();
- int ret_val = this->result_queue_.enqueue_tail (result);
-
- if (ret_val == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%N:%l:ACE_POSIX_AIOCB_Proactor::putq_result failed\n"),
- -1);
-
- this->notify_completion (sig_num);
-
- return 0;
-}
-
-ACE_POSIX_Asynch_Result * ACE_POSIX_AIOCB_Proactor::getq_result (void)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, 0));
-
-
- ACE_POSIX_Asynch_Result* result = 0;
-
- if (this->result_queue_.dequeue_head (result) != 0)
- return 0;
-
-// don;t waste time if queue is empty - it is normal
-// or check queue size before dequeue_head
-// ACE_ERROR_RETURN ((LM_ERROR,
-// "%N:%l:(%P | %t):%p\n",
-// "ACE_POSIX_AIOCB_Proactor::getq_result failed"),
-// 0);
-
- return result;
-}
-
-int ACE_POSIX_AIOCB_Proactor::clear_result_queue (void)
-{
- int ret_val = 0;
- ACE_POSIX_Asynch_Result* result = 0;
-
- while ((result = this->getq_result ()) != 0)
- {
- delete result;
- ret_val++;
- }
-
- return ret_val;
-}
-
-int ACE_POSIX_AIOCB_Proactor::process_result_queue (void)
-{
- int ret_val = 0;
- ACE_POSIX_Asynch_Result* result = 0;
-
- while ((result = this->getq_result ()) != 0)
- {
- this->application_specific_code
- (result,
- result->bytes_transferred(), // 0, No bytes transferred.
- 0, // No completion key.
- result->error()); //0, No error.
-
- ret_val++;
- }
-
- return ret_val;
-}
-
-int
-ACE_POSIX_AIOCB_Proactor::handle_events_i (u_long milli_seconds)
-{
- int result_suspend = 0;
- int retval= 0;
-
- if (milli_seconds == ACE_INFINITE)
- // Indefinite blocking.
- result_suspend = aio_suspend (aiocb_list_,
- aiocb_list_max_size_,
- 0);
- else
- {
- // Block on <aio_suspend> for <milli_seconds>
- timespec timeout;
- timeout.tv_sec = milli_seconds / 1000;
- timeout.tv_nsec = (milli_seconds - (timeout.tv_sec * 1000)) * 1000;
- result_suspend = aio_suspend (aiocb_list_,
- aiocb_list_max_size_,
- &timeout);
- }
-
- // Check for errors
- if (result_suspend == -1)
- {
- if (errno != EAGAIN && // Timeout
- errno != EINTR ) // Interrupted call
- ACE_ERROR ((LM_ERROR,
- "%N:%l:(%P | %t)::%p\n",
- "ACE_POSIX_AIOCB_Proactor::handle_events:"
- "aio_suspend failed\n"));
-
- // let continue work
- // we should check "post_completed" queue
- }
- else
- {
- size_t index = 0;
- size_t count = aiocb_list_max_size_; // max number to iterate
- int error_status = 0;
- size_t transfer_count = 0;
-
- for (;; retval++)
- {
- ACE_POSIX_Asynch_Result *asynch_result =
- find_completed_aio (error_status,
- transfer_count,
- index,
- count);
-
- if (asynch_result == 0)
- break;
-
- // Call the application code.
- this->application_specific_code (asynch_result,
- transfer_count,
- 0, // No completion key.
- error_status);
- }
- }
-
- // process post_completed results
- retval += this->process_result_queue ();
-
- return retval > 0 ? 1 : 0;
-}
-
-int
-ACE_POSIX_AIOCB_Proactor::get_result_status (ACE_POSIX_Asynch_Result *asynch_result,
- int &error_status,
- size_t &transfer_count)
-{
- transfer_count = 0;
-
- // Get the error status of the aio_ operation.
- error_status = aio_error (asynch_result);
- if (error_status == EINPROGRESS)
- return 0; // not completed
-
- ssize_t op_return = aio_return (asynch_result);
- if (op_return > 0)
- transfer_count = ACE_static_cast (size_t, op_return);
- // else transfer_count is already 0, error_status reports the error.
- return 1; // completed
-}
-
-ACE_POSIX_Asynch_Result *
-ACE_POSIX_AIOCB_Proactor::find_completed_aio (int &error_status,
- size_t &transfer_count,
- size_t &index,
- size_t &count)
-{
- // parameter index defines initial slot to scan
- // parameter count tells us how many slots should we scan
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->mutex_, 0));
-
- ACE_POSIX_Asynch_Result *asynch_result = 0;
-
- if (num_started_aio_ == 0) // save time
- return 0;
-
- for (; count > 0; index++ , count--)
- {
- if (index >= aiocb_list_max_size_) // like a wheel
- index = 0;
-
- if (aiocb_list_[index] == 0) // Dont process null blocks.
- continue;
-
- if (0 != this->get_result_status (result_list_[index],
- error_status,
- transfer_count)) // completed
- break;
-
- } // end for
-
- if (count == 0) // all processed , nothing found
- return 0;
- asynch_result = result_list_[index];
-
- aiocb_list_[index] = 0;
- result_list_[index] = 0;
- aiocb_list_cur_size_--;
-
- num_started_aio_--; // decrement count active aios
- index++; // for next iteration
- count--; // for next iteration
-
- this->start_deferred_aio ();
- //make attempt to start deferred AIO
- //It is safe as we are protected by mutex_
-
- return asynch_result;
-}
-
-
-int
-ACE_POSIX_AIOCB_Proactor::start_aio (ACE_POSIX_Asynch_Result *result,
- ACE_POSIX_Proactor::Opcode op)
-{
- ACE_TRACE ("ACE_POSIX_AIOCB_Proactor::start_aio");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->mutex_, -1));
-
- int ret_val = (aiocb_list_cur_size_ >= aiocb_list_max_size_) ? -1 : 0;
-
- if (result == 0) // Just check the status of the list
- return ret_val;
-
- // Save operation code in the aiocb
- switch (op)
- {
- case ACE_POSIX_Proactor::READ:
- result->aio_lio_opcode = LIO_READ;
- break;
-
- case ACE_POSIX_Proactor::WRITE:
- result->aio_lio_opcode = LIO_WRITE;
- break;
-
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%N:%l:(%P | %t)::\n"
- "start_aio: Invalid operation code\n"),
- -1);
- }
-
- if (ret_val != 0) // No free slot
- {
- errno = EAGAIN;
- return -1;
- }
-
- // Find a free slot and store.
-
- ssize_t slot = allocate_aio_slot (result);
-
- if (slot < 0)
- return -1;
-
- size_t index = ACE_static_cast (size_t, slot);
-
- result_list_[index] = result; //Store result ptr anyway
- aiocb_list_cur_size_++;
-
- ret_val = start_aio_i (result);
- switch (ret_val)
- {
- case 0: // started OK
- aiocb_list_[index] = result;
- return 0;
-
- case 1: // OS AIO queue overflow
- num_deferred_aiocb_ ++;
- return 0;
-
- default: // Invalid request, there is no point
- break; // to start it later
- }
-
- result_list_[index] = 0;
- aiocb_list_cur_size_--;
- return -1;
-}
-
-ssize_t
-ACE_POSIX_AIOCB_Proactor::allocate_aio_slot (ACE_POSIX_Asynch_Result *result)
-{
- size_t i = 0;
-
- // we reserve zero slot for ACE_AIOCB_Notify_Pipe_Manager
- // so make check for ACE_AIOCB_Notify_Pipe_Manager request
-
- if (notify_pipe_read_handle_ == result->aio_fildes) // Notify_Pipe ?
- { // should be free,
- if (result_list_[i] != 0) // only 1 request
- { // is allowed
- errno = EAGAIN;
- ACE_ERROR_RETURN ((LM_ERROR,
- "%N:%l:(%P | %t)::\n"
- "ACE_POSIX_AIOCB_Proactor::allocate_aio_slot:"
- "internal Proactor error 0\n"),
- -1);
- }
- }
- else //try to find free slot as usual, but starting from 1
- {
- for (i= 1; i < this->aiocb_list_max_size_; i++)
- if (result_list_[i] == 0)
- break;
- }
-
- if (i >= this->aiocb_list_max_size_)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%N:%l:(%P | %t)::\n"
- "ACE_POSIX_AIOCB_Proactor::allocate_aio_slot:"
- "internal Proactor error 1\n"),
- -1);
-
- //setup OS notification methods for this aio
- result->aio_sigevent.sigev_notify = SIGEV_NONE;
-
- return ACE_static_cast (ssize_t, i);
-}
-
-// start_aio_i has new return codes
-// 0 AIO was started successfully
-// 1 AIO was not started, OS AIO queue overflow
-// -1 AIO was not started, other errors
-
-int
-ACE_POSIX_AIOCB_Proactor::start_aio_i (ACE_POSIX_Asynch_Result *result)
-{
- ACE_TRACE ("ACE_POSIX_AIOCB_Proactor::start_aio_i");
-
- int ret_val;
- const ACE_TCHAR *ptype;
-
- // Start IO
-
- switch (result->aio_lio_opcode )
- {
- case LIO_READ :
- ptype = ACE_LIB_TEXT ("read ");
- ret_val = aio_read (result);
- break;
- case LIO_WRITE :
- ptype = ACE_LIB_TEXT ("write");
- ret_val = aio_write (result);
- break;
- default:
- ptype = ACE_LIB_TEXT ("?????");
- ret_val = -1;
- break;
- }
-
- if (ret_val == 0)
- this->num_started_aio_++;
- else // if (ret_val == -1)
- {
- if (errno == EAGAIN || errno == ENOMEM) //Ok, it will be deferred AIO
- ret_val = 1;
- else
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:(%P | %t)::start_aio_i: aio_%s %p\n"),
- ptype,
- ACE_LIB_TEXT ("queueing failed\n")));
- }
-
- return ret_val;
-}
-
-
-int
-ACE_POSIX_AIOCB_Proactor::start_deferred_aio ()
-{
- ACE_TRACE ("ACE_POSIX_AIOCB_Proactor::start_deferred_aio");
-
- // This protected method is called from
- // find_completed_aio after any AIO completion
- // We should call this method always with locked
- // ACE_POSIX_AIOCB_Proactor::mutex_
- //
- // It tries to start the first deferred AIO
- // if such exists
-
- if (num_deferred_aiocb_ == 0)
- return 0; // nothing to do
-
- size_t i = 0;
-
- for (i= 0; i < this->aiocb_list_max_size_; i++)
- if (result_list_[i] !=0 // check for
- && aiocb_list_[i] ==0) // deferred AIO
- break;
-
- if (i >= this->aiocb_list_max_size_)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%N:%l:(%P | %t)::\n"
- "start_deferred_aio:"
- "internal Proactor error 3\n"),
- -1);
-
- ACE_POSIX_Asynch_Result *result = result_list_[i];
-
- int ret_val = start_aio_i (result);
-
- switch (ret_val)
- {
- case 0 : //started OK , decrement count of deferred AIOs
- aiocb_list_[i] = result;
- num_deferred_aiocb_ --;
- return 0;
-
- case 1 :
- return 0; //try again later
-
- default : // Invalid Parameters , should never be
- break;
- }
-
- //AL notify user
-
- result_list_[i] = 0;
- aiocb_list_cur_size_--;
-
- num_deferred_aiocb_ --;
-
- result->set_error (errno);
- result->set_bytes_transferred (0);
- this->putq_result (result); // we are with locked mutex_ here !
-
- return -1;
-}
-
-int
-ACE_POSIX_AIOCB_Proactor::cancel_aio (ACE_HANDLE handle)
-{
- // This new method should be called from
- // ACE_POSIX_Asynch_Operation instead of usual ::aio_cancel
- // It scans the result_list_ and defines all AIO requests
- // that were issued for handle "handle"
- //
- // For all deferred AIO requests with handle "handle"
- // it removes its from the lists and notifies user
- //
- // For all running AIO requests with handle "handle"
- // it calls ::aio_cancel. According to the POSIX standards
- // we will receive ECANCELED for all ::aio_canceled AIO requests
- // later on return from ::aio_suspend
-
- ACE_TRACE ("ACE_POSIX_AIOCB_Proactor::cancel_aio");
-
- int num_total = 0;
- int num_cancelled = 0;
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->mutex_, -1));
-
- size_t ai = 0;
-
- for (ai = 0; ai < this->aiocb_list_max_size_; ai++)
- {
- if (this->result_list_[ai] == 0) // Skip empty slot
- continue;
-
- if (this->result_list_[ai]->aio_fildes != handle) // Not ours
- continue;
-
- num_total++;
-
- ACE_POSIX_Asynch_Result *asynch_result = this->result_list_[ai];
-
- if (this->aiocb_list_[ai] == 0) // Canceling a deferred operation
- {
- num_cancelled++;
- this->num_deferred_aiocb_--;
-
- this->aiocb_list_[ai] = 0;
- this->result_list_[ai] = 0;
- this->aiocb_list_cur_size_--;
-
- asynch_result->set_error (ECANCELED);
- asynch_result->set_bytes_transferred (0);
- this->putq_result (asynch_result);
- // we are with locked mutex_ here !
- }
- else // Cancel started aio
- {
- int rc_cancel = this->cancel_aiocb (asynch_result);
-
- if (rc_cancel == 0) //notification in the future
- num_cancelled++; //it is OS responsiblity
- }
- }
-
- } // release mutex_
-
- if (num_total == 0)
- return 1; // ALLDONE
-
- if (num_cancelled == num_total)
- return 0; // CANCELLED
-
- return 2; // NOT CANCELLED
-}
-
-int
-ACE_POSIX_AIOCB_Proactor::cancel_aiocb (ACE_POSIX_Asynch_Result * result)
-{
- // This method is called from cancel_aio
- // to cancel a previously submitted AIO request
- int rc = ::aio_cancel (0, result);
-
- // Check the return value and return 0/1/2 appropriately.
- if (rc == AIO_CANCELED)
- return 0;
- else if (rc == AIO_ALLDONE)
- return 1;
- else // (rc == AIO_NOTCANCELED)
- return 2;
-}
-
-
-// *********************************************************************
-
-#if defined(ACE_HAS_POSIX_REALTIME_SIGNALS)
-
-ACE_POSIX_SIG_Proactor::ACE_POSIX_SIG_Proactor (size_t max_aio_operations)
- : ACE_POSIX_AIOCB_Proactor (max_aio_operations,
- ACE_POSIX_Proactor::PROACTOR_SIG)
-{
- // = Set up the mask we'll use to block waiting for SIGRTMIN. Use that
- // to add it to the signal mask for this thread, and also set the process
- // signal action to pass signal information when we want it.
-
- // Clear the signal set.
- ACE_OS::sigemptyset (&this->RT_completion_signals_);
-
- // Add the signal number to the signal set.
- if (ACE_OS::sigaddset (&this->RT_completion_signals_, ACE_SIGRTMIN) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("ACE_POSIX_SIG_Proactor: %p\n"),
- ACE_LIB_TEXT ("sigaddset")));
- this->block_signals ();
- // Set up the signal action for SIGRTMIN.
- this->setup_signal_handler (ACE_SIGRTMIN);
-
- // we do not have to create notify manager
- // but we should start pseudo-asynchronous accept task
- // one per all future acceptors
-
- this->get_asynch_pseudo_task().start ();
- return;
-}
-
-ACE_POSIX_SIG_Proactor::ACE_POSIX_SIG_Proactor (const sigset_t signal_set,
- size_t max_aio_operations)
- : ACE_POSIX_AIOCB_Proactor (max_aio_operations,
- ACE_POSIX_Proactor::PROACTOR_SIG)
-{
- // = Keep <Signal_set> with the Proactor, mask all the signals and
- // setup signal actions for the signals in the <signal_set>.
-
- // = Keep <signal_set> with the Proactor.
-
- // Empty the signal set first.
- if (sigemptyset (&this->RT_completion_signals_) == -1)
- ACE_ERROR ((LM_ERROR,
- "Error:(%P | %t):%p\n",
- "sigemptyset failed"));
-
- // For each signal number present in the <signal_set>, add it to
- // the signal set we use, and also set up its process signal action
- // to allow signal info to be passed into sigwait/sigtimedwait.
- int member = 0;
- for (int si = ACE_SIGRTMIN; si <= ACE_SIGRTMAX; si++)
- {
- member = sigismember (&signal_set,
- si);
- if (member == -1)
- ACE_ERROR ((LM_ERROR,
- "%N:%l:(%P | %t)::%p\n",
- "ACE_POSIX_SIG_Proactor::ACE_POSIX_SIG_Proactor:"
- "sigismember failed"));
- else if (member == 1)
- {
- sigaddset (&this->RT_completion_signals_, si);
- this->setup_signal_handler (si);
- }
- }
-
- // Mask all the signals.
- this->block_signals ();
-
- // we do not have to create notify manager
- // but we should start pseudo-asynchronous accept task
- // one per all future acceptors
-
- this->get_asynch_pseudo_task().start ();
- return;
-}
-
-ACE_POSIX_SIG_Proactor::~ACE_POSIX_SIG_Proactor (void)
-{
- this->close ();
-
- // @@ Enable the masked signals again.
-}
-
-int
-ACE_POSIX_SIG_Proactor::handle_events (ACE_Time_Value &wait_time)
-{
- // Decrement <wait_time> with the amount of time spent in the method
- ACE_Countdown_Time countdown (&wait_time);
- return this->handle_events_i (&wait_time);
-}
-
-int
-ACE_POSIX_SIG_Proactor::handle_events (void)
-{
- return this->handle_events_i (0);
-}
-
-int
-ACE_POSIX_SIG_Proactor::notify_completion (int sig_num)
-{
- // Get this process id.
- pid_t pid = ACE_OS::getpid ();
- if (pid == (pid_t) -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Error:%N:%l(%P | %t):%p",
- "<getpid> failed"),
- -1);
-
- // Set the signal information.
- sigval value;
-#if defined (__FreeBSD__)
- value.sigval_int = -1;
-#else
- value.sival_int = -1;
-#endif /* __FreeBSD__ */
-
- // Queue the signal.
- if (sigqueue (pid, sig_num, value) == 0)
- return 0;
-
- if (errno != EAGAIN)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Error:%N:%l:(%P | %t):%p\n",
- "<sigqueue> failed"),
- -1);
- return -1;
-}
-
-ACE_Asynch_Result_Impl *
-ACE_POSIX_SIG_Proactor::create_asynch_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &tv,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- int is_member = 0;
-
- // Fix the signal number.
- if (signal_number == -1)
- {
- int si;
- for (si = ACE_SIGRTMAX;
- (is_member == 0) && (si >= ACE_SIGRTMIN);
- si--)
- {
- is_member = sigismember (&this->RT_completion_signals_,
- si);
- if (is_member == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%N:%l:(%P | %t)::%s\n",
- "ACE_POSIX_SIG_Proactor::create_asynch_timer:"
- "sigismember failed"),
- 0);
- }
-
- if (is_member == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Error:%N:%l:(%P | %t)::%s\n",
- "ACE_POSIX_SIG_Proactor::ACE_POSIX_SIG_Proactor:"
- "Signal mask set empty"),
- 0);
- else
- // + 1 to nullify loop increment.
- signal_number = si + 1;
- }
-
- ACE_Asynch_Result_Impl *implementation;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Timer (handler,
- act,
- tv,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-
-void sig_handler (int sig_num, siginfo_t *, ucontext_t *)
-{
- // Should never be called
- ACE_DEBUG ((LM_DEBUG,
- "%N:%l:(%P | %t)::sig_handler received signal: %d\n",
- sig_num));
- return;
-}
-
-int
-ACE_POSIX_SIG_Proactor::setup_signal_handler (int signal_number) const
-{
- // Set up the specified signal so that signal information will be
- // passed to sigwaitinfo/sigtimedwait. Don't change the default
- // signal handler - having a handler and waiting for the signal can
- // produce undefined behavior.
-
- // But can not use SIG_DFL
- // With SIG_DFL after delivering the first signal
- // SIG_DFL handler resets SA_SIGINFO flags
- // and we will lose all information sig_info
- // At least all SunOS have such behavior
-
- struct sigaction reaction;
- sigemptyset (&reaction.sa_mask); // Nothing else to mask.
- reaction.sa_flags = SA_SIGINFO; // Realtime flag.
- reaction.sa_sigaction = ACE_SIGNAL_C_FUNC(sig_handler); // (SIG_DFL);
- int sigaction_return = ACE_OS::sigaction (signal_number,
- &reaction,
- 0);
- if (sigaction_return == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Error:%p\n",
- "Proactor couldnt do sigaction for the RT SIGNAL"),
- -1);
- return 0;
-}
-
-
-int
-ACE_POSIX_SIG_Proactor::block_signals (void) const
-{
- return ACE_OS::pthread_sigmask (SIG_BLOCK, &this->RT_completion_signals_, 0);
-}
-
-ssize_t
-ACE_POSIX_SIG_Proactor::allocate_aio_slot (ACE_POSIX_Asynch_Result *result)
-{
- size_t i = 0;
-
- //try to find free slot as usual, starting from 0
- for (i = 0; i < this->aiocb_list_max_size_; i++)
- if (result_list_[i] == 0)
- break;
-
- if (i >= this->aiocb_list_max_size_)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%N:%l:(%P | %t)::\n"
- "ACE_POSIX_SIG_Proactor::allocate_aio_slot "
- "internal Proactor error 1\n"),
- -1);
-
- // setup OS notification methods for this aio
- // store index!!, not pointer in signal info
- result->aio_sigevent.sigev_notify = SIGEV_SIGNAL;
- result->aio_sigevent.sigev_signo = result->signal_number ();
-#if defined (__FreeBSD__)
- result->aio_sigevent.sigev_value.sigval_int = ACE_static_cast (int, i);
-#else
- result->aio_sigevent.sigev_value.sival_int = ACE_static_cast (int, i);
-#endif /* __FreeBSD__ */
-
- return ACE_static_cast (ssize_t, i);
-}
-
-int
-ACE_POSIX_SIG_Proactor::handle_events_i (const ACE_Time_Value *timeout)
-{
- int result_sigwait = 0;
- siginfo_t sig_info;
-
- // Wait for the signals.
- if (timeout == 0)
- {
- result_sigwait = ACE_OS::sigwaitinfo (&this->RT_completion_signals_,
- &sig_info);
- }
- else
- {
- result_sigwait = ACE_OS::sigtimedwait (&this->RT_completion_signals_,
- &sig_info,
- timeout);
- if (result_sigwait == -1 && errno == EAGAIN)
- return 0;
- }
-
- // We should not get EINTR since ACE_OS methods restart the system call
- // on EINTR. So -1 here is bad.
- if (result_sigwait == -1)
- return -1;
-
- // Decide what to do. We always check the completion queue since it's an
- // easy, quick check. What is decided here is whether to check for
- // I/O completions and, if so, how completely to scan.
- int flg_aio = 0; // 1 if AIO Completion possible
-
- size_t index = 0; // start index to scan aiocb list
- size_t count = 1; // max number of aiocbs to scan
- int error_status = 0;
- size_t transfer_count = 0;
-
- if (sig_info.si_code == SI_ASYNCIO || this->os_id_ == OS_SUN_56)
- {
- flg_aio = 1; // AIO signal received
- // define index to start
- // nothing will happen if it contains garbage
-#if defined (__FreeBSD__)
- index = ACE_static_cast (size_t, sig_info.si_value.sigval_int);
-#else
- index = ACE_static_cast (size_t, sig_info.si_value.sival_int);
-#endif
- // Assume we have a correctly-functioning implementation, and that
- // there is one I/O to process, and it's correctly specified in the
- // siginfo received. There are, however, some special situations
- // where this isn't true...
- if (os_id_ == OS_SUN_56) // Solaris 6
- {
- // 1. Solaris 6 always loses any RT signal,
- // if it has more SIGQUEMAX=32 pending signals
- // so we should scan the whole aiocb list
- // 2. Moreover,it has one more bad habit
- // to notify aio completion
- // with SI_QUEUE code instead of SI_ASYNCIO, hence the
- // OS_SUN_56 addition to the si_code check, above.
- count = aiocb_list_max_size_;
- }
- }
- else if (sig_info.si_code != SI_QUEUE)
- {
- // Unknown signal code.
- // may some other third-party libraries could send it
- // or message queue could also generate it !
- // So print the message and check our completions
- ACE_ERROR ((LM_DEBUG,
- ACE_LIB_TEXT ("%N:%l:(%P | %t): ")
- ACE_LIB_TEXT ("ACE_POSIX_SIG_Proactor::handle_events: ")
- ACE_LIB_TEXT ("Unexpected signal code (%d) returned ")
- ACE_LIB_TEXT ("from sigwait; expecting %d\n"),
- result_sigwait, sig_info.si_code));
- flg_aio = 1;
- }
-
- int ret_aio = 0;
- int ret_que = 0;
-
- if (flg_aio)
- for (;; ret_aio++)
- {
- ACE_POSIX_Asynch_Result *asynch_result =
- find_completed_aio (error_status,
- transfer_count,
- index,
- count);
-
- if (asynch_result == 0)
- break;
-
- // Call the application code.
- this->application_specific_code (asynch_result,
- transfer_count,
- 0, // No completion key.
- error_status); // Error
- }
-
- // process post_completed results
- ret_que = this->process_result_queue ();
-
- // Uncomment this if you want to test
- // and research the behavior of you system
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- "(%t) NumAIO=%d NumQueue=%d\n",
- ret_aio, ret_que));
-#endif
-
- return ret_aio + ret_que > 0 ? 1 : 0;
-}
-
-#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
-
-// *********************************************************************
-
-ACE_POSIX_Asynch_Timer::ACE_POSIX_Asynch_Timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &tv,
- ACE_HANDLE event,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- ACE_POSIX_Asynch_Result (handler, act, event, 0, 0, priority, signal_number),
- time_ (tv)
-{
-}
-
-void
-ACE_POSIX_Asynch_Timer::complete (size_t /* bytes_transferred */,
- int /* success */,
- const void * /* completion_key */,
- u_long /* error */)
-{
- this->handler_.handle_time_out (this->time_, this->act ());
-}
-
-
-// *********************************************************************
-
-ACE_POSIX_Wakeup_Completion::ACE_POSIX_Wakeup_Completion (ACE_Handler &handler,
- const void *act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- ACE_POSIX_Asynch_Result (handler, act, event, 0, 0, priority, signal_number)
-{
-}
-
-ACE_POSIX_Wakeup_Completion::~ACE_POSIX_Wakeup_Completion (void)
-{
-}
-
-void
-ACE_POSIX_Wakeup_Completion::complete (size_t /* bytes_transferred */,
- int /* success */,
- const void * /* completion_key */,
- u_long /* error */)
-{
-
- this->handler_.handle_wakeup ();
-}
-
-
-#endif /* ACE_HAS_AIO_CALLS */
diff --git a/ace/POSIX_Proactor.h b/ace/POSIX_Proactor.h
deleted file mode 100644
index 0b706f841c9..00000000000
--- a/ace/POSIX_Proactor.h
+++ /dev/null
@@ -1,656 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file POSIX_Proactor.h
- *
- * $Id$
- *
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- * @author Tim Harrison <harrison@cs.wustl.edu>
- * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
- * @author Roger Tragin <r.tragin@computer.org>
- * @author Alexander Libman <alibman@baltimore.com>
- */
-//=============================================================================
-
-#ifndef ACE_POSIX_PROACTOR_H
-#define ACE_POSIX_PROACTOR_H
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_AIO_CALLS)
-// POSIX implementation of Proactor depends on the <aio_> family of
-// system calls.
-
-#include "ace/Proactor_Impl.h"
-#include "ace/Free_List.h"
-#include "ace/Pipe.h"
-#include "ace/POSIX_Asynch_IO.h"
-#include "ace/Asynch_Pseudo_Task.h"
-
-#define ACE_AIO_MAX_SIZE 2048
-#define ACE_AIO_DEFAULT_SIZE 1024
-
-/**
- * @class ACE_POSIX_Proactor
- *
- * @brief POSIX implementation of the Proactor.
- *
- * There are two different strategies by which Proactor can get
- * to know the completion of <aio> operations. One is based on
- * Asynchronous I/O Control Blocks (AIOCB) where a list of
- * AIOCBs are stored and completion status of the corresponding
- * operations are queried on them. The other one is based on
- * POSIX Real Time signals. This class abstracts out the common
- * code needed for both the strategies. <ACE_AIOCB_Proactor> and
- * <ACE_SIG_Proactor> specialize this class for each strategy.
- */
-class ACE_Export ACE_POSIX_Proactor : public ACE_Proactor_Impl
-{
-public:
- enum Proactor_Type
- {
- /// Base class type
- PROACTOR_POSIX = 0,
-
- /// Aio_suspend() based
- PROACTOR_AIOCB = 1,
-
- /// Signals notifications
- PROACTOR_SIG = 2,
-
- /// SUN specific aiowait()
- PROACTOR_SUN = 3,
-
- /// Callback notifications
- PROACTOR_CB = 4
- };
-
-
- enum SystemType // open for future extention
- {
- OS_UNDEFINED= 0x0000,
- OS_WIN = 0x0100, // for future
- OS_WIN_NT = OS_WIN | 0x0001,
- OS_WIN_2000 = OS_WIN | 0x0002,
- OS_SUN = 0x0200, // Sun Solaris family
- OS_SUN_55 = OS_SUN | 0x0001,
- OS_SUN_56 = OS_SUN | 0x0002,
- OS_SUN_57 = OS_SUN | 0x0004,
- OS_SUN_58 = OS_SUN | 0x0008,
- OS_HPUX = 0x0400, // HPUX family
- OS_HPUX_11 = OS_HPUX | 0x0001,
- OS_LINUX = 0x0800, // Linux family
- OS_FREEBSD = 0x1000, // FreeBSD family
- OS_IRIX = 0x2000, // SGI IRIX family
- OS_OPENBSD = 0x4000 // OpenBSD familty
- };
-
- enum Opcode {
- READ = 1,
- WRITE = 2
- };
-
- virtual Proactor_Type get_impl_type (void);
-
- /// Virtual destructor.
- virtual ~ACE_POSIX_Proactor (void);
-
- /// Close down the Proactor.
- virtual int close (void);
-
- /**
- * Dispatch a single set of events. If <wait_time> elapses before
- * any events occur, return 0. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (ACE_Time_Value &wait_time) = 0;
-
- /**
- * Block indefinitely until at least one event is dispatched.
- * Dispatch a single set of events. If <wait_time> elapses before
- * any events occur, return 0. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (void) = 0;
-
- /**
- * Post a result to the completion port of the Proactor. If errors
- * occur, the result will be deleted by this method. If successful,
- * the result will be deleted by the Proactor when the result is
- * removed from the completion port. Therefore, the result should
- * have been dynamically allocated and should be orphaned by the
- * user once this method is called.
- */
- virtual int post_completion (ACE_POSIX_Asynch_Result *result) = 0;
-
- virtual int start_aio (ACE_POSIX_Asynch_Result *result, Opcode op) = 0;
-
- virtual int cancel_aio (ACE_HANDLE h) = 0;
-
- /// Task to process pseudo-asynchronous operations
- ACE_Asynch_Pseudo_Task &get_asynch_pseudo_task ();
-
- /// This function is a no-op function for Unix systems. Returns 0.
- virtual int register_handle (ACE_HANDLE handle,
- const void *completion_key);
-
- /// @@ This is a no-op on POSIX platforms. Returns 0.
- int wake_up_dispatch_threads (void);
-
- /// @@ This is a no-op on POSIX platforms. Returns 0.
- int close_dispatch_threads (int wait);
-
- /// @@ This is a no-op on POSIX platforms. Returns 0.
- size_t number_of_threads (void) const;
- void number_of_threads (size_t threads);
-
- /// This is a no-op in POSIX. Returns ACE_INVALID_HANDLE.
- virtual ACE_HANDLE get_handle (void) const;
-
- // Methods used to create Asynch IO factory and result objects. We
- // create the right objects here in these methods.
-
- virtual ACE_Asynch_Read_Stream_Impl *create_asynch_read_stream (void);
- virtual ACE_Asynch_Read_Stream_Result_Impl *
- create_asynch_read_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- virtual ACE_Asynch_Write_Stream_Impl *create_asynch_write_stream (void);
- virtual ACE_Asynch_Write_Stream_Result_Impl *
- create_asynch_write_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- virtual ACE_Asynch_Read_File_Impl *create_asynch_read_file (void);
- virtual ACE_Asynch_Read_File_Result_Impl *
- create_asynch_read_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- virtual ACE_Asynch_Write_File_Impl *create_asynch_write_file (void);
- virtual ACE_Asynch_Write_File_Result_Impl *
- create_asynch_write_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- virtual ACE_Asynch_Read_Dgram_Impl *create_asynch_read_dgram (void);
- virtual ACE_Asynch_Read_Dgram_Result_Impl *
- create_asynch_read_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_read,
- int flags,
- int protocol_family,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- virtual ACE_Asynch_Write_Dgram_Impl *create_asynch_write_dgram (void);
- virtual ACE_Asynch_Write_Dgram_Result_Impl *
- create_asynch_write_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_write,
- int flags,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- virtual ACE_Asynch_Accept_Impl *create_asynch_accept (void);
- virtual ACE_Asynch_Accept_Result_Impl *
- create_asynch_accept_result (ACE_Handler &handler,
- ACE_HANDLE listen_handle,
- ACE_HANDLE accept_handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- virtual ACE_Asynch_Connect_Impl *create_asynch_connect (void);
- virtual ACE_Asynch_Connect_Result_Impl *
- create_asynch_connect_result (ACE_Handler & handler,
- ACE_HANDLE connect_handle,
- const void *act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- virtual ACE_Asynch_Transmit_File_Impl *create_asynch_transmit_file (void);
- virtual ACE_Asynch_Transmit_File_Result_Impl *
- create_asynch_transmit_file_result (ACE_Handler &handler,
- ACE_HANDLE socket,
- ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Create a timer result object which can be used with the Timer
- /// mechanism of the Proactor.
- virtual ACE_Asynch_Result_Impl *
- create_asynch_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &tv,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
-protected:
- /// Constructor.
- ACE_POSIX_Proactor (void);
-
- /**
- * Protect against structured exceptions caused by user code when
- * dispatching handles. The <completion_key> is not very useful
- * compared to <AST> that can be associated each asynchronous
- * operation. <completion_key> is implemented right now for the
- * POSIX Proators.
- */
- void application_specific_code (ACE_POSIX_Asynch_Result *asynch_result,
- size_t bytes_transferred,
- const void *completion_key,
- u_long error);
-
- /**
- * Post <how_many> completions to the completion port so that all
- * threads can wake up. This is used in conjunction with the
- * <run_event_loop>.
- */
- virtual int post_wakeup_completions (int how_many);
-
-protected:
- /// Handler to handle the wakeups. This works in conjunction with the
- /// <ACE_Proactor::run_event_loop>.
- ACE_Handler wakeup_handler_;
- int os_id_;
-
-private:
- /// Task to process pseudo-asynchronous accept/connect
- ACE_Asynch_Pseudo_Task pseudo_task_;
-
-};
-
-// Forward declarations.
-class ACE_AIOCB_Notify_Pipe_Manager;
-
-/**
- * @class ACE_POSIX_AIOCB_Proactor
- *
- * @brief This Proactor makes use of Asynchronous I/O Control Blocks
- * (AIOCB) to notify/get the completion status of the <aio_>
- * operations issued.
- */
-class ACE_Export ACE_POSIX_AIOCB_Proactor : public ACE_POSIX_Proactor
-{
-
- /// Handler needs to call application specific code.
- friend class ACE_AIOCB_Notify_Pipe_Manager;
-
- /// This class does the registering of Asynch Operations with the
- /// Proactor which is necessary in the AIOCB strategy.
- friend class ACE_POSIX_Asynch_Operation;
- friend class ACE_POSIX_Asynch_Accept;
- friend class ACE_POSIX_Asynch_Connect;
-
-
-public:
- /// Constructor defines max number asynchronous operations
- /// which can be started at the same time
- ACE_POSIX_AIOCB_Proactor (size_t nmaxop = ACE_AIO_DEFAULT_SIZE);
-
- virtual Proactor_Type get_impl_type (void);
-
- /// Destructor.
- virtual ~ACE_POSIX_AIOCB_Proactor (void);
-
- /// Close down the Proactor.
- virtual int close (void);
-
- /**
- * Dispatch a single set of events. If <wait_time> elapses before
- * any events occur, return 0. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (ACE_Time_Value &wait_time);
-
- /**
- * Block indefinitely until at least one event is dispatched.
- * Dispatch a single set of events. If <wait_time> elapses before
- * any events occur, return 0. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (void);
-
- /// Post a result to the completion port of the Proactor.
- virtual int post_completion (ACE_POSIX_Asynch_Result *result);
-
- virtual int start_aio (ACE_POSIX_Asynch_Result *result,
- ACE_POSIX_Proactor::Opcode op);
-
- /**
- * This method should be called from
- * ACE_POSIX_Asynch_Operation::cancel()
- * instead of usual ::aio_cancel.
- * For all deferred AIO requests with handle "h"
- * it removes its from the lists and notifies user.
- * For all running AIO requests with handle "h"
- * it calls ::aio_cancel. According to the POSIX standards
- * we will receive ECANCELED for all ::aio_canceled AIO requests
- * later on return from ::aio_suspend
- */
- virtual int cancel_aio (ACE_HANDLE h);
-
-protected:
-
- /// Special constructor for ACE_SUN_Proactor
- /// and ACE_POSIX_SIG_Proactor
- ACE_POSIX_AIOCB_Proactor (size_t nmaxop,
- ACE_POSIX_Proactor::Proactor_Type ptype);
-
- /// Check AIO for completion, error and result status
- /// Return: 1 - AIO completed , 0 - not completed yet
- virtual int get_result_status (ACE_POSIX_Asynch_Result *asynch_result,
- int &error_status,
- size_t &transfer_count);
-
- /// Create aiocb list
- int create_result_aiocb_list (void);
-
- /// Call this method from derived class when virtual table is
- /// built.
- int delete_result_aiocb_list (void);
-
- /// Call these methods from derived class when virtual table is
- /// built.
- void create_notify_manager (void);
- void delete_notify_manager (void);
-
- /// Define the maximum number of asynchronous I/O requests
- /// for the current OS
- void check_max_aio_num (void) ;
-
- /// To identify requests from Notify_Pipe_Manager
- void set_notify_handle (ACE_HANDLE h);
-
- /**
- * Dispatch a single set of events. If <milli_seconds> elapses
- * before any events occur, return 0. Return 1 if a completion
- * dispatched. Return -1 on errors.
- */
- int handle_events_i (u_long milli_seconds);
-
- /// Start deferred AIO if necessary
- int start_deferred_aio (void);
-
- /// Cancel running or deferred AIO
- virtual int cancel_aiocb (ACE_POSIX_Asynch_Result * result);
-
- /// Extract the results of aio.
- ACE_POSIX_Asynch_Result *find_completed_aio (int &error_status,
- size_t &transfer_count,
- size_t &index,
- size_t &count);
-
- /// Find free slot to store result and aiocb pointer
- virtual ssize_t allocate_aio_slot (ACE_POSIX_Asynch_Result *result);
-
- /// Initiate an aio operation.
- virtual int start_aio_i (ACE_POSIX_Asynch_Result *result);
-
- /// Notify queue of "post_completed" ACE_POSIX_Asynch_Results
- /// called from post_completion method
- virtual int notify_completion (int sig_num);
-
- /// Put "post_completed" result into the internal queue
- int putq_result (ACE_POSIX_Asynch_Result *result);
-
- /// Get "post_completed" result from the internal queue
- ACE_POSIX_Asynch_Result * getq_result (void);
-
- /// Clear the internal results queue
- int clear_result_queue (void);
-
- /// Process the internal results queue
- int process_result_queue (void);
-
-
- /// This class takes care of doing <accept> when we use
- /// AIO_CONTROL_BLOCKS strategy.
- ACE_AIOCB_Notify_Pipe_Manager *aiocb_notify_pipe_manager_;
-
- /// Use a dynamically allocated array to keep track of all the aio's
- /// issued currently.
- aiocb **aiocb_list_;
- ACE_POSIX_Asynch_Result **result_list_;
-
- /// To maintain the maximum size of the array (list).
- size_t aiocb_list_max_size_;
-
- /// To maintain the current size of the array (list).
- size_t aiocb_list_cur_size_;
-
- /// Mutex to protect work with lists.
- ACE_SYNCH_MUTEX mutex_;
-
- /// The purpose of this member is only to identify asynchronous request
- /// from NotifyManager. We will reserve for it always slot 0
- /// in the list of aiocb's to be sure that don't lose notifications.
- ACE_HANDLE notify_pipe_read_handle_ ;
-
- /// Number of ACE_POSIX_Asynch_Result's waiting for start
- /// i.e. deferred AIOs
- size_t num_deferred_aiocb_ ;
-
- /// Number active,i.e. running requests
- size_t num_started_aio_ ;
-
- /// Queue which keeps "post_completed" ACE_POSIX_Asynch_Result's
- ACE_Unbounded_Queue<ACE_POSIX_Asynch_Result *> result_queue_;
-};
-
-#if defined(ACE_HAS_POSIX_REALTIME_SIGNALS)
-/**
- * @class ACE_POSIX_SIG_Proactor
- *
- * @brief This Proactor implementation does completion event detection using
- * POSIX Real Time signals. @c sigtimedwait() or @c sigwaitinfo() is
- * used to wait for completions.
- * The real-time signals that are going to be used with this
- * Proactor should be given apriori in the constructor, so that
- * those signals can be masked from asynchronous delivery.
- */
-class ACE_Export ACE_POSIX_SIG_Proactor : public ACE_POSIX_AIOCB_Proactor
-{
-
- /**
- * This class does the registering of Asynch Operations with the
- * Proactor which is necessary in the SIG strategy, because we need
- * to store the signal number.
- */
- friend class ACE_POSIX_SIG_Asynch_Operation;
-
-public:
- /**
- * This constructor masks only the <ACE_SIGRTMIN>
- * real-time signal. Only this signal should be used to issue
- * asynchronous operations using this Proctor.
- */
- ACE_POSIX_SIG_Proactor (size_t nmaxop = ACE_AIO_DEFAULT_SIZE);
-
- virtual Proactor_Type get_impl_type (void);
-
- /**
- * This constructor should be used to tell the Proactor to mask and
- * wait for the real-time signals specified in this set. Only these
- * signals should be used by the asynchronous operations when they
- * use this Proactor.
- */
- ACE_POSIX_SIG_Proactor (const sigset_t mask_set,
- size_t nmaxop = ACE_AIO_DEFAULT_SIZE);
-
- /// Destructor.
- virtual ~ACE_POSIX_SIG_Proactor (void);
-
- /**
- * Dispatch a single set of events. If <wait_time> elapses before
- * any events occur, return 0. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (ACE_Time_Value &wait_time);
-
- /**
- * Block indefinitely until at least one event is dispatched.
- * Dispatch a single set of events. If <wait_time> elapses before
- * any events occur, return 0. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (void);
-
- /// Post a result to the completion port of the Proactor.
- /// now it is implemented in base ACE_POSIX_AIOCB_Proactor class
- ///virtual int post_completion (ACE_POSIX_Asynch_Result *result);
-
- /**
- * If <signal_number> is -1, check with the Proactor and use one of
- * the signals that is present in the mask set (i.e., the signals for
- * which the Proactor will be waiting) of the Proactor. If there are
- * more than one signal, the higher numbered signal will be chosen.
- */
- virtual ACE_Asynch_Result_Impl *create_asynch_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &tv,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
-protected:
- /// To setup the handler for a real-time signbal.
- int setup_signal_handler (int signal_number) const;
-
- /// Insures that RT_completion_signals_ are blocked in the calling thread.
- int block_signals (void) const;
-
- /**
- * Dispatch a single set of events. @a timeout is a pointer to a
- * relative time representing the maximum amount of time to wait for
- * an event to occur. If 0, wait indefinitely.
- *
- * @retval 0 A timeout occurred before any event was detected.
- * @retval 1 A completion was dispatched.
- * @retval -1 An error occurred; errno contains an error code.
- */
- virtual int handle_events_i (const ACE_Time_Value *timeout);
-
- /// Find free slot to store result and aiocb pointer
- virtual ssize_t allocate_aio_slot (ACE_POSIX_Asynch_Result *result);
-
-
- /// Notify queue of "post_completed" ACE_POSIX_Asynch_Results
- /// called from post_completion method
- virtual int notify_completion (int sig_num);
-
- /**
- * These signals are used for completion notification by the
- * Proactor. The signals specified while issuing asynchronous
- * operations are stored here in this set. These signals are masked
- * for a thread when it calls handle_events().
- */
- sigset_t RT_completion_signals_;
-};
-
-
-#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
-
-/**
- * @class ACE_POSIX_Asynch_Timer
- *
- * @brief This class is posted to the completion port when a timer
- * expires. When the <complete method> of this object is
- * called, the <handler>'s <handle_timeout> method will be
- * called.
- */
-class ACE_Export ACE_POSIX_Asynch_Timer : public ACE_POSIX_Asynch_Result
-{
-
- /// The factory method for this class is with the POSIX_Proactor
- /// class.
- friend class ACE_POSIX_Proactor;
-#if defined(ACE_HAS_POSIX_REALTIME_SIGNALS)
- friend class ACE_POSIX_SIG_Proactor;
-#endif
-
-protected:
- /// Constructor.
- ACE_POSIX_Asynch_Timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &tv,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Destructor.
- virtual ~ACE_POSIX_Asynch_Timer (void) {}
-
- /// This method calls the <handler>'s handle_timeout method.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error = 0);
-
- /// Time value requested by caller
- ACE_Time_Value time_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/POSIX_Proactor.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_AIO_CALLS && ACE_HAS_POSIX_REALTIME_SIGNALS */
-#endif /* ACE_POSIX_PROACTOR_H */
diff --git a/ace/POSIX_Proactor.i b/ace/POSIX_Proactor.i
deleted file mode 100644
index c5e80b49943..00000000000
--- a/ace/POSIX_Proactor.i
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_POSIX_Proactor::Proactor_Type ACE_POSIX_Proactor::get_impl_type (void)
-{
- return PROACTOR_POSIX;
-}
-
-ACE_INLINE
-ACE_POSIX_Proactor::Proactor_Type ACE_POSIX_AIOCB_Proactor::get_impl_type (void)
-{
- return PROACTOR_AIOCB;
-}
-
-#if defined(ACE_HAS_POSIX_REALTIME_SIGNALS)
-
-ACE_INLINE
-ACE_POSIX_Proactor::Proactor_Type ACE_POSIX_SIG_Proactor::get_impl_type (void)
-{
- return PROACTOR_SIG;
-}
-
-#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
-
-ACE_INLINE
-ACE_Asynch_Pseudo_Task& ACE_POSIX_Proactor::get_asynch_pseudo_task (void)
-{
- return this->pseudo_task_;
-}
diff --git a/ace/Pair.cpp b/ace/Pair.cpp
deleted file mode 100644
index fce14f96302..00000000000
--- a/ace/Pair.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Pair.cpp
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
-
-#include "ace/Pair_T.h"
-
-ACE_RCSID(ace, Pair, "$Id$")
-
diff --git a/ace/Pair.h b/ace/Pair.h
deleted file mode 100644
index f31723c8899..00000000000
--- a/ace/Pair.h
+++ /dev/null
@@ -1,30 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Pair.h
- *
- * $Id$
- *
- * @author Irfan Pyarali
- */
-//=============================================================================
-
-
-#ifndef ACE_PAIR_H
-#define ACE_PAIR_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Include the templates here.
-#include "ace/Pair_T.h"
-
-#include "ace/post.h"
-
-#endif /* ACE_PAIR_H */
diff --git a/ace/Pair_T.cpp b/ace/Pair_T.cpp
deleted file mode 100644
index 27e7f6d34df..00000000000
--- a/ace/Pair_T.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-// $Id$
-
-#ifndef ACE_PAIR_T_C
-#define ACE_PAIR_T_C
-
-#include "ace/Pair_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Pair_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Pair_T, "$Id$")
-
-#endif /* ACE_PAIR_T_C */
diff --git a/ace/Pair_T.h b/ace/Pair_T.h
deleted file mode 100644
index 4108a2476df..00000000000
--- a/ace/Pair_T.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Pair_T.h
- *
- * $Id$
- *
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_PAIR_T_H
-#define ACE_PAIR_T_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Pair
- *
- * @brief Defines a pair.
- *
- * Similar to the STL pair.
- */
-template <class T1, class T2>
-class ACE_Pair
-{
-public:
-
- // = Traits.
- typedef T1 first_type;
- typedef T2 second_type;
-
- // = Initialization and termination methods.
- /// Constructor.
- ACE_Pair (const T1 &t1,
- const T2 &t2);
-
- /// Default constructor.
- ACE_Pair (void);
-
- /// Get first.
- T1 &first (void);
- const T1 &first (void) const;
-
- /// Set first.
- void first (const T1 &t1);
-
- /// Get second.
- T2 &second (void);
- const T2 &second (void) const;
-
- /// Set second.
- void second (const T2 &t2);
-
- // Compare pairs.
- int operator== (const ACE_Pair<T1, T2> &rhs) const;
-
-protected:
- /// First.
- T1 first_;
-
- /// Second.
- T2 second_;
-};
-
-/**
- * @class ACE_Reference_Pair
- *
- * @brief Defines a pair that only hold references.
- *
- * Similar to the STL pair (but restricted to holding references
- * and not copies).
- */
-template <class T1, class T2>
-class ACE_Reference_Pair
-{
-public:
-
- // = Traits.
- typedef T1 first_type;
- typedef T2 second_type;
-
- // = Initialization and termination methods.
- /// Constructor.
- ACE_Reference_Pair (T1 &t1,
- T2 &t2);
-
- /// Access first.
- T1 &first (void) const;
-
- /// Access second.
- T2 &second (void) const;
-
- // Compare pairs.
- int operator== (const ACE_Reference_Pair<T1, T2> &rhs) const;
-
-protected:
- /// First.
- T1 &first_;
-
- /// Second.
- T2 &second_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Pair_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Pair_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Pair_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_PAIR_T_H */
diff --git a/ace/Pair_T.i b/ace/Pair_T.i
deleted file mode 100644
index 9833346856d..00000000000
--- a/ace/Pair_T.i
+++ /dev/null
@@ -1,84 +0,0 @@
-// $Id$
-
-template <class T1, class T2> ACE_INLINE
-ACE_Pair<T1, T2>::ACE_Pair (const T1 &t1,
- const T2 &t2)
- : first_ (t1),
- second_ (t2)
-{
-}
-
-template <class T1, class T2> ACE_INLINE
-ACE_Pair<T1, T2>::ACE_Pair (void)
-{
-}
-
-template <class T1, class T2> ACE_INLINE T1 &
-ACE_Pair<T1, T2>::first (void)
-{
- return this->first_;
-}
-
-template <class T1, class T2> ACE_INLINE const T1 &
-ACE_Pair<T1, T2>::first (void) const
-{
- return this->first_;
-}
-
-template <class T1, class T2> ACE_INLINE void
-ACE_Pair<T1, T2>::first (const T1 &t1)
-{
- this->first_ = t1;
-}
-
-template <class T1, class T2> ACE_INLINE T2 &
-ACE_Pair<T1, T2>::second (void)
-{
- return this->second_;
-}
-
-template <class T1, class T2> ACE_INLINE const T2 &
-ACE_Pair<T1, T2>::second (void) const
-{
- return this->second_;
-}
-
-template <class T1, class T2> ACE_INLINE void
-ACE_Pair<T1, T2>::second (const T2 &t2)
-{
- this->second_ = t2;
-}
-
-template <class T1, class T2> ACE_INLINE int
-ACE_Pair<T1, T2>::operator== (const ACE_Pair<T1, T2> &rhs) const
-{
- return (this->first_ == rhs.first_ &&
- this->second_ == rhs.second_);
-}
-
-template <class T1, class T2> ACE_INLINE
-ACE_Reference_Pair<T1, T2>::ACE_Reference_Pair (T1 &t1,
- T2 &t2)
- : first_ (t1),
- second_ (t2)
-{
-}
-
-template <class T1, class T2> ACE_INLINE T1 &
-ACE_Reference_Pair<T1, T2>::first (void) const
-{
- return this->first_;
-}
-
-template <class T1, class T2> ACE_INLINE T2 &
-ACE_Reference_Pair<T1, T2>::second (void) const
-{
- return this->second_;
-}
-
-template <class T1, class T2> ACE_INLINE int
-ACE_Reference_Pair<T1, T2>::operator== (const ACE_Reference_Pair<T1, T2> &rhs) const
-{
- return (this->first_ == rhs.first_ &&
- this->second_ == rhs.second_);
-}
diff --git a/ace/Parse_Node.cpp b/ace/Parse_Node.cpp
deleted file mode 100644
index 98d52adbf12..00000000000
--- a/ace/Parse_Node.cpp
+++ /dev/null
@@ -1,647 +0,0 @@
-#include "ace/Parse_Node.h"
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 1)
-
-#include "ace/Service_Config.h"
-#include "ace/Service_Repository.h"
-#include "ace/Service_Types.h"
-#include "ace/Task.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Parse_Node.i"
-#endif /* ____ */
-
-
-ACE_RCSID (ace,
- Parse_Node,
- "$Id$")
-
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Stream_Node)
-
-// Provide the class hierarchy that defines the parse tree of Service
-// Nodes.
-
-
-void
-ACE_Stream_Node::dump (void) const
-{
- ACE_TRACE ("ACE_Stream_Node::dump");
-}
-
-void
-ACE_Stream_Node::apply (int & yyerrno)
-{
- ACE_TRACE ("ACE_Stream_Node::apply");
-
- if (ACE_Service_Config::initialize (this->node_->record (),
- this->node_->parameters ()) == -1)
- yyerrno++;
-
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("did stream on %s, error = %d\n"),
- this->node_->name (),
- yyerrno));
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Parse_Node)
-
-void
-ACE_Parse_Node::dump (void) const
-{
- ACE_TRACE ("ACE_Parse_Node::dump");
-}
-
-const ACE_TCHAR *
-ACE_Parse_Node::name (void) const
-{
- ACE_TRACE ("ACE_Parse_Node::name");
- return this->name_;
-}
-
-ACE_Parse_Node *
-ACE_Parse_Node::link (void) const
-{
- ACE_TRACE ("ACE_Parse_Node::link");
- return this->next_;
-}
-
-void
-ACE_Parse_Node::link (ACE_Parse_Node *n)
-{
- ACE_TRACE ("ACE_Parse_Node::link");
- this->next_ = n;
-}
-
-ACE_Stream_Node::ACE_Stream_Node (const ACE_Static_Node *str_ops,
- const ACE_Parse_Node *str_mods)
-#if defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS)
- : ACE_Parse_Node (str_ops == 0 ? ACE_static_cast (ACE_TCHAR *,
- ACE_LIB_TEXT ("<unknown>"))
- : ACE_static_cast (ACE_TCHAR *,
- str_ops->name ())),
-#else
- : ACE_Parse_Node ((str_ops == 0 ? ACE_LIB_TEXT ("<unknown>") : str_ops->name ())),
-#endif /* defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */
- node_ (str_ops),
- mods_ (str_mods)
-{
- ACE_TRACE ("ACE_Stream_Node::ACE_Stream_Node");
-}
-
-
-ACE_Stream_Node::~ACE_Stream_Node (void)
-{
- ACE_TRACE ("ACE_Stream_Node::~ACE_Stream_Node");
- ACE_Static_Node *n = ACE_const_cast (ACE_Static_Node *,
- this->node_);
- delete n;
- ACE_Parse_Node *m = ACE_const_cast (ACE_Parse_Node *,
- this->mods_);
- delete m;
-}
-
-ACE_Parse_Node::ACE_Parse_Node (void)
- : name_ (0),
- next_ (0)
-{
- ACE_TRACE ("ACE_Parse_Node::ACE_Parse_Node");
-}
-
-
-ACE_Parse_Node::ACE_Parse_Node (const ACE_TCHAR *nm)
- : name_ (ACE::strnew (nm)),
- next_ (0)
-{
- ACE_TRACE ("ACE_Parse_Node::ACE_Parse_Node");
-}
-
-void
-ACE_Parse_Node::print (void) const
-{
- ACE_TRACE ("ACE_Parse_Node::print");
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("svc = %s\n"),
- this->name ()));
-
- if (this->next_)
- this->next_->print ();
-}
-
-
-ACE_Parse_Node::~ACE_Parse_Node (void)
-{
- ACE_TRACE ("ACE_Parse_Node::~ACE_Parse_Node");
- delete[] ACE_const_cast (ACE_TCHAR*, this->name_);
- delete this->next_;
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Suspend_Node)
-
-void
-ACE_Suspend_Node::dump (void) const
-{
- ACE_TRACE ("ACE_Suspend_Node::dump");
-}
-
-ACE_Suspend_Node::ACE_Suspend_Node (const ACE_TCHAR *name)
- : ACE_Parse_Node (name)
-{
- ACE_TRACE ("ACE_Suspend_Node::ACE_Suspend_Node");
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Resume_Node)
-
-void
-ACE_Resume_Node::dump (void) const
-{
- ACE_TRACE ("ACE_Resume_Node::dump");
-}
-
-ACE_Resume_Node::ACE_Resume_Node (const ACE_TCHAR *name)
- : ACE_Parse_Node (name)
-{
- ACE_TRACE ("ACE_Resume_Node::ACE_Resume_Node");
-}
-
-void
-ACE_Suspend_Node::apply (int & yyerrno)
-{
- ACE_TRACE ("ACE_Suspend_Node::apply");
-
- if (ACE_Service_Config::suspend (this->name ()) == -1)
- yyerrno++;
-
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("did suspend on %s, error = %d\n"),
- this->name (),
- yyerrno));
-}
-
-void
-ACE_Resume_Node::apply (int & yyerrno)
-{
- ACE_TRACE ("ACE_Resume_Node::apply");
- if (ACE_Service_Config::resume (this->name ()) == -1)
- yyerrno++;
-
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("did resume on %s, error = %d\n"),
- this->name (),
- yyerrno));
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Remove_Node)
-
-void
-ACE_Remove_Node::dump (void) const
-{
- ACE_TRACE ("ACE_Remove_Node::dump");
-}
-
-ACE_Remove_Node::ACE_Remove_Node (const ACE_TCHAR *name)
- : ACE_Parse_Node (name)
-{
- ACE_TRACE ("ACE_Remove_Node::ACE_Remove_Node");
-}
-
-void
-ACE_Remove_Node::apply (int & yyerrno)
-{
- ACE_TRACE ("ACE_Remove_Node::apply");
- if (ACE_Service_Config::remove (this->name ()) == -1)
- yyerrno++;
-
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("did remove on %s, error = %d\n"),
- this->name (),
- yyerrno));
-}
-
-ACE_Dynamic_Node::ACE_Dynamic_Node (const ACE_Service_Type *sr,
- ACE_TCHAR *parms)
- : ACE_Static_Node (sr->name (), parms),
- record_ (sr)
-{
- ACE_TRACE ("ACE_Dynamic_Node::ACE_Dynamic_Node");
-}
-
-const ACE_Service_Type *
-ACE_Dynamic_Node::record (void) const
-{
- ACE_TRACE ("ACE_Dynamic_Node::record");
- return this->record_;
-}
-
-void
-ACE_Dynamic_Node::apply (int & yyerrno)
-{
- ACE_TRACE ("ACE_Dynamic_Node::apply");
-
- if (ACE_Service_Config::initialize (this->record (),
- this->parameters ()) == -1)
- yyerrno++;
-
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("did dynamic on %s, error = %d\n"),
- this->name (),
- yyerrno));
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Dynamic_Node)
-
-void
-ACE_Dynamic_Node::dump (void) const
-{
- ACE_TRACE ("ACE_Dynamic_Node::dump");
-}
-
-ACE_Dynamic_Node::~ACE_Dynamic_Node (void)
-{
- ACE_TRACE ("ACE_Dynamic_Node::~ACE_Dynamic_Node");
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Static_Node)
-
-void
-ACE_Static_Node::dump (void) const
-{
- ACE_TRACE ("ACE_Static_Node::dump");
-}
-
-ACE_Static_Node::ACE_Static_Node (const ACE_TCHAR *nm,
- ACE_TCHAR *params)
- : ACE_Parse_Node (nm),
- parameters_ (ACE::strnew (params))
-{
- ACE_TRACE ("ACE_Static_Node::ACE_Static_Node");
-}
-
-const ACE_Service_Type *
-ACE_Static_Node::record (void) const
-{
- ACE_TRACE ("ACE_Static_Node::record");
- ACE_Service_Type *sr;
-
- if (ACE_Service_Repository::instance()->find
- (this->name (),
- (const ACE_Service_Type **) &sr) == -1)
- return 0;
- else
- return sr;
-}
-
-ACE_TCHAR *
-ACE_Static_Node::parameters (void) const
-{
- ACE_TRACE ("ACE_Static_Node::parameters");
- return this->parameters_;
-}
-
-void
-ACE_Static_Node::apply (int & yyerrno)
-{
- ACE_TRACE ("ACE_Static_Node::apply");
- if (ACE_Service_Config::initialize (this->name (),
- this->parameters ()) == -1)
- yyerrno++;
-
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("did static on %s, error = %d\n"),
- this->name (),
- yyerrno));
-}
-
-ACE_Static_Node::~ACE_Static_Node (void)
-{
- ACE_TRACE ("ACE_Static_Node::~ACE_Static_Node");
- delete[] this->parameters_;
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Location_Node)
-
-void
-ACE_Location_Node::dump (void) const
-{
- ACE_TRACE ("ACE_Location_Node::dump");
-}
-
-ACE_Location_Node::ACE_Location_Node (void)
- : pathname_ (0),
- symbol_ (0)
-{
- ACE_TRACE ("ACE_Location_Node::ACE_Location_Node");
-}
-
-ACE_Location_Node::~ACE_Location_Node (void)
-{
- ACE_TRACE ("ACE_Location_Node::~ACE_Location_Node");
-}
-
-const ACE_DLL &
-ACE_Location_Node::dll (void)
-{
- return this->dll_;
-}
-
-const ACE_TCHAR *
-ACE_Location_Node::pathname (void) const
-{
- ACE_TRACE ("ACE_Location_Node::pathname");
- return this->pathname_;
-}
-
-void
-ACE_Location_Node::pathname (const ACE_TCHAR *p)
-{
- ACE_TRACE ("ACE_Location_Node::pathname");
- this->pathname_ = p;
-}
-
-void
-ACE_Location_Node::set_symbol (void *s)
-{
- ACE_TRACE ("ACE_Location_Node::set_symbol");
- this->symbol_ = s;
-}
-
-int
-ACE_Location_Node::dispose (void) const
-{
- ACE_TRACE ("ACE_Location_Node::dispose");
- return this->must_delete_;
-}
-
-int
-ACE_Location_Node::open_dll (int & yyerrno)
-{
- ACE_TRACE ("ACE_Location_Node::open_dll");
-
- if (-1 == this->dll_.open (this->pathname ()))
- {
- yyerrno++;
-
- ACE_TCHAR *errmsg = this->dll_.error ();
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL::open failed for %s: %s\n"),
- this->pathname (),
- errmsg ? errmsg : ACE_LIB_TEXT ("no error reported")));
- return -1;
- }
-
- return 0;
-
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Object_Node)
-
-void
-ACE_Object_Node::dump (void) const
-{
- ACE_TRACE ("ACE_Object_Node::dump");
-}
-
-ACE_Object_Node::ACE_Object_Node (const ACE_TCHAR *path,
- const ACE_TCHAR *obj_name)
- : object_name_ (ACE::strnew (obj_name))
-{
- ACE_TRACE ("ACE_Object_Node::ACE_Object_Node");
- this->pathname (ACE::strnew (path));
- this->must_delete_ = 0;
-}
-
-void *
-ACE_Object_Node::symbol (int & yyerrno,
- ACE_Service_Object_Exterminator *)
-{
- ACE_TRACE ("ACE_Object_Node::symbol");
- if (this->open_dll (yyerrno) == 0)
- {
- ACE_TCHAR *object_name = ACE_const_cast (ACE_TCHAR *, this->object_name_);
-
- this->symbol_ = this->dll_.symbol (object_name);
- if (this->symbol_ == 0)
- {
- yyerrno++;
-
- ACE_TCHAR *errmsg = this->dll_.error ();
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL::symbol failed for object %s: %s\n"),
- object_name,
- errmsg ? errmsg : ACE_LIB_TEXT ("no error reported")));
- return 0;
- }
-
- return this->symbol_;
- }
-
- return 0;
-}
-
-ACE_Object_Node::~ACE_Object_Node (void)
-{
- ACE_TRACE ("ACE_Object_Node::~ACE_Object_Node");
- delete[] ACE_const_cast (ACE_TCHAR *, this->object_name_);
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Function_Node)
-
-void
-ACE_Function_Node::dump (void) const
-{
- ACE_TRACE ("ACE_Function_Node::dump");
-}
-
-ACE_Function_Node::ACE_Function_Node (const ACE_TCHAR *path,
- const ACE_TCHAR *func_name)
- : function_name_ (ACE::strnew (func_name))
-{
- ACE_TRACE ("ACE_Function_Node::ACE_Function_Node");
- this->pathname (ACE::strnew (path));
- this->must_delete_ = 1;
-}
-
-void *
-ACE_Function_Node::symbol (int & yyerrno,
- ACE_Service_Object_Exterminator *gobbler)
-{
- typedef ACE_Service_Object *(*ACE_Service_Factory_Ptr)
- (ACE_Service_Object_Exterminator *);
-
- ACE_TRACE ("ACE_Function_Node::symbol");
- if (this->open_dll (yyerrno) == 0)
- {
- ACE_Service_Factory_Ptr func = 0;
- this->symbol_ = 0;
-
- // Locate the factory function <function_name> in the shared
- // object.
- ACE_TCHAR *function_name = ACE_const_cast (ACE_TCHAR *,
- this->function_name_);
- void *func_p = this->dll_.symbol (function_name);
- if (func_p == 0)
- {
- yyerrno++;
-
- if (this->symbol_ == 0)
- {
- yyerrno++;
-
- ACE_TCHAR *errmsg = this->dll_.error ();
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_DLL::symbol failed for function %s: %s\n"),
- function_name,
- errmsg ? errmsg :
- ACE_LIB_TEXT ("no error reported")));
- return 0;
- }
- }
- ptrdiff_t temp_p = ACE_reinterpret_cast (ptrdiff_t, func_p);
- func = ACE_reinterpret_cast (ACE_Service_Factory_Ptr, temp_p);
- // Invoke the factory function and record it's return value.
- this->symbol_ = (*func) (gobbler);
-
- if (this->symbol_ == 0)
- {
- yyerrno++;
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- this->function_name_),
- 0);
- }
- }
- return this->symbol_;
-}
-
-ACE_Function_Node::~ACE_Function_Node (void)
-{
- ACE_TRACE ("ACE_Function_Node::~ACE_Function_Node");
- delete[] ACE_const_cast (ACE_TCHAR *, function_name_);
- delete[] ACE_const_cast (ACE_TCHAR *, pathname_);
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Dummy_Node)
-
-void
-ACE_Dummy_Node::dump (void) const
-{
- ACE_TRACE ("ACE_Dummy_Node::dump");
-}
-
-ACE_Dummy_Node::ACE_Dummy_Node (const ACE_Static_Node *static_node,
- const ACE_Parse_Node *str_mods)
- : ACE_Parse_Node (static_node->name ()),
- node_ (static_node),
- mods_ (str_mods)
-{
- ACE_TRACE ("ACE_Dummy_Node::ACE_Dummy_Node");
-}
-
-void
-ACE_Dummy_Node::apply (int & yyerrno)
-{
- ACE_TRACE ("ACE_Dummy_Node::apply");
-
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("did operations on stream %s, error = %d\n"),
- this->name (),
- yyerrno));
-}
-
-ACE_Dummy_Node::~ACE_Dummy_Node (void)
-{
- ACE_TRACE ("ACE_Dummy_Node::~ACE_Dummy_Node");
- ACE_Static_Node *n = ACE_const_cast (ACE_Static_Node *,
- this->node_);
- delete n;
- ACE_Parse_Node *m = ACE_const_cast (ACE_Parse_Node *,
- this->mods_);
- delete m;
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Static_Function_Node)
-
-void
-ACE_Static_Function_Node::dump (void) const
-{
- ACE_TRACE ("ACE_Static_Function_Node::dump");
-}
-
-ACE_Static_Function_Node::ACE_Static_Function_Node (const ACE_TCHAR *func_name)
- : function_name_ (ACE::strnew (func_name))
-{
- ACE_TRACE ("ACE_Static_Function_Node::ACE_Static_Function_Node");
- this->must_delete_ = 1;
-}
-
-void *
-ACE_Static_Function_Node::symbol (int & yyerrno,
- ACE_Service_Object_Exterminator *gobbler)
-{
- ACE_TRACE ("ACE_Static_Function_Node::symbol");
-
- void *(*func)(ACE_Service_Object_Exterminator *) = 0;
- this->symbol_ = 0;
-
- // Locate the factory function <function_name> in the statically
- // linked svcs.
-
- ACE_Static_Svc_Descriptor **ssdp = 0;
- ACE_STATIC_SVCS &svcs = *ACE_Service_Config::static_svcs ();
- ACE_TCHAR *function_name = ACE_const_cast (ACE_TCHAR *, this->function_name_);
-
- for (ACE_STATIC_SVCS_ITERATOR iter (svcs);
- iter.next (ssdp) != 0;
- iter.advance ())
- {
- ACE_Static_Svc_Descriptor *ssd = *ssdp;
- if (ACE_OS::strcmp (ssd->name_,
- function_name) == 0)
- func = (void *(*)(ACE_Service_Object_Exterminator*)) ssd->alloc_;
- }
-
- if (func == 0)
- {
- yyerrno++;
-
- if (this->symbol_ == 0)
- {
- yyerrno++;
-
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("no static service registered for function %s\n"),
- function_name),
- 0);
- }
- }
-
- // Invoke the factory function and record it's return value.
- this->symbol_ = (*func) (gobbler);
-
- if (this->symbol_ == 0)
- {
- yyerrno++;
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- this->function_name_),
- 0);
- }
-
- return this->symbol_;
-}
-
-ACE_Static_Function_Node::~ACE_Static_Function_Node (void)
-{
- ACE_TRACE ("ACE_Static_Function_Node::~ACE_Static_Function_Node");
- delete[] ACE_const_cast (ACE_TCHAR *, this->function_name_);
-}
-
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
diff --git a/ace/Parse_Node.h b/ace/Parse_Node.h
deleted file mode 100644
index fea5c7f6cbd..00000000000
--- a/ace/Parse_Node.h
+++ /dev/null
@@ -1,381 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Parse_Node.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_PARSE_NODE_H
-#define ACE_PARSE_NODE_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 1)
-
-#include "ace/DLL.h"
-
-
-/// Forward declarations.
-class ACE_Service_Config;
-class ACE_Service_Type;
-
-/**
- * @class ACE_Parse_Node
- *
- * @brief Provide the base of the object hierarchy that defines the parse
- * tree of Service Nodes.
- *
- * @note This class is only meant for INTERNAL use by ACE.
- */
-class ACE_Parse_Node
-{
-public:
- ACE_Parse_Node (void);
- ACE_EXPLICIT ACE_Parse_Node (const ACE_TCHAR *name);
- virtual ~ACE_Parse_Node (void);
-
- ACE_Parse_Node *link (void) const;
- void link (ACE_Parse_Node *);
- virtual void apply (int & yyerrno) = 0;
-
- const ACE_TCHAR *name (void) const;
- void print (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- const ACE_TCHAR *name_;
- ACE_Parse_Node *next_;
-};
-
-/**
- * @class ACE_Suspend_Node
- *
- * @brief Suspend a Service Node.
- *
- * @note This class is only meant for INTERNAL use by ACE.
- */
-class ACE_Suspend_Node : public ACE_Parse_Node
-{
-public:
- ACE_Suspend_Node (const ACE_TCHAR *name);
- ~ACE_Suspend_Node (void);
-
- virtual void apply (int & yyerrno);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_Resume_Node
- *
- * @brief Resume a Service Node.
- *
- * @note This class is only meant for INTERNAL use by ACE.
- */
-class ACE_Resume_Node : public ACE_Parse_Node
-{
-public:
- ACE_Resume_Node (const ACE_TCHAR *name);
- ~ACE_Resume_Node (void);
-
- virtual void apply (int & yyerrno);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_Remove_Node
- *
- * @brief Remove a Service Node.
- *
- * @note This class is only meant for INTERNAL use by ACE.
- */
-class ACE_Remove_Node : public ACE_Parse_Node
-{
-public:
- ACE_Remove_Node (const ACE_TCHAR *name);
- ~ACE_Remove_Node (void);
-
- virtual void apply (int & yyerrno);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_Static_Node
- *
- * @brief Handle a statically linked node.
- *
- * @note This class is only meant for INTERNAL use by ACE.
- */
-class ACE_Static_Node : public ACE_Parse_Node
-{
-public:
- ACE_Static_Node (const ACE_TCHAR *name, ACE_TCHAR *params = 0);
- virtual ~ACE_Static_Node (void);
-
- virtual void apply (int & yyerrno);
- virtual const ACE_Service_Type *record (void) const;
- ACE_TCHAR *parameters (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// "Command-line" parameters.
- ACE_TCHAR *parameters_;
-};
-
-/**
- * @class ACE_Dynamic_Node
- *
- * @brief Handle a dynamically linked node.
- *
- * @note This class is only meant for INTERNAL use by ACE.
- */
-class ACE_Dynamic_Node : public ACE_Static_Node
-{
-public:
- ACE_Dynamic_Node (const ACE_Service_Type *, ACE_TCHAR *params);
- virtual ~ACE_Dynamic_Node (void);
-
- virtual const ACE_Service_Type *record (void) const;
- virtual void apply (int & yyerrno);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Pointer to a descriptor that describes this node.
- const ACE_Service_Type *record_;
-};
-
-/**
- * @class ACE_Stream_Node
- *
- * @brief Handle a Stream.
- *
- * @note This class is only meant for INTERNAL use by ACE.
- */
-class ACE_Stream_Node : public ACE_Parse_Node
-{
-public:
- ACE_Stream_Node (const ACE_Static_Node *, const ACE_Parse_Node *);
- virtual ~ACE_Stream_Node (void);
-
- virtual void apply (int & yyerrno);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Linked list of modules that are part of the stream.
- const ACE_Static_Node *node_;
- const ACE_Parse_Node *mods_;
-};
-
-/**
- * @class ACE_Location_Node
- *
- * @brief Keep track of where a shared library is located.
- *
- * @note This class is only meant for INTERNAL use by ACE.
- */
-class ACE_Location_Node
-{
-public:
- ACE_Location_Node (void);
- virtual void *symbol (int & yyerrno,
- ACE_Service_Object_Exterminator * = 0) = 0;
- virtual void set_symbol (void *h);
- const ACE_DLL &dll (void);
- const ACE_TCHAR *pathname (void) const;
- void pathname (const ACE_TCHAR *h);
- int dispose (void) const;
-
- virtual ~ACE_Location_Node (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- int open_dll (int & yyerrno);
-
- /// Pathname to the shared library we are working on.
- const ACE_TCHAR *pathname_;
-
- /**
- * Flag indicating whether the Service_Object generated by this
- * Location Node should be deleted or not
- * (ACE_Service_Type::DELETE_OBJ.)
- */
- int must_delete_;
-
- /// The open shared library.
- ACE_DLL dll_;
-
- /// Symbol that we've obtained from the shared library.
- void *symbol_;
-};
-
-/**
- * @class ACE_Object_Node
- *
- * @brief Keeps track of the symbol name for a shared object.
- *
- * @note This class is only meant for INTERNAL use by ACE.
- */
-class ACE_Object_Node : public ACE_Location_Node
-{
-public:
- ACE_Object_Node (const ACE_TCHAR *pathname, const ACE_TCHAR *obj_name);
- virtual void *symbol (int & yyerrno,
- ACE_Service_Object_Exterminator * = 0);
- virtual ~ACE_Object_Node (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Name of the object that we're parsing.
- const ACE_TCHAR *object_name_;
-};
-
-/**
- * @class ACE_Function_Node
- *
- * @brief Keeps track of the symbol name of for a shared function.
- *
- * @note This class is only meant for INTERNAL use by ACE.
- */
-class ACE_Function_Node : public ACE_Location_Node
-{
-public:
- ACE_Function_Node (const ACE_TCHAR *pathname, const ACE_TCHAR *func_name);
- virtual void *symbol (int & yyerrno,
- ACE_Service_Object_Exterminator *gobbler = 0);
- virtual ~ACE_Function_Node (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Name of the function that we're parsing.
- const ACE_TCHAR *function_name_;
-};
-
-/**
- * @class ACE_Dummy_Node
- *
- * @brief I forget why this is here... ;-)
- *
- * @note This class is only meant for INTERNAL use by ACE.
- */
-class ACE_Dummy_Node : public ACE_Parse_Node
-{
-public:
- ACE_Dummy_Node (const ACE_Static_Node *, const ACE_Parse_Node *);
- ~ACE_Dummy_Node (void);
- virtual void apply (int & yyerrno);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Linked list of modules that we're dealing with.
- const ACE_Static_Node *node_;
- const ACE_Parse_Node *mods_;
-};
-
-/**
- * @class ACE_Static_Function_Node
- *
- * @brief Keeps track of the symbol name for a function that is not
- * linked in from a DLL, but is statically linked with the
- * application.
- *
- * @note This class is only meant for INTERNAL use by ACE.
- */
-class ACE_Static_Function_Node : public ACE_Location_Node
-{
-public:
- ACE_EXPLICIT ACE_Static_Function_Node (const ACE_TCHAR *func_name);
- virtual void *symbol (int & yyerrno,
- ACE_Service_Object_Exterminator * = 0);
- virtual ~ACE_Static_Function_Node (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Name of the function that we're parsing.
- const ACE_TCHAR *function_name_;
-};
-
-
-#if defined (__ACE_INLINE__)
-#include "ace/Parse_Node.i"
-#endif /* __ACE_INLINE__ */
-
-/// Global variable used to communicate between the parser and the main
-/// program.
-extern ACE_Service_Config *ace_this_svc;
-
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
-
-#include "ace/post.h"
-
-#endif /* ACE_PARSE_NODE_H */
diff --git a/ace/Parse_Node.i b/ace/Parse_Node.i
deleted file mode 100644
index 0728118ea80..00000000000
--- a/ace/Parse_Node.i
+++ /dev/null
@@ -1,19 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Parse_Node.i
-
-ACE_INLINE
-ACE_Suspend_Node::~ACE_Suspend_Node (void)
-{
-}
-
-ACE_INLINE
-ACE_Resume_Node::~ACE_Resume_Node (void)
-{
-}
-
-ACE_INLINE
-ACE_Remove_Node::~ACE_Remove_Node (void)
-{
-}
diff --git a/ace/Pipe.cpp b/ace/Pipe.cpp
deleted file mode 100644
index 63979297e4b..00000000000
--- a/ace/Pipe.cpp
+++ /dev/null
@@ -1,235 +0,0 @@
-// $Id$
-
-#include "ace/Pipe.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Pipe.i"
-#endif
-
-ACE_RCSID(ace, Pipe, "$Id$")
-
-void
-ACE_Pipe::dump (void) const
-{
- ACE_TRACE ("ACE_Pipe::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("handles_[0] = %d"), this->handles_[0]));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nhandles_[1] = %d"), this->handles_[1]));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-int
-ACE_Pipe::open (int buffer_size)
-{
- ACE_TRACE ("ACE_Pipe::open");
-
-#if defined (ACE_WIN32) || defined (ACE_LACKS_SOCKETPAIR) || defined (__Lynx__)
- ACE_INET_Addr my_addr;
- ACE_SOCK_Acceptor acceptor;
- ACE_SOCK_Connector connector;
- ACE_SOCK_Stream reader;
- ACE_SOCK_Stream writer;
- int result = 0;
-
- // Bind listener to any port and then find out what the port was.
- if (acceptor.open (ACE_Addr::sap_any) == -1
- || acceptor.get_local_addr (my_addr) == -1)
- result = -1;
- else
- {
- ACE_INET_Addr sv_addr (my_addr.get_port_number (),
- ACE_LOCALHOST);
-
- // Establish a connection within the same process.
- if (connector.connect (writer, sv_addr) == -1)
- result = -1;
- else if (acceptor.accept (reader) == -1)
- {
- writer.close ();
- result = -1;
- }
- }
-
- // Close down the acceptor endpoint since we don't need it anymore.
- acceptor.close ();
- if (result == -1)
- return -1;
-
- this->handles_[0] = reader.get_handle ();
- this->handles_[1] = writer.get_handle ();
-
-# if !defined (ACE_LACKS_TCP_NODELAY)
- int one = 1;
-
- // Make sure that the TCP stack doesn't try to buffer small writes.
- // Since this communication is purely local to the host it doesn't
- // affect network performance.
-
- if (writer.set_option (ACE_IPPROTO_TCP,
- TCP_NODELAY,
- &one,
- sizeof one) == -1)
- {
- this->close ();
- return -1;
- }
-# endif /* ! ACE_LACKS_TCP_NODELAY */
-
-# if defined (ACE_LACKS_SOCKET_BUFSIZ)
- ACE_UNUSED_ARG (buffer_size);
-# else /* ! ACE_LACKS_SOCKET_BUFSIZ */
- if (reader.set_option (SOL_SOCKET,
- SO_SNDBUF,
- ACE_reinterpret_cast (void *, &buffer_size),
- sizeof (buffer_size)) == -1
- && errno != ENOTSUP)
- {
- this->close ();
- return -1;
- }
- else if (writer.set_option (SOL_SOCKET,
- SO_RCVBUF,
- ACE_reinterpret_cast (void *, &buffer_size),
- sizeof (buffer_size)) == -1
- && errno != ENOTSUP)
- {
- this->close ();
- return -1;
- }
-# endif /* ! ACE_LACKS_SOCKET_BUFSIZ */
-
-#elif defined (ACE_HAS_STREAM_PIPES) || defined (__QNX__)
- ACE_UNUSED_ARG (buffer_size);
- if (ACE_OS::pipe (this->handles_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("pipe")),
- -1);
-
-#if !defined(__QNX__)
- int arg = RMSGN;
-
- // Enable "msg no discard" mode, which ensures that record
- // boundaries are maintained when messages are sent and received.
- if (ACE_OS::ioctl (this->handles_[0],
- I_SRDOPT,
- (void *) arg) == -1
- || ACE_OS::ioctl (this->handles_[1],
- I_SRDOPT,
- (void *) arg) == -1)
- {
- this->close ();
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ioctl")), -1);
- }
-#endif /* __QNX__ */
-
-#else /* ! ACE_WIN32 && ! ACE_LACKS_SOCKETPAIR && ! ACE_HAS_STREAM_PIPES */
- if (ACE_OS::socketpair (AF_UNIX,
- SOCK_STREAM,
- 0,
- this->handles_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("socketpair")),
- -1);
-# if defined (ACE_LACKS_SOCKET_BUFSIZ)
- ACE_UNUSED_ARG (buffer_size);
-# else /* ! ACE_LACKS_SOCKET_BUFSIZ */
- if (ACE_OS::setsockopt (this->handles_[0],
- SOL_SOCKET,
- SO_RCVBUF,
- ACE_reinterpret_cast (const char *,
- &buffer_size),
- sizeof (buffer_size)) == -1
- && errno != ENOTSUP)
- {
- this->close ();
- return -1;
- }
- if (ACE_OS::setsockopt (this->handles_[1],
- SOL_SOCKET,
- SO_SNDBUF,
- ACE_reinterpret_cast (const char *, &buffer_size),
- sizeof (buffer_size)) == -1
- && errno != ENOTSUP)
- {
- this->close ();
- return -1;
- }
-# endif /* ! ACE_LACKS_SOCKET_BUFSIZ */
-#endif /* ! ACE_WIN32 && ! ACE_LACKS_SOCKETPAIR && ! ACE_HAS_STREAM_PIPES */
- // Point both the read and write HANDLES to the appropriate socket
- // HANDLEs.
-
- return 0;
-}
-
-int
-ACE_Pipe::open (ACE_HANDLE handles[2])
-{
- ACE_TRACE ("ACE_Pipe::open");
-
- if (this->open () == -1)
- return -1;
- else
- {
- handles[0] = this->handles_[0];
- handles[1] = this->handles_[1];
- return 0;
- }
-}
-
-// Do nothing...
-
-ACE_Pipe::ACE_Pipe (void)
-{
- ACE_TRACE ("ACE_Pipe::ACE_Pipe");
-
- this->handles_[0] = ACE_INVALID_HANDLE;
- this->handles_[1] = ACE_INVALID_HANDLE;
-}
-
-ACE_Pipe::ACE_Pipe (ACE_HANDLE handles[2])
-{
- ACE_TRACE ("ACE_Pipe::ACE_Pipe");
-
- if (this->open (handles) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Pipe::ACE_Pipe")));
-}
-
-ACE_Pipe::ACE_Pipe (ACE_HANDLE read,
- ACE_HANDLE write)
-{
- ACE_TRACE ("ACE_Pipe::ACE_Pipe");
- this->handles_[0] = read;
- this->handles_[1] = write;
-}
-
-int
-ACE_Pipe::close (void)
-{
- ACE_TRACE ("ACE_Pipe::close");
-
- int result = 0;
-
- // Note that the following will work even if we aren't closing down
- // sockets because <ACE_OS::closesocket> will just call <::close> in
- // that case!
-
- if (this->handles_[0] != ACE_INVALID_HANDLE)
- result = ACE_OS::closesocket (this->handles_[0]);
- this->handles_[0] = ACE_INVALID_HANDLE;
-
- if (this->handles_[1] != ACE_INVALID_HANDLE)
- result |= ACE_OS::closesocket (this->handles_[1]);
- this->handles_[1] = ACE_INVALID_HANDLE;
-
- return result;
-}
diff --git a/ace/Pipe.h b/ace/Pipe.h
deleted file mode 100644
index 452857127c4..00000000000
--- a/ace/Pipe.h
+++ /dev/null
@@ -1,90 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Pipe.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//==========================================================================
-
-
-#ifndef ACE_PIPE_H
-#define ACE_PIPE_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_Pipe
- *
- * @brief Provides a bidirectional "pipe" abstraction that is portable
- * to Windows NT, SVR4 UNIX, and BSD UNIX.
- *
- * Uses "name" for lookup in the ACE service repository. Obtains
- * the object and returns it as the appropriate type.
- */
-class ACE_Export ACE_Pipe
-{
-public:
- // = Initialization and termination.
- /// Default constructor (does nothing...).
- ACE_Pipe (void);
-
- /// Open the pipe and initialize the handles.
- ACE_Pipe (ACE_HANDLE handles[2]);
-
- /// Initialize the <ACE_Pipe> from the <read> and <write> handles.
- ACE_Pipe (ACE_HANDLE read, ACE_HANDLE write);
-
- /// Default dtor. It doesn't close the handles for you.
- ~ACE_Pipe (void);
-
- /// Open the pipe and initialize the handles.
- int open (ACE_HANDLE handles[2]);
-
- /// Open the pipe, setting the buffer size to the maximum.
- int open (int buffer_size = ACE_DEFAULT_MAX_SOCKET_BUFSIZ);
-
- /// Close down the pipe HANDLEs;
- int close (void);
-
- // = Accessors.
-
- /**
- * This is the "read" side of the pipe. Note, however, that
- * processes can also write to this handle as well since pipes are
- * bi-directional.
- */
- ACE_HANDLE read_handle (void) const;
-
- /**
- * This is the "write" side of the pipe. Note, however, that
- * processes can also read to this handle as well since pipes are
- * bi-directional.
- */
- ACE_HANDLE write_handle (void) const;
-
- /// Dump the state of the object.
- void dump (void) const;
-
-private:
- ACE_HANDLE handles_[2];
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Pipe.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-
-#endif /* ACE_PIPE_H */
diff --git a/ace/Pipe.i b/ace/Pipe.i
deleted file mode 100644
index 0eb87370827..00000000000
--- a/ace/Pipe.i
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Pipe.i
-
-ASYS_INLINE
-ACE_Pipe::~ACE_Pipe (void)
-{
- ACE_TRACE ("ACE_Pipe::~ACE_Pipe");
- // Notice that the destructor doesn't close the handles for you.
-}
-
-ASYS_INLINE ACE_HANDLE
-ACE_Pipe::read_handle (void) const
-{
- ACE_TRACE ("ACE_Pipe::read_handle");
- return this->handles_[0];
-}
-
-ASYS_INLINE ACE_HANDLE
-ACE_Pipe::write_handle (void) const
-{
- ACE_TRACE ("ACE_Pipe::write_handle");
- return this->handles_[1];
-}
diff --git a/ace/Priority_Reactor.cpp b/ace/Priority_Reactor.cpp
deleted file mode 100644
index fd66ba55e7d..00000000000
--- a/ace/Priority_Reactor.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-// $Id$
-
-#include "ace/Priority_Reactor.h"
-#include "ace/Malloc_T.h"
-
-ACE_RCSID(ace, Priority_Reactor, "$Id$")
-
-typedef ACE_Unbounded_Queue_Iterator<ACE_Event_Tuple> QUEUE_ITERATOR;
-// Its iterator.
-
-typedef ACE_Cached_Allocator<ACE_Node<ACE_Event_Tuple>, ACE_SYNCH_NULL_MUTEX> TUPLE_ALLOCATOR;
-// Defines the memory allocator used, no need for locking because it
-// is only used in one thread of control.
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Priority_Reactor)
-
-// Initialize ACE_Select_Reactor.
-
-#define npriorities \
- ACE_Event_Handler::HI_PRIORITY-ACE_Event_Handler::LO_PRIORITY+1
-
-void
-ACE_Priority_Reactor::init_bucket (void)
-{
- // Allocate enough space for all the handles.
- // TODO: This can be wrong, maybe we should use other kind of
- // allocator here?
- ACE_NEW (this->tuple_allocator_,
- TUPLE_ALLOCATOR (ACE_Select_Reactor::DEFAULT_SIZE));
-
- // The event handlers are assigned to a new As the Event
- ACE_NEW (this->bucket_,
- QUEUE *[npriorities]);
-
- // This loops "ensures" exception safety.
- for (int i = 0; i < npriorities; ++i)
- ACE_NEW (this->bucket_[i],
- QUEUE (this->tuple_allocator_));
-}
-
-ACE_Priority_Reactor::ACE_Priority_Reactor (ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq)
- : ACE_Select_Reactor(sh, tq),
- bucket_ (0),
- tuple_allocator_ (0)
-{
- ACE_TRACE ("ACE_Priority_Reactor::ACE_Priority_Reactor");
- this->init_bucket ();
-}
-
-ACE_Priority_Reactor::ACE_Priority_Reactor (size_t size,
- int rs,
- ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq)
- : ACE_Select_Reactor (size, rs, sh, tq),
- bucket_ (0),
- tuple_allocator_ (0)
-{
- ACE_TRACE ("ACE_Priority_Reactor::ACE_Priority_Reactor");
- this->init_bucket ();
-}
-
-ACE_Priority_Reactor::~ACE_Priority_Reactor (void)
-{
- ACE_TRACE ("ACE_Priority_Reactor::~ACE_Priority_Reactor");
-
- for (int i = 0; i < npriorities; ++i)
- delete this->bucket_[i];
-
- delete[] this->bucket_;
- delete tuple_allocator_;
-}
-
-int
-ACE_Priority_Reactor::dispatch_io_set (int number_of_active_handles,
- int& number_dispatched,
- int mask,
- ACE_Handle_Set& dispatch_mask,
- ACE_Handle_Set& ready_mask,
- ACE_EH_PTMF callback)
-{
- ACE_TRACE ("ACE_Priority_Reactor::dispatch_io_set");
-
- if (number_of_active_handles == 0)
- return 0;
-
- // The range for which there exists any Event_Tuple is computed on
- // the ordering loop, minimizing iterations on the dispatching loop.
- int min_priority = ACE_Event_Handler::HI_PRIORITY;
- int max_priority = ACE_Event_Handler::LO_PRIORITY;
-
- ACE_Handle_Set_Iterator handle_iter (dispatch_mask);
-
- for (ACE_HANDLE handle;
- (handle = handle_iter ()) != ACE_INVALID_HANDLE;
- )
- {
- ACE_Event_Tuple et (this->handler_rep_.find (handle),
- handle);
- int prio = et.event_handler_->priority ();
-
- // If the priority is out of range assign the minimum priority.
- if (prio < ACE_Event_Handler::LO_PRIORITY
- || prio > ACE_Event_Handler::HI_PRIORITY)
- prio = ACE_Event_Handler::LO_PRIORITY;
-
- bucket_[prio]->enqueue_tail (et);
-
- // Update the priority ranges....
- if (min_priority > prio)
- min_priority = prio;
- if (max_priority < prio)
- max_priority = prio;
- }
-
- for (int i = max_priority; i >= min_priority; --i)
- {
- // Remove all the entries from the wrappers
- while (!bucket_[i]->is_empty ()
- && number_dispatched < number_of_active_handles
- && this->state_changed_ == 0)
- {
- ACE_Event_Tuple et;
- bucket_[i]->dequeue_head (et);
- this->notify_handle (et.handle_,
- mask,
- ready_mask,
- et.event_handler_,
- callback);
- number_dispatched++;
- }
- // Even if we are aborting the loop due to this->state_changed
- // or another error we still want to cleanup the buckets.
- bucket_[i]->reset ();
- }
-
- if (number_dispatched > 0 && this->state_changed_)
- return -1;
-
- return 0;
-}
-
-void
-ACE_Priority_Reactor::dump (void) const
-{
- ACE_TRACE ("ACE_Priority_Reactor::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_Select_Reactor::dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Unbounded_Queue<ACE_Event_Tuple>;
-template class ACE_Unbounded_Queue_Iterator<ACE_Event_Tuple>;
-template class ACE_Node<ACE_Event_Tuple>;
-template class ACE_Cached_Allocator<ACE_Node<ACE_Event_Tuple>, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Locked_Free_List<ACE_Cached_Mem_Pool_Node<ACE_Node<ACE_Event_Tuple> >,ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Free_List<ACE_Cached_Mem_Pool_Node<ACE_Node<ACE_Event_Tuple> > >;
-template class ACE_Cached_Mem_Pool_Node<ACE_Node<ACE_Event_Tuple> >;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Unbounded_Queue<ACE_Event_Tuple>
-#pragma instantiate ACE_Unbounded_Queue_Iterator<ACE_Event_Tuple>
-#pragma instantiate ACE_Node<ACE_Event_Tuple>
-#pragma instantiate ACE_Cached_Allocator<ACE_Node<ACE_Event_Tuple>, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Locked_Free_List<ACE_Cached_Mem_Pool_Node<ACE_Node<ACE_Event_Tuple> >,ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Free_List<ACE_Cached_Mem_Pool_Node<ACE_Node<ACE_Event_Tuple> > >
-#pragma instantiate ACE_Cached_Mem_Pool_Node<ACE_Node<ACE_Event_Tuple> >
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Priority_Reactor.h b/ace/Priority_Reactor.h
deleted file mode 100644
index 23fa0e3ae24..00000000000
--- a/ace/Priority_Reactor.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Priority_Reactor.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_PRIORITY_REACTOR_H
-#define ACE_PRIORITY_REACTOR_H
-#include "ace/pre.h"
-
-#include "ace/Unbounded_Queue.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Select_Reactor.h"
-
-/**
- * @class ACE_Priority_Reactor
- *
- * @brief Implements priority based dispatching.
- *
- * This class refines the dispatching mechanism for the
- * Select_Reactor by taking advantage of the priority method on
- * ACE_Event_Handler.
- */
-class ACE_Export ACE_Priority_Reactor : public ACE_Select_Reactor
-{
-public:
- // = Initialization and termination methods.
-
- /// Initialize <ACE_Priority_Reactor> with the default size.
- ACE_Priority_Reactor (ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0);
-
- /// Initialize <ACE_Priority_Reactor> with size <size>.
- ACE_Priority_Reactor (size_t size,
- int restart = 0,
- ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0);
-
- /// Close down the select_reactor and release all of its resources.
- virtual ~ACE_Priority_Reactor (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Dispatching methods.
-
- /// We simply override this function to implement the priority
- /// dispatching.
- virtual int dispatch_io_set (int number_of_active_handles,
- int &number_dispatched,
- int mask,
- ACE_Handle_Set &dispatch_mask,
- ACE_Handle_Set &ready_mask,
- ACE_EH_PTMF callback);
-
-private:
- /// A small helper to initialize the bucket.
- void init_bucket (void);
-
- /// There is a queue per-priority, which simply holds the
- /// Event_Handlers until we know who goes first.
- typedef ACE_Unbounded_Queue<ACE_Event_Tuple> QUEUE;
- QUEUE** bucket_;
-
- /// The queues themselves use this allocator to minimize dynamic
- /// memory usage.
- ACE_Allocator* tuple_allocator_;
-
- /// Deny access since member-wise won't work...
- ACE_Priority_Reactor (const ACE_Select_Reactor &);
- ACE_Priority_Reactor &operator = (const ACE_Select_Reactor &);
-};
-
-#include "ace/post.h"
-#endif /* ACE_PRIORITY_REACTOR_H */
diff --git a/ace/Proactor.cpp b/ace/Proactor.cpp
deleted file mode 100644
index 85ea994f9b0..00000000000
--- a/ace/Proactor.cpp
+++ /dev/null
@@ -1,1157 +0,0 @@
-// $Id$
-
-#include "ace/Proactor.h"
-#if ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS)))
-// This only works on Win32 platforms and on Unix platforms with aio
-// calls.
-
-#include "ace/Proactor_Impl.h"
-#include "ace/Object_Manager.h"
-#include "ace/Task_T.h"
-#if !defined (ACE_HAS_WINCE) && !defined (ACE_LACKS_ACE_SVCCONF)
-# include "ace/Service_Config.h"
-# endif /* !ACE_HAS_WINCE && !ACE_LACKS_ACE_SVCCONF */
-
-ACE_RCSID(ace, Proactor, "$Id$")
-
-#include "ace/Task_T.h"
-#include "ace/Log_Msg.h"
-#include "ace/Framework_Component.h"
-
-#if defined (ACE_HAS_AIO_CALLS)
-# include "ace/POSIX_Proactor.h"
-#else /* !ACE_HAS_AIO_CALLS */
-# include "ace/WIN32_Proactor.h"
-#endif /* ACE_HAS_AIO_CALLS */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Proactor.i"
-#endif /* __ACE_INLINE__ */
-
-/// Process-wide ACE_Proactor.
-ACE_Proactor *ACE_Proactor::proactor_ = 0;
-
-/// Controls whether the Proactor is deleted when we shut down (we can
-/// only delete it safely if we created it!)
-int ACE_Proactor::delete_proactor_ = 0;
-
-/**
- * @class ACE_Proactor_Timer_Handler
- *
- * @brief A Handler for timer. It helps in the management of timers
- * registered with the Proactor.
- *
- * This object has a thread that will wait on the earliest time
- * in a list of timers and an event. When a timer expires, the
- * thread will post a completion event on the port and go back
- * to waiting on the timer queue and event. If the event is
- * signaled, the thread will refresh the time it is currently
- * waiting on (in case the earliest time has changed).
- */
-class ACE_Proactor_Timer_Handler : public ACE_Task <ACE_NULL_SYNCH>
-{
-
- /// Proactor has special privileges
- /// Access needed to: timer_event_
- friend class ACE_Proactor;
-
-public:
- /// Constructor.
- ACE_Proactor_Timer_Handler (ACE_Proactor &proactor);
-
- /// Destructor.
- virtual ~ACE_Proactor_Timer_Handler (void);
-
- /// Proactor calls this to shut down the timer handler
- /// gracefully. Just calling the destructor alone doesnt do what
- /// <destroy> does. <destroy> make sure the thread exits properly.
- int destroy (void);
-
-protected:
- /// Run by a daemon thread to handle deferred processing. In other
- /// words, this method will do the waiting on the earliest timer and
- /// event.
- virtual int svc (void);
-
- /// Event to wait on.
- ACE_Auto_Event timer_event_;
-
- /// Proactor.
- ACE_Proactor &proactor_;
-
- /// Flag used to indicate when we are shutting down.
- int shutting_down_;
-};
-
-ACE_Proactor_Timer_Handler::ACE_Proactor_Timer_Handler (ACE_Proactor &proactor)
- : ACE_Task <ACE_NULL_SYNCH> (&proactor.thr_mgr_),
- proactor_ (proactor),
- shutting_down_ (0)
-{
-}
-
-ACE_Proactor_Timer_Handler::~ACE_Proactor_Timer_Handler (void)
-{
- // Mark for closing down.
- this->shutting_down_ = 1;
-
- // Signal timer event.
- this->timer_event_.signal ();
-
- // Wait for the Timer Handler thread to exit.
- this->thr_mgr ()->wait_grp (this->grp_id ());
-}
-
-int
-ACE_Proactor_Timer_Handler::svc (void)
-{
- ACE_Time_Value absolute_time;
- ACE_Time_Value relative_time;
- int result = 0;
-
- while (this->shutting_down_ == 0)
- {
- // Check whether the timer queue has any items in it.
- if (this->proactor_.timer_queue ()->is_empty () == 0)
- {
- // Get the earliest absolute time.
- absolute_time = this->proactor_.timer_queue ()->earliest_time ();
-
- // Get current time from timer queue since we don't know
- // which <gettimeofday> was used.
- ACE_Time_Value cur_time = this->proactor_.timer_queue ()->gettimeofday ();
-
- // Compare absolute time with curent time received from the
- // timer queue.
- if (absolute_time > cur_time)
- relative_time = absolute_time - cur_time;
- else
- relative_time = 0;
-
- // Block for relative time.
- result = this->timer_event_.wait (&relative_time, 0);
- }
- else
- // The timer queue has no entries, so wait indefinitely.
- result = this->timer_event_.wait ();
-
- // Check for timer expiries.
- if (result == -1)
- {
- switch (errno)
- {
- case ETIME:
- // timeout: expire timers
- this->proactor_.timer_queue ()->expire ();
- break;
- default:
- // Error.
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:(%P | %t):%p\n"),
- ACE_LIB_TEXT ("ACE_Proactor_Timer_Handler::svc:wait failed")),
- -1);
- }
- }
- }
- return 0;
-}
-
-// *********************************************************************
-
-ACE_Proactor_Handle_Timeout_Upcall::ACE_Proactor_Handle_Timeout_Upcall (void)
- : proactor_ (0)
-{
-}
-
-int
-ACE_Proactor_Handle_Timeout_Upcall::timeout (TIMER_QUEUE &timer_queue,
- ACE_Handler *handler,
- const void *act,
- const ACE_Time_Value &time)
-{
- ACE_UNUSED_ARG (timer_queue);
-
- if (this->proactor_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("(%t) No Proactor set in ACE_Proactor_Handle_Timeout_Upcall,")
- ACE_LIB_TEXT (" no completion port to post timeout to?!@\n")),
- -1);
-
- // Create the Asynch_Timer.
- ACE_Asynch_Result_Impl *asynch_timer = this->proactor_->create_asynch_timer (*handler,
- act,
- time,
- ACE_INVALID_HANDLE,
- 0,
- -1);
- if (asynch_timer == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:(%P | %t):%p\n"),
- ACE_LIB_TEXT ("ACE_Proactor_Handle_Timeout_Upcall::timeout:")
- ACE_LIB_TEXT ("create_asynch_timer failed")),
- -1);
-
- // Post a completion.
- if (asynch_timer->post_completion (this->proactor_->implementation ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Failure in dealing with timers: ")
- ACE_LIB_TEXT ("PostQueuedCompletionStatus failed\n")),
- -1);
- return 0;
-}
-
-int
-ACE_Proactor_Handle_Timeout_Upcall::cancellation (TIMER_QUEUE &timer_queue,
- ACE_Handler *handler)
-{
- ACE_UNUSED_ARG (timer_queue);
- ACE_UNUSED_ARG (handler);
-
- // Do nothing
- return 0;
-}
-
-int
-ACE_Proactor_Handle_Timeout_Upcall::deletion (TIMER_QUEUE &timer_queue,
- ACE_Handler *handler,
- const void *arg)
-{
- ACE_UNUSED_ARG (timer_queue);
- ACE_UNUSED_ARG (handler);
- ACE_UNUSED_ARG (arg);
-
- // Do nothing
- return 0;
-}
-
-int
-ACE_Proactor_Handle_Timeout_Upcall::proactor (ACE_Proactor &proactor)
-{
- if (this->proactor_ == 0)
- {
- this->proactor_ = &proactor;
- return 0;
- }
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Proactor_Handle_Timeout_Upcall is only suppose")
- ACE_LIB_TEXT (" to be used with ONE (and only one) Proactor\n")),
- -1);
-}
-
-// *********************************************************************
-
-ACE_Proactor::ACE_Proactor (ACE_Proactor_Impl *implementation,
- int delete_implementation,
- TIMER_QUEUE *tq)
- : implementation_ (0),
- delete_implementation_ (delete_implementation),
- timer_handler_ (0),
- timer_queue_ (0),
- delete_timer_queue_ (0),
- end_event_loop_ (0),
- event_loop_thread_count_ (0)
-{
- this->implementation (implementation);
-
- if (this->implementation () == 0)
- {
-#if defined (ACE_HAS_AIO_CALLS)
- // POSIX Proactor.
-# if defined (ACE_POSIX_AIOCB_PROACTOR)
- ACE_NEW (implementation, ACE_POSIX_AIOCB_Proactor);
-# elif defined (ACE_POSIX_SIG_PROACTOR)
- ACE_NEW (implementation, ACE_POSIX_SIG_Proactor);
-# else /* Default is to use the SIG one */
-# if defined(ACE_HAS_POSIX_REALTIME_SIGNALS)
- ACE_NEW (implementation, ACE_POSIX_SIG_Proactor);
-# else
- ACE_NEW (implementation, ACE_POSIX_AIOCB_Proactor);
-# endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
-# endif /* ACE_POSIX_AIOCB_PROACTOR */
-#elif (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
- // WIN_Proactor.
- ACE_NEW (implementation,
- ACE_WIN32_Proactor);
-#endif /* ACE_HAS_AIO_CALLS */
- this->implementation (implementation);
- this->delete_implementation_ = 1;
- }
-
- // Set the timer queue.
- this->timer_queue (tq);
-
- // Create the timer handler
- ACE_NEW (this->timer_handler_,
- ACE_Proactor_Timer_Handler (*this));
-
- // Activate <timer_handler>.
- if (this->timer_handler_->activate (THR_NEW_LWP) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:(%P | %t):%p\n"),
- ACE_LIB_TEXT ("Task::activate:could not create thread\n")));
-}
-
-ACE_Proactor::~ACE_Proactor (void)
-{
- this->close ();
-}
-
-ACE_Proactor *
-ACE_Proactor::instance (size_t /* threads */)
-{
- ACE_TRACE ("ACE_Proactor::instance");
-
- if (ACE_Proactor::proactor_ == 0)
- {
- // Perform Double-Checked Locking Optimization.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (),
- 0));
-
- if (ACE_Proactor::proactor_ == 0)
- {
- ACE_NEW_RETURN (ACE_Proactor::proactor_,
- ACE_Proactor,
- 0);
-
- ACE_Proactor::delete_proactor_ = 1;
- ACE_REGISTER_FRAMEWORK_COMPONENT(ACE_Proactor, ACE_Proactor::proactor_);
- }
- }
- return ACE_Proactor::proactor_;
-}
-
-ACE_Proactor *
-ACE_Proactor::instance (ACE_Proactor * r, int delete_proactor)
-{
- ACE_TRACE ("ACE_Proactor::instance");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
-
- ACE_Proactor *t = ACE_Proactor::proactor_;
-
- ACE_Proactor::delete_proactor_ = delete_proactor;
- ACE_Proactor::proactor_ = r;
- ACE_REGISTER_FRAMEWORK_COMPONENT(ACE_Proactor, ACE_Proactor::proactor_);
-
- return t;
-}
-
-void
-ACE_Proactor::close_singleton (void)
-{
- ACE_TRACE ("ACE_Proactor::close_singleton");
-
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance ()));
-
- if (ACE_Proactor::delete_proactor_)
- {
-
- delete ACE_Proactor::proactor_;
- ACE_Proactor::proactor_ = 0;
- ACE_Proactor::delete_proactor_ = 0;
- }
-}
-
-const ACE_TCHAR *
-ACE_Proactor::dll_name (void)
-{
- return ACE_LIB_TEXT ("ACE");
-}
-
-const ACE_TCHAR *
-ACE_Proactor::name (void)
-{
- return ACE_LIB_TEXT ("ACE_Proactor");
-}
-
-int
-ACE_Proactor::check_reconfiguration (ACE_Proactor *)
-{
-#if !defined (ACE_HAS_WINCE) && !defined (ACE_LACKS_ACE_SVCCONF)
- if (ACE_Service_Config::reconfig_occurred ())
- {
- ACE_Service_Config::reconfigure ();
- return 1;
- }
-#endif /* ! ACE_HAS_WINCE || ! ACE_LACKS_ACE_SVCCONF */
- return 0;
-}
-
-int
-ACE_Proactor::proactor_run_event_loop (PROACTOR_EVENT_HOOK eh)
-{
- ACE_TRACE ("ACE_Proactor::proactor_run_event_loop");
- int result = 0;
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1));
-
- // Early check. It is ok to do this without lock, since we care just
- // whether it is zero or non-zero.
- if (this->end_event_loop_ != 0)
- return 0;
-
- // First time you are in. Increment the thread count.
- this->event_loop_thread_count_ ++;
- }
-
- // Run the event loop.
- for (;;)
- {
- // Check the end loop flag. It is ok to do this without lock,
- // since we care just whether it is zero or non-zero.
- if (this->end_event_loop_ != 0)
- break;
-
- // <end_event_loop> is not set. Ready to do <handle_events>.
- result = this->handle_events ();
-
- if (eh != 0 && (*eh) (this))
- continue;
-
- if (result == -1)
- break;
- }
-
- // Leaving the event loop. Decrement the thread count.
-
- {
- // Obtain the lock in the MT environments.
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1));
-
- // Decrement the thread count.
- this->event_loop_thread_count_ --;
-
- if (this->event_loop_thread_count_ > 0
- && this->end_event_loop_ != 0)
- this->proactor_post_wakeup_completions (1);
- }
-
- return result;
-}
-
-// Handle events for -tv- time. handle_events updates -tv- to reflect
-// time elapsed, so do not return until -tv- == 0, or an error occurs.
-int
-ACE_Proactor::proactor_run_event_loop (ACE_Time_Value &tv,
- PROACTOR_EVENT_HOOK eh)
-{
- ACE_TRACE ("ACE_Proactor::proactor_run_event_loop");
- int result = 0;
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1));
-
- // Early check. It is ok to do this without lock, since we care just
- // whether it is zero or non-zero.
- if (this->end_event_loop_ != 0
- || tv == ACE_Time_Value::zero)
- return 0;
-
- // First time you are in. Increment the thread count.
- this->event_loop_thread_count_ ++;
- }
-
- // Run the event loop.
- for (;;)
- {
- // Check the end loop flag. It is ok to do this without lock,
- // since we care just whether it is zero or non-zero.
- if (this->end_event_loop_ != 0)
- break;
-
- // <end_event_loop> is not set. Ready to do <handle_events>.
- result = this->handle_events (tv);
-
- if (eh != 0 && (*eh) (this))
- continue;
-
- if (result == -1)
- break;
- }
-
- // Leaving the event loop. Decrement the thread count.
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1));
-
- // Decrement the thread count.
- this->event_loop_thread_count_ --;
-
- if (this->event_loop_thread_count_ > 0
- && this->end_event_loop_ != 0)
- this->proactor_post_wakeup_completions (1);
- }
-
- return result;
-}
-
-int
-ACE_Proactor::proactor_reset_event_loop(void)
-{
- ACE_TRACE ("ACE_Proactor::proactor_reset_event_loop");
-
- // Obtain the lock in the MT environments.
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1));
-
- this->end_event_loop_ = 0;
- return 0;
-}
-
-int
-ACE_Proactor::proactor_end_event_loop (void)
-{
- ACE_TRACE ("ACE_Proactor::proactor_end_event_loop");
-
- int how_many = 0;
-
- {
- // Obtain the lock, set the end flag and post the wakeup
- // completions.
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1));
-
- // Set the end flag.
- this->end_event_loop_ = 1;
-
- // Number of completions to post.
- how_many = this->event_loop_thread_count_;
- if (how_many == 0)
- return 0;
- }
-
- // Post completions to all the threads so that they will all wake
- // up.
- return this->proactor_post_wakeup_completions (how_many);
-}
-
-int
-ACE_Proactor::proactor_event_loop_done (void)
-{
- ACE_TRACE ("ACE_Proactor::proactor_event_loop_done");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1));
-
- return this->end_event_loop_ != 0 ? 1 : 0 ;
-}
-
-int
-ACE_Proactor::close (void)
-{
- // Close the implementation.
- if (this->implementation ()->close () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:(%P | %t):%p\n"),
- ACE_LIB_TEXT ("ACE_Proactor::close:implementation couldnt be closed")),
- -1);
-
- // Delete the implementation.
- if (this->delete_implementation_)
- {
- delete this->implementation ();
- this->implementation_ = 0;
- }
-
- // Delete the timer handler.
- if (this->timer_handler_)
- {
- delete this->timer_handler_;
- this->timer_handler_ = 0;
- }
-
- // Delete the timer queue.
- if (this->delete_timer_queue_)
- {
- delete this->timer_queue_;
- this->timer_queue_ = 0;
- this->delete_timer_queue_ = 0;
- }
-
- return 0;
-}
-
-int
-ACE_Proactor::register_handle (ACE_HANDLE handle,
- const void *completion_key)
-{
- return this->implementation ()->register_handle (handle,
- completion_key);
-}
-
-long
-ACE_Proactor::schedule_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &time)
-{
- return this->schedule_timer (handler,
- act,
- time,
- ACE_Time_Value::zero);
-}
-
-long
-ACE_Proactor::schedule_repeating_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &interval)
-{
- return this->schedule_timer (handler,
- act,
- interval,
- interval);
-}
-
-long
-ACE_Proactor::schedule_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &time,
- const ACE_Time_Value &interval)
-{
- // absolute time.
- ACE_Time_Value absolute_time =
- this->timer_queue_->gettimeofday () + time;
-
- // Only one guy goes in here at a time
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX,
- ace_mon,
- this->timer_queue_->mutex (),
- -1));
-
- // Schedule the timer
- long result = this->timer_queue_->schedule (&handler,
- act,
- absolute_time,
- interval);
- if (result != -1)
- {
- // no failures: check to see if we are the earliest time
- if (this->timer_queue_->earliest_time () == absolute_time)
-
- // wake up the timer thread
- if (this->timer_handler_->timer_event_.signal () == -1)
- {
- // Cancel timer
- this->timer_queue_->cancel (result);
- result = -1;
- }
- }
- return result;
-}
-
-int
-ACE_Proactor::cancel_timer (long timer_id,
- const void **arg,
- int dont_call_handle_close)
-{
- // No need to singal timer event here. Even if the cancel timer was
- // the earliest, we will have an extra wakeup.
- return this->timer_queue_->cancel (timer_id,
- arg,
- dont_call_handle_close);
-}
-
-int
-ACE_Proactor::cancel_timer (ACE_Handler &handler,
- int dont_call_handle_close)
-{
- // No need to signal timer event here. Even if the cancel timer was
- // the earliest, we will have an extra wakeup.
- return this->timer_queue_->cancel (&handler,
- dont_call_handle_close);
-}
-
-int
-ACE_Proactor::handle_events (ACE_Time_Value &wait_time)
-{
- return implementation ()->handle_events (wait_time);
-}
-
-int
-ACE_Proactor::handle_events (void)
-{
- return this->implementation ()->handle_events ();
-}
-
-int
-ACE_Proactor::wake_up_dispatch_threads (void)
-{
- return 0;
-}
-
-int
-ACE_Proactor::close_dispatch_threads (int)
-{
- return 0;
-}
-
-size_t
-ACE_Proactor::number_of_threads (void) const
-{
- return this->implementation ()->number_of_threads ();
-}
-
-void
-ACE_Proactor::number_of_threads (size_t threads)
-{
- this->implementation ()->number_of_threads (threads);
-}
-
-ACE_Proactor::TIMER_QUEUE *
-ACE_Proactor::timer_queue (void) const
-{
- return this->timer_queue_;
-}
-
-void
-ACE_Proactor::timer_queue (TIMER_QUEUE *tq)
-{
- // Cleanup old timer queue.
- if (this->delete_timer_queue_)
- {
- delete this->timer_queue_;
- this->delete_timer_queue_ = 0;
- }
-
- // New timer queue.
- if (tq == 0)
- {
- ACE_NEW (this->timer_queue_,
- TIMER_HEAP);
- this->delete_timer_queue_ = 1;
- }
- else
- {
- this->timer_queue_ = tq;
- this->delete_timer_queue_ = 0;
- }
-
- // Set the proactor in the timer queue's functor
- this->timer_queue_->upcall_functor ().proactor (*this);
-}
-
-ACE_HANDLE
-ACE_Proactor::get_handle (void) const
-{
- return this->implementation ()->get_handle ();
-}
-
-ACE_Proactor_Impl *
-ACE_Proactor::implementation (void) const
-{
- return this->implementation_;
-}
-
-
-ACE_Asynch_Read_Stream_Impl *
-ACE_Proactor::create_asynch_read_stream (void)
-{
- return this->implementation ()->create_asynch_read_stream ();
-}
-
-ACE_Asynch_Write_Stream_Impl *
-ACE_Proactor::create_asynch_write_stream (void)
-{
- return this->implementation ()->create_asynch_write_stream ();
-}
-
-ACE_Asynch_Read_Dgram_Impl *
-ACE_Proactor::create_asynch_read_dgram (void)
-{
- return this->implementation ()->create_asynch_read_dgram ();
-}
-
-ACE_Asynch_Write_Dgram_Impl *
-ACE_Proactor::create_asynch_write_dgram (void)
-{
- return this->implementation ()->create_asynch_write_dgram ();
-}
-
-ACE_Asynch_Read_File_Impl *
-ACE_Proactor::create_asynch_read_file (void)
-{
- return this->implementation ()->create_asynch_read_file ();
-}
-
-ACE_Asynch_Write_File_Impl *
-ACE_Proactor::create_asynch_write_file (void)
-{
- return this->implementation ()->create_asynch_write_file ();
-}
-
-ACE_Asynch_Accept_Impl *
-ACE_Proactor::create_asynch_accept (void)
-{
- return this->implementation ()->create_asynch_accept ();
-}
-
-ACE_Asynch_Connect_Impl *
-ACE_Proactor::create_asynch_connect (void)
-{
- return this->implementation ()->create_asynch_connect ();
-}
-
-ACE_Asynch_Transmit_File_Impl *
-ACE_Proactor::create_asynch_transmit_file (void)
-{
- return this->implementation ()->create_asynch_transmit_file ();
-}
-
-ACE_Asynch_Read_Stream_Result_Impl *
-ACE_Proactor::create_asynch_read_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- u_long bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- return this->implementation ()->create_asynch_read_stream_result (handler,
- handle,
- message_block,
- bytes_to_read,
- act,
- event,
- priority,
- signal_number);
-}
-
-
-ACE_Asynch_Write_Stream_Result_Impl *
-ACE_Proactor::create_asynch_write_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- u_long bytes_to_write,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-
-{
- return this->implementation ()->create_asynch_write_stream_result (handler,
- handle,
- message_block,
- bytes_to_write,
- act,
- event,
- priority,
- signal_number);
-}
-
-ACE_Asynch_Read_File_Result_Impl *
-ACE_Proactor::create_asynch_read_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- u_long bytes_to_read,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-
-{
- return this->implementation ()->create_asynch_read_file_result (handler,
- handle,
- message_block,
- bytes_to_read,
- act,
- offset,
- offset_high,
- event,
- priority,
- signal_number);
-}
-
-ACE_Asynch_Write_File_Result_Impl *
-ACE_Proactor::create_asynch_write_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- u_long bytes_to_write,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-
-{
- return this->implementation ()->create_asynch_write_file_result (handler,
- handle,
- message_block,
- bytes_to_write,
- act,
- offset,
- offset_high,
- event,
- priority,
- signal_number);
-}
-
-ACE_Asynch_Read_Dgram_Result_Impl *
-ACE_Proactor::create_asynch_read_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_read,
- int flags,
- int protocol_family,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- return this->implementation()->create_asynch_read_dgram_result (handler,
- handle,
- message_block,
- bytes_to_read,
- flags,
- protocol_family,
- act,
- event,
- priority,
- signal_number);
-}
-
-ACE_Asynch_Write_Dgram_Result_Impl *
-ACE_Proactor::create_asynch_write_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_write,
- int flags,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- return this->implementation()->create_asynch_write_dgram_result (handler,
- handle,
- message_block,
- bytes_to_write,
- flags,
- act,
- event,
- priority,
- signal_number);
-}
-
-ACE_Asynch_Accept_Result_Impl *
-ACE_Proactor::create_asynch_accept_result (ACE_Handler &handler,
- ACE_HANDLE listen_handle,
- ACE_HANDLE accept_handle,
- ACE_Message_Block &message_block,
- u_long bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-
-{
- return this->implementation ()->create_asynch_accept_result (handler,
- listen_handle,
- accept_handle,
- message_block,
- bytes_to_read,
- act,
- event,
- priority,
- signal_number);
-}
-
-ACE_Asynch_Connect_Result_Impl *
-ACE_Proactor::create_asynch_connect_result (ACE_Handler &handler,
- ACE_HANDLE connect_handle,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-
-{
- return this->implementation ()->create_asynch_connect_result (handler,
- connect_handle,
- act,
- event,
- priority,
- signal_number);
-}
-
-ACE_Asynch_Transmit_File_Result_Impl *
-ACE_Proactor::create_asynch_transmit_file_result (ACE_Handler &handler,
- ACE_HANDLE socket,
- ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- u_long bytes_to_write,
- u_long offset,
- u_long offset_high,
- u_long bytes_per_send,
- u_long flags,
- const void *act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-
-{
- return this->implementation ()->create_asynch_transmit_file_result (handler,
- socket,
- file,
- header_and_trailer,
- bytes_to_write,
- offset,
- offset_high,
- bytes_per_send,
- flags,
- act,
- event,
- priority,
- signal_number);
-}
-
-ACE_Asynch_Result_Impl *
-ACE_Proactor::create_asynch_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &tv,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- return this->implementation ()->create_asynch_timer (handler,
- act,
- tv,
- event,
- priority,
- signal_number);
-}
-
-int
-ACE_Proactor::proactor_post_wakeup_completions (int how_many)
-{
- return this->implementation ()->post_wakeup_completions (how_many);
-}
-
-void
-ACE_Proactor::implementation (ACE_Proactor_Impl *implementation)
-{
- this->implementation_ = implementation;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Timer_Queue_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Queue_Iterator_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_List_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_List_Iterator_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Node_T<ACE_Handler *>;
-template class ACE_Unbounded_Set<ACE_Timer_Node_T<ACE_Handler *> *>;
-template class ACE_Unbounded_Set_Iterator<ACE_Timer_Node_T<ACE_Handler *> *>;
-template class ACE_Node <ACE_Timer_Node_T<ACE_Handler *> *>;
-template class ACE_Free_List<ACE_Timer_Node_T<ACE_Handler *> >;
-template class ACE_Locked_Free_List<ACE_Timer_Node_T<ACE_Handler *>, ACE_Null_Mutex>;
-template class ACE_Timer_Heap_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Heap_Iterator_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Wheel_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Wheel_Iterator_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Timer_Queue_T<ACE_Handler *,\
- ACE_Proactor_Handle_Timeout_Upcall,\
- ACE_SYNCH_RECURSIVE_MUTEX>
-#pragma instantiate ACE_Timer_Queue_Iterator_T<ACE_Handler *,\
- ACE_Proactor_Handle_Timeout_Upcall,\
- ACE_SYNCH_RECURSIVE_MUTEX>
-#pragma instantiate ACE_Timer_List_T<ACE_Handler *,\
- ACE_Proactor_Handle_Timeout_Upcall,\
- ACE_SYNCH_RECURSIVE_MUTEX>
-#pragma instantiate ACE_Timer_List_Iterator_T<ACE_Handler *,\
- ACE_Proactor_Handle_Timeout_Upcall,\
- ACE_SYNCH_RECURSIVE_MUTEX>
-#pragma instantiate ACE_Timer_Node_T<ACE_Handler *>
-#pragma instantiate ACE_Unbounded_Set<ACE_Timer_Node_T<ACE_Handler *> *>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_Timer_Node_T<ACE_Handler *> *>
-#pragma instantiate ACE_Node <ACE_Timer_Node_T<ACE_Handler *> *>
-#pragma instantiate ACE_Free_List<ACE_Timer_Node_T<ACE_Handler *> >
-#pragma instantiate ACE_Locked_Free_List<ACE_Timer_Node_T<ACE_Handler *>,\
- ACE_Null_Mutex>
-#pragma instantiate ACE_Timer_Heap_T<ACE_Handler *,\
- ACE_Proactor_Handle_Timeout_Upcall,\
- ACE_SYNCH_RECURSIVE_MUTEX>
-#pragma instantiate ACE_Timer_Heap_Iterator_T<ACE_Handler *,\
- ACE_Proactor_Handle_Timeout_Upcall,\
- ACE_SYNCH_RECURSIVE_MUTEX>
-#pragma instantiate ACE_Timer_Wheel_T<ACE_Handler *,\
- ACE_Proactor_Handle_Timeout_Upcall,\
- ACE_SYNCH_RECURSIVE_MUTEX>
-#pragma instantiate ACE_Timer_Wheel_Iterator_T<ACE_Handler *,\
- ACE_Proactor_Handle_Timeout_Upcall,\
- ACE_SYNCH_RECURSIVE_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Framework_Component_T<ACE_Proactor>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Framework_Component_T<ACE_Proactor>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#else /* !ACE_WIN32 || !ACE_HAS_AIO_CALLS */
-
-ACE_Proactor *
-ACE_Proactor::instance (size_t threads)
-{
- ACE_UNUSED_ARG (threads);
- return 0;
-}
-
-ACE_Proactor *
-ACE_Proactor::instance (ACE_Proactor *)
-{
- return 0;
-}
-
-void
-ACE_Proactor::close_singleton (void)
-{
-}
-
-int
-ACE_Proactor::run_event_loop (void)
-{
- // not implemented
- return -1;
-}
-
-int
-ACE_Proactor::run_event_loop (ACE_Time_Value &tv)
-{
- // not implemented
- ACE_UNUSED_ARG (tv);
- return -1;
-}
-
-int
-ACE_Proactor::end_event_loop (void)
-{
- // not implemented
- return -1;
-}
-
-sig_atomic_t
-ACE_Proactor::event_loop_done (void)
-{
- return sig_atomic_t (1);
-}
-
-#endif /* ACE_WIN32 || ACE_HAS_AIO_CALLS*/
diff --git a/ace/Proactor.h b/ace/Proactor.h
deleted file mode 100644
index 53ddb9d1d39..00000000000
--- a/ace/Proactor.h
+++ /dev/null
@@ -1,649 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Proactor.h
- *
- * $Id$
- *
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- * @author Tim Harrison <harrison@cs.wustl.edu>
- * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
- * @author Alexander Libman <alibman@ihug.com.au>
- */
-//=============================================================================
-
-#ifndef ACE_PROACTOR_H
-#define ACE_PROACTOR_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-#include "ace/ACE_export.h"
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS)))
-// This only works on Win32 platforms and on Unix platforms supporting
-// POSIX aio calls.
-
-# include "ace/Asynch_IO.h"
-# include "ace/Asynch_IO_Impl.h"
-# include "ace/Thread_Manager.h"
-# include "ace/Timer_Queue.h"
-# include "ace/Timer_List.h"
-# include "ace/Timer_Heap.h"
-# include "ace/Timer_Wheel.h"
-
-// Forward declarations.
-class ACE_Proactor_Impl;
-class ACE_Proactor_Timer_Handler;
-
-/**
- * @class ACE_Proactor_Handle_Timeout_Upcall
- *
- * @brief Functor for <ACE_Timer_Queue>.
- *
- * This class implements the functor required by the Timer
- * Queue to call <handle_timeout> on ACE_Handlers.
- */
-class ACE_Export ACE_Proactor_Handle_Timeout_Upcall
-{
-
- /// Type def for the timer queue.
- typedef ACE_Timer_Queue_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>
- TIMER_QUEUE;
-
- /// The main Proactor class has special permissions.
- friend class ACE_Proactor;
-
-public:
- /// Constructor.
- ACE_Proactor_Handle_Timeout_Upcall (void);
-
- /// This method is called when the timer expires.
- int timeout (TIMER_QUEUE &timer_queue,
- ACE_Handler *handler,
- const void *arg,
- const ACE_Time_Value &cur_time);
-
- /// This method is called when the timer is canceled.
- int cancellation (TIMER_QUEUE &timer_queue,
- ACE_Handler *handler);
-
- /// This method is called when the timer queue is destroyed and the
- /// timer is still contained in it.
- int deletion (TIMER_QUEUE &timer_queue,
- ACE_Handler *handler,
- const void *arg);
-
-protected:
- /// Set the proactor. This will fail, if one is already set!
- int proactor (ACE_Proactor &proactor);
-
- /// Handle to the proactor. This is needed for posting a timer result
- /// to the Proactor's completion queue.
- ACE_Proactor *proactor_;
-};
-
-/**
- * @class ACE_Proactor
- *
- * @brief A manager for asynchronous event demultiplexing.
- *
- * See the Proactor pattern description at
- * http://www.cs.wustl.edu/~schmidt/proactor.ps.gz for more
- * details.
- */
-class ACE_Export ACE_Proactor
-{
- // = Here are the private typedefs that the <ACE_Proactor> uses.
-
- typedef ACE_Timer_Queue_Iterator_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>
- TIMER_QUEUE_ITERATOR;
- typedef ACE_Timer_List_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>
- TIMER_LIST;
- typedef ACE_Timer_List_Iterator_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>
- TIMER_LIST_ITERATOR;
- typedef ACE_Timer_Heap_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>
- TIMER_HEAP;
- typedef ACE_Timer_Heap_Iterator_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>
- TIMER_HEAP_ITERATOR;
- typedef ACE_Timer_Wheel_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>
- TIMER_WHEEL;
- typedef ACE_Timer_Wheel_Iterator_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>
- TIMER_WHEEL_ITERATOR;
-
- // = Friendship.
-
- /// Timer handler runs a thread and manages the timers, on behalf of
- /// the Proactor.
- friend class ACE_Proactor_Timer_Handler;
-
-public:
- /// Public type.
- typedef ACE_Timer_Queue_T<ACE_Handler *,
- ACE_Proactor_Handle_Timeout_Upcall,
- ACE_SYNCH_RECURSIVE_MUTEX>
- TIMER_QUEUE;
-
- /**
- * Constructor. If <implementation> is 0, the correct implementation
- * object will be created. <delete_implementation> flag determines
- * whether the implementation object should be deleted by the
- * Proactor or not. If <tq> is 0, a new TIMER_QUEUE is created.
- */
- ACE_Proactor (ACE_Proactor_Impl *implementation = 0,
- int delete_implementation = 0,
- TIMER_QUEUE *tq = 0);
-
- /// Virtual destruction.
- virtual ~ACE_Proactor (void);
-
- /// Get pointer to a process-wide <ACE_Proactor>. <threads> should
- /// be part of another method.
- static ACE_Proactor *instance (size_t threads = 0);
-
- /// Set pointer to a process-wide <ACE_Proactor> and return existing
- /// pointer.
- static ACE_Proactor *instance (ACE_Proactor * proactor,
- int delete_proactor = 0);
-
- /// Delete the dynamically allocated Singleton.
- static void close_singleton (void);
-
- /// Cleanup method, used by the <ACE_Object_Manager> to destroy the
- /// singleton.
- static void cleanup (void *instance, void *arg);
-
- /// Name of dll in which the singleton instance lives.
- static const ACE_TCHAR *dll_name (void);
-
- /// Name of component--ACE_Proactor in this case.
- static const ACE_TCHAR *name (void);
-
- // = Proactor event loop management methods.
-
- /// Run the event loop until the <ACE_Proactor::handle_events> method
- /// returns -1 or the <end_event_loop> method is invoked.
- static int run_event_loop (void);
-
- /**
- * Run the event loop until the <ACE_Proactor::handle_events> method
- * returns -1, the <end_event_loop> method is invoked, or the
- * <ACE_Time_Value> expires.
- */
- static int run_event_loop (ACE_Time_Value &tv);
-
- /**
- * Instruct the <ACE_Proactor::instance> to terminate its event
- * loop.
- * This method wakes up all the threads blocked on waiting for
- * completions and end the event loop.
- */
- static int end_event_loop (void);
-
- /**
- * Resets the <ACE_Proactor::end_event_loop_> static so that the
- * <run_event_loop> method can be restarted.
- */
- static int reset_event_loop (void);
-
- /**
- * The singleton proactor is used by the <ACE_Service_Config>.
- * Therefore, we must check for the reconfiguration request and
- * handle it after handling an event.
- */
- static int check_reconfiguration (ACE_Proactor *);
-
- /// Report if the <ACE_Proactor::instance> event loop is finished.
- static int event_loop_done (void);
-
- /// Close the associated @c ACE_Proactor_Impl implementation object.
- /**
- * If @arg delete_implementation was specified to the @c open() method,
- * the implementation object is also deleted.
- */
- virtual int close (void);
-
- /**
- * You can add a hook to various run_event methods and the hook will
- * be called after handling every proactor event. If this function
- * returns 0, proactor_run_event_loop will check for the return value of
- * handle_events. If it is -1, the the proactor_run_event_loop will return
- * (pre-maturely.)
- */
- typedef int (*PROACTOR_EVENT_HOOK)(ACE_Proactor *);
-
- // These methods work with an instance of a proactor.
- /**
- * Run the event loop until the
- * <ACE_Proactor::handle_events>
- * method returns -1 or the <end_proactor_event_loop> method is invoked.
- */
- virtual int proactor_run_event_loop (PROACTOR_EVENT_HOOK = 0);
-
- /**
- * Run the event loop until the <ACE_Proactor::handle_events>
- * method returns -1, the
- * <end_proactor_event_loop> method is invoked,
- * or the <ACE_Time_Value>
- * expires.
- */
- virtual int proactor_run_event_loop (ACE_Time_Value &tv,
- PROACTOR_EVENT_HOOK = 0);
-
- /**
- * Instruct the ACE_Proactor to terminate its event loop
- * and notifies the ACE_Proactor so that it can wake up
- * and close down gracefully.
- */
- virtual int proactor_end_event_loop (void);
-
- /// Report if the ACE_Proactor event loop is finished.
- virtual int proactor_event_loop_done (void);
-
- /// Resets the <ACE_Proactor::end_event_loop_> static so that the
- /// <run_event_loop> method can be restarted.
- virtual int proactor_reset_event_loop (void);
-
-
- /// This method adds the <handle> to the I/O completion port. This
- /// function is a no-op function for Unix systems and returns 0;
- virtual int register_handle (ACE_HANDLE handle,
- const void *completion_key);
-
- // = Timer management.
- /**
- * Schedule a <handler> that will expire after <time>. If it
- * expires then <act> is passed in as the value to the <handler>'s
- * <handle_timeout> callback method. This method returns a
- * <timer_id>. This <timer_id> can be used to cancel a timer before
- * it expires. The cancellation ensures that <timer_ids> are unique
- * up to values of greater than 2 billion timers. As long as timers
- * don't stay around longer than this there should be no problems
- * with accidentally deleting the wrong timer. Returns -1 on
- * failure (which is guaranteed never to be a valid <timer_id>).
- */
- virtual long schedule_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &time);
-
- virtual long schedule_repeating_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &interval);
-
- // Same as above except <interval> it is used to reschedule the
- // <handler> automatically.
-
- /// This combines the above two methods into one. Mostly for backward
- /// compatibility.
- virtual long schedule_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &time,
- const ACE_Time_Value &interval);
-
- /// Cancel all timers associated with this <handler>. Returns number
- /// of timers cancelled.
- virtual int cancel_timer (ACE_Handler &handler,
- int dont_call_handle_close = 1);
-
- /**
- * Cancel the single <ACE_Handler> that matches the <timer_id> value
- * (which was returned from the <schedule> method). If <act> is
- * non-NULL then it will be set to point to the ``magic cookie''
- * argument passed in when the <Handler> was registered. This makes
- * it possible to free up the memory and avoid memory leaks.
- * Returns 1 if cancellation succeeded and 0 if the <timer_id>
- * wasn't found.
- */
- virtual int cancel_timer (long timer_id,
- const void **act = 0,
- int dont_call_handle_close = 1);
-
- /**
- * Dispatch a single set of events, waiting up to a specified time limit
- * if necessary.
- * @param wait_time the time to wait for an event to occur. This is
- * a relative time. On successful return, the time is updated to
- * reflect the amount of time spent waiting for event(s) to occur.
- * @return Returns 0 if no events occur before the wait_time expires.
- * Returns 1 when a completion is dispatched. On error, returns -1
- * and sets errno accordingly.
- */
- virtual int handle_events (ACE_Time_Value &wait_time);
-
- /**
- * Block indefinitely until at least one event is dispatched.
- * @return Returns 1 when a completion is dispatched. On error, returns -1
- * and sets errno accordingly.
- */
- virtual int handle_events (void);
-
- /// Add wakeup dispatch threads (reinit).
- int wake_up_dispatch_threads (void);
-
- /// Close all dispatch threads.
- int close_dispatch_threads (int wait);
-
- /// Get number of thread used as a parameter to CreatIoCompletionPort.
- size_t number_of_threads (void) const;
-
- /// Set number of thread used as a parameter to CreatIoCompletionPort.
- void number_of_threads (size_t threads);
-
- /// Get timer queue.
- TIMER_QUEUE *timer_queue (void) const;
-
- /// Set timer queue.
- void timer_queue (TIMER_QUEUE *timer_queue);
-
- /**
- * Get the event handle.
- * It is a no-op in POSIX platforms and it returns
- * ACE_INVALID_HANDLE.
- */
- virtual ACE_HANDLE get_handle (void) const;
-
- /// Get the implementation class.
- virtual ACE_Proactor_Impl *implementation (void) const;
-
- // = Factory methods for the operations
-
- // Note that the user does not have to use or know about these
- // methods.
-
- /// Create the correct implementation class for doing
- /// Asynch_Read_Stream.
- virtual ACE_Asynch_Read_Stream_Impl *create_asynch_read_stream (void);
-
- /// Create the correct implementation class for doing
- /// Asynch_Write_Stream.
- virtual ACE_Asynch_Write_Stream_Impl *create_asynch_write_stream (void);
-
- /// Create the correct implementation class for doing
- /// Asynch_Read_File.
- virtual ACE_Asynch_Read_File_Impl *create_asynch_read_file (void);
-
- /// Create the correct implementation class for doing
- /// Asynch_Write_File.
- virtual ACE_Asynch_Write_File_Impl *create_asynch_write_file (void);
-
- /// Create the correct implementation class for doing Asynch_Accept.
- virtual ACE_Asynch_Accept_Impl *create_asynch_accept (void);
-
- /// Create the correct implementation class for doing Asynch_Connect.
- virtual ACE_Asynch_Connect_Impl *create_asynch_connect (void);
-
- /// Create the correct implementation class for doing
- /// Asynch_Transmit_File.
- virtual ACE_Asynch_Transmit_File_Impl *create_asynch_transmit_file (void);
-
- /// Create the correct implementation class for doing
- /// Asynch_Read_Dgram.
- virtual ACE_Asynch_Read_Dgram_Impl *create_asynch_read_dgram (void);
-
- /// Create the correct implementation class for doing
- /// Asynch_Write_Dgram.
- virtual ACE_Asynch_Write_Dgram_Impl *create_asynch_write_dgram (void);
-
- // = Factory methods for the results
-
- // Note that the user does not have to use or know about these
- // methods unless they want to "fake" results.
-
- /// Create the correct implementation class for
- /// ACE_Asynch_Read_Stream::Result class.
- virtual ACE_Asynch_Read_Stream_Result_Impl *
- create_asynch_read_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- u_long bytes_to_read,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Create the correct implementation class for
- /// ACE_Asynch_Write_Stream::Result.
- virtual ACE_Asynch_Write_Stream_Result_Impl *
- create_asynch_write_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- u_long bytes_to_write,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Create the correct implementation class for
- /// ACE_Asynch_Read_File::Result.
- virtual ACE_Asynch_Read_File_Result_Impl *
- create_asynch_read_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- u_long bytes_to_read,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Create the correct implementation class for
- /// ACE_Asynch_Write_File::Result.
- virtual ACE_Asynch_Write_File_Result_Impl *
- create_asynch_write_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- u_long bytes_to_write,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Create the correct implementation class for
- /// ACE_Asynch_Read_Dgram::Result.
- virtual ACE_Asynch_Read_Dgram_Result_Impl *
- create_asynch_read_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_read,
- int flags,
- int protocol_family,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Create the correct implementation class for
- /// ACE_Asynch_Write_Dgram::Result.
- virtual ACE_Asynch_Write_Dgram_Result_Impl *
- create_asynch_write_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_write,
- int flags,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Create the correct implementation class for ACE_Asynch_Accept::Result.
- virtual ACE_Asynch_Accept_Result_Impl *
- create_asynch_accept_result (ACE_Handler &handler,
- ACE_HANDLE listen_handle,
- ACE_HANDLE accept_handle,
- ACE_Message_Block &message_block,
- u_long bytes_to_read,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Create the correct implementation class for ACE_Asynch_Connect::Result
- virtual ACE_Asynch_Connect_Result_Impl *
- create_asynch_connect_result (ACE_Handler &handler,
- ACE_HANDLE connect_handle,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Create the correct implementation class for
- /// ACE_Asynch_Transmit_File::Result.
- virtual ACE_Asynch_Transmit_File_Result_Impl *
- create_asynch_transmit_file_result (ACE_Handler &handler,
- ACE_HANDLE socket,
- ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- u_long bytes_to_write,
- u_long offset,
- u_long offset_high,
- u_long bytes_per_send,
- u_long flags,
- const void *act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /**
- * Create a timer result object which can be used with the Timer
- * mechanism of the Proactor.
- * If <signal_number> is -1, <POSIX_SIG_Proactor> will create a
- * Timer object with a meaningful signal number, choosing the
- * largest signal number from the signal mask of the Proactor.
- */
- virtual ACE_Asynch_Result_Impl *create_asynch_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &tv,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
-protected:
-
- /**
- * Post <how_many> completions to the completion port so that all
- * threads can wake up. This is used in conjunction with the
- * <run_event_loop>.
- */
- static int post_wakeup_completions (int how_many);
-
- /**
- * Post <how_many> completions to the completion port so that all
- * threads can wake up. This is used in conjunction with the
- * <proactor_run_event_loop>.
- */
- virtual int proactor_post_wakeup_completions (int how_many);
-
- /// Set the implementation class.
- virtual void implementation (ACE_Proactor_Impl *implementation);
-
- /// Delegation/implementation class that all methods will be
- /// forwarded to.
- ACE_Proactor_Impl *implementation_;
-
- /// Flag used to indicate whether we are responsible for cleaning up
- /// the implementation instance.
- int delete_implementation_;
-
- /// Pointer to a process-wide <ACE_Proactor>.
- static ACE_Proactor *proactor_;
-
- /// Must delete the <proactor_> if non-0.
- static int delete_proactor_;
-
- /// Handles timeout events.
- ACE_Proactor_Timer_Handler *timer_handler_;
-
- /// This will manage the thread in the Timer_Handler.
- ACE_Thread_Manager thr_mgr_;
-
- /// Timer Queue.
- TIMER_QUEUE *timer_queue_;
-
- /// Flag on whether to delete the timer queue.
- int delete_timer_queue_;
-
- /// Terminate the proactor event loop.
- sig_atomic_t end_event_loop_;
-
- /// Number of threads in the event loop.
- sig_atomic_t event_loop_thread_count_;
-
- /// Mutex to protect work with lists.
- ACE_SYNCH_MUTEX mutex_;
-
-
-private:
- /// Deny access since member-wise won't work...
- ACE_Proactor (const ACE_Proactor &);
- ACE_Proactor &operator= (const ACE_Proactor &);
-};
-
-# if defined (__ACE_INLINE__)
-# include "ace/Proactor.i"
-# endif /* __ACE_INLINE__ */
-
-#else /* NOT WIN32 or POSIX with AIO features. */
-
-class ACE_Time_Value;
-
-class ACE_Export ACE_Proactor
-{
-public:
- class Timer_Queue {};
- ACE_Proactor (size_t /* number_of_threads */ = 0,
- Timer_Queue * /* tq */ = 0) {}
- virtual int handle_events (void) { return -1; }
- virtual int handle_events (ACE_Time_Value &) { return -1; }
-
- /// Placeholder to enable compilation on non-Win32 platforms
- static ACE_Proactor *instance (size_t threads = 0);
-
- /// Placeholder to enable compilation on non-Win32 platforms
- static ACE_Proactor *instance (ACE_Proactor *);
-
- /// Placeholder to enable compilation on non-Win32 platforms
- static void close_singleton (void);
-
- /// Placeholder to enable compilation on non-Win32 platforms
- static int run_event_loop (void);
-
- /// Placeholder to enable compilation on non-Win32 platforms
- static int run_event_loop (ACE_Time_Value &tv);
-
- /// Placeholder to enable compilation on non-Win32 platforms
- static int end_event_loop (void);
-
- /// Placeholder to enable compilation on non-Win32 platforms
- static sig_atomic_t event_loop_done (void);
-};
-
-#endif /* ACE_WIN32 && !ACE_HAS_WINCE || ACE_HAS_AIO_CALLS*/
-
-#include "ace/post.h"
-
-#endif /* ACE_PROACTOR_H */
diff --git a/ace/Proactor.i b/ace/Proactor.i
deleted file mode 100644
index c4c29697efc..00000000000
--- a/ace/Proactor.i
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE int
-ACE_Proactor::run_event_loop (void)
-{
- ACE_TRACE ("ACE_Proactor::run_event_loop");
- ACE_Proactor *p = ACE_Proactor::instance ();
-
- if (p == 0)
- return -1;
-
- return p->proactor_run_event_loop (ACE_Proactor::check_reconfiguration);
-}
-
-ACE_INLINE int
-ACE_Proactor::run_event_loop (ACE_Time_Value &tv)
-{
- ACE_TRACE ("ACE_Proactor::run_event_loop (tv)");
- ACE_Proactor *p = ACE_Proactor::instance ();
-
- if (p == 0)
- return -1;
-
- return p->proactor_run_event_loop
- (tv, ACE_Proactor::check_reconfiguration);
-}
-
-ACE_INLINE int
-ACE_Proactor::reset_event_loop(void)
-{
- ACE_TRACE ("ACE_Proactor::reset_event_loop");
- ACE_Proactor *p = ACE_Proactor::instance ();
-
- if (p == 0)
- return -1;
-
- return p->proactor_reset_event_loop ();
-}
-
-ACE_INLINE int
-ACE_Proactor::end_event_loop (void)
-{
- ACE_TRACE ("ACE_Proactor::end_event_loop");
- ACE_Proactor *p = ACE_Proactor::instance ();
-
- if (p == 0)
- return -1;
-
- return p->proactor_end_event_loop ();
-}
-
-ACE_INLINE int
-ACE_Proactor::event_loop_done (void)
-{
- ACE_TRACE ("ACE_Proactor::event_loop_done");
- ACE_Proactor *p = ACE_Proactor::instance ();
-
- if (p == 0)
- return -1;
-
- return p->proactor_event_loop_done ();
-}
-
-ACE_INLINE int
-ACE_Proactor::post_wakeup_completions (int how_many)
-{
- ACE_TRACE ("ACE_Proactor::post_wakeup_completions");
- ACE_Proactor *p = ACE_Proactor::instance ();
-
- if (p == 0)
- return -1;
-
- return p->proactor_post_wakeup_completions (how_many);
-}
diff --git a/ace/Proactor_Impl.h b/ace/Proactor_Impl.h
deleted file mode 100644
index d623bec2571..00000000000
--- a/ace/Proactor_Impl.h
+++ /dev/null
@@ -1,251 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Proactor_Impl.h
- *
- * $Id$
- *
- * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
- * @author Alexander Libman <alibman@ihug.com.au>
- */
-//=============================================================================
-
-
-#ifndef ACE_PROACTOR_IMPL_H
-#define ACE_PROACTOR_IMPL_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS)))
-// This only works on Win32 platforms and on Unix platforms supporting
-// aio calls.
-#include "ace/OS.h"
-
-#include "ace/Asynch_IO.h"
-#include "ace/Reactor.h"
-
-/**
- * @class ACE_Proactor_Impl
- *
- * @brief A manager for asynchronous event demultiplexing. This class
- * is the base class for all the concrete implementation
- * classes.
- *
- * See the Proactor pattern description at
- * http://www.cs.wustl.edu/~schmidt/proactor.ps.gz for more
- * details.
- */
-class ACE_Export ACE_Proactor_Impl : public ACE_Event_Handler
-{
-
-public:
- /// Virtual destruction.
- virtual ~ACE_Proactor_Impl (void) {}
-
- /// Close the IO completion port.
- virtual int close (void) = 0;
-
- /// This method adds the <handle> to the I/O completion port. This
- /// function is a no-op function for Unix systems.
- virtual int register_handle (ACE_HANDLE handle,
- const void *completion_key) = 0;
-
- /**
- * Dispatch a single set of events. If <wait_time> elapses before
- * any events occur, return 0. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (ACE_Time_Value &wait_time) = 0;
-
- /**
- * Block indefinitely until at least one event is dispatched.
- * Dispatch a single set of events. If <wait_time> elapses before
- * any events occur, return 0. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (void) = 0;
-
- /// Add wakeup dispatch threads (reinit).
- virtual int wake_up_dispatch_threads (void) = 0;
-
- /// Close all dispatch threads.
- virtual int close_dispatch_threads (int wait) = 0;
-
- /// Get number of thread used as a parameter to CreatIoCompletionPort.
- virtual size_t number_of_threads (void) const = 0;
-
- /// Set number of thread used as a parameter to CreatIoCompletionPort.
- virtual void number_of_threads (size_t threads) = 0;
-
- /// Get the event handle.
- virtual ACE_HANDLE get_handle (void) const = 0;
-
- //
- // = Factory methods for the operations
- //
- // Note that the user does not have to use or know about these
- // methods.
-
- /// Create the correct implementation class for doing Asynch_Read_Stream.
- virtual ACE_Asynch_Read_Stream_Impl *create_asynch_read_stream (void) = 0;
-
- /// Create the correct implementation class for doing Asynch_Write_Stream.
- virtual ACE_Asynch_Write_Stream_Impl *create_asynch_write_stream (void) = 0;
-
- /// Create the correct implementation class for doing Asynch_Read_File.
- virtual ACE_Asynch_Read_File_Impl *create_asynch_read_file (void) = 0;
-
- /// Create the correct implementation class for doing Asynch_Write_File.
- virtual ACE_Asynch_Write_File_Impl *create_asynch_write_file (void) = 0;
-
- /// Create the correct implementation class for doing Asynch_Accept.
- virtual ACE_Asynch_Accept_Impl *create_asynch_accept (void) = 0;
-
- /// Create the correct implementation class for doing Asynch_Connect.
- virtual ACE_Asynch_Connect_Impl *create_asynch_connect (void) = 0;
-
- /// Create the correct implementation class for doing Asynch_Transmit_File.
- virtual ACE_Asynch_Transmit_File_Impl *create_asynch_transmit_file (void) = 0;
-
- /// Create the correct implementation class for doing
- /// Asynch_Read_Dgram.
- virtual ACE_Asynch_Read_Dgram_Impl *create_asynch_read_dgram (void) = 0;
-
- /// Create the correct implementation class for doing
- /// Asynch_Write_Dgram.
- virtual ACE_Asynch_Write_Dgram_Impl *create_asynch_write_dgram (void) = 0;
-
- //
- // = Factory methods for the results
- //
- // Note that the user does not have to use or know about these
- // methods unless they want to "fake" results.
-
- /// Create the correct implementation class for ACE_Asynch_Read_Stream::Result class.
- virtual ACE_Asynch_Read_Stream_Result_Impl *create_asynch_read_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN) = 0;
-
- /// Create the correct implementation class for ACE_Asynch_Write_Stream::Result.
- virtual ACE_Asynch_Write_Stream_Result_Impl *create_asynch_write_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN) = 0;
-
- /// Create the correct implementation class for ACE_Asynch_Read_File::Result.
- virtual ACE_Asynch_Read_File_Result_Impl *create_asynch_read_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN) = 0;
-
- /// Create the correct implementation class for ACE_Asynch_Write_File::Result.
- virtual ACE_Asynch_Write_File_Result_Impl *create_asynch_write_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN) = 0;
-
- /// Create the correct implementation class for ACE_Asynch_Read_Dgram::Result.
- virtual ACE_Asynch_Read_Dgram_Result_Impl *create_asynch_read_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_read,
- int flags,
- int protocol_family,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN) = 0;
-
- /// Create the correct implementation class for ACE_Asynch_Write_Dgram::Result.
- virtual ACE_Asynch_Write_Dgram_Result_Impl *create_asynch_write_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_write,
- int flags,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN) = 0;
-
- /// Create the correct implementation class for ACE_Asynch_Accept::Result.
- virtual ACE_Asynch_Accept_Result_Impl *create_asynch_accept_result (ACE_Handler &handler,
- ACE_HANDLE listen_handle,
- ACE_HANDLE accept_handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN) = 0;
-
- /// Create the correct implementation class for ACE_Asynch_Connect::Result.
- virtual ACE_Asynch_Connect_Result_Impl *create_asynch_connect_result (ACE_Handler &handler,
- ACE_HANDLE connect_handle,
- const void* act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN) = 0;
-
- /// Create the correct implementation class for ACE_Asynch_Transmit_File::Result.
- virtual ACE_Asynch_Transmit_File_Result_Impl *create_asynch_transmit_file_result (ACE_Handler &handler,
- ACE_HANDLE socket,
- ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN) = 0;
-
- /**
- * Create the correct implementation object for the Timer
- * result. POSIX_SIG_Proactor will create a Timer object with a
- * meaningful signal number, if you leave the signal number as 0.
- */
- virtual ACE_Asynch_Result_Impl *create_asynch_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &tv,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = 0) = 0;
-
- /**
- * Post <how_many> completions to the completion port so that all
- * threads can wake up. This is used in conjunction with the
- * <run_event_loop>.
- */
- virtual int post_wakeup_completions (int how_many) = 0;
-};
-
-#endif /* (ACE_WIN32 && ACE_HAS_WINCE) || ACE_HAS_AIO_CALLS */
-#include "ace/post.h"
-#endif /* ACE_PROACTOR_IMPL_H */
diff --git a/ace/Process.cpp b/ace/Process.cpp
deleted file mode 100644
index 99761069c48..00000000000
--- a/ace/Process.cpp
+++ /dev/null
@@ -1,965 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-#include "ace/Process.h"
-#include "ace/ARGV.h"
-#include "ace/Signal.h"
-#include "ace/SString.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Process.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID (ace, Process, "$Id$")
-
-
-// This function acts as a signal handler for SIGCHLD. We don't really want
-// to do anything with the signal - it's just needed to interrupt a sleep.
-// See wait() for more info.
-#if !defined (ACE_WIN32)
-static void
-sigchld_nop (int, siginfo_t *, ucontext_t *)
-{
- return;
-}
-#endif /* ACE_WIN32 */
-
-
-
-ACE_Process::ACE_Process (void)
- :
-#if !defined (ACE_WIN32)
- child_id_ (ACE_INVALID_PID),
-#endif /* !defined (ACE_WIN32) */
- exit_code_ (0)
-{
-#if defined (ACE_WIN32)
- ACE_OS::memset ((void *) &this->process_info_,
- 0,
- sizeof this->process_info_);
-#endif /* ACE_WIN32 */
-}
-
-ACE_Process::~ACE_Process (void)
-{
-#if defined (ACE_WIN32)
- // Free resources allocated in kernel.
- ACE_OS::close (this->process_info_.hThread);
- ACE_OS::close (this->process_info_.hProcess);
-#endif /* ACE_WIN32 */
- // If any handles were duplicated for the child process and
- // still not closed, get them now.
- this->close_dup_handles ();
-}
-
-int
-ACE_Process::prepare (ACE_Process_Options &)
-{
- return 0;
-}
-
-pid_t
-ACE_Process::spawn (ACE_Process_Options &options)
-{
- if (prepare (options) < 0)
- return ACE_INVALID_PID;
-
- // Stash the passed/duped handle sets away in this object for later
- // closing if needed or requested. At the same time, figure out which
- // ones to include in command line options if that's needed below.
- ACE_Handle_Set *set_p = 0;
- if (options.dup_handles (this->dup_handles_))
- set_p = &this->dup_handles_;
- else if (options.passed_handles (this->handles_passed_))
- set_p = &this->handles_passed_;
-
- // If we are going to end up running a new program (i.e. Win32, or
- // NO_EXEC option is set) then get any handles passed in the options,
- // and tack them onto the command line with +H <handle> options,
- // unless the command line runs out of space.
- // Note that we're using the knowledge that all the options, argvs, etc.
- // passed to the options are all sitting in the command_line_buf. Any
- // call to get the argv then splits them out. So, regardless of the
- // platform, tack them all onto the command line buf and take it
- // from there.
- if (set_p && !ACE_BIT_ENABLED (options.creation_flags (),
- ACE_Process_Options::NO_EXEC))
- {
- int maxlen = 0;
- ACE_TCHAR *cmd_line_buf = options.command_line_buf (&maxlen);
- size_t max_len = ACE_static_cast (size_t, maxlen);
- size_t curr_len = ACE_OS::strlen (cmd_line_buf);
- ACE_Handle_Set_Iterator h_iter (*set_p);
- // Because the length of the to-be-formatted +H option is not
- // known, and we don't have a snprintf, guess at the space
- // needed (20 chars), and use that as a limit.
- for (ACE_HANDLE h = h_iter ();
- h != ACE_INVALID_HANDLE && curr_len + 20 < max_len;
- h = h_iter ())
- {
- curr_len += ACE_OS::sprintf (&cmd_line_buf[curr_len],
- ACE_LIB_TEXT (" +H %d"),
- h);
- }
- }
-
-#if defined (ACE_HAS_WINCE)
- // Note that WinCE does not have process name included in the command line as argv[0]
- // like other OS environment. Therefore, it is user's whole responsibility to call
- // 'ACE_Process_Options::process_name(const ACE_TCHAR *name)' to set the proper
- // process name (the execution file name with path if needed).
-
- BOOL fork_result =
- ACE_TEXT_CreateProcess (options.process_name(),
- options.command_line_buf(),
- options.get_process_attributes(), // must be NULL in CE
- options.get_thread_attributes(), // must be NULL in CE
- options.handle_inheritence(), // must be false in CE
- options.creation_flags(), // must be NULL in CE
- options.env_buf(), // environment variables, must be NULL in CE
- options.working_directory(), // must be NULL in CE
- options.startup_info(), // must be NULL in CE
- &this->process_info_);
-
- if (fork_result)
- {
- parent (this->getpid ());
- return this->getpid ();
- }
- return ACE_INVALID_PID;
-
-#elif defined (ACE_WIN32)
- BOOL fork_result =
- ACE_TEXT_CreateProcess (0,
- options.command_line_buf (),
- options.get_process_attributes (),
- options.get_thread_attributes (),
- options.handle_inheritence (),
- options.creation_flags (),
- options.env_buf (), // environment variables
- options.working_directory (),
- options.startup_info (),
- &this->process_info_);
-
- if (fork_result)
- {
- parent (this->getpid ());
- return this->getpid ();
- }
- return ACE_INVALID_PID;
-
-#elif defined (CHORUS)
- // This only works if we exec. Chorus does not really support
- // forking.
- if (ACE_BIT_ENABLED (options.creation_flags (),
- ACE_Process_Options::NO_EXEC))
- ACE_NOTSUP_RETURN (ACE_INVALID_PID);
-
- // These are all currently unsupported.
- if (options.get_stdin () != ACE_INVALID_HANDLE)
- ACE_NOTSUP_RETURN (ACE_INVALID_PID);
- if (options.get_stdout () != ACE_INVALID_HANDLE)
- ACE_NOTSUP_RETURN (ACE_INVALID_PID);
- if (options.get_stderr () != ACE_INVALID_HANDLE)
- ACE_NOTSUP_RETURN (ACE_INVALID_PID);
- if (options.working_directory () != 0)
- ACE_NOTSUP_RETURN (ACE_INVALID_PID);
-
- if (options.env_argv ()[0] == 0)
- // command-line args
- this->child_id_ = ACE_OS::execvp (options.process_name (),
- options.command_line_argv ());
- else
- {
- // Add the new environment variables to the environment context
- // of the context before doing an <execvp>.
- for (char *const *user_env = options.env_argv ();
- *user_env != 0;
- user_env++)
- if (ACE_OS::putenv (*user_env) != 0)
- return ACE_INVALID_PID;
-
- // Now the forked process has both inherited variables and the
- // user's supplied variables.
- this->child_id_ = ACE_OS::execvp (options.process_name (),
- options.command_line_argv ());
- }
-
- return this->child_id_;
-#else /* ACE_WIN32 */
- // Fork the new process.
- this->child_id_ = ACE::fork (options.process_name (),
- options.avoid_zombies ());
-
- if (this->child_id_ == 0)
- {
-# if !defined (ACE_LACKS_SETPGID)
- // If we're the child and the options specified a non-default
- // process group, try to set our pgid to it. This allows the
- // <ACE_Process_Manager> to wait for processes by their
- // process-group.
- if (options.getgroup () != ACE_INVALID_PID
- && ACE_OS::setpgid (0,
- options.getgroup ()) < 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p.\n"),
- ACE_LIB_TEXT ("ACE_Process::spawn: setpgid failed.")));
-# endif /* ACE_LACKS_SETPGID */
-
-# if !defined (ACE_LACKS_SETREGID)
- if (options.getrgid () != (uid_t) -1
- || options.getegid () != (uid_t) -1)
- if (ACE_OS::setregid (options.getrgid (),
- options.getegid ()) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p.\n"),
- ACE_LIB_TEXT ("ACE_Process::spawn: setregid failed.")));
-# endif /* ACE_LACKS_SETREGID */
-
-# if !defined (ACE_LACKS_SETREUID)
- // Set user and group id's.
- if (options.getruid () != (uid_t) -1
- || options.geteuid () != (uid_t) -1)
- if (ACE_OS::setreuid (options.getruid (),
- options.geteuid ()) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p.\n"),
- ACE_LIB_TEXT ("ACE_Process::spawn: setreuid failed.")));
-# endif /* ACE_LACKS_SETREUID */
-
- this->child (ACE_OS::getppid ());
- }
- else if (this->child_id_ != -1)
- this->parent (this->child_id_);
-
- // If we're not supposed to exec, return the process id.
- if (ACE_BIT_ENABLED (options.creation_flags (),
- ACE_Process_Options::NO_EXEC))
- return this->child_id_;
-
- switch (this->child_id_)
- {
- case -1:
- // Error.
- return ACE_INVALID_PID;
- case 0:
- // Child process...exec the
- {
- if (options.get_stdin () != ACE_INVALID_HANDLE
- && ACE_OS::dup2 (options.get_stdin (),
- ACE_STDIN) == -1)
- ACE_OS::exit (errno);
- else if (options.get_stdout () != ACE_INVALID_HANDLE
- && ACE_OS::dup2 (options.get_stdout (),
- ACE_STDOUT) == -1)
- ACE_OS::exit (errno);
- else if (options.get_stderr () != ACE_INVALID_HANDLE
- && ACE_OS::dup2 (options.get_stderr (),
- ACE_STDERR) == -1)
- ACE_OS::exit (errno);
-
- // close down unneeded descriptors
- ACE_OS::close (options.get_stdin ());
- ACE_OS::close (options.get_stdout ());
- ACE_OS::close (options.get_stderr ());
-
- // If we must, set the working directory for the child
- // process.
- if (options.working_directory () != 0)
- ACE_OS::chdir (options.working_directory ());
- // Should check for error here!
-
- // Child process executes the command.
- int result = 0;
-
- if (options.inherit_environment ())
- {
- // Add the new environment variables to the environment
- // context of the context before doing an <execvp>.
- for (char *const *user_env = options.env_argv ();
- *user_env != 0;
- user_env++)
- if (ACE_OS::putenv (*user_env) != 0)
- return ACE_INVALID_PID;
-
- // Now the forked process has both inherited variables and
- // the user's supplied variables.
- result = ACE_OS::execvp (options.process_name (),
- options.command_line_argv ());
- }
- else
- {
-#if defined (ghs)
- // GreenHills 1.8.8 (for VxWorks 5.3.x) can't compile this
- // code. Processes aren't supported on VxWorks anyways.
- ACE_NOTSUP_RETURN (ACE_INVALID_PID);
-#else
- result = ACE_OS::execve (options.process_name (),
- options.command_line_argv (),
- options.env_argv ());
-# endif /* ghs */
- }
- if (result == -1)
- {
- // If the execv fails, this child needs to exit.
-
- // Exit with the errno so that the calling process can
- // catch this and figure out what went wrong.
- ACE_OS::_exit (errno);
- }
- // ... otherwise, this is never reached.
- return 0;
- }
- default:
- // Server process. The fork succeeded.
- return this->child_id_;
- }
-#endif /* ACE_WIN32 */
-}
-
-void
-ACE_Process::parent (pid_t)
-{
- // nothing to do
-}
-
-void
-ACE_Process::child (pid_t)
-{
- // nothing to do
-}
-
-void
-ACE_Process::unmanage (void)
-{
- // nothing to do
-}
-
-int
-ACE_Process::running (void) const
-{
-#if defined (ACE_WIN32)
- DWORD code;
-
- BOOL result = ::GetExitCodeProcess (this->gethandle (),
- &code);
- return result && code == STILL_ACTIVE;
-#else
- return ACE_OS::kill (this->getpid (),
- 0) == 0
- || errno != ESRCH;
-#endif /* ACE_WIN32 */
-}
-
-pid_t
-ACE_Process::wait (const ACE_Time_Value &tv,
- ACE_exitcode *status)
-{
-#if defined (ACE_WIN32)
- // Don't try to get the process exit status if wait failed so we can
- // keep the original error code intact.
- switch (::WaitForSingleObject (process_info_.hProcess,
- tv.msec ()))
- {
- case WAIT_OBJECT_0:
- // The error status of <GetExitCodeProcess> is nonetheless not
- // tested because we don't know how to return the value.
- ::GetExitCodeProcess (process_info_.hProcess,
- &this->exit_code_);
- if (status != 0)
- *status = this->exit_code_;
- return this->getpid ();
- case WAIT_TIMEOUT:
- errno = ETIME;
- return 0;
- default:
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
-#else /* ACE_WIN32 */
- if (tv == ACE_Time_Value::zero)
- {
- pid_t retv =
- ACE_OS::waitpid (this->child_id_,
- &this->exit_code_,
- WNOHANG);
- if (status != 0)
- *status = this->exit_code_;
-
- return retv;
- }
-
- if (tv == ACE_Time_Value::max_time)
- return this->wait (status);
-
- // Need to wait but limited to specified time.
- // Force generation of SIGCHLD, even though we don't want to
- // catch it - just need it to interrupt the sleep below.
- // If this object has a reactor set, assume it was given at
- // open(), and there's already a SIGCHLD action set, so no
- // action is needed here.
- ACE_Sig_Action old_action;
- ACE_Sig_Action do_sigchld ((ACE_SignalHandler)sigchld_nop);
- do_sigchld.register_action (SIGCHLD, &old_action);
-
- pid_t pid;
- ACE_Time_Value tmo (tv); // Need one we can change
- for (ACE_Countdown_Time time_left (&tmo); ; time_left.update ())
- {
- pid = ACE_OS::waitpid (this->getpid (),
- &this->exit_code_,
- WNOHANG);
- if (status != 0)
- *status = this->exit_code_;
-
- if (pid > 0 || pid == ACE_INVALID_PID)
- break; // Got a child or an error - all done
-
- // pid 0, nothing is ready yet, so wait.
- // Do a sleep (only this thread sleeps) til something
- // happens. This relies on SIGCHLD interrupting the sleep.
- // If SIGCHLD isn't delivered, we'll need to do something
- // with sigaction to force it.
- if (-1 == ACE_OS::sleep (tmo) && errno == EINTR)
- continue;
- // Timed out
- pid = 0;
- break;
- }
-
- // Restore the previous SIGCHLD action if it was changed.
- old_action.register_action (SIGCHLD);
-
- return pid;
-#endif /* ACE_WIN32 */
-}
-
-void
-ACE_Process::close_dup_handles (void)
-{
- if (this->dup_handles_.num_set () > 0)
- {
- ACE_Handle_Set_Iterator h_iter (this->dup_handles_);
- for (ACE_HANDLE h = h_iter ();
- h != ACE_INVALID_HANDLE;
- h = h_iter ())
- ACE_OS::closesocket (h);
- this->dup_handles_.reset ();
- }
- return;
-}
-
-void
-ACE_Process::close_passed_handles (void)
-{
- if (this->handles_passed_.num_set () > 0)
- {
- ACE_Handle_Set_Iterator h_iter (this->handles_passed_);
- for (ACE_HANDLE h = h_iter ();
- h != ACE_INVALID_HANDLE;
- h = h_iter ())
- ACE_OS::closesocket (h);
- this->handles_passed_.reset ();
- }
- return;
-}
-
-
-ACE_Process_Options::ACE_Process_Options (int ie,
- int cobl,
- int ebl,
- int mea)
- :
-#if !defined (ACE_HAS_WINCE)
- inherit_environment_ (ie),
-#endif /* ACE_HAS_WINCE */
- creation_flags_ (0),
- avoid_zombies_ (0),
-#if !defined (ACE_HAS_WINCE)
-#if defined (ACE_WIN32)
- environment_inherited_ (0),
- handle_inheritence_ (TRUE),
- process_attributes_ (0),
- thread_attributes_ (0),
-#else /* ACE_WIN32 */
- stdin_ (ACE_INVALID_HANDLE),
- stdout_ (ACE_INVALID_HANDLE),
- stderr_ (ACE_INVALID_HANDLE),
- ruid_ ((uid_t) -1),
- euid_ ((uid_t) -1),
- rgid_ ((uid_t) -1),
- egid_ ((uid_t) -1),
-#endif /* ACE_WIN32 */
- set_handles_called_ (0),
- environment_buf_index_ (0),
- environment_argv_index_ (0),
- environment_buf_ (0),
- environment_buf_len_ (ebl),
- max_environment_args_ (mea),
- max_environ_argv_index_ (mea - 1),
-#endif /* !ACE_HAS_WINCE */
- command_line_argv_calculated_ (0),
- command_line_buf_ (0),
- command_line_buf_len_ (cobl),
- process_group_ (ACE_INVALID_PID)
-{
- ACE_NEW (command_line_buf_,
- ACE_TCHAR[cobl]);
- command_line_buf_[0] = '\0';
-
-#if !defined (ACE_HAS_WINCE)
- working_directory_[0] = '\0';
- ACE_NEW (environment_buf_,
- ACE_TCHAR[ebl]);
- ACE_NEW (environment_argv_,
- ACE_TCHAR *[mea]);
- environment_buf_[0] = '\0';
- environment_argv_[0] = 0;
- process_name_[0] = '\0';
-#if defined (ACE_WIN32)
- ACE_OS::memset ((void *) &this->startup_info_,
- 0,
- sizeof this->startup_info_);
- this->startup_info_.cb = sizeof this->startup_info_;
-#endif /* ACE_WIN32 */
-#endif /* !ACE_HAS_WINCE */
-}
-
-#if !defined (ACE_HAS_WINCE)
-#if defined (ACE_WIN32)
-void
-ACE_Process_Options::inherit_environment (void)
-{
- // Ensure only once execution.
- if (environment_inherited_)
- return;
- environment_inherited_ = 1;
-
- // Get the existing environment.
- ACE_TCHAR *existing_environment = ACE_OS::getenvstrings ();
-
- size_t slot = 0;
-
- while (existing_environment[slot] != '\0')
- {
- size_t len = ACE_OS::strlen (existing_environment + slot);
-
- // Add the string to our env buffer.
- if (this->setenv_i (existing_environment + slot, len) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p.\n"),
- ACE_LIB_TEXT ("ACE_Process_Options::ACE_Process_Options")));
- break;
- }
-
- // Skip to the next word.
- slot += len + 1;
- }
-
- ACE_TEXT_FreeEnvironmentStrings (existing_environment);
-}
-
-#else /* defined ACE_WIN32 */
-
-ACE_TCHAR * const *
-ACE_Process_Options::env_argv (void)
-{
- return environment_argv_;
-}
-
-#endif /* ACE_WIN32 */
-
-int
-ACE_Process_Options::setenv (ACE_TCHAR *envp[])
-{
- int i = 0;
- while (envp[i])
- {
- if (this->setenv_i (envp[i],
- ACE_OS_String::strlen (envp[i])) == -1)
- return -1;
- i++;
- }
-
-#if defined (ACE_WIN32)
- if (inherit_environment_)
- this->inherit_environment ();
-#endif /* ACE_WIN32 */
-
- return 0;
-}
-
-int
-ACE_Process_Options::setenv (const ACE_TCHAR *format, ...)
-{
- ACE_TCHAR stack_buf[DEFAULT_COMMAND_LINE_BUF_LEN];
-
- // Start varargs.
- va_list argp;
- va_start (argp, format);
-
- // Add the rest of the varargs.
- ACE_OS::vsprintf (stack_buf,
- format,
- argp);
- // End varargs.
- va_end (argp);
-
- // Append the string to are environment buffer.
- if (this->setenv_i (stack_buf,
- ACE_OS_String::strlen (stack_buf)) == -1)
- return -1;
-
-#if defined (ACE_WIN32)
- if (inherit_environment_)
- this->inherit_environment ();
-#endif /* ACE_WIN32 */
-
- return 0;
-}
-
-int
-ACE_Process_Options::setenv (const ACE_TCHAR *variable_name,
- const ACE_TCHAR *format, ...)
-{
- ACE_TCHAR newformat[DEFAULT_COMMAND_LINE_BUF_LEN];
-
- // Add in the variable name.
- ACE_OS::sprintf (newformat,
- ACE_LIB_TEXT ("%s=%s"),
- variable_name,
- format);
-
- ACE_TCHAR stack_buf[DEFAULT_COMMAND_LINE_BUF_LEN];
-
- // Start varargs.
- va_list argp;
- va_start (argp, format);
-
- // Add the rest of the varargs.
- ACE_OS::vsprintf (stack_buf, newformat, argp);
-
- // End varargs.
- va_end (argp);
-
- // Append the string to our environment buffer.
- if (this->setenv_i (stack_buf,
- ACE_OS_String::strlen (stack_buf)) == -1)
- return -1;
-
-#if defined (ACE_WIN32)
- if (inherit_environment_)
- this->inherit_environment ();
-#endif /* ACE_WIN32 */
-
- return 0;
-}
-
-int
-ACE_Process_Options::setenv_i (ACE_TCHAR *assignment,
- size_t len)
-{
- // Add one for the null char.
- len++;
-
- // If environment larger than allocated buffer return. Also check to
- // make sure we have enough room.
- if (environment_argv_index_ == max_environ_argv_index_
- || (len + environment_buf_index_) >= environment_buf_len_)
- return -1;
-
- // Copy the new environment string.
- ACE_OS::memcpy (environment_buf_ + environment_buf_index_,
- assignment,
- len * sizeof (ACE_TCHAR));
-
- // Update the argv array.
- environment_argv_[environment_argv_index_++] =
- environment_buf_ + environment_buf_index_;
- environment_argv_[environment_argv_index_] = 0;
-
- // Update our index.
- environment_buf_index_ += len;
-
- // Make sure the buffer is null-terminated.
- environment_buf_[environment_buf_index_] = '\0';
- return 0;
-}
-
-int
-ACE_Process_Options::set_handles (ACE_HANDLE std_in,
- ACE_HANDLE std_out,
- ACE_HANDLE std_err)
-{
- this->set_handles_called_ = 1;
-#if defined (ACE_WIN32)
-
- // Tell the new process to use our std handles.
- this->startup_info_.dwFlags = STARTF_USESTDHANDLES;
-
- if (std_in == ACE_INVALID_HANDLE)
- std_in = ACE_STDIN;
- if (std_out == ACE_INVALID_HANDLE)
- std_out = ACE_STDOUT;
- if (std_err == ACE_INVALID_HANDLE)
- std_err = ACE_STDERR;
-
- if (!::DuplicateHandle (::GetCurrentProcess (),
- std_in,
- ::GetCurrentProcess (),
- &this->startup_info_.hStdInput,
- 0,
- TRUE,
- DUPLICATE_SAME_ACCESS))
- return -1;
-
- if (!::DuplicateHandle (::GetCurrentProcess (),
- std_out,
- ::GetCurrentProcess (),
- &this->startup_info_.hStdOutput,
- 0,
- TRUE,
- DUPLICATE_SAME_ACCESS))
- return -1;
-
- if (!::DuplicateHandle (::GetCurrentProcess (),
- std_err,
- ::GetCurrentProcess (),
- &this->startup_info_.hStdError,
- 0,
- TRUE,
- DUPLICATE_SAME_ACCESS))
- return -1;
-#else /* ACE_WIN32 */
- this->stdin_ = ACE_OS::dup (std_in);
- this->stdout_ = ACE_OS::dup (std_out);
- this->stderr_ = ACE_OS::dup (std_err);
-#endif /* ACE_WIN32 */
-
- return 0; // Success.
-}
-
-
-void
-ACE_Process_Options::release_handles ()
-{
- if (set_handles_called_)
- {
-#if defined (ACE_WIN32)
- ACE_OS::close (startup_info_.hStdInput);
- ACE_OS::close (startup_info_.hStdOutput);
- ACE_OS::close (startup_info_.hStdError);
-#else /* ACE_WIN32 */
- ACE_OS::close (stdin_);
- ACE_OS::close (stdout_);
- ACE_OS::close (stderr_);
-#endif /* ACE_WIN32 */
- set_handles_called_ = 0;
- }
-}
-#endif /* !ACE_HAS_WINCE */
-
-
-ACE_Process_Options::~ACE_Process_Options (void)
-{
-#if !defined (ACE_HAS_WINCE)
- release_handles();
- delete [] environment_buf_;
- delete [] environment_argv_;
-#endif /* !ACE_HAS_WINCE */
- delete [] command_line_buf_;
-}
-
-int
-ACE_Process_Options::command_line (const ACE_TCHAR *const argv[])
-{
- // @@ Factor out the code between this
- int i = 0;
-
- if (argv[i])
- {
- ACE_OS::strcat (command_line_buf_, argv[i]);
- while (argv[++i])
- {
- ACE_OS::strcat (command_line_buf_,
- ACE_LIB_TEXT (" "));
- ACE_OS::strcat (command_line_buf_,
- argv[i]);
- }
- }
-
- command_line_argv_calculated_ = 0;
- return 0; // Success.
-}
-
-int
-ACE_Process_Options::command_line (const ACE_TCHAR *format, ...)
-{
- // Store all ... args in argp.
- va_list argp;
- va_start (argp, format);
-
- // sprintf the format and args into command_line_buf__.
- ACE_OS::vsprintf (command_line_buf_,
- format,
- argp);
-
- // Useless macro.
- va_end (argp);
-
- command_line_argv_calculated_ = 0;
- return 0;
-}
-
-#if defined (ACE_HAS_WCHAR) && !defined (ACE_HAS_WINCE)
-/**
- * @note Not available on Windows CE because it doesn't have a char version of
- * vsprintf.
- */
-int
-ACE_Process_Options::command_line (const ACE_ANTI_TCHAR *format, ...)
-{
- ACE_ANTI_TCHAR *anti_clb;
- ACE_NEW_RETURN (anti_clb,
- ACE_ANTI_TCHAR[this->command_line_buf_len_],
- -1);
-
- // Store all ... args in argp.
- va_list argp;
- va_start (argp, format);
-
- // sprintf the format and args into command_line_buf_.
- ACE_OS::vsprintf (anti_clb,
- format,
- argp);
-
- // Useless macro.
- va_end (argp);
-
- ACE_OS::strcpy (this->command_line_buf_,
- ACE_TEXT_ANTI_TO_TCHAR (anti_clb));
-
- delete [] anti_clb;
-
- command_line_argv_calculated_ = 0;
- return 0;
-}
-#endif /* ACE_HAS_WCHAR && !ACE_HAS_WINCE */
-
-ACE_TCHAR *
-ACE_Process_Options::env_buf (void)
-{
-#if !defined (ACE_HAS_WINCE)
- if (environment_buf_[0] == '\0')
- return 0;
- else
- return environment_buf_;
-#else
- return 0;
-#endif /* !ACE_HAS_WINCE */
-}
-
-ACE_TCHAR * const *
-ACE_Process_Options::command_line_argv (void)
-{
- if (command_line_argv_calculated_ == 0)
- {
- command_line_argv_calculated_ = 1;
-
- // This tokenizer will replace all spaces with end-of-string
- // characters and will preserve text between "" and '' pairs.
- ACE_Tokenizer parser (command_line_buf_);
- parser.delimiter_replace (' ', '\0');
- parser.preserve_designators ('\"', '\"'); // "
- parser.preserve_designators ('\'', '\'');
-
- int x = 0;
- do
- command_line_argv_[x] = parser.next ();
- while (command_line_argv_[x] != 0
- // substract one for the ending zero.
- && ++x < MAX_COMMAND_LINE_OPTIONS - 1);
-
- command_line_argv_[x] = 0;
- }
-
- return command_line_argv_;
-}
-
-
-// Cause the specified handle to be passed to a child process
-// when it's spawned.
-int
-ACE_Process_Options::pass_handle (ACE_HANDLE h)
-{
-# if defined (ACE_WIN32)
-# if defined (ACE_HAS_WINCE)
- ACE_NOTSUP_RETURN (-1);
-# else
-
- // This is oriented towards socket handles... may need some adjustment
- // for non-sockets.
- // This is all based on an MSDN article:
- // http://support.microsoft.com/support/kb/articles/Q150/5/23.asp
- // If on Win95/98, the handle needs to be duplicated for the to-be-spawned
- // process. On WinNT, they get inherited by the child process automatically.
- // If the handle is duplicated, remember the duplicate so it can be
- // closed later. Can't be closed now, or the child won't get it.
- OSVERSIONINFO osvi;
- ZeroMemory (&osvi, sizeof (osvi));
- osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
- // If this is Win95/98 or we can't tell, duplicate the handle.
- if (!GetVersionEx (&osvi) || osvi.dwPlatformId != VER_PLATFORM_WIN32_NT)
- {
- HANDLE dup_handle;
- if (!DuplicateHandle (GetCurrentProcess (),
- ACE_static_cast (HANDLE, h),
- GetCurrentProcess (),
- &dup_handle,
- 0,
- TRUE, // Inheritable
- DUPLICATE_SAME_ACCESS))
- return -1;
- dup_handles_.set_bit (ACE_static_cast (ACE_HANDLE, dup_handle));
- }
-# endif /* ACE_HAS_WINCE */
-#endif /* ACE_WIN32 */
-
- this->handles_passed_.set_bit (h);
-
- return 0;
-}
-
-// Get a copy of the handles the ACE_Process_Options duplicated
-// for the spawned process.
-int
-ACE_Process_Options::dup_handles (ACE_Handle_Set &set) const
-{
- if (this->dup_handles_.num_set () == 0)
- return 0;
- set.reset ();
- set = this->dup_handles_;
- return 1;
-}
-
-// Get a copy of the handles passed to the spawned process. This
-// will be the set of handles previously passed to @arg pass_handle().
-int
-ACE_Process_Options::passed_handles (ACE_Handle_Set &set) const
-{
- if (this->handles_passed_.num_set () == 0)
- return 0;
- set.reset ();
- set = this->handles_passed_;
- return 1;
-}
-
-ACE_Managed_Process::ACE_Managed_Process (void)
-{
-}
-
-ACE_Managed_Process::~ACE_Managed_Process (void)
-{
-}
diff --git a/ace/Process.h b/ace/Process.h
deleted file mode 100644
index 54960e9e641..00000000000
--- a/ace/Process.h
+++ /dev/null
@@ -1,593 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Process.h
- *
- * $Id$
- *
- * @author Tim Harrison <harrison@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_PROCESS_H
-#define ACE_PROCESS_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-#include "ace/Handle_Set.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Process_Options
- *
- * @brief Process Options
- *
- * This class controls the options passed to <CreateProcess> (or <fork>
- * and <exec>).
- * Notice that on Windows CE, creating a process merely means
- * instantiating a new process. You can't set the handles (since
- * there's no stdin, stdout and stderr,) specify process/thread
- * options, set environment,... So, basically, this class only
- * set the command line and nothing else.
- * Notice that on UNIX platforms, if the <setenv> is used, the
- * <spawn> is using the <execve> system call. It means that the
- * <command_line> should include a full path to the program file
- * (<execve> does not search the PATH). If <setenv> is not used
- * then, the <spawn> is using the <execvp> which searches for the
- * program file in the PATH variable.
- */
-class ACE_Export ACE_Process_Options
-{
-public:
- enum
- {
- DEFAULT_COMMAND_LINE_BUF_LEN = 1024,
- // UNIX process creation flags.
-#if defined (ACE_WIN32)
- NO_EXEC = 0
-#else
- NO_EXEC = 1
-#endif /* ACE_WIN32 */
- };
-
-protected:
- // = Default settings not part of public Interface.
- //
- // @@todo These sizes should be taken from the appropriate
- // POSIX/system header files and/or defined dynamically.
- enum
- {
- MAX_COMMAND_LINE_OPTIONS = 128,
- ENVIRONMENT_BUFFER = 16 * 1024, // 16K
- MAX_ENVIRONMENT_ARGS = 512 //
- };
-
-public:
- /**
- * If <inherit_environment> == 1, the new process will inherit the
- * environment of the current process. <command_line_buf_len> is the
- * max strlen for command-line arguments.
- */
- ACE_Process_Options (int inherit_environment = 1,
- int command_line_buf_len = DEFAULT_COMMAND_LINE_BUF_LEN,
- int env_buf_len = ENVIRONMENT_BUFFER,
- int max_env_args = MAX_ENVIRONMENT_ARGS);
-
- /// Destructor.
- ~ACE_Process_Options (void);
-
- // = Methods to set process creation options portably.
-
- /**
- * Set the standard handles of the new process to the respective
- * handles. If you want to affect a subset of the handles, make
- * sure to set the others to ACE_INVALID_HANDLE. Returns 0 on
- * success, -1 on failure.
- */
- int set_handles (ACE_HANDLE std_in,
- ACE_HANDLE std_out = ACE_INVALID_HANDLE,
- ACE_HANDLE std_err = ACE_INVALID_HANDLE);
-
- /// Release the standard handles previously set with set_handles;
- void release_handles (void);
-
- /// @param format must be of the form "VARIABLE=VALUE". There can not be
- /// any spaces between VARIABLE and the equal sign.
- int setenv (const ACE_TCHAR *format,
- ...);
-
- /**
- * Set a single environment variable, <variable_name>. Since
- * different platforms separate each environment variable
- * differently, you must call this method once for each variable.
- * <format> can be any printf format string. So options->setenv
- * ("FOO","one + two = %s", "three") will result in "FOO=one + two =
- * three".
- */
- int setenv (const ACE_TCHAR *variable_name,
- const ACE_TCHAR *format,
- ...);
-
- /// Same as above with argv format. <envp> must be null terminated.
- int setenv (ACE_TCHAR *envp[]);
-
- /// Set the working directory for the process. strlen of <wd> must
- /// be <= MAXPATHLEN.
- void working_directory (const char *wd);
-
-#if defined (ACE_HAS_WCHAR)
- /// wchar_t version of working_directory
- void working_directory (const wchar_t *wd);
-#endif /* ACE_HAS_WCHAR */
-
- /**
- * Set the command-line arguments. <format> can use any printf
- * formats. The first token in <format> should be the path to the
- * application. This can either be a full path, relative path, or
- * just an executable name. If an executable name is used, we rely
- * on the platform's support for searching paths. Since we need a
- * path to run a process, this method *must* be called! Returns 0
- * on success, -1 on failure.
- */
- int command_line (const ACE_TCHAR *format, ...);
-
-#if defined (ACE_HAS_WCHAR) && !defined (ACE_HAS_WINCE)
- /// Anti-TChar version of command_line ()
- int command_line (const ACE_ANTI_TCHAR *format, ...);
-#endif /* ACE_HAS_WCHAR && !ACE_HAS_WINCE */
-
- /// Same as above in argv format. <argv> must be null terminated.
- int command_line (const ACE_TCHAR * const argv[]);
-
- // = Set/get the pathname used to name the process.
- /**
- * Specify the full path or relative path, or just the executable
- * name for the process. If this is set, then <name> will be used to
- * create the process instead of argv[0] set in the command
- * line. This is here so that you can supply something other than
- * executable name as argv[0].
- */
- void process_name (const ACE_TCHAR *name);
-
- /// Return the process_name. If the <process_name(name)> set
- /// method is not called, this method will return argv[0].
- const ACE_TCHAR *process_name (void);
-
- // = Set/get creation flags.
- /// Get the creation flags.
- u_long creation_flags (void) const;
-
- /// Set the creation flags.
- void creation_flags (u_long);
-
- // = <ACE_Process> uses these operations to retrieve option values.
-
- /// Current working directory. Returns "" if nothing has been set.
- ACE_TCHAR *working_directory (void);
-
- /// Buffer of command-line options. Returns a pointer to a buffer that
- /// contains the list of command line options. Prior to a call to
- /// command_line_argv(), this is a single string of space separated
- /// arguments independent of which form of command_line() was used to
- /// create it. After a call to command_line_argv(), this is a list of
- /// strings each terminated by '\0'. [Note: spawn() will call
- /// command_line_argv().] The total length of all these strings is the
- /// same as the single string in the prior case and can be obtained by
- /// providing max_len. @arg max_len, if non-zero, provides a location
- /// into which the total length of the command line buffer is returned.
- ACE_TCHAR *command_line_buf (int *max_len = 0);
-
- /**
- * argv-style command-line options. Parses and modifies the string
- * created from <command_line_>. All spaces not in quotes ("" or
- * '') are replaced with null (\0) bytes. An argv array is built
- * and returned with each entry pointing to the start of
- * null-terminated string. Returns { 0 } if nothing has been set.
- */
- ACE_TCHAR * const *command_line_argv (void);
-
- /**
- * Null-terminated buffer of null terminated strings. Each string
- * is an environment assignment "VARIABLE=value". This buffer
- * should end with two null characters.
- */
- ACE_TCHAR *env_buf (void);
-
- // = Get/set process group.
- /// Get the process group. On UNIX, these methods are used by the
- /// <ACE_Process_Manager> to manage groups of processes.
- pid_t getgroup (void) const;
-
- /// Set the process group. On UNIX, these methods are used by the
- /// <ACE_Process_Manager> to manage groups of processes.
- pid_t setgroup (pid_t pgrp);
-
- /// Default is TRUE.
- /// Allows disabling of handle inheritence.
- int handle_inheritence (void);
- void handle_inheritence (int);
-
- /// Cause the specified handle to be passed to a child process
- /// when it runs a new program image.
- /**
- * The specified handle value will be included in the spawned
- * process's command line as @arg +H @arg handle, if a new
- * program is spawned (always on Win32; else if NO_EXEC is not
- * set in creation flags). The passed handle value will be
- * duplicated if on Win32 less capable than NT.
- * @return 0 if success, -1 if failure.
- */
- int pass_handle (ACE_HANDLE);
-
- /// Get a copy of the handles the ACE_Process_Options duplicated
- /// for the spawned process.
- /**
- * Any handles created through duplication of those passed into
- * @arg pass_handle are returned in @arg set.
- * @return 0 if there were no handles to return; 1 if there were.
- */
- int dup_handles (ACE_Handle_Set &set) const;
-
- /// Get a copy of the handles passed to the spawned process. This
- /// will be the set of handles previously passed to @arg pass_handle().
- /**
- * Any handles previously passed to @arg pass_handle are returned
- * in @arg set.
- * @return 0 if there were no handles to return; 1 if there were.
- */
- int passed_handles (ACE_Handle_Set &set) const;
-
- /// Set value for avoid_zombies (has no real effect except on *nix).
- void avoid_zombies (int);
-
- /// Get current value for avoid_zombies.
- int avoid_zombies (void);
-
-#if defined (ACE_WIN32)
- // = Non-portable accessors for when you "just have to use them."
-
- /// Used for setting and getting.
- ACE_TEXT_STARTUPINFO *startup_info (void);
-
- /// Get the process_attributes. Returns NULL if
- /// set_process_attributes has not been set.
- LPSECURITY_ATTRIBUTES get_process_attributes (void) const;
-
- /// If this is called, a non-null process attributes is sent to
- /// CreateProcess.
- LPSECURITY_ATTRIBUTES set_process_attributes (void);
-
- /// Get the thread_attributes. Returns NULL if set_thread_attributes
- /// has not been set.
- LPSECURITY_ATTRIBUTES get_thread_attributes (void) const;
-
- /// If this is called, a non-null thread attributes is sent to
- /// CreateProcess.
- LPSECURITY_ATTRIBUTES set_thread_attributes (void);
-
-#else /* All things not WIN32 */
-
- /// argv-style array of environment settings.
- ACE_TCHAR *const *env_argv (void);
-
- // = Accessors for the standard handles.
- ACE_HANDLE get_stdin (void) const;
- ACE_HANDLE get_stdout (void) const;
- ACE_HANDLE get_stderr (void) const;
-
- // = Set/get real & effective user & group id associated with user.
- int setreugid (const ACE_TCHAR* user);
- void setruid (uid_t id);
- void seteuid (uid_t id);
- void setrgid (uid_t id);
- void setegid (uid_t id);
- uid_t getruid (void) const;
- uid_t geteuid (void) const;
- uid_t getrgid (void) const;
- uid_t getegid (void) const;
-
- /**
- * Get the inherit_environment flag.
- */
- int inherit_environment (void) const;
-
- /**
- * Set the inherit_environment flag.
- */
- void inherit_environment (int nv);
-#endif /* ACE_WIN32 */
-protected:
-
-#if !defined (ACE_HAS_WINCE)
- /// Add <assignment> to environment_buf_ and adjust
- /// environment_argv_. <len> is the strlen of <assignment>.
- int setenv_i (ACE_TCHAR *assignment, size_t len);
-
- /// Whether the child process inherits the current process
- /// environment.
- int inherit_environment_;
-#endif /* !ACE_HAS_WINCE */
-
- /// Default 0.
- u_long creation_flags_;
-
- /// Avoid zombies for spawned processes.
- int avoid_zombies_;
-
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
- /// Helper function to grab win32 environment and stick it in
- /// environment_buf_ using this->setenv_i.
- void inherit_environment (void);
-
- /// Ensures once only call to inherit environment.
- int environment_inherited_;
-
- ACE_TEXT_STARTUPINFO startup_info_;
-
- /// Default TRUE.
- BOOL handle_inheritence_;
-
- /// Pointer to security_buf1_.
- LPSECURITY_ATTRIBUTES process_attributes_;
-
- /// Pointer to security_buf2_.
- LPSECURITY_ATTRIBUTES thread_attributes_;
-
- /// Data for process_attributes_.
- SECURITY_ATTRIBUTES security_buf1_;
-
- /// Data for thread_attributes_.
- SECURITY_ATTRIBUTES security_buf2_;
-
-#else /* !ACE_WIN32 */
- ACE_HANDLE stdin_;
- ACE_HANDLE stdout_;
- ACE_HANDLE stderr_;
-
- // = Real & effective user & group id's.
- // These should be set to -1 to leave unchanged (default).
- uid_t ruid_;
- uid_t euid_;
- uid_t rgid_;
- uid_t egid_;
-#endif /* ACE_WIN32 */
-
-#if !defined (ACE_HAS_WINCE)
- /// Is 1 if stdhandles was called.
- int set_handles_called_;
-
- /// Pointer into environment_buf_. This should point to the next
- /// free spot.
- size_t environment_buf_index_;
-
- /// Pointer to environment_argv_.
- int environment_argv_index_;
-
- /// Pointer to buffer of the environment settings.
- ACE_TCHAR *environment_buf_;
-
- /// Size of the environment buffer. Configurable
- size_t environment_buf_len_;
-
- /// Pointers into environment_buf_.
- ACE_TCHAR **environment_argv_;
-
- /// Maximum number of environment variables. Configurable
- int max_environment_args_;
-
- /// Maximum index of environment_argv_ buffer
- int max_environ_argv_index_;
-
- /// The current working directory.
- ACE_TCHAR working_directory_[MAXPATHLEN + 1];
-#endif /* !ACE_HAS_WINCE */
-
- /// Ensures command_line_argv is only calculated once.
- int command_line_argv_calculated_;
-
- /// Pointer to buffer of command-line arguments. E.g., "-f foo -b bar".
- ACE_TCHAR *command_line_buf_;
-
- /// Max length of command_line_buf_
- int command_line_buf_len_;
-
- /// Argv-style command-line arguments.
- ACE_TCHAR *command_line_argv_[MAX_COMMAND_LINE_OPTIONS];
-
- /// Process-group on Unix; unused on Win32.
- pid_t process_group_;
-
- /// Set of handles that were passed in pass_handle ().
- ACE_Handle_Set handles_passed_;
-
- /// Results of duplicating handles passed in pass_handle ().
- ACE_Handle_Set dup_handles_;
-
- /// Pathname for the process. Relative path or absolute path or just
- /// the program name.
- ACE_TCHAR process_name_[MAXPATHLEN + 1];
-};
-
-//class ACE_Process_Manager;
-
-/**
- * @class ACE_Process
- *
- * @brief Process
- *
- * A Portable encapsulation for creating new processes.
- * Notice that on UNIX platforms, if the <setenv> is used, the
- * <spawn> is using the <execve> system call. It means that the
- * <command_line> should include a full path to the program file
- * (<execve> does not search the PATH). If <setenv> is not used
- * then, the <spawn> is using the <execvp> which searches for the
- * program file in the PATH variable.
- */
-class ACE_Export ACE_Process
-{
-public:
- friend class ACE_Process_Manager;
-
- /// Default construction. Must use <ACE_Process::spawn> to start.
- ACE_Process (void);
-
- /// Destructor.
- virtual ~ACE_Process (void);
-
- /**
- * Called just before <ACE_OS::fork> in the <spawn>. If this
- * returns non-zero, the <spawn> is aborted (and returns
- * ACE_INVALID_PID). The default simply returns zero.
- */
- virtual int prepare (ACE_Process_Options &options);
-
- /**
- * Launch a new process as described by <options>. Returns the
- * process id of the newly spawned child on success or -1 on
- * failure.
- */
- virtual pid_t spawn (ACE_Process_Options &options);
-
- /// Called just after <ACE_OS::fork> in the parent's context, if the
- /// <fork> succeeds. The default is to do nothing.
- virtual void parent (pid_t child);
-
- /**
- * Called just after <ACE_OS::fork> in the child's context. The
- * default does nothing. This function is *not* called on Win32
- * because the process-creation scheme does not allow it.
- */
- virtual void child (pid_t parent);
-
- /// Called by a <Process_Manager> that is removing this Process from
- /// its table of managed Processes. Default is to do nothing.
- virtual void unmanage (void);
-
- /**
- * Wait for the process we've created to exit. If <status> != 0, it
- * points to an integer where the function store the exit status of
- * child process to. If <wait_options> == <WNOHANG> then return 0
- * and don't block if the child process hasn't exited yet. A return
- * value of -1 represents the <wait> operation failed, otherwise,
- * the child process id is returned.
- */
- pid_t wait (ACE_exitcode *status = 0,
- int wait_options = 0);
-
- /**
- * Timed wait for the process we've created to exit. A return value
- * of -1 indicates that the something failed; 0 indicates that a
- * timeout occurred. Otherwise, the child's process id is returned.
- * If <status> != 0, it points to an integer where the function
- * stores the child's exit status.
- *
- * NOTE: on UNIX platforms this function uses <ualarm>, i.e., it
- * overwrites any existing alarm. In addition, it steals all
- * <SIGCHLD>s during the timeout period, which will break another
- * <ACE_Process_Manager> in the same process that's expecting
- * <SIGCHLD> to kick off process reaping.
- */
- pid_t wait (const ACE_Time_Value &tv,
- ACE_exitcode *status = 0);
-
- /// Send the process a signal. This is only portable to operating
- /// systems that support signals, such as UNIX/POSIX.
- int kill (int signum = SIGINT);
-
- /**
- * Terminate the process abruptly using <ACE::terminate_process>.
- * This call doesn't give the process a chance to cleanup, so use it
- * with caution...
- */
- int terminate (void);
-
- /// Return the process id of the new child process.
- pid_t getpid (void) const;
-
- /// Return the handle of the process, if it has one.
- ACE_HANDLE gethandle (void) const;
-
- /// Return 1 if running; 0 otherwise.
- int running (void) const;
-
- /// Return the Process' exit code. This method returns the raw
- /// exit status returned from system APIs (such as <wait> or
- /// <waitpid>). This value is system dependent.
- ACE_exitcode exit_code (void) const;
-
- /// Return the Process' return value. This method returns the
- /// actual return value that a child process returns or <exit>s.
- int return_value (void) const;
-
- /// Close all the handles in the set obtained from the
- /// @arg ACE_Process_Options::dup_handles object used to spawn
- /// the process.
- void close_dup_handles (void);
-
- /// Close all the handles in the set obtained from the
- /// @arg ACE_Process_Options::passed_handles object used to spawn
- /// the process.
- void close_passed_handles (void);
-
-#if defined (ACE_WIN32)
- PROCESS_INFORMATION process_info (void);
-#endif /* ACE_WIN32 */
-
-protected:
- /// Set this process' <exit_code_>. ACE_Process_Manager uses this
- /// method to set the <exit_code_> after successfully waiting for
- /// this proecess to exit.
- void exit_code (ACE_exitcode code);
-
-#if defined (ACE_WIN32)
- PROCESS_INFORMATION process_info_;
-#else /* ACE_WIN32 */
- /// Process id of the child.
- pid_t child_id_;
-#endif /* ACE_WIN32 */
- ACE_exitcode exit_code_;
-
- /// Set of handles that were passed to the child process.
- ACE_Handle_Set handles_passed_;
- /// Handle duplicates made for the child process.
- ACE_Handle_Set dup_handles_;
-};
-
-
-/**
- * @class ACE_Managed_Process
- *
- * @brief A process easily managed by ACE_Process_Manager.
- *
- * @arg ACE_Managed_Process is just an @arg ACE_Process with an
- * @arg unmanage method that deletes the instance.
- * This class is only valid for use as a dynamically-allocated object!
- */
-class ACE_Export ACE_Managed_Process : public ACE_Process
-{
-public:
- ACE_Managed_Process ();
-
- /// Cleanup by deleting <this>.
- virtual void unmanage (void);
-
-private:
- /// Make sure that we're allocated dynamically!
- virtual ~ACE_Managed_Process (void);
-
- /// Keep G++ happy...
- friend class ace_dewarn_gplusplus;
-};
-
-#include "ace/SString.h"
-
-#if defined (__ACE_INLINE__)
-#include "ace/Process.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_PROCESS_H */
diff --git a/ace/Process.i b/ace/Process.i
deleted file mode 100644
index db86fe4f4d2..00000000000
--- a/ace/Process.i
+++ /dev/null
@@ -1,413 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/ACE.h"
-
-#if defined (ACE_WIN32)
-
-ACE_INLINE PROCESS_INFORMATION
-ACE_Process::process_info (void)
-{
- return process_info_;
-}
-#endif /* ACE_WIN32 */
-
-ACE_INLINE ACE_HANDLE
-ACE_Process::gethandle (void) const
-{
-#if defined (ACE_WIN32)
- return process_info_.hProcess;
-#else
- return ACE_HANDLE (child_id_);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE pid_t
-ACE_Process::getpid (void)
- const
-{
-#if defined (ACE_WIN32)
- return process_info_.dwProcessId;
-#else /* ACE_WIN32 */
- return child_id_;
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE pid_t
-ACE_Process::wait (ACE_exitcode *status,
- int wait_options)
-{
- pid_t retv =
- ACE_OS::wait (this->getpid (),
- &this->exit_code_,
- wait_options
-#if defined (ACE_WIN32)
- , process_info_.hProcess
-#endif /* ACE_WIN32 */
- );
- if (status != 0)
- *status = this->exit_code_;
-
- return retv;
-}
-
-ACE_INLINE int
-ACE_Process::kill (int signum)
-{
- if (this->getpid () != -1)
- return ACE_OS::kill (this->getpid (), signum);
- else
- return -1;
-}
-
-ACE_INLINE int
-ACE_Process::terminate (void)
-{
- if (this->getpid () != -1)
- return ACE::terminate_process (this->getpid ());
- else
- return -1;
-}
-
-ACE_INLINE int
-ACE_Process::return_value (void) const
-{
-#if defined (ACE_WIN32)
- return this->exit_code_;
-#else
- return WEXITSTATUS (this->exit_code_);
-#endif /* ACE_WIN32 */
-}
-
-ACE_INLINE ACE_exitcode
-ACE_Process::exit_code (void) const
-{
- return this->exit_code_;
-}
-
-ACE_INLINE void
-ACE_Process::exit_code (ACE_exitcode code)
-{
- this->exit_code_ = code;
-}
-
-ACE_INLINE u_long
-ACE_Process_Options::creation_flags (void) const
-{
-#if defined (UNICODE) && defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
- return creation_flags_ | CREATE_UNICODE_ENVIRONMENT;
-#else
- return creation_flags_;
-#endif /* UNICODE */
-}
-
-ACE_INLINE void
-ACE_Process_Options::creation_flags (u_long cf)
-{
- creation_flags_ = cf;
-}
-
-ACE_INLINE pid_t
-ACE_Process_Options::getgroup (void) const
-{
- return process_group_;
-}
-
-ACE_INLINE pid_t
-ACE_Process_Options::setgroup (pid_t pgrp)
-{
- pid_t old = process_group_;
- process_group_ = pgrp;
- return old;
-}
-
-ACE_INLINE int
-ACE_Process_Options::handle_inheritence (void)
-{
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
- return handle_inheritence_;
-#else
- ACE_NOTSUP_RETURN (0); // This is a benign error.
-#endif /* ACE_WIN32 && ! ACE_HAS_WINCE */
-}
-
-ACE_INLINE void
-ACE_Process_Options::handle_inheritence (int hi)
-{
-#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
- handle_inheritence_ = hi;
-#else
- ACE_UNUSED_ARG (hi);
- ACE_NOTSUP;
-#endif /* !ACE_HAS_WINCE */
-}
-
-ACE_INLINE int
-ACE_Process_Options::avoid_zombies (void)
-{
- return avoid_zombies_;
-}
-ACE_INLINE void
-ACE_Process_Options::avoid_zombies (int avoid_zombies)
-{
- avoid_zombies_ = avoid_zombies;
-}
-
-#if defined (ACE_WIN32)
-
-ACE_INLINE ACE_TEXT_STARTUPINFO *
-ACE_Process_Options::startup_info (void)
-{
-#if !defined (ACE_HAS_WINCE)
- return &startup_info_;
-#else
- return 0;
-#endif /* !ACE_HAS_WINCE */
-}
-
-ACE_INLINE LPSECURITY_ATTRIBUTES
-ACE_Process_Options::get_process_attributes (void) const
-{
-#if !defined (ACE_HAS_WINCE)
- return process_attributes_;
-#else
- return 0;
-#endif /* !ACE_HAS_WINCE */
-}
-
-ACE_INLINE LPSECURITY_ATTRIBUTES
-ACE_Process_Options::set_process_attributes (void)
-{
-#if !defined (ACE_HAS_WINCE)
- process_attributes_ = &security_buf1_;
- return process_attributes_;
-#else
- return 0;
-#endif /* !ACE_HAS_WINCE */
-}
-
-ACE_INLINE LPSECURITY_ATTRIBUTES
-ACE_Process_Options::get_thread_attributes (void) const
-{
-#if !defined (ACE_HAS_WINCE)
- return thread_attributes_;
-#else
- return 0;
-#endif /* !ACE_HAS_WINCE */
-}
-
-ACE_INLINE LPSECURITY_ATTRIBUTES
-ACE_Process_Options::set_thread_attributes (void)
-{
-#if !defined (ACE_HAS_WINCE)
- thread_attributes_ = &security_buf2_;
- return thread_attributes_;
-#else
- return 0;
-#endif /* !ACE_HAS_WINCE */
-}
-
-#else /* !defined (ACE_WIN32) */
-
-ACE_INLINE ACE_HANDLE
-ACE_Process_Options::get_stdin (void) const
-{
- return stdin_;
-}
-
-ACE_INLINE ACE_HANDLE
-ACE_Process_Options::get_stdout (void) const
-{
- return stdout_;
-}
-
-ACE_INLINE ACE_HANDLE
-ACE_Process_Options::get_stderr (void) const
-{
- return stderr_;
-}
-
-ACE_INLINE int
-ACE_Process_Options::inherit_environment (void) const
-{
- return inherit_environment_;
-}
-
-ACE_INLINE void
-ACE_Process_Options::inherit_environment (int nv)
-{
- inherit_environment_ = nv;
-}
-
-ACE_INLINE int
-ACE_Process_Options::setreugid (const ACE_TCHAR* user)
-{
-#if !defined (ACE_LACKS_PWD_FUNCTIONS)
- struct passwd *ent = ACE_OS::getpwnam (user);
-
- if (ent != 0)
- {
- this->euid_ = ent->pw_uid;
- this->ruid_ = ent->pw_uid;
- this->egid_ = ent->pw_gid;
- this->rgid_ = ent->pw_gid;
- return 0;
- }
- else
- return -1;
-#else
- ACE_UNUSED_ARG (user);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_LACKS_PWD_FUNCTIONS */
-}
-
-ACE_INLINE void
-ACE_Process_Options::setruid (uid_t id)
-{
- this->ruid_ = id;
-}
-
-ACE_INLINE void
-ACE_Process_Options::seteuid (uid_t id)
-{
- this->euid_ = id;
-}
-
-ACE_INLINE void
-ACE_Process_Options::setrgid (uid_t id)
-{
- this->rgid_ = id;
-}
-
-ACE_INLINE void
-ACE_Process_Options::setegid (uid_t id)
-{
- this->egid_ = id;
-}
-
-ACE_INLINE uid_t
-ACE_Process_Options::getruid (void) const
-{
- return this->ruid_;
-}
-
-ACE_INLINE uid_t
-ACE_Process_Options::geteuid (void) const
-{
- return this->euid_;
-}
-
-ACE_INLINE uid_t
-ACE_Process_Options::getrgid (void) const
-{
- return this->rgid_;
-}
-
-ACE_INLINE uid_t
-ACE_Process_Options::getegid (void) const
-{
- return this->egid_;
-}
-#endif /* ACE_WIN32 */
-
-ACE_INLINE ACE_TCHAR *
-ACE_Process_Options::command_line_buf (int *max_lenp)
-{
- if (max_lenp != 0)
- *max_lenp = this->command_line_buf_len_;
- return this->command_line_buf_;
-}
-
-ACE_INLINE ACE_TCHAR *
-ACE_Process_Options::working_directory (void)
-{
-#if !defined (ACE_HAS_WINCE)
- if (working_directory_[0] == '\0')
- return 0;
- else
- return working_directory_;
-#else
- return 0;
-#endif /* !ACE_HAS_WINCE */
-}
-
-ACE_INLINE void
-ACE_Process_Options::working_directory (const char *wd)
-{
-#if !defined(ACE_HAS_WINCE)
- ACE_OS::strcpy (working_directory_, ACE_TEXT_CHAR_TO_TCHAR (wd));
-#else
- ACE_UNUSED_ARG (wd);
-#endif /* !ACE_HAS_WINCE */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE void
-ACE_Process_Options::working_directory (const wchar_t *wd)
-{
-#if !defined(ACE_HAS_WINCE)
- ACE_OS::strcpy (working_directory_, ACE_TEXT_WCHAR_TO_TCHAR (wd));
-#else
- ACE_UNUSED_ARG (wd);
-#endif /* !ACE_HAS_WINCE */
-}
-#endif /* ACE_HAS_WCHAR */
-
-ACE_INLINE void
-ACE_Process_Options::process_name (const ACE_TCHAR *p)
-{
- ACE_OS::strcpy (this->process_name_, p);
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_Process_Options::process_name (void)
-{
- if (process_name_[0] == '\0')
- this->process_name (this->command_line_argv ()[0]);
-
- return this->process_name_;
-}
-
-ACE_INLINE void
-ACE_Managed_Process::unmanage (void)
-{
- delete this;
-}
-
-#if defined (ACE_HAS_WINCE)
-// Here is a collection of inline functions which are defined only
-// under CE. They are not empty on most other platforms.
-
-ACE_INLINE int
-ACE_Process_Options::setenv (ACE_TCHAR *envp[])
-{
- ACE_UNUSED_ARG (envp);
- return -1;
-}
-
-ACE_INLINE int
-ACE_Process_Options::setenv (const ACE_TCHAR *format, ...)
-{
- return -1;
-}
-
-ACE_INLINE int
-ACE_Process_Options::setenv (const ACE_TCHAR *variable_name,
- const ACE_TCHAR *format,
- ...)
-{
- return -1;
-}
-
-ACE_INLINE int
-ACE_Process_Options::set_handles (ACE_HANDLE std_in,
- ACE_HANDLE std_out,
- ACE_HANDLE std_err)
-{
- ACE_UNUSED_ARG (std_in);
- ACE_UNUSED_ARG (std_out);
- ACE_UNUSED_ARG (std_err);
- return -1;
-}
-
-#endif /* ACE_HAS_WINCE */
diff --git a/ace/Process_Manager.cpp b/ace/Process_Manager.cpp
deleted file mode 100644
index 629843f798f..00000000000
--- a/ace/Process_Manager.cpp
+++ /dev/null
@@ -1,946 +0,0 @@
-// $Id$
-
-// Process_Manager.cpp
-#include "ace/ACE.h"
-#include "ace/Synch_T.h"
-#include "ace/Process.h"
-#include "ace/Signal.h"
-#include "ace/Process_Manager.h"
-#include "ace/Object_Manager.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Process_Manager.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Process_Manager, "$Id$")
-
-#if defined (ACE_HAS_SIG_C_FUNC)
-extern "C" void
-ACE_Process_Manager_cleanup (void *instance, void *arg)
-{
- ACE_Process_Manager::cleanup (instance, arg);
-}
-#endif
-
-void
-ACE_Process_Manager::cleanup (void *, void *)
-{
- ACE_Process_Manager::close_singleton ();
-}
-
-// This function acts as a signal handler for SIGCHLD. We don't really want
-// to do anything with the signal - it's just needed to interrupt a sleep.
-// See wait() for more info.
-#if !defined (ACE_WIN32)
-static void
-sigchld_nop (int, siginfo_t *, ucontext_t *)
-{
- return;
-}
-#endif /* ACE_WIN32 */
-
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Process_Manager)
-
-// Singleton instance.
-ACE_Process_Manager *ACE_Process_Manager::instance_ = 0;
-
-// Controls whether the <Process_Manager> is deleted when we shut down
-// (we can only delete it safely if we created it!)
-int ACE_Process_Manager::delete_instance_ = 0;
-
-ACE_Process_Descriptor::~ACE_Process_Descriptor (void)
-{
-}
-
-void
-ACE_Process_Descriptor::dump (void) const
-{
- ACE_TRACE ("ACE_Process_Descriptor::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nproc_id_ = %d"),
- this->process_->getpid( )));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_Process_Manager::dump (void) const
-{
- ACE_TRACE ("ACE_Process_Manager::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nmax_process_table_size_ = %d"), this->max_process_table_size_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncurrent_count_ = %d"), this->current_count_));
-
- for (size_t i = 0; i < this->current_count_; i++)
- this->process_table_[i].dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Process_Descriptor::ACE_Process_Descriptor (void)
- : process_ (0),
- exit_notify_ (0)
-{
- ACE_TRACE ("ACE_Process_Descriptor::ACE_Process_Descriptor");
-}
-
-ACE_Process_Manager *
-ACE_Process_Manager::instance (void)
-{
- ACE_TRACE ("ACE_Process_Manager::instance");
-
- if (ACE_Process_Manager::instance_ == 0)
- {
- // Perform Double-Checked Locking Optimization.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
-
- if (ACE_Process_Manager::instance_ == 0)
- {
- ACE_NEW_RETURN (ACE_Process_Manager::instance_,
- ACE_Process_Manager,
- 0);
- ACE_Process_Manager::delete_instance_ = 1;
-
- // Register with the Object_Manager so that the wrapper to
- // delete the proactor will be called when Object_Manager is
- // being terminated.
-
-#if defined ACE_HAS_SIG_C_FUNC
- ACE_Object_Manager::at_exit (ACE_Process_Manager::instance_,
- ACE_Process_Manager_cleanup,
- 0);
-#else
- ACE_Object_Manager::at_exit (ACE_Process_Manager::instance_,
- ACE_Process_Manager::cleanup,
- 0);
-#endif /* ACE_HAS_SIG_C_FUNC */
-
- }
- }
-
- return ACE_Process_Manager::instance_;
-}
-
-ACE_Process_Manager *
-ACE_Process_Manager::instance (ACE_Process_Manager *tm)
-{
- ACE_TRACE ("ACE_Process_Manager::instance");
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
-
- ACE_Process_Manager *t = ACE_Process_Manager::instance_;
- // We can't safely delete it since we don't know who created it!
- ACE_Process_Manager::delete_instance_ = 0;
-
- // Register with the Object_Manager so that the wrapper to
- // delete the proactor will be called when Object_Manager is
- // being terminated.
-
-#if defined ACE_HAS_SIG_C_FUNC
- ACE_Object_Manager::at_exit (ACE_Process_Manager::instance_,
- ACE_Process_Manager_cleanup,
- 0);
-#else
- ACE_Object_Manager::at_exit (ACE_Process_Manager::instance_,
- ACE_Process_Manager::cleanup,
- 0);
-#endif /* ACE_HAS_SIG_C_FUNC */
-
- ACE_Process_Manager::instance_ = tm;
- return t;
-}
-
-void
-ACE_Process_Manager::close_singleton( void )
-{
- ACE_TRACE ("ACE_Process_Manager::close_singleton");
-
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance ()));
-
- if (ACE_Process_Manager::delete_instance_)
- {
- delete ACE_Process_Manager::instance_;
- ACE_Process_Manager::instance_ = 0;
- ACE_Process_Manager::delete_instance_ = 0;
- }
-}
-
-int
-ACE_Process_Manager::resize (size_t size)
-{
- ACE_TRACE ("ACE_Process_Manager::resize");
-
- ACE_Process_Descriptor *temp;
-
- ACE_NEW_RETURN (temp,
- ACE_Process_Descriptor[size],
- -1);
-
- for (size_t i = 0;
- i < this->current_count_;
- i++)
- // Structure assignment.
- temp[i] = this->process_table_[i];
-
- this->max_process_table_size_ = size;
-
- delete [] this->process_table_;
-
- this->process_table_ = temp;
- return 0;
-}
-
-// Create and initialize the table to keep track of the process pool.
-
-int
-ACE_Process_Manager::open (size_t size,
- ACE_Reactor *r)
-{
- ACE_TRACE ("ACE_Process_Manager::open");
-
- if (r)
- {
- this->reactor (r);
-#if !defined (ACE_WIN32) && !defined (ACE_PSOS)
- // Register signal handler object.
- if (r->register_handler (SIGCHLD, this) == -1)
- return -1;
-#endif // !defined(ACE_WIN32) && !defined (ACE_PSOS)
- }
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->lock_, -1));
-
- if (this->max_process_table_size_ < size)
- this->resize (size);
- return 0;
-}
-
-// Initialize the synchronization variables.
-
-ACE_Process_Manager::ACE_Process_Manager (size_t size,
- ACE_Reactor *r)
- : ACE_Event_Handler (),
- process_table_ (0),
- max_process_table_size_ (0),
- current_count_ (0),
- default_exit_handler_ (0)
-#if defined (ACE_HAS_THREADS)
- , lock_ ()
-#endif /* ACE_HAS_THREADS */
-{
- ACE_TRACE ("ACE_Process_Manager::ACE_Process_Manager");
-
- if (this->open (size,
- r) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Process_Manager")));
-}
-
-// Close up and release all resources.
-
-int
-ACE_Process_Manager::close (void)
-{
- ACE_TRACE ("ACE_Process_Manager::close");
-
-#if !defined (ACE_WIN32)
- if (this->reactor ())
- {
- this->reactor ()->remove_handler (SIGCHLD, (ACE_Sig_Action *) 0);
- this->reactor (0);
- }
-#endif /* !ACE_WIN32 */
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->lock_, -1));
-
- if (this->process_table_ != 0)
- {
- while (this->current_count_ > 0)
- this->remove_proc (0);
-
- delete [] this->process_table_;
- this->process_table_ = 0;
- this->max_process_table_size_ = 0;
- this->current_count_ = 0;
- }
-
- if (this->default_exit_handler_ != 0)
- this->default_exit_handler_->handle_close (ACE_INVALID_HANDLE,0);
- this->default_exit_handler_ = 0;
-
- return 0;
-}
-
-ACE_Process_Manager::~ACE_Process_Manager (void)
-{
- ACE_TRACE ("ACE_Process_Manager::~ACE_Process_Manager");
- this->close ();
-}
-
-#if !defined (ACE_WIN32)
-
-// This is called when the Reactor notices that a Process has exited.
-// What has actually happened is a SIGCHLD invoked the <handle_signal>
-// routine, which fooled the Reactor into thinking that this routine
-// needed to be called. Since we don't know which Process exited, we
-// must reap as many exit statuses as are immediately available.
-
-int
-ACE_Process_Manager::handle_input (ACE_HANDLE)
-{
- ACE_TRACE ("ACE_Process_Manager::handle_input");
-
- pid_t pid;
-
- do
- pid = this->wait (0,
- ACE_Time_Value::zero);
- while (pid != 0 && pid != ACE_INVALID_PID);
-
- return 0;
-}
-
-#endif /* !ACE_WIN32 */
-
-// On Unix, this routine is called asynchronously when a SIGCHLD is
-// received. We just tweak the reactor so that it'll call back our
-// <handle_input> function, which allows us to handle Process exits
-// synchronously.
-//
-// On Win32, this routine is called synchronously, and is passed the
-// HANDLE of the Process that exited, so we can do all our work here.
-
-int
-ACE_Process_Manager::handle_signal (int,
- siginfo_t *si,
- ucontext_t *)
-{
-#if defined (ACE_WIN32)
- ACE_HANDLE proc = si->si_handle_;
- ACE_exitcode status = 0;
- BOOL result = ::GetExitCodeProcess (proc,
- &status);
- if (result)
- {
- if (status != STILL_ACTIVE)
- {
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, lock_, -1));
-
- ssize_t i = this->find_proc (proc);
- if (i == -1)
- return -1;
-#if 0
- pid_t pid = i != -1
- ? process_table_[i].process_->getpid ()
- : ACE_INVALID_PID;
-#endif
- this->notify_proc_handler (i, status);
- this->remove_proc (i);
- }
- return -1; // remove this HANDLE/Event_Handler combination
- }
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Process still active")
- ACE_LIB_TEXT (" -- shouldn't have been called yet!\n")),
- 0); // return 0 : stay registered
- }
- else
- {
- // <GetExitCodeProcess> failed.
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("GetExitCodeProcess failed")),
- -1); // return -1: unregister
- }
-#else /* !ACE_WIN32 */
- ACE_UNUSED_ARG (si);
- return reactor ()->notify
- (this,
- ACE_Event_Handler::READ_MASK);
-#endif /* !ACE_WIN32 */
-}
-
-int
-ACE_Process_Manager::register_handler (ACE_Event_Handler *eh,
- pid_t pid)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->lock_, -1));
-
- if (pid == ACE_INVALID_PID)
- {
- if (this->default_exit_handler_ != 0)
- this->default_exit_handler_->handle_close (ACE_INVALID_HANDLE, 0);
- this->default_exit_handler_ = eh;
- return 0;
- }
-
- ssize_t i = this->find_proc (pid);
-
- if (i == -1)
- {
- errno = EINVAL;
- return -1;
- }
-
- ACE_Process_Descriptor &proc_desc = this->process_table_[i];
-
- if (proc_desc.exit_notify_ != 0)
- proc_desc.exit_notify_->handle_close (ACE_INVALID_HANDLE, 0);
- proc_desc.exit_notify_ = eh;
- return 0;
-}
-
-// Create a new process.
-
-pid_t
-ACE_Process_Manager::spawn (ACE_Process_Options &options)
-{
- ACE_Process *process;
- ACE_NEW_RETURN (process,
- ACE_Managed_Process,
- ACE_INVALID_PID);
-
- pid_t pid = spawn (process, options);
- if (pid == ACE_INVALID_PID || pid == 0)
- delete process;
-
- return pid;
-}
-
-// Create a new process.
-
-pid_t
-ACE_Process_Manager::spawn (ACE_Process *process,
- ACE_Process_Options &options)
-{
- ACE_TRACE ("ACE_Process_Manager::spawn");
-
- pid_t pid = process->spawn (options);
-
- // Only include the pid in the parent's table.
- if (pid == ACE_INVALID_PID
- || pid == 0)
- return pid;
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex,
- ace_mon, this->lock_, -1));
-
- if (this->append_proc (process) == -1)
- // bad news: spawned, but not registered in table.
- return ACE_INVALID_PID;
-
- return pid;
-}
-
-// Create N new processs.
-
-int
-ACE_Process_Manager::spawn_n (size_t n,
- ACE_Process_Options &options,
- pid_t *child_pids)
-{
- ACE_TRACE ("ACE_Process_Manager::spawn_n");
-
- if (child_pids != 0)
- for (size_t i = 0;
- i < n;
- ++i)
- child_pids[i] = ACE_INVALID_PID;
-
- for (size_t i = 0;
- i < n;
- i++)
- {
- pid_t pid = this->spawn (options);
- if (pid == ACE_INVALID_PID || pid == 0)
- // We're in the child or something's gone wrong.
- return pid;
- else if (child_pids != 0)
- child_pids[i] = pid;
- }
-
- return 0;
-}
-
-// Append a process into the pool (does not check for duplicates).
-// Must be called with locks held.
-
-int
-ACE_Process_Manager::append_proc (ACE_Process *proc)
-{
- ACE_TRACE ("ACE_Process_Manager::append_proc");
-
- // Try to resize the array to twice its existing size if we run out
- // of space...
- if (this->current_count_ >= this->max_process_table_size_
- && this->resize (this->max_process_table_size_ * 2) == -1)
- return -1;
- else
- {
- ACE_Process_Descriptor &proc_desc =
- this->process_table_[this->current_count_];
-
- proc_desc.process_ = proc;
- proc_desc.exit_notify_ = 0;
-
-#if defined (ACE_WIN32)
- // If we have a Reactor, then we're supposed to reap Processes
- // automagically. Get a handle to this new Process and tell the
- // Reactor we're interested in <handling_input> on it.
-
- ACE_Reactor *r = this->reactor ();
- if (r != 0)
- r->register_handler (this,
- proc->gethandle ());
-#endif /* ACE_WIN32 */
-
- this->current_count_++;
- return 0;
- }
-}
-
-// Insert a process into the pool (checks for duplicates and doesn't
-// allow them to be inserted twice).
-
-int
-ACE_Process_Manager::insert_proc (ACE_Process *proc)
-{
- ACE_TRACE ("ACE_Process_Manager::insert_proc");
-
- // Check for duplicates and bail out if they're already
- // registered...
- if (this->find_proc (proc->getpid ()) != -1)
- return -1;
-
- return this->append_proc (proc);
-}
-
-// Remove a process from the pool.
-
-int
-ACE_Process_Manager::remove (pid_t pid)
-{
- ACE_TRACE ("ACE_Process_Manager::remove");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->lock_, -1));
-
- ssize_t i = this->find_proc (pid);
-
- if (i != -1)
- return this->remove_proc (i);
-
- // set "process not found" error
- return -1;
-}
-
-// Remove a process from the pool. Must be called with locks held.
-
-int
-ACE_Process_Manager::remove_proc (size_t i)
-{
- ACE_TRACE ("ACE_Process_Manager::remove_proc");
-
- // If there's an exit_notify_ <Event_Handler> for this pid, call its
- // <handle_close> method.
-
- if (this->process_table_[i].exit_notify_ != 0)
- {
- this->process_table_[i].exit_notify_->handle_close
- (this->process_table_[i].process_->gethandle(),
- 0);
- this->process_table_[i].exit_notify_ = 0;
- }
-
-#if defined (ACE_WIN32)
- ACE_Reactor *r = this->reactor ();
- if (r != 0)
- r->remove_handler (this->process_table_[i].process_->gethandle (),
- ACE_Event_Handler::DONT_CALL);
-#endif /* ACE_WIN32 */
-
- this->process_table_[i].process_->unmanage ();
-
- this->process_table_[i].process_ = 0;
-
- this->current_count_--;
-
- if (this->current_count_ > 0)
- // Compact the table by moving the last item into the slot vacated
- // by the index being removed (this is a structure assignment).
- this->process_table_[i] =
- this->process_table_[this->current_count_];
-
- return 0;
-}
-
-int
-ACE_Process_Manager::terminate (pid_t pid)
-{
- ACE_TRACE ("ACE_Process_Manager::terminate");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->lock_, -1));
-
- // Check for duplicates and bail out if they're already
- // registered...
- ssize_t i = this->find_proc (pid);
-
- if (i == -1)
- // set "no such process" error
- return -1;
-
- int result = ACE::terminate_process (pid);
-
- if (result != -1)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- this->remove_proc (i);
- return 0;
- }
- else
- return -1;
-}
-
-int
-ACE_Process_Manager::terminate (pid_t pid,
- int sig)
-{
- ACE_TRACE ("ACE_Process_Manager::terminate");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->lock_, -1));
-
- // Check for duplicates and bail out if they're already
- // registered...
- ssize_t i = this->find_proc (pid);
-
- if (i == -1)
- // set "no such process" error
- return -1;
-
- return ACE_OS::kill (pid, sig);
-}
-
-// Locate the index in the table associated with <pid>. Must be
-// called with the lock held.
-
-ssize_t
-ACE_Process_Manager::find_proc (pid_t pid)
-{
- ACE_TRACE ("ACE_Process_Manager::find_proc");
-
- for (size_t i = 0; i < this->current_count_; ++i)
- if (pid == this->process_table_[i].process_->getpid ())
- return i;
-
- return -1;
-}
-
-#if defined (ACE_WIN32)
-// Locate the index in the table associated with <h>. Must be
-// called with the lock held.
-
-ssize_t
-ACE_Process_Manager::find_proc (ACE_HANDLE h)
-{
- ACE_TRACE ("ACE_Process_Manager::find_proc");
-
- for (size_t i = 0; i < this->current_count_; ++i)
- if (h == this->process_table_[i].process_->gethandle ())
- return i;
-
- return -1;
-}
-#endif /* ACE_WIN32 */
-
-// Wait for all the Processs to exit, or until <timeout> elapses.
-// Returns the number of Processes remaining, or -1 on an error.
-
-int
-ACE_Process_Manager::wait (const ACE_Time_Value &timeout)
-{
- ACE_TRACE ("ACE_Process_Manager::wait");
-
- ACE_Time_Value until = timeout;
- ACE_Time_Value remaining = timeout;
-
- if (until < ACE_Time_Value::max_time)
- until += ACE_OS::gettimeofday ();
-
- while (this->current_count_ > 0)
- {
- pid_t pid = this->wait (0, remaining);
-
- if (pid == ACE_INVALID_PID) // wait() failed
- return -1;
- else if (pid == 0) // timeout
- break;
-
- remaining = until < ACE_Time_Value::max_time
- ? until - ACE_OS::gettimeofday ()
- : ACE_Time_Value::max_time;
-
- if (remaining <= ACE_Time_Value::zero)
- break;
-
- // else Process terminated...wait for more...
- }
- return ACE_static_cast (int, this->current_count_);
-}
-
-// Collect a single child process' exit status. Store the exit code
-// in *<stat_loc> if non-zero. Call the appropriate exit_notify. If
-// <pid> == 0, wait for any of the Process_Manager's children (or as
-// near as possible -- on Unix, we might accidentally get some other
-// Process_Manager's Process, or an unmanaged Process, or a child
-// process started by some other means.
-
-pid_t
-ACE_Process_Manager::wait (pid_t pid,
- ACE_exitcode *status)
-{
- ACE_TRACE ("ACE_Process_Manager::wait");
-
- return this->wait (pid,
- ACE_Time_Value::max_time,
- status);
-}
-
-// Collect a single child processes' exit status, unless <timeout>
-// elapses before the process exits. Same caveats about accidental
-// Process reaping on Unix as above.
-
-pid_t
-ACE_Process_Manager::wait (pid_t pid,
- const ACE_Time_Value &timeout,
- ACE_exitcode *status)
-{
- ACE_TRACE ("ACE_Process_Manager::wait");
-
- ACE_exitcode local_stat = 0;
- if (status == 0)
- status = &local_stat;
-
- *status = 0;
-
- ssize_t idx = -1;
- ACE_Process *proc = 0;
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->lock_, -1));
-
- if (pid != 0)
- {
- idx = this->find_proc (pid);
- if (idx == -1)
- return ACE_INVALID_PID;
- else
- proc = process_table_[idx].process_;
- }
-
- if (proc != 0)
- pid = proc->wait (timeout, status);
- else
- {
- // Wait for any Process spawned by this Process_Manager.
-#if defined (ACE_WIN32)
- HANDLE *handles;
-
- ACE_NEW_RETURN (handles,
- HANDLE[this->current_count_],
- ACE_INVALID_PID);
-
- for (size_t i = 0;
- i < this->current_count_;
- ++i)
- handles[i] =
- process_table_[i].process_->gethandle ();
-
- DWORD handle_count = ACE_static_cast (DWORD, this->current_count_);
- DWORD result = ::WaitForMultipleObjects (handle_count,
- handles,
- FALSE,
- timeout == ACE_Time_Value::max_time
- ? INFINITE
- : timeout.msec ());
- if (result == WAIT_FAILED)
- pid = ACE_INVALID_PID;
- else if (result == WAIT_TIMEOUT)
- pid = 0;
- else
- {
- // Green Hills produces a warning that result >= WAIT_OBJECT_0 is
- // a pointless comparison because WAIT_OBJECT_0 is zero and DWORD is
- // unsigned long, so this test is skipped for Green Hills.
- // Same for mingw.
-# if defined (ghs) || defined (__MINGW32__)
- ACE_ASSERT (result < WAIT_OBJECT_0 + this->current_count_);
-# else
- ACE_ASSERT (result >= WAIT_OBJECT_0
- && result < WAIT_OBJECT_0 + this->current_count_);
-# endif
-
- idx = this->find_proc (handles[result - WAIT_OBJECT_0]);
-
- if (idx != -1)
- {
- pid = process_table_[idx].process_->getpid ();
- result = ::GetExitCodeProcess (handles[result - WAIT_OBJECT_0],
- status);
- if (result == 0)
- {
- // <GetExitCodeProcess> failed!
- this->remove_proc (idx);
- pid = ACE_INVALID_PID;
- }
- }
- else
- {
- // uh oh...handle removed from process_table_, even though
- // we're holding a lock!
- delete [] handles;
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Process removed")
- ACE_LIB_TEXT (" -- somebody's ignoring the lock!\n")),
- -1);
- }
- }
-
- delete [] handles;
-#else /* !defined(ACE_WIN32) */
- if (timeout == ACE_Time_Value::max_time)
- {
- pid = ACE_OS::waitpid (-1, status, 0);
- }
- else if (timeout == ACE_Time_Value::zero)
- {
- pid = ACE_OS::waitpid (-1, status, WNOHANG);
- }
- else
- {
- // Force generation of SIGCHLD, even though we don't want to
- // catch it - just need it to interrupt the sleep below.
- // If this object has a reactor set, assume it was given at
- // open(), and there's already a SIGCHLD action set, so no
- // action is needed here.
- ACE_Sig_Action old_action;
- if (this->reactor () == 0)
- {
- ACE_Sig_Action do_sigchld ((ACE_SignalHandler)sigchld_nop);
- do_sigchld.register_action (SIGCHLD, &old_action);
- }
-
- ACE_Time_Value tmo (timeout); // Need one we can change
- for (ACE_Countdown_Time time_left (&tmo); ; time_left.update ())
- {
- pid = ACE_OS::waitpid (-1, status, WNOHANG);
- if (pid > 0 || pid == ACE_INVALID_PID)
- break; // Got a child or an error - all done
-
- // pid 0, nothing is ready yet, so wait.
- // Do a sleep (only this thread sleeps) til something
- // happens. This relies on SIGCHLD interrupting the sleep.
- // If SIGCHLD isn't delivered, we'll need to do something
- // with sigaction to force it.
- if (-1 == ACE_OS::sleep (tmo) && errno == EINTR)
- continue;
- // Timed out
- pid = 0;
- break;
- }
-
- // Restore the previous SIGCHLD action if it was changed.
- if (this->reactor () == 0)
- {
- old_action.register_action (SIGCHLD);
- }
- }
-#endif /* !defined (ACE_WIN32) */
- }
-
- if (pid != ACE_INVALID_PID && pid != 0)
- {
- if (proc == 0)
- {
- idx = this->find_proc (pid);
- if (idx == -1)
- {
- // oops, reaped an unmanaged process!
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("(%P|%t) oops, reaped unmanaged %d\n"),
- pid));
- return pid;
- }
- else
- proc = process_table_[idx].process_;
- }
- else
- ACE_ASSERT (pid == proc->getpid ());
-
- this->notify_proc_handler (idx,
- *status);
- this->remove_proc (idx);
- }
-
- return pid;
-}
-
-// Legacy method:
-
-int
-ACE_Process_Manager::reap (pid_t pid,
- ACE_exitcode *stat_loc,
- int options)
-{
- ACE_TRACE ("ACE_Process_Manager::reap");
-
- return this->wait (pid,
- (ACE_BIT_ENABLED (options, WNOHANG)
- ? ACE_Time_Value::zero
- : ACE_Time_Value::max_time),
- stat_loc);
-}
-
-// Notify either the process-specific handler or the generic handler.
-// If process-specific, call handle_close on the handler. Returns 1
-// if process found, 0 if not. Must be called with locks held.
-
-int
-ACE_Process_Manager::notify_proc_handler (size_t i,
- ACE_exitcode exit_code)
-{
- if (i < this->current_count_)
- {
- ACE_Process_Descriptor &proc_desc =
- this->process_table_[i];
-
- proc_desc.process_->exit_code (exit_code);
-
- if (proc_desc.exit_notify_ != 0)
- proc_desc.exit_notify_->handle_exit (proc_desc.process_);
- else if (this->default_exit_handler_ != 0
- && this->default_exit_handler_->handle_exit (proc_desc.process_) < 0)
- {
- this->default_exit_handler_->handle_close
- (ACE_INVALID_HANDLE,
- 0);
- this->default_exit_handler_ = 0;
- }
- return 1;
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("(%P:%t|%T) ACE_Process_Manager::notify_proc_handler:"),
- ACE_LIB_TEXT (" unknown/unmanaged process reaped\n")));
- return 0;
- }
-}
diff --git a/ace/Process_Manager.h b/ace/Process_Manager.h
deleted file mode 100644
index d94948ffdb0..00000000000
--- a/ace/Process_Manager.h
+++ /dev/null
@@ -1,397 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Process_Manager.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_PROCESS_MANAGER_H
-#define ACE_PROCESS_MANAGER_H
-#include "ace/pre.h"
-
-#include "ace/Synch.h"
-#include "ace/Reactor.h"
-#include "ace/Event_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Process.h"
-
-/**
- * @class ACE_Process_Descriptor
- *
- * @brief Information describing each process that's controlled by an
- * <ACE_Process_Manager>.
- */
-class ACE_Export ACE_Process_Descriptor
-{
-private:
- friend class ACE_Process_Manager;
-
- /// Default ctor/dtor.
- ACE_Process_Descriptor (void);
- ~ACE_Process_Descriptor (void);
-
- /// Describes the process itself.
- ACE_Process *process_;
-
- /// function to call when process exits
- ACE_Event_Handler *exit_notify_;
-
- /// Dump the state of an object.
- void dump (void) const;
-};
-
-/**
- * @class ACE_Process_Manager
- *
- * @brief Manages a group of processes.
- *
- * This class allows applications to control groups of processes,
- * similar to how the <ACE_Thread_Manager> controls groups of
- * threads. Naturally, it doesn't work at all on platforms, such
- * as VxWorks or pSoS, that don't support process.
- * There are two (main) ways of using <ACE_Process_Manager>,
- * depending on how involved you wish to be with the termination
- * of managed <ACE_Process>es. If you just want <Process>es to
- * go away when they're finished, simply register the
- * <Process_Manager> with an <ACE_Reactor>:
- * ACE_Process_Manager mgr( 100, some_reactor )
- * -or-
- * ACE_Process_Manager mgr;
- * ...
- * mgr.open( 100, some_reactor );
- * Then, the <Process_Manager> will clean up after any
- * <Process>es that it spawns. (On Unix, this means executing a
- * wait(2) to collect the exit status -- and avoid zombie
- * processes; on Win32, it means closing the process and thread
- * HANDLEs that are created when CreateProcess is called.)
- * If, on the other hand (and for some inexplicable reason) you
- * want to explicitly invoke the terminated <Process> cleanup
- * code, then *don't* register the <Process_Manager> with a
- * Reactor, and be sure to call one of the
- * <Process_Manager::wait> functions whenever there might be
- * managed <Process>es that have exited.
- * Note that in either case, <Process_Manager> allows you to
- * register "<Event_Handlers>" to be called when a specific
- * <Process> exits, or when any <Process> without a specific
- * <Event_Handler> exits. When a <Process> exits, the
- * appropriate <Event_Handler>'s <handle_input> is called; the
- * <ACE_HANDLE> passed is either the Process' HANDLE (on Win32),
- * or its pid cast to an <ACE_HANDLE> (on unix).
- * It is also possible to call the <Process_Manager::wait>
- * functions even though the <Process_Manager> is registered with
- * a <Reactor>.
- * Note also that the wait functions are "sloppy" on Unix,
- * because there's no good way to wait for a subset of the
- * children of a process. The wait functions may end up
- * collecting the exit status of a process that's not managed by
- * the <Process_Manager> whose <wait> you invoked. It's best to
- * only use a single <Process_Manager>, and to create all
- * subprocesses by calling that <Process_Manager>'s <spawn>
- * method.
- * Incidentally, when you register your <Process_Manager> with a
- * <Reactor> its notification pipe is used to help "reap" the
- * available exit statuses. Therefore, you must not use a
- * <Reactor> whose notify pipe has been disabled. Here's the
- * sequence of steps used to reap the exit statuses in this case:
- * + The <Process_Manager> registers a signal handler for
- * SIGCHLD.
- * + The SIGCHLD handler, when invoked, uses the <Reactor>'s
- * <notify> method to inform the <Reactor> to wake up.
- * + Next, the <Reactor> calls the <Process_Manager>'s
- * <handle_input>, this happens synchronously, not in
- * sighandler-space.
- * + The <handle_input> method collects all available exit
- * statuses.
- */
-class ACE_Export ACE_Process_Manager : protected ACE_Event_Handler
-{
-public:
- friend class ACE_Process_Control;
-
- enum
- {
- DEFAULT_SIZE = 100
- };
-
- // = Initialization and termination methods.
- /**
- * Initialize an <ACE_Process_Manager> with a table containing up to
- * <size> processes. This table resizes itself automatically as
- * needed. If a non-NULL <reactor> is provided, this
- * <ACE_Process_Manager> uses it to notify an application when a
- * process it controls exits. By default, however, we don't use an
- * <ACE_Reactor>.
- */
- ACE_Process_Manager (size_t size = ACE_Process_Manager::DEFAULT_SIZE,
- ACE_Reactor *reactor = 0);
-
- /**
- * Initialize an <ACE_Process_Manager> with a table containing up to
- * <size> processes. This table resizes itself automatically as
- * needed. If a non-NULL <reactor> is provided, this
- * <ACE_Process_Manager> uses it to notify an application when a
- * process it controls exits. By default, however, we don't use an
- * <ACE_Reactor>.
- */
- int open (size_t size = DEFAULT_SIZE,
- ACE_Reactor *r = 0);
-
- /// Release all resources. Do not wait for processes to exit.
- int close (void);
-
- /// Destructor releases all resources and does not wait for processes
- /// to exit.
- virtual ~ACE_Process_Manager (void);
-
- // = Singleton accessors.
- /// Get pointer to a process-wide <ACE_Process_Manager>.
- static ACE_Process_Manager *instance (void);
-
- /// Set pointer to a process-wide <ACE_Process_Manager> and return
- /// existing pointer.
- static ACE_Process_Manager *instance (ACE_Process_Manager *);
-
- /// Delete the dynamically allocated singleton.
- static void close_singleton (void);
-
- /// Cleanup method, used by the <ACE_Object_Manager> to destroy the
- /// singleton.
- static void cleanup (void *instance, void *arg);
-
- // = Process creation methods.
-
- /**
- * Create a new process by passing <options> to <proc.spawn>. On
- * success, returns the process id of the child that was created.
- * On failure, returns ACE_INVALID_PID.
- */
- pid_t spawn (ACE_Process *proc,
- ACE_Process_Options &options);
-
- /**
- * Create a new process by passing <options> to
- * <ACE_Process::spawn>. On success, returns the process id of the
- * child that was created. On failure, returns ACE_INVALID_PID.
- */
- pid_t spawn (ACE_Process_Options &options);
-
- /**
- * Create <n> new processes by passing <options> to
- * <ACE_Process::spawn>, which is called <n> times. If <child_pids>
- * is non-0 it is expected to be an array of <n> <pid_t>'s, which
- * are filled in with the process ids of each newly created process.
- * Returns 0 on success and -1 on failure.
- */
- int spawn_n (size_t n,
- ACE_Process_Options &options,
- pid_t *child_pids = 0);
-
- // = Process synchronization operations.
-
- /**
- * Block until there are no more child processes running that were
- * <spawn>ed by this <ACE_Process_Manager>. Unlike the <wait> call
- * below, this method does not require a signal handler or
- * <ACE_OS::sigwait> because it simply blocks synchronously waiting
- * for all the children managed by this <ACE_Process_Manager> to
- * exit. Note that this does not return any status information
- * about the success or failure of exiting child processes, although
- * any registered exit_handlers are called. Returns 0 on success
- * (and <remove>s the corresponding <ACE_Process_Descriptor> entries
- * from the <Process_Manager>; otherwise, returns -1 on failure.
- */
- int wait (const ACE_Time_Value &timeout = ACE_Time_Value::max_time);
-
- /**
- * Wait up to <timeout> for a single process to terminate. If
- * pid==0, waits for any of the managed <Process>es (but see the
- * note in the class documentation above for caveats about this --
- * "sloppy process cleanup on unix") If pid != 0, waits for that <Process>
- * only. Returns the pid of the Process whose exit was handled, 0
- * if a timeout occurred, or ACE_INVALID_PID on error.
- */
- pid_t wait (pid_t pid,
- const ACE_Time_Value &timeout,
- ACE_exitcode *status = 0);
-
- /**
- * Wait indefinitely for a single process to terminate. If pid==0,
- * waits for any of the managed <Process>es (but see the note in
- * the class documentation for caveats about this -- "sloppy Process
- * cleanup on unix") If pid != 0, waits for that <Process> only.
- * Returns the pid of the process whose exit was handled, or
- * ACE_INVALID_PID on error.
- */
- pid_t wait (pid_t pid,
- ACE_exitcode *status = 0);
-
- /**
- * Reap the result of a single process by calling <ACE_OS::waitpid>,
- * therefore, this method is not portable to Win32. If the child is
- * successfully reaped, <remove> is called automatically. This
- * method does the same thing that the <wait> method directly above
- * it does -- It's just here for backwards compatibility.
- */
- int reap (pid_t pid = -1,
- ACE_exitcode *stat_loc = 0,
- int options = WNOHANG);
-
- // = Utility methods.
- /**
- * Register an Event_Handler to be called back when the specified
- * process exits. If pid == ACE_INVALID_PID this handler is called
- * when any process with no specific handler exits.
- */
- int register_handler (ACE_Event_Handler *event_handler,
- pid_t pid = ACE_INVALID_PID);
-
- /**
- * Remove process <pid> from the table. This is called
- * automatically by the <reap> method after it successfully reaped a
- * <SIGCHLD> signal. It's also possible to call this method
- * directly from a signal handler, but don't call both <reap> and
- * <remove>!
- */
- int remove (pid_t pid);
-
- /**
- * Abruptly terminate a single process with id <pid> using the
- * <ACE::terminate_process> method. Note that this call is
- * potentially dangerous to use since the process being terminated
- * may not have a chance to cleanup before it shuts down. Returns 0
- * on success and -1 on failure.
- */
- int terminate (pid_t pid);
-
- /// On OSs that support signals, send the signal to the specified
- /// process. Returns 0 on success and -1 on failure.
- int terminate (pid_t pid,
- int sig);
-
- /// Return the number of managed Processes.
- size_t managed (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = These methods allow a <Process_Manager> to be an <Event_Handler>.
-
- // As an <Event_Handler>, the <Process_Manager> automagically
- // detects child Processes exiting and calls notify_proc_handler()
- // and remove(). This means that you don't have to (shouldn't!)
- // call the wait(...) methods yourself.
-
- // On Unix, we can't detect individual process termination very
- // well; the best method is to catch SIGCHLD and then call the
- // polling wait() function to collect any available exit statuses.
- // However, we don't want to do this from within a signal handler
- // because of the restrictions associated. Therefore (following the
- // lead in examples/mumble) we open a bogus handle (to ACE_DEV_NULL)
- // and register that handle with our Reactor. Then, when our
- // SIGCHLD handler gets invoked, we tell the Reactor that the bogus
- // handle is readable. That will cause the handle_input() function
- // to be called once we're out of the interrupt context, and
- // handle_input() collects exit statuses.
-
- // On Win32, we simply register ourself with the Reactor to deal
- // with the Process handle becoming signaled. No muss, no fuss, no
- // signal handler, and no dummy handle.
-
-#if !defined(ACE_WIN32)
- /// Collect one (or more, on unix) process exit status.
- virtual int handle_input (ACE_HANDLE proc);
-#endif // !defined(ACE_WIN32)
-
- /**
- * On Unix, this routine is called asynchronously when a SIGCHLD is
- * received. We just tweak the reactor so that it'll call back our
- * <handle_input> function, which allows us to handle Process exits
- * synchronously.
- *
- * On Win32, this routine is called synchronously, and is passed the
- * HANDLE of the Process that exited, so we can do all our work here
- */
- virtual int handle_signal (int signum,
- siginfo_t * = 0,
- ucontext_t * = 0);
-
-private:
- /// Resize the pool of Process_Descriptors.
- int resize (size_t);
-
- /// Locate the index of the table slot occupied by <process_id>.
- /// Returns -1 if <process_id> is not in the <process_table_>
- ssize_t find_proc (pid_t process_id);
-
-#if defined (ACE_WIN32)
- /// Locate the index of the table slot occupied by <process_handle>.
- /// Returns ~0 if <process_handle> is not in the <process_table_>
- ssize_t find_proc (ACE_HANDLE process_handle);
-#endif /* ACE_WIN32 */
-
- /// Insert a process in the table (checks for duplicates). Omitting
- /// the process handle won't work on Win32...
- int insert_proc (ACE_Process *process);
-
- /**
- * Append information about a process, i.e., its <process_id> in the
- * <process_table_>. Each entry is added at the end, growing the
- * table if necessary.
- */
- int append_proc (ACE_Process *process);
-
- /// Actually removes the process at index <n> from the table. This method
- /// must be called with locks held.
- int remove_proc (size_t n);
-
- /// If there's a specific handler for the Process at index <n> in the
- /// table, or there's a default handler, call it.
- int notify_proc_handler (size_t n,
- ACE_exitcode status);
-
- /// Vector that describes process state within the Process_Manager.
- ACE_Process_Descriptor *process_table_;
-
- /// Maximum number of processes we can manage (should be dynamically
- /// allocated).
- size_t max_process_table_size_;
-
- /// Current number of processes we are managing.
- size_t current_count_;
-
- /// This event handler is used to notify when a process we control
- /// exits.
- ACE_Event_Handler *default_exit_handler_;
-
- /// Singleton pointer.
- static ACE_Process_Manager *instance_;
-
- /// Controls whether the <Process_Manager> is deleted when we shut
- /// down (we can only delete it safely if we created it!)
- static int delete_instance_;
-
-#if defined (ACE_HAS_THREADS)
- /// This lock protects access/ops on <process_table_>.
- ACE_Recursive_Thread_Mutex lock_;
-#endif /* ACE_HAS_THREADS */
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Process_Manager.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_PROCESS_MANAGER_H */
diff --git a/ace/Process_Manager.i b/ace/Process_Manager.i
deleted file mode 100644
index c6ee1f25260..00000000000
--- a/ace/Process_Manager.i
+++ /dev/null
@@ -1,8 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE size_t
-ACE_Process_Manager::managed (void) const
-{
- return current_count_;
-}
diff --git a/ace/Process_Mutex.cpp b/ace/Process_Mutex.cpp
deleted file mode 100644
index 7e60a9f33db..00000000000
--- a/ace/Process_Mutex.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-// $Id$
-
-#include "ace/Process_Mutex.h"
-#include "ace/Synch.h"
-#include "ace/Log_Msg.h"
-#include "ace/ACE.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Process_Mutex.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Process_Mutex, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Process_Mutex)
-
-void
-ACE_Process_Mutex::dump (void) const
-{
-// ACE_TRACE ("ACE_Process_Mutex::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->lock_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-const ACE_TCHAR *
-ACE_Process_Mutex::unique_name (void)
-{
- // For all platforms other than Win32, we are going to create a
- // machine-wide unique name if one is not provided by the user. On
- // Win32, unnamed synchronization objects are acceptable.
- ACE::unique_name (this, this->name_, ACE_UNIQUE_NAME_LEN);
- return this->name_;
-}
-
-ACE_Process_Mutex::ACE_Process_Mutex (const char *name, void *arg, mode_t mode)
-#if defined (_ACE_USE_SV_SEM)
- : lock_ (name ?
- ACE_TEXT_CHAR_TO_TCHAR (name) : this->unique_name (),
- ACE_SV_Semaphore_Complex::ACE_CREATE,
- 1,
- 1,
- mode)
-#else
- : lock_ (USYNC_PROCESS,
- name ?
- ACE_TEXT_CHAR_TO_TCHAR (name) : this->unique_name (),
- (ACE_mutexattr_t *) arg,
- mode)
-#endif /* _ACE_USE_SV_SEM */
-{
-#if defined (_ACE_USE_SV_SEM)
- ACE_UNUSED_ARG (arg);
-#endif /* !_ACE_USE_SV_SEM */
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_Process_Mutex::ACE_Process_Mutex (const wchar_t *name,
- void *arg,
- mode_t mode)
-#if defined (_ACE_USE_SV_SEM)
- : lock_ (name ?
- ACE_TEXT_WCHAR_TO_TCHAR (name) : this->unique_name (),
- ACE_SV_Semaphore_Complex::ACE_CREATE,
- 1,
- 1,
- mode)
-#else
- : lock_ (USYNC_PROCESS,
- name ?
- ACE_TEXT_WCHAR_TO_TCHAR (name) : this->unique_name (),
- (ACE_mutexattr_t *) arg,
- mode)
-#endif /* _ACE_USE_SV_SEM */
-{
-#if defined (_ACE_USE_SV_SEM)
- ACE_UNUSED_ARG (arg);
-#endif /* _ACE_USE_SV_SEM */
-}
-#endif /* ACE_HAS_WCHAR */
-ACE_Process_Mutex::~ACE_Process_Mutex (void)
-{
-}
-
-//
-// These are instantiated both with and without ACE_HAS_THREADS.
-//
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Guard<ACE_Process_Mutex>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_Guard<ACE_Process_Mutex>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Process_Mutex.h b/ace/Process_Mutex.h
deleted file mode 100644
index 3ee0cb38236..00000000000
--- a/ace/Process_Mutex.h
+++ /dev/null
@@ -1,201 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Process_Mutex.h
- *
- * $Id$
- *
- * A wrapper for mutexes that can be used across processes on the
- * same host machine, as well as within a process, of course.
- *
- * @author Douglas C. Schmidt <schmidt@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_PROCESS_MUTEX_H
-#define ACE_PROCESS_MUTEX_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// To make it easier to carry the setting though this file as well as
-// Process_Mutex.{cpp inl}, set a private macro here.
-#ifdef _ACE_USE_SV_SEM
-# undef _ACE_USE_SV_SEM
-#endif /* _ACE_USE_SV_SEM */
-#if defined (ACE_HAS_SYSV_IPC) && !defined (ACE_USES_MUTEX_FOR_PROCESS_MUTEX)
-# include "ace/SV_Semaphore_Complex.h"
-# define _ACE_USE_SV_SEM
-#else
-# include "ace/Synch.h"
-#endif /* ACE_HAS_SYSV_IPC && !ACE_USES_MUTEX_FOR_PROCESS_MUTEX */
-
-/**
- * @class ACE_Process_Mutex
- *
- * @brief A wrapper for mutexes that can be used across processes on
- * the same host machine, as well as within a process, of
- * course.
- *
- * @attention The mechanism upon which @c ACE_Process_Mutex is based
- * can be configured at build time to be either @c ACE_SV_Semaphore_Complex
- * (on platforms that support it) or @c ACE_Mutex. On platforms that
- * require interprocess mutexes be allocated from shared memory (Pthreads
- * and UI Threads are examples), @c ACE_SV_Semaphore_Complex provides a
- * more reliable mechanism for implementing inter-process mutex than
- * @c ACE_Mutex. However, at least on some platforms,
- * @c ACE_SV_Semaphore_Complex is limited to a small number of
- * objects by the underlying System V IPC kernel parameters. If you
- * want to force use of @c ACE_Mutex as the underlying mechanism, set
- * @c ACE_USES_MUTEX_FOR_PROCESS_MUTEX in your @c config.h file.
- * Also, if you require the ability to do a timed @c acquire(), you must
- * set @c ACE_USES_MUTEX_FOR_PROCESS_MUTEX, as timed acquire does not
- * work with System V semaphores.
- */
-class ACE_Export ACE_Process_Mutex
-{
-public:
- /**
- * Create a Process_Mutex, passing in the optional @c name.
- *
- * @param name optional, null-terminated string containing the name of
- * the object. Multiple users of the same @c ACE_Process_Mutex must use
- * the same name to access the same object. If not specified, a name
- * is generated.
- * @param arg optional, attributes to be used to initialize the mutex.
- * If using @c ACE_SV_Semaphore_Complex as the underlying mechanism,
- * this argument is ignored.
- * @param mode optional, the protection mode for either the backing store
- * file (for ACE_Mutex use) or the ACE_SV_Semaphore_Complex that's created.
- */
- ACE_Process_Mutex (const char *name = 0,
- void *arg = 0,
- mode_t mode = ACE_DEFAULT_FILE_PERMS);
-
-#if defined (ACE_HAS_WCHAR)
- /**
- * Create a Process_Mutex, passing in the optional @c name. (@c wchar_t
- * version)
- *
- * @param name optional, null-terminated string containing the name of
- * the object. Multiple users of the same @c ACE_Process_Mutex must use
- * the same name to access the same object. If not specified, a name
- * is generated.
- * @param arg optional, attributes to be used to initialize the mutex.
- * If using @c ACE_SV_Semaphore_Complex as the underlying mechanism,
- * this argument is ignored.
- * @param mode optional, the protection mode for either the backing store
- * file (for ACE_Mutex use) or the ACE_SV_Semaphore_Complex that's created.
- */
- ACE_Process_Mutex (const wchar_t *name,
- void *arg = 0,
- mode_t mode = ACE_DEFAULT_FILE_PERMS);
-#endif /* ACE_HAS_WCHAR */
-
- ~ACE_Process_Mutex (void);
-
- /**
- * Explicitly destroy the mutex. Note that only one thread should
- * call this method since it doesn't protect against race
- * conditions.
- *
- * @return 0 on success; -1 on failure.
- */
- int remove (void);
-
- /**
- * Acquire lock ownership (wait on queue if necessary).
- *
- * @return 0 on success; -1 on failure.
- */
- int acquire (void);
-
- /**
- * Acquire lock ownership, but timeout if lock if hasn't been
- * acquired by given time.
- *
- * @param tv the absolute time until which the caller is willing to
- * wait to acquire the lock.
- *
- * @return 0 on success; -1 on failure.
- */
- int acquire (ACE_Time_Value &tv);
-
- /**
- * Conditionally acquire lock (i.e., don't wait on queue).
- *
- * @return 0 on success; -1 on failure. If the lock could not be acquired
- * because someone else already had the lock, @c errno is set to @c EBUSY.
- */
- int tryacquire (void);
-
- /// Release lock and unblock a thread at head of queue.
- int release (void);
-
- /// Acquire lock ownership (wait on queue if necessary).
- int acquire_read (void);
-
- /// Acquire lock ownership (wait on queue if necessary).
- int acquire_write (void);
-
- /**
- * Conditionally acquire a lock (i.e., won't block). Returns -1 on
- * failure. If we "failed" because someone else already had the
- * lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_read (void);
-
- /**
- * Conditionally acquire a lock (i.e., won't block). Returns -1 on
- * failure. If we "failed" because someone else already had the
- * lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_write (void);
-
- /**
- * This is only here for consistency with the other synchronization
- * APIs and usability with Lock adapters. Assumes the caller already has
- * acquired the mutex and returns 0 in all cases.
- */
- int tryacquire_write_upgrade (void);
-
-#if !defined (_ACE_USE_SV_SEM)
- /// Return the underlying mutex.
- const ACE_mutex_t &lock (void) const;
-#endif /* !_ACE_USE_SV_SEM */
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// If the user does not provide a name we generate a unique name in
- /// this buffer.
- ACE_TCHAR name_[ACE_UNIQUE_NAME_LEN];
-
- /// Create and return the unique name.
- const ACE_TCHAR *unique_name (void);
-
-#if defined (_ACE_USE_SV_SEM)
- /// We need this to get the right semantics...
- ACE_SV_Semaphore_Complex lock_;
-#else
- ACE_Mutex lock_;
-#endif /* _ACE_USE_SV_SEM */
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Process_Mutex.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_PROCESS_MUTEX_H */
diff --git a/ace/Process_Mutex.inl b/ace/Process_Mutex.inl
deleted file mode 100644
index 14c0af99e42..00000000000
--- a/ace/Process_Mutex.inl
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if !defined (_ACE_USE_SV_SEM)
-ACE_INLINE const ACE_mutex_t &
-ACE_Process_Mutex::lock (void) const
-{
-// ACE_TRACE ("ACE_Process_Mutex::lock");
- return this->lock_.lock ();
-}
-#endif /* !_ACE_USE_SV_SEM */
-
-// Explicitly destroy the mutex.
-ACE_INLINE int
-ACE_Process_Mutex::remove (void)
-{
- return this->lock_.remove ();
-}
-
-// Acquire lock ownership (wait on priority queue if necessary).
-ACE_INLINE int
-ACE_Process_Mutex::acquire (void)
-{
- return this->lock_.acquire ();
-}
-
-// Acquire lock ownership (wait on priority queue if necessary).
-ACE_INLINE int
-ACE_Process_Mutex::acquire (ACE_Time_Value &tv)
-{
-#if !defined (_ACE_USE_SV_SEM)
- return this->lock_.acquire (tv);
-#else
- ACE_UNUSED_ARG (tv);
- ACE_NOTSUP_RETURN (-1);
-#endif /* !_ACE_USE_SV_SEM */
-}
-
-// Conditionally acquire lock (i.e., don't wait on queue).
-ACE_INLINE int
-ACE_Process_Mutex::tryacquire (void)
-{
- return this->lock_.tryacquire ();
-}
-
-// Release lock and unblock a thread at head of priority queue.
-ACE_INLINE int
-ACE_Process_Mutex::release (void)
-{
- return this->lock_.release ();
-}
-
-// Acquire lock ownership (wait on priority queue if necessary).
-ACE_INLINE int
-ACE_Process_Mutex::acquire_read (void)
-{
- return this->lock_.acquire_read ();
-}
-
-// Acquire lock ownership (wait on priority queue if necessary).
-ACE_INLINE int
-ACE_Process_Mutex::acquire_write (void)
-{
- return this->lock_.acquire_write ();
-}
-
-// Conditionally acquire a lock (i.e., won't block).
-ACE_INLINE int
-ACE_Process_Mutex::tryacquire_read (void)
-{
- return this->lock_.tryacquire_read ();
-}
-
-// Conditionally acquire a lock (i.e., won't block).
-ACE_INLINE int
-ACE_Process_Mutex::tryacquire_write (void)
-{
- return this->lock_.tryacquire_write ();
-}
-
-ACE_INLINE int
-ACE_Process_Mutex::tryacquire_write_upgrade (void)
-{
- return 0;
-}
diff --git a/ace/Process_Semaphore.cpp b/ace/Process_Semaphore.cpp
deleted file mode 100644
index ebc036b509b..00000000000
--- a/ace/Process_Semaphore.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-// $Id$
-
-#include "ace/Process_Semaphore.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Process_Semaphore.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Process_Semaphore, "$Id$")
-
-void
-ACE_Process_Semaphore::dump (void) const
-{
-// ACE_TRACE ("ACE_Process_Semaphore::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->lock_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Process_Semaphore::ACE_Process_Semaphore (u_int count,
- const ACE_TCHAR *name,
- void *arg,
- int max)
-#if defined (ACE_WIN32) || defined (ACE_HAS_POSIX_SEM) || defined (ACE_PSOS)
- : lock_ (count, USYNC_PROCESS, name, arg, max)
-#else
- : lock_ (name, ACE_SV_Semaphore_Complex::ACE_CREATE, count)
-#endif /* ACE_WIN32 || ACE_HAS_POSIX_SEM || ACE_PSOS */
-{
- arg = arg;
- max = max;
-// ACE_TRACE ("ACE_Process_Semaphore::ACE_Process_Semaphore");
-}
-
-ACE_Process_Semaphore::~ACE_Process_Semaphore (void)
-{
- // ACE_TRACE ("ACE_Process_Semaphore::~ACE_Process_Semaphore");
-}
-
-// Explicitly destroy the semaphore.
-
-int
-ACE_Process_Semaphore::remove (void)
-{
-// ACE_TRACE ("ACE_Process_Semaphore::remove");
- return this->lock_.remove ();
-}
-
-// Block the thread until the semaphore count becomes
-// greater than 0, then decrement it.
-
-int
-ACE_Process_Semaphore::acquire (void)
-{
-// ACE_TRACE ("ACE_Process_Semaphore::acquire");
- return this->lock_.acquire ();
-}
-
-// Conditionally decrement the semaphore if count is greater
-// than 0 (i.e., won't block).
-
-int
-ACE_Process_Semaphore::tryacquire (void)
-{
-// ACE_TRACE ("ACE_Process_Semaphore::tryacquire");
- return this->lock_.tryacquire ();
-}
-
-// Increment the semaphore, potentially unblocking
-// a waiting thread.
-
-int
-ACE_Process_Semaphore::release (void)
-{
-// ACE_TRACE ("ACE_Process_Semaphore::release");
- return this->lock_.release ();
-}
-
-//
-// These are instantiated both with and without ACE_HAS_THREADS.
-//
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-// template class ACE_Guard<ACE_Process_Semaphore>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-// #pragma instantiate ACE_Guard<ACE_Process_Semaphore>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Process_Semaphore.h b/ace/Process_Semaphore.h
deleted file mode 100644
index 208bafe8dc1..00000000000
--- a/ace/Process_Semaphore.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Process_Semaphore.h
- *
- * $Id$
- *
- * Wrapper for Dijkstra style general semaphores that work
- * across processes.
- *
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_PROCESS_SEMAPHORE_H
-#define ACE_PROCESS_SEMAPHORE_H
-#include "ace/pre.h"
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !(defined (ACE_WIN32) || defined (ACE_HAS_POSIX_SEM) || defined (ACE_PSOS))
-#include "ace/SV_Semaphore_Complex.h"
-#endif /* !(ACE_WIN32 || ACE_HAS_POSIX_SEM || ACE_PSOS) */
-
-/**
- * @class ACE_Process_Semaphore
- *
- * @brief Wrapper for Dijkstra style general semaphores that work
- * across processes.
- */
-class ACE_Export ACE_Process_Semaphore
-{
-public:
- /// Initialize the semaphore, with an initial value of <count> and a
- /// maximum value of <max>.
- ACE_Process_Semaphore (u_int count = 1, // By default make this unlocked.
- const ACE_TCHAR *name = 0,
- void * = 0,
- int max = 0x7FFFFFFF);
-
- /**
- * This method is a no-op, i.e., it doesn't remove the semaphore.
- * If you want to remove the semaphore, you must call the <remove>
- * method explicitly.
- */
- ~ACE_Process_Semaphore (void);
-
- /**
- * Explicitly destroy the semaphore. Note that only one thread
- * should call this method since it doesn't protect against race
- * conditions.
- */
- int remove (void);
-
- /// Block the thread until the semaphore count becomes greater than
- /// 0, then decrement it.
- int acquire (void);
-
- /**
- * Conditionally decrement the semaphore if count is greater than 0
- * (i.e., won't block). Returns -1 on failure. If we "failed"
- * because someone else already had the lock, <errno> is set to
- * <EBUSY>.
- */
- int tryacquire (void);
-
- /// Increment the semaphore, potentially unblocking a waiting thread.
- int release (void);
-
- /**
- * Acquire semaphore ownership. This calls <acquire> and is only
- * here to make the <ACE_Process_Semaphore> interface consistent
- * with the other synchronization APIs.
- */
- int acquire_read (void);
-
- /**
- * Acquire semaphore ownership. This calls <acquire> and is only
- * here to make the <ACE_Process_Semaphore> interface consistent
- * with the other synchronization APIs.
- */
- int acquire_write (void);
-
- /**
- * Conditionally acquire semaphore (i.e., won't block). This calls
- * <tryacquire> and is only here to make the <ACE_Process_Semaphore>
- * interface consistent with the other synchronization APIs.
- * Returns -1 on failure. If we "failed" because someone else
- * already had the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_read (void);
-
- /**
- * Conditionally acquire semaphore (i.e., won't block). This calls
- * <tryacquire> and is only here to make the <ACE_Process_Semaphore>
- * interface consistent with the other synchronization APIs.
- * Returns -1 on failure. If we "failed" because someone else
- * already had the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_write (void);
-
- /**
- * This is only here to make the <ACE_Process_Semaphore>
- * interface consistent with the other synchronization APIs.
- * Assumes the caller has already acquired the semaphore using one of
- * the above calls, and returns 0 (success) always.
- */
- int tryacquire_write_upgrade (void);
-
-#if defined (ACE_WIN32) || defined (ACE_HAS_POSIX_SEM) || defined (ACE_PSOS)
- /// Return the underlying lock.
- const ACE_sema_t &lock (void) const;
-#endif /* ACE_WIN32 || ACE_HAS_POSIX_SEM || ACE_PSOS */
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
-#if defined (ACE_WIN32) || defined (ACE_HAS_POSIX_SEM) || defined (ACE_PSOS)
- ACE_Semaphore lock_;
-#else
- /// We need this to get the right semantics...
- ACE_SV_Semaphore_Complex lock_;
-#endif /* ACE_WIN32 || ACE_HAS_POSIX_SEM || ACE_PSOS */
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Process_Semaphore.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_PROCESS_SEMAPHORE_H */
diff --git a/ace/Process_Semaphore.inl b/ace/Process_Semaphore.inl
deleted file mode 100644
index 8470291233c..00000000000
--- a/ace/Process_Semaphore.inl
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if defined (ACE_WIN32) || defined (ACE_HAS_POSIX_SEM) || defined (ACE_PSOS)
-ACE_INLINE const ACE_sema_t &
-ACE_Process_Semaphore::lock (void) const
-{
-// ACE_TRACE ("ACE_Process_Semaphore::lock");
- return this->lock_.lock ();
-}
-#endif /* ACE_WIN32 || ACE_HAS_POSIX_SEM || ACE_PSOS */
-
-// Acquire semaphore ownership. This calls <acquire> and is only here
-// to make the <ACE_Process_Semaphore> interface consistent with the
-// other synchronization APIs.
-
-ACE_INLINE int
-ACE_Process_Semaphore::acquire_read (void)
-{
- return this->acquire ();
-}
-
-// Acquire semaphore ownership. This calls <acquire> and is only here
-// to make the <ACE_Process_Semaphore> interface consistent with the
-// other synchronization APIs.
-
-ACE_INLINE int
-ACE_Process_Semaphore::acquire_write (void)
-{
- return this->acquire ();
-}
-
-// Conditionally acquire semaphore (i.e., won't block). This calls
-// <tryacquire> and is only here to make the <ACE_Process_Semaphore>
-// interface consistent with the other synchronization APIs.
-
-ACE_INLINE int
-ACE_Process_Semaphore::tryacquire_read (void)
-{
- return this->tryacquire ();
-}
-
-// Conditionally acquire semaphore (i.e., won't block). This calls
-// <tryacquire> and is only here to make the <ACE_Process_Semaphore>
-// interface consistent with the other synchronization APIs.
-
-ACE_INLINE int
-ACE_Process_Semaphore::tryacquire_write (void)
-{
- return this->tryacquire ();
-}
-
-// This is only here to make the <ACE_Process_Semaphore>
-// interface consistent with the other synchronization APIs.
-// Assumes the caller has already acquired the semaphore using one of
-// the above calls, and returns 0 (success) always.
-ACE_INLINE int
-ACE_Process_Semaphore::tryacquire_write_upgrade (void)
-{
- return 0;
-}
diff --git a/ace/Profile_Timer.cpp b/ace/Profile_Timer.cpp
deleted file mode 100644
index 2f4ef9f8f87..00000000000
--- a/ace/Profile_Timer.cpp
+++ /dev/null
@@ -1,418 +0,0 @@
-// $Id$
-
-#include "ace/Profile_Timer.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-# include "ace/Profile_Timer.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Profile_Timer, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Profile_Timer)
-
-#if (defined (ACE_HAS_PRUSAGE_T) || defined (ACE_HAS_GETRUSAGE)) && !defined (ACE_WIN32)
-
-void
-ACE_Profile_Timer::dump (void) const
-{
- ACE_TRACE ("ACE_Profile_Timer::dump");
-}
-
-// Initialize interval timer.
-
-ACE_Profile_Timer::ACE_Profile_Timer (void)
-{
- ACE_TRACE ("ACE_Profile_Timer::ACE_Profile_Timer");
- ACE_OS::memset (&this->end_usage_, 0, sizeof this->end_usage_);
- ACE_OS::memset (&this->begin_usage_, 0, sizeof this->begin_usage_);
- ACE_OS::memset (&this->last_usage_, 0, sizeof this->last_usage_);
-
-# if defined (ACE_HAS_PRUSAGE_T)
- ACE_OS::memset (&this->last_usage_, 0, sizeof this->last_usage_);
- char buf[20];
- ACE_OS::sprintf (buf, "/proc/%d", ACE_static_cast (int, ACE_OS::getpid ()));
-
- this->proc_handle_ = ACE_OS::open (buf, O_RDONLY, 0);
- if (this->proc_handle_ == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- buf));
-# elif defined (ACE_HAS_GETRUSAGE)
- ACE_OS::memset (&this->begin_time_, 0, sizeof this->begin_time_);
- ACE_OS::memset (&this->end_time_, 0, sizeof this->end_time_);
- ACE_OS::memset (&this->last_time_, 0, sizeof this->last_time_);
-# endif /* ACE_HAS_PRUSAGE_T */
-}
-
-// Terminate the interval timer.
-ACE_Profile_Timer::~ACE_Profile_Timer (void)
-{
- ACE_TRACE ("ACE_Profile_Timer::~ACE_Profile_Timer");
-# if defined (ACE_HAS_PRUSAGE_T)
- if (ACE_OS::close (this->proc_handle_) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Profile_Timer::~ACE_Profile_Timer")));
-# endif /* ACE_HAS_PRUSAGE_T */
-}
-
-// Return the resource utilization.
-
-void
-ACE_Profile_Timer::get_rusage (ACE_Profile_Timer::Rusage &usage)
-{
- ACE_TRACE ("ACE_Profile_Timer::get_rusage");
- usage = this->end_usage_;
-}
-
-# if defined (ACE_HAS_PRUSAGE_T)
-
-// Compute the amount of resource utilization since the start time.
-
-void
-ACE_Profile_Timer::elapsed_rusage (ACE_Profile_Timer::Rusage &rusage)
-{
- ACE_TRACE ("ACE_Profile_Timer::elapsed_rusage");
- rusage.pr_lwpid =
- this->end_usage_.pr_lwpid - this->last_usage_.pr_lwpid;
- rusage.pr_count =
- this->end_usage_.pr_count - this->last_usage_.pr_count;
- rusage.pr_minf =
- this->end_usage_.pr_minf - this->last_usage_.pr_minf;
- rusage.pr_majf =
- this->end_usage_.pr_majf - this->last_usage_.pr_majf;
- rusage.pr_inblk =
- this->end_usage_.pr_inblk - this->last_usage_.pr_inblk;
- rusage.pr_oublk =
- this->end_usage_.pr_oublk - this->last_usage_.pr_oublk;
- rusage.pr_msnd =
- this->end_usage_.pr_msnd - this->last_usage_.pr_msnd;
- rusage.pr_mrcv =
- this->end_usage_.pr_mrcv - this->last_usage_.pr_mrcv;
- rusage.pr_sigs =
- this->end_usage_.pr_sigs - this->last_usage_.pr_sigs;
- this->subtract (rusage.pr_wtime,
- this->end_usage_.pr_wtime,
- this->last_usage_.pr_wtime);
- this->subtract (rusage.pr_ltime,
- this->end_usage_.pr_ltime,
- this->last_usage_.pr_ltime);
- this->subtract (rusage.pr_slptime,
- this->end_usage_.pr_slptime,
- this->last_usage_.pr_slptime);
- rusage.pr_vctx =
- this->end_usage_.pr_vctx - this->last_usage_.pr_vctx;
- rusage.pr_ictx =
- this->end_usage_.pr_ictx - this->last_usage_.pr_ictx;
- rusage.pr_sysc =
- this->end_usage_.pr_sysc - this->last_usage_.pr_sysc;
- rusage.pr_ioch =
- this->end_usage_.pr_ioch - this->last_usage_.pr_ioch;
-}
-
-// Compute the elapsed time.
-
-void
-ACE_Profile_Timer::compute_times (ACE_Elapsed_Time &et)
-{
- ACE_TRACE ("ACE_Profile_Timer::compute_times");
- timespec_t td;
-
- ACE_Profile_Timer::Rusage &end = this->end_usage_;
- ACE_Profile_Timer::Rusage &begin = this->begin_usage_;
-
- this->subtract (td, end.pr_tstamp, begin.pr_tstamp);
- // Convert nanoseconds into seconds.
- et.real_time = td.tv_sec + ((double) td.tv_nsec) / ACE_ONE_SECOND_IN_NSECS;
- this->subtract (td, end.pr_utime, begin.pr_utime);
- // Convert nanoseconds into seconds.
- et.user_time = td.tv_sec + ((double) td.tv_nsec) / ACE_ONE_SECOND_IN_NSECS;
- this->subtract (td, end.pr_stime, begin.pr_stime);
- // Convert nanoseconds into seconds.
- et.system_time = td.tv_sec + ((double) td.tv_nsec) / ACE_ONE_SECOND_IN_NSECS;
-}
-
-// Determine the difference between T1 and T2.
-
-void
-ACE_Profile_Timer::subtract (timespec_t &tdiff, timespec_t &t1, timespec_t &t0)
-{
- ACE_TRACE ("ACE_Profile_Timer::subtract");
- tdiff.tv_sec = t1.tv_sec - t0.tv_sec;
- tdiff.tv_nsec = t1.tv_nsec - t0.tv_nsec;
-
- // Normalize the time.
-
- while (tdiff.tv_nsec < 0)
- {
- tdiff.tv_sec--;
- tdiff.tv_nsec += ACE_ONE_SECOND_IN_NSECS;
- }
-}
-
-# elif defined (ACE_HAS_GETRUSAGE)
-// Compute the amount of resource utilization since the start time.
-
-void
-ACE_Profile_Timer::elapsed_rusage (ACE_Profile_Timer::Rusage &usage)
-{
- ACE_TRACE ("ACE_Profile_Timer::elapsed_rusage");
-# if !defined (ACE_HAS_LIMITED_RUSAGE_T)
- // integral shared memory size
- usage.ru_ixrss =
- this->end_usage_.ru_ixrss - this->last_usage_.ru_ixrss;
- // integral unshared data "
- usage.ru_idrss =
- this->end_usage_.ru_idrss - this->last_usage_.ru_idrss;
- // integral unshared stack "
- usage.ru_isrss =
- this->end_usage_.ru_isrss - this->last_usage_.ru_isrss;
- // page reclaims - total vmfaults
- usage.ru_minflt =
- this->end_usage_.ru_minflt - this->last_usage_.ru_minflt;
- // page faults
- usage.ru_majflt =
- this->end_usage_.ru_majflt - this->last_usage_.ru_majflt;
- // swaps
- usage.ru_nswap =
- this->end_usage_.ru_nswap - this->last_usage_.ru_nswap;
- // block input operations
- usage.ru_inblock =
- this->end_usage_.ru_inblock - this->last_usage_.ru_inblock;
- // block output operations
- usage.ru_oublock =
- this->end_usage_.ru_oublock - this->last_usage_.ru_oublock;
- // messages sent
- usage.ru_msgsnd =
- this->end_usage_.ru_msgsnd - this->last_usage_.ru_msgsnd;
- // messages received
- usage.ru_msgrcv =
- this->end_usage_.ru_msgrcv - this->last_usage_.ru_msgrcv;
- // signals received
- usage.ru_nsignals =
- this->end_usage_.ru_nsignals - this->last_usage_.ru_nsignals;
- // voluntary context switches
- usage.ru_nvcsw =
- this->end_usage_.ru_nvcsw - this->last_usage_.ru_nvcsw;
- // involuntary context switches
- usage.ru_nivcsw =
- this->end_usage_.ru_nivcsw - this->last_usage_.ru_nivcsw;
- this->subtract (usage.ru_utime,
- this->end_usage_.ru_utime,
- this->last_usage_.ru_utime);
- this->subtract (usage.ru_stime,
- this->end_usage_.ru_stime,
- this->last_usage_.ru_stime);
-# else
- ACE_UNUSED_ARG(usage);
-# endif /* ACE_HAS_LIMITED_RUSAGE_T */
-}
-
-void
-ACE_Profile_Timer::compute_times (ACE_Elapsed_Time &et)
-{
- ACE_TRACE ("ACE_Profile_Timer::compute_times");
-
- timeval td;
-
- this->subtract (td, this->end_time_, this->begin_time_);
- et.real_time = td.tv_sec + ((double) td.tv_usec) / ACE_ONE_SECOND_IN_USECS;
-
- this->subtract (td, this->end_usage_.ru_utime, this->begin_usage_.ru_utime);
- et.user_time = td.tv_sec + ((double) td.tv_usec) / ACE_ONE_SECOND_IN_USECS;
-
- this->subtract (td, this->end_usage_.ru_stime, this->begin_usage_.ru_stime);
- et.system_time = td.tv_sec + ((double) td.tv_usec) / ACE_ONE_SECOND_IN_USECS;
-}
-
-// Determine the difference between T1 and T2.
-
-void
-ACE_Profile_Timer::subtract (timeval &tdiff, timeval &t1, timeval &t0)
-{
- ACE_TRACE ("ACE_Profile_Timer::subtract");
- tdiff.tv_sec = t1.tv_sec - t0.tv_sec;
- tdiff.tv_usec = t1.tv_usec - t0.tv_usec;
-
- // Normalize the time.
-
- while (tdiff.tv_usec < 0)
- {
- tdiff.tv_sec--;
- tdiff.tv_usec += ACE_ONE_SECOND_IN_USECS;
- }
-}
-
-# endif /* ACE_HAS_PRUSAGE_T */
-
-// Compute the amount of time that has elapsed between start and stop.
-
-int
-ACE_Profile_Timer::elapsed_time (ACE_Elapsed_Time &et)
-{
- ACE_TRACE ("ACE_Profile_Timer::elapsed_time");
- this->compute_times (et);
- return 0;
-}
-
-#elif defined (ACE_WIN32) /* defined (ACE_HAS_PRUSAGE_T) || defined (ACE_HAS_GETRUSAGE) */
-
-void
-ACE_Profile_Timer::dump (void) const
-{
- ACE_TRACE ("ACE_Profile_Timer::dump");
- timer_.dump ();
-}
-
-// Initialize interval timer.
-ACE_Profile_Timer::ACE_Profile_Timer (void)
- : timer_ ()
-{
- ACE_TRACE ("ACE_Profile_Timer::ACE_Profile_Timer");
-# if defined (ACE_HAS_GETRUSAGE)
-
- ACE_OS::memset (&this->end_usage_, 0, sizeof this->end_usage_);
- ACE_OS::memset (&this->begin_usage_, 0, sizeof this->begin_usage_);
- ACE_OS::memset (&this->last_usage_, 0, sizeof this->last_usage_);
-
- ACE_OS::memset (&this->begin_time_, 0, sizeof this->begin_time_);
- ACE_OS::memset (&this->end_time_, 0, sizeof this->end_time_);
- ACE_OS::memset (&this->last_time_, 0, sizeof this->last_time_);
-# endif /* ACE_HAS_GETRUSAGE */
-}
-
-int
-ACE_Profile_Timer::elapsed_time (ACE_Elapsed_Time &et)
-{
- ACE_TRACE ("ACE_Profile_Timer::elapsed_time");
-
- ACE_hrtime_t delta_t; // nanoseconds
- timer_.elapsed_time (delta_t);
-# if defined (ACE_LACKS_LONGLONG_T)
- et.real_time = delta_t / (double) ACE_ONE_SECOND_IN_NSECS;
-# else
- et.real_time = (__int64) delta_t / (double) ACE_ONE_SECOND_IN_NSECS;
-# endif /* ACE_LACKS_LONGLONG_T */
-# if defined (ACE_HAS_GETRUSAGE)
- ACE_Time_Value atv = ACE_Time_Value (this->end_usage_.ru_utime)
- - ACE_Time_Value (this->begin_usage_.ru_utime);
- et.user_time = atv.sec () + ((double) atv.usec ()) / ACE_ONE_SECOND_IN_USECS;
-
- atv = ACE_Time_Value (this->end_usage_.ru_stime)
- - ACE_Time_Value (this->begin_usage_.ru_stime);
- et.system_time = atv.sec () + ((double) atv.usec ()) / ACE_ONE_SECOND_IN_USECS;
-# else /* ACE_HAS_GETRUSAGE */
- et.user_time = 0;
- et.system_time = 0;
-# endif /* ACE_HAS_GETRUSAGE */
-
- return 0;
-}
-
-// Return the resource utilization.
-
-void
-ACE_Profile_Timer::get_rusage (ACE_Profile_Timer::Rusage &usage)
-{
- ACE_TRACE ("ACE_Profile_Timer::get_rusage");
-# if defined (ACE_HAS_GETRUSAGE)
- usage = this->end_usage_;
-# else /* ACE_HAS_GETRUSAGE */
- usage = 0;
-# endif /* ACE_HAS_GETRUSAGE */
-}
-
-// Compute the amount of resource utilization since the start time.
-
-void
-ACE_Profile_Timer::elapsed_rusage (ACE_Profile_Timer::Rusage &usage)
-{
- ACE_TRACE ("ACE_Profile_Timer::elapsed_rusage");
-
-# if defined (ACE_HAS_GETRUSAGE)
- usage.ru_utime =
- this->end_usage_.ru_utime - this->begin_usage_.ru_utime;
- usage.ru_stime =
- this->end_usage_.ru_stime - this->begin_usage_.ru_stime;
-# else /* ACE_HAS_GETRUSAGE */
- usage = 0;
-# endif /* ACE_HAS_GETRUSAGE */
-}
-
-# if defined (ACE_HAS_GETRUSAGE)
-// Determine the difference between T1 and T2.
-
-void
-ACE_Profile_Timer::subtract (timeval &tdiff, timeval &t1, timeval &t0)
-{
- ACE_TRACE ("ACE_Profile_Timer::subtract");
- tdiff.tv_sec = t1.tv_sec - t0.tv_sec;
- tdiff.tv_usec = t1.tv_usec - t0.tv_usec;
-
- // Normalize the time.
-
- while (tdiff.tv_usec < 0)
- {
- tdiff.tv_sec--;
- tdiff.tv_usec += ACE_ONE_SECOND_IN_USECS;
- }
-}
-# endif /* ACE_HAS_GETRUSAGE */
-
-#else
-
-void
-ACE_Profile_Timer::dump (void) const
-{
- ACE_TRACE ("ACE_Profile_Timer::dump");
- timer_.dump ();
-}
-
-ACE_Profile_Timer::ACE_Profile_Timer (void)
- : timer_ ()
-{
- ACE_TRACE ("ACE_Profile_Timer::ACE_Profile_Timer");
-}
-
-int
-ACE_Profile_Timer::elapsed_time (ACE_Elapsed_Time &et)
-{
- ACE_TRACE ("ACE_Profile_Timer::elapsed_time");
-
-# if defined (ACE_LACKS_FLOATING_POINT)
- ACE_Time_Value delta_t; /* elapsed time will be in microseconds */
- timer_.elapsed_time (delta_t);
-
- // Store the time in usecs.
- et.real_time = delta_t.sec () * ACE_ONE_SECOND_IN_USECS +
- delta_t.usec ();
-# else /* ! ACE_LACKS_FLOATING_POINT */
- ACE_hrtime_t delta_t; /* nanoseconds */
- timer_.elapsed_time (delta_t);
-
- et.real_time = delta_t / (double) ACE_ONE_SECOND_IN_NSECS;
-# endif /* ! ACE_LACKS_FLOATING_POINT */
-
- et.user_time = 0;
- et.system_time = 0;
-
- return 0;
-}
-
-void
-ACE_Profile_Timer::get_rusage (ACE_Profile_Timer::Rusage &usage)
-{
- ACE_TRACE ("ACE_Profile_Timer::get_rusage");
- usage = 0;
-}
-
-
-void
-ACE_Profile_Timer::elapsed_rusage (ACE_Profile_Timer::Rusage &usage)
-{
- ACE_TRACE ("ACE_Profile_Timer::elapsed_rusage");
- usage = 0;
-}
-
-#endif /* defined (ACE_HAS_PRUSAGE_T) ||
- defined (ACE_HAS_GETRUSAGE) && !defined (ACE_WIN32) */
diff --git a/ace/Profile_Timer.h b/ace/Profile_Timer.h
deleted file mode 100644
index 20a9aacf925..00000000000
--- a/ace/Profile_Timer.h
+++ /dev/null
@@ -1,139 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Profile_Timer.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//==========================================================================
-
-
-#ifndef ACE_PROFILE_TIMER_H
-#define ACE_PROFILE_TIMER_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-#include "ace/High_Res_Timer.h"
-
-/**
- * @class ACE_Profile_Timer
- *
- * @brief This class provides both a timing mechanism and a mechanism
- * for reporting the resource usage of a process.
- */
-class ACE_Export ACE_Profile_Timer
-{
-public:
-
- /**
- * @class ACE_Elapsed_Time
- *
- * @brief Keeps track of the various user, system, and elapsed (real)
- * times.
- *
- * @note If @c ACE_HAS_FLOATING_POINT is enabled, these values are in
- * microseconds; otherwise, they are in seconds.
- */
- class ACE_Elapsed_Time
- {
- public:
- /// Elapsed wall clock time.
- ACE_timer_t real_time;
-
- /// CPU time spent in user space.
- ACE_timer_t user_time;
-
- /// CPU time spent in system space.
- ACE_timer_t system_time;
- };
-
- typedef ACE_Rusage Rusage;
-
- // = Initialization and termination methods.
- /// Default constructor. Clears all time values to 0.
- ACE_Profile_Timer (void);
-
- /// Shutdown the timer.
- ~ACE_Profile_Timer (void);
-
- // = Timer methods.
- /// Activate the timer.
- int start (void);
-
- /// Stop the timer.
- int stop (void);
-
- // = Resource utilization methods.
- /// Compute the time elapsed between calls to @c start() and @c stop().
- int elapsed_time (ACE_Elapsed_Time &et);
-
- /// Compute the amount of resource utilization between calls to @c start()
- /// and @c stop().
- void elapsed_rusage (ACE_Profile_Timer::Rusage &rusage);
-
- /// Return the resource utilization (don't recompute it).
- void get_rusage (ACE_Profile_Timer::Rusage &rusage);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Compute how much time has elapsed.
- void compute_times (ACE_Elapsed_Time &et);
-
- /// Keep track of the starting resource utilization.
- ACE_Profile_Timer::Rusage begin_usage_;
-
- /// Keep track of the ending resource utilization.
- ACE_Profile_Timer::Rusage end_usage_;
-
- /// Keep track of the last rusage for incremental timing.
- ACE_Profile_Timer::Rusage last_usage_;
-
-#if defined (ACE_HAS_PRUSAGE_T)
- /// Substract two timestructs and store their difference.
- void subtract (timespec_t &tdiff, timespec_t &t0, timespec_t &t1);
-
- /// I/O handle for /proc file system.
- ACE_HANDLE proc_handle_;
-
-#elif defined (ACE_HAS_GETRUSAGE)
- /// Substract two timestructs and store their difference.
- void subtract (timeval &tdiff,
- timeval &t0,
- timeval &t1);
-
- /// Keep track of the beginning time.
- timeval begin_time_;
-
- /// Keep track of the ending time.
- timeval end_time_;
-
- /// Keep track of the last time for incremental timing.
- timeval last_time_;
-#endif /* ACE_HAS_PRUSAGE_T */
-
-#if defined (ACE_WIN32) || (!defined (ACE_HAS_PRUSAGE_T) && !defined (ACE_HAS_GETRUSAGE))
- /// The high resolution timer
- ACE_High_Res_Timer timer_;
-#endif /* ACE_WIN32 || !ACE_HAS_PRUSAGE_T && !ACE_HAS_GETRUSAGE */
-};
-
-#if defined (__ACE_INLINE__)
-# include "ace/Profile_Timer.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_PROFILE_TIMER_H */
diff --git a/ace/Profile_Timer.i b/ace/Profile_Timer.i
deleted file mode 100644
index e77af9b1686..00000000000
--- a/ace/Profile_Timer.i
+++ /dev/null
@@ -1,104 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if (defined (ACE_HAS_PRUSAGE_T) || defined (ACE_HAS_GETRUSAGE)) && !defined (ACE_WIN32)
-
-# if defined (ACE_HAS_PRUSAGE_T)
-ACE_INLINE int
-ACE_Profile_Timer::start (void)
-{
- ACE_TRACE ("ACE_Profile_Timer::start");
- return ACE_OS::ioctl (this->proc_handle_,
- PIOCUSAGE,
- &this->begin_usage_);
-}
-
-ACE_INLINE int
-ACE_Profile_Timer::stop (void)
-{
- ACE_TRACE ("ACE_Profile_Timer::stop");
- this->last_usage_ = this->end_usage_;
- return ACE_OS::ioctl (this->proc_handle_,
- PIOCUSAGE,
- &this->end_usage_);
-}
-# elif defined (ACE_HAS_GETRUSAGE)
-ACE_INLINE int
-ACE_Profile_Timer::start (void)
-{
- ACE_TRACE ("ACE_Profile_Timer::start");
- this->begin_time_ = ACE_OS::gettimeofday ();
- ACE_OS::getrusage (RUSAGE_SELF,
- &this->begin_usage_);
- return 0;
-}
-
-ACE_INLINE int
-ACE_Profile_Timer::stop (void)
-{
- ACE_TRACE ("ACE_Profile_Timer::stop");
- this->last_time_ = this->end_time_;
- this->end_time_ = ACE_OS::gettimeofday ();
- this->last_usage_ = this->end_usage_;
- ACE_OS::getrusage (RUSAGE_SELF,
- &this->end_usage_);
- return 0;
-}
-
-# endif /* ACE_HAS_PRUSAGE_T */
-
-#elif defined (ACE_WIN32)
-
-ACE_INLINE
-ACE_Profile_Timer::~ACE_Profile_Timer (void)
-{
-}
-
-ACE_INLINE int
-ACE_Profile_Timer::start (void)
-{
- ACE_TRACE ("ACE_Profile_Timer::start");
-# if defined (ACE_HAS_GETRUSAGE)
- ACE_OS::getrusage (RUSAGE_SELF,
- &this->begin_usage_);
-# endif /* ACE_HAS_GETRUSAGE */
- this->timer_.start ();
- return 0;
-}
-
-ACE_INLINE int
-ACE_Profile_Timer::stop (void)
-{
- ACE_TRACE ("ACE_Profile_Timer::stop");
- this->timer_.stop ();
-# if defined (ACE_HAS_GETRUSAGE)
- this->last_usage_ = this->end_usage_;
- ACE_OS::getrusage (RUSAGE_SELF, &this->end_usage_);
-# endif /* ACE_HAS_GETRUSAGE */
- return 0;
-}
-
-#else
-
-ACE_INLINE int
-ACE_Profile_Timer::start (void)
-{
- ACE_TRACE ("ACE_Profile_Timer::start");
- this->timer_.start ();
- return 0;
-}
-
-ACE_INLINE int
-ACE_Profile_Timer::stop (void)
-{
- ACE_TRACE ("ACE_Profile_Timer::stop");
- this->timer_.stop ();
- return 0;
-}
-
-ACE_INLINE
-ACE_Profile_Timer::~ACE_Profile_Timer (void)
-{
-}
-
-#endif /* defined (ACE_HAS_PRUSAGE_T) || defined (ACE_HAS_GETRUSAGE) */
diff --git a/ace/QoS/ACE_QoS.dsp b/ace/QoS/ACE_QoS.dsp
deleted file mode 100644
index d9ddb8c4c11..00000000000
--- a/ace/QoS/ACE_QoS.dsp
+++ /dev/null
@@ -1,145 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ACE_QoS DLL" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=ACE_QoS DLL - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "ACE_QoS.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "ACE_QoS.mak" CFG="ACE_QoS DLL - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ACE_QoS DLL - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "ACE_QoS DLL - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "ACE_QoS DLL - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACE_QOS_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "ACE_QoS_BUILD_DLL" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 ace.lib /nologo /dll /pdb:"ACE_RMCast.pdb" /machine:I386 /out:"..\..\bin\ACE_QoS.dll" /libpath:".."
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "ACE_QoS DLL - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACE_QOS_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\.." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "ACE_QoS_BUILD_DLL" /Fo"DLL\Debug/" /Fd"DLL\Debug/" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /dll /debug /machine:I386 /out:"..\..\bin\ACE_QoSd.dll" /pdbtype:sept /libpath:".."
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "ACE_QoS DLL - Win32 Release"
-# Name "ACE_QoS DLL - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\QoS_Decorator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Impl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast_QoS.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\QoS_Decorator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Impl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast_QoS.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/ace/QoS/ACE_QoS.dsw b/ace/QoS/ACE_QoS.dsw
deleted file mode 100644
index 03b5900b586..00000000000
--- a/ace/QoS/ACE_QoS.dsw
+++ /dev/null
@@ -1,41 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "ACE_QoS"=".\ACE_QoS.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "ACE_QoS_Lib"=".\ACE_QoS_Lib.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/ace/QoS/ACE_QoS_Export.h b/ace/QoS/ACE_QoS_Export.h
deleted file mode 100644
index 45790bbd24c..00000000000
--- a/ace/QoS/ACE_QoS_Export.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// -*- C++ -*-
-// $Id$
-// Definition for Win32 Export directives.
-// This file is generated automatically by
-// generate_export_file.pl
-// ------------------------------
-#if !defined (ACE_QOS_EXPORT_H)
-#define ACE_QOS_EXPORT_H
-
-#include "ace/config-all.h"
-
-#if defined (ACE_AS_STATIC_LIBS)
-# if !defined (ACE_QoS_HAS_DLL)
-# define ACE_QoS_HAS_DLL 0
-# endif /* ! ACE_QoS_HAS_DLL */
-#else
-# if !defined (ACE_QoS_HAS_DLL)
-# define ACE_QoS_HAS_DLL 1
-# endif /* ! ACE_QoS_HAS_DLL */
-#endif /* ACE_AS_STATIC_LIB */
-
-#if defined (ACE_QoS_HAS_DLL)
-# if (ACE_QoS_HAS_DLL == 1)
-# if defined (ACE_QoS_BUILD_DLL)
-# define ACE_QoS_Export ACE_Proper_Export_Flag
-# define ACE_QoS_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
-# define ACE_QoS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# else
-# define ACE_QoS_Export ACE_Proper_Import_Flag
-# define ACE_QoS_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
-# define ACE_QoS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ACE_QoS_BUILD_DLL */
-# else
-# define ACE_QoS_Export
-# define ACE_QoS_SINGLETON_DECLARATION(T)
-# define ACE_QoS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ! ACE_QoS_HAS_DLL == 1 */
-#else
-# define ACE_QoS_Export
-# define ACE_QoS_SINGLETON_DECLARATION(T)
-# define ACE_QoS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-#endif /* ACE_QoS_HAS_DLL */
-
-#endif /* ACE_QOS_EXPORT_H */
-
-// End of auto generated file.
diff --git a/ace/QoS/ACE_QoS_Lib.dsp b/ace/QoS/ACE_QoS_Lib.dsp
deleted file mode 100644
index c4facd6d3cf..00000000000
--- a/ace/QoS/ACE_QoS_Lib.dsp
+++ /dev/null
@@ -1,132 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ACE_QoS LIB" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=ACE_QoS LIB - Win32 Static Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "ACE_QoS_Lib.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "ACE_QoS_Lib.mak" CFG="ACE_QoS LIB - Win32 Static Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ACE_QoS LIB - Win32 Static Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "ACE_QoS LIB - Win32 Static Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "ACE_QoS LIB - Win32 Static Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Static_Release"
-# PROP BASE Intermediate_Dir "Static_Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Static_Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "ACE_QoS_BUILD_DLL" /D "ACE_AS_STATIC_LIBS" /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"ACE_QoSs.lib"
-
-!ELSEIF "$(CFG)" == "ACE_QoS LIB - Win32 Static Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "ACE_QoS LIB___Win32_Debug"
-# PROP BASE Intermediate_Dir "ACE_QoS LIB___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Static_Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\.." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "ACE_QoS_BUILD_DLL" /D "ACE_AS_STATIC_LIBS" /Fo"DLL\Debug/" /Fd"DLL\Debug/" /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"ACE_QoSsd.lib"
-
-!ENDIF
-
-# Begin Target
-
-# Name "ACE_QoS LIB - Win32 Static Release"
-# Name "ACE_QoS LIB - Win32 Static Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\QoS_Decorator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Impl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast_QoS.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\QoS_Decorator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Impl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast_QoS.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/ace/QoS/Makefile b/ace/QoS/Makefile
deleted file mode 100644
index b73b32ca19b..00000000000
--- a/ace/QoS/Makefile
+++ /dev/null
@@ -1,437 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-#----------------------------------------------------------------------------
-
-MAKEFILE = Makefile
-LIB = libACE_QoS.a
-SHLIB = libACE_QoS.$(SOEXT)
-
-FILES= QoS_Decorator \
- QoS_Manager \
- QoS_Session_Factory \
- QoS_Session_Impl \
- SOCK_Dgram_Mcast_QoS
-
-LIBS=$(ACELIB)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-
-LSRC = $(addsuffix .cpp,$(FILES))
-
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/QoS_Decorator.o .obj/QoS_Decorator.so .shobj/QoS_Decorator.o .shobj/QoS_Decorator.so: QoS_Decorator.cpp QoS_Decorator.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- SOCK_Dgram_Mcast_QoS.h \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
- QoS_Manager.h \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ACE_QoS_Export.h QoS_Session.h SOCK_Dgram_Mcast_QoS.i
-
-.obj/QoS_Manager.o .obj/QoS_Manager.so .shobj/QoS_Manager.o .shobj/QoS_Manager.so: QoS_Manager.cpp QoS_Manager.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ACE_QoS_Export.h QoS_Session.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i
-
-.obj/QoS_Session_Factory.o .obj/QoS_Session_Factory.so .shobj/QoS_Session_Factory.o .shobj/QoS_Session_Factory.so: QoS_Session_Factory.cpp QoS_Session_Factory.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/QoS/QoS_Session.h \
- $(ACE_ROOT)/ace/QoS/ACE_QoS_Export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ACE_QoS_Export.h QoS_Session_Impl.h QoS_Session_Impl.i
-
-.obj/QoS_Session_Impl.o .obj/QoS_Session_Impl.so .shobj/QoS_Session_Impl.o .shobj/QoS_Session_Impl.so: QoS_Session_Impl.cpp \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- QoS_Manager.h \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ACE_QoS_Export.h QoS_Session.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- QoS_Session_Impl.h \
- $(ACE_ROOT)/ace/QoS/QoS_Session.h \
- QoS_Session_Impl.i
-
-.obj/SOCK_Dgram_Mcast_QoS.o .obj/SOCK_Dgram_Mcast_QoS.so .shobj/SOCK_Dgram_Mcast_QoS.o .shobj/SOCK_Dgram_Mcast_QoS.so: SOCK_Dgram_Mcast_QoS.cpp \
- SOCK_Dgram_Mcast_QoS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
- QoS_Manager.h \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ACE_QoS_Export.h QoS_Session.h SOCK_Dgram_Mcast_QoS.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ace/QoS/Makefile.am b/ace/QoS/Makefile.am
deleted file mode 100644
index 45b79c11eca..00000000000
--- a/ace/QoS/Makefile.am
+++ /dev/null
@@ -1,39 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile.am for ACE_QoS library
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-lib_LTLIBRARIES = libACE_QoS.la
-
-libACE_QoS_la_SOURCES = \
- QoS_Decorator.cpp \
- QoS_Manager.cpp \
- QoS_Session_Factory.cpp \
- QoS_Session_Impl.cpp \
- SOCK_Dgram_Mcast_QoS.cpp
-
-libACE_QoS_la_LIBADD = $(top_builddir)/ace/libACE.la
-
-HEADER_FILES = \
- ACE_QoS_Export.h \
- QoS_Decorator.h \
- QoS_Manager.h \
- QoS_Session.h \
- QoS_Session_Factory.h \
- QoS_Session_Impl.h \
- SOCK_Dgram_Mcast_QoS.h
-
-INLINE_FILES = \
- QoS_Session_Impl.i \
- SOCK_Dgram_Mcast_QoS.i
-
-pkginclude_HEADERS = \
- $(HEADER_FILES) \
- $(INLINE_FILES)
diff --git a/ace/QoS/QoS_Decorator.cpp b/ace/QoS/QoS_Decorator.cpp
deleted file mode 100644
index 5db08066010..00000000000
--- a/ace/QoS/QoS_Decorator.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-// QoS_Decorator.cpp
-// $Id$
-
-#include "QoS_Decorator.h"
-
-ACE_RCSID(ace, QoS_Decorator, "$Id $")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_QOS_DECORATOR)
-
-// Constructor.
-ACE_QoS_Decorator_Base::ACE_QoS_Decorator_Base (void)
-{}
-
-// Constructor.
-ACE_QoS_Decorator_Base::ACE_QoS_Decorator_Base (ACE_Event_Handler
- *event_handler)
- : event_handler_ (event_handler)
-{
-}
-
-// Destructor.
-ACE_QoS_Decorator_Base::~ACE_QoS_Decorator_Base (void)
-{
-}
-
-// Forward the call to ACE_Event_Handler component.
-ACE_HANDLE
-ACE_QoS_Decorator_Base::get_handle (void) const
-{
- return this->event_handler_->get_handle ();
-}
-
-// Forward the call to ACE_Event_Handler component.
-int
-ACE_QoS_Decorator_Base::handle_input (ACE_HANDLE fd)
-{
- return this->event_handler_->handle_input (fd);
-}
-
-// Forward the call to ACE_Event_Handler component.
-int
-ACE_QoS_Decorator_Base::handle_qos (ACE_HANDLE fd)
-{
- return this->event_handler_->handle_qos (fd);
-}
-
-// Constructor.
-ACE_QoS_Decorator::ACE_QoS_Decorator (void)
-{}
-
-// Constructor.
-ACE_QoS_Decorator::ACE_QoS_Decorator (ACE_Event_Handler *event_handler,
- ACE_QoS_Session *qos_session,
- ACE_Reactor *reactor)
- : qos_session_ (qos_session),
- reactor_ (reactor)
-{
- ACE_NEW (this->decorator_base_,
- ACE_QoS_Decorator_Base (event_handler));
-
- ACE_NEW (this->qos_event_handler_,
- ACE_QoS_Event_Handler (this->decorator_base_));
-}
-
-// Destructor.
-ACE_QoS_Decorator::~ACE_QoS_Decorator (void)
-{
- delete this->decorator_base_;
- delete this->qos_event_handler_;
-}
-
-// Implements the undecorated functionality. This is sufficient for
-// GQoS. RAPI needs additional QoS decoration. This is done by the
-// ACE_QoS_Event_Handler class.
-ACE_HANDLE
-ACE_QoS_Decorator::get_handle (void) const
-{
- return this->decorator_base_->get_handle ();
-}
-
-// Implements the undecorated functionality. This is sufficient for
-// GQoS. RAPI needs additional QoS decoration. This is done by the
-// ACE_QoS_Event_Handler class.
-int
-ACE_QoS_Decorator::handle_input (ACE_HANDLE fd)
-{
- return this->decorator_base_->handle_input (fd);
-}
-
-// Implements the undecorated functionality. This is sufficient for
-// GQoS. RAPI needs additional QoS decoration. This is done by the
-// ACE_QoS_Event_Handler class.
-int
-ACE_QoS_Decorator::handle_qos (ACE_HANDLE fd)
-{
- return this->decorator_base_->handle_qos (fd);
-}
-
-// This method registers the RAPI QoS event handler with the reactor
-// if the application is using RAPI. Note that it is a no-op for GQoS
-// because an extra socket for handling QoS events is not required.
-int
-ACE_QoS_Decorator::init (void)
-{
-#if defined (ACE_HAS_RAPI)
-
- // Pass the QoS session to QoS Event Handler.
- this->qos_event_handler_->qos_session (this->qos_session_);
-
- // Register the QoS Event Handler with the Reactor.
- return this->reactor_->register_handler (this->qos_event_handler_,
- ACE_Event_Handler::READ_MASK);
-#endif
- return 0;
-
-}
-
-// Constructor.
-ACE_QoS_Event_Handler::ACE_QoS_Event_Handler (void)
-{
-}
-
-// Constructor.
-ACE_QoS_Event_Handler::ACE_QoS_Event_Handler (ACE_QoS_Decorator_Base
- *decorator_base)
- : decorator_base_ (decorator_base)
-{
-}
-
-// Destructor.
-ACE_QoS_Event_Handler::~ACE_QoS_Event_Handler (void)
-{
-}
-
-// Set the QoS session.
-void
-ACE_QoS_Event_Handler::qos_session (ACE_QoS_Session *qos_session)
-{
- this->qos_session_ = qos_session;
-}
-
-// Returns the RAPI file descriptor for listening to RAPI evnets.
-ACE_HANDLE
-ACE_QoS_Event_Handler::get_handle (void) const
-{
- return this->qos_session_->rsvp_events_handle ();
-}
-
-// Note, here the handle_input () calls the handle_qos () of the
-// Decorator Base which then calls handle_qos () of the
-// ACE_Event_Handler component within it. This helps to translate the
-// normal read events into qos events in case of RAPI so the
-// application using the API is oblivious to the fact that in RAPI,
-// QoS events are received on a different socket. This helps to
-// maintain a uniform design for the application irrespective of
-// whether it is using RAPI or GQoS.
-int
-ACE_QoS_Event_Handler::handle_input (ACE_HANDLE fd)
-{
- return this->decorator_base_->handle_qos (fd);
-}
diff --git a/ace/QoS/QoS_Decorator.h b/ace/QoS/QoS_Decorator.h
deleted file mode 100644
index 3fc38879113..00000000000
--- a/ace/QoS/QoS_Decorator.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file QoS_Decorator.h
- *
- * $Id$
- *
- * @author Vishal Kachroo <vishal@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef QOS_DECORATOR_H
-#define QOS_DECORATOR_H
-#include "ace/pre.h"
-
-#include "ace/Reactor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/INET_Addr.h"
-#include "ace/Event_Handler.h"
-#include "SOCK_Dgram_Mcast_QoS.h"
-#include "ACE_QoS_Export.h"
-
-ACE_RCSID(QOS_Decorator, QOS_Decorator, "$Id$")
-
-/**
- * @class ACE_QoS_Decorator_Base
- *
- * @brief This class is the Decorator Pattern Base class for decorating
- * ACE_Event_Handler.
- *
- * It simply forwards the requests for get_handle (),
- * handle_input () and handle_qos () to its event_handler_
- * component. Concrete decorators for ACE_Event_Handler will use
- * this class to access the basic event handler functionality and
- * decorate that by their own implementation.
- */
-class ACE_QoS_Export ACE_QoS_Decorator_Base : public ACE_Event_Handler
-{
-
-public:
-
- // Initialization and termination methods.
- /// Constructor.
- ACE_QoS_Decorator_Base (void);
-
- /// Constructor.
- ACE_QoS_Decorator_Base (ACE_Event_Handler *event_handler);
-
- /// Destructor.
- ~ACE_QoS_Decorator_Base (void);
-
- /// Forwards the request to its event_handler_ component.
- virtual ACE_HANDLE get_handle (void) const;
-
- /// Forwards the request to its event_handler_ component.
- virtual int handle_input (ACE_HANDLE fd);
-
- /// Forwards the request to its event_handler_ component.
- virtual int handle_qos (ACE_HANDLE fd);
-
-private:
-
- /// The event handler that is decorated by this class.
- ACE_Event_Handler *event_handler_;
-
-};
-
-/**
- * @class ACE_QoS_Event_Handler
- *
- * @brief This Handler is registered with the Reactor for QoS events.
- *
- * Concrete QoS decorator uses this class to receive QoS events
- * for RAPI. It hides the application from knowing that it is
- * receiving QoS events on a different socket so the application
- * doesnt have to be designed differently for RAPI and GQoS.
- */
-class ACE_QoS_Export ACE_QoS_Event_Handler : public ACE_Event_Handler
-{
-
- /// Destructor.
- ~ACE_QoS_Event_Handler (void);
-
- /// Returns the RAPI file descriptor for receiving QoS events.
- virtual ACE_HANDLE get_handle (void) const;
-
- /// Calls the base class handle_input ().
- virtual int handle_input (ACE_HANDLE fd);
-
- /// Sets the QoS session.
- void qos_session (ACE_QoS_Session *qos_session);
-
- friend class ACE_QoS_Decorator;
-
-private:
-
- /// Constructor is private because only ACE_QoS_Decorator should
- /// create this object.
- ACE_QoS_Event_Handler (void);
-
- /// The QoS Decorator passes in its base for this handler to use.
- ACE_QoS_Event_Handler (ACE_QoS_Decorator_Base *decorator_base);
-
- /// Used to get to the RAPI file descriptor for QoS Events.
- ACE_QoS_Session *qos_session_;
-
- /// Requests on the class are forwarded to this base class;
- ACE_QoS_Decorator_Base *decorator_base_;
-
-};
-
-/**
- * @class ACE_QoS_Decorator
- *
- * @brief Concrete QoS Decorator.
- *
- * Decorates the ACE_Event_Handler to additionally handle QoS
- * events uniformly for different QoS mechanisms like RAPI and
- * GQoS.
- */
-class ACE_QoS_Export ACE_QoS_Decorator : public ACE_QoS_Decorator_Base
-{
-
-public:
-
- // Initialization and termination methods.
- /// Constructor.
- ACE_QoS_Decorator (void);
-
- /// Constructor.
- ACE_QoS_Decorator (ACE_Event_Handler *event_handler,
- ACE_QoS_Session *qos_session,
- ACE_Reactor *reactor = ACE_Reactor::instance ());
-
- /// Destructor.
- ~ACE_QoS_Decorator (void);
-
- /// Calls the base class get_handle ().
- virtual ACE_HANDLE get_handle (void) const;
-
- /// Calls the base class handle_input ().
- virtual int handle_input (ACE_HANDLE fd);
-
- /// Calls the base class handle_qos ().
- virtual int handle_qos (ACE_HANDLE fd);
-
- /// This method registers the QoS Event Handler with the Reactor
- /// to receive RAPI events.
- int init (void);
-
-private:
-
- /// Requests on the class are forwarded to this base class;
- ACE_QoS_Decorator_Base *decorator_base_;
-
- /// Handles the QoS events and in that sense decorates the usual
- /// ACE_Event_Handler.
- ACE_QoS_Event_Handler *qos_event_handler_;
-
- /// Passed to the ACE_QoS_Event_Handler for retrieving the RAPI
- /// session specific information like rapi_fd.
- ACE_QoS_Session *qos_session_;
-
- /// If the application wants to use an instance of Reactor other
- /// than the Singleton one.
- ACE_Reactor *reactor_;
-
-};
-
-#include "ace/post.h"
-#endif /* QOS_DECORATOR_H */
diff --git a/ace/QoS/QoS_Manager.cpp b/ace/QoS/QoS_Manager.cpp
deleted file mode 100644
index 7e698b0cad2..00000000000
--- a/ace/QoS/QoS_Manager.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// QoS_Manager.cpp
-// $Id$
-
-#include "QoS_Manager.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, QoS_Manager, "$Id $")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_QOS_MANAGER)
-
-ACE_QoS_Manager::ACE_QoS_Manager (void)
-{}
-
-ACE_QoS_Manager::~ACE_QoS_Manager (void)
-{}
-
-// Adds the given session to the list of session objects joined by
-// this socket.
-
-int
-ACE_QoS_Manager::join_qos_session (ACE_QoS_Session *qos_session)
-{
- if (this->qos_session_set ().insert (qos_session) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Error in adding a new session to the ")
- ACE_LIB_TEXT ("socket session set\n")),
- -1);
- return 0;
-}
-
-// Returns the QoS session set for this socket.
-
-ACE_Unbounded_Set <ACE_QoS_Session *>
-ACE_QoS_Manager::qos_session_set (void)
-{
- return this->qos_session_set_;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Node<ACE_QoS_Session *>;
-template class ACE_Unbounded_Set<ACE_QoS_Session *>;
-template class ACE_Unbounded_Set_Iterator<ACE_QoS_Session *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Node<ACE_QoS_Session *>
-#pragma instantiate ACE_Unbounded_Set<ACE_QoS_Session *>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_QoS_Session *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/QoS/QoS_Manager.h b/ace/QoS/QoS_Manager.h
deleted file mode 100644
index 7037fe48d3e..00000000000
--- a/ace/QoS/QoS_Manager.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file QoS_Manager.h
- *
- * $Id$
- *
- * @author Vishal Kachroo
- */
-//=============================================================================
-
-
-#ifndef ACE_QOS_MANAGER_H
-#define ACE_QOS_MANAGER_H
-#include "ace/pre.h"
-
-#include "ace/Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#define ACE_LACKS_PRAGMA_ONCE
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/IPC_SAP.h"
-#include "ace/Containers_T.h"
-#include "ACE_QoS_Export.h"
-#include "QoS_Session.h"
-
-/**
- * @class ACE_QoS_Manager
- *
- * @brief This class manages the QoS sessions associated with ACE_SOCK.
- *
- * This class provides functions to manage the QoS
- * associated with a socket. The idea is to keep the management of
- * QoS for a socket separate from the socket itself. Currently, the
- * manager is used to manage the QoS session set. It will handle more
- * responsibilities in the future.
- */
-class ACE_QoS_Export ACE_QoS_Manager
-{
-
-public:
- /// Default constructor.
- ACE_QoS_Manager (void);
-
- /// Default destructor.
- ~ACE_QoS_Manager (void);
-
- /**
- * Join the given QoS session. A socket can join multiple QoS
- * sessions. This call adds the given QoS session to the list of
- * QoS sessions that the socket has already joined.
- */
- int join_qos_session (ACE_QoS_Session *qos_session);
-
- typedef ACE_Unbounded_Set <ACE_QoS_Session *> ACE_QOS_SESSION_SET;
-
- /// Get the QoS session set.
- ACE_QOS_SESSION_SET qos_session_set (void);
-
-private:
-
- /// Set of QoS sessions that this socket has joined.
- ACE_QOS_SESSION_SET qos_session_set_;
-};
-
-#include "ace/post.h"
-#endif /* ACE_QOS_MANAGER_H */
diff --git a/ace/QoS/QoS_Session.h b/ace/QoS/QoS_Session.h
deleted file mode 100644
index f67a9f52416..00000000000
--- a/ace/QoS/QoS_Session.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file QoS_Session.h
- *
- * $Id$
- *
- * @author Vishal Kachroo <vishal@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_QOS_SESSION_H
-#define ACE_QOS_SESSION_H
-#include "ace/pre.h"
-
-#include "ACE_QoS_Export.h"
-#include "ace/INET_Addr.h"
-#include "ace/OS_QoS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_SOCK;
-class ACE_QoS_Manager;
-
-typedef int ACE_Protocol_ID;
-// IPPROTO_UDP or IPPROTO_TCP.
-
-/**
- * @class ACE_QoS_Session
- *
- * @brief A QoS Session object.
- *
- * This class defines the interface for a QoS Session. It abstracts the
- * notion of QoS on different platforms and presents a simple, easy-to-use
- * API. Current [RAPI,GQoS] and future implementations will conform to this
- * interface.
- */
-class ACE_QoS_Export ACE_QoS_Session
-{
-
-public:
-
- enum RSVP_Event_Type
- {
- RSVP_PATH_EVENT,
- RSVP_RESV_EVENT,
- RSVP_RESV_CONFIRM,
- RSVP_RESV_ERROR,
- RSVP_PATH_ERROR
- };
-
- /// A flag to indicate if this endpoint is a sender or a receiver or
- /// both.
- enum ACE_End_Point_Type
- {
- ACE_QOS_SENDER,
- ACE_QOS_RECEIVER,
- ACE_QOS_BOTH
- };
-
-
- /// to shutup g++.
- virtual ~ACE_QoS_Session (void) {};
-
- /// Open a QoS session [dest IP, dest port, Protocol ID].
- virtual int open (ACE_INET_Addr dest_addr,
- ACE_Protocol_ID protocol_id) = 0;
-
- /// Close the QoS Session.
- virtual int close (void) = 0;
-
- /// Returns the QoS in the current session.
- virtual ACE_QoS qos (void) const = 0;
-
- /// Set QoS for the current session. The qos manager is used to
- /// confirm if this QoS session was subscribed to by the socket.
- virtual int qos (ACE_SOCK *socket,
- ACE_QoS_Manager *qos_manager,
- const ACE_QoS &ace_qos) = 0;
-
- /**
- * Sets the QoS for this session object to ace_qos. Does not
- * interfere with the QoS in the underlying socket. This call is
- * useful to update the QoS object when the underlying socket QoS is
- * being set through a mechanism other than the previous qos ()
- * method e.g. inside the dgram_mcast.subscribe () where the QoS for
- * the socket is set through ACE_OS::join_leaf ().
- */
- virtual void qos (const ACE_QoS &ace_qos) = 0;
-
- /**
- * This is called from handle_qos () method of the the QoS Event
- * Handler. Invoking this method is an indication of a QoS event
- * occurring, that may have resulted in a change of QoS for the
- * underlying session. This method updates the QoS object associated
- * with this session.
- */
- virtual int update_qos (void) = 0;
-
- /// Get/Set methods for the flags_.
- virtual ACE_End_Point_Type flags (void) const = 0;
- virtual void flags (const ACE_End_Point_Type flags) = 0;
-
- /// Get the session id.
- virtual int session_id (void) const = 0;
-
- /// Set the session id.
- virtual void session_id (const int session_id) = 0;
-
- /// Get the file descriptor on which RSVP events will occur.
- virtual ACE_HANDLE rsvp_events_handle (void) = 0;
-
- virtual void rsvp_event_type (RSVP_Event_Type event_type) = 0;
- ///Set the RAPI event that last occured
-
- virtual RSVP_Event_Type rsvp_event_type (void) = 0;
- ///Get the RAPI event that last occured
-
-
- /// Get the destination address for this session.
- virtual ACE_INET_Addr dest_addr (void) const = 0;
-
- /// Set the destination address for this session.
- virtual void dest_addr (const ACE_INET_Addr &dest_addr) = 0;
-
- /// Get the source port for this session.
- virtual u_short source_port (void) const = 0;
-
- /// Set the source port for this session.
- virtual void source_port (const u_short &source_port) = 0;
-
- /**
- * Returns the version of the underlying RSVP implementation. Is
- * meaningful only when the underlying implementation has
- * versioning.
- */
- virtual int version (void) = 0;
-
-protected:
-
- /// Source port if this is a Sender session. Used for rapi_sender ().
- u_short source_port_;
-
- /// session id for the session.
- int session_id_;
-
- /// Destination address for this session.
- ACE_INET_Addr dest_addr_;
-
- /// Is this a TCP or a UDP session.
- ACE_Protocol_ID protocol_id_;
-
- /// QoS for this session.
- ACE_QoS qos_;
-
- /// Specifies if this is a sending/receiving/both session.
- ACE_End_Point_Type flags_;
-
- RSVP_Event_Type rsvp_event_type_;
- //Has the last rsvp event that occured
-
-};
-
-#include "ace/post.h"
-#endif /* ACE_QOS_SESSION_H */
diff --git a/ace/QoS/QoS_Session_Factory.cpp b/ace/QoS/QoS_Session_Factory.cpp
deleted file mode 100644
index bb72c0f492f..00000000000
--- a/ace/QoS/QoS_Session_Factory.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-// QoS_Session_Factory.cpp
-// $Id$
-
-#include "QoS_Session_Factory.h"
-#include "QoS_Session_Impl.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, QoS_Session_Factory, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_QoS_Session_Factory)
-
-#if defined(ACE_HAS_RAPI)
-const enum ACE_QoS_Session_Factory::ACE_QoS_Session_Type
- ACE_QoS_Session_Factory::ACE_DEFAULT_QOS_SESSION = ACE_QoS_Session_Factory::ACE_RAPI_SESSION;
-#elif defined(ACE_HAS_WINSOCK2_GQOS)
- const enum ACE_QoS_Session_Factory::ACE_QoS_Session_Type
- ACE_QoS_Session_Factory::ACE_DEFAULT_QOS_SESSION = ACE_QoS_Session_Factory::ACE_GQOS_SESSION;
-#else
-# error "QoS type not supported. Cannot build."
-#endif /* ACE_HAS_RAPI */
-
-ACE_QoS_Session_Factory::ACE_QoS_Session_Factory (void)
-{
- ACE_TRACE ("ACE_QoS_Session_Factory::ACE_QoS_Session_Factory");
-}
-
-ACE_QoS_Session_Factory::~ACE_QoS_Session_Factory (void)
-{
- ACE_TRACE ("ACE_QoS_Session_Factory::~ACE_QoS_Session_Factory");
-}
-
-// Create a QoS session of the given type (RAPI or GQoS).
-ACE_QoS_Session *
-ACE_QoS_Session_Factory::create_session (ACE_QoS_Session_Type qos_session_type)
-{
-
- ACE_QoS_Session * qos_session = 0;
-
-#if defined (ACE_HAS_RAPI)
- if (qos_session_type == ACE_RAPI_SESSION)
- ACE_NEW_RETURN (qos_session,
- ACE_RAPI_Session,
- 0);
-#endif /* ACE_HAS_RAPI */
-
- if (qos_session_type == ACE_GQOS_SESSION)
- ACE_NEW_RETURN (qos_session,
- ACE_GQoS_Session,
- 0);
-
- if (this->add_session (qos_session) == -1)
- {
- delete qos_session;
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Error in adding session\n")),
- 0);
- }
-
- return qos_session;
-}
-
-// Destroy the QoS Session.
-int
-ACE_QoS_Session_Factory::destroy_session (ACE_QoS_Session *qos_session)
-{
-
- if ((qos_session != 0) && (this->remove_session (qos_session) == -1))
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Error in destroying session\n")),
- -1);
-
- return 0;
-}
-
-// Add a session to the set of sessions created by this factory. This is a
-// private method called by the create_session ().
-int
-ACE_QoS_Session_Factory::add_session (ACE_QoS_Session *qos_session)
-{
- if (this->qos_session_set_.insert (qos_session) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Error in adding a new session")
- ACE_LIB_TEXT ("to the session set\n")),
- -1);
-
- return 0;
-}
-
-// Remove a session from the set of sessions created by this factory. This is
-// a private method called by the destroy_session ().
-int
-ACE_QoS_Session_Factory::remove_session (ACE_QoS_Session *qos_session)
-{
- if (this->qos_session_set_.remove (qos_session) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Error in removing a session")
- ACE_LIB_TEXT ("from the session set\n")),
- -1);
-
- return 0;
-}
diff --git a/ace/QoS/QoS_Session_Factory.h b/ace/QoS/QoS_Session_Factory.h
deleted file mode 100644
index d23963c5491..00000000000
--- a/ace/QoS/QoS_Session_Factory.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file QoS_Session_Factory.h
- *
- * $Id$
- *
- * @author Vishal Kachroo <vishal@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_QOS_SESSION_FACTORY_H
-#define ACE_QOS_SESSION_FACTORY_H
-#include "ace/pre.h"
-
-#include "ace/QoS/QoS_Session.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Containers_T.h"
-#include "ACE_QoS_Export.h"
-
-// Forward declare this, so the factory uses only references to this.
-class ACE_QoS_Session;
-
-/**
- * @class ACE_QoS_Session_Factory
- *
- * @brief Concrete factory for the QoS Session objects.
- *
- * This class manages the life cycle of QoS Session objects. These
- * objects are currently either RAPI session objects or GQoS session
- * objects. It stores the sessions in an unbounded set.
- */
-class ACE_QoS_Export ACE_QoS_Session_Factory
-{
-
-public :
-
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_QoS_Session_Factory (void);
-
- /// Default destructor.
- ~ACE_QoS_Session_Factory (void);
-
-
- /// Types of sessions for this factory to manage.
- enum ACE_QoS_Session_Type
- {
- /// ACE_RAPI_SESSION on Unix platforms with RAPI support
- ACE_RAPI_SESSION,
-
- /// ACE_GQOS_SESSION on Windows platforms with GQOS support
- ACE_GQOS_SESSION
- };
-
- /** The default QoS type supported on this platform.
- *
- * ACE_DEFAULT_QOS_SESSION = ACE_RAPI_SESSION on Unix platforms with RAPI support
- * = ACE_GQOS_SESSION on Windows platforms with GQOS support
- */
- static const enum ACE_QoS_Session_Type ACE_DEFAULT_QOS_SESSION;
-
- /// Create a QoS session of the given type (RAPI or GQoS).
- ACE_QoS_Session * create_session (ACE_QoS_Session_Type qos_session_type = ACE_DEFAULT_QOS_SESSION );
-
- /// Destroy the QoS Session.
- int destroy_session (ACE_QoS_Session *qos_session);
-
-private:
-
- /// Used by the create_session () to add new sessions to the
- /// set of sessions created by this factory.
- int add_session (ACE_QoS_Session *qos_session);
-
- /// Used by the destroy_session () to remove a session from the set
- /// of sessions created by this factory.
- int remove_session (ACE_QoS_Session *qos_session);
-
- /// Unordered set of QoS Sessions.
- typedef ACE_Unbounded_Set <ACE_QoS_Session *> QOS_SESSION_SET;
- QOS_SESSION_SET qos_session_set_;
-
-};
-
-#include "ace/post.h"
-#endif /* ACE_QOS_SESSION_FACTORY_H */
diff --git a/ace/QoS/QoS_Session_Impl.cpp b/ace/QoS/QoS_Session_Impl.cpp
deleted file mode 100644
index 4a340861ab0..00000000000
--- a/ace/QoS/QoS_Session_Impl.cpp
+++ /dev/null
@@ -1,704 +0,0 @@
-// QoS_Session_Impl.cpp
-// $Id$
-
-#include "ace/SOCK.h"
-#include "QoS_Manager.h"
-#include "QoS_Session_Impl.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "QoS_Session_Impl.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, QoS_Session_Impl, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_QoS_Session_Impl)
-
-#if defined (ACE_HAS_RAPI)
-#include "rapi_err.h"
-
-int ACE_RAPI_Session::rsvp_error = 0;
-
-// Call back function used by RAPI to report RSVP events. This
-// function translates the RAPI QoS parameters into the more generic
-// ACE_QoS parameters for the underlying RAPI session.
-int
-rsvp_callback (rapi_sid_t sid,
- rapi_eventinfo_t eventype,
- int style_id,
- int errcode,
- int errvalue,
- sockaddr * errnode,
- u_char errflags,
- int filter_spec_no,
- rapi_filter_t *filter_spec_list,
- int flow_spec_no,
- rapi_flowspec_t *flow_spec_list,
- int ad_spec_no,
- rapi_adspec_t *ad_spec_list,
- void *args
- )
-{
- ACE_UNUSED_ARG (sid);
- ACE_UNUSED_ARG (style_id);
- ACE_UNUSED_ARG (filter_spec_no);
- ACE_UNUSED_ARG (filter_spec_list);
- ACE_UNUSED_ARG (ad_spec_no);
- ACE_UNUSED_ARG (ad_spec_list);
- ACE_UNUSED_ARG (errflags);
-
- if (args == 0)
- ACE_DEBUG ((LM_DEBUG,
- "Argument in the call back function is null\n\n"));
-
- ACE_QoS_Session *qos_session = (ACE_QoS_Session *) args;
-
- qos_flowspecx_t *csxp = 0;
-
- if(!flow_spec_list)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%N|%l) Null flow_spec_list\n"));
- }
- else
- {
- // Extended Legacy format.
- csxp = &flow_spec_list->specbody_qosx;
- if(!csxp)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N|%l) Null csxp\n"),
- -1);
- }
- }
-
- ACE_QoS ace_qos = qos_session->qos ();
-
- switch(eventype)
- {
- case RAPI_PATH_EVENT:
- {
- ACE_DEBUG ((LM_DEBUG,
- "RSVP PATH Event received\n"
- "No. of TSpecs received : %d %d\n",
- flow_spec_no, &flow_spec_list->len));
-
- ACE_Flow_Spec *receiving_fs = 0;
-
- if (flow_spec_no != 0)
- {
-
- ACE_NEW_RETURN (receiving_fs,
- ACE_Flow_Spec,
- -1);
-
- ACE_NEW_RETURN (receiving_fs,
- ACE_Flow_Spec ((u_long)csxp->xspec_r,
- (u_long)csxp->xspec_b,
- (u_long)csxp->xspec_p,
- 0,
- csxp->xspec_S,
- 1,
- csxp->xspec_M,
- csxp->xspec_m,
- 25,
- 0),
- -1);
-
-
- ACE_DEBUG ((LM_DEBUG,
- "\nTSpec :\n"
- "\t Spec Type = %d\n"
- "\t Rate = %f\n"
- "\t Bucket = %f\n"
- "\t Peak = %f\n"
- "\t MPU = %d\n"
- "\t MDU = %d\n"
- "\t TTL = %d\n",
- csxp->spec_type,
- csxp->xspec_r,
- csxp->xspec_b,
- csxp->xspec_p,
- csxp->xspec_m,
- csxp->xspec_M,
- 25));
-
- }
- // Set the sending flowspec QoS of the given session.
- ace_qos.receiving_flowspec (receiving_fs);
-
- qos_session->rsvp_event_type (ACE_QoS_Session::RSVP_PATH_EVENT);
-
- }
-
- break;
-
- case RAPI_RESV_EVENT:
- {
- ACE_DEBUG ((LM_DEBUG,
- "RSVP RESV Event received\n"
- "No. of FlowSpecs received : %d\n",
- flow_spec_no));
-
- ACE_Flow_Spec *sending_flow = 0;
-
- if (flow_spec_no != 0)
- {
- ACE_NEW_RETURN (sending_flow,
- ACE_Flow_Spec,
- -1);
-
- // Choose based on the service type : [QOS_GUARANTEEDX/QOS_CNTR_LOAD].
- switch (csxp->spec_type)
- {
- case QOS_GUARANTEEDX:
- // Slack term in MICROSECONDS
- sending_flow->delay_variation (csxp->xspec_S);
-
- // @@How does the guaranteed rate parameter map to the ACE_Flow_Spec.
- // Note there is no break !!
-
- case QOS_CNTR_LOAD:
-
- // qos_service_type.
- sending_flow->service_type (csxp->spec_type);
- // Token Bucket Average Rate (B/s)
- sending_flow->token_rate ((u_long)csxp->xspec_r);
- // Token Bucket Rate (B)
- sending_flow->token_bucket_size ((u_long)csxp->xspec_b);
- // Peak Data Rate (B/s)
- sending_flow->peak_bandwidth ((u_long)csxp->xspec_p);
- // Minimum Policed Unit (B)
- sending_flow->minimum_policed_size (csxp->xspec_m);
- // Max Packet Size (B)
- sending_flow->max_sdu_size (csxp->xspec_M);
-
- break;
-
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N|%l) Unknown flowspec type: %u.\n", csxp->spec_type),
- -1);
- };
- }
- ace_qos.sending_flowspec (sending_flow);
-
- qos_session->rsvp_event_type (ACE_QoS_Session::RSVP_RESV_EVENT);
- }
- break;
-
- case RAPI_PATH_ERROR:
- {
- ACE_DEBUG ((LM_DEBUG,
- "PATH ERROR Event received\n"
- "Code=%d Val=%d Node= %s\n",
- errcode,
- errvalue,
- ACE_OS::inet_ntoa(((sockaddr_in *)errnode)->sin_addr)));
- qos_session->rsvp_event_type (ACE_QoS_Session::RSVP_PATH_ERROR);
- }
- break;
-
- case RAPI_RESV_ERROR:
- {
- ACE_DEBUG ((LM_DEBUG,
- "RESV ERROR Event received\n"
- "Code=%d Val=%d Node= %s\n",
- errcode,
- errvalue,
- ACE_OS::inet_ntoa(((sockaddr_in *)errnode)->sin_addr)));
- qos_session->rsvp_event_type (ACE_QoS_Session::RSVP_RESV_ERROR);
- }
- break;
-
- case RAPI_RESV_CONFIRM:
- {
- ACE_DEBUG ((LM_DEBUG,
- "RESV CONFIRM Event received\n"));
- qos_session->rsvp_event_type (ACE_QoS_Session::RSVP_RESV_CONFIRM);
- }
- break;
-
- default:
- ACE_DEBUG ((LM_DEBUG,
- "Unknown RSVP Event Received\n"));
- break;
-
- }
-
- // Set the updated ACE_QoS for the RSVP callback argument(QoS session).
- qos_session->qos (ace_qos);
-
- // @@ what is the meaning of the return value. RAPI docs don't say anything!
- return 0;
-}
-
-// Constructor.
-ACE_RAPI_Session::ACE_RAPI_Session (void)
-{
- ACE_TRACE ("ACE_RAPI_Session::ACE_RAPI_Session");
- this->source_port (DEFAULT_SOURCE_SENDER_PORT);
-}
-
-// Open a RAPI QoS session [dest IP, dest port, Protocol ID].
-int
-ACE_RAPI_Session::open (ACE_INET_Addr dest_addr,
- ACE_Protocol_ID protocol_id)
-{
- ACE_DEBUG ((LM_DEBUG,
- "In RAPI SESSION OPEN\n"));
-
- this->dest_addr_ = dest_addr;
- this->protocol_id_ = protocol_id;
-
- // Open a RAPI session. Note "this" is being passed as an argument to
- // the callback function. The callback function uses this argument to
- // update the QoS of this session based on the RSVP event it receives.
-
- if ((this->session_id_ = rapi_session((struct sockaddr *) dest_addr.get_addr (),
- protocol_id,
- 0,
- rsvp_callback,
- (void *) this,
- &rsvp_error)) == NULL_SID)
- ACE_ERROR_RETURN ((LM_ERROR,
- "rapi_session () call fails. Error\n"),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "rapi_session () call succeeds. "
- "Session ID = %d\n",
- this->session_id_));
-
- return 0;
-}
-
-// Close the RAPI QoS Session.
-int
-ACE_RAPI_Session::close (void)
-{
- this->rsvp_error = rapi_release(this->session_id_);
-
- if (rsvp_error == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Can't release RSVP session:\n\t%s\n",
- rapi_errlist[rsvp_error]),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "rapi session with id %d released successfully.\n",
- this->session_id_));
- return 0;
-}
-
-//Get the most recent RSVP event that occured
-ACE_QoS_Session::RSVP_Event_Type
-ACE_RAPI_Session::rsvp_event_type (void)
-{
- return this->rsvp_event_type_;
-}
-
-//Set the most recent RSVP event that occured
-void
-ACE_RAPI_Session::rsvp_event_type (ACE_QoS_Session::RSVP_Event_Type event_type)
-{
- this->rsvp_event_type_ = event_type;
-}
-
-int
-ACE_RAPI_Session::qos (ACE_SOCK *socket,
- ACE_QoS_Manager *qos_manager,
- const ACE_QoS &ace_qos)
-{
- ACE_UNUSED_ARG (socket);
- ACE_UNUSED_ARG (qos_manager);
-
- // If sender : call sending_qos ()
- // If receiver : call receiving_qos ()
- // If both : call sending_qos () and receiving_qos ()
-
- if (this->flags_ != ACE_QOS_RECEIVER)
- return this->sending_qos (ace_qos);
-
- if (this->flags_ != ACE_QOS_SENDER)
- return this->receiving_qos (ace_qos);
-
- return 0;
-}
-
-// Set sending QoS for this RAPI session.
-int
-ACE_RAPI_Session::sending_qos (const ACE_QoS &ace_qos)
-{
- ACE_Flow_Spec *sending_flowspec = ace_qos.sending_flowspec ();
-
- if (sending_flowspec == 0)
- {
- int result = rapi_sender (this->session_id_,
- 0,
- 0,
- NULL,
- 0,
- NULL,
- NULL,
- 25) ;
- if (result != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N|%l) rapi_sender error %d:\n\tPATH Generation can't be started\n",
- result),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "rapi_sender () call succeeds with PATH Tear! \n"));
-
- return 0;
- }
-
- rapi_tspec_t *t_spec = this->init_tspec_simplified (*sending_flowspec);
- if (t_spec == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N|%l) Error in translating from ACE Flow Spec to"
- " RAPI TSpec\n"),
- -1);
-
- char buffer[BUFSIZ];
-
- // This formats the t_spec in a visually intuitive char * that can
- // be printed.
-
- (void) rapi_fmt_tspec(t_spec, buffer, sizeof(buffer));
- ACE_DEBUG ((LM_DEBUG,
- "\nSender TSpec : %s\n",
- buffer));
-
- // Print out all the fields separately.
- ACE_DEBUG ((LM_DEBUG,
- "\nTSpec :\n"
- "\t Spec Type = %d\n"
- "\t Rate = %f\n"
- "\t Bucket = %f\n"
- "\t Peak = %f\n"
- "\t MPU = %d\n"
- "\t MDU = %d\n"
- "\t TTL = %d\n",
- t_spec->tspecbody_qosx.spec_type,
- t_spec->tspecbody_qosx.xtspec_r,
- t_spec->tspecbody_qosx.xtspec_b,
- t_spec->tspecbody_qosx.xtspec_p,
- t_spec->tspecbody_qosx.xtspec_m,
- t_spec->tspecbody_qosx.xtspec_M,
- sending_flowspec->ttl ()));
-
- // This the source sender port.
- ACE_INET_Addr sender_addr (this->source_port ());
-
- ACE_DEBUG ((LM_DEBUG,
- "Making the rapi_sender () call\n"));
-
- // Set the Sender TSpec for this QoS session.
-
- int result = rapi_sender(this->session_id_,
- 0,
- (sockaddr *) sender_addr.get_addr (),
- NULL,
- t_spec,
- NULL,
- NULL,
- sending_flowspec->ttl ()) ;
-
- if(result!= 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N|%l) rapi_sender error %d:\n\tPATH Generation can't be started\n",
- result),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "rapi_sender () call succeeds ! \n"));
- return 0;
-}
-
-// Set receiving QoS for this RAPI session.
-int
-ACE_RAPI_Session::receiving_qos (const ACE_QoS &ace_qos)
-{
-
- ACE_Flow_Spec *receiving_flowspec = ace_qos.receiving_flowspec ();
- if (receiving_flowspec == 0)
- {
- if (rapi_reserve(this->session_id_,
- 0,
- // Setting the RAPI_REQ_CONFIRM flag requests confirmation
- // of the resevation, by means of a confirmation upcall of
- // type RAPI_RESV_CONFIRM.
- // (sockaddr *)receiver_addr.get_addr (),
- 0,
- RAPI_RSTYLE_WILDCARD,
- // This applies the flowspec to all the senders. Given this,
- // @@I am passing the filter_spec to be null, hoping this will work.
- NULL,
- NULL,
- 0,
- NULL,
- // The filter spec is NULL. This should work since the RSTYLE is
- // WILDCARD.
- 0,
- 0) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N|%l)rapi_reserve () error:\n\tRESV Generation can't be started\n"),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "rapi_reserve () for RESV Tear call succeeds \n"));
-
- return 0;
- }
-
-
- rapi_flowspec_t *flow_spec = init_flowspec_simplified (*receiving_flowspec);
-
- if (flow_spec == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N|%l) Error in translating from ACE Flow Spec to"
- " RAPI FlowSpec\n"),
- -1);
-
- char buffer[BUFSIZ];
-
- // This formats the flow_spec in a visually intuitive char * that can
- // be printed.
- (void)rapi_fmt_flowspec(flow_spec, buffer, sizeof(buffer));
- ACE_DEBUG ((LM_DEBUG,
- "\nReceiver FlowSpec : %s\n",
- buffer));
-
- // Print out all the fields separately.
- ACE_DEBUG ((LM_DEBUG,
- "\nFlowSpec :\n"
- "\t Spec Type = %d\n"
- "\t Rate = %f\n"
- "\t Bucket = %f\n"
- "\t Peak = %f\n"
- "\t MPU = %d\n"
- "\t MDU = %d\n",
- flow_spec->specbody_qosx.spec_type,
- flow_spec->specbody_qosx.xspec_r,
- flow_spec->specbody_qosx.xspec_b,
- flow_spec->specbody_qosx.xspec_p,
- flow_spec->specbody_qosx.xspec_m,
- flow_spec->specbody_qosx.xspec_M));
-
- sockaddr_in Receiver_host;
-
- Receiver_host.sin_addr.s_addr = INADDR_ANY;
-
- // Set the Receiver FlowSpec for this QoS session.
- // @@The filter style is hardcoded to WildCard. This can be changed later.
- if (rapi_reserve(this->session_id_,
- RAPI_REQ_CONFIRM,
- // Setting the RAPI_REQ_CONFIRM flag requests confirmation
- // of the resevation, by means of a confirmation upcall of
- // type RAPI_RESV_CONFIRM.
- // (sockaddr *)receiver_addr.get_addr (),
- (sockaddr *)&Receiver_host,
- RAPI_RSTYLE_WILDCARD,
- // This applies the flowspec to all the senders. Given this,
- // @@I am passing the filter_spec to be null, hoping this will work.
- NULL,
- NULL,
- 0,
- NULL,
- // The filter spec is NULL. This should work since the RSTYLE is
- // WILDCARD.
- 1,
- flow_spec) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "rapi_reserve () error:\n\tRESV Generation can't be started\n"),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "rapi_reserve () call succeeds \n"));
-
- return 0;
-}
-
-int
-ACE_RAPI_Session::update_qos (void)
-{
- // Update the session QoS Parameters based on the RSVP Event Received.
- if ((rsvp_error = rapi_dispatch ()) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Error in rapi_dispatch () : %s\n",
- rapi_errlist[rsvp_error]),
- -1);
- return 0;
-}
-
-// Construct a simplified RAPI Sender TSpec object
-// from an ACE_Flow_Spec. Note the form of the TSpec is
-// simplified as against the full bodied IntServ version.
-
-rapi_tspec_t *
-ACE_RAPI_Session::init_tspec_simplified (const ACE_Flow_Spec &flow_spec)
-{
- rapi_tspec_t *t_spec;
-
- ACE_NEW_RETURN (t_spec,
- rapi_tspec_t,
- 0);
-
- qos_tspecx_t *ctxp = &(t_spec->tspecbody_qosx);
-
- // There may be some type incompatibility here.
- // Note the types of the LHS are float32_t, uint32_t etc.
-
- ctxp->spec_type = flow_spec.service_type ();//QOS_TSPEC;
- ctxp->xtspec_r = flow_spec.token_rate (); // Token Rate (B/s)
- ctxp->xtspec_b = flow_spec.token_bucket_size (); // Token Bucket Depth (B)
- ctxp->xtspec_p = flow_spec.peak_bandwidth (); // Peak Data Rate (B/s)
- ctxp->xtspec_m = flow_spec.minimum_policed_size (); // Minimum policed unit.
- ctxp->xtspec_M = flow_spec.max_sdu_size(); // Maximum SDU size.
- t_spec->len = sizeof(rapi_hdr_t) + sizeof(qos_tspecx_t);
- t_spec->form = RAPI_TSPECTYPE_Simplified;
-
- return (t_spec);
-}
-
-
-// Construct a simplified RAPI flowspec object from ACE_Flow_Spec.
-// Note the form of the FlowSpec is simplified as against the
-// full bodied IntServ version.
-
-rapi_flowspec_t *
-ACE_RAPI_Session::init_flowspec_simplified(const ACE_Flow_Spec &flow_spec)
-{
- rapi_flowspec_t *flowsp;
- ACE_NEW_RETURN (flowsp,
- rapi_flowspec_t,
- 0);
-
- // Extended Legacy format.
- qos_flowspecx_t *csxp = &flowsp->specbody_qosx;
-
- // Choose based on the service type : [QOS_GUARANTEEDX/QOS_CNTR_LOAD].
-
- switch (flow_spec.service_type ())
- {
- case QOS_GUARANTEEDX:
- csxp->xspec_R = 0 ; // Guaranteed Rate B/s. @@How does this map to the
- // ACE Flow Spec Parameters.
-
- csxp->xspec_S = flow_spec.delay_variation () ; // Slack term in MICROSECONDS
-
- // Note there is no break !!
-
- case QOS_CNTR_LOAD:
- csxp->spec_type = flow_spec.service_type (); // qos_service_type
- csxp->xspec_r = flow_spec.token_rate (); // Token Bucket Average Rate (B/s)
- csxp->xspec_b = flow_spec.token_bucket_size (); // Token Bucket Rate (B)
- csxp->xspec_p = flow_spec.peak_bandwidth (); // Peak Data Rate (B/s)
- csxp->xspec_m = flow_spec.minimum_policed_size (); // Minimum Policed Unit (B)
-
- csxp->xspec_M = flow_spec.max_sdu_size(); // Max Packet Size (B)
-
- flowsp->form = RAPI_FLOWSTYPE_Simplified;
- break;
-
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N|%l) Unknown flowspec type: %u\n",flow_spec.service_type () ),
- 0);
- }
-
- flowsp->len = sizeof(rapi_flowspec_t);
- return flowsp;
-}
-
-#endif /* ACE_HAS_RAPI */
-
-// This is a GQoS session ID generator.
-int ACE_GQoS_Session::GQoS_session_id = 0;
-
-// Constructor.
-ACE_GQoS_Session::ACE_GQoS_Session (void)
-{
- ACE_TRACE ("ACE_GQoS_Session::ACE_GQoS_Session");
-}
-
-// Open a GQoS session [dest IP, dest port, Protocol ID].
-int
-ACE_GQoS_Session::open (ACE_INET_Addr dest_addr,
- ACE_Protocol_ID protocol_id)
-{
- this->dest_addr_ = dest_addr;
- this->protocol_id_ = protocol_id;
-
- this->session_id_ = GQoS_session_id++;
-
- return 0;
-}
-
-// Close the GQoS Session.
-int
-ACE_GQoS_Session::close (void)
-{
- // TBD.
- return 0;
-}
-
-// Set the QoS for this GQoS session.
-int
-ACE_GQoS_Session::qos (ACE_SOCK *socket,
- ACE_QoS_Manager *qos_manager,
- const ACE_QoS &ace_qos)
-{
-
- // Confirm if the current session is one of the QoS sessions
- // subscribed to by the given socket.
-
- if (qos_manager->qos_session_set ().find (this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("This QoS session was not subscribed to")
- ACE_LIB_TEXT (" by the socket\n")),
- -1);
-
- // Set the QOS according to the supplied ACE_QoS. The I/O control
- // code used under the hood is SIO_SET_QOS.
-
- u_long ret_bytes = 0;
-
- ACE_QoS qos = ace_qos;
- if (ACE_OS::ioctl (socket->get_handle (),
- ACE_SIO_SET_QOS,
- qos,
- &ret_bytes) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Error in Qos set ACE_OS::ioctl() %d\n"),
- ret_bytes),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Setting QoS with ACE_OS::ioctl () succeeds \n")));
-
- return 0;
-}
-
-int
-ACE_GQoS_Session::update_qos (void)
-{
- // WSAIoctl (GET_QOS) call goes here...
- return 0;
-}
-
-//Get the most recent RSVP event that occured
-ACE_QoS_Session::RSVP_Event_Type
-ACE_GQoS_Session::rsvp_event_type (void)
-{
- return this->rsvp_event_type_;
-}
-
-//Set the most recent RSVP event that occured
-void
-ACE_GQoS_Session::rsvp_event_type (ACE_QoS_Session::RSVP_Event_Type event_type)
-{
- this->rsvp_event_type_ = event_type;
-}
diff --git a/ace/QoS/QoS_Session_Impl.h b/ace/QoS/QoS_Session_Impl.h
deleted file mode 100644
index ea5d11cec10..00000000000
--- a/ace/QoS/QoS_Session_Impl.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file QoS_Session_Impl.h
- *
- * $Id$
- *
- * @author Vishal Kachroo <vishal@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_QOS_SESSION_IMPL_H
-#define ACE_QOS_SESSION_IMPL_H
-#include "ace/pre.h"
-
-#include "ace/QoS/QoS_Session.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-
-#if defined (ACE_HAS_RAPI)
-#include "rapi_lib.h"
-
-#define DEFAULT_SOURCE_SENDER_PORT 10001
-
-/**
- * @class ACE_RAPI_Session
- *
- * @brief A RAPI QoS session object.
- *
- * This class is a RAPI (RSVP API, an implementation of RSVP on UNIX)
- * implementation of the ACE_QoS_Session interface.
- */
-class ACE_QoS_Export ACE_RAPI_Session : public ACE_QoS_Session
-{
-
-public:
-
- /// Default destructor.
- ~ACE_RAPI_Session (void);
-
- /// Error handling for RSVP callback
- static int rsvp_error;
-
- /// Open a RAPI QoS session [dest IP, dest port, Protocol ID].
- virtual int open (ACE_INET_Addr dest_addr,
- ACE_Protocol_ID protocol_id);
-
- /// Close the RAPI QoS Session.
- virtual int close (void);
-
- /// Returns the QoS for this RAPI session.
- virtual ACE_QoS qos (void) const;
-
- /// Set QoS for this RAPI session. The socket parameter is used to confirm if
- /// this QoS session was subscribed to by the socket.
- virtual int qos (ACE_SOCK *socket,
- ACE_QoS_Manager *qos_manager,
- const ACE_QoS &ace_qos);
-
- /**
- * Sets the QoS for this session object to ace_qos. Does not interfere with the
- * QoS in the underlying socket. This call is useful to update the QoS object
- * when the underlying socket QoS is being set through a mechanism other than
- * the previous qos () method e.g. inside the dgram_mcast.subscribe () where the
- * QoS for the socket is set through ACE_OS::join_leaf ().
- */
- virtual void qos (const ACE_QoS &ace_qos);
-
- /**
- * Calls rapi_dispatch () that further triggers the call back function.
- * It is a mechanism of updating the QoS for this session asynchronously, as
- * RSVP events occur.
- */
- virtual int update_qos (void);
-
- /// Get methods for the flags_.
- virtual ACE_End_Point_Type flags (void) const;
-
- /// Set methods for the flags_.
- virtual void flags (const ACE_End_Point_Type flags);
-
- /// Get the RAPI session id.
- virtual int session_id (void) const;
-
- /// Set the RAPI session id.
- virtual void session_id (const int session_id);
-
- /// Get the RAPI file descriptor for RSVP events.
- virtual ACE_HANDLE rsvp_events_handle (void);
-
- ///Set the RAPI event that last occured
- virtual void rsvp_event_type (RSVP_Event_Type event_type);
-
- ///Get the RAPI event that last occured
- virtual RSVP_Event_Type rsvp_event_type (void);
-
- /// Get the destination address for this RAPI session.
- virtual ACE_INET_Addr dest_addr (void) const;
-
- /// Set the destination address for this RAPI session.
- virtual void dest_addr (const ACE_INET_Addr &dest_addr);
-
- /// Get the source port for this session.
- virtual u_short source_port (void) const;
-
- /// Set the source port for this session.
- virtual void source_port (const u_short &source_port);
-
- /// RAPI version. Returned value = 100 * major-version + minor-version.
- virtual int version ();
-
- /// The factory is a friend so it can create this object through
- /// the only private constructor.
- friend class ACE_QoS_Session_Factory;
-
-private:
-
- /// Default constuctor. Constructor is defined private so that only
- /// the friend factory can instantiate this class.
- ACE_RAPI_Session (void);
-
- /// Construct a simplified RAPI Sender TSpec object
- /// from an ACE_Flow_Spec object. Used internally by this class.
- rapi_tspec_t *init_tspec_simplified (const ACE_Flow_Spec &flow_spec);
-
- /// Construct a simplified RAPI Receiver FlowSpec object
- /// from an ACE_Flow_Spec object. Used internally by the class.
- rapi_flowspec_t *init_flowspec_simplified(const ACE_Flow_Spec &flow_spec);
-
- /// Set sending QoS for this RAPI session.
- int sending_qos (const ACE_QoS &ace_qos);
-
- /// Set receiving QoS for this RAPI session.
- int receiving_qos (const ACE_QoS &ace_qos);
-
-};
-
-#endif /* ACE_HAS_RAPI */
-
-/**
- * @class ACE_GQoS_Session
- *
- * @brief A GQoS session object.
- *
- * This class is a GQoS (Generic QoS, an implementation of RSVP on
- * Win2K) implementation of the ACE_QoS_Session interface.
- */
-class ACE_QoS_Export ACE_GQoS_Session : public ACE_QoS_Session
-{
-
-public:
-
- /// Default destructor.
- ~ACE_GQoS_Session (void);
-
- /// This is a session ID generator. It does a lot more than expected
- /// from an int!.
- static int GQoS_session_id;
-
- /// Open a GQoS session [dest IP, dest port, Protocol ID].
- virtual int open (ACE_INET_Addr dest_addr,
- ACE_Protocol_ID protocol_id);
-
- /// Close the GQoS Session.
- virtual int close (void);
-
- /// Returns the QoS for this GQoS session.
- virtual ACE_QoS qos (void) const;
-
- /// Set QoS for this GQoS session. The socket parameter is used to confirm if
- /// this QoS session was subscribed to by the socket.
- virtual int qos (ACE_SOCK *socket,
- ACE_QoS_Manager *qos_manager,
- const ACE_QoS &ace_qos);
-
- /**
- * Sets the QoS for this session object to ace_qos. Does not interfere with the
- * QoS in the underlying socket. This call is useful to update the QoS object
- * when the underlying socket QoS is being set through a mechanism other than
- * the previous qos () method e.g. inside the dgram_mcast.subscribe () where the
- * QoS for the socket is set through ACE_OS::join_leaf ().
- */
- virtual void qos (const ACE_QoS &ace_qos);
-
- /// Calls the ioctl (ACE_SIO_GET_QOS). It is a mechanism of updating the
- /// QoS for this session asynchronously, as RSVP events occur.
- virtual int update_qos (void);
-
- /// Get/Set methods for the flags_.
- virtual ACE_End_Point_Type flags (void) const;
- virtual void flags (const ACE_End_Point_Type flags);
-
- /// Get the destination address for this GQoS session.
- virtual ACE_INET_Addr dest_addr (void) const;
-
- /// Set the destination address for this GQoS session.
- virtual void dest_addr (const ACE_INET_Addr &dest_addr);
-
- /// Get the source port for this session.
- virtual u_short source_port (void) const;
-
- /// Set the source port for this session.
- virtual void source_port (const u_short &source_port);
-
- /// Get the GQoS session id.
- virtual int session_id (void) const;
-
- /// Set the GQoS session id.
- virtual void session_id (const int session_id);
-
- /// Get the file descriptor of the underlying socket.
- virtual ACE_HANDLE rsvp_events_handle (void);
-
- virtual void rsvp_event_type (RSVP_Event_Type event_type);
- ///Set the RAPI event that last occured
-
- virtual RSVP_Event_Type rsvp_event_type (void);
- ///Get the RAPI event that last occured
-
- /// GQoS version.
- virtual int version ();
-
- /// The factory is a friend so it can create this object through
- /// the only private constructor.
- friend class ACE_QoS_Session_Factory;
-
-private:
-
- /// Default constructor. Constructor is defined private so that only
- /// the friend factory can instantiate this class.
- ACE_GQoS_Session (void);
-
-};
-
-#if defined (__ACE_INLINE__)
-#include "QoS_Session_Impl.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_QOS_SESSION_IMPL_H */
diff --git a/ace/QoS/QoS_Session_Impl.i b/ace/QoS/QoS_Session_Impl.i
deleted file mode 100644
index c3093814ac9..00000000000
--- a/ace/QoS/QoS_Session_Impl.i
+++ /dev/null
@@ -1,202 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// QoS_Session_Impl.i
-
-#if defined (ACE_HAS_RAPI)
-
-ACE_INLINE
-ACE_RAPI_Session::~ACE_RAPI_Session (void)
-{
- ACE_TRACE ("ACE_RAPI_Session::~ACE_RAPI_Session");
-}
-
-// Returns the QoS for this RAPI session.
-ACE_INLINE ACE_QoS
-ACE_RAPI_Session::qos (void) const
-{
- return this->qos_;
-}
-
-// Overloaded method to set the QoS for this session object. Does not
-// interfere with the underlying socket QoS.
-ACE_INLINE void
-ACE_RAPI_Session::qos (const ACE_QoS &ace_qos)
-{
- this->qos_ = ace_qos;
-}
-
-// Get the RAPI session id.
-ACE_INLINE int
-ACE_RAPI_Session::session_id (void) const
-{
- return this->session_id_;
-}
-
-// Set the RAPI session id.
-ACE_INLINE void
-ACE_RAPI_Session::session_id (const int session_id)
-{
- this->session_id_ = session_id;
-}
-
-// Get the RAPI file desciptor for RSVP events.
-ACE_INLINE ACE_HANDLE
-ACE_RAPI_Session::rsvp_events_handle (void)
-{
- int rapi_fd = rapi_getfd (this->session_id ());
- if (rapi_fd == -1)
- {
- this->close ();
- ACE_ERROR_RETURN ((LM_ERROR,
- "Error in rapi_getfd ()\n"),
- -1);
- }
-
- return rapi_fd;
-}
-
-// Get the End Point Type (Sender/Receiver/Both).
-ACE_INLINE ACE_QoS_Session::ACE_End_Point_Type
-ACE_RAPI_Session::flags (void) const
-{
- return this->flags_;
-}
-
-// Set the End Point Type (Sender/Receiver/Both).
-ACE_INLINE void
-ACE_RAPI_Session::flags (const ACE_End_Point_Type flags)
-{
- this->flags_ = flags;
-}
-
-
-// Get the destination address for this RAPI session.
-ACE_INLINE ACE_INET_Addr
-ACE_RAPI_Session::dest_addr (void) const
-{
- return this->dest_addr_;
-}
-
-// Set the destination address for this RAPI session.
-ACE_INLINE void
-ACE_RAPI_Session::dest_addr (const ACE_INET_Addr &dest_addr)
-{
- this->dest_addr_ = dest_addr;
-}
-
-// Get the source port for this RAPI session.
-ACE_INLINE u_short
-ACE_RAPI_Session::source_port (void) const
-{
- return this->source_port_;
-}
-
-// Set the source port for this RAPI session.
-ACE_INLINE void
-ACE_RAPI_Session::source_port (const u_short &source_port)
-{
- this->source_port_ = source_port;
-}
-
-// RAPI version. Returned value = 100 * major-version + minor-version.
-ACE_INLINE int
-ACE_RAPI_Session::version (void)
-{
- return 0;
-}
-
-#endif /* ACE_HAS_RAPI */
-
-ACE_INLINE
-ACE_GQoS_Session::~ACE_GQoS_Session (void)
-{
- ACE_TRACE ("ACE_GQoS_Session::~ACE_GQoS_Session");
-}
-
-// Returns the QoS for this GQoS session.
-ACE_INLINE ACE_QoS
-ACE_GQoS_Session::qos (void) const
-{
- return this->qos_;
-}
-
-// Overloaded method to set the QoS for this session object. Does not
-// interfere with the underlying socket QoS.
-ACE_INLINE void
-ACE_GQoS_Session::qos (const ACE_QoS &ace_qos)
-{
- this->qos_ = ace_qos;
-}
-
-// Get the GQoS session id.
-ACE_INLINE int
-ACE_GQoS_Session::session_id (void) const
-{
- return this->session_id_;
-}
-
-// Set the GQoS session id.
-ACE_INLINE void
-ACE_GQoS_Session::session_id (const int session_id)
-{
- this->session_id_ = session_id;
-}
-
-// Get the underlying file desciptor for RSVP events.
-// Currently returns 0 because GQoS does not have a special
-// descriptor for QoS events.
-ACE_INLINE ACE_HANDLE
-ACE_GQoS_Session::rsvp_events_handle (void)
-{
- return 0;
-}
-
-// Get the End Point Type (Sender/Receiver/Both).
-ACE_INLINE ACE_QoS_Session::ACE_End_Point_Type
-ACE_GQoS_Session::flags (void) const
-{
- return this->flags_;
-}
-
-// Set the End Point Type (Sender/Receiver/Both).
-ACE_INLINE void
-ACE_GQoS_Session::flags (const ACE_End_Point_Type flags)
-{
- this->flags_ = flags;
-}
-
-// Get the destination address for this GQoS session.
-ACE_INLINE ACE_INET_Addr
-ACE_GQoS_Session::dest_addr (void) const
-{
- return this->dest_addr_;
-}
-
-// Set the destination address for this GQoS session.
-ACE_INLINE void
-ACE_GQoS_Session::dest_addr (const ACE_INET_Addr &dest_addr)
-{
- this->dest_addr_ = dest_addr;
-}
-
-// Get the source port for this RAPI session.
-ACE_INLINE u_short
-ACE_GQoS_Session::source_port (void) const
-{
- return this->source_port_;
-}
-
-// Set the source port for this RAPI session.
-ACE_INLINE void
-ACE_GQoS_Session::source_port (const u_short &source_port)
-{
- this->source_port_ = source_port;
-}
-
-// GQoS version.
-ACE_INLINE int
-ACE_GQoS_Session::version (void)
-{
- return 0;
-}
diff --git a/ace/QoS/README b/ace/QoS/README
deleted file mode 100644
index 4415bf1862b..00000000000
--- a/ace/QoS/README
+++ /dev/null
@@ -1,55 +0,0 @@
-$Id$
-
-ACE QoS API (AQoSA)
-===================
-
-This directory contains the implementation for the ACE QoS API (AQoSA).
-
-BUILD REQUIREMENTS
-==================
-WIN2K :
-
-AQoSA makes use of the GQOS API under Windows 2000. The minimum
-requirements are:
-
-1. June98 Platform SDK or later.
-2. Link with ws2_32.lib
-
-More information about GQOS is available from the MSDN website:
-http://msdn.microsoft.com/msdn-files/026/002/258/Search.asp
-
--------------------------------------------------------------------------------
-
-UNIX :
-
-AQoSA makes use of the RSVP API (RAPI) under UNIX.
-RAPI can be obtained from: ftp://ftp.isi.edu/rsvp/release/.
-rsvpd.rel4.2a4-1 may require patches in order to compile
-under current versions of Linux. Contact Craig Rodrigues <crodrigu@bbn.com>
-to obtain these patches.
-
-The following lines should be added to your platform_macros.GNU file
-before building AQoSA:
-
-PLATFORM_RAPI_CPPFLAGS += -I[path to RAPI header files]
-PLATFORM_RAPI_LIBS += -lrsvp
-PLATFORM_RAPI_LDFLAGS += -L[path to RAPI library files]
-
-1. Compile AQoSA with
-
- make rapi=1
-
-More information about RAPI can be found at:
-
-http://www.opengroup.org/onlinepubs/9619099/toc.htm
-http://www.cs.wustl.edu/~vishal/qos.html
-http://www.sun.com/software/bandwidth/rsvp/docs/
-http://www.tru64unix.compaq.com/faqs/publications/base_doc/DOCUMENTATION/V51_HTML/ARH9UCTE/TOC.HTM#RSVPCHXX
-
--------------------------------------------------------------------------------
-
-TEST
-====
-
-The test for AQoSA is located in $ACE_ROOT/examples/QOS
-
diff --git a/ace/QoS/SOCK_Dgram_Mcast_QoS.cpp b/ace/QoS/SOCK_Dgram_Mcast_QoS.cpp
deleted file mode 100644
index 9b416c010eb..00000000000
--- a/ace/QoS/SOCK_Dgram_Mcast_QoS.cpp
+++ /dev/null
@@ -1,256 +0,0 @@
-// $Id$
-
-#include "SOCK_Dgram_Mcast_QoS.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_WIN32)
-#include "ace/Sock_Connect.h" // needed for subscribe_ifs()
-#endif /* ACE_WIN32 */
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "SOCK_Dgram_Mcast_QoS.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-// This is a workaround for platforms with non-standard
-// definitions of the ip_mreq structure
-#if ! defined (IMR_MULTIADDR)
-#define IMR_MULTIADDR imr_multiaddr
-#endif /* ! defined (IMR_MULTIADDR) */
-
-ACE_RCSID(ace, SOCK_Dgram_Mcast_QoS, "$Id $")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_Dgram_Mcast_QoS)
-
-// Dummy default constructor...
-
-ACE_SOCK_Dgram_Mcast_QoS::ACE_SOCK_Dgram_Mcast_QoS (options opts)
- : ACE_SOCK_Dgram_Mcast (opts)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast_QoS::ACE_SOCK_Dgram_Mcast_QoS");
-}
-
-int
-ACE_SOCK_Dgram_Mcast_QoS::open (const ACE_INET_Addr &addr,
- const ACE_QoS_Params &qos_params,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast_QoS::open");
-
- ACE_UNUSED_ARG (qos_params);
-
- // Only perform the <open> initialization if we haven't been opened
- // earlier.
- if (this->get_handle () != ACE_INVALID_HANDLE)
- return 0;
-
- ACE_DEBUG ((LM_DEBUG,
- "Get Handle Returns Invalid Handle\n"));
-
- if (ACE_SOCK::open (SOCK_DGRAM,
- protocol_family,
- protocol,
- protocolinfo,
- g,
- flags,
- reuse_addr) == -1)
- return -1;
-
- return this->open_i (addr, 0, reuse_addr);
-}
-
-
-int
-ACE_SOCK_Dgram_Mcast_QoS::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
- const ACE_QoS_Params &qos_params,
- const ACE_TCHAR *net_if,
- int protocol_family,
- int protocol,
- int reuse_addr,
- ACE_Protocol_Info *protocolinfo)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast_QoS::subscribe_ifs");
-#if defined (ACE_WIN32)
- // Windows NT's winsock has trouble with multicast subscribes in the
- // presence of multiple network interfaces when the IP address is
- // given as INADDR_ANY. It will pick the first interface and only
- // accept mcast there. So, to work around this, cycle through all
- // of the interfaces known and subscribe to all the non-loopback
- // ones.
- //
- // Note that this only needs to be done on NT, but there's no way to
- // tell at this point if the code will be running on NT - only if it
- // is compiled for NT-only or for NT/95, and that doesn't really
- // help us. It doesn't hurt to do this on Win95, it's just a little
- // slower than it normally would be.
- //
- // NOTE - <ACE_Sock_Connect::get_ip_interfaces> doesn't always get all
- // of the interfaces. In particular, it may not get a PPP interface. This
- // is a limitation of the way <ACE_Sock_Connect::get_ip_interfaces> works
- // with MSVC. The reliable way of getting the interface list is
- // available only with MSVC 5.
-
- if (net_if == 0)
- {
- ACE_INET_Addr *if_addrs = 0;
- size_t if_cnt;
-
- if (ACE_Sock_Connect::get_ip_interfaces (if_cnt,
- if_addrs) != 0)
- return -1;
-
- size_t nr_subscribed = 0;
-
- if (if_cnt < 2)
- {
- if (this->subscribe (mcast_addr,
- qos_params,
- reuse_addr,
- ACE_LIB_TEXT ("0.0.0.0"),
- protocol_family,
- protocol,
- protocolinfo) == 0)
- ++nr_subscribed;
- }
- else
- // Iterate through all the interfaces, figure out which ones
- // offer multicast service, and subscribe to them.
- while (if_cnt > 0)
- {
- --if_cnt;
-
- // Convert to 0-based for indexing, next loop check.
- if (if_addrs[if_cnt].get_ip_address() == INADDR_LOOPBACK)
- continue;
- if (this->subscribe (mcast_addr,
- qos_params,
- reuse_addr,
- ACE_TEXT_CHAR_TO_TCHAR
- (if_addrs[if_cnt].get_host_addr()),
- protocol_family,
- protocol,
- protocolinfo) == 0)
- ++nr_subscribed;
- }
-
- delete [] if_addrs;
-
- if (nr_subscribed == 0)
- {
- errno = ENODEV;
- return -1;
- }
- else
- // 1 indicates a "short-circuit" return. This handles the
- // rather bizarre semantics of checking all the interfaces on
- // NT.
- return 1;
- }
-#else
- ACE_UNUSED_ARG (mcast_addr);
- ACE_UNUSED_ARG (qos_params);
- ACE_UNUSED_ARG (protocol_family);
- ACE_UNUSED_ARG (protocol);
- ACE_UNUSED_ARG (reuse_addr);
- ACE_UNUSED_ARG (protocolinfo);
-#endif /* ACE_WIN32 */
- // Otherwise, do it like everyone else...
-
- // Create multicast request.
- if (this->make_multicast_ifaddr (0,
- mcast_addr,
- net_if) == -1)
- return -1;
- else
- return 0;
-}
-
-int
-ACE_SOCK_Dgram_Mcast_QoS::subscribe (const ACE_INET_Addr &mcast_addr,
- const ACE_QoS_Params &qos_params,
- int reuse_addr,
- const ACE_TCHAR *net_if,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- ACE_QoS_Session *qos_session)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast_QoS::subscribe");
-
- if (this->open (mcast_addr,
- qos_params,
- protocol_family,
- protocol,
- protocolinfo,
- g,
- flags,
- reuse_addr) == -1)
- return -1;
-
- // The following method call only applies to Win32 currently.
- int result = this->subscribe_ifs (mcast_addr,
- qos_params,
- net_if,
- protocol_family,
- protocol,
- reuse_addr,
- protocolinfo);
- // Check for the "short-circuit" return value of 1 (for NT).
- if (result != 0)
- return result;
-
- // Tell network device driver to read datagrams with a
- // <mcast_request_if_> IP interface.
- else
- {
- // Check if the mcast_addr passed into this method is the
- // same as the QoS session address.
- if (mcast_addr == qos_session->dest_addr ())
- {
- // Subscribe to the QoS session.
- if (this->qos_manager_.join_qos_session (qos_session) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Unable to join QoS Session\n")),
- -1);
- }
- else
- {
- if (this->close () != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Unable to close socket\n")));
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Dest Addr in the QoS Session does")
- ACE_LIB_TEXT (" not match the address passed into")
- ACE_LIB_TEXT (" subscribe\n")),
- -1);
- }
-
- ip_mreq ret_mreq;
- this->make_multicast_ifaddr (&ret_mreq, mcast_addr, net_if);
-
- // XX This is windows stuff only. fredk
- if (ACE_OS::join_leaf (this->get_handle (),
- ACE_reinterpret_cast (const sockaddr *,
- &ret_mreq.IMR_MULTIADDR.s_addr),
- sizeof ret_mreq.IMR_MULTIADDR.s_addr,
- qos_params) == ACE_INVALID_HANDLE
- && errno != ENOTSUP)
- return -1;
-
- else
- if (qos_params.socket_qos () != 0)
- qos_session->qos (*(qos_params.socket_qos ()));
-
- return 0;
- }
-}
-
-
-
-
diff --git a/ace/QoS/SOCK_Dgram_Mcast_QoS.h b/ace/QoS/SOCK_Dgram_Mcast_QoS.h
deleted file mode 100644
index b6bad0bb5ca..00000000000
--- a/ace/QoS/SOCK_Dgram_Mcast_QoS.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SOCK_Dgram_Mcast_QoS.h
- *
- * $Id$
- *
- * @author Vishal Kachroo <vishal@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_SOCK_DGRAM_MCAST_QOS_H
-#define ACE_SOCK_DGRAM_MCAST_QOS_H
-#include "ace/pre.h"
-
-#include "ace/SOCK_Dgram_Mcast.h"
-#include "QoS_Manager.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_SOCK_Dgram_Mcast_QoS
- *
- * @brief Defines the member functions for the ACE QoS enabled socket
- * wrapper for UDP/IP multicast.
- */
-class ACE_QoS_Export ACE_SOCK_Dgram_Mcast_QoS : public ACE_SOCK_Dgram_Mcast
-{
-
-public:
- // = Initialization routines.
- /// Ctor, has same defaults as ACE_SOCK_Dgram_Mcast
- ACE_SOCK_Dgram_Mcast_QoS (options opts = DEFOPTS);
-
- // Note that there is no public <open> method. Therefore, this
- // class cannot be used unless you <subscribe> to a multicast group.
- // If you just want to send (and not listen) to a multicast group,
- // use <ACE_SOCK_Dgram> or <ACE_SOCK_CODgram> instead.
-
- /// Default dtor.
- ~ACE_SOCK_Dgram_Mcast_QoS (void);
-
- // = Multicast group management routines.
- /**
- * This is a QoS-enabled method for joining a multicast group, which
- * passes <qos_params> via <ACE_OS::join_leaf>. The network
- * interface device driver is instructed to accept datagrams with
- * <mcast_addr> multicast addresses. If the socket has already been
- * opened, <subscribe> closes the socket and opens a new socket
- * bound to the <mcast_addr>. The session object specifies the QoS
- * session that the socket wants to subscribe to. A socket may
- * subscribe to multiple QoS sessions by calling this method multiple
- * times with different session objects.
- *
- * The <net_if> interface is hardware specific, e.g., use "netstat
- * -i" to find whether your interface is, such as "le0" or something
- * else. If net_if == 0, <subscribe> uses the default mcast
- * interface. Returns: -1 if the call fails.
- *
- * Note that some platforms, such as pSoS, support only number, not
- * names, for network interfaces. For these platforms, just give
- * these numbers in alphanumeric form and <subscribe> will convert
- * them into numbers via <ACE_OS::atoi>.
- */
- int subscribe (const ACE_INET_Addr &mcast_addr,
- const ACE_QoS_Params &qos_params,
- int reuse_addr = 1,
- const ACE_TCHAR *net_if = 0,
- int protocol_family = PF_INET,
- int protocol = 0,
- ACE_Protocol_Info *protocolinfo = 0,
- ACE_SOCK_GROUP g = 0,
- u_long flags = 0,
- ACE_QoS_Session *qos_session = 0);
-
- // = Data transfer routines.
-
- /// Send <buffer_count> worth of <buffers> to <addr> using overlapped
- /// I/O (uses <WSASentTo>). Returns 0 on success.
- ssize_t send (const iovec buffers[],
- int buffer_count,
- size_t &number_of_bytes_sent,
- int flags,
- const ACE_Addr &addr,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func) const;
-
- /// Send an <n> byte <buf> to the datagram socket (uses <WSASentTo>).
- ssize_t send (const void *buf,
- size_t n,
- const ACE_Addr &addr,
- int flags,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func) const;
-
- /// Returns the QoS manager for this socket.
- ACE_QoS_Manager qos_manager (void);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- int open (const ACE_INET_Addr &addr,
- const ACE_QoS_Params &qos_params,
- int protocol_family = PF_INET,
- int protocol = 0,
- ACE_Protocol_Info *protocolinfo = 0,
- ACE_SOCK_GROUP g = 0,
- u_long flags = 0,
- int reuse_addr = 0);
-
-private:
- // = Disable public <open> method to ensure class used properly.
-
-
- /// Subscribe to the multicast interface using QoS-enabled semantics.
- int subscribe_ifs (const ACE_INET_Addr &mcast_addr,
- const ACE_QoS_Params &qos_params,
- const ACE_TCHAR *net_if,
- int protocol_family,
- int protocol,
- int reuse_addr,
- ACE_Protocol_Info *protocolinfo);
-
- /// Manages the QoS sessions that this socket subscribes to.
- ACE_QoS_Manager qos_manager_;
-
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "SOCK_Dgram_Mcast_QoS.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-#endif /* ACE_SOCK_DGRAM_MCAST_QOS_H */
diff --git a/ace/QoS/SOCK_Dgram_Mcast_QoS.i b/ace/QoS/SOCK_Dgram_Mcast_QoS.i
deleted file mode 100644
index d664d12720e..00000000000
--- a/ace/QoS/SOCK_Dgram_Mcast_QoS.i
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ASYS_INLINE
-ACE_SOCK_Dgram_Mcast_QoS::~ACE_SOCK_Dgram_Mcast_QoS (void)
-{
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Dgram_Mcast_QoS::send (const iovec buffers[],
- int buffer_count,
- size_t &number_of_bytes_sent,
- int flags,
- const ACE_Addr &addr,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast_QoS::send");
-
- return ACE_SOCK_Dgram::send (buffers,
- buffer_count,
- number_of_bytes_sent,
- flags,
- addr,
- overlapped,
- func);
-
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Dgram_Mcast_QoS::send (const void *buf,
- size_t n,
- const ACE_Addr &addr,
- int flags,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast_QoS::send");
-
- return ACE_SOCK_Dgram::send (buf,
- n,
- addr,
- flags,
- overlapped,
- func);
-}
-
-ASYS_INLINE ACE_QoS_Manager
-ACE_SOCK_Dgram_Mcast_QoS::qos_manager (void)
-{
- return this->qos_manager_;
-}
diff --git a/ace/QoS/makefile.bor b/ace/QoS/makefile.bor
deleted file mode 100644
index 38f51736acf..00000000000
--- a/ace/QoS/makefile.bor
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Makefile for building the ACE QoS library with Borland C++Builder
-#
-
-NAME = ACE_QoS
-
-OBJFILES = \
- $(OBJDIR)\QoS_Decorator.obj \
- $(OBJDIR)\QoS_Manager.obj \
- $(OBJDIR)\QoS_Session_Factory.obj \
- $(OBJDIR)\QoS_Session_Impl.obj \
- $(OBJDIR)\SOCK_Dgram_Mcast_QoS.obj
-
-CFLAGS = $(ACE_CFLAGS) $(ACE_QOS_CFLAGS) -DACE_QoS_BUILD_DLL
-
-LIBFILES = $(ACE_LIB)
-
-CPPDIR = .
-
-INCDIR_NAME = ace\QoS
-INCLUDES = *.h *.i
-
-!include <$(ACE_ROOT)\include\makeinclude\build_core_library.bor>
-
diff --git a/ace/QoS/qos.mpc b/ace/QoS/qos.mpc
deleted file mode 100644
index 4725a31a174..00000000000
--- a/ace/QoS/qos.mpc
+++ /dev/null
@@ -1,7 +0,0 @@
-project : acelib, core {
- depends = ace
- sharedname = ACE_QoS
- dllflags = ACE_QoS_BUILD_DLL
- libout = ..
- include_dir = ace/QoS
-}
diff --git a/ace/QtReactor.cpp b/ace/QtReactor.cpp
deleted file mode 100644
index 6448cbd8d4e..00000000000
--- a/ace/QtReactor.cpp
+++ /dev/null
@@ -1,435 +0,0 @@
-//$Id$
-#include "ace/QtReactor.h"
-
-#if defined (ACE_HAS_QT)
-
-ACE_ALLOC_HOOK_DEFINE (ACE_QtReactor)
-
-// Must be called with lock held
-ACE_QtReactor::ACE_QtReactor (QApplication *qapp,
- size_t size,
- int restart,
- ACE_Sig_Handler *handler)
- : ACE_Select_Reactor(size, restart, handler),
- qapp_(qapp),
- qtime_ (0)
-
-{
- // When the ACE_Select_Reactor is constructed it creates the notify
- // pipe and registers it with the register_handler_i() method. The
- // QtReactor overloads this method BUT because the
- // register_handler_i occurs when constructing the base class
- // ACE_Select_Reactor, the ACE_Select_Reactor register_handler_i()
- // is called not the QtReactor register_handler_i(). This means
- // that the notify pipe is registered with the ACE_Select_Reactor
- // event handling code not the QtReactor and so notfications don't
- // work. To get around this we simply close and re-opened the
- // notification handler in the constructor of the QtReactor.
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- this->notify_handler_->close ();
-
- // Patch for MS Windows: close and open doesn't clear the read
- // fd_set, so reset it manually
- this->wait_set_.rd_mask_.reset ();
-
- this->notify_handler_->open (this, 0);
-#endif /* ACE_MT_SAFE */
-}
-
-ACE_QtReactor::~ACE_QtReactor (void)
-{
- //no-op
-}
-
-void
-ACE_QtReactor::qapplication (QApplication *qapp)
-{
- qapp_ = qapp ;
-}
-
-int
-ACE_QtReactor::wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &handle_set,
- ACE_Time_Value *max_wait_time)
-{
- ACE_TRACE( "ACE_QtReactor::wait_for_multiple_events" );
-
- int nfound = 0;
- do
- {
- max_wait_time = this->timer_queue_->calculate_timeout (max_wait_time);
- size_t width = this->handler_rep_.max_handlep1 ();
- handle_set.rd_mask_ = this->wait_set_.rd_mask_;
- handle_set.wr_mask_ = this->wait_set_.wr_mask_;
- handle_set.ex_mask_ = this->wait_set_.ex_mask_;
-
- nfound = QtWaitForMultipleEvents (width,
- handle_set,
- max_wait_time);
-
- } while( nfound == -1 && this->handle_error () > 0 );
-
- if (nfound > 0)
- {
-#if !defined (ACE_WIN32)
- handle_set.rd_mask_.sync (this->handler_rep_.max_handlep1 ());
- handle_set.wr_mask_.sync (this->handler_rep_.max_handlep1 ());
- handle_set.ex_mask_.sync (this->handler_rep_.max_handlep1 ());
-#endif /* ACE_WIN32 */
- }
-
- return nfound;
- // Timed out or input available
-}
-
-void
-ACE_QtReactor::timeout_event (void)
-{
- // Deal with any timer events
- ACE_Select_Reactor_Handle_Set handle_set;
- this->dispatch (0, handle_set );
-
- // Set next timeout signal
- this->reset_timeout ();
-}
-
-void
-ACE_QtReactor::read_event (int handle)
-{
- // Send read event
- ACE_Select_Reactor_Handle_Set dispatch_set;
-
- dispatch_set.rd_mask_.set_bit (ACE_HANDLE(handle));
- this->dispatch (1, dispatch_set);
-}
-
-void
-ACE_QtReactor::write_event (int handle)
-{
- // Send write event
- ACE_Select_Reactor_Handle_Set dispatch_set;
-
- dispatch_set.wr_mask_.set_bit (ACE_HANDLE(handle));
- this->dispatch (1, dispatch_set);
-}
-
-void
-ACE_QtReactor::exception_event (int handle)
-{
- // Send exception event
- ACE_Select_Reactor_Handle_Set dispatch_set;
-
- dispatch_set.ex_mask_.set_bit(ACE_HANDLE(handle));
- dispatch (1, dispatch_set);
-}
-
-int
-ACE_QtReactor::QtWaitForMultipleEvents (int width,
- ACE_Select_Reactor_Handle_Set &wait_set,
- ACE_Time_Value */*max_wait_time*/)
-{
- // Check to make sure our handle's are all usable.
- ACE_Select_Reactor_Handle_Set temp_set = wait_set;
-
- if (ACE_OS::select (width,
- temp_set.rd_mask_,
- temp_set.wr_mask_,
- temp_set.ex_mask_,
- (ACE_Time_Value *) &ACE_Time_Value::zero ) == -1)
- return -1; // Bad file arguments...
-
- // Qt processing.
- this->qapp_->processOneEvent () ;
-
- // Reset the width, in case it changed during the upcalls.
- width = handler_rep_.max_handlep1 ();
-
- // Now actually read the result needed by the <Select_Reactor> using
- // <select>.
- return ACE_OS::select(width,
- wait_set.rd_mask_,
- wait_set.wr_mask_,
- wait_set.ex_mask_,
- (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-int
-ACE_QtReactor::register_handler_i (ACE_HANDLE handle ,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_QtReactor::register_handler_i");
-
- int result;
- if ((result = ACE_Select_Reactor::register_handler_i(handle,
- handler,
- mask ))
- == -1)
- return -1;
-
- if (ACE_BIT_ENABLED(mask, ACE_Event_Handler::READ_MASK) ||
- ACE_BIT_ENABLED( mask, ACE_Event_Handler::ACCEPT_MASK))
- {
- // We check for any unused handles.
- MAP::ITERATOR read_iter = this->read_notifier_.end ();
- QSocketNotifier *qsock_read_notifier = 0;
-
- // We check whether we have a data against the present
- // handle. If so we need to unbind the data.
- if ((this->read_notifier_.find (handle,
- qsock_read_notifier) != -1))
- {
- if (qsock_read_notifier != (*read_iter).int_id_)
- {
- this->read_notifier_.unbind (handle,
- qsock_read_notifier);
- delete qsock_read_notifier;
- }
- }
-
- ACE_NEW_RETURN (qsock_read_notifier,
- QSocketNotifier (int(handle), QSocketNotifier::Read),
- -1);
-
- this->read_notifier_.bind (handle,
- qsock_read_notifier);
-
- QObject::connect (qsock_read_notifier,
- SIGNAL (activated (int)),
- this,
- SLOT (read_event (int))) ;
- }
-
- if (ACE_BIT_ENABLED( mask, ACE_Event_Handler::WRITE_MASK) ||
- ACE_BIT_ENABLED( mask, ACE_Event_Handler::ACCEPT_MASK) ||
- ACE_BIT_ENABLED( mask, ACE_Event_Handler::CONNECT_MASK))
- {
- // We check for any unused handles.
- MAP::ITERATOR write_iter = this->write_notifier_.end ();
- QSocketNotifier *qsock_write_notifier = 0;
-
- // We check whether we have a data against the present
- // handle. If so we need to unbind the data.
- if ((this->write_notifier_.find (handle,
- qsock_write_notifier) != -1))
- {
- if (qsock_write_notifier != (*write_iter).int_id_)
- {
- this->write_notifier_.unbind (handle,
- qsock_write_notifier);
- delete qsock_write_notifier;
- }
- }
-
- ACE_NEW_RETURN (qsock_write_notifier,
- QSocketNotifier (int(handle), QSocketNotifier::Write),
- -1);
-
- this->write_notifier_.bind (handle,
- qsock_write_notifier);
-
- QObject::connect (qsock_write_notifier,
- SIGNAL (activated (int)),
- this,
- SLOT (write_event (int)));
- }
-
- if (ACE_BIT_ENABLED( mask,
- ACE_Event_Handler::EXCEPT_MASK))
- {
- // We check for any unused handles.
- MAP::ITERATOR excpt_iter = this->exception_notifier_.end ();
- QSocketNotifier *qsock_excpt_notifier = 0;
-
- // We check whether we have a data against the present
- // handle. If so we need to unbind the data.
- if ((this->exception_notifier_.find (handle,
- qsock_excpt_notifier) != -1))
- {
- if (qsock_excpt_notifier != (*excpt_iter).int_id_)
- {
- this->exception_notifier_.unbind (handle,
- qsock_excpt_notifier);
- delete qsock_excpt_notifier;
- }
- }
-
- ACE_NEW_RETURN (qsock_excpt_notifier,
- QSocketNotifier (int(handle), QSocketNotifier::Exception),
- -1);
-
- this->exception_notifier_.bind (handle,
- qsock_excpt_notifier);
-
- QObject::connect (qsock_excpt_notifier,
- SIGNAL (activated (int)),
- this,
- SLOT (exception_event (int))) ;
- }
-
- return 0;
-}
-
-int
-ACE_QtReactor::register_handler_i (const ACE_Handle_Set &handles,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- return ACE_Select_Reactor::register_handler_i(handles,
- handler,
- mask);
-}
-
-int ACE_QtReactor::remove_handler_i (ACE_HANDLE handle ,
- ACE_Reactor_Mask mask )
-{
- ACE_TRACE ("ACE_QtReactor::remove_handler_i");
-
- QSocketNotifier *qsock_notifier = 0;
-
- // Looks for the handle in the maps and removes them.
- MAP::ITERATOR iter = this->read_notifier_.end ();
-
- if ((this->read_notifier_.find (handle,
- qsock_notifier) != -1))
- {
- this->read_notifier_.unbind (handle,
- qsock_notifier);
- delete qsock_notifier;
- }
-
- iter = this->write_notifier_.end ();
- if ((this->write_notifier_.find (handle,
- qsock_notifier) != -1))
- {
- this->write_notifier_.unbind (handle,
- qsock_notifier);
- delete qsock_notifier;
- }
-
- iter = this->exception_notifier_.end ();
- if ((this->exception_notifier_.find (handle,
- qsock_notifier) != -1))
- {
- this->exception_notifier_.unbind (handle,
- qsock_notifier);
- delete qsock_notifier;
- }
-
- // Now let the reactor do its work.
- return ACE_Select_Reactor::remove_handler_i (handle, mask);
-}
-
-
-int
-ACE_QtReactor::remove_handler_i (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask mask)
-{
- return ACE_Select_Reactor::remove_handler_i (handles,
- mask);
-}
-
-// The following functions ensure that there is an Qt timeout for the
-// first timeout in the Reactor's Timer_Queue.
-
-void
-ACE_QtReactor::reset_timeout (void)
-{
- if (this->qtime_ != 0)
- {
- delete this->qtime_;
- this->qtime_ = 0;
- }
-
- ACE_Time_Value *max_wait_time =
- this->timer_queue_->calculate_timeout (0) ;
-
- if (max_wait_time)
- {
- ACE_NEW (this->qtime_,
- QTimer);
-
- QObject::connect (qtime_,
- SIGNAL (timeout ()),
- this,
- SLOT (timeout_event ()));
-
- qtime_->start(max_wait_time->msec(), 1);
- }
-
-}
-
-
-long
-ACE_QtReactor::schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_QtReactor::schedule_timer");
- ACE_MT (ACE_GUARD_RETURN (ACE_Select_Reactor_Token,
- ace_mon,
- this->token_,
- -1));
-
- long result;
- if ((result = ACE_Select_Reactor::schedule_timer(event_handler,
- arg,
- delay,
- interval)) == -1 )
- return -1;
- else
- {
- this->reset_timeout ();
- return result;
- }
-}
-
-int
-ACE_QtReactor::cancel_timer (ACE_Event_Handler *handler,
- int dont_call_handle_close)
-{
- ACE_TRACE ("ACE_QtReactor::cancel_timer");
-
- if (ACE_Select_Reactor::cancel_timer (handler,
- dont_call_handle_close ) == -1 )
- return -1 ;
- else
- {
- this->reset_timeout( ) ;
- return 0 ;
- }
-}
-
-int ACE_QtReactor::cancel_timer (long timer_id,
- const void **arg,
- int dont_call_handle_close )
-{
- ACE_TRACE( "ACE_QtReactor::cancel_timer" ) ;
-
- if (ACE_Select_Reactor::cancel_timer (timer_id,
- arg,
- dont_call_handle_close ) == -1 )
- return -1 ;
- else
- {
- this->reset_timeout( ) ;
- return 0 ;
- }
-}
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Map_Entry<ACE_HANDLE, QSocketNotifier *>;
-template class ACE_Map_Manager<ACE_HANDLE, QSocketNotifier *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<ACE_HANDLE, QSocketNotifier *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator<ACE_HANDLE, QSocketNotifier *, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<ACE_HANDLE, QSocketNotifier *, ACE_Null_Mutex>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Map_Entry<ACE_HANDLE, QSocketNotifier *>
-#pragma instantiate ACE_Map_Manager<ACE_HANDLE, QSocketNotifier *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_HANDLE, QSocketNotifier *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator<ACE_HANDLE, QSocketNotifier *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_HANDLE, QSocketNotifier *, ACE_Null_Mutex>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /*ACE_HAS_QT */
diff --git a/ace/QtReactor.h b/ace/QtReactor.h
deleted file mode 100644
index 1af6335ed12..00000000000
--- a/ace/QtReactor.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file QtReactor.h
- *
- * $Id$
- *
- * @author Hamish Friedlander <ullexco@wave.co.nz>
- * @author Balachandran Natarajan <bala@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_QTREACTOR_H
-#define ACE_QTREACTOR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_QT)
-
-#include "ace/Select_Reactor.h"
-#include "ace/Map_Manager.h"
-
-// Qttoolkit specific includes.
-#include /**/ <qapplication.h>
-#include /**/ <qobject.h>
-#include /**/ <qsocketnotifier.h>
-#include /**/ <qtimer.h>
-
-/**
- * @class ACE_QtReactor
- *
- * @brief An object-oriented event demultiplexor and event handler
- * dispatcher that uses the Qt Library. This class declaration
- * also uses the extension facilities provided by the Qt. So,
- * readers of the class declaration should not be upset with
- * the appearence of the Keywords like Q_OBJECT, private slots
- * etc. They are specific to Qt which uses these as a call back
- * methods implementation mechanism.
- */
-class ACE_Export ACE_QtReactor : public QObject, public ACE_Select_Reactor
-{
-
- Q_OBJECT
-
- public:
- // = Initialization and termination methods.
- ACE_QtReactor (QApplication *qapp = NULL,
- size_t size = DEFAULT_SIZE,
- int restart = 0,
- ACE_Sig_Handler *handler = 0);
-
- virtual ~ACE_QtReactor (void);
-
- void qapplication (QApplication *qapp);
-
- // = Timer operations.
- virtual long schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval);
-
- virtual int cancel_timer (ACE_Event_Handler *handler,
- int dont_call_handle_close = 1);
-
- virtual int cancel_timer (long timer_id,
- const void **arg = 0,
- int dont_call_handle_close = 1);
-
- protected:
-
- // = Register timers/handles with Qt
-
- /// Register a single <handler>.
- virtual int register_handler_i (ACE_HANDLE handle,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask);
-
- /// Register a set of <handlers> with Qt.
- virtual int register_handler_i (const ACE_Handle_Set &handles,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask);
-
-
- /// Remove the <handler> associated with this <handle>.
- virtual int remove_handler_i (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
- /// Remove a set of <handles>.
- virtual int remove_handler_i (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask mask);
-
- /// Wait for events to occur.
- virtual int wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &handle_set,
- ACE_Time_Value *max_wait_time);
-
- virtual int QtWaitForMultipleEvents (int width,
- ACE_Select_Reactor_Handle_Set &wait_set,
- ACE_Time_Value *max_wait_time);
-
- // Wait for Qt events to occur
-
- /// Some Qt stuff that we need to have
- QApplication *qapp_ ;
-
- /// Typedef of a map.
- typedef ACE_Map_Manager<ACE_HANDLE, QSocketNotifier *, ACE_Null_Mutex> MAP;
-
- /// A notifier for a read
- MAP read_notifier_;
-
- /// A write notifier
- MAP write_notifier_;
-
- /// An exception notifier
- MAP exception_notifier_;
-
- /// The timer class that would provide timer-sgnals & single-shot timers
- QTimer *qtime_ ;
-
- private:
- /// This method ensures there's an Qt timeout for the first timeout
- /// in the Reactor's Timer_Queue.
- void reset_timeout (void);
-
- /// Deny access since member-wise won't work...
- ACE_QtReactor (const ACE_QtReactor &);
- ACE_QtReactor &operator= (const ACE_QtReactor &);
-
- private slots:
-
- // These are all part of the communication mechanism adopted in Qt.
- /// Dispatch a Read Event
- void read_event (int FD);
-
- /// Dispatch a Write Event
- void write_event (int FD);
-
- /// Dispatch an exception event
- void exception_event (int FD);
-
- /// Dispach a timeout event
- void timeout_event (void);
-};
-
-#endif /*ACE_HAS_QT */
-
-#include "ace/post.h"
-#endif /* ACE_QTREACTOR_H */
diff --git a/ace/RB_Tree.cpp b/ace/RB_Tree.cpp
deleted file mode 100644
index 9d9bc2d9b94..00000000000
--- a/ace/RB_Tree.cpp
+++ /dev/null
@@ -1,1126 +0,0 @@
-// $Id$
-
-// RB_Tree.cpp
-
-#ifndef ACE_RB_TREE_C
-#define ACE_RB_TREE_C
-
-#include "ace/RB_Tree.h"
-#include "ace/SString.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/RB_Tree.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, RB_Tree, "$Id$")
-
-// Constructor.
-
-template <class EXT_ID, class INT_ID>
-ACE_RB_Tree_Node<EXT_ID, INT_ID>::ACE_RB_Tree_Node (const EXT_ID &k, const INT_ID &t)
- : k_ (k),
- t_ (t),
- color_ (RED),
- parent_ (0),
- left_ (0),
- right_ (0)
-{
- ACE_TRACE ("ACE_RB_Tree_Node<EXT_ID, INT_ID>::ACE_RB_Tree_Node (const EXT_ID &k, const INT_ID &t)");
-}
-
-
-// Destructor.
-
-template <class EXT_ID, class INT_ID>
-ACE_RB_Tree_Node<EXT_ID, INT_ID>::~ACE_RB_Tree_Node (void)
-{
- ACE_TRACE ("ACE_RB_Tree_Node<EXT_ID, INT_ID>::~ACE_RB_Tree_Node");
-
- // Delete left sub-tree.
- delete left_;
-
- // Delete right sub_tree.
- delete right_;
-}
-
-// Constructor.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (ACE_Allocator *alloc)
- : allocator_ (alloc),
- root_ (0),
- current_size_ (0)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::"
- "ACE_RB_Tree (ACE_Allocator *alloc)");
- if (this->open (alloc) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_RB_Tree::ACE_RB_Tree\n")));
-}
-
-// Copy constructor.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &rbt)
- : allocator_ (rbt.allocator_),
- root_ (0),
- current_size_ (0)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::"
- "ACE_RB_Tree (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &rbt)");
- ACE_WRITE_GUARD (ACE_LOCK, ace_mon, this->lock_);
-
- // Make a deep copy of the passed tree.
- ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> iter(rbt);
-
- for (iter.first ();
-
- iter.is_done () == 0; iter.next ())
- insert_i (*(iter.key ()),
- *(iter.item ()));
-}
-
-// Destructor.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree ()
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree");
-
- // Use the locked public method, to be totally safe, as the class
- // can be used with an allocator and placement new.
- this->close ();
-}
-
-// Assignment operator.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator = (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &rbt)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator =");
- ACE_WRITE_GUARD (ACE_LOCK, ace_mon, this->lock_);
-
- if (this != &rbt)
- {
- // Clear out the existing tree.
- close_i ();
-
- // Make a deep copy of the passed tree.
- ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> iter(rbt);
-
- for (iter.first ();
- iter.is_done () == 0;
- iter.next ())
- insert_i (*(iter.key ()),
- *(iter.item ()));
-
- // Use the same allocator as the rhs.
- allocator_ = rbt.allocator_;
- }
-}
-// Less than comparison function for keys, default functor
-// implementation returns 1 if k1 < k2, 0 otherwise.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::lessthan (const EXT_ID &k1, const EXT_ID &k2)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::lessthan");
- return this->compare_keys_ (k1, k2);
-}
-
-// Method for right rotation of the tree about a given node.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_rotate_right (ACE_RB_Tree_Node<EXT_ID, INT_ID> *x)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_rotate_right");
-
- if (!x)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("\nerror: x is a null pointer in ")
- ACE_LIB_TEXT ("ACE_RB_Tree<EXT_ID, INT_ID>::RB_rotate_right\n")));
- else if (! (x->left()))
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("\nerror: x->left () is a null pointer in ")
- ACE_LIB_TEXT ("ACE_RB_Tree<EXT_ID, INT_ID>::RB_rotate_right\n")));
- else
- {
- ACE_RB_Tree_Node<EXT_ID, INT_ID> * y;
- y = x->left ();
- x->left (y->right ());
- if (y->right ())
- y->right ()->parent (x);
- y->parent (x->parent ());
- if (x->parent ())
- {
- if (x == x->parent ()->right ())
- x->parent ()->right (y);
- else
- x->parent ()->left (y);
- }
- else
- root_ = y;
- y->right (x);
- x->parent (y);
- }
-}
-
-// Method for left rotation of the tree about a given node.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_rotate_left (ACE_RB_Tree_Node<EXT_ID, INT_ID> * x)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_rotate_left");
-
- if (! x)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("\nerror: x is a null pointer in ")
- ACE_LIB_TEXT ("ACE_RB_Tree<EXT_ID, INT_ID>::RB_rotate_left\n")));
- else if (! (x->right()))
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("\nerror: x->right () is a null pointer ")
- ACE_LIB_TEXT ("in ACE_RB_Tree<EXT_ID, INT_ID>::RB_rotate_left\n")));
- else
- {
- ACE_RB_Tree_Node<EXT_ID, INT_ID> * y;
- y = x->right ();
- x->right (y->left ());
- if (y->left ())
- y->left ()->parent (x);
- y->parent (x->parent ());
- if (x->parent ())
- {
- if (x == x->parent ()->left ())
- x->parent ()->left (y);
- else
- x->parent ()->right (y);
- }
- else
- root_ = y;
- y->left (x);
- x->parent (y);
- }
-}
-
-// Method for restoring Red-Black properties after a specific deletion case.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::
-RB_delete_fixup (ACE_RB_Tree_Node<EXT_ID, INT_ID> *x,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *parent)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_delete_fixup");
-
- while (x != this->root_
- && (!x
- || x->color () == ACE_RB_Tree_Node_Base::BLACK))
- {
- if (x == parent->left ())
- {
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *w = parent->right ();
- if (w && w->color () == ACE_RB_Tree_Node_Base::RED)
- {
- w->color (ACE_RB_Tree_Node_Base::BLACK);
- parent->color (ACE_RB_Tree_Node_Base::RED);
- RB_rotate_left (parent);
- w = parent->right ();
- }
- // CLR pp. 263 says that nil nodes are implicitly colored BLACK
- if (w
- && (!w->left ()
- || w->left ()->color () == ACE_RB_Tree_Node_Base::BLACK)
- && (!w->right ()
- || w->right ()->color () == ACE_RB_Tree_Node_Base::BLACK))
- {
- w->color (ACE_RB_Tree_Node_Base::RED);
- x = parent;
- parent = x->parent ();
- }
- else
- {
- // CLR pp. 263 says that nil nodes are implicitly colored BLACK
- if (w
- && (!w->right ()
- || w->right ()->color () == ACE_RB_Tree_Node_Base::BLACK))
- {
- if (w->left ())
- w->left ()->color (ACE_RB_Tree_Node_Base::BLACK);
- w->color (ACE_RB_Tree_Node_Base::RED);
- RB_rotate_right (w);
- w = parent->right ();
- }
- if (w)
- {
- w->color (parent->color ());
- if (w->right ())
- w->right ()->color (ACE_RB_Tree_Node_Base::BLACK);
- }
- parent->color (ACE_RB_Tree_Node_Base::BLACK);
- RB_rotate_left (parent);
- x = root_;
- }
- }
- else
- {
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *w = parent->left ();
- if (w && w->color () == ACE_RB_Tree_Node_Base::RED)
- {
- w->color (ACE_RB_Tree_Node_Base::BLACK);
- parent->color (ACE_RB_Tree_Node_Base::RED);
- RB_rotate_right (parent);
- w = parent->left ();
- }
- // CLR pp. 263 says that nil nodes are implicitly colored BLACK
- if (w
- && (!w->left ()
- || w->left ()->color () == ACE_RB_Tree_Node_Base::BLACK)
- && (!w->right ()
- || w->right ()->color () == ACE_RB_Tree_Node_Base::BLACK))
- {
- w->color (ACE_RB_Tree_Node_Base::RED);
- x = parent;
- parent = x->parent ();
- }
- else
- {
- // CLR pp. 263 says that nil nodes are implicitly colored BLACK
- if (w
- && (!w->left ()
- || w->left ()->color () == ACE_RB_Tree_Node_Base::BLACK))
- {
- w->color (ACE_RB_Tree_Node_Base::RED);
- if (w->right ())
- w->right ()->color (ACE_RB_Tree_Node_Base::BLACK);
- RB_rotate_left (w);
- w = parent->left ();
- }
- if (w)
- {
- w->color (parent->color ());
- if (w->left ())
- w->left ()->color (ACE_RB_Tree_Node_Base::BLACK);
- }
- parent->color (ACE_RB_Tree_Node_Base::BLACK);
- RB_rotate_right (parent);
- x = root_;
- }
- }
- }
-
- if (x)
- x->color (ACE_RB_Tree_Node_Base::BLACK);
-}
-
-// Return a pointer to a matching node if there is one, a pointer to
-// the node under which to insert the item if the tree is not empty
-// and there is no such match, or 0 if the tree is empty.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> ACE_RB_Tree_Node<EXT_ID, INT_ID> *
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::find_node (const EXT_ID &k, ACE_RB_Tree_Base::RB_SearchResult &result)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::find_node");
-
- // Start at the root.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *current = root_;
-
- while (current)
- {
- // While there are more nodes to examine.
- if (this->lessthan (current->key (), k))
- {
- // If the search key is greater than the current node's key.
- if (current->right ())
- // If the right subtree is not empty, search to the right.
- current = current->right ();
- else
- {
- // If the right subtree is empty, we're done searching,
- // and are positioned to the left of the insertion point.
- result = LEFT;
- break;
- }
- }
- else if (this->lessthan (k, current->key ()))
- {
- // Else if the search key is less than the current node's key.
- if (current->left ())
- // If the left subtree is not empty, search to the left.
- current = current->left ();
- else
- {
- // If the left subtree is empty, we're done searching,
- // and are positioned to the right of the insertion point.
- result = RIGHT;
- break;
- }
- }
- else
- {
- // If the keys match exactly, we're done as well.
- result = EXACT;
- break;
- }
- }
-
- return current;
-}
-
-// Rebalance the tree after insertion of a node.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_rebalance (ACE_RB_Tree_Node<EXT_ID, INT_ID> * x)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_rebalance");
-
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *y = 0;
-
- while (x &&
- x->parent ()
- && x->parent ()->color () == ACE_RB_Tree_Node_Base::RED)
- {
- if (! x->parent ()->parent ())
- {
- // If we got here, something is drastically wrong!
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("\nerror: parent's parent is null in ")
- ACE_LIB_TEXT ("ACE_RB_Tree<EXT_ID, INT_ID>::RB_rebalance\n")));
- return;
- }
-
- if (x->parent () == x->parent ()->parent ()->left ())
- {
- y = x->parent ()->parent ()->right ();
- if (y && y->color () == ACE_RB_Tree_Node_Base::RED)
- {
- // Handle case 1 (see CLR book, pp. 269).
- x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK);
- y->color (ACE_RB_Tree_Node_Base::BLACK);
- x->parent ()->parent ()->color (ACE_RB_Tree_Node_Base::RED);
- x = x->parent ()->parent ();
- }
- else
- {
- if (x == x->parent ()->right ())
- {
- // Transform case 2 into case 3 (see CLR book, pp. 269).
- x = x->parent ();
- RB_rotate_left (x);
- }
-
- // Handle case 3 (see CLR book, pp. 269).
- x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK);
- x->parent ()->parent ()->color (ACE_RB_Tree_Node_Base::RED);
- RB_rotate_right (x->parent ()->parent ());
- }
- }
- else
- {
- y = x->parent ()->parent ()->left ();
- if (y && y->color () == ACE_RB_Tree_Node_Base::RED)
- {
- // Handle case 1 (see CLR book, pp. 269).
- x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK);
- y->color (ACE_RB_Tree_Node_Base::BLACK);
- x->parent ()->parent ()->color (ACE_RB_Tree_Node_Base::RED);
- x = x->parent ()->parent ();
- }
- else
- {
- if (x == x->parent ()->left ())
- {
- // Transform case 2 into case 3 (see CLR book, pp. 269).
- x = x->parent ();
- RB_rotate_right (x);
- }
-
- // Handle case 3 (see CLR book, pp. 269).
- x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK);
- x->parent ()->parent ()->color (ACE_RB_Tree_Node_Base::RED);
- RB_rotate_left (x->parent ()->parent ());
- }
- }
- }
-}
-
-// Method to find the successor node of the given node in the tree.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> ACE_RB_Tree_Node<EXT_ID, INT_ID> *
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_successor (ACE_RB_Tree_Node<EXT_ID, INT_ID> *x) const
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_successor");
-
- if (x == 0)
- return 0;
-
- if (x->right ())
- return RB_tree_minimum (x->right ());
-
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *y = x->parent ();
- while ((y) && (x == y->right ()))
- {
- x = y;
- y = y->parent ();
- }
-
- return y;
-}
-
-// Method to find the predecessor node of the given node in the tree.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> ACE_RB_Tree_Node<EXT_ID, INT_ID> *
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_predecessor (ACE_RB_Tree_Node<EXT_ID, INT_ID> *x) const
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_predecessor");
- if (x == 0)
- return 0;
-
- if (x->left ())
- return RB_tree_maximum (x->left ());
-
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *y = x->parent ();
-
- while ((y) && (x == y->left ()))
- {
- x = y;
- y = y->parent ();
- }
-
- return y;
-}
-
-// Method to find the minimum node of the subtree rooted at the given node.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> ACE_RB_Tree_Node<EXT_ID, INT_ID> *
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_minimum (ACE_RB_Tree_Node<EXT_ID, INT_ID> *x) const
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_minimum");
-
- while ((x) && (x->left ()))
- x = x->left ();
-
- return x;
-}
-
-// Method to find the maximum node of the subtree rooted at the given node.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> ACE_RB_Tree_Node<EXT_ID, INT_ID> *
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_maximum (ACE_RB_Tree_Node<EXT_ID, INT_ID> *x) const
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_maximum");
-
- while ((x) && (x->right ()))
- x = x->right ();
-
- return x;
-}
-
-// Close down an RB_Tree. this method should only be called with
-// locks already held.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::close_i ()
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::close_i");
-
- delete root_;
- current_size_ = 0;
- root_ = 0;
-
- return 0;
-}
-
-// Returns a pointer to the item corresponding to the given key, or 0
-// if it cannot find the key in the tree. This method should only be
-// called with locks already held.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &k,
- ACE_RB_Tree_Node<EXT_ID, INT_ID>* &entry, int find_exact)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::find_i");
-
- // Try to find a match.
- RB_SearchResult result = LEFT;
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *current = find_node (k, result);
-
- if (current)
- {
- // Found a match
- if (!find_exact || result == EXACT)
- entry = current; // Assign the entry for any match.
- return (result == EXACT ? 0 : -1);
- }
- else
- // The node is not there.
- return -1;
-}
-
-// Inserts a *copy* of the key and the item into the tree: both the
-// key type EXT_ID and the item type INT_ID must have well defined
-// semantics for copy construction and < comparison. This method
-// returns a pointer to the inserted item copy, or 0 if an error
-// occurred. NOTE: if an identical key already exists in the tree, no
-// new item is created, and the returned pointer addresses the
-// existing item associated with the existing key. This method should
-// only be called with locks already held.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> INT_ID *
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i (const EXT_ID &k, const INT_ID &t)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i (const EXT_ID &k, const INT_ID &t)");
-
- // Find the closest matching node, if there is one.
- RB_SearchResult result = LEFT;
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *current = find_node (k, result);
- if (current)
- {
- // If the keys match, just return a pointer to the node's item.
- if (result == EXACT)
- return &current->item ();
-
- // Otherwise if we're to the left of the insertion point, insert
- // into the right subtree.
- else if (result == LEFT)
- {
- if (current->right ())
- {
- // If there is already a right subtree, complain.
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("\nright subtree already present in ")
- ACE_LIB_TEXT ("ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")),
- 0);
- }
- else
- {
- // The right subtree is empty: insert new node there.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *tmp = 0;
-
- ACE_NEW_RETURN (tmp,
- (ACE_RB_Tree_Node<EXT_ID, INT_ID>) (k, t),
- 0);
- current->right (tmp);
-
- // If the node was successfully inserted, set its
- // parent, rebalance the tree, color the root black, and
- // return a pointer to the inserted item.
- INT_ID *item = &(current->right ()->item ());
- current->right ()->parent (current);
- RB_rebalance (current->right ());
- root_->color (ACE_RB_Tree_Node_Base::BLACK);
- ++current_size_;
- return item;
- }
- }
- // Otherwise, we're to the right of the insertion point, so
- // insert into the left subtree.
- else // (result == RIGHT)
- {
- if (current->left ())
- // If there is already a left subtree, complain.
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("\nleft subtree already present in ")
- ACE_LIB_TEXT ("ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")),
- 0);
- else
- {
- // The left subtree is empty: insert new node there.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *tmp = 0;
- ACE_NEW_RETURN (tmp,
- (ACE_RB_Tree_Node<EXT_ID, INT_ID>) (k, t),
- 0);
- current->left (tmp);
-
- // If the node was successfully inserted, set its
- // parent, rebalance the tree, color the root black, and
- // return a pointer to the inserted item.
- INT_ID *item = &current->left ()->item ();
- current->left ()->parent (current);
- RB_rebalance (current->left ());
- root_->color (ACE_RB_Tree_Node_Base::BLACK);
- ++current_size_;
- return item;
- }
- }
- }
- else
- {
- // The tree is empty: insert at the root and color the root
- // black.
- ACE_NEW_RETURN (root_,
- (ACE_RB_Tree_Node<EXT_ID, INT_ID>) (k, t),
- 0);
- if (root_)
- {
- root_->color (ACE_RB_Tree_Node_Base::BLACK);
- ++current_size_;
- return &root_->item ();
- }
- }
- return 0;
-}
-
-// Inserts a *copy* of the key and the item into the tree: both the
-// key type EXT_ID and the item type INT_ID must have well defined
-// semantics for copy construction. The default implementation also
-// requires that the key type support well defined < semantics. This
-// method passes back a pointer to the inserted (or existing) node,
-// and the search status. If the node already exists, the method
-// returns 1. If the node does not exist, and a new one is
-// successfully created, and the method returns 0. If there was an
-// error, the method returns -1.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i (const EXT_ID &k,
- const INT_ID &t,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i (const EXT_ID &k, const INT_ID &t, "
- "ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
-
- // Find the closest matching node, if there is one.
- RB_SearchResult result = LEFT;
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *current = find_node (k, result);
- if (current)
- {
- // If the keys match, just return a pointer to the node's item.
- if (result == EXACT)
- {
- entry = current;
- return 1;
- }
- // Otherwise if we're to the left of the insertion
- // point, insert into the right subtree.
- else if (result == LEFT)
- {
- if (current->right ())
- {
- // If there is already a right subtree, complain.
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("\nright subtree already present in ")
- ACE_LIB_TEXT ("ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")),
- -1);
- }
- else
- {
- // The right subtree is empty: insert new node there.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *tmp = 0;
- ACE_NEW_RETURN (tmp,
- (ACE_RB_Tree_Node<EXT_ID, INT_ID>) (k, t),
- -1);
- current->right (tmp);
-
- // If the node was successfully inserted, set its parent, rebalance
- // the tree, color the root black, and return a pointer to the
- // inserted item.
- entry = current->right ();
- current->right ()->parent (current);
- RB_rebalance (current->right ());
- root_->color (ACE_RB_Tree_Node_Base::BLACK);
- ++current_size_;
- return 0;
- }
- }
- // Otherwise, we're to the right of the insertion point, so
- // insert into the left subtree.
- else // (result == RIGHT)
- {
- if (current->left ())
- // If there is already a left subtree, complain.
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("\nleft subtree already present in ")
- ACE_LIB_TEXT ("ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")),
- -1);
- else
- {
- // The left subtree is empty: insert new node there.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *tmp = 0;
- ACE_NEW_RETURN (tmp,
- (ACE_RB_Tree_Node<EXT_ID, INT_ID>) (k, t),
- -1);
- current->left (tmp);
- // If the node was successfully inserted, set its
- // parent, rebalance the tree, color the root black, and
- // return a pointer to the inserted item.
- entry = current->left ();
- current->left ()->parent (current);
- RB_rebalance (current->left ());
- root_->color (ACE_RB_Tree_Node_Base::BLACK);
- ++current_size_;
- return 0;
- }
- }
- }
- else
- {
- // The tree is empty: insert at the root and color the root black.
- ACE_NEW_RETURN (root_,
- (ACE_RB_Tree_Node<EXT_ID, INT_ID>) (k, t),
- -1);
- root_->color (ACE_RB_Tree_Node_Base::BLACK);
- ++current_size_;
- entry = root_;
- return 0;
- }
-}
-
-// Removes the item associated with the given key from the tree and
-// destroys it. Returns 1 if it found the item and successfully
-// destroyed it, 0 if it did not find the item, or -1 if an error
-// occurred. This method should only be called with locks already
-// held.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::remove_i (const EXT_ID &k, INT_ID &i)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::remove_i (const EXT_ID &k, INT_ID &i)");
-
- // Find a matching node, if there is one.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *z;
- RB_SearchResult result = LEFT;
- z = find_node (k, result);
-
- // If there is a matching node: remove and destroy it.
- if (z && result == EXACT)
- {
- // Return the internal id stored in the deleted node.
- i = z->item ();
- return -1 == this->remove_i (z) ? -1 : 1;
- }
- else
- {
- // No matching node was found: return 0.
- return 0;
- }
-}
-
-/// Recursive function to dump the state of an object.
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::
-dump_i (ACE_RB_Tree_Node<EXT_ID, INT_ID> *node) const
-{
- if (node)
- {
- dump_node_i (*node);
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ndown left\n")));
- this->dump_i (node->left ());
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nup left\n")));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ndown right\n")));
- this->dump_i (node->right ());
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nup right\n")));
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nNULL POINTER (BLACK)\n")));
- }
-}
-
-
-/// Function to dump node itself. Does not show parameterized node contents
-/// in its basic form, but template specialization can be used to
-/// provide definitions for various EXT_ID and INT_ID types.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::
-dump_node_i (ACE_RB_Tree_Node<EXT_ID, INT_ID> &node) const
-{
- const char * color_str = (node.color () == ACE_RB_Tree_Node_Base::RED)
- ? "RED" : "BLACK";
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" color=[%s]\n"), color_str));
-}
-
-/// Tests the red-black invariant(s) throughout the whole tree.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::test_invariant (void)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::test_invariant");
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- // Recurse from the root, starting with the measured black height at
- // 0, and the expected black height at -1, which will cause the
- // count from first measured path to a leaf to be used as the
- // expected one from that point onward (the key is to check
- // consistency).
- int expected_black_height = -1;
- if (this->test_invariant_recurse (this->root_, expected_black_height, 0) == 0)
- {
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("invariant holds\n")));
- return 0;
- }
-
- return -1;
-}
-
-/// Recursive function to test the red-black invariant(s) at all nodes in a subtree.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::test_invariant_recurse (ACE_RB_Tree_Node<EXT_ID, INT_ID> *x,
- int & expected_black_height,
- int measured_black_height)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::test_invariant_recurse");
-
- if (!x)
- {
- // Count each leaf (zero pointer) as a black node (per CLR algorithm description).
- ++measured_black_height;
-
- if (expected_black_height == -1)
- {
- expected_black_height = measured_black_height;
- }
- else if (expected_black_height != measured_black_height)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("\nexpected_black_height = %d but ")
- ACE_LIB_TEXT ("\nmeasured_black_height = %d in ")
- ACE_LIB_TEXT ("ACE_RB_Tree<EXT_ID, INT_ID>::test_invariant_recurse\n"),
- expected_black_height, measured_black_height),
- -1);
- }
-
- return 0;
- }
-
- // Check the invariant that a red node cannot have a red child.
- if (x->color () == ACE_RB_Tree_Node_Base::RED)
- {
- if (x->left () && x->left ()->color () == ACE_RB_Tree_Node_Base::RED)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("\nRED parent has RED left child in ")
- ACE_LIB_TEXT ("ACE_RB_Tree<EXT_ID, INT_ID>::test_invariant_recurse\n")),
- -1);
- }
-
- if (x->right () && x->right ()->color () == ACE_RB_Tree_Node_Base::RED)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("\nRED parent has RED right child in ")
- ACE_LIB_TEXT ("ACE_RB_Tree<EXT_ID, INT_ID>::test_invariant_recurse\n")),
- -1);
- }
- }
- else
- {
- // Count each black node traversed.
- ++measured_black_height;
- }
-
- return (test_invariant_recurse (x->left (), expected_black_height, measured_black_height) == 0)
- ? test_invariant_recurse (x->right (), expected_black_height, measured_black_height)
- : -1;
-}
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::remove_i (ACE_RB_Tree_Node<EXT_ID, INT_ID> *z)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::remove_i (ACE_RB_Tree_Node<EXT_ID, INT_ID> *z)");
-
- // Delete the node and reorganize the tree to satisfy the Red-Black
- // properties.
-
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *x;
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *y;
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *parent;
-
- if (z->left () && z->right ())
- y = RB_tree_successor (z);
- else
- y = z;
-
- if (y->left ())
- x = y->left ();
- else
- x = y->right ();
-
- parent = y->parent ();
- if (x)
- {
- x->parent (parent);
- }
-
- if (parent)
- {
- if (y == parent->left ())
- parent->left (x);
- else
- parent->right (x);
- }
- else
- this->root_ = x;
-
- if (y != z)
- {
- // Copy the elements of y into z.
- z->key () = y->key ();
- z->item () = y->item ();
- }
-
- // CLR pp. 263 says that nil nodes are implicitly colored BLACK
- if (!y || y->color () == ACE_RB_Tree_Node_Base::BLACK)
- RB_delete_fixup (x, parent);
-
- y->parent (0);
- y->right (0);
- y->left (0);
- delete y;
- --current_size_;
-
- return 0;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_RB_Tree_Iterator_Base)
-
-// Constructor.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator_Base (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree, int set_first)
- : tree_ (&tree), node_ (0)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator_Base (ACE_RB_Tree, int)");
-
- // Position the iterator at the first (or last) node in the tree.
- if (set_first)
- node_ = tree_->RB_tree_minimum (tree_->root_);
- else
- node_ = tree_->RB_tree_maximum (tree_->root_);
-}
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator_Base (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree, ACE_RB_Tree_Node<EXT_ID, INT_ID>* entry)
- : tree_ (&tree), node_ (0)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base(const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree, ACE_RB_Tree_Node<EXT_ID, INT_ID>* entry)");
- node_ = entry;
-}
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator_Base (const EXT_ID& key,ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree)
- : tree_ (&tree), node_ (0)
-{
- ACE_TRACE("ACE_RB_Tree_Iterator_Base (ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree, const EXT_ID& key)");
- ACE_RB_Tree_Node<EXT_ID, INT_ID>* entry;
- tree.find_i(key, entry);
- node_ = entry;
-}
-
-// Copy constructor.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator_Base (const ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &iter)
- : tree_ (iter.tree_),
- node_ (iter.node_)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator_Base (ACE_RB_Tree_Iterator_Base)");
-}
-
-// Assignment operator.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator= (const ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &iter)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator=");
- if (this != &iter)
- {
- tree_ = iter.tree_;
- node_ = iter.node_;
- }
-}
-
-// Destructor.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree_Iterator_Base ()
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree_Iterator_Base");
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_RB_Tree_Iterator)
-
-// Constructor.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree,
- int set_first)
- : ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> (tree, set_first)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator");
-}
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree,
- ACE_RB_Tree_Node<EXT_ID, INT_ID>* entry)
- : ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> (tree,entry)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator");
-}
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator (const EXT_ID& key,ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree)
- : ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>(key,tree)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator");
-}
-
-// Destructor.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree_Iterator ()
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree_Iterator");
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_RB_Tree_Reverse_Iterator)
-
-// Constructor.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Reverse_Iterator (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree, int set_last)
- : ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> (tree, set_last ? 0 : 1)
-{
- ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Reverse_Iterator");
-}
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Reverse_Iterator (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree, ACE_RB_Tree_Node<EXT_ID, INT_ID>* entry)
- : ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> (tree,entry)
-{
- ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Reverse_Iterator");
-}
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Reverse_Iterator (const EXT_ID& key,ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree)
- : ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>(key,tree)
-{
- ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Reverse_Iterator");
-}
-
-// Destructor.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree_Reverse_Iterator ()
-{
- ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree_Reverse_Iterator");
-}
-
-
-#endif /* !defined (ACE_RB_TREE_C) */
diff --git a/ace/RB_Tree.h b/ace/RB_Tree.h
deleted file mode 100644
index 26dd97e2fb1..00000000000
--- a/ace/RB_Tree.h
+++ /dev/null
@@ -1,863 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file RB_Tree.h
- *
- * $Id$
- *
- * @author Chris Gill
- */
-//=============================================================================
-
-
-#ifndef ACE_RB_TREE_H
-#define ACE_RB_TREE_H
-#include "ace/pre.h"
-
-#include "ace/Global_Macros.h"
-#include "ace/Functor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_RB_Tree_Iterator_Base;
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_RB_Tree_Iterator;
-
-// Forward decl.
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_RB_Tree_Reverse_Iterator;
-
-// Forward decl.
-class ACE_Allocator;
-
-class ACE_RB_Tree_Node_Base
-{
-public:
- enum RB_Tree_Node_Color {RED, BLACK};
-};
-
-/**
- * @class ACE_RB_Tree_Node
- *
- * @brief Implements a node in a Red-Black Tree ADT.
- */
-template <class EXT_ID, class INT_ID>
-class ACE_RB_Tree_Node : public ACE_RB_Tree_Node_Base
-{
-public:
- // = Initialization and termination methods.
-
- /// Constructor.
- ACE_RB_Tree_Node (const EXT_ID &k, const INT_ID &t);
-
- /// Destructor.
- ~ACE_RB_Tree_Node (void);
-
- /// Key accessor.
- EXT_ID &key (void);
-
- /// Item accessor.
- INT_ID &item (void);
-
- /// Set color of the node.
- void color (RB_Tree_Node_Color c);
-
- /// Get color of the node.
- RB_Tree_Node_Color color (void);
-
- /// Accessor for node's parent pointer.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *parent (void);
-
- /// Mutator for node's parent pointer.
- void parent (ACE_RB_Tree_Node<EXT_ID, INT_ID> * p);
-
- /// Accessor for node's left child pointer.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *left (void);
-
- /// Mutator for node's left child pointer.
- void left (ACE_RB_Tree_Node<EXT_ID, INT_ID> *l);
-
- /// Accessor for node's right child pointer.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *right (void);
-
- /// Mutator for node's right child pointer
- void right (ACE_RB_Tree_Node<EXT_ID, INT_ID> * r);
-
-private:
-
- /// The key.
- EXT_ID k_;
-
- /// The item.
- INT_ID t_;
-
- /// Color of the node.
- RB_Tree_Node_Color color_;
-
- /// Pointer to node's parent.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *parent_;
-
- /// Pointer to node's left child.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *left_;
-
- /// Pointer to node's right child.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *right_;
-};
-
-class ACE_RB_Tree_Base
-{
-public:
- /// Search result enumeration.
- enum RB_SearchResult {LEFT, EXACT, RIGHT};
-};
-
-/**
- * @class ACE_RB_Tree
- *
- * @brief Implements a Red-Black Tree ADT, according to T. H. Corman,
- * C. E. Leiserson, and R. L. Rivest, "Introduction to Algorithms"
- * 1990, MIT, chapter 14.
- *
- * A number of Changes have been made to this class template
- * in order to conform to the ACE_Hash_Map_Manager_Ex
- * interface. All previously supported public methods are
- * still part of this class. However, these are marked as
- * DEPRECATED and will be removed from this class in
- * a future version of ACE. Please migrate your code
- * to the appropriate public methods indicated in the
- * method deprecation comments.
- * This class uses an <ACE_Allocator> to allocate memory. The
- * user can make this a persistent class by providing an
- * <ACE_Allocator> with a persistable memory pool.
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure:
- * Binary tree
- * - Duplicates allowed?
- * No
- * - Random access allowed?
- * No
- * - Search speed:
- * Log(n)
- * - Insert/replace speed:
- * Log(n)
- * - Iterator still valid after change to container?
- * Yes, except if the iterated-over element is removed.
- * - Frees memory for removed elements?
- * Yes
- * - Items inserted by:
- * Value
- * - Requirements for contained type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- * -# operator==
- * -# operator<
- */
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_RB_Tree : public ACE_RB_Tree_Base
-{
-
-public:
- friend class ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>;
- friend class ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>;
- friend class ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>;
-
- typedef EXT_ID KEY;
- typedef INT_ID VALUE;
- typedef ACE_RB_Tree_Node<EXT_ID, INT_ID> ENTRY;
-
- // = ACE-style iterator typedefs.
- typedef ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> ITERATOR;
- typedef ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> REVERSE_ITERATOR;
-
- // = STL-style iterator typedefs.
- typedef ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> iterator;
- typedef ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> reverse_iterator;
-
- // = Initialization and termination methods.
-
- /// Constructor.
- ACE_RB_Tree (ACE_Allocator *alloc = 0);
-
- /// Copy constructor.
- ACE_RB_Tree (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &rbt);
-
- /// Initialize an RB Tree.
- int open (ACE_Allocator *alloc = 0);
-
- /// Close down an RB_Tree and release dynamically allocated
- /// resources.
- int close (void);
-
- /// Destructor.
- virtual ~ACE_RB_Tree (void);
-
- // = insertion, removal, and search methods.
-
- /**
- * Associate <ext_id> with <int_id>. If <ext_id> is already in the
- * tree then the <ACE_RB_Tree_Node> is not changed. Returns 0 if a
- * new entry is bound successfully, returns 1 if an attempt is made
- * to bind an existing entry, and returns -1 if failures occur.
- */
- int bind (const EXT_ID &item,
- const INT_ID &int_id);
-
- /**
- * Same as a normal bind, except the tree entry is also passed back
- * to the caller. The entry in this case will either be the newly
- * created entry, or the existing one.
- */
- int bind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry);
-
-
- /**
- * Associate <ext_id> with <int_id> if and only if <ext_id> is not
- * in the tree. If <ext_id> is already in the tree then the <int_id>
- * parameter is assigned the existing value in the tree. Returns 0
- * if a new entry is bound successfully, returns 1 if an attempt is
- * made to bind an existing entry, and returns -1 if failures occur.
- */
- int trybind (const EXT_ID &ext_id,
- INT_ID &int_id);
-
- /**
- * Same as a normal trybind, except the tree entry is also passed
- * back to the caller. The entry in this case will either be the
- * newly created entry, or the existing one.
- */
- int trybind (const EXT_ID &ext_id,
- INT_ID &int_id,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry);
-
- /**
- * Reassociate <ext_id> with <int_id>. If <ext_id> is not in the
- * tree then behaves just like <bind>. Returns 0 if a new entry is
- * bound successfully, returns 1 if an existing entry was rebound,
- * and returns -1 if failures occur.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id);
-
- /**
- * Same as a normal rebind, except the tree entry is also passed back
- * to the caller. The entry in this case will either be the newly
- * created entry, or the existing one.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry);
-
- /**
- * Associate <ext_id> with <int_id>. If <ext_id> is not in the tree
- * then behaves just like <bind>. Otherwise, store the old value of
- * <int_id> into the "out" parameter and rebind the new parameters.
- * Returns 0 if a new entry is bound successfully, returns 1 if an
- * existing entry was rebound, and returns -1 if failures occur.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id);
-
- /**
- * Same as a normal rebind, except the tree entry is also passed back
- * to the caller. The entry in this case will either be the newly
- * created entry, or the existing one.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry);
-
- /**
- * Associate <ext_id> with <int_id>. If <ext_id> is not in the tree
- * then behaves just like <bind>. Otherwise, store the old values
- * of <ext_id> and <int_id> into the "out" parameters and rebind the
- * new parameters. This is very useful if you need to have an
- * atomic way of updating <ACE_RB_Tree_Nodes> and you also need
- * full control over memory allocation. Returns 0 if a new entry is
- * bound successfully, returns 1 if an existing entry was rebound,
- * and returns -1 if failures occur.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id);
-
- /**
- * Same as a normal rebind, except the tree entry is also passed back
- * to the caller. The entry in this case will either be the newly
- * created entry, or the existing one.
- */
- int rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry);
-
- /// Locate <ext_id> and pass out parameter via <int_id>. If found,
- /// return 0, returns -1 if not found.
- int find (const EXT_ID &ext_id,
- INT_ID &int_id);
-
- /// Locate <ext_id> and pass out parameter via <entry>. If found,
- /// return 0, returns -1 if not found.
- int find (const EXT_ID &ext_id,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry);
-
- /**
- * Unbind (remove) the <ext_id> from the tree. Don't return the
- * <int_id> to the caller (this is useful for collections where the
- * <int_id>s are *not* dynamically allocated...)
- */
- int unbind (const EXT_ID &ext_id);
-
- /// Break any association of <ext_id>. Returns the value of <int_id>
- /// in case the caller needs to deallocate memory.
- int unbind (const EXT_ID &ext_id,
- INT_ID &int_id);
-
- /**
- * Remove entry from tree. This method should be used with *extreme*
- * caution, and only for optimization purposes. The node being passed
- * in had better have been allocated by the tree that is unbinding it.
- */
- int unbind (ACE_RB_Tree_Node<EXT_ID, INT_ID> *entry);
-
- // = Public helper methods.
-
- /// Returns the current number of nodes in the tree.
- size_t current_size (void) const;
-
- /// Assignment operator.
- void operator= (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &rbt);
-
- /// Less than comparison function for keys, using comparison functor.
- virtual int lessthan (const EXT_ID &k1, const EXT_ID &k2);
-
- /**
- * Returns a reference to the underlying <ACE_LOCK>. This makes it
- * possible to acquire the lock explicitly, which can be useful in
- * some cases if you instantiate the <ACE_Atomic_Op> with an
- * <ACE_Recursive_Mutex> or <ACE_Process_Mutex>, or if you need to
- * guard the state of an iterator. NOTE: the right name would be
- * <lock>, but HP/C++ will choke on that!
- */
- ACE_LOCK &mutex (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iterator factory functions.
-
- /// Return forward iterator positioned at first node in tree.
- ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> begin (void);
-
- /// Return forward iterator positioned at last node in tree.
- ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> end (void);
-
- /// Return reverse iterator positioned at last node in tree.
- ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> rbegin (void);
-
- /// Return reverse iterator positioned at first node in tree.
- ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> rend (void);
-
- /// Recursively tests the invariant red-black properties at each
- /// node of the tree. Returns 0 if invariant holds, else -1.
- /// This method is computationally expensive, and should only be
- /// called for testing purposes, and not in code that depends on the
- /// algorithmic complexity bounds provided by the other methods.
- int test_invariant (void);
-
- // = DEPRECATED methods.
- // Please migrate your code to use the new methods instead
-
- /**
- * Returns a pointer to the item corresponding to the
- * given key, or 0 if it cannot find the key in the tree.
- *
- * @deprecated signature will change to become
- * int find (const EXT_ID &ext_id); which will return
- * 0 if the <ext_id> is in the tree, otherwise -1.
- */
- INT_ID* find (const EXT_ID &k);
-
- /**
- * Inserts a *copy* of the key and the item into the tree: both the
- * key type EXT_ID and the item type INT_ID must have well defined semantics
- * for copy construction. The default implementation also requires that
- * the key type support well defined < semantics. This method returns a
- * pointer to the inserted item copy, or 0 if an error occurred.
- * NOTE: if an identical key already exists in the tree, no new item
- * is created, and the returned pointer addresses the existing item
- * associated with the existing key.
- * @deprecated
- */
- INT_ID* insert (const EXT_ID &k, const INT_ID &t);
-
- /**
- * Removes the item associated with the given key from the tree and
- * destroys it. Returns 1 if it found the item and successfully
- * destroyed it, 0 if it did not find the item, or -1 if an error
- * occurred.
- * @deprecated
- */
- int remove (const EXT_ID &k);
-
- /// @deprecated
- /// Destroys all nodes and sets the root pointer null.
- void clear (void);
-
-protected:
-
- // = Protected methods. These should only be called with locks held.
-
- /// Recursively tests the invariant red-black properties at each
- /// node of the tree. Returns 0 if invariant holds, else -1.
- int test_invariant_recurse (ACE_RB_Tree_Node<EXT_ID, INT_ID> * x,
- int & expected_black_height,
- int measured_black_height);
-
- /// Method for right rotation of the tree about a given node.
- void RB_rotate_right (ACE_RB_Tree_Node<EXT_ID, INT_ID> * x);
-
- /// Method for left rotation of the tree about a given node.
- void RB_rotate_left (ACE_RB_Tree_Node<EXT_ID, INT_ID> * x);
-
- /// Method for restoring Red-Black properties after deletion.
- void RB_delete_fixup (ACE_RB_Tree_Node<EXT_ID, INT_ID> * x,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> * parent);
-
- /// Method to find the successor node of the given node in the tree.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *
- RB_tree_successor (ACE_RB_Tree_Node<EXT_ID, INT_ID> *x) const;
-
- /// Method to find the predecessor node of the given node in the
- /// tree.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *
- RB_tree_predecessor (ACE_RB_Tree_Node<EXT_ID, INT_ID> *x) const;
-
- /// Method to find the minimum node of the subtree rooted at the
- /// given node.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *
- RB_tree_minimum (ACE_RB_Tree_Node<EXT_ID, INT_ID> *x) const;
-
- /// Method to find the maximum node of the subtree rooted at the
- /// given node.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *
- RB_tree_maximum (ACE_RB_Tree_Node<EXT_ID, INT_ID> *x) const;
-
- /**
- * Returns a pointer to a matching node if there is one, a pointer
- * to the node under which to insert the item if the tree is not
- * empty and there is no such match, or 0 if the tree is empty.
- * It stores the result of the search in the result argument:
- * LEFT if the node is to the left of the node to be inserted,
- * RIGHT if the node is to the right of the node to be inserted,
- * or EXACT if an exactly matching node already exists.
- */
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *find_node (const EXT_ID &k,
- ACE_RB_Tree_Base::RB_SearchResult &result);
-
- /// Rebalance the tree after insertion of a node.
- void RB_rebalance (ACE_RB_Tree_Node<EXT_ID, INT_ID> * x);
-
- /// Close down an RB_Tree. this method should
- /// only be called with locks already held.
- int close_i (void);
-
- /**
- * Retrieves a pointer to the item corresponding to the
- * given key. If find_exact==1, find the exact match node. Otherwise just find a match node
- * returns 0 for success, or -1 if it cannot find the key in the tree.
- */
- int find_i (const EXT_ID &ext_id, ACE_RB_Tree_Node<EXT_ID, INT_ID>* &entry, int find_exact = 1);
-
- /**
- * Inserts a *copy* of the key and the item into the tree: both the
- * key type EXT_ID and the item type INT_ID must have well defined semantics
- * for copy construction. The default implementation also requires that
- * the key type support well defined < semantics. This method returns a
- * pointer to the inserted item copy, or 0 if an error occurred.
- * NOTE: if an identical key already exists in the tree, no new item
- * is created, and the returned pointer addresses the existing item
- * associated with the existing key.
- */
- INT_ID* insert_i (const EXT_ID &k, const INT_ID &t);
-
- /**
- * Inserts a *copy* of the key and the item into the tree: both the
- * key type EXT_ID and the item type INT_ID must have well defined semantics
- * for copy construction. The default implementation also requires that
- * the key type support well defined < semantics. This method passes back
- * a pointer to the inserted (or existing) node, and the search status. If
- * the node already exists, the method returns 1. If the node does not
- * exist, and a new one is successfully created, and the method returns 0.
- * If there was an error, the method returns -1.
- */
- int insert_i (const EXT_ID &k, const INT_ID &t,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry);
-
- /**
- * Removes the item associated with the given key from the tree and
- * destroys it. Returns 1 if it found the item and successfully
- * destroyed it, 0 if it did not find the item, or -1 if an error
- * occurred. Returns the stored internal id in the second argument.
- */
- int remove_i (const EXT_ID &k, INT_ID &i);
-
- /// Removes the item associated with the given key from the tree and
- /// destroys it.
- int remove_i (ACE_RB_Tree_Node<EXT_ID, INT_ID> *z);
-
- /// Recursive function to dump the state of an object.
- void dump_i (ACE_RB_Tree_Node<EXT_ID, INT_ID> *node) const;
-
- /// Function to dump node contents. Does nothing in its
- /// basic form, but template specialization can be used to
- /// provide definitions for various EXT_ID and INT_ID types.
- void dump_node_i (ACE_RB_Tree_Node<EXT_ID, INT_ID> &node) const;
-
-private:
-
- // = Private members.
-
- /// Pointer to a memory allocator.
- ACE_Allocator *allocator_;
-
- /// Synchronization variable for the MT_SAFE <ACE_RB_Tree>.
- ACE_LOCK lock_;
-
- /// The root of the tree.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *root_;
-
- /// Comparison functor for comparing nodes in the tree.
- COMPARE_KEYS compare_keys_;
-
- /// The current number of nodes in the tree.
- size_t current_size_;
-};
-
-/**
- * @class ACE_RB_Tree_Iterator_Base
- *
- * @brief Implements a common base class for iterators for a Red-Black Tree ADT.
- */
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_RB_Tree_Iterator_Base
-{
-
-public:
-
- /// Assignment operator: copies both the tree reference and the position in the tree.
- void operator= (const ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &iter);
-
- // = Iteration methods.
-
- /// Returns 1 when the iteration has completed, otherwise 0.
- int done (void) const;
-
- /// STL-like iterator dereference operator: returns a reference
- /// to the node underneath the iterator.
- ACE_RB_Tree_Node<EXT_ID, INT_ID> & operator* (void) const;
-
- /// Returns a const reference to the tree over which we're iterating.
- const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree (void);
-
- /// Comparison operator: returns 1 if both iterators point to the same position, otherwise 0.
- int operator== (const ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &) const;
-
- /// Comparison operator: returns 1 if the iterators point to different positions, otherwise 0.
- int operator!= (const ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
-
- // = Initialization and termination methods.
-
- /// Create the singular iterator. No valid iterator can be equal to
- /// it, it is illegal to dereference a singular iterator, etc. etc.
- ACE_RB_Tree_Iterator_Base (void);
-
- /**
- * Constructor. Takes an ACE_RB_Tree over which to iterate, and
- * an integer indicating (if non-zero) to position the iterator
- * at the first element in the tree (if this integer is 0, the
- * iterator is positioned at the last element in the tree).
- */
- ACE_RB_Tree_Iterator_Base (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree,
- int set_first);
-
- /**
- * Constructor. Takes an ACE_RB_Tree over which to iterate, and
- * a pointer to a node in the tree.
- */
- ACE_RB_Tree_Iterator_Base (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree,
- ACE_RB_Tree_Node<EXT_ID, INT_ID>* entry);
-
- /**
- * Constructor. Takes an ACE_RB_Tree over which to iterate, and a key.
- * The key must come first to distinguish the case of EXT_ID == int.
- */
- ACE_RB_Tree_Iterator_Base (const EXT_ID& key,
- ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS,ACE_LOCK> &tree);
-
- /// Copy constructor.
- ACE_RB_Tree_Iterator_Base (const ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &iter);
-
- /// Destructor.
- ~ACE_RB_Tree_Iterator_Base (void);
-
- // = Internal methods
-
- /// Move forward by one element in the tree. Returns 0 when
- /// there are no more elements in the tree, otherwise 1.
- int forward_i (void);
-
- /// Move back by one element in the tree. Returns 0 when
- /// there are no more elements in the tree, otherwise 1.
- int reverse_i (void);
-
- /// Dump the state of an object.
- void dump_i (void) const;
-
- // = Protected members.
-
- /// Reference to the ACE_RB_Tree over which we're iterating.
- const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> *tree_;
-
- /// Pointer to the node currently under the iterator.
- ACE_RB_Tree_Node <EXT_ID, INT_ID> *node_;
-
-};
-
-/**
- * @class ACE_RB_Tree_Iterator
- *
- * @brief Implements an iterator for a Red-Black Tree ADT.
- */
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_RB_Tree_Iterator : public ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>
-{
-
-public:
-
- // = Initialization and termination methods.
- /**
- * Create the singular iterator.
- * It is illegal to deference the iterator, no valid iterator is
- * equal to a singular iterator, etc. etc.
- */
- ACE_RB_Tree_Iterator (void);
-
- /**
- * Constructor. Takes an ACE_RB_Tree over which to iterate, and
- * an integer indicating (if non-zero) to position the iterator
- * at the first element in the tree (if this integer is 0, the
- * iterator is positioned at the last element in the tree).
- */
- ACE_RB_Tree_Iterator (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree,
- int set_first = 1);
- /**
- * Constructor. Takes an ACE_RB_Tree over which to iterate
- * and a pointer to a node in the tree.
- */
- ACE_RB_Tree_Iterator (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree,
- ACE_RB_Tree_Node<EXT_ID, INT_ID>* entry);
-
- /**
- * Constructor. Takes an ACE_RB_Tree over which to iterate, and a key;
- * the key comes first in order to distinguish the case of EXT_ID == int.
- */
- ACE_RB_Tree_Iterator (const EXT_ID &key,
- ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree);
-
- /// Destructor.
- ~ACE_RB_Tree_Iterator (void);
-
- // = ACE-style iteration methods.
-
- /// Move forward by one element in the tree. Returns
- /// 0 when all elements have been seen, else 1.
- int advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL-style iteration methods.
-
- /// Prefix advance.
- ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> & operator++ (void);
-
- /// Postfix advance.
- ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> operator++ (int);
-
- /// Prefix reverse.
- ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> & operator-- (void);
-
- /// Postfix reverse.
- ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> operator-- (int);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /**
- * Passes back the <entry> under the iterator. Returns 0 if
- * the iteration has completed, otherwise 1. This method must
- * be declared and defined in both the derived forward and
- * reverse iterator classes rather than in the base iterator
- * class because of a method signature resolution problem
- * caused by the existence of the deprecated next (void)
- * method in the derived forward iterator class. When that
- * deprecated method is removed, this method should be removed
- * from the derived classes and placed in the base class.
- */
- int next (ACE_RB_Tree_Node<EXT_ID, INT_ID> *&next_entry) const;
-
- // = DEPRECATED methods. Please migrate your code to use the new methods instead
-
- /// @deprecated
- /// Accessor for key of node under iterator (if any).
- EXT_ID *key (void);
-
- /// @deprecated
- /// Accessor for item of node under iterator (if any).
- INT_ID *item (void);
-
- /// @deprecated
- /// Move to the first item in the iteration (and in the tree).
- int first (void);
-
- /// @deprecated
- /// Move to the last item in the iteration (and in the tree).
- int last (void);
-
- /// @deprecated
- /// Move to the next item in the iteration (and in the tree).
- int next (void);
-
- /// @deprecated
- /// Move to the previous item in the iteration (and in the tree).
- int previous (void);
-
- /**
- * @deprecated: use the base class <done> method instead.
- * Returns 0 if the iterator is positioned over a valid ACE_RB_Tree
- * node, returns 1 if not.
- */
- int is_done (void);
-
-};
-
-/**
- * @class ACE_RB_Tree_Reverse_Iterator
- *
- * @brief Implements a reverse iterator for a Red-Black Tree ADT.
- */
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-class ACE_RB_Tree_Reverse_Iterator : public ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>
-{
-
-public:
-
- // = Initialization and termination methods.
- /**
- * Create the singular iterator.
- * It is illegal to deference the iterator, no valid iterator is
- * equal to a singular iterator, etc. etc.
- */
- ACE_RB_Tree_Reverse_Iterator (void);
-
- /**
- * Constructor. Takes an ACE_RB_Tree over which to iterate, and
- * an integer indicating (if non-zero) to position the iterator
- * at the last element in the tree (if this integer is 0, the
- * iterator is positioned at the first element in the tree).
- */
- ACE_RB_Tree_Reverse_Iterator (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree,
- int set_last = 1);
-
- /**
- * Constructor. Takes an ACE_RB_Tree over which to iterate, and
- * a point to a node in the tree.
- */
- ACE_RB_Tree_Reverse_Iterator (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree,
- ACE_RB_Tree_Node<EXT_ID, INT_ID>* entry);
-
- /**
- * Constructor. Takes an ACE_RB_Tree over which to iterate, and a key;
- * the key comes first in order to distinguish the case of EXT_ID == int.
- */
- ACE_RB_Tree_Reverse_Iterator (const EXT_ID &key,
- ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree);
-
- /// Destructor.
- ~ACE_RB_Tree_Reverse_Iterator (void);
-
- // = ACE-style iteration methods.
-
- /// Move forward by one element in the tree. Returns
- /// 0 when all elements have been seen, else 1.
- int advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL-style iteration methods.
-
- /// Prefix advance.
- ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> & operator++ (void);
-
- /// Postfix advance.
- ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> operator++ (int);
-
- /// Prefix reverse.
- ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> & operator-- (void);
-
- /// Postfix reverse.
- ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> operator-- (int);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /**
- * Passes back the <entry> under the iterator. Returns 0 if
- * the iteration has completed, otherwise 1. This method must
- * be declared and defined in both the derived forward and
- * reverse iterator classes rather than in the base iterator
- * class because of a method signature resolution problem
- * caused by the existence of the deprecated next (void)
- * method in the derived forward iterator class. When that
- * deprecated method is removed, this method should be removed
- * from the derived classes and placed in the base class.
- */
- int next (ACE_RB_Tree_Node<EXT_ID, INT_ID> *&next_entry) const;
-
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/RB_Tree.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/RB_Tree.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("RB_Tree.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ! defined (ACE_RB_TREE_H) */
diff --git a/ace/RB_Tree.i b/ace/RB_Tree.i
deleted file mode 100644
index ed0a93fbb7e..00000000000
--- a/ace/RB_Tree.i
+++ /dev/null
@@ -1,1152 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/Synch.h"
-#include "ace/Malloc.h"
-
-/////////////////////////////////////////////////////
-// template class ACE_RB_Tree_Node<EXT_ID, INT_ID> //
-/////////////////////////////////////////////////////
-
-// Key accessor.
-
-template <class EXT_ID, class INT_ID>
-ACE_INLINE EXT_ID &
-ACE_RB_Tree_Node<EXT_ID, INT_ID>::key ()
-{
- ACE_TRACE ("ACE_RB_Tree_Node<EXT_ID, INT_ID>::key");
- return k_;
-}
-
-
-// Item accessor.
-
-template <class EXT_ID, class INT_ID>
-ACE_INLINE INT_ID &
-ACE_RB_Tree_Node<EXT_ID, INT_ID>::item ()
-{
- ACE_TRACE ("ACE_RB_Tree_Node<EXT_ID, INT_ID>:item");
- return t_;
-}
-
-
-// Set color of the node.
-
-template <class EXT_ID, class INT_ID>
-ACE_INLINE void
-ACE_RB_Tree_Node<EXT_ID, INT_ID>::color (ACE_RB_Tree_Node_Base::RB_Tree_Node_Color c)
-{
- ACE_TRACE ("ACE_RB_Tree_Node<EXT_ID, INT_ID>::color mutator");
- color_ = c;
-}
-
-
-// Get color of the node.
-
-template <class EXT_ID, class INT_ID>
-ACE_INLINE ACE_RB_Tree_Node_Base::RB_Tree_Node_Color
-ACE_RB_Tree_Node<EXT_ID, INT_ID>::color ()
-{
- ACE_TRACE ("ACE_RB_Tree_Node<EXT_ID, INT_ID>::color accessor");
- return color_;
-}
-
-
-// Accessor for node's parent pointer.
-
-template <class EXT_ID, class INT_ID>
-ACE_INLINE ACE_RB_Tree_Node<EXT_ID, INT_ID> *
-ACE_RB_Tree_Node<EXT_ID, INT_ID>::parent ()
-{
- ACE_TRACE ("ACE_RB_Tree_Node<EXT_ID, INT_ID>::parent accessor");
- return parent_;
-}
-
-
-// Mutator for node's parent pointer.
-
-template <class EXT_ID, class INT_ID>
-ACE_INLINE void
-ACE_RB_Tree_Node<EXT_ID, INT_ID>::parent (ACE_RB_Tree_Node<EXT_ID, INT_ID> * p)
-{
- ACE_TRACE ("ACE_RB_Tree_Node<EXT_ID, INT_ID>::parent mutator");
- parent_ = p;
-}
-
-
-
-// Accessor for node's left child pointer.
-
-template <class EXT_ID, class INT_ID>
-ACE_INLINE ACE_RB_Tree_Node<EXT_ID, INT_ID> *
-ACE_RB_Tree_Node<EXT_ID, INT_ID>::left ()
-{
- ACE_TRACE ("ACE_RB_Tree_Node<EXT_ID, INT_ID>::left accessor");
- return left_;
-}
-
-
-// Mutator for node's left child pointer.
-
-template <class EXT_ID, class INT_ID>
-ACE_INLINE void
-ACE_RB_Tree_Node<EXT_ID, INT_ID>::left (ACE_RB_Tree_Node<EXT_ID, INT_ID> * l)
-{
- ACE_TRACE ("ACE_RB_Tree_Node<EXT_ID, INT_ID>::left mutator");
- left_ = l;
-}
-
-
-// Accessor for node's right child pointer.
-
-template <class EXT_ID, class INT_ID>
-ACE_INLINE ACE_RB_Tree_Node<EXT_ID, INT_ID> *
-ACE_RB_Tree_Node<EXT_ID, INT_ID>::right ()
-{
- ACE_TRACE ("ACE_RB_Tree_Node<EXT_ID, INT_ID>::right accessor");
- return right_;
-}
-
-
-// Mutator for node's right child pointer.
-
-template <class EXT_ID, class INT_ID>
-ACE_INLINE void
-ACE_RB_Tree_Node<EXT_ID, INT_ID>::right (ACE_RB_Tree_Node<EXT_ID, INT_ID> * r)
-{
- ACE_TRACE ("ACE_RB_Tree_Node<EXT_ID, INT_ID>::right mutator");
- right_ = r;
-}
-
-
-
-////////////////////////////////////////////////////////////////////////
-// template class ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> //
-////////////////////////////////////////////////////////////////////////
-
-
-// Initialize an RB Tree.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::open (ACE_Allocator *alloc)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::open");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- // Calling this->close_i () ensures we release previously allocated
- // memory before allocating new memory.
- this->close_i ();
-
- // If we were passed an allocator use it,
- // otherwise use the default instance.
-
- if (alloc == 0)
- alloc = ACE_Allocator::instance ();
-
- this->allocator_ = alloc;
-
- return 0;
-}
-
-// Close down an RB_Tree and release dynamically allocated
-// resources.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::close (void)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::close");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->close_i ();
-}
-
-
-// Associate <ext_id> with <int_id>. If <ext_id> is already in the
-// tree then the <ACE_RB_Tree_Node> is not changed. Returns 0 if a
-// new entry is bound successfully, returns 1 if an attempt is made
-// to bind an existing entry, and returns -1 if failures occur.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &ext_id,
- const INT_ID &int_id)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &item, const INT_ID &int_id)");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *entry;
- return this->insert_i (ext_id, int_id, entry);
-}
-
-
-// Same as a normal bind, except the tree entry is also passed back
-// to the caller. The entry in this case will either be the newly
-// created entry, or the existing one.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)
-{
- ACE_TRACE ("ACE_RB_Tree::bind (const EXT_ID &ext_id, const INT_ID &int_id, "
- "ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->insert_i (ext_id, int_id, entry);
-}
-
-
-// Associate <ext_id> with <int_id> if and only if <ext_id> is not
-// in the tree. If <ext_id> is already in the tree then the <int_id>
-// parameter is assigned the existing value in the tree. Returns 0
-// if a new entry is bound successfully, returns 1 if an attempt is
-// made to bind an existing entry, and returns -1 if failures occur.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::trybind (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- ACE_TRACE ("ACE_RB_Tree::trybind (const EXT_ID &ext_id, INT_ID &int_id)");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *entry;
- int result = this->insert_i (ext_id, int_id, entry);
-
- if (result == 1)
- {
- int_id = entry->item ();
- }
-
- return result;
-}
-
-
-// Same as a normal trybind, except the tree entry is also passed
-// back to the caller. The entry in this case will either be the
-// newly created entry, or the existing one.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::trybind (const EXT_ID &ext_id,
- INT_ID &int_id,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)
-{
- ACE_TRACE ("ACE_RB_Tree::trybind (const EXT_ID &ext_id, INT_ID &int_id, "
- "ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- int result = this->insert_i (ext_id, int_id, entry);
-
- if (result == 1)
- {
- int_id = entry->item ();
- }
-
-
- return result;
-}
-
-
-// Reassociate <ext_id> with <int_id>. If <ext_id> is not in the
-// tree then behaves just like <bind>. Returns 0 if a new entry is
-// bound successfully, returns 1 if an existing entry was rebound,
-// and returns -1 if failures occur.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id)
-{
- ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id)");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *entry;
- int result = this->insert_i (ext_id, int_id, entry);
-
- if (result == 1)
- {
- entry->key () = ext_id;
- entry->item () = int_id;
- }
-
- return result;
-}
-
-
-// Same as a normal rebind, except the tree entry is also passed back
-// to the caller. The entry in this case will either be the newly
-// created entry, or the existing one.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)
-{
- ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id, "
- "ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- int result = this->insert_i (ext_id, int_id, entry);
-
- if (result == 1)
- {
- entry->key () = ext_id;
- entry->item () = int_id;
- }
-
- return result;
-}
-
-
-// Associate <ext_id> with <int_id>. If <ext_id> is not in the tree
-// then behaves just like <bind>. Otherwise, store the old value of
-// <int_id> into the "out" parameter and rebind the new parameters.
-// Returns 0 if a new entry is bound successfully, returns 1 if an
-// existing entry was rebound, and returns -1 if failures occur.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id)
-{
- ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, "
- "const INT_ID &int_id, INT_ID &old_int_id)");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *entry;
- int result = this->insert_i (ext_id, int_id, entry);
-
- if (result == 1)
- {
- old_int_id = entry->item ();
- entry->key () = ext_id;
- entry->item () = int_id;
- }
-
- return result;
-}
-
-
-// Same as a normal rebind, except the tree entry is also passed back
-// to the caller. The entry in this case will either be the newly
-// created entry, or the existing one.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- INT_ID &old_int_id,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)
-{
- ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id,"
- "INT_ID &old_int_id, ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- int result = this->insert_i (ext_id, int_id, entry);
-
- if (result == 1)
- {
- old_int_id = entry->item ();
- entry->key () = ext_id;
- entry->item () = int_id;
- }
-
- return result;
-}
-
-
-// Associate <ext_id> with <int_id>. If <ext_id> is not in the tree
-// then behaves just like <bind>. Otherwise, store the old values
-// of <ext_id> and <int_id> into the "out" parameters and rebind the
-// new parameters. This is very useful if you need to have an
-// atomic way of updating <ACE_RB_Tree_Nodes> and you also need
-// full control over memory allocation. Returns 0 if a new entry is
-// bound successfully, returns 1 if an existing entry was rebound,
-// and returns -1 if failures occur.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id)
-{
- ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id,"
- "EXT_ID &old_ext_id, INT_ID &old_int_id)");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *entry;
- int result = this->insert_i (ext_id, int_id, entry);
-
- if (result == 1)
- {
- old_ext_id = entry->key ();
- old_int_id = entry->item ();
- entry->key () = ext_id;
- entry->item () = int_id;
- }
-
- return result;
-}
-
-
-// Same as a normal rebind, except the tree entry is also passed back
-// to the caller. The entry in this case will either be the newly
-// created entry, or the existing one.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)
-{
- ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id, "
- "EXT_ID &old_ext_id, INT_ID &old_int_id, "
- "ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- int result = this->insert_i (ext_id, int_id, entry);
-
- if (result == 1)
- {
- old_ext_id = entry->key ();
- old_int_id = entry->item ();
- entry->key () = ext_id;
- entry->item () = int_id;
- }
-
- return result;
-}
-
-
-// Locate <ext_id> and pass out parameter via <int_id>. If found,
-// return 0, returns -1 if not found.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- ACE_TRACE ("ACE_RB_Tree::find (const EXT_ID &ext_id, INT_ID &int_id)");
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *entry = 0;
-
- int result = this->find_i (ext_id, entry);
- if (result == 0)
- {
- int_id = entry->item ();
- }
-
- return result;
-}
-
-// Locate <ext_id> and pass out parameter via <entry>. If found,
-// return 0, returns -1 if not found.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &ext_id,
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)
-{
- ACE_TRACE ("ACE_RB_Tree::find (const EXT_ID &ext_id, ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->find_i (ext_id, entry);
-}
-
-
-// Unbind (remove) the <ext_id> from the tree. Don't return the
-// <int_id> to the caller (this is useful for collections where the
-// <int_id>s are *not* dynamically allocated...).
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::unbind (const EXT_ID &ext_id)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::unbind (const EXT_ID &ext_id)");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- INT_ID int_id;
- int result = this->remove_i (ext_id, int_id);
-
- // Remap the return codes from the internal method: this
- // is maintained this way in support of deprecated methods,
- // and will be cleaned up when these methods are removed.
- switch (result)
- {
- case 1:
- // If the node was found and deleted, return success.
- return 0;
- case 0:
- // If nothing was found, set errno and break.
- errno = ENOENT;
- break;
- case -1:
- // If an error happened, just break.
- break;
- }
-
- // Return an error if we didn't already return success.
- return -1;
-}
-
-
-// Break any association of <ext_id>. Returns the value of <int_id>
-// in case the caller needs to deallocate memory.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::unbind (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- ACE_TRACE ("ACE_RB_Tree::unbind (const EXT_ID &ext_id, INT_ID &int_id)");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- int result = this->remove_i (ext_id, int_id);
-
- // Remap the return codes from the internal method: this
- // is maintained this way in support of deprecated methods,
- // and will be cleaned up when these methods are removed.
- switch (result)
- {
- case 1:
- // If the node was found and deleted, return success.
- return 0;
- case 0:
- // If nothing was found, set errno and break.
- errno = ENOENT;
- break;
- case -1:
- // If an error happened, just break.
- break;
- }
-
- // Return an error if we didn't already return success.
- return -1;
-}
-
-
-// Remove entry from the tree. This method should be used with *extreme*
-// caution, and only for optimization purposes. The node being passed
-// in had better have been allocated by the tree that is unbinding it.
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::unbind (ACE_RB_Tree_Node<EXT_ID, INT_ID> *entry)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::unbind (ACE_RB_Tree_Node<EXT_ID, INT_ID> *entry)");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- return this->remove_i (entry);
-}
-
-
-// Returns a reference to the underlying <ACE_LOCK>. This makes it
-// possible to acquire the lock explicitly, which can be useful in
-// some cases if you instantiate the <ACE_Atomic_Op> with an
-// <ACE_Recursive_Mutex> or <ACE_Process_Mutex>, or if you need to
-// guard the state of an iterator. NOTE: the right name would be
-// <lock>, but HP/C++ will choke on that!
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_LOCK &
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::mutex (void)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::mutex");
- return this->lock_;
-}
-
-
-// Dump the state of an object.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE void
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::dump (void) const
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncurrent_size_ = %d\n"), this->current_size_));
- this->allocator_->dump ();
- this->lock_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nDumping nodes from root\n")));
- this->dump_i (this->root_);
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-
-// Return forward iterator positioned at first node in tree.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::begin (void)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::begin");
-
- return ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> (*this);
-}
-
-
-// Return forward iterator positioned at last node in tree.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::end (void)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::end");
-
- return ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> ();
-}
-
-
-// Return reverse iterator positioned at last node in tree.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rbegin (void)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rbegin");
-
- return ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> (*this);
-}
-
-
-// Return reverse iterator positioned at first node in tree.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rend (void)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rend");
-
- return ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> ();
-}
-
-
-// Returns a pointer to the item corresponding to the given key,
-// or 0 if it cannot find the key in the tree. DEPRECATED.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE INT_ID*
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &k)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &k)");
-
- // The reinterpret cast is to ensure that when this deprecated method is removed, and
- // is replaced (as planned) by a find method that takes the same argument signature
- // but returns an int, that the compiler will cough if this return macro is not
- // changed to just return an int (whose value will be -1). Please leave this as is.
- ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, ACE_reinterpret_cast(INT_ID*, 0L));
-
- ACE_RB_Tree_Node<EXT_ID, INT_ID> *entry;
- int result = this->find_i (k, entry);
- return (result == 0) ? &(entry->item ()) : 0;
-}
-
-// Inserts a *copy* of the key and the item into the tree:
-// both the key type EXT_ID and the item type INT_ID must have well
-// defined semantics for copy construction and < comparison.
-// This method returns a pointer to the inserted item copy,
-// or 0 if an error occurred. NOTE: if an identical key
-// already exists in the tree, no new item is created, and
-// the returned pointer addresses the existing item
-// associated with the existing key. DEPRECATED.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE INT_ID*
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert (const EXT_ID &k, const INT_ID &t)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, ACE_reinterpret_cast(INT_ID*, 0L));
-
- return this->insert_i (k, t);
-}
-
-
-// Removes the item associated with the given key from the
-// tree and destroys it. Returns 1 if it found the item
-// and successfully destroyed it, 0 if it did not find the
-// item, or -1 if an error occurred. DEPRECATED.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::remove (const EXT_ID &k)
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::remove");
- ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- INT_ID i;
- return this->remove_i (k, i);
-}
-
-
-// Destroys all nodes and sets the root pointer null. DEPRECATED
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE void
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::clear ()
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::clear");
- ACE_WRITE_GUARD (ACE_LOCK, ace_mon, this->lock_);
-
- this->close_i ();
-}
-
-// Returns the current number of nodes in the tree.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE size_t
-ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::current_size () const
-{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::current_size");
- return current_size_;
-}
-
-
-///////////////////////////////////////////////////////////////////////
-// template class //
-// ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> //
-///////////////////////////////////////////////////////////////////////
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator_Base (void)
- : tree_ (0), node_ (0)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator_Base (void)");
-}
-
-// Returns 1 when the iteration has completed, otherwise 0.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::done (void) const
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::done");
-
- return node_ ? 0 : 1;
-}
-
-
-// STL-like iterator dereference operator: returns a reference
-// to the node underneath the iterator.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_RB_Tree_Node<EXT_ID, INT_ID> &
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator* (void) const
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator*");
- return *(this->node_);
-}
-
-
-// Returns a reference to the tree over which we're iterating.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>ACE_INLINE const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::tree (void)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::tree");
- return *tree_;
-}
-
-
-// Comparison operator: returns 1 if both iterators point to the same position, otherwise 0.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator==
- (const ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &rbt) const
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator==");
- return (this->node_ == rbt.node_) ? 1 : 0;
-}
-
-
-// Comparison operator: returns 1 if the iterators point to different positions, otherwise 0.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator!=
- (const ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &rbt) const
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator!=");
- return (this->node_ == rbt.node_) ? 0 : 1;
-}
-
-
-// Move forward by one element in the tree. Returns 0 when
-// there are no more elements in the tree, otherwise 1.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::forward_i (void)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::forward_i");
-
- if (node_)
- {
- node_ = tree_->RB_tree_successor (node_);
- }
-
- return node_ ? 1 : 0;
-}
-
-
-// Move back by one element in the tree. Returns 0 when
-// there are no more elements in the tree, otherwise 1.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::reverse_i (void)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::reverse_i");
-
- if (node_)
- {
- node_ = tree_->RB_tree_predecessor (node_);
- }
-
- return node_ ? 1 : 0;
-}
-
-
-// Dump the state of an object.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE void
-ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::dump_i (void) const
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::dump_i");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nnode_ = %x\n"), this->node_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-
-//////////////////////////////////////////////////////////////////
-// template class //
-// ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> //
-//////////////////////////////////////////////////////////////////
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator (void)
- : ACE_RB_Tree_Iterator_Base<EXT_ID,INT_ID,COMPARE_KEYS,ACE_LOCK> ()
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator (void)");
-}
-
-// Move forward by one element in the tree. Returns
-// 0 when all elements have been seen, else 1.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::advance (void)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::advance");
-
- return this->forward_i ();
-}
-
-
-// Dump the state of an object.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE void
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::dump (void) const
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::dump");
-
- this->dump_i ();
-}
-
-
-// Prefix advance.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator++ (void)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> operator++ (void)");
-
- this->forward_i ();
- return *this;
-}
-
-
-// Postfix advance.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator++ (int)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> operator++ (int)");
-
- ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> retv (*this);
- ++*this;
- return retv;
-}
-
-
-// Prefix reverse.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator-- (void)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> operator-- (void)");
-
- this->reverse_i ();
- return *this;
-}
-
-
-// Postfix reverse.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator-- (int)
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> operator-- (int)");
-
- ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> retv (*this);
- --*this;
- return retv;
-}
-
-
-// Passes back the <entry> under the iterator. Returns 0 if
-// the iteration has completed, otherwise 1. This method must
-// be declared and defined in both the derived forward and
-// reverse iterator classes rather than in the base iterator
-// class because of a method signature resolution problem
-// caused by the existence of the deprecated next (void)
-// method in the derived forward iterator class. When that
-// deprecated method is removed, this method should be removed
-// from the derived classes and placed in the base class.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::next (ACE_RB_Tree_Node<EXT_ID, INT_ID> *&next_entry) const
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::next");
-
- if (this->node_)
- {
- next_entry = this->node_;
- return 1;
- }
-
- return 0;
-}
-
-
-// Accessor for key of node under iterator (if any). DEPRECATED.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE EXT_ID *
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::key ()
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::key");
- return this->node_ ? (&(this->node_->key ())) : 0;
-}
-
-
-// Accessor for item of node under iterator (if any). DEPRECATED.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE INT_ID *
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::item ()
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::item");
- return this->node_ ? (&(this->node_->item ())) : 0;
-}
-
-
-// Move to the first item in the tree. DEPRECATED.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::first ()
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::first");
- this->node_ = this->tree_->RB_tree_minimum (this->tree_->root_);
- return this->node_ ? 1 : 0;
-}
-
-
-// Move to the last item in the tree. DEPRECATED.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::last ()
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::last");
- this->node_ = this->tree_->RB_tree_maximum (this->tree_->root_);
- return this->node_ ? 1 : 0;
-}
-
-
-// Moves to the next item in the tree,
-// returns 1 if there is a next item, 0 otherwise. DEPRECATED.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::next ()
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::next");
- this->node_ = this->tree_->RB_tree_successor (this->node_);
- return this->node_ ? 1 : 0;
-}
-
-
-// Moves to the previous item in the tree,
-// returns 1 if there is a previous item, 0 otherwise. DEPRECATED.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::previous ()
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::previous");
- this->node_ = this->tree_->RB_tree_predecessor (this->node_);
- return this->node_ ? 1 : 0;
-}
-
-
-// Returns 0 if the iterator is positioned over a valid ACE_RB_Tree
-// node, returns 1 if not. DEPRECATED.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::is_done ()
-{
- ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::is_done");
- return this->node_ ? 0 : 1;
-}
-
-
-//////////////////////////////////////////////////////////////////////////
-// template class //
-// ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> //
-//////////////////////////////////////////////////////////////////////////
-
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE
-ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Reverse_Iterator (void)
- : ACE_RB_Tree_Iterator_Base<EXT_ID,INT_ID,COMPARE_KEYS,ACE_LOCK> ()
-{
- ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Reverse_Iterator (void)");
-}
-
-// Move forward by one element in the tree. Returns
-// 0 when all elements have been seen, else 1.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::advance (void)
-{
- ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::advance");
-
- return this->reverse_i ();
-}
-
-
-// Dump the state of an object.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE void
-ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::dump (void) const
-{
- ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::dump");
-
- this->dump_i ();
-}
-
-
-// Prefix advance.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &
-ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator++ (void)
-{
- ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator++ (void)");
-
- this->reverse_i ();
- return *this;
-}
-
-
-// Postfix advance.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>
-ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator++ (int)
-{
- ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator++ (int)");
-
- ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> retv (*this);
- ++*this;
- return retv;
-}
-
-
-// Prefix reverse.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &
-ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator-- (void)
-{
- ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator-- (void)");
-
- this->forward_i ();
- return *this;
-}
-
-
-// Postfix reverse.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>
-ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator-- (int)
-{
- ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator-- (int)");
-
- ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> retv (*this);
- --*this;
- return retv;
-}
-
-
-// Passes back the <entry> under the iterator. Returns 0 if
-// the iteration has completed, otherwise 1. This method must
-// be declared and defined in both the derived forward and
-// reverse iterator classes rather than in the base iterator
-// class because of a method signature resolution problem
-// caused by the existence of the deprecated next (void)
-// method in the derived forward iterator class. When that
-// deprecated method is removed, this method should be removed
-// from the derived classes and placed in the base class.
-
-template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
-ACE_INLINE int
-ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::next (ACE_RB_Tree_Node<EXT_ID, INT_ID> *&next_entry) const
-{
- ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::next");
-
- if (this->node_)
- {
- next_entry = this->node_;
- return 1;
- }
-
- return 0;
-}
diff --git a/ace/README b/ace/README
deleted file mode 100644
index ea386f35341..00000000000
--- a/ace/README
+++ /dev/null
@@ -1,1600 +0,0 @@
-// $Id$
-
-ACE Portability Macros
-----------------------
-
-The following describes the meaning of the C++ compiler macros that
-can be set in the config*.h file. When you port ACE to a new platform
-and/or C++ compiler, make sure that you check to see which of these
-need to be defined. It's helpful to check the various config*.h files
-in this directory to see what's already been defined. If you need to
-add new macros, please send them to me and I'll add them to this file.
-
-Eventually, most of this information should be auto-discovered via GNU
-autoconf, which Ossama Othman is working on, at
-http://www.cs.wustl.edu/~othman/aceconf/.
-
-Macro Description
------ -----------
-
-ACE_CAST_CONST Used to work around broken
- SunCC ANSI casts that require
- an extra const.
-ACE_DEFINES_DEFAULT_WIN32_SECURITY_ATTRIBUTES
- Win32 only. Users want to use
- a predefined security
- attributes defined in
- ACE_OS::default_win32_security_attributes
- as the default security
- object.
-ACE_DISABLE_DEBUG_DLL_CHECK Define this if you don't want
- debug version ACE search for
- debug version DLLs first
- before looking for the DLL
- names specified.
-ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER
- Application will allocate its
- own object manager. This
- implicitly defines
- ACE_HAS_NONSTATIC_OBJECT_MANAGER.
- Usually used with MFC
- applications.
-ACE_MAIN Renames "main (int, char *[])",
- for platforms such as g++/VxWorks
- that don't allow "main". Requires
- the use of
- ACE_HAS_NONSTATIC_OBJECT_MANAGER.
-ACE_MT_SAFE Compile using multi-thread libraries
-ACE_NDEBUG Turns off debugging features
-ACE_NEW_THROWS_EXCEPTIONS Compiler's 'new' throws exception on
- failure (ANSI C++ behavior).
-ACE_NLOGGING Turns off the LM_DEBUG and
- LM_ERROR logging macros...
-ACE_NTRACE Turns off the tracing feature.
-ACE_PAGE_SIZE Defines the page size of the
- system (not used on Win32 or
- with ACE_HAS_GETPAGESIZE).
-ACE_REDEFINES_XTI_FUNCTIONS Platform redefines the t_... names (UnixWare)
-ACE_SELECT_USES_INT Platform uses int for select()
- rather than fd_set
-ACE_TEMPLATES_REQUIRE_PRAGMA Compiler's template mechanism
- must use a pragma This is used
- for AIX's C++ compiler.
-ACE_TEMPLATES_REQUIRE_SOURCE Compiler's template mechanim
- must see source code (i.e.,
- .cpp files). This is used for
- GNU G++.
-ACE_TIMER_SKEW If a timed ::select () can return
- early, then ACE_TIMER_SKEW is the
- maximum adjustment, in microseconds,
- that ACE_Timer_Queue uses to
- compensate for the early return.
-ACE_TLI_TCP_DEVICE Device the platform uses for TCP on
- TLI. Only needed if not /dev/tcp.
-ACE_USE_POLL The OS platform supports the
- poll() event demultiplexor
-ACE_USES_ASM_SYMBOL_IN_DLSYM Platform uses assembly symbols
- instead of C symbols in
- dlsym()
-ACE_USES_STATIC_MFC When linking MFC as a static library is desired
-ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB Platform has its standard c++
- library in the namespace std.
-ACE_WSOCK_VERSION A parameter list indicating
- the version of WinSock (e.g.,
- "1, 1" is version 1.1).
-
-ACE_HAS_AIO_CALLS Platform supports POSIX aio* calls.
- Corresponds to _POSIX_ASYNCHRONOUS_IO
- constant in <unistd.h>.
-ACE_HAS_ALT_CUSERID Use ACE's alternate cuserid()
- implementation since a system
- cuserid() may not exist, or it
- is not desirable to use it.
- The implementation requires
- ACE_LACKS_PWD_FUNCTIONS to be
- undefined and that the
- geteuid() system call exists.
-ACE_HAS_ANSI_CASTS Platform supports new C++
- style casts (dynamic_cast,
- static_cast, reinterpret_cast
- and const_cast)
-ACE_DEFAULT_THREAD_KEYS Number of TSS keys, with
- ACE_HAS_TSS_EMULATION _only_.
- Defaults to 64.
-ACE_DEFAULT_LD_SEARCH_PATH Specify the platform default search
- paths. This macro should only be
- defined on platforms that don't
- support environment variables at all
- (i.e., Windows CE.)
-ACE_THREADS_DONT_INHERIT_LOG_MSG Specify this if you don't want
- threads to inherit parent
- thread's ACE_Log_Msg
- properties.
-ACE_THREAD_MANAGER_USES_SAFE_SPAWN Disable the "check before lock" feature
- in ACE_Thread_Manager. Defining this
- macro avoids a potential race condition
- on platforms with aggressive read/write
- reordering.
-ACE_HAS_GNUG_PRE_2_8 Compiling with g++ prior to
- version 2.8.0.
-ACE_HAS_PRIOCNTL OS has priocntl (2).
-ACE_HAS_RECURSIVE_MUTEXES Mutexes are inherently recursive (e.g., Win32)
-ACE_HAS_RECV_TIMEDWAIT Platform has the MIT pthreads
- APIs for
-ACE_HAS_RECVFROM_TIMEDWAIT timed send/recv operations
-ACE_HAS_RECVMSG_TIMEDWAIT
-ACE_HAS_RLIMIT_RESOURCE_ENUM Platform has enum instead of
- int for first argument to
- ::{get,set}rlimit (). The
- value of this macro is the
- enum definition, e.g., enum
- __rlimit_resource, for Linux
- glibc 2.0.
-ACE_HAS_RUSAGE_WHO_ENUM Platform has enum instead of
- int for first argument to
- ::getrusage (). The value of
- this macro is the enum
- definition, e.g., enum
- __rusage_who, for Linux glibc
- 2.0.
-ACE_HAS_SEND_TIMEDWAIT
-ACE_HAS_SENDTO_TIMEDWAIT
-ACE_HAS_SENDMSG_TIMEDWAIT
-ACE_HAS_STDARG_THR_DEST Platform has void (*)(...)
- prototype for
- pthread_key_create()
- destructor (e.g., LynxOS).
-ACE_HAS_SNPRINTF Platform offers snprintf().
-ACE_HAS_STL_MAP_CONFLICT Used when users want to
- compile ACE with STL and STL
- map class conflicts with
- <net/if.h> map struct.
-ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS Platform/compiler supports
- Win32 structural exceptions
-ACE_HAS_READ_TIMEDWAIT
-ACE_HAS_READV_TIMEDWAIT
-ACE_HAS_WRITE_TIMEDWAIT
-ACE_HAS_WRITEV_TIMEDWAIT
-ACE_HAS_4_4BSD_SENDMSG_RECVMSG Platform has BSD 4.4
- sendmsg()/recvmsg() APIs.
-ACE_HAS_P_READ_WRITE Platform has pread() and
- pwrite() support
-ACE_HAS_64BIT_LONGS Platform has 64bit longs and
- 32bit ints. NOTE: this macro
- is deprecated. Instead, use
- ACE_SIZEOF_LONG == 8.
-ACE_HAS_AIX_BROKEN_SOCKET_HEADER Platform, such as AIX4, needs
- to wrap #include of
- sys/socket.h with
- #undef/#define of
- __cplusplus.
-ACE_HAS_AIX_HI_RES_TIMER Platform has AIX4
- ::read_real_time ()
-ACE_HAS_ALLOCA Compiler/platform supports
- alloca()
-ACE_HAS_ALLOCA_H Compiler/platform has
- <alloca.h>
-ACE_HAS_ALPHA_TIMER CPU is an Alpha, with the rpcc
- instruction to read the tick timer.
- Limited to 32 bits, so not recommended.
-ACE_HAS_AUTOMATIC_INIT_FINI Compiler/platform correctly
- calls init()/fini() for shared
- libraries
-ACE_HAS_BIG_FD_SET Compiler/platform has typedef
- u_long fdmask (e.g., Linux and
- SCO).
-ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
- Compiler handles explicit calling of
- template destructor correctly. See
- "ace/OS.h" for details.
-ACE_HAS_BROKEN_ACCEPT_ADDR Platform can't correctly deal
- with a NULL addr to accept()
- (e.g, VxWorks).
-ACE_HAS_BROKEN_NAMESPACES Compiler/platform doesn't
- support namespaces (or the
- support is not fully
- implemented.)
-ACE_HAS_BROKEN_BITSHIFT Compiler has integer overflow
- problem with bit-shift
- operations.
-ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS Compiler can't handle const char *
- as rvalue in conditional operator.
-ACE_HAS_BROKEN_CONVERSIONS Compiler can't handle calls
- like foo->operator T *()
-ACE_HAS_BROKEN_CTIME Compiler/platform uses macro
- for ctime (e.g., MVS)
-ACE_HAS_BROKEN_DGRAM_SENDV Platform sendv() does not work
- properly with datagrams,
- i.e. it fails when the iovec
- size is IOV_MAX.
-ACE_HAS_BROKEN_ENUMS Compiler can't handle large
- enums (e.g., HP/UX C++)
-ACE_HAS_BROKEN_HPUX_TEMPLATES Earlier versions of HP/UX C++
- are damned...
-ACE_HAS_BROKEN_MAP_FAILED Platform doesn't cast MAP_FAILED
- to a void *.
-ACE_HAS_BROKEN_MSG_H Platform headers don't support
- <msg.h> prototypes
-ACE_HAS_BROKEN_MMAP_H HP/UX does not wrap the
- mmap(2) header files with
- extern "C".
-ACE_HAS_BROKEN_NESTED_TEMPLATES MSVC has trouble with defining
- STL containers for nested
- structs and classes
-ACE_HAS_BROKEN_POSIX_TIME Platform defines struct
- timespec in <sys/timers.h>
-ACE_HAS_BROKEN_RANDR OS/compiler's header files are
- inconsistent with libC
- definition of rand_r().
-ACE_HAS_BROKEN_READV() OS/Compiler's header files are
- not consistent with readv()
- definition.
-ACE_HAS_BROKEN_SENDMSG OS/compiler omits the const
- from the sendmsg() prototype.
-ACE_HAS_BROKEN_SETRLIMIT OS/compiler omits the const
- from the rlimit parameter in
- the setrlimit() prototype.
-ACE_HAS_BROKEN_T_ERROR Compiler/platform has the wrong
- prototype for t_error(), i.e.,
- t_error(char *) rather than
- t_error(const char *).
-ACE_HAS_BROKEN_TIMESPEC_MEMBERS platform define struct
- timespec members as ts_sec and
- ts_nsec instead of tv_sec and
- tv_nsec. This is highly
- non-portable. Currently only
- FreeBSD 2.1.x uses it.
-ACE_HAS_BROKEN_WRITEV OS/compiler omits the const
- from the iovec parameter in
- the writev() prototype.
-ACE_HAS_BROKEN_XTI_MACROS OS header files have some
- problems with XTI (HP/UX 11).
-ACE_HAS_BSTRING Platform has <bstring.h>
- (which contains bzero()
- prototype)
-ACE_HAS_BYTESEX_H Platform has <bytesex.h>.
-ACE_HAS_CANCEL_IO Platform supports the Win32
- CancelIO() function (WinNT 4.0
- and beyond).
-ACE_HAS_CHARPTR_DL OS/platform uses char * for
- dlopen/dlsym args, rather than
- const char *.
-ACE_HAS_CHARPTR_SOCKOPT OS/platform uses char * for
- sockopt, rather than const
- char *
-ACE_HAS_CHARPTR_SPRINTF sprintf() returns char *
- rather than int (e.g., SunOS
- 4.x)
-ACE_HAS_CLOCK_GETTIME Platform supports POSIX 1.b
- clock_gettime ()
-ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES Prototypes for both signal()
- and struct sigaction are
- consistent.
-ACE_HAS_CPLUSPLUS_HEADERS Compiler/platform has
- correctly prototyped header
- files
-ACE_HAS_CYGWIN32_SOCKET_H Platform has cygwin32 socket.h
-ACE_HAS_DIRENT Compiler/platform has Dirent
- iterator functions
-ACE_HAS_DLFCN_H_BROKEN_EXTERN_C For platforms, e.g., RedHat
- 4.2/Linux 2.0.30/Alpha, that
- don't declare dl* functions as
- extern "C" in dlfcn.h.
-ACE_HAS_DLL Build ACE using the frigging
- PC DLL nonsense...
-ACE_HAS_EXCEPTIONS Compiler supports C++
- exception handling
-ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS Compiler does not call
- unexpected exception handler
- if exception not listed in
- exception specification is
- thrown. In particular, the
- exception specification is not
- respected.
-ACE_HAS_EXPLICIT_KEYWORD Compiler support explicit constructors.
-ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION Compiler's template
- instantiation mechanism
- supports the use of explicit
- C++ specializations for all
- used templates. This is also
- used for GNU G++ if you don't
- use the "repo" patches.
-ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT When a base-class is a
- specialization of a class template
- then this class template must be
- explicitly exported
-ACE_HAS_GETPAGESIZE Platform supports
- getpagesize() call (otherwise,
- ACE_PAGE_SIZE must be defined,
- except on Win32)
-ACE_HAS_GETRUSAGE Platform supports the
- getrusage() system call.
-ACE_HAS_GETRUSAGE_PROTO Platform has a getrusage ()
- prototype in sys/resource.h
- that differs from the one in
- ace/OS.i.
-ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS GNUC 2.7.3 mistakenly
- takes the template definition
- as the place where an inline
- function of an argument class
- is first used.
-ACE_HAS_BROKEN_EXTENDED_TEMPLATES GNU CC < 2.8 is broken for
- template classes. This label
- shortens the template parameter
- list by removing the iterator
- functionality in the
- Cache_Map_Manager class.
-ACE_HAS_GNU_CSTRING_H Denotes that GNU has cstring.h
- as standard which redefines
- memchr()
-ACE_HAS_GPERF The GPERF utility is compiled
- for this platform
-ACE_HAS_GETIFADDRS This platform has ifaddrs.h and
- the getifaddrs() function. This
- is used in preference to
- the SIOCGIFCONF ioctl call, since
- it is much simpler and supports
- IPv6 and non-IP interfaces better.
-ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT Optimize
- ACE_Handle_Set::count_bits for
- select() operations (common
- case)
-ACE_HAS_LLSEEK Platform supports llseek.
-ACE_HAS_HI_RES_TIMER Compiler/platform supports
- SunOS high resolution timers
-ACE_HAS_IDTYPE_T Compiler/platform supports
- idtype_t.
-ACE_HAS_INLINED_OSCALLS Inline all the static class OS
- methods to remove call
- overhead
-ACE_HAS_IP_MULTICAST Platform supports IP multicast
-ACE_HAS_IPV6 Platform supports IPv6.
-ACE_USES_IPV4_IPV6_MIGRATION Enable IPv6 support in ACE on
- platforms that don't have IPv6
- turned on by default.
-ACE_HAS_IRIX62_THREADS Platform supports the very odd
- IRIX 6.2 threads...
-ACE_HAS_NONSTATIC_OBJECT_MANAGER Causes the ACE_Object_Manager
- instance to be created in main
- (int, char *[]), instead of as
- a static (global) instance.
-ACE_HAS_THR_KEYDELETE Platform supports
- thr_keydelete (e.g,. UNIXWARE)
-ACE_HAS_THR_MINSTACK Platform calls thr_minstack()
- rather than thr_min_stack()
- (e.g., Tandem).
-ACE_HAS_LIMITED_RUSAGE_T The rusage_t structure has
- only two fields.
-ACE_HAS_LIMITED_SELECT The select is unable to deal with
- large file descriptors.
-ACE_HAS_LOG_MSG_NT_EVENT_LOG Platform supports Windows NT event
- log so we can create an
- ACE_Log_Msg_Backend to log to it.
-ACE_HAS_LONG_MAP_FAILED Platform defines MAP_FAILED as
- a long constant.
-ACE_HAS_MALLOC_STATS Enabled malloc statistics
- collection.
-ACE_HAS_MEMCHR Use native implementation of memchr.
-ACE_HAS_MINIMAL_ACE_OS Disables some #includes in ace/OS.*.
-ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION Avoid #including ace/streams.h
- in OS.h. Users must include
- ace/streams.h, <iostream>, or
- <iostream.h> explicitly in
- their code. Some platforms,
- such as g++/VxWorks, have
- trouble compiling templates
- and iostreams header because
- of static variables in the
- stream headers. This flag
- will also avoid extra
- compilation and runtime
- overheads on some platforms.
-ACE_HAS_MFC Platform supports Microsoft
- Foundation Classes
-ACE_HAS_MSG Platform supports recvmsg and
- sendmsg
-ACE_HAS_MT_SAFE_MKTIME Platform supports MT safe
- mktime() call (do any of
- them?)
-ACE_HAS_MUTABLE_KEYWORD Compiler supports mutable.
-ACE_HAS_MUTEX_TIMEOUTS Compiler supports timed mutex
- acquisitions
- (e.g. pthread_mutex_timedlock()).
-ACE_HAS_NEW_NOTHROW Compiler offers new (nothrow).
-ACE_HAS_NONCONST_GETBY Platform uses non-const char *
- in calls to gethostbyaddr,
- gethostbyname, getservbyname
-ACE_HAS_NONCONST_MSGSND Platform has a non-const
- parameter to msgsend() (e.g.,
- SCO).
-ACE_HAS_NONCONST_SELECT_TIMEVAL Platform's select() uses
- non-const timeval* (only found
- on Linux right now)
-ACE_HAS_OLD_MALLOC Compiler/platform uses old
- malloc()/free() prototypes
- (ugh)
-ACE_HAS_ONLY_SCHED_OTHER Platform, e.g., Solaris 2.5,
- only supports SCHED_OTHER
- POSIX scheduling policy.
-ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R Uses ctime_r & asctime_r with
- only two parameters
- vs. three.
-ACE_HAS_OSF_TIMOD_H Platform supports the OSF TLI
- timod STREAMS module
-ACE_HAS_3_PARAM_WCSTOK Platform has 3-parameter version
- of wcstok(), which was added in
- 1994 in the ISO C standard Normative
- Addendum 1. Other standards like XPG4
- define a 2 parameter wcstok().
-ACE_HAS_PENTIUM Platform is an Intel Pentium
- microprocessor.
-ACE_HAS_POLL Platform contains <poll.h>
-ACE_HAS_POSITION_INDEPENDENT_POINTERS Platform supports
- "position-independent" features
- provided by ACE_Based_Pointer<>.
-ACE_HAS_POSIX_MESSAGE_PASSING Platform supports POSIX message queues.
- Corresponds to _POSIX_MESSAGE_PASSING
- constant in <unistd.h>.
-ACE_HAS_POSIX_NONBLOCK Platform supports POSIX
- O_NONBLOCK semantics
-ACE_HAS_POSIX_REALTIME_SIGNALS Platform supports POSIX RT signals.
- Corresponds to _POSIX_REALTIME_SIGNALS
- constant in <unistd.h>.
-ACE_HAS_POSIX_SEM Platform supports POSIX
- real-time semaphores (e.g.,
- VxWorks and Solaris). Corresponds
- to _POSIX_SEMAPHORES constant
- in <unistd.h>
-ACE_HAS_POSIX_TIME Platform supports the POSIX
- struct timespec type
-ACE_HAS_PROC_FS Platform supports the /proc
- file system and defines tid_t
- in <sys/procfs.h>
-ACE_HAS_POWERPC_TIMER Platform supports PowerPC
- time-base register.
-ACE_HAS_PRUSAGE_T Platform supports the
- prusage_t struct
-ACE_HAS_PTHREADS Platform supports POSIX
- Pthreads, of one form or
- another. This macro says the
- platform has a pthreads
- variety - should also define
- one of the below to say which
- one. Also may need some
- ACE_HAS_... thing for
- extensions.
-ACE_HAS_PTHREADS_DRAFT4 Platform's 'Pthreads' is .4a draft 4
-ACE_HAS_PTHREADS_DRAFT6 Platform's 'Pthreads' is .4a draft 6
-ACE_HAS_PTHREADS_DRAFT7 Platform's 'Pthreads' is .1c draft 7
-ACE_HAS_PTHREADS_STD Platform supports POSIX.1c-1995 threads
- (This is the final standard
- Pthreads).
-ACE_HAS_PTHREADS_UNIX98_EXT Platform has the UNIX98 extensions to
- Pthreads (susp/cont, rwlocks)
-ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP Platform has pthread_condattr_setkind_np().
-ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP Platform has
- pthread_mutexattr_setkind_np().
-ACE_HAS_PTHREAD_PROCESS_ENUM pthread.h declares an enum with
- PTHREAD_PROCESS_PRIVATE and
- PTHREAD_PROCESS_SHARED values.
-ACE_HAS_PTHREAD_SETSTACK Platform has pthread_attr_setstack().
-ACE_HAS_PURIFY Purify'ing. Set by wrapper_macros.GNU.
-ACE_HAS_QUANTIFY Quantify'ing. Set by wrapper_macros.GNU.
-ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS Platform will recurse
- infinitely on thread exits
- from TSS cleanup routines
- (e.g., AIX).
-ACE_HAS_REENTRANT_FUNCTIONS Platform supports reentrant
- functions (i.e., all the POSIX
- *_r functions).
-ACE_HAS_XPG4_MULTIBYTE_CHAR Platform has support for
- multi-byte character support
- compliant with the XPG4
- Worldwide Portability
- Interface wide-character
- classification.
-ACE_HAS_REGEX Platform supports the POSIX
- regular expression library
-ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE For OpenBSD: The dlsym call
- segfaults when passed an invalid
- handle. Other platforms handle
- this more gracefully.
-ACE_HAS_SELECT_H Platform has special header for select().
-ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL For Win32: Use Select_Reactor
- as default implementation of
- Reactor instead of
- WFMO_Reactor.
-ACE_HAS_SEMUN Compiler/platform defines a
- union semun for SysV shared
- memory
-ACE_HAS_SET_T_ERRNO Platform has a function to set
- t_errno (e.g., Tandem).
-ACE_HAS_SIGINFO_T Platform supports SVR4
- extended signals
-ACE_HAS_SIGSUSPEND Platform supports sigsuspend()
-ACE_HAS_SIGISMEMBER_BUG Platform has bug with
- sigismember() (HP/UX 11).
-ACE_HAS_SIG_MACROS Platform/compiler has macros
- for sig{empty,fill,add,del}set
- (e.g., SCO and FreeBSD)
-ACE_HAS_SIGNAL_OBJECT_AND_WAIT Platform supports the Win32
- SignalObjectAndWait() function
- (WinNT 4.0 and beyond).
-ACE_HAS_SIGNAL_SAFE_OS_CALLS Automatically restart OS
- system calls when EINTR occurs
-ACE_HAS_SIGWAIT Platform/compiler has the
- sigwait(2) prototype
-ACE_HAS_SIG_ATOMIC_T Compiler/platform defines the
- sig_atomic_t typedef
-ACE_HAS_SIG_C_FUNC Compiler requires extern "C"
- functions for signals.
-ACE_HAS_SIN_LEN Platform supports new BSD
- inet_addr len field.
-ACE_HAS_SIZET_SOCKET_LEN OS/compiler uses size_t *
- rather than int * for socket
- lengths
-ACE_HAS_SOCKADDR_MSG_NAME Platform requires (struct
- sockaddr *) for msg_name field
- of struct msghdr.
-ACE_HAS_SOCKIO_H Compiler/platform provides the
- sockio.h file
-ACE_HAS_SOCKLEN_T Platform provides socklen_t
- type, such as Linux with
- glibc2.
-ACE_HAS_SPARCWORKS_401_SIGNALS Compiler has brain-damaged
- SPARCwork SunOS 4.x signal
- prototype...
-ACE_HAS_SSIZE_T Compiler supports the ssize_t
- typedef
-ACE_HAS_STRPTIME Enables ACE_OS::strptime ().
-ACE_HAS_STHREADS Platform supports Solaris
- threads
-ACE_HAS_STANDARD_CPP_LIBRARY Platform/compiler supports
- Standard C++ Library
-ACE_HAS_STRBUF_T Compiler/platform supports
- struct strbuf
-ACE_HAS_STRDUP_EMULATION Platform/compiler lacks
- strdup() (e.g., VxWorks,
- Chorus, WinCE)
-ACE_HAS_STRNLEN Platform supports strnlen(3).
-ACE_HAS_STREAMS Platform supports STREAMS
-ACE_HAS_STREAM_PIPES Platform supports STREAM pipes
-ACE_HAS_STRERROR Compiler/platform supports strerror ()
-ACE_HAS_STRICT Use the STRICT compilation mode on Win32.
-ACE_HAS_STRING_CLASS Platform/Compiler supports a
- String class (e.g., GNU or
- Win32).
-ACE_HAS_STRUCT_NETDB_DATA Compiler/platform has strange
- hostent API for socket *_r()
- calls
-ACE_HAS_SUNOS4_GETTIMEOFDAY SunOS 4 style prototype.
-ACE_HAS_SUNOS4_SIGNAL_T Compiler has horrible SunOS
- 4.x signal handlers...
-ACE_HAS_SVR4_DYNAMIC_LINKING Compiler/platform supports
- SVR4 dynamic linking semantics
-ACE_HAS_SVR4_GETTIMEOFDAY Compiler/platform supports
- SVR4 gettimeofday() prototype
-ACE_HAS_SVR4_SIGNAL_T Compiler/platform supports
- SVR4 signal typedef
-ACE_HAS_SVR4_TLI Compiler/platform supports
- SVR4 TLI (in particular,
- T_GETNAME stuff)...
-ACE_HAS_SYSCALL_GETRUSAGE HP/UX has an undefined syscall
- for GETRUSAGE...
-ACE_HAS_SYSCALL_H Compiler/platform contains the
- <sys/syscall.h> file.
-ACE_HAS_SYSENT_H Platform provides <sysent.h>
- header
-ACE_HAS_SYSINFO Platform supports system
- configuration information
-ACE_HAS_SYSV_IPC Platform supports System V IPC
- (most versions of UNIX, but
- not Win32)
-ACE_HAS_SYS_ERRLIST Platform/compiler supports
- _sys_errlist symbol
-ACE_HAS_SYS_FILIO_H Platform provides
- <sys/filio.h> header
-ACE_HAS_SYS_SIGLIST Compiler/platform supports
- _sys_siglist array
-ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA Compiler's template
- instantiation mechanism
- supports the use of "#pragma
- instantiate". Edison Design
- Group compilers, e.g., SGI C++
- and Green Hills 1.8.8 and
- later, support this.
-ACE_HAS_TEMPLATE_SPECIALIZATION Compiler implements template
- specialization
-ACE_HAS_TEMPLATE_TYPEDEFS Compiler implements templates
- that support typedefs inside
- of classes used as formal
- arguments to a template
- class.
-ACE_HAS_TERM_IOCTLS Platform has terminal ioctl
- flags like TCGETS and TCSETS.
-ACE_HAS_LAZY_MAP_MANAGER ACE supports lazy Map Managers
- that allow deletion of entries
- during active iteration.
-ACE_HAS_THREADS Platform supports threads
-ACE_HAS_THREAD_SAFE_ACCEPT Platform allows multiple
- threads to call accept() on
- the same port (e.g., WinNT).
-ACE_HAS_THREAD_SELF Platform has thread_self()
- rather than pthread_self()
- (e.g., DCETHREADS and AIX)
-ACE_HAS_THREAD_SPECIFIC_STORAGE Compiler/platform has
- thread-specific storage
-ACE_HAS_THR_C_DEST The pthread_keycreate()
- routine *must* take extern C
- functions.
-ACE_HAS_THR_C_FUNC The pthread_create() routine
- *must* take extern C
- functions.
-ACE_HAS_TIMEZONE_GETTIMEOFDAY Platform/compiler supports
- timezone * as second parameter
- to gettimeofday()
-ACE_HAS_TIMOD_H Platform supports TLI timod
- STREAMS module
-ACE_HAS_TIUSER_H Platform supports TLI tiuser
- header
-ACE_HAS_TLI Platform supports TLI. Also
- see ACE_TLI_TCP_DEVICE.
-ACE_HAS_TLI_PROTOTYPES Platform provides TLI function
- prototypes
-ACE_HAS_TSS_EMULATION ACE provides TSS emulation.
- See also
- ACE_DEFAULT_THREAD_KEYS.
-ACE_HAS_UALARM Platform supports ualarm()
-ACE_HAS_UCONTEXT_T Platform supports ucontext_t
- (which is used in the extended
- signal API).
-ACE_HAS_UNION_WAIT The wait() system call takes a
- (union wait *) rather than int
- *
-ACE_HAS_UNIXWARE_SVR4_SIGNAL_T Has inconsistent SVR4 signal
- stuff, but not the same as the
- other platforms
-ACE_HAS_USING_KEYWORD Compiler supports the new
- using keyword for C++
- namespaces.
-ACE_HAS_VERBOSE_NOTSUP Prints out console message in
- ACE_NOTSUP. Useful for
- tracking down origin of
- ACE_NOTSUP.
-ACE_HAS_VOIDPTR_MMAP Platform requires void * for
- mmap().
-ACE_HAS_VOIDPTR_SOCKOPT OS/compiler uses void * arg 4
- setsockopt() rather than const
- char *
-ACE_HAS_WCSNLEN Platform supports wcsnlen(3).
-ACE_HAS_WIN32_TRYLOCK The Win32 platform support
- TryEnterCriticalSection()
- (WinNT 4.0 and beyond)
-ACE_HAS_WINSOCK2 The Win32 platform supports
- WinSock 2.0
-ACE_HAS_XLI Platform has the XLI version
- of TLI
-ACE_HAS_XT Platform has Xt and Motif
-ACE_HAS_XTI Platform has XTI
- (X/Open-standardized superset
- of TLI). Implies ACE_HAS_TLI
- but uses a different header
- file.
-ACE_LACKS_ACCESS Platform lacks access() (e.g.,
- VxWorks and Chorus)
-ACE_LACKS_ACE_IOSTREAM Platform can not build
- ace/IOStream{,_T}.cpp. This
- does not necessarily mean that
- the platform does not support
- iostreams.
-ACE_LACKS_AUTO_MMAP_REPLACEMENT No system support for replacing any
- previous mappings.
-ACE_LACKS_BSEARCH Compiler/platform lacks the
- standard C library bsearch()
- function
-ACE_LACKS_CLEARERR Platform lacks the clearerr system
- call.
-ACE_LACKS_CMSG_DATA_MACRO Platform has
- ACE_HAS_4_4BSD_SENDMSG_RECVMSG but does
- not define CMSG_DATA (cmsg) macro.
-ACE_LACKS_CMSG_DATA_MEMBER Platform has
- ACE_HAS_4_4BSD_SENDMSG_RECVMSG but its
- cmsghdr structure does not contain
- an 'unsigned char cmsg_data[0]'
- member. (This may be
- 'unsigned char __cmsg_data[0]' on some
- platforms, in which case we need
- another macro.)
-ACE_LACKS_COND_TIMEDWAIT_RESET pthread_cond_timedwait does
- *not* reset the time argument
- when the lock is acquired.
-ACE_LACKS_CONST_STRBUF_PTR Platform uses struct strbuf *
- rather than const struct
- strbuf * (e.g., HP/UX 10.x)
-ACE_LACKS_CONST_TIMESPEC_PTR Platform forgot const in
- cond_timewait (e.g., HP/UX).
-ACE_LACKS_COND_T Platform lacks condition
- variables (e.g., Win32 and
- VxWorks)
-ACE_LACKS_CONDATTR_PSHARED Platform has no implementation
- of
- pthread_condattr_setpshared(),
- even though it supports
- pthreads!
-ACE_LACKS_DIFFTIME Platform lacks difftime() implementation
-ACE_LACKS_FCNTL Platform lacks POSIX-style fcntl ().
-ACE_LACKS_FSYNC Platform lacks fsync().
-ACE_LACKS_INLINE_FUNCTIONS Platform can't handle "inline"
- keyword correctly.
-ACE_LACKS_EXEC Platform lacks the exec()
- family of system calls (e.g.,
- Win32, VxWorks, Chorus)
-ACE_LACKS_FILELOCKS Platform lacks file locking
- mechanism
-ACE_LACKS_FLOATING_POINT Platform does not support
- floating point operations
- (e.g., certain Chorus hardware
- platforms)
-ACE_LACKS_FORK Platform lacks the fork()
- system call (e.g., Win32,
- VxWorks, Chorus)
-ACE_LACKS_GETOPT_PROTO Platform lacks the getopt()
- prototype (e.g., LynxOS)
-ACE_LACKS_GETPGID Platform lacks getpgid() call
- (e.g., Win32, Chorus, and
- FreeBSD).
-ACE_LACKS_GETSERVBYNAME Platforms lacks
- getservbyname() (e.g., VxWorks
- and Chorus).
-ACE_LACKS_INET_ATON Platform lacks the inet_aton()
- function.
-ACE_LACKS_IOSTREAMS_TOTALLY Iostreams are not supported
- adequately on the given platform.
-ACE_LACKS_IOSTREAM_FX iostream header does not
- declare ipfx (), opfx (),
- etc.
-ACE_LACKS_KEY_T Platform lacks key_t (e.g.,
- Chorus, VxWorks, Win32)
-ACE_LACKS_LINEBUFFERED_STREAMBUF Platform lacks streambuf
- "linebuffered ()".
-ACE_LACKS_LONGLONG_T Compiler/platform does no
- supports the unsigned long
- long datatype.
-ACE_LACKS_LSTAT Platform lacks the lstat() function.
-ACE_LACKS_MADVISE Platform lacks madvise()
- (e.g., Linux)
-ACE_LACKS_MALLOC_H Platform lacks malloc.h
-ACE_LACKS_MEMORY_H Platform lacks memory.h (e.g.,
- VxWorks and Chorus)
-ACE_LACKS_MKFIFO Platform lacks mkfifo() e.g.,
- VxWorks, Chorus, pSoS, and WinNT.
-ACE_LACKS_MKTEMP ACE has no mktemp()
-ACE_LACKS_MMAP The platform doesn't have
- mmap(2) (e.g., SCO UNIX).
-ACE_LACKS_MODE_MASKS Platform/compiler doesn't have
- open() mode masks.
-ACE_LACKS_MPROTECT The platform doesn't have
- mprotect(2) (e.g., EPLX real
- time OS from CDC (based on
- LYNX))
-ACE_LACKS_MSG_ACCRIGHTS Platform defines ACE_HAS_MSG,
- but lacks msg_accrights{,len}.
-ACE_LACKS_MSG_WFMO Platform lacks
- MsgWaitForMultipleObjects
- (only needs to be defined when
- ACE_WIN32 is also defined).
-ACE_LACKS_MSGBUF_T Platform lacks struct msgbuf
- (e.g., NT and MSV).
-ACE_LACKS_MSYNC Platform lacks msync() (e.g.,
- Linux)
-ACE_LACKS_MUTEXATTR_PSHARED Platform lacks
- pthread_mutexattr_setpshared().
-ACE_LACKS_NAMED_POSIX_SEM Platform lacks named POSIX
- semaphores (e.g., Chorus)
-ACE_LACKS_NETDB_REENTRANT_FUNCTIONS Platform does not support
- reentrant netdb functions
- (getprotobyname_r,
- getprotobynumber_r,
- gethostbyaddr_r,
- gethostbyname_r,
- getservbyname_r).
-ACE_LACKS_NEW_H OS doesn't have, or we don't want to
- use, new.h.
-ACE_LACKS_NULL_PTHREAD_STATUS OS requires non-null status pointer
- for ::pthread_join ().
-ACE_LACKS_PARAM_H Platform lacks <sys/param.h>
- (e.g., MVS)
-ACE_LACKS_PERFECT_MULTICAST_FILTERING Platform lacks IGMPv3 "perfect" filtering
- of multicast dgrams at the socket level.
- If == 1, ACE_SOCK_Dgram_Mcast will bind
- the first joined multicast group to the
- socket, and all future joins on that
- socket will fail with an error.
-ACE_LACKS_POSIX_PROTOTYPES Platform lacks POSIX
- prototypes for certain System
- V functions like shared memory
- and message queues.
-ACE_LACKS_PRAGMA_ONCE Compiler complains about #pragma once
-ACE_LACKS_PRI_T Platform lacks pri_t (e.g.,
- Tandem NonStop UNIX).
-ACE_LACKS_PTHREAD_CANCEL Platform lacks
- pthread_cancel().
-ACE_LACKS_PTHREAD_SIGMASK Platform lacks pthread_sigmask ().
-ACE_LACKS_PTHREAD_THR_SIGSETMASK Platform lacks
- pthread_thr_sigsetmask (e.g.,
- MVS, HP/UX, and OSF/1 3.2)
-ACE_LACKS_PWD_REENTRANT_FUNCTIONS Platform lacks getpwnam_r()
- methods (e.g., SGI 6.2).
-ACE_LACKS_QSORT Compiler/platform lacks the
- standard C library qsort()
- function
-ACE_LACKS_RAND_REENTRANT_FUNCTIONS Platform lacks rand_r()
-ACE_LACKS_READLINK Platform lacks the readlink() function.
-ACE_LACKS_READV Platform doesn't define readv,
- so use our own
-ACE_LACKS_RENAME Platform lacks rename().
-ACE_LACKS_RLIMIT Platform/compiler lacks
- {get,set}rlimit() function
- (e.g., VxWorks, Chorus, and
- SCO UNIX)
-ACE_LACKS_RLIMIT_PROTOTYPE Platform/compiler lacks
- {get,set}rlimit() prototypes
- (e.g., Tandem)
-ACE_LACKS_RTTI Compiler does not support
- dynamic_cast. Usually used
- with ACE_HAS_ANSI_CASTS.
-ACE_LACKS_READDIR_R Platform uses ACE_HAS_DIRENT
- but does not have readdir_r
- ().
-ACE_LACKS_RECVMSG Platform lacks recvmsg()
- (e.g., Linux)
-ACE_LACKS_RWLOCK_T Platform lacks readers/writer
- locks.
-ACE_LACKS_SBRK Platform lacks a working
- sbrk() (e.g., Win32 and
- VxWorks)
-ACE_LACKS_SEEKDIR Platform uses ACE_HAS_DIRENT
- but does not have seekdir ().
-ACE_LACKS_SEMBUF_T Platform lacks struct sembuf
- (e.g., Win32 and VxWorks)
-ACE_LACKS_SETDETACH Platform lacks
- pthread_attr_setdetachstate()
- (e.g., HP/UX 10.x)
-ACE_LACKS_SETSCHED Platform lacks
- pthread_attr_setsched()
- (e.g. MVS)
-ACE_LACKS_SIGACTION Platform lacks struct
- sigaction (e.g., Win32 and
- Chorus)
-ACE_LACKS_SIGNED_CHAR Platform lacks "signed char"
- type (broken!)
-ACE_LACKS_SIGSET Platform lacks signal sets
- (e.g., Chorus and Win32)
-ACE_LACKS_SOME_POSIX_PROTOTYPES Platform lacks POSIX
- prototypes for certain System
- V functions like shared memory
- and message queues.
-ACE_LACKS_NATIVE_STRPTIME Platform/compiler lacks the strptime()
- function.
-ACE_LACKS_STRRCHR Platform/compiler lacks
- strrchr () function.
-ACE_LACKS_WCSRCHR Platform/compiler lacks wcsrchr ()
- function
-ACE_LACKS_SYS_NERR Platforms/compiler lacks the
- sys_nerr variable (e.g.,
- VxWorks and MVS).
-ACE_LACKS_SYSTIME_H <time.h> doesn't automatically
- #include /**/ <sys/time.h>
-ACE_LACKS_SYSV_MSG_H Platform lacks sys/msg.h
- (e.g., Chorus and VxWorks)
-ACE_LACKS_SENDMSG Platform lacks sendmsg()
- (e.g., Linux)
-ACE_LACKS_SI_ADDR Platform lacks the si_addr
- field of siginfo_t (e.g.,
- VxWorks and HP/UX 10.x)
-ACE_LACKS_SYSV_SHMEM Platform lacks System V shared
- memory (e.g., Win32 and
- VxWorks)
-ACE_LACKS_SIGINFO_H Platform lacks the siginfo.h
- include file (e.g., MVS)
-ACE_LACKS_SOCKET_BUFSIZ Platform doesn't support
- SO_SNDBUF/SO_RCVBUF
-ACE_LACKS_SOCKETPAIR Platform lacks the
- socketpair() call (e.g., SCO
- UNIX)
-ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES Compiler doesn't support
- static data member templates
-ACE_LACKS_STRCASECMP Compiler/platform lacks
- strcasecmp() (e.g., DG/UX,
- UNIXWARE, VXWORKS)
-ACE_LACKS_STRRECVFD Platform doesn't define struct
- strrecvfd.
-ACE_LACKS_SYSCALL Platform doesn't have
- syscall() prototype
-ACE_LACKS_T_ERRNO Header files lack t_errno for
- TLI
-ACE_LACKS_TCP_H Platform doesn't have
- netinet/tcp.h
-ACE_LACKS_TCP_NODELAY OS does not support TCP_NODELAY.
-ACE_LACKS_TELLDIR Platform uses ACE_HAS_DIRENT
- but does not have telldir ().
-ACE_LACKS_THREAD_STACK_SIZE Platform lacks
- pthread_attr_setstacksize()
- (e.g., Linux pthreads)
-ACE_LACKS_TIMEDWAIT_PROTOTYPES MIT pthreads platform lacks
- the timedwait prototypes
-ACE_LACKS_TIMESPEC_T Platform does not define
- timepec_t as a typedef for
- struct timespec.
-ACE_LACKS_TRUNCATE Platform doesn't have truncate()
- (e.g., vxworks)
-ACE_LACKS_U_LONGLONG_T Platform does not have
- u_longlong_t typedef, and
- "sun" is defined.
-ACE_LACKS_UALARM_PROTOTYPE Platform/compiler lacks the
- ualarm() prototype (e.g.,
- Solaris)
-ACE_LACKS_CHAR_RIGHT_SHIFTS Compiler does not have any istream
- operator>> for chars, u_chars, or
- signed chars.
-ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS Compiler does not have
- operator>> (istream &, u_char *) or
- operator>> (istream &, signed char *)
-ACE_LACKS_UCONTEXT_H Platform lacks the ucontext.h
- file
-ACE_LACKS_UNBUFFERED_STREAMBUF Platform lacks streambuf
- "unbuffered ()".
-ACE_LACKS_UNISTD_H Platform lacks the unistd.h
- file (e.g., VxWorks and Win32)
-ACE_LACKS_UNIX_DOMAIN_SOCKETS ACE platform has no UNIX
- domain sockets
-ACE_LACKS_UNIX_SIGNALS Platform lacks full signal
- support (e.g., Win32 and
- Chorus).
-ACE_LACKS_UTSNAME_T Platform lacks struct utsname
- (e.g., Win32 and VxWorks)
-ACE_LACKS_WILDCARD_BIND The bind() call will not
- select the port if it's 0.
-
-ACE_LACKS_WRITEV Platform doesn't define
- writev, so use our own
-
-ACE_LEGACY_MODE When defined, it will enable some code that is
- used to provide some support for backwards
- compatibility.
-
-ACE_NEEDS_DEV_IO_CONVERSION Necessary with some compilers
- to pass ACE_TTY_IO as
- parameter to DEV_Connector.
-ACE_NEEDS_FUNC_DEFINITIONS Compiler requires a definition
- for a "hidden" function, e.g.,
- a private, unimplemented copy
- constructor or assignment
- operator. The SGI C++
- compiler needs this, in
- template classes, with
- ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA.
-ACE_NEEDS_HUGE_THREAD_STACKSIZE Required by platforms with small default stacks.
-ACE_NEEDS_LWP_PRIO_SET OS has LWPs, and when the
- priority of a bound thread is
- set, then the LWP priority
- must be set also.
-ACE_NEEDS_SCHED_H Platform needs to #include
- <sched.h>
- to get thread scheduling
- defs.
-
-ACE_NO_WIN32_LEAN_AND_MEAN If this is set, then ACE does not
- define WIN32_LEAN_AND_MEAN before
- including <windows.h>. Needed for
- code that uses non-lean Win32
- facilities such as COM.
-
-ACE_ONLY_LATEST_AND_GREATEST A macro that indicates that the "latest and greatest"
- features of ACE/TAO should be turned on. It has been
- replaced by ACE_LEGACY_MODE, which has the opposite
- meaning but serves the same purpose.
-
-ACE_WSTRING_HAS_USHORT_SUPPORT If a platform has wchar_t as a separate type,
- then ACE_WString doesn't have a constructor that
- understands an ACE_USHORT16 string. So this
- macro enables one. (mostly used my ACE Name Space).
-
-ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK
- Under QNX/RTP the objects preallocated
- in ACE_OS_Object_Manager cannot be
- destroyed after a fork() call.
- Since these objects are only destroyed
- at application shutdown we take the
- simpler approach of not destroying
- them at all.
- Both QNX/RTP and LynxOS suffer from
- this problem.
-----------------------------------------
-
-The following macros determine the svc.conf file format ACE uses.
-
-Macro Description
------ -----------
-ACE_HAS_CLASSIC_SVC_CONF This macro forces ACE to use the classic
- svc.conf format.
-
-ACE_HAS_XML_SVC_CONF This macro forces ACE to use the XML
- svc.conf format.
-
-ACE_USES_CLASSIC_SVC_CONF This macro should be defined as 0 or 1, depending
- on the preferred svc.conf file format.
- Defining this macro to 0 means ACE will use XML
- svc.conf file format. Defining it to 1 will
- force ACE to use the classic svc.conf format.
- ** This macro takes precedence over previous
- ** two macros.
-----------------------------------------
-The following is a partial list of where some of these macros are used
-in the code. This list was originally compiled by Jam Hamidi
-(jh1@core01.osi.com). It is now hopelessly out of date. Hopefully,
-someone will come along and update it....
-
-ACE_HAS_ALLOCA:
----------------
-
- Used in:
- libsrc/IPC_SAP/SOCK_SAP/SOCK_Connect.C
- for allocation of iovp
-A
- libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Msg.C
- for alocation of iovp
-
- In solaris:
- alloca() allocates size bytes of space in the stack frame of
- the caller, and returns a pointer to the allocated block.
- This temporary space is automatically freed when the caller
- returns. Note: if the allocated block is beyond the current
- stack limit, the resulting behavior is undefined.
-
- In HPUX:
- no equivalent.
-
- Notes:
- in HPUX it has to do new and delete. Affects performance.
-
-
-ACE_HAS_AUTOMATIC_INIT_FINI:
-----------------------------
-
- Used in:
- libsrc/Service_Configurator/Service_Repository.i
- libsrc/Service_Configurator/Parse_Node.i
- include/Parse_Node.i
- include/Service_Repository.i
-
- In solaris:
- _init() initializes a loadable module. It is called before
- any other routine in a loadable module.
- _info() returns information about a loadable module.
- _fini() should return the return value from mod_remove(9F).
- This flag if set, doesn't do anything. If not set, forces
- _init() and _fini() to be executed as is:
- dlsym ((char *) handle, "_fini").
-
- In HPUX:
- don't set.
- Maybe have to look into shl_load( ), shl_definesym( ),
- shl_findsym( ), shl_gethandle( ), shl_getsymbols( ),
- shl_unload( ), shl_get( )(3X) - explicit load of shared libraries
- Means Service Configurator won't be available.
- TBA.
-
-
-ACE_HAS_CPLUSPLUS_HEADERS:
---------------------------
-
- Used In:
- ace/OS.h
-
- HPUX:
- set it.
-
- Notes:
- If this is not defined, libc.h and osfcn.h get included.
- Only needed for older compiler/OS platforms that don't
- provide standard C++ header files in /usr/include.
-
-ACE_HAS_HI_RES_TIMER:
----------------------
-
- Used In:
- libsrc/Misc/High_Res_Timer.h
- libsrc/Misc/High_Res_Timer.C
- include/High_Res_Timer.h
-
- In Solaris,
- C++ wrapper around gethrtime(), which returns a long long.
- gethrtime() returns the current high-resolution real time.
- Time is expressed as nanoseconds since some arbitrary time
- in the past; it is not correlated in any way to the time of
- day, and thus is not subject to resetting, drifting, etc.
-
- In HPUX
- look into: getclock(), reltimer(), getitimer()
- maybe even vtimes structure vm_utime, vm_stime ?
-
- Notes:
- TBA
-
-
-ACE_LACKS_T_ERRNO:
--------------------
-
- Used In:
- ace/OS.h
-
- HPUX:
- set it.
-
- Notes:
- if set, adds:
- extern int t_errno;
-
-
-ACE_HAS_POSIX_NONBLOCK:
------------------------
-
- Used in:
- ace/OS.h
-
- HPUX:
- set it.
-
- Notes:
- if defined, sets ACE_NONBLOCK and O_NONBLOCK
- O_NONBLOCK is used in libsrc/Misc/misc.C to do a
- fcntl (fd, F_SETFL, opt)
- ACE_NONBLOCK is used in libsrc/IPC_SAP/FIFO_SAP/FIFO_Recv.C in the
- disable member function and options passed to the open function
- in libsrc/IPC_SAP/FIFO_SAP/FIFO.C
-
-
-ACE_HAS_PROC_FS:
-----------------
-
- Used in:
- ace/OS.h
- libsrc/Misc/Profile_Timer.i
-
- Notes:
- if set, includes <sys/procfs.h>
- the PIOCUSAGE define is used in Profile_Timer.
-
- Solaris:
- procfs.h defines things for the prpsinfo structure (basically to
- do a "ps" from inside a program).
-
- HPUX:
- don't set: obviously a different mechanism.
- Look into /usr/include/sys/proc.h. The structure is proc. The
- pointer to the kernel's proc table may be obtained by
- extern struct proc *proc, *procNPROC;
- extern int nproc;
-
-
-ACE_HAS_PRUSAGE_T:
-------------------
-
- Used in:
- libsrc/Misc/Profile_Timer.h
- libsrc/Misc/Profile_Timer.C
-
- Notes:
- If defined, declares the Profile_Timer class that does start(),
- stop() and basically gets real_time, user_time, system_time for
- an interval.
- This stuff is highly non-portable.
-
- HPUX:
- don't set
-
-
-ACE_HAS_SEMUN:
---------------
-
- Used in:
- libsrc/Semaphores/Semaphore_Simple.h
-
- Notes:
- if not defined, defines semun as:
- union semun {
- int val; /* value for SETVAL */
- struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */
- ushort *array; /* array for GETALL & SETALL */
- };
-
- HPUX:
- don't set.
- in /usr/include/sem.h:
- /* The fourth argument to semctl() varies depending on the value of
- its first argument. If desired, "union semun" can be declared
- by the user, but this is not necessary since the individual
- member can just be passed as the argument. */
-
-
-ACE_HAS_SIG_ATOMIC_T:
----------------------
-
- Used in:
- ace/OS.h
-
- Notes:
- if not defined, does a:
- typedef int sig_atomic_t;
- This is used in the Reactor and service configurator.
-
- HPUX:
- set it.
- in /usr/include/sys/signal.h:
- typedef unsigned int sig_atomic_t;
-
-
-ACE_HAS_SSIZE_T:
-----------------
-
- Used in:
- ace/OS.h
-
- Notes:
- if not defined, does a
- typedef int ssize_t;
- used mostly in IPC_SAP. (don't confuse with size_t).
-
- HPUX:
- set it.
- in /usr/include/sys/types.h
-
-
-ACE_HAS_STRBUF_T:
------------------
-
- Used in:
- include/Str_Buf.h
-
- Notes:
- if not defined, declares the strbuf structure as:
- struct strbuf
- {
- int maxlen; /* no. of bytes in buffer */
- int len; /* no. of bytes returned */
- void *buf; /* pointer to data */
- };
-
- Solaris:
- defined in /usr/include/sys/stropts.h
- Sys V.4 Streams.
- uses strbuf as parameter to putmsg, putpmsg:
- int putmsg(int fildes, const struct strbuf *ctlptr,
- const struct strbuf *dataptr, int flags);
-
- HPUX:
- don't set.
- no SYS V.4 streams.
-
-
-ACE_HAS_STREAMS:
-----------------
-
- Used In:
- ace/OS.h
- libsrc/IPC_SAP/SOCK_SAP/LSOCK.C
-
- Notes:
- if defined, includes <stropts.h>
-
- HPUX:
- don't set.
- no SYS V.4 streams.
-
-
-ACE_HAS_STREAM_PIPES:
----------------------
-
- Used in:
- libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Msg.h
- libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Msg.C
- libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Listener.h
- libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Listener.C
- libsrc/IPC_SAP/SPIPE_SAP/SPIPE.h
- libsrc/IPC_SAP/SPIPE_SAP/SPIPE.C
- libsrc/IPC_SAP/FIFO_SAP/FIFO_Send_Msg.h
- libsrc/IPC_SAP/FIFO_SAP/FIFO_Send_Msg.C
- libsrc/IPC_SAP/FIFO_SAP/FIFO_Send_Msg.i
- libsrc/IPC_SAP/FIFO_SAP/FIFO_Recv_Msg.h
- libsrc/IPC_SAP/FIFO_SAP/FIFO_Recv_Msg.C
- libsrc/IPC_SAP/FIFO_SAP/FIFO_Recv_Msg.i
-
- Notes:
- if not set, won't be able to use the SPIPE class (IPC_SAP) with
- rendezvous handles.
-
- HPUX:
- don't set.
- No sysV.4 streams.
-
-
-ACE_HAS_STRERROR:
------------------
-
- Used in:
- ace/OS.h
-
- Notes:
- if not defined, does a:
- #define strerror(err) sys_errlist[err]
-
- Solaris:
- /usr/include/string.h
-
- HPUX:
- set it.
- in /usr/include/sys/errno.h and string.h
- extern char *strerror (int);
-
-
-ACE_HAS_SVR4_DYNAMIC_LINKING:
------------------------------
-
- Used in:
- ace/OS.h
- tests/Service_Configurator/CCM_App.C
-
- Notes:
- if defined, includes <dlfcn.h>
- with dlopen(), dlsym(), etc..
-
- HPUX:
- don't set.
- has its own:
- shl_findsym( ), shl_gethandle( ), shl_getsymbols( ),
- shl_unload( ), shl_get( )(3X) - explicit load of shared libraries
-
-
-ACE_HAS_SVR4_GETTIMEOFDAY:
---------------------------
-
- Used in:
- ace/OS.h
- libsrc/Reactor/Timer_Queue.i
-
- Notes:
- has to do with gettimeofday ().
-
- Solaris:
- gettimeofday (struct timeval *tp)
-
- HPUX:
- don't set.
- it has gettimeofday (struct timeval *tp, struct timezone *tzp);
- most calls do a:
- #if defined (ACE_HAS_SVR4_GETTIMEOFDAY)
- ::gettimeofday (&cur_time);
- #else
- ::gettimeofday (&cur_time, 0);
- #endif /* ACE_HAS_SVR4_GETTIMEOFDAY */
-
-
-ACE_HAS_POLL:
-------------
- Used in:
- ace/OS.h
-
- Notes:
- #if defined (ACE_HAS_POLL)
- #include /**/ <poll.h>
- #endif /* ACE_HAS_POLL */
-
-ACE_USE_POLL_IMPLEMENTATION:
-------------------
-
- Used in:
- ace/OS.h
-
- Notes:
- Use the poll() event demultiplexor rather than select().
-
- HPUX:
- set it.
-
-
-ACE_HAS_SVR4_SIGNAL_T:
-----------------------
-
- Used in:
- ace/OS.h
-
- Notes:
- #if defined (ACE_HAS_SVR4_SIGNAL_T)
- typedef void (*SignalHandler)(int);
- typedef void (*SignalHandlerV)(void);
- #elif defined (ACE_HAS_SIGNALHANDLERV_INT_ARG)
- typedef void (*SignalHandler)(int);
- typedef void (*SignalHandlerV)(int);
- #else
- #define SignalHandler SIG_PF
- typedef void (*SignalHandlerV)(...);
- #endif /* ACE_HAS_SVR4_SIGNAL_T */
-
- HPUX:
- set it.
-
-
-ACE_HAS_SVR4_TLI:
------------------
-
- Used in:
- libsrc/IPC_SAP/TLI_SAP/TLI.C
- libsrc/IPC_SAP/TLI_SAP/TLI.h
- libsrc/IPC_SAP/TLI_SAP/TLI_Stream.C
-
- Notes:
- TLI is the transport layer calls as in: t_bind(), t_open(), t_unbind(),
- t_optmgmt(), ... in SunOS and Solaris.
-
- HPUX:
- don't set.
- Not supported.
-
-
-ACE_HAS_SYS_FILIO_H:
---------------------
-
- Used in:
- ace/OS.h
-
- Notes:
- if not defined, includes <sys/filio.h>.
- didn't find any reference to anything in this file in the ACE code.
-
- Solaris:
- filio.h defines FIOCLEX, FIOASYNC, ... as _IO('f', 1), ..
- for FIOLFS,.. solaris has this to say:
- /*
- * ioctl's for Online: DiskSuite.
- * WARNING - the support for these ioctls may be withdrawn
- * in the future OS releases.
- */
-
- HPUX:
- <sys/ioctl.h> defines FIOASYNC and some other ones,
- <sgtty.h> defines some like FIOCLEX.
- some are never defined.
- use #ifdef HP-UX to modify sysincludes.h
-
-
-ACE_HAS_SYS_SIGLIST:
---------------------
-
- Used in:
- ace/OS.h
- libsrc/Log_Msg/Log_Msg.C
-
- Notes:
- if not defined, does a:
- extern const char **_sys_siglist;
-
- Solaris:
- This is an array holding signal descriptions.
-
- HPUX:
- don't set.
- Some additional work is required. In libsrc/Log_Msg/Log_Msg.C,
- sys_siglist is used regardless of ACE_HAS_SYS_SIGLIST.
- have to add #ifdefs to remove them.
-
-
-ACE_HAS_TEMPLATE_TYPEDEFS:
---------------------------
-
- Used in:
- libsrc/ASX/*.[Chi]
-
- Notes:
- cfront-based C++ compilers don't implement templates that support
- classes with typedefs of other types as formal arguments. This
- typedef uses the C++ preprocessor to work around this problem.
-
-ACE_HAS_THREADS:
-----------------
-
- Used in:
- libsrc/Service_Configurator/Svc_Conf.y.C
- libsrc/Service_Configurator/Thread_Spawn.i
- libsrc/Threads/Synch.C
- libsrc/Threads/Synch.i
- libsrc/Threads/Thr_Manager.i
- libsrc/ASX/STREAM.C
- libsrc/ASX/Queue.C
- libsrc/ASX/Module.C
- libsrc/ASX/Stream_Modules.C
- libsrc/ASX/Multiplexor.C
- libsrc/ASX/Message_List.C
- include/Message_List.h
- include/Module.h
- include/Multiplexor.h
- include/Queue.h
- include/STREAM.h
- include/Stream_Modules.h
- include/Service_Types.h
- include/Thread_Spawn.h
- include/Synch.h
- include/Thr_Manager.h
-
- Notes:
- We use Message_List.h even in a non-threaded environment.
- our XOMessageList.h does this by #ifdefs around Threaded things.
-
- HPUX:
- not until 10.0.
-
-
-ACE_HAS_THREAD_T:
------------------
-
- Used in:
- ace/OS.h
-
- Notes:
- #if !defined (ACE_HAS_THREAD_T)
- typedef int thread_t;
- #endif /* !ACE_HAS_THREAD_T */
-
- HPUX:
- don't set.
-
-
-ACE_HAS_TIMOD_H:
-----------------
-
- Used in:
- ace/OS.h
-
- Notes:
- if defined, include <sys/timod.h>
-
- Solaris:
- timod is a STREAMS module for use with the Transport Inter-
- face (TI) functions of the Network Services library. The
- timod module converts a set of ioctl(2) calls into STREAMS
- messages that may be consumed by a transport protocol pro-
- vider that supports the Transport Interface. This allows a
- user to initiate certain TI functions as atomic operations.
-
- HPUX:
- don't set.
-
-
-ACE_HAS_TIUSER_H:
------------------
-
- Used in:
- ace/OS.h
-
- Notes:
- if set, includes <tiuser.h>
-
- Solaris:
- in conjunction with t_bind, t_accept, etc.. transport layer.
-
- HPUX:
- don't set.
-
-
-ACE_USE_POLL_IMPLEMENTATION:
-----------------------------
-
- Used in:
- libsrc/Reactor/Reactor.i
- include/Event_Handler.h
- ace/OS.h
- include/Reactor.h
-
- Notes:
- in the reactor, use poll instead of select. In general,
- good thing to have set.
diff --git a/ace/RMCast/Makefile b/ace/RMCast/Makefile
deleted file mode 100644
index 0007cb90de5..00000000000
--- a/ace/RMCast/Makefile
+++ /dev/null
@@ -1,1990 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-#----------------------------------------------------------------------------
-
-MAKEFILE = Makefile
-LIB = libACE_RMCast.a
-SHLIB = libACE_RMCast.$(SOEXT)
-
-FILES= \
- RMCast \
- RMCast_Ack_Worker \
- RMCast_Fork \
- RMCast_Fragment \
- RMCast_IO_UDP \
- RMCast_Membership \
- RMCast_Module \
- RMCast_Module_Factory \
- RMCast_Partial_Message \
- RMCast_Proxy \
- RMCast_Reassembly \
- RMCast_Receiver_Module \
- RMCast_Reliable_Factory \
- RMCast_Reordering \
- RMCast_Resend_Handler \
- RMCast_Resend_Worker \
- RMCast_Retransmission \
- RMCast_Sequencer \
- RMCast_Singleton_Factory \
- RMCast_UDP_Event_Handler \
- RMCast_UDP_Proxy \
- RMCast_UDP_Reliable_Receiver \
- RMCast_UDP_Reliable_Sender
-
-LIBS=$(ACELIB)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-
-LSRC = $(addsuffix .cpp,$(FILES))
-
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-ifeq ($(shared_libs),1)
-ifneq ($(SHLIB),)
-CPPFLAGS += -DACE_RMCAST_BUILD_DLL
-endif
-endif
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/RMCast.o .obj/RMCast.so .shobj/RMCast.o .shobj/RMCast.so: RMCast.cpp RMCast.h $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i
-
-.obj/RMCast_Ack_Worker.o .obj/RMCast_Ack_Worker.so .shobj/RMCast_Ack_Worker.o .shobj/RMCast_Ack_Worker.so: RMCast_Ack_Worker.cpp RMCast_Ack_Worker.h \
- $(ACE_ROOT)/ace/pre.h RMCast_Retransmission.h \
- RMCast_Module.h RMCast.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module.i RMCast_Copy_On_Write.h \
- RMCast_Worker.h RMCast_Worker.i RMCast_Worker.cpp \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h RMCast_Copy_On_Write.i \
- RMCast_Copy_On_Write.cpp $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i RMCast_Retransmission.i \
- RMCast_Ack_Worker.i $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp
-
-.obj/RMCast_Fork.o .obj/RMCast_Fork.so .shobj/RMCast_Fork.o .shobj/RMCast_Fork.so: RMCast_Fork.cpp RMCast_Fork.h \
- $(ACE_ROOT)/ace/pre.h RMCast_Module.h RMCast.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module.i RMCast_Fork.i
-
-.obj/RMCast_Fragment.o .obj/RMCast_Fragment.so .shobj/RMCast_Fragment.o .shobj/RMCast_Fragment.so: RMCast_Fragment.cpp RMCast_Fragment.h \
- $(ACE_ROOT)/ace/pre.h RMCast_Module.h RMCast.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module.i \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h RMCast_Fragment.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h
-
-.obj/RMCast_IO_UDP.o .obj/RMCast_IO_UDP.so .shobj/RMCast_IO_UDP.o .shobj/RMCast_IO_UDP.so: RMCast_IO_UDP.cpp RMCast_IO_UDP.h \
- $(ACE_ROOT)/ace/pre.h RMCast_Module.h RMCast.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.h \
- $(ACE_ROOT)/ace/SOCK.h $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/XML_Svc_Conf.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h RMCast_IO_UDP.i \
- RMCast_UDP_Proxy.h RMCast_Proxy.h RMCast_Proxy.i RMCast_UDP_Proxy.i \
- RMCast_Module_Factory.h RMCast_Module_Factory.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp
-
-.obj/RMCast_Membership.o .obj/RMCast_Membership.so .shobj/RMCast_Membership.o .shobj/RMCast_Membership.so: RMCast_Membership.cpp RMCast_Membership.h \
- $(ACE_ROOT)/ace/pre.h RMCast_Module.h RMCast.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp RMCast_Membership.i \
- RMCast_Proxy.h RMCast_Proxy.i
-
-.obj/RMCast_Module.o .obj/RMCast_Module.so .shobj/RMCast_Module.o .shobj/RMCast_Module.so: RMCast_Module.cpp RMCast_Module.h \
- $(ACE_ROOT)/ace/pre.h RMCast.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module.i
-
-.obj/RMCast_Module_Factory.o .obj/RMCast_Module_Factory.so .shobj/RMCast_Module_Factory.o .shobj/RMCast_Module_Factory.so: RMCast_Module_Factory.cpp \
- RMCast_Module_Factory.h $(ACE_ROOT)/ace/pre.h RMCast.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module_Factory.i
-
-.obj/RMCast_Partial_Message.o .obj/RMCast_Partial_Message.so .shobj/RMCast_Partial_Message.o .shobj/RMCast_Partial_Message.so: RMCast_Partial_Message.cpp \
- RMCast_Partial_Message.h $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/DLL.h \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Thread_Exit.h \
- $(ACE_ROOT)/ace/Thread_Control.h \
- $(ACE_ROOT)/ace/Thread_Control.inl \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Framework_Component.h \
- $(ACE_ROOT)/ace/Framework_Component.inl \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Framework_Component_T.h \
- $(ACE_ROOT)/ace/Framework_Component_T.inl \
- $(ACE_ROOT)/ace/Framework_Component_T.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Notification_Strategy.h \
- $(ACE_ROOT)/ace/Notification_Strategy.inl \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.cpp RMCast_Partial_Message.i
-
-.obj/RMCast_Proxy.o .obj/RMCast_Proxy.so .shobj/RMCast_Proxy.o .shobj/RMCast_Proxy.so: RMCast_Proxy.cpp RMCast_Proxy.h \
- $(ACE_ROOT)/ace/pre.h RMCast_Module.h RMCast.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module.i RMCast_Proxy.i
-
-.obj/RMCast_Reassembly.o .obj/RMCast_Reassembly.so .shobj/RMCast_Reassembly.o .shobj/RMCast_Reassembly.so: RMCast_Reassembly.cpp RMCast_Reassembly.h \
- $(ACE_ROOT)/ace/pre.h RMCast_Module.h RMCast.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/XML_Svc_Conf.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h RMCast_Reassembly.i \
- RMCast_Partial_Message.h $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/DLL.h \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Exit.h \
- $(ACE_ROOT)/ace/Thread_Control.h \
- $(ACE_ROOT)/ace/Thread_Control.inl \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Framework_Component.h \
- $(ACE_ROOT)/ace/Framework_Component.inl \
- $(ACE_ROOT)/ace/Framework_Component_T.h \
- $(ACE_ROOT)/ace/Framework_Component_T.inl \
- $(ACE_ROOT)/ace/Framework_Component_T.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Notification_Strategy.h \
- $(ACE_ROOT)/ace/Notification_Strategy.inl \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.cpp RMCast_Partial_Message.i
-
-.obj/RMCast_Receiver_Module.o .obj/RMCast_Receiver_Module.so .shobj/RMCast_Receiver_Module.o .shobj/RMCast_Receiver_Module.so: RMCast_Receiver_Module.cpp \
- RMCast_Receiver_Module.h $(ACE_ROOT)/ace/pre.h \
- RMCast_Module.h RMCast.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module.i RMCast_Receiver_Module.i \
- RMCast_Proxy.h RMCast_Proxy.i $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/RMCast_Reliable_Factory.o .obj/RMCast_Reliable_Factory.so .shobj/RMCast_Reliable_Factory.o .shobj/RMCast_Reliable_Factory.so: RMCast_Reliable_Factory.cpp \
- RMCast_Reliable_Factory.h $(ACE_ROOT)/ace/pre.h \
- RMCast_Module_Factory.h RMCast.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module_Factory.i \
- RMCast_Reliable_Factory.i RMCast_Receiver_Module.h RMCast_Module.h \
- RMCast_Module.i RMCast_Receiver_Module.i RMCast_Reassembly.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/XML_Svc_Conf.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h RMCast_Reassembly.i \
- RMCast_Reordering.h $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp RMCast_Reordering.i
-
-.obj/RMCast_Reordering.o .obj/RMCast_Reordering.so .shobj/RMCast_Reordering.o .shobj/RMCast_Reordering.so: RMCast_Reordering.cpp RMCast_Reordering.h \
- $(ACE_ROOT)/ace/pre.h RMCast_Module.h RMCast.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module.i \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i RMCast_Reordering.i \
- RMCast_Proxy.h RMCast_Proxy.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp
-
-.obj/RMCast_Resend_Handler.o .obj/RMCast_Resend_Handler.so .shobj/RMCast_Resend_Handler.o .shobj/RMCast_Resend_Handler.so: RMCast_Resend_Handler.cpp \
- RMCast_Resend_Handler.h $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Event_Handler.i RMCast_Resend_Handler.i \
- RMCast_Retransmission.h RMCast_Module.h RMCast.h RMCast.i \
- RMCast_Module.i RMCast_Copy_On_Write.h RMCast_Worker.h RMCast_Worker.i \
- RMCast_Worker.cpp $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h RMCast_Copy_On_Write.i \
- RMCast_Copy_On_Write.cpp $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i RMCast_Retransmission.i
-
-.obj/RMCast_Resend_Worker.o .obj/RMCast_Resend_Worker.so .shobj/RMCast_Resend_Worker.o .shobj/RMCast_Resend_Worker.so: RMCast_Resend_Worker.cpp RMCast_Resend_Worker.h \
- $(ACE_ROOT)/ace/pre.h RMCast.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Copy_On_Write.h RMCast_Worker.h \
- RMCast_Worker.i RMCast_Worker.cpp $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h RMCast_Copy_On_Write.i \
- RMCast_Copy_On_Write.cpp RMCast_Resend_Worker.i RMCast_Module.h \
- RMCast_Module.i
-
-.obj/RMCast_Retransmission.o .obj/RMCast_Retransmission.so .shobj/RMCast_Retransmission.o .shobj/RMCast_Retransmission.so: RMCast_Retransmission.cpp \
- RMCast_Retransmission.h $(ACE_ROOT)/ace/pre.h \
- RMCast_Module.h RMCast.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module.i RMCast_Copy_On_Write.h \
- RMCast_Worker.h RMCast_Worker.i RMCast_Worker.cpp \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h RMCast_Copy_On_Write.i \
- RMCast_Copy_On_Write.cpp $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i RMCast_Retransmission.i \
- RMCast_Proxy.h RMCast_Proxy.i RMCast_Ack_Worker.h RMCast_Ack_Worker.i \
- RMCast_Resend_Worker.h RMCast_Resend_Worker.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp
-
-.obj/RMCast_Sequencer.o .obj/RMCast_Sequencer.so .shobj/RMCast_Sequencer.o .shobj/RMCast_Sequencer.so: RMCast_Sequencer.cpp RMCast_Sequencer.h \
- $(ACE_ROOT)/ace/pre.h RMCast_Module.h RMCast.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module.i \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h RMCast_Sequencer.i
-
-.obj/RMCast_Singleton_Factory.o .obj/RMCast_Singleton_Factory.so .shobj/RMCast_Singleton_Factory.o .shobj/RMCast_Singleton_Factory.so: RMCast_Singleton_Factory.cpp \
- RMCast_Singleton_Factory.h $(ACE_ROOT)/ace/pre.h \
- RMCast_Module_Factory.h RMCast.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module_Factory.i \
- RMCast_Singleton_Factory.i
-
-.obj/RMCast_UDP_Event_Handler.o .obj/RMCast_UDP_Event_Handler.so .shobj/RMCast_UDP_Event_Handler.o .shobj/RMCast_UDP_Event_Handler.so: RMCast_UDP_Event_Handler.cpp \
- RMCast_UDP_Event_Handler.h $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Event_Handler.i RMCast_UDP_Event_Handler.i \
- RMCast_IO_UDP.h RMCast_Module.h RMCast.h RMCast.i RMCast_Module.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.h \
- $(ACE_ROOT)/ace/SOCK.h $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/XML_Svc_Conf.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h RMCast_IO_UDP.i \
- RMCast_UDP_Proxy.h RMCast_Proxy.h RMCast_Proxy.i RMCast_UDP_Proxy.i \
- RMCast_Module_Factory.h RMCast_Module_Factory.i
-
-.obj/RMCast_UDP_Proxy.o .obj/RMCast_UDP_Proxy.so .shobj/RMCast_UDP_Proxy.o .shobj/RMCast_UDP_Proxy.so: RMCast_UDP_Proxy.cpp RMCast_UDP_Proxy.h \
- $(ACE_ROOT)/ace/pre.h RMCast_Proxy.h RMCast_Module.h \
- RMCast.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module.i RMCast_Proxy.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/Addr.h $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i RMCast_UDP_Proxy.i \
- RMCast_IO_UDP.h $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/XML_Svc_Conf.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h RMCast_IO_UDP.i \
- RMCast_Module_Factory.h RMCast_Module_Factory.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp
-
-.obj/RMCast_UDP_Reliable_Receiver.o .obj/RMCast_UDP_Reliable_Receiver.so .shobj/RMCast_UDP_Reliable_Receiver.o .shobj/RMCast_UDP_Reliable_Receiver.so: RMCast_UDP_Reliable_Receiver.cpp \
- RMCast_UDP_Reliable_Receiver.h $(ACE_ROOT)/ace/pre.h \
- RMCast_Singleton_Factory.h RMCast_Module_Factory.h RMCast.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module_Factory.i \
- RMCast_Singleton_Factory.i RMCast_Reliable_Factory.h \
- RMCast_Reliable_Factory.i RMCast_IO_UDP.h RMCast_Module.h \
- RMCast_Module.i $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.h \
- $(ACE_ROOT)/ace/SOCK.h $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/XML_Svc_Conf.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h RMCast_IO_UDP.i \
- RMCast_UDP_Proxy.h RMCast_Proxy.h RMCast_Proxy.i RMCast_UDP_Proxy.i \
- RMCast_UDP_Reliable_Receiver.i RMCast_UDP_Event_Handler.h \
- RMCast_UDP_Event_Handler.i
-
-.obj/RMCast_UDP_Reliable_Sender.o .obj/RMCast_UDP_Reliable_Sender.so .shobj/RMCast_UDP_Reliable_Sender.o .shobj/RMCast_UDP_Reliable_Sender.so: RMCast_UDP_Reliable_Sender.cpp \
- RMCast_UDP_Reliable_Sender.h $(ACE_ROOT)/ace/pre.h \
- RMCast_Singleton_Factory.h RMCast_Module_Factory.h RMCast.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- RMCast_Export.h RMCast.i RMCast_Module_Factory.i \
- RMCast_Singleton_Factory.i RMCast_IO_UDP.h RMCast_Module.h \
- RMCast_Module.i $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.h \
- $(ACE_ROOT)/ace/SOCK.h $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/XML_Svc_Conf.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h RMCast_IO_UDP.i \
- RMCast_UDP_Proxy.h RMCast_Proxy.h RMCast_Proxy.i RMCast_UDP_Proxy.i \
- RMCast_Sequencer.h RMCast_Sequencer.i RMCast_Retransmission.h \
- RMCast_Copy_On_Write.h RMCast_Worker.h RMCast_Worker.i \
- RMCast_Worker.cpp RMCast_Copy_On_Write.i RMCast_Copy_On_Write.cpp \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp RMCast_Retransmission.i \
- RMCast_Membership.h $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp RMCast_Membership.i \
- RMCast_Fragment.h RMCast_Fragment.i RMCast_Fork.h RMCast_Fork.i \
- RMCast_UDP_Reliable_Sender.i RMCast_UDP_Event_Handler.h \
- RMCast_UDP_Event_Handler.i RMCast_Resend_Handler.h \
- RMCast_Resend_Handler.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ace/RMCast/Makefile.am b/ace/RMCast/Makefile.am
deleted file mode 100644
index 5a183b2e90b..00000000000
--- a/ace/RMCast/Makefile.am
+++ /dev/null
@@ -1,105 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile.am for ACE_RMCast library
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-lib_LTLIBRARIES = libACE_RMCast.la
-
-libACE_RMCast_la_SOURCES = \
- RMCast.cpp \
- RMCast_Ack_Worker.cpp \
- RMCast_Fork.cpp \
- RMCast_Fragment.cpp \
- RMCast_IO_UDP.cpp \
- RMCast_Membership.cpp \
- RMCast_Module.cpp \
- RMCast_Module_Factory.cpp \
- RMCast_Partial_Message.cpp \
- RMCast_Proxy.cpp \
- RMCast_Reassembly.cpp \
- RMCast_Receiver_Module.cpp \
- RMCast_Reliable_Factory.cpp \
- RMCast_Reordering.cpp \
- RMCast_Resend_Handler.cpp \
- RMCast_Resend_Worker.cpp \
- RMCast_Retransmission.cpp \
- RMCast_Sequencer.cpp \
- RMCast_Singleton_Factory.cpp \
- RMCast_UDP_Event_Handler.cpp \
- RMCast_UDP_Proxy.cpp \
- RMCast_UDP_Reliable_Receiver.cpp \
- RMCast_UDP_Reliable_Sender.cpp
-
-libACE_RMCast_la_LIBADD = $(top_builddir)/ace/libACE.la
-
-## These are template source files.
-TEMPLATE_FILES = \
- RMCast_Copy_On_Write.cpp \
- RMCast_Worker.cpp
-
-HEADER_FILES = \
- RMCast.h \
- RMCast_Ack_Worker.h \
- RMCast_Copy_On_Write.h \
- RMCast_Export.h \
- RMCast_Fork.h \
- RMCast_Fragment.h \
- RMCast_IO_UDP.h \
- RMCast_Membership.h \
- RMCast_Module.h \
- RMCast_Module_Factory.h \
- RMCast_Partial_Message.h \
- RMCast_Proxy.h \
- RMCast_Reassembly.h \
- RMCast_Receiver_Module.h \
- RMCast_Reliable_Factory.h \
- RMCast_Reordering.h \
- RMCast_Resend_Handler.h \
- RMCast_Resend_Worker.h \
- RMCast_Retransmission.h \
- RMCast_Sequencer.h \
- RMCast_Singleton_Factory.h \
- RMCast_UDP_Event_Handler.h \
- RMCast_UDP_Proxy.h \
- RMCast_UDP_Reliable_Receiver.h \
- RMCast_UDP_Reliable_Sender.h \
- RMCast_Worker.h
-
-INLINE_FILES = \
- RMCast.i \
- RMCast_Ack_Worker.i \
- RMCast_Copy_On_Write.i \
- RMCast_Fork.i \
- RMCast_Fragment.i \
- RMCast_IO_UDP.i \
- RMCast_Membership.i \
- RMCast_Module.i \
- RMCast_Module_Factory.i \
- RMCast_Partial_Message.i \
- RMCast_Proxy.i \
- RMCast_Reassembly.i \
- RMCast_Receiver_Module.i \
- RMCast_Reliable_Factory.i \
- RMCast_Reordering.i \
- RMCast_Resend_Handler.i \
- RMCast_Resend_Worker.i \
- RMCast_Retransmission.i \
- RMCast_Sequencer.i \
- RMCast_Singleton_Factory.i \
- RMCast_UDP_Event_Handler.i \
- RMCast_UDP_Proxy.i \
- RMCast_UDP_Reliable_Receiver.i \
- RMCast_UDP_Reliable_Sender.i \
- RMCast_Worker.i
-
-pkginclude_HEADERS = \
- $(HEADER_FILES) \
- $(INLINE_FILES) \
- $(TEMPLATE_FILES)
diff --git a/ace/RMCast/Makefile.bor b/ace/RMCast/Makefile.bor
deleted file mode 100644
index f0bad3ca7f2..00000000000
--- a/ace/RMCast/Makefile.bor
+++ /dev/null
@@ -1,44 +0,0 @@
-
-#
-# Makefile for building the ACE RMCast library with Borland C++Builder
-#
-
-NAME = ACE_RMCast
-
-OBJFILES = \
- $(OBJDIR)\RMCast.obj \
- $(OBJDIR)\RMCast_Ack_Worker.obj \
- $(OBJDIR)\RMCast_Fork.obj \
- $(OBJDIR)\RMCast_Fragment.obj \
- $(OBJDIR)\RMCast_IO_UDP.obj \
- $(OBJDIR)\RMCast_Membership.obj \
- $(OBJDIR)\RMCast_Module.obj \
- $(OBJDIR)\RMCast_Module_Factory.obj \
- $(OBJDIR)\RMCast_Fragment.obj \
- $(OBJDIR)\RMCast_Reassembly.obj \
- $(OBJDIR)\RMCast_Partial_Message.obj \
- $(OBJDIR)\RMCast_Proxy.obj \
- $(OBJDIR)\RMCast_Receiver_Module.obj \
- $(OBJDIR)\RMCast_Reliable_Factory.obj \
- $(OBJDIR)\RMCast_Reordering.obj \
- $(OBJDIR)\RMCast_Resend_Handler.obj \
- $(OBJDIR)\RMCast_Resend_Worker.obj \
- $(OBJDIR)\RMCast_Retransmission.obj \
- $(OBJDIR)\RMCast_Sequencer.obj \
- $(OBJDIR)\RMCast_Singleton_Factory.obj \
- $(OBJDIR)\RMCast_UDP_Event_Handler.obj \
- $(OBJDIR)\RMCast_UDP_Proxy.obj \
- $(OBJDIR)\RMCast_UDP_Reliable_Receiver.obj \
- $(OBJDIR)\RMCast_UDP_Reliable_Sender.obj
-
-
-CFLAGS = $(ACE_CFLAGS) $(ACE_RMCAST_CFLAGS) -DACE_RMCAST_BUILD_DLL
-
-LIBFILES = $(ACE_LIB)
-
-CPPDIR = .
-
-INCDIR_NAME = ace\RMCast
-INCLUDES = *.h *.i RMCast_Copy_On_Write.cpp RMCast_Worker.cpp
-
-!include <$(ACE_ROOT)\include\makeinclude\build_core_library.bor>
diff --git a/ace/RMCast/README b/ace/RMCast/README
deleted file mode 100644
index 2dd0c5d9cfc..00000000000
--- a/ace/RMCast/README
+++ /dev/null
@@ -1,57 +0,0 @@
-# $Id$
-
- This directory will contain a simple, small-scale reliable
-multicast framework for ACE. The framework is based on the ASX
-components of the ACE library: the protocol is implemented as a stack
-of interchangeable "modules", each one in charge of a very small task.
-For example, one module implements fragmentation and reassembly, other
-modules implement retransmission, send ACK and NAK messages, and
-maintain receiver membership.
-
- The modules are replaced to achieve different levels of
-reliability. For example, the retransmission module can be either the
-"Best_Effort", "Semi_Reliable" or "Reliable" implementation. In the
-first case no retransmissions are performed, but lost messages are
-detected and reported to the receiver. The "Semi_Reliable" case
-messages are held for a pre-specified amount of time, and
-re-transmited if requested, but it is possible to loose some messages
-if multiple re-transmissions fail. As in the "Best_Effort" case the
-lost messages are detected and flagged to the application. Finally
-in the "Reliable" mode the senders are flowed controlled until enough
-messages are successfully transmitted.
-
- In general the stack looks like this:
-
-
-SENDER:
-
-----------------------------------------------------------------
-Buffering : Save lost messages
-Retransmission : Retransmit
-----------------------------------------------------------------
-Fragmentation : Fragment messages in smaller chunks
-Reassembly : and ensure that the IOVMAX limit is not
- : reached
-----------------------------------------------------------------
-Tranport : Encapsulate the specific transport media
- : such as TCP/IP, ATM, or shared memory
- : Demuxes incoming data to the right chain
- : Change control messages and data messages
- : to the right dynamic types.
-----------------------------------------------------------------
-
-RECEIVER:
-
-----------------------------------------------------------------
-Lost detection : Detect lost messages and send control
- : messages back
-----------------------------------------------------------------
-Reassembly : Reassemble messages, fragment control
-Fragmentation : data
-----------------------------------------------------------------
-Transport : Group membership, ACT reception,
- : handle keep-alive messages...
-----------------------------------------------------------------
-
-
-@@ TODO: Piggybacking...
diff --git a/ace/RMCast/RMCast.cpp b/ace/RMCast/RMCast.cpp
deleted file mode 100644
index 92ea637e481..00000000000
--- a/ace/RMCast/RMCast.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// $Id$
-
-#include "RMCast.h"
-
-#if !defined (__ACE_INLINE__)
-#include "RMCast.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast, "$Id$")
diff --git a/ace/RMCast/RMCast.dsp b/ace/RMCast/RMCast.dsp
deleted file mode 100644
index 48e992ca997..00000000000
--- a/ace/RMCast/RMCast.dsp
+++ /dev/null
@@ -1,389 +0,0 @@
-# Microsoft Developer Studio Project File - Name="RMCast" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=RMCast - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "RMCast.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "RMCast.mak" CFG="RMCast - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "RMCast - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "RMCast - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "RMCast - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "DLL\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "RMCAST_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACE_RMCAST_BUILD_DLL" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 ace.lib /nologo /dll /machine:I386 /out:"..\..\bin\ACE_RMCast.dll" /libpath:".."
-
-!ELSEIF "$(CFG)" == "RMCast - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "DLL\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "RMCAST_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\.." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACE_RMCAST_BUILD_DLL" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /dll /debug /machine:I386 /out:"..\..\bin\ACE_RMCastd.dll" /pdbtype:sept /libpath:".."
-
-!ENDIF
-
-# Begin Target
-
-# Name "RMCast - Win32 Release"
-# Name "RMCast - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\RMCast.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Ack_Worker.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Fork.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Fragment.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_IO_UDP.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Membership.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Module.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Module_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Partial_Message.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Proxy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Reassembly.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Receiver_Module.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Reliable_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Reordering.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Resend_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Resend_Worker.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Retransmission.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Sequencer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Singleton_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_UDP_Event_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_UDP_Proxy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_UDP_Reliable_Receiver.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_UDP_Reliable_Sender.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\RMCast.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Ack_Worker.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Fork.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Fragment.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_IO_UDP.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Membership.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Module.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Module_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Partial_Message.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Proxy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Reassembly.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Receiver_Module.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Reliable_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Reordering.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Resend_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Resend_Worker.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Retransmission.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Sequencer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Singleton_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_UDP_Event_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_UDP_Proxy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_UDP_Reliable_Receiver.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_UDP_Reliable_Sender.h
-# End Source File
-# End Group
-# Begin Group "Inline Files"
-
-# PROP Default_Filter "i"
-# Begin Source File
-
-SOURCE=.\RMCast.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Ack_Worker.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Fork.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Fragment.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_IO_UDP.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Membership.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Module.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Module_Factory.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Partial_Message.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Proxy.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Reassembly.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Receiver_Module.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Reliable_Factory.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Reordering.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Resend_Handler.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Resend_Worker.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Retransmission.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Sequencer.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_Singleton_Factory.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_UDP_Event_Handler.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_UDP_Proxy.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_UDP_Reliable_Receiver.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RMCast_UDP_Reliable_Sender.i
-# End Source File
-# End Group
-# Begin Group "Template Files"
-
-# PROP Default_Filter ""
-# End Group
-# End Target
-# End Project
diff --git a/ace/RMCast/RMCast.dsw b/ace/RMCast/RMCast.dsw
deleted file mode 100644
index a322ca31785..00000000000
--- a/ace/RMCast/RMCast.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "RMCast"=.\RMCast.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/ace/RMCast/RMCast.h b/ace/RMCast/RMCast.h
deleted file mode 100644
index 22afdebe3ce..00000000000
--- a/ace/RMCast/RMCast.h
+++ /dev/null
@@ -1,261 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// RMCast.h
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_H
-#define ACE_RMCAST_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-#include "RMCast_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_Message_Block;
-class ACE_RMCast_Proxy;
-
-// LynxOS 3.X defines the following macro
-#if defined(MT_DATA)
-#undef MT_DATA
-#endif /* MT_DATA */
-
-//! The RMCast namespace
-/*!
- Several simple data structures and enums are shared by all the
- RMCast components, this is the place where we put them by default.
-*/
-class ACE_RMCast_Export ACE_RMCast
-{
-public:
-
- //! The message types
- /*!
- Each message includes a type field in the header used by the
- receiver to correctly parse it.
- Classes with the same name as the message type describe the actual
- format of the message.
- */
- enum Message_Type
- {
- // Sender initiated
- MT_POLL,
- MT_ACK_JOIN,
- MT_ACK_LEAVE,
- MT_DATA,
- // Receiver initiated
- MT_JOIN,
- MT_LEAVE,
- MT_ACK,
- MT_LAST
- };
-
- //! Simle enum used to describe the state transitions for senders
- /*!
- State transition (and actions) for the senders.
- This configuration is pesimistic, any invalid message is cause
- enough to reclaim all the resources. This partially addresses
- situations where either accidentally or intentionally a sender is
- multicasting packets to the wrong group.
-
- <CODE>
- NON_EXISTENT JOINED<BR>
- ------------------------------------------<BR>
- POLL NON_EXISTENT NON_EXISTENT<BR>
- Destroy Destroy<BR>
- <BR>
- ACK NON_EXISTENT JOINED<BR>
- Noop Process/Ack<BR>
- <BR>
- JOIN JOINED NON_EXISTENT<BR>
- Send/Join_Ack Send/Join_Ack<BR>
- <BR>
- LEAVE NON_EXISTENT NON_EXISTENT<BR>
- Send/Leave_Ack Send/Leave_Ack<BR>
- Destroy<BR>
- <BR>
- ACK_JOIN NON_EXISTENT NON_EXISTENT<BR>
- Noop Destroy<BR>
- <BR>
- ACK_LEAVE NON_EXISTENT NON_EXISTENT<BR>
- Noop Destroy<BR>
- <BR>
- SEND_DATA NON_EXISTENT NON_EXISTENT<BR>
- Noop Destroy<BR>
- </CODE>
- */
- enum Sender_State
- {
- SS_NON_EXISTENT,
- SS_JOINED
- };
-
-
- // These structures define the basic layout of the messages.
-
- //! This is the main message sent by senders
- /*!
- <CODE>
- +---------+----------------------+<BR>
- | 8 bits | DATA |<BR>
- +---------+----------------------+<BR>
- | 32 bits | sequence_number |<BR>
- +---------+----------------------+<BR>
- | 32 bits | message_size |<BR>
- +---------+----------------------+<BR>
- | 32 bits | fragment_offset |<BR>
- +---------+----------------------+<BR>
- ? ? ? ? ? | 32 bits | payload_size |<BR>
- ? ? ? ? ? +---------+----------------------+<BR>
- | | payload |<BR>
- +---------+----------------------+<BR>
- </CODE>
- */
- struct Data
- {
- // Source ID is implicit in recvfrom()...
- ACE_UINT32 sequence_number;
- ACE_UINT32 total_size;
- ACE_UINT32 fragment_offset;
-
- // @@ TODO: we may want to add optional fields, such as:
- // - Polling clients for their status
- // - Sending the range of messages in the queue
- // - If we are using authentic group communication we may
- // piggyback the ACK / NAK messages
-
- ACE_Message_Block *payload;
-
- //! Pass the proxy source between layers
- ACE_RMCast_Proxy *source;
- };
-
- /*!
- <CODE>
- +---------+----------------------+<BR>
- | 8 bits | MT_POLL |<BR>
- +---------+----------------------+<BR>
- </CODE>
- */
- struct Poll
- {
- //! Pass the proxy source between layers
- ACE_RMCast_Proxy *source;
- };
-
- //! Receivers accept new members using this message
- /*!
- <CODE>
- +---------+----------------------+<BR>
- | 8 bits | MT_ACK_JOIN |<BR>
- +---------+----------------------+<BR>
- | 32 bits | next_sequence_number |<BR>
- +---------+----------------------+<BR>
- </CODE>
- */
- struct Ack_Join
- {
- ACE_UINT32 next_sequence_number;
-
- //! Pass the proxy source between layers
- ACE_RMCast_Proxy *source;
- };
-
- //! Senders acknowledge when receivers try to leave
- /*!
- <CODE>
- +---------+----------------------+<BR>
- | 8 bits | ACK_LEAVE |<BR>
- +---------+----------------------+<BR>
- </CODE>
- */
- struct Ack_Leave
- {
- //! Pass the proxy source between layers
- ACE_RMCast_Proxy *source;
- };
-
- //! Provide feedback to the sender about messages received and sent
- //! so far.
- /*!
- *
- * This message is used to provide feedback information to senders.
- * It contains two sequence numbers:
- * - \param next_expected: is the sequence number of the next message
- * expected, i.e. (next_expected-1) is the last message received
- * without any losses before it.
- * - \param highest_received: is the highest sequence number among
- * all the messages successfully received.
- * In other words, all messages lost (if any) are in the range:
- * [next_expected,highest_received)
- *
- * <CODE>
- * +---------+----------------------+<BR>
- * | 8 bits | MT_ACK |<BR>
- * +---------+----------------------+<BR>
- * | 32 bits | next_expected |<BR>
- * +---------+----------------------+<BR>
- * | 32 bits | highest_received |<BR>
- * +---------+----------------------+<BR>
- * </CODE>
- */
- struct Ack
- {
- //! The last message received without any losses before it.
- ACE_UINT32 next_expected;
-
- //! The last message successfully received
- ACE_UINT32 highest_received;
-
- //! Pass the proxy source between layers
- ACE_RMCast_Proxy *source;
- };
-
- //! Receivers send this message to indicate they want to join
- /*
- <CODE>
- +---------+----------------------+<BR>
- | 8 bits | MT_JOIN |<BR>
- +---------+----------------------+<BR>
- </CODE>
- */
- struct Join
- {
- //! Pass the proxy source between layers
- ACE_RMCast_Proxy *source;
- };
-
- //! Receivers send this message to disconnect gracefully
- /*!
- <CODE>
- +---------+----------------------+<BR>
- | 8 bits | MT_LEAVE |<BR>
- +---------+----------------------+<BR>
- </CODE>
- */
- struct Leave
- {
- //! Pass the proxy source between layers
- ACE_RMCast_Proxy *source;
- };
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_H */
diff --git a/ace/RMCast/RMCast.i b/ace/RMCast/RMCast.i
deleted file mode 100644
index cfa1da318d3..00000000000
--- a/ace/RMCast/RMCast.i
+++ /dev/null
@@ -1 +0,0 @@
-// $Id$
diff --git a/ace/RMCast/RMCast_Ack_Worker.cpp b/ace/RMCast/RMCast_Ack_Worker.cpp
deleted file mode 100644
index d9843ebe93b..00000000000
--- a/ace/RMCast/RMCast_Ack_Worker.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//
-// $Id$
-//
-
-#include "RMCast_Ack_Worker.h"
-#include "ace/Message_Block.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Ack_Worker.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Ack_Worker, "$Id$")
-
-int
-ACE_RMCast_Ack_Worker::work (ACE_UINT32 const & key,
- ACE_RMCast::Data const &item)
-{
- if (key >= this->ack_.next_expected)
- return 0;
- // ACE_DEBUG ((LM_DEBUG,
- // " Retransmission::ack - message %d erased\n",
- // key));
- ACE_Message_Block::release (item.payload);
- return this->messages_->unbind_i (this->ace_mon_, key);
-}
diff --git a/ace/RMCast/RMCast_Ack_Worker.h b/ace/RMCast/RMCast_Ack_Worker.h
deleted file mode 100644
index 565ef7feed8..00000000000
--- a/ace/RMCast/RMCast_Ack_Worker.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_RMCAST_ACK_WORKER_H
-#define ACE_RMCAST_ACK_WORKER_H
-#include "ace/pre.h"
-
-#include "RMCast_Retransmission.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/// Process an Ack message in the ACE_RMCast_Retransmission module
-/**
- * The retransmission module uses internal iterators, thus it needs to
- * create helper Worker classes to process some messages.
- */
-class ACE_RMCast_Ack_Worker
- : public ACE_RMCast_Worker<ACE_UINT32,ACE_RMCast::Data>
-{
-public:
- ACE_RMCast_Ack_Worker (ACE_RMCast::Ack &ack,
- ACE_RMCast_Retransmission::Messages::Write_Guard &g,
- ACE_RMCast_Retransmission::Messages *messages);
-
- virtual int work (ACE_UINT32 const & key,
- ACE_RMCast::Data const &item);
-
-private:
- ACE_RMCast_Ack_Worker (const ACE_RMCast_Ack_Worker&);
- ACE_RMCast_Ack_Worker& operator= (const ACE_RMCast_Ack_Worker&);
-
-private:
- ACE_RMCast::Ack &ack_;
-
- ACE_RMCast_Retransmission::Messages::Write_Guard &ace_mon_;
-
- ACE_RMCast_Retransmission::Messages *messages_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Ack_Worker.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_ACK_WORKER_H */
diff --git a/ace/RMCast/RMCast_Ack_Worker.i b/ace/RMCast/RMCast_Ack_Worker.i
deleted file mode 100644
index 54d94d21167..00000000000
--- a/ace/RMCast/RMCast_Ack_Worker.i
+++ /dev/null
@@ -1,12 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_RMCast_Ack_Worker::
-ACE_RMCast_Ack_Worker (ACE_RMCast::Ack &ack,
- ACE_RMCast_Retransmission::Messages::Write_Guard &g,
- ACE_RMCast_Retransmission::Messages *messages)
- : ack_ (ack)
- , ace_mon_ (g)
- , messages_ (messages)
-{
-}
diff --git a/ace/RMCast/RMCast_Copy_On_Write.cpp b/ace/RMCast/RMCast_Copy_On_Write.cpp
deleted file mode 100644
index 39bf16f88a2..00000000000
--- a/ace/RMCast/RMCast_Copy_On_Write.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-// $Id$
-
-#ifndef ACE_RMCAST_COPY_ON_WRITE_CPP
-#define ACE_RMCAST_COPY_ON_WRITE_CPP
-
-#include "RMCast_Copy_On_Write.h"
-
-#if ! defined (__ACE_INLINE__)
-#include "RMCast_Copy_On_Write.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(RMCast, RMCast_Copy_On_Write, "$Id$")
-
-template<class COLLECTION, class ITERATOR> void
-ACE_RMCast_Copy_On_Write_Collection<COLLECTION,ITERATOR>::_incr_refcnt (void)
-{
- // LOCKING: no locking is required, the caller grabs the mutex.
- this->refcount_++;
-}
-
-template<class COLLECTION, class ITERATOR> void
-ACE_RMCast_Copy_On_Write_Collection<COLLECTION,ITERATOR>::_decr_refcnt (void)
-{
- // LOCKING: no locking is required, the caller grabs the mutex.
- {
- this->refcount_--;
- if (this->refcount_ != 0)
- return;
- }
- //@@ TODO: If this wrapper is going to be completely general some
- // kind of functor has to be provided to remove the elements in the
- // collection, in case the are no self-managed
-
- delete this;
-}
-
-// ****************************************************************
-
-template<class KEY, class ITEM, class COLLECTION, class ITERATOR>
-ACE_RMCast_Copy_On_Write<KEY,ITEM,COLLECTION,ITERATOR>::
- ACE_RMCast_Copy_On_Write (void)
- : ACE_RMCast_Copy_On_Write_Container<COLLECTION,ITERATOR> ()
-{
-}
-
-template<class KEY, class ITEM, class COLLECTION, class ITERATOR>
-ACE_RMCast_Copy_On_Write<KEY,ITEM,COLLECTION,ITERATOR>::
- ~ACE_RMCast_Copy_On_Write (void)
-{
- ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, this->mutex_);
-
- while (this->pending_writes_ != 0)
- this->cond_.wait ();
-
- this->collection_->_decr_refcnt ();
- this->collection_ = 0;
-}
-
-template<class KEY, class ITEM, class COLLECTION, class ITERATOR> int
-ACE_RMCast_Copy_On_Write<KEY,ITEM,COLLECTION,ITERATOR>::
- for_each (ACE_RMCast_Worker<KEY,ITEM> *worker)
-{
- Read_Guard ace_mon (*this);
-
- ITERATOR end = ace_mon.collection->collection.end ();
- for (ITERATOR i = ace_mon.collection->collection.begin (); i != end; ++i)
- {
- int r = worker->work ((*i).key (), (*i).item ());
- if (r == 1)
- return 0; // Abort loop, but no error
- if (r == -1)
- return -1;
- }
- return 0;
-}
-
-template<class KEY, class ITEM, class C, class ITERATOR> KEY
-ACE_RMCast_Copy_On_Write<KEY,ITEM,C,ITERATOR>::first_key (void)
-{
- Read_Guard ace_mon (*this);
- ITERATOR end = ace_mon.collection->collection.end ();
- ITERATOR begin = ace_mon.collection->collection.begin ();
- if (begin == end)
- {
- return KEY ();
- }
- return (*begin).key ();
-}
-
-template<class KEY, class ITEM, class C, class ITERATOR> int
-ACE_RMCast_Copy_On_Write<KEY,ITEM,C,ITERATOR>::empty (void)
-{
- Read_Guard ace_mon (*this);
- ITERATOR end = ace_mon.collection->collection.end ();
- ITERATOR begin = ace_mon.collection->collection.begin ();
-
- return end == begin;
-}
-
-template<class KEY, class ITEM, class C, class I> int
-ACE_RMCast_Copy_On_Write<KEY,ITEM,C,I>::bind (KEY const & k,
- ITEM const & i)
-{
- Write_Guard ace_mon (*this);
-
- return this->bind_i (ace_mon, k, i);
-}
-
-template<class KEY, class ITEM, class C, class I> int
-ACE_RMCast_Copy_On_Write<KEY,ITEM,C,I>::unbind (KEY const & k)
-{
- Write_Guard ace_mon (*this);
-
- return this->unbind_i (ace_mon, k);
-}
-
-template<class KEY, class ITEM, class C, class I> int
-ACE_RMCast_Copy_On_Write<KEY,ITEM,C,I>::bind_i (Write_Guard &ace_mon,
- KEY const & k,
- ITEM const & i)
-{
- return ace_mon.copy->collection.bind (k, i);
-}
-
-template<class KEY, class ITEM, class C, class I> int
-ACE_RMCast_Copy_On_Write<KEY,ITEM,C,I>::unbind_i (Write_Guard &ace_mon,
- KEY const & k)
-{
- return ace_mon.copy->collection.unbind (k);
-}
-
-// ****************************************************************
-
-template<class COLLECTION, class ITERATOR>
-ACE_RMCast_Copy_On_Write_Container<COLLECTION,ITERATOR>::ACE_RMCast_Copy_On_Write_Container (void)
- : pending_writes_ (0)
- , writing_ (0)
- , cond_ (mutex_)
-{
- ACE_NEW (this->collection_, Collection);
-}
-
-// ****************************************************************
-
-template<class COLLECTION, class ITERATOR>
-ACE_RMCast_Copy_On_Write_Write_Guard<COLLECTION,ITERATOR>::
- ACE_RMCast_Copy_On_Write_Write_Guard (Container &container)
- : copy (0)
- , mutex (container.mutex_)
- , cond (container.cond_)
- , pending_writes (container.pending_writes_)
- , writing_flag (container.writing_)
- , collection (container.collection_)
-{
- {
- ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, this->mutex);
-
- this->pending_writes++;
-
- while (this->writing_flag != 0)
- this->cond.wait ();
-
- this->writing_flag = 1;
- }
-
- // Copy outside the mutex, because it may take a long time.
- // Nobody can change it, because it is protected by the
- // writing_flag.
-
- // First initialize it (with the correct reference count
- ACE_NEW (this->copy, Collection);
- // Copy the contents
- this->copy->collection = this->collection->collection;
-}
-
-template<class COLLECTION, class ITERATOR>
-ACE_RMCast_Copy_On_Write_Write_Guard<COLLECTION,ITERATOR>::
- ~ACE_RMCast_Copy_On_Write_Write_Guard (void)
-{
- Collection *tmp = 0;
- {
- ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, this->mutex);
-
- tmp = this->collection;
- this->collection = this->copy;
- this->writing_flag = 0;
- this->pending_writes--;
-
- this->cond.signal ();
- }
- // Delete outside the mutex, because it may take a long time.
- // @@ Is this right? What happens if several readers are still
- // using the old copy?
- tmp->_decr_refcnt ();
-}
-
-// ****************************************************************
-
-#endif /* ACE_RMCAST_COPY_ON_WRITE_CPP */
diff --git a/ace/RMCast/RMCast_Copy_On_Write.h b/ace/RMCast/RMCast_Copy_On_Write.h
deleted file mode 100644
index 99f9c8ce14d..00000000000
--- a/ace/RMCast/RMCast_Copy_On_Write.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_RMCAST_COPY_ON_WRITE_H
-#define ACE_RMCAST_COPY_ON_WRITE_H
-#include "ace/pre.h"
-
-#include "RMCast_Worker.h"
-#include "ace/Synch.h"
-
-//! A wrapper to implement reference counted collections
-template<class COLLECTION, class ITERATOR>
-class ACE_RMCast_Copy_On_Write_Collection
-{
-public:
- //! Constructor
- ACE_RMCast_Copy_On_Write_Collection (void);
-
- //! Increment the reference count
- void _incr_refcnt (void);
-
- //! Decrement the reference count
- void _decr_refcnt (void);
-
- //! The actual collection
- COLLECTION collection;
-
-private:
- //! The reference count
- ACE_UINT32 refcount_;
-};
-
-// ****************************************************************
-
-template<class COLLECTION, class ITERATOR>
-class ACE_RMCast_Copy_On_Write_Read_Guard;
-
-template<class COLLECTION, class ITERATOR>
-class ACE_RMCast_Copy_On_Write_Write_Guard;
-
-//! Base class for the Copy_On_Write collection, used to simplify the
-//! declaration of the Write_Guard
-template<class COLLECTION, class ITERATOR>
-class ACE_RMCast_Copy_On_Write_Container
-{
-public:
- //! Constructor
- ACE_RMCast_Copy_On_Write_Container (void);
-
- //! Let the Write_Guard access the internal fields.
- friend class ACE_RMCast_Copy_On_Write_Write_Guard<COLLECTION,ITERATOR>;
-
- //! Let the Read_Guard access the internal fields.
- friend class ACE_RMCast_Copy_On_Write_Read_Guard<COLLECTION,ITERATOR>;
-
- //! A shorter name for the actual collection type
- typedef ACE_RMCast_Copy_On_Write_Collection<COLLECTION,ITERATOR> Collection;
-
-protected:
- //! Number of pending writes
- int pending_writes_;
-
- //! If non-zero then a thread is changing the collection.
- /*!
- * Many threads can use the collection simulatenously, but only one
- * change it.
- */
- int writing_;
-
- //! A mutex to serialize access to the collection pointer.
- ACE_SYNCH_MUTEX mutex_;
-
- //! A condition variable to wait to synchronize multiple writers.
- ACE_SYNCH_CONDITION cond_;
-
- //! The collection, with reference counting added
- Collection *collection_;
-};
-
-// ****************************************************************
-
-//! Implement a read guard for a reference counted collection
-template<class COLLECTION, class ITERATOR>
-class ACE_RMCast_Copy_On_Write_Read_Guard
-{
-public:
- typedef ACE_RMCast_Copy_On_Write_Collection<COLLECTION,ITERATOR> Collection;
- typedef ACE_RMCast_Copy_On_Write_Container<COLLECTION,ITERATOR> Container;
-
- //! Constructor
- ACE_RMCast_Copy_On_Write_Read_Guard (Container &container);
-
- //! Destructor
- ~ACE_RMCast_Copy_On_Write_Read_Guard (void);
-
- //! A reference to the collection
- Collection *collection;
-
-private:
- //! Synchronization
- ACE_SYNCH_MUTEX &mutex_;
-};
-
-// ****************************************************************
-
-//! Implement the write guard for a reference counted collecion
-/*!
- * This helper class atomically increments the reference count of a
- * ACE_RMCast_Copy_On_Write_Collection and reads the current
- * collection in the Copy_On_Write class.
- */
-template<class COLLECTION, class ITERATOR>
-class ACE_RMCast_Copy_On_Write_Write_Guard
-{
-public:
- typedef ACE_RMCast_Copy_On_Write_Collection<COLLECTION,ITERATOR> Collection;
- typedef ACE_RMCast_Copy_On_Write_Container<COLLECTION,ITERATOR> Container;
-
- //! Constructor
- ACE_RMCast_Copy_On_Write_Write_Guard (Container &container);
-
- //! Destructor
- ~ACE_RMCast_Copy_On_Write_Write_Guard (void);
-
- //! The collection
- Collection *copy;
-
-private:
- //! Keep a reference to the mutex
- ACE_SYNCH_MUTEX &mutex;
-
- //! Keep a reference to the condition variable
- ACE_SYNCH_CONDITION &cond;
-
- //! Use a reference to update the pending writes count
- int &pending_writes;
-
- //! Use a reference to update the writing flag
- int &writing_flag;
-
- //! Use this reference to update the collection once the
- //! modifications are finished.
- Collection *&collection;
-};
-
-
-// ****************************************************************
-
-//! Implement a copy on write wrapper for a map-like collection
-/*
- *
- * <B>WARNING: </B> This class may be moved away in the future, I'm
- * investigating how it could be converted into a reusable component
- * in ACE. I won't make promises on when will that happen, but I
- * won't promise that it will stay here either.
- *
- */
-template<class KEY, class ITEM, class COLLECTION, class ITERATOR>
-class ACE_RMCast_Copy_On_Write : public ACE_RMCast_Copy_On_Write_Container<COLLECTION,ITERATOR>
-{
-public:
- //! The Read_Guard trait
- typedef ACE_RMCast_Copy_On_Write_Read_Guard<COLLECTION,ITERATOR> Read_Guard;
-
- //! The Write_Guard trait
- typedef ACE_RMCast_Copy_On_Write_Write_Guard<COLLECTION,ITERATOR> Write_Guard;
-
- //! The underlying collection type
- typedef ACE_RMCast_Copy_On_Write_Collection<COLLECTION,ITERATOR> Collection;
-
- //! Constructor
- ACE_RMCast_Copy_On_Write (void);
-
- //! Destructor
- ~ACE_RMCast_Copy_On_Write (void);
-
- //! Iterate over all the elements invoking \param worker on each one.
- int for_each (ACE_RMCast_Worker<KEY,ITEM> *worker);
-
- //! Get the first key
- KEY first_key (void);
-
- /// Return non-zero if the collection is empty
- int empty (void);
-
- //! Add a new element
- int bind (KEY const & key, ITEM const & item);
-
- //! Remove an element
- int unbind (KEY const & key);
-
- //! Bind assuming the Write_Guard is held
- int bind_i (Write_Guard &guard, KEY const & key, ITEM const & item);
-
- //! Unbind assuming the Write_Guard is held
- int unbind_i (Write_Guard &guard, KEY const & key);
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Copy_On_Write.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "RMCast_Copy_On_Write.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("RMCast_Copy_On_Write.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_COPY_ON_WRITE_H */
diff --git a/ace/RMCast/RMCast_Copy_On_Write.i b/ace/RMCast/RMCast_Copy_On_Write.i
deleted file mode 100644
index 3c069c84eb6..00000000000
--- a/ace/RMCast/RMCast_Copy_On_Write.i
+++ /dev/null
@@ -1,34 +0,0 @@
-// $Id$
-
-template<class COLLECTION, class ITERATOR> ACE_INLINE
-ACE_RMCast_Copy_On_Write_Collection<COLLECTION,ITERATOR>::
- ACE_RMCast_Copy_On_Write_Collection (void)
- : refcount_ (1)
-{
-}
-
-// ****************************************************************
-
-template<class COLLECTION, class ITERATOR> ACE_INLINE
-ACE_RMCast_Copy_On_Write_Read_Guard<COLLECTION,ITERATOR>::
- ACE_RMCast_Copy_On_Write_Read_Guard (Container &container)
- : collection (0)
- , mutex_ (container.mutex_)
-{
- ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, this->mutex_);
- this->collection = container.collection_;
- this->collection->_incr_refcnt ();
-}
-
-template<class COLLECTION, class ITERATOR> ACE_INLINE
-ACE_RMCast_Copy_On_Write_Read_Guard<COLLECTION,ITERATOR>::
- ~ACE_RMCast_Copy_On_Write_Read_Guard (void)
-{
- if (this->collection != 0)
- {
- ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, this->mutex_);
- this->collection->_decr_refcnt ();
- }
-}
-
-// ****************************************************************
diff --git a/ace/RMCast/RMCast_Export.h b/ace/RMCast/RMCast_Export.h
deleted file mode 100644
index 51257c4d682..00000000000
--- a/ace/RMCast/RMCast_Export.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// -*- C++ -*-
-// $Id$
-// Definition for Win32 Export directives.
-// This file is generated automatically by
-// generate_export_file.pl
-// ------------------------------
-#if !defined (ACE_RMCAST_EXPORT_H)
-#define ACE_RMCAST_EXPORT_H
-
-#include "ace/config-all.h"
-
-#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_RMCAST_HAS_DLL)
-# define ACE_RMCAST_HAS_DLL 0
-#endif /* ACE_AS_STATIC_LIBS && ACE_RMCAST_HAS_DLL */
-
-#if !defined (ACE_RMCAST_HAS_DLL)
-#define ACE_RMCAST_HAS_DLL 1
-#endif /* ! ACE_RMCAST_HAS_DLL */
-
-#if defined (ACE_RMCAST_HAS_DLL)
-# if (ACE_RMCAST_HAS_DLL == 1)
-# if defined (ACE_RMCAST_BUILD_DLL)
-# define ACE_RMCast_Export ACE_Proper_Export_Flag
-# define ACE_RMCAST_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
-# define ACE_RMCAST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# else
-# define ACE_RMCast_Export ACE_Proper_Import_Flag
-# define ACE_RMCAST_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
-# define ACE_RMCAST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ACE_RMCAST_BUILD_DLL */
-# else
-# define ACE_RMCast_Export
-# define ACE_RMCAST_SINGLETON_DECLARATION(T)
-# define ACE_RMCAST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ! ACE_RMCAST_HAS_DLL == 1 */
-#else
-# define ACE_RMCast_Export
-# define ACE_RMCAST_SINGLETON_DECLARATION(T)
-# define ACE_RMCAST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-#endif /* ACE_RMCAST_HAS_DLL */
-
-#endif /* ACE_RMCAST_EXPORT_H */
-
-// End of auto generated file.
diff --git a/ace/RMCast/RMCast_Fork.cpp b/ace/RMCast/RMCast_Fork.cpp
deleted file mode 100644
index 928d34cb411..00000000000
--- a/ace/RMCast/RMCast_Fork.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-// $Id$
-
-#include "RMCast_Fork.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Fork.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Fork, "$Id$")
-
-ACE_RMCast_Fork::~ACE_RMCast_Fork (void)
-{
-}
-
-int
-ACE_RMCast_Fork::open (void)
-{
- int r = this->ACE_RMCast_Module::open ();
- if (r != 0)
- return r;
- if (this->secondary () != 0)
- return this->secondary ()->open ();
- return 0;
-}
-
-int
-ACE_RMCast_Fork::close (void)
-{
- int r = this->ACE_RMCast_Module::close ();
- if (r != 0)
- return r;
- if (this->secondary () != 0)
- return this->secondary ()->close ();
- return 0;
-}
-
-int
-ACE_RMCast_Fork::data (ACE_RMCast::Data &data)
-{
- int r = this->ACE_RMCast_Module::data (data);
- if (r != 0)
- return r;
- if (this->secondary () != 0)
- return this->secondary ()->data (data);
- return 0;
-}
-
-int
-ACE_RMCast_Fork::poll (ACE_RMCast::Poll &poll)
-{
- int r = this->ACE_RMCast_Module::poll (poll);
- if (r != 0)
- return r;
- if (this->secondary () != 0)
- return this->secondary ()->poll (poll);
- return 0;
-}
-
-int
-ACE_RMCast_Fork::ack_join (ACE_RMCast::Ack_Join &ack_join)
-{
- int r = this->ACE_RMCast_Module::ack_join (ack_join);
- if (r != 0)
- return r;
- if (this->secondary () != 0)
- return this->secondary ()->ack_join (ack_join);
- return 0;
-}
-
-int
-ACE_RMCast_Fork::ack_leave (ACE_RMCast::Ack_Leave &ack_leave)
-{
- int r = this->ACE_RMCast_Module::ack_leave (ack_leave);
- if (r != 0)
- return r;
- if (this->secondary () != 0)
- return this->secondary ()->ack_leave (ack_leave);
- return 0;
-}
-
-int
-ACE_RMCast_Fork::ack (ACE_RMCast::Ack &ack)
-{
- int r = this->ACE_RMCast_Module::ack (ack);
- if (r != 0)
- return r;
- if (this->secondary () != 0)
- return this->secondary ()->ack (ack);
- return 0;
-}
-
-int
-ACE_RMCast_Fork::join (ACE_RMCast::Join &join)
-{
- int r = this->ACE_RMCast_Module::join (join);
- if (r != 0)
- return r;
- if (this->secondary () != 0)
- return this->secondary ()->join (join);
- return 0;
-}
-
-int
-ACE_RMCast_Fork::leave (ACE_RMCast::Leave &leave)
-{
- int r = this->ACE_RMCast_Module::leave (leave);
- if (r != 0)
- return r;
- if (this->secondary () != 0)
- return this->secondary ()->leave (leave);
- return 0;
-}
diff --git a/ace/RMCast/RMCast_Fork.h b/ace/RMCast/RMCast_Fork.h
deleted file mode 100644
index 5fd216d68f3..00000000000
--- a/ace/RMCast/RMCast_Fork.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_RMCAST_FORK_H
-#define ACE_RMCAST_FORK_H
-#include "ace/pre.h"
-
-#include "RMCast_Module.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/// Fork messages to multiple destinations
-/**
- * In some instances the messages must be sent to multiple
- * destinations, this module is a generic component to duplicate such
- * messages.
- */
-class ACE_RMCast_Export ACE_RMCast_Fork : public ACE_RMCast_Module
-{
-public:
- //! Constructor
- ACE_RMCast_Fork (void);
-
- //! Destructor
- virtual ~ACE_RMCast_Fork (void);
-
- /// Set the control module, all incoming control messages go to it
- void secondary (ACE_RMCast_Module *module);
-
- /// Return the current control module
- ACE_RMCast_Module *secondary (void) const;
-
- virtual int open (void);
- virtual int close (void);
- virtual int data (ACE_RMCast::Data &);
- virtual int poll (ACE_RMCast::Poll &);
- virtual int ack_join (ACE_RMCast::Ack_Join &);
- virtual int ack_leave (ACE_RMCast::Ack_Leave &);
- virtual int ack (ACE_RMCast::Ack &);
- virtual int join (ACE_RMCast::Join &);
- virtual int leave (ACE_RMCast::Leave &);
-
-private:
- /// The control module
- ACE_RMCast_Module *secondary_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Fork.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_FORK_H */
diff --git a/ace/RMCast/RMCast_Fork.i b/ace/RMCast/RMCast_Fork.i
deleted file mode 100644
index bbcd4f23ae1..00000000000
--- a/ace/RMCast/RMCast_Fork.i
+++ /dev/null
@@ -1,21 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_RMCast_Fork::ACE_RMCast_Fork (void)
- : ACE_RMCast_Module ()
- , secondary_ (0)
-{
-}
-
-ACE_INLINE void
-ACE_RMCast_Fork::secondary (ACE_RMCast_Module *module)
-{
- this->secondary_ = module;
-}
-
-
-ACE_INLINE ACE_RMCast_Module *
-ACE_RMCast_Fork::secondary (void) const
-{
- return this->secondary_;
-}
diff --git a/ace/RMCast/RMCast_Fragment.cpp b/ace/RMCast/RMCast_Fragment.cpp
deleted file mode 100644
index 7da6f4bf1a5..00000000000
--- a/ace/RMCast/RMCast_Fragment.cpp
+++ /dev/null
@@ -1,188 +0,0 @@
-// $Id$
-
-#include "RMCast_Fragment.h"
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "RMCast_Fragment.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Fragment, "$Id$")
-
-ACE_RMCast_Fragment::
-ACE_RMCast_Fragment (void)
- : ACE_RMCast_Module ()
- , max_fragment_size_ (ACE_RMCAST_DEFAULT_FRAGMENT_SIZE)
-{
-}
-
-ACE_RMCast_Fragment::~ACE_RMCast_Fragment (void)
-{
-}
-
-int
-ACE_RMCast_Fragment::data (ACE_RMCast::Data &received_data)
-{
- if (this->next () == 0)
- return 0;
-
- // The Data object sent downstream
- ACE_RMCast::Data data = received_data;
-
- ACE_Message_Block *mb = data.payload;
-
- // @@ We should keep the total size precomputed
- data.total_size = mb->total_length ();
-
- // We must leave room for the header
-#if defined (ACE_HAS_BROKEN_DGRAM_SENDV)
- const int ACE_RMCAST_WRITEV_MAX = ACE_IOV_MAX - 2;
-#else
- const int ACE_RMCAST_WRITEV_MAX = ACE_IOV_MAX - 1;
-#endif /* ACE_HAS_BROKEN_DGRAM_SENDV */
-
- // Assume the header will be included on each fragment, so readuce
- // the maximum amount of memory allowed on each fragment....
- const size_t fragment_header_size = 1 + 3 * sizeof(ACE_UINT32);
-
- const size_t max_fragment_payload =
- this->max_fragment_size_ - fragment_header_size;
-
- // Iterate over all the message blocks in the chain. If there is
- // enough data to send an MTU then it is sent immediately.
- // The last fragment is sent with whatever data remains.
- // A single fragment can expand multiple message blocks, put
- // together in an <iovec> array, it is also possible that a single
- // message block requires multiple fragments... so the code below is
- // as simple as possible, but not any simpler ;-)
-
-
- // The first piece of each fragment is a header that contains:
- // - A sequence number for reassembly, this is unrelated to
- // the sequence number for re-transmission.
- // NOTE: yes, this increases the bandwidth requires by 4 bytes on
- // each message, I don't think this is a big deal.
- // - A fragment offset for reassembly.
- // - The total size of the message, so the reassembly layer knows
- // when a complete message has been received.
-
- // Complete the initialization of the <data> structure
-
- data.fragment_offset = 0;
-
- // The underlying transport layer can only tolerate so many elements
- // in a chain, so we must count them and send a fragment if we are
- // going over the limit.
-
- ACE_Message_Block blocks[ACE_RMCAST_WRITEV_MAX];
-
-
- // How many elements of the <blocks> array are in use...
- int iovcnt = 0;
-
- // The size of the current message, adding the size of all its
- // message blocks.
- size_t fragment_size = 0;
-
- for (ACE_Message_Block* b = mb; b != 0; b = b->cont ())
- {
- ACE_Message_Block *current_block = &blocks[iovcnt];
-
- // Add the block to the vector...
-
- current_block->data_block (b->data_block ()->duplicate ());
- current_block->rd_ptr (b->rd_ptr ());
- current_block->wr_ptr (b->wr_ptr ());
- current_block->cont (0);
-
- // Set the continuation field
- if (iovcnt != 0)
- blocks[iovcnt-1].cont (current_block);
-
- size_t current_block_length = current_block->length ();
-
- // Recompute the state of the fragment
- fragment_size += current_block_length;
- iovcnt++;
-
- while (fragment_size >= max_fragment_payload)
- {
- // We have filled a fragment. It is possible that we need
- // to split the last message block in multiple fragments,
- // thus the loop above...
-
- // First adjust the last message block to exactly fit in the
- // fragment:
- size_t last_sent_mb_len =
- max_fragment_payload - (fragment_size - current_block_length);
-
- // Send only enough data of the last message block to fill
- // the fragment...
- current_block->wr_ptr (current_block->rd_ptr ()
- + last_sent_mb_len);
-
- data.payload = blocks;
- if (this->next ()->data (data) == -1)
- return -1;
-
- // adjust the offset
- data.fragment_offset += max_fragment_payload;
-
- // Now compute how much data is left in the last message
- // block, to check if we should continue sending it...
- current_block_length -= last_sent_mb_len;
- if (current_block_length == 0)
- {
- // No more data from this message block, just continue
- // the outer loop...
- iovcnt = 0;
- fragment_size = 0;
- blocks[0].cont (0);
- break; // while
- }
-
- // There is some data left, we try to send it in a single
- // fragment, if it is still too big the beginning of this
- // loop will adjust things.
-
- // We must put the data in the right place in the array..
- char *rd_ptr = current_block->rd_ptr () + last_sent_mb_len;
- char *wr_ptr = rd_ptr + current_block_length;
- blocks[0].data_block (current_block->replace_data_block (0));
-
- // And determine what segment of the data will be sent..
- blocks[0].rd_ptr (rd_ptr);
- blocks[0].wr_ptr (wr_ptr);
- blocks[0].cont (0);
-
- // Adjust the state of the fragment
- fragment_size = current_block_length;
- iovcnt = 1;
-
- // Notice that if <fragment_size> is too big the start of
- // this loop will continue the fragmentation.
- }
-
- // It is also possible to fill up the iovec array before the
- // fragment is completed, in this case we must send whatever we
- // have:
- if (iovcnt == ACE_RMCAST_WRITEV_MAX)
- {
- if (this->next ()->data (data) == -1)
- return -1;
-
- iovcnt = 0;
- fragment_size = 0;
- blocks[0].cont (0);
- }
- }
-
- if (iovcnt == 0)
- return 0;
-
- return this->next ()->data (data);
-}
diff --git a/ace/RMCast/RMCast_Fragment.h b/ace/RMCast/RMCast_Fragment.h
deleted file mode 100644
index eed08c92517..00000000000
--- a/ace/RMCast/RMCast_Fragment.h
+++ /dev/null
@@ -1,62 +0,0 @@
-// $Id$
-
-#ifndef ACE_RMCAST_FRAGMENT_H
-#define ACE_RMCAST_FRAGMENT_H
-#include "ace/pre.h"
-
-#include "RMCast_Module.h"
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-//! Default fragment size
-#ifndef ACE_RMCAST_DEFAULT_FRAGMENT_SIZE
-# define ACE_RMCAST_DEFAULT_FRAGMENT_SIZE 1024
-#endif /* ACE_RMCAST_DEFAULT_FRAGMENT_SIZE */
-
-//! Fragmentation module
-/*!
- * Some transports cannot send very big messages, for example UDP
- * imposes a limit of 64K, and in practice the limit is even more
- * strict than that.
- * This class decomposes a message into multiple fragments, using an
- * application defined maximum size.
- */
-class ACE_RMCast_Export ACE_RMCast_Fragment : public ACE_RMCast_Module
-{
-public:
- //! Constructor
- ACE_RMCast_Fragment (void);
-
- //! Destructor
- virtual ~ACE_RMCast_Fragment (void);
-
- //! Accessor for the max_fragment size.
- /*! There is no modifier, the maximum fragment size is obtained
- * using feedback from the lower layers (transport?)
- * @@TODO We have not implemented the feedback mechanisms yet!
- */
- size_t max_fragment_size (void) const;
-
- /*!
- * Only data messages need fragmentation, the control messages are
- * all small enough for all the transports that I know about.
- * Well, actually for CAN-Bus (Controller Area Network), they may be
- * too big, because the max payload there is 8 bytes, but we don't
- * play with those in ACE.
- */
- virtual int data (ACE_RMCast::Data &data);
-
-private:
- //! Current fragment size limit
- size_t max_fragment_size_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Fragment.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_FRAGMENT_H */
diff --git a/ace/RMCast/RMCast_Fragment.i b/ace/RMCast/RMCast_Fragment.i
deleted file mode 100644
index 8e628093b8c..00000000000
--- a/ace/RMCast/RMCast_Fragment.i
+++ /dev/null
@@ -1,7 +0,0 @@
-// $Id$
-
-ACE_INLINE size_t
-ACE_RMCast_Fragment::max_fragment_size (void) const
-{
- return this->max_fragment_size_;
-}
diff --git a/ace/RMCast/RMCast_IO_UDP.cpp b/ace/RMCast/RMCast_IO_UDP.cpp
deleted file mode 100644
index 315d5c11f82..00000000000
--- a/ace/RMCast/RMCast_IO_UDP.cpp
+++ /dev/null
@@ -1,458 +0,0 @@
-// $Id$
-
-#include "RMCast_IO_UDP.h"
-#include "RMCast_UDP_Proxy.h"
-#include "RMCast_Module_Factory.h"
-
-#include "ace/Handle_Set.h"
-#include "ace/Reactor.h"
-#include "ace/Message_Block.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_IO_UDP.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_IO_UDP, "RMCast_IO_UDP.cpp,v 1.12 2000/12/20 22:00:33 oci Exp")
-
-ACE_RMCast_IO_UDP::~ACE_RMCast_IO_UDP (void)
-{
-}
-
-int
-ACE_RMCast_IO_UDP::init (const ACE_INET_Addr &mcast_group,
- const ACE_Addr &local,
- int protocol_family,
- int protocol,
- int reuse_addr)
-{
- this->mcast_group_ = mcast_group;
-
- ACE_SOCK_Dgram &dgram = this->dgram_;
- return dgram.open (local, protocol_family, protocol, reuse_addr);
-}
-
-int
-ACE_RMCast_IO_UDP::subscribe (const ACE_INET_Addr &mcast_addr,
- int reuse_addr,
- const ACE_TCHAR *net_if,
- int protocol_family,
- int protocol)
-{
- this->mcast_group_ = mcast_addr;
- return this->dgram_.subscribe (mcast_addr,
- reuse_addr,
- net_if,
- protocol_family,
- protocol);
-}
-
-int
-ACE_RMCast_IO_UDP::handle_events (ACE_Time_Value *tv)
-{
- ACE_HANDLE h = this->dgram_.get_handle ();
- if (h == ACE_INVALID_HANDLE)
- return -1;
-
- ACE_Handle_Set handle_set;
- handle_set.set_bit (h);
-
- ACE_Countdown_Time countdown (tv);
-
- int r = ACE_OS::select (int(h) + 1,
- handle_set, 0, 0,
- tv);
- if (r == -1)
- {
- if (errno == EINTR)
- return 0;
- else
- return -1;
- }
- else if (r == 0)
- {
- return 0;
- }
-
- return this->handle_input (h);
-}
-
-int
-ACE_RMCast_IO_UDP::handle_input (ACE_HANDLE)
-{
- // @@ We should use a system constant instead of this literal
- const int max_udp_packet_size = 65536;
- char buffer[max_udp_packet_size];
-
- ACE_INET_Addr from_address;
- ssize_t r =
- this->dgram_.recv (buffer, sizeof(buffer), from_address);
-
- if (r == -1)
- {
- // @@ LOG??
- ACE_ERROR ((LM_ERROR,
- "RMCast_IO_UDP::handle_input () - error in recv %p\n",
- ACE_TEXT ("")));
- return -1;
- }
-
- // ACE_HEX_DUMP ((LM_DEBUG, buffer, 16, "Receiver::handle_input"));
-
- // @@ Locking!
-
- int type = buffer[0];
-
- if (type < 0 || type >= ACE_RMCast::MT_LAST)
- {
- // @@ Log: invalid message type!!
- // @@ TODO: should we return -1? The socket is still valid, it
- // makes little sense to destroy it just because one remote
- // sender is sending invalid messages. Maybe we should
- // strategize this too, and report the problem to the
- // application, this could indicate a misconfiguration or
- // something worse...
-
- // In any case the proxy should be destroyed, its peer is making
- // something really wrong.
- ACE_RMCast_UDP_Proxy *proxy;
- if (this->map_.unbind (from_address, proxy) == 0)
- {
- this->factory_->destroy (proxy->next ());
- delete proxy;
- }
- return 0;
- }
-
- ACE_RMCast_UDP_Proxy *proxy;
- if (this->map_.find (from_address, proxy) != 0)
- {
- //ACE_DEBUG ((LM_DEBUG,
- // "IO_UDP::handle_input - new proxy from <%s:%d>\n",
- // from_address.get_host_addr (),
- // from_address.get_port_number ()));
-
- // @@ We should validate the message *before* creating the
- // object, all we need is some sort of validation strategy, a
- // different one for the receiver and another one for the
- // sender.
-
-#if 0
- if (type == ACE_RMCast::MT_ACK
- || type == ACE_RMCast::MT_JOIN
- || type == ACE_RMCast::MT_LEAVE
- || type == ACE_RMCast::MT_ACK_LEAVE)
- {
- // All these message types indicate a problem, the should be
- // generated by receivers, not received by them.
- return 0;
- }
-#endif /* 0 */
- ACE_RMCast_Module *module = this->factory_->create ();
- if (module == 0)
- {
- // @@ LOG??
- // Try to continue working, maybe the module can be created
- // later.
- return 0;
- }
- // This is necessary to satisfy the xgcc for Lynx on Solaris
- // by including the code directly causes :
- // RMCast_IO_UDP.cpp:202: error: internal error--unrecognizable insn:
- // (insn 1510 1507 524 (set (mem:SI (plus:SI (reg:SI 28 r28)
- // (const_int 65536)))
- // (reg:SI 0 r0)) -1 (insn_list 528 (insn_list 1507 (nil)))
- // (nil))
- // /usr/lynx/home2/jose/98r2/src/gcc/toplev.c:1489: Internal compiler error in function fatal_insn
- // to be thrown at the end of the function.
- if ((proxy = allocate_and_bind_proxy(module,from_address)) == 0)
- return 0;
- }
-
- // Have the proxy process the message and do the right thing.
- if (proxy->receive_message (buffer, r) != 0)
- {
- (void) this->map_.unbind (from_address);
- this->factory_->destroy (proxy->next ());
- delete proxy;
- }
-
- return 0;
-}
-
-ACE_HANDLE
-ACE_RMCast_IO_UDP::get_handle (void) const
-{
- return this->dgram_.get_handle ();
-}
-
-int
-ACE_RMCast_IO_UDP::data (ACE_RMCast::Data &data)
-{
- return this->send_data (data, this->mcast_group_);
-}
-
-int
-ACE_RMCast_IO_UDP::poll (ACE_RMCast::Poll &poll)
-{
- return this->send_poll (poll, this->mcast_group_);
-}
-
-int
-ACE_RMCast_IO_UDP::ack_join (ACE_RMCast::Ack_Join &ack_join)
-{
- return this->send_ack_join (ack_join, this->mcast_group_);
-}
-
-int
-ACE_RMCast_IO_UDP::ack_leave (ACE_RMCast::Ack_Leave &ack_leave)
-{
- return this->send_ack_leave (ack_leave, this->mcast_group_);
-}
-
-int
-ACE_RMCast_IO_UDP::ack (ACE_RMCast::Ack &ack)
-{
- return this->send_ack (ack, this->mcast_group_);
-}
-
-int
-ACE_RMCast_IO_UDP::join (ACE_RMCast::Join &join)
-{
- return this->send_join (join, this->mcast_group_);
-}
-
-int
-ACE_RMCast_IO_UDP::leave (ACE_RMCast::Leave &leave)
-{
- return this->send_leave (leave, this->mcast_group_);
-}
-
-int
-ACE_RMCast_IO_UDP::send_data (ACE_RMCast::Data &data,
- const ACE_INET_Addr &to)
-{
- //ACE_DEBUG ((LM_DEBUG,
- // "IO_UDP::send_data - pushing out to <%s:%d>\n",
- // to.get_host_addr (),
- // to.get_port_number ()));
-
- // The first message block contains the header
- // @@ TODO: We could keep the header pre-initialized, and only
- // update the portions that do change...
- ACE_UINT32 tmp;
- char header[1 + 3 * sizeof(ACE_UINT32)];
- header[0] = ACE_RMCast::MT_DATA;
-
- tmp = ACE_HTONL (data.sequence_number);
- ACE_OS::memcpy (header + 1,
- &tmp, sizeof(ACE_UINT32));
- tmp = ACE_HTONL (data.total_size);
- ACE_OS::memcpy (header + 1 + sizeof(ACE_UINT32),
- &tmp, sizeof(ACE_UINT32));
- tmp = ACE_HTONL (data.fragment_offset);
- ACE_OS::memcpy (header + 1 + 2 * sizeof(ACE_UINT32),
- &tmp, sizeof(ACE_UINT32));
-
- iovec iov[ACE_IOV_MAX];
- int iovcnt = 1;
-
- iov[0].iov_base = header;
- iov[0].iov_len = sizeof(header);
-
- ACE_Message_Block *mb = data.payload;
-
- for (const ACE_Message_Block *i = mb; i != 0; i = i->cont ())
- {
- iov[iovcnt].iov_base = i->rd_ptr ();
- iov[iovcnt].iov_len = i->length ();
- iovcnt++;
- if (iovcnt >= IOV_MAX)
- return -1;
- }
-
- // @@ This pacing stuff here reduced the number of packet lost in
- // loopback tests, but it should be taken out for real applications
- // (or at least made configurable!)
- ACE_Time_Value tv (0, 10000);
- ACE_OS::sleep (tv);
-
- // ACE_SOCK_MCast_Dgram disallows sending, but it actually works.
- ACE_SOCK_Dgram &dgram = this->dgram_;
-
- if (dgram.send (iov, iovcnt, to) == -1)
- return -1;
-
-#if 0
- ACE_HEX_DUMP ((LM_DEBUG,
- (char*)iov[0].iov_base,
- iov[0].iov_len,
- "Sending"));
-#endif
-
- return 0;
-}
-
-int
-ACE_RMCast_IO_UDP::send_poll (ACE_RMCast::Poll &,
- const ACE_INET_Addr &to)
-{
- //ACE_DEBUG ((LM_DEBUG,
- // "IO_UDP::send_poll - pushing out to <%s:%d>\n",
- // to.get_host_addr (),
- // to.get_port_number ()));
-
- // @@ TODO: We could keep the header pre-initialized, and only
- // update the portions that do change...
- char header[16];
- header[0] = ACE_RMCast::MT_POLL;
-
- // ACE_SOCK_MCast_Dgram disallows sending, but it actually works.
- ACE_SOCK_Dgram &dgram = this->dgram_;
-
- if (dgram.send (header, 1, to) == -1)
- return -1;
-
- return 0;
-}
-
-int
-ACE_RMCast_IO_UDP::send_ack_join (ACE_RMCast::Ack_Join &ack_join,
- const ACE_INET_Addr &to)
-{
- //ACE_DEBUG ((LM_DEBUG,
- // "IO_UDP::send_ack_join - pushing out to <%s:%d>\n",
- // to.get_host_addr (),
- // to.get_port_number ()));
-
- // @@ TODO: We could keep the header pre-initialized, and only
- // update the portions that do change...
- char header[16];
- header[0] = ACE_RMCast::MT_ACK_JOIN;
-
- ACE_UINT32 tmp = ACE_HTONL (ack_join.next_sequence_number);
- ACE_OS::memcpy (header + 1,
- &tmp, sizeof(ACE_UINT32));
- // ACE_SOCK_MCast_Dgram disallows sending, but it actually works.
- ACE_SOCK_Dgram &dgram = this->dgram_;
-
- if (dgram.send (header, 1 + sizeof(ACE_UINT32), to) == -1)
- return -1;
-
- return 0;
-}
-
-int
-ACE_RMCast_IO_UDP::send_ack_leave (ACE_RMCast::Ack_Leave &,
- const ACE_INET_Addr &to)
-{
- //ACE_DEBUG ((LM_DEBUG,
- // "IO_UDP::send_ack_leave - pushing out to <%s:%d>\n",
- // to.get_host_addr (),
- // to.get_port_number ()));
-
- // @@ TODO: We could keep the header pre-initialized, and only
- // update the portions that do change...
- char header[16];
- header[0] = ACE_RMCast::MT_ACK_LEAVE;
-
- // ACE_SOCK_MCast_Dgram disallows sending, but it actually works.
- ACE_SOCK_Dgram &dgram = this->dgram_;
-
- if (dgram.send (header, 1, to) == -1)
- return -1;
-
- return 0;
-}
-
-int
-ACE_RMCast_IO_UDP::send_ack (ACE_RMCast::Ack &ack,
- const ACE_INET_Addr &to)
-{
- //ACE_DEBUG ((LM_DEBUG,
- // "IO_UDP::send_ack - pushing (%d:%d) out to <%s:%d>\n",
- // ack.next_expected,
- // ack.highest_received,
- // to.get_host_addr (),
- // to.get_port_number ()));
-
- // @@ TODO: We could keep the header pre-initialized, and only
- // update the portions that do change...
- char header[16];
- header[0] = ACE_RMCast::MT_ACK;
-
- ACE_UINT32 tmp = ACE_HTONL (ack.next_expected);
- ACE_OS::memcpy (header + 1,
- &tmp, sizeof(ACE_UINT32));
- tmp = ACE_HTONL (ack.highest_received);
- ACE_OS::memcpy (header + 1 + sizeof(ACE_UINT32),
- &tmp, sizeof(ACE_UINT32));
-
- // ACE_SOCK_MCast_Dgram disallows sending, but it actually works.
- ACE_SOCK_Dgram &dgram = this->dgram_;
-
- if (dgram.send (header, 1 + 2*sizeof(ACE_UINT32), to) == -1)
- return -1;
-
- return 0;
-}
-
-int
-ACE_RMCast_IO_UDP::send_join (ACE_RMCast::Join &,
- const ACE_INET_Addr &to)
-{
- //ACE_DEBUG ((LM_DEBUG,
- // "IO_UDP::send_join - pushing out to <%s:%d>\n",
- // to.get_host_addr (),
- // to.get_port_number ()));
-
- // @@ TODO: We could keep the header pre-initialized, and only
- // update the portions that do change...
- char header[16];
- header[0] = ACE_RMCast::MT_JOIN;
-
- // ACE_SOCK_MCast_Dgram disallows sending, but it actually works.
- ACE_SOCK_Dgram &dgram = this->dgram_;
-
- if (dgram.send (header, 1, to) == -1)
- return -1;
-
- return 0;
-}
-
-int
-ACE_RMCast_IO_UDP::send_leave (ACE_RMCast::Leave &,
- const ACE_INET_Addr &to)
-{
- //ACE_DEBUG ((LM_DEBUG,
- // "IO_UDP::send_leave - pushing out to <%s:%d>\n",
- // to.get_host_addr (),
- // to.get_port_number ()));
-
- // @@ TODO: We could keep the header pre-initialized, and only
- // update the portions that do change...
- char header[16];
- header[0] = ACE_RMCast::MT_LEAVE;
-
- // ACE_SOCK_MCast_Dgram disallows sending, but it actually works.
- ACE_SOCK_Dgram &dgram = this->dgram_;
-
- if (dgram.send (header, 1, to) == -1)
- return -1;
-
- return 0;
-}
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Hash_Map_Manager<ACE_INET_Addr,ACE_RMCast_UDP_Proxy*,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Manager_Ex<ACE_INET_Addr,ACE_RMCast_UDP_Proxy*,ACE_Hash<ACE_INET_Addr>,ACE_Equal_To<ACE_INET_Addr>,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator<ACE_INET_Addr,ACE_RMCast_UDP_Proxy*,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<ACE_INET_Addr,ACE_RMCast_UDP_Proxy*,ACE_Hash<ACE_INET_Addr>,ACE_Equal_To<ACE_INET_Addr>,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_INET_Addr,ACE_RMCast_UDP_Proxy*,ACE_Hash<ACE_INET_Addr>,ACE_Equal_To<ACE_INET_Addr>,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Base_Ex<ACE_INET_Addr,ACE_RMCast_UDP_Proxy*,ACE_Hash<ACE_INET_Addr>,ACE_Equal_To<ACE_INET_Addr>,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Entry<ACE_INET_Addr,ACE_RMCast_UDP_Proxy*>;
-template class ACE_Equal_To<ACE_INET_Addr>;
-template class ACE_Hash<ACE_INET_Addr>;
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/RMCast/RMCast_IO_UDP.h b/ace/RMCast/RMCast_IO_UDP.h
deleted file mode 100644
index 7b9d2440517..00000000000
--- a/ace/RMCast/RMCast_IO_UDP.h
+++ /dev/null
@@ -1,138 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = DESCRIPTION
-// Encapsulate the I/O layer for a UDP based receiver
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_IO_UDP_H
-#define ACE_RMCAST_IO_UDP_H
-#include "ace/pre.h"
-
-#include "RMCast_Module.h"
-#include "ace/SOCK_Dgram_Mcast.h"
-#include "ace/Hash_Map_Manager.h"
-#include "ace/Synch.h"
-#include "ace/INET_Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_RMCast_UDP_Proxy;
-class ACE_RMCast_Module_Factory;
-class ACE_Time_Value;
-
-class ACE_RMCast_Export ACE_RMCast_IO_UDP : public ACE_RMCast_Module
-{
-public:
- //! Constructor
- /*!
- * The <factory> argument is used to create the modules for each
- * proxy that process incoming messages. The class does *not* assume
- * ownership of <factory>, the caller owns it. But it does assume
- * ownership of the modules returned by the factory, and it may ask
- * the factory to release them eventually.
- */
- ACE_RMCast_IO_UDP (ACE_RMCast_Module_Factory *factory);
-
- //! Destructor
- ~ACE_RMCast_IO_UDP (void);
-
- /// Open the internal socket, but only to send multicast data.
- /**
- * It is not clear to me if this is a valid configuration. Maybe it
- * would be a problem to expose two separate, incompatible
- * interfaces (check the subscribe() method). However, the
- * alternative would be to implement almost identical class for
- * outgoing and incoming UDP I/O
- */
- int init (const ACE_INET_Addr &mcast_group,
- const ACE_Addr &local,
- int protocol_family = PF_INET,
- int protocol = 0,
- int reuse_addr = 0);
-
- //! Join a new multicast group
- /*!
- * Start receiving data for the <mcast_addr> multicast group.
- * Please read the documentation of ACE_SOCK_Dgram_Mcast for more
- * details.
- */
- int subscribe (const ACE_INET_Addr &mcast_addr,
- int reuse_addr = 1,
- const ACE_TCHAR *net_if = 0,
- int protocol_family = PF_INET,
- int protocol = 0);
-
- // The class can be used with a Reactor or using blocking I/O
- // depending on what method of the following two is called.
-
- //! Wait for events for the period <tv>. If <tv> is zero it blocks
- //! forever.
- int handle_events (ACE_Time_Value *tv = 0);
-
- //! There is data to read, read it and process it.
- int handle_input (ACE_HANDLE h);
-
- //! Obtain the handle for the underlying socket
- ACE_HANDLE get_handle (void) const;
-
- //@{
- //! Send the message to the ACE_INET_Addr argument.
- /*!
- * These methods are used in the implementation of the
- * ACE_RMCast_UDP_Proxy objects and the implementation of the
- * inherited ACE_RMCast_Module methods in this class.
- */
- int send_data (ACE_RMCast::Data &, const ACE_INET_Addr &);
- int send_poll (ACE_RMCast::Poll &, const ACE_INET_Addr &);
- int send_ack_join (ACE_RMCast::Ack_Join &, const ACE_INET_Addr &);
- int send_ack_leave (ACE_RMCast::Ack_Leave &, const ACE_INET_Addr &);
- int send_ack (ACE_RMCast::Ack &, const ACE_INET_Addr &);
- int send_join (ACE_RMCast::Join &, const ACE_INET_Addr &);
- int send_leave (ACE_RMCast::Leave &, const ACE_INET_Addr &);
- //@}
-
- // Please read the documentation in ACE_RMCast_Module for more details
- virtual int data (ACE_RMCast::Data &);
- virtual int poll (ACE_RMCast::Poll &);
- virtual int ack_join (ACE_RMCast::Ack_Join &);
- virtual int ack_leave (ACE_RMCast::Ack_Leave &);
- virtual int ack (ACE_RMCast::Ack &);
- virtual int join (ACE_RMCast::Join &);
- virtual int leave (ACE_RMCast::Leave &);
-
-private:
-
- // This is necessary to satisfy the stupid xgcc for Lynx on Solaris
- // The compiler barfs up lisp code errors
- ACE_RMCast_UDP_Proxy *allocate_and_bind_proxy (ACE_RMCast_Module *module,
- const ACE_INET_Addr &);
-
- //! The factory used to create the modules attached to each proxy
- ACE_RMCast_Module_Factory *factory_;
-
- //! The multicast group we subscribe and send to
- ACE_INET_Addr mcast_group_;
-
- //! The socket used to receive and send data
- ACE_SOCK_Dgram_Mcast dgram_;
-
- //! Use a Hash_Map to maintain the collection of proxies
- typedef ACE_Hash_Map_Manager<ACE_INET_Addr,ACE_RMCast_UDP_Proxy*,ACE_Null_Mutex> Map;
- //! The collection of proxies
- Map map_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_IO_UDP.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_IO_UDP_H */
diff --git a/ace/RMCast/RMCast_IO_UDP.i b/ace/RMCast/RMCast_IO_UDP.i
deleted file mode 100644
index 99c1524d3a6..00000000000
--- a/ace/RMCast/RMCast_IO_UDP.i
+++ /dev/null
@@ -1,36 +0,0 @@
-// $Id$
-
-#include "RMCast_UDP_Proxy.h"
-#include "RMCast_Module_Factory.h"
-
-ACE_INLINE
-ACE_RMCast_IO_UDP::
- ACE_RMCast_IO_UDP (ACE_RMCast_Module_Factory *factory)
- : factory_ (factory)
-{
-}
-
-
-// Workaround failure in gcc for lynx hosted on solaris
-// see ACE_RMCast_IO_UDP::handle_input() for more details
-ACE_INLINE ACE_RMCast_UDP_Proxy *
-ACE_RMCast_IO_UDP::allocate_and_bind_proxy (ACE_RMCast_Module *module,
- const ACE_INET_Addr& from_address)
-{
- ACE_RMCast_UDP_Proxy *proxy;
- ACE_NEW_RETURN (proxy,
- ACE_RMCast_UDP_Proxy(this,
- from_address),
- 0);
- proxy->next (module);
-
- if (this->map_.bind (from_address, proxy) != 0)
- {
- // @@ LOG??
- return 0;
- }
-
- return proxy;
-}
-
-
diff --git a/ace/RMCast/RMCast_Membership.cpp b/ace/RMCast/RMCast_Membership.cpp
deleted file mode 100644
index 91c9b1a9cea..00000000000
--- a/ace/RMCast/RMCast_Membership.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-//
-// $Id$
-//
-
-#include "RMCast_Membership.h"
-#include "RMCast_Proxy.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Membership.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Membership, "$Id$")
-
-ACE_RMCast_Membership::~ACE_RMCast_Membership (void)
-{
-}
-
-int
-ACE_RMCast_Membership::has_members (void)
-{
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1);
-
- Proxy_Iterator end = this->proxies_.end ();
- Proxy_Iterator i = this->proxies_.begin ();
- return (i != end);
-}
-
-int
-ACE_RMCast_Membership::ack (ACE_RMCast::Ack &ack)
-{
- //ACE_DEBUG ((LM_DEBUG, "ACE_RMCast_Membership::ack (%d:%d)\n",
- // ack.next_expected, ack.highest_received));
-
- ACE_RMCast::Ack next_ack;
- {
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1);
- if (ack.next_expected < this->next_expected_)
- {
- // @@ This violates an invariant of the class, shouldn't
- // happen...
- //ACE_DEBUG ((LM_DEBUG, "ACE_RMCast_Membership::ack[2]\n"));
- return 0;
- }
- else if (ack.next_expected == this->next_expected_)
- {
- // Nothing new, just continue....
- //ACE_DEBUG ((LM_DEBUG, "ACE_RMCast_Membership::ack[3]\n"));
- return 0;
- }
-
- int r = this->compute_ack_i (ack.source, next_ack);
- if (r < 0)
- return r;
- if (r == 1)
- return 0;
- }
-
- //ACE_DEBUG ((LM_DEBUG, "ACE_RMCast_Membership::ack[4] (%d:%d)\n",
- // next_ack.next_expected, next_ack.highest_received));
-
- return this->ACE_RMCast_Module::ack (next_ack);
-}
-
-int
-ACE_RMCast_Membership::join (ACE_RMCast::Join &join)
-{
- if (join.source == 0)
- return 0;
-
- {
- // ACE_DEBUG ((LM_DEBUG,
- // "RMCast_Membership::join - %d\n",
- // long(join.source)));
-
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1);
- if (this->proxies_.insert (join.source) == -1)
- return -1;
- }
- (void) this->generate_ack (join.source);
-
- return this->ACE_RMCast_Module::join (join);
-}
-
-int
-ACE_RMCast_Membership::leave (ACE_RMCast::Leave &leave)
-{
- if (leave.source == 0)
- return 0;
-
- {
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1);
- (void) this->proxies_.remove (leave.source);
- }
- (void) this->generate_ack (leave.source);
-
- return this->ACE_RMCast_Module::leave (leave);
-}
-
-int
-ACE_RMCast_Membership::generate_ack (ACE_RMCast_Proxy *proxy)
-{
- ACE_RMCast::Ack next_ack;
- {
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1);
- int r = this->compute_ack_i (proxy, next_ack);
- if (r < 0)
- return r;
- if (r == 1)
- return 0;
- }
-
- //ACE_DEBUG ((LM_DEBUG, "ACE_RMCast_Membership::ack[6] (%d:%d)\n",
- // next_ack.next_expected, next_ack.highest_received));
-
- return this->ACE_RMCast_Module::ack (next_ack);
-}
-
-int
-ACE_RMCast_Membership::compute_ack_i (ACE_RMCast_Proxy *source,
- ACE_RMCast::Ack &next_ack)
-{
- Proxy_Iterator end = this->proxies_.end ();
- Proxy_Iterator i = this->proxies_.begin ();
- if (i == end)
- return 1;
-
- //ACE_DEBUG ((LM_DEBUG,
- // "RMCast_Membership::generate_ack[1] - %d -> (%d:%d)\n",
- // long(*i),
- // (*i)->next_expected (),
- // (*i)->highest_received ()));
-
- ACE_UINT32 next_expected = (*i)->next_expected ();
- ACE_UINT32 highest_received = (*i)->highest_received ();
- ++i;
-
- for (; i != end; ++i)
- {
- // ACE_DEBUG ((LM_DEBUG,
- // "RMCast_Membership::generate_ack[2] - %d -> (%d:%d)\n",
- // long(*i),
- // (*i)->next_expected (),
- // (*i)->highest_received ()));
-
- ACE_UINT32 s = (*i)->next_expected ();
- if (s < next_expected)
- next_expected = s;
- ACE_UINT32 r = (*i)->highest_received ();
- if (r > highest_received)
- highest_received = r;
- }
-#if 0
- // @@TODO: this is an important feature, disabled until it is
- // fully debugged
- if (this->next_expected_ >= next_expected
- || this->highest_received_ >= highest_received)
- {
- // No change....
- ACE_DEBUG ((LM_DEBUG,
- "RMCast_Membership::generate_ack[3]\n"));
- return 1;
- }
-#endif /* 0 */
- this->next_expected_ = next_expected;
- this->highest_received_ = highest_received;
- next_ack.source = source;
- next_ack.next_expected = this->next_expected_;
- next_ack.highest_received = this->highest_received_;
-
- //ACE_DEBUG ((LM_DEBUG,
- // "RMCast_Membership::generate_ack[4] - (%d:%d)\n",
- // next_ack.next_expected,
- // next_ack.highest_received));
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Unbounded_Set<ACE_RMCast_Proxy*>;
-template class ACE_Unbounded_Set_Iterator<ACE_RMCast_Proxy*>;
-template class ACE_Node<ACE_RMCast_Proxy*>;
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/RMCast/RMCast_Membership.h b/ace/RMCast/RMCast_Membership.h
deleted file mode 100644
index 07f9aab593c..00000000000
--- a/ace/RMCast/RMCast_Membership.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// RMCast_Membership.h
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_MEMBERSHIP_H
-#define ACE_RMCAST_MEMBERSHIP_H
-#include "ace/pre.h"
-
-#include "RMCast_Module.h"
-#include "ace/Containers.h"
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_RMCast_Proxy;
-
-/// Track peer membership
-/**
- * Reliable senders of events need to know exactly how many peers are
- * receiving the events, and how many events has each peer received so
- * far.
- * This class uses the Join, Leave and Ack messages to build that
- * information, it also summarizes the Ack events and propagate only
- * the global info to the upper layer.
- */
-class ACE_RMCast_Export ACE_RMCast_Membership : public ACE_RMCast_Module
-{
-public:
- /// Constructor
- ACE_RMCast_Membership (void);
-
- /// Destructor
- virtual ~ACE_RMCast_Membership (void);
-
- /// Return 1 if there are still members in the group
- int has_members (void);
-
- /// Receive an process an Ack message
- /**
- * After receiving the Ack message we find out what is the lowest
- * sequence number received in order among all the acks received by
- * the proxies in the collection. We also find out what is the
- * highest sequence number received by any proxy.
- * We only propagate that information back to the upper layer, and
- * then only if there are any news since the last Ack.
- */
- virtual int ack (ACE_RMCast::Ack &);
-
- /// Add a new member to the collection, using the <source> field in
- /// the Join message
- virtual int join (ACE_RMCast::Join &);
-
- /// Remove a member from the collection, using the <source> field in
- /// the Join message
- virtual int leave (ACE_RMCast::Leave &);
-
-private:
- /// Generate an Ack message, normally due to changes in the
- /// collection, such as new proxys joining or leaving
- int generate_ack (ACE_RMCast_Proxy *proxy);
-
- /// Compute an Ack message to propagate to the upper layers.
- int compute_ack_i (ACE_RMCast_Proxy *source,
- ACE_RMCast::Ack &next_ack);
-
-protected:
- /// Use an unbounded set to maintain the collection of proxies.
- typedef ACE_Unbounded_Set<ACE_RMCast_Proxy*> Proxy_Collection;
- typedef ACE_Unbounded_Set_Iterator<ACE_RMCast_Proxy*> Proxy_Iterator;
-
- /// The collection of proxies
- Proxy_Collection proxies_;
-
- /// The smallest value of \param next_expected for all the proxies
- ACE_UINT32 next_expected_;
-
- /// The highest value of \param highest_received for all the proxies
- ACE_UINT32 highest_received_;
-
- /// Synchronization
- ACE_SYNCH_MUTEX mutex_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Membership.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_MEMBERSHIP_H */
diff --git a/ace/RMCast/RMCast_Membership.i b/ace/RMCast/RMCast_Membership.i
deleted file mode 100644
index b513c2d5141..00000000000
--- a/ace/RMCast/RMCast_Membership.i
+++ /dev/null
@@ -1,8 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_RMCast_Membership::ACE_RMCast_Membership (void)
- : next_expected_ (0)
- , highest_received_ (0)
-{
-}
diff --git a/ace/RMCast/RMCast_Module.cpp b/ace/RMCast/RMCast_Module.cpp
deleted file mode 100644
index 727ef631d9d..00000000000
--- a/ace/RMCast/RMCast_Module.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-//
-// $Id$
-//
-
-#include "RMCast_Module.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Module.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Module, "$Id$")
-
-ACE_RMCast_Module::~ACE_RMCast_Module (void)
-{
-}
-
-int
-ACE_RMCast_Module::next (ACE_RMCast_Module *next)
-{
- if (this->next_ != 0 && next != 0)
- return 1;
- this->next_ = next;
- return 0;
-}
-
-ACE_RMCast_Module *
-ACE_RMCast_Module::next (void) const
-{
- return this->next_;
-}
-
-int
-ACE_RMCast_Module::open (void)
-{
- if (this->next () != 0)
- return this->next ()->open ();
- return 0;
-}
-
-int
-ACE_RMCast_Module::close (void)
-{
- if (this->next () != 0)
- return this->next ()->close ();
- return 0;
-}
-
-int
-ACE_RMCast_Module::data (ACE_RMCast::Data &data)
-{
- if (this->next () != 0)
- return this->next ()->data (data);
- return 0;
-}
-
-int
-ACE_RMCast_Module::poll (ACE_RMCast::Poll &poll)
-{
- if (this->next () != 0)
- return this->next ()->poll (poll);
- return 0;
-}
-
-int
-ACE_RMCast_Module::ack_join (ACE_RMCast::Ack_Join &ack_join)
-{
- if (this->next () != 0)
- return this->next ()->ack_join (ack_join);
- return 0;
-}
-
-int
-ACE_RMCast_Module::ack_leave (ACE_RMCast::Ack_Leave &ack_leave)
-{
- if (this->next () != 0)
- return this->next ()->ack_leave (ack_leave);
- return 0;
-}
-
-int
-ACE_RMCast_Module::ack (ACE_RMCast::Ack &ack)
-{
- if (this->next () != 0)
- return this->next ()->ack (ack);
- return 0;
-}
-
-int
-ACE_RMCast_Module::join (ACE_RMCast::Join &join)
-{
- if (this->next () != 0)
- return this->next ()->join (join);
- return 0;
-}
-
-int
-ACE_RMCast_Module::leave (ACE_RMCast::Leave &leave)
-{
- if (this->next () != 0)
- return this->next ()->leave (leave);
- return 0;
-}
diff --git a/ace/RMCast/RMCast_Module.h b/ace/RMCast/RMCast_Module.h
deleted file mode 100644
index d362dac2366..00000000000
--- a/ace/RMCast/RMCast_Module.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// RMCast_Module.h
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_MODULE_H
-#define ACE_RMCAST_MODULE_H
-#include "ace/pre.h"
-
-#include "RMCast.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_Message_Block;
-class ACE_Time_Value;
-
-//! Reliable Multicast Module
-/*!
- The reliable multicast protocol is implemented as a stack of
- "Modules" each one performing one specific task. In short, this is
- an instance of the pipes-and-filters architectural pattern.
-*/
-class ACE_RMCast_Export ACE_RMCast_Module
-{
-public:
- //! Constructor
- ACE_RMCast_Module (void);
-
- //! Destructor
- virtual ~ACE_RMCast_Module (void);
-
- //! Modifier for the next element in the stack
- virtual int next (ACE_RMCast_Module *next);
-
- //! Accesor for the next element in the stack
- virtual ACE_RMCast_Module* next (void) const;
-
- //! Initialize the module, setting up the next module
- virtual int open (void);
-
- //! Close the module.
- virtual int close (void);
-
- //! Push data through the stack
- virtual int data (ACE_RMCast::Data &);
-
- //! Push a polling request through the stack
- virtual int poll (ACE_RMCast::Poll &);
-
- //! Push a message to ack a join request through the stack
- virtual int ack_join (ACE_RMCast::Ack_Join &);
-
- //! Push a message to ack a leave request through the stack
- virtual int ack_leave (ACE_RMCast::Ack_Leave &);
-
- //! Push an ack mesage through the stack
- virtual int ack (ACE_RMCast::Ack &);
-
- //! Push a join message through the stack
- virtual int join (ACE_RMCast::Join &);
-
- //! Push a leave message through the stack
- virtual int leave (ACE_RMCast::Leave &);
-
-private:
- //! The next element in the stack
- ACE_RMCast_Module *next_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Module.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_MODULE_H */
diff --git a/ace/RMCast/RMCast_Module.i b/ace/RMCast/RMCast_Module.i
deleted file mode 100644
index af299d706e3..00000000000
--- a/ace/RMCast/RMCast_Module.i
+++ /dev/null
@@ -1,7 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_RMCast_Module::ACE_RMCast_Module (void)
- : next_ (0)
-{
-}
diff --git a/ace/RMCast/RMCast_Module_Factory.cpp b/ace/RMCast/RMCast_Module_Factory.cpp
deleted file mode 100644
index b749048a78c..00000000000
--- a/ace/RMCast/RMCast_Module_Factory.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-// $Id$
-
-#include "RMCast_Module_Factory.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Module_Factory.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Module_Factory, "$Id$")
-
-ACE_RMCast_Module_Factory::~ACE_RMCast_Module_Factory (void)
-{
-}
diff --git a/ace/RMCast/RMCast_Module_Factory.h b/ace/RMCast/RMCast_Module_Factory.h
deleted file mode 100644
index 97e6ce29235..00000000000
--- a/ace/RMCast/RMCast_Module_Factory.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// RMCast_Module_Factory.h
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_MODULE_FACTORY_H
-#define ACE_RMCAST_MODULE_FACTORY_H
-#include "ace/pre.h"
-
-#include "RMCast.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_RMCast_Module;
-class ACE_RMCast_IO_UDP;
-
-//! Create Module stacks
-/*!
- * Different application will probably require different
- * configurations in their Module stack, some will just want best
- * effort semantics. Others will use Reliable communication with a
- * maximum retransmission time. Furthermore, applications may want to
- * receive messages in send order, or just as soon as they are
- * received.
- * Obviously most applications will want to change want happens once a
- * message is completely received.
- *
- * To achieve all this flexibility the IO layer uses this factory to
- * create the full stack of Modules corresponding to a single
- * consumer.
- * To keep the complexity under control the intention is to create
- * helper Factories, such as Reliable_Module_Factory where
- * applications only need to customize a few features.
- */
-class ACE_RMCast_Export ACE_RMCast_Module_Factory
-{
-public:
- //! Destructor
- virtual ~ACE_RMCast_Module_Factory (void);
-
- //! Create a new proxy
- virtual ACE_RMCast_Module *create (void) = 0;
-
- //! Destroy a proxy
- /*!
- * Some factories may allocate modules from a pool, or return the
- * same module for all proxies. Consequently, only the factory
- * knows how to destroy them.
- */
- virtual void destroy (ACE_RMCast_Module *) = 0;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Module_Factory.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_MODULE_FACTORY_H */
diff --git a/ace/RMCast/RMCast_Module_Factory.i b/ace/RMCast/RMCast_Module_Factory.i
deleted file mode 100644
index cfa1da318d3..00000000000
--- a/ace/RMCast/RMCast_Module_Factory.i
+++ /dev/null
@@ -1 +0,0 @@
-// $Id$
diff --git a/ace/RMCast/RMCast_Partial_Message.cpp b/ace/RMCast/RMCast_Partial_Message.cpp
deleted file mode 100644
index 5de2e660a11..00000000000
--- a/ace/RMCast/RMCast_Partial_Message.cpp
+++ /dev/null
@@ -1,215 +0,0 @@
-// $Id$
-
-#include "RMCast_Partial_Message.h"
-
-#if !defined (__ACE_INLINE__)
-#include "RMCast_Partial_Message.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Partial_Message, "$Id$")
-
-ACE_RMCast_Partial_Message::
-ACE_RMCast_Partial_Message (ACE_UINT32 message_size)
- : max_hole_count_ (ACE_RMCAST_DEFAULT_HOLE_COUNT),
- hole_count_ (1)
-{
- ACE_NEW (this->hole_list_,
- ACE_RMCast_Partial_Message::Hole[this->max_hole_count_]);
- this->hole_list_[0].start = 0;
- this->hole_list_[0].end = message_size;
-
- this->message_body_.size (message_size);
- this->message_body_.wr_ptr (message_size);
-}
-
-ACE_RMCast_Partial_Message::
-~ACE_RMCast_Partial_Message (void)
-{
- delete[] this->hole_list_;
-}
-
-int
-ACE_RMCast_Partial_Message::fragment_received (ACE_UINT32 message_size,
- ACE_UINT32 offset,
- ACE_Message_Block *mb)
-{
- if (this->message_body_.length () != message_size)
- {
- // ACE_DEBUG ((LM_DEBUG,
- // "Partial_Message::fragment_received - "
- // "invalid message length\n"));
- return -1;
- }
-
- // Just copy the data...
- char *rd_ptr = this->message_body_.rd_ptr () + offset;
- size_t total_length = 0;
- {
- for (const ACE_Message_Block *i = mb; i != 0; i = i->cont ())
- {
- if (rd_ptr + i->length () > this->message_body_.wr_ptr ())
- {
- // ACE_DEBUG ((LM_DEBUG,
- // "Partial_Message::fragment_received - "
- // "invalid payload length\n"));
- return -1;
- }
- ACE_OS::memcpy (rd_ptr, i->rd_ptr (), i->length ());
- rd_ptr += i->length ();
- total_length += i->length ();
- }
- }
-
- // The algorithm works like this:
- //
- // For each hole we determine if there is an intersection between
- // the hole and the incoming fragment. If there is none we do
- // nothing (actually since the holes are ordered we can stop the
- // iteration if the
-
- ACE_UINT32 start = offset;
- ACE_UINT32 end = offset + total_length;
-
- while (start != end && this->hole_count_ != 0)
- {
- for (size_t i = 0; i < this->hole_count_; ++i)
- {
- Hole& hole = this->hole_list_[i];
-
- // First check if the new data insersects the hole...
- if (end <= hole.start)
- return 0;
- if (start >= hole.end)
- {
- if (i == this->hole_count_ - 1)
- return 0;
- else
- continue;
- }
-
- // The hole and the new fragment intersect, we have to
- // update the hole list.
- //
- // There are only three cases for the <start> value:
- // start < hole.start
- // start == hole.start
- // hole.start < start < hole.end
- //
- // But the code for both start == hole.start and start <
- // hole.start is identical....
-
- if (start <= hole.start)
- {
- if (end < hole.end)
- {
- // NOTE: hole.start < end, because of previous test
-
- // In this case we shrink the hole, but it is not
- // removed!
- hole.start = end;
- return 0;
- }
- else // end >= hole.end
- {
- start = hole.end;
- // We remove the hole, and continue the iteration...
- if (this->remove_hole (i) == -1)
- return -1;
- break;
- }
- }
- else // hole.start < start < hole.end
- {
- if (end >= hole.end)
- {
- // Just adjust the size of the hole...
- ACE_UINT32 tmp = hole.end;
- hole.end = start;
- start = tmp;
- break;
- }
- else // if (end < hole.end)
- {
- // Nasty, we need to insert a new hole...
- if (this->insert_hole (i, end, hole.end) == -1)
- return -1;
- // and change the old hole...
- // NOTE: we have to refetch it because the array may
- // have been reallocated!
- this->hole_list_[i].end = start;
- return 0;
- }
- }
- }
- }
- return 0;
- // @@ OLD COMMENTS, the algorithm has changed since!
- // There are several cases:
- //
- // 1) The fragment is completely contained in data already received,
- // nothing changes in this case.
- //
- // 2) Part of the fragment is contained in data already received and
- // part is new data:
- // 2.1) The new data closes a hole, remove it from the list
- // 2.2) The beginning of the new fragment is the new data, reduce
- // the size of the hole
- // 2.3) The end of the new fragment is the new data, increment
- // the size of the received block
- //
- // 3) The fragment is completely contained in a hole
- // 3.1) It closes the hole, remove it from the list
- // 3.2) It starts at the beginning of a hole, grow the received
- // block
- // 3.3) It ends at the end of a hole, reduce the hole size
- // 3.4) It is in the middle of a hole, insert a new hole
- //
-}
-
-int
-ACE_RMCast_Partial_Message::insert_hole (size_t i,
- ACE_UINT32 start,
- ACE_UINT32 end)
-{
- // ACE_DEBUG ((LM_DEBUG,
- // "Partial_Message::insert_hole %d = [%d,%d]\n",
- // i, start, end));
- if (this->hole_count_ + 1 > this->max_hole_count_)
- {
- this->max_hole_count_ *= 2;
- Hole *tmp;
- ACE_NEW_RETURN (tmp, Hole[this->max_hole_count_], -1);
- for (size_t j = 0; j != this->hole_count_; ++j)
- {
- tmp[j] = this->hole_list_[j];
- }
- delete[] this->hole_list_;
- this->hole_list_ = tmp;
- }
- if (this->hole_count_ != 0)
- {
- for (size_t j = this->hole_count_ - 1; j >= i + 1; --j)
- {
- this->hole_list_[j+1] = this->hole_list_[j];
- }
- }
-
- this->hole_list_[i + 1].start = start;
- this->hole_list_[i + 1].end = end;
- this->hole_count_++;
-
- return 0;
-}
-
-int
-ACE_RMCast_Partial_Message::remove_hole (size_t i)
-{
- // ACE_DEBUG ((LM_DEBUG,
- // "Partial_Message::remove_hole %d\n",
- // i));
- for (size_t j = i; j != this->hole_count_ - 1; ++j)
- this->hole_list_[j] = this->hole_list_[j + 1];
-
- this->hole_count_--;
- return 0;
-}
diff --git a/ace/RMCast/RMCast_Partial_Message.h b/ace/RMCast/RMCast_Partial_Message.h
deleted file mode 100644
index 88fa9ab2f1a..00000000000
--- a/ace/RMCast/RMCast_Partial_Message.h
+++ /dev/null
@@ -1,102 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = DESCRIPTION
-// Helper class used in the reassembly layer of the realiable
-// multicast library.
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_PARTIAL_MESSAGE_H
-#define ACE_RMCAST_PARTIAL_MESSAGE_H
-#include "ace/pre.h"
-
-#include "RMCast_Export.h"
-#include "ace/Task.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#ifndef ACE_RMCAST_DEFAULT_HOLE_COUNT
-#define ACE_RMCAST_DEFAULT_HOLE_COUNT 16
-#endif /* ACE_RMCAST_DEFAULT_HOLE_COUNT */
-
-//! Represent a partially received message in the
-//! ACE_RMCast_Reassembly module
-/*!
- * This class provides temporary storage for the fragments as they are
- * received in the ACE_RMCast_Reassembly module. It also keeps track
- * of what portions of the message are still missing.
- */
-class ACE_RMCast_Export ACE_RMCast_Partial_Message
-{
-public:
- //! Constructor, reserve enough memory for the complete message
- ACE_RMCast_Partial_Message (ACE_UINT32 message_size);
-
- //! Destructor
- ~ACE_RMCast_Partial_Message (void);
-
- //! Process a fragment
- /*!
- * A fragment starting at <offset> has been received, copy the
- * fragment contents and update the list of holes.
- */
- int fragment_received (ACE_UINT32 message_size,
- ACE_UINT32 offset,
- ACE_Message_Block *mb);
-
- //! Return 1 if the message is complete
- int is_complete (void) const;
-
- //! Return the body of the message, the memory is *not* owned by the
- //! caller
- ACE_Message_Block *message_body (void);
-
-private:
- //! Insert a new hole into the list
- /*!
- * The class keeps an array to represent the missing portions of the
- * message. This method inserts a new hole, i.e. a new element in
- * the array at index <i>. The <start> and <end> arguments represent
- * the offsets of the missing portion of the message.
- */
- int insert_hole (size_t i,
- ACE_UINT32 start,
- ACE_UINT32 end);
-
- //! Remove a hole from the list
- int remove_hole (size_t i);
-
-private:
- //! Maintain the message storage
- ACE_Message_Block message_body_;
-
- //! Represent a missing portion of a message
- struct Hole
- {
- //! Offset where the missing portion of the message starts
- ACE_UINT32 start;
- //! Offset where the missing portion of the message ends
- ACE_UINT32 end;
- };
-
- //! Implement a growing array of Hole structures
- //@{
- Hole *hole_list_;
- size_t max_hole_count_;
- size_t hole_count_;
- //@}
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Partial_Message.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_PARTIAL_MESSAGE_H */
diff --git a/ace/RMCast/RMCast_Partial_Message.i b/ace/RMCast/RMCast_Partial_Message.i
deleted file mode 100644
index 7be89aa1932..00000000000
--- a/ace/RMCast/RMCast_Partial_Message.i
+++ /dev/null
@@ -1,15 +0,0 @@
-// $Id$
-
-ACE_INLINE int
-ACE_RMCast_Partial_Message::is_complete (void) const
-{
- return (this->hole_count_ == 0)
- || (this->hole_count_ == 1
- && this->hole_list_[0].start == this->hole_list_[0].end);
-}
-
-ACE_INLINE ACE_Message_Block *
-ACE_RMCast_Partial_Message::message_body (void)
-{
- return &this->message_body_;
-}
diff --git a/ace/RMCast/RMCast_Proxy.cpp b/ace/RMCast/RMCast_Proxy.cpp
deleted file mode 100644
index 2257f9a2bd7..00000000000
--- a/ace/RMCast/RMCast_Proxy.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-//
-// $Id$
-//
-
-#include "RMCast_Proxy.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Proxy.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Proxy, "$Id$")
-
-ACE_RMCast_Proxy::~ACE_RMCast_Proxy (void)
-{
-}
-
-ACE_UINT32
-ACE_RMCast_Proxy::next_expected (void) const
-{
- return this->next_expected_;
-}
-
-ACE_UINT32
-ACE_RMCast_Proxy::highest_received (void) const
-{
- return this->highest_received_;
-}
-
-int
-ACE_RMCast_Proxy::ack (ACE_RMCast::Ack &ack)
-{
- this->next_expected_ = ack.next_expected;
- this->highest_received_ = ack.highest_received;
- return this->ACE_RMCast_Module::ack (ack);
-}
-
-int
-ACE_RMCast_Proxy::reply_ack_join (ACE_RMCast::Ack_Join &ack_join)
-{
- if (this->next_expected_ < ack_join.next_sequence_number)
- {
- this->next_expected_ = ack_join.next_sequence_number;
- this->highest_received_ = ack_join.next_sequence_number;
- }
- return 0;
-}
diff --git a/ace/RMCast/RMCast_Proxy.h b/ace/RMCast/RMCast_Proxy.h
deleted file mode 100644
index d774efe4b2c..00000000000
--- a/ace/RMCast/RMCast_Proxy.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// RMCast_Proxy.h
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_PROXY_H
-#define ACE_RMCAST_PROXY_H
-#include "ace/pre.h"
-
-#include "RMCast_Module.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_Message_Block;
-class ACE_Time_Value;
-
-//! Local representation for remote peers
-/*!
- Both senders and receivers in the multicast group need to maintain
- explicit representations of their "peers". For example, a sender
- needs to know the list of all the receivers and what messages they
- have reported as successfully received.
- Likewise, the receiver needs to maintain separate state for each
- remote sender, and must be able to disconnect from all of them
- gracefully when needed.
- The RMCast_Proxy class is an opaque representation of such a peer,
- and hides all the networking details from the rest of the system.
-*/
-class ACE_RMCast_Export ACE_RMCast_Proxy : public ACE_RMCast_Module
-{
-public:
- //! Constructor
- ACE_RMCast_Proxy (void);
- // Constructor
-
- //! Destructor
- virtual ~ACE_RMCast_Proxy (void);
-
- //! Return the next sequence number expected by the peer. Only
- //! applies to remote receiver proxies.
- /*!
- * Please read the documentation in ACE_RMCast::Ack
- */
- virtual ACE_UINT32 next_expected (void) const;
-
- //! Return the highest sequence number successfully received.
- //! Only applies to remote receiver proxies.
- /*!
- * Please read the documentation in ACE_RMCast::Ack
- */
- virtual ACE_UINT32 highest_received (void) const;
-
- //@{
- //! Send messages directly to the peer.
- /*!
- * Send a message directly to the peer, i.e. the message is not
- * sent through the multicast group and it may not be processed by
- * all the layers in the stack.
- */
- virtual int reply_data (ACE_RMCast::Data &) = 0;
- virtual int reply_poll (ACE_RMCast::Poll &) = 0;
- virtual int reply_ack_join (ACE_RMCast::Ack_Join &);
- virtual int reply_ack_leave (ACE_RMCast::Ack_Leave &) = 0;
- virtual int reply_ack (ACE_RMCast::Ack &) = 0;
- virtual int reply_join (ACE_RMCast::Join &) = 0;
- virtual int reply_leave (ACE_RMCast::Leave &) = 0;
- //@}
-
- /*!
- * Proxies process the ACK sequence numbers to cache the ack
- * information from the peer.
- */
- virtual int ack (ACE_RMCast::Ack &);
-
-private:
- //@{
- //! Cache the sequence numbers reported from the remote peer using
- //! Ack messages
- ACE_UINT32 next_expected_;
- ACE_UINT32 highest_received_;
- //@}
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Proxy.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_PROXY_H */
diff --git a/ace/RMCast/RMCast_Proxy.i b/ace/RMCast/RMCast_Proxy.i
deleted file mode 100644
index 6fee09fe9e5..00000000000
--- a/ace/RMCast/RMCast_Proxy.i
+++ /dev/null
@@ -1,8 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_RMCast_Proxy::ACE_RMCast_Proxy (void)
- : next_expected_ (0)
- , highest_received_ (0)
-{
-}
diff --git a/ace/RMCast/RMCast_Reassembly.cpp b/ace/RMCast/RMCast_Reassembly.cpp
deleted file mode 100644
index 9e4e9103c45..00000000000
--- a/ace/RMCast/RMCast_Reassembly.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-// $Id$
-
-#include "RMCast_Reassembly.h"
-#include "RMCast_Partial_Message.h"
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "RMCast_Reassembly.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Reassembly, "$Id$")
-
-ACE_RMCast_Reassembly::
-ACE_RMCast_Reassembly (void)
- : ACE_RMCast_Module ()
-{
-}
-
-ACE_RMCast_Reassembly::~ACE_RMCast_Reassembly (void)
-{
- (void) this->close_i ();
-}
-
-/**
- *
- * We cleanup the resources in the destructor
- */
-int
-ACE_RMCast_Reassembly::close ()
-{
- this->close_i ();
- return this->ACE_RMCast_Module::close ();
-}
-
-int
-ACE_RMCast_Reassembly::data (ACE_RMCast::Data &data)
-{
- if (this->next () == 0)
- return 0;
-
- // ACE_DEBUG ((LM_DEBUG,
- // "Reassembly::data - %d,%d,%d\n",
- // data.sequence_number,
- // data.total_size,
- // data.fragment_offset));
-
- if (data.payload->length () + data.fragment_offset > data.total_size)
- {
- ACE_ERROR ((LM_ERROR,
- "RMCast_Reassembly::data - invalid size\n"));
- return -1; // Corrupt message?
- }
-
- ACE_RMCast_Partial_Message *message;
-
- {
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1);
- if (this->messages_.find (data.sequence_number, message) == -1)
- {
- ACE_NEW_RETURN (message,
- ACE_RMCast_Partial_Message (data.total_size),
- -1);
-
- // ACE_DEBUG ((LM_DEBUG,
- // "Reassembly::data - new message\n"));
- if (this->messages_.bind (data.sequence_number,
- message) == -1)
- return -1; // Internal error?
- }
-
- if (message->fragment_received (data.total_size,
- data.fragment_offset,
- data.payload) == -1)
- {
- // ACE_DEBUG ((LM_DEBUG,
- // "Error in fragment_received\n"));
- return -1;
- }
-
- if (!message->is_complete ())
- {
- // ACE_DEBUG ((LM_DEBUG,
- // "Reassembly::data - message still incomplete\n"));
- return 0;
- }
-
- if (this->messages_.unbind (data.sequence_number) == -1)
- {
- // ACE_DEBUG ((LM_DEBUG,
- // "Reassembly::data - message now complete\n"));
- return -1;
- }
- }
-
- // Push the message...
- ACE_RMCast::Data downstream_data;
- downstream_data.source = data.source;
- downstream_data.sequence_number = data.sequence_number;
- downstream_data.total_size = message->message_body ()->length ();
- downstream_data.fragment_offset = 0;
- downstream_data.payload = message->message_body ();
-
- int r = this->next ()->data (downstream_data);
-
- delete message;
-
- return r;
-}
-
-void
-ACE_RMCast_Reassembly::close_i (void)
-{
- for (Message_Map_Iterator i = this->messages_.begin ();
- i != this->messages_.end ();
- ++i)
- {
- ACE_RMCast_Partial_Message *message = (*i).int_id_;
- if (message != 0)
- delete message;
- }
- this->messages_.unbind_all ();
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Hash_Map_Manager<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Manager_Ex<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Hash<ACE_UINT32>,ACE_Equal_To<ACE_UINT32>,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Hash<ACE_UINT32>,ACE_Equal_To<ACE_UINT32>,ACE_Null_Mutex >;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Hash<ACE_UINT32>,ACE_Equal_To<ACE_UINT32>,ACE_Null_Mutex >;
-template class ACE_Hash_Map_Iterator_Base_Ex<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Hash<ACE_UINT32>,ACE_Equal_To<ACE_UINT32>,ACE_Null_Mutex >;
-template class ACE_Hash_Map_Entry<ACE_UINT32,ACE_RMCast_Partial_Message*>;
-
-template class ACE_Less_Than<ACE_UINT32>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Hash_Map_Manager<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Hash<ACE_UINT32>,ACE_Equal_To<ACE_UINT32>,ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Hash<ACE_UINT32>,ACE_Equal_To<ACE_UINT32>,ACE_Null_Mutex >
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Hash<ACE_UINT32>,ACE_Equal_To<ACE_UINT32>,ACE_Null_Mutex >
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Hash<ACE_UINT32>,ACE_Equal_To<ACE_UINT32>,ACE_Null_Mutex >
-#pragma instantiate ACE_Hash_Map_Entry<ACE_UINT32,ACE_RMCast_Partial_Message*>
-
-#pragma instantiate ACE_Less_Than<ACE_UINT32>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/ace/RMCast/RMCast_Reassembly.h b/ace/RMCast/RMCast_Reassembly.h
deleted file mode 100644
index a9ebb480ac3..00000000000
--- a/ace/RMCast/RMCast_Reassembly.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = DESCRIPTION
-// The reassembly task for the reliable multicast library
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_REASSEMBLY_H
-#define ACE_RMCAST_REASSEMBLY_H
-#include "ace/pre.h"
-
-#include "RMCast_Module.h"
-#include "ace/Hash_Map_Manager.h"
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_RMCast_Partial_Message;
-
-//! Reassemble multiple data fragments into a single data message
-/*!
- Data messages may not fit in a single MTU in the transport layer, in
- that case the application configure a RMCast_Fragment module on the
- sender side. On the receiver side this layer reassemble the
- messages sent from a <EM>single</EM> source, and passes the messages
- up the stream.
-*/
-class ACE_RMCast_Export ACE_RMCast_Reassembly : public ACE_RMCast_Module
-{
-public:
- //! Constructor
- ACE_RMCast_Reassembly (void);
-
- //! Destructor
- virtual ~ACE_RMCast_Reassembly (void);
-
- // = The ACE_RMCast_Module methods
- virtual int close (void);
- virtual int data (ACE_RMCast::Data &data);
-
-private:
- /// Cleanup resources, but do not close the other modules in the
- /// stack
- void close_i (void);
-
-private:
- //! A mutex used to synchronize all the internal operations.
- ACE_SYNCH_MUTEX mutex_;
- typedef
- ACE_Hash_Map_Manager<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Null_Mutex>
- Message_Map;
- typedef
- ACE_Hash_Map_Iterator<ACE_UINT32,ACE_RMCast_Partial_Message*,ACE_Null_Mutex>
- Message_Map_Iterator;
-
- //! A map, indexed by sequence number, of the partially received
- //! messages.
- Message_Map messages_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Reassembly.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_REASSEMBLY_H */
diff --git a/ace/RMCast/RMCast_Reassembly.i b/ace/RMCast/RMCast_Reassembly.i
deleted file mode 100644
index cfa1da318d3..00000000000
--- a/ace/RMCast/RMCast_Reassembly.i
+++ /dev/null
@@ -1 +0,0 @@
-// $Id$
diff --git a/ace/RMCast/RMCast_Receiver_Module.cpp b/ace/RMCast/RMCast_Receiver_Module.cpp
deleted file mode 100644
index 2d08ca4bb02..00000000000
--- a/ace/RMCast/RMCast_Receiver_Module.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-//
-// $Id$
-//
-
-#include "RMCast_Receiver_Module.h"
-#include "RMCast_Proxy.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Receiver_Module.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Receiver_Module, "$Id$")
-
-ACE_RMCast_Receiver_Module::~ACE_RMCast_Receiver_Module (void)
-{
-}
-
-int
-ACE_RMCast_Receiver_Module::data (ACE_RMCast::Data &data)
-{
- switch (this->state_)
- {
- case RS_NON_EXISTENT:
- case RS_JOINING:
- if (data.source != 0)
- {
- //ACE_DEBUG ((LM_DEBUG,
- // "Receiver_Module::data - joining\n"));
-
- this->state_ = RS_JOINING;
- ACE_RMCast::Join join;
- if (data.source->reply_join (join) != 0)
- this->leaving (data.source);
- }
- break;
-
- case RS_JOINED:
- // ACE_DEBUG ((LM_DEBUG,
- // "Receiver_Module::data - joined\n"));
- if (this->ACE_RMCast_Module::data (data) != 0)
- this->leaving (data.source);
- break;
-
- default:
- case RS_LEAVING:
- this->leaving (data.source);
- break;
- }
- return 0;
-}
-
-int
-ACE_RMCast_Receiver_Module::poll (ACE_RMCast::Poll &poll)
-{
- switch (this->state_)
- {
- case RS_NON_EXISTENT:
- case RS_JOINING:
- if (poll.source != 0)
- {
- this->state_ = RS_JOINING;
- ACE_RMCast::Join join;
- if (poll.source->reply_join (join) != 0)
- this->leaving (poll.source);
- }
- break;
-
- case RS_JOINED:
- if (this->ACE_RMCast_Module::poll (poll) != 0)
- this->leaving (poll.source);
-
- default:
- case RS_LEAVING:
- this->leaving (poll.source);
- break;
- }
- return 0;
-}
-
-int
-ACE_RMCast_Receiver_Module::ack_join (ACE_RMCast::Ack_Join &ack_join)
-{
- switch (this->state_)
- {
- case RS_NON_EXISTENT:
- if (ack_join.source != 0)
- {
- //ACE_DEBUG ((LM_DEBUG,
- // "Receiver_Module::ack_join - joining\n"));
-
- this->state_ = RS_JOINING;
- ACE_RMCast::Join join;
- if (ack_join.source->reply_join (join) != 0)
- this->leaving (ack_join.source);
- }
- break;
-
- case RS_JOINING:
- case RS_JOINED:
- //ACE_DEBUG ((LM_DEBUG,
- // "Receiver_Module::ack_join - joined\n"));
-
- this->state_ = RS_JOINED;
- if (this->ACE_RMCast_Module::ack_join (ack_join) != 0)
- this->leaving (ack_join.source);
- break;
-
- default:
- case RS_LEAVING:
- this->leaving (ack_join.source);
- break;
- }
- return 0;
-}
-
-int
-ACE_RMCast_Receiver_Module::ack_leave (ACE_RMCast::Ack_Leave &ack_leave)
-{
- //ACE_DEBUG ((LM_DEBUG,
- // "Receiver_Module::ack_leave\n"));
-
- (void) this->ACE_RMCast_Module::ack_leave (ack_leave);
-
- // Returning -1 should remove the Proxy from the local set
- return -1;
-}
-
-int
-ACE_RMCast_Receiver_Module::ack (ACE_RMCast::Ack &)
-{
- return -1;
-}
-
-int
-ACE_RMCast_Receiver_Module::join (ACE_RMCast::Join &)
-{
- return -1;
-}
-
-int
-ACE_RMCast_Receiver_Module::leave (ACE_RMCast::Leave &)
-{
- return -1;
-}
-
-void
-ACE_RMCast_Receiver_Module::leaving (ACE_RMCast_Proxy *proxy)
-{
- this->state_ = RS_LEAVING;
- if (proxy != 0)
- {
- ACE_RMCast::Leave leave;
- (void) proxy->reply_leave (leave);
- }
- (void) this->close ();
-}
diff --git a/ace/RMCast/RMCast_Receiver_Module.h b/ace/RMCast/RMCast_Receiver_Module.h
deleted file mode 100644
index 35ae8c642c7..00000000000
--- a/ace/RMCast/RMCast_Receiver_Module.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace/RMCast
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_RECEIVER_MODULE_H
-#define ACE_RMCAST_RECEIVER_MODULE_H
-#include "ace/pre.h"
-
-#include "RMCast_Module.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/// Keep track of the receiver module.
-/**
- * A receiver proxy must reject invalid messages and communicate with
- * the sender to join and leave the multicast group.
- *
- * This module performs all the task related to
- *
- */
-class ACE_RMCast_Export ACE_RMCast_Receiver_Module : public ACE_RMCast_Module
-{
-public:
- //! Constructor
- ACE_RMCast_Receiver_Module (void);
-
- //! Destructor
- virtual ~ACE_RMCast_Receiver_Module (void);
-
- virtual int data (ACE_RMCast::Data &);
- virtual int poll (ACE_RMCast::Poll &);
- virtual int ack_join (ACE_RMCast::Ack_Join &);
- virtual int ack_leave (ACE_RMCast::Ack_Leave &);
- virtual int ack (ACE_RMCast::Ack &);
- virtual int join (ACE_RMCast::Join &);
- virtual int leave (ACE_RMCast::Leave &);
-
- /// Simple enum used to describe the receiver state transitions
- /**
- * Receivers go through several states before they can fully accept
- * messages, the following comments describe those states, as well as
- * the possible transitions
- * This configuration is pesimistic, any invalid message is cause
- * enough to reclaim all the resources. This partially addresses
- * situations where either accidentally or intentionally a sender is
- * multicasting packets to the wrong group.
-
- <CODE>
- NON_EXISTENT JOINING JOINED LEAVING<BR>
- ----------------------------------------------------------------<BR>
- <BR>
- DATA JOINING JOINING JOINED LEAVING<BR>
- Send/Join Send/Join Recv/Data Send/Leave<BR>
- <BR>
- POLL JOINING JOINING JOINED LEAVING<BR>
- Send/Join Send/Join Send/Ack Send/Leave<BR>
- <BR>
- ACK_JOIN JOINING JOINED JOINED LEAVING<BR>
- Send/Join Receive Msg Receive Msg Send/Leave<BR>
- <BR>
- ACK_LEAVE NON_EXISTENT NON_EXISTENT NON_EXISTENT NON_EXISTENT<BR>
- Noop Destroy Destroy Destroy<BR>
- <BR>
- ACK NON_EXISTENT NON_EXISTENT NON_EXISTENT NON_EXISTENT<BR>
- Noop Destroy Destroy Destroy<BR>
- <BR>
- JOIN NON_EXISTENT NON_EXISTENT NON_EXISTENT NON_EXISTENT<BR>
- Noop Destroy Destroy Destroy<BR>
- <BR>
- LEAVE NON_EXISTENT NON_EXISTENT NON_EXISTENT NON_EXISTENT<BR>
- Noop Destroy Destroy Destroy<BR>
- <BR>
- </CODE>
- */
- enum Receiver_State
- {
- RS_NON_EXISTENT,
- RS_JOINING,
- RS_JOINED,
- RS_LEAVING
- };
-
-private:
- /// Enter the leaving state, prepare for termination
- void leaving (ACE_RMCast_Proxy *proxy);
-
-private:
- /// The current state of the receiver
- int state_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Receiver_Module.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_RECEIVER_MODULE_H */
diff --git a/ace/RMCast/RMCast_Receiver_Module.i b/ace/RMCast/RMCast_Receiver_Module.i
deleted file mode 100644
index 6662f7f048a..00000000000
--- a/ace/RMCast/RMCast_Receiver_Module.i
+++ /dev/null
@@ -1,7 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_RMCast_Receiver_Module::ACE_RMCast_Receiver_Module (void)
- : state_ (ACE_RMCast_Receiver_Module::RS_NON_EXISTENT)
-{
-}
diff --git a/ace/RMCast/RMCast_Reliable_Factory.cpp b/ace/RMCast/RMCast_Reliable_Factory.cpp
deleted file mode 100644
index 6140c685153..00000000000
--- a/ace/RMCast/RMCast_Reliable_Factory.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-// $Id$
-
-#include "RMCast_Reliable_Factory.h"
-#include "RMCast_Receiver_Module.h"
-#include "RMCast_Reassembly.h"
-#include "RMCast_Reordering.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Reliable_Factory.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Reliable_Factory, "$Id$")
-
-ACE_RMCast_Reliable_Factory::~ACE_RMCast_Reliable_Factory (void)
-{
-}
-
-ACE_RMCast_Module*
-ACE_RMCast_Reliable_Factory::create (void)
-{
- ACE_RMCast_Module *receiver;
- ACE_NEW_RETURN (receiver, ACE_RMCast_Receiver_Module, 0);
-
- ACE_RMCast_Module *reassembly;
- ACE_NEW_RETURN (reassembly, ACE_RMCast_Reassembly, 0);
-
- ACE_RMCast_Module *reordering;
- ACE_NEW_RETURN (reordering, ACE_RMCast_Reordering, 0);
-
- ACE_RMCast_Module *user = this->factory_->create ();
- if (user == 0)
- {
- delete receiver;
- delete reordering;
- delete reassembly;
- return 0;
- }
- receiver->next (reassembly);
- reassembly->next (reordering);
- reordering->next (user);
- return receiver;
-}
-
-void
-ACE_RMCast_Reliable_Factory::destroy (ACE_RMCast_Module *receiver)
-{
- ACE_RMCast_Module *reassembly = receiver->next ();
- ACE_RMCast_Module *reordering = reassembly->next ();
- ACE_RMCast_Module *user = reordering->next ();
- this->factory_->destroy (user);
- delete reordering;
- delete reassembly;
- delete receiver;
-}
diff --git a/ace/RMCast/RMCast_Reliable_Factory.h b/ace/RMCast/RMCast_Reliable_Factory.h
deleted file mode 100644
index 0115344c7e3..00000000000
--- a/ace/RMCast/RMCast_Reliable_Factory.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// RMCast_Reliable_Factory.h
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_RELIABLE_FACTORY_H
-#define ACE_RMCAST_RELIABLE_FACTORY_H
-#include "ace/pre.h"
-
-#include "RMCast_Module_Factory.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/// Implement an ACE_RMCast_Module_Factory that "creates" a single
-/// object.
-/**
- * Many applications (and even some internal components), will use a
- * single ACE_RMCast_Module to process all the events, for example, a
- * receiver may decide to use the same ACE_RMCast_Module to process
- * all incoming events, instead of using one per remote sender.
- */
-class ACE_RMCast_Export ACE_RMCast_Reliable_Factory : public ACE_RMCast_Module_Factory
-{
-public:
- /// Constructor
- ACE_RMCast_Reliable_Factory (ACE_RMCast_Module_Factory *factory);
-
- //! Destructor
- virtual ~ACE_RMCast_Reliable_Factory (void);
-
- /**
- * The create() method will return always @c reliable.
- */
- virtual ACE_RMCast_Module *create (void);
- virtual void destroy (ACE_RMCast_Module *);
-
-private:
- /// Delegate on another factory to create the user module
- ACE_RMCast_Module_Factory *factory_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Reliable_Factory.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_RELIABLE_FACTORY_H */
diff --git a/ace/RMCast/RMCast_Reliable_Factory.i b/ace/RMCast/RMCast_Reliable_Factory.i
deleted file mode 100644
index 47ba22754ec..00000000000
--- a/ace/RMCast/RMCast_Reliable_Factory.i
+++ /dev/null
@@ -1,8 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_RMCast_Reliable_Factory::
- ACE_RMCast_Reliable_Factory (ACE_RMCast_Module_Factory *factory)
- : factory_ (factory)
-{
-}
diff --git a/ace/RMCast/RMCast_Reordering.cpp b/ace/RMCast/RMCast_Reordering.cpp
deleted file mode 100644
index 5a81a360783..00000000000
--- a/ace/RMCast/RMCast_Reordering.cpp
+++ /dev/null
@@ -1,178 +0,0 @@
-//
-// $Id$
-//
-
-#include "RMCast_Reordering.h"
-#include "RMCast_Proxy.h"
-#include "ace/Message_Block.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Reordering.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Reordering, "$Id$")
-
-ACE_RMCast_Reordering::~ACE_RMCast_Reordering (void)
-{
-}
-
-int
-ACE_RMCast_Reordering::close (void)
-{
- Messages_Iterator i = this->messages_.begin ();
- Messages_Iterator end = this->messages_.end ();
-
- while (i != end)
- {
- ACE_Message_Block::release ((*i).item ().payload);
- this->messages_.unbind ((*i).key ());
- i = this->messages_.begin ();
- }
- return this->ACE_RMCast_Module::close ();
-}
-
-int
-ACE_RMCast_Reordering::data (ACE_RMCast::Data &data)
-{
- int must_ack = 0;
- int result = 0;
- ACE_RMCast::Ack ack;
-
- //ACE_DEBUG ((LM_DEBUG, "Received message (%d)\n", data.sequence_number));
- {
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1);
-
- if (data.sequence_number < this->next_expected_)
- {
- // Old message. Ack with the current status (look at the end
- // of this block).
- must_ack = 1;
-
- //ACE_DEBUG ((LM_DEBUG, ".... old message is ignored\n"));
- }
-
- else if (data.sequence_number == this->next_expected_)
- {
- //ACE_DEBUG ((LM_DEBUG, ".... message is in order, received\n"));
-
- // Accept the message, the current thread will dispatch it, so
- // it is marked as accepted (using the <next_expected> field).
- // Any other thread will not push that message because now it
- // is "old".
-
- this->next_expected_++;
-
- // Right message, process as many messages as possible from
- // the queue, then ack the right level...
-
- // NOTE: we cannot release the mutex while dispatching
- // events, otherwise: how do we stop other threads from
- // delivering messages out of order? I.E. what if the
- // next thread receives the next message?
- if (this->next () != 0)
- {
- result = this->next ()->data (data);
- }
-
- // After delivering one message there may be more messages
- // pending
- if (result == 0)
- result = this->push_queued_messages ();
-
- //@@ This should be strategized, for example, only Ack if
- // there is a message out of order or something, otherwise
- // continue with happiness. That works well for "optimistic
- // models".
- must_ack = 1;
- }
-
- else
- {
- //ACE_DEBUG ((LM_DEBUG, ".... message out of sequence, saved\n"));
-
- // Out of sequence.
- if (this->highest_received_ < data.sequence_number)
- {
- this->highest_received_ = data.sequence_number;
- }
- ACE_RMCast::Data new_data = data;
- new_data.payload = ACE_Message_Block::duplicate (data.payload);
- (void) this->messages_.bind (data.sequence_number, new_data);
- // re-ack, otherwise save it and ack.
- }
-
- ack.next_expected = this->next_expected_;
- ack.highest_received = this->highest_received_;
- }
-
- if (must_ack && data.source != 0)
- (void) data.source->reply_ack (ack);
-
- return result;
-}
-
-int
-ACE_RMCast_Reordering::ack_join (ACE_RMCast::Ack_Join &ack_join)
-{
- //ACE_DEBUG ((LM_DEBUG, "RMCast_Reordering::ack_join - <%d,%d>\n",
- // this->next_expected_,
- // ack_join.next_sequence_number));
-
- {
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1);
- if (this->next_expected_ >= ack_join.next_sequence_number)
- {
- // Nothing to do in this case...
- return 0;
- }
-
- Messages_Iterator i = this->messages_.begin ();
- Messages_Iterator end = this->messages_.end ();
-
- while (i != end
- && (*i).key () < ack_join.next_sequence_number)
- {
- ACE_Message_Block::release ((*i).item ().payload);
- this->messages_.unbind ((*i).key ());
- i = this->messages_.begin ();
- }
-
- this->next_expected_ = ack_join.next_sequence_number;
- if (this->highest_received_ < ack_join.next_sequence_number)
- this->highest_received_ = ack_join.next_sequence_number;
-
- this->push_queued_messages ();
- }
-
- return 0;
-}
-
-int
-ACE_RMCast_Reordering::push_queued_messages (void)
-{
- Messages_Iterator i = this->messages_.begin ();
- Messages_Iterator end = this->messages_.end ();
-
- while (i != end
- && (*i).key () == this->next_expected_)
- {
- int r = 0;
- if (this->next () != 0)
- {
- ACE_RMCast::Data data = (*i).item ();
- r = this->next ()->data (data);
- }
-
- ACE_Message_Block::release ((*i).item ().payload);
- this->messages_.unbind ((*i).key ());
- i = this->messages_.begin ();
- this->next_expected_++;
- if (r != 0)
- return r;
- }
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/RMCast/RMCast_Reordering.h b/ace/RMCast/RMCast_Reordering.h
deleted file mode 100644
index 5647e35a585..00000000000
--- a/ace/RMCast/RMCast_Reordering.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace/RMCast
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_REORDERING_H
-#define ACE_RMCAST_REORDERING_H
-#include "ace/pre.h"
-
-#include "RMCast_Module.h"
-#include "ace/RB_Tree.h"
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_RMCast_Proxy;
-
-/// Pass messages up in sent order
-/**
- * Some applications require receivers to process messages in the same
- * order that messages are sent. This module buffers out of order
- * messages and only delivers a message if:
- * - All the previous messages have been delivered.
- * - The sender sends a notification that previous messages will not
- * be resent.
- *
- * The module also sends the Ack feedback to the sender.
- *
- * NOTE: This is not the same as causal or total ordering, that could
- * be implemented someday, but requires a lot more than what we have
- * right now.
- *
- */
-class ACE_RMCast_Export ACE_RMCast_Reordering : public ACE_RMCast_Module
-{
-public:
- /// Constructor
- ACE_RMCast_Reordering (void);
-
- /// Destructor
- virtual ~ACE_RMCast_Reordering (void);
-
- /// Use a Red-Black Tree to keep the queue of messages
- //@{
- typedef ACE_RB_Tree<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex> Messages;
- typedef ACE_RB_Tree_Iterator<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex> Messages_Iterator;
- //@}
-
- /// Remove messages still pending
- virtual int close (void);
-
- /// Process a Data message.
- /**
- * Process a Data message, sending the right Ack message back.
- * The message is passed up only if it is in order.
- */
- virtual int data (ACE_RMCast::Data &);
-
- /// During the join process the server informs us of the next
- /// expected message
- virtual int ack_join (ACE_RMCast::Ack_Join &);
-
-private:
- /// Push any messages that are pending in the queue
- int push_queued_messages (void);
-
-protected:
- /// The reordering buffer
- Messages messages_;
-
- /// The smallest value of \param next_expected for all the proxies
- ACE_UINT32 next_expected_;
-
- /// The highest value of \param highest_received for all the proxies
- ACE_UINT32 highest_received_;
-
- /// Synchronization
- ACE_SYNCH_MUTEX mutex_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Reordering.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_REORDERING_H */
diff --git a/ace/RMCast/RMCast_Reordering.i b/ace/RMCast/RMCast_Reordering.i
deleted file mode 100644
index ccbf852bc67..00000000000
--- a/ace/RMCast/RMCast_Reordering.i
+++ /dev/null
@@ -1,8 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_RMCast_Reordering::ACE_RMCast_Reordering (void)
- : next_expected_ (0)
- , highest_received_ (0)
-{
-}
diff --git a/ace/RMCast/RMCast_Resend_Handler.cpp b/ace/RMCast/RMCast_Resend_Handler.cpp
deleted file mode 100644
index c8597b301f0..00000000000
--- a/ace/RMCast/RMCast_Resend_Handler.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-// $Id$
-
-#include "RMCast_Resend_Handler.h"
-#include "RMCast_Retransmission.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Resend_Handler.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Resend_Handler, "$Id$")
-
-ACE_RMCast_Resend_Handler::~ACE_RMCast_Resend_Handler (void)
-{
-}
-
-int
-ACE_RMCast_Resend_Handler::handle_timeout (const ACE_Time_Value &,
- const void *)
-{
- (void) this->retransmission_->resend_all ();
- return 0;
-}
diff --git a/ace/RMCast/RMCast_Resend_Handler.h b/ace/RMCast/RMCast_Resend_Handler.h
deleted file mode 100644
index 0d2ec0fe13c..00000000000
--- a/ace/RMCast/RMCast_Resend_Handler.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// $Id$
-
-#ifndef ACE_RMCAST_RESEND_HANDLER_H
-#define ACE_RMCAST_RESEND_HANDLER_H
-#include "ace/pre.h"
-
-#include "RMCast_Export.h"
-#include "ace/Event_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_RMCast_Retransmission;
-
-/// Implement an adapter to resend messages in the
-/// ACE_RMCast_Retransmission layer, but based on Reactor based
-/// timeouts.
-class ACE_RMCast_Export ACE_RMCast_Resend_Handler : public ACE_Event_Handler
-{
-public:
- /// Constructor, save io_udp as the Adaptee in the Adapter pattern.
- ACE_RMCast_Resend_Handler (ACE_RMCast_Retransmission *retransmission);
-
- /// Destructor
- ~ACE_RMCast_Resend_Handler (void);
-
- //@{
- //! Documented in ACE_Event_Handler class
- virtual int handle_timeout (const ACE_Time_Value &current_time,
- const void *act = 0);
- //@}
-
-private:
- //! The adaptee
- ACE_RMCast_Retransmission *retransmission_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Resend_Handler.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_RESEND_HANDLER_H */
diff --git a/ace/RMCast/RMCast_Resend_Handler.i b/ace/RMCast/RMCast_Resend_Handler.i
deleted file mode 100644
index 9ad6cd8870d..00000000000
--- a/ace/RMCast/RMCast_Resend_Handler.i
+++ /dev/null
@@ -1,8 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_RMCast_Resend_Handler::
-ACE_RMCast_Resend_Handler (ACE_RMCast_Retransmission *r)
- : retransmission_ (r)
-{
-}
diff --git a/ace/RMCast/RMCast_Resend_Worker.cpp b/ace/RMCast/RMCast_Resend_Worker.cpp
deleted file mode 100644
index a4acbeff0cd..00000000000
--- a/ace/RMCast/RMCast_Resend_Worker.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//
-// $Id$
-//
-
-#include "RMCast_Resend_Worker.h"
-#include "RMCast_Module.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Resend_Worker.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Resend_Worker, "$Id$")
-
-int
-ACE_RMCast_Resend_Worker::work (ACE_UINT32 const & key,
- ACE_RMCast::Data const &item)
-{
- if (key > this->max_sequence_number_)
- return 0;
- //ACE_DEBUG ((LM_DEBUG,
- // "RMCast_Resend_Worker::work - message %d resent\n",
- // key));
-
- ACE_RMCast::Data data = item;
- int r = this->next_->data (data);
- if (r != 0)
- return r;
- this->n++;
-
- return 1; // @@ Stop after the first message...
-}
diff --git a/ace/RMCast/RMCast_Resend_Worker.h b/ace/RMCast/RMCast_Resend_Worker.h
deleted file mode 100644
index 03fd81e2a05..00000000000
--- a/ace/RMCast/RMCast_Resend_Worker.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_RMCAST_RESEND_WORKER_H
-#define ACE_RMCAST_RESEND_WORKER_H
-#include "ace/pre.h"
-
-#include "RMCast.h"
-#include "RMCast_Copy_On_Write.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_RMCast_Module;
-
-/// Process an Ack message in the ACE_RMCast_Retransmission module
-/**
- * The retransmission module uses internal iterators, thus it needs to
- * create helper Worker classes to process some messages.
- */
-class ACE_RMCast_Resend_Worker
- : public ACE_RMCast_Worker<ACE_UINT32,ACE_RMCast::Data>
-{
-public:
- ACE_RMCast_Resend_Worker (ACE_RMCast_Module *next,
- ACE_UINT32 max_sequence_number);
-
- virtual int work (ACE_UINT32 const & key,
- ACE_RMCast::Data const &item);
-
- int n;
-
-private:
- ACE_RMCast_Module *next_;
-
- ACE_UINT32 max_sequence_number_;
-
-private:
- ACE_RMCast_Resend_Worker (const ACE_RMCast_Resend_Worker&);
- ACE_RMCast_Resend_Worker& operator= (const ACE_RMCast_Resend_Worker&);
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Resend_Worker.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_RESEND_WORKER_H */
diff --git a/ace/RMCast/RMCast_Resend_Worker.i b/ace/RMCast/RMCast_Resend_Worker.i
deleted file mode 100644
index d609c27f006..00000000000
--- a/ace/RMCast/RMCast_Resend_Worker.i
+++ /dev/null
@@ -1,12 +0,0 @@
-// $Id$
-
-ACE_INLINE
-
-ACE_RMCast_Resend_Worker::
-ACE_RMCast_Resend_Worker (ACE_RMCast_Module *next,
- ACE_UINT32 max_sequence_number)
- : n (0)
- , next_ (next)
- , max_sequence_number_ (max_sequence_number)
-{
-}
diff --git a/ace/RMCast/RMCast_Retransmission.cpp b/ace/RMCast/RMCast_Retransmission.cpp
deleted file mode 100644
index d3c8ee97d84..00000000000
--- a/ace/RMCast/RMCast_Retransmission.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-//
-// $Id$
-//
-
-#include "RMCast_Retransmission.h"
-#include "RMCast_Proxy.h"
-#include "RMCast_Ack_Worker.h"
-#include "RMCast_Resend_Worker.h"
-#include "ace/Message_Block.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Retransmission.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Retransmission, "$Id$")
-
-ACE_RMCast_Retransmission::~ACE_RMCast_Retransmission (void)
-{
-}
-
-int
-ACE_RMCast_Retransmission::resend (ACE_UINT32 max_sequence_number)
-{
- if (this->next () == 0)
- return 0;
-
- ACE_RMCast_Resend_Worker worker (this->next (), max_sequence_number);
-
- if (this->messages_.for_each (&worker) == -1)
- return -1;
-
- return worker.n;
-}
-
-int
-ACE_RMCast_Retransmission::resend_all (void)
-{
- if (this->next () == 0)
- return 0;
-
- ACE_RMCast_Resend_Worker worker (this->next (), ACE_UINT32_MAX);
-
- if (this->messages_.for_each (&worker) == -1)
- return -1;
-
- return worker.n;
-}
-
-int
-ACE_RMCast_Retransmission::has_data (void)
-{
- return !this->messages_.empty ();
-}
-
-int
-ACE_RMCast_Retransmission::close (void)
-{
- // @@
- return 0;
-}
-
-int
-ACE_RMCast_Retransmission::data (ACE_RMCast::Data &data)
-{
- if (this->next () == 0)
- return 0;
-
- int r = this->next ()->data (data);
- if (r == 0)
- {
- ACE_RMCast::Data copy = data;
- copy.payload = ACE_Message_Block::duplicate (data.payload);
- r = this->messages_.bind (data.sequence_number, copy);
- }
- return r;
-}
-
-int
-ACE_RMCast_Retransmission::join (ACE_RMCast::Join &join)
-{
- if (join.source == 0)
- return 0;
-
- ACE_RMCast::Ack_Join ack_join;
- ack_join.source = 0;
- ack_join.next_sequence_number = this->messages_.first_key ();
-
- (void) join.source->reply_ack_join (ack_join);
-
- // @@ We should force a full retransmission of all the messages!
-
- return 0;
-}
-
-int
-ACE_RMCast_Retransmission::leave (ACE_RMCast::Leave &leave)
-{
- if (leave.source == 0)
- return 0;
-
- ACE_RMCast::Ack_Leave ack_leave;
- ack_leave.source = 0;
-
- (void) leave.source->reply_ack_leave (ack_leave);
-
- return 0;
-}
-
-int
-ACE_RMCast_Retransmission::ack (ACE_RMCast::Ack &ack)
-{
- Messages::Write_Guard ace_mon (this->messages_);
-
- ACE_RMCast_Ack_Worker worker (ack, ace_mon, &this->messages_);
-
- return this->messages_.for_each (&worker);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_RB_Tree<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex>;
-template class ACE_RB_Tree_Iterator_Base<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex>;
-template class ACE_RB_Tree_Iterator<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex>;
-template class ACE_RB_Tree_Reverse_Iterator<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex>;
-template class ACE_RB_Tree_Node<ACE_UINT32,ACE_RMCast::Data>;
-
-template class ACE_RMCast_Copy_On_Write<ACE_UINT32,ACE_RMCast::Data,ACE_RMCast_Retransmission::Collection,ACE_RMCast_Retransmission::Collection_Iterator>;
-template class ACE_RMCast_Copy_On_Write_Container<ACE_RMCast_Retransmission::Collection,ACE_RMCast_Retransmission::Collection_Iterator>;
-template class ACE_RMCast_Copy_On_Write_Write_Guard<ACE_RMCast_Retransmission::Collection,ACE_RMCast_Retransmission::Collection_Iterator>;
-template class ACE_RMCast_Copy_On_Write_Read_Guard<ACE_RMCast_Retransmission::Collection,ACE_RMCast_Retransmission::Collection_Iterator>;
-template class ACE_RMCast_Copy_On_Write_Collection<ACE_RMCast_Retransmission::Collection,ACE_RMCast_Retransmission::Collection_Iterator>;
-template class ACE_RMCast_Worker<ACE_UINT32,ACE_RMCast::Data>;
-
-#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_RB_Tree<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex>
-#pragma instantiate ACE_RB_Tree_Iterator_Base<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex>
-#pragma instantiate ACE_RB_Tree_Iterator<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex>
-#pragma instantiate ACE_RB_Tree_Reverse_Iterator<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex>
-#pragma instantiate ACE_RB_Tree_Node<ACE_UINT32,ACE_RMCast::Data>
-
-#pragma instantiate ACE_RMCast_Copy_On_Write<ACE_UINT32,ACE_RMCast::Data,ACE_RMCast_Retransmission::Collection,ACE_RMCast_Retransmission::Collection_Iterator>
-#pragma instantiate ACE_RMCast_Copy_On_Write_Container<ACE_RMCast_Retransmission::Collection,ACE_RMCast_Retransmission::Collection_Iterator>
-#pragma instantiate ACE_RMCast_Copy_On_Write_Write_Guard<ACE_RMCast_Retransmission::Collection,ACE_RMCast_Retransmission::Collection_Iterator>
-#pragma instantiate ACE_RMCast_Copy_On_Write_Read_Guard<ACE_RMCast_Retransmission::Collection,ACE_RMCast_Retransmission::Collection_Iterator>
-#pragma instantiate ACE_RMCast_Copy_On_Write_Collection<ACE_RMCast_Retransmission::Collection,ACE_RMCast_Retransmission::Collection_Iterator>
-#pragma instantiate ACE_RMCast_Worker<ACE_UINT32,ACE_RMCast::Data>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/RMCast/RMCast_Retransmission.h b/ace/RMCast/RMCast_Retransmission.h
deleted file mode 100644
index 89b431917b3..00000000000
--- a/ace/RMCast/RMCast_Retransmission.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// RMCast_Retransmission.h
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_RETRANSMISSION_H
-#define ACE_RMCAST_RETRANSMISSION_H
-#include "ace/pre.h"
-
-#include "RMCast_Module.h"
-#include "RMCast_Copy_On_Write.h"
-#include "ace/RB_Tree.h"
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/// Store messages for retransmission in reliable configurations
-/**
- * Reliable configurations of the RMCast framework need to store
- * messages on the sender side to resend them if one or more clients
- * do not receive them successfully.
- */
-class ACE_RMCast_Export ACE_RMCast_Retransmission : public ACE_RMCast_Module
-{
-public:
- // = Initialization and termination methods.
- /// Constructor
- ACE_RMCast_Retransmission (void);
-
- /// Destructor
- virtual ~ACE_RMCast_Retransmission (void);
-
- /// Use a Red-Black Tree to keep the queue of messages
- typedef ACE_RB_Tree<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex> Collection;
- typedef ACE_RB_Tree_Iterator<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex> Collection_Iterator;
-
- /// The messages are stored in the Copy_On_Write wrapper to provide
- /// an efficient, but thread safe interface.
- typedef ACE_RMCast_Copy_On_Write<ACE_UINT32,ACE_RMCast::Data,Collection,Collection_Iterator> Messages;
-
- /// Resend messages
- /**
- * Resends all the messages up to \param max_sequence_number
- * Returns the number of messages sent, or -1 if there where any
- * errors.
- */
- int resend (ACE_UINT32 max_sequence_number);
-
- /// Resend all messages
- /**
- * Resends all the messages currently in the queue.
- */
- int resend_all (void);
-
- /// Return 0 if there is no pending data to send
- int has_data (void);
-
- /// Cleanup all the stored messages
- virtual int close (void);
-
- /// Pass the message downstream, but also save it in the
- /// retransmission queue
- /**
- * Sequence number are assigned by the ACE_RMCast_Fragmentation
- * class, consequently this class first passes the message
- * downstream, to obtain the sequence number and then stores the
- * message for later retransmission.
- */
- virtual int data (ACE_RMCast::Data &data);
-
- /// Process an Ack message from the remote receivers.
- /**
- * Normally this Ack message will be a summary of all the Ack
- * messages received by the ACE_RMCast_Membership class
- */
- virtual int ack (ACE_RMCast::Ack &);
-
- /// Detect when new members join the group and Ack_Join them
- /**
- * When a new receiver joins the group this module sends an Ack_Join
- * message with the next sequence number that the receiver should
- * expect.
- * The sequence number is obtained from the current list of cached
- * messages.
- */
- virtual int join (ACE_RMCast::Join &);
-
- /// A receiver is leaving
- /**
- * Normally the ACE_RMCast_Membership module could do this, but,
- * because this module processes the Join messages, it seems more
- * natural to process the Leave messages too.
- */
- virtual int leave (ACE_RMCast::Leave &);
-
-protected:
-
- /// The retransmission buffer
- Messages messages_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Retransmission.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_RETRANSMISSION_H */
diff --git a/ace/RMCast/RMCast_Retransmission.i b/ace/RMCast/RMCast_Retransmission.i
deleted file mode 100644
index e67b41120ce..00000000000
--- a/ace/RMCast/RMCast_Retransmission.i
+++ /dev/null
@@ -1,6 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_RMCast_Retransmission::ACE_RMCast_Retransmission (void)
-{
-}
diff --git a/ace/RMCast/RMCast_Sequencer.cpp b/ace/RMCast/RMCast_Sequencer.cpp
deleted file mode 100644
index f8bc0e6c57d..00000000000
--- a/ace/RMCast/RMCast_Sequencer.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//
-// $Id$
-//
-
-#include "RMCast_Sequencer.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Sequencer.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Sequencer, "$Id$")
-
-ACE_RMCast_Sequencer::~ACE_RMCast_Sequencer (void)
-{
-}
-
-int
-ACE_RMCast_Sequencer::data (ACE_RMCast::Data &data)
-{
- {
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1);
- data.sequence_number = this->sequence_number_generator_++;
- }
- return this->ACE_RMCast_Module::data (data);
-}
diff --git a/ace/RMCast/RMCast_Sequencer.h b/ace/RMCast/RMCast_Sequencer.h
deleted file mode 100644
index 321d778853e..00000000000
--- a/ace/RMCast/RMCast_Sequencer.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace/RMCast
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_SEQUENCER_H
-#define ACE_RMCAST_SEQUENCER_H
-#include "ace/pre.h"
-
-#include "RMCast_Module.h"
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/// Assign sequence numbers to outgoing messages
-/**
- * On the sender side we must assign sequence numbers to the messages
- * <B>before</B> they are put in the retransmission queue.
- */
-class ACE_RMCast_Export ACE_RMCast_Sequencer : public ACE_RMCast_Module
-{
-public:
- /// Constructor
- ACE_RMCast_Sequencer (void);
-
- /// Destructor
- virtual ~ACE_RMCast_Sequencer (void);
-
- virtual int data (ACE_RMCast::Data &);
-
-protected:
- /// Create the sequence numbers
- ACE_UINT32 sequence_number_generator_;
-
- /// Synchronization
- ACE_SYNCH_MUTEX mutex_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Sequencer.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_SEQUENCER_H */
diff --git a/ace/RMCast/RMCast_Sequencer.i b/ace/RMCast/RMCast_Sequencer.i
deleted file mode 100644
index e7b7ff0f492..00000000000
--- a/ace/RMCast/RMCast_Sequencer.i
+++ /dev/null
@@ -1,7 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_RMCast_Sequencer::ACE_RMCast_Sequencer (void)
- : sequence_number_generator_ (0)
-{
-}
diff --git a/ace/RMCast/RMCast_Singleton_Factory.cpp b/ace/RMCast/RMCast_Singleton_Factory.cpp
deleted file mode 100644
index 403b87060e2..00000000000
--- a/ace/RMCast/RMCast_Singleton_Factory.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// $Id$
-
-#include "RMCast_Singleton_Factory.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_Singleton_Factory.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_Singleton_Factory, "$Id$")
-
-ACE_RMCast_Singleton_Factory::~ACE_RMCast_Singleton_Factory (void)
-{
-}
-
-ACE_RMCast_Module*
-ACE_RMCast_Singleton_Factory::create (void)
-{
- return this->singleton_;
-}
-
-void
-ACE_RMCast_Singleton_Factory::destroy (ACE_RMCast_Module *)
-{
-}
diff --git a/ace/RMCast/RMCast_Singleton_Factory.h b/ace/RMCast/RMCast_Singleton_Factory.h
deleted file mode 100644
index 09bfa96be6d..00000000000
--- a/ace/RMCast/RMCast_Singleton_Factory.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// RMCast_Singleton_Factory.h
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_SINGLETON_FACTORY_H
-#define ACE_RMCAST_SINGLETON_FACTORY_H
-#include "ace/pre.h"
-
-#include "RMCast_Module_Factory.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/// Implement an ACE_RMCast_Module_Factory that "creates" a single
-/// object.
-/**
- * Many applications (and even some internal components), will use a
- * single ACE_RMCast_Module to process all the events, for example, a
- * receiver may decide to use the same ACE_RMCast_Module to process
- * all incoming events, instead of using one per remote sender.
- */
-class ACE_RMCast_Export ACE_RMCast_Singleton_Factory : public ACE_RMCast_Module_Factory
-{
-public:
- /// Constructor
- /**
- * @param singleton This object is returned by any call to
- * create().
- */
- ACE_RMCast_Singleton_Factory (ACE_RMCast_Module *singleton);
-
- //! Destructor
- virtual ~ACE_RMCast_Singleton_Factory (void);
-
- virtual ACE_RMCast_Module *create (void);
- virtual void destroy (ACE_RMCast_Module *);
-
-private:
- /// The singleton object
- ACE_RMCast_Module *singleton_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Singleton_Factory.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_SINGLETON_FACTORY_H */
diff --git a/ace/RMCast/RMCast_Singleton_Factory.i b/ace/RMCast/RMCast_Singleton_Factory.i
deleted file mode 100644
index a45837dfa93..00000000000
--- a/ace/RMCast/RMCast_Singleton_Factory.i
+++ /dev/null
@@ -1,8 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_RMCast_Singleton_Factory::
- ACE_RMCast_Singleton_Factory (ACE_RMCast_Module *singleton)
- : singleton_ (singleton)
-{
-}
diff --git a/ace/RMCast/RMCast_UDP_Event_Handler.cpp b/ace/RMCast/RMCast_UDP_Event_Handler.cpp
deleted file mode 100644
index 963928845f7..00000000000
--- a/ace/RMCast/RMCast_UDP_Event_Handler.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// $Id$
-//
-
-#include "RMCast_UDP_Event_Handler.h"
-#include "RMCast_IO_UDP.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_UDP_Event_Handler.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_UDP_Event_Handler, "$Id$")
-
-ACE_RMCast_UDP_Event_Handler::~ACE_RMCast_UDP_Event_Handler (void)
-{
-}
-
-ACE_HANDLE
-ACE_RMCast_UDP_Event_Handler::get_handle (void) const
-{
- return this->io_udp_->get_handle ();
-}
-
-int
-ACE_RMCast_UDP_Event_Handler::handle_input (ACE_HANDLE h)
-{
- return this->io_udp_->handle_input (h);
-}
-
-int
-ACE_RMCast_UDP_Event_Handler::handle_timeout (const ACE_Time_Value &,
- const void *)
-{
- // @@ return this->io_udp_->handle_timeout ();
- return 0;
-}
diff --git a/ace/RMCast/RMCast_UDP_Event_Handler.h b/ace/RMCast/RMCast_UDP_Event_Handler.h
deleted file mode 100644
index 2a6e7c45d42..00000000000
--- a/ace/RMCast/RMCast_UDP_Event_Handler.h
+++ /dev/null
@@ -1,59 +0,0 @@
-// $Id$
-
-#ifndef ACE_RMCAST_UDP_EVENT_HANDLER_H
-#define ACE_RMCAST_UDP_EVENT_HANDLER_H
-#include "ace/pre.h"
-
-#include "RMCast_Export.h"
-#include "ace/Event_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_RMCast_IO_UDP;
-class ACE_INET_Addr;
-
-//! Implement an Adapter for the ACE_RMCast_IO_UDP class
-/*!
- * Applications may wish to use the ACE_Reactor to demultiplex I/O
- * events for an ACE_RMCast_IO_UDP object. However other application
- * may choose to make ACE_RMCast_IO_UDP active, or they may dedicate
- * their own threads for its events.
- * To avoid couplin ACE_RMCast_IO_UDP with the Reactor we don't make
- * it derived from ACE_Event_Handler or any other class in the Reactor
- * framework, instead, this simple Adapter can forward the Reactor
- * messages to an ACE_RMCast_IO_UDP object.
- */
-class ACE_RMCast_Export ACE_RMCast_UDP_Event_Handler : public ACE_Event_Handler
-{
-public:
- //! Constructor, save io_udp as the Adaptee in the Adapter pattern.
- ACE_RMCast_UDP_Event_Handler (ACE_RMCast_IO_UDP *io_udp);
-
- //! Destructor
- /*!
- * Notice that this class does not own the ACE_RMCast_IO_UDP
- * adaptee, so it does not destroy it.
- */
- ~ACE_RMCast_UDP_Event_Handler (void);
-
- //@{
- //! Documented in ACE_Event_Handler class
- virtual ACE_HANDLE get_handle (void) const;
- virtual int handle_input (ACE_HANDLE fd = ACE_INVALID_HANDLE);
- virtual int handle_timeout (const ACE_Time_Value &current_time,
- const void *act = 0);
- //@}
-
-private:
- //! The adaptee
- ACE_RMCast_IO_UDP *io_udp_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_UDP_Event_Handler.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_UDP_EVENT_HANDLER_H */
diff --git a/ace/RMCast/RMCast_UDP_Event_Handler.i b/ace/RMCast/RMCast_UDP_Event_Handler.i
deleted file mode 100644
index 99b4c0ac7e5..00000000000
--- a/ace/RMCast/RMCast_UDP_Event_Handler.i
+++ /dev/null
@@ -1,8 +0,0 @@
-// $Id$
-
-ACE_INLINE
-ACE_RMCast_UDP_Event_Handler::
-ACE_RMCast_UDP_Event_Handler (ACE_RMCast_IO_UDP *io)
- : io_udp_ (io)
-{
-}
diff --git a/ace/RMCast/RMCast_UDP_Proxy.cpp b/ace/RMCast/RMCast_UDP_Proxy.cpp
deleted file mode 100644
index c84b8c0f2ef..00000000000
--- a/ace/RMCast/RMCast_UDP_Proxy.cpp
+++ /dev/null
@@ -1,186 +0,0 @@
-// $Id$
-
-#include "RMCast_UDP_Proxy.h"
-#include "RMCast_Module.h"
-#include "RMCast_IO_UDP.h"
-#include "ace/Message_Block.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_UDP_Proxy.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_UDP_Proxy, "$Id$")
-
-ACE_RMCast_UDP_Proxy::ACE_RMCast_UDP_Proxy (ACE_RMCast_IO_UDP *io_udp,
- const ACE_INET_Addr &addr)
- : io_udp_ (io_udp)
- , peer_addr_ (addr)
-{
-}
-
-ACE_RMCast_UDP_Proxy::~ACE_RMCast_UDP_Proxy (void)
-{
-}
-
-int
-ACE_RMCast_UDP_Proxy::receive_message (char *buffer, size_t size)
-{
- int type = buffer[0];
-
- // @@ What should we do with invalid messages like this?
- //
- if (type < 0 || type >= ACE_RMCast::MT_LAST)
- return 0;
-
- if (type == ACE_RMCast::MT_POLL)
- {
- ACE_RMCast::Poll poll;
- poll.source = this;
- return this->poll (poll);
- }
-
- else if (type == ACE_RMCast::MT_ACK_JOIN)
- {
- ACE_RMCast::Ack_Join ack_join;
- ack_join.source = this;
-
- const size_t header_size = 1 + sizeof(ACE_UINT32);
- if (size < header_size)
- {
- // The message is too small
- return 0;
- }
-
- ACE_UINT32 tmp;
-
- ACE_OS::memcpy (&tmp, buffer + 1,
- sizeof(tmp));
- ack_join.next_sequence_number = ACE_NTOHL (tmp);
- return this->ack_join (ack_join);
- }
-
- else if (type == ACE_RMCast::MT_ACK_LEAVE)
- {
- ACE_RMCast::Ack_Leave ack_leave;
- ack_leave.source = this;
- return this->ack_leave (ack_leave);
- }
-
- else if (type == ACE_RMCast::MT_DATA)
- {
- ACE_RMCast::Data data;
- data.source = this;
- const size_t header_size = 1 + 3 * sizeof(ACE_UINT32);
- if (size < header_size)
- {
- // The message is too small
- return 0;
- }
-
- ACE_UINT32 tmp;
-
- ACE_OS::memcpy (&tmp, buffer + 1,
- sizeof(tmp));
- data.sequence_number = ACE_NTOHL (tmp);
-
- ACE_OS::memcpy (&tmp, buffer + 1 + sizeof(tmp),
- sizeof(tmp));
- data.total_size = ACE_NTOHL (tmp);
-
- ACE_OS::memcpy (&tmp, buffer + 1 + 2 * sizeof(tmp),
- sizeof(tmp));
- data.fragment_offset = ACE_NTOHL (tmp);
-
- // Pass it up the module...
- ACE_Message_Block *mb;
- ACE_NEW_RETURN (mb, ACE_Message_Block, -1);
- mb->size (size - header_size);
- mb->copy (buffer + header_size, size - header_size);
-
- data.payload = mb;
- return this->data (data);
- }
-
- else if (type == ACE_RMCast::MT_JOIN)
- {
- ACE_RMCast::Join join;
- join.source = this;
- return this->join (join);
- }
-
- else if (type == ACE_RMCast::MT_LEAVE)
- {
- ACE_RMCast::Leave leave;
- leave.source = this;
- return this->leave (leave);
- }
-
- else if (type == ACE_RMCast::MT_ACK)
- {
- ACE_RMCast::Ack ack;
- ack.source = this;
-
- const size_t header_size = 1 + sizeof(ACE_UINT32);
- if (size < header_size)
- {
- // The message is too small
- return 0;
- }
-
- ACE_UINT32 tmp;
-
- ACE_OS::memcpy (&tmp, buffer + 1,
- sizeof(tmp));
- ack.next_expected = ACE_NTOHL (tmp);
- ACE_OS::memcpy (&tmp, buffer + 1 + sizeof(ACE_UINT32),
- sizeof(tmp));
- ack.highest_received = ACE_NTOHL (tmp);
-
- return this->ack (ack);
- }
-
- return 0;
-}
-
-int
-ACE_RMCast_UDP_Proxy::reply_data (ACE_RMCast::Data &data)
-{
- return this->io_udp_->send_data (data, this->peer_addr_);
-}
-
-int
-ACE_RMCast_UDP_Proxy::reply_poll (ACE_RMCast::Poll &poll)
-{
- return this->io_udp_->send_poll (poll, this->peer_addr_);
-}
-
-int
-ACE_RMCast_UDP_Proxy::reply_ack_join (ACE_RMCast::Ack_Join &ack_join)
-{
- (void) this->ACE_RMCast_Proxy::reply_ack_join (ack_join);
- return this->io_udp_->send_ack_join (ack_join, this->peer_addr_);
-}
-
-int
-ACE_RMCast_UDP_Proxy::reply_ack_leave (ACE_RMCast::Ack_Leave &ack_leave)
-{
- return this->io_udp_->send_ack_leave (ack_leave, this->peer_addr_);
-}
-
-int
-ACE_RMCast_UDP_Proxy::reply_ack (ACE_RMCast::Ack &ack)
-{
- return this->io_udp_->send_ack (ack, this->peer_addr_);
-}
-
-int
-ACE_RMCast_UDP_Proxy::reply_join (ACE_RMCast::Join &join)
-{
- return this->io_udp_->send_join (join, this->peer_addr_);
-}
-
-int
-ACE_RMCast_UDP_Proxy::reply_leave (ACE_RMCast::Leave &leave)
-{
- return this->io_udp_->send_leave (leave, this->peer_addr_);
-}
diff --git a/ace/RMCast/RMCast_UDP_Proxy.h b/ace/RMCast/RMCast_UDP_Proxy.h
deleted file mode 100644
index 29e9816168d..00000000000
--- a/ace/RMCast/RMCast_UDP_Proxy.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// RMCast_UDP_Proxy.h
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu>
-//
-// ============================================================================
-
-#ifndef ACE_RMCAST_UDP_PROXY_H
-#define ACE_RMCAST_UDP_PROXY_H
-#include "ace/pre.h"
-
-#include "RMCast_Proxy.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/INET_Addr.h"
-
-class ACE_RMCast_IO_UDP;
-
-/// Define the proxy implementation for UDP based communication
-/**
- * Proxy objects are transport specific, they are responsible for
- * storing the remote peer addressing information.
- * This class implements the UDP version of a proxy.
- */
-class ACE_RMCast_Export ACE_RMCast_UDP_Proxy : public ACE_RMCast_Proxy
-{
-public:
- /// Constructor
- /**
- * The \param io_udp argument is kept to send the replys through the
- * right socket.
- * The \param peer_addr is the address used byu the peer to receive
- * responses.
- */
- ACE_RMCast_UDP_Proxy (ACE_RMCast_IO_UDP *io_udp,
- const ACE_INET_Addr &peer_addr);
-
- /// Destructor
- virtual ~ACE_RMCast_UDP_Proxy (void);
-
- /// Receive a message, parse and send it upstream in the right
- /// format.
- int receive_message (char *buffer, size_t size);
-
- /// Make the peer address available
- const ACE_INET_Addr &peer_addr (void) const;
-
- //@{
- /**
- * Implement the ACE_RMCast_Proxy methods, in this case we use the
- * @var io_udp_ object to send the data, using the address of our
- * remote peer.
- */
- virtual int reply_data (ACE_RMCast::Data &);
- virtual int reply_poll (ACE_RMCast::Poll &);
- virtual int reply_ack_join (ACE_RMCast::Ack_Join &);
- virtual int reply_ack_leave (ACE_RMCast::Ack_Leave &);
- virtual int reply_ack (ACE_RMCast::Ack &);
- virtual int reply_join (ACE_RMCast::Join &);
- virtual int reply_leave (ACE_RMCast::Leave &);
- //@}
-
-private:
- /// The IO facade
- ACE_RMCast_IO_UDP *io_udp_;
-
- /// The remote peer's address
- ACE_INET_Addr peer_addr_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_UDP_Proxy.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_UDP_PROXY_H */
diff --git a/ace/RMCast/RMCast_UDP_Proxy.i b/ace/RMCast/RMCast_UDP_Proxy.i
deleted file mode 100644
index b7a85e78ce2..00000000000
--- a/ace/RMCast/RMCast_UDP_Proxy.i
+++ /dev/null
@@ -1,7 +0,0 @@
-// $Id$
-
-ACE_INLINE const ACE_INET_Addr&
-ACE_RMCast_UDP_Proxy::peer_addr (void) const
-{
- return this->peer_addr_;
-}
diff --git a/ace/RMCast/RMCast_UDP_Reliable_Receiver.cpp b/ace/RMCast/RMCast_UDP_Reliable_Receiver.cpp
deleted file mode 100644
index 9057281cc52..00000000000
--- a/ace/RMCast/RMCast_UDP_Reliable_Receiver.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// $Id$
-
-#include "RMCast_UDP_Reliable_Receiver.h"
-#include "RMCast_UDP_Event_Handler.h"
-#include "ace/Reactor.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_UDP_Reliable_Receiver.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_UDP_Reliable_Receiver, "$Id$")
-
-ACE_RMCast_UDP_Reliable_Receiver::ACE_RMCast_UDP_Reliable_Receiver (ACE_RMCast_Module *user_module)
- : user_factory_ (user_module)
- , factory_ (&user_factory_)
- , io_udp_ (&factory_)
-{
-}
-
-ACE_RMCast_UDP_Reliable_Receiver::~ACE_RMCast_UDP_Reliable_Receiver (void)
-{
-}
-
-void
-ACE_RMCast_UDP_Reliable_Receiver::reactive_incoming_messages (ACE_Reactor *reactor)
-{
- ACE_RMCast_UDP_Event_Handler *eh;
- ACE_NEW (eh, ACE_RMCast_UDP_Event_Handler (&this->io_udp_));
-
- /// @@ TODO Make sure it is removed from the Reactor at some point
- (void) reactor->register_handler (eh, ACE_Event_Handler::READ_MASK);
-}
diff --git a/ace/RMCast/RMCast_UDP_Reliable_Receiver.h b/ace/RMCast/RMCast_UDP_Reliable_Receiver.h
deleted file mode 100644
index 902da503737..00000000000
--- a/ace/RMCast/RMCast_UDP_Reliable_Receiver.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_RMCAST_UDP_RELIABLE_RECEIVER_H
-#define ACE_RMCAST_UDP_RELIABLE_RECEIVER_H
-#include "ace/pre.h"
-
-#include "RMCast_Singleton_Factory.h"
-#include "RMCast_Reliable_Factory.h"
-#include "RMCast_IO_UDP.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_Reactor;
-
-class ACE_RMCast_Export ACE_RMCast_UDP_Reliable_Receiver : public ACE_RMCast_Module
-{
-public:
- /// Constructor
- ACE_RMCast_UDP_Reliable_Receiver (ACE_RMCast_Module *user_control);
-
- /// Destructor
- virtual ~ACE_RMCast_UDP_Reliable_Receiver (void);
-
- /// Open the UDP I/O module.
- int init (const ACE_INET_Addr &mcast_group);
-
- /// Use the reactor to handle incoming messages
- void reactive_incoming_messages (ACE_Reactor *reactor);
-
-private:
- /// All the proxys give their messages to user module
- ACE_RMCast_Singleton_Factory user_factory_;
-
- /// This factory creates the per-proxy stack
- ACE_RMCast_Reliable_Factory factory_;
-
- /// Handle all the UDP I/O
- ACE_RMCast_IO_UDP io_udp_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_UDP_Reliable_Receiver.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_UDP_RELIABLE_RECEIVER_H */
diff --git a/ace/RMCast/RMCast_UDP_Reliable_Receiver.i b/ace/RMCast/RMCast_UDP_Reliable_Receiver.i
deleted file mode 100644
index 01b2ebe2cad..00000000000
--- a/ace/RMCast/RMCast_UDP_Reliable_Receiver.i
+++ /dev/null
@@ -1,7 +0,0 @@
-// $Id$
-
-ACE_INLINE int
-ACE_RMCast_UDP_Reliable_Receiver::init (const ACE_INET_Addr &mcast_group)
-{
- return this->io_udp_.subscribe (mcast_group);
-}
diff --git a/ace/RMCast/RMCast_UDP_Reliable_Sender.cpp b/ace/RMCast/RMCast_UDP_Reliable_Sender.cpp
deleted file mode 100644
index befab142320..00000000000
--- a/ace/RMCast/RMCast_UDP_Reliable_Sender.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-// $Id$
-
-#include "RMCast_UDP_Reliable_Sender.h"
-#include "RMCast_UDP_Event_Handler.h"
-#include "RMCast_Resend_Handler.h"
-#include "ace/Reactor.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RMCast_UDP_Reliable_Sender.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(ace, RMCast_UDP_Reliable_Sender, "$Id$")
-
-ACE_RMCast_UDP_Reliable_Sender::ACE_RMCast_UDP_Reliable_Sender (ACE_RMCast_Module *user_control)
- : user_control_ (user_control)
-
- // We use a singleton factory, all proxys send their messages to the
- // retransmission module. There should be only control messages
- // coming back, so this is OK.
- , factory_ (&membership_)
- , io_udp_ (&factory_)
-{
- // Control messages are received by the membership module and passed
- // up to the both the retransmission and user modules, we use a fork
- // module to do that
- this->membership_.next (&this->fork_);
-
- this->fork_.next (&this->retransmission_);
- this->fork_.secondary (user_control);
-
- // Messages are passed down to the sequencer module
- this->next (&this->sequencer_);
-
- // then to the retransmission module
- this->sequencer_.next (&this->retransmission_);
-
- // Then fork the messages, at this point control messages are sent
- // back to the user, other messages continue down to the
- // fragmentation layer.
- this->retransmission_.next (&this->fragment_);
-
- // The fragmentation layer delegates all messages to the UDP I/O
- // module, that sends every message back to the application.
- this->fragment_.next (&this->io_udp_);
-}
-
-ACE_RMCast_UDP_Reliable_Sender::~ACE_RMCast_UDP_Reliable_Sender (void)
-{
-}
-
-void
-ACE_RMCast_UDP_Reliable_Sender::reactive_incoming_messages (ACE_Reactor *reactor)
-{
- ACE_RMCast_UDP_Event_Handler *eh;
- ACE_NEW (eh, ACE_RMCast_UDP_Event_Handler (&this->io_udp_));
-
- /// @@ TODO Make sure it is removed from the Reactor at some point
- (void) reactor->register_handler (eh, ACE_Event_Handler::READ_MASK);
-}
-
-void
-ACE_RMCast_UDP_Reliable_Sender::reactive_resends (ACE_Reactor *reactor,
- const ACE_Time_Value &period)
-{
- ACE_RMCast_Resend_Handler *eh;
- ACE_NEW (eh, ACE_RMCast_Resend_Handler (&this->retransmission_));
-
- /// @@ TODO make sure it is removed from the Reactor at some point
- (void) reactor->schedule_timer (eh, 0, period, period);
-}
diff --git a/ace/RMCast/RMCast_UDP_Reliable_Sender.h b/ace/RMCast/RMCast_UDP_Reliable_Sender.h
deleted file mode 100644
index 488859a8e2f..00000000000
--- a/ace/RMCast/RMCast_UDP_Reliable_Sender.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_RMCAST_UDP_RELIABLE_SENDER_H
-#define ACE_RMCAST_UDP_RELIABLE_SENDER_H
-#include "ace/pre.h"
-
-#include "RMCast_Singleton_Factory.h"
-#include "RMCast_IO_UDP.h"
-#include "RMCast_Sequencer.h"
-#include "RMCast_Retransmission.h"
-#include "RMCast_Membership.h"
-#include "RMCast_Fragment.h"
-#include "RMCast_Fork.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_Reactor;
-
-class ACE_RMCast_Export ACE_RMCast_UDP_Reliable_Sender : public ACE_RMCast_Module
-{
-public:
- /// Constructor
- ACE_RMCast_UDP_Reliable_Sender (ACE_RMCast_Module *user_control);
-
- /// Destructor
- virtual ~ACE_RMCast_UDP_Reliable_Sender (void);
-
- /// Open the UDP I/O module.
- int init (const ACE_INET_Addr &mcast_group);
-
- /// Use the reactor to handle incoming messages
- void reactive_incoming_messages (ACE_Reactor *reactor);
-
- /// Use the reactor to periodically resend messages
- void reactive_resends (ACE_Reactor *reactor,
- const ACE_Time_Value &period);
-
- /// Check if there is still some messages to send, return 0 if not.
- int has_data (void);
-
- /// Check if there are any members still connected
- int has_members (void);
-
-private:
- /// The application-level control module
- ACE_RMCast_Module *user_control_;
-
- /// Assign sequence numbers
- ACE_RMCast_Sequencer sequencer_;
-
- /// The retransmission module
- ACE_RMCast_Retransmission retransmission_;
-
- /// All the proxys give their messages to the retransmission module
- ACE_RMCast_Singleton_Factory factory_;
-
- /// Handle all the UDP I/O
- ACE_RMCast_IO_UDP io_udp_;
-
- /// The membership module
- ACE_RMCast_Membership membership_;
-
- /// The fragmentation module
- ACE_RMCast_Fragment fragment_;
-
- /// Redirect control messages to the user supplied module
- ACE_RMCast_Fork fork_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_UDP_Reliable_Sender.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RMCAST_UDP_RELIABLE_SENDER_H */
diff --git a/ace/RMCast/RMCast_UDP_Reliable_Sender.i b/ace/RMCast/RMCast_UDP_Reliable_Sender.i
deleted file mode 100644
index 93868a86ede..00000000000
--- a/ace/RMCast/RMCast_UDP_Reliable_Sender.i
+++ /dev/null
@@ -1,19 +0,0 @@
-// $Id$
-
-ACE_INLINE int
-ACE_RMCast_UDP_Reliable_Sender::init (const ACE_INET_Addr &mcast_group)
-{
- return this->io_udp_.init (mcast_group, ACE_Addr::sap_any);
-}
-
-ACE_INLINE int
-ACE_RMCast_UDP_Reliable_Sender::has_data (void)
-{
- return this->retransmission_.has_data ();
-}
-
-ACE_INLINE int
-ACE_RMCast_UDP_Reliable_Sender::has_members (void)
-{
- return this->membership_.has_members ();
-}
diff --git a/ace/RMCast/RMCast_Worker.cpp b/ace/RMCast/RMCast_Worker.cpp
deleted file mode 100644
index 06254b8c0f6..00000000000
--- a/ace/RMCast/RMCast_Worker.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// $Id$
-
-#ifndef ACE_RMCAST_WORKER_CPP
-#define ACE_RMCAST_WORKER_CPP
-
-#include "RMCast_Worker.h"
-
-#if ! defined (__ACE_INLINE__)
-#include "RMCast_Worker.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(RMCast, RMCast_Worker, "$Id$")
-
-template<class KEY, class ITEM>
-ACE_RMCast_Worker<KEY,ITEM>::~ACE_RMCast_Worker (void)
-{
-}
-
-#endif /* ACE_RMCAST_WORKER_CPP */
diff --git a/ace/RMCast/RMCast_Worker.h b/ace/RMCast/RMCast_Worker.h
deleted file mode 100644
index d3eb3032ebc..00000000000
--- a/ace/RMCast/RMCast_Worker.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-//
-
-#ifndef ACE_RMCAST_WORKER_H
-#define ACE_RMCAST_WORKER_H
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-template<class KEY, class ITEM>
-class ACE_RMCast_Worker
-{
-public:
- virtual ~ACE_RMCast_Worker (void);
-
- virtual int work (KEY const & key,
- ITEM const & item) = 0;
-};
-
-#if defined (__ACE_INLINE__)
-#include "RMCast_Worker.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "RMCast_Worker.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("RMCast_Worker.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* ACE_RMCAST_WORKER_H */
diff --git a/ace/RMCast/RMCast_Worker.i b/ace/RMCast/RMCast_Worker.i
deleted file mode 100644
index cfa1da318d3..00000000000
--- a/ace/RMCast/RMCast_Worker.i
+++ /dev/null
@@ -1 +0,0 @@
-// $Id$
diff --git a/ace/RMCast/rmcast.mpc b/ace/RMCast/rmcast.mpc
deleted file mode 100644
index 70c94e05251..00000000000
--- a/ace/RMCast/rmcast.mpc
+++ /dev/null
@@ -1,7 +0,0 @@
-project : acelib, core {
- depends = ace
- sharedname = ACE_RMCast
- dllflags = ACE_RMCAST_BUILD_DLL
- libout = ..
- include_dir = ace/RMCast
-}
diff --git a/ace/RW_Process_Mutex.cpp b/ace/RW_Process_Mutex.cpp
deleted file mode 100644
index 1b0aee4eb28..00000000000
--- a/ace/RW_Process_Mutex.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-// $Id$
-
-#include "ace/RW_Process_Mutex.h"
-#include "ace/Log_Msg.h"
-#include "ace/ACE.h"
-
-ACE_RCSID(ace, RW_Process_Mutex, "$Id$")
-
-#if !defined (__ACE_INLINE__)
-#include "ace/RW_Process_Mutex.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_RW_Process_Mutex)
-
-const ACE_TCHAR *
-ACE_RW_Process_Mutex::unique_name (void)
-{
- ACE::unique_name (this, this->name_, ACE_UNIQUE_NAME_LEN);
- return this->name_;
-}
-
-ACE_RW_Process_Mutex::ACE_RW_Process_Mutex (const ACE_TCHAR *name,
- int flags)
- : lock_ (name ? name : this->unique_name (), flags
-#if defined (ACE_WIN32)
- , ACE_DEFAULT_OPEN_PERMS)
-#else
- , S_IRUSR | S_IWUSR)
-#endif /* ACE_WIN32 */
-{
-// ACE_TRACE ("ACE_RW_Process_Mutex::ACE_RW_Process_Mutex");
-}
-
-ACE_RW_Process_Mutex::~ACE_RW_Process_Mutex (void)
-{
-// ACE_TRACE ("ACE_RW_Process_Mutex::~ACE_RW_Process_Mutex");
-}
-
-void
-ACE_RW_Process_Mutex::dump (void) const
-{
-// ACE_TRACE ("ACE_RW_Process_Mutex::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->lock_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-//
-// These are instantiated both with and without ACE_HAS_THREADS.
-//
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-// template class ACE_Guard<ACE_RW_Process_Mutex>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-// #pragma instantiate ACE_Guard<ACE_RW_Process_Mutex>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/RW_Process_Mutex.h b/ace/RW_Process_Mutex.h
deleted file mode 100644
index 77500d19aa3..00000000000
--- a/ace/RW_Process_Mutex.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file RW_Process_Mutex.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_RW_PROCESS_MUTEX_H
-#define ACE_RW_PROCESS_MUTEX_H
-#include "ace/pre.h"
-
-#include "ace/File_Lock.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_RW_Process_Mutex
- *
- * @brief Wrapper for readers/writer locks that exist across processes.
- *
- * Note that because this class uses the
- * <ACE_File_Lock> as its implementation it only can be reliably
- * used between separate processes, rather than threads in the
- * same process. This isn't a limitation of ACE, it's simply
- * the file lock semantics on UNIX and Win32.
- */
-class ACE_Export ACE_RW_Process_Mutex
-{
-public:
- /// Create a readers/writer <Process_Mutex>, passing in the optional
- /// <name>. If not specified, a name is generated.
- ACE_RW_Process_Mutex (const ACE_TCHAR *name = 0,
- int flags = O_CREAT|O_RDWR);
-
- ~ACE_RW_Process_Mutex (void);
-
- /**
- * Explicitly destroy the mutex. Note that only one thread should
- * call this method since it doesn't protect against race
- * conditions.
- */
- int remove (void);
-
- /// Acquire lock ownership (wait on queue if necessary).
- int acquire (void);
-
- /**
- * Conditionally acquire lock (i.e., don't wait on queue). Returns
- * -1 on failure. If we "failed" because someone else already had
- * the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire (void);
-
- /// Release lock and unblock a thread at head of queue.
- int release (void);
-
- /// Acquire lock ownership (wait on queue if necessary).
- int acquire_read (void);
-
- /// Acquire lock ownership (wait on queue if necessary).
- int acquire_write (void);
-
- /**
- * Conditionally acquire a lock (i.e., won't block). Returns -1 on
- * failure. If we "failed" because someone else already had the
- * lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_read (void);
-
- /**
- * Conditionally acquire a lock (i.e., won't block). Returns -1 on
- * failure. If we "failed" because someone else already had the
- * lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_write (void);
-
- /// Attempt to upgrade a read lock to a write lock. Returns 0 on
- /// success, -1 on failure.
- int tryacquire_write_upgrade (void);
-
- /// Return the underlying lock.
- const ACE_File_Lock &lock (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// If the user does not provide a name we generate a unique name in
- /// this buffer.
- ACE_TCHAR name_[ACE_UNIQUE_NAME_LEN];
-
- /// Create and return the unique name.
- const ACE_TCHAR *unique_name (void);
-
- /// We need this to get the readers/writer semantics...
- ACE_File_Lock lock_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/RW_Process_Mutex.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_RW_PROCESS_MUTEX_H */
diff --git a/ace/RW_Process_Mutex.inl b/ace/RW_Process_Mutex.inl
deleted file mode 100644
index cc59bb9fc17..00000000000
--- a/ace/RW_Process_Mutex.inl
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Explicitly destroy the mutex.
-ACE_INLINE int
-ACE_RW_Process_Mutex::remove (void)
-{
- return this->lock_.remove ();
-}
-
-// Acquire lock ownership (wait on priority queue if necessary).
-ACE_INLINE int
-ACE_RW_Process_Mutex::acquire (void)
-{
- return this->lock_.acquire ();
-}
-
-// Conditionally acquire lock (i.e., don't wait on queue).
-ACE_INLINE int
-ACE_RW_Process_Mutex::tryacquire (void)
-{
- return this->lock_.tryacquire ();
-}
-
-// Release lock and unblock a thread at head of priority queue.
-ACE_INLINE int
-ACE_RW_Process_Mutex::release (void)
-{
- return this->lock_.release ();
-}
-
-// Acquire lock ownership (wait on priority queue if necessary).
-ACE_INLINE int
-ACE_RW_Process_Mutex::acquire_read (void)
-{
- return this->lock_.acquire_read ();
-}
-
-// Acquire lock ownership (wait on priority queue if necessary).
-ACE_INLINE int
-ACE_RW_Process_Mutex::acquire_write (void)
-{
- return this->lock_.acquire_write ();
-}
-
-// Conditionally acquire a lock (i.e., won't block).
-ACE_INLINE int
-ACE_RW_Process_Mutex::tryacquire_read (void)
-{
- return this->lock_.tryacquire_read ();
-}
-
-// Conditionally acquire a lock (i.e., won't block).
-ACE_INLINE int
-ACE_RW_Process_Mutex::tryacquire_write (void)
-{
- return this->lock_.tryacquire_write ();
-}
-
-// Conditionally upgrade a lock (i.e., won't block).
-ACE_INLINE int
-ACE_RW_Process_Mutex::tryacquire_write_upgrade (void)
-{
- return this->lock_.tryacquire_write_upgrade ();
-}
-
-ACE_INLINE const ACE_File_Lock &
-ACE_RW_Process_Mutex::lock (void) const
-{
-// ACE_TRACE ("ACE_RW_Process_Mutex::lock");
- return this->lock_;
-}
diff --git a/ace/Reactor.cpp b/ace/Reactor.cpp
deleted file mode 100644
index 18922660461..00000000000
--- a/ace/Reactor.cpp
+++ /dev/null
@@ -1,314 +0,0 @@
-// $Id$
-
-#include "ace/Reactor.h"
-#include "ace/Reactor_Impl.h"
-#include "ace/Handle_Set.h"
-//#if !defined (ACE_HAS_WINCE)
-# if !defined (ACE_LACKS_ACE_SVCCONF)
-# include "ace/Service_Config.h"
-# endif /* !ACE_LACKS_ACE_SVCCONF */
-# if defined (ACE_WIN32)
-# include "ace/WFMO_Reactor.h"
-# include "ace/Msg_WFMO_Reactor.h"
-# endif /* ACE_WIN32 */
-//#endif /* ! ACE_HAS_WINCE */
-#include "ace/Select_Reactor.h"
-#include "ace/TP_Reactor.h"
-#include "ace/Object_Manager.h"
-#include "ace/Framework_Component.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Reactor.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Reactor, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Reactor)
-
-ACE_Reactor::ACE_Reactor (ACE_Reactor_Impl *impl,
- int delete_implementation)
- : implementation_ (0),
- delete_implementation_ (delete_implementation)
-{
- this->implementation (impl);
-
- if (this->implementation () == 0)
- {
-#if !defined (ACE_WIN32) \
- || !defined (ACE_HAS_WINSOCK2) || (ACE_HAS_WINSOCK2 == 0) \
- || defined (ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL) \
- || defined (ACE_USE_TP_REACTOR_FOR_REACTOR_IMPL)
- #if defined (ACE_USE_TP_REACTOR_FOR_REACTOR_IMPL)
- ACE_NEW (impl,
- ACE_TP_Reactor);
- #else
- ACE_NEW (impl,
- ACE_Select_Reactor);
- #endif /* ACE_USE_TP_REACTOR_FOR_REACTOR_IMPL */
-#else /* We are on Win32 and we have winsock and ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL is not defined */
- #if defined (ACE_USE_MSG_WFMO_REACTOR_FOR_REACTOR_IMPL)
- ACE_NEW (impl,
- ACE_Msg_WFMO_Reactor);
- #else
- ACE_NEW (impl,
- ACE_WFMO_Reactor);
- #endif /* ACE_USE_MSG_WFMO_REACTOR_FOR_REACTOR_IMPL */
-#endif /* !defined (ACE_WIN32) || !defined (ACE_HAS_WINSOCK2) || (ACE_HAS_WINSOCK2 == 0) || defined (ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL) */
- this->implementation (impl);
- this->delete_implementation_ = 1;
- }
-}
-
-ACE_Reactor::~ACE_Reactor (void)
-{
- if (this->delete_implementation_)
- delete this->implementation ();
-}
-
-// Process-wide ACE_Reactor.
-ACE_Reactor *ACE_Reactor::reactor_ = 0;
-
-// Controls whether the Reactor is deleted when we shut down (we can
-// only delete it safely if we created it!)
-int ACE_Reactor::delete_reactor_ = 0;
-
-ACE_Reactor *
-ACE_Reactor::instance (void)
-{
- ACE_TRACE ("ACE_Reactor::instance");
-
- if (ACE_Reactor::reactor_ == 0)
- {
- // Perform Double-Checked Locking Optimization.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
-
- if (ACE_Reactor::reactor_ == 0)
- {
- ACE_NEW_RETURN (ACE_Reactor::reactor_,
- ACE_Reactor,
- 0);
- ACE_Reactor::delete_reactor_ = 1;
- ACE_REGISTER_FRAMEWORK_COMPONENT(ACE_Reactor, ACE_Reactor::reactor_)
- }
- }
- return ACE_Reactor::reactor_;
-}
-
-ACE_Reactor *
-ACE_Reactor::instance (ACE_Reactor *r,
- int delete_reactor)
-{
- ACE_TRACE ("ACE_Reactor::instance");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
- ACE_Reactor *t = ACE_Reactor::reactor_;
- if (delete_reactor != 0)
- ACE_Reactor::delete_reactor_ = 1;
- else
- // We can't safely delete it since we don't know who created it!
- ACE_Reactor::delete_reactor_ = 0;
-
- ACE_Reactor::reactor_ = r;
-
- // We can't register the Reactor singleton as a framework component twice.
- // Therefore we test to see if we had an existing reactor instance, which
- // if so means it must have already been registered.
- if (t == 0)
- ACE_REGISTER_FRAMEWORK_COMPONENT(ACE_Reactor, ACE_Reactor::reactor_);
-
- return t;
-}
-
-void
-ACE_Reactor::close_singleton (void)
-{
- ACE_TRACE ("ACE_Reactor::close_singleton");
-
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance ()));
-
- if (ACE_Reactor::delete_reactor_)
- {
- delete ACE_Reactor::reactor_;
- ACE_Reactor::reactor_ = 0;
- ACE_Reactor::delete_reactor_ = 0;
- }
-}
-
-const ACE_TCHAR *
-ACE_Reactor::dll_name (void)
-{
- return ACE_LIB_TEXT ("ACE");
-}
-
-const ACE_TCHAR *
-ACE_Reactor::name (void)
-{
- return ACE_LIB_TEXT ("ACE_Reactor");
-}
-
-int
-ACE_Reactor::check_reconfiguration (ACE_Reactor *)
-{
-#if !defined (ACE_HAS_WINCE) && !defined (ACE_LACKS_ACE_SVCCONF)
- if (ACE_Service_Config::reconfig_occurred ())
- {
- ACE_Service_Config::reconfigure ();
- return 1;
- }
-#endif /* ! ACE_HAS_WINCE || ! ACE_LACKS_ACE_SVCCONF */
- return 0;
-}
-
-int
-ACE_Reactor::run_reactor_event_loop (REACTOR_EVENT_HOOK eh)
-{
- ACE_TRACE ("ACE_Reactor::run_reactor_event_loop");
-
- if (this->reactor_event_loop_done ())
- return 0;
-
- while (1)
- {
- int result = this->implementation_->handle_events ();
-
- if (eh != 0 && (*eh)(this))
- continue;
- else if (result == -1 && this->implementation_->deactivated ())
- return 0;
- else if (result == -1)
- return -1;
- }
-
- ACE_NOTREACHED (return 0;)
-}
-
-int
-ACE_Reactor::run_alertable_reactor_event_loop (REACTOR_EVENT_HOOK eh)
-{
- ACE_TRACE ("ACE_Reactor::run_alertable_reactor_event_loop");
-
- if (this->reactor_event_loop_done ())
- return 0;
-
- while (1)
- {
- int result = this->implementation_->alertable_handle_events ();
-
- if (eh != 0 && (*eh)(this))
- continue;
- else if (result == -1 && this->implementation_->deactivated ())
- return 0;
- else if (result == -1)
- return -1;
- }
-
- ACE_NOTREACHED (return 0;)
-}
-
-int
-ACE_Reactor::run_reactor_event_loop (ACE_Time_Value &tv,
- REACTOR_EVENT_HOOK eh)
-{
- ACE_TRACE ("ACE_Reactor::run_reactor_event_loop");
-
- if (this->reactor_event_loop_done ())
- return 0;
-
- while (1)
- {
- int result = this->implementation_->handle_events (tv);
-
- if (eh != 0 && (*eh) (this))
- continue;
- else if (result == -1)
- {
- if (this->implementation_->deactivated ())
- result = 0;
- return result;
- }
- else if (result == 0)
- {
- // The <handle_events> method timed out without dispatching
- // anything. Because of rounding and conversion errors and
- // such, it could be that the wait loop (WFMO, select, etc.)
- // timed out, but the timer queue said it wasn't quite ready
- // to expire a timer. In this case, the ACE_Time_Value we
- // passed into handle_events won't have quite been reduced
- // to 0, and we need to go around again. If we are all the
- // way to 0, just return, as the entire time the caller
- // wanted to wait has been used up.
- if (tv.usec () > 0)
- continue;
- return 0;
- }
- // Else there were some events dispatched; go around again
- }
-
- ACE_NOTREACHED (return 0;)
-}
-
-int
-ACE_Reactor::run_alertable_reactor_event_loop (ACE_Time_Value &tv,
- REACTOR_EVENT_HOOK eh)
-{
- ACE_TRACE ("ACE_Reactor::run_alertable_reactor_event_loop");
-
- if (this->reactor_event_loop_done ())
- return 0;
-
- for (;;)
- {
- int result = this->implementation_->alertable_handle_events (tv);
-
- if (eh != 0 && (*eh)(this))
- continue;
- else if (result == -1 && this->implementation_->deactivated ())
- return 0;
- else if (result <= 0)
- return result;
- }
-
- ACE_NOTREACHED (return 0;)
-}
-
-int
-ACE_Reactor::end_reactor_event_loop (void)
-{
- ACE_TRACE ("ACE_Reactor::end_reactor_event_loop");
-
- this->implementation_->deactivate (1);
-
- return 0;
-}
-
-void
-ACE_Reactor::reset_reactor_event_loop (void)
-{
- ACE_TRACE ("ACE_Reactor::reset_reactor_event_loop");
-
- this->implementation_->deactivate (0);
-}
-
-
-int
-ACE_Reactor::resumable_handler (void)
-{
- return this->implementation ()->resumable_handler ();
-}
-
-void
-ACE_Reactor::dump (void) const
-{
- ACE_TRACE ("ACE_Reactor::dump");
-
- implementation_->dump ();
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Framework_Component_T<ACE_Reactor>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Framework_Component_T<ACE_Reactor>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Reactor.h b/ace/Reactor.h
deleted file mode 100644
index d7f91a6df46..00000000000
--- a/ace/Reactor.h
+++ /dev/null
@@ -1,703 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Reactor.h
- *
- * $Id$
- *
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_REACTOR_H
-#define ACE_REACTOR_H
-#include "ace/pre.h"
-
-class ACE_Reactor_Impl;
-
-// Need the class def for ACE_Handle_Set to compile references to it in
-// programs.
-#include "ace/Handle_Set.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Timer Queue is a complicated template class. A simple forward
-// declaration will not work
-#include "ace/Timer_Queue.h"
-
-// Event_Handler.h contains the definition of ACE_Reactor_Mask
-#include "ace/Event_Handler.h"
-
-// We are using 4 or 5 signal classes, we could forward declare
-// them.... But Timer_Queue_T.h includes Signal.h, so I don't think
-// forward declaration will be useful here
-#include "ace/Signal.h"
-
-/**
- * @class ACE_Reactor
- *
- * @brief The responsibility of this class is to forward all methods to
- * its delegation/implementation class, e.g.,
- * <ACE_Select_Reactor> or <ACE_WFMO_Reactor>.
- */
-class ACE_Export ACE_Reactor
-{
-public:
- /// Operations on the "ready" mask and the "dispatch" mask.
- enum
- {
- /// Retrieve current value of the the "ready" mask or the
- /// "dispatch" mask.
- GET_MASK = 1,
- /// Set value of bits to new mask (changes the entire mask).
- SET_MASK = 2,
- /// Bitwise "or" the value into the mask (only changes enabled
- /// bits).
- ADD_MASK = 3,
- /// Bitwise "and" the negation of the value out of the mask (only
- /// changes enabled bits).
- CLR_MASK = 4
- };
-
- /**
- * You can add a hook to various run_event methods and the hook will
- * be called after handling every reactor event. If this function
- * returns 0, <run_reactor_event_loop> will check for the return
- * value of <handle_event>. If it is -1, the
- * <run_reactor_event_loop> will return (pre-maturely.)
- */
- typedef int (*REACTOR_EVENT_HOOK)(ACE_Reactor *);
-
- /// Get pointer to a process-wide <ACE_Reactor>.
- static ACE_Reactor *instance (void);
-
- /**
- * Set pointer to a process-wide <ACE_Reactor> and return existing
- * pointer. If <delete_reactor> != 0 then we'll delete the Reactor
- * at destruction time.
- */
- static ACE_Reactor *instance (ACE_Reactor *,
- int delete_reactor = 0);
-
- /// Delete the dynamically allocated Singleton
- static void close_singleton (void);
-
- /// Name of the dll in which the dll lives.
- static const ACE_TCHAR *dll_name (void);
-
- /// Name of the component--ACE_Reactor in this case.
- static const ACE_TCHAR *name (void);
-
- // = Singleton reactor event loop management methods.
-
- // Note that these method ONLY work on the "Singleton Reactor,"
- // i.e., the one returned from <ACE_Reactor::instance>.
- /**
- * Run the event loop until the
- * <ACE_Reactor::handle_events/ACE_Reactor::alertable_handle_events>
- * method returns -1 or the <end_event_loop> method is invoked.
- * Note that this method can only be used by the singleton
- * <ACE_Reactor::instance>. Thus, to run another reactor use
- * <ACE_Reactor::run_reactor_event_loop>.
- *
- * @deprecated Use ACE_Reactor::instance()->run_reactor_event_loop() instead
- */
- static int run_event_loop (void);
- static int run_alertable_event_loop (void);
-
- /**
- * Run the event loop until the <ACE_Reactor::handle_events> or
- * <ACE_Reactor::alertable_handle_events> methods returns -1, the
- * <end_event_loop> method is invoked, or the <ACE_Time_Value>
- * expires. Note that this method can only be used by the singleton
- * <ACE_Reactor::instance>. Thus, to run another reactor use
- * <ACE_Reactor::run_reactor_event_loop>.
- *
- * @deprecated Use ACE_Reactor::instance()->run_reactor_event_loop() instead
- */
- static int run_event_loop (ACE_Time_Value &tv);
- static int run_alertable_event_loop (ACE_Time_Value &tv);
-
- /**
- * Instruct the <ACE_Reactor::instance> to terminate its event loop
- * and notifies the <ACE_Reactor::instance> so that it can wake up
- * and close down gracefully. Note that this method can only be
- * used by the singleton <ACE_Reactor::instance>. Thus, to
- * terminate another reactor, use
- * <ACE_Reactor::end_reactor_event_loop>.
- *
- * @deprecated Use ACE_Reactor::instance()->end_reactor_event_loop() instead
- */
- static int end_event_loop (void);
-
- /**
- * Report if the <ACE_Reactor::instance>'s event loop is finished.
- * Note that this method can only be used by the singleton
- * <ACE_Reactor::instance>. Thus, to check another reactor use
- * <ACE_Reactor::reactor_event_loop_done>.
- *
- * @deprecated Use ACE_Reactor::instance()->reactor_event_loop_done() instead
- */
- static int event_loop_done (void);
-
- /**
- * Resets the <ACE_Reactor::end_event_loop_> static so that the
- * <run_event_loop> method can be restarted. Note that this method
- * can only be used by the singleton <ACE_Reactor::instance>. Thus,
- * to reset another reactor use <ACE_Reactor::reset_reactor_event_loop>.
- *
- * @deprecated Use ACE_Reactor::instance()->reset_reactor_event_loop()
- * instead
- */
- static void reset_event_loop (void);
-
- /**
- * The singleton reactor is used by the <ACE_Service_Config>.
- * Therefore, we must check for the reconfiguration request and
- * handle it after handling an event.
- */
- static int check_reconfiguration (ACE_Reactor *);
-
- // = Reactor event loop management methods.
-
- // These methods work with an instance of a reactor.
- /**
- * Run the event loop until the
- * <ACE_Reactor::handle_events/ACE_Reactor::alertable_handle_events>
- * method returns -1 or the <end_reactor_event_loop> method is invoked.
- */
- virtual int run_reactor_event_loop (REACTOR_EVENT_HOOK = 0);
- virtual int run_alertable_reactor_event_loop (REACTOR_EVENT_HOOK = 0);
-
- /**
- * Run the event loop until the <ACE_Reactor::handle_events> or
- * <ACE_Reactor::alertable_handle_events> methods returns -1, the
- * <end_reactor_event_loop> method is invoked, or the <ACE_Time_Value>
- * expires.
- */
- virtual int run_reactor_event_loop (ACE_Time_Value &tv,
- REACTOR_EVENT_HOOK = 0);
- virtual int run_alertable_reactor_event_loop (ACE_Time_Value &tv,
- REACTOR_EVENT_HOOK = 0);
-
- /**
- * Instruct the Reactor to terminate its event loop and notifies the
- * Reactor so that it can wake up and deactivate
- * itself. Deactivating the Reactor would allow the Reactor to be
- * shutdown gracefully. Internally the Reactor calls deactivate ()
- * on the underlying implementation.
- * Any queued notifications remain queued on return from this method.
- * If the event loop is restarted in the future, the notifications
- * will be dispatched then. If the reactor is closed or deleted without
- * further dispatching, the notifications will be lost.
- */
- virtual int end_reactor_event_loop (void);
-
- /// Indicate if the Reactor's event loop has been ended.
- virtual int reactor_event_loop_done (void);
-
- /// Resets the <ACE_Reactor::end_event_loop_> static so that the
- /// <run_event_loop> method can be restarted.
- virtual void reset_reactor_event_loop (void);
-
- /**
- * Create the Reactor using <implementation>. The flag
- * <delete_implementation> tells the Reactor whether or not to
- * delete the <implementation> on destruction.
- */
- ACE_Reactor (ACE_Reactor_Impl *implementation = 0,
- int delete_implementation = 0);
-
- /// Close down and release all resources.
- /**
- * Any notifications that remain queued on this reactor instance are
- * lost.
- */
- virtual ~ACE_Reactor (void);
-
- /**
- * Initialize the <ACE_Reactor> to manage <max_number_of_handles>.
- * If <restart> is non-0 then the <ACE_Reactor>'s <handle_events>
- * method will be restarted automatically when <EINTR> occurs. If
- * <signal_handler> or <timer_queue> are non-0 they are used as the
- * signal handler and timer queue, respectively.
- */
- virtual int open (size_t max_number_of_handles,
- int restart = 0,
- ACE_Sig_Handler *signal_handler = 0,
- ACE_Timer_Queue *timer_queue = 0);
-
- /// Use a user specified signal handler instead.
- virtual int set_sig_handler (ACE_Sig_Handler *signal_handler);
-
- // = The following method is deprecated.
- /// @deprecated Use <timer_queue> instead.
- /// Set a user specified timer queue.
- virtual int set_timer_queue (ACE_Timer_Queue *tq);
-
- /// Set a user-specified timer queue.
- virtual int timer_queue (ACE_Timer_Queue *tq);
-
- /// Return the current <ACE_Timer_Queue>.
- virtual ACE_Timer_Queue *timer_queue (void) const;
-
- /// Close down and release all resources.
- virtual int close (void);
-
- // = Event loop drivers.
-
- /**
- * Returns non-zero if there are I/O events "ready" for dispatching,
- * but does not actually dispatch the event handlers. By default,
- * don't block while checking this, i.e., "poll".
- */
- virtual int work_pending (const ACE_Time_Value &max_wait_time = ACE_Time_Value::zero);
-
- /**
- * This event loop driver blocks for up to <max_wait_time> before
- * returning. It will return earlier if events occur. Note that
- * <max_wait_time> can be 0, in which case this method blocks
- * indefinitely until events occur.
- *
- * <max_wait_time> is decremented to reflect how much time this call
- * took. For instance, if a time value of 3 seconds is passed to
- * handle_events and an event occurs after 2 seconds,
- * <max_wait_time> will equal 1 second. This can be used if an
- * application wishes to handle events for some fixed amount of
- * time.
- *
- * Returns the total number of timers and I/O <ACE_Event_Handler>s
- * that were dispatched, 0 if the <max_wait_time> elapsed without
- * dispatching any handlers, or -1 if an error occurs.
- *
- * The only difference between <alertable_handle_events> and
- * <handle_events> is that in the alertable case, the eventloop will
- * return when the system queues an I/O completion routine or an
- * Asynchronous Procedure Call.
- */
- virtual int handle_events (ACE_Time_Value *max_wait_time = 0);
- virtual int alertable_handle_events (ACE_Time_Value *max_wait_time = 0);
-
- /**
- * This method is just like the one above, except the
- * <max_wait_time> value is a reference and can therefore never be
- * NULL.
- *
- * The only difference between <alertable_handle_events> and
- * <handle_events> is that in the alertable case, the eventloop will
- * return when the system queues an I/O completion routine or an
- * Asynchronous Procedure Call.
- */
- virtual int handle_events (ACE_Time_Value &max_wait_time);
- virtual int alertable_handle_events (ACE_Time_Value &max_wait_time);
-
- // = Register and remove Handlers.
-
- /// Register <event_handler> with <mask>. The I/O handle will always
- /// come from <get_handle> on the <event_handler>.
- virtual int register_handler (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /// Register <event_handler> with <mask>. The I/O handle is provided
- /// through the <io_handle> parameter.
- virtual int register_handler (ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
-#if defined (ACE_WIN32)
- /**
- * Register an <event_handler> that will be notified when
- * <event_handle> is signaled. Since no event mask is passed
- * through this interface, it is assumed that the <event_handle>
- * being passed in is an event handle and not an I/O handle.
- *
- * Originally this interface was available for all platforms, but
- * because ACE_HANDLE is an int on non-Win32 platforms, compilers
- * are not able to tell the difference between
- * register_handler(ACE_Event_Handler*,ACE_Reactor_Mask) and
- * register_handler(ACE_Event_Handler*,ACE_HANDLE). Therefore, we
- * have restricted this method to Win32 only.
- */
- virtual int register_handler (ACE_Event_Handler *event_handler,
- ACE_HANDLE event_handle = ACE_INVALID_HANDLE);
-#endif /* ACE_WIN32 */
-
- /**
- * Register an <event_handler> that will be notified when
- * <event_handle> is signaled. <mask> specifies the network events
- * that the <event_handler> is interested in.
- */
- virtual int register_handler (ACE_HANDLE event_handle,
- ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /// Register <event_handler> with all the <handles> in the <Handle_Set>.
- virtual int register_handler (const ACE_Handle_Set &handles,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /**
- * Register <new_sh> to handle the signal <signum> using the
- * <new_disp>. Returns the <old_sh> that was previously registered
- * (if any), along with the <old_disp> of the signal handler.
- */
- virtual int register_handler (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp = 0,
- ACE_Event_Handler **old_sh = 0,
- ACE_Sig_Action *old_disp = 0);
-
- /// Registers <new_sh> to handle a set of signals <sigset> using the
- /// <new_disp>.
- virtual int register_handler (const ACE_Sig_Set &sigset,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp = 0);
-
- /**
- * Removes <event_handler>. Note that the I/O handle will be
- * obtained using <get_handle> method of <event_handler> . If
- * <mask> includes <ACE_Event_Handler::DONT_CALL> then the
- * <handle_close> method of the <event_handler> is not invoked.
- */
- virtual int remove_handler (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /**
- * Removes the <ACE_Event_Handler> associated with <handle>. If
- * <mask> includes <ACE_Event_Handler::DONT_CALL> then the
- * <handle_close> method of the associated <event_handler> is not
- * invoked.
- */
- virtual int remove_handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
- /**
- * Removes all handles in <handle_set>. If <mask> ==
- * <ACE_Event_Handler::DONT_CALL> then the <handle_close> method of
- * the associated <event_handler>s is not invoked.
- */
- virtual int remove_handler (const ACE_Handle_Set &handle_set,
- ACE_Reactor_Mask mask);
-
- /**
- * Remove the ACE_Event_Handler currently associated with <signum>.
- * Install the new disposition (if given) and return the previous
- * disposition (if desired by the caller). Returns 0 on success and
- * -1 if <signum> is invalid.
- */
- virtual int remove_handler (int signum,
- ACE_Sig_Action *new_disp,
- ACE_Sig_Action *old_disp = 0,
- int sigkey = -1);
-
- /// Calls <remove_handler> for every signal in <sigset>.
- virtual int remove_handler (const ACE_Sig_Set &sigset);
-
- // = Suspend and resume Handlers.
-
- /// Suspend <event_handler> temporarily. Use
- /// <ACE_Event_Handler::get_handle> to get the handle.
- virtual int suspend_handler (ACE_Event_Handler *event_handler);
-
- /// Suspend <handle> temporarily.
- virtual int suspend_handler (ACE_HANDLE handle);
-
- /// Suspend all <handles> in handle set temporarily.
- virtual int suspend_handler (const ACE_Handle_Set &handles);
-
- /// Suspend all <handles> temporarily.
- virtual int suspend_handlers (void);
-
- /// Resume <event_handler>. Use <ACE_Event_Handler::get_handle> to
- /// get the handle.
- virtual int resume_handler (ACE_Event_Handler *event_handler);
-
- /// Resume <handle>.
- virtual int resume_handler (ACE_HANDLE handle);
-
- /// Resume all <handles> in handle set.
- virtual int resume_handler (const ACE_Handle_Set &handles);
-
- /// Resume all <handles>.
- virtual int resume_handlers (void);
-
- /// Does the reactor allow the application to resume the handle on
- /// its own ie. can it pass on the control of handle resumption to
- /// the application. A positive value indicates that the handlers
- /// are application resumable. A value of 0 indicates otherwise.
- virtual int resumable_handler (void);
-
- // = Timer management.
-
- /**
- * Schedule an ACE_Event_Handler that will expire after an amount
- * of time. The return value of this method, a timer_id value,
- * uniquely identifies the event_handler in the ACE_Reactor's
- * internal list of timers.
- * This timer_id value can be used to cancel the timer
- * with the cancel_timer() call.
- *
- * @see cancel_timer()
- * @see reset_timer_interval()
- *
- * @param event_handler event handler to schedule on reactor
- * @param arg argument passed to the handle_timeout() method of event_handler
- * @param delay time interval after which the timer will expire
- * @param interval time interval after which the timer will be automatically rescheduled
- * @return -1 on failure, a timer_id value on success
- */
- virtual long schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval = ACE_Time_Value::zero);
-
- /**
- * Resets the interval of the timer represented by <timer_id> to
- * <interval>, which is specified in relative time to the current
- * <gettimeofday>. If <interval> is equal to
- * <ACE_Time_Value::zero>, the timer will become a non-rescheduling
- * timer. Returns 0 if successful, -1 if not.
- */
- virtual int reset_timer_interval (long timer_id,
- const ACE_Time_Value &interval);
-
- /// Cancel all <Event_Handler>s that match the address of
- /// <event_handler>. Returns number of handlers cancelled.
- virtual int cancel_timer (ACE_Event_Handler *event_handler,
- int dont_call_handle_close = 1);
-
- /**
- * Cancel the single <Event_Handler> that matches the <timer_id>
- * value, which was returned from the schedule method. If arg is
- * non-NULL then it will be set to point to the ``magic cookie''
- * argument passed in when the Event_Handler was registered. This
- * makes it possible to free up the memory and avoid memory leaks.
- * Returns 1 if cancellation succeeded and 0 if the <timer_id>
- * wasn't found.
- */
- virtual int cancel_timer (long timer_id,
- const void **arg = 0,
- int dont_call_handle_close = 1);
-
- // = High-level Event_Handler scheduling operations
-
- /// Add <masks_to_be_added> to the <event_handler>'s entry.
- /// <event_handler> must already have been registered.
- /// Note that this call does not cause the Reactor to re-examine
- /// its set of handlers - the new masks will be noticed the next
- /// time the Reactor waits for activity. If there is no other
- /// activity expected, or you need immediate re-examination of
- /// the wait masks, either call ACE_Reactor::notify after this
- /// call, or use ACE_Reactor::register_handler instead.
- virtual int schedule_wakeup (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask masks_to_be_added);
-
- /// Add <masks_to_be_added> to the <handle>'s entry. <event_handler>
- /// associated with <handle> must already have been registered.
- /// Note that this call does not cause the Reactor to re-examine
- /// its set of handlers - the new masks will be noticed the next
- /// time the Reactor waits for activity. If there is no other
- /// activity expected, or you need immediate re-examination of
- /// the wait masks, either call ACE_Reactor::notify after this
- /// call, or use ACE_Reactor::register_handler instead.
- virtual int schedule_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask masks_to_be_added);
-
- /// Clear <masks_to_be_cleared> from the <event_handler>'s entry.
- /// Note that this call does not cause the Reactor to re-examine
- /// its set of handlers - the new masks will be noticed the next
- /// time the Reactor waits for activity. If there is no other
- /// activity expected, or you need immediate re-examination of
- /// the wait masks, either call ACE_Reactor::notify after this
- /// call, or use ACE_Reactor::register_handler instead.
- virtual int cancel_wakeup (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask masks_to_be_cleared);
-
- /// Clear <masks_to_be_cleared> from the <handle>'s entry.
- /// Note that this call does not cause the Reactor to re-examine
- /// its set of handlers - the new masks will be noticed the next
- /// time the Reactor waits for activity. If there is no other
- /// activity expected, or you need immediate re-examination of
- /// the wait masks, either call ACE_Reactor::notify after this
- /// call, or use ACE_Reactor::register_handler instead.
- virtual int cancel_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask masks_to_be_cleared);
-
- // = Notification methods.
-
- /**
- * Notify <event_handler> of <mask> event. The <ACE_Time_Value>
- * indicates how long to blocking trying to notify. If <timeout> ==
- * 0, the caller will block until action is possible, else will wait
- * until the relative time specified in <timeout> elapses). Note that
- * <mask> can only be one of the pre-defined <ACE_Event_Handler>
- * masks, e.g., <READ_MASK>, <WRITE_MASK>, or <EXCEPT_MASK>.
- */
- virtual int notify (ACE_Event_Handler *event_handler = 0,
- ACE_Reactor_Mask mask = ACE_Event_Handler::EXCEPT_MASK,
- ACE_Time_Value *tv = 0);
-
- /**
- * Set the maximum number of times that ACE_Reactor will
- * iterate and dispatch the <ACE_Event_Handlers> that are passed in
- * via the notify queue before breaking out of its
- * <ACE_Message_Queue::dequeue> loop. By default, this is set to
- * -1, which means "iterate until the queue is empty." Setting this
- * to a value like "1 or 2" will increase "fairness" (and thus
- * prevent starvation) at the expense of slightly higher dispatching
- * overhead.
- */
- virtual void max_notify_iterations (int iterations);
-
- /**
- * Get the maximum number of times that the ACE_Reactor will
- * iterate and dispatch the <ACE_Event_Handlers> that are passed in
- * via the notify queue before breaking out of its
- * <ACE_Message_Queue::dequeue> loop.
- */
- virtual int max_notify_iterations (void);
-
- /**
- * Purge any notifications pending in this reactor for the specified
- * <ACE_Event_Handler> object. If <eh> == 0, all notifications for all
- * handlers are removed (but not any notifications posted just to wake up
- * the reactor itself). Returns the number of notifications purged.
- * Returns -1 on error.
- */
- virtual int purge_pending_notifications (ACE_Event_Handler *,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
-
- // = Assorted helper methods.
-
- /**
- * Check to see if <handle> is associated with a valid Event_Handler
- * bound to <mask>. Return the <event_handler> associated with this
- * <handler> if <event_handler> != 0.
- */
- virtual int handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Event_Handler **event_handler = 0);
-
- /**
- * Check to see if <signum> is associated with a valid Event_Handler
- * bound to a signal. Return the <event_handler> associated with
- * this <handler> if <event_handler> != 0.
- */
- virtual int handler (int signum,
- ACE_Event_Handler **event_handler = 0);
-
- /// Returns true if Reactor has been successfully initialized, else
- /// false.
- virtual int initialized (void);
-
- /// Returns the current size of the Reactor's internal descriptor
- /// table.
- virtual size_t size (void) const;
-
- /// Returns a reference to the Reactor's internal lock.
- virtual ACE_Lock &lock (void);
-
- /// Wake up all threads in waiting in the event loop
- virtual void wakeup_all_threads (void);
-
- /// Transfers ownership of Reactor to the <new_owner>.
- virtual int owner (ACE_thread_t new_owner,
- ACE_thread_t *old_owner = 0);
-
- /// Return the ID of the "owner" thread.
- virtual int owner (ACE_thread_t *owner);
-
- /// Set position of the owner thread.
- virtual void requeue_position (int position);
-
- /// Get position of the owner thread.
- virtual int requeue_position (void);
-
- /// Get the existing restart value.
- virtual int restart (void);
-
- /// Set a new value for restart and return the original value.
- virtual int restart (int r);
-
- // = Low-level wait_set mask manipulation methods.
-
- /// GET/SET/ADD/CLR the dispatch mask "bit" bound with the
- /// <event_handler> and <mask>.
- virtual int mask_ops (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- int ops);
-
- /// GET/SET/ADD/CLR the dispatch MASK "bit" bound with the <handle>
- /// and <mask>.
- virtual int mask_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops);
-
- // = Low-level ready_set mask manipulation methods.
- /// GET/SET/ADD/CLR the ready "bit" bound with the <event_handler>
- /// and <mask>.
- virtual int ready_ops (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- int ops);
-
- /// GET/SET/ADD/CLR the ready "bit" bound with the <handle> and <mask>.
- virtual int ready_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops);
-
- /// Get the implementation class
- virtual ACE_Reactor_Impl *implementation (void) const;
-
- /**
- * Returns 0, if the size of the current message has been put in
- * <size> returns -1, if not. ACE_HANDLE allows the reactor to
- * check if the caller is valid. Used for CLASSIX Reactor
- * implementation.
- */
- virtual int current_info (ACE_HANDLE handle,
- size_t &msg_size);
-
- /// Return 1 if we any event associations were made by the reactor
- /// for the handles that it waits on, 0 otherwise.
- virtual int uses_event_associations (void);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /// Dump the state of the object.
- void dump (void) const;
-
-protected:
- /// Set the implementation class.
- virtual void implementation (ACE_Reactor_Impl *implementation);
-
- /// Delegation/implementation class that all methods will be
- /// forwarded to.
- ACE_Reactor_Impl *implementation_;
-
- /// Flag used to indicate whether we are responsible for cleaning up
- /// the implementation instance
- int delete_implementation_;
-
- /// Pointer to a process-wide <ACE_Reactor> singleton.
- static ACE_Reactor *reactor_;
-
- /// Must delete the <reactor_> singleton if non-0.
- static int delete_reactor_;
-
- /// Deny access since member-wise won't work...
- ACE_Reactor (const ACE_Reactor &);
- ACE_Reactor &operator = (const ACE_Reactor &);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Reactor.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_REACTOR_H */
diff --git a/ace/Reactor.i b/ace/Reactor.i
deleted file mode 100644
index 9324bdcfe43..00000000000
--- a/ace/Reactor.i
+++ /dev/null
@@ -1,675 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/Reactor_Impl.h"
-#include "ace/Handle_Set.h"
-
-ACE_INLINE ACE_Reactor_Impl *
-ACE_Reactor::implementation (void) const
-{
- return this->implementation_;
-}
-
-ACE_INLINE void
-ACE_Reactor::implementation (ACE_Reactor_Impl *impl)
-{
- this->implementation_ = impl;
-}
-
-ACE_INLINE int
-ACE_Reactor::current_info (ACE_HANDLE handle,
- size_t &size)
-{
- return this->implementation ()->current_info (handle, size);
-}
-
-// Run the event loop until the <ACE_Reactor::handle_events> method
-// returns -1 or the <end_event_loop> method is invoked.
-
-ACE_INLINE int
-ACE_Reactor::run_event_loop (void)
-{
- ACE_TRACE ("ACE_Reactor::run_event_loop");
- ACE_Reactor *r = ACE_Reactor::instance ();
-
- if (r == 0)
- return -1;
-
- return r->run_reactor_event_loop (ACE_Reactor::check_reconfiguration);
-}
-
-// Run the event loop until the <ACE_Reactor::handle_events>
-// method returns -1, the <end_event_loop> method
-// is invoked, or the <ACE_Time_Value> expires.
-
-ACE_INLINE int
-ACE_Reactor::run_event_loop (ACE_Time_Value &tv)
-{
- ACE_TRACE ("ACE_Reactor::run_event_loop");
- ACE_Reactor *r = ACE_Reactor::instance ();
-
- if (r == 0)
- return -1;
-
- return r->run_reactor_event_loop
- (tv, ACE_Reactor::check_reconfiguration);
-}
-
-// Run the event loop until the <ACE_Reactor::alertable_handle_events> method
-// returns -1 or the <end_event_loop> method is invoked.
-
-ACE_INLINE int
-ACE_Reactor::run_alertable_event_loop (void)
-{
- ACE_TRACE ("ACE_Reactor::run_alertable_event_loop");
- ACE_Reactor *r = ACE_Reactor::instance ();
-
- if (r == 0)
- return -1;
-
- return r->run_alertable_reactor_event_loop (ACE_Reactor::check_reconfiguration);
-}
-
-// Run the event loop until the <ACE_Reactor::alertable_handle_events>
-// method returns -1, the <end_event_loop> method
-// is invoked, or the <ACE_Time_Value> expires.
-
-ACE_INLINE int
-ACE_Reactor::run_alertable_event_loop (ACE_Time_Value &tv)
-{
- ACE_TRACE ("ACE_Reactor::run_alertable_event_loop");
- ACE_Reactor *r = ACE_Reactor::instance ();
-
- if (r == 0)
- return -1;
-
- return r->run_alertable_reactor_event_loop
- (tv, ACE_Reactor::check_reconfiguration);
-}
-
-ACE_INLINE void
-ACE_Reactor::reset_event_loop (void)
-{
- ACE_TRACE ("ACE_Reactor::reset_event_loop");
-
- ACE_Reactor::instance ()->reset_reactor_event_loop ();
-}
-
-ACE_INLINE int
-ACE_Reactor::end_event_loop (void)
-{
- ACE_TRACE ("ACE_Reactor::end_event_loop");
- ACE_Reactor::instance ()->end_reactor_event_loop ();
-
- return 0;
-}
-
-ACE_INLINE int
-ACE_Reactor::reactor_event_loop_done (void)
-{
- ACE_TRACE ("ACE_Reactor::reactor_event_loop_done");
- return this->implementation_->deactivated ();
-}
-
-ACE_INLINE int
-ACE_Reactor::event_loop_done (void)
-{
- ACE_TRACE ("ACE_Reactor::event_loop_done");
- return ACE_Reactor::instance ()->reactor_event_loop_done ();
-}
-
-ACE_INLINE int
-ACE_Reactor::open (size_t size,
- int restart,
- ACE_Sig_Handler *signal_handler,
- ACE_Timer_Queue *timer_queue)
-{
- return this->implementation ()->open (size,
- restart,
- signal_handler,
- timer_queue);
-}
-ACE_INLINE int
-ACE_Reactor::set_sig_handler (ACE_Sig_Handler *signal_handler)
-{
- return this->implementation ()->set_sig_handler (signal_handler);
-}
-
-ACE_INLINE int
-ACE_Reactor::timer_queue (ACE_Timer_Queue *tq)
-{
- return this->implementation ()->timer_queue (tq);
-}
-
-ACE_INLINE int
-ACE_Reactor::set_timer_queue (ACE_Timer_Queue *tq)
-{
- return this->timer_queue (tq);
-}
-
-ACE_INLINE ACE_Timer_Queue *
-ACE_Reactor::timer_queue (void) const
-{
- ACE_Reactor_Impl *impl = this->implementation_;
- return impl->timer_queue ();
-}
-
-ACE_INLINE int
-ACE_Reactor::close (void)
-{
- return this->implementation ()->close ();
-}
-
-ACE_INLINE int
-ACE_Reactor::work_pending (const ACE_Time_Value &max_wait_time)
-{
- return this->implementation ()->work_pending (max_wait_time);
-}
-
-ACE_INLINE int
-ACE_Reactor::handle_events (ACE_Time_Value *max_wait_time)
-{
- return this->implementation ()->handle_events (max_wait_time);
-}
-
-ACE_INLINE int
-ACE_Reactor::alertable_handle_events (ACE_Time_Value *max_wait_time)
-{
- return this->implementation ()->alertable_handle_events (max_wait_time);
-}
-
-ACE_INLINE int
-ACE_Reactor::handle_events (ACE_Time_Value &max_wait_time)
-{
- return this->implementation ()->handle_events (max_wait_time);
-}
-
-ACE_INLINE int
-ACE_Reactor::alertable_handle_events (ACE_Time_Value &max_wait_time)
-{
- return this->implementation ()->alertable_handle_events (max_wait_time);
-}
-
-
-ACE_INLINE int
-ACE_Reactor::register_handler (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- // Remember the old reactor.
- ACE_Reactor *old_reactor = event_handler->reactor ();
-
- // Assign *this* <Reactor> to the <Event_Handler>.
- event_handler->reactor (this);
-
- int result = this->implementation ()->register_handler (event_handler,
- mask);
- if (result == -1)
- // Reset the old reactor in case of failures.
- event_handler->reactor (old_reactor);
-
- return result;
-}
-
-ACE_INLINE int
-ACE_Reactor::register_handler (ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- // Remember the old reactor.
- ACE_Reactor *old_reactor = event_handler->reactor ();
-
- // Assign *this* <Reactor> to the <Event_Handler>.
- event_handler->reactor (this);
-
- int result = this->implementation ()->register_handler (io_handle,
- event_handler,
- mask);
- if (result == -1)
- // Reset the old reactor in case of failures.
- event_handler->reactor (old_reactor);
-
- return result;
-}
-
-#if defined (ACE_WIN32)
-
-ACE_INLINE int
-ACE_Reactor::register_handler (ACE_Event_Handler *event_handler,
- ACE_HANDLE event_handle)
-{
- // Remember the old reactor.
- ACE_Reactor *old_reactor = event_handler->reactor ();
-
- // Assign *this* <Reactor> to the <Event_Handler>.
- event_handler->reactor (this);
-
- int result = this->implementation ()->register_handler (event_handler,
- event_handle);
- if (result == -1)
- // Reset the old reactor in case of failures.
- event_handler->reactor (old_reactor);
-
- return result;
-}
-
-#endif /* ACE_WIN32 */
-
-ACE_INLINE int
-ACE_Reactor::register_handler (ACE_HANDLE event_handle,
- ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- // Remember the old reactor.
- ACE_Reactor *old_reactor = event_handler->reactor ();
-
- // Assign *this* <Reactor> to the <Event_Handler>.
- event_handler->reactor (this);
-
- int result = this->implementation ()->register_handler (event_handle,
- io_handle,
- event_handler,
- mask);
- if (result == -1)
- // Reset the old reactor in case of failures.
- event_handler->reactor (old_reactor);
-
- return result;
-}
-
-ACE_INLINE int
-ACE_Reactor::register_handler (const ACE_Handle_Set &handles,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- // Remember the old reactor.
- ACE_Reactor *old_reactor = event_handler->reactor ();
-
- // Assign *this* <Reactor> to the <Event_Handler>.
- event_handler->reactor (this);
-
- int result = this->implementation ()->register_handler (handles,
- event_handler,
- mask);
- if (result == -1)
- // Reset the old reactor in case of failures.
- event_handler->reactor (old_reactor);
-
- return result;
-}
-
-ACE_INLINE int
-ACE_Reactor::register_handler (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp,
- ACE_Event_Handler **old_sh,
- ACE_Sig_Action *old_disp)
-{
- return this->implementation ()->register_handler (signum,
- new_sh,
- new_disp,
- old_sh,
- old_disp);
-}
-
-ACE_INLINE int
-ACE_Reactor::register_handler (const ACE_Sig_Set &sigset,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp)
-{
- return this->implementation ()->register_handler (sigset,
- new_sh,
- new_disp);
-}
-
-ACE_INLINE int
-ACE_Reactor::remove_handler (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- return this->implementation ()->remove_handler (event_handler,
- mask);
-}
-
-ACE_INLINE int
-ACE_Reactor::remove_handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- return this->implementation ()->remove_handler (handle,
- mask);
-}
-
-ACE_INLINE int
-ACE_Reactor::remove_handler (const ACE_Handle_Set &handle_set,
- ACE_Reactor_Mask mask)
-{
- return this->implementation ()->remove_handler (handle_set,
- mask);
-}
-
-ACE_INLINE int
-ACE_Reactor::remove_handler (int signum,
- ACE_Sig_Action *new_disp,
- ACE_Sig_Action *old_disp,
- int sigkey)
-{
- return this->implementation ()->remove_handler (signum,
- new_disp,
- old_disp,
- sigkey);
-}
-
-ACE_INLINE int
-ACE_Reactor::remove_handler (const ACE_Sig_Set &sigset)
-{
- return this->implementation ()->remove_handler (sigset);
-}
-
-
-ACE_INLINE int
-ACE_Reactor::suspend_handler (ACE_Event_Handler *event_handler)
-{
- return this->implementation ()->suspend_handler (event_handler);
-}
-
-ACE_INLINE int
-ACE_Reactor::suspend_handler (ACE_HANDLE handle)
-{
- return this->implementation ()->suspend_handler (handle);
-}
-
-ACE_INLINE int
-ACE_Reactor::suspend_handler (const ACE_Handle_Set &handles)
-{
- return this->implementation ()->suspend_handler (handles);
-}
-
-ACE_INLINE int
-ACE_Reactor::suspend_handlers (void)
-{
- return this->implementation ()->suspend_handlers ();
-}
-
-ACE_INLINE int
-ACE_Reactor::resume_handler (ACE_Event_Handler *event_handler)
-{
- return this->implementation ()->resume_handler (event_handler);
-}
-
-ACE_INLINE int
-ACE_Reactor::resume_handler (ACE_HANDLE handle)
-{
- return this->implementation ()->resume_handler (handle);
-}
-
-ACE_INLINE int
-ACE_Reactor::resume_handler (const ACE_Handle_Set &handles)
-{
- return this->implementation ()->resume_handler (handles);
-}
-
-ACE_INLINE int
-ACE_Reactor::resume_handlers (void)
-{
- return this->implementation ()->resume_handlers ();
-}
-
-
-ACE_INLINE int
-ACE_Reactor::reset_timer_interval
- (long timer_id,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_Reactor::reset_timer_interval");
-
- return this->implementation ()->reset_timer_interval
- (timer_id,
- interval);
-}
-
-ACE_INLINE long
-ACE_Reactor::schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delta,
- const ACE_Time_Value &interval)
-{
- // Remember the old reactor.
- ACE_Reactor *old_reactor = event_handler->reactor ();
-
- // Assign *this* <Reactor> to the <Event_Handler>.
- event_handler->reactor (this);
-
- int result = this->implementation ()->schedule_timer (event_handler,
- arg,
- delta,
- interval);
- if (result == -1)
- // Reset the old reactor in case of failures.
- event_handler->reactor (old_reactor);
-
- return result;
-}
-
-ACE_INLINE int
-ACE_Reactor::cancel_timer (ACE_Event_Handler *event_handler,
- int dont_call_handle_close)
-{
- return this->implementation ()->cancel_timer (event_handler,
- dont_call_handle_close);
-}
-
-ACE_INLINE int
-ACE_Reactor::cancel_timer (long timer_id,
- const void **arg,
- int dont_call_handle_close)
-{
- return this->implementation ()->cancel_timer (timer_id,
- arg,
- dont_call_handle_close);
-}
-
-ACE_INLINE int
-ACE_Reactor::schedule_wakeup (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask masks_to_be_added)
-{
- // Remember the old reactor.
- ACE_Reactor *old_reactor = event_handler->reactor ();
-
- // Assign *this* <Reactor> to the <Event_Handler>.
- event_handler->reactor (this);
-
- int result = this->implementation ()->schedule_wakeup (event_handler,
- masks_to_be_added);
- if (result == -1)
- // Reset the old reactor in case of failures.
- event_handler->reactor (old_reactor);
-
- return result;
-}
-
-ACE_INLINE int
-ACE_Reactor::schedule_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask masks_to_be_added)
-{
- return implementation ()->schedule_wakeup (handle,
- masks_to_be_added);
-}
-
-ACE_INLINE int
-ACE_Reactor::cancel_wakeup (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask masks_to_be_cleared)
-{
- return this->implementation ()->cancel_wakeup (event_handler,
- masks_to_be_cleared);
-}
-
-ACE_INLINE int
-ACE_Reactor::cancel_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask masks_to_be_cleared)
-{
- return this->implementation ()->cancel_wakeup (handle,
- masks_to_be_cleared);
-}
-
-
-ACE_INLINE int
-ACE_Reactor::notify (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- ACE_Time_Value *tv)
-{
- // First, try to remember this reactor in the event handler, in case
- // the event handler goes away before the notification is delivered.
- if (event_handler != 0 && event_handler->reactor () == 0)
- event_handler->reactor (this);
- return this->implementation ()->notify (event_handler,
- mask,
- tv);
-}
-
-ACE_INLINE void
-ACE_Reactor::max_notify_iterations (int iterations)
-{
- this->implementation ()->max_notify_iterations (iterations);
-}
-
-ACE_INLINE int
-ACE_Reactor::max_notify_iterations (void)
-{
- return this->implementation ()->max_notify_iterations ();
-}
-
-ACE_INLINE int
-ACE_Reactor::purge_pending_notifications (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
-{
- return this->implementation ()->purge_pending_notifications (eh, mask);
-}
-
-ACE_INLINE int
-ACE_Reactor::handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Event_Handler **event_handler)
-{
- return this->implementation ()->handler (handle,
- mask,
- event_handler);
-}
-
-ACE_INLINE int
-ACE_Reactor::handler (int signum,
- ACE_Event_Handler **event_handler)
-{
- return this->implementation ()->handler (signum,
- event_handler);
-}
-
-ACE_INLINE int
-ACE_Reactor::initialized (void)
-{
- return this->implementation ()->initialized ();
-}
-
-ACE_INLINE ACE_Lock &
-ACE_Reactor::lock (void)
-{
- return this->implementation ()->lock ();
-}
-
-ACE_INLINE void
-ACE_Reactor::wakeup_all_threads (void)
-{
- this->implementation ()->wakeup_all_threads ();
-}
-
-ACE_INLINE int
-ACE_Reactor::owner (ACE_thread_t new_owner,
- ACE_thread_t *old_owner)
-{
- return this->implementation ()->owner (new_owner,
- old_owner);
-}
-
-ACE_INLINE int
-ACE_Reactor::owner (ACE_thread_t *owner)
-{
- return this->implementation ()->owner (owner);
-}
-
-ACE_INLINE int
-ACE_Reactor::restart (void)
-{
- return this->implementation ()->restart ();
-}
-
-ACE_INLINE int
-ACE_Reactor::restart (int r)
-{
- return this->implementation ()->restart (r);
-}
-
-ACE_INLINE void
-ACE_Reactor::requeue_position (int position)
-{
- this->implementation ()->requeue_position (position);
-}
-
-ACE_INLINE int
-ACE_Reactor::requeue_position (void)
-{
- return this->implementation ()->requeue_position ();
-}
-
-
-ACE_INLINE int
-ACE_Reactor::mask_ops (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- int ops)
-{
- return this->implementation ()->mask_ops (event_handler,
- mask,
- ops);
-}
-
-ACE_INLINE int
-ACE_Reactor::mask_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops)
-{
- return this->implementation ()->mask_ops (handle,
- mask,
- ops);
-}
-
-ACE_INLINE int
-ACE_Reactor::ready_ops (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- int ops)
-{
- return this->implementation ()->ready_ops (event_handler,
- mask,
- ops);
-}
-
-ACE_INLINE int
-ACE_Reactor::ready_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops)
-{
- return this->implementation ()->ready_ops (handle,
- mask,
- ops);
-}
-
-ACE_INLINE size_t
-ACE_Reactor::size (void) const
-{
- return this->implementation ()->size ();
-}
-
-ACE_INLINE int
-ACE_Reactor::uses_event_associations (void)
-{
- return this->implementation ()->uses_event_associations ();
-}
-
-
-
diff --git a/ace/Reactor_Impl.h b/ace/Reactor_Impl.h
deleted file mode 100644
index 5ff0d2bcfb0..00000000000
--- a/ace/Reactor_Impl.h
+++ /dev/null
@@ -1,562 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Reactor_Impl.h
- *
- * $Id$
- *
- * @author Irfan Pyarali
- */
-//=============================================================================
-
-
-#ifndef ACE_REACTOR_IMPL_H
-#define ACE_REACTOR_IMPL_H
-#include "ace/pre.h"
-
-// Timer Queue is a complicated template class. A simple forward
-// declaration will not work
-#include "ace/Timer_Queue.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Event_Handler.h contains the definition of ACE_Reactor_Mask
-#include "ace/Event_Handler.h"
-
-// We are using 4 or 5 signal classes, we could forward declare
-// them.... But Timer_Queue_T.h includes Signal.h, so I don't think
-// forward declaration will be useful here
-#include "ace/Signal.h"
-
-// Forward decls
-class ACE_Handle_Set;
-class ACE_Reactor_Impl;
-
-/**
- * @class ACE_Reactor_Notify
- *
- * @brief Abstract class for unblocking an <ACE_Reactor_Impl> from its
- * event loop.
- */
-class ACE_Export ACE_Reactor_Notify : public ACE_Event_Handler
-{
-public:
- // = Initialization and termination methods.
- virtual int open (ACE_Reactor_Impl *,
- ACE_Timer_Queue *timer_queue = 0,
- int disable_notify = 0) = 0;
- virtual int close (void) = 0;
-
- /**
- * Called by a thread when it wants to unblock the <Reactor_Impl>.
- * This wakeups the <Reactor_Impl> if currently blocked. Pass over
- * both the <Event_Handler> *and* the <mask> to allow the caller to
- * dictate which <Event_Handler> method the <Reactor_Impl> will
- * invoke. The <ACE_Time_Value> indicates how long to blocking
- * trying to notify the <Reactor_Impl>. If <timeout> == 0, the
- * caller will block until action is possible, else will wait until
- * the relative time specified in *<timeout> elapses).
- */
- virtual int notify (ACE_Event_Handler * = 0,
- ACE_Reactor_Mask = ACE_Event_Handler::EXCEPT_MASK,
- ACE_Time_Value * = 0) = 0;
-
- /// Handles pending threads (if any) that are waiting to unblock the
- /// <Reactor_Impl>.
- virtual int dispatch_notifications (int &number_of_active_handles,
- ACE_Handle_Set &rd_mask) = 0;
-
- /// Returns the ACE_HANDLE of the notify pipe on which the reactor
- /// is listening for notifications so that other threads can unblock
- /// the <Reactor_Impl>
- virtual ACE_HANDLE notify_handle (void) = 0;
-
- /// Verify whether the buffer has dispatchable info or not.
- virtual int is_dispatchable (ACE_Notification_Buffer &buffer)= 0;
-
- /// Handle one of the notify call on the <handle>. This could be
- /// because of a thread trying to unblock the <Reactor_Impl>
- virtual int dispatch_notify (ACE_Notification_Buffer &buffer) = 0;
-
- /// Read one of the notify call on the <handle> into the
- /// <buffer>. This could be because of a thread trying to unblock
- /// the <Reactor_Impl>
- virtual int read_notify_pipe (ACE_HANDLE handle,
- ACE_Notification_Buffer &buffer) = 0;
- /**
- * Set the maximum number of times that the <handle_input> method
- * will iterate and dispatch the <ACE_Event_Handlers> that are
- * passed in via the notify queue before breaking out of the event
- * loop. By default, this is set to -1, which means "iterate until
- * the queue is empty." Setting this to a value like "1 or 2" will
- * increase "fairness" (and thus prevent starvation) at the expense
- * of slightly higher dispatching overhead.
- */
- virtual void max_notify_iterations (int) = 0;
-
- /**
- * Get the maximum number of times that the <handle_input> method
- * will iterate and dispatch the <ACE_Event_Handlers> that are
- * passed in via the notify queue before breaking out of its event
- * loop.
- */
- virtual int max_notify_iterations (void) = 0;
-
- /**
- * Purge any notifications pending in this reactor for the specified
- * <ACE_Event_Handler> object. Returns the number of notifications
- * purged. Returns -1 on error.
- */
- virtual int purge_pending_notifications (ACE_Event_Handler * = 0,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK) = 0;
-
- /// Dump the state of an object.
- virtual void dump (void) const = 0;
-};
-
-/**
- * @class ACE_Reactor_Impl
- *
- * @brief An abstract class for implementing the Reactor Pattern.
- */
-class ACE_Export ACE_Reactor_Impl
-{
-public:
- /// Close down and release all resources.
- virtual ~ACE_Reactor_Impl (void) {}
-
- /// Initialization.
- virtual int open (size_t size,
- int restart = 0,
- ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0,
- int disable_notify_pipe = 0,
- ACE_Reactor_Notify * = 0) = 0;
-
- /**
- * Returns 0, if the size of the current message has been put in
- * <size> Returns -1, if not. ACE_HANDLE allows the reactor to
- * check if the caller is valid.
- */
- virtual int current_info (ACE_HANDLE, size_t & /* size */) = 0;
-
- /// Use a user specified signal handler instead.
- virtual int set_sig_handler (ACE_Sig_Handler *signal_handler) = 0;
-
- /// @deprecated The following method is deprecated. Use <timer_queue> instead.
- /// Set a user specified timer queue.
- virtual int set_timer_queue (ACE_Timer_Queue *tq) = 0;
-
- /// Set a user-specified timer queue.
- virtual int timer_queue (ACE_Timer_Queue *tq) = 0;
-
- /// Return the current <ACE_Timer_Queue>.
- virtual ACE_Timer_Queue *timer_queue (void) const = 0;
-
- /// Close down and release all resources.
- virtual int close (void) = 0;
-
- // = Event loop drivers.
- /**
- * Returns non-zero if there are I/O events "ready" for dispatching,
- * but does not actually dispatch the event handlers. By default,
- * don't block while checking this, i.e., "poll".
- */
- virtual int work_pending (const ACE_Time_Value &max_wait_time = ACE_Time_Value::zero) = 0;
-
- /**
- * This event loop driver blocks for up to <max_wait_time> before
- * returning. It will return earlier if events occur. Note that
- * <max_wait_time> can be 0, in which case this method blocks
- * indefinitely until events occur.
- *
- * <max_wait_time> is decremented to reflect how much time this call
- * took. For instance, if a time value of 3 seconds is passed to
- * handle_events and an event occurs after 2 seconds,
- * <max_wait_time> will equal 1 second. This can be used if an
- * application wishes to handle events for some fixed amount of
- * time.
- *
- * Returns the total number of <ACE_Event_Handler>s that were
- * dispatched, 0 if the <max_wait_time> elapsed without dispatching
- * any handlers, or -1 if an error occurs.
- *
- * The only difference between <alertable_handle_events> and
- * <handle_events> is that in the alertable case, the eventloop will
- * return when the system queues an I/O completion routine or an
- * Asynchronous Procedure Call.
- */
- virtual int handle_events (ACE_Time_Value *max_wait_time = 0) = 0;
- virtual int alertable_handle_events (ACE_Time_Value *max_wait_time = 0) = 0;
-
- /**
- * This method is just like the one above, except the
- * <max_wait_time> value is a reference and can therefore never be
- * NULL.
- *
- * The only difference between <alertable_handle_events> and
- * <handle_events> is that in the alertable case, the eventloop will
- * return when the system queues an I/O completion routine or an
- * Asynchronous Procedure Call.
- */
- virtual int handle_events (ACE_Time_Value &max_wait_time) = 0;
- virtual int alertable_handle_events (ACE_Time_Value &max_wait_time) = 0;
-
- // = Event handling control.
-
- /**
- * Return the status of Reactor. If this function returns 0, the reactor is
- * actively handling events. If it returns non-zero, <handling_events> and
- * <handle_alertable_events> return -1 immediately.
- */
- virtual int deactivated (void) = 0;
-
- /**
- * Control whether the Reactor will handle any more incoming events or not.
- * If <do_stop> == 1, the Reactor will be disabled. By default, a reactor
- * is in active state and can be deactivated/reactived as wish.
- */
- virtual void deactivate (int do_stop) = 0;
-
- // = Register and remove Handlers.
-
- /// Register <event_handler> with <mask>. The I/O handle will always
- /// come from <get_handle> on the <event_handler>.
- virtual int register_handler (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask) = 0;
-
- /// Register <event_handler> with <mask>. The I/O handle is provided
- /// through the <io_handle> parameter.
- virtual int register_handler (ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask) = 0;
-
-#if defined (ACE_WIN32)
-
- // Originally this interface was available for all platforms, but
- // because ACE_HANDLE is an int on non-Win32 platforms, compilers
- // are not able to tell the difference between
- // register_handler(ACE_Event_Handler*,ACE_Reactor_Mask) and
- // register_handler(ACE_Event_Handler*,ACE_HANDLE). Therefore, we
- // have restricted this method to Win32 only.
-
- /**
- * Register an <event_handler> that will be notified when
- * <event_handle> is signaled. Since no event mask is passed
- * through this interface, it is assumed that the <event_handle>
- * being passed in is an event handle and not an I/O handle.
- */
- virtual int register_handler (ACE_Event_Handler *event_handler,
- ACE_HANDLE event_handle = ACE_INVALID_HANDLE) = 0;
-
-#endif /* ACE_WIN32 */
-
- /**
- * Register an <event_handler> that will be notified when
- * <event_handle> is signaled. <mask> specifies the network events
- * that the <event_handler> is interested in.
- */
- virtual int register_handler (ACE_HANDLE event_handle,
- ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask) = 0;
-
- /// Register <event_handler> with all the <handles> in the <Handle_Set>.
- virtual int register_handler (const ACE_Handle_Set &handles,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask) = 0;
-
- /**
- * Register <new_sh> to handle the signal <signum> using the
- * <new_disp>. Returns the <old_sh> that was previously registered
- * (if any), along with the <old_disp> of the signal handler.
- */
- virtual int register_handler (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp = 0,
- ACE_Event_Handler **old_sh = 0,
- ACE_Sig_Action *old_disp = 0) = 0;
-
- /// Registers <new_sh> to handle a set of signals <sigset> using the
- /// <new_disp>.
- virtual int register_handler (const ACE_Sig_Set &sigset,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp = 0) = 0;
-
- /**
- * Removes <event_handler>. Note that the I/O handle will be
- * obtained using <get_handle> method of <event_handler> . If
- * <mask> == <ACE_Event_Handler::DONT_CALL> then the <handle_close>
- * method of the <event_handler> is not invoked.
- */
- virtual int remove_handler (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask) = 0;
-
- /**
- * Removes <handle>. If <mask> == <ACE_Event_Handler::DONT_CALL>
- * then the <handle_close> method of the associated <event_handler>
- * is not invoked.
- */
- virtual int remove_handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask) = 0;
-
- /**
- * Removes all handles in <handle_set>. If <mask> ==
- * <ACE_Event_Handler::DONT_CALL> then the <handle_close> method of
- * the associated <event_handler>s is not invoked.
- */
- virtual int remove_handler (const ACE_Handle_Set &handle_set,
- ACE_Reactor_Mask mask) = 0;
-
- /**
- * Remove the ACE_Event_Handler currently associated with <signum>.
- * Install the new disposition (if given) and return the previous
- * disposition (if desired by the caller). Returns 0 on success and
- * -1 if <signum> is invalid.
- */
- virtual int remove_handler (int signum,
- ACE_Sig_Action *new_disp,
- ACE_Sig_Action *old_disp = 0,
- int sigkey = -1) = 0;
-
- /// Calls <remove_handler> for every signal in <sigset>.
- virtual int remove_handler (const ACE_Sig_Set &sigset) = 0;
-
- // = Suspend and resume Handlers.
-
- /// Suspend <event_handler> temporarily. Use
- /// <ACE_Event_Handler::get_handle> to get the handle.
- virtual int suspend_handler (ACE_Event_Handler *event_handler) = 0;
-
- /// Suspend <handle> temporarily.
- virtual int suspend_handler (ACE_HANDLE handle) = 0;
-
- /// Suspend all <handles> in handle set temporarily.
- virtual int suspend_handler (const ACE_Handle_Set &handles) = 0;
-
- /// Suspend all <handles> temporarily.
- virtual int suspend_handlers (void) = 0;
-
- /// Resume <event_handler>. Use <ACE_Event_Handler::get_handle> to
- /// get the handle.
- virtual int resume_handler (ACE_Event_Handler *event_handler) = 0;
-
- /// Resume <handle>.
- virtual int resume_handler (ACE_HANDLE handle) = 0;
-
- /// Resume all <handles> in handle set.
- virtual int resume_handler (const ACE_Handle_Set &handles) = 0;
-
- /// Resume all <handles>.
- virtual int resume_handlers (void) = 0;
-
- /// Does the reactor allow the application to resume the handle on
- /// its own ie. can it pass on the control of handle resumption to
- /// the application
- virtual int resumable_handler (void) = 0;
-
- /// Return 1 if we any event associations were made by the reactor
- /// for the handles that it waits on, 0 otherwise.
- virtual int uses_event_associations (void) = 0;
-
- // If we need to reset handles returned from accept/connect.
-
- // = Timer management.
-
- /**
- * Schedule an ACE_Event_Handler that will expire after an amount
- * of time. The return value of this method, a timer_id value,
- * uniquely identifies the event_handler in the ACE_Reactor's
- * internal list of timers.
- * This timer_id value can be used to cancel the timer
- * with the cancel_timer() call.
- *
- * @see cancel_timer()
- * @see reset_timer_interval()
- *
- * @param event_handler event handler to schedule on reactor
- * @param arg argument passed to the handle_timeout() method of event_handler
- * @param delay time interval after which the timer will expire
- * @param interval time interval after which the timer will be automatically rescheduled
- * @return -1 on failure, a timer_id value on success
- */
- virtual long schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval = ACE_Time_Value::zero) = 0;
-
- /**
- * Resets the interval of the timer represented by <timer_id> to
- * <interval>, which is specified in relative time to the current
- * <gettimeofday>. If <interval> is equal to
- * <ACE_Time_Value::zero>, the timer will become a non-rescheduling
- * timer. Returns 0 if successful, -1 if not.
- */
- virtual int reset_timer_interval (long timer_id,
- const ACE_Time_Value &interval) = 0;
-
- /// Cancel all Event_Handlers that match the address of
- /// <event_handler>. Returns number of handlers cancelled.
- virtual int cancel_timer (ACE_Event_Handler *event_handler,
- int dont_call_handle_close = 1) = 0;
-
- /**
- * Cancel the single Event_Handler that matches the <timer_id> value
- * (which was returned from the schedule method). If arg is
- * non-NULL then it will be set to point to the ``magic cookie''
- * argument passed in when the Event_Handler was registered. This
- * makes it possible to free up the memory and avoid memory leaks.
- * Returns 1 if cancellation succeeded and 0 if the <timer_id>
- * wasn't found.
- */
- virtual int cancel_timer (long timer_id,
- const void **arg = 0,
- int dont_call_handle_close = 1) = 0;
-
- // = High-level Event_Handler scheduling operations
-
- /// Add <masks_to_be_added> to the <event_handler>'s entry.
- /// <event_handler> must already have been registered.
- virtual int schedule_wakeup (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask masks_to_be_added) = 0;
-
- /// Add <masks_to_be_added> to the <handle>'s entry. <event_handler>
- /// associated with <handle> must already have been registered.
- virtual int schedule_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask masks_to_be_added) = 0;
-
- /// Clear <masks_to_be_cleared> from the <event_handler>'s entry.
- virtual int cancel_wakeup (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask masks_to_be_cleared) = 0;
-
- /// Clear <masks_to_be_cleared> from the <handle>'s entry.
- virtual int cancel_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask masks_to_be_cleared) = 0;
-
- // = Notification methods.
-
- /**
- * Notify <event_handler> of <mask> event. The <ACE_Time_Value>
- * indicates how long to blocking trying to notify. If <timeout> ==
- * 0, the caller will block until action is possible, else will wait
- * until the relative time specified in <timeout> elapses).
- */
- virtual int notify (ACE_Event_Handler *event_handler = 0,
- ACE_Reactor_Mask mask = ACE_Event_Handler::EXCEPT_MASK,
- ACE_Time_Value * = 0) = 0;
-
- /**
- * Set the maximum number of times that ACE_Reactor_Impl will
- * iterate and dispatch the <ACE_Event_Handlers> that are passed in
- * via the notify queue before breaking out of its
- * <ACE_Message_Queue::dequeue> loop. By default, this is set to
- * -1, which means "iterate until the queue is empty." Setting this
- * to a value like "1 or 2" will increase "fairness" (and thus
- * prevent starvation) at the expense of slightly higher dispatching
- * overhead.
- */
- virtual void max_notify_iterations (int) = 0;
-
- /**
- * Get the maximum number of times that the ACE_Reactor_Impl will
- * iterate and dispatch the <ACE_Event_Handlers> that are passed in
- * via the notify queue before breaking out of its
- * <ACE_Message_Queue::dequeue> loop.
- */
- virtual int max_notify_iterations (void) = 0;
-
- /**
- * Purge any notifications pending in this reactor for the specified
- * <ACE_Event_Handler> object. Returns the number of notifications
- * purged. Returns -1 on error.
- */
- virtual int purge_pending_notifications (ACE_Event_Handler * = 0,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK) = 0;
-
- /**
- * Check to see if <handle> is associated with a valid Event_Handler
- * bound to <mask>. Return the <event_handler> associated with this
- * <handler> if <event_handler> != 0.
- */
- virtual int handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Event_Handler **event_handler = 0) = 0;
-
- /**
- * Check to see if <signum> is associated with a valid Event_Handler
- * bound to a signal. Return the <event_handler> associated with
- * this <handler> if <event_handler> != 0.
- */
- virtual int handler (int signum,
- ACE_Event_Handler ** = 0) = 0;
-
- /// Returns true if Reactor has been successfully initialized, else
- /// false.
- virtual int initialized (void) = 0;
-
- /// Returns the current size of the Reactor's internal descriptor
- /// table.
- virtual size_t size (void) const = 0;
-
- /// Returns a reference to the Reactor's internal lock.
- virtual ACE_Lock &lock (void) = 0;
-
- /// Wake up all threads in waiting in the event loop
- virtual void wakeup_all_threads (void) = 0;
-
- /// Transfers ownership of Reactor_Impl to the <new_owner>.
- virtual int owner (ACE_thread_t new_owner, ACE_thread_t *old_owner = 0) = 0;
-
- /// Return the ID of the "owner" thread.
- virtual int owner (ACE_thread_t *owner) = 0;
-
- /// Get the existing restart value.
- virtual int restart (void) = 0;
-
- /// Set a new value for restart and return the original value.
- virtual int restart (int r) = 0;
-
- /// Set position of the owner thread.
- virtual void requeue_position (int) = 0;
-
- /// Get position of the owner thread.
- virtual int requeue_position (void) = 0;
-
- // = Low-level wait_set mask manipulation methods.
-
- /// GET/SET/ADD/CLR the dispatch mask "bit" bound with the
- /// <event_handler> and <mask>.
- virtual int mask_ops (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- int ops) = 0;
-
- /// GET/SET/ADD/CLR the dispatch MASK "bit" bound with the <handle>
- /// and <mask>.
- virtual int mask_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops) = 0;
-
- // = Low-level ready_set mask manipulation methods.
- /// GET/SET/ADD/CLR the ready "bit" bound with the <event_handler>
- /// and <mask>.
- virtual int ready_ops (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- int ops) = 0;
-
- /// GET/SET/ADD/CLR the ready "bit" bound with the <handle> and <mask>.
- virtual int ready_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask,
- int ops) = 0;
-
- /// Dump the state of an object.
- virtual void dump (void) const = 0;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#include "ace/post.h"
-#endif /* ACE_REACTOR_IMPL_H */
diff --git a/ace/Reactor_Notification_Strategy.cpp b/ace/Reactor_Notification_Strategy.cpp
deleted file mode 100644
index c902f30b929..00000000000
--- a/ace/Reactor_Notification_Strategy.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-#include "ace/Reactor_Notification_Strategy.h"
-#include "ace/Reactor.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Reactor_Notification_Strategy.inl"
-#endif /* __ACE_INLINE __ */
-
-ACE_RCSID(ace, Reactor_Notification_Strategy, "$Id$")
-
-ACE_Reactor_Notification_Strategy::ACE_Reactor_Notification_Strategy (ACE_Reactor *reactor,
- ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
- : ACE_Notification_Strategy (eh, mask),
- reactor_ (reactor)
-{
-}
-
-ACE_Reactor_Notification_Strategy::~ACE_Reactor_Notification_Strategy (void)
-{
-}
-
-int
-ACE_Reactor_Notification_Strategy::notify (void)
-{
- return this->reactor_->notify (this->eh_, this->mask_);
-}
-
-int
-ACE_Reactor_Notification_Strategy::notify (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
-{
- return this->reactor_->notify (eh, mask);
-}
diff --git a/ace/Reactor_Notification_Strategy.h b/ace/Reactor_Notification_Strategy.h
deleted file mode 100644
index fdd6ecb48f5..00000000000
--- a/ace/Reactor_Notification_Strategy.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Reactor_Notification_Strategy.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-#ifndef ACE_REACTOR_NOTIFICATION_STRATEGY_H
-#define ACE_REACTOR_NOTIFICATION_STRATEGY_H
-#include "ace/pre.h"
-
-#include "ace/Notification_Strategy.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Reactor_Notification_Strategy
- *
- * @brief Used to notify an ACE_Reactor
- *
- * Integrates the <ACE_Message_Queue> notification into the
- * <ACE_Reactor::notify> method.
- */
-class ACE_Export ACE_Reactor_Notification_Strategy : public ACE_Notification_Strategy
-{
-public:
- ACE_Reactor_Notification_Strategy (ACE_Reactor *reactor,
- ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask);
-
- /// Default dtor.
- virtual ~ACE_Reactor_Notification_Strategy (void);
-
- virtual int notify (void);
-
- virtual int notify (ACE_Event_Handler *,
- ACE_Reactor_Mask mask);
-
- /// Get the reactor
- ACE_Reactor *reactor (void);
-
- /// Set the reactor
- void reactor (ACE_Reactor *r);
-
-protected:
- /// The Reactor
- ACE_Reactor *reactor_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Reactor_Notification_Strategy.inl"
-#endif /* __ACE_INLINE __ */
-
-#include "ace/post.h"
-#endif /*ACE_REACTOR_NOTIFICATION_STRATEGY_H */
diff --git a/ace/Reactor_Notification_Strategy.inl b/ace/Reactor_Notification_Strategy.inl
deleted file mode 100644
index b9fb2811526..00000000000
--- a/ace/Reactor_Notification_Strategy.inl
+++ /dev/null
@@ -1,13 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-ACE_INLINE ACE_Reactor *
-ACE_Reactor_Notification_Strategy::reactor (void)
-{
- return this->reactor_;
-}
-
-ACE_INLINE void
-ACE_Reactor_Notification_Strategy::reactor (ACE_Reactor *r)
-{
- this->reactor_ = r;
-}
diff --git a/ace/Read_Buffer.cpp b/ace/Read_Buffer.cpp
deleted file mode 100644
index 5f38190caa6..00000000000
--- a/ace/Read_Buffer.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-// $Id$
-
-#include "ace/Read_Buffer.h"
-#include "ace/Log_Msg.h"
-#include "ace/Malloc_Base.h"
-#include "ace/Service_Config.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Read_Buffer.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Read_Buffer, "$Id$")
-
-void
-ACE_Read_Buffer::dump (void) const
-{
- ACE_TRACE ("ACE_Read_Buffer::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("size_ = %d"), this->size_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\noccurrences_ = %d"), this->occurrences_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nstream_ = %x"), this->stream_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nallocator_ = %x"), this->allocator_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Read_Buffer::ACE_Read_Buffer (FILE *fp,
- int close_on_delete,
- ACE_Allocator *alloc)
- : stream_ (fp),
- close_on_delete_ (close_on_delete),
- allocator_ (alloc)
-{
- ACE_TRACE ("ACE_Read_Buffer::ACE_Read_Buffer");
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-}
-
-#if !defined (ACE_HAS_WINCE)
-ACE_Read_Buffer::ACE_Read_Buffer (ACE_HANDLE handle,
- int close_on_delete,
- ACE_Allocator *alloc)
- : stream_ (ACE_OS::fdopen (handle, ACE_LIB_TEXT ("r"))),
- close_on_delete_ (close_on_delete),
- allocator_ (alloc)
-{
- ACE_TRACE ("ACE_Read_Buffer::ACE_Read_Buffer");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-}
-#endif // ACE_HAS_WINCE
-
-ACE_Read_Buffer::~ACE_Read_Buffer (void)
-{
- ACE_TRACE ("ACE_Read_Buffer::~ACE_Read_Buffer");
-
- if (this->close_on_delete_)
- ACE_OS::fclose (this->stream_);
-}
-
-// Input: term the character to terminate on
-// search the character to search for
-// replace the character with which to replace search
-// Output: a buffer containing the contents of stream
-// Method: call the recursive helper function read_helper
-
-char *
-ACE_Read_Buffer::read (int term, int search, int replace)
-{
- ACE_TRACE ("ACE_Read_Buffer::read");
- this->occurrences_ = 0;
- this->size_ = 0;
- return this->rec_read (term, search, replace);
-}
-
-// Input: term the termination character
-// search the character to search for
-// replace the character with which to replace search
-// Purpose: read in a file to a buffer using only a single dynamic
-// allocation.
-// Method: read until the local buffer is full and then recurse.
-// Must continue until the termination character is reached.
-// Allocate the final buffer based on the number of local
-// buffers read and as the recursive calls bottom out,
-// copy them in reverse order into the allocated buffer.
-
-char *
-ACE_Read_Buffer::rec_read (int term, int search, int replace)
-{
- ACE_TRACE ("ACE_Read_Buffer::rec_read");
- // This is our temporary workspace.
- char buf[BUFSIZ];
-
- int c = EOF;
- size_t slot = 0;
- int done = 0;
-
- // Read in the file char by char
- while (slot < BUFSIZ)
- {
- c = getc (this->stream_);
-
- // Don't insert EOF into the buffer...
- if (c == EOF)
- {
- ungetc (c, this->stream_);
- break;
- }
- else if (c == term)
- done = 1;
-
- // Check for possible substitutions.
- if (c == search)
- {
- this->occurrences_++;
-
- if (replace >= 0)
- c = replace;
- }
-
- buf[slot++] = (char) c;
-
- // Substitutions must be made before checking for termination.
- if (done)
- break;
- }
-
- // Increment the number of bytes.
- this->size_ += slot;
-
- // Don't bother going any farther if the total size is 0.
- if (this->size_ == 0)
- return 0;
-
- char *result;
-
- // Recurse, when the recursion bottoms out, allocate the result
- // buffer.
- if (done || c == EOF)
- {
- // Use the allocator to acquire the memory. The + 1 allows
- // space for the null terminator.
- result = (char *) this->allocator_->malloc (this->size_ + 1);
-
- if (result == 0)
- {
- errno = ENOMEM;
- return 0;
- }
- result += this->size_;
-
- // Null terminate the buffer.
- *result = '\0';
- }
- else if ((result = this->rec_read (term, search, replace)) == 0)
- return 0;
-
- // Copy buf into the appropriate location starting from end of
- // buffer. Peter says this is confusing and that we should use
- // memcpy() ;-)
- for (size_t j = slot; j > 0; j--)
- *--result = buf[j - 1];
-
- return result;
-}
diff --git a/ace/Read_Buffer.h b/ace/Read_Buffer.h
deleted file mode 100644
index f2d77add242..00000000000
--- a/ace/Read_Buffer.h
+++ /dev/null
@@ -1,122 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Read_Buffer.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author Seth Widoff
- */
-//==========================================================================
-
-#ifndef ACE_READ_BUFFER_H
-#define ACE_READ_BUFFER_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-class ACE_Allocator;
-
-/**
- * @class ACE_Read_Buffer
- *
- * @brief Efficiently reads an artibrarily large buffer from an input
- * stream up to and including a termination character. Also
- * performs search/replace on single occurrences a character in
- * the buffer using the principles of Integrated Layer
- * Processing.
- *
- * This implementation is optimized to do a single dynamic
- * allocation and make only one copy of the data. It uses
- * recursion and the run-time stack to accomplish this
- * efficiently.
- */
-class ACE_Export ACE_Read_Buffer
-{
-public:
- // = Initialization and termination methods.
- /// Read from a FILE *.
- ACE_Read_Buffer (FILE *fp,
- int close_on_delete = 0,
- ACE_Allocator * = 0);
-
-#if !defined (ACE_HAS_WINCE)
- // Note that ACE_HANDLE = FILE under CE.
-
- /// Read from an open HANDLE.
- ACE_Read_Buffer (ACE_HANDLE handle,
- int close_on_delete = 0,
- ACE_Allocator * = 0);
-#endif // ACE_HAS_WINCE
-
- /// Closes the FILE *.
- ~ACE_Read_Buffer (void);
-
- /**
- * Returns a pointer dynamically allocated with
- * <ACE_Allocator::malloc> to data from the input stream up to (and
- * including) the <terminator>. If <search> is >= 0 then all
- * occurrences of the <search> value are substituted with the
- * <replace> value. The last of the byte of data is a 0, so that
- * <strlen> can be used on it. The caller is responsible for
- * freeing the pointer returned from this method using the
- * <ACE_Allocator::free>.
- */
- char *read (int terminator = EOF,
- int search = '\n',
- int replace = '\0');
-
- /// Returns the number of characters replaced during a <read>.
- size_t replaced (void) const;
-
- /// Returns the size of the allocated buffer obtained during a
- /// <read>, not including the null terminator.
- size_t size (void) const;
-
- /// Returns a pointer to its allocator.
- ACE_Allocator *alloc (void) const;
-
- /// Dump the state of the object.
- void dump (void) const;
-
-private:
- /// Recursive helper method that does the work...
- char *rec_read (int term, int search, int replace);
-
- /// The total number of characters in the buffer.
- size_t size_;
-
- /// The total number of characters replaced.
- size_t occurrences_;
-
- /// The stream we are reading from.
- FILE *stream_;
-
- /// Keeps track of whether we should close the FILE in the
- /// destructor.
- int close_on_delete_;
-
- /// Pointer to the allocator.
- ACE_Allocator *allocator_;
-
- // = Disallow copying and assignment...
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Read_Buffer &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Read_Buffer (const ACE_Read_Buffer &))
-};
-
-#if defined (__ACE_INLINE__)
-# include "ace/Read_Buffer.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_READ_BUFFER_H */
diff --git a/ace/Read_Buffer.i b/ace/Read_Buffer.i
deleted file mode 100644
index 3534c62db2e..00000000000
--- a/ace/Read_Buffer.i
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Accessor to the number of bytes in the buffer.
-
-ACE_INLINE size_t
-ACE_Read_Buffer::size (void) const
-{
- ACE_TRACE ("ACE_Read_Buffer::size");
- return this->size_;
-}
-
-// The total number of characters replaced.
-
-ACE_INLINE size_t
-ACE_Read_Buffer::replaced (void) const
-{
- ACE_TRACE ("ACE_Read_Buffer::replaced");
- return this->occurrences_;
-}
-
-ACE_INLINE ACE_Allocator *
-ACE_Read_Buffer::alloc (void) const
-{
- ACE_TRACE ("ACE_Read_Buffer::alloc");
- return this->allocator_;
-}
-
diff --git a/ace/Recyclable.cpp b/ace/Recyclable.cpp
deleted file mode 100644
index 483852486f1..00000000000
--- a/ace/Recyclable.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//$Id$
-#include "ace/Recyclable.h"
-
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Recyclable.inl"
-#endif /* __ACE_INLINE __ */
-
-ACE_RCSID(ace, Recyclable, "$Id$")
-
-
-ACE_Recyclable::ACE_Recyclable (ACE_Recyclable_State initial_state)
- : recycle_state_ (initial_state)
-{
-}
-
-ACE_Recyclable::~ACE_Recyclable (void)
-{
-}
diff --git a/ace/Recyclable.h b/ace/Recyclable.h
deleted file mode 100644
index a269a3684bb..00000000000
--- a/ace/Recyclable.h
+++ /dev/null
@@ -1,78 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Recyclable.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-#ifndef ACE_RECYCLABLE_H
-#define ACE_RECYCLABLE_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-
-/// States of a recyclable object.
-enum ACE_Recyclable_State
-{
- /// Idle and can be purged.
- ACE_RECYCLABLE_IDLE_AND_PURGABLE,
-
- /// Idle but cannot be purged.
- ACE_RECYCLABLE_IDLE_BUT_NOT_PURGABLE,
-
- /// Can be purged, but is not idle (mostly for debugging).
- ACE_RECYCLABLE_PURGABLE_BUT_NOT_IDLE,
-
- /// Busy (i.e., cannot be recycled or purged).
- ACE_RECYCLABLE_BUSY,
-
- /// Closed.
- ACE_RECYCLABLE_CLOSED,
-
- /// Unknown state.
- ACE_RECYCLABLE_UNKNOWN
-};
-
-/**
- * @class ACE_Recyclable
- *
- * @brief
- *
- *
- */
-class ACE_Export ACE_Recyclable
-{
-public:
- /// Destructor.
- virtual ~ACE_Recyclable (void);
-
- /// Get the recyclable bit
- ACE_Recyclable_State recycle_state (void) const;
-
- /// Set the recyclable bit
- void recycle_state (ACE_Recyclable_State new_state);
-
-protected:
- /// Protected constructor.
- ACE_Recyclable (ACE_Recyclable_State initial_state);
-
- /// Our state.
- ACE_Recyclable_State recycle_state_;
-};
-
-
-#if defined (__ACE_INLINE__)
-#include "ace/Recyclable.inl"
-#endif /* __ACE_INLINE __ */
-
-#include "ace/post.h"
-#endif /*ACE_RECYCLABLE_STATE_H*/
diff --git a/ace/Recyclable.inl b/ace/Recyclable.inl
deleted file mode 100644
index c9a4318b2dc..00000000000
--- a/ace/Recyclable.inl
+++ /dev/null
@@ -1,19 +0,0 @@
-/* -*- C++ -*- */
-//$Id$
-
-
-
-ACE_INLINE ACE_Recyclable_State
-ACE_Recyclable::recycle_state (void) const
-{
- return this->recycle_state_;
-}
-
-ACE_INLINE void
-ACE_Recyclable::recycle_state (ACE_Recyclable_State new_state)
-{
- if (this->recycle_state_ == ACE_RECYCLABLE_CLOSED)
- return;
-
- this->recycle_state_ = new_state;
-}
diff --git a/ace/Refcountable.cpp b/ace/Refcountable.cpp
deleted file mode 100644
index 19c95cb990a..00000000000
--- a/ace/Refcountable.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-//$Id$
-#include "ace/Refcountable.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Refcountable.inl"
-#endif /* __ACE_INLINE __ */
-
-ACE_RCSID(ace, Refcountable, "$Id$")
diff --git a/ace/Refcountable.h b/ace/Refcountable.h
deleted file mode 100644
index 1e622876887..00000000000
--- a/ace/Refcountable.h
+++ /dev/null
@@ -1,57 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Refcountable.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-#ifndef ACE_REFCOUNTABLE_H
-#define ACE_REFCOUNTABLE_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-
-/**
- * @class ACE_Refcountable
- *
- * @brief
- *
- *
- */
-class ACE_Export ACE_Refcountable
-{
-public:
- /// Destructor.
- virtual ~ACE_Refcountable (void);
-
- // = Increment/Decrement refcount
- int increment (void);
- int decrement (void);
-
- /// Returns the current refcount.
- int refcount (void) const;
-
-protected:
- /// Protected constructor.
- ACE_Refcountable (int refcount);
-
- /// Current refcount.
- int refcount_;
-};
-
-
-#if defined (__ACE_INLINE__)
-#include "ace/Refcountable.inl"
-#endif /* __ACE_INLINE __ */
-
-#include "ace/post.h"
-#endif /*ACE_REFCOUNTABLE_H*/
diff --git a/ace/Refcountable.inl b/ace/Refcountable.inl
deleted file mode 100644
index e36d0992705..00000000000
--- a/ace/Refcountable.inl
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- C++ -*- */
-//$Id$
-ACE_INLINE
-ACE_Refcountable::ACE_Refcountable (int refcount)
- : refcount_ (refcount)
-{
-}
-
-ACE_INLINE
-ACE_Refcountable::~ACE_Refcountable (void)
-{
-}
-
-ACE_INLINE int
-ACE_Refcountable::increment (void)
-{
- return ++this->refcount_;
-}
-
-ACE_INLINE int
-ACE_Refcountable::decrement (void)
-{
- return --this->refcount_;
-}
-
-ACE_INLINE int
-ACE_Refcountable::refcount (void) const
-{
- return this->refcount_;
-}
diff --git a/ace/Refcounted_Auto_Ptr.h b/ace/Refcounted_Auto_Ptr.h
deleted file mode 100644
index 8ab5afd2535..00000000000
--- a/ace/Refcounted_Auto_Ptr.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Refcounted_Auto_Ptr.h
- *
- * $Id$
- *
- * @author John Tucker <JTucker@infoglide.com>
- */
-//=============================================================================
-
-#ifndef ACE_REFCOUNTED_AUTO_PTR_H
-#define ACE_REFCOUNTED_AUTO_PTR_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-#include "ace/Auto_Ptr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Forward decl.
-template <class X, class ACE_LOCK> class ACE_Refcounted_Auto_Ptr_Rep;
-template <class X, class ACE_LOCK> class ACE_Refcounted_Auto_Ptr;
-
-/**
- * @class ACE_Refcounted_Auto_Ptr
- *
- * @brief This class implements support for a reference counted auto_ptr.
- * Assigning or copying instances of an ACE_Refcounted_Auto_Ptr
- * will automatically increment the reference count. When the last
- * instance that references a ACE_Refcounted_Auto_Ptr instance is
- * destroyed or overwritten, it will invoke delete on its underlying
- * pointer.
- */
-template <class X, class ACE_LOCK>
-class ACE_Refcounted_Auto_Ptr
-{
-public:
-
- // = Initialization and termination methods.
-
- /// Constructor that initializes an @c ACE_Refcounted_Auto_Ptr to
- /// point to the result immediately.
- ACE_Refcounted_Auto_Ptr (X *p = 0);
-
- /// Copy constructor binds the created object and @c r to the same
- /// @c ACE_Refcounted_Auto_Ptr_Rep. An @c ACE_Refcounted_Auto_Ptr_Rep
- /// is created if necessary.
- ACE_Refcounted_Auto_Ptr (const ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> &r);
-
- /// Destructor.
- virtual ~ACE_Refcounted_Auto_Ptr (void);
-
- /// Assignment operator that binds the current object and @c r to the same
- /// @c ACE_Refcounted_Auto_Ptr_Rep. An @c ACE_Refcounted_Auto_Ptr_Rep
- /// is created if necessary.
- void operator = (const ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> &r);
-
- /// Equality operator that returns 1 if both
- /// ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> objects point to the same
- /// ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> object. Attention: It
- /// also returns 1 if both objects have just been instantiated and
- /// not used yet.
- int operator == (const ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> &r) const;
-
- /// Inequality operator, which is the opposite of equality.
- int operator != (const ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> &r) const;
-
- /// Redirection operator
- X *operator-> (void) const;
-
- // = Accessor methods.
-
- X &operator *() const;
-
- /// Sets the pointer value to 0 and returns its old value.
- X *release (void);
-
- /// Invokes delete on the previous pointer value and then sets the
- /// pointer value to the specified value.
- void reset (X *p = 0);
-
- /// Get the pointer value.
- X *get (void) const;
-
- /// Get the reference count value.
- int count (void) const;
-
- // = Utility method.
-
- /// Allows us to check for NULL on all ACE_Refcounted_Auto_Ptr objects.
- int null (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// the ACE_Refcounted_Auto_Ptr_Rep
- typedef ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> AUTO_REFCOUNTED_PTR_REP;
-
- /// Protect operations on the <ACE_Refcounted_Auto_Ptr>.
- AUTO_REFCOUNTED_PTR_REP *rep_;
-};
-
-/**
- * @class ACE_Refcounted_Auto_Ptr_Rep
- *
- * @brief An ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> object
- * encapsulates a pointer to an object of type X. It is pointed to by
- * ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> object[s] and only accessible
- * through them.
- */
-template <class X, class ACE_LOCK>
-class ACE_Refcounted_Auto_Ptr_Rep
-{
-private:
- friend class ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>;
-
- /// Sets the pointer value to 0 and returns its old value.
- X *release (void);
-
- /// Invokes delete on the previous pointer value and then
- /// sets the pointer value to the specified value.
- void reset (X *p = 0);
-
- /// Get the pointer value.
- X *get (void) const;
-
- /// Get the reference count value.
- int count (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- // = Encapsulate reference count and object lifetime of instances.
- // These methods must go after the others to work around a bug with
- // Borland's C++ Builder...
-
- /// Allocate a new ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> instance,
- /// returning NULL if it cannot be created.
- static ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *internal_create (X *p);
-
- /// Create a ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> and initialize
- /// the reference count.
- static ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *create (X *p);
-
- /// Increase the reference count and return argument. Uses the
- /// attribute "ace_lock_" to synchronize reference count updating.
- ///
- /// Precondition (rep != 0).
- static ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *attach (ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *&rep);
-
- /// Decreases the reference count and and deletes rep if there are no
- /// more references to rep.
- ///
- /// Precondition (rep != 0)
- static void detach (ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *&rep);
-
- /// Decreases the rep's reference count and and deletes rep if there
- /// are no more references to rep. Then assigns new_rep to rep.
- ///
- /// Precondition (rep != 0 && new_rep != 0)
- static void assign (ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *&rep,
- ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *new_rep);
-
- /// Pointer to the result.
- ACE_Auto_Basic_Ptr<X> ptr_;
-
- /// Reference count.
- int ref_count_;
-
- // = Mutex variable to protect the <ptr_>.
-
- /// Synchronization variable for the MT_SAFE <ACE_Hash_Map_Manager_Ex>.
- ACE_LOCK lock_;
-
-private:
- /// Allows us to check for NULL on all ACE_Refcounted_Auto_Ptr objects.
- int null (void) const;
-
- // = Constructor and destructor private.
- ACE_Refcounted_Auto_Ptr_Rep (X *p = 0);
- ~ACE_Refcounted_Auto_Ptr_Rep (void);
-};
-
-#include "ace/Refcounted_Auto_Ptr.i"
-
-#include "ace/post.h"
-#endif /* ACE_REFCOUNTED_AUTO_PTR_H */
-
diff --git a/ace/Refcounted_Auto_Ptr.i b/ace/Refcounted_Auto_Ptr.i
deleted file mode 100644
index 412659688f0..00000000000
--- a/ace/Refcounted_Auto_Ptr.i
+++ /dev/null
@@ -1,223 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Refcounted_Auto_Ptr.i
-
-#include "Synch_T.h"
-#include "ace/Log_Msg.h"
-
-template <class X, class ACE_LOCK> inline int
-ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>::count (void) const
-{
- ACE_GUARD_RETURN (ACE_LOCK, guard, ACE_const_cast (ACE_LOCK &, this->lock_), 0);
- return this->ref_count_;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::count (void) const
-{
- return this->rep_->count ();
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>::null (void) const
-{
- ACE_GUARD_RETURN (ACE_LOCK, guard,
- ACE_const_cast (ACE_LOCK&, this->lock_), 0);
-
- return this->ptr_.get() == 0;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::null (void) const
-{
- return this->rep_->null ();
-}
-
-template <class X, class ACE_LOCK> inline ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *
-ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>::internal_create (X *p)
-{
- ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *temp = 0;
- ACE_NEW_RETURN (temp,
- (ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>) (p),
- 0);
- return temp;
-}
-
-template <class X, class ACE_LOCK> inline ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *
-ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>::create (X *p)
-{
- // Yes set ref count to zero.
- ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *temp = internal_create (p);
-#if defined (ACE_NEW_THROWS_EXCEPTIONS)
- if (temp == 0)
- ACE_throw_bad_alloc;
-#else
- ACE_ASSERT (temp != 0);
-#endif /* ACE_NEW_THROWS_EXCEPTIONS */
- return temp;
-}
-
-template <class X, class ACE_LOCK> inline ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *
-ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>::attach (ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>*& rep)
-{
- ACE_ASSERT (rep != 0);
-
- ACE_GUARD_RETURN (ACE_LOCK, guard, rep->lock_, rep);
-
- ++rep->ref_count_;
-
- return rep;
-}
-
-template <class X, class ACE_LOCK> inline void
-ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>::detach (ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>*& rep)
-{
- ACE_ASSERT (rep != 0);
- ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *rep_del = 0;
-
- {
- ACE_GUARD (ACE_LOCK, guard, rep->lock_);
-
- if (rep->ref_count_-- == 0)
- // Since rep contains the lock held by the ACE_Guard, the guard
- // needs to be released before freeing the memory holding the
- // lock. So save the pointer to free, then release, then free.
- rep_del = rep;
- } // Release the lock
- if (0 != rep_del)
- delete rep;
-}
-
-template <class X, class ACE_LOCK> inline void
-ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>::assign (ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>*& rep,
- ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>* new_rep)
-{
- ACE_ASSERT (rep != 0);
- ACE_ASSERT (new_rep != 0);
-
- ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *old = 0;
- {
- // detached old last for exception safety
- ACE_GUARD (ACE_LOCK, guard, rep->lock_);
- old = rep;
- rep = new_rep;
-
- if (old->ref_count_-- > 0)
- return;
-
- } // The lock is released before deleting old rep object below.
-
- delete old;
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>::ACE_Refcounted_Auto_Ptr_Rep (X *p)
- : ptr_ (p),
- ref_count_ (0)
-{
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>::~ACE_Refcounted_Auto_Ptr_Rep (void)
-{
-}
-
-template<class X, class ACE_LOCK> inline X *
-ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>::release (void)
-{
- ACE_GUARD_RETURN (ACE_LOCK, guard, this->lock_, 0);
-
- return this->ptr_.release ();
-}
-
-template<class X, class ACE_LOCK> inline void
-ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>::reset (X *p)
-{
- ACE_GUARD (ACE_LOCK, guard, this->lock_);
-
- this->ptr_.reset (p);
-}
-
-template <class X, class ACE_LOCK> inline X *
-ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>::get (void) const
-{
- ACE_GUARD_RETURN (ACE_LOCK, guard, ACE_const_cast (ACE_LOCK &, this->lock_), 0);
-
- return this->ptr_.get ();
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::ACE_Refcounted_Auto_Ptr (X *p)
- : rep_ (AUTO_REFCOUNTED_PTR_REP::create (p))
-{
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::ACE_Refcounted_Auto_Ptr (const ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> &r)
- : rep_ (AUTO_REFCOUNTED_PTR_REP::attach (((ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> &) r).rep_))
-{
-}
-
-template <class X, class ACE_LOCK> inline
-ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::~ACE_Refcounted_Auto_Ptr (void)
-{
- AUTO_REFCOUNTED_PTR_REP::detach (rep_);
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::operator== (const ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> &r) const
-{
- return r.rep_ == this->rep_;
-}
-
-template <class X, class ACE_LOCK> inline int
-ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::operator!= (const ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> &r) const
-{
- return r.rep_ != this->rep_;
-}
-
-template <class X, class ACE_LOCK> inline X *
-ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::operator-> (void) const
-{
- return this->rep_->get();
-}
-
-template<class X, class ACE_LOCK> inline X &
-ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::operator *() const
-{
- return *this->rep_->get ();
-}
-
-template <class X, class ACE_LOCK> inline X*
-ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::get (void) const
-{
- // We return the ACE_Future_rep.
- return this->rep_->get ();
-}
-
-template<class X, class ACE_LOCK> inline X *
-ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::release (void)
-{
- return this->rep_->release ();
-}
-
-template<class X, class ACE_LOCK> inline void
-ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::reset (X *p)
-{
- this->rep_->reset (p);
-}
-
-template <class X, class ACE_LOCK> inline void
-ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::operator = (const ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> &rhs)
-{
- // assignment:
- //
- // bind <this> to the same <ACE_Refcounted_Auto_Ptr_Rep> as <r>.
-
- // This will work if &r == this, by first increasing the ref count
- ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> &r = (ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> &) rhs;
- AUTO_REFCOUNTED_PTR_REP::assign (this->rep_,
- AUTO_REFCOUNTED_PTR_REP::attach (r.rep_));
-}
-
diff --git a/ace/Registry.cpp b/ace/Registry.cpp
deleted file mode 100644
index e09443e075c..00000000000
--- a/ace/Registry.cpp
+++ /dev/null
@@ -1,1147 +0,0 @@
-// $Id$
-
-#include "ace/Registry.h"
-
-ACE_RCSID(ace, Registry, "$Id$")
-
-#if defined (ACE_WIN32)
-
-// Funky macro to deal with strange error passing semantics
-// of Win32 Reg*() functions
-#define ACE_REGISTRY_CALL_RETURN(X) \
- do { \
- if (X != ERROR_SUCCESS) \
- { \
- errno = X; \
- return -1; \
- } \
- else \
- return 0; \
- } while (0)
-
-
-// Separator for components in a name
-/* static */
-const ACE_TCHAR *ACE_Registry::STRING_SEPARATOR = ACE_LIB_TEXT ("\\");
-
-int
-ACE_Registry::Name_Component::operator== (const Name_Component &rhs) const
-{
- return
- rhs.id_ == this->id_ &&
- rhs.kind_ == this->kind_;
-}
-
-int
-ACE_Registry::Name_Component::operator!= (const Name_Component &rhs) const
-{
- return !this->operator== (rhs);
-}
-
-// Simple binding constructor
-ACE_Registry::Binding::Binding ()
- : name_ (),
- type_ (INVALID)
-{
-}
-
-
-// Binding constructor
-// (Name version)
-ACE_Registry::Binding::Binding (const Name &name,
- Binding_Type type)
- : name_ (ACE_Registry::make_string (name)),
- type_ (type)
-{
-}
-
-
-// Binding constructor
-// (String version)
-ACE_Registry::Binding::Binding (const ACE_TString &name,
- Binding_Type type)
- : name_ (name),
- type_ (type)
-{
-}
-
-
-int
-ACE_Registry::Binding::operator== (const Binding &rhs) const
-{
- return
- rhs.name_ == this->name_ &&
- rhs.type_ == this->type_;
-}
-
-int
-ACE_Registry::Binding::operator!= (const Binding &rhs) const
-{
- return !this->operator== (rhs);
-}
-
-// Name accessor
-// (Name version)
-void
-ACE_Registry::Binding::name (Name &name)
-{
- name = ACE_Registry::make_name (this->name_);
-}
-
-
-// Name accessors
-// (String version)
-void
-ACE_Registry::Binding::name (ACE_TString &name)
-{
- name = this->name_;
-}
-
-
-// Name accessors
-// (String version)
-ACE_TString
-ACE_Registry::Binding::name (void)
-{
- return this->name_;
-}
-
-
-// Type accessor
-ACE_Registry::Binding_Type
-ACE_Registry::Binding::type (void)
-{
- return this->type_;
-}
-
-
-// Simple object constructor
-ACE_Registry::Object::Object (void *data,
- u_long size,
- u_long type)
- : data_ (data),
- size_ (size),
- type_ (type)
-{
-}
-
-// Object accessors and set methods
-void
-ACE_Registry::Object::data (void *data)
-{
- this->data_ = data;
-}
-
-
-void *
-ACE_Registry::Object::data (void) const
-{
- return this->data_;
-}
-
-
-void
-ACE_Registry::Object::size (u_long size)
-{
- this->size_ = size;
-}
-
-
-u_long
-ACE_Registry::Object::size (void) const
-{
- return this->size_;
-}
-
-
-void
-ACE_Registry::Object::type (u_long type)
-{
- this->type_ = type;
-}
-
-
-u_long
-ACE_Registry::Object::type (void) const
-{
- return this->type_;
-}
-
-
-// Simple context constructor
-ACE_Registry::Naming_Context::Naming_Context (void)
- : key_ ((HKEY) 0),
- parent_key_ ((HKEY) 0),
- name_ ()
-{
-}
-
-
-// Context constructor
-ACE_Registry::Naming_Context::Naming_Context (const HKEY &key)
- : key_ (key),
- parent_key_ ((HKEY) 0),
- name_ ()
-{
-}
-
-
-ACE_Registry::Naming_Context::Naming_Context (const Naming_Context &rhs)
- : key_ (rhs.key_),
- parent_key_ (rhs.parent_key_),
- name_ (rhs.name_)
-{
- // This is incorrect.
- // Rather than copying key, we should call ::DuplicateHandle()
- // But since this is private (and not used), I don't care much
-}
-
-
-const ACE_Registry::Naming_Context &
-ACE_Registry::Naming_Context::operator= (const Naming_Context &rhs)
-{
- ACE_UNUSED_ARG(rhs);
-
- // Not implemented
- return *this;
-}
-
-
-// Destructor
-ACE_Registry::Naming_Context::~Naming_Context ()
-{
- this->close ();
-}
-
-
-// Insert <object> with <name> into <this> context
-// (Name version)
-int
-ACE_Registry::Naming_Context::bind_new (const Name &name,
- const Object &object)
-{
- return this->bind_new (ACE_Registry::make_string (name), object);
-}
-
-
-// Insert <object> with <name> into <this> context
-// (String version)
-int
-ACE_Registry::Naming_Context::bind_new (const ACE_TString &name,
- const Object &object)
-{
- // temporary object
- Object temp;
- long result = this->resolve (name, temp);
- if (result == 0)
- // resolve succeeded
- result = -1;
- else
- // resolve failed
- result = this->bind (name, object);
- return result;
-}
-
-
-// Insert or update <object> with <name> into <this> context
-// (Name version)
-int
-ACE_Registry::Naming_Context::bind (const Name &name,
- const Object &object)
-{
- return this->bind (ACE_Registry::make_string (name), object);
-}
-
-
-// Insert or update <object> with <name> into <this> context
-// (String version)
-int
-ACE_Registry::Naming_Context::bind (const ACE_TString &name,
- const Object &object)
-{
- long result = ACE_TEXT_RegSetValueEx (this->key_,
- name.c_str (),
- 0,
- object.type (),
- (const BYTE *) object.data (),
- object.size ());
- ACE_REGISTRY_CALL_RETURN (result);
-}
-
-
-// Update <object> with <name> in <this> context
-// (Name version)
-int
-ACE_Registry::Naming_Context::rebind (const Name &name,
- const Object &new_object)
-{
- return this->rebind (ACE_Registry::make_string (name), new_object);
-}
-
-
-// Update <object> with <name> in <this> context
-// (String version)
-int
-ACE_Registry::Naming_Context::rebind (const ACE_TString &name,
- const Object &new_object)
-{
- Object old_object;
- // find the old one first
- long result = this->resolve (name, old_object);
- if (result == 0)
- // no need to delete first
- result = this->bind (name, new_object);
- return result;
-}
-
-
-// Find <object> with <name> in <this> context
-// (Name version)
-int
-ACE_Registry::Naming_Context::resolve (const Name &name,
- Object &object)
-{
- return this->resolve (ACE_Registry::make_string (name), object);
-}
-
-
-// Find <object> with <name> in <this> context
-// (String version)
-int
-ACE_Registry::Naming_Context::resolve (const ACE_TString &name,
- Object &object)
-{
- // Get object state
- u_long type;
- void *data = object.data ();
- u_long size = object.size ();
-
- long result = ACE_TEXT_RegQueryValueEx (this->key_,
- name.c_str (),
- 0,
- &type,
- (BYTE *)data,
- &size);
- if (result == ERROR_SUCCESS)
- {
- // Reset object state
- // No need to set object.data()
- object.type (type);
- object.size (size);
- }
-
- ACE_REGISTRY_CALL_RETURN (result);
-}
-
-
-// Remove object with <name> in <this> context
-// (Name version)
-int
-ACE_Registry::Naming_Context::unbind (const Name &name)
-{
- return this->unbind (ACE_Registry::make_string (name));
-}
-
-
-// Remove object with <name> in <this> context
-// (String version)
-int
-ACE_Registry::Naming_Context::unbind (const ACE_TString &name)
-{
- long result = ACE_TEXT_RegDeleteValue (this->key_,
- name.c_str ());
-
- ACE_REGISTRY_CALL_RETURN (result);
-}
-
-
-// Create new <naming_context> relative to <this> context
-// This method may not mean a lot in this implementation
-int
-ACE_Registry::Naming_Context::new_context (Naming_Context &naming_context)
-{
- // Make sure that we reset the state and close keys
- return naming_context.close ();
-}
-
-
-// Insert <naming_context> with <name> relative to <this> context
-// (Name version)
-int
-ACE_Registry::Naming_Context::bind_new_context (const Name &name,
- Naming_Context &naming_context,
- u_long persistence,
- u_long security_access,
- LPSECURITY_ATTRIBUTES security_attributes)
-{
- return this->bind_new_context (ACE_Registry::make_string (name),
- naming_context,
- persistence,
- security_access,
- security_attributes);
-}
-
-
-// Insert <naming_context> with <name> relative to <this> context
-// (String version)
-int
-ACE_Registry::Naming_Context::bind_new_context (const ACE_TString &name,
- Naming_Context &naming_context,
- u_long persistence,
- u_long security_access,
- LPSECURITY_ATTRIBUTES security_attributes)
-{
- u_long reason;
-
- long result = ACE_TEXT_RegCreateKeyEx (this->key_,
- name.c_str (),
- 0,
- 0,
- persistence,
- security_access,
- security_attributes,
- &naming_context.key_,
- &reason);
- if (result == ERROR_SUCCESS)
- // If create succeeds
- {
- if (reason == REG_CREATED_NEW_KEY)
- // If new key: success
- {
- // Set the correct parent
- naming_context.parent (this->key_);
- // Set the correct name
- naming_context.name (name);
- }
- else
- // reason == REG_OPENED_EXISTING_KEY
- // Failed to make new key
- {
- // reset result to failure
- result = -1;
- // Close the key first
- ::RegCloseKey (naming_context.key_);
- // Reset key
- naming_context.key_ = (HKEY) 0;
- }
- }
-
- ACE_REGISTRY_CALL_RETURN (result);
-}
-
-
-// Insert or update <naming_context> with <name> relative to <this> context
-// (Name version)
-int
-ACE_Registry::Naming_Context::bind_context (const Name &name,
- /* const */ Naming_Context &naming_context,
- u_long persistence,
- u_long security_access,
- LPSECURITY_ATTRIBUTES security_attributes)
-{
- return this->bind_context (ACE_Registry::make_string (name),
- naming_context,
- persistence,
- security_access,
- security_attributes);
-}
-
-
-// Insert or update <naming_context> with <name> relative to <this> context
-// (String version)
-int
-ACE_Registry::Naming_Context::bind_context (const ACE_TString &name,
- /* const */ Naming_Context &naming_context,
- u_long persistence,
- u_long security_access,
- LPSECURITY_ATTRIBUTES security_attributes)
-{
- u_long reason;
-
- long result = ACE_TEXT_RegCreateKeyEx (this->key_,
- name.c_str (),
- 0,
- 0,
- persistence,
- security_access,
- security_attributes,
- &naming_context.key_,
- &reason);
- if (result == ERROR_SUCCESS)
- {
- // Set the correct parent
- naming_context.parent (this->key_);
- // Set the correct name
- naming_context.name (name);
- }
-
- ACE_REGISTRY_CALL_RETURN (result);
-}
-
-
-// Rename <naming_context> to <name>
-// (Name version)
-int
-ACE_Registry::Naming_Context::rebind_context (const Name &name,
- /* const */ Naming_Context &new_naming_context)
-{
- return this->rebind_context (ACE_Registry::make_string (name),
- new_naming_context);
-}
-
-
-// Rename <naming_context> to <name>
-// (String version)
-int
-ACE_Registry::Naming_Context::rebind_context (const ACE_TString &name,
- /* const */ Naming_Context &new_naming_context)
-{
- Naming_Context old_naming_context;
- // find the old one first
- long result = this->resolve_context (name,
- old_naming_context);
- if (result == 0)
- {
- // naming_context is found: delete entry
- result = this->unbind_context (name);
- if (result == 0)
- {
- // successful deletion; rebind
- // beware of race conditions here
- // (lets resolve this later)
- result = this->bind_new_context (name, new_naming_context);
- }
- }
- return result;
-}
-
-
-// Remove naming_context with <name> from <this> context
-// (Name version)
-int
-ACE_Registry::Naming_Context::unbind_context (const Name &name)
-{
- return this->unbind_context (ACE_Registry::make_string (name));
-}
-
-
-// Remove naming_context with <name> from <this> context
-// (String version)
-int
-ACE_Registry::Naming_Context::unbind_context (const ACE_TString &name)
-{
- long result = ACE_TEXT_RegDeleteKey (this->key_,
- name.c_str ());
-
- ACE_REGISTRY_CALL_RETURN (result);
-}
-
-
-// Find <naming_context> with <name> in <this> context
-// (Name version)
-int
-ACE_Registry::Naming_Context::resolve_context (const Name &name,
- Naming_Context &naming_context,
- u_long security_access)
-{
- return this->resolve_context (ACE_Registry::make_string (name),
- naming_context,
- security_access);
-}
-
-
-// Find <naming_context> with <name> in <this> context
-// (String version)
-int
-ACE_Registry::Naming_Context::resolve_context (const ACE_TString &name,
- Naming_Context &naming_context,
- u_long security_access)
-{
- long result = ACE_TEXT_RegOpenKeyEx (this->key_,
- name.c_str (),
- 0,
- security_access,
- &naming_context.key_);
- if (result == ERROR_SUCCESS)
- {
- // set the correct parent
- naming_context.parent (this->key_);
- // set the correct name
- naming_context.name (name);
- }
-
- ACE_REGISTRY_CALL_RETURN (result);
-}
-
-
-// Same as unbind_context() with <this> as naming_context
-int
-ACE_Registry::Naming_Context::destroy (void)
-{
- // hopefully the parent_key_ is still open
- long result = ACE_TEXT_RegDeleteKey (this->parent_key_,
- this->name_.c_str ());
-
- ACE_REGISTRY_CALL_RETURN (result);
-}
-
-
-// Sync content of context to disk
-int
-ACE_Registry::Naming_Context::flush (void)
-{
- long result = ::RegFlushKey (this->key_);
- ACE_REGISTRY_CALL_RETURN (result);
-}
-
-
-// Close the handle of the context
-int
-ACE_Registry::Naming_Context::close (void)
-{
- long result = this->key_ ? ::RegCloseKey (this->key_) : ERROR_SUCCESS;
- ACE_REGISTRY_CALL_RETURN (result);
-}
-
-
-// Convert a <name> to a <string>
-ACE_TString
-ACE_Registry::make_string (const Name &const_name)
-{
- ACE_TString string;
- Name &name = ACE_const_cast (Name &, const_name);
-
- // Iterator through the components of name
- for (Name::iterator iterator = name.begin ();
- iterator != name.end ();
- iterator++)
- {
- if (iterator != name.begin ())
- // If this is not the first component, we will add separators
- string += ACE_Registry::STRING_SEPARATOR;
- const Name_Component &component = *iterator;
- // Add to string
- string += component.id_;
- }
-
- return string;
-}
-
-
-// Convert a <string> to a <name>
-ACE_Registry::Name
-ACE_Registry::make_name (const ACE_TString &string)
-{
- ssize_t new_position = 0;
- ssize_t last_position = 0;
- Name name;
-
- // Rememeber: NPOS is -1
- while (new_position != ACE_TString::npos)
- {
- Name_Component component;
- // Find the separator
- new_position = string.find (ACE_Registry::STRING_SEPARATOR, new_position);
- if (new_position != ACE_TString::npos)
- // If we have not gone past the end
- {
- // Get the substring
- component.id_ = string.substr (last_position,
- new_position - last_position);
- // Skip past the seperator
- new_position +=
- ACE_OS_String::strlen (ACE_Registry::STRING_SEPARATOR);
- }
- else
- {
- // Get the last substring
- component.id_ = string.substr (last_position);
- }
- // Update positions
- last_position = new_position;
- // Insert component into name
- name.insert (component);
- }
-
- return name;
-}
-
-
-// Set key
-void
-ACE_Registry::Naming_Context::key (HKEY key)
-{
- this->key_ = key;
-}
-
-
-// Get key
-HKEY
-ACE_Registry::Naming_Context::key (void)
-{
- return this->key_;
-}
-
-
-// Set parent
-void
-ACE_Registry::Naming_Context::parent (HKEY parent)
-{
- this->parent_key_ = parent;
-}
-
-
-// Get parent
-HKEY
-ACE_Registry::Naming_Context::parent (void)
-{
- return this->parent_key_;
-}
-
-
-// Set name
-// (Name version)
-void
-ACE_Registry::Naming_Context::name (const Name &name)
-{
- this->name_ = ACE_Registry::make_string (name);
-}
-
-
-// Get name
-// (Name version)
-void
-ACE_Registry::Naming_Context::name (Name &name)
-{
- name = ACE_Registry::make_name (this->name_);
-}
-
-
-// Set name
-// (String version)
-void
-ACE_Registry::Naming_Context::name (const ACE_TString &name)
-{
- this->name_ = name;
-}
-
-
-// Get name
-// (String version)
-ACE_TString
-ACE_Registry::Naming_Context::name (void)
-{
- return this->name_;
-}
-
-
-// Get name
-// (String version)
-void
-ACE_Registry::Naming_Context::name (ACE_TString &name)
-{
- name = this->name_;
-}
-
-
-// listing function: iterator creator
-// This is useful when there are many objects and contexts
-// in <this> context and you only want to look at a few entries
-// at a time
-int
-ACE_Registry::Naming_Context::list (u_long how_many,
- Binding_List &list,
- Binding_Iterator &iter)
-{
- // Empty list
- static const ACE_Registry::Binding_List empty_list;
- // Make sure that the list is empty
- list = empty_list;
-
- // Correctly initalize the iterator
- iter.reset ();
-
- // Make sure that the iterator uses <this> naming context
- iter.naming_context (*this);
-
- // Start iterations from the objects
- iter.current_enumeration (iter.object_iteration_);
-
- // Get the next <how_many> values
- long result = iter.next_n (how_many,
- list);
- return result;
-}
-
-
-// listing function: iterator creator
-// This gives back a listing of all entries in <this> context.
-int
-ACE_Registry::Naming_Context::list (Binding_List &list)
-{
- // Empty list
- static const ACE_Registry::Binding_List empty_list;
- // Make sure that the list is empty
- list = empty_list;
-
- // Create an iterator
- ACE_Registry::Binding_Iterator iterator;
-
- // Make sure that the iterator uses <this> naming context
- iterator.naming_context (*this);
-
- // Start iterations from the objects
- iterator.current_enumeration (iterator.object_iteration_);
-
- long result = 0;
- while (1)
- {
- ACE_Registry::Binding binding;
- result = iterator.next_one (binding);
- if (result == 0)
- list.insert (binding);
- else
- break;
- }
- return 0;
-}
-
-
-// Default constructor
-ACE_Registry::Binding_Iterator::Binding_Iterator ()
- : object_iteration_ (*this),
- context_iteration_ (*this),
- iteration_complete_ (*this)
-{
- this->reset ();
-}
-
-
-void
-ACE_Registry::Binding_Iterator::reset ()
-{
- this->current_enumeration_ = &this->iteration_complete_;
- this->iteration_complete_.reset ();
- this->object_iteration_.reset ();
- this->context_iteration_.reset ();
-}
-
-
-void
-ACE_Registry::Binding_Iterator::Iteration_State::reset ()
-{
- this->index_ = 0;
-}
-
-
-ACE_Registry::Binding_Iterator::Iteration_State::Iteration_State (Binding_Iterator &iter)
- : parent_ (&iter),
- index_ (0)
-{
-}
-
-
-ACE_Registry::Binding_Iterator::Object_Iteration::Object_Iteration (Binding_Iterator &iter)
- : Iteration_State (iter)
-{
-}
-
-
-ACE_Registry::Binding_Iterator::Context_Iteration::Context_Iteration (Binding_Iterator &iter)
- : Iteration_State (iter)
-{
-}
-
-
-ACE_Registry::Binding_Iterator::Iteration_Complete::Iteration_Complete (Binding_Iterator &iter)
- : Iteration_State (iter)
-{
-}
-
-
-// Next entry
-int
-ACE_Registry::Binding_Iterator::next_one (Binding &binding)
-{
- u_long how_many = 1;
- Binding_List list;
-
- // Get next n (where n is one)
- long result = this->next_n (how_many, list);
-
- if (result == 0)
- // Success
- binding = (*list.begin ());
-
- return result;
-}
-
-
-// Next <how_many> entries
-int
-ACE_Registry::Binding_Iterator::next_n (u_long how_many,
- Binding_List &list)
-{
- // Empty list
- static const ACE_Registry::Binding_List empty_list;
- // Make sure that the list is empty
- list = empty_list;
-
- return this->current_enumeration_->next_n (how_many, list);
-}
-
-
-// Destroy iterator
-int
-ACE_Registry::Binding_Iterator::destroy (void)
-{
- this->reset ();
- return 0;
-}
-
-
-// Set/Get naming_context
-void
-ACE_Registry::Binding_Iterator::naming_context (Naming_Context &naming_context)
-{
- this->naming_context_ = &naming_context;
-}
-
-
-ACE_Registry::Naming_Context &
-ACE_Registry::Binding_Iterator::naming_context (void)
-{
- return *this->naming_context_;
-}
-
-
-// Set/Get current enumeration
-void
-ACE_Registry::Binding_Iterator::current_enumeration (Iteration_State &current_enumeration)
-{
- this->current_enumeration_ = &current_enumeration;
-}
-
-
-ACE_Registry::Binding_Iterator::Iteration_State &
-ACE_Registry::Binding_Iterator::current_enumeration (void)
-{
- return *this->current_enumeration_;
-}
-
-
-int
-ACE_Registry::Binding_Iterator::Object_Iteration::next_n (u_long how_many,
- Binding_List &list)
-{
- // Make a copy
- u_long requested = how_many;
-
- // While there are more entries to be added to the list
- while (how_many > 0)
- {
- ACE_TCHAR string [ACE_Registry::Naming_Context::MAX_OBJECT_NAME_SIZE];
- u_long size = sizeof string / sizeof (ACE_TCHAR);
- long result = ACE_TEXT_RegEnumValue (this->parent_->naming_context ().key (),
- this->index_,
- string,
- &size,
- 0,
- 0,
- 0,
- 0);
- switch (result)
- {
- case ERROR_SUCCESS:
- // Object found
- {
- // Readjust counters
- this->index_++;
- how_many--;
-
- // Add to list
- // Create binding
- Binding binding (string, OBJECT);
- // Add to binding list
- list.insert (binding);
- }
- // Continue to add to list
- break;
-
- case ERROR_NO_MORE_ITEMS:
- // Enumeration of objects complete
- // Reset index
- this->index_ = 0;
-
- // Current enumeration will become CONTEXTS
- this->parent_->current_enumeration (this->parent_->context_iteration_);
- result = this->parent_->current_enumeration ().next_n (how_many,
- list);
- // If we were able to add objects
- if (requested != how_many)
- return 0;
- else
- return result;
-
- default:
- // Strange error
- // Reset index
- this->index_ = 0;
- // Current enumeration will become COMPLETE
- this->parent_->current_enumeration (this->parent_->iteration_complete_);
- // strange error
- return -1;
- }
- }
- // If we reach here, all of <how_many> pairs were added to the list
- // Since more entries may be available
- // current enumeration will remain OBJECTS
- return 0;
-}
-
-
-int
-ACE_Registry::Binding_Iterator::Context_Iteration::next_n (u_long how_many,
- Binding_List &list)
-{
- // Make a copy
- u_long requested = how_many;
-
- // While there are more entries to be added to the list
- while (how_many > 0)
- {
- ACE_TCHAR string [ACE_Registry::Naming_Context::MAX_CONTEXT_NAME_SIZE];
- u_long size = sizeof string / sizeof (ACE_TCHAR);
- long result = ACE_TEXT_RegEnumKeyEx (this->parent_->naming_context (). key (),
- this->index_,
- string,
- &size,
- 0,
- 0,
- 0,
- 0);
- switch (result)
- {
- case ERROR_SUCCESS:
- // Object found
- {
- // Readjust counters
- this->index_++;
- how_many--;
-
- // Add to list
- // Create binding
- Binding binding (string, CONTEXT);
- // Add to binding list
- list.insert (binding);
- }
- // Continue to add to list
- break;
-
- case ERROR_NO_MORE_ITEMS:
- // Enumeration of objects complete
-
- /* FALL THROUGH */
-
- default:
- // Strange error
-
- // Reset index
- this->index_ = 0;
- // Current enumeration will become CONTEXTS
- this->parent_->current_enumeration (this->parent_->iteration_complete_);
-
- // If we were able to add contexts
- if (requested != how_many)
- return 0;
- else
- return -1;
- }
- }
- // If we reach here, all of <how_many> pairs were added to the list
- // Since more entries may be available
- // current enumeration will remain CONTEXTS
- return 0;
-}
-
-
-int
-ACE_Registry::Binding_Iterator::Iteration_Complete::next_n (u_long how_many,
- Binding_List &list)
-{
- ACE_UNUSED_ARG(list);
- ACE_UNUSED_ARG(how_many);
-
- // No more values
- return -1;
-}
-
-
-// Factory method to connect to predefined registries
-// This method works for both remote and local machines
-// However, for remote machines CLASSES_ROOT and CURRENT_USER
-// types are not allowed
-/* static */
-int
-ACE_Predefined_Naming_Contexts::connect (ACE_Registry::Naming_Context &naming_context,
- HKEY predefined,
- const ACE_TCHAR *machine_name)
-{
-#if defined (ACE_HAS_WINCE)
- return -1;
-#else
- long result = -1;
-
- if (machine_name != 0 && ACE_OS::strcmp (ACE_LIB_TEXT ("localhost"), machine_name) == 0)
- machine_name = 0;
-
- if (predefined == HKEY_LOCAL_MACHINE || predefined == HKEY_USERS)
- result = ACE_TEXT_RegConnectRegistry (ACE_const_cast(ACE_TCHAR *, machine_name),
- predefined,
- &naming_context.key_);
- if (predefined == HKEY_CURRENT_USER || predefined == HKEY_CLASSES_ROOT)
- // Make sure that for these types, the machine is local
- if (machine_name == 0 ||
- ACE_Predefined_Naming_Contexts::is_local_host (machine_name))
- {
- naming_context.key_ = predefined;
- result = 0;
- }
- else
- result = -1;
-
- ACE_REGISTRY_CALL_RETURN (result);
-#endif // ACE_HAS_WINCE
-}
-
-// Check if <machine_name> is the local host
-/* static */
-int
-ACE_Predefined_Naming_Contexts::is_local_host (const ACE_TCHAR *machine_name)
-{
- ACE_TCHAR local_host[MAXHOSTNAMELEN];
- int result = ACE_OS::hostname (local_host, sizeof local_host / sizeof (ACE_TCHAR));
- if (result == 0)
- result = !ACE_OS::strcmp (local_host, machine_name);
- else
- result = 0;
- return result;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Node<ACE_Registry::Binding>;
-template class ACE_Unbounded_Set<ACE_Registry::Binding>;
-template class ACE_Unbounded_Set_Iterator<ACE_Registry::Binding>;
-template class ACE_Node<ACE_Registry::Name_Component>;
-template class ACE_Unbounded_Set<ACE_Registry::Name_Component>;
-template class ACE_Unbounded_Set_Iterator<ACE_Registry::Name_Component>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Node<ACE_Registry::Binding>
-#pragma instantiate ACE_Unbounded_Set<ACE_Registry::Binding>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_Registry::Binding>
-#pragma instantiate ACE_Node<ACE_Registry::Name_Component>
-#pragma instantiate ACE_Unbounded_Set<ACE_Registry::Name_Component>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_Registry::Name_Component>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_WIN32 */
diff --git a/ace/Registry.h b/ace/Registry.h
deleted file mode 100644
index 59a3c238b31..00000000000
--- a/ace/Registry.h
+++ /dev/null
@@ -1,568 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Registry.h
- *
- * $Id$
- *
- * @author Irfan Pyarali (irfan@cs.wustl.edu)
- */
-//=============================================================================
-
-
-#ifndef ACE_REGISTRY_H
-#define ACE_REGISTRY_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_WIN32)
-// This only works on Win32 platforms
-
-#include "ace/Containers.h"
-#include "ace/SString.h"
-
-/**
- * @class ACE_Registry
- *
- * @brief A Name Server implementation
- *
- * The registry interface is inspired by the interface
- * specified in the CORBA Naming Service Specification.
- * The implementation is done through Win32 <Reg*> functions.
- * Other than providing an OO wrapper for the Win32 <Reg*>
- * functions, ACE_Registry provides an abstraction for iteration
- * over the elements of the Registry.
- */
-class ACE_Export ACE_Registry
-{
-public:
-
- /// International string
- struct ACE_Export Name_Component
- {
- ACE_TString id_;
- ACE_TString kind_;
-
- int operator== (const Name_Component &rhs) const;
- int operator!= (const Name_Component &rhs) const;
- // Comparison
- };
- // The <id_> field is used,
- // but the <kind_> field is currently ignored
-
- /// A Name is an ordered collections of components (ids)
- typedef ACE_Unbounded_Set<Name_Component> Name;
-
- /// Separator for components in a name
- static const ACE_TCHAR *STRING_SEPARATOR;
-
- /// Convert a <name> to a <string>
- static ACE_TString make_string (const Name &name);
-
- /// Convert a <string> to a <name>
- static Name make_name (const ACE_TString &string);
-
- /// There are two types of bindings
- enum Binding_Type {INVALID, OBJECT, CONTEXT};
-
- struct ACE_Export Binding
- {
- /// Empty (default) constructor
- Binding (void);
-
- /// Constructor
- /// (Name version)
- Binding (const Name &binding_name,
- Binding_Type binding_type);
-
- /// Constructor
- /// (String version)
- Binding (const ACE_TString &binding_name,
- Binding_Type binding_type);
-
- int operator== (const Binding &rhs) const;
- int operator!= (const Binding &rhs) const;
- // Comparison
-
- /// Name accessor
- /// (Name version)
- void name (Name &name);
-
- /// Set Name (String version)
- void name (ACE_TString &name);
-
- /// Get Name (String version)
- ACE_TString name (void);
-
- /// Type accessor
- Binding_Type type (void);
-
- private:
- /// A binding has a name
- ACE_TString name_;
-
- /// .... and a type
- Binding_Type type_;
- };
-
- // A list of bindings
- typedef ACE_Unbounded_Set<Binding> Binding_List;
-
- // Forward declaration of iterator
- class Binding_Iterator;
-
- /**
- * @class Object
- *
- * @brief An object representation
- *
- * In CORBA, all objects inherit from (CORBA::Object).
- * For the registry, this is used as a wrapper for an
- * instance of a built-in data type.
- * Think about an object as being similar to a file
- * in a file system.
- */
- class ACE_Export Object
- {
- public:
- /// Default constructor
- Object (void *data = 0,
- u_long size = 0,
- u_long type = REG_NONE);
-
- /// Set data
- void data (void *data);
-
- /// Get data
- void *data (void) const;
-
- /// Set size
- void size (u_long size);
-
- /// Get size
- u_long size (void) const;
-
- /// Set type
- void type (u_long type);
-
- /// Get type
- u_long type (void) const;
-
- private:
- /// Pointer to data
- void *data_;
-
- /// Size of the data
- u_long size_;
-
- /// Type of data
- u_long type_;
- };
-
- /**
- * @class Naming_Context
- *
- * @brief An context representation
- *
- * Think about a context as being similar to a directory
- * in a file system.
- */
- class ACE_Export Naming_Context
- {
- public:
- /// Friend factory
- friend class ACE_Predefined_Naming_Contexts;
-
- enum {
- /// Max sizes of names
- /// (Not too sure about this value)
- MAX_OBJECT_NAME_SIZE = BUFSIZ,
-
- /// Max size of context name
- MAX_CONTEXT_NAME_SIZE = MAXPATHLEN + 1
- };
-
- /// Empty constructor: keys will be NULL
- Naming_Context (void);
-
- /// Constructor: key_ will be set to <key>
- Naming_Context (const HKEY &key);
-
- /// Destructor will call <Naming_Context::close>.
- ~Naming_Context (void);
-
- // The following interfaces are for objects
-
- /**
- * Insert <object> with <name> into <this> context
- * This will fail if <name> already exists
- * (Name version)
- */
- int bind_new (const Name &name,
- const Object &object);
-
- /**
- * Insert <object> with <name> into <this> context
- * This will fail if <name> already exists
- * (String version)
- */
- int bind_new (const ACE_TString &name,
- const Object &object);
-
- /**
- * Insert or update <object> with <name> into <this> context
- * This will not fail if <name> already exists
- * (Name version)
- */
- int bind (const Name &name,
- const Object &object);
-
- /**
- * Insert or update <object> with <name> into <this> context
- * This will not fail if <name> already exists
- * (String version)
- */
- int bind (const ACE_TString &name,
- const Object &object);
-
- /// Update <object> with <name> in <this> context
- /// (Name version)
- int rebind (const Name &name,
- const Object &object);
-
- /// Update <object> with <name> in <this> context
- int rebind (const ACE_TString &name,
- const Object &object);
-
- /// Find <object> with <name> in <this> context
- /// (Name version)
- int resolve (const Name &name,
- Object &object);
-
- /// Find <object> with <name> in <this> context
- int resolve (const ACE_TString &name,
- Object &object);
-
- /// Delete object with <name> in <this> context
- /// (Name version)
- int unbind (const Name &name);
-
- /// Delete object with <name> in <this> context
- int unbind (const ACE_TString &name);
-
-
- // The following interfaces are for Naming Context
-
- /// Create new <naming_context>
- int new_context (Naming_Context &naming_context);
-
- /**
- * Insert <naming_context> with <name> relative to <this> context
- * This will fail if <name> already exists
- * (Name version)
- */
- int bind_new_context (const Name &name,
- Naming_Context &naming_context,
- u_long persistence = REG_OPTION_NON_VOLATILE,
- u_long security_access = KEY_ALL_ACCESS,
- LPSECURITY_ATTRIBUTES security_attributes = 0);
-
- /// Insert <naming_context> with <name> relative to <this> context
- /// This will fail if <name> already exists
- int bind_new_context (const ACE_TString &name,
- Naming_Context &naming_context,
- u_long persistence = REG_OPTION_NON_VOLATILE,
- u_long security_access = KEY_ALL_ACCESS,
- LPSECURITY_ATTRIBUTES security_attributes = 0);
-
- /**
- * Insert or update <naming_context> with <name> relative to <this> context
- * This will not fail if <name> already exists
- * (Name version)
- */
- int bind_context (const Name &name,
- /* const */ Naming_Context &naming_context,
- u_long persistence = REG_OPTION_NON_VOLATILE,
- u_long security_access = KEY_ALL_ACCESS,
- LPSECURITY_ATTRIBUTES security_attributes = 0);
-
- /// Insert or update <naming_context> with <name> relative to <this> context
- /// This will not fail if <name> already exists
- int bind_context (const ACE_TString &name,
- /* const */ Naming_Context &naming_context,
- u_long persistence = REG_OPTION_NON_VOLATILE,
- u_long security_access = KEY_ALL_ACCESS,
- LPSECURITY_ATTRIBUTES security_attributes = 0);
-
- /// Rename <naming_context> to <name>
- /// (Name version)
- int rebind_context (const Name &name,
- /* const */ Naming_Context &naming_context);
-
- /// Rename <naming_context> to <name>
- int rebind_context (const ACE_TString &name,
- /* const */ Naming_Context &naming_context);
-
- /// Find <naming_context> with <name> in <this> context
- /// (Name version)
- int resolve_context (const Name &name,
- Naming_Context &naming_context,
- u_long security_access = KEY_ALL_ACCESS);
-
- /// Find <naming_context> with <name> in <this> context
- int resolve_context (const ACE_TString &name,
- Naming_Context &naming_context,
- u_long security_access = KEY_ALL_ACCESS);
-
- /// Remove naming_context with <name> from <this> context
- /// (Name version)
- int unbind_context (const Name &name);
-
- /// Remove naming_context with <name> from <this> context
- int unbind_context (const ACE_TString &name);
-
- /// Same as <unbind_context> with <this> as naming_context
- int destroy (void);
-
- /**
- * listing function: iterator creator
- * This is useful when there are many objects and contexts
- * in <this> context and you only want to look at a few entries
- * at a time
- */
- int list (u_long how_many,
- Binding_List &list,
- Binding_Iterator &iterator);
-
- /// listing function: iterator creator
- /// This gives back a listing of all entries in <this> context.
- int list (Binding_List &list);
-
-
- // Some other necessary functions which are
- // not part of the CORBA interface
-
- /// Sync content of context to disk
- int flush (void);
-
- /// Close the handle of the context
- /// Note: <close> does not call <flush>
- int close (void);
-
-
- // Accessors
-
- /// Get key
- HKEY key (void);
-
- // void parent (HKEY parent);
- /// Get parent
- HKEY parent (void);
-
- /// Get name
- /// (Name version)
- void name (Name &name);
-
- /// Set name (String version)
- void name (ACE_TString &name);
-
- /// Get name (String version)
- ACE_TString name (void);
-
- protected:
- /// Set key
- void key (HKEY key);
-
- /// Set parent
- void parent (HKEY parent);
-
- /// Set name
- /// (Name version)
- void name (const Name &name);
-
- /// Set name
- /// (String version)
- void name (const ACE_TString &name);
-
- private:
- /// Disallow copy constructors
- Naming_Context (const Naming_Context &rhs);
-
- /// Disallow assignment
- const Naming_Context &operator= (const Naming_Context &rhs);
-
- /// Key for self
- HKEY key_;
-
- /// Key for parent
- HKEY parent_key_;
-
- /// Name of self
- ACE_TString name_;
- };
-
- /**
- * @class Binding_Iterator
- *
- * @brief An iterator
- *
- * Useful when iteratorating over a few entries at a time
- */
- class ACE_Export Binding_Iterator
- {
- public:
- /// Friend factory
- friend class Naming_Context;
-
- /// Default constructor
- Binding_Iterator (void);
-
- /// Next entry
- int next_one (Binding &binding);
-
- /// Next <how_many> entries
- int next_n (u_long how_many,
- Binding_List &list);
-
- /// Cleanup
- int destroy (void);
-
- /// Reset the internal state of the iterator
- void reset (void);
-
- /// Get naming_context that the iterator is iterating over
- Naming_Context &naming_context (void);
-
- private:
-
- /// Set naming_context that the iterator is iterating over
- void naming_context (Naming_Context& naming_context);
-
- /// Reference to context
- Naming_Context *naming_context_;
-
- public:
- // This should really be private
- // But the compiler is broken
-
- /**
- * @class Iteration_State
- *
- * Base class for state
- */
- class ACE_Export Iteration_State
- {
- public:
- /// Constructor
- Iteration_State (Binding_Iterator &iterator);
-
- /// Next <how_many> entries
- virtual int next_n (u_long how_many,
- Binding_List &list) = 0;
-
- /// Reset state
- void reset (void);
-
- protected:
- /// Pointer to parent iterator
- Binding_Iterator *parent_;
-
- u_long index_;
- };
-
- private:
- class ACE_Export Object_Iteration : public Iteration_State
- {
- public:
- Object_Iteration (Binding_Iterator &iterator);
-
- /// Next <how_many> entries
- int next_n (u_long how_many,
- Binding_List &list);
- };
-
- class ACE_Export Context_Iteration : public Iteration_State
- {
- public:
- Context_Iteration (Binding_Iterator &iterator);
-
- /// Next <how_many> entries
- int next_n (u_long how_many,
- Binding_List &list);
- };
-
- class ACE_Export Iteration_Complete : public Iteration_State
- {
- public:
- Iteration_Complete (Binding_Iterator &iterator);
-
- /// Next <how_many> entries
- int next_n (u_long how_many,
- Binding_List &list);
- };
-
- /// Friend states
- friend class Iteration_State;
- friend class Object_Iteration;
- friend class Context_Iteration;
- friend class Iteration_Complete;
-
- /// Instances of all states
- Object_Iteration object_iteration_;
- Context_Iteration context_iteration_;
- Iteration_Complete iteration_complete_;
-
- /// Pointer to current state
- Iteration_State *current_enumeration_;
-
- /// Set current_enumeration
- void current_enumeration (Iteration_State& current_enumeration);
-
- /// Get current_enumeration
- Iteration_State &current_enumeration (void);
- };
-};
-
-/**
- * @class ACE_Predefined_Naming_Contexts
- *
- * @brief A factory for predefined registries, which exist by default
- * on Win32 platforms
- *
- * This factory can connect to both local and remote
- * predefined registries.
- */
-class ACE_Export ACE_Predefined_Naming_Contexts
-{
-public:
- /**
- * Factory method for connecting to predefined registries. This
- * method works for both remote and local machines. However, for
- * remote machines, HKEY_CLASSES_ROOT and HKEY_CURRENT_USER types
- * are not allowed
- */
- static int connect (ACE_Registry::Naming_Context &naming_context,
- HKEY predefined = HKEY_LOCAL_MACHINE,
- const ACE_TCHAR *machine_name = 0);
-
-private:
- /// Check if <machine_name> is the local host
- static int is_local_host (const ACE_TCHAR *machine_name);
-};
-
-// Fix me! Shouldn't have to define this stuff
-
-#if defined (ACE_HAS_BROKEN_NESTED_TEMPLATES)
- typedef ACE_Registry::Name_Component Name_Component;
- typedef ACE_Registry::Binding Binding;
-#endif /* ACE_HAS_BROKEN_NESTED_TEMPLATES */
-
-#endif /* ACE_WIN32 */
-#include "ace/post.h"
-#endif /* ACE_REGISTRY_H */
diff --git a/ace/Registry_Name_Space.cpp b/ace/Registry_Name_Space.cpp
deleted file mode 100644
index 98bf76cc2a2..00000000000
--- a/ace/Registry_Name_Space.cpp
+++ /dev/null
@@ -1,288 +0,0 @@
-// $Id$
-
-#include "ace/Registry_Name_Space.h"
-
-ACE_RCSID(ace, Registry_Name_Space, "$Id$")
-
-#if (defined (ACE_WIN32) && defined (UNICODE))
-// This only works on Win32 platforms when UNICODE is turned on
-
-ACE_Registry_Name_Space::ACE_Registry_Name_Space (void)
-{
-}
-
-ACE_Registry_Name_Space::ACE_Registry_Name_Space (ACE_Name_Options *name_options)
-{
- if (this->open (name_options) != 0)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Registry_Name_Space::open")));
-}
-
-
-ACE_Registry_Name_Space::~ACE_Registry_Name_Space (void)
-{
-}
-
-
-int
-ACE_Registry_Name_Space::open (ACE_Name_Options *name_options)
-{
- const ACE_TCHAR *host = name_options->nameserver_host ();
- ACE_Registry::Naming_Context predefined;
-
- int result = ACE_Predefined_Naming_Contexts::connect (predefined,
- HKEY_LOCAL_MACHINE,
- host);
- if (result != 0)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Predefined_Naming_Context::connect")),
- result);
- else
- {
- // Directory
- ACE_TString name = name_options->namespace_dir ();
- // Separator
- name += ACE_Registry::STRING_SEPARATOR;
- // Filename
- name += name_options->database ();
-
- // Create new context or bind to existing one
- result = predefined.bind_context (name,
- this->context_);
- if (result != 0)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_Registry::Naming_Context::bind_context")), result);
- }
- return 0;
-}
-
-
-int
-ACE_Registry_Name_Space::bind (const ACE_NS_WString &name,
- const ACE_NS_WString &value,
- const char *type)
-{
- ACE_UNUSED_ARG(type);
-
- // Pointer to data
- const ACE_WSTRING_TYPE *data = value.fast_rep ();
-
- // Size
- u_long size = value.length () * sizeof (ACE_WSTRING_TYPE);
-
- // Represent value as an ACE_Registry::Object
- ACE_Registry::Object object ((void *) data,
- size,
- REG_SZ);
- // Add new <key>/<value> pair
-#if defined ACE_USES_WCHAR
- return this->context_.bind (name.fast_rep(),
- object);
-#else
- return this->context_.bind (name.char_rep(),
- object);
-#endif /* ACE_HAS_WCHAR */
-}
-
-
-int
-ACE_Registry_Name_Space::rebind (const ACE_NS_WString &name,
- const ACE_NS_WString &value,
- const char *type)
-{
- ACE_UNUSED_ARG(type);
-
- // Pointer to data
- const ACE_WSTRING_TYPE *data = value.fast_rep ();
-
- // Size
- u_long size = value.length () * sizeof (ACE_WSTRING_TYPE);
-
- // Represent value as an ACE_Registry::Object
- ACE_Registry::Object object ((void *) data,
- size,
- REG_SZ);
- // Add new <key>/<value> pair
-#if defined (ACE_USES_WCHAR)
- return this->context_.rebind (name.fast_rep (),
- object);
-#else
- return this->context_.rebind (name.char_rep (),
- object);
-#endif /* ACE_USES_WCHAR */
-}
-
-
-int
-ACE_Registry_Name_Space::unbind (const ACE_NS_WString &name)
-{
-#if defined (ACE_USES_WCHAR)
- return this->context_.unbind (name.fast_rep ());
-#else
- return this->context_.unbind (name.char_rep ());
-#endif /* ACE_USES_WCHAR */
-}
-
-
-int
-ACE_Registry_Name_Space::resolve (const ACE_NS_WString &name,
- ACE_NS_WString &value,
- char *&type)
-{
- ACE_UNUSED_ARG(type);
-
- // This object will be used to query the size of the data.
- // Note: The query_object.data will be null for this invocation.
- ACE_Registry::Object query_object;
- int result =
-#if defined (ACE_USES_WCHAR)
- this->context_.resolve (name.fast_rep (), query_object);
-#else
- this->context_.resolve (name.char_rep (), query_object);
-#endif /* ACE_USES_WCHAR */
- if (result != 0)
- return result;
-
- // Resize the value passed by the user
- // Note: -1 is used because the size includes the null terminator
- value.resize ((query_object.size () - 1) / sizeof (ACE_WSTRING_TYPE));
-
- // Represent new space as an ACE_Registry::Object
- ACE_Registry::Object object ((void *) value.fast_rep (),
- query_object.size (),
- REG_SZ);
-
-#if defined (ACE_USES_WCHAR)
- result = this->context_.resolve (name.fast_rep (), object);
-#else
- result = this->context_.resolve (name.char_rep (), object);
-#endif /* ACE_USES_WCHAR */
- if (object.size () != query_object.size ())
- return -1;
- if (result != 0)
- return result;
-
- return 0;
-}
-
-
-int
-ACE_Registry_Name_Space:: list_names (ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_BINDING_SET binding_set;
- int result = this->list_name_entries (binding_set,
- pattern);
- if (result != 0)
- return result;
-
- ACE_BINDING_ITERATOR iterator (binding_set);
-
- for (ACE_Name_Binding *entry = 0;
- iterator.next (entry) !=0;
- iterator.advance())
- {
- set.insert (entry->name_);
- }
- return 0;
-}
-
-
-int
-ACE_Registry_Name_Space::list_values (ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_BINDING_SET binding_set;
- int result = this->list_name_entries (binding_set,
- pattern);
- if (result != 0)
- return result;
-
- ACE_BINDING_ITERATOR iterator (binding_set);
-
- for (ACE_Name_Binding *entry = 0;
- iterator.next (entry) !=0;
- iterator.advance())
- {
- set.insert (entry->value_);
- }
- return 0;
-}
-
-
-int
-ACE_Registry_Name_Space::list_types (ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_UNUSED_ARG(set);
- ACE_UNUSED_ARG(pattern);
-
- return 0;
-}
-
-
-int
-ACE_Registry_Name_Space::list_name_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_UNUSED_ARG(pattern);
-
- ACE_Registry::Binding_List list;
- int result = this->context_.list (list);
- if (result != 0)
- return result;
-
- // Iterator through all entries
- for (ACE_Registry::Binding_List::iterator i = list.begin ();
- i != list.end ();
- i++)
- {
- // Yeeesss! STL rules!
- ACE_Registry::Binding &binding = *i;
-
- if (binding.type () == ACE_Registry::OBJECT)
- {
- // Key
- ACE_TString string = binding.name ();
- ACE_NS_WString key (string.c_str ());
-
- // Value
- ACE_NS_WString value;
- char *type = 0;
- result = this->resolve (key,
- value,
- type);
- if (result != 0)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_Registry::Naming_Context::resolve")), result);
-
- // Complete binding
- ACE_Name_Binding binding (key, value, type);
- set.insert (binding);
- }
- }
- return 0;
-}
-
-
-int
-ACE_Registry_Name_Space::list_value_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern)
-{
- return this->list_name_entries (set, pattern);
-}
-
-
-int
-ACE_Registry_Name_Space::list_type_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern)
-{
- return this->list_name_entries (set, pattern);
-}
-
-
-void
-ACE_Registry_Name_Space::dump (void) const
-{
-}
-
-
-#endif /* ACE_WIN32 && UNICODE */
diff --git a/ace/Registry_Name_Space.h b/ace/Registry_Name_Space.h
deleted file mode 100644
index 075c2643f56..00000000000
--- a/ace/Registry_Name_Space.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*-*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Registry_Name_Space.h
- *
- * $Id$
- *
- * @author Irfan Pyarali (irfan@cs.wustl.edu)
- */
-//=============================================================================
-
-
-#ifndef ACE_REGISTRY_NAME_SPACE_H
-#define ACE_REGISTRY_NAME_SPACE_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if (defined (ACE_WIN32) && defined (UNICODE))
-// This only works on Win32 platforms when UNICODE is turned on
-
-#include "ace/Registry.h"
-#include "ace/Naming_Context.h"
-#include "ace/Name_Space.h"
-
-/**
- * @class ACE_Registry_Name_Space
- *
- * @brief Interface to a Name Server Database which is maintained by
- * the Win32 Registry. Allows to add, change, remove and
- * resolve NameBindings.
- *
- * Manages a Naming Service for a registry name space which
- * includes bindings for all contexts. All strings are stored in
- * wide character format. A Name Binding consists of a name
- * (that's the key), a value string. There is no type string
- * support in this Name Space.
- */
-class ACE_Export ACE_Registry_Name_Space : public ACE_Name_Space
-{
-public:
-
- /// Constructor
- ACE_Registry_Name_Space (void);
-
- /// Contacts and opens the registry on the specified server
- ACE_Registry_Name_Space (ACE_Name_Options *name_options);
-
- /// Destructor
- ~ACE_Registry_Name_Space (void);
-
- /// Contacts and opens the registry on the specified server
- int open (ACE_Name_Options *name_options);
-
- /// Bind a new name to a naming context (Wide character strings).
- int bind (const ACE_NS_WString &name_in,
- const ACE_NS_WString &value_in,
- const char *type_in = "");
-
- /**
- * Overwrite the value or type of an existing name in a
- * ACE_Name_Space or bind a new name to the context, if it didn't
- * exist yet. (Wide charcter strings interface).
- */
- int rebind (const ACE_NS_WString &name_in,
- const ACE_NS_WString &value_in,
- const char *type_in = "");
-
- /// Delete a name from a ACE_Name_Space (Wide charcter strings
- /// Interface).
- int unbind (const ACE_NS_WString &name_in);
-
- /// Get value and type of a given name binding (Wide chars). The
- /// caller is responsible for deleting both <value_out> and <type_out>!
- int resolve (const ACE_NS_WString &name_in,
- ACE_NS_WString &value_out,
- char *&type_out);
-
- /// Get a set of names matching a specified pattern (wchars). Matching
- /// means the names must begin with the pattern string.
- int list_names (ACE_WSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in);
-
- /// Get a set of values matching a specified pattern (wchars). Matching
- /// means the values must begin with the pattern string.
- int list_values (ACE_WSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in);
-
- /// Get a set of types matching a specified pattern (wchars). Matching
- /// means the types must begin with the pattern string.
- int list_types (ACE_WSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in);
-
- /**
- * Get a set of names matching a specified pattern (wchars). Matching
- * means the names must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- int list_name_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern);
-
- /**
- * Get a set of values matching a specified pattern (wchars). Matching
- * means the values must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- int list_value_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern);
-
- /**
- * Get a set of types matching a specified pattern (wchars). Matching
- * means the types must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- int list_type_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern);
-
- /// Dump the state of the object
- void dump (void) const;
-
-private:
-
- /// current context
- ACE_Registry::Naming_Context context_;
-};
-
-#endif /* ACE_WIN32 && UNICODE */
-#include "ace/post.h"
-#endif /* ACE_REGISTRY_NAME_SPACE_H */
diff --git a/ace/Remote_Name_Space.cpp b/ace/Remote_Name_Space.cpp
deleted file mode 100644
index 66c05cbab1e..00000000000
--- a/ace/Remote_Name_Space.cpp
+++ /dev/null
@@ -1,378 +0,0 @@
-#include "ace/Remote_Name_Space.h"
-#include "ace/Auto_Ptr.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID (ace,
- Remote_Name_Space,
- "$Id$")
-
-int
-ACE_Remote_Name_Space::open (const ACE_TCHAR *servername, u_short port)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::open");
- ACE_INET_Addr servaddr;
-
- // Initialize Addr
- if (servaddr.set (port, servername) == -1)
- return -1;
-
- // Connect to Name Server process.
- if (this->ns_proxy_.open (servaddr) == -1)
- return -1;
-
- return 0;
-}
-
-ACE_Remote_Name_Space::ACE_Remote_Name_Space (void)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::ACE_Remote_Name_Space");
-}
-
-ACE_Remote_Name_Space::ACE_Remote_Name_Space (const ACE_TCHAR *hostname,
- u_short port)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::ACE_Remote_Name_Space");
- if (this->open (hostname, port) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_Remote_Name_Space::ACE_Remote_Name_Space")));
-}
-
-int
-ACE_Remote_Name_Space::bind (const ACE_NS_WString &name,
- const ACE_NS_WString &value,
- const char *type)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::bind");
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> name_urep (name.rep ());
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> value_urep (value.rep ());
- ACE_UINT32 name_len =
- ACE_static_cast (ACE_UINT32, name.length () * sizeof (ACE_WCHAR_T));
- ACE_UINT32 value_len =
- ACE_static_cast (ACE_UINT32, value.length () * sizeof (ACE_WCHAR_T));
- ACE_UINT32 type_len =
- ACE_static_cast (ACE_UINT32, ACE_OS_String::strlen (type));
- ACE_Name_Request request (ACE_Name_Request::BIND,
- name_urep.get (),
- name_len,
- value_urep.get (),
- value_len,
- type,
- type_len);
- return this->ns_proxy_.request_reply (request);
-}
-
-int
-ACE_Remote_Name_Space::rebind (const ACE_NS_WString &name,
- const ACE_NS_WString &value,
- const char *type)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::rebind");
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> name_urep (name.rep ());
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> value_urep (value.rep ());
- ACE_UINT32 name_len =
- ACE_static_cast (ACE_UINT32, name.length () * sizeof (ACE_WCHAR_T));
- ACE_UINT32 value_len =
- ACE_static_cast (ACE_UINT32, value.length () * sizeof (ACE_WCHAR_T));
- ACE_UINT32 type_len =
- ACE_static_cast (ACE_UINT32, ACE_OS_String::strlen (type));
- ACE_Name_Request request (ACE_Name_Request::REBIND,
- name_urep.get (),
- name_len,
- value_urep.get (),
- value_len,
- type,
- type_len);
- return this->ns_proxy_.request_reply (request);
-}
-
-int
-ACE_Remote_Name_Space::resolve (const ACE_NS_WString &name,
- ACE_NS_WString &value,
- char *&type)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::resolve");
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> name_urep (name.rep ());
- ACE_UINT32 name_len =
- ACE_static_cast (ACE_UINT32, name.length () * sizeof (ACE_WCHAR_T));
- ACE_Name_Request request (ACE_Name_Request::RESOLVE,
- name_urep.get (),
- name_len,
- 0, 0, 0, 0);
-
- if (this->ns_proxy_.send_request (request) == -1)
- return -1;
-
- ACE_Name_Request reply;
-
- if (this->ns_proxy_.recv_reply (reply) == -1)
- return -1;
-
- ACE_NS_WString temp (reply.value (), reply.value_len () / sizeof (ACE_WCHAR_T));
- value = temp;
- ACE_NEW_RETURN (type,
- char[reply.type_len () + 1],
- -1);
- ACE_OS::strcpy (type, reply.type ());
- return 0;
-}
-
-int
-ACE_Remote_Name_Space::unbind (const ACE_NS_WString &name)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::unbind");
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> name_urep (name.rep ());
- ACE_UINT32 name_len =
- ACE_static_cast (ACE_UINT32, name.length () * sizeof (ACE_WCHAR_T));
- ACE_Name_Request request (ACE_Name_Request::UNBIND,
- name_urep.get (),
- name_len,
- 0, 0, 0, 0);
- return this->ns_proxy_.request_reply (request);
-}
-
-int
-ACE_Remote_Name_Space::list_names (ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::list_names");
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ());
- ACE_UINT32 pattern_len =
- ACE_static_cast (ACE_UINT32, pattern.length () * sizeof (ACE_WCHAR_T));
- ACE_Name_Request request (ACE_Name_Request::LIST_NAMES,
- pattern_urep.get (),
- pattern_len,
- 0, 0, 0, 0);
- if (this->ns_proxy_.send_request (request) == -1)
- return -1;
-
- ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0);
-
- while (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
- {
- if (this->ns_proxy_.recv_reply (reply) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Remote_Name_Space::list_names")),
- -1);
- if (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
- {
- ACE_NS_WString name (reply.name (),
- reply.name_len () / sizeof (ACE_WCHAR_T));
- set.insert (name);
- }
- }
- return 0;
-}
-
-int
-ACE_Remote_Name_Space::list_values (ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::list_values");
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ());
- ACE_UINT32 pattern_len =
- ACE_static_cast (ACE_UINT32, pattern.length () * sizeof (ACE_WCHAR_T));
- ACE_Name_Request request (ACE_Name_Request::LIST_VALUES,
- pattern_urep.get (),
- pattern_len,
- 0, 0, 0, 0);
- if (this->ns_proxy_.send_request (request) == -1)
- return -1;
-
- ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0);
-
- while (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
- {
- if (this->ns_proxy_.recv_reply (reply) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Remote_Name_Space::list_values")),
- -1);
- if (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
- {
- ACE_NS_WString value (reply.value (),
- reply.value_len () / sizeof (ACE_WCHAR_T));
- set.insert (value);
- }
- }
-
- return 0;
-}
-
-int
-ACE_Remote_Name_Space::list_types (ACE_WSTRING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::list_types");
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ());
- ACE_UINT32 pattern_len =
- ACE_static_cast (ACE_UINT32, pattern.length () * sizeof (ACE_WCHAR_T));
- ACE_Name_Request request (ACE_Name_Request::LIST_TYPES,
- pattern_urep.get (),
- pattern_len,
- 0, 0, 0, 0);
-
- if (this->ns_proxy_.send_request (request) == -1)
- return -1;
-
- ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0);
-
- while (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
- {
- if (this->ns_proxy_.recv_reply (reply) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Remote_Name_Space::list_values")),
- -1);
- if (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
- {
- ACE_NS_WString type (reply.type ());
- set.insert (type);
- }
- }
-
- return 0;
-}
-
-int
-ACE_Remote_Name_Space::list_name_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::list_name_entries");
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ());
- ACE_UINT32 pattern_len =
- ACE_static_cast (ACE_UINT32, pattern.length () * sizeof (ACE_WCHAR_T));
- ACE_Name_Request request (ACE_Name_Request::LIST_NAME_ENTRIES,
- pattern_urep.get (),
- pattern_len,
- 0, 0, 0, 0);
-
- if (this->ns_proxy_.send_request (request) == -1)
- return -1;
-
- ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0);
-
- while (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
- {
- if (this->ns_proxy_.recv_reply (reply) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Remote_Name_Space::list_names")),
- -1);
- if (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
- {
- ACE_NS_WString name (reply.name (),
- reply.name_len () / sizeof (ACE_WCHAR_T));
- ACE_NS_WString value (reply.value (),
- reply.value_len () / sizeof (ACE_WCHAR_T));
- ACE_Name_Binding entry (name,
- value,
- reply.type ());
- if (set.insert (entry) == -1)
- return -1;
- }
- }
- return 0;
-}
-
-int
-ACE_Remote_Name_Space::list_value_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::list_value_entries");
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ());
- ACE_UINT32 pattern_len =
- ACE_static_cast (ACE_UINT32, pattern.length () * sizeof (ACE_WCHAR_T));
- ACE_Name_Request request (ACE_Name_Request::LIST_VALUE_ENTRIES,
- pattern_urep.get (),
- pattern_len,
- 0, 0, 0, 0);
-
- if (this->ns_proxy_.send_request (request) == -1)
- return -1;
-
- ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0);
-
- while (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
- {
- if (this->ns_proxy_.recv_reply (reply) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Remote_Name_Space::list_values")),
- -1);
- if (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
- {
- ACE_NS_WString name (reply.name (),
- reply.name_len () / sizeof (ACE_WCHAR_T));
- ACE_NS_WString value (reply.value (),
- reply.value_len () / sizeof (ACE_WCHAR_T));
- ACE_Name_Binding entry (name,
- value,
- reply.type());
- if (set.insert (entry) == -1)
- return -1;
- }
- }
- return 0;
-}
-
-int
-ACE_Remote_Name_Space::list_type_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::list_type_entries");
- ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ());
- ACE_UINT32 pattern_len =
- ACE_static_cast (ACE_UINT32, pattern.length () * sizeof (ACE_WCHAR_T));
- ACE_Name_Request request (ACE_Name_Request::LIST_TYPE_ENTRIES,
- pattern_urep.get (),
- pattern_len,
- 0, 0, 0, 0);
-
- if (this->ns_proxy_.send_request (request) == -1)
- return -1;
-
- ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0);
-
- while (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
- {
- if (this->ns_proxy_.recv_reply (reply) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Remote_Name_Space::list_values")),
- -1);
- if (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
- {
- ACE_NS_WString name (reply.name (),
- reply.name_len () / sizeof (ACE_WCHAR_T));
- ACE_NS_WString value (reply.value (),
- reply.value_len () / sizeof (ACE_WCHAR_T));
- ACE_Name_Binding entry (name,
- value,
- reply.type ());
- if (set.insert (entry) == -1)
- return -1;
- }
- }
- return 0;
-}
-
-ACE_Remote_Name_Space::~ACE_Remote_Name_Space (void)
-{
- ACE_TRACE ("ACE_Remote_Name_Space::~ACE_Remote_Name_Space");
-}
-
-void
-ACE_Remote_Name_Space::dump (void) const
-{
- ACE_TRACE ("ACE_Remote_Name_Space::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->ns_proxy_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Remote_Name_Space.h b/ace/Remote_Name_Space.h
deleted file mode 100644
index 3ae6d37a34d..00000000000
--- a/ace/Remote_Name_Space.h
+++ /dev/null
@@ -1,142 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Remote_Name_Space.h
- *
- * $Id$
- *
- * @author Prashant Jain
- */
-//==========================================================================
-
-
-#ifndef ACE_REMOTE_NAME_SPACE_H
-#define ACE_REMOTE_NAME_SPACE_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SString.h"
-#include "ace/Name_Proxy.h"
-#include "ace/Name_Space.h"
-
-typedef ACE_Unbounded_Set<ACE_NS_WString> ACE_WSTRING_SET;
-
-/**
- * @class ACE_Remote_Name_Space
- *
- * @brief Maintaining accesses Remote Name Server Database. Allows to
- * add NameBindings, change them, remove them and resolve
- * NameBindings.
- *
- * Manages a Naming Service for a remote name space which
- * includes bindings for net_local naming context. All strings
- * are stored in wide character format. A Name Binding consists
- * of a name (that's the key), a value string and an optional
- * type string (no wide chars).
- */
-class ACE_Export ACE_Remote_Name_Space : public ACE_Name_Space
-{
-public:
- // = Initialization and termination methods.
- /// "Do-nothing" constructor.
- ACE_Remote_Name_Space (void);
-
- /**
- * Specifies the scope of this namespace, opens and memory-maps the
- * associated file (if accessible) or contacts the dedicated name
- * server process for NET_LOCAL namespace.
- */
- ACE_Remote_Name_Space (const ACE_TCHAR *hostname, u_short port);
-
- /**
- * Specifies the scope of this namespace, opens and memory-maps the
- * associated file (if accessible) or contacts the dedicated name
- * server process for NET_LOCAL namespace.
- */
- int open (const ACE_TCHAR *servername, u_short port);
-
- /// destructor, do some cleanup :TBD: last dtor should "compress"
- /// file
- ~ACE_Remote_Name_Space (void);
-
- /// Bind a new name to a naming context (Wide character strings).
- virtual int bind (const ACE_NS_WString &name_in,
- const ACE_NS_WString &value_in,
- const char *type_in = "");
-
- /**
- * Overwrite the value or type of an existing name in a
- * ACE_Remote_Name_Space or bind a new name to the context, if it
- * didn't exist yet. (Wide charcter strings interface).
- */
- virtual int rebind (const ACE_NS_WString &name_in,
- const ACE_NS_WString &value_in,
- const char *type_in = "");
-
- /// Delete a name from a ACE_Remote_Name_Space (Wide charcter strings
- /// Interface).
- virtual int unbind (const ACE_NS_WString &name_in);
-
- /// Get value and type of a given name binding (Wide chars). The
- /// caller is responsible for deleting both <value_out> and <type_out>!
- virtual int resolve (const ACE_NS_WString &name_in,
- ACE_NS_WString &value_out,
- char *&type_out);
-
- /// Get a set of names matching a specified pattern (wchars). Matching
- /// means the names must begin with the pattern string.
- virtual int list_names (ACE_WSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in);
-
- /// Get a set of values matching a specified pattern (wchars). Matching
- /// means the values must begin with the pattern string.
- virtual int list_values (ACE_WSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in);
-
- /// Get a set of types matching a specified pattern (wchars). Matching
- /// means the types must begin with the pattern string.
- virtual int list_types (ACE_WSTRING_SET &set_out,
- const ACE_NS_WString &pattern_in);
-
- /**
- * Get a set of names matching a specified pattern (wchars). Matching
- * means the names must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_name_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern);
-
- /**
- * Get a set of values matching a specified pattern (wchars). Matching
- * means the values must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_value_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern);
-
- /**
- * Get a set of types matching a specified pattern (wchars). Matching
- * means the types must begin with the pattern string. Returns the
- * complete binding associated each pattern match.
- */
- virtual int list_type_entries (ACE_BINDING_SET &set,
- const ACE_NS_WString &pattern);
-
- /// Dump the state of the object.
- virtual void dump (void) const;
-
-private:
- /// Interface to Name server process for NET_LOCAL namespace.
- ACE_Name_Proxy ns_proxy_;
-};
-
-#include "ace/post.h"
-
-#endif /* ACE_REMOTE_NAME_SPACE_H */
diff --git a/ace/Remote_Tokens.cpp b/ace/Remote_Tokens.cpp
deleted file mode 100644
index 86aec7547d8..00000000000
--- a/ace/Remote_Tokens.cpp
+++ /dev/null
@@ -1,438 +0,0 @@
-// Remote_Tokens.cpp
-// $Id$
-
-#include "ace/Remote_Tokens.h"
-#include "ace/Singleton.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Remote_Tokens.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-ACE_RCSID(ace, Remote_Tokens, "$Id$")
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-#define ACE_TSS_CONNECTION_MUTEX ACE_Thread_Mutex
-#else
-#define ACE_TSS_CONNECTION_MUTEX ACE_Null_Mutex
-#endif /* ACE_MT_SAFE */
-
-// Make a typedef to simplify access to the Singleton below.
-typedef ACE_Singleton<ACE_TSS_Connection, ACE_TSS_CONNECTION_MUTEX> ACE_Token_Connections;
-
-// Initialize the statics from ACE_TSS_Connection;
-ACE_INET_Addr ACE_TSS_Connection::server_address_;
-
-// ************************************************************
-
-void
-ACE_TSS_Connection::set_server_address (const ACE_INET_Addr &server_address)
-{
- ACE_TRACE ("ACE_TSS_Connection::set_server_address");
- server_address_ = server_address;
-}
-
-// Necessary to make some compilers work...
-ACE_TSS_Connection::ACE_TSS_Connection (void)
-{
- ACE_TRACE ("ACE_TSS_Connection::ACE_TSS_Connection");
-}
-
-ACE_TSS_Connection::~ACE_TSS_Connection (void)
-{
- ACE_TRACE ("ACE_TSS_Connection::~ACE_TSS_Connection");
-}
-
-ACE_SOCK_Stream *
-ACE_TSS_Connection::get_connection (void)
-{
- return ACE_TSS<ACE_SOCK_Stream>::operator-> ();
-}
-
-ACE_SOCK_Stream *
-ACE_TSS_Connection::make_TSS_TYPE (void) const
-{
- ACE_TRACE ("ACE_TSS_Connection::make_TSS_TYPE");
-
- ACE_SOCK_Connector connector;
- ACE_SOCK_Stream *stream = 0;
-
- ACE_NEW_RETURN (stream,
- ACE_SOCK_Stream,
- 0);
-
- if (connector.connect (*stream, server_address_) == -1)
- {
- delete stream;
- errno = ECONNREFUSED;
- return 0;
- }
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_TSS_Connection new connection\n")));
- return stream;
-}
-
-ACE_TSS_Connection::operator ACE_SOCK_Stream *(void)
-{
- return this->get_connection ();
-}
-
-void
-ACE_TSS_Connection::dump (void) const
-{
- ACE_TRACE ("ACE_TSS_Connection::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_TSS_Connection::dump:\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("server_address_\n")));
- server_address_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("base:\n")));
- ACE_TSS<ACE_SOCK_Stream>::dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Remote_Token_Proxy::ACE_Remote_Token_Proxy (void)
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::ACE_Remote_Token_Proxy");
-}
-
-ACE_Remote_Token_Proxy::~ACE_Remote_Token_Proxy (void)
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::~ACE_Remote_Token_Proxy");
-}
-
-int
-ACE_Remote_Token_Proxy::open (const ACE_TCHAR *name,
- int ignore_deadlock,
- int debug)
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::open");
- ignore_shadow_deadlock_ = ignore_deadlock;
- return ACE_Token_Proxy::open (name, 0, debug);
-}
-
-void
-ACE_Remote_Token_Proxy::set_server_address (const ACE_INET_Addr &server_address)
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::set_server_address");
- ACE_Token_Connections::instance ()->set_server_address (server_address);
-}
-
-int
-ACE_Remote_Token_Proxy::initiate_connection (void)
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::initiate_connection");
- if (token_ == 0)
- {
- errno = ENOENT;
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Remote_Token_Proxy not open.\n")), -1);
- }
-
- ACE_SOCK_Stream *peer = ACE_Token_Connections::instance ()->get_connection ();
- return peer == 0 ? 0 : 1;
-}
-
-// Do the work of sending a request and getting a reply.
-
-int
-ACE_Remote_Token_Proxy::request_reply (ACE_Token_Request &request,
- ACE_Synch_Options &)
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::request_reply");
- void *buffer;
- ssize_t length;
-
- if ((length = request.encode (buffer)) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("encode failed")), -1);
-
- ACE_SOCK_Stream *peer = ACE_Token_Connections::instance ()->get_connection ();
-
- if (peer == 0)
- return -1;
-
- // Transmit request via a blocking send.
-
- if (peer->send_n (buffer, length) != length)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("send_n failed")), -1);
- else
- {
- ACE_Token_Reply reply;
-
- // Receive reply via blocking read.
-
- if (peer->recv (&reply, sizeof reply) != sizeof reply)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("recv failed")), -1);
-
- if (reply.decode () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("decode failed")), -1);
-
- errno = int (reply.errnum ());
- if (errno != 0)
- ACE_RETURN (-1);
- else
- return 0;
- }
-}
-
-int
-ACE_Remote_Token_Proxy::acquire (int notify,
- void (*sleep_hook)(void *),
- ACE_Synch_Options &options)
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::acquire");
-
- // First grab the local shadow mutex.
- if (ACE_Token_Proxy::acquire (notify,
- sleep_hook,
- ACE_Synch_Options::asynch) == -1)
- {
- // Acquire failed, deal with it...
- switch (errno)
- {
- case EWOULDBLOCK :
- // Whoah, we detected wouldblock via the shadow mutex!
- if (debug_)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%t) shadow: acquire will block, owner is %s\n"),
- this->token_->owner_id ()));
- // No error, but would block,
- break;
-
- case EDEADLK :
- if (debug_)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%t) shadow: deadlock detected\n")));
-
- if (ignore_shadow_deadlock_)
- break;
- else
- {
- errno = EDEADLK;
- ACE_RETURN (-1);
- }
-
- default :
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("(%t) %p shadow acquire failed\n"),
- ACE_LIB_TEXT ("ACE_Remote_Token_Proxy")),
- -1);
- }
- }
-
- ACE_Token_Request request (token_->type (),
- this->type (),
- ACE_Token_Request::ACQUIRE,
- this->name (),
- this->client_id (),
- options);
-
- request.notify (notify);
-
- int result = this->request_reply (request, options);
-
- if (result == -1)
- {
- // Update the local shadow copy.
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("error on remote acquire, releasing shadow mutex.\n")));
- ACE_Token_Proxy::release ();
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%t) acquired %s remotely.\n"), this->name ()));
- // Our shadow call may have failed. However, it's still a race
- // to the remote server. If we beat the client which holds the
- // local token, we need to fix things locally to reflect the
- // actual ownership. All that should happen is that our waiter
- // is moved to the front of the waiter list.
- token_->make_owner (waiter_);
- }
-
- return result;
-}
-
-int
-ACE_Remote_Token_Proxy::tryacquire (void (*sleep_hook)(void *))
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::tryacquire");
-
- // If we can detect locally that the tryacquire will fail, there is
- // no need to go remote.
- if (ACE_Token_Proxy::tryacquire (sleep_hook) == -1)
- {
- if (debug_)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("shadow try acquire failed\n")));
- }
-
- return -1;
- }
-
- ACE_Token_Request request (token_->type (),
- this->type (),
- ACE_Token_Request::TRY_ACQUIRE,
- this->name (),
- this->client_id (),
- ACE_Synch_Options::synch);
-
- return this->request_reply (request,
- ACE_Synch_Options::synch);
-}
-
-int
-ACE_Remote_Token_Proxy::renew (int requeue_position,
- ACE_Synch_Options &options)
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::renew");
-
- if (ACE_Token_Proxy::renew (requeue_position,
- ACE_Synch_Options::asynch) == -1)
- {
- // Check for error.
- if (errno != EWOULDBLOCK)
- return -1;
- else if (debug_)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("(%t) shadow: renew would block. owner %s.\n"),
- this->token_->owner_id ()));
- }
-
- ACE_Token_Request request (token_->type (),
- this->type (),
- ACE_Token_Request::RENEW,
- this->name (),
- this->client_id (),
- options);
-
- request.requeue_position (requeue_position);
-
- int result = this->request_reply (request, options);
-
- if (result == -1)
- {
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- ACE_Token_Proxy::release ();
- }
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p error on remote renew, releasing shadow mutex.\n"),
- ACE_LIB_TEXT ("ACE_Remote_Token_Proxy")), -1);
- }
- else
- {
- if (debug_)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%t) renewed %s remotely.\n"), this->name ()));
- // Make sure that the local shadow reflects our new ownership.
- token_->make_owner (waiter_);
- return result;
- }
-}
-
-int
-ACE_Remote_Token_Proxy::release (ACE_Synch_Options &options)
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::release");
-
- ACE_Token_Request request (token_->type (),
- this->type (),
- ACE_Token_Request::RELEASE,
- this->name (),
- this->client_id (),
- options);
-
- int result = this->request_reply (request, options);
- if (result == 0)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%t) released %s remotely.\n"), this->name ()));
-
- // whether success or failure, we're going to release the shadow.
- // If race conditions exist such that we are no longer the owner,
- // this release will perform a remove.
- if (ACE_Token_Proxy::release () == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("(%t) shadow: release failed\n")));
-
- return result;
-}
-
-int
-ACE_Remote_Token_Proxy::remove (ACE_Synch_Options &)
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::remove");
- return 0;
-}
-
-void
-ACE_Remote_Token_Proxy::token_acquired (ACE_TPQ_Entry *)
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::token_acquired");
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%t) shadow token %s acquired\n"),
- this->client_id (),
- this->name ()));
- // ACE_Token_Proxy::token_acquired (vp);
-}
-
-const ACE_TCHAR*
-ACE_Remote_Token_Proxy::owner_id (void)
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::owner_id");
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("owner_id called\n")));
- // @@ special operation
- return 0;
-}
-
-void
-ACE_Remote_Token_Proxy::dump (void) const
-{
- ACE_TRACE ("ACE_Remote_Token_Proxy::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Tokens::dump:\n")
- ACE_LIB_TEXT (" ignore_shadow_deadlock_ = %d\n"),
- ignore_shadow_deadlock_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("base:\n")));
- ACE_Token_Proxy::dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_Remote_Mutex::dump (void) const
-{
- ACE_TRACE ("ACE_Remote_Mutex::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Remote_Mutex::dump:\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("base:\n")));
- ACE_Remote_Token_Proxy::dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_Remote_RLock::dump (void) const
-{
- ACE_TRACE ("ACE_Remote_RLock::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Remote_RLock::dump:\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("base:\n")));
- ACE_Remote_Token_Proxy::dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_Remote_WLock::dump (void) const
-{
- ACE_TRACE ("ACE_Remote_WLock::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Remote_WLock::dump:\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("base:\n")));
- ACE_Remote_Token_Proxy::dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_TSS <ACE_SOCK_Stream>;
-template class ACE_Singleton <ACE_TSS_Connection, ACE_TSS_CONNECTION_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_TSS <ACE_SOCK_Stream>
-#pragma instantiate ACE_Singleton <ACE_TSS_Connection, ACE_TSS_CONNECTION_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
diff --git a/ace/Remote_Tokens.h b/ace/Remote_Tokens.h
deleted file mode 100644
index 1d3931db4d0..00000000000
--- a/ace/Remote_Tokens.h
+++ /dev/null
@@ -1,316 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Remote_Tokens.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt (schmidt@cs.wustl.edu)
- * @author Tim Harrison (harrison@cs.wustl.edu)
- */
-//=============================================================================
-
-#ifndef ACE_REMOTE_MUTEX_H
-#define ACE_REMOTE_MUTEX_H
-#include "ace/pre.h"
-
-#include "ace/INET_Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Connector.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Synch_Options.h"
-#include "ace/Local_Tokens.h"
-#include "ace/Token_Request_Reply.h"
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-/**
- * @class ACE_Remote_Token_Proxy
- *
- * @brief Proxy for acquiring, renewing, and releasing a distributed
- * synchronization token.
- *
- * The Remote_Token_Proxy class implements the mechanisms for
- * distributed token operations. It is similar to the
- * ACE_Token_Proxy.
- * = BUGS
- * Distributed sleep_hooks have not been implemented. <owner_id>
- * is not implemented.
- */
-class ACE_Export ACE_Remote_Token_Proxy : public ACE_Token_Proxy
-{
-public:
- /// Null construction.
- ACE_Remote_Token_Proxy (void);
-
- /// Death.
- virtual ~ACE_Remote_Token_Proxy (void);
-
- /**
- * Same as Token_Proxy. <name> is the string uniquely identifying
- * the token. <ignore_deadlock> can be 1 to disable deadlock
- * notifications. <debug> prints debug messages.
- */
- int open (const ACE_TCHAR *name,
- int ignore_deadlock = 0,
- int debug = 0);
-
-
- /**
- * Open a connection with the token server. This only need be used
- * when the user wishes to explicitly open a connection to check if
- * the server exists. Connections are stored in the
- * ACE_Token_Connections singleton as thread-specific data. That
- * is, every thread has only one connection that is used for all
- * remote tokens.
- */
- int initiate_connection (void);
-
- /**
- * Acquire the distributed token. If notify is specified and the
- * token is already held, the owner is notified. options contains
- * the timeout value for the acquire call. The timer is kept at the
- * token server. Asynchronous operations are not supported.
- * Returns 0 on success, -1 on failure with <errno> == problem.
- */
- virtual int acquire (int notify = 0,
- void (*sleep_hook)(void *) = 0,
- ACE_Synch_Options &options =
- ACE_Synch_Options::synch);
-
- /**
- * Try to acquire the distributed token. If the token is already
- * held, the call returns without queueing the caller as a waiter.
- * Returns 0 on success (the token was acquired), and -1 with
- * EWOULDBLOCK if the token was already held.
- */
- virtual int tryacquire (void (*sleep_hook)(void *) = 0);
-
- /**
- * Renew the token by offering to release it if there are any other
- * waiters, otherwise get the token back immediately. This renew
- * has the same semantics as ACE_Local_Mutex release. It is
- * semantically equivalent to <release> followed by <acquire>, but
- * it is faster. options contains the timeout value used if renew
- * blocks. As with acquire, the timer is maintained at the token
- * server. If there are waiters and requeue_position == -1, the
- * caller is queued at the rear of the waiter list. Otherwise,
- * requeue_position specifies the number of waiters to "let by"
- * before reacquiring the token (effectively, the position in the
- * waiter list.)
- */
- virtual int renew (int requeue_position = 0,
- ACE_Synch_Options &options =
- ACE_Synch_Options::synch);
-
- /**
- * Release the distributed token. Similar to ACE_Local_Mutex, if the
- * caller is not the owner, it is removed from the waiter list (if
- * applicable.) Returns 0 on success, -1 on failure with <errno> ==
- * problem.
- */
- virtual int release (ACE_Synch_Options &options =
- ACE_Synch_Options::synch);
-
- /// Become interface compliant for ACE_Guard<>. This has no
- /// functionality.
- virtual int remove (ACE_Synch_Options &options =
- ACE_Synch_Options::synch);
-
- /// Override the default to do nothing.
- virtual void token_acquired (ACE_TPQ_Entry *);
-
- /// The client id of the current token holder
- virtual const ACE_TCHAR* owner_id (void);
-
- /**
- * Sets the server address for all instances of ACE_Remote_Token_Proxy
- * If this isn't called, the environment variable TOKEN_SERVER is
- * checked for the server address. If that is not specified, all
- * ACE_Remote_** operations will fail.
- */
- static void set_server_address (const ACE_INET_Addr &server_address);
-
- /// Dump the state of the class.
- void dump (void) const;
-
-protected:
-
- /// If shadows report deadlock, go remote anyway
- int ignore_shadow_deadlock_;
-
- /// Perform the request and wait for the reply.
- int request_reply (ACE_Token_Request &request,
- ACE_Synch_Options &options);
-};
-
-/**
- * @class ACE_Remote_Mutex
- *
- * @brief Proxy for acquiring, renewing, and releasing a distributed
- * mutex.
- *
- * This is the remote equivalent to ACE_Local_Mutex. The
- * Remote_Mutex class offers methods for acquiring, renewing, and
- * releasing a distributed synchronization mutex. Similar to
- * ACE_Local_Mutex, ACE_Remote_Token_Proxy offers recursive
- * acquisition, FIFO waiter ordering, and deadlock detection. It
- * depends on the Token Server for its distributed synchronization
- * semantics.
- */
-class ACE_Export ACE_Remote_Mutex : public ACE_Remote_Token_Proxy
-{
-public:
- /// Null creation. Remote_Token_Proxy::open must be called.
- ACE_Remote_Mutex (void);
-
- /// Calls Remote_Token_Proxy::open for you.
- ACE_Remote_Mutex (const ACE_TCHAR *token_name,
- int ignore_deadlock = 0,
- int debug = 0);
-
- /// Dump the state of the class.
- void dump (void) const;
-
- /// Return deep copy.
- virtual ACE_Token_Proxy *clone (void) const;
-
-protected:
- /// Make the correct type of ACE_Tokens.
- /// This is called by the ACE_Token_Manager.
- virtual ACE_Tokens *create_token (const ACE_TCHAR *name);
-};
-
-/**
- * @class ACE_Remote_RLock
- *
- * @brief Proxy for acquiring, renewing, and releasing a distributed
- * readers lock.
- *
- * This is the remote equivalent to ACE_Local_RLock. Multiple
- * readers can hold the lock simultaneously when no writers have
- * the lock. Alternatively, when a writer holds the lock, no other
- * participants (readers or writers) may hold the lock.
- * ACE_Remote_RLock depends on the ACE Token Server for its
- * distributed synchronization semantics.
- */
-class ACE_Export ACE_Remote_RLock : public ACE_Remote_Token_Proxy
-{
-public:
- ACE_Remote_RLock (void);
-
- ACE_Remote_RLock (const ACE_TCHAR *token_name,
- int ignore_deadlock = 0,
- int debug = 0);
-
- ACE_Remote_RLock (const ACE_Remote_RLock &mutex);
-
- /// Dump the state of the class.
- void dump (void) const;
-
- /// Returns ACE_RW_Token::RLOCK;
- virtual int type (void) const;
-
- /// Return deep copy.
- virtual ACE_Token_Proxy *clone (void) const;
-
-protected:
- /// Make the correct type of ACE_Tokens. This is called by the Token
- /// Manager.
- virtual ACE_Tokens *create_token (const ACE_TCHAR *name);
-};
-
-/**
- * @class ACE_Remote_WLock
- *
- * @brief Proxy for acquiring, renewing, and releasing a distributed
- * writers lock.
- *
- * Shields applications from details of interacting with the
- * ACE_Token_Server. The token_name_ is just the string that the
- * Token Server uses to identify the token. The client_id_ (also
- * used by the Token Server,) identifies the owner of the token and
- * is used for deadlock detection.
- */
-class ACE_Export ACE_Remote_WLock : public ACE_Remote_Token_Proxy
-{
-public:
- ACE_Remote_WLock (void);
-
- ACE_Remote_WLock (const ACE_TCHAR *token_name,
- int ignore_deadlock = 0,
- int debug = 0);
-
- ACE_Remote_WLock (const ACE_Remote_WLock &mutex);
-
- /// Dump the state of the class.
- void dump (void) const;
-
- /// Returns ACE_RW_Token::WLOCK;
- virtual int type (void) const;
-
- /// Return deep copy.
- virtual ACE_Token_Proxy *clone (void) const;
-
-protected:
- /// Make the correct type of ACE_Tokens. This is called by the Token
- /// Manager.
- virtual ACE_Tokens *create_token (const ACE_TCHAR *name);
-};
-
-/**
- * @class ACE_TSS_Connection
- *
- * @brief Class for providing a connection per thread.
- *
- * ACE_TSS_Connection provides a single access point for all
- * threads to access thread-specific connections. This prevents
- * resource-sharing problems such as thread serialization.
- */
-class ACE_Export ACE_TSS_Connection : public ACE_TSS<ACE_SOCK_Stream>
-{
-public:
- // Necessary to make some compilers work...
- ACE_TSS_Connection (void);
- ~ACE_TSS_Connection (void);
-
- /// Retrieve the thread's connection
- ACE_SOCK_Stream *get_connection (void);
-
- /// Factory Method that creates a new SOCK Stream.
- virtual ACE_SOCK_Stream *make_TSS_TYPE (void) const;
-
- /// Inheritence and operator overloading don't mix. Redefine this
- /// from ACE_TSS so that we can use it.
- operator ACE_SOCK_Stream *(void);
-
- /// Set the server address.
- static void set_server_address (const ACE_INET_Addr &server_address);
-
- /// Dump the state of the class.
- void dump (void) const;
-
-protected:
- /// The address of the Token Server used by all instances of
- /// Token_Proxy.
- static ACE_INET_Addr server_address_;
-
-private:
- /// Private: should not be used
- ACE_TSS_Connection (const ACE_TSS_Connection &);
- void operator= (const ACE_TSS_Connection &);
-};
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Remote_Tokens.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_REMOTE_TOKEN_H */
diff --git a/ace/Remote_Tokens.i b/ace/Remote_Tokens.i
deleted file mode 100644
index f0cc90e5105..00000000000
--- a/ace/Remote_Tokens.i
+++ /dev/null
@@ -1,122 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-ACE_INLINE
-ACE_Remote_Mutex::ACE_Remote_Mutex (void)
-{
- ACE_TRACE ("ACE_Remote_Mutex::ACE_Remote_Mutex");
-}
-
-ACE_INLINE
-ACE_Remote_Mutex::ACE_Remote_Mutex (const ACE_TCHAR *token_name,
- int ignore_deadlock,
- int debug)
-{
- ACE_TRACE ("ACE_Remote_Mutex::ACE_Remote_Mutex");
- this->open (token_name, ignore_deadlock, debug);
-}
-
-ACE_INLINE ACE_Token_Proxy *
-ACE_Remote_Mutex::clone (void) const
-{
- ACE_Token_Proxy *temp;
- ACE_NEW_RETURN (temp,
- ACE_Remote_Mutex (this->name (),
- ignore_deadlock_,
- debug_),
- 0);
- return temp;
-}
-
-ACE_INLINE ACE_Tokens *
-ACE_Remote_Mutex::create_token (const ACE_TCHAR *name)
-{
- ACE_Tokens *temp;
- ACE_NEW_RETURN (temp,
- ACE_Mutex_Token (name),
- 0);
- return temp;
-}
-
-// ************************************************************
-
-ACE_INLINE
-ACE_Remote_RLock::ACE_Remote_RLock (const ACE_TCHAR *token_name,
- int ignore_deadlock,
- int debug)
-{
- ACE_TRACE ("ACE_Remote_RLock::ACE_Remote_RLock");
- this->open (token_name, ignore_deadlock, debug);
-}
-
-ACE_INLINE ACE_Tokens *
-ACE_Remote_RLock::create_token (const ACE_TCHAR *name)
-{
- ACE_Tokens *temp = 0;
- ACE_NEW_RETURN (temp,
- ACE_RW_Token (name),
- 0);
- return temp;
-}
-
-ACE_INLINE int
-ACE_Remote_RLock::type (void) const
-{
- return ACE_RW_Token::READER;
-}
-
-ACE_INLINE ACE_Token_Proxy *
-ACE_Remote_RLock::clone (void) const
-{
- ACE_Token_Proxy *temp = 0;
- ACE_NEW_RETURN (temp,
- ACE_Remote_RLock (this->name (),
- ignore_deadlock_,
- debug_),
- 0);
- return temp;
-}
-
-// ************************************************************
-
-ACE_INLINE
-ACE_Remote_WLock::ACE_Remote_WLock (const ACE_TCHAR *token_name,
- int ignore_deadlock,
- int debug)
-{
- ACE_TRACE ("ACE_Remote_WLock::ACE_Remote_WLock");
- this->open (token_name, ignore_deadlock, debug);
-}
-
-
-ACE_INLINE ACE_Tokens *
-ACE_Remote_WLock::create_token (const ACE_TCHAR *name)
-{
- ACE_Tokens *temp = 0;
- ACE_NEW_RETURN (temp,
- ACE_RW_Token (name),
- 0);
- return temp;
-}
-
-ACE_INLINE int
-ACE_Remote_WLock::type (void) const
-{
- return ACE_RW_Token::WRITER;
-}
-
-ACE_INLINE ACE_Token_Proxy *
-ACE_Remote_WLock::clone (void) const
-{
- ACE_Token_Proxy *temp = 0;
- ACE_NEW_RETURN (temp,
- ACE_Remote_WLock (this->name (),
- ignore_deadlock_,
- debug_),
- 0);
- return temp;
-}
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
diff --git a/ace/SOCK.cpp b/ace/SOCK.cpp
deleted file mode 100644
index 333ff6c16b5..00000000000
--- a/ace/SOCK.cpp
+++ /dev/null
@@ -1,182 +0,0 @@
-// SOCK.cpp
-// $Id$
-
-#include "ace/SOCK.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK.i"
-#endif
-
-ACE_RCSID(ace, SOCK, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SOCK)
-
-void
-ACE_SOCK::dump (void) const
-{
- ACE_TRACE ("ACE_SOCK::dump");
-}
-
-ACE_SOCK::ACE_SOCK (void)
-{
- // ACE_TRACE ("ACE_SOCK::ACE_SOCK");
-}
-
-// Returns information about the remote peer endpoint (if there is
-// one).
-
-int
-ACE_SOCK::get_remote_addr (ACE_Addr &sa) const
-{
- ACE_TRACE ("ACE_SOCK::get_remote_addr");
-
- int len = sa.get_size ();
- sockaddr *addr = ACE_reinterpret_cast (sockaddr *,
- sa.get_addr ());
-
- if (ACE_OS::getpeername (this->get_handle (),
- addr,
- &len) == -1)
- return -1;
-
- sa.set_size (len);
- sa.set_type (addr->sa_family);
- return 0;
-}
-
-int
-ACE_SOCK::get_local_addr (ACE_Addr &sa) const
-{
- ACE_TRACE ("ACE_SOCK::get_local_addr");
-
- int len = sa.get_size ();
- sockaddr *addr = ACE_reinterpret_cast (sockaddr *,
- sa.get_addr ());
-
- if (ACE_OS::getsockname (this->get_handle (),
- addr,
- &len) == -1)
- return -1;
-
- sa.set_type (addr->sa_family);
- sa.set_size (len);
- return 0;
-}
-
-// Close down a ACE_SOCK.
-
-int
-ACE_SOCK::close (void)
-{
- ACE_TRACE ("ACE_SOCK::close");
- int result = 0;
-
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- result = ACE_OS::closesocket (this->get_handle ());
- this->set_handle (ACE_INVALID_HANDLE);
- }
- return result;
-}
-
-int
-ACE_SOCK::open (int type,
- int protocol_family,
- int protocol,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK::open");
- int one = 1;
-
- this->set_handle (ACE_OS::socket (protocol_family,
- type,
- protocol));
-
- if (this->get_handle () == ACE_INVALID_HANDLE)
- return -1;
- else if (protocol_family != PF_UNIX
- && reuse_addr
- && this->set_option (SOL_SOCKET,
- SO_REUSEADDR,
- &one,
- sizeof one) == -1)
- {
- this->close ();
- return -1;
- }
- return 0;
-}
-
-// General purpose constructor for performing server ACE_SOCK
-// creation.
-
-ACE_SOCK::ACE_SOCK (int type,
- int protocol_family,
- int protocol,
- int reuse_addr)
-{
- // ACE_TRACE ("ACE_SOCK::ACE_SOCK");
- if (this->open (type,
- protocol_family,
- protocol,
- reuse_addr) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK::ACE_SOCK")));
-}
-
-int
-ACE_SOCK::open (int type,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK::open");
-
- this->set_handle (ACE_OS::socket (protocol_family,
- type,
- protocol,
- protocolinfo,
- g,
- flags));
- int one = 1;
-
- if (this->get_handle () == ACE_INVALID_HANDLE)
- return -1;
- else if (reuse_addr
- && this->set_option (SOL_SOCKET,
- SO_REUSEADDR,
- &one,
- sizeof one) == -1)
- {
- this->close ();
- return -1;
- }
- else
- return 0;
-}
-
-ACE_SOCK::ACE_SOCK (int type,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr)
-{
- // ACE_TRACE ("ACE_SOCK::ACE_SOCK");
- if (this->open (type,
- protocol_family,
- protocol,
- protocolinfo,
- g,
- flags,
- reuse_addr) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK::ACE_SOCK")));
-}
diff --git a/ace/SOCK.h b/ace/SOCK.h
deleted file mode 100644
index 427a7f85bb1..00000000000
--- a/ace/SOCK.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SOCK.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SOCK_H
-#define ACE_SOCK_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Addr.h"
-#include "ace/IPC_SAP.h"
-#include "ace/OS.h"
-
-/**
- * @class ACE_SOCK
- *
- * @brief An abstract class that forms the basis for more specific
- * classes, such as <ACE_SOCK_Acceptor> and <ACE_SOCK_Stream>.
- * Do not instantiate this class.
- *
- * This class provides functions that are common to all of the
- * <ACE_SOCK_*> classes. <ACE_SOCK> provides the ability to get
- * and set socket options, get the local and remote addresses,
- * and open and close a socket handle.
- */
-class ACE_Export ACE_SOCK : public ACE_IPC_SAP
-{
-public:
- /// Default ctor/dtor.
- ~ACE_SOCK (void);
-
- /// Wrapper around the <setsockopt> system call.
- int set_option (int level,
- int option,
- void *optval,
- int optlen) const;
-
- /// Wrapper around the <getsockopt> system call.
- int get_option (int level,
- int option,
- void *optval,
- int *optlen) const;
-
- /// Close down the socket handle.
- int close (void);
-
- /// Return the local endpoint address in the referenced <ACE_Addr>.
- /// Returns 0 if successful, else -1.
- int get_local_addr (ACE_Addr &) const;
-
- /**
- * Return the address of the remotely connected peer (if there is
- * one), in the referenced <ACE_Addr>. Returns 0 if successful, else
- * -1.
- */
- int get_remote_addr (ACE_Addr &) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /// Wrapper around the BSD-style <socket> system call (no QoS).
- int open (int type,
- int protocol_family,
- int protocol,
- int reuse_addr);
-
- /// Wrapper around the QoS-enabled <WSASocket> function.
- int open (int type,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr);
-
-protected:
- /// Constructor with arguments to call the BSD-style <socket> system
- /// call (no QoS).
- ACE_SOCK (int type,
- int protocol_family,
- int protocol = 0,
- int reuse_addr = 0);
-
- /// Constructor with arguments to call the QoS-enabled <WSASocket>
- /// function.
- ACE_SOCK (int type,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr);
-
- /// Default constructor is protected to prevent instances of this class
- /// from being defined.
- ACE_SOCK (void);
-
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-#endif /* ACE_SOCK_H */
diff --git a/ace/SOCK.i b/ace/SOCK.i
deleted file mode 100644
index 78b17d3e36e..00000000000
--- a/ace/SOCK.i
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SOCK.i
-
-ASYS_INLINE
-ACE_SOCK::~ACE_SOCK (void)
-{
- // ACE_TRACE ("ACE_SOCK::~ACE_SOCK");
-}
-
-ASYS_INLINE int
-ACE_SOCK::set_option (int level,
- int option,
- void *optval,
- int optlen) const
-{
- ACE_TRACE ("ACE_SOCK::set_option");
- return ACE_OS::setsockopt (this->get_handle (), level,
- option, (char *) optval, optlen);
-}
-
-// Provides access to the ACE_OS::getsockopt system call.
-
-ASYS_INLINE int
-ACE_SOCK::get_option (int level,
- int option,
- void *optval,
- int *optlen) const
-{
- ACE_TRACE ("ACE_SOCK::get_option");
- return ACE_OS::getsockopt (this->get_handle (), level,
- option, (char *) optval, optlen);
-}
diff --git a/ace/SOCK_Acceptor.cpp b/ace/SOCK_Acceptor.cpp
deleted file mode 100644
index a07834ba6bc..00000000000
--- a/ace/SOCK_Acceptor.cpp
+++ /dev/null
@@ -1,403 +0,0 @@
-// SOCK_Acceptor.cpp
-// $Id$
-
-#include "ace/SOCK_Acceptor.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_HAS_WINCE)
-#include "ace/OS_QoS.h"
-#endif // ACE_HAS_WINCE
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_Acceptor.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/Synch.h"
-
-ACE_RCSID(ace, SOCK_Acceptor, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_Acceptor)
-
-// Do nothing routine for constructor.
-
-ACE_SOCK_Acceptor::ACE_SOCK_Acceptor (void)
-{
- ACE_TRACE ("ACE_SOCK_Acceptor::ACE_SOCK_Acceptor");
-}
-
-// Performs the timed accept operation.
-
-int
-ACE_SOCK_Acceptor::shared_accept_start (ACE_Time_Value *timeout,
- int restart,
- int &in_blocking_mode) const
-{
- ACE_TRACE ("ACE_SOCK_Acceptor::shared_accept_start");
-
- ACE_HANDLE handle = this->get_handle ();
-
- // Handle the case where we're doing a timed <accept>.
- if (timeout != 0)
- {
- if (ACE::handle_timed_accept (handle,
- timeout,
- restart) == -1)
- return -1;
- else
- {
- in_blocking_mode = ACE_BIT_DISABLED (ACE::get_flags (handle),
- ACE_NONBLOCK);
- // Set the handle into non-blocking mode if it's not already
- // in it.
- if (in_blocking_mode
- && ACE::set_flags (handle,
- ACE_NONBLOCK) == -1)
- return -1;
- }
- }
-
- return 0;
-}
-
-int
-ACE_SOCK_Acceptor::shared_accept_finish (ACE_SOCK_Stream new_stream,
- int in_blocking_mode,
- int reset_new_handle) const
-{
- ACE_TRACE ("ACE_SOCK_Acceptor::shared_accept_finish ()");
-
- ACE_HANDLE new_handle = new_stream.get_handle ();
-
- // Check to see if we were originally in blocking mode, and if so,
- // set the <new_stream>'s handle and <this> handle to be in blocking
- // mode.
- if (in_blocking_mode)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
-
- // Only disable ACE_NONBLOCK if we weren't in non-blocking mode
- // originally.
- ACE::clr_flags (this->get_handle (),
- ACE_NONBLOCK);
- ACE::clr_flags (new_handle,
- ACE_NONBLOCK);
- }
-
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- if (reset_new_handle)
- // Reset the event association inherited by the new handle.
- ::WSAEventSelect ((SOCKET) new_handle, 0, 0);
-#else
- ACE_UNUSED_ARG (reset_new_handle);
-#endif /* ACE_WIN32 */
-
- return new_handle == ACE_INVALID_HANDLE ? -1 : 0;
-}
-
-// General purpose routine for accepting new connections.
-
-int
-ACE_SOCK_Acceptor::accept (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle) const
-{
- ACE_TRACE ("ACE_SOCK_Acceptor::accept");
-
- int in_blocking_mode = 0;
- if (this->shared_accept_start (timeout,
- restart,
- in_blocking_mode) == -1)
- return -1;
- else
- {
- // On Win32 the third parameter to <accept> must be a NULL
- // pointer if we want to ignore the client's address.
- int *len_ptr = 0;
- sockaddr *addr = 0;
- int len = 0;
-
- if (remote_addr != 0)
- {
- len = remote_addr->get_size ();
- len_ptr = &len;
- addr = (sockaddr *) remote_addr->get_addr ();
- }
-
- do
- new_stream.set_handle (ACE_OS::accept (this->get_handle (),
- addr,
- len_ptr));
- while (new_stream.get_handle () == ACE_INVALID_HANDLE
- && restart != 0
- && errno == EINTR
- && timeout == 0);
-
- // Reset the size of the addr, so the proper UNIX/IPv4/IPv6 family
- // is known.
- if (new_stream.get_handle () != ACE_INVALID_HANDLE
- && remote_addr != 0)
- {
- remote_addr->set_size (len);
- remote_addr->set_type (addr->sa_family);
- }
- }
-
- return this->shared_accept_finish (new_stream,
- in_blocking_mode,
- reset_new_handle);
-}
-
-#if !defined (ACE_HAS_WINCE)
-int
-ACE_SOCK_Acceptor::accept (ACE_SOCK_Stream &new_stream,
- ACE_Accept_QoS_Params qos_params,
- ACE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle) const
-{
- ACE_TRACE ("ACE_SOCK_Acceptor::accept");
-
- int in_blocking_mode = 0;
- if (this->shared_accept_start (timeout,
- restart,
- in_blocking_mode) == -1)
- return -1;
- else
- {
- // On Win32 the third parameter to <accept> must be a NULL
- // pointer if we want to ignore the client's address.
- int *len_ptr = 0;
- int len = 0;
- sockaddr *addr = 0;
-
- if (remote_addr != 0)
- {
- len = remote_addr->get_size ();
- len_ptr = &len;
- addr = (sockaddr *) remote_addr->get_addr ();
- }
-
- do
- new_stream.set_handle (ACE_OS::accept (this->get_handle (),
- addr,
- len_ptr,
- qos_params));
- while (new_stream.get_handle () == ACE_INVALID_HANDLE
- && restart != 0
- && errno == EINTR
- && timeout == 0);
-
- // Reset the size of the addr, which is only necessary for UNIX
- // domain sockets.
- if (new_stream.get_handle () != ACE_INVALID_HANDLE
- && remote_addr != 0)
- remote_addr->set_size (len);
- }
-
- return this->shared_accept_finish (new_stream,
- in_blocking_mode,
- reset_new_handle);
-}
-#endif // ACE_HAS_WINCE
-
-void
-ACE_SOCK_Acceptor::dump (void) const
-{
- ACE_TRACE ("ACE_SOCK_Acceptor::dump");
-}
-
-int
-ACE_SOCK_Acceptor::shared_open (const ACE_Addr &local_sap,
- int protocol_family,
- int backlog)
-{
- ACE_TRACE ("ACE_SOCK_Acceptor::shared_open");
- int error = 0;
-
-#if defined (ACE_HAS_IPV6)
- ACE_ASSERT (protocol_family == PF_INET || protocol_family == PF_INET6);
-
- if (protocol_family == PF_INET6)
- {
- sockaddr_in6 local_inet6_addr;
- ACE_OS::memset (ACE_reinterpret_cast (void *,
- &local_inet6_addr),
- 0,
- sizeof local_inet6_addr);
-
- if (local_sap == ACE_Addr::sap_any)
- {
- local_inet6_addr.sin6_family = AF_INET6;
- local_inet6_addr.sin6_port = 0;
- local_inet6_addr.sin6_addr = in6addr_any;
- }
- else
- local_inet6_addr = *ACE_reinterpret_cast (sockaddr_in6 *,
- local_sap.get_addr ());
-
- // We probably don't need a bind_port written here.
- // There are currently no supported OS's that define
- // ACE_LACKS_WILDCARD_BIND.
- if (ACE_OS::bind (this->get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- &local_inet6_addr),
- sizeof local_inet6_addr) == -1)
- error = 1;
- }
- else
-#endif
- if (protocol_family == PF_INET)
- {
- sockaddr_in local_inet_addr;
- ACE_OS::memset (ACE_reinterpret_cast (void *,
- &local_inet_addr),
- 0,
- sizeof local_inet_addr);
-
- if (local_sap == ACE_Addr::sap_any)
- {
- local_inet_addr.sin_port = 0;
- }
- else
- local_inet_addr = *ACE_reinterpret_cast (sockaddr_in *,
- local_sap.get_addr ());
- if (local_inet_addr.sin_port == 0)
- {
- if (ACE::bind_port (this->get_handle ()) == -1)
- error = 1;
- }
- else if (ACE_OS::bind (this->get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- &local_inet_addr),
- sizeof local_inet_addr) == -1)
- error = 1;
- }
- else if (ACE_OS::bind (this->get_handle (),
- (sockaddr *) local_sap.get_addr (),
- local_sap.get_size ()) == -1)
- error = 1;
-
- if (error != 0
- || ACE_OS::listen (this->get_handle (),
- backlog) == -1)
- {
- error = 1;
- this->close ();
- }
-
- return error ? -1 : 0;
-}
-
-int
-ACE_SOCK_Acceptor::open (const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_Acceptor::open");
-
- if (protocol_family == PF_UNSPEC)
- protocol_family = local_sap.get_type ();
-
- if (ACE_SOCK::open (SOCK_STREAM,
- protocol_family,
- protocol,
- protocolinfo,
- g,
- flags,
- reuse_addr) == -1)
- return -1;
- else
- return this->shared_open (local_sap,
- protocol_family,
- backlog);
-}
-
-ACE_SOCK_Acceptor::ACE_SOCK_Acceptor (const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_Acceptor::ACE_SOCK_Acceptor");
- if (this->open (local_sap,
- protocolinfo,
- g,
- flags,
- reuse_addr,
- protocol_family,
- backlog,
- protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK_Acceptor")));
-}
-
-// General purpose routine for performing server ACE_SOCK creation.
-
-int
-ACE_SOCK_Acceptor::open (const ACE_Addr &local_sap,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_Acceptor::open");
-
- if (local_sap != ACE_Addr::sap_any)
- protocol_family = local_sap.get_type ();
- else if (protocol_family == PF_UNSPEC)
- {
-#if defined (ACE_HAS_IPV6)
- protocol_family = ACE_Sock_Connect::ipv6_enabled () ? PF_INET6 : PF_INET;
-#else
- protocol_family = PF_INET;
-#endif /* ACE_HAS_IPV6 */
- }
-
- if (ACE_SOCK::open (SOCK_STREAM,
- protocol_family,
- protocol,
- reuse_addr) == -1)
- return -1;
- else
- return this->shared_open (local_sap,
- protocol_family,
- backlog);
-}
-
-// General purpose routine for performing server ACE_SOCK creation.
-
-ACE_SOCK_Acceptor::ACE_SOCK_Acceptor (const ACE_Addr &local_sap,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_Acceptor::ACE_SOCK_Acceptor");
- if (this->open (local_sap,
- reuse_addr,
- protocol_family,
- backlog,
- protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK_Acceptor")));
-}
-
-int
-ACE_SOCK_Acceptor::close (void)
-{
- return ACE_SOCK::close ();
-}
diff --git a/ace/SOCK_Acceptor.h b/ace/SOCK_Acceptor.h
deleted file mode 100644
index 9c580b41da7..00000000000
--- a/ace/SOCK_Acceptor.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SOCK_Acceptor.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SOCK_ACCEPTOR_H
-#define ACE_SOCK_ACCEPTOR_H
-#include "ace/pre.h"
-
-#include "ace/SOCK_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Time_Value.h"
-
-/**
- * @class ACE_SOCK_Acceptor
- *
- * @brief Defines a factory that creates new <ACE_Stream>s passively.
- *
- * The <ACE_SOCK_Acceptor> has its own "passive-mode" socket.
- * This serves as a factory to create so-called "data-mode"
- * sockets, which are what the <ACE_SOCK_Stream> encapsulates.
- * Therefore, by inheriting from <ACE_SOCK>, <ACE_SOCK_Acceptor>
- * gets its very own socket.
- */
-class ACE_Export ACE_SOCK_Acceptor : public ACE_SOCK
-{
-public:
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_SOCK_Acceptor (void);
-
- /**
- * Initialize a passive-mode BSD-style acceptor socket (no QoS).
- * <local_sap> is the address that we're going to listen for
- * connections on. If <reuse_addr> is 1 then we'll use the
- * <SO_REUSEADDR> to reuse this address.
- */
- ACE_SOCK_Acceptor (const ACE_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = PF_UNSPEC,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /// Initialize a passive-mode QoS-enabled acceptor socket. Returns 0
- /// on success and -1 on failure.
- ACE_SOCK_Acceptor (const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int protocol_family = PF_UNSPEC,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /**
- * Initialize a passive-mode BSD-style acceptor socket (no QoS).
- * <local_sap> is the address that we're going to listen for
- * connections on. If <reuse_addr> is 1 then we'll use the
- * <SO_REUSEADDR> to reuse this address. Returns 0 on success and
- * -1 on failure.
- */
- int open (const ACE_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = PF_UNSPEC,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /// Initialize a passive-mode QoS-enabled acceptor socket. Returns 0
- /// on success and -1 on failure.
- int open (const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int protocol_family = PF_UNSPEC,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /// Close the socket. Returns 0 on success and -1 on failure.
- int close (void);
-
- /// Default dtor.
- ~ACE_SOCK_Acceptor (void);
-
- // = Passive connection <accept> methods.
- /**
- * Accept a new <ACE_SOCK_Stream> connection. A <timeout> of 0
- * means block forever, a <timeout> of {0, 0} means poll. <restart>
- * == 1 means "restart if interrupted," i.e., if errno == EINTR.
- * Note that <new_stream> inherits the "blocking mode" of <this>
- * <ACE_SOCK_Acceptor>, i.e., if <this> acceptor factory is in
- * non-blocking mode, the <net_stream> will be in non-blocking mode
- * and vice versa.
- */
- int accept (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
-
-#if !defined (ACE_HAS_WINCE)
- /**
- * Accept a new <ACE_SOCK_Stream> connection using the QoS
- * information in <qos_params>. A <timeout> of 0 means block
- * forever, a <timeout> of {0, 0} means poll. <restart> == 1 means
- * "restart if interrupted," i.e., if errno == EINTR. Note that
- * <new_stream> inherits the "blocking mode" of <this>
- * <ACE_SOCK_Acceptor>, i.e., if <this> acceptor factory is in
- * non-blocking mode, the <net_stream> will be in non-blocking mode
- * and vice versa.
- */
- int accept (ACE_SOCK_Stream &new_stream,
- ACE_Accept_QoS_Params qos_params,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
-#endif // ACE_HAS_WINCE
-
- // = Meta-type info
- typedef ACE_INET_Addr PEER_ADDR;
- typedef ACE_SOCK_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Perform operations that must occur before <ACE_OS::accept> is
- /// called.
- int shared_accept_start (ACE_Time_Value *timeout,
- int restart,
- int &in_blocking_mode) const;
-
- /// Perform operations that must occur after <ACE_OS::accept> is
- /// called.
- int shared_accept_finish (ACE_SOCK_Stream new_stream,
- int in_blocking_mode,
- int reset_new_handle) const;
-
- /**
- * This method factors out the common <open> code and is called by
- * both the QoS-enabled <open> method and the BSD-style <open>
- * method.
- */
- int shared_open (const ACE_Addr &local_sap,
- int protocol_family,
- int backlog);
-
-private:
- /// Do not allow this function to percolate up to this interface...
- int get_remote_addr (ACE_Addr &) const;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_Acceptor.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-#endif /* ACE_SOCK_ACCEPTOR_H */
diff --git a/ace/SOCK_Acceptor.i b/ace/SOCK_Acceptor.i
deleted file mode 100644
index 0ba44700809..00000000000
--- a/ace/SOCK_Acceptor.i
+++ /dev/null
@@ -1,12 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SOCK_Acceptor.i
-
-ASYS_INLINE
-ACE_SOCK_Acceptor::~ACE_SOCK_Acceptor (void)
-{
- ACE_TRACE ("ACE_SOCK_Acceptor::~ACE_SOCK_Acceptor");
-}
-
-
diff --git a/ace/SOCK_CODgram.cpp b/ace/SOCK_CODgram.cpp
deleted file mode 100644
index 217257158fe..00000000000
--- a/ace/SOCK_CODgram.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-// SOCK_CODgram.cpp
-// $Id$
-
-#include "ace/SOCK_CODgram.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_CODgram.i"
-#endif
-
-ACE_RCSID(ace, SOCK_CODgram, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_CODgram)
-
-void
-ACE_SOCK_CODgram::dump (void) const
-{
- ACE_TRACE ("ACE_SOCK_CODgram::dump");
-}
-
-// Here's the general-purpose constructor.
-
-ACE_SOCK_CODgram::ACE_SOCK_CODgram (const ACE_Addr &remote, const ACE_Addr &local,
- int protocol_family, int protocol,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK_CODgram::ACE_SOCK_CODgram");
- if (this->open (remote, local,
- protocol_family, protocol, reuse_addr) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_SOCK_CODgram")));
-}
-
-/* This is the general-purpose open routine. Note that it performs
- a different set of functions depending on the LOCAL and REMOTE
- addresses passed to it. Here's the basic logic:
-
- 1. remote == ACE_Addr::sap_any && local == ACE_Addr::sap_any
- if protocol_family == PF_INET then
- bind the local address to a randomly generated port number...
-
- 2. remote == ACE_Addr::sap_any && local != ACE_Addr::sap_any
- we are just binding the local address
- (used primarily by servers)
-
- 3. remote != ACE_Addr::sap_any && local == ACE_Addr::sap_any
- we are connecting to the remote address
- (used primarily by clients)
-
- 4. remote != ACE_Addr::sap_any && local != ACE_Addr::sap_any
- we are binding to the local address
- and connecting to the remote address
-*/
-
-int
-ACE_SOCK_CODgram::open (const ACE_Addr &remote, const ACE_Addr &local,
- int protocol_family, int protocol,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK_CODgram::open");
- if (ACE_SOCK::open (SOCK_DGRAM, protocol_family,
- protocol, reuse_addr) == -1)
- return -1;
- else
- {
- int error = 0;
-
- if (local == ACE_Addr::sap_any && remote == ACE_Addr::sap_any)
- {
- // Assign an arbitrary port number from the transient range!!
-
- if (protocol_family == PF_INET
- && ACE::bind_port (this->get_handle ()) == -1)
- error = 1;
- }
- // We are binding just the local address.
- else if (local != ACE_Addr::sap_any && remote == ACE_Addr::sap_any)
- {
- if (ACE_OS::bind (this->get_handle (), (sockaddr *) local.get_addr (),
- local.get_size ()) == -1)
- error = 1;
- }
- // We are connecting to the remote address.
- else if (local == ACE_Addr::sap_any && remote != ACE_Addr::sap_any)
- {
- if (ACE_OS::connect (this->get_handle (), (sockaddr *) remote.get_addr (),
- remote.get_size ()) == -1)
- error = 1;
- }
- // We are binding to the local address and connecting to the
- // remote addresses.
- else
- {
- if (ACE_OS::bind (this->get_handle (), (sockaddr *) local.get_addr (),
- local.get_size ()) == -1
- || ACE_OS::connect (this->get_handle (), (sockaddr *) remote.get_addr (),
- remote.get_size ()) == -1)
- error = 1;
- }
- if (error)
- {
- this->close ();
- this->set_handle (ACE_INVALID_HANDLE);
- }
- return error ? -1 : 0;
- }
-}
diff --git a/ace/SOCK_CODgram.h b/ace/SOCK_CODgram.h
deleted file mode 100644
index 0e653e4e2d1..00000000000
--- a/ace/SOCK_CODgram.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SOCK_CODgram.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_SOCK_CODGRAM_H
-#define ACE_SOCK_CODGRAM_H
-#include "ace/pre.h"
-
-#include "ace/SOCK_IO.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Addr.h"
-#include "ace/INET_Addr.h"
-
-/**
- * @class ACE_SOCK_CODgram
- *
- * @brief Defines the member functions for the ACE_SOCK connected
- * datagram abstraction.
- */
-class ACE_Export ACE_SOCK_CODgram : public ACE_SOCK_IO
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_SOCK_CODgram (void);
-
- ACE_SOCK_CODgram (const ACE_Addr &remote_sap,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int protocol_family = ACE_PROTOCOL_FAMILY_INET,
- int protocol = 0,
- int reuse_addr = 0);
-
- /// Default dtor.
- ~ACE_SOCK_CODgram (void);
-
- // Initiate a connected dgram.
-
- /// Initiate a connected dgram.
- int open (const ACE_Addr &remote_sap,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int protocol_family = ACE_PROTOCOL_FAMILY_INET,
- int protocol = 0,
- int reuse_addr = 0);
-
- // = Meta-type info.
- typedef ACE_INET_Addr PEER_ADDR;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_CODgram.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_SOCK_CODGRAM_H */
diff --git a/ace/SOCK_CODgram.i b/ace/SOCK_CODgram.i
deleted file mode 100644
index 7dd5b40a1d6..00000000000
--- a/ace/SOCK_CODgram.i
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SOCK_CODgram.i
-
-ASYS_INLINE
-ACE_SOCK_CODgram::ACE_SOCK_CODgram (void)
-{
- ACE_TRACE ("ACE_SOCK_CODgram::ACE_SOCK_CODgram");
-}
-
-ASYS_INLINE
-ACE_SOCK_CODgram::~ACE_SOCK_CODgram (void)
-{
- ACE_TRACE ("ACE_SOCK_CODgram::~ACE_SOCK_CODgram");
-}
-
-
diff --git a/ace/SOCK_Connector.cpp b/ace/SOCK_Connector.cpp
deleted file mode 100644
index cd75d000c7c..00000000000
--- a/ace/SOCK_Connector.cpp
+++ /dev/null
@@ -1,323 +0,0 @@
-// SOCK_Connector.cpp
-// $Id$
-
-#include "ace/SOCK_Connector.h"
-#include "ace/INET_Addr.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_HAS_WINCE)
-#include "ace/OS_QoS.h"
-#endif // ACE_HAS_WINCE
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_Connector.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID(ace, SOCK_Connector, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_Connector)
-
-void
-ACE_SOCK_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_SOCK_Connector::dump");
-}
-
-int
-ACE_SOCK_Connector::shared_open (ACE_SOCK_Stream &new_stream,
- int protocol_family,
- int protocol,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK_Connector::shared_open");
-
- // Only open a new socket if we don't already have a valid handle.
- if (new_stream.get_handle () == ACE_INVALID_HANDLE
- && new_stream.open (SOCK_STREAM,
- protocol_family,
- protocol,
- reuse_addr) == -1)
- return -1;
- else
- return 0;
-}
-
-int
-ACE_SOCK_Connector::shared_open (ACE_SOCK_Stream &new_stream,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK_Connector::shared_open");
-
- // Only open a new socket if we don't already have a valid handle.
- if (new_stream.get_handle () == ACE_INVALID_HANDLE
- && new_stream.open (SOCK_STREAM,
- protocol_family,
- protocol,
- protocolinfo,
- g,
- flags,
- reuse_addr) == -1)
- return -1;
- else
- return 0;
-}
-
-int
-ACE_SOCK_Connector::shared_connect_start (ACE_SOCK_Stream &new_stream,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap)
-{
- ACE_TRACE ("ACE_SOCK_Connector::shared_connect_start");
-
- if (local_sap != ACE_Addr::sap_any)
- {
- sockaddr *laddr = ACE_reinterpret_cast (sockaddr *,
- local_sap.get_addr ());
- int size = local_sap.get_size ();
-
- if (ACE_OS::bind (new_stream.get_handle (),
- laddr,
- size) == -1)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- new_stream.close ();
- return -1;
- }
- }
-
- // Enable non-blocking, if required.
- if (timeout != 0
- && new_stream.enable (ACE_NONBLOCK) == -1)
- return -1;
- else
- return 0;
-}
-
-int
-ACE_SOCK_Connector::shared_connect_finish (ACE_SOCK_Stream &new_stream,
- const ACE_Time_Value *timeout,
- int result)
-{
- ACE_TRACE ("ACE_SOCK_Connector::shared_connect_finish");
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
-
- if (result == -1 && timeout != 0)
- {
- // Check whether the connection is in progress.
- if (error == EINPROGRESS || error == EWOULDBLOCK)
- {
- // This expression checks if we were polling.
- if (timeout->sec () == 0
- && timeout->usec () == 0)
- error = EWOULDBLOCK;
- // Wait synchronously using timeout.
- else if (this->complete (new_stream,
- 0,
- timeout) == -1)
- error = errno;
- else
- return 0;
- }
- }
-
- // EISCONN is treated specially since this routine may be used to
- // check if we are already connected.
- if (result != -1 || error == EISCONN)
- // Start out with non-blocking disabled on the <new_stream>.
- new_stream.disable (ACE_NONBLOCK);
- else if (!(error == EWOULDBLOCK || error == ETIMEDOUT))
- new_stream.close ();
-
- return result;
-}
-
-// Actively connect and produce a new ACE_SOCK_Stream if things go well...
-
-int
-ACE_SOCK_Connector::connect (ACE_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int /* flags */,
- int /* perms */)
-{
- ACE_TRACE ("ACE_SOCK_Connector::connect");
-
- if (this->shared_open (new_stream,
- remote_sap.get_type (),
- 0,
- reuse_addr) == -1)
- return -1;
- else if (this->shared_connect_start (new_stream,
- timeout,
- local_sap) == -1)
- return -1;
-
- int result = ACE_OS::connect (new_stream.get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- remote_sap.get_addr ()),
- remote_sap.get_size ());
-
- return this->shared_connect_finish (new_stream,
- timeout,
- result);
-}
-
-#if !defined (ACE_HAS_WINCE)
-int
-ACE_SOCK_Connector::connect (ACE_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_QoS_Params qos_params,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- ACE_Protocol_Info * protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int /* perms */)
-{
- ACE_TRACE ("ACE_SOCK_Connector::connect");
-
- if (this->shared_open (new_stream,
- remote_sap.get_type (),
- 0,
- protocolinfo,
- g,
- flags,
- reuse_addr) == -1)
- return -1;
- else if (this->shared_connect_start (new_stream,
- timeout,
- local_sap) == -1)
- return -1;
-
- int result = ACE_OS::connect (new_stream.get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- remote_sap.get_addr ()),
- remote_sap.get_size (),
- qos_params);
-
- return this->shared_connect_finish (new_stream,
- timeout,
- result);
-}
-#endif // ACE_HAS_WINCE
-
-// Try to complete a non-blocking connection.
-
-int
-ACE_SOCK_Connector::complete (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_sap,
- const ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_SOCK_Connector::complete");
- ACE_HANDLE h = ACE::handle_timed_complete (new_stream.get_handle (),
- tv);
- // We failed to get connected.
- if (h == ACE_INVALID_HANDLE)
- {
-#if defined (ACE_WIN32)
- // Win32 has a timing problem - if you check to see if the
- // connection has completed too fast, it will fail - so wait
- // <ACE_NON_BLOCKING_BUG_DELAY> microseconds to let it catch up
- // then retry to see if it's a real failure.
- ACE_Time_Value time (0, ACE_NON_BLOCKING_BUG_DELAY);
- ACE_OS::sleep (time);
- h = ACE::handle_timed_complete (new_stream.get_handle (),
- tv);
- if (h == ACE_INVALID_HANDLE)
- {
-#endif /* ACE_WIN32 */
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- new_stream.close ();
- return -1;
-#if defined (ACE_WIN32)
- }
-#endif /* ACE_WIN32 */
- }
-
- if (remote_sap != 0)
- {
- int len = remote_sap->get_size ();
- sockaddr *addr = ACE_reinterpret_cast (sockaddr *,
- remote_sap->get_addr ());
- if (ACE_OS::getpeername (h,
- addr,
- &len) == -1)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- new_stream.close ();
- return -1;
- }
- }
-
- // Start out with non-blocking disabled on the <new_stream>.
- new_stream.disable (ACE_NONBLOCK);
- return 0;
-}
-
-ACE_SOCK_Connector::ACE_SOCK_Connector (ACE_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_SOCK_Connector::ACE_SOCK_Connector");
-
- if (this->connect (new_stream,
- remote_sap,
- timeout,
- local_sap,
- reuse_addr,
- flags,
- perms) == -1
- && timeout != 0
- && !(errno == EWOULDBLOCK || errno == ETIME || errno == ETIMEDOUT))
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK_Connector::ACE_SOCK_Connector")));
-}
-
-#if !defined (ACE_HAS_WINCE)
-ACE_SOCK_Connector::ACE_SOCK_Connector (ACE_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_QoS_Params qos_params,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int perms)
-{
- ACE_TRACE ("ACE_SOCK_Connector::ACE_SOCK_Connector");
-
- if (this->connect (new_stream,
- remote_sap,
- qos_params,
- timeout,
- local_sap,
- protocolinfo,
- g,
- flags,
- reuse_addr,
- perms) == -1
- && timeout != 0
- && !(errno == EWOULDBLOCK || errno == ETIME || errno == ETIMEDOUT))
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK_Connector::ACE_SOCK_Connector")));
-}
-#endif // ACE_HAS_WINCE
diff --git a/ace/SOCK_Connector.h b/ace/SOCK_Connector.h
deleted file mode 100644
index 0c5861d981c..00000000000
--- a/ace/SOCK_Connector.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SOCK_Connector.h
- *
- * $Id$
- *
- * @author Doug Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SOCK_CONNECTOR_H
-#define ACE_SOCK_CONNECTOR_H
-#include "ace/pre.h"
-
-#include "ace/SOCK_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Time_Value.h"
-
-/**
- * @class ACE_SOCK_Connector
- *
- * @brief Defines a factory that actively connects to a remote IP
- * address and TCP port, creating a new @c ACE_SOCK_Stream object.
- *
- * The @c ACE_SOCK_Connector doesn't have a socket of its own,
- * i.e., it simply "borrows" the one from the @c ACE_SOCK_Stream
- * that's being connected. The reason for this is that the
- * underlying socket API doesn't use a factory socket to connect
- * data mode sockets. Therefore, there's no need to inherit
- * @c ACE_SOCK_Connector from @c ACE_SOCK. A nice side-effect of
- * this is that @c ACE_SOCK_Connector objects do not store state so
- * they can be used reentrantly in multithreaded programs.
- */
-class ACE_Export ACE_SOCK_Connector
-{
-public:
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_SOCK_Connector (void);
-
- /**
- * Actively connect to a peer, producing a connected @c ACE_SOCK_Stream
- * object if the connection succeeds.
- *
- * @param new_stream The @c ACE_SOCK_Stream object that will be connected
- * to the peer.
- * @param remote_sap The address that we are trying to connect to.
- * The protocol family of @c remote_sap is used for
- * the connected socket. That is, if @c remote_sap
- * contains an IPv6 address, a socket with family
- * PF_INET6 will be used, else it will be PF_INET.
- * @param timeout Pointer to an @c ACE_Time_Value object with amount
- * of time to wait to connect. If the pointer is 0
- * then the call blocks until the connection attempt
- * is complete, whether it succeeds or fails. If
- * *timeout == {0, 0} then the connection is done
- * using nonblocking mode. In this case, if the
- * connection can't be made immediately, this method
- * returns -1 and errno == EWOULDBLOCK.
- * If *timeout > {0, 0} then this is the maximum amount
- * of time to wait before timing out; if the specified
- * amount of time passes before the connection is made,
- * this method returns -1 and errno == ETIME. Note
- * the difference between this case and when a blocking
- * connect is attmpted that TCP times out - in the latter
- * case, errno will be ETIMEDOUT.
- * @param local_sap (optional) The local address to bind to. If it's
- * the default value of @c ACE_Addr::sap_any then the
- * OS will choose an unused port.
- * @param reuse_addr (optional) If the value is 1, the local address
- * (@c local_sap) is reused, even if it hasn't been
- * cleaned up yet.
- * @param flags Ignored.
- * @param perms Ignored.
- *
- * @return Returns 0 if the connection succeeds. If it fails,
- * -1 is returned and errno contains a specific error
- * code.
- */
- ACE_SOCK_Connector (ACE_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0);
-
-#if !defined (ACE_HAS_WINCE)
- /**
- * Actively connect to a peer, producing a connected @c ACE_SOCK_Stream
- * object if the connection succeeds.
- *
- * @param new_stream The @c ACE_SOCK_Stream object that will be connected
- * to the peer.
- * @param remote_sap The address that we are trying to connect to.
- * The protocol family of @c remote_sap is used for
- * the connected socket. That is, if @c remote_sap
- * contains an IPv6 address, a socket with family
- * PF_INET6 will be used, else it will be PF_INET.
- * @param qos_params Contains QoS parameters that are passed to the
- * IntServ (RSVP) and DiffServ protocols.
- * @see ACE_QoS_Params.
- * @param timeout Pointer to an @c ACE_Time_Value object with amount
- * of time to wait to connect. If the pointer is 0
- * then the call blocks until the connection attempt
- * is complete, whether it succeeds or fails. If
- * *timeout == {0, 0} then the connection is done
- * using nonblocking mode. In this case, if the
- * connection can't be made immediately, this method
- * returns -1 and errno == EWOULDBLOCK.
- * If *timeout > {0, 0} then this is the maximum amount
- * of time to wait before timing out; if the specified
- * amount of time passes before the connection is made,
- * this method returns -1 and errno == ETIME. Note
- * the difference between this case and when a blocking
- * connect is attmpted that TCP times out - in the latter
- * case, errno will be ETIMEDOUT.
- * @param local_sap (optional) The local address to bind to. If it's
- * the default value of @c ACE_Addr::sap_any then the
- * OS will choose an unused port.
- * @param reuse_addr (optional) If the value is 1, the local address
- * (@c local_sap) is reused, even if it hasn't been
- * cleaned up yet.
- * @param flags Ignored.
- * @param perms Ignored.
- *
- * @return Returns 0 if the connection succeeds. If it fails,
- * -1 is returned and errno contains a specific error
- * code.
- */
- ACE_SOCK_Connector (ACE_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_QoS_Params qos_params,
- const ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- ACE_Protocol_Info *protocolinfo = 0,
- ACE_SOCK_GROUP g = 0,
- u_long flags = 0,
- int reuse_addr = 0,
- int perms = 0);
-#endif // ACE_HAS_WINCE
-
- /**
- * Actively connect to a peer, producing a connected @c ACE_SOCK_Stream
- * object if the connection succeeds.
- *
- * @param new_stream The @c ACE_SOCK_Stream object that will be connected
- * to the peer.
- * @param remote_sap The address that we are trying to connect to.
- * The protocol family of @c remote_sap is used for
- * the connected socket. That is, if @c remote_sap
- * contains an IPv6 address, a socket with family
- * PF_INET6 will be used, else it will be PF_INET.
- * @param timeout Pointer to an @c ACE_Time_Value object with amount
- * of time to wait to connect. If the pointer is 0
- * then the call blocks until the connection attempt
- * is complete, whether it succeeds or fails. If
- * *timeout == {0, 0} then the connection is done
- * using nonblocking mode. In this case, if the
- * connection can't be made immediately, this method
- * returns -1 and errno == EWOULDBLOCK.
- * If *timeout > {0, 0} then this is the maximum amount
- * of time to wait before timing out; if the specified
- * amount of time passes before the connection is made,
- * this method returns -1 and errno == ETIME. Note
- * the difference between this case and when a blocking
- * connect is attmpted that TCP times out - in the latter
- * case, errno will be ETIMEDOUT.
- * @param local_sap (optional) The local address to bind to. If it's
- * the default value of @c ACE_Addr::sap_any then the
- * OS will choose an unused port.
- * @param reuse_addr (optional) If the value is 1, the local address
- * (@c local_sap) is reused, even if it hasn't been
- * cleaned up yet.
- * @param flags Ignored.
- * @param perms Ignored.
- *
- * @return Returns 0 if the connection succeeds. If it fails,
- * -1 is returned and errno contains a specific error
- * code.
- */
- int connect (ACE_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0);
-
-#if !defined (ACE_HAS_WINCE)
- /**
- * Actively connect to a peer, producing a connected @c ACE_SOCK_Stream
- * object if the connection succeeds.
- *
- * @param new_stream The @c ACE_SOCK_Stream object that will be connected
- * to the peer.
- * @param remote_sap The address that we are trying to connect to.
- * The protocol family of @c remote_sap is used for
- * the connected socket. That is, if @c remote_sap
- * contains an IPv6 address, a socket with family
- * PF_INET6 will be used, else it will be PF_INET.
- * @param qos_params Contains QoS parameters that are passed to the
- * IntServ (RSVP) and DiffServ protocols.
- * @see ACE_QoS_Params.
- * @param timeout Pointer to an @c ACE_Time_Value object with amount
- * of time to wait to connect. If the pointer is 0
- * then the call blocks until the connection attempt
- * is complete, whether it succeeds or fails. If
- * *timeout == {0, 0} then the connection is done
- * using nonblocking mode. In this case, if the
- * connection can't be made immediately, this method
- * returns -1 and errno == EWOULDBLOCK.
- * If *timeout > {0, 0} then this is the maximum amount
- * of time to wait before timing out; if the specified
- * amount of time passes before the connection is made,
- * this method returns -1 and errno == ETIME. Note
- * the difference between this case and when a blocking
- * connect is attmpted that TCP times out - in the latter
- * case, errno will be ETIMEDOUT.
- * @param local_sap (optional) The local address to bind to. If it's
- * the default value of @c ACE_Addr::sap_any then the
- * OS will choose an unused port.
- * @param reuse_addr (optional) If the value is 1, the local address
- * (@c local_sap) is reused, even if it hasn't been
- * cleaned up yet.
- * @param flags Ignored.
- * @param perms Ignored.
- *
- * @return Returns 0 if the connection succeeds. If it fails,
- * -1 is returned and errno contains a specific error
- * code.
- */
- int connect (ACE_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_QoS_Params qos_params,
- const ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- ACE_Protocol_Info *protocolinfo = 0,
- ACE_SOCK_GROUP g = 0,
- u_long flags = 0,
- int reuse_addr = 0,
- int perms = 0);
-#endif // ACE_HAS_WINCE
-
- /// Default dtor.
- ~ACE_SOCK_Connector (void);
-
- // = Completion routine.
- /**
- * Try to complete a nonblocking connection that was begun by a
- * previous call to connect with a {0, 0} ACE_Time_Value timeout.
- * @see connect().
- *
- * @param new_stream The @c ACE_SOCK_Stream object that will be connected
- * to the peer.
- * @param remote_sap If non-0, it points to the @c ACE_INET_Addr object
- * that will contain the address of the connected peer.
- * @param timeout Same values and return value possibilites as for
- * connect(). @see connect().
- */
- int complete (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_sap = 0,
- const ACE_Time_Value *timeout = 0);
-
- /// Resets any event associations on this handle
- int reset_new_handle (ACE_HANDLE handle);
-
- // = Meta-type info
- typedef ACE_INET_Addr PEER_ADDR;
- typedef ACE_SOCK_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Perform operations that ensure the socket is opened using
- /// BSD-style semantics (no QoS).
- int shared_open (ACE_SOCK_Stream &new_stream,
- int protocol_family,
- int protocol,
- int reuse_addr);
-
- /// Perform operations that ensure the socket is opened using
- /// QoS-enabled semantics.
- int shared_open (ACE_SOCK_Stream &new_stream,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr);
-
- /// Perform operations that must be called before <ACE_OS::connect>.
- int shared_connect_start (ACE_SOCK_Stream &new_stream,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap);
-
- /// Perform operations that must be called after <ACE_OS::connect>.
- int shared_connect_finish (ACE_SOCK_Stream &new_stream,
- const ACE_Time_Value *timeout,
- int result);
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_Connector.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_SOCK_CONNECTOR_H */
diff --git a/ace/SOCK_Connector.i b/ace/SOCK_Connector.i
deleted file mode 100644
index 35108219086..00000000000
--- a/ace/SOCK_Connector.i
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SOCK_Connector.i
-
-// This constructor is used by a client when it wants to connect to
-// the specified REMOTE_SAP address using a blocking open.
-
-ASYS_INLINE
-ACE_SOCK_Connector::~ACE_SOCK_Connector (void)
-{
- ACE_TRACE ("ACE_SOCK_Connector::~ACE_SOCK_Connector");
-}
-
-// Do-nothing constructor...
-
-ASYS_INLINE
-ACE_SOCK_Connector::ACE_SOCK_Connector (void)
-{
- ACE_TRACE ("ACE_SOCK_Connector::ACE_SOCK_Connector");
-}
-
-ASYS_INLINE int
-ACE_SOCK_Connector::reset_new_handle (ACE_HANDLE handle)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- // Reset the event association
- return ::WSAEventSelect ((SOCKET) handle,
- 0,
- 0);
-#else /* !defined ACE_HAS_WINSOCK2 */
- ACE_UNUSED_ARG (handle);
- return 0;
-#endif /* ACE_WIN32 */
-}
diff --git a/ace/SOCK_Dgram.cpp b/ace/SOCK_Dgram.cpp
deleted file mode 100644
index d9814ed508b..00000000000
--- a/ace/SOCK_Dgram.cpp
+++ /dev/null
@@ -1,542 +0,0 @@
-#include "ace/SOCK_Dgram.h"
-#include "ace/Handle_Set.h"
-#include "ace/Synch.h"
-#include "ace/Log_Msg.h"
-#include "ace/INET_Addr.h"
-#include "ace/ACE.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_Dgram.i"
-#endif
-
-ACE_RCSID (ace,
- SOCK_Dgram,
- "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE (ACE_SOCK_Dgram)
-
-void
-ACE_SOCK_Dgram::dump (void) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram::dump");
-}
-
-// Allows a client to read from a socket without having to provide a
-// buffer to read. This method determines how much data is in the
-// socket, allocates a buffer of this size, reads in the data, and
-// returns the number of bytes read.
-
-ssize_t
-ACE_SOCK_Dgram::recv (iovec *io_vec,
- ACE_Addr &addr,
- int flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram::recv");
-#if defined (FIONREAD)
- ACE_Handle_Set handle_set;
- handle_set.reset ();
- handle_set.set_bit (this->get_handle ());
-
- // Check the status of the current socket to make sure there's data
- // to recv (or time out).
- int select_width;
-# if defined (ACE_WIN64)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- select_width = 0;
-# else
- select_width = int (this->get_handle ()) + 1;
-# endif /* ACE_WIN64 */
- switch (ACE_OS::select (select_width,
- handle_set,
- 0, 0,
- timeout))
- {
- case -1:
- return -1;
- /* NOTREACHED */
- case 0:
- errno = ETIME;
- return -1;
- /* NOTREACHED */
- default:
- // Goes fine, fallthrough to get data
- break;
- }
-
- sockaddr *saddr = (sockaddr *) addr.get_addr ();
- int addr_len = addr.get_size ();
- u_long inlen;
-
- if (ACE_OS::ioctl (this->get_handle (),
- FIONREAD, (u_long *) &inlen) == -1)
- return -1;
- else if (inlen > 0)
- {
- ACE_NEW_RETURN (io_vec->iov_base,
- char[inlen],
- -1);
- io_vec->iov_len = ACE_OS::recvfrom (this->get_handle (),
- (char *) io_vec->iov_base,
- inlen,
- flags,
- (sockaddr *) saddr,
- &addr_len);
- addr.set_size (addr_len);
- return io_vec->iov_len;
- }
- else
- return 0;
-#else
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (addr);
- ACE_UNUSED_ARG (io_vec);
- ACE_UNUSED_ARG (timeout);
- ACE_NOTSUP_RETURN (-1);
-#endif /* FIONREAD */
-}
-
-// Here's the shared open function. Note that if we are using the
-// PF_INET protocol family and the address of LOCAL == the address of
-// the special variable SAP_ANY then we are going to arbitrarily bind
-// to a portnumber.
-
-int
-ACE_SOCK_Dgram::shared_open (const ACE_Addr &local,
- int protocol_family)
-{
- ACE_TRACE ("ACE_SOCK_Dgram::shared_open");
- int error = 0;
-
- if (local == ACE_Addr::sap_any)
- {
- if (protocol_family == PF_INET
-#if defined (ACE_HAS_IPV6)
- || protocol_family == PF_INET6
-#endif /* ACE_HAS_IPV6 */
- )
- {
- if (ACE::bind_port (this->get_handle ()) == -1)
- error = 1;
- }
- }
- else if (ACE_OS::bind (this->get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- local.get_addr ()),
- local.get_size ()) == -1)
- error = 1;
-
- if (error != 0)
- this->close ();
-
- return error ? -1 : 0;
-}
-
-int
-ACE_SOCK_Dgram::open (const ACE_Addr &local,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr)
-{
- if (ACE_SOCK::open (SOCK_DGRAM,
- protocol_family,
- protocol,
- protocolinfo,
- g,
- flags,
- reuse_addr) == -1)
- return -1;
- else if (this->shared_open (local,
- protocol_family) == -1)
- return -1;
- else
- return 0;
-}
-
-// Here's the general-purpose open routine.
-
-int
-ACE_SOCK_Dgram::open (const ACE_Addr &local,
- int protocol_family,
- int protocol,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK_Dgram::open");
-
- if (local != ACE_Addr::sap_any)
- protocol_family = local.get_type ();
- else if (protocol_family == PF_UNSPEC)
- {
-#if defined (ACE_HAS_IPV6)
- protocol_family = ACE_Sock_Connect::ipv6_enabled () ? PF_INET6 : PF_INET;
-#else
- protocol_family = PF_INET;
-#endif /* ACE_HAS_IPV6 */
- }
-
- if (ACE_SOCK::open (SOCK_DGRAM,
- protocol_family,
- protocol,
- reuse_addr) == -1)
- return -1;
- else
- return this->shared_open (local,
- protocol_family);
-}
-
-// Here's the general-purpose constructor used by a connectionless
-// datagram ``server''...
-
-ACE_SOCK_Dgram::ACE_SOCK_Dgram (const ACE_Addr &local,
- int protocol_family,
- int protocol,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK_Dgram::ACE_SOCK_Dgram");
-
- if (this->open (local,
- protocol_family,
- protocol,
- reuse_addr) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK_Dgram")));
-}
-
-ACE_SOCK_Dgram::ACE_SOCK_Dgram (const ACE_Addr &local,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK_Dgram::ACE_SOCK_Dgram");
- if (this->open (local,
- protocol_family,
- protocol,
- protocolinfo,
- g,
- flags,
- reuse_addr) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK_Dgram")));
-}
-
-#if defined (ACE_HAS_MSG)
-// Send an iovec of size N to ADDR as a datagram (connectionless
-// version).
-
-ssize_t
-ACE_SOCK_Dgram::send (const iovec iov[],
- int n,
- const ACE_Addr &addr,
- int flags) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram::send");
- msghdr send_msg;
-
- send_msg.msg_iov = (iovec *) iov;
- send_msg.msg_iovlen = n;
-#if defined (ACE_HAS_SOCKADDR_MSG_NAME)
- send_msg.msg_name = (struct sockaddr *) addr.get_addr ();
-#else
- send_msg.msg_name = (char *) addr.get_addr ();
-#endif /* ACE_HAS_SOCKADDR_MSG_NAME */
- send_msg.msg_namelen = addr.get_size ();
-
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- send_msg.msg_control = 0;
- send_msg.msg_controllen = 0;
- send_msg.msg_flags = 0;
-#else
- send_msg.msg_accrights = 0;
- send_msg.msg_accrightslen = 0;
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
-
- return ACE_OS::sendmsg (this->get_handle (),
- &send_msg,
- flags);
-}
-
-// Recv an iovec of size N to ADDR as a datagram (connectionless
-// version).
-
-ssize_t
-ACE_SOCK_Dgram::recv (iovec iov[],
- int n,
- ACE_Addr &addr,
- int flags) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram::recv");
- msghdr recv_msg;
-
- recv_msg.msg_iov = (iovec *) iov;
- recv_msg.msg_iovlen = n;
-#if defined (ACE_HAS_SOCKADDR_MSG_NAME)
- recv_msg.msg_name = (struct sockaddr *) addr.get_addr ();
-#else
- recv_msg.msg_name = (char *) addr.get_addr ();
-#endif /* ACE_HAS_SOCKADDR_MSG_NAME */
- recv_msg.msg_namelen = addr.get_size ();
-
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- recv_msg.msg_control = 0 ;
- recv_msg.msg_controllen = 0 ;
-#else
- recv_msg.msg_accrights = 0;
- recv_msg.msg_accrightslen = 0;
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
-
- ssize_t status = ACE_OS::recvmsg (this->get_handle (),
- &recv_msg,
- flags);
- addr.set_size (recv_msg.msg_namelen);
- return status;
-}
-
-#else /* ACE_HAS_MSG */
-
-// Send an iovec of size N to ADDR as a datagram (connectionless
-// version).
-
-ssize_t
-ACE_SOCK_Dgram::send (const iovec iov[],
- int n,
- const ACE_Addr &addr,
- int flags) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram::send");
-
- size_t length = 0;
- int i;
-
- // Determine the total length of all the buffers in <iov>.
- for (i = 0; i < n; i++)
-#if ! (defined(__BORLANDC__) && (__BORLANDC__ >= 0x0530))
- // The iov_len is unsigned in Borland. If we go ahead and try the
- // if, it will emit a warning.
- if (iov[i].iov_len < 0)
- return -1;
- else
-#endif
- length += iov[i].iov_len;
-
- char *buf;
-
-#if defined (ACE_HAS_ALLOCA)
- buf = alloca (length);
-#else
- ACE_NEW_RETURN (buf,
- char[length],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- char *ptr = buf;
-
- for (i = 0; i < n; i++)
- {
- ACE_OS::memcpy (ptr, iov[i].iov_base, iov[i].iov_len);
- ptr += iov[i].iov_len;
- }
-
- ssize_t result = ACE_SOCK_Dgram::send (buf, length, addr, flags);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] buf;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- return result;
-}
-
-// Recv an iovec of size N to ADDR as a datagram (connectionless
-// version).
-
-ssize_t
-ACE_SOCK_Dgram::recv (iovec iov[],
- int n,
- ACE_Addr &addr,
- int flags) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram::recv");
-
- ssize_t length = 0;
- int i;
-
- for (i = 0; i < n; i++)
-#if ! (defined(__BORLANDC__) && (__BORLANDC__ >= 0x0530))
- // The iov_len is unsigned in Borland. If we go ahead and try the
- // if, it will emit a warning.
- if (iov[i].iov_len < 0)
- return -1;
- else
-#endif
- length += iov[i].iov_len;
-
- char *buf;
-
-#if defined (ACE_HAS_ALLOCA)
- buf = alloca (length);
-#else
- ACE_NEW_RETURN (buf,
- char[length],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- length = ACE_SOCK_Dgram::recv (buf, length, addr, flags);
-
- if (length != -1)
- {
- char *ptr = buf;
- int copyn = length;
-
- for (i = 0;
- i < n && copyn > 0;
- i++)
- {
- ACE_OS::memcpy (iov[i].iov_base, ptr,
- // iov_len is int on some platforms, size_t on others
- copyn > (int) iov[i].iov_len
- ? (size_t) iov[i].iov_len
- : (size_t) copyn);
- ptr += iov[i].iov_len;
- copyn -= iov[i].iov_len;
- }
- }
-
-#if !defined (ACE_HAS_ALLOCA)
- delete [] buf;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- return length;
-}
-
-#endif /* ACE_HAS_MSG */
-
-ssize_t
-ACE_SOCK_Dgram::recv (void *buf,
- size_t n,
- ACE_Addr &addr,
- int flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_Handle_Set handle_set;
- handle_set.reset ();
- handle_set.set_bit (this->get_handle ());
-
- // Check the status of the current socket.
- int select_width;
-#if defined (ACE_WIN64)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- select_width = 0;
-#else
- select_width = int (this->get_handle ()) + 1;
-#endif /* ACE_WIN64 */
- switch (ACE_OS::select (select_width,
- handle_set,
- 0,
- 0,
- timeout))
- {
- case -1:
- return -1;
- /* NOTREACHED */
- case 0:
- errno = ETIME;
- return -1;
- /* NOTREACHED */
- default:
- // Goes fine, call <recv> to get data
- return this->recv (buf, n, addr, flags);
- }
-}
-
-ssize_t
-ACE_SOCK_Dgram::send (const void *buf,
- size_t n,
- const ACE_Addr &addr,
- int flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_Handle_Set handle_set;
- handle_set.reset ();
- handle_set.set_bit (this->get_handle ());
-
- // Check the status of the current socket.
- int select_width;
-#if defined (ACE_WIN64)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- select_width = 0;
-#else
- select_width = int (this->get_handle ()) + 1;
-#endif /* ACE_WIN64 */
- switch (ACE_OS::select (select_width,
- 0,
- handle_set,
- 0,
- timeout))
- {
- case -1:
- return -1;
- /* NOTREACHED */
- case 0:
- errno = ETIME;
- return -1;
- /* NOTREACHED */
- default:
- // Goes fine, call <send> to transmit the data.
- return this->send (buf, n, addr, flags);
- }
-}
-
-void
-ACE_SOCK_Dgram::set_nic (const char *option_value)
-{
- /* The first step would be to get the interface address for the
- nic_name specified */
- ip_mreq multicast_address;
- ACE_INET_Addr mcast_addr;
-#if defined (ACE_WIN32)
- // This port number is not necessary, just convenient
- ACE_INET_Addr interface_addr;
- if (interface_addr.set (mcast_addr.get_port_number (),
- option_value) == -1)
- return;
- multicast_address.imr_interface.s_addr =
- htonl (interface_addr.get_ip_address ());
-#else
- ifreq if_address;
-
-#if defined (ACE_PSOS)
- // Look up the interface by number, not name.
- if_address.ifr_ifno = ACE_OS::atoi (option_value);
-#else
- ACE_OS::strcpy (if_address.ifr_name, option_value);
-#endif /* defined (ACE_PSOS) */
-
- if (ACE_OS::ioctl (this->get_handle (),
- SIOCGIFADDR,
- &if_address) == -1)
- return;
-
- /* Cast this into the required format */
- sockaddr_in *socket_address;
- socket_address = ACE_reinterpret_cast(sockaddr_in *,
- &if_address.ifr_addr);
- multicast_address.imr_interface.s_addr = socket_address->sin_addr.s_addr;
-#endif /* ACE_WIN32 */
-
- /*
- * Now. I got the interface address for the 'nic' specified.
- * Use that to set the nic option.
- */
-
- this->ACE_SOCK::set_option (IPPROTO_IP,
- IP_MULTICAST_IF,
- &multicast_address.imr_interface.s_addr,
- sizeof (struct in_addr));
-}
diff --git a/ace/SOCK_Dgram.h b/ace/SOCK_Dgram.h
deleted file mode 100644
index b8a6af6a1bc..00000000000
--- a/ace/SOCK_Dgram.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SOCK_Dgram.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_SOCK_DGRAM_H
-#define ACE_SOCK_DGRAM_H
-#include "ace/pre.h"
-
-#include "ace/SOCK.h"
-#include "ace/INET_Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Addr.h"
-
-/**
- * @class ACE_SOCK_Dgram
- *
- * @brief Defines the member functions for the ACE_SOCK datagram
- * abstraction.
- */
-class ACE_Export ACE_SOCK_Dgram : public ACE_SOCK
-{
-public:
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_SOCK_Dgram (void);
-
- /// This is a BSD-style method (i.e., no QoS) for initiating a socket
- /// dgram that will accept datagrams at the <local> address.
- ACE_SOCK_Dgram (const ACE_Addr &local,
- int protocol_family = ACE_PROTOCOL_FAMILY_INET,
- int protocol = 0,
- int reuse_addr = 0);
-
- /**
- * This is a QoS-enabed method for initiating a socket dgram that
- * will accept datagrams at the <local> address. The <qos_params>
- * are passed to <ACE_OS::join_leaf>.
- */
- ACE_SOCK_Dgram (const ACE_Addr &local,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g = 0,
- u_long flags = 0,
- int reuse_addr = 0);
-
- /// This is a BSD-style method (i.e., no QoS) for initiating a socket
- /// dgram that will accept datagrams at the <local> address.
- int open (const ACE_Addr &local,
- int protocol_family = ACE_PROTOCOL_FAMILY_INET,
- int protocol = 0,
- int reuse_addr = 0);
-
- /**
- * This is a QoS-enabed method for initiating a socket dgram that
- * will accept datagrams at the <local> address. The <qos_params>
- * are passed to <ACE_OS::join_leaf>.
- */
- int open (const ACE_Addr &local,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g = 0,
- u_long flags = 0,
- int reuse_addr = 0);
-
- /// Default dtor.
- ~ACE_SOCK_Dgram (void);
-
- // = Data transfer routines.
- /// Send an <n> byte <buf> to the datagram socket (uses <sendto(3)>).
- ssize_t send (const void *buf,
- size_t n,
- const ACE_Addr &addr,
- int flags = 0) const;
-
- /// Receive an <n> byte <buf> from the datagram socket (uses
- /// <recvfrom(3)>).
- ssize_t recv (void *buf,
- size_t n,
- ACE_Addr &addr,
- int flags = 0) const;
-
- /**
- * Allows a client to read from a socket without having to provide a
- * buffer to read. This method determines how much data is in the
- * socket, allocates a buffer of this size, reads in the data, and
- * returns the number of bytes read. The caller is responsible for
- * deleting the member in the <iov_base> field of <io_vec> using the
- * ``delete []'' syntax.
- */
- ssize_t recv (iovec *io_vec,
- ACE_Addr &addr,
- int flags = 0,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Send an <iovec> of size <n> to the datagram socket (uses
- /// <sendmsg(3)>).
- ssize_t send (const iovec iov[],
- int n,
- const ACE_Addr &addr,
- int flags = 0) const;
-
- /// Recv an <iovec> of size <n> to the datagram socket (uses
- /// <recvmsg(3)>).
- ssize_t recv (iovec iov[],
- int n,
- ACE_Addr &addr,
- int flags = 0) const;
-
- /**
- * Wait up to <timeout> amount of time to receive a datagram into
- * <buf>. The <ACE_Time_Value> indicates how long to blocking
- * trying to receive. If <timeout> == 0, the caller will block
- * until action is possible, else will wait until the relative time
- * specified in *<timeout> elapses). If <recv> times out a -1 is
- * returned with <errno == ETIME>. If it succeeds the number of
- * bytes received is returned.
- */
- ssize_t recv (void *buf,
- size_t n,
- ACE_Addr &addr,
- int flags,
- const ACE_Time_Value *timeout) const;
-
- /**
- * Wait up to <timeout> amount of time to send a datagram to
- * <buf>. The <ACE_Time_Value> indicates how long to blocking
- * trying to receive. If <timeout> == 0, the caller will block
- * until action is possible, else will wait until the relative time
- * specified in *<timeout> elapses). If <send> times out a -1 is
- * returned with <errno == ETIME>. If it succeeds the number of
- * bytes sent is returned.
- */
- ssize_t send (const void *buf,
- size_t n,
- const ACE_Addr &addr,
- int flags,
- const ACE_Time_Value *timeout) const;
-
- /// Send <buffer_count> worth of <buffers> to <addr> using overlapped
- /// I/O (uses <WSASendTo>). Returns 0 on success.
- ssize_t send (const iovec buffers[],
- int buffer_count,
- size_t &number_of_bytes_sent,
- int flags,
- const ACE_Addr &addr,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func) const;
-
- /// Recv <buffer_count> worth of <buffers> from <addr> using
- /// overlapped I/O (uses <WSARecvFrom>). Returns 0 on success.
- ssize_t recv (iovec buffers[],
- int buffer_count,
- size_t &number_of_bytes_recvd,
- int &flags,
- ACE_Addr &addr,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func) const;
-
- /// Send an <n> byte <buf> to the datagram socket (uses <WSASendTo>).
- ssize_t send (const void *buf,
- size_t n,
- const ACE_Addr &addr,
- int flags,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func) const;
-
- /// Receive an <n> byte <buf> from the datagram socket (uses
- /// <WSARecvFrom>).
- ssize_t recv (void *buf,
- size_t n,
- ACE_Addr &addr,
- int flags,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func) const;
-
- // = Meta-type info.
- typedef ACE_INET_Addr PEER_ADDR;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- void set_nic (const char *option_value);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Open is shared by this and by <LSOCK_Dgram>.
- int shared_open (const ACE_Addr &local,
- int protocol_family);
-
-private:
- /// Do not allow this function to percolate up to this interface...
- int get_remote_addr (ACE_Addr &) const;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_Dgram.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_SOCK_DGRAM_H */
diff --git a/ace/SOCK_Dgram.i b/ace/SOCK_Dgram.i
deleted file mode 100644
index 6f5ca45bf27..00000000000
--- a/ace/SOCK_Dgram.i
+++ /dev/null
@@ -1,158 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SOCK_Dgram.i
-
-// Here's the simple-minded constructor.
-
-ASYS_INLINE
-ACE_SOCK_Dgram::ACE_SOCK_Dgram (void)
-{
- ACE_TRACE ("ACE_SOCK_Dgram::ACE_SOCK_Dgram");
-}
-
-ASYS_INLINE
-ACE_SOCK_Dgram::~ACE_SOCK_Dgram (void)
-{
- ACE_TRACE ("ACE_SOCK_Dgram::~ACE_SOCK_Dgram");
-}
-
-// <sendto> an N byte datagram to <addr> (connectionless version).
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Dgram::send (const void *buf,
- size_t n,
- const ACE_Addr &addr,
- int flags) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram::send");
- sockaddr *saddr = (sockaddr *) addr.get_addr ();
- int len = addr.get_size ();
- return ACE_OS::sendto (this->get_handle (),
- (const char *) buf,
- n,
- flags,
- (struct sockaddr *) saddr,
- len);
-}
-
-// <recvfrom> an n byte datagram (connectionless version).
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Dgram::recv (void *buf,
- size_t n,
- ACE_Addr &addr,
- int flags) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram::recv");
- sockaddr *saddr = (sockaddr *) addr.get_addr ();
- int addr_len = addr.get_size ();
-
- ssize_t status = ACE_OS::recvfrom (this->get_handle (),
- (char *) buf,
- n,
- flags,
- (sockaddr *) saddr,
- &addr_len);
- addr.set_size (addr_len);
- return status;
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Dgram::send (const iovec buffers[],
- int buffer_count,
- size_t &number_of_bytes_sent,
- int flags,
- const ACE_Addr &addr,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram::send");
- sockaddr *saddr = (sockaddr *) addr.get_addr ();
- int len = addr.get_size ();
- return ACE_OS::sendto (this->get_handle (),
- buffers,
- buffer_count,
- number_of_bytes_sent,
- flags,
- (const sockaddr *) saddr,
- len,
- overlapped,
- func);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Dgram::recv (iovec buffers[],
- int buffer_count,
- size_t &number_of_bytes_recvd,
- int &flags,
- ACE_Addr &addr,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram::recv");
- sockaddr *saddr = (sockaddr *) addr.get_addr ();
- int addr_len = addr.get_size ();
-
- ssize_t status = ACE_OS::recvfrom (this->get_handle (),
- buffers,
- buffer_count,
- number_of_bytes_recvd,
- flags,
- (sockaddr *) saddr,
- &addr_len,
- overlapped,
- func);
- addr.set_size (addr_len);
- return status;
-}
-
-// <sendto> an N byte datagram to <addr> (connectionless version).
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Dgram::send (const void *buf,
- size_t n,
- const ACE_Addr &addr,
- int flags,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram::send");
-
- iovec buffer[1];
- buffer[0].iov_len = ACE_static_cast (u_long, n); // Betting on < 4G
- buffer[0].iov_base = (char *) buf;
- size_t number_of_bytes_sent = 0;
- return this->send (buffer,
- 1,
- number_of_bytes_sent,
- flags,
- addr,
- overlapped,
- func);
-}
-
-// <recvfrom> an n byte datagram (connectionless version).
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Dgram::recv (void *buf,
- size_t n,
- ACE_Addr &addr,
- int flags,
- ACE_OVERLAPPED *overlapped,
- ACE_OVERLAPPED_COMPLETION_FUNC func) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram::recv");
-
- iovec buffer[1];
- buffer[0].iov_len = ACE_static_cast (u_long, n); // Betting on < 4G
- buffer[0].iov_base = (char *) buf;
- size_t number_of_bytes_recvd = 0;
- return this->recv (buffer,
- 1,
- number_of_bytes_recvd,
- flags,
- addr,
- overlapped,
- func);
-}
diff --git a/ace/SOCK_Dgram_Bcast.cpp b/ace/SOCK_Dgram_Bcast.cpp
deleted file mode 100644
index 107344e657f..00000000000
--- a/ace/SOCK_Dgram_Bcast.cpp
+++ /dev/null
@@ -1,334 +0,0 @@
-// $Id$
-
-#include "ace/SOCK_Dgram_Bcast.h"
-#include "ace/Log_Msg.h"
-#include "ace/ACE.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_Dgram_Bcast.i"
-#endif
-
-ACE_RCSID(ace, SOCK_Dgram_Bcast, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_Dgram_Bcast)
-
-ACE_Bcast_Node::ACE_Bcast_Node (ACE_INET_Addr &addr,
- ACE_Bcast_Node *next)
- : bcast_addr_ (addr),
- next_ (next)
-{
- ACE_TRACE ("ACE_Bcast_Node::ACE_Bcast_Node");
-}
-
-void
-ACE_SOCK_Dgram_Bcast::dump (void) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Bcast::dump");
-}
-
-// Close up and release resources.
-
-int
-ACE_SOCK_Dgram_Bcast::close (void)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Bcast::close");
-
- ACE_Bcast_Node *temp = this->if_list_;
-
- // Release the dynamically allocated memory.
-
- while (temp != 0)
- {
- ACE_Bcast_Node *hold = temp->next_;
- delete temp;
- temp = hold;
- }
-
- // Shut down the descriptor.
- return ACE_SOCK::close ();
-}
-
-// Here's the simple-minded constructor.
-
-ACE_SOCK_Dgram_Bcast::ACE_SOCK_Dgram_Bcast (void)
- : if_list_ (0)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Bcast::ACE_SOCK_Dgram_Bcast");
-}
-
-// Here's the general-purpose constructor used by a connectionless
-// datagram ``server''...
-
-ACE_SOCK_Dgram_Bcast::ACE_SOCK_Dgram_Bcast (const ACE_Addr &local,
- int protocol_family,
- int protocol,
- int reuse_addr,
- const ACE_TCHAR *host_name)
- : ACE_SOCK_Dgram (local, protocol_family, protocol, reuse_addr),
- if_list_ (0)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Bcast::ACE_SOCK_Dgram_Bcast");
-
- if (this->mk_broadcast (host_name) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK_Dgram_Bcast")));
-}
-
-// Here's the general-purpose open routine.
-
-int
-ACE_SOCK_Dgram_Bcast::open (const ACE_Addr &local,
- int protocol_family,
- int protocol,
- int reuse_addr,
- const ACE_TCHAR *host_name)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Bcast::open");
-
- if (this->ACE_SOCK_Dgram::open (local, protocol_family,
- protocol, reuse_addr) == -1)
- return -1;
-
- return this->mk_broadcast (host_name);
-}
-
-// Make broadcast available for Datagram socket.
-
-int
-ACE_SOCK_Dgram_Bcast::mk_broadcast (const ACE_TCHAR *host_name)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Bcast::mk_broadcast");
-
- int one = 1;
-
- if (ACE_OS::setsockopt (this->get_handle (),
- SOL_SOCKET,
- SO_BROADCAST,
- (char *) &one,
- sizeof one) == -1)
- return -1;
-
-#if !defined (ACE_WIN32)
- ACE_HANDLE s = this->get_handle ();
-
- char buf[BUFSIZ];
- struct ifconf ifc;
-
- ifc.ifc_len = sizeof buf;
- ifc.ifc_buf = buf;
-
- // Get interface structure and initialize the addresses using UNIX
- // techniques.
- if (ACE_OS::ioctl (s,
- SIOCGIFCONF,
- (char *) &ifc) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
- "ACE_SOCK_Dgram_Bcast::mk_broadcast: ioctl (get interface configuration)"),
- ACE_INVALID_HANDLE);
-
- struct ifreq *ifr = ifc.ifc_req;
-
- struct sockaddr_in host_addr;
-
- //Get host ip address
- if (host_name)
- {
- hostent *hp = ACE_OS::gethostbyname (host_name);
-
- if (hp == 0)
- return -1;
- else
-#if defined(_UNICOS)
- {
- ACE_UINT64 haddr; // a place to put the address
- char * haddrp = (char *) &haddr; // convert to char pointer
- ACE_OS::memcpy(haddrp,(char *) hp->h_addr,hp->h_length);
- host_addr.sin_addr.s_addr = haddr;
- }
-#else /* ! _UNICOS */
- ACE_OS::memcpy ((char *) &host_addr.sin_addr.s_addr,
- (char *) hp->h_addr,
- hp->h_length);
-#endif /* ! _UNICOS */
- }
-
- for (int n = ifc.ifc_len / sizeof (struct ifreq) ; n > 0;
-#if !defined(CHORUS_4) && !defined(AIX)
- n--, ifr++)
-#else
- n--,
- ((ifr->ifr_addr.sa_len <= sizeof (struct sockaddr)) ?
- ifr++ :
- ifr = (struct ifreq *)
- (ifr->ifr_addr.sa_len + (caddr_t) &ifr->ifr_addr)))
-#endif /* CHORUS_4 */
- {
- // Compare host ip address with interface ip address.
- if (host_name)
- {
- struct sockaddr_in if_addr;
-
- ACE_OS::memcpy (&if_addr,
- &ifr->ifr_addr,
- sizeof if_addr);
-
- if (host_addr.sin_addr.s_addr != if_addr.sin_addr.s_addr)
- continue;
- }
-
- if (ifr->ifr_addr.sa_family != AF_INET)
- {
- // Note that some systems seem to generate 0 (AF_UNDEF) for
- // the sa_family, even when there are no errors! Thus, we
- // only print an error if this is not the case, or if we're
- // in "debugging" mode.
- if (ifr->ifr_addr.sa_family != 0
- || ACE::debug () > 0)
- ACE_DEBUG ((LM_DEBUG,
- "warning %p: sa_family: %d\n",
- "ACE_SOCK_Dgram_Bcast::mk_broadcast: Not AF_INET",
- ifr->ifr_addr.sa_family));
- continue;
- }
-
- struct ifreq flags = *ifr;
- struct ifreq if_req = *ifr;
-
- if (ACE_OS::ioctl (s,
- SIOCGIFFLAGS,
- (char *) &flags) == -1)
- {
- ACE_ERROR ((LM_ERROR, "%p\n",
- "ACE_SOCK_Dgram_Bcast::mk_broadcast: ioctl (get interface flags)"));
- continue;
- }
-
- if (ACE_BIT_ENABLED (flags.ifr_flags,
- IFF_UP) == 0)
- {
- ACE_ERROR ((LM_ERROR, "%p\n",
- "ACE_SOCK_Dgram_Bcast::mk_broadcast: Network interface is not up"));
- continue;
- }
-
- if (ACE_BIT_ENABLED (flags.ifr_flags,
- IFF_LOOPBACK))
- continue;
-
- if (ACE_BIT_ENABLED (flags.ifr_flags,
- IFF_BROADCAST))
- {
- if (ACE_OS::ioctl (s,
- SIOCGIFBRDADDR,
- (char *) &if_req) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n",
- "ACE_SOCK_Dgram_Bcast::mk_broadcast: ioctl (get broadaddr)"));
- else
- {
- ACE_INET_Addr addr (ACE_reinterpret_cast (sockaddr_in *,
- &if_req.ifr_broadaddr),
- sizeof if_req.ifr_broadaddr);
- ACE_NEW_RETURN (this->if_list_,
- ACE_Bcast_Node (addr,
- this->if_list_),
- -1);
- }
- }
- else
- ACE_ERROR ((LM_ERROR, "%p\n",
- "ACE_SOCK_Dgram_Bcast::mk_broadcast: Broadcast is not enable for this interface."));
- }
-#else
- ACE_UNUSED_ARG (host_name);
-
- ACE_INET_Addr addr (u_short (0),
- ACE_UINT32 (INADDR_BROADCAST));
- ACE_NEW_RETURN (this->if_list_,
- ACE_Bcast_Node (addr,
- this->if_list_),
- -1);
-#endif /* !ACE_WIN32 */
- return this->if_list_ == 0 ? -1 : 0;
-}
-
-// Broadcast the datagram to every interface. Returns the average
-// number of bytes sent.
-
-ssize_t
-ACE_SOCK_Dgram_Bcast::send (const void *buf,
- size_t n,
- u_short port_number,
- int flags) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Bcast::send");
- size_t iterations = 0;
- ssize_t total_bytes = 0;
-
- if (this->if_list_ == 0)
- return -1;
-
- for (ACE_Bcast_Node *temp = this->if_list_;
- temp != 0;
- temp = temp->next_)
- {
- temp->bcast_addr_.set_port_number (port_number);
-
- ssize_t bytes_sent = ACE_SOCK_Dgram::send (buf,
- n,
- temp->bcast_addr_,
- flags);
-
- if (bytes_sent == -1)
- return -1;
- else
- total_bytes += bytes_sent;
-
- iterations++;
- }
-
- return iterations == 0 ? 0 : total_bytes / iterations;
-}
-
-#if defined (ACE_HAS_MSG)
-// Broadcast datagram to every interfaces.
-
-ssize_t
-ACE_SOCK_Dgram_Bcast::send (const iovec iov[],
- int n,
- u_short /* port_number */,
- int flags) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Bcast::send");
-
- if (this->if_list_ == 0)
- return -1;
-
- // Send the message to every interface.
-
- for (ACE_Bcast_Node *temp = this->if_list_;
- temp != 0;
- temp = temp->next_)
- if (ACE_SOCK_Dgram::send (iov,
- n,
- temp->bcast_addr_,
- flags) == -1)
- return -1;
-
- return 0;
-}
-
-// Broadcast an iovec of size N to ADDR as a datagram (note that addr
-// must be preassigned to the broadcast address of the subnet...).
-
-ssize_t
-ACE_SOCK_Dgram_Bcast::send (const iovec iov[],
- int n,
- const ACE_Addr &addr,
- int flags) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Bcast::send");
-
- return ACE_SOCK_Dgram::send (iov, n, addr, flags);
-}
-#endif /* ACE_HAS_MSG */
diff --git a/ace/SOCK_Dgram_Bcast.h b/ace/SOCK_Dgram_Bcast.h
deleted file mode 100644
index 52b8ec1546b..00000000000
--- a/ace/SOCK_Dgram_Bcast.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SOCK_Dgram_Bcast.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_SOCK_DGRAM_BCAST_H
-#define ACE_SOCK_DGRAM_BCAST_H
-#include "ace/pre.h"
-
-#include "ace/INET_Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Dgram.h"
-
-/**
- * @class ACE_Bcast_Node
- *
- * @brief Linked list of broadcast interfaces.
- */
-class ACE_Export ACE_Bcast_Node
-{
-public:
- /// Default constructor.
- ACE_Bcast_Node (ACE_INET_Addr &,
- ACE_Bcast_Node *);
-
- /// Destructor.
- ~ACE_Bcast_Node (void);
-
- /// Broadcast address for the interface.
- ACE_INET_Addr bcast_addr_;
-
- /// Pointer to the next interface in the chain.
- ACE_Bcast_Node *next_;
-};
-
-/**
- * @class ACE_SOCK_Dgram_Bcast
- *
- * @brief Defines the member functions for the ACE_SOCK datagram
- * abstraction.
- */
-class ACE_Export ACE_SOCK_Dgram_Bcast : public ACE_SOCK_Dgram
-{
-public:
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_SOCK_Dgram_Bcast (void);
-
- ACE_SOCK_Dgram_Bcast (const ACE_Addr &local,
- int protocol_family = PF_INET,
- int protocol = 0,
- int reuse_addr = 0,
- const ACE_TCHAR *host_name = 0);
-
- /// Default dtor.
- ~ACE_SOCK_Dgram_Bcast (void);
-
- // Initiate a connectionless datagram broadcast endpoint.
-
- /// Initiate a connectionless datagram broadcast endpoint.
- int open (const ACE_Addr &local,
- int protocol_family = PF_INET,
- int protocol = 0,
- int reuse_addr = 0,
- const ACE_TCHAR *host_name = 0);
-
- /// Close up and release dynamically allocated resources.
- int close (void);
-
- /// Broadcast the datagram to every interface. Returns the average
- /// number of bytes sent.
- ssize_t send (const void *buf,
- size_t n,
- u_short portnum,
- int flags = 0) const;
-
- /// Broadcast the <iovec> datagrams to every interface. Returns the
- /// average number of bytes sent.
- ssize_t send (const iovec iov[],
- int n,
- u_short portnum,
- int flags = 0) const;
-
- /// Broadcast an N byte datagram to ADDR (note that addr must be
- /// preassigned to the broadcast address of the subnet...).
- ssize_t send (const void *buf,
- size_t n,
- const ACE_Addr &addr,
- int flags = 0) const;
-
- /**
- * Broadcast an <iovec> of size <n> to <addr> as a datagram (note
- * that addr must be preassigned to the broadcast address of the
- * subnet...)
- */
- ssize_t send (const iovec iov[],
- int n,
- const ACE_Addr &addr,
- int flags = 0) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Make broadcast available for Datagram socket.
- int mk_broadcast (const ACE_TCHAR *host_name);
-
- /// Points to the head of the list of broadcast interfaces.
- ACE_Bcast_Node *if_list_;
-
- /// Do not allow this function to percolate up to this interface...
- int get_remote_addr (ACE_Addr &) const;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_Dgram_Bcast.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_SOCK_DGRAM_BCAST_H */
diff --git a/ace/SOCK_Dgram_Bcast.i b/ace/SOCK_Dgram_Bcast.i
deleted file mode 100644
index 71800445f30..00000000000
--- a/ace/SOCK_Dgram_Bcast.i
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SOCK_Dgram_Bcast.i
-
-ASYS_INLINE
-ACE_Bcast_Node::~ACE_Bcast_Node (void)
-{
-}
-
-ASYS_INLINE
-ACE_SOCK_Dgram_Bcast::~ACE_SOCK_Dgram_Bcast (void)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Bcast::~ACE_SOCK_Dgram_Bcast");
-}
-
-// Broadcast an N byte datagram to ADDR (note that addr must be
-// preassigned to the broadcast address of the subnet...)
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Dgram_Bcast::send (const void *buf,
- size_t n,
- const ACE_Addr &addr,
- int flags) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Bcast::send");
-
- sockaddr *saddr = (sockaddr *) addr.get_addr ();
- int len = addr.get_size ();
- return ACE_OS::sendto (this->get_handle (), (const char *) buf, n, flags,
- (struct sockaddr *) saddr, len);
-}
-
-
diff --git a/ace/SOCK_Dgram_Mcast.cpp b/ace/SOCK_Dgram_Mcast.cpp
deleted file mode 100644
index de41a4790fd..00000000000
--- a/ace/SOCK_Dgram_Mcast.cpp
+++ /dev/null
@@ -1,683 +0,0 @@
-// SOCK_Dgram_Mcast.cpp
-
-#include "ace/SOCK_Dgram_Mcast.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_Dgram_Mcast.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID (ace,
- SOCK_Dgram_Mcast,
- "$Id$")
-
-#include "ace/Log_Msg.h"
-
-// This is a workaround for platforms with non-standard
-// definitions of the ip_mreq structure
-#if ! defined (IMR_MULTIADDR)
-#define IMR_MULTIADDR imr_multiaddr
-#endif /* ! defined (IMR_MULTIADDR) */
-
-// Helper (inline) functions.
-class ACE_SDM_helpers
-{
-public:
- // Convert ACE_INET_Addr to string, using local formatting rules.
-
- static void addr_to_string (const ACE_INET_Addr &ip_addr,
- ACE_TCHAR *ret_string, // results here.
- size_t len,
- int clip_portnum) // clip port# info?
- {
- if (ip_addr.addr_to_string (ret_string, len, 1) == -1)
- {
- ACE_OS_String::strcpy (ret_string, ACE_LIB_TEXT ("<?>"));
- }
- else
- {
- ACE_TCHAR *pc;
- if (clip_portnum
- && (pc = ACE_OS_String::strchr (ret_string, ACE_LIB_TEXT (':'))))
- *pc = ACE_LIB_TEXT ('\0'); // clip port# info.
- }
- }
- // op== for ip_mreq structs.
- static int is_equal (const ip_mreq &m1, const ip_mreq &m2)
- {
- return m1.IMR_MULTIADDR.s_addr == m2.IMR_MULTIADDR.s_addr
- && m1.imr_interface.s_addr == m2.imr_interface.s_addr;
- }
-};
-
-ACE_ALLOC_HOOK_DEFINE (ACE_SOCK_Dgram_Mcast)
-
-void
-ACE_SOCK_Dgram_Mcast::dump (void) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
-# if defined (ACE_SOCK_DGRAM_MCAST_DUMPABLE)
- ACE_TCHAR addr_string[MAXNAMELEN + 1];
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\nOptions: bindaddr=%s, nulliface=%s\n"),
- ACE_BIT_ENABLED (this->opts_, OPT_BINDADDR_YES) ?
- ACE_LIB_TEXT ("<Bound>") : ACE_LIB_TEXT ("<Not Bound>"),
- ACE_BIT_ENABLED (this->opts_, OPT_NULLIFACE_ALL) ?
- ACE_LIB_TEXT ("<All Ifaces>") : ACE_LIB_TEXT ("<Default Iface>")));
-
- // Show default send addr, port#, and interface.
- ACE_SDM_helpers::addr_to_string (this->send_addr_, addr_string,
- sizeof addr_string, 0);
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Send addr=%s iface=%s\n"),
- addr_string,
- this->send_net_if_ ? this->send_net_if_
- : ACE_LIB_TEXT ("<default>")));
-
- // Show list of subscribed addresses.
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("Subscription list:\n")));
-
- ACE_MT (ACE_GUARD (ACE_SDM_LOCK, guard, this->subscription_list_lock_));
- subscription_list_iter_t iter (this->subscription_list_);
- for ( ; !iter.done (); iter.advance ())
- {
- ACE_TCHAR iface_string[MAXNAMELEN + 1];
- ip_mreq *pm = iter.next ();
-
- // Get subscribed address (w/out port# info - not relevant).
- ACE_INET_Addr ip_addr (ACE_static_cast (u_short, 0),
- ACE_NTOHL (pm->IMR_MULTIADDR.s_addr));
- ACE_SDM_helpers::addr_to_string (ip_addr, addr_string,
- sizeof addr_string, 1);
-
- // Get interface address/specification.
- ACE_INET_Addr if_addr (ACE_static_cast (u_short, 0),
- ACE_NTOHL (pm->imr_interface.s_addr));
- ACE_SDM_helpers::addr_to_string (if_addr, iface_string,
- sizeof iface_string, 1);
- if (ACE_OS_String::strcmp (iface_string, ACE_LIB_TEXT ("0.0.0.0")) == 0)
- // Receives on system default iface. (Note that null_iface_opt_
- // option processing has already occurred.)
- ACE_OS_String::strcpy (iface_string, ACE_LIB_TEXT ("<default>"));
-
- // Dump info.
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\taddr=%s iface=%s\n"),
- addr_string,
- iface_string));
- }
-# endif /* ACE_SOCK_DGRAM_MCAST_DUMPABLE */
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Constructor.
-ACE_SOCK_Dgram_Mcast::ACE_SOCK_Dgram_Mcast
- (ACE_SOCK_Dgram_Mcast::options opts)
- : opts_ (opts),
- send_net_if_ (0)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::ACE_SOCK_Dgram_Mcast");
-}
-
-// Destructor.
-ACE_SOCK_Dgram_Mcast::~ACE_SOCK_Dgram_Mcast (void)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::~ACE_SOCK_Dgram_Mcast");
-
- // Free memory and optionally unsubscribe from currently subscribed group(s).
- delete [] this->send_net_if_;
- this->clear_subs_list ();
-}
-
-int
-ACE_SOCK_Dgram_Mcast::open (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::open");
-
- // Only perform the <open> initialization if we haven't been opened
- // earlier.
- // No sanity check? We should probably flag an error if the user
- // makes multiple calls to open().
- if (this->get_handle () != ACE_INVALID_HANDLE)
- return 0;
-
- // Invoke lower-layer ::open.
- if (ACE_SOCK::open (SOCK_DGRAM,
- mcast_addr.get_type (),
- 0, // always use 0
- reuse_addr) == -1)
- return -1;
-
- return open_i (mcast_addr, net_if, reuse_addr);
-}
-
-int
-ACE_SOCK_Dgram_Mcast::open_i (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::open_i");
- // ACE_SOCK::open calls this if reuse_addr is set, so we only need to
- // process port reuse option.
- if (reuse_addr)
- {
-#if defined (SO_REUSEPORT)
- int one = 1;
- if (this->ACE_SOCK::set_option (SOL_SOCKET,
- SO_REUSEPORT,
- &one,
- sizeof one) == -1)
- return -1;
-#endif /* SO_REUSEPORT */
- }
-
- // Create an address/port# to bind the socket to. Use mcast_addr to
- // initialize bind_addy to pick up the correct protocol family. If
- // OPT_BINDADDR_YES is set, then we're done. Else use mcast_addr's
- // port number and use the "any" address.
- ACE_INET_Addr bind_addy (mcast_addr);
- if (ACE_BIT_DISABLED (this->opts_, OPT_BINDADDR_YES))
- {
- // Bind to "any" address and explicit port#.
- if (bind_addy.set (mcast_addr.get_port_number ()) == -1)
- return -1;
- }
-
- // Bind to the address (which may be INADDR_ANY) and port# (which may be 0)
- if (ACE_SOCK_Dgram::shared_open (bind_addy, bind_addy.get_type ()) == -1)
- return -1;
-
- // Cache the actual bound address (which may be INADDR_ANY)
- // and the actual bound port# (which will be a valid, non-zero port#).
- ACE_INET_Addr bound_addy;
- if (this->get_local_addr (bound_addy) == -1)
- {
- // (Unexpected failure - should be bound to something)
- if (bound_addy.set (bind_addy) == -1)
- {
- // (Shouldn't happen - bind_addy is a valid addy; punt.)
- return -1;
- }
- }
-
- this->send_addr_ = mcast_addr;
- this->send_addr_.set_port_number (bound_addy.get_port_number ());
- if (net_if)
- {
-#if defined (IP_MULTICAST_IF) && (IP_MULTICAST_IF != 0)
- ip_mreq send_mreq;
- if (this->make_multicast_ifaddr (&send_mreq,
- mcast_addr,
- net_if) == -1)
- return -1;
- if (this->ACE_SOCK::set_option (IPPROTO_IP,
- IP_MULTICAST_IF,
- &(send_mreq.imr_interface),
- sizeof send_mreq.imr_interface) == -1)
- return -1;
- this->send_net_if_ = new ACE_TCHAR[ACE_OS_String::strlen (net_if) + 1];
- ACE_OS_String::strcpy (this->send_net_if_, net_if);
-#else
- // Send interface option not supported - ignore it.
- // (We may have been invoked by ::subscribe, so we have to allow
- // a non-null interface parameter in this function.)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Send interface specification not ")
- ACE_LIB_TEXT ("supported - IGNORED.\n")));
-#endif // IP_MULTICAST_IF
- }
-
- return 0;
-}
-
-int
-ACE_SOCK_Dgram_Mcast::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::subscribe_ifs");
-
- if (ACE_BIT_ENABLED (this->opts_, OPT_NULLIFACE_ALL)
- && net_if == 0)
- {
- // Subscribe on all local multicast-capable network interfaces, by
- // doing recursive calls with specific interfaces.
-
- ACE_INET_Addr *if_addrs = 0;
- size_t if_cnt;
-
- if (ACE_Sock_Connect::get_ip_interfaces (if_cnt, if_addrs) != 0)
- return -1;
-
- size_t nr_subscribed = 0;
-
- if (if_cnt < 2)
- {
- if (this->subscribe (mcast_addr,
- reuse_addr,
- ACE_LIB_TEXT ("0.0.0.0")) == 0)
- ++nr_subscribed;
- }
- else
- {
- // Iterate through all the interfaces, figure out which ones
- // offer multicast service, and subscribe to them.
- while (if_cnt > 0)
- {
- --if_cnt;
-
- // Convert to 0-based for indexing, next loop check.
- if (if_addrs[if_cnt].get_ip_address () == INADDR_LOOPBACK)
- continue;
- if (this->subscribe (mcast_addr,
- reuse_addr,
- ACE_TEXT_CHAR_TO_TCHAR
- (if_addrs[if_cnt].get_host_addr ())) == 0)
- ++nr_subscribed;
- }
- }
-
- delete [] if_addrs;
-
- if (nr_subscribed == 0)
- {
- errno = ENODEV;
- return -1;
- }
-
- // 1 indicates a "short-circuit" return. This handles the
- // recursive behavior of checking all the interfaces.
- return 1;
- }
-
- // Validate passed multicast addr and iface specifications.
- if (this->make_multicast_ifaddr (0,
- mcast_addr,
- net_if) == -1)
- return -1;
-
- return 0;
-}
-
-// Subscribe and add address/iface to subscription list if successful.
-int
-ACE_SOCK_Dgram_Mcast::subscribe (const ACE_INET_Addr &mcast_addr,
- int reuse_addr,
- const ACE_TCHAR *net_if,
- int protocol_family,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::subscribe");
-
- ACE_UNUSED_ARG (protocol_family);
- ACE_UNUSED_ARG (protocol);
-
- return this->join (mcast_addr,reuse_addr, net_if);
-}
-
-int
-ACE_SOCK_Dgram_Mcast::join (const ACE_INET_Addr &mcast_addr,
- int reuse_addr,
- const ACE_TCHAR *net_if)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::join");
- ACE_INET_Addr subscribe_addr = mcast_addr;
-
- // If port# is 0, insert bound port# if it is set. (To satisfy lower-level
- // port# validation.)
- u_short def_port_number = this->send_addr_.get_port_number ();
- if (subscribe_addr.get_port_number () == 0
- && def_port_number != 0)
- {
- subscribe_addr.set_port_number (def_port_number);
- }
-
- // Check for port# different than bound port#.
- u_short sub_port_number = mcast_addr.get_port_number ();
- if (sub_port_number != 0
- && def_port_number != 0
- && sub_port_number != def_port_number)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Subscribed port# (%u) different than bound ")
- ACE_LIB_TEXT ("port# (%u).\n"),
- (u_int) sub_port_number,
- (u_int) def_port_number));
- errno = ENXIO;
- return -1;
- }
-
- // If bind_addr_opt_ is enabled, check for address different than
- // bound address.
- if (ACE_BIT_ENABLED (this->opts_, OPT_BINDADDR_YES)
- && this->send_addr_.get_ip_address () != INADDR_ANY
- && this->send_addr_.get_ip_address () != mcast_addr.get_ip_address ())
- {
- ACE_TCHAR sub_addr_string[MAXNAMELEN + 1];
- ACE_TCHAR bound_addr_string[MAXNAMELEN + 1];
- ACE_SDM_helpers::addr_to_string (mcast_addr, sub_addr_string,
- sizeof sub_addr_string, 1);
- ACE_SDM_helpers::addr_to_string (this->send_addr_, bound_addr_string,
- sizeof bound_addr_string, 1);
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Subscribed address (%s) different than ")
- ACE_LIB_TEXT ("bound address (%s).\n"),
- sub_addr_string,
- bound_addr_string));
- errno = ENXIO;
- return -1;
- }
-
- // Attempt subscription.
- int result = this->subscribe_i (subscribe_addr, reuse_addr, net_if);
-
-#if defined (ACE_SOCK_DGRAM_MCAST_DUMPABLE)
- if (result == 0)
- {
- // Add this addr/iface info to the list of subscriptions.
- // (Assumes this is unique addr/iface combo - most systems don't allow
- // re-sub to same addr/iface.)
- ip_mreq *pmreq = new ip_mreq;
- // (should not fail)
- if (this->make_multicast_ifaddr (pmreq, subscribe_addr, net_if) != -1)
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SDM_LOCK, guard,
- this->subscription_list_lock_, -1));
- this->subscription_list_.insert_tail (pmreq);
- return 0;
- }
- // this still isn't really right. If ACE_GUARD_RETURN fails, we leak.
- // Need to add one of Chris' fancy ace auto pointers (bound?).
- delete pmreq;
- }
-#endif /* ACE_SOCK_DGRAM_MCAST_DUMPABLE */
-
- return result >= 0 ? 0 : result;
-}
-
-// Attempt subscribe and return status.
-int
-ACE_SOCK_Dgram_Mcast::subscribe_i (const ACE_INET_Addr &mcast_addr,
- int reuse_addr,
- const ACE_TCHAR *net_if)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::subscribe_i");
- ip_mreq mreq;
-
- // Open the socket IFF this is the first ::subscribe and ::open
- // was not explicitly invoked.
- if (this->open (mcast_addr,
- net_if,
- reuse_addr) == -1)
- return -1;
-
- // Only do this if net_if == 0, i.e., INADDR_ANY
- if (net_if == 0)
- {
- int result = this->subscribe_ifs (mcast_addr,
- net_if,
- reuse_addr);
- // Check for error or "short-circuit" return.
- if (result != 0)
- return result;
- }
-
- // Create multicast addr/if struct.
- if (this->make_multicast_ifaddr (&mreq, mcast_addr, net_if) == -1)
- return -1;
-
- // Tell IP stack to pass messages sent to this group.
- // Note, this is not IPv6 compliant.
- else if (this->ACE_SOCK::set_option (IPPROTO_IP,
- IP_ADD_MEMBERSHIP,
- &mreq,
- sizeof mreq) == -1)
- return -1;
-
- return 0;
-}
-
-int
-ACE_SOCK_Dgram_Mcast::unsubscribe_ifs (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::unsubscribe_ifs");
-
-
- if (ACE_BIT_ENABLED (this->opts_, OPT_NULLIFACE_ALL)
- && net_if == 0)
- {
- // Unsubscribe on all local multicast-capable network interfaces, by
- // doing recursive calls with specific interfaces.
-
- ACE_INET_Addr *if_addrs = 0;
- size_t if_cnt;
-
- // NOTE - <get_ip_interfaces> doesn't always get all of the
- // interfaces. In particular, it may not get a PPP interface. This
- // is a limitation of the way <get_ip_interfaces> works with
- // old versions of MSVC. The reliable way of getting the interface list
- // is available only with MSVC 5 and newer.
- if (ACE_Sock_Connect::get_ip_interfaces (if_cnt, if_addrs) != 0)
- return -1;
-
- size_t nr_unsubscribed = 0;
-
- if (if_cnt < 2)
- {
- if (this->leave (mcast_addr,
- ACE_LIB_TEXT ("0.0.0.0")) == 0)
- ++nr_unsubscribed;
- }
- else
- {
- while (if_cnt > 0)
- {
- --if_cnt;
- // Convert to 0-based for indexing, next loop check
- if (if_addrs[if_cnt].get_ip_address () == INADDR_LOOPBACK)
- continue;
- if (this->leave (mcast_addr,
- ACE_TEXT_CHAR_TO_TCHAR
- (if_addrs[if_cnt].get_host_addr ())) == 0)
- ++nr_unsubscribed;
- }
- }
-
- delete [] if_addrs;
-
- if (nr_unsubscribed == 0)
- {
- errno = ENODEV;
- return -1;
- }
-
- return 1;
- }
-
- return 0;
-}
-
-
-// Unsubscribe, and remove address from subscription list.
-// Note: If there are duplicate entries, only finds the first in the list (this
-// is a defined restriction - most environments don't allow duplicates to be
-// created.)
-int
-ACE_SOCK_Dgram_Mcast::unsubscribe (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if,
- int protocol_family,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::unsubscribe");
-
- ACE_UNUSED_ARG (protocol_family);
- ACE_UNUSED_ARG (protocol);
-
- return this->leave (mcast_addr, net_if);
-}
-
-int
-ACE_SOCK_Dgram_Mcast::leave (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::leave");
- // Unsubscribe.
- int result = this->unsubscribe_i (mcast_addr,
- net_if);
-
-#if defined (ACE_SOCK_DGRAM_MCAST_DUMPABLE)
- // (Unconditionally) Remove this addr/if from subscription list.
- // (Addr/if is removed even if unsubscribe failed)
- ip_mreq tgt_mreq;
- if (this->make_multicast_ifaddr (&tgt_mreq,
- mcast_addr,
- net_if) != -1)
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SDM_LOCK, guard,
- this->subscription_list_lock_, -1));
- subscription_list_iter_t iter (this->subscription_list_);
- for (; !iter.done (); iter.advance ())
- {
- ip_mreq *pm = iter.next ();
- if (ACE_SDM_helpers::is_equal (*pm, tgt_mreq))
- {
- iter.remove ();
- delete pm;
- break;
- }
- }
- }
-#endif /* ACE_SOCK_DGRAM_MCAST_DUMPABLE */
-
- return result >= 0 ? 0 : result;
-}
-
-// Attempt unsubscribe and return status.
-int
-ACE_SOCK_Dgram_Mcast::unsubscribe_i (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::unsubscribe_i");
-
- int result = this->unsubscribe_ifs (mcast_addr,
- net_if);
-
- // Check for error or "short-circuit" return.
- if (result != 0)
- return result;
-
- // Validate addr/if specifications and create addr/if struct.
- ip_mreq mreq;
- if (this->make_multicast_ifaddr (&mreq, mcast_addr, net_if) == -1)
- {
- return -1;
- }
- // Tell network device driver to stop reading datagrams with the
- // <mcast_addr>.
- // Note, this is not IPv6 friendly...
- else if (ACE_SOCK::set_option (IPPROTO_IP,
- IP_DROP_MEMBERSHIP,
- &mreq,
- sizeof mreq) == -1)
- {
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_SOCK_Dgram_Mcast::unsubscribe (void)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::unsubscribe");
-
- // Can't implement this reliably without keeping an expensive list,
- // and can't close the socket since the caller may want to continue
- // using the socket to send() or join() new groups. Even if we
- // wanted to be clever and reopen the socket, we'd need to know what
- // options had been set, and reset them--and we have no way of doing
- // that either. :-(
- // Should this return -1?
- ACE_ERROR_RETURN ((LM_INFO,
- ACE_LIB_TEXT ("ACE_SOCK_Dgram_Mcast::unsubscribe (void) ")
- ACE_LIB_TEXT ("has been deprecated. You must either ")
- ACE_LIB_TEXT ("close to socket to unsubscribe to all ")
- ACE_LIB_TEXT ("or unsubscribe to each individually.\n")),
- 0);
-}
-
-int
-ACE_SOCK_Dgram_Mcast::clear_subs_list (void)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::clear_subs_list");
- int result = 0;
-
-#if defined (ACE_SOCK_DGRAM_MCAST_DUMPABLE)
- ACE_MT (ACE_GUARD_RETURN (ACE_SDM_LOCK, guard,
- this->subscription_list_lock_, -1));
- subscription_list_iter_t iter (this->subscription_list_);
- for (; !iter.done (); /*Hack: Do _not_ ::advance after remove*/)
- {
- ip_mreq *pm = iter.next ();
- iter.remove ();
- delete pm;
- }
-#endif /* ACE_SOCK_DGRAM_MCAST_DUMPABLE */
- return result;
-}
-
-int
-ACE_SOCK_Dgram_Mcast::make_multicast_ifaddr (ip_mreq *ret_mreq,
- const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::make_multicast_ifaddr");
- ip_mreq lmreq; // Scratch copy.
- if (net_if != 0)
- {
-#if defined (ACE_WIN32)
- // This port number is not necessary, just convenient
- ACE_INET_Addr interface_addr;
- if (interface_addr.set (mcast_addr.get_port_number (), net_if) == -1)
- return -1;
- lmreq.imr_interface.s_addr =
- ACE_HTONL (interface_addr.get_ip_address ());
-#else
- ifreq if_address;
-
-#if defined (ACE_PSOS)
- // Look up the interface by number, not name.
- if_address.ifr_ifno = ACE_OS::atoi (net_if);
-#else
- ACE_OS_String::strcpy (if_address.ifr_name, net_if);
-#endif /* defined (ACE_PSOS) */
-
- if (ACE_OS::ioctl (this->get_handle (),
- SIOCGIFADDR,
- &if_address) == -1)
- return -1;
-
- sockaddr_in *socket_address;
- socket_address = ACE_reinterpret_cast (sockaddr_in*,
- &if_address.ifr_addr);
- lmreq.imr_interface.s_addr = socket_address->sin_addr.s_addr;
-#endif /* ACE_WIN32 */
- }
- else
- lmreq.imr_interface.s_addr = INADDR_ANY;
-
- lmreq.IMR_MULTIADDR.s_addr = ACE_HTONL (mcast_addr.get_ip_address ());
-
- // Set return info, if requested.
- if (ret_mreq)
- *ret_mreq = lmreq;
-
- return 0;
-}
-
diff --git a/ace/SOCK_Dgram_Mcast.h b/ace/SOCK_Dgram_Mcast.h
deleted file mode 100644
index e9e3970a800..00000000000
--- a/ace/SOCK_Dgram_Mcast.h
+++ /dev/null
@@ -1,422 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SOCK_Dgram_Mcast.h
- *
- * $Id$
- *
- * @author Irfan Pyrali <irfan@cs.wustl.edu>
- * @author Tim Harrison <harrison@cs.wustl.edu>
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author Bill Fulton <bill_a_fulton@raytheon.com>
- * @author and Don Hinton <dhinton@objectsciences.com>
- */
-//=============================================================================
-
-
-#ifndef ACE_SOCK_DGRAM_MCAST_H
-#define ACE_SOCK_DGRAM_MCAST_H
-#include "ace/pre.h"
-
-#include "ace/SOCK_Dgram.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/INET_Addr.h"
-
-#if defined (ACE_SOCK_DGRAM_MCAST_DUMPABLE)
-# include "ace/Containers_T.h"
-# include "ace/Synch_T.h"
-# if !defined (ACE_SDM_LOCK)
-# define ACE_SDM_LOCK ACE_SYNCH_MUTEX
-# endif /* ACE_SDM_LOCK */
-#endif /* ACE_SOCK_DGRAM_MCAST_DUMPABLE */
-
-/**
- * @class ACE_SOCK_Dgram_Mcast
- *
- * @brief Defines the ACE socket wrapper for UDP/IP multicast.
- *
- * Supports multiple simultaneous subscriptions, unsubscription from one or
- * all subscriptions, and independent send/recv address and interface
- * specifications. Template parameters and/or ctor arguments determine
- * per-instance optional functionality.
- *
- * Note that multicast semantics and implementation details are _very_
- * environment-specific; this class is just a wrapper around the underlying
- * implementation and does not try to normalize the concept of multicast
- * communications.
- *
- * Usage Notes:
- * - Send and Recv addresses and network interfaces, but not port#, are
- * independent. While this instance is open, 1 send interface (and a default
- * send address) is in effect and 0, 1, or multiple recv addresses/interfaces
- * are in effect.
- * - The first <open>/<subscribe> invocation defines the network interface
- * and default address used for all sends by this instance, defines the
- * port# and optionally the multicast address bound to the underlying
- * socket, and defines the (one) port# that is used for all subscribes
- * (subsequent subscribes must pass the same port# or '0').
- * - The default loopback state is not explicitly set; the environment will
- * determine the default state. Note that some environments (e.g. some Win32)
- * do not allow the default to be changed, and that the semantics of
- * loopback control are environment dependent (e.g. sender vs receiver
- * control).
- * - In general, due to multicast design and implementation quirks/bugs, it is
- * difficult to tell which address a received message was sent to or which
- * interface it was received on (even if only one subscription is active).
- * However; there are filtering options that can be applied, to narrow it
- * down considerably.
- *
- * Interface specification notes (for <subscribe> and <unsubscribe>):
- * - If net_if == 0, the null_iface_opt option determines whether only the
- * system "default" interface or all interfaces is affected. Specifying
- * "all" interfaces is supported only for environments for which
- * <ACE_Sock_Connect::get_ip_interfaces> is properly implemented.
- * - Multiple subscriptions for the same address but different interfaces is
- * normally supported, but re-subscription to an address/interface that is
- * already subscribed is normally not allowed.
- * - The <net_if> interface specification syntax is environment-specific.
- * UNIX systems will normally use device specifications such as "le0" or
- * "elxl1", while other systems will use the IP address of the interface.
- * Some platforms, such as pSoS, support only cardinal numbers as network
- * interface specifications; for these platforms, just give these numbers in
- * alphanumeric form and <subscribe> will convert them into numbers via
- * <ACE_OS::atoi>.
- */
-class ACE_Export ACE_SOCK_Dgram_Mcast : public ACE_SOCK_Dgram
-{
-public:
-
- /**
- * @brief Option parameters.
- *
- * These control per-instance optional functionality. They are set via
- * optional constructor arguments.
- * Note: Certain option values are not valid for all environments (see
- * comments in source file for environment-specific restrictions). Default
- * values are always valid values for the compilation environment.
- */
- enum options
- {
- // Define whether a specific (multicast) address (in addition to the port#)
- // is bound to the socket.
- // Notes:
- // - Effect of doing this is stack/environment dependent, but in most
- // environments can be used to filter out unwanted unicast, broadcast, and
- // (other) multicast messages sent to the same port#.
- // - Some IP stacks (e.g. some Win32) do not support binding multicast
- // addresses. Using this option will always cause an <open> error.
- // - It's not strictly possible for user code to do this level of filtering
- // w/out the bind; some environments support ways to determine which address
- // a message was sent _to_, but this class interface does not support access
- // to that info.
- // - The address (and port#) passed to <open> (or the first <subscribe>, if
- // <open> is not explicitly invoked) is the one that is bound.
- //
- /// Disable address bind. (Bind only port.)
- // Note that this might seem odd, but we need a way to distinquish between
- // default behavior, which might or might not be to bind, and explicitely
- // choosing to bind or not to bind--which "is the question." ;-)
- OPT_BINDADDR_NO = 0,
- /// Enable address bind. (Bind port and address.)
- OPT_BINDADDR_YES = 1,
- /// Default value for BINDADDR option. (Environment-dependent.)
-#if defined (ACE_LACKS_PERFECT_MULTICAST_FILTERING) \
- && (ACE_LACKS_PERFECT_MULTICAST_FILTERING == 1)
- // Platforms that don't support perfect filtering. Note that perfect
- // filtering only really applies to multicast traffic, not unicast
- // or broadcast.
- DEFOPT_BINDADDR = OPT_BINDADDR_YES,
-# else
- // At least some Win32 OS's can not bind mcast addr, so disable it.
- // General-purpose default behavior is 'disabled', since effect is
- // environment-specific and side-effects might be surprising.
- DEFOPT_BINDADDR = OPT_BINDADDR_NO,
-#endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING = 1) */
- //
- /// Define the interpretation of 'NULL' as a recv interface specification.
- // If the interface part of a multicast address specification is NULL, it
- // will be interpreted to mean either "the default interface" or "all
- // interfaces", depending on the setting of this option.
- // Notes:
- // - The 'nulliface_all' option can not be used in environments which do
- // not fully support the <ACE_Sock_Connect::get_ip_interfaces> method
- // (e.g. non-Windows).
- // If it is, using NULL for iface will _always_ fail.
- // - The default behavior in most IP stacks is to use the 'default' interface,
- // where 'default' has rather ad-hoc semantics.
- // - This applies only to receives, not sends (which always use only one
- // interface; NULL means use the "system default" interface).
- // Supported values:
- /// If (net_if==NULL), use default interface.
- // Note that this might seem odd, but we need a way to distinquish between
- // default behavior, which might or might not be to bind, and explicitely
- // choosing to bind or not to bind--which "is the question." ;-)
- OPT_NULLIFACE_ONE = 0,
- /// If (net_if==NULL), use all mcast interfaces.
- OPT_NULLIFACE_ALL = 2,
- /// Default value for NULLIFACE option. (Environment-dependent.)
-#ifdef ACE_WIN32
- // This is the (ad-hoc) legacy behavior for Win32/WinSock.
- // Notice: Older version of WinSock/MSVC may not get all multicast-capable
- // interfaces (e.g. PPP interfaces).
- DEFOPT_NULLIFACE = OPT_NULLIFACE_ALL,
-#else
- // General-purpose default behavior (as per legacy behavior).
- DEFOPT_NULLIFACE = OPT_NULLIFACE_ONE,
-#endif /* ACE_WIN32 */
- /// All default options.
- DEFOPTS = DEFOPT_BINDADDR | DEFOPT_NULLIFACE
- };
-
- // = Initialization routines.
-
- /// Ctor - Create an unitialized instance and define per-instance optional
- /// functionality.
- /**
- * You must invoke <open> or <subscribe>, to create/bind a socket and define
- * operational parameters, before performing any I/O with this instance.
- */
- ACE_SOCK_Dgram_Mcast (options opts = DEFOPTS);
-
- /// Dtor - Release all resources and implicitly or explicitly unsubscribe
- /// from all currently subscribed groups.
- /**
- * The OPT_DTORUNSUB_YES_ option defines whether an explicit <unsusbcribe> is
- * done by the destructor. If not, most systems will automatically
- * unsubscribe upon the close of the socket.
- */
- ~ACE_SOCK_Dgram_Mcast (void);
-
- /// Explicitly open/bind the socket and define the network interface
- /// and default multicast address used for sending messages.
- /**
- * This method is optional; if not explicitly invoked, it is invoked by
- * the first <subscribe>, using the subscribed address/port# and network
- * interface paramters.
- * The <mcast_addr> parameter defines the default send address/port# and
- * also the port# and, if the OPT_BINDADDR_YES option is used,
- * the multicast address that is bound to this socket.
- * If the <send_net_if> parameter != 0, it defines the network interface
- * used for all sends by this instance, otherwise the system "default"
- * interface is used. (The <send_net_if> parameter is ignored if this
- * feature is not supported by the envriornment.)
- * The port# in <mcast_addr> may be 0, in which case a system-assigned
- * (ephemeral) port# is used for sending and receiving.
- * If <reuse_addr> != 0, the SO_REUSEADDR option and, if it is supported,
- * the SO_REUSEPORT option are enabled.
- *
- * Returns: -1 if the call fails. Failure can occur due to problems with
- * the address, port#, and/or interface parameters or during system open()
- * or socket option processing.
- */
- int open (const ACE_INET_Addr &mcast_addr, // Bound & sendto address.
- const ACE_TCHAR *net_if = 0, // Net interface for sends.
- int reuse_addr = 1); // Reuse addr/port sock opt.
-
- // = Multicast group subscribe/unsubscribe routines.
-
- /// Join a multicast group on a given interface (or all interfaces, if
- /// supported).
- /**
- * The given group is joined on the specified interface. If option
- * OPT_NULLIFACE_ALL is used and <net_if> is = 0, the group is joined on
- * all multicast capable interfaces (IFF supported). Multiple subscriptions
- * to various address and interface combinations are supported and tracked.
- * If this is the first invocation of <subscribe>, and <open> was not
- * previously invoked, <open> will be invoked using <mcast_addr> for binding
- * the socket and <net_if> as the interface for <send>.
- *
- * Returns: -1 if the call fails. Failure can occur due to problems with
- * the address, port#, and/or interface parameters or during the subscription
- * attempt. Once bind() has been invoked (by the first <open> or
- * <subscribe>), returns errno of ENXIO if the port# is not 0 and does not
- * match the bound port#, or if OPT_BINDADDR_YES option is used
- * and the address does not match the bound address. Returns errno of
- * ENODEV if the addr/port#/interface parameters appeared valid, but no
- * subscription(s) succeeded. An error is unconditionally returned if
- * option OPT_NULLIFACE_ALL is used, <net_if> is NULL, and
- * <ACE_Sock_Connect::get_ip_interfaces> is not implemented in this
- * environment.
- *
- * Note that the optional <reuse_addr> parameter does not apply to
- * subscriptions; it is only used if <open> is implicitly invoked (see above).
- *
- * NOTICE - This method has been deprecated, please use join() instead. In
- * addition, the following paramters have also been deprecated:
- * <protocol_family> and <protocol> have no effect.
- */
- int subscribe (const ACE_INET_Addr &mcast_addr,
- int reuse_addr = 1, // (see above)
- const ACE_TCHAR *net_if = 0,
- int protocol_family = PF_INET,
- int protocol = 0);
-
- // join() replaces subscribe() and uses the mcast_addr to determine
- // protocol_family, and protocol which we always pass as 0 anyway.
- int join (const ACE_INET_Addr &mcast_addr,
- int reuse_addr = 1, // (see above)
- const ACE_TCHAR *net_if = 0);
-
-
- /// Leave a multicast group on a given interface (or all interfaces, if
- /// supported).
- /**
- * The specified group/interface combination is unsubscribed. If option
- * OPT_NULLIFACE_ALL is used and <net_if> is = 0, the group is unsubscribed
- * from all interfaces (IFF supported).
- *
- * Returns: -1 if the unsubscribe failed. Most environments will return -1
- * if there was no active subscription for this address/interface combination.
- * An error is unconditionally returned if option OPT_NULLIFACE_ALL is used,
- * <net_if> is = 0, and <ACE_Sock_Connect::get_ip_interfaces> is not
- * implemented in this environment (_even if_ the <subscribe> specifies a
- * non- NULL <net_if>).
- *
- * NOTICE - This method has been deprecated. Please use leave() instead.
- * In addition, <protocol_family> and <protocol> have no effect.
- */
- int unsubscribe (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if = 0,
- int protocol_family = PF_INET,
- int protocol = 0);
-
- // leave() replaces unsubscribe() and uses mcast_addr to determine
- // protocol_family, and protocol which we always pass as 0 anyway.
- int leave (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if = 0);
-
- /// Unsubscribe all current subscriptions.
- /**
- * Unsubscribe all active group/interface subscriptions (if any).
- *
- * Returns -1 if any unsubscribe failed, 0 if there are no errors or no
- * current subscriptions.
- *
- * This method has been deprecated. Since a list of groups is not
- * maintained (except when ACE_SOCK_DGRAM_MCAST_DUMPABLE is defined),
- * it isn't possible to unsubscribe to all the groups without closing
- * the socket. Therefore, if applications wish to unsubscribe to all
- * groups without closing the socket, they much keep track of the
- * subscriptions and call the above unsubscribe () for each.
- */
- int unsubscribe (void);
-
- // = Data transfer routines.
-
- /// Send <n> bytes in <buf>, using the multicast address and network interface
- /// defined by the first <open> or <subscribe>.
- ssize_t send (const void *buf,
- size_t n,
- int flags = 0) const;
-
- /// Send <n> <iovecs>, using the multicast address and network interface
- /// defined by the first <open> or <subscribe>.
- ssize_t send (const iovec iov[],
- int n,
- int flags = 0) const;
-
- // = Options.
-
- /// Set a socket option.
- /**
- * Set an ip option that takes a char as input, such as <IP_MULTICAST_LOOP>
- * or <IP_MULTICAST_TTL>. This is just a more concise, nice interface to a
- * subset of possible <ACE_SOCK::set_option> calls, but only works for
- * IPPROTO_IP or IPPROTO_IPV6 level options. Use <ACE_SOCK::set_option>
- * directly to set anything else.
- * \deprecated { This method has been deprecated since it cannot be used
- * easily with with IPv6 options.}
- * Returns 0 on success, -1 on failure.
- */
- int set_option (int option,
- char optval);
-
- /// Dump the state of an object.
- /**
- * Logs the setting of all options, the bound address, the send address and
- * interface, and the list of current subscriptions.
- */
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
-
- /// Subscribe to a multicast address on one or more network interface(s).
- /// (No QoS support.)
- int subscribe_ifs (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if,
- int reuse_addr);
-
- /// Do subscription processing w/out updating the subscription list.
- // (Layered method for <subscribe> processing).
- int subscribe_i (const ACE_INET_Addr &mcast_addr,
- int reuse_addr = 1,
- const ACE_TCHAR *net_if = 0);
-
- /// Unsubscribe from a multicast address on one or more network interface(s).
- int unsubscribe_ifs (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if = 0);
-
- /// Do unsubscription processing w/out udpating subscription list.
- // (Layered method for <unsubscribe> processing).
- int unsubscribe_i (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if = 0);
-
-protected:
-
- /// Contains common open functionality so that inheriting classes can
- /// reuse it.
- int open_i (const ACE_INET_Addr &mcast_addr, // Bound & sendto address.
- const ACE_TCHAR *net_if = 0, // Net interface for sends.
- int reuse_addr = 1);
-
- /// Create a multicast addr/if pair, in format useful for system calls.
- /// If mreq param is NULL, just verify the passed addr/interface specs.
- int make_multicast_ifaddr (ip_mreq *mreq, // Put result here, if != NULL.
- const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if);
-
- /// Create a multicast addr/if pair. This method factors out common
- /// code called by <make_multicast_address> and <subscribe>.
- int make_multicast_ifaddr_i (ip_mreq* mreq, // Put result here, if != NULL.
- const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if = ACE_LIB_TEXT ("le0"));
-
- /// Empty the dynamic subscription list.
- int clear_subs_list (void);
-
-private:
-
- /// Per-instance options..
- int opts_;
-
- /// Multicast address to which local <send> methods send datagrams.
- ACE_INET_Addr send_addr_;
- /// Network interface to which all <send> methods send multicast datagrams.
- ACE_TCHAR *send_net_if_;
-
-#if defined (ACE_SOCK_DGRAM_MCAST_DUMPABLE)
- typedef ACE_DLList<ip_mreq> subscription_list_t;
- typedef ACE_DLList_Iterator<ip_mreq> subscription_list_iter_t;
- /// List of currently subscribed addr/iface pairs (and assc. types).
- ACE_MUTABLE subscription_list_t subscription_list_;
- /// Lock used to protect subscription list.
- ACE_MUTABLE ACE_SDM_LOCK subscription_list_lock_;
- // (Lock type does not need to support recursive locking.)
-#endif /* ACE_SOCK_DGRAM_MCAST_DUMPABLE */
-
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_Dgram_Mcast.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-#endif /* ACE_SOCK_DGRAM_MCAST_H */
diff --git a/ace/SOCK_Dgram_Mcast.i b/ace/SOCK_Dgram_Mcast.i
deleted file mode 100644
index c50b572f14c..00000000000
--- a/ace/SOCK_Dgram_Mcast.i
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ASYS_INLINE int
-ACE_SOCK_Dgram_Mcast::set_option (int option,
- char optval)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::set_option");
-
- if (this->get_handle () == ACE_INVALID_HANDLE)
- return -1;
-
- int level = IPPROTO_IP;
-#if defined (IPPROTO_IPV6) && ! defined (INTEGRITY)
- if (this->send_addr_.get_type () == PF_INET6)
- level = IPPROTO_IPV6;
-#endif /* IPPROTO_IPV6 */
-
- return this->ACE_SOCK::set_option (level,
- option,
- &optval,
- sizeof (optval));
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Dgram_Mcast::send (const void *buf,
- size_t n,
- int flags) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::send");
- return this->ACE_SOCK_Dgram::send (buf,
- n,
- this->send_addr_,
- flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Dgram_Mcast::send (const iovec iov[],
- int n,
- int flags) const
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::send");
- return this->ACE_SOCK_Dgram::send (iov,
- n,
- this->send_addr_,
- flags);
-}
diff --git a/ace/SOCK_IO.cpp b/ace/SOCK_IO.cpp
deleted file mode 100644
index 34ec0ca9fae..00000000000
--- a/ace/SOCK_IO.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-// SOCK_IO.cpp
-// $Id$
-
-#include "ace/SOCK_IO.h"
-#include "ace/Handle_Set.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_IO.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID(ace, SOCK_IO, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_IO)
-
-void
-ACE_SOCK_IO::dump (void) const
-{
- ACE_TRACE ("ACE_SOCK_IO::dump");
-}
-
-// Allows a client to read from a socket without having to provide
-// a buffer to read. This method determines how much data is in the
-// socket, allocates a buffer of this size, reads in the data, and
-// returns the number of bytes read.
-
-ssize_t
-ACE_SOCK_IO::recvv (iovec *io_vec,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_IO::recvv");
-#if defined (FIONREAD)
- ACE_Handle_Set handle_set;
- handle_set.reset ();
- handle_set.set_bit (this->get_handle ());
-
- io_vec->iov_base = 0;
-
- // Check the status of the current socket.
- int select_width;
-# if defined (ACE_WIN64)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- select_width = 0;
-# else
- select_width = int (this->get_handle ()) + 1;
-# endif /* ACE_WIN64 */
- switch (ACE_OS::select (select_width,
- handle_set,
- 0, 0,
- timeout))
- {
- case -1:
- return -1;
- /* NOTREACHED */
- case 0:
- errno = ETIME;
- return -1;
- /* NOTREACHED */
- default:
- // Goes fine, fallthrough to get data
- break;
- }
-
- u_long inlen;
-
- if (ACE_OS::ioctl (this->get_handle (),
- FIONREAD,
- (u_long *) &inlen) == -1)
- return -1;
- else if (inlen > 0)
- {
- ACE_NEW_RETURN (io_vec->iov_base,
- char[inlen],
- -1);
- io_vec->iov_len = this->recv (io_vec->iov_base,
- inlen);
- return io_vec->iov_len;
- }
- else
- return 0;
-#else
- ACE_UNUSED_ARG (io_vec);
- ACE_UNUSED_ARG (timeout);
- ACE_NOTSUP_RETURN (-1);
-#endif /* FIONREAD */
-}
-
-// Send N char *ptrs and int lengths. Note that the char *'s precede
-// the ints (basically, an varargs version of writev). The count N is
-// the *total* number of trailing arguments, *not* a couple of the
-// number of tuple pairs!
-
-ssize_t
-ACE_SOCK_IO::send (size_t n, ...) const
-{
- ACE_TRACE ("ACE_SOCK_IO::send");
-
- va_list argp;
- int total_tuples = ACE_static_cast (int, n) / 2;
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (int i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, int);
- }
-
- ssize_t result = ACE_OS::sendv (this->get_handle (),
- iovp,
- total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
-}
-
-// This is basically an interface to ACE_OS::readv, that doesn't use
-// the struct iovec_Base explicitly. The ... can be passed as an arbitrary
-// number of (char *ptr, int len) tuples. However, the count N is the
-// *total* number of trailing arguments, *not* a couple of the number
-// of tuple pairs!
-
-ssize_t
-ACE_SOCK_IO::recv (size_t n, ...) const
-{
- ACE_TRACE ("ACE_SOCK_IO::recv");
-
- va_list argp;
- int total_tuples = ACE_static_cast (int, (n / 2));
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (int i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, int);
- }
-
- ssize_t result = ACE_OS::recvv (this->get_handle (),
- iovp,
- total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
-}
diff --git a/ace/SOCK_IO.h b/ace/SOCK_IO.h
deleted file mode 100644
index 67b4be8a5d8..00000000000
--- a/ace/SOCK_IO.h
+++ /dev/null
@@ -1,147 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file SOCK_IO.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_SOCK_IO_H
-#define ACE_SOCK_IO_H
-
-#include "ace/pre.h"
-
-#include "ace/SOCK.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/ACE.h"
-
-/**
- * @class ACE_SOCK_IO
- *
- * @brief Defines the methods for the ACE socket wrapper I/O routines
- * (e.g., send/recv).
- *
- *
- * If <timeout> == 0, then the call behaves as a normal
- * send/recv call, i.e., for blocking sockets, the call will
- * block until action is possible; for non-blocking sockets,
- * EWOULDBLOCK will be returned if no action is immediately
- * possible.
- * If <timeout> != 0, the call will wait until the relative time
- * specified in *<timeout> elapses.
- * Errors are reported by -1 and 0 return values. If the
- * operation times out, -1 is returned with <errno == ETIME>.
- * If it succeeds the number of bytes transferred is returned.
- * Methods with the extra <flags> argument will always result in
- * <send> getting called. Methods without the extra <flags>
- * argument will result in <send> getting called on Win32
- * platforms, and <write> getting called on non-Win32 platforms.
- */
-class ACE_Export ACE_SOCK_IO : public ACE_SOCK
-{
-public:
- // = Initialization and termination methods.
-
- /// Constructor.
- ACE_SOCK_IO (void);
-
- /// Destructor.
- ~ACE_SOCK_IO (void);
-
- /// Recv an <n> byte buffer from the connected socket.
- ssize_t recv (void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Recv an <n> byte buffer from the connected socket.
- ssize_t recv (void *buf,
- size_t n,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Recv an <iovec> of size <n> from the connected socket.
- ssize_t recvv (iovec iov[],
- int n,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Same as above. Deprecated.
- ssize_t recv (iovec iov[],
- size_t n,
- const ACE_Time_Value *timeout = 0) const;
-
- /**
- * Allows a client to read from a socket without having to provide a
- * buffer to read. This method determines how much data is in the
- * socket, allocates a buffer of this size, reads in the data, and
- * returns the number of bytes read. The caller is responsible for
- * deleting the member in the <iov_base> field of <io_vec> using
- * delete [] io_vec->iov_base.
- */
- ssize_t recvv (iovec *io_vec,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Same as above. Deprecated.
- ssize_t recv (iovec *io_vec,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Recv <n> varargs messages to the connected socket.
- ssize_t recv (size_t n,
- ...) const;
-
- /// Recv <n> bytes via Win32 <ReadFile> using overlapped I/O.
- ssize_t recv (void *buf,
- size_t n,
- ACE_OVERLAPPED *overlapped) const;
-
- /// Send an <n> byte buffer to the connected socket.
- ssize_t send (const void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Send an <n> byte buffer to the connected socket.
- ssize_t send (const void *buf,
- size_t n,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Send an <iovec> of size <n> to the connected socket.
- ssize_t sendv (const iovec iov[],
- int n,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Same as above. Deprecated.
- ssize_t send (const iovec iov[],
- size_t n,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Send <n> varargs messages to the connected socket.
- ssize_t send (size_t n,
- ...) const;
-
- /// Send <n> bytes via Win32 <WriteFile> using overlapped I/O.
- ssize_t send (const void *buf,
- size_t n,
- ACE_OVERLAPPED *overlapped) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_IO.i"
-#endif
-
-#include "ace/post.h"
-
-#endif /* ACE_SOCK_IO_H */
diff --git a/ace/SOCK_IO.i b/ace/SOCK_IO.i
deleted file mode 100644
index f8f91016330..00000000000
--- a/ace/SOCK_IO.i
+++ /dev/null
@@ -1,149 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SOCK_IO.i
-
-// Send an n byte message to the connected socket.
-
-ASYS_INLINE
-ACE_SOCK_IO::ACE_SOCK_IO (void)
-{
- // ACE_TRACE ("ACE_SOCK_IO::ACE_SOCK_IO");
-}
-
-ASYS_INLINE
-ACE_SOCK_IO::~ACE_SOCK_IO (void)
-{
- // ACE_TRACE ("ACE_SOCK_IO::~ACE_SOCK_IO");
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_IO::recv (void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_IO::recv");
- return ACE::recv (this->get_handle (),
- buf,
- len,
- flags,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_IO::recv (void *buf,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_IO::recv");
- return ACE::recv (this->get_handle (),
- buf,
- len,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_IO::recvv (iovec iov[],
- int n,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_IO::recvv");
- return ACE::recvv (this->get_handle (),
- iov,
- n,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_IO::recv (iovec iov[],
- size_t n,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_IO::recv");
- return this->recvv (iov,
- ACE_static_cast (int, n),
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_IO::recv (iovec *io_vec,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_IO::recv");
- return this->recvv (io_vec,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_IO::recv (void *buf,
- size_t n,
- ACE_OVERLAPPED *overlapped) const
-{
- ACE_TRACE ("ACE_SOCK_IO::recv");
- return ACE_OS::read (this->get_handle (),
- (char *) buf,
- n,
- overlapped);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_IO::send (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_IO::send");
- return ACE::send (this->get_handle (),
- buf,
- len,
- flags,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_IO::send (const void *buf,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_IO::send");
- return ACE::send (this->get_handle (),
- buf,
- len,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_IO::sendv (const iovec iov[],
- int n,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_IO::sendv");
- return ACE::sendv (this->get_handle (),
- iov,
- n,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_IO::send (const iovec iov[],
- size_t n,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_IO::send");
- return this->sendv (iov,
- ACE_static_cast (int, n),
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_IO::send (const void *buf,
- size_t n,
- ACE_OVERLAPPED *overlapped) const
-{
- ACE_TRACE ("ACE_SOCK_IO::send");
- return ACE_OS::write (this->get_handle (),
- (const char *) buf,
- n,
- overlapped);
-}
diff --git a/ace/SOCK_SEQPACK_Acceptor.cpp b/ace/SOCK_SEQPACK_Acceptor.cpp
deleted file mode 100644
index a6622889215..00000000000
--- a/ace/SOCK_SEQPACK_Acceptor.cpp
+++ /dev/null
@@ -1,513 +0,0 @@
-// SOCK_SEQPACK_Acceptor.cpp
-// $Id$
-
-#include "ace/SOCK_SEQPACK_Acceptor.h"
-
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_SEQPACK_Acceptor.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/Synch.h"
-#include "ace/Auto_Ptr.h"
-
-ACE_RCSID(ace, SOCK_SEQPACK_Acceptor, "SOCK_SEQPACK_Acceptor.cpp,v 4.30 2002/03/08 23:18:09 spark Exp")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_SEQPACK_Acceptor)
-
-// Do nothing routine for constructor.
-
-ACE_SOCK_SEQPACK_Acceptor::ACE_SOCK_SEQPACK_Acceptor (void)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::ACE_SOCK_SEQPACK_Acceptor");
-}
-
-// Performs the timed accept operation.
-
-int
-ACE_SOCK_SEQPACK_Acceptor::shared_accept_start (ACE_Time_Value *timeout,
- int restart,
- int &in_blocking_mode) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::shared_accept_start");
-
- ACE_HANDLE handle = this->get_handle ();
-
- // Handle the case where we're doing a timed <accept>.
- if (timeout != 0)
- {
- if (ACE::handle_timed_accept (handle,
- timeout,
- restart) == -1)
- return -1;
- else
- {
- in_blocking_mode = ACE_BIT_DISABLED (ACE::get_flags (handle),
- ACE_NONBLOCK);
- // Set the handle into non-blocking mode if it's not already
- // in it.
- if (in_blocking_mode
- && ACE::set_flags (handle,
- ACE_NONBLOCK) == -1)
- return -1;
- }
- }
-
- return 0;
-}
-
-int
-ACE_SOCK_SEQPACK_Acceptor::shared_accept_finish (ACE_SOCK_SEQPACK_Association new_association,
- int in_blocking_mode,
- int reset_new_handle) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::shared_accept_finish ()");
-
- ACE_HANDLE new_handle = new_association.get_handle ();
-
- // Check to see if we were originally in blocking mode, and if so,
- // set the <new_association>'s handle and <this> handle to be in blocking
- // mode.
- if (in_blocking_mode)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
-
- // Only disable ACE_NONBLOCK if we weren't in non-blocking mode
- // originally.
- ACE::clr_flags (this->get_handle (),
- ACE_NONBLOCK);
- ACE::clr_flags (new_handle,
- ACE_NONBLOCK);
- }
-
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- if (reset_new_handle)
- // Reset the event association inherited by the new handle.
- ::WSAEventSelect ((SOCKET) new_handle, 0, 0);
-#else
- ACE_UNUSED_ARG (reset_new_handle);
-#endif /* ACE_WIN32 */
-
- return new_handle == ACE_INVALID_HANDLE ? -1 : 0;
-}
-
-// General purpose routine for accepting new connections.
-
-int
-ACE_SOCK_SEQPACK_Acceptor::accept (ACE_SOCK_SEQPACK_Association &new_association,
- ACE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::accept");
-
- int in_blocking_mode = 0;
- if (this->shared_accept_start (timeout,
- restart,
- in_blocking_mode) == -1)
- return -1;
- else
- {
- // On Win32 the third parameter to <accept> must be a NULL
- // pointer if we want to ignore the client's address.
- int *len_ptr = 0;
- sockaddr *addr = 0;
- int len = 0;
-
- if (remote_addr != 0)
- {
- len = remote_addr->get_size ();
- len_ptr = &len;
- addr = (sockaddr *) remote_addr->get_addr ();
- }
-
- do
- new_association.set_handle (ACE_OS::accept (this->get_handle (),
- addr,
- len_ptr));
- while (new_association.get_handle () == ACE_INVALID_HANDLE
- && restart != 0
- && errno == EINTR
- && timeout == 0);
-
- // Reset the size of the addr, so the proper UNIX/IPv4/IPv6 family
- // is known.
- if (new_association.get_handle () != ACE_INVALID_HANDLE
- && remote_addr != 0)
- {
- remote_addr->set_size (len);
- remote_addr->set_type (addr->sa_family);
- }
- }
-
- return this->shared_accept_finish (new_association,
- in_blocking_mode,
- reset_new_handle);
-}
-
-void
-ACE_SOCK_SEQPACK_Acceptor::dump (void) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::dump");
-}
-
-int
-ACE_SOCK_SEQPACK_Acceptor::shared_open (const ACE_Addr &local_sap,
- int protocol_family,
- int backlog)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::shared_open");
- int error = 0;
-
-#if defined (ACE_HAS_IPV6)
- ACE_ASSERT (protocol_family == PF_INET || protocol_family == PF_INET6);
-
- if (protocol_family == PF_INET6)
- {
- sockaddr_in6 local_inet6_addr;
- ACE_OS::memset (ACE_reinterpret_cast (void *,
- &local_inet6_addr),
- 0,
- sizeof local_inet6_addr);
-
- if (local_sap == ACE_Addr::sap_any)
- {
- local_inet6_addr.sin6_family = AF_INET6;
- local_inet6_addr.sin6_port = 0;
- local_inet6_addr.sin6_addr = in6addr_any;
- }
- else
- local_inet6_addr = *ACE_reinterpret_cast (sockaddr_in6 *,
- local_sap.get_addr ());
-
- // We probably don't need a bind_port written here.
- // There are currently no supported OS's that define
- // ACE_LACKS_WILDCARD_BIND.
- if (ACE_OS::bind (this->get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- &local_inet6_addr),
- sizeof local_inet6_addr) == -1)
- error = 1;
- }
- else
-#endif
- if (protocol_family == PF_INET)
- {
- sockaddr_in local_inet_addr;
- ACE_OS::memset (ACE_reinterpret_cast (void *,
- &local_inet_addr),
- 0,
- sizeof local_inet_addr);
-
- if (local_sap == ACE_Addr::sap_any)
- {
- local_inet_addr.sin_port = 0;
- }
- else
- local_inet_addr = *ACE_reinterpret_cast (sockaddr_in *,
- local_sap.get_addr ());
- if (local_inet_addr.sin_port == 0)
- {
- if (ACE::bind_port (this->get_handle ()) == -1)
- error = 1;
- }
- else if (ACE_OS::bind (this->get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- &local_inet_addr),
- sizeof local_inet_addr) == -1)
- error = 1;
- }
- else if (ACE_OS::bind (this->get_handle (),
- (sockaddr *) local_sap.get_addr (),
- local_sap.get_size ()) == -1)
- error = 1;
-
- if (error != 0
- || ACE_OS::listen (this->get_handle (),
- backlog) == -1)
- {
- error = 1;
- this->close ();
- }
-
- return error ? -1 : 0;
-}
-
-// Multihomed version of same.
-
-int
-ACE_SOCK_SEQPACK_Acceptor::shared_open (const ACE_Multihomed_INET_Addr &local_sap,
- int protocol_family,
- int backlog)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::shared_open");
- int error = 0;
-
- // TODO: Add multi-address support to IPV6
-#if defined (ACE_HAS_IPV6)
- ACE_ASSERT (protocol_family == PF_INET || protocol_family == PF_INET6);
-
- if (protocol_family == PF_INET6)
- {
- sockaddr_in6 local_inet6_addr;
- ACE_OS::memset (ACE_reinterpret_cast (void *,
- &local_inet6_addr),
- 0,
- sizeof local_inet6_addr);
-
- if (local_sap == ACE_Addr::sap_any)
- {
- local_inet6_addr.sin6_family = AF_INET6;
- local_inet6_addr.sin6_port = 0;
- local_inet6_addr.sin6_addr = in6addr_any;
- }
- else
- local_inet6_addr = *ACE_reinterpret_cast (sockaddr_in6 *,
- local_sap.get_addr ());
-
- // We probably don't need a bind_port written here.
- // There are currently no supported OS's that define
- // ACE_LACKS_WILDCARD_BIND.
- if (ACE_OS::bind (this->get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- &local_inet6_addr),
- sizeof local_inet6_addr) == -1)
- error = 1;
- }
- else
-#endif
- if (protocol_family == PF_INET)
- {
- sockaddr_in local_inet_addr;
- ACE_OS::memset (ACE_reinterpret_cast (void *,
- &local_inet_addr),
- 0,
- sizeof local_inet_addr);
-
- if (local_sap.ACE_Addr::operator== (ACE_Addr::sap_any))
- {
- local_inet_addr.sin_port = 0;
- }
- else
- local_inet_addr = *ACE_reinterpret_cast (sockaddr_in *,
- local_sap.get_addr ());
- if (local_inet_addr.sin_port == 0)
- {
- if (ACE::bind_port (this->get_handle ()) == -1)
- error = 1;
- }
- else
- {
- // The total number of addresses is the number of secondary
- // addresses plus one.
- size_t num_addresses = local_sap.get_num_secondary_addresses() + 1;
-
- // Create an array of sockaddr_in to hold the underlying
- // representations of the primary and secondary
- // addresses.
- sockaddr_in* local_inet_addrs = 0;
- ACE_NEW_NORETURN(local_inet_addrs,
- sockaddr_in[num_addresses]);
-
- if (!local_inet_addrs)
- error = 1;
- else
- {
- // Populate the array by invoking the get_addresses method
- // on the Multihomed_INET_Addr
- local_sap.get_addresses(local_inet_addrs,
- num_addresses);
-
- // Call bind
- if (ACE_OS::bind (this->get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- local_inet_addrs),
- (sizeof local_inet_addr)*num_addresses) == -1)
- error = 1;
- }
-
- delete [] local_inet_addrs;
- }
- }
- else if (ACE_OS::bind (this->get_handle (),
- (sockaddr *) local_sap.get_addr (),
- local_sap.get_size ()) == -1)
- error = 1;
-
- if (error != 0
- || ACE_OS::listen (this->get_handle (),
- backlog) == -1)
- {
- error = 1;
- this->close ();
- }
-
- return error ? -1 : 0;
-}
-
-int
-ACE_SOCK_SEQPACK_Acceptor::open (const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::open");
-
- if (protocol_family == PF_UNSPEC)
- protocol_family = local_sap.get_type ();
-
-
- if (ACE_SOCK::open (SOCK_SEQPACKET,
- protocol_family,
- protocol,
- protocolinfo,
- g,
- flags,
- reuse_addr) == -1)
- return -1;
- else
- return this->shared_open (local_sap,
- protocol_family,
- backlog);
-}
-
-ACE_SOCK_SEQPACK_Acceptor::ACE_SOCK_SEQPACK_Acceptor (const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::ACE_SOCK_SEQPACK_Acceptor");
- if (this->open (local_sap,
- protocolinfo,
- g,
- flags,
- reuse_addr,
- protocol_family,
- backlog,
- protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK_SEQPACK_Acceptor")));
-}
-
-// General purpose routine for performing server ACE_SOCK creation.
-
-int
-ACE_SOCK_SEQPACK_Acceptor::open (const ACE_Addr &local_sap,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::open");
-
- if (local_sap != ACE_Addr::sap_any)
- protocol_family = local_sap.get_type ();
- else if (protocol_family == PF_UNSPEC)
- {
-#if defined (ACE_HAS_IPV6)
- protocol_family = ACE_Sock_Connect::ipv6_enabled () ? PF_INET6 : PF_INET;
-#else
- protocol_family = PF_INET;
-#endif /* ACE_HAS_IPV6 */
- }
-
- if (ACE_SOCK::open (SOCK_SEQPACKET,
- protocol_family,
- protocol,
- reuse_addr) == -1)
- return -1;
- else
- return this->shared_open (local_sap,
- protocol_family,
- backlog);
-}
-
-// Multihomed version of same.
-
-int
-ACE_SOCK_SEQPACK_Acceptor::open (const ACE_Multihomed_INET_Addr &local_sap,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::open");
-
- if (local_sap.ACE_Addr::operator!= (ACE_Addr::sap_any))
- protocol_family = local_sap.get_type ();
- else if (protocol_family == PF_UNSPEC)
- {
-#if defined (ACE_HAS_IPV6)
- protocol_family = ACE_Sock_Connect::ipv6_enabled () ? PF_INET6 : PF_INET;
-#else
- protocol_family = PF_INET;
-#endif /* ACE_HAS_IPV6 */
- }
-
- if (ACE_SOCK::open (SOCK_SEQPACKET,
- protocol_family,
- protocol,
- reuse_addr) == -1)
- return -1;
- else
- return this->shared_open (local_sap,
- protocol_family,
- backlog);
-}
-
-// General purpose routine for performing server ACE_SOCK creation.
-
-ACE_SOCK_SEQPACK_Acceptor::ACE_SOCK_SEQPACK_Acceptor (const ACE_Addr &local_sap,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::ACE_SOCK_SEQPACK_Acceptor");
- if (this->open (local_sap,
- reuse_addr,
- protocol_family,
- backlog,
- protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK_SEQPACK_Acceptor")));
-}
-
-// Multihomed version of same.
-
-ACE_SOCK_SEQPACK_Acceptor::ACE_SOCK_SEQPACK_Acceptor (const ACE_Multihomed_INET_Addr &local_sap,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::ACE_SOCK_SEQPACK_Acceptor");
- if (this->open (local_sap,
- reuse_addr,
- protocol_family,
- backlog,
- protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK_SEQPACK_Acceptor")));
-}
-
-int
-ACE_SOCK_SEQPACK_Acceptor::close (void)
-{
- return ACE_SOCK::close ();
-}
-
diff --git a/ace/SOCK_SEQPACK_Acceptor.h b/ace/SOCK_SEQPACK_Acceptor.h
deleted file mode 100644
index 2cbc10a67b8..00000000000
--- a/ace/SOCK_SEQPACK_Acceptor.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/* -*- C++ -*- */
-
-
-//=============================================================================
-/**
- * @file SOCK_SEQPACK_Acceptor.h
- *
- * $Id$
- * @author Patrick J. Lardieri <plardier@atl.lmco.com>
- * @author based on SOCK_STREAM_Acceptor
- * by Douglas C. Schmidt <schmidt@cs.wustl.edu>
- *
- */
-//=============================================================================
-
-#ifndef ACE_SOCK_SEQ_ACCEPTOR_H
-#define ACE_SOCK_SEQ_ACCEPTOR_H
-
-#include "ace/pre.h"
-#include "ace/config.h"
-#include "ace/ACE_export.h"
-
-#include "ace/SOCK_SEQPACK_Association.h"
-#include "ace/Multihomed_INET_Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Time_Value.h"
-
-/**
- * @class ACE_SOCK_SEQPACK_Acceptor
- *
- * @brief Defines a factory that creates new <ACE_Association>s passively.
- *
- * The <ACE_SOCK_SEQPACK_Acceptor> has its own "passive-mode" socket.
- * This serves as a factory to create so-called "data-mode"
- * sockets, which are what the <ACE_SOCK_SEQPACK_Association> encapsulates.
- * Therefore, by inheriting from <ACE_SOCK>, <ACE_SOCK_SEQPACK_Acceptor>
- * gets its very own socket.
- */
-class ACE_Export ACE_SOCK_SEQPACK_Acceptor : public ACE_SOCK
-{
-public:
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_SOCK_SEQPACK_Acceptor (void);
-
- /**
- * Initialize a passive-mode BSD-style acceptor socket (no QoS).
- * <local_sap> is the address that we're going to listen for
- * connections on. If <reuse_addr> is 1 then we'll use the
- * <SO_REUSEADDR> to reuse this address.
- */
- ACE_SOCK_SEQPACK_Acceptor (const ACE_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = PF_UNSPEC,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /// Multihomed version of same
-
- ACE_SOCK_SEQPACK_Acceptor (const ACE_Multihomed_INET_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = PF_UNSPEC,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /// Initialize a passive-mode QoS-enabled acceptor socket. Returns 0
- /// on success and -1 on failure.
- ACE_SOCK_SEQPACK_Acceptor (const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int protocol_family = PF_UNSPEC,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
-
- /**
- * Initialize a passive-mode BSD-style acceptor socket (no QoS).
- * <local_sap> is the address that we're going to listen for
- * connections on. If <reuse_addr> is 1 then we'll use the
- * <SO_REUSEADDR> to reuse this address. Returns 0 on success and
- * -1 on failure.
- */
- int open (const ACE_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = PF_UNSPEC,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /// Multihomed version of same
-
- int open (const ACE_Multihomed_INET_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = PF_UNSPEC,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
-
- /// Initialize a passive-mode QoS-enabled acceptor socket. Returns 0
- /// on success and -1 on failure.
- int open (const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int protocol_family = PF_UNSPEC,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /// Close the socket. Returns 0 on success and -1 on failure.
- int close (void);
-
- /// Default dtor.
- ~ACE_SOCK_SEQPACK_Acceptor (void);
-
- // = Passive connection <accept> methods.
- /**
- * Accept a new <ACE_SOCK_SEQPACK_Association> connection. A <timeout> of 0
- * means block forever, a <timeout> of {0, 0} means poll. <restart>
- * == 1 means "restart if interrupted," i.e., if errno == EINTR.
- * Note that <new_association> inherits the "blocking mode" of <this>
- * <ACE_SOCK_SEQPACK_Acceptor>, i.e., if <this> acceptor factory is in
- * non-blocking mode, the <net_association> will be in non-blocking mode
- * and vice versa.
- */
- int accept (ACE_SOCK_SEQPACK_Association &new_association,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
-
- // = Meta-type info
- typedef ACE_INET_Addr PEER_ADDR;
- typedef ACE_SOCK_SEQPACK_Association PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Perform operations that must occur before <ACE_OS::accept> is
- /// called.
- int shared_accept_start (ACE_Time_Value *timeout,
- int restart,
- int &in_blocking_mode) const;
-
- /// Perform operations that must occur after <ACE_OS::accept> is
- /// called.
- int shared_accept_finish (ACE_SOCK_SEQPACK_Association new_association,
- int in_blocking_mode,
- int reset_new_handle) const;
-
- /**
- * This method factors out the common <open> code and is called by
- * both the QoS-enabled <open> method and the BSD-style <open>
- * method.
- */
- int shared_open (const ACE_Addr &local_sap,
- int protocol_family,
- int backlog);
-
- /// Multihomed version of same.
-
- int shared_open (const ACE_Multihomed_INET_Addr &local_sap,
- int protocol_family,
- int backlog);
-
-private:
- /// Do not allow this function to percolate up to this interface...
- int get_remote_addr (ACE_Addr &) const;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_SEQPACK_Acceptor.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-
-#endif /* ACE_SOCK_SEQ_ACCEPTOR_H */
diff --git a/ace/SOCK_SEQPACK_Acceptor.i b/ace/SOCK_SEQPACK_Acceptor.i
deleted file mode 100644
index 73421d31d0c..00000000000
--- a/ace/SOCK_SEQPACK_Acceptor.i
+++ /dev/null
@@ -1,12 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SOCK_SEQPACK_Acceptor.i
-
-ASYS_INLINE
-ACE_SOCK_SEQPACK_Acceptor::~ACE_SOCK_SEQPACK_Acceptor (void)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Acceptor::~ACE_SOCK_SEQPACK_Acceptor");
-}
-
-
diff --git a/ace/SOCK_SEQPACK_Association.cpp b/ace/SOCK_SEQPACK_Association.cpp
deleted file mode 100644
index 9a672f73126..00000000000
--- a/ace/SOCK_SEQPACK_Association.cpp
+++ /dev/null
@@ -1,173 +0,0 @@
-// SOCK_SEQPACK_Association.cpp
-
-#include /**/ "ace/SOCK_SEQPACK_Association.h"
-#include /**/ "ace/Auto_Ptr.h"
-#include /**/ "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include /**/ "ace/SOCK_SEQPACK_Association.i"
-#endif
-
-ACE_RCSID(ace, SOCK_SEQPACK_Association, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_SEQPACK_Association)
-
-void
-ACE_SOCK_SEQPACK_Association::dump (void) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::dump");
-}
-
-int
-ACE_SOCK_SEQPACK_Association::close (void)
-{
-#if defined (ACE_WIN32)
- // We need the following call to make things work correctly on
- // Win32, which requires use to do a <close_writer> before doing the
- // close in order to avoid losing data. Note that we don't need to
- // do this on UNIX since it doesn't have this "feature". Moreover,
- // this will cause subtle problems on UNIX due to the way that
- // fork() works.
- this->close_writer ();
-#endif /* ACE_WIN32 */
- // Close down the socket.
- return ACE_SOCK::close ();
-}
-
-int
-ACE_SOCK_SEQPACK_Association::get_local_addrs (ACE_INET_Addr *addrs, size_t &size) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::get_local_addrs");
-
- /*
- We will be calling ACE_OS::getsockname, which accepts (and
- potentially modifies) two reference parameters:
-
- 1. a sockaddr_in* that points to a buffer
- 2. an int* that points to the size of this buffer
-
- The OpenSS7 implementation of SCTP copies an array of ipv4
- sockaddr_in into the buffer. Then, if the size of the buffer is
- greater than the size used, the size parameter is reduced
- accordingly.
-
- */
-
- // The array of sockaddr_in will be stored in an ACE_Auto_Array_Ptr,
- // which causes dynamically-allocated memory to be released as soon
- // as the ACE_Auto_Array_Ptr goes out of scope.
- ACE_Auto_Array_Ptr<sockaddr_in> addr_structs;
-
- // Allocate memory for this array. Return -1 if the memory cannot
- // be allocated. (This activity requires a temporary variable---a
- // bare sockaddr_in* --- because ACE_NEW_RETURN cannot act directory on
- // an ACE_Auto_Array_Ptr.)
- {
- sockaddr_in *addr_structs_bootstrap = 0;
- ACE_NEW_RETURN(addr_structs_bootstrap,
- sockaddr_in[size],
- -1);
- addr_structs.reset(addr_structs_bootstrap);
- }
-
- // Physical size of this array is its logical size multiplied by
- // the physical size of one of its elements.
- int physical_size = size * sizeof(sockaddr_in);
-
- /* Clear the array */
- ACE_OS::memset(addr_structs.get(),
- 0,
- physical_size);
-
- /* Populate the array with real values from the getsockname system
- call. The variables addr_structs and phycisal_size are
- modified. */
- if (ACE_OS::getsockname (this->get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- addr_structs.get()),
- &physical_size) == -1)
- return -1;
-
- /* Calculate the NEW physical size of the array */
- size = physical_size / sizeof (sockaddr_in);
-
- /* Copy each sockaddr_in to the address structure of an ACE_Addr from
- the passed-in array */
- for (size_t i = 0; i < size; ++i) {
-
- addrs[i].set_addr(&(addr_structs[i]), sizeof(sockaddr_in));
- addrs[i].set_type(addr_structs[i].sin_family);
- addrs[i].set_size(sizeof(sockaddr_in));
- }
-
- return 0;
-}
-
-int
-ACE_SOCK_SEQPACK_Association::get_remote_addrs (ACE_INET_Addr *addrs, size_t &size) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::get_remote_addrs");
-
- /*
- We will be calling ACE_OS::getpeername, which accepts (and
- potentially modifies) two reference parameters:
-
- 1. a sockaddr_in* that points to a buffer
- 2. an int* that points to the size of this buffer
-
- The OpenSS7 implementation of SCTP copies an array of ipv4
- sockaddr_in into the buffer. Then, if the size of the buffer is
- greater than the size used, the size parameter is reduced
- accordingly.
-
- */
-
- // The array of sockaddr_in will be stored in an ACE_Auto_Array_Ptr,
- // which causes dynamically-allocated memory to be released as soon
- // as the ACE_Auto_Array_Ptr goes out of scope.
- ACE_Auto_Array_Ptr<sockaddr_in> addr_structs;
-
- // Allocate memory for this array. Return -1 if the memory cannot
- // be allocated. (This activity requires a temporary variable---a
- // bare sockaddr_in* --- because ACE_NEW_RETURN cannot act directory on
- // an ACE_Auto_Array_Ptr.)
- {
- sockaddr_in *addr_structs_bootstrap = 0;
- ACE_NEW_RETURN(addr_structs_bootstrap,
- sockaddr_in[size],
- -1);
- addr_structs.reset(addr_structs_bootstrap);
- }
-
- // Physical size of this array is its logical size multiplied by
- // the physical size of one of its elements.
- int physical_size = size * sizeof(sockaddr_in);
-
- /* Clear the array */
- ACE_OS::memset(addr_structs.get(),
- 0,
- physical_size);
-
- /* Populate the array with real values from the getpeername system
- call. The variables addr_structs and phycisal_size are
- modified. */
- if (ACE_OS::getpeername (this->get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- addr_structs.get()),
- &physical_size) == -1)
- return -1;
-
- /* Calculate the NEW physical size of the array */
- size = physical_size / sizeof (sockaddr_in);
-
- /* Copy each sockaddr_in to the address structure of an ACE_Addr from
- the passed-in array */
- for (size_t i = 0; i < size; ++i) {
-
- addrs[i].set_addr(&(addr_structs[i]), sizeof(sockaddr_in));
- addrs[i].set_type(addr_structs[i].sin_family);
- addrs[i].set_size(sizeof(sockaddr_in));
- }
-
- return 0;
-}
diff --git a/ace/SOCK_SEQPACK_Association.h b/ace/SOCK_SEQPACK_Association.h
deleted file mode 100644
index 3e285573615..00000000000
--- a/ace/SOCK_SEQPACK_Association.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- *
- * @file SOCK_SEQPACK_Association.h
- *
- * $Id$
- *
- * @author Patrick J. Lardieri <plardier@atl.lmco.com>
- * @author based on SOCK_Stream
- * by Douglas C. Schmidt <schmidt@cs.wustl.edu>
- *
- */
-//=============================================================================
-
-#ifndef ACE_SOCK_SEQPACK_ASSOCIATION_H
-#define ACE_SOCK_SEQPACK_ASSOCIATION_H
-
-#include "ace/pre.h"
-#include "ace/config.h"
-#include "ace/ACE_export.h"
-
-#include "ace/SOCK_IO.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/INET_Addr.h"
-
-// Forward declarations.
-class ACE_Message_Block;
-
-/**
- * @class ACE_SOCK_SEQPACK_Association
- *
- * @brief Defines the methods in the <ACE_SOCK_SEQPACK_Association> abstraction.
- *
- * This adds additional wrapper methods atop the <ACE_SOCK_IO>
- * class.
- *
- * <buf> is the buffer to write from or receive into.
- * <len> is the number of bytes to transfer.
- * The <timeout> parameter in the following methods indicates how
- * long to blocking trying to transfer data. If <timeout> == 0,
- * then the call behaves as a normal send/recv call, i.e., for
- * blocking sockets, the call will block until action is possible;
- * for non-blocking sockets, EWOULDBLOCK will be returned if no
- * action is immediately possible.
- * If <timeout> != 0, the call will wait for data to arrive no longer
- * than the relative time specified in *<timeout>.
- * The "_n()" I/O methods keep looping until all the data has been
- * transferred. These methods also work for sockets in non-blocking
- * mode i.e., they keep looping on EWOULDBLOCK. <timeout> is used
- * to make sure we keep making progress, i.e., the same timeout
- * value is used for every I/O operation in the loop and the timeout
- * is not counted down.
- * The return values for the "*_n()" methods match the return values
- * from the non "_n()" methods and are specified as follows:
- * - On complete transfer, the number of bytes transferred is returned.
- * - On timeout, -1 is returned, errno == ETIME.
- * - On error, -1 is returned, errno is set to appropriate error.
- * - On EOF, 0 is returned, errno is irrelevant.
- *
- * On partial transfers, i.e., if any data is transferred before
- * timeout/error/EOF, <bytes_transferred> will contain the number of
- * bytes transferred.
- * Methods with <iovec> parameter are I/O vector variants of the I/O
- * operations.
- * Methods with the extra <flags> argument will always result in
- * <send> getting called. Methods without the extra <flags> argument
- * will result in <send> getting called on Win32 platforms, and
- * <write> getting called on non-Win32 platforms.
- */
-class ACE_Export ACE_SOCK_SEQPACK_Association : public ACE_SOCK_IO
-{
-public:
- // Initialization and termination methods.
- /// Constructor.
- ACE_SOCK_SEQPACK_Association (void);
-
- /// Constructor (sets the underlying <ACE_HANDLE> with <h>).
- ACE_SOCK_SEQPACK_Association (ACE_HANDLE h);
-
- /// Destructor.
- ~ACE_SOCK_SEQPACK_Association (void);
-
- /**
- * Return local endpoint addresses in the referenced array of
- * <ACE_INET_Addr>, which should have the specified <size>. If the
- * number of local endpoint addresses is less than <size>, then
- * <size> will be set to this number. If successful, the method
- * returns 0, otherwise returns -1.
- */
- int get_local_addrs (ACE_INET_Addr *addrs, size_t &size) const;
-
- /**
- * Return remote endpoint addresses in the referenced array of
- * <ACE_INET_Addr>, which should have the specified <size>. If the
- * number of remote endpoint addresses is less than <size>, then
- * <size> will be set to this number. If successful, the method
- * returns 0, otherwise returns -1.
- */
- int get_remote_addrs (ACE_INET_Addr *addrs, size_t &size) const;
-
- // = I/O functions.
-
- /// Try to recv exactly <len> bytes into <buf> from the connected socket.
- ssize_t recv_n (void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Try to recv exactly <len> bytes into <buf> from the connected socket.
- ssize_t recv_n (void *buf,
- size_t len,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Receive an <iovec> of size <iovcnt> from the connected socket.
- ssize_t recvv_n (iovec iov[],
- size_t iovcnt,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Try to send exactly <len> bytes from <buf> to the connection socket.
- ssize_t send_n (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Try to send exactly <len> bytes from <buf> to the connected socket.
- ssize_t send_n (const void *buf,
- size_t len,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Send all the <message_block>s chained through their <next> and
- /// <cont> pointers. This call uses the underlying OS gather-write
- /// operation to reduce the domain-crossing penalty.
- ssize_t send_n (const ACE_Message_Block *message_block,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Send an <iovec> of size <iovcnt> to the connected socket.
- ssize_t sendv_n (const iovec iov[],
- size_t iovcnt,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- // = Send/receive ``urgent'' data (see TCP specs...).
- ssize_t send_urg (const void *ptr,
- size_t len = sizeof (char),
- const ACE_Time_Value *timeout = 0) const;
-
- ssize_t recv_urg (void *ptr,
- size_t len = sizeof (char),
- const ACE_Time_Value *timeout = 0) const;
-
- // = Selectively close endpoints.
- /// Close down the reader.
- int close_reader (void);
-
- /// Close down the writer.
- int close_writer (void);
-
- /**
- * Close down the socket (we need this to make things work correctly
- * on Win32, which requires use to do a <close_writer> before doing
- * the close to avoid losing data). */
- int close (void);
-
- // = Meta-type info
- typedef ACE_INET_Addr PEER_ADDR;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_SEQPACK_Association.i"
-#endif
-
-#include "ace/post.h"
-
-#endif /* ACE_SOCK_SEQPACK_ASSOCIATION_H */
diff --git a/ace/SOCK_SEQPACK_Association.i b/ace/SOCK_SEQPACK_Association.i
deleted file mode 100644
index bcb837d40b8..00000000000
--- a/ace/SOCK_SEQPACK_Association.i
+++ /dev/null
@@ -1,172 +0,0 @@
-/* -*- C++ -*- */
-// SOCK_SEQPACK_Association.i
-// $Id$
-
-#include "ace/SOCK_SEQPACK_Association.h"
-
-ASYS_INLINE
-ACE_SOCK_SEQPACK_Association::ACE_SOCK_SEQPACK_Association (void)
-{
- // ACE_TRACE ("ACE_SOCK_SEQPACK_Association::ACE_SOCK_SEQPACK_Association");
-}
-
-ASYS_INLINE
-ACE_SOCK_SEQPACK_Association::ACE_SOCK_SEQPACK_Association (ACE_HANDLE h)
-{
- // ACE_TRACE ("ACE_SOCK_SEQPACK_Association::ACE_SOCK_SEQPACK_Association");
- this->set_handle (h);
-}
-
-ASYS_INLINE
-ACE_SOCK_SEQPACK_Association::~ACE_SOCK_SEQPACK_Association (void)
-{
- // ACE_TRACE ("ACE_SOCK_SEQPACK_Association::~ACE_SOCK_SEQPACK_Association");
-}
-
-ASYS_INLINE int
-ACE_SOCK_SEQPACK_Association::close_reader (void)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::close_reader");
- if (this->get_handle () != ACE_INVALID_HANDLE)
- return ACE_OS::shutdown (this->get_handle (), ACE_SHUTDOWN_READ);
- else
- return 0;
-}
-
-// Shut down just the writing end of a ACE_SOCK.
-
-ASYS_INLINE int
-ACE_SOCK_SEQPACK_Association::close_writer (void)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::close_writer");
- if (this->get_handle () != ACE_INVALID_HANDLE)
- return ACE_OS::shutdown (this->get_handle (), ACE_SHUTDOWN_WRITE);
- else
- return 0;
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_SEQPACK_Association::recv_n (void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::recv_n");
- return ACE::recv_n (this->get_handle (),
- buf,
- len,
- flags,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_SEQPACK_Association::recv_n (void *buf,
- size_t len,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::recv_n");
- return ACE::recv_n (this->get_handle (),
- buf,
- len,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_SEQPACK_Association::recvv_n (iovec iov[],
- size_t n,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::recvv_n");
- return ACE::recvv_n (this->get_handle (),
- iov,
- n,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_SEQPACK_Association::send_n (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::send_n");
- return ACE::send_n (this->get_handle (),
- buf,
- len,
- flags,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_SEQPACK_Association::send_n (const void *buf,
- size_t len,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::send_n");
- return ACE::send_n (this->get_handle (),
- buf,
- len,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_SEQPACK_Association::sendv_n (const iovec iov[],
- size_t n,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::sendv_n");
- return ACE::sendv_n (this->get_handle (),
- iov,
- n,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_SEQPACK_Association::send_n (const ACE_Message_Block *message_block,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::send_n");
- return ACE::send_n (this->get_handle (),
- message_block,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_SEQPACK_Association::send_urg (const void *ptr,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::send_urg");
- return ACE::send (this->get_handle (),
- ptr,
- len,
- MSG_OOB,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_SEQPACK_Association::recv_urg (void *ptr,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::recv_urg");
- return ACE::recv (this->get_handle (),
- ptr,
- len,
- MSG_OOB,
- timeout);
-}
diff --git a/ace/SOCK_SEQPACK_Connector.cpp b/ace/SOCK_SEQPACK_Connector.cpp
deleted file mode 100644
index 1fe36508a41..00000000000
--- a/ace/SOCK_SEQPACK_Connector.cpp
+++ /dev/null
@@ -1,365 +0,0 @@
-// SOCK_SEQPACK_Connector.cpp
-// $Id$
-
-#include "ace/SOCK_SEQPACK_Connector.h"
-
-#include "ace/INET_Addr.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_SEQPACK_Connector.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID(ace, SOCK_SEQPACK_Connector, "SOCK_SEQPACK_Connector.cpp,v 4.35 2002/03/08 23:18:09 spark Exp")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_SEQPACK_Connector)
-
-void
-ACE_SOCK_SEQPACK_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Connector::dump");
-}
-
-int
-ACE_SOCK_SEQPACK_Connector::shared_open (ACE_SOCK_SEQPACK_Association &new_association,
- int protocol_family,
- int protocol,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Connector::shared_open");
-
-
-
- // Only open a new socket if we don't already have a valid handle.
- if (new_association.get_handle () == ACE_INVALID_HANDLE
-
- && new_association.open (SOCK_SEQPACKET,
- protocol_family,
- protocol,
- reuse_addr) == -1)
- return -1;
- else
- return 0;
-}
-
-int
-ACE_SOCK_SEQPACK_Connector::shared_open (ACE_SOCK_SEQPACK_Association &new_association,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Connector::shared_open");
-
- // Only open a new socket if we don't already have a valid handle.
- if (new_association.get_handle () == ACE_INVALID_HANDLE
- && new_association.open (SOCK_SEQPACKET,
- protocol_family,
- protocol,
- protocolinfo,
- g,
- flags,
- reuse_addr) == -1)
- return -1;
- else
- return 0;
-}
-
-int
-ACE_SOCK_SEQPACK_Connector::shared_connect_start (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Connector::shared_connect_start");
-
- if (local_sap != ACE_Addr::sap_any)
- {
- sockaddr *laddr = ACE_reinterpret_cast (sockaddr *,
- local_sap.get_addr ());
- size_t size = local_sap.get_size ();
-
- if (ACE_OS::bind (new_association.get_handle (),
- laddr,
- size) == -1)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- new_association.close ();
- return -1;
- }
- }
-
- // Enable non-blocking, if required.
- if (timeout != 0
- && new_association.enable (ACE_NONBLOCK) == -1)
- return -1;
- else
- return 0;
-}
-
-// Multihomed version of same
-int
-ACE_SOCK_SEQPACK_Connector::shared_connect_start (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Time_Value *timeout,
- const ACE_Multihomed_INET_Addr &local_sap)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Connector::shared_connect_start");
-
- if (local_sap.ACE_Addr::operator!= (ACE_Addr::sap_any))
- {
- // The total number of addresses is the number of secondary
- // addresses plus one.
- size_t num_addresses = local_sap.get_num_secondary_addresses() + 1;
-
- // Create an array of sockaddr_in to hold the underlying
- // representations of the primary and secondary
- // addresses.
- sockaddr_in* local_inet_addrs = 0;
- ACE_NEW_NORETURN(local_inet_addrs,
- sockaddr_in[num_addresses]);
- if (!local_inet_addrs)
- return -1;
-
- // Populate the array by invoking the get_addresses method on
- // the Multihomed_INET_Addr
- local_sap.get_addresses(local_inet_addrs, num_addresses);
-
- // Call bind
- if (ACE_OS::bind (new_association.get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- local_inet_addrs),
- (sizeof (sockaddr_in))*num_addresses) == -1)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- new_association.close ();
- return -1;
- }
-
- delete [] local_inet_addrs;
- }
-
- // Enable non-blocking, if required.
- if (timeout != 0
- && new_association.enable (ACE_NONBLOCK) == -1)
- return -1;
- else
- return 0;
-}
-
-int
-ACE_SOCK_SEQPACK_Connector::shared_connect_finish (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Time_Value *timeout,
- int result)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Connector::shared_connect_finish");
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
-
- if (result == -1 && timeout != 0)
- {
- // Check whether the connection is in progress.
- if (error == EINPROGRESS || error == EWOULDBLOCK)
- {
- // This expression checks if we were polling.
- if (timeout->sec () == 0
- && timeout->usec () == 0)
- error = EWOULDBLOCK;
- // Wait synchronously using timeout.
- else if (this->complete (new_association,
- 0,
- timeout) == -1)
- error = errno;
- else
- return 0;
- }
- }
-
- // EISCONN is treated specially since this routine may be used to
- // check if we are already connected.
- if (result != -1 || error == EISCONN)
- // Start out with non-blocking disabled on the <new_association>.
- new_association.disable (ACE_NONBLOCK);
- else if (!(error == EWOULDBLOCK || error == ETIMEDOUT))
- new_association.close ();
-
- return result;
-}
-
-// Actively connect and produce a new ACE_SOCK_SEQPACK_Association if things go well...
-
-
-int
-ACE_SOCK_SEQPACK_Connector::connect (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int /* flags */,
- int /* perms */,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Connector::connect");
-
- if (this->shared_open (new_association,
- remote_sap.get_type (),
- protocol,
- reuse_addr) == -1)
- return -1;
- else if (this->shared_connect_start (new_association,
- timeout,
- local_sap) == -1)
- return -1;
-
- int result = ACE_OS::connect (new_association.get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- remote_sap.get_addr ()),
- remote_sap.get_size ());
-
- return this->shared_connect_finish (new_association,
- timeout,
- result);
-}
-
-// Multihomed version of same
-int
-ACE_SOCK_SEQPACK_Connector::connect (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout,
- const ACE_Multihomed_INET_Addr &local_sap,
- int reuse_addr,
- int /* flags */,
- int /* perms */,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Connector::connect");
-
- if (this->shared_open (new_association,
- remote_sap.get_type (),
- protocol,
- reuse_addr) == -1)
- return -1;
- else if (this->shared_connect_start (new_association,
- timeout,
- local_sap) == -1)
- return -1;
-
- int result = ACE_OS::connect (new_association.get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- remote_sap.get_addr ()),
- remote_sap.get_size ());
-
- return this->shared_connect_finish (new_association,
- timeout,
- result);
-}
-
-// Try to complete a non-blocking connection.
-
-int
-ACE_SOCK_SEQPACK_Connector::complete (ACE_SOCK_SEQPACK_Association &new_association,
- ACE_Addr *remote_sap,
- const ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Connector::complete");
- ACE_HANDLE h = ACE::handle_timed_complete (new_association.get_handle (),
- tv);
- // We failed to get connected.
- if (h == ACE_INVALID_HANDLE)
- {
-#if defined (ACE_WIN32)
- // Win32 has a timing problem - if you check to see if the
- // connection has completed too fast, it will fail - so wait
- // <ACE_NON_BLOCKING_BUG_DELAY> microseconds to let it catch up
- // then retry to see if it's a real failure.
- ACE_Time_Value time (0, ACE_NON_BLOCKING_BUG_DELAY);
- ACE_OS::sleep (time);
- h = ACE::handle_timed_complete (new_association.get_handle (),
- tv);
- if (h == ACE_INVALID_HANDLE)
- {
-#endif /* ACE_WIN32 */
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- new_association.close ();
- return -1;
-#if defined (ACE_WIN32)
- }
-#endif /* ACE_WIN32 */
- }
-
- if (remote_sap != 0)
- {
- int len = remote_sap->get_size ();
- sockaddr *addr = ACE_reinterpret_cast (sockaddr *,
- remote_sap->get_addr ());
- if (ACE_OS::getpeername (h,
- addr,
- &len) == -1)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- new_association.close ();
- return -1;
- }
- }
-
- // Start out with non-blocking disabled on the <new_association>.
- new_association.disable (ACE_NONBLOCK);
- return 0;
-}
-
-ACE_SOCK_SEQPACK_Connector::ACE_SOCK_SEQPACK_Connector (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Connector::ACE_SOCK_SEQPACK_Connector");
-
- if (this->connect (new_association,
- remote_sap,
- timeout,
- local_sap,
- reuse_addr,
- flags,
- perms,
- protocol) == -1
- && timeout != 0
- && !(errno == EWOULDBLOCK || errno == ETIME || errno == ETIMEDOUT))
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK_SEQPACK_Connector::ACE_SOCK_SEQPACK_Connector")));
-}
-
-// Multihomed version of same
-ACE_SOCK_SEQPACK_Connector::ACE_SOCK_SEQPACK_Connector (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout,
- const ACE_Multihomed_INET_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Connector::ACE_SOCK_SEQPACK_Connector");
-
- if (this->connect (new_association,
- remote_sap,
- timeout,
- local_sap,
- reuse_addr,
- flags,
- perms,
- protocol) == -1
- && timeout != 0
- && !(errno == EWOULDBLOCK || errno == ETIME || errno == ETIMEDOUT))
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SOCK_SEQPACK_Connector::ACE_SOCK_SEQPACK_Connector")));
-}
diff --git a/ace/SOCK_SEQPACK_Connector.h b/ace/SOCK_SEQPACK_Connector.h
deleted file mode 100644
index 36c16bce31e..00000000000
--- a/ace/SOCK_SEQPACK_Connector.h
+++ /dev/null
@@ -1,240 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SOCK_SEQPACK_Connector.h
- *
- * $Id$
- *
- * @author Patrick J. Lardieri <plardier@atl.lmco.com>
- * @author based on SOCK_STREAM_Connector
- * by Douglas C. Schmidt <schmidt@cs.wustl.edu>
- *
- */
-//=============================================================================
-
-#ifndef ACE_SOCK_SEQPACK_CONNECTOR_H
-#define ACE_SOCK_SEQPACK_CONNECTOR_H
-
-#include "ace/pre.h"
-#include "ace/config.h"
-#include "ace/ACE_export.h"
-
-#include "ace/SOCK_SEQPACK_Association.h"
-#include "ace/Multihomed_INET_Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Time_Value.h"
-
-/**
- * @class ACE_SOCK_SEQPACK_Connector
- *
- * @brief Defines a factory that actively connects to a remote IP
- * address and TCP port, creating a new @c ACE_SOCK_SEQPACK_Association object.
- *
- * The @c ACE_SOCK_SEQPACK_Connector doesn't have a socket of its own,
- * i.e., it simply "borrows" the one from the @c ACE_SOCK_SEQPACK_Association
- * that's being connected. The reason for this is that the
- * underlying socket API doesn't use a factory socket to connect
- * data mode sockets. Therefore, there's no need to inherit
- * @c ACE_SOCK_SEQPACK_Connector from @c ACE_SOCK. A nice side-effect of
- * this is that @c ACE_SOCK_SEQPACK_Connector objects do not store state so
- * they can be used reentrantly in multithreaded programs.
- */
-class ACE_Export ACE_SOCK_SEQPACK_Connector
-{
-public:
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_SOCK_SEQPACK_Connector (void);
-
- /**
- * Actively connect to a peer, producing a connected @c ACE_SOCK_SEQPACK_Association
- * object if the connection succeeds.
- *
- * @param new_association The @c ACE_SOCK_SEQPACK_Association object that will be connected
- * to the peer.
- * @param remote_sap The address that we are trying to connect to.
- * The protocol family of @c remote_sap is used for
- * the connected socket. That is, if @c remote_sap
- * contains an IPv6 address, a socket with family
- * PF_INET6 will be used, else it will be PF_INET.
- * @param timeout Pointer to an @c ACE_Time_Value object with amount
- * of time to wait to connect. If the pointer is 0
- * then the call blocks until the connection attempt
- * is complete, whether it succeeds or fails. If
- * *timeout == {0, 0} then the connection is done
- * using nonblocking mode. In this case, if the
- * connection can't be made immediately, this method
- * returns -1 and errno == EWOULDBLOCK.
- * If *timeout > {0, 0} then this is the maximum amount
- * of time to wait before timing out; if the specified
- * amount of time passes before the connection is made,
- * this method returns -1 and errno == ETIME. Note
- * the difference between this case and when a blocking
- * connect is attmpted that TCP times out - in the latter
- * case, errno will be ETIMEDOUT.
- * @param local_sap (optional) The local address to bind to. If it's
- * the default value of @c ACE_Addr::sap_any then the
- * OS will choose an unused port.
- * @param reuse_addr (optional) If the value is 1, the local address
- * (@c local_sap) is reused, even if it hasn't been
- * cleaned up yet.
- * @param flags Ignored.
- * @param perms Ignored.
- *
- * @return Returns 0 if the connection succeeds. If it fails,
- * -1 is returned and errno contains a specific error
- * code.
- */
- ACE_SOCK_SEQPACK_Connector (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0,
- int protocol = 0);
-
- ACE_SOCK_SEQPACK_Connector (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout,
- const ACE_Multihomed_INET_Addr &local_sap,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0,
- int protocol = 0);
-
- /**
- * Actively connect to a peer, producing a connected @c ACE_SOCK_SEQPACK_Association
- * object if the connection succeeds.
- *
- * @param new_association The @c ACE_SOCK_SEQPACK_Association object that will be connected
- * to the peer.
- * @param remote_sap The address that we are trying to connect to.
- * The protocol family of @c remote_sap is used for
- * the connected socket. That is, if @c remote_sap
- * contains an IPv6 address, a socket with family
- * PF_INET6 will be used, else it will be PF_INET.
- * @param timeout Pointer to an @c ACE_Time_Value object with amount
- * of time to wait to connect. If the pointer is 0
- * then the call blocks until the connection attempt
- * is complete, whether it succeeds or fails. If
- * *timeout == {0, 0} then the connection is done
- * using nonblocking mode. In this case, if the
- * connection can't be made immediately, this method
- * returns -1 and errno == EWOULDBLOCK.
- * If *timeout > {0, 0} then this is the maximum amount
- * of time to wait before timing out; if the specified
- * amount of time passes before the connection is made,
- * this method returns -1 and errno == ETIME. Note
- * the difference between this case and when a blocking
- * connect is attmpted that TCP times out - in the latter
- * case, errno will be ETIMEDOUT.
- * @param local_sap (optional) The local address to bind to. If it's
- * the default value of @c ACE_Addr::sap_any then the
- * OS will choose an unused port.
- * @param reuse_addr (optional) If the value is 1, the local address
- * (@c local_sap) is reused, even if it hasn't been
- * cleaned up yet.
- * @param flags Ignored.
- * @param perms Ignored.
- *
- * @return Returns 0 if the connection succeeds. If it fails,
- * -1 is returned and errno contains a specific error
- * code.
- */
- int connect (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0,
- int protocol = 0);
-
- int connect (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout,
- const ACE_Multihomed_INET_Addr &local_sap,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0,
- int protocol = 0);
-
- /// Default dtor.
- ~ACE_SOCK_SEQPACK_Connector (void);
-
- // = Completion routine.
- /**
- * Try to complete a nonblocking connection that was begun by a
- * previous call to connect with a {0, 0} ACE_Time_Value timeout.
- * @see connect().
- *
- * @param new_association The @c ACE_SOCK_SEQPACK_Association object that will be connected
- * to the peer.
- * @param remote_sap If non-0, it points to the @c ACE_INET_Addr object
- * that will contain the address of the connected peer.
- * @param timeout Same values and return value possibilites as for
- * connect(). @see connect().
- */
- int complete (ACE_SOCK_SEQPACK_Association &new_association,
- ACE_Addr *remote_sap = 0,
- const ACE_Time_Value *timeout = 0);
-
- /// Resets any event associations on this handle
- int reset_new_handle (ACE_HANDLE handle);
-
- // = Meta-type info
- typedef ACE_INET_Addr PEER_ADDR;
- typedef ACE_SOCK_SEQPACK_Association PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Perform operations that ensure the socket is opened using
- /// BSD-style semantics (no QoS).
- int shared_open (ACE_SOCK_SEQPACK_Association &new_association,
- int protocol_family,
- int protocol,
- int reuse_addr);
-
- /// Perform operations that ensure the socket is opened using
- /// QoS-enabled semantics.
- int shared_open (ACE_SOCK_SEQPACK_Association &new_association,
- int protocol_family,
- int protocol,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr);
-
- /// Perform operations that must be called before <ACE_OS::connect>.
- int shared_connect_start (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap);
-
- int shared_connect_start (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Time_Value *timeout,
- const ACE_Multihomed_INET_Addr &local_sap);
-
- /// Perform operations that must be called after <ACE_OS::connect>.
- int shared_connect_finish (ACE_SOCK_SEQPACK_Association &new_association,
- const ACE_Time_Value *timeout,
- int result);
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_SEQPACK_Connector.i"
-#endif
-
-#include "ace/post.h"
-
-#endif /* ACE_SOCK_SEQPACK_CONNECTOR_H */
diff --git a/ace/SOCK_SEQPACK_Connector.i b/ace/SOCK_SEQPACK_Connector.i
deleted file mode 100644
index 319308bf30d..00000000000
--- a/ace/SOCK_SEQPACK_Connector.i
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- C++ -*- */
-// SOCK_SEQPACK_Connector.i
-// $Id$
-
-// This constructor is used by a client when it wants to connect to
-// the specified REMOTE_SAP address using a blocking open.
-
-ASYS_INLINE
-ACE_SOCK_SEQPACK_Connector::~ACE_SOCK_SEQPACK_Connector (void)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Connector::~ACE_SOCK_SEQPACK_Connector");
-}
-
-// Do-nothing constructor...
-
-ASYS_INLINE
-ACE_SOCK_SEQPACK_Connector::ACE_SOCK_SEQPACK_Connector (void)
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Connector::ACE_SOCK_SEQPACK_Connector");
-}
-
-ASYS_INLINE int
-ACE_SOCK_SEQPACK_Connector::reset_new_handle (ACE_HANDLE handle)
-{
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- // Reset the event association
- return ::WSAEventSelect ((SOCKET) handle,
- NULL,
- 0);
-#else /* !defined ACE_HAS_WINSOCK2 */
- ACE_UNUSED_ARG (handle);
- return 0;
-#endif /* ACE_WIN32 */
-}
diff --git a/ace/SOCK_Stream.cpp b/ace/SOCK_Stream.cpp
deleted file mode 100644
index cd9be127aaa..00000000000
--- a/ace/SOCK_Stream.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-// SOCK_Stream.cpp
-// $Id$
-
-#include "ace/SOCK_Stream.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_Stream.i"
-#endif
-
-ACE_RCSID(ace, SOCK_Stream, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_Stream)
-
-void
-ACE_SOCK_Stream::dump (void) const
-{
- ACE_TRACE ("ACE_SOCK_Stream::dump");
-}
-
-int
-ACE_SOCK_Stream::close (void)
-{
-#if defined (ACE_WIN32)
- // We need the following call to make things work correctly on
- // Win32, which requires use to do a <close_writer> before doing the
- // close in order to avoid losing data. Note that we don't need to
- // do this on UNIX since it doesn't have this "feature". Moreover,
- // this will cause subtle problems on UNIX due to the way that
- // fork() works.
- this->close_writer ();
-#endif /* ACE_WIN32 */
- // Close down the socket.
- return ACE_SOCK::close ();
-}
-
diff --git a/ace/SOCK_Stream.h b/ace/SOCK_Stream.h
deleted file mode 100644
index 4e671edae15..00000000000
--- a/ace/SOCK_Stream.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SOCK_Stream.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SOCK_STREAM_H
-#define ACE_SOCK_STREAM_H
-#include "ace/pre.h"
-
-#include "ace/SOCK_IO.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/INET_Addr.h"
-
-// Forward declarations.
-class ACE_Message_Block;
-
-/**
- * @class ACE_SOCK_Stream
- *
- * @brief Defines the methods in the <ACE_SOCK_Stream> abstraction.
- *
- * This adds additional wrapper methods atop the <ACE_SOCK_IO>
- * class.
- *
- * <buf> is the buffer to write from or receive into.
- * <len> is the number of bytes to transfer.
- * The <timeout> parameter in the following methods indicates how
- * long to blocking trying to transfer data. If <timeout> == 0,
- * then the call behaves as a normal send/recv call, i.e., for
- * blocking sockets, the call will block until action is possible;
- * for non-blocking sockets, EWOULDBLOCK will be returned if no
- * action is immediately possible.
- * If <timeout> != 0, the call will wait for data to arrive no longer
- * than the relative time specified in *<timeout>.
- * The "_n()" I/O methods keep looping until all the data has been
- * transferred. These methods also work for sockets in non-blocking
- * mode i.e., they keep looping on EWOULDBLOCK. <timeout> is used
- * to make sure we keep making progress, i.e., the same timeout
- * value is used for every I/O operation in the loop and the timeout
- * is not counted down.
- * The return values for the "*_n()" methods match the return values
- * from the non "_n()" methods and are specified as follows:
- * - On complete transfer, the number of bytes transferred is returned.
- * - On timeout, -1 is returned, errno == ETIME.
- * - On error, -1 is returned, errno is set to appropriate error.
- * - On EOF, 0 is returned, errno is irrelevant.
- *
- * On partial transfers, i.e., if any data is transferred before
- * timeout/error/EOF, <bytes_transferred> will contain the number of
- * bytes transferred.
- * Methods with <iovec> parameter are I/O vector variants of the I/O
- * operations.
- * Methods with the extra <flags> argument will always result in
- * <send> getting called. Methods without the extra <flags> argument
- * will result in <send> getting called on Win32 platforms, and
- * <write> getting called on non-Win32 platforms.
- */
-class ACE_Export ACE_SOCK_Stream : public ACE_SOCK_IO
-{
-public:
- // Initialization and termination methods.
- /// Constructor.
- ACE_SOCK_Stream (void);
-
- /// Constructor (sets the underlying <ACE_HANDLE> with <h>).
- ACE_SOCK_Stream (ACE_HANDLE h);
-
- /// Destructor.
- ~ACE_SOCK_Stream (void);
-
- // = I/O functions.
-
- /// Try to recv exactly <len> bytes into <buf> from the connected socket.
- ssize_t recv_n (void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Try to recv exactly <len> bytes into <buf> from the connected socket.
- ssize_t recv_n (void *buf,
- size_t len,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Receive an <iovec> of size <iovcnt> from the connected socket.
- ssize_t recvv_n (iovec iov[],
- int iovcnt,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Try to send exactly <len> bytes from <buf> to the connection socket.
- ssize_t send_n (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Try to send exactly <len> bytes from <buf> to the connected socket.
- ssize_t send_n (const void *buf,
- size_t len,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Send all the <message_block>s chained through their <next> and
- /// <cont> pointers. This call uses the underlying OS gather-write
- /// operation to reduce the domain-crossing penalty.
- ssize_t send_n (const ACE_Message_Block *message_block,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Send an <iovec> of size <iovcnt> to the connected socket.
- ssize_t sendv_n (const iovec iov[],
- int iovcnt,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- // = Send/receive ``urgent'' data (see TCP specs...).
- ssize_t send_urg (const void *ptr,
- size_t len = sizeof (char),
- const ACE_Time_Value *timeout = 0) const;
-
- ssize_t recv_urg (void *ptr,
- size_t len = sizeof (char),
- const ACE_Time_Value *timeout = 0) const;
-
- // = Selectively close endpoints.
- /// Close down the reader.
- int close_reader (void);
-
- /// Close down the writer.
- int close_writer (void);
-
- /**
- * Close down the socket (we need this to make things work correctly
- * on Win32, which requires use to do a <close_writer> before doing
- * the close to avoid losing data).
- */
- int close (void);
-
- // = Meta-type info
- typedef ACE_INET_Addr PEER_ADDR;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SOCK_Stream.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_SOCK_STREAM_H */
diff --git a/ace/SOCK_Stream.i b/ace/SOCK_Stream.i
deleted file mode 100644
index f13d0ca24ff..00000000000
--- a/ace/SOCK_Stream.i
+++ /dev/null
@@ -1,171 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/SOCK_Stream.h"
-
-ASYS_INLINE
-ACE_SOCK_Stream::ACE_SOCK_Stream (void)
-{
- // ACE_TRACE ("ACE_SOCK_Stream::ACE_SOCK_Stream");
-}
-
-ASYS_INLINE
-ACE_SOCK_Stream::ACE_SOCK_Stream (ACE_HANDLE h)
-{
- // ACE_TRACE ("ACE_SOCK_Stream::ACE_SOCK_Stream");
- this->set_handle (h);
-}
-
-ASYS_INLINE
-ACE_SOCK_Stream::~ACE_SOCK_Stream (void)
-{
- // ACE_TRACE ("ACE_SOCK_Stream::~ACE_SOCK_Stream");
-}
-
-ASYS_INLINE int
-ACE_SOCK_Stream::close_reader (void)
-{
- ACE_TRACE ("ACE_SOCK_Stream::close_reader");
- if (this->get_handle () != ACE_INVALID_HANDLE)
- return ACE_OS::shutdown (this->get_handle (), ACE_SHUTDOWN_READ);
- else
- return 0;
-}
-
-// Shut down just the writing end of a ACE_SOCK.
-
-ASYS_INLINE int
-ACE_SOCK_Stream::close_writer (void)
-{
- ACE_TRACE ("ACE_SOCK_Stream::close_writer");
- if (this->get_handle () != ACE_INVALID_HANDLE)
- return ACE_OS::shutdown (this->get_handle (), ACE_SHUTDOWN_WRITE);
- else
- return 0;
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Stream::recv_n (void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_Stream::recv_n");
- return ACE::recv_n (this->get_handle (),
- buf,
- len,
- flags,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Stream::recv_n (void *buf,
- size_t len,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_Stream::recv_n");
- return ACE::recv_n (this->get_handle (),
- buf,
- len,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Stream::recvv_n (iovec iov[],
- int n,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_Stream::recvv_n");
- return ACE::recvv_n (this->get_handle (),
- iov,
- n,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Stream::send_n (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_Stream::send_n");
- return ACE::send_n (this->get_handle (),
- buf,
- len,
- flags,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Stream::send_n (const void *buf,
- size_t len,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_Stream::send_n");
- return ACE::send_n (this->get_handle (),
- buf,
- len,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Stream::sendv_n (const iovec iov[],
- int n,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_Stream::sendv_n");
- return ACE::sendv_n (this->get_handle (),
- iov,
- n,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Stream::send_n (const ACE_Message_Block *message_block,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_SOCK_Stream::send_n");
- return ACE::send_n (this->get_handle (),
- message_block,
- timeout,
- bytes_transferred);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Stream::send_urg (const void *ptr,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_Stream::send_urg");
- return ACE::send (this->get_handle (),
- ptr,
- len,
- MSG_OOB,
- timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_SOCK_Stream::recv_urg (void *ptr,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SOCK_Stream::recv_urg");
- return ACE::recv (this->get_handle (),
- ptr,
- len,
- MSG_OOB,
- timeout);
-}
diff --git a/ace/SPIPE.cpp b/ace/SPIPE.cpp
deleted file mode 100644
index 0f2be4cc65d..00000000000
--- a/ace/SPIPE.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-// SPIPE.cpp
-// $Id$
-
-#include "ace/SPIPE.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SPIPE.i"
-#endif
-
-ACE_RCSID(ace, SPIPE, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SPIPE)
-
-// This is the do-nothing constructor.
-
-ACE_SPIPE::ACE_SPIPE (void)
-{
- // ACE_TRACE ("ACE_SPIPE::ACE_SPIPE");
-}
-
-void
-ACE_SPIPE::dump (void) const
-{
- ACE_TRACE ("ACE_SPIPE::dump");
-}
-
-// Close down a ACE_SPIPE.
-
-int
-ACE_SPIPE::get_local_addr (ACE_SPIPE_Addr &local_sap) const
-{
- ACE_TRACE ("ACE_SPIPE::get_local_addr");
- local_sap = this->local_addr_;
- return 0;
-}
-
-// Close down the STREAM pipe without removing the rendezvous point.
-
-int
-ACE_SPIPE::close (void)
-{
- ACE_TRACE ("ACE_SPIPE::close");
- int result = 0;
-
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- result = ACE_OS::close (this->get_handle ());
- this->set_handle (ACE_INVALID_HANDLE);
- }
- return result;
-}
-
-// Close down the STREAM pipe and remove the rendezvous point from the
-// file system.
-
-int
-ACE_SPIPE::remove (void)
-{
- ACE_TRACE ("ACE_SPIPE::remove");
- int result = this->close ();
- return ACE_OS::unlink (this->local_addr_.get_path_name ()) == -1 || result == -1 ? -1 : 0;
-}
-
diff --git a/ace/SPIPE.h b/ace/SPIPE.h
deleted file mode 100644
index 04e06d71011..00000000000
--- a/ace/SPIPE.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SPIPE.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_SPIPE_H
-#define ACE_SPIPE_H
-#include "ace/pre.h"
-
-#include "ace/IPC_SAP.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SPIPE_Addr.h"
-
-/**
- * @class ACE_SPIPE
- *
- * @brief Defines the member functions for the base class of the
- * ACE_SPIPE abstraction.
- *
- * ACE_SPIPE was designed as a wrapper facade for STREAM pipes. On
- * Windows, however, ACE_SPIPE is a wrapper for Named Pipes. Therefore,
- * on Windows, it is better to use the ACE_Proactor or blocking operations
- * in lieu of using the ACE_Reactor.
- *
- * @sa ACE_SPIPE_Acceptor for additional notes on use with ACE_Reactor
- * on Windows.
- *
- * @warning Windows: Works only on Windows NT 4 and higher.
- * @warning Works on non-Windows platforms only when @c ACE_HAS_STREAM_PIPES
- * is defined.
- */
-class ACE_Export ACE_SPIPE : public ACE_IPC_SAP
-{
-public:
- /// Close down the SPIPE without removing the rendezvous point.
- /**
- * Closes the underlying pipe handle and sets this object's handle value
- * to @c ACE_INVALID_HANDLE.
- * @return 0 for success; -1 for failure. If a failure occurs, further
- * error information is available from ACE_OS::last_error().
- */
- int close (void);
-
- /// Close down the SPIPE and remove the rendezvous point from
- /// the file system.
- /**
- * @return 0 for success; -1 for failure. If a failure occurs, further
- * error information is available from ACE_OS::last_error().
- */
- int remove (void);
-
- /// Return the local address of this endpoint.
- /**
- * Returns the local address of the SPIPE's endpoint in @arg addr.
- * @return 0 for success; -1 for failure. If a failure occurs, further
- * error information is available from ACE_OS::last_error().
- */
- int get_local_addr (ACE_SPIPE_Addr &) const;
-
- /**
- * Disable signal @arg signum.
- * @note This reimplements the inherited method from
- * ACE_IPC_SAP. Since the signal actions do not make any sense on
- * Windows, this method intercepts the call and NOPs it. On non-Windows,
- * it is passed through to ACE_IPC_SAP::disable().
- */
- int disable (int signum) const ;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Ensure that this class is an abstract base class
- ACE_SPIPE (void);
-
- /// Our local address.
- ACE_SPIPE_Addr local_addr_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SPIPE.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_SPIPE_H */
diff --git a/ace/SPIPE.i b/ace/SPIPE.i
deleted file mode 100644
index fd205ab76df..00000000000
--- a/ace/SPIPE.i
+++ /dev/null
@@ -1,16 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SPIPE.i
-
-ASYS_INLINE int
-ACE_SPIPE::disable (int signum) const
-{
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG (signum) ;
- return 0 ;
-#else /* ACE_WIN32 */
- return ACE_IPC_SAP::disable (signum) ;
-#endif /* ACE_WIN32 */
-}
-
diff --git a/ace/SPIPE_Acceptor.cpp b/ace/SPIPE_Acceptor.cpp
deleted file mode 100644
index 49be0efb68f..00000000000
--- a/ace/SPIPE_Acceptor.cpp
+++ /dev/null
@@ -1,295 +0,0 @@
-// SPIPE_Acceptor.cpp
-// $Id$
-
-#include "ace/SPIPE_Acceptor.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, SPIPE_Acceptor, "$Id$")
-
-ACE_SPIPE_Acceptor::ACE_SPIPE_Acceptor (void)
-#if (defined (ACE_WIN32) && defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
- : sa_ (0), pipe_handle_ (ACE_INVALID_HANDLE)
-#endif /* ACE_WIN32 */
-{
- ACE_TRACE ("ACE_SPIPE_Acceptor::ACE_SPIPE_Acceptor");
-}
-
-int
-ACE_SPIPE_Acceptor::remove (void)
-{
- ACE_TRACE ("ACE_SPIPE_Acceptor::remove");
-#if defined (ACE_HAS_STREAM_PIPES)
- int result = this->close ();
-
- // Remove the underlying file.
- return ACE_OS::unlink (this->local_addr_.get_path_name ()) == -1
- || result == -1 ? -1 : 0;
-#else
- this->close ();
- return 0;
-#endif
-}
-
-ACE_ALLOC_HOOK_DEFINE (ACE_SPIPE_Acceptor)
-
-void
-ACE_SPIPE_Acceptor::dump (void) const
-{
- ACE_TRACE ("ACE_SPIPE_Acceptor::dump");
-}
-
-// General purpose routine for performing server ACE_SPIPE creation.
-
-int
-ACE_SPIPE_Acceptor::open (const ACE_SPIPE_Addr &local_sap,
- int reuse_addr,
- int perms,
- LPSECURITY_ATTRIBUTES sa,
- int pipe_mode)
-{
- ACE_TRACE ("ACE_SPIPE_Acceptor::open");
- ACE_UNUSED_ARG (reuse_addr);
-
- this->local_addr_ = local_sap;
- this->set_handle (ACE_INVALID_HANDLE);
-#if (defined (ACE_WIN32) && defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
- this->sa_ = sa;
- this->pipe_mode_ = pipe_mode;
-#else
- ACE_UNUSED_ARG (sa);
- ACE_UNUSED_ARG (pipe_mode);
-#endif /* ACE_WIN32 */
-
- return this->create_new_instance (perms);
-}
-
-int
-ACE_SPIPE_Acceptor::create_new_instance (int perms)
-{
-#if defined (ACE_HAS_STREAM_PIPES)
- ACE_HANDLE spipe[2];
- char module[] = "connld";
-
- ACE_HANDLE handle = ACE_OS::creat (this->local_addr_.get_path_name (),
- perms);
- if (handle == ACE_INVALID_HANDLE)
- return -1;
- else if (ACE_OS::close (handle) == -1)
- return -1;
- else if (ACE_OS::pipe (spipe) == -1)
- return -1;
- else if (ACE_OS::ioctl (spipe[0],
- I_PUSH,
- module) == -1)
- return -1;
- else if (ACE_OS::fattach (spipe[0],
- this->local_addr_.get_path_name ()) == -1)
- return -1;
-
- this->set_handle (spipe[1]);
- return 0;
-
-#elif (defined (ACE_WIN32) && defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
- // Create a new instance of the Named Pipe (WIN32). A new instance
- // of the named pipe must be created for every client process. If
- // an instance of the named pipe that is already connected to a
- // client process is reused with a new client process,
- // ::ConnectNamedPipe () would fail.
-
- ACE_UNUSED_ARG (perms);
- ACE_TRACE ("ACE_SPIPE_Acceptor::create_new_instance");
- int status;
-
- // Create a new instance of the named pipe
- this->pipe_handle_ =
-#if defined (ACE_USES_WCHAR)
- ::CreateNamedPipeW (
-#else /* ACE_USES_WCHAR */
- ::CreateNamedPipeA (
-#endif /* ACE_USES_WCHAR */
- this->local_addr_.get_path_name (),
- PIPE_ACCESS_DUPLEX
- | FILE_FLAG_OVERLAPPED,
- pipe_mode_,
- PIPE_UNLIMITED_INSTANCES,
- 1024 * 10,
- 1024 * 10,
- ACE_DEFAULT_TIMEOUT,
- this->sa_);
-
- if (this->pipe_handle_ == ACE_INVALID_HANDLE)
- return -1;
- else
- {
- // Start the Connect (analogous to listen () for a socket).
- // Completion is noted by the event being signalled. If a
- // client connects before this call, the error status will be
- // ERROR_PIPE_CONNECTED. If the client also disconnects before
- // this call, the error status will be ERROR_NO_DATA. In both
- // cases, that fact is remembered via already_connected_ and
- // noted when the user calls accept(). Else the error status
- // should be ERROR_IO_PENDING and the OS will signal the event
- // when it's done.
- this->already_connected_ = 0;
- this->set_handle (this->event_.handle ());
- this->overlapped_.hEvent = this->event_.handle ();
- this->event_.reset ();
-
- BOOL result = ::ConnectNamedPipe (this->pipe_handle_,
- &this->overlapped_);
- ACE_UNUSED_ARG (result);
- // ConnectNamePipe is suppose to always
- // "fail" when passed in overlapped i/o
- ACE_ASSERT (!result);
-
- status = ::GetLastError ();
- switch (status)
- {
- case ERROR_IO_PENDING:
- break;
- case ERROR_PIPE_CONNECTED:
- case ERROR_NO_DATA:
- this->already_connected_ = 1;
- // Set the associated event as signaled so any reactors or
- // proactors waiting for this will respond.
- this->event_.signal ();
- break;
- default:
- ACE_ASSERT (FALSE); // An undocumented error was returned.
- this->close (); // Sets handle to ACE_INVALID_HANDLE.
- break;
- }
- }
- return this->get_handle () == ACE_INVALID_HANDLE ? -1 : 0;
-#else
- ACE_UNUSED_ARG (perms);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_STREAM_PIPES */
-}
-
-int
-ACE_SPIPE_Acceptor::close (void)
-{
- ACE_TRACE ("ACE_SPIPE_Acceptor::close");
-
-#if (defined (ACE_WIN32) && defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
- // Substitute the pipe handle back in so it's closed properly.
- this->set_handle (this->pipe_handle_);
- this->pipe_handle_ = ACE_INVALID_HANDLE;
-#endif /* ACE_WIN32 */
-
- // This behavior is shared by UNIX and Win32...
- int result = this->ACE_SPIPE::close ();
- this->set_handle (ACE_INVALID_HANDLE);
-
-#if defined (ACE_HAS_STREAM_PIPES)
- ACE_OS::fdetach (this->local_addr_.get_path_name ());
-#endif /* ACE_HAS_STREAM_PIPES */
- return result;
-}
-
-ACE_SPIPE_Acceptor::ACE_SPIPE_Acceptor (const ACE_SPIPE_Addr &local_sap,
- int reuse_addr,
- int perms,
- LPSECURITY_ATTRIBUTES sa,
- int pipe_mode)
-{
- ACE_TRACE ("ACE_SPIPE_Acceptor::ACE_SPIPE_Acceptor");
-
- if (this->open (local_sap, reuse_addr, perms, sa, pipe_mode) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SPIPE_Acceptor")));
-}
-
-// General purpose routine for accepting new connections.
-
-int
-ACE_SPIPE_Acceptor::accept (ACE_SPIPE_Stream &new_io,
- ACE_SPIPE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle)
-{
- ACE_TRACE ("ACE_SPIPE_Acceptor::accept");
- ACE_UNUSED_ARG (reset_new_handle);
-
-#if defined (ACE_HAS_STREAM_PIPES)
- strrecvfd r_handle;
-
- // Note that if THIS->MILLI_SECOND_DELAY == -1 we block on
- // ACE_OS::ioctl (). Otherwise, we will wait for the desired number
- // of milli seconds using ACE_OS::poll.
-
- if (timeout != 0 &&
- ACE::handle_timed_accept (this->get_handle (),
- timeout,
- restart) == -1)
- return -1;
- else if (ACE_OS::ioctl (this->get_handle (),
- I_RECVFD,
- &r_handle) == -1)
- return -1;
-
- new_io.set_handle (r_handle.fd);
- new_io.local_addr_ = this->local_addr_;
- new_io.remote_addr_.set_size (sizeof r_handle.gid + sizeof r_handle.uid);
- new_io.remote_addr_.group_id (r_handle.gid);
- new_io.remote_addr_.user_id (r_handle.uid);
-
- // This is for compatibility with ACE_SOCK_Acceptor and
- // ACE_TLI_Acceptor.
- if (remote_addr != 0)
- *remote_addr = new_io.remote_addr_;
-
- return 0;
-#elif (defined (ACE_WIN32) && defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
- ACE_UNUSED_ARG (restart);
- ACE_UNUSED_ARG (remote_addr);
-
- // Check to see if we have a valid pipe
- if (this->pipe_handle_ == ACE_INVALID_HANDLE)
- return -1;
-
- // open () started the Connect in asynchronous mode. Wait for the event
- // in the OVERLAPPED structure to be signalled, then grab the status.
- if (this->already_connected_ == 0)
- {
- if (timeout != 0)
- {
- ACE_Time_Value abstime (ACE_OS::gettimeofday () + *timeout);
- if (this->event_.wait (&abstime) == -1)
- return -1;
- }
- else
- if (this->event_.wait () == -1)
- return -1;
-
- // Should be here with the ConnectNamedPipe operation complete.
- // Steal the already_connected_ flag to record the results.
- DWORD unused;
- this->already_connected_ = ::GetOverlappedResult (this->pipe_handle_,
- &this->overlapped_,
- &unused,
- FALSE);
- }
-
- if (this->already_connected_)
- {
- new_io.set_handle (this->pipe_handle_);
- this->pipe_handle_ = ACE_INVALID_HANDLE;
- new_io.local_addr_ = this->local_addr_;
-
- // Create a new instance of the pipe for the next connection.
- this->create_new_instance ();
- return 0;
- }
- return -1;
-#else
- ACE_UNUSED_ARG (restart);
- ACE_UNUSED_ARG (timeout);
- ACE_UNUSED_ARG (remote_addr);
- ACE_UNUSED_ARG (new_io);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_STREAM_PIPES */
-}
diff --git a/ace/SPIPE_Acceptor.h b/ace/SPIPE_Acceptor.h
deleted file mode 100644
index 581c1ced67a..00000000000
--- a/ace/SPIPE_Acceptor.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SPIPE_Acceptor.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author Prashant Jain <pjain@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_SPIPE_ACCEPTOR_H
-#define ACE_SPIPE_ACCEPTOR_H
-#include "ace/pre.h"
-
-#include "ace/SPIPE_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_WIN32)
-#include "ace/Synch.h"
-#endif /* ACE_WIN32 */
-
-/**
- * @class ACE_SPIPE_Acceptor
- *
- * @brief A factory class that produces ACE_SPIPE_Stream objects.
- *
- * ACE_SPIPE_Acceptor is a factory class that accepts SPIPE connections.
- * Each accepted connection produces an ACE_SPIPE_Stream object.
- *
- * @warning Windows: Works only on Windows NT 4 and higher. To use this
- * class with the ACE_Reactor framework, note that the handle to
- * demultiplex on is an event handle and should be registered with the
- * ACE_Reactor::register_handler (ACE_Event_Handler *, ACE_HANDLE) method.
- *
- * @warning Works on non-Windows platforms only when @c ACE_HAS_STREAM_PIPES
- * is defined.
- *
- */
-class ACE_Export ACE_SPIPE_Acceptor : public ACE_SPIPE
-{
-public:
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_SPIPE_Acceptor (void);
-
- /// Initiate a passive-mode STREAM pipe listener.
- /**
- * @param local_sap The name of the pipe instance to open and listen on.
- * @param reuse_addr Optional, and ignored. Needed for API compatibility
- * with other acceptor classes.
- * @param perms Optional, the protection mask to create the pipe
- * with. Ignored on Windows.
- * @param sa Optional, ignored on non-Windows. The
- * SECURITY_ATTRIBUTES to create the named pipe
- * instances with. This pointer is remembered and
- * reused on each new named pipe instance, so only
- * pass a value that remains valid as long as this
- * object does.
- * @param pipe_mode Optional, ignored on non-Windows. The NT pipe
- * mode used when creating the pipe.
- */
- ACE_SPIPE_Acceptor (const ACE_SPIPE_Addr &local_sap,
- int reuse_addr = 1,
- int perms = ACE_DEFAULT_FILE_PERMS,
- LPSECURITY_ATTRIBUTES sa = 0,
- int pipe_mode = PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE);
-
- /// Initiate a passive-mode STREAM pipe listener.
- /**
- * @param local_sap The name of the pipe instance to open and listen on.
- * @param reuse_addr Optional, and ignored. Needed for API compatibility
- * with other acceptor classes.
- * @param perms Optional, the protection mask to create the pipe
- * with. Ignored on Windows.
- * @param sa Optional, ignored on non-Windows. The
- * SECURITY_ATTRIBUTES to create the named pipe
- * instances with. This pointer is remembered and
- * reused on each new named pipe instance, so only
- * pass a value that remains valid as long as this
- * object does.
- * @param pipe_mode Optional, ignored on non-Windows. The NT pipe
- * mode used when creating the pipe.
- *
- * @retval 0 for success.
- * @retval -1 for failure.
- */
- int open (const ACE_SPIPE_Addr &local_sap,
- int reuse_addr = 1,
- int perms = ACE_DEFAULT_FILE_PERMS,
- LPSECURITY_ATTRIBUTES sa = 0,
- int pipe_mode = PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE);
-
- /// Close down the passive-mode STREAM pipe listener.
- int close (void);
-
- /// Remove the underlying mounted pipe from the file system.
- int remove (void);
-
- // = Passive connection acceptance method.
- /**
- * Accept a new data transfer connection.
- *
- * @param ipc_sap_spipe The ACE_SPIPE_Stream to initialize with the
- * newly-accepted pipe.
- * @param remote_addr Optional, accepts the address of the peer.
- * @param timeout 0 means block forever, {0, 0} means poll.
- * @param restart 1 means "restart if interrupted."
- *
- * @retval 0 for success.
- * @retval -1 for failure.
- */
- int accept (ACE_SPIPE_Stream &ipc_sap_spipe,
- ACE_SPIPE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0);
-
- // = Meta-type info
- typedef ACE_SPIPE_Addr PEER_ADDR;
- typedef ACE_SPIPE_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Create a new instance of an SPIPE.
- int create_new_instance (int perms = 0);
-
-#if (defined (ACE_WIN32) && defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
- // On Windows, the SECURITY_ATTRIBUTES specified for the initial accept
- // operation is reused on all subsequent pipe instances as well.
- LPSECURITY_ATTRIBUTES sa_;
-
- // On Windows, the pipe mode to create the pipe in. This can be in
- // either a bytestream-oriented mode or a message-oriented mode.
- DWORD pipe_mode_;
-
- // On Windows, the handle maintained in the ACE_IPC_SAP class is the
- // event handle from event_. The pipe handle is useless for telling
- // when a pipe connect is done/ready, and it changes on each pipe
- // acceptance, quite unlike other acceptor-type classes in ACE.
- // This allows the get_handle()-obtained handle to be used for
- // registering with the reactor (albeit for signal, not input)
- // to tell when a pipe accept is done.
- ACE_OVERLAPPED overlapped_;
- ACE_Manual_Event event_;
- ACE_HANDLE pipe_handle_;
- int already_connected_;
-#endif /* ACE_WIN32 */
-
-};
-
-#include "ace/post.h"
-#endif /* ACE_SPIPE_ACCEPTOR_H */
diff --git a/ace/SPIPE_Addr.cpp b/ace/SPIPE_Addr.cpp
deleted file mode 100644
index 958024ad949..00000000000
--- a/ace/SPIPE_Addr.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-// SPIPE_Addr.cpp
-// $Id$
-
-#include "ace/SPIPE_Addr.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/SPIPE_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, SPIPE_Addr, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SPIPE_Addr)
-
-void
-ACE_SPIPE_Addr::dump (void) const
-{
-}
-
-// Set a pointer to the address.
-void
-ACE_SPIPE_Addr::set_addr (void *addr, int len)
-{
- ACE_TRACE ("ACE_SPIPE_Addr::set_addr");
-
- this->ACE_Addr::base_set (AF_SPIPE, len);
- ACE_OS::memcpy ((void *) &this->SPIPE_addr_,
- (void *) addr,
- len);
-}
-
-// Do nothing constructor.
-
-ACE_SPIPE_Addr::ACE_SPIPE_Addr (void)
- : ACE_Addr (AF_SPIPE, sizeof this->SPIPE_addr_)
-{
- (void) ACE_OS::memset ((void *) &this->SPIPE_addr_,
- 0,
- sizeof this->SPIPE_addr_);
-}
-
-// Transform the string into the current addressing format.
-
-int
-ACE_SPIPE_Addr::string_to_addr (const ACE_TCHAR *addr)
-{
- return this->set (addr);
-}
-
-int
-ACE_SPIPE_Addr::set (const ACE_SPIPE_Addr &sa)
-{
- this->base_set (sa.get_type (), sa.get_size ());
-
- if (sa.get_type () == AF_ANY)
- (void) ACE_OS::memset ((void *) &this->SPIPE_addr_,
- 0,
- sizeof this->SPIPE_addr_);
- else
- (void) ACE_OS::memcpy ((void *) &this->SPIPE_addr_, (void *)
- &sa.SPIPE_addr_,
- sa.get_size ());
- return 0;
-}
-
-// Copy constructor.
-
-ACE_SPIPE_Addr::ACE_SPIPE_Addr (const ACE_SPIPE_Addr &sa)
- : ACE_Addr (AF_SPIPE, sizeof this->SPIPE_addr_)
-{
- this->set (sa);
-}
-
-int
-ACE_SPIPE_Addr::set (const ACE_TCHAR *addr,
- gid_t gid,
- uid_t uid)
-{
- int len = sizeof (this->SPIPE_addr_.uid_);
- len += sizeof (this->SPIPE_addr_.gid_);
-
-#if defined (ACE_WIN32)
- const ACE_TCHAR *colonp = ACE_OS::strchr (addr, ':');
- ACE_TCHAR temp[BUFSIZ];
-
- if (colonp == 0) // Assume it's a local name.
- {
- ACE_OS::strcpy (temp, ACE_LIB_TEXT ( "\\\\.\\pipe\\"));
- ACE_OS::strcat (temp, addr);
- }
- else
- {
-
- if (ACE_OS::strncmp (addr,
- ACE_LIB_TEXT ("localhost"),
- ACE_OS::strlen ("localhost")) == 0)
- // change "localhost" to "."
- ACE_OS::strcpy (temp, ACE_LIB_TEXT ("\\\\."));
- else
- {
- ACE_OS::strcpy (temp, ACE_LIB_TEXT ("\\\\"));
-
- ACE_TCHAR *t;
-
- // We need to allocate a duplicate so that we can write a
- // NUL character into it.
- ACE_ALLOCATOR_RETURN (t, ACE_OS::strdup (addr), -1);
-
- t[colonp - addr] = ACE_LIB_TEXT ('\0');
- ACE_OS::strcat (temp, t);
-
- ACE_OS::free (t);
- }
-
- ACE_OS::strcat (temp, ACE_LIB_TEXT ("\\pipe\\"));
- ACE_OS::strcat (temp, colonp + 1);
- }
- len += ACE_static_cast (int, ACE_OS_String::strlen (temp));
- this->ACE_Addr::base_set (AF_SPIPE, len);
-
- ACE_OS_String::strcpy (this->SPIPE_addr_.rendezvous_, temp);
-#else
- this->ACE_Addr::base_set (AF_SPIPE,
- ACE_OS::strlen (addr) + 1 + len);
- ACE_OS::strsncpy (this->SPIPE_addr_.rendezvous_,
- addr,
- sizeof this->SPIPE_addr_.rendezvous_);
-#endif /* ACE_WIN32 */
- this->SPIPE_addr_.gid_ = gid == 0 ? ACE_OS::getgid () : gid;
- this->SPIPE_addr_.uid_ = uid == 0 ? ACE_OS::getuid () : uid;
- return 0;
-}
-
-// Create a ACE_Addr from a ACE_SPIPE pathname.
-
-ACE_SPIPE_Addr::ACE_SPIPE_Addr (const ACE_TCHAR *addr,
- gid_t gid,
- uid_t uid)
- : ACE_Addr (AF_SPIPE, sizeof this->SPIPE_addr_)
-{
- this->set (addr, gid, uid);
-}
-
diff --git a/ace/SPIPE_Addr.h b/ace/SPIPE_Addr.h
deleted file mode 100644
index cff741219e8..00000000000
--- a/ace/SPIPE_Addr.h
+++ /dev/null
@@ -1,118 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file SPIPE_Addr.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//==========================================================================
-
-
-#ifndef ACE_SPIPE_ADDR_H
-#define ACE_SPIPE_ADDR_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Addr.h"
-#include "ace/OS.h"
-
-/**
- * @class ACE_SPIPE_Addr
- *
- * @brief Defines the SVR4 STREAM pipe address family address format.
- */
-class ACE_Export ACE_SPIPE_Addr : public ACE_Addr
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_SPIPE_Addr (void);
-
- /// Copy constructor.
- ACE_SPIPE_Addr (const ACE_SPIPE_Addr &sa);
-
- /// Create a ACE_SPIPE_Addr from a rendezvous point in the file
- /// system.
- ACE_SPIPE_Addr (const ACE_TCHAR *rendezvous_point, gid_t = 0, uid_t = 0);
-
- /// Acts like a copy constructor...
- int set (const ACE_SPIPE_Addr &sa);
-
- /// Create a ACE_SPIPE_Addr from a rendezvous point in the file
- /// system.
- int set (const ACE_TCHAR *rendezvous_point, gid_t = 0, uid_t = 0);
-
- /// Return a pointer to the address.
- virtual void *get_addr (void) const;
-
- /// Set a pointer to the underlying network address.
- virtual void set_addr (void *addr, int len);
-
- /// Transform the current address into string format.
- virtual int addr_to_string (ACE_TCHAR *addr, size_t) const;
-
- /// Transform the string into the current addressing format.
- virtual int string_to_addr (const ACE_TCHAR *addr);
-
- // = Equality/inequality tests
- /// Check for equality.
- int operator == (const ACE_SPIPE_Addr &SAP) const;
-
- /// Check for inequality
- int operator != (const ACE_SPIPE_Addr &SAP) const;
-
- // = SPIPE-specific address operations
- /// Pathname of rendezvous point in file system.
- const ACE_TCHAR *get_path_name (void) const;
-
- /// Get user id.
- uid_t user_id (void) const;
-
- /// Set user id.
- void user_id (uid_t uid);
-
- /// Set group ids.
- void group_id (gid_t gid);
-
- /// Get group ids.
- gid_t group_id (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Contains security attributes.
- struct SPIPE_Addr
- {
- /// Group id.
- gid_t gid_;
-
- /// User id.
- uid_t uid_;
-
- /// Pathname in the file system.
- ACE_TCHAR rendezvous_[MAXNAMLEN + 1];
-
- } SPIPE_addr_;
- // Contents of an SPIPE address.
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/SPIPE_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_SPIPE_ADDR_H */
diff --git a/ace/SPIPE_Addr.i b/ace/SPIPE_Addr.i
deleted file mode 100644
index e6af565b53b..00000000000
--- a/ace/SPIPE_Addr.i
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SPIPE_Addr.i
-
-#include "ace/SString.h"
-
-// Transform the current address into string format.
-
-ACE_INLINE int
-ACE_SPIPE_Addr::addr_to_string (ACE_TCHAR *s, size_t len) const
-{
- ACE_OS::strsncpy (s,
- this->SPIPE_addr_.rendezvous_,
- len);
- return 0;
-}
-
-// Return the address.
-
-ACE_INLINE void *
-ACE_SPIPE_Addr::get_addr (void) const
-{
- return (void *) &this->SPIPE_addr_;
-}
-
-// Compare two addresses for equality.
-
-ACE_INLINE int
-ACE_SPIPE_Addr::operator == (const ACE_SPIPE_Addr &sap) const
-{
- return ACE_OS::strcmp (this->SPIPE_addr_.rendezvous_,
- sap.SPIPE_addr_.rendezvous_ ) == 0;
-}
-
-// Compare two addresses for inequality.
-
-ACE_INLINE int
-ACE_SPIPE_Addr::operator != (const ACE_SPIPE_Addr &sap) const
-{
- return !((*this) == sap); // This is lazy, of course... ;-)
-}
-
-// Return the path name used for the rendezvous point.
-
-ACE_INLINE const ACE_TCHAR *
-ACE_SPIPE_Addr::get_path_name (void) const
-{
- return this->SPIPE_addr_.rendezvous_;
-}
-
-ACE_INLINE uid_t
-ACE_SPIPE_Addr::user_id (void) const
-{
- return this->SPIPE_addr_.uid_;
-}
-
-ACE_INLINE void
-ACE_SPIPE_Addr::user_id (uid_t uid)
-{
- this->SPIPE_addr_.uid_ = uid;
-}
-
-ACE_INLINE gid_t
-ACE_SPIPE_Addr::group_id (void) const
-{
- return this->SPIPE_addr_.gid_;
-}
-
-ACE_INLINE void
-ACE_SPIPE_Addr::group_id (gid_t gid)
-{
- this->SPIPE_addr_.gid_ = gid;
-}
diff --git a/ace/SPIPE_Connector.cpp b/ace/SPIPE_Connector.cpp
deleted file mode 100644
index 60954a4a6d3..00000000000
--- a/ace/SPIPE_Connector.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-// SPIPE_Connector.cpp
-// $Id$
-
-#include "ace/SPIPE_Connector.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SPIPE_Connector.i"
-#endif
-
-ACE_RCSID(ace, SPIPE_Connector, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SPIPE_Connector)
-
-// Creates a Local ACE_SPIPE.
-
-ACE_SPIPE_Connector::ACE_SPIPE_Connector (ACE_SPIPE_Stream &new_io,
- const ACE_SPIPE_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr & local_sap,
- int reuse_addr,
- int flags,
- int perms,
- LPSECURITY_ATTRIBUTES sa,
- int pipe_mode)
-{
- ACE_TRACE ("ACE_SPIPE_Connector::ACE_SPIPE_Connector");
- if (this->connect (new_io, remote_sap, timeout, local_sap,
- reuse_addr, flags, perms, sa, pipe_mode) == -1
- && timeout != 0 && !(errno == EWOULDBLOCK || errno == ETIME))
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("address %s, %p\n"),
- remote_sap.get_path_name (), ACE_LIB_TEXT ("ACE_SPIPE_Connector")));
-}
-
-void
-ACE_SPIPE_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_SPIPE_Connector::dump");
-}
-
-ACE_SPIPE_Connector::ACE_SPIPE_Connector (void)
-{
- ACE_TRACE ("ACE_SPIPE_Connector::ACE_SPIPE_Connector");
-}
-
-int
-ACE_SPIPE_Connector::connect (ACE_SPIPE_Stream &new_io,
- const ACE_SPIPE_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr & /* local_sap */,
- int /* reuse_addr */,
- int flags,
- int perms,
- LPSECURITY_ATTRIBUTES sa,
- int pipe_mode)
-{
- ACE_TRACE ("ACE_SPIPE_Connector::connect");
- // Make darn sure that the O_CREAT flag is not set!
-#if ! defined (ACE_PSOS_DIAB_MIPS)
- ACE_CLR_BITS (flags, O_CREAT);
-# endif /* !ACE_PSOS_DIAB_MIPS */
-
- ACE_HANDLE handle;
-
- ACE_UNUSED_ARG (pipe_mode);
-#if defined (ACE_WIN32) && \
- !defined (ACE_HAS_PHARLAP) && !defined (ACE_HAS_WINCE)
- // We need to allow for more than one attempt to connect,
- // calculate the absolute time at which we give up.
- ACE_Time_Value absolute_time;
- if (timeout != 0)
- absolute_time = ACE_OS::gettimeofday () + *timeout;
-
- // Loop until success or failure.
- for (;;)
- {
- handle = ACE_OS::open (remote_sap.get_path_name(), flags, perms, sa);
- if (handle != ACE_INVALID_HANDLE)
- // Success!
- break;
-
- // Check if we have a busy pipe condition.
- if (::GetLastError() != ERROR_PIPE_BUSY)
- // Nope, this is a failure condition.
- break;
-
- // This will hold the time out value used in the ::WaitNamedPipe
- // call.
- DWORD time_out_value;
-
- // Check if we are to block until we connect.
- if (timeout == 0)
- // Wait for as long as it takes.
- time_out_value = NMPWAIT_WAIT_FOREVER;
- else
- {
- // Calculate the amount of time left to wait.
- ACE_Time_Value relative_time (absolute_time - ACE_OS::gettimeofday ());
- // Check if we have run out of time.
- if (relative_time <= ACE_Time_Value::zero)
- {
- // Mimick the errno value returned by
- // ACE_Handle_Ops::handle_timed_open.
- if (*timeout == ACE_Time_Value::zero)
- errno = EWOULDBLOCK;
- else
- errno = ETIMEDOUT;
- // Exit the connect loop with the failure.
- break;
- }
- // Get the amount of time remaining for ::WaitNamedPipe.
- time_out_value = relative_time.msec ();
-
- }
-
- // Wait for the named pipe to become available.
- ACE_TEXT_WaitNamedPipe (remote_sap.get_path_name (),
- time_out_value);
-
- // Regardless of the return value, we'll do one more attempt to
- // connect to see if it is now available and to return
- // consistent error values.
- }
-
- // Set named pipe mode if we have a valid handle.
- if (handle != ACE_INVALID_HANDLE)
- {
- // Check if we are changing the pipe mode from the default.
- if (pipe_mode != (PIPE_READMODE_BYTE | PIPE_WAIT))
- {
- DWORD dword_pipe_mode = pipe_mode;
- if (!::SetNamedPipeHandleState (handle,
- &dword_pipe_mode,
- 0,
- 0))
- {
- // We were not able to put the pipe into the requested
- // mode.
- ACE_OS::close (handle);
- handle = ACE_INVALID_HANDLE;
- }
- }
- }
-#else /* ACE_WIN32 && !ACE_HAS_PHARLAP */
- handle = ACE_Handle_Ops::handle_timed_open (timeout,
- remote_sap.get_path_name (),
- flags, perms, sa);
-#endif /* !ACE_WIN32 || ACE_HAS_PHARLAP || ACE_HAS_WINCE */
-
- new_io.set_handle (handle);
- new_io.remote_addr_ = remote_sap; // class copy.
-
- return handle == ACE_INVALID_HANDLE ? -1 : 0;
-}
diff --git a/ace/SPIPE_Connector.h b/ace/SPIPE_Connector.h
deleted file mode 100644
index 4e533d6f290..00000000000
--- a/ace/SPIPE_Connector.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SPIPE_Connector.h
- *
- * $Id$
- *
- * @author Doug Schmidt <schmidt@cs.wustl.edu>
- * @author Prashant Jain <pjain@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SPIPE_CONNECTOR_H
-#define ACE_SPIPE_CONNECTOR_H
-#include "ace/pre.h"
-
-#include "ace/SPIPE_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_SPIPE_Connector
- *
- * @brief Defines an active connection factory for <ACE_SPIPE_Stream>.
- * On Windows this is mapped to Named Pipes, whereas on UNIX it is
- * mapped to STREAM pipes.
- */
-class ACE_Export ACE_SPIPE_Connector
-{
-public:
- // = Initialization method.
- /// Default constructor.
- ACE_SPIPE_Connector (void);
-
- /**
- * Actively connect and produce a <new_stream> if things go well.
- * The <remote_sap> is the address that we are trying to connect
- * with. The <timeout> is the amount of time to wait to connect.
- * If it's 0 then we block indefinitely. If *timeout == {0, 0} then
- * the connection is done using non-blocking mode. In this case, if
- * the connection can't be made immediately the value of -1 is
- * returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then
- * this is the maximum amount of time to wait before timing out. If the
- * time expires before the connection is made <errno == ETIME>. The
- * <local_sap> is the value of local address to bind to. If it's
- * the default value of <ACE_Addr::sap_any> then the user is letting
- * the OS do the binding. If <reuse_addr> == 1 then the
- * <local_addr> is reused, even if it hasn't been cleanedup yet.
- * The <flags> and <perms> arguments are passed down to the <open>
- * method. The <pipe_mode> argument is only used in NT and is used to
- * establish the NT pipe mode.
- */
- ACE_SPIPE_Connector (ACE_SPIPE_Stream &new_io,
- const ACE_SPIPE_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = O_RDWR,
- int perms = 0,
- LPSECURITY_ATTRIBUTES sa = 0,
- int pipe_mode = PIPE_READMODE_MESSAGE | PIPE_WAIT);
-
- /**
- * Actively connect and produce a <new_stream> if things go well.
- * The <remote_sap> is the address that we are trying to connect
- * with. The <timeout> is the amount of time to wait to connect.
- * If it's 0 then we block indefinitely. If *timeout == {0, 0} then
- * the connection is done using non-blocking mode. In this case, if
- * the connection can't be made immediately the value of -1 is
- * returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then
- * this is the maximum amount of time to wait before timing out. If the
- * time expires before the connection is made <errno == ETIME>. The
- * <local_sap> is the value of local address to bind to. If it's
- * the default value of <ACE_Addr::sap_any> then the user is letting
- * the OS do the binding. If <reuse_addr> == 1 then the
- * <local_addr> is reused, even if it hasn't been cleanedup yet.
- * The <flags> and <perms> arguments are passed down to the <open>
- * method. The <pipe_mode> argument is only used in NT and is used to
- * establish the NT pipe mode.
- */
- int connect (ACE_SPIPE_Stream &new_io,
- const ACE_SPIPE_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = O_RDWR,
- int perms = 0,
- LPSECURITY_ATTRIBUTES sa = 0,
- int pipe_mode = PIPE_READMODE_MESSAGE | PIPE_WAIT);
-
- /// Resets any event associations on this handle
- int reset_new_handle (ACE_HANDLE handle);
-
- // = Meta-type info
- typedef ACE_SPIPE_Addr PEER_ADDR;
- typedef ACE_SPIPE_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SPIPE_Connector.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_SPIPE_CONNECTOR_H */
diff --git a/ace/SPIPE_Connector.i b/ace/SPIPE_Connector.i
deleted file mode 100644
index 9ce4c1a7855..00000000000
--- a/ace/SPIPE_Connector.i
+++ /dev/null
@@ -1,13 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SPIPE_Connector.i
-
-ASYS_INLINE int
-ACE_SPIPE_Connector::reset_new_handle (ACE_HANDLE handle)
-{
- ACE_UNUSED_ARG (handle);
- // Nothing to do here since the handle is not a socket
- return 0;
-}
-
diff --git a/ace/SPIPE_Stream.cpp b/ace/SPIPE_Stream.cpp
deleted file mode 100644
index 20385f02c33..00000000000
--- a/ace/SPIPE_Stream.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-// SPIPE_Stream.cpp
-// $Id$
-
-#include "ace/SPIPE_Stream.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SPIPE_Stream.i"
-#endif
-
-ACE_RCSID(ace, SPIPE_Stream, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SPIPE_Stream)
-
-void
-ACE_SPIPE_Stream::dump (void) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::dump");
-}
-
-// Simple-minded do nothing constructor.
-
-ACE_SPIPE_Stream::ACE_SPIPE_Stream (void)
-{
- // ACE_TRACE ("ACE_SPIPE_Stream::ACE_SPIPE_Stream");
-}
-
-// Send N char *ptrs and int lengths. Note that the char *'s precede
-// the ints (basically, an varargs version of writev). The count N is
-// the *total* number of trailing arguments, *not* a couple of the
-// number of tuple pairs!
-
-ssize_t
-ACE_SPIPE_Stream::send (size_t n, ...) const
-{
- // ACE_TRACE ("ACE_SPIPE_Stream::send");
- va_list argp;
- int total_tuples = ACE_static_cast (int, (n / 2));
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (int i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, int);
- }
-
- ssize_t result = ACE_OS::writev (this->get_handle (), iovp, total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
-}
-
-// This is basically an interface to ACE_OS::readv, that doesn't use
-// the struct iovec explicitly. The ... can be passed as an arbitrary
-// number of (char *ptr, int len) tuples. However, the count N is the
-// *total* number of trailing arguments, *not* a couple of the number
-// of tuple pairs!
-
-ssize_t
-ACE_SPIPE_Stream::recv (size_t n, ...) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::recv");
- va_list argp;
- int total_tuples = ACE_static_cast (int, (n / 2));
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (int i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, int);
- }
-
- ssize_t result = ACE_OS::readv (this->get_handle (), iovp, total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
-}
diff --git a/ace/SPIPE_Stream.h b/ace/SPIPE_Stream.h
deleted file mode 100644
index 340a0dccc4c..00000000000
--- a/ace/SPIPE_Stream.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SPIPE_Stream.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SPIPE_STREAM_H
-#define ACE_SPIPE_STREAM_H
-#include "ace/pre.h"
-
-#include "ace/SPIPE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SPIPE_Addr.h"
-#include "ace/ACE.h"
-
-/**
- * @class ACE_SPIPE_Stream
- *
- * @brief Defines the methods in the <ACE_SPIPE_Stream> abstraction.
- *
- * <buf> is the buffer to write from or receive into.
- * <len> is the number of bytes to transfer.
- *
- * The "_n()" I/O methods keep looping until all the data has been
- * transferred. These methods also work for sockets in non-blocking
- * mode i.e., they keep looping on EWOULDBLOCK.
- *
- * The return values for the "*_n()" methods match the return values
- * from the non "_n()" methods and are specified as follows:
- * - The number of bytes transferred is returned.
- * - On error, -1 is returned, errno is set to appropriate error.
- * - On EOF, 0 is returned, errno is irrelevant.
- *
- * Methods with <iovec> parameter are I/O vector variants of the I/O
- * operations.
- *
- * The <send> and <revc> operations use "message" semantics rather
- * than "bytestream" semantics.
- */
-class ACE_Export ACE_SPIPE_Stream : public ACE_SPIPE
-{
-public:
- friend class ACE_SPIPE_Acceptor;
- friend class ACE_SPIPE_Connector;
-
- // = Initialization method.
- /// Default constructor.
- ACE_SPIPE_Stream (void);
-
- /// Obtain the address of whom we are connected with.
- int get_remote_addr (ACE_SPIPE_Addr &remote_sap) const;
-
- /// Send an open FD to another process.
- int send_handle (ACE_HANDLE handle) const;
-
- /// Recv an open FD from another process.
- int recv_handle (ACE_HANDLE &handle) const;
-
- /// Recv an open FD from another process.
- int recv_handle (strrecvfd &recvfd) const;
-
- /// Send <len> bytes, keep trying until <len> are sent.
- ssize_t send_n (const void *buf, size_t len) const;
-
- /// Recv <len> bytes, keep trying until <len> are received.
- ssize_t recv_n (void *buf, size_t len) const;
-
- /// Send bytes via STREAM pipes using "band" mode.
- ssize_t send (const void *buf, size_t len) const;
-
- /// Recv bytes via STREAM pipes using "band" mode.
- ssize_t recv (void *buf, size_t len) const;
-
- /// Send <cntl> and <data> via STREAM pipes.
- ssize_t send (const ACE_Str_Buf *cntl,
- const ACE_Str_Buf *data,
- int flags = 0) const;
-
- /// Recv <cntl> and <data> via STREAM pipes.
- ssize_t recv (ACE_Str_Buf *cntl,
- ACE_Str_Buf *data,
- int *flags) const;
-
- /// Send bytes via STREAM pipes using "band" mode.
- ssize_t send (const ACE_Str_Buf *cntl,
- const ACE_Str_Buf *data,
- int band,
- int flags) const;
-
- /// Recv bytes via STREAM pipes using "band" mode.
- ssize_t recv (ACE_Str_Buf *cntl,
- ACE_Str_Buf *data,
- int *band,
- int *flags) const;
-
- /// Send iovecs via the OS "gather-write" operation.
- ssize_t send (const iovec iov[], int len) const;
-
- /// Recv iovecs via the OS "scatter-read" operation.
- ssize_t recv (iovec iov[], int len) const;
-
- /**
- * Send N char *ptrs and int lengths. Note that the char *'s
- * precede the ints (basically, an varargs version of writev). The
- * count N is the *total* number of trailing arguments, *not* a
- * couple of the number of tuple pairs!
- */
- ssize_t send (size_t len, ...) const;
-
- /**
- * This is an interface to ::readv, that doesn't use the struct
- * iovec explicitly. The ... can be passed as an arbitrary number
- * of (char *ptr, int len) tuples. However, the count N is the
- * *total* number of trailing arguments, *not* a couple of the
- * number of tuple pairs!
- */
- ssize_t recv (size_t len, ...) const;
-
- /// Send <len> bytes via Win32 <WriteFile> using overlapped I/O.
- ssize_t send (const void *buf, size_t len, ACE_OVERLAPPED *overlapped) const;
-
- /// Recv <len> bytes via Win32 <ReadFile> using overlapped I/O.
- ssize_t recv (void *buf, size_t len, ACE_OVERLAPPED *overlapped) const;
-
- /// Send an <iovec> of size <len> to the stream.
- ssize_t sendv (const iovec iov[],
- int len) const;
-
- /// Send an <iovec> of size <len> to the stream. Will block until all
- /// bytes are sent or an error occurs.
- ssize_t sendv_n (const iovec iov[],
- int len) const;
-
- /// Receive an <iovec> of size <len> to the stream.
- ssize_t recvv_n (iovec iov[],
- int len) const;
-
- // = Meta-type info
- typedef ACE_SPIPE_Addr PEER_ADDR;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- ACE_SPIPE_Addr remote_addr_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SPIPE_Stream.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_SPIPE_STREAM_H */
diff --git a/ace/SPIPE_Stream.i b/ace/SPIPE_Stream.i
deleted file mode 100644
index c52523d28b7..00000000000
--- a/ace/SPIPE_Stream.i
+++ /dev/null
@@ -1,267 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SPIPE_Stream.i
-
-// Create an ACE_SPIPE_Stream.
-
-ASYS_INLINE int
-ACE_SPIPE_Stream::get_remote_addr (ACE_SPIPE_Addr &remote_sap) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::get_remote_addr");
- remote_sap = this->remote_addr_;
- return 0;
-}
-
-// Send exactly N bytes from BUF to this socket. Keeping trying until
-// this many bytes are sent.
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::send_n (const void *buf, size_t n) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::send_n");
- return ACE::write_n (this->get_handle (), buf, n);
-}
-
-// Receive exactly N bytes from this socket into BUF. Keep trying
-// until this many bytes are received.
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::recv_n (void *buf, size_t n) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::recv_n");
- return ACE::read_n (this->get_handle (), buf, n);
-}
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::send (const void *buf, size_t n) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::send");
- return ACE_OS::write (this->get_handle (), (const char *) buf, n);
-}
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::recv (void *buf, size_t n) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::recv");
- return ACE_OS::read (this->get_handle (), (char *) buf, n);
-}
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::send (const ACE_Str_Buf *cntl, const ACE_Str_Buf *data, int flags) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::send");
- return ACE_OS::putmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::recv (ACE_Str_Buf *cntl, ACE_Str_Buf *data, int *flags) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::recv");
- return ACE_OS::getmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::send (const ACE_Str_Buf *cntl, const ACE_Str_Buf *data, int band, int flags) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::send");
- return ACE_OS::putpmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, band, flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::recv (ACE_Str_Buf *cntl, ACE_Str_Buf *data, int *band, int *flags) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::recv");
- return ACE_OS::getpmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, band, flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::send (const iovec iov[], int n) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::send");
- return ACE_OS::writev (this->get_handle (), iov, n);
-}
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::recv (iovec iov[], int n) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::recv");
- return ACE_OS::readv (this->get_handle (), iov, n);
-}
-
-// This routine sends an open file descriptor to this socket.
-
-ASYS_INLINE int
-ACE_SPIPE_Stream::send_handle (ACE_HANDLE handle) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::send_handle");
-#if defined (ACE_HAS_STREAM_PIPES)
- return ACE_OS::ioctl (this->get_handle (), I_SENDFD, (void *) handle);
-#elif defined (ACE_WIN32) && \
- (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) && \
- !defined (ACE_HAS_WINCE) /* CE4 has WS2 but not WSADuplicateSocket */
- DWORD procID;
- WSAPROTOCOL_INFO protInfo;
- ssize_t res;
- res = this->recv(&procID, sizeof(procID));
- if (res != sizeof(procID))
- {
- if(res != -1)
- errno = ENXIO;
- return -1;
- }
- if (::WSADuplicateSocket ((SOCKET)handle, procID, &protInfo) == -1)
- {
- ACE_OS::set_errno_to_wsa_last_error();
- return -1;
- }
- res = this->send(&protInfo, sizeof(protInfo));
- if (res != sizeof(protInfo))
- {
- if(res != -1)
- errno = ENXIO;
- return -1;
- }
- // This is just for synchronization, we will ignore the data
- res = this->recv(&procID, sizeof(procID));
- if (res != sizeof(procID))
- {
- if(res != -1)
- errno = ENXIO;
- return -1;
- }
- return 0;
-#else
- handle = handle;
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_STREAM_PIPES */
-}
-
-// This file receives an open file descriptor from this socket.
-
-ASYS_INLINE int
-ACE_SPIPE_Stream::recv_handle (ACE_HANDLE &handle) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::recv_handle");
-#if defined (ACE_HAS_STREAM_PIPES)
- strrecvfd recvfd;
-
- if (ACE_OS::ioctl (this->get_handle (), I_RECVFD, (void *) &recvfd) == -1)
- return -1;
- else
- {
- handle = recvfd.fd;
- return 0;
- }
-#elif defined (ACE_WIN32) && \
- (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0))
- pid_t procID = ACE_OS::getpid();
- WSAPROTOCOL_INFO protInfo;
- ssize_t res;
- res = this->send(&procID, sizeof(procID));
- if (res != sizeof(procID))
- {
- if(res != -1)
- errno = ENXIO;
- return -1;
- }
- res = this->recv(&protInfo, sizeof(protInfo));
- if (res != sizeof(protInfo))
- {
- if(res != -1)
- errno = ENXIO;
- return -1;
- }
- handle = ACE_OS::socket (FROM_PROTOCOL_INFO, FROM_PROTOCOL_INFO, FROM_PROTOCOL_INFO,
- &protInfo, 0, 0);
- if (handle == ACE_INVALID_HANDLE)
- {
- return -1;
- }
- // Since it does not matter what the data is, just send something to
- // synchronize the end of the exchange
- res = this->send(&procID, sizeof(procID));
- if (res != sizeof(procID))
- {
- if(res != -1)
- errno = ENXIO;
- return -1;
- }
- return 0;
-#else
- handle = handle;
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_STREAM_PIPES */
-}
-
-// This file receives an open file descriptor from this socket and
-// also passes back the information about the address...
-
-ASYS_INLINE int
-ACE_SPIPE_Stream::recv_handle (strrecvfd &recvfd) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::recv_handle");
-#if defined (ACE_HAS_STREAM_PIPES)
- return ACE_OS::ioctl (this->get_handle (), I_RECVFD, (void *) &recvfd);
-#else
- ACE_UNUSED_ARG (recvfd);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_STREAM_PIPES */
-}
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::send (const void *buf, size_t n,
- ACE_OVERLAPPED *overlapped) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::send");
- return ACE_OS::write (this->get_handle (),
- (const char *) buf, n,
- overlapped);
-}
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::recv (void *buf, size_t n,
- ACE_OVERLAPPED *overlapped) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::recv");
- return ACE_OS::read (this->get_handle (),
- (char *) buf, n,
- overlapped);
-}
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::sendv_n (const iovec iov[],
- int n) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::sendv_n");
- return ACE::writev_n (this->get_handle (),
- iov,
- n);
-}
-
-// Recv an n byte message from the Stream.
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::recvv_n (iovec iov[],
- int n) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::recvv_n");
- // @@ Carlos, can you please update this to call the
- // new ACE::recvv_n() method that you write?
- return ACE_OS::readv (this->get_handle (),
- iov,
- n);
-}
-
-// Send an <iovec> of size <n> to the Stream.
-
-ASYS_INLINE ssize_t
-ACE_SPIPE_Stream::sendv (const iovec iov[],
- int n) const
-{
- ACE_TRACE ("ACE_SPIPE_Stream::sendv");
- return ACE_OS::writev (this->get_handle (),
- iov,
- n);
-}
-
diff --git a/ace/SSL/ACE_SSL.dsp b/ace/SSL/ACE_SSL.dsp
deleted file mode 100644
index 8302562a4c2..00000000000
--- a/ace/SSL/ACE_SSL.dsp
+++ /dev/null
@@ -1,182 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ACE_SSL" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=ACE_SSL - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "ACE_SSL.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "ACE_SSL.mak" CFG="ACE_SSL - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ACE_SSL - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "ACE_SSL - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "ACE_SSL - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\DLL\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACE_SSL_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../" /D "NDEBUG" /D "_WINDOWS" /D "WIN32" /D "ACE_SSL_BUILD_DLL" /FD /c
-# SUBTRACT CPP /X /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 ace.lib libeay32.lib ssleay32.lib /nologo /dll /pdb:none /machine:I386 /out:"..\..\bin\ACE_SSL.dll" /libpath:"../"
-
-!ELSEIF "$(CFG)" == "ACE_SSL - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\DLL\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACE_SSL_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../../" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "ACE_SSL_BUILD_DLL" /FD /c
-# SUBTRACT CPP /Fr /YX
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib libeay32.lib ssleay32.lib /nologo /dll /debug /machine:I386 /out:"..\..\bin\ACE_SSLd.dll" /libpath:"../"
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "ACE_SSL - Win32 Release"
-# Name "ACE_SSL - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\SSL_Asynch_BIO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_Asynch_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_Context.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Stream.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm"
-# Begin Source File
-
-SOURCE=.\SSL_Asynch_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_Context.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_Export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\sslconf.h
-# End Source File
-# End Group
-# Begin Group "Inline Files"
-
-# PROP Default_Filter "i;inl"
-# Begin Source File
-
-SOURCE=.\SSL_Context.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Stream.i
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/ace/SSL/ACE_SSL.dsw b/ace/SSL/ACE_SSL.dsw
deleted file mode 100644
index bc356cd9b28..00000000000
--- a/ace/SSL/ACE_SSL.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "ACE_SSL"=.\ACE_SSL.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/ace/SSL/ACE_SSL_LIB.dsp b/ace/SSL/ACE_SSL_LIB.dsp
deleted file mode 100644
index 194af6d9115..00000000000
--- a/ace/SSL/ACE_SSL_LIB.dsp
+++ /dev/null
@@ -1,174 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ACE_SSL_LIB" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=ACE_SSL_LIB - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "ACE_SSL_LIB.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "ACE_SSL_LIB.mak" CFG="ACE_SSL_LIB - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ACE_SSL_LIB - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "ACE_SSL_LIB - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""$/StentorSoft/ACE_Wrappers/ace/SSL", WYQDAAAA"
-# PROP Scc_LocalPath "."
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "ACE_SSL_LIB - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\LIB\Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_LIB" /D "ACE_AS_STATIC_LIBS" /FD /c
-# SUBTRACT CPP /YX /Yc /Yu
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"ACE_SSLs.lib"
-
-!ELSEIF "$(CFG)" == "ACE_SSL_LIB - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\LIB\Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../../" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_LIB" /D "ACE_AS_STATIC_LIBS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"ACE_SSLsd.lib"
-
-!ENDIF
-
-# Begin Target
-
-# Name "ACE_SSL_LIB - Win32 Release"
-# Name "ACE_SSL_LIB - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\SSL_Asynch_BIO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_Context.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Stream.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm"
-# Begin Source File
-
-SOURCE=.\SSL_Asynch_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_Context.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_Export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\sslconf.h
-# End Source File
-# End Group
-# Begin Group "Inline Files"
-
-# PROP Default_Filter "i;inl"
-# Begin Source File
-
-SOURCE=.\SSL_Context.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSL_SOCK_Stream.i
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/ace/SSL/ACE_SSL_LIB.dsw b/ace/SSL/ACE_SSL_LIB.dsw
deleted file mode 100644
index f783011b55b..00000000000
--- a/ace/SSL/ACE_SSL_LIB.dsw
+++ /dev/null
@@ -1,41 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "ACE_SSL"=.\ACE_SSL.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "ACE_SSL_LIB"=.\ACE_SSL_LIB.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/ace/SSL/Makefile b/ace/SSL/Makefile
deleted file mode 100644
index a01334e2d48..00000000000
--- a/ace/SSL/Makefile
+++ /dev/null
@@ -1,801 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-#----------------------------------------------------------------------------
-
-ifndef ACE_ROOT
-default:
- @echo 'You must set ACE_ROOT'
-endif # ! ACE_ROOT
-
-MAKEFILE = Makefile
-LIBNAME = libACE_SSL
-LIB = $(LIBNAME).a
-SHLIB = $(LIBNAME).$(SOEXT)
-
-FILES = \
- SSL_Context \
- SSL_SOCK \
- SSL_SOCK_Acceptor \
- SSL_SOCK_Connector \
- SSL_SOCK_Stream \
- SSL_Asynch_Stream \
- SSL_Asynch_BIO
-
-LSRC = $(addsuffix .cpp,$(FILES))
-
-LIBS = $(ACELIB)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-ifneq ($(ssl),)
- CPPFLAGS += $(PLATFORM_SSL_CPPFLAGS)
- LIBS += $(PLATFORM_SSL_LIBS)
- LDFLAGS += $(PLATFORM_SSL_LDFLAGS)
-endif # ssl
-
-#----------------------------------------------------------------------------
-# Local targets (and local hacks)
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/SSL_Context.o .obj/SSL_Context.so .shobj/SSL_Context.o .shobj/SSL_Context.so: SSL_Context.cpp SSL_Context.h \
- $(ACE_ROOT)/ace/pre.h SSL_Export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i SSL_Context.inl sslconf.h \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Framework_Component.h \
- $(ACE_ROOT)/ace/Framework_Component.inl \
- $(ACE_ROOT)/ace/Framework_Component_T.h \
- $(ACE_ROOT)/ace/Framework_Component_T.inl \
- $(ACE_ROOT)/ace/Framework_Component_T.cpp
-
-.obj/SSL_SOCK.o .obj/SSL_SOCK.so .shobj/SSL_SOCK.o .shobj/SSL_SOCK.so: SSL_SOCK.cpp SSL_SOCK.h $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Addr.h $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i SSL_SOCK.i
-
-.obj/SSL_SOCK_Acceptor.o .obj/SSL_SOCK_Acceptor.so .shobj/SSL_SOCK_Acceptor.o .shobj/SSL_SOCK_Acceptor.so: SSL_SOCK_Acceptor.cpp SSL_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/pre.h SSL_Export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl SSL_SOCK_Stream.h SSL_SOCK.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Addr.h $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i SSL_SOCK.i SSL_Context.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i SSL_Context.inl \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i SSL_SOCK_Stream.i \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/OS_QoS.h SSL_SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i
-
-.obj/SSL_SOCK_Connector.o .obj/SSL_SOCK_Connector.so .shobj/SSL_SOCK_Connector.o .shobj/SSL_SOCK_Connector.so: SSL_SOCK_Connector.cpp SSL_SOCK_Connector.h \
- $(ACE_ROOT)/ace/pre.h SSL_Export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl SSL_SOCK_Stream.h SSL_SOCK.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Addr.h $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i SSL_SOCK.i SSL_Context.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i SSL_Context.inl \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i SSL_SOCK_Stream.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- $(ACE_ROOT)/ace/OS_QoS.h SSL_SOCK_Connector.i \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i
-
-.obj/SSL_SOCK_Stream.o .obj/SSL_SOCK_Stream.so .shobj/SSL_SOCK_Stream.o .shobj/SSL_SOCK_Stream.so: SSL_SOCK_Stream.cpp \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/pre.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl SSL_SOCK_Stream.h \
- SSL_Export.h SSL_SOCK.h $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i SSL_SOCK.i SSL_Context.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i SSL_Context.inl \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i SSL_SOCK_Stream.i
-
-.obj/SSL_Asynch_Stream.o .obj/SSL_Asynch_Stream.so .shobj/SSL_Asynch_Stream.o .shobj/SSL_Asynch_Stream.so: SSL_Asynch_Stream.cpp SSL_Asynch_Stream.h \
- $(ACE_ROOT)/ace/pre.h SSL_Context.h SSL_Export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i SSL_Context.inl \
- $(ACE_ROOT)/ace/Asynch_IO_Impl.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/Asynch_IO_Impl.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp SSL_Asynch_BIO.h \
- $(ACE_ROOT)/ace/POSIX_Proactor.h \
- $(ACE_ROOT)/ace/Proactor_Impl.h \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Pipe.h $(ACE_ROOT)/ace/Pipe.i \
- $(ACE_ROOT)/ace/POSIX_Asynch_IO.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/XML_Svc_Conf.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/POSIX_Asynch_IO.i \
- $(ACE_ROOT)/ace/Asynch_Pseudo_Task.h \
- $(ACE_ROOT)/ace/Select_Reactor.h \
- $(ACE_ROOT)/ace/Select_Reactor_T.h \
- $(ACE_ROOT)/ace/Select_Reactor_Base.h \
- $(ACE_ROOT)/ace/Token.h $(ACE_ROOT)/ace/Token.i \
- $(ACE_ROOT)/ace/Select_Reactor_Base.i \
- $(ACE_ROOT)/ace/Select_Reactor_T.cpp \
- $(ACE_ROOT)/ace/Timer_Heap.h \
- $(ACE_ROOT)/ace/Timer_Heap_T.h \
- $(ACE_ROOT)/ace/Timer_Heap_T.cpp \
- $(ACE_ROOT)/ace/Select_Reactor_T.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/DLL.h \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Exit.h \
- $(ACE_ROOT)/ace/Thread_Control.h \
- $(ACE_ROOT)/ace/Thread_Control.inl \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Framework_Component.h \
- $(ACE_ROOT)/ace/Framework_Component.inl \
- $(ACE_ROOT)/ace/Framework_Component_T.h \
- $(ACE_ROOT)/ace/Framework_Component_T.inl \
- $(ACE_ROOT)/ace/Framework_Component_T.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Notification_Strategy.h \
- $(ACE_ROOT)/ace/Notification_Strategy.inl \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/POSIX_Proactor.i \
- $(ACE_ROOT)/ace/Proactor.h \
- $(ACE_ROOT)/ace/Timer_List.h \
- $(ACE_ROOT)/ace/Timer_List_T.h \
- $(ACE_ROOT)/ace/Timer_List_T.cpp \
- $(ACE_ROOT)/ace/Timer_Wheel.h \
- $(ACE_ROOT)/ace/Timer_Wheel_T.h \
- $(ACE_ROOT)/ace/Timer_Wheel_T.cpp \
- $(ACE_ROOT)/ace/Proactor.i
-
-.obj/SSL_Asynch_BIO.o .obj/SSL_Asynch_BIO.so .shobj/SSL_Asynch_BIO.o .shobj/SSL_Asynch_BIO.so: SSL_Asynch_BIO.cpp SSL_Asynch_BIO.h \
- $(ACE_ROOT)/ace/pre.h SSL_Export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl SSL_Asynch_Stream.h \
- SSL_Context.h $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SStringfwd.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i SSL_Context.inl \
- $(ACE_ROOT)/ace/Asynch_IO_Impl.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/Asynch_IO_Impl.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ace/SSL/Makefile.am b/ace/SSL/Makefile.am
deleted file mode 100644
index 76dca53c598..00000000000
--- a/ace/SSL/Makefile.am
+++ /dev/null
@@ -1,46 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile.am for ACE_SSL library
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-lib_LTLIBRARIES = libACE_SSL.la
-
-libACE_SSL_la_SOURCES = \
- SSL_Asynch_BIO.cpp \
- SSL_Asynch_Stream.cpp \
- SSL_Context.cpp \
- SSL_SOCK.cpp \
- SSL_SOCK_Acceptor.cpp \
- SSL_SOCK_Connector.cpp \
- SSL_SOCK_Stream.cpp
-
-libACE_SSL_la_LIBADD = $(top_builddir)/ace/libACE.la
-
-HEADER_FILES = \
- SSL_Asynch_BIO.h \
- SSL_Asynch_Stream.h \
- SSL_Context.h \
- SSL_Export.h \
- SSL_SOCK.h \
- SSL_SOCK_Acceptor.h \
- SSL_SOCK_Connector.h \
- SSL_SOCK_Stream.h \
- sslconf.h
-
-INLINE_FILES = \
- SSL_SOCK.i \
- SSL_SOCK_Acceptor.i \
- SSL_SOCK_Connector.i \
- SSL_SOCK_Stream.i \
- SSL_Context.inl
-
-pkginclude_HEADERS = \
- $(HEADER_FILES) \
- $(INLINE_FILES)
diff --git a/ace/SSL/Makefile.bor b/ace/SSL/Makefile.bor
deleted file mode 100644
index 4ac97d0ab86..00000000000
--- a/ace/SSL/Makefile.bor
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#
-# Makefile for building the ACE SSL library with Borland C++Builder
-#
-
-!ifdef SSL_ROOT
-NAME = ACE_SSL
-!endif
-
-OBJFILES = \
- $(OBJDIR)\SSL_Context.obj \
- $(OBJDIR)\SSL_SOCK.obj \
- $(OBJDIR)\SSL_SOCK_Acceptor.obj \
- $(OBJDIR)\SSL_SOCK_Connector.obj \
- $(OBJDIR)\SSL_SOCK_Stream.obj \
- $(OBJDIR)\SSL_Asynch_Stream.obj \
- $(OBJDIR)\SSL_Asynch_BIO.obj
-
-CFLAGS = $(ACE_CFLAGS) $(SSL_CFLAGS) $(ACE_SSL_CFLAGS) -DACE_SSL_BUILD_DLL
-
-LIBFILES = $(ACE_LIB) $(SSL_LIB)
-
-CPPDIR = .
-
-INCDIR_NAME = ace\SSL
-INCLUDES = *.h *.i *.inl
-
-!include <$(ACE_ROOT)\include\makeinclude\build_core_library.bor>
diff --git a/ace/SSL/Makefile.in b/ace/SSL/Makefile.in
deleted file mode 100644
index 513f6d5dcf3..00000000000
--- a/ace/SSL/Makefile.in
+++ /dev/null
@@ -1,572 +0,0 @@
-# Makefile.in generated by automake 1.7.2 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ../..
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_triplet = @host@
-ACE_AGE = @ACE_AGE@
-ACE_CROSS_COMPILED_FALSE = @ACE_CROSS_COMPILED_FALSE@
-ACE_CROSS_COMPILED_TRUE = @ACE_CROSS_COMPILED_TRUE@
-ACE_CURRENT = @ACE_CURRENT@
-ACE_INCLUDEDIR = @ACE_INCLUDEDIR@
-ACE_LIBDIR = @ACE_LIBDIR@
-ACE_LIBS = @ACE_LIBS@
-ACE_ON_PENTIUM_FALSE = @ACE_ON_PENTIUM_FALSE@
-ACE_ON_PENTIUM_TRUE = @ACE_ON_PENTIUM_TRUE@
-ACE_REVISION = @ACE_REVISION@
-ACE_XLIBS = @ACE_XLIBS@
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BUILD_CODECS_FILES_FALSE = @BUILD_CODECS_FILES_FALSE@
-BUILD_CODECS_FILES_TRUE = @BUILD_CODECS_FILES_TRUE@
-BUILD_CONNECTION_FILES_FALSE = @BUILD_CONNECTION_FILES_FALSE@
-BUILD_CONNECTION_FILES_TRUE = @BUILD_CONNECTION_FILES_TRUE@
-BUILD_DEMUX_FILES_FALSE = @BUILD_DEMUX_FILES_FALSE@
-BUILD_DEMUX_FILES_TRUE = @BUILD_DEMUX_FILES_TRUE@
-BUILD_FULL_LIBRARY_FALSE = @BUILD_FULL_LIBRARY_FALSE@
-BUILD_FULL_LIBRARY_TRUE = @BUILD_FULL_LIBRARY_TRUE@
-BUILD_IPC_FILES_FALSE = @BUILD_IPC_FILES_FALSE@
-BUILD_IPC_FILES_TRUE = @BUILD_IPC_FILES_TRUE@
-BUILD_LOGGING_FILES_FALSE = @BUILD_LOGGING_FILES_FALSE@
-BUILD_LOGGING_FILES_TRUE = @BUILD_LOGGING_FILES_TRUE@
-BUILD_MEMORY_FILES_FALSE = @BUILD_MEMORY_FILES_FALSE@
-BUILD_MEMORY_FILES_TRUE = @BUILD_MEMORY_FILES_TRUE@
-BUILD_OS_FILES_FALSE = @BUILD_OS_FILES_FALSE@
-BUILD_OS_FILES_TRUE = @BUILD_OS_FILES_TRUE@
-BUILD_OTHER_FILES_FALSE = @BUILD_OTHER_FILES_FALSE@
-BUILD_OTHER_FILES_TRUE = @BUILD_OTHER_FILES_TRUE@
-BUILD_QOS_FALSE = @BUILD_QOS_FALSE@
-BUILD_QOS_TRUE = @BUILD_QOS_TRUE@
-BUILD_RMCAST_FALSE = @BUILD_RMCAST_FALSE@
-BUILD_RMCAST_TRUE = @BUILD_RMCAST_TRUE@
-BUILD_SOCKETS_FILES_FALSE = @BUILD_SOCKETS_FILES_FALSE@
-BUILD_SOCKETS_FILES_TRUE = @BUILD_SOCKETS_FILES_TRUE@
-BUILD_SSL_FALSE = @BUILD_SSL_FALSE@
-BUILD_SSL_TRUE = @BUILD_SSL_TRUE@
-BUILD_STREAMS_FILES_FALSE = @BUILD_STREAMS_FILES_FALSE@
-BUILD_STREAMS_FILES_TRUE = @BUILD_STREAMS_FILES_TRUE@
-BUILD_SVCCONF_FILES_FALSE = @BUILD_SVCCONF_FILES_FALSE@
-BUILD_SVCCONF_FILES_TRUE = @BUILD_SVCCONF_FILES_TRUE@
-BUILD_THREADS_FILES_FALSE = @BUILD_THREADS_FILES_FALSE@
-BUILD_THREADS_FILES_TRUE = @BUILD_THREADS_FILES_TRUE@
-BUILD_TIMER_FILES_FALSE = @BUILD_TIMER_FILES_FALSE@
-BUILD_TIMER_FILES_TRUE = @BUILD_TIMER_FILES_TRUE@
-BUILD_TOKEN_FILES_FALSE = @BUILD_TOKEN_FILES_FALSE@
-BUILD_TOKEN_FILES_TRUE = @BUILD_TOKEN_FILES_TRUE@
-BUILD_UTILS_FILES_FALSE = @BUILD_UTILS_FILES_FALSE@
-BUILD_UTILS_FILES_TRUE = @BUILD_UTILS_FILES_TRUE@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-COMPILE_GPERF_FALSE = @COMPILE_GPERF_FALSE@
-COMPILE_GPERF_TRUE = @COMPILE_GPERF_TRUE@
-COMPILE_XTREACTOR_TEST_FALSE = @COMPILE_XTREACTOR_TEST_FALSE@
-COMPILE_XTREACTOR_TEST_TRUE = @COMPILE_XTREACTOR_TEST_TRUE@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GPERF = @GPERF@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PROF = @PROF@
-PURIFY = @PURIFY@
-QUANTIFY = @QUANTIFY@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-XTREACTOR_TEST_XLIBS = @XTREACTOR_TEST_XLIBS@
-X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
-X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
-YACC = @YACC@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
-am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
-am__include = @am__include@
-am__quote = @am__quote@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-lib_LTLIBRARIES = libACE_SSL.la
-
-libACE_SSL_la_SOURCES = \
- SSL_Asynch_BIO.cpp \
- SSL_Asynch_Stream.cpp \
- SSL_Context.cpp \
- SSL_SOCK.cpp \
- SSL_SOCK_Acceptor.cpp \
- SSL_SOCK_Connector.cpp \
- SSL_SOCK_Stream.cpp
-
-
-libACE_SSL_la_LIBADD = $(top_builddir)/ace/libACE.la
-
-HEADER_FILES = \
- SSL_Asynch_BIO.h \
- SSL_Asynch_Stream.h \
- SSL_Context.h \
- SSL_Export.h \
- SSL_SOCK.h \
- SSL_SOCK_Acceptor.h \
- SSL_SOCK_Connector.h \
- SSL_SOCK_Stream.h \
- sslconf.h
-
-
-INLINE_FILES = \
- SSL_SOCK.i \
- SSL_SOCK_Acceptor.i \
- SSL_SOCK_Connector.i \
- SSL_SOCK_Stream.i \
- SSL_Context.inl
-
-
-pkginclude_HEADERS = \
- $(HEADER_FILES) \
- $(INLINE_FILES)
-
-subdir = ace/SSL
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/ace/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(lib_LTLIBRARIES)
-
-libACE_SSL_la_LDFLAGS =
-libACE_SSL_la_DEPENDENCIES = $(top_builddir)/ace/libACE.la
-am_libACE_SSL_la_OBJECTS = SSL_Asynch_BIO.lo SSL_Asynch_Stream.lo \
- SSL_Context.lo SSL_SOCK.lo SSL_SOCK_Acceptor.lo \
- SSL_SOCK_Connector.lo SSL_SOCK_Stream.lo
-libACE_SSL_la_OBJECTS = $(am_libACE_SSL_la_OBJECTS)
-
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/ace
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/SSL_Asynch_BIO.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/SSL_Asynch_Stream.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/SSL_Context.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/SSL_SOCK.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/SSL_SOCK_Acceptor.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/SSL_SOCK_Connector.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/SSL_SOCK_Stream.Plo
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-DIST_SOURCES = $(libACE_SSL_la_SOURCES)
-HEADERS = $(pkginclude_HEADERS)
-
-DIST_COMMON = $(pkginclude_HEADERS) Makefile.am Makefile.in
-SOURCES = $(libACE_SSL_la_SOURCES)
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu ace/SSL/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-libLTLIBRARIES_INSTALL = $(INSTALL)
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(libdir)
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \
- $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \
- else :; fi; \
- done
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
- done
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" = "$$p" && dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libACE_SSL.la: $(libACE_SSL_la_OBJECTS) $(libACE_SSL_la_DEPENDENCIES)
- $(CXXLINK) -rpath $(libdir) $(libACE_SSL_la_LDFLAGS) $(libACE_SSL_la_OBJECTS) $(libACE_SSL_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT) core *.core
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SSL_Asynch_BIO.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SSL_Asynch_Stream.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SSL_Context.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SSL_SOCK.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SSL_SOCK_Acceptor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SSL_SOCK_Connector.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SSL_SOCK_Stream.Plo@am__quote@
-
-distclean-depend:
- -rm -rf ./$(DEPDIR)
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
-@am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
-@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
-@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@am__fastdepCXX_TRUE@ fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
-@am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
-@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
-@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@am__fastdepCXX_TRUE@ fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
-@am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
-@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \
-@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@am__fastdepCXX_TRUE@ fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool
-uninstall-info-am:
-pkgincludeHEADERS_INSTALL = $(INSTALL_HEADER)
-install-pkgincludeHEADERS: $(pkginclude_HEADERS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(pkgincludedir)
- @list='$(pkginclude_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(pkgincludeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(pkgincludedir)/$$f"; \
- $(pkgincludeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(pkgincludedir)/$$f; \
- done
-
-uninstall-pkgincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(pkginclude_HEADERS)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " rm -f $(DESTDIR)$(pkgincludedir)/$$f"; \
- rm -f $(DESTDIR)$(pkgincludedir)/$$f; \
- done
-
-ETAGS = etags
-ETAGSFLAGS =
-
-CTAGS = ctags
-CTAGSFLAGS =
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-
-installdirs:
- $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(pkgincludedir)
-
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
- mostlyclean-am
-
-distclean: distclean-am
-
-distclean-am: clean-am distclean-compile distclean-depend \
- distclean-generic distclean-libtool distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-pkgincludeHEADERS
-
-install-exec-am: install-libLTLIBRARIES
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \
- uninstall-pkgincludeHEADERS
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool ctags distclean \
- distclean-compile distclean-depend distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am info \
- info-am install install-am install-data install-data-am \
- install-exec install-exec-am install-info install-info-am \
- install-libLTLIBRARIES install-man install-pkgincludeHEADERS \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool pdf \
- pdf-am ps ps-am tags uninstall uninstall-am uninstall-info-am \
- uninstall-libLTLIBRARIES uninstall-pkgincludeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/ace/SSL/SSL_Asynch_BIO.cpp b/ace/SSL/SSL_Asynch_BIO.cpp
deleted file mode 100644
index f55daf14e76..00000000000
--- a/ace/SSL/SSL_Asynch_BIO.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-// -*- C++ -*-
-
-#include "SSL_Asynch_BIO.h"
-#include "SSL_Asynch_Stream.h"
-
-ACE_RCSID (ACE_SSL,
- SSL_Asynch_BIO,
- "$Id$")
-
-#if OPENSSL_VERSION_NUMBER > 0x0090581fL && ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS)))
-
-#define BIO_TYPE_ACE ( 21 | BIO_TYPE_SOURCE_SINK )
-
-static BIO_METHOD methods_ACE =
- {
- BIO_TYPE_ACE, // BIO_TYPE_PROXY_SERVER,
- "ACE_Asynch_BIO",
- ACE_Asynch_BIO_write,
- ACE_Asynch_BIO_read,
- ACE_Asynch_BIO_puts,
- NULL, /* ACE_Asynch_BIO_gets, */
- ACE_Asynch_BIO_ctrl,
- ACE_Asynch_BIO_new,
- ACE_Asynch_BIO_free,
- NULL
- };
-
-BIO_METHOD *
-BIO_s_ACE_Asynch (void)
-{
- return (&methods_ACE);
-}
-
-BIO *
-BIO_new_ACE_Asynch (void *ssl_asynch_stream)
-{
- BIO * pBIO = BIO_new (BIO_s_ACE_Asynch ());
-
- if (pBIO)
- BIO_ctrl (pBIO,
- BIO_C_SET_FILE_PTR,
- 0,
- ssl_asynch_stream);
-
- return pBIO;
-}
-
-int
-ACE_Asynch_BIO_new (BIO *pBIO)
-{
- pBIO->init = 0; // not initialized
- pBIO->num = 0; // still zero ( we can use it )
- pBIO->ptr = 0; // will be pointer to ACE_SSL_Asynch_Stream
- pBIO->flags = 0; //
-
- return 1;
-}
-
-int
-ACE_Asynch_BIO_free (BIO *pBIO)
-{
- if (pBIO == 0)
- return 0;
-
- if (pBIO->shutdown)
- {
- pBIO->ptr = 0;
- pBIO->init = 0;
- pBIO->num = 0;
- pBIO->flags = 0;
- }
-
- return 1;
-}
-
-int
-ACE_Asynch_BIO_read (BIO * pBIO, char * buf, int len)
-{
- BIO_clear_retry_flags (pBIO);
-
- ACE_SSL_Asynch_Stream * p_stream =
- ACE_static_cast (ACE_SSL_Asynch_Stream *, pBIO->ptr);
-
- if (pBIO->init == 0 || p_stream == 0)
- return -1;
-
- if (buf == 0)
- return -1;
-
- if (len <= 0 )
- return -1;
-
- BIO_clear_retry_flags (pBIO);
-
- int errval = 0;
-
- int retval =
- p_stream->ssl_bio_read (buf,
- ACE_static_cast (size_t, len),
- errval);
-
- if (retval >= 0)
- return retval;
-
- if (errval == EINPROGRESS)
- BIO_set_retry_read (pBIO);
-
- return -1;
-}
-
-int
-ACE_Asynch_BIO_write (BIO * pBIO, const char * buf, int len)
-{
- BIO_clear_retry_flags (pBIO);
-
- ACE_SSL_Asynch_Stream * p_stream =
- ACE_static_cast (ACE_SSL_Asynch_Stream *, pBIO->ptr);
-
- if (pBIO->init == 0 || p_stream == 0)
- return -1;
-
- if (buf == 0)
- return -1;
-
- if (len <= 0)
- return -1;
-
- BIO_clear_retry_flags (pBIO);
-
- int errval = 0;
-
- int retval =
- p_stream->ssl_bio_write (buf,
- ACE_static_cast (size_t, len),
- errval);
-
- if (retval >= 0)
- return retval;
-
- if (errval == EINPROGRESS)
- BIO_set_retry_write (pBIO);
-
- return -1;
-}
-
-long
-ACE_Asynch_BIO_ctrl (BIO * pBIO, int cmd, long num, void *ptr)
-{
- long ret = 1;
-
- switch (cmd)
- {
- case BIO_C_SET_FILE_PTR:
- pBIO->shutdown = ACE_static_cast (int, num);
- pBIO->ptr = ptr;
- pBIO->init = 1;
- break;
-
- case BIO_CTRL_INFO:
- ret = 0;
- break;
-
- case BIO_CTRL_GET_CLOSE:
- ret = pBIO->shutdown;
- break;
-
- case BIO_CTRL_SET_CLOSE:
- pBIO->shutdown = ACE_static_cast (int, num);
- break;
-
- case BIO_CTRL_PENDING:
- case BIO_CTRL_WPENDING:
- ret = 0;
- break;
-
- case BIO_CTRL_DUP:
- case BIO_CTRL_FLUSH:
- ret = 1;
- break;
-
- default:
- ret = 0;
- break;
- }
-
- return ret;
-}
-
-
-int
-ACE_Asynch_BIO_puts (BIO *pBIO, const char *str)
-{
- int n = ACE_OS::strlen (str);
-
- return ACE_Asynch_BIO_write (pBIO, str, n);
-}
-
-#endif /* OPENSSL_VERSION_NUMBER > 0x0090581fL && (ACE_WIN32 ||
- ACE_HAS_AIO_CALLS) */
diff --git a/ace/SSL/SSL_Asynch_BIO.h b/ace/SSL/SSL_Asynch_BIO.h
deleted file mode 100644
index c903417fb1e..00000000000
--- a/ace/SSL/SSL_Asynch_BIO.h
+++ /dev/null
@@ -1,51 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file SSL_Asynch_BIO.h
- *
- * $Id$
- *
- * @author Alexander Libman <alibman@baltimore.com>
- * @author Ossama Othman <ossama@uci.edu>
- *
- */
-//=============================================================================
-
-#ifndef ACE_SSL_ASYNCH_BIO_H
-#define ACE_SSL_ASYNCH_BIO_H
-
-#include "ace/pre.h"
-
-#include "SSL_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include <openssl/bio.h>
-
-#if OPENSSL_VERSION_NUMBER > 0x0090581fL && ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS)))
-
-/**
- * @name OpenSSL BIO Helper Methods for use with ACE's Asynchronous
- * SSL I/O support.
- */
-//@{
-extern "C"
-{
- int ACE_Asynch_BIO_write (BIO *pBIO, const char *buf, int len);
- int ACE_Asynch_BIO_read (BIO *pBIO, char *buf, int len);
- int ACE_Asynch_BIO_puts (BIO *pBIO, const char *str);
- long ACE_Asynch_BIO_ctrl (BIO *pBIO, int cmd, long arg1, void *arg2);
- int ACE_Asynch_BIO_new (BIO *pBIO);
- int ACE_Asynch_BIO_free (BIO *pBIO);
-}
-//@}
-
-#endif /* OPENSSL_VERSION_NUMBER > 0x0090581fL (ACE_WIN32 ||
- ACE_HAS_AIO_CALLS) */
-
-#include "ace/post.h"
-
-#endif /* ACE_SSL_ASYNCH_BIO_H */
diff --git a/ace/SSL/SSL_Asynch_Stream.cpp b/ace/SSL/SSL_Asynch_Stream.cpp
deleted file mode 100644
index 8978452dc7c..00000000000
--- a/ace/SSL/SSL_Asynch_Stream.cpp
+++ /dev/null
@@ -1,1124 +0,0 @@
-// -*- C++ -*-
-
-#include "SSL_Asynch_Stream.h"
-
-ACE_RCSID (ACE_SSL,
- SSL_Asynch_Stream,
- "$Id$")
-
-// This only works on platforms with Asynchronous IO support.
-#if OPENSSL_VERSION_NUMBER > 0x0090581fL && ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS)))
-
-
-#if defined (ACE_WIN32)
-
-# define A_RESULT ACE_WIN32_Asynch_Result
-# define ARS_RESULT ACE_WIN32_Asynch_Read_Stream_Result
-# define AWS_RESULT ACE_WIN32_Asynch_Write_Stream_Result
-
-# define ERR_CANCELED ERROR_OPERATION_ABORTED
-
-# include "ace/WIN32_Proactor.h"
-
-#else
-
-# define A_RESULT ACE_POSIX_Asynch_Result
-# define ARS_RESULT ACE_POSIX_Asynch_Read_Stream_Result
-# define AWS_RESULT ACE_POSIX_Asynch_Write_Stream_Result
-
-# define ERR_CANCELED ECANCELED
-
-# include "ace/POSIX_Proactor.h"
-
-#endif /* ACE_WIN32 */
-
-#include "ace/Proactor.h"
-
-#include <openssl/err.h>
-
-// ************************************************************
-// SSL Asynchronous Write Result
-// ************************************************************
-
-class ACE_SSL_Export ACE_SSL_Asynch_Write_Stream_Result:
- public AWS_RESULT
-{
- /// Factory class will have special permissions.
- friend class ACE_SSL_Asynch_Stream;
-
-protected:
-
- ACE_SSL_Asynch_Write_Stream_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number);
-};
-
-ACE_SSL_Asynch_Write_Stream_Result::ACE_SSL_Asynch_Write_Stream_Result
- (ACE_Handler & handler,
- ACE_HANDLE handle,
- ACE_Message_Block & message_block,
- size_t bytes_to_write,
- const void * act,
- ACE_HANDLE event,
- int priority,
- int signal_number
- )
- : AWS_RESULT (handler,
- handle,
- message_block,
- bytes_to_write,
- act,
- event,
- priority,
- signal_number
- )
-{
-}
-
-// ************************************************************
-// SSL Asynchronous Read Result
-// ************************************************************
-class ACE_SSL_Export ACE_SSL_Asynch_Read_Stream_Result:
- public ARS_RESULT
-{
- /// Factory class will have special permissions.
- friend class ACE_SSL_Asynch_Stream;
-
-protected:
-
- ACE_SSL_Asynch_Read_Stream_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number);
-};
-
-
-
-ACE_SSL_Asynch_Read_Stream_Result::ACE_SSL_Asynch_Read_Stream_Result
- (ACE_Handler & handler,
- ACE_HANDLE handle,
- ACE_Message_Block & message_block,
- size_t bytes_to_read,
- const void * act,
- ACE_HANDLE event,
- int priority,
- int signal_number
- )
- : ARS_RESULT (handler,
- handle,
- message_block,
- bytes_to_read,
- act,
- event,
- priority,
- signal_number
- )
-{
-}
-
-
-// ************************************************************
-// Faked Result. It is used for close notification
-// ************************************************************
-class ACE_SSL_Asynch_Result : public A_RESULT
-{
-public:
- ACE_SSL_Asynch_Result (ACE_Handler & handler);
-
- void complete (size_t bytes_transferred,
- int success,
- const void * completion_key,
- u_long error);
-};
-
-ACE_SSL_Asynch_Result::ACE_SSL_Asynch_Result
- (ACE_Handler & handler)
- : A_RESULT (handler,
- 0, // act,
- ACE_INVALID_HANDLE,
- 0, // Offset
- 0, // OffsetHigh
- 0, // Priority
- ACE_SIGRTMIN //signal_number
- )
-{
-}
-
-void
-ACE_SSL_Asynch_Result::complete (size_t /* bytes_transferred */,
- int /* success */,
- const void * /* completion_key */,
- u_long /* error */)
-{
- this->handler_.handle_wakeup ();
-}
-
-// ************************************************************
-// ACE_SSL_Asynch_Stream Constructor / Desctructor
-// ************************************************************
-ACE_SSL_Asynch_Stream::ACE_SSL_Asynch_Stream (
- ACE_SSL_Asynch_Stream::Stream_Type s_type,
- ACE_SSL_Context * context)
- : type_ (s_type),
- handle_ (ACE_INVALID_HANDLE),
- proactor_ (0),
- ext_handler_ (0),
- ext_read_result_ (0),
- ext_write_result_(0),
- flags_ (0),
- ssl_ (0),
- bio_ (0),
- bio_istream_ (),
- bio_inp_msg_ (),
- bio_inp_errno_(0),
- bio_inp_flag_ (0),
- bio_ostream_ (),
- bio_out_msg_ (),
- bio_out_errno_(0),
- bio_out_flag_ (0),
- mutex_ ()
-{
- ACE_TRACE ("ACE_SSL_Asynch_Stream::ACE_SSL_Asynch_Stream");
- // was honestly copied from ACE_SSL_SOCK_Stream :)
-
- ACE_SSL_Context * ctx =
- (context == 0 ? ACE_SSL_Context::instance () : context);
-
- this->ssl_ = ::SSL_new (ctx->context ());
-
- if (this->ssl_ == 0)
- ACE_ERROR
- ((LM_ERROR,
- ACE_TEXT ("(%P|%t) ACE_SSL_Asynch_Stream %p\n"),
- ACE_TEXT ("- cannot allocate new SSL structure")
- ));
-
- ::SSL_set_verify (this->ssl_,
- ctx->default_verify_mode (),
- 0);
-}
-
-ACE_SSL_Asynch_Stream::~ACE_SSL_Asynch_Stream (void)
-{
- ACE_TRACE ("ACE_SSL_Asynch_Stream::~ACE_SSL_Asynch_Stream");
-
-
- // It is safe to delete stream if all notifications are received,
- // i.e., state is SF_DELETE_ENABLE or if proactor event loop is
- // done.
- if (this->flags_ & SF_STREAM_OPEN) // open
- if ((this->flags_ & SF_DELETE_ENABLE) == 0) // but ..
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("ACE_SSL_Asynch_Stream::DTOR-")
- ACE_TEXT("possible access violation ")
- ACE_TEXT("if proactor still handles events\n")));
-
- ::SSL_free (this->ssl_);
- this->ssl_ = 0;
-
- // Was honestly copied from ACE_SSL_SOCK_Stream :)
-
- // @@ Question: should we reference count the Context object or
- // leave that to the application developer? We do not reference
- // count reactors (for example) and following some simple rules
- // seems to work fine!
-}
-
-// ************************************************************
-// close ()
-// returns :
-// 0 - Stream is in the state SF_DELETE_ENABLE,
-// so it is safe to delete stream
-// -1 - Stream has pending AIO requests,
-// close should be repeated later one more
-// ************************************************************
-
-int
-ACE_SSL_Asynch_Stream::close (void)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1));
-
- if ((flags_ & SF_STREAM_OPEN) == 0) // not open
- flags_ |= SF_DELETE_ENABLE;
-
- if (flags_ & SF_DELETE_ENABLE)
- return 0;
-
- flags_ |= SF_REQ_SHUTDOWN;
-
- this->do_SSL_state_machine ();
-
- return -1;
-}
-
-// ************************************************************
-// Asynch_Operation interface
-// cancel
-// ************************************************************
-int
-ACE_SSL_Asynch_Stream::cancel (void)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1));
-
- if ((flags_ & SF_STREAM_OPEN) == 0) // not open
- return 1; // AIO_ALLDONE
-
- // attempt to cancel internal, i.e. user's read/write
- int rc_r_int = bio_istream_.cancel();
- int rc_w_int = bio_ostream_.cancel();
-
- // attempt to cancel external, i.e. bio_ssl read/write
- int rc_r_ext = notify_read (0, ERR_CANCELED);
- int rc_w_ext = notify_read (0, ERR_CANCELED);
-
- if (rc_r_int < 0 || rc_w_int < 0
- && rc_r_ext < 0 || rc_w_ext < 0)
- return -1; // at least one error
-
- if (rc_r_int == 1 && rc_w_int == 1
- && rc_r_ext == 1 && rc_w_ext == 1)
- return 1; // AIO_ALLDONE
-
- if (rc_r_int == 2 || rc_w_int == 2
- && rc_r_ext == 2 || rc_w_ext == 2)
- return 2; // AIO_NOT_CANCELED , at least one not canceled
-
- return 0; // AIO_CANCELED, at least will be one notification
-}
-
-// ************************************************************
-// Asynch_Operation interface
-// open
-// ************************************************************
-int
-ACE_SSL_Asynch_Stream::open (ACE_Handler & handler,
- ACE_HANDLE handle,
- const void * completion_key,
- ACE_Proactor * proactor)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1));
-
- if (this->flags_ & SF_STREAM_OPEN)
- ACE_ERROR_RETURN
- ((LM_ERROR,
- ACE_TEXT ("(%P|%t) ACE_SSL_Asynch_Stream::open() %p\n"),
- ACE_TEXT ("- already opened")),
- -1);
-
- if (this->ssl_ == 0)
- ACE_ERROR_RETURN
- ((LM_ERROR,
- ACE_TEXT ("(%P|%t) ACE_SSL_Asynch_Stream::open() %p\n"),
- ACE_TEXT ("- SSL structure is absent")),
- -1);
-
- if (handle == ACE_INVALID_HANDLE)
- ACE_ERROR_RETURN
- ((LM_ERROR,
- ACE_TEXT ("(%P|%t) ACE_SSL_Asynch_Stream::open() %p\n"),
- ACE_TEXT ("- invalid handle")),
- -1);
-
-
- // Get a proactor for/from the user.
- this->proactor_ = this->get_proactor (proactor, handler);
- this->ext_handler_ = & handler;
- this->handle_ = handle;
-
- // Open internal input stream
- if (this->bio_istream_.open (*this, // real callbacks to this
- handle,
- completion_key,
- this->proactor_) != 0)
- return -1;
-
- // Open internal output stream
- if (this->bio_ostream_.open (*this, // real callbacks to this
- handle,
- completion_key,
- this->proactor_) != 0)
- return -1;
-
- this->bio_ = ::BIO_new_ACE_Asynch (this);
-
- if (this->bio_ == 0)
- ACE_ERROR_RETURN
- ((LM_ERROR,
- ACE_TEXT ("(%P|%t) ACE_SSL_Asynch_Stream::open() %p\n"),
- ACE_TEXT ("- cannot allocate new BIO structure")),
- -1);
-
- ::SSL_set_bio (this->ssl_ , this->bio_ , this->bio_);
-
- switch (this->type_)
- {
- case ST_CLIENT:
- ::SSL_set_connect_state (this->ssl_);
- break;
-
- case ST_SERVER:
- ::SSL_set_accept_state (this->ssl_);
- break;
-
- default:
- ACE_ERROR_RETURN
- ((LM_ERROR,
- ACE_TEXT ("(%P|%t) ACE_SSL_Asynch_Stream::open() %p\n"),
- ACE_TEXT ("- invalid stream type")),
- -1);
- }
-
- this->flags_ |= SF_STREAM_OPEN;
-
- this->do_SSL_state_machine ();
-
- return 0;
-}
-
-void
-ACE_SSL_Asynch_Stream::open (ACE_HANDLE new_handle,
- ACE_Message_Block &block)
-{
- ACE_Service_Handler::open (new_handle,
- block);
-}
-
-// ************************************************************
-// Asynch_Operation interface
-// read
-// ************************************************************
-int
-ACE_SSL_Asynch_Stream::read (ACE_Message_Block & message_block,
- size_t bytes_to_read,
- const void * act,
- int priority,
- int signal_number)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1));
-
- if ((this->flags_ & SF_STREAM_OPEN) == 0) // not open
- return -1;
-
- if (this->flags_ & SF_REQ_SHUTDOWN)
- return -1;
-
- // only one read operation is allowed now
- // later it will be possible to make a queue
-
- if (this->ext_read_result_ != 0)
- return -1;
-
- // create result for future notification
- ACE_NEW_RETURN (this->ext_read_result_,
- ACE_SSL_Asynch_Read_Stream_Result (
- *this->ext_handler_,
- this->handle_,
- message_block,
- bytes_to_read,
- act,
- this->proactor_->get_handle(),
- priority,
- signal_number),
- -1);
-
- this->do_SSL_state_machine (); // ignore return code
-
- return 0;
-}
-
-// ************************************************************
-// Asynch_Operation interface
-// write
-// ************************************************************
-int
-ACE_SSL_Asynch_Stream::write (ACE_Message_Block & message_block,
- size_t bytes_to_write,
- const void * act,
- int priority,
- int signal_number)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1));
-
- if ((this->flags_ & SF_STREAM_OPEN) == 0) // not open
- return -1;
-
- if (this->flags_ & SF_REQ_SHUTDOWN)
- return -1;
-
- // only one read operation is allowed now
- // later it will be possible to make a queue
-
- if (this->ext_write_result_ != 0)
- return -1;
-
- // create result for future notification
- ACE_NEW_RETURN (this->ext_write_result_,
- ACE_SSL_Asynch_Write_Stream_Result (
- *this->ext_handler_,
- this->handle_,
- message_block,
- bytes_to_write,
- act,
- this->proactor_->get_handle(),
- priority,
- signal_number),
- -1);
-
- this->do_SSL_state_machine ();
-
- return 0;
-}
-
-// ************************************************************
-// Main SSL engine
-// ************************************************************
-int
-ACE_SSL_Asynch_Stream::do_SSL_state_machine (void)
-{
- // this protected member should be called
- // with locked mutex_
-
- int retval = this->do_SSL_handshake ();
-
- if (retval == 0) // handshake in progress ?
- return 0;
-
- if (retval < 0)
- this->flags_ |= SF_REQ_SHUTDOWN;
-
- this->do_SSL_read (); // execute user read request
- this->do_SSL_write (); // execute user write request
-
- if ((this->flags_ & SF_REQ_SHUTDOWN) == 0) // Do we have any errors
- return 0;
-
- this->do_SSL_shutdown ();
-
- this->notify_close ();
-
- return 0;
-}
-
-// ************************************************************
-// do_SSL_shutdown
-// return code:
-// 1 SSL shutdown is finished already, success
-// 0 SSL shutdown in progress
-// -1 failure
-// ************************************************************
-int
-ACE_SSL_Asynch_Stream::do_SSL_shutdown (void)
-{
- if (this->flags_ & SF_SHUTDOWN_DONE) // already done
- return 1;
-
- this->flags_ |= SF_REQ_SHUTDOWN;
-
- // if we have any uncompleted user requests
- // than cancel its
- this->notify_read (0, ERR_CANCELED);
- this->notify_write (0, ERR_CANCELED);
-
- int retval = ::SSL_shutdown (this->ssl_);
-
- int status = ::SSL_get_error (this->ssl_, retval);
-
- switch (status)
- {
- case SSL_ERROR_NONE:
- case SSL_ERROR_ZERO_RETURN:
- case SSL_ERROR_SYSCALL:
- retval = 1;
- break;
-
- case SSL_ERROR_WANT_READ:
- case SSL_ERROR_WANT_WRITE:
- case SSL_ERROR_WANT_CONNECT:
- // case SSL_ERROR_WANT_ACCEPT:
- case SSL_ERROR_WANT_X509_LOOKUP:
- return 0;
-
- default:
- this->print_error (status,
- ACE_TEXT ("Shutdown error"));
- retval = -1;
- break;
- }
-
- this->flags_ |= SF_SHUTDOWN_DONE;
-
- return retval;
-}
-
-// ************************************************************
-// Do SSL handshake if necessary
-// return code:
-// 1 SSL handshake is finished already, success
-// 0 SSL handshake in progress
-// -1 failure
-// ************************************************************
-int
-ACE_SSL_Asynch_Stream::do_SSL_handshake (void)
-{
- if (SSL_is_init_finished (this->ssl_))
- return 1;
-
- if (this->flags_ & SF_REQ_SHUTDOWN)
- return -1;
-
- int retval = -1;
-
- switch (this->type_)
- {
- case ST_CLIENT:
- retval = ::SSL_connect (this->ssl_);
- break;
-
- case ST_SERVER:
- retval = ::SSL_accept (this->ssl_);
- break;
-
- default:
- ACE_ERROR_RETURN
- ((LM_ERROR,
- ACE_TEXT ("(%P|%t) ACE_SSL_Asynch_Stream %p\n"),
- ACE_TEXT ("- invalid stream type")),
- -1);
- }
-
- int status = ::SSL_get_error (this->ssl_, retval);
-
- switch (status)
- {
- case SSL_ERROR_NONE:
- break;
-
- case SSL_ERROR_WANT_READ:
- case SSL_ERROR_WANT_WRITE:
- case SSL_ERROR_WANT_CONNECT:
- //case SSL_ERROR_WANT_ACCEPT:
- case SSL_ERROR_WANT_X509_LOOKUP:
- return 0;
-
- case SSL_ERROR_ZERO_RETURN:
- case SSL_ERROR_SYSCALL:
- default:
- this->print_error (status,
- ACE_TEXT ("Handshake error"));
- return -1;
- }
-
- return 1;
-}
-
-// ************************************************************
-// Perform SSL_read call if necessary and notify user
-// ************************************************************
-int
-ACE_SSL_Asynch_Stream::do_SSL_read (void)
-{
- if (this->ext_read_result_ == 0) // nothing to do
- return 0;
-
- if (this->flags_ & SF_REQ_SHUTDOWN)
- {
- this->notify_read (0, ERR_CANCELED);
- return -1;
- }
-
- ACE_Message_Block & mb = this->ext_read_result_->message_block ();
- size_t bytes_req = this->ext_read_result_->bytes_to_read ();
-
- const int bytes_trn = ::SSL_read (this->ssl_,
- mb.wr_ptr (),
- bytes_req);
-
- int status = ::SSL_get_error (this->ssl_, bytes_trn);
-
- switch (status)
- {
- case SSL_ERROR_NONE:
- this->notify_read (bytes_trn, 0);
- return 1;
-
- case SSL_ERROR_WANT_READ:
- case SSL_ERROR_WANT_WRITE:
- return 0;
-
- case SSL_ERROR_ZERO_RETURN:
- this->notify_read (0, 0);
- return 1;
-
- case SSL_ERROR_SYSCALL:
- if (bytes_trn == 0)
- {
- this->notify_read (0, 0);
- return 1;
- }
- // If not an EOF, then fall through to "default" case.
-
- default:
- break;
- }
-
- this->notify_read (0, EFAULT);
- this->print_error (status,
- ACE_TEXT ("SSL_read error"));
-
- return -1;
-}
-
-// ************************************************************
-// Perform SSL_write call if necessary and notify user
-// ************************************************************
-int
-ACE_SSL_Asynch_Stream::do_SSL_write (void)
-{
- if (this->ext_write_result_ == 0) // nothing to do
- return 0;
-
- if (this->flags_ & SF_REQ_SHUTDOWN)
- {
- this->notify_write (0, ERR_CANCELED);
- return -1;
- }
-
- ACE_Message_Block & mb = this->ext_write_result_->message_block ();
- size_t bytes_req = this->ext_write_result_->bytes_to_write ();
-
- const int bytes_trn = ::SSL_write (this->ssl_,
- mb.rd_ptr (),
- bytes_req);
-
- int status = ::SSL_get_error (this->ssl_, bytes_trn);
-
- switch (status)
- {
- case SSL_ERROR_NONE:
- this->notify_write (bytes_trn, 0);
- return 1;
-
- case SSL_ERROR_WANT_READ:
- case SSL_ERROR_WANT_WRITE:
- return 0;
-
- case SSL_ERROR_ZERO_RETURN:
- this->notify_write (bytes_trn, 0);
- return 1;
-
- case SSL_ERROR_SYSCALL:
- default:
- break;
- }
-
- this->notify_write(0, EFAULT);
- this->print_error (status,
- ACE_TEXT ("SSL_write error"));
-
- return -1;
-}
-
-// ************************************************************
-// notify external user handler that
-// it is now to safe destroy stream
-// Return code looks like cancel() return code
-// 0 - notified NOTIFIED
-// 1 - nothing to notify ALLDONE
-// 2 - unable to notify NOT NOTIFIED
-// ************************************************************
-int
-ACE_SSL_Asynch_Stream::notify_close (void)
-{
- if (this->flags_ & SF_CLOSE_NTF_SENT) // already sent
- return 1;
-
- if ((this->flags_ & SF_SHUTDOWN_DONE) == 0) // only after shutdown
- return 2; // too early , we will do later
-
- if (this->pending_BIO_count () != 0) // wait for all internal IO
- return 2; // too early , we will do later
-
- // create result for future notification
- ACE_SSL_Asynch_Result * close_result = 0;
-
- ACE_NEW_RETURN (close_result,
- ACE_SSL_Asynch_Result (*this),
- 2);
- //@@ Not exception safe!
-
- int retval =
- close_result->post_completion (this->proactor_->implementation ());
-
- if (retval == 0)
- {
- this->flags_ |= SF_CLOSE_NTF_SENT;
- return 0;
- }
-
- delete close_result;
- return 2;
-}
-
-// ************************************************************
-// notify external user handler about user write completion
-// Return code looks like cancel() return code
-// 0 - notified NOTIFIED/CANCELED
-// 1 - nothing to notify ALLDONE
-// 2 - unable to notify NOT NOTIFIED/CANCELED
-// ************************************************************
-
-int
-ACE_SSL_Asynch_Stream::notify_read (int bytes_transferred,
- int error)
-{
- if (ext_read_result_ == 0) //nothing to notify
- return 1;
-
- ext_read_result_->set_bytes_transferred (bytes_transferred);
- ext_read_result_->set_error (error);
-
- int retval = ext_read_result_->post_completion
- (proactor_->implementation());
-
- if (retval == 0)
- {
- ext_read_result_ = 0;
- return 0; // success
- }
-
- return 2; // unable to notify
-}
-
-// ************************************************************
-// notify external user handler about user write completion
-// Return code looks like cancel() return code
-// 0 - notified NOTIFIED/CANCELED
-// 1 - nothing to notify ALLDONE
-// 2 - unable to notify NOT NOTIFIED/CANCELED
-// ************************************************************
-
-int
-ACE_SSL_Asynch_Stream::notify_write (int bytes_transferred,
- int error)
-{
- if (this->ext_write_result_ == 0) //nothing to notify
- return 1;
-
- this->ext_write_result_->set_bytes_transferred (bytes_transferred);
- this->ext_write_result_->set_error (error);
-
- int retval =
- this->ext_write_result_->post_completion (
- this->proactor_->implementation ());
-
- if (retval == 0)
- {
- this->ext_write_result_ = 0;
- return 0; // success
- }
-
- return 2; // unable to notify
-}
-
-// ************************************************************
-// Print SSL errors
-// ************************************************************
-void
-ACE_SSL_Asynch_Stream::print_error (int err_ssl,
- const ACE_TCHAR * pText)
-{
- ACE_DEBUG ((LM_DEBUG,
- "SSL-error:%d %s\n" ,
- err_ssl,
- pText));
-
-#if OPENSSL_VERSION_NUMBER >= 0x0090601fL
- // OpenSSL < 0.9.6a doesn't have ERR_error_string_n() function.
- unsigned long lerr = 0;
- char buf[1024];
-
- while ((lerr = ERR_get_error()) != 0)
- {
- ERR_error_string_n (lerr, buf, sizeof buf);
-
- ACE_DEBUG ((LM_DEBUG, "%s\n", buf));
- }
-#endif /* OPENSSL_VERSION_NUMBER */
-}
-
-// ************************************************************
-// BIO helper functions
-// SSL library will ask BIO to do raw I/O
-// BIO will call us to do this
-// ************************************************************
-int
-ACE_SSL_Asynch_Stream::ssl_bio_read (char * buf,
- size_t len,
- int & errval)
-{
- // We do not have to acquire mutex
- // as we called already with locked mutex
- // from do_SSL_state_machine()
-
- errval = 0;
-
- size_t cur_len = this->bio_inp_msg_.length ();
-
- if (cur_len > 0) // there are more data buffered
- {
- const char * rd_ptr = this->bio_inp_msg_.rd_ptr ();
-
- if (cur_len > len)
- cur_len = len;
-
- ACE_OS::memcpy (buf, rd_ptr, cur_len);
-
- this->bio_inp_msg_.rd_ptr (cur_len); // go ahead
-
- return cur_len;
- }
-
- if (this->bio_inp_errno_ != 0) // if was error - it is permanent !
- {
- errval = this->bio_inp_errno_;
- return -1;
- }
-
- if (this->bio_inp_flag_ & BF_EOS) // End of stream
- return 0;
-
- errval = EINPROGRESS; // SSL will try later
-
- if (this->bio_inp_flag_ & BF_AIO) // we are busy
- return -1;
-
- if (this->bio_inp_msg_.size (len) != 0)
- {
- ACE_ERROR
- ((LM_ERROR,
- ACE_TEXT ("%N:%l ((%P|%t) ACE_SSL_Asynch_Stream %p\n"),
- ACE_TEXT ("error in ACE_Message_Block::size() ")
- ));
-
- errval = EINVAL;
- return -1;
- }
-
- char * base = this->bio_inp_msg_.base ();
-
- this->bio_inp_msg_.rd_ptr (base);
- this->bio_inp_msg_.wr_ptr (base);
-
- if (this->bio_istream_.read (
- bio_inp_msg_, // message block
- len, // priority
- 0, // act
- 0, // priority
- ACE_SIGRTMIN // default signal
- ) == -1)
- {
- ACE_ERROR
- ((LM_ERROR,
- ACE_TEXT ("%N:%l (%P|%t) ACE_SSL_Asynch_Stream %p\n"),
- ACE_TEXT ("attempt read failed")
- ));
-
- errval = EINVAL; // may be leave EINPROGRESS ??
- return -1; // to try later
- }
-
- this->bio_inp_flag_ |= BF_AIO; // AIO is active
-
- return -1;
-}
-
-
-int
-ACE_SSL_Asynch_Stream::ssl_bio_write (const char * buf,
- size_t len,
- int & errval)
-{
- // We do not have to acquire mutex
- // as we called already with locked mutex
- // from do_SSL_state_machine
-
- errval = 0;
-
- if (this->bio_out_flag_ & BF_AIO) // sorry, we are busy
- {
- errval = EINPROGRESS; // try later
- return -1;
- }
-
- if (this->bio_out_errno_ != 0) // no recovery
- {
- errval = this->bio_out_errno_;
- return -1;
- }
-
- if (this->bio_out_msg_.size (len) != 0)
- {
- ACE_ERROR
- ((LM_ERROR,
- ACE_TEXT ("%N:%l ((%P|%t) ACE_SSL_Asynch_Stream %p\n"),
- ACE_TEXT ("error in ACE_Message_Block::size() ")
- ));
-
- errval = EINVAL;
- return -1;
- }
-
- char * base = this->bio_out_msg_.base ();
-
- this->bio_out_msg_.rd_ptr (base);
- this->bio_out_msg_.wr_ptr (base);
-
- if (this->bio_out_msg_.copy (buf, len) == -1)
- {
- ACE_ERROR
- ((LM_ERROR,
- ACE_TEXT ("%N:%l ((%P|%t) ACE_SSL_Asynch_Stream %p\n"),
- ACE_TEXT ("error in ACE_Message_Block::copy() ")
- ));
-
- errval = EINVAL;
- return -1;
- }
-
-
- if (this->bio_ostream_.write (
- this->bio_out_msg_, // message block
- len, // priority
- 0, // act
- 0, // priority
- ACE_SIGRTMIN // default signal
- ) == -1)
- {
- ACE_ERROR
- ((LM_ERROR,
- ACE_TEXT ("%N:%l ((%P|%t) ACE_SSL_Asynch_Stream %p\n"),
- ACE_TEXT ("attempt write failed")
- ));
-
- errval = EINVAL; // may be leave EINPROGRESS ??
- return -1; // to try later
- }
-
- this->bio_out_flag_ |= BF_AIO; // AIO is active
- errval = 0; // Ok, go ahead
-
- return len;
-}
-
-// ************************************************************
-// Internal IO handlers
-// virtual from ACE_Service_Handler
-// ************************************************************
-void
-ACE_SSL_Asynch_Stream::handle_write_stream (
- const ACE_Asynch_Write_Stream::Result &result)
-{
- ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, this->mutex_));
-
- this->bio_out_flag_ &= ~BF_AIO;
-
- ACE_Message_Block & mb = result.message_block ();
-
- size_t bytes_req = result.bytes_to_write ();
- size_t bytes_trn = result.bytes_transferred ();
- u_long errval = result.error ();
- size_t len = bytes_req - bytes_trn;
-
- if (errval != 0) // error ?
- this->bio_out_errno_ = errval; // save error code
- else if (len > 0) // TCP/IP overloaded ?
- { // continue, rd_ptr at right place
- if (this->bio_ostream_.write (
- mb, // message block
- len, // priority
- 0, // act
- 0, // priority
- ACE_SIGRTMIN // default signal
- ) == 0)
- {
- this->bio_out_flag_ |= BF_AIO;
- return;
- }
-
- ACE_ERROR
- ((LM_ERROR,
- ACE_TEXT ("(%P|%t) ACE_SSL_Asynch_Stream %p\n"),
- ACE_TEXT ("attempt write failed")
- ));
-
- this->bio_out_errno_ = EINVAL;
- }
-
- this->do_SSL_state_machine ();
-
- return;
-}
-
-void
-ACE_SSL_Asynch_Stream::handle_read_stream (
- const ACE_Asynch_Read_Stream::Result &result)
-{
- ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, this->mutex_));
-
- this->bio_inp_flag_ &= ~BF_AIO;
-
- size_t bytes_trn = result.bytes_transferred ();
- u_long errval = result.error ();
-
- if (errval != 0) // error ?
- this->bio_inp_errno_ = errval; // save error code
- else if (bytes_trn == 0) // end of stream ?
- this->bio_inp_flag_ |= BF_EOS; // set flag EOS
-
- this->do_SSL_state_machine ();
-
- return;
-}
-
-void
-ACE_SSL_Asynch_Stream::handle_wakeup (void)
-{
- ACE_Handler * user_handler = 0;
-
- {
- ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, this->mutex_));
-
- this->flags_ |= SF_DELETE_ENABLE;
-
- user_handler = this->ext_handler_;
- }
-
- if (user_handler != 0)
- user_handler->handle_wakeup();
-}
-
-int
-ACE_SSL_Asynch_Stream::pending_BIO_count (void)
-{
- int ret = 0;
-
- if (this->bio_inp_flag_ & BF_AIO)
- ret++;
-
- if (this->bio_out_flag_ & BF_AIO)
- return ret++;
-
- return ret;
-}
-
-#endif /* OPENSSL_VERSION_NUMBER > 0x0090581fL && (ACE_WIN32 ||
- ACE_HAS_AIO_CALLS) */
diff --git a/ace/SSL/SSL_Asynch_Stream.h b/ace/SSL/SSL_Asynch_Stream.h
deleted file mode 100644
index 106f3a76eee..00000000000
--- a/ace/SSL/SSL_Asynch_Stream.h
+++ /dev/null
@@ -1,242 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file SSL_Asynch_Stream.h
- *
- * $Id$
- *
- * @author Alexander Libman <alibman@baltimore.com>
- *
- */
-//=============================================================================
-
-#ifndef ACE_SSL_ASYNCH_STREAM_H
-#define ACE_SSL_ASYNCH_STREAM_H
-
-#include "ace/pre.h"
-#include "SSL_Context.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if OPENSSL_VERSION_NUMBER > 0x0090581fL && ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS)))
-
-#include "ace/Asynch_IO_Impl.h"
-#include "ace/Message_Block.h"
-
-#include "SSL_Asynch_BIO.h"
-
-extern "C"
-{
- BIO_METHOD * BIO_s_ACE_Asynch (void);
- BIO * BIO_new_ACE_Asynch (void *ssl_asynch_stream);
-}
-
-
-/// Forward declarations
-class ACE_SSL_Asynch_Stream;
-class ACE_SSL_Asynch_Result;
-class ACE_SSL_Export ACE_SSL_Asynch_Read_Stream_Result;
-class ACE_SSL_Export ACE_SSL_Asynch_Write_Stream_Result;
-
-
-/**
- * @class ACE_SSL_Asynch_Stream
- *
- * @brief This class is a factory for starting off asynchronous reads
- * on a stream. This class forwards all methods to its
- * implementation class.
- * @par
- * Once open() is called, multiple asynchronous read()s can
- * started using this class. An ACE_SSL_Asynch_Stream::Result
- * will be passed back to the @param handler when the asynchronous
- * reads completes through the ACE_Handler::handle_read_stream
- * callback.
- */
-class ACE_SSL_Export ACE_SSL_Asynch_Stream
- : public ACE_Asynch_Operation,
- public ACE_Service_Handler
-{
- friend int ACE_Asynch_BIO_read (BIO * pBIO, char * buf, int len);
- friend int ACE_Asynch_BIO_write (BIO * pBIO, const char * buf, int len);
-
-public:
-
- enum Stream_Type
- {
- ST_CLIENT = 0x0001,
- ST_SERVER = 0x0002
- };
-
-
- /// The constructor.
- ACE_SSL_Asynch_Stream (Stream_Type s_type = ST_SERVER,
- ACE_SSL_Context * context = 0);
-
- /// Destructor
- virtual ~ACE_SSL_Asynch_Stream (void);
-
- int cancel(void);
-
- int close (void);
-
- int open (ACE_Handler &handler,
- ACE_HANDLE handle = ACE_INVALID_HANDLE,
- const void *completion_key = 0,
- ACE_Proactor *proactor = 0);
-
- /// NOTE: This method has been specifically put in place so that
- /// compilers like the borland doesnt get confused between the above
- /// open () call with the one in the ACE_Service_Handler, from which
- /// this class is derived from..
- void open (ACE_HANDLE new_handle,
- ACE_Message_Block &message_block);
-
- int read (ACE_Message_Block &message_block,
- size_t num_bytes_to_read,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- int write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act = 0,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
-protected:
-
- /// virtual from ACE_Service_Handler
-
- /// This method is called when BIO write request is completed. It
- /// processes the IO completion and calls do_SSL_state_machine().
- virtual void handle_write_stream
- (const ACE_Asynch_Write_Stream::Result &result);
-
- /// This method is called when BIO read request is completed. It
- /// processes the IO completion and calls do_SSL_state_machine().
- virtual void handle_read_stream
- (const ACE_Asynch_Read_Stream::Result &result);
-
- /// This method is called when all SSL sessions are closed and no
- /// more pending AIOs exist. It also calls users handle_wakeup().
- virtual void handle_wakeup (void);
-
- /**
- * @name SSL State Machine
- */
- //@{
- int do_SSL_state_machine (void);
- int do_SSL_handshake (void);
- int do_SSL_read (void);
- int do_SSL_write(void);
- int do_SSL_shutdown(void);
- //@}
-
- void print_error (int err_ssl,
- const ACE_TCHAR *pText);
-
- int pending_BIO_count (void);
-
- /// This method is called to notify user handler when user's read in
- /// done.
- int notify_read (int bytes_transferred, int error);
-
- /// This method is called to notify user handler when user's write
- /// in done.
- int notify_write (int bytes_transferred, int error);
-
- /// This method is called to notify ourself that SSL session is
- /// shutdown and that there is no more I/O activity now and in the
- /// future.
- int notify_close(void);
-
- /**
- * @name BIO Helpers
- */
- //@{
- int ssl_bio_read (char * buf, size_t len, int & errval);
- int ssl_bio_write (const char * buf, size_t len, int & errval);
- //@}
-
-protected:
-
- /// Stream Type ST_CLIENT/ST_SERVER
- Stream_Type type_;
-
- /// The real file/socket handle
- ACE_HANDLE handle_;
-
- /// The proactor
- ACE_Proactor * proactor_;
-
- /// External,i.e user handler
- ACE_Handler * ext_handler_;
-
- /// External, i.e. read result faked for user
- ACE_SSL_Asynch_Read_Stream_Result * ext_read_result_ ;
-
- /// External, i.e. write result faked for user
- ACE_SSL_Asynch_Write_Stream_Result * ext_write_result_ ;
-
- /// Stream state/flags
- enum Stream_Flag
- {
- SF_STREAM_OPEN = 0x0001, /// istream_ open OK
- SF_REQ_SHUTDOWN = 0x0002, /// request to SSL shutdown
- SF_SHUTDOWN_DONE = 0x0004, /// SSL shutdown finished
- SF_CLOSE_NTF_SENT = 0x0008, /// Close notification sent
- SF_DELETE_ENABLE = 0x0010 /// Stream can be safely destroyed
- };
-
- int flags_;
-
- /// The SSL session.
- SSL * ssl_;
-
- /// The BIO implementation
- BIO * bio_;
-
- /// The real streams which work under the ssl connection.
- /// BIO performs I/O via this streams
-
- enum BIO_Flag // internal IO flags
- {
- BF_EOS = 0x01, // end of stream
- BF_AIO = 0x02 // real AIO in progress
- };
-
- /**
- * @name Internal stream, buffer and info for BIO read
- */
- //@{
- ACE_Asynch_Read_Stream bio_istream_;
- ACE_Message_Block bio_inp_msg_;
- int bio_inp_errno_;
- int bio_inp_flag_;
- //@}
-
- /**
- * @name Internal stream, buffer and info for BIO write
- */
- //@{
- ACE_Asynch_Write_Stream bio_ostream_;
- ACE_Message_Block bio_out_msg_;
- int bio_out_errno_;
- int bio_out_flag_;
- //@}
-
- /// Mutex to protect work
- ACE_SYNCH_MUTEX mutex_;
-
-};
-
-
-#endif /* OPENSSL_VERSION_NUMBER > 0x0090581fL && (ACE_WIN32 ||
- ACE_HAS_AIO_CALLS) */
-
-#include "ace/post.h"
-
-#endif /* ACE_SSL_ASYNCH_STREAM_H */
diff --git a/ace/SSL/SSL_Context.cpp b/ace/SSL/SSL_Context.cpp
deleted file mode 100644
index f93618d0b0c..00000000000
--- a/ace/SSL/SSL_Context.cpp
+++ /dev/null
@@ -1,539 +0,0 @@
-// -*- C++ -*-
-
-#include "SSL_Context.h"
-
-#include "sslconf.h"
-
-#if !defined(__ACE_INLINE__)
-#include "SSL_Context.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Synch.h"
-#include "ace/Object_Manager.h"
-#include "ace/Log_Msg.h"
-#include "ace/Singleton.h"
-
-#include <openssl/x509.h>
-#include <openssl/err.h>
-#include <openssl/rand.h>
-
-ACE_RCSID (ACE_SSL,
- SSL_Context,
- "$Id$")
-
-#ifdef ACE_HAS_THREADS
-ACE_mutex_t * ACE_SSL_Context::lock_ = 0;
-#endif /* ACE_HAS_THREADS */
-
-
-int ACE_SSL_Context::library_init_count_ = 0;
-
-ACE_SSL_Context::ACE_SSL_Context (void)
- : context_ (0),
- mode_ (-1),
- default_verify_mode_ (SSL_VERIFY_NONE),
- have_ca_ (0)
-{
- ACE_SSL_Context::ssl_library_init ();
-}
-
-ACE_SSL_Context::~ACE_SSL_Context (void)
-{
- if (this->context_)
- {
- ::SSL_CTX_free (this->context_);
- this->context_ = 0;
- }
-
- ACE_SSL_Context::ssl_library_fini ();
-}
-
-ACE_SSL_Context *
-ACE_SSL_Context::instance (void)
-{
- return ACE_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>::instance ();
-}
-
-void
-ACE_SSL_Context::ssl_library_init (void)
-{
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex,
- ace_ssl_mon,
- *ACE_Static_Object_Lock::instance ()));
-
- if (ACE_SSL_Context::library_init_count_ == 0)
- {
- // Initialize the locking callbacks before initializing anything
- // else.
-#ifdef ACE_HAS_THREADS
- int num_locks = ::CRYPTO_num_locks ();
-
- ACE_NEW (ACE_SSL_Context::lock_,
- ACE_mutex_t[num_locks]);
-
- for (int i = 0; i < num_locks; ++i)
- {
- // rwlock_init(&(ACE_SSL_Context::lock_[i]), USYNC_THREAD,
- // 0);
- if (ACE_OS::mutex_init (&(ACE_SSL_Context::lock_[i]),
- USYNC_THREAD) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("(%P|%t) ACE_SSL_Context::ssl_library_init ")
- ACE_TEXT ("- %p\n"),
- ACE_TEXT ("mutex_init")));
- }
-
-# if !defined (WIN32)
- // This call isn't necessary on some platforms. See the CRYPTO
- // library's threads(3) man page for details.
- ::CRYPTO_set_id_callback (ACE_SSL_thread_id);
-# endif /* WIN32 */
- ::CRYPTO_set_locking_callback (ACE_SSL_locking_callback);
-#endif /* ACE_HAS_THREADS */
-
- ::SSLeay_add_ssl_algorithms ();
- ::SSL_load_error_strings ();
-
- // Seed the random number generator. Note that the random
- // number generator can be seeded more than once to "stir" its
- // state.
-
-#ifdef WIN32
- // Seed the random number generator by sampling the screen.
- ::RAND_screen ();
-#endif /* WIN32 */
-
-#if OPENSSL_VERSION_NUMBER >= 0x00905100L
- // OpenSSL < 0.9.5 doesn't have EGD support.
-
- const char *egd_socket_file =
- ACE_OS::getenv (ACE_SSL_EGD_FILE_ENV);
-
- if (egd_socket_file != 0)
- (void) this->egd_file (egd_socket_file);
-#endif /* OPENSSL_VERSION_NUMBER */
-
- const char *rand_file =
- ACE_OS::getenv (ACE_SSL_RAND_FILE_ENV);
-
- if (rand_file != 0)
- (void) this->seed_file (rand_file);
-
- // Initialize the mutexes that will be used by the SSL and
- // crypto library.
-
- }
-
- ACE_SSL_Context::library_init_count_++;
-}
-
-void
-ACE_SSL_Context::ssl_library_fini (void)
-{
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex,
- ace_ssl_mon,
- *ACE_Static_Object_Lock::instance ()));
-
- ACE_SSL_Context::library_init_count_--;
- if (ACE_SSL_Context::library_init_count_ == 0)
- {
- ::ERR_free_strings ();
- ::EVP_cleanup ();
-
- // Clean up the locking callbacks after everything else has been
- // cleaned up.
-#ifdef ACE_HAS_THREADS
- int num_locks = ::CRYPTO_num_locks ();
-
- ::CRYPTO_set_locking_callback (0);
- for (int i = 0; i < num_locks; ++i)
- ACE_OS::mutex_destroy (&(ACE_SSL_Context::lock_[i]));
-
- delete [] ACE_SSL_Context::lock_;
-#endif /* ACE_HAS_THREADS */
- }
-}
-
-int
-ACE_SSL_Context::set_mode (int mode)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex,
- ace_ssl_mon,
- *ACE_Static_Object_Lock::instance (),
- -1));
-
- if (this->context_ != 0)
- return -1;
-
- SSL_METHOD *method = 0;
-
- switch (mode)
- {
- case ACE_SSL_Context::SSLv2_client:
- method = ::SSLv2_client_method ();
- break;
- case ACE_SSL_Context::SSLv2_server:
- method = ::SSLv2_server_method ();
- break;
- case ACE_SSL_Context::SSLv2:
- method = ::SSLv2_method ();
- break;
- case ACE_SSL_Context::SSLv3_client:
- method = ::SSLv3_client_method ();
- break;
- case ACE_SSL_Context::SSLv3_server:
- method = ::SSLv3_server_method ();
- break;
- case ACE_SSL_Context::SSLv3:
- method = ::SSLv3_method ();
- break;
- case ACE_SSL_Context::SSLv23_client:
- method = ::SSLv23_client_method ();
- break;
- case ACE_SSL_Context::SSLv23_server:
- method = ::SSLv23_server_method ();
- break;
- case ACE_SSL_Context::SSLv23:
- method = ::SSLv23_method ();
- break;
- case ACE_SSL_Context::TLSv1_client:
- method = ::TLSv1_client_method ();
- break;
- case ACE_SSL_Context::TLSv1_server:
- method = ::TLSv1_server_method ();
- break;
- case ACE_SSL_Context::TLSv1:
- method = ::TLSv1_method ();
- break;
- default:
- method = ::SSLv3_method ();
- break;
- }
-
- this->context_ = ::SSL_CTX_new (method);
- if (this->context_ == 0)
- return -1;
-
- this->mode_ = mode;
-
- // Load the trusted certificate authority (default) certificate
- // locations. But do not return -1 on error, doing so confuses CTX
- // allocation (severe error) with the less important loading of CA
- // certificate location error. If it is important for your
- // application then call ACE_SSL_Context::have_trusted_ca(),
- // immediately following this call to set_mode().
- (void) this->load_trusted_ca ();
-
- return 0;
-}
-
-int
-ACE_SSL_Context::load_trusted_ca (const char* ca_file, const char* ca_dir)
-{
- this->check_context ();
-
- if (ca_file == 0)
- {
- // Use the default environment settings.
- ca_file = ACE_OS::getenv (ACE_SSL_CERT_FILE_ENV);
- if (ca_file == 0)
- ca_file = ACE_DEFAULT_SSL_CERT_FILE;
- }
-
- if (ca_dir == 0)
- {
- // Use the default environment settings.
- ca_dir = ACE_OS::getenv (ACE_SSL_CERT_DIR_ENV);
- if (ca_dir == 0)
- ca_dir = ACE_DEFAULT_SSL_CERT_DIR;
- }
-
- // NOTE: SSL_CTX_load_verify_locations() returns 0 on error.
- if (::SSL_CTX_load_verify_locations (this->context_,
- ca_file,
- ca_dir) <= 0)
- {
- if (ACE::debug ())
- ACE_SSL_Context::report_error ();
- return -1;
- }
- else
- {
- this->have_ca_++;
-
- // for TLS/SSL servers scan all certificates in ca_file and list
- // then as acceptable CAs when requesting a client certificate.
- if (mode_ == SSLv23
- || mode_ == SSLv23_server
- || mode_ == TLSv1
- || mode_ == TLSv1_server
- || mode_ == SSLv3
- || mode_ == SSLv3_server
- || mode_ == SSLv2
- || mode_ == SSLv2_server)
- {
- STACK_OF (X509_NAME) * cert_names;
- cert_names = ::SSL_CTX_get_client_CA_list(this->context_);
-
- if (cert_names == 0)
- {
- // Set the first certificate authorith list.
- cert_names = ::SSL_load_client_CA_file (ca_file);
- if (cert_names != 0 )
- ::SSL_CTX_set_client_CA_list (this->context_,
- cert_names);
- }
- else
- {
- // Add new certificate names to the list.
- if (!::SSL_add_file_cert_subjects_to_stack (cert_names,
- ca_file))
- cert_names = 0;
- }
-
- if (cert_names == 0)
- {
- if (ACE::debug ())
- ACE_SSL_Context::report_error ();
- return -1;
- }
-
- // @todo
- // If warranted do the same for ca_dir when the function
- // SSL_add_dir_cert_subjects_to_stack() is portable to
- // WIN32, VMS, MAC_OS_pre_X (nb. it is not defined for those
- // platforms by OpenSSL).
- }
- }
-
- return 0;
-}
-
-
-int
-ACE_SSL_Context::private_key (const char *file_name,
- int type)
-{
- if (this->private_key_.type () != -1)
- return 0;
-
- this->check_context ();
-
- this->private_key_ = ACE_SSL_Data_File (file_name, type);
-
- if (::SSL_CTX_use_PrivateKey_file (this->context_,
- this->private_key_.file_name (),
- this->private_key_.type ()) <= 0)
- return -1;
- else
- return this->verify_private_key ();
-}
-
-int
-ACE_SSL_Context::verify_private_key (void)
-{
- this->check_context ();
-
- return (::SSL_CTX_check_private_key (this->context_) <= 0 ? -1 : 0);
-}
-
-int
-ACE_SSL_Context::certificate (const char *file_name,
- int type)
-{
- if (this->certificate_.type () != -1)
- return 0;
-
- this->certificate_ = ACE_SSL_Data_File (file_name, type);
-
- this->check_context ();
-
- if (::SSL_CTX_use_certificate_file (this->context_,
- this->certificate_.file_name (),
- this->certificate_.type ()) <= 0)
- return -1;
- else
- return 0;
-}
-
-void
-ACE_SSL_Context::set_verify_peer (int strict, int once, int depth)
-{
- this->check_context ();
-
- // Setup the peer verififcation mode.
-
- int verify_mode = SSL_VERIFY_PEER;
- if (once)
- verify_mode |= SSL_VERIFY_CLIENT_ONCE;
- if (strict)
- verify_mode |= SSL_VERIFY_FAIL_IF_NO_PEER_CERT;
-
- // set the default verify mode
- this->default_verify_mode (verify_mode);
-
- // Set the max certificate depth but later let the verify_callback
- // catch the depth error by adding one to the required depth.
- if (depth > 0)
- ::SSL_CTX_set_verify_depth (this->context_, depth + 1);
-}
-
-
-int
-ACE_SSL_Context::random_seed (const char * seed)
-{
- ::RAND_seed (seed, ACE_OS::strlen (seed));
-
-#if OPENSSL_VERSION_NUMBER >= 0x00905100L
- // RAND_status() returns 1 if the PRNG has enough entropy.
- return (::RAND_status () == 1 ? 0 : -1);
-#else
- return 0; // Ugly, but OpenSSL <= 0.9.4 doesn't have RAND_status().
-#endif /* OPENSSL_VERSION_NUMBER >= 0x00905100L */
-}
-
-int
-ACE_SSL_Context::egd_file (const char * socket_file)
-{
-#if OPENSSL_VERSION_NUMBER < 0x00905100L
- // OpenSSL < 0.9.5 doesn't have EGD support.
- ACE_UNUSED_ARG (socket_file);
- ACE_NOTSUP_RETURN (-1);
-#else
- // RAND_egd() returns the amount of entropy used to seed the random
- // number generator. The actually value should be greater than 16,
- // i.e. 128 bits.
- if (::RAND_egd (socket_file) > 0)
- return 0;
- else
- return -1;
-#endif /* OPENSSL_VERSION_NUMBER >= 0x00905100L */
-}
-
-int
-ACE_SSL_Context::seed_file (const char * seed_file, long bytes)
-{
- // RAND_load_file() returns the number of bytes used to seed the
- // random number generator.
- if (::RAND_load_file (seed_file, bytes) > 0)
- return 0;
- else
- return -1;
-}
-
-void
-ACE_SSL_Context::report_error (unsigned long error_code)
-{
- if (error_code == 0)
- return;
-
- char error_string[256];
-
- (void) ::ERR_error_string (error_code, error_string);
-
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("ACE_SSL (%P|%t) error code: %u - %C\n"),
- error_code,
- error_string));
-}
-
-void
-ACE_SSL_Context::report_error (void)
-{
- unsigned long error = ::ERR_get_error ();
- ACE_SSL_Context::report_error (error);
- ACE_OS::last_error (error);
-}
-
-int
-ACE_SSL_Context::dh_params (const char *file_name,
- int type)
-{
- if (this->dh_params_.type () != -1)
- return 0;
-
- this->dh_params_ = ACE_SSL_Data_File (file_name, type);
-
- this->check_context ();
-
- {
- // For now we only support PEM encodings
- if (this->dh_params_.type () != SSL_FILETYPE_PEM)
- return -1;
-
- // Swiped from Rescorla's examples and the OpenSSL s_server.c app
- DH *ret=0;
- BIO *bio = 0;
-
- if ((bio = ::BIO_new_file (this->dh_params_.file_name (), "r")) == NULL)
- return -1;
-
- ret = PEM_read_bio_DHparams (bio, NULL, NULL, NULL);
- BIO_free (bio);
-
- if (ret == 0)
- return -1;
-
- if(::SSL_CTX_set_tmp_dh (this->context_, ret) < 0)
- return -1;
- DH_free (ret);
- }
-
- return 0;
-}
-
-// ****************************************************************
-
-#ifdef ACE_HAS_THREADS
-
-void
-ACE_SSL_locking_callback (int mode,
- int type,
- const char * /* file */,
- int /* line */)
-{
- // #ifdef undef
- // fprintf(stderr,"thread=%4d mode=%s lock=%s %s:%d\n",
- // CRYPTO_thread_id(),
- // (mode&CRYPTO_LOCK)?"l":"u",
- // (type&CRYPTO_READ)?"r":"w",file,line);
- // #endif
- // /*
- // if (CRYPTO_LOCK_SSL_CERT == type)
- // fprintf(stderr,"(t,m,f,l) %ld %d %s %d\n",
- // CRYPTO_thread_id(),
- // mode,file,line);
- // */
- if (mode & CRYPTO_LOCK)
- ACE_OS::mutex_lock (&(ACE_SSL_Context::lock_[type]));
- else
- ACE_OS::mutex_unlock (&(ACE_SSL_Context::lock_[type]));
-}
-
-
-
-unsigned long
-ACE_SSL_thread_id (void)
-{
- return (unsigned long) ACE_OS::thr_self ();
-}
-#endif /* ACE_HAS_THREADS */
-
-// ****************************************************************
-
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>
-
-#elif defined (__GNUC__) && (defined (_AIX) || defined (__hpux))
-
-template ACE_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX> *
- ACE_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>::singleton_;
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/SSL/SSL_Context.h b/ace/SSL/SSL_Context.h
deleted file mode 100644
index 6188f17e840..00000000000
--- a/ace/SSL/SSL_Context.h
+++ /dev/null
@@ -1,360 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file SSL_Context.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@ece.uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_SSL_CONTEXT_H
-#define ACE_SSL_CONTEXT_H
-
-#include "ace/pre.h"
-
-#include "SSL_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SString.h"
-#include "ace/Synch.h"
-
-#include <openssl/ssl.h>
-
-#ifdef ACE_HAS_THREADS
-extern "C"
-{
-
- /// Mutex locking/unlocking callback for OpenSSL multithread
- /// support.
- void ACE_SSL_locking_callback (int mode,
- int type,
- const char * file,
- int line);
-
- /// Return the current thread ID. OpenSSL uses this on platforms
- /// that need it.
- unsigned long ACE_SSL_thread_id (void);
-}
-#endif /* ACE_HAS_THREADS */
-
-
-class ACE_SSL_Export ACE_SSL_Data_File
-{
-public:
-
- /// Default constructor
- ACE_SSL_Data_File (void);
-
- /// Contructor from a file name and the file type.
- ACE_SSL_Data_File (const char *file_name,
- int type = SSL_FILETYPE_PEM);
-
- /// The file name
- const char *file_name (void) const;
-
- /// The type
- int type (void) const;
-
-private:
-
- /// The file name
- ACE_CString file_name_;
-
- /// The type, used by the SSL library to parse the file contents.
- int type_;
-};
-
-// ****************************************************************
-
-
-/**
- * @class ACE_SSL_Context
- *
- * @brief A wrapper for the OpenSSL SSL_CTX related functions.
- *
- * This class provides a wrapper for the SSL_CTX data structure.
- * Since most applications have a single SSL_CTX structure, this class
- * can be used as a singleton.
- */
-class ACE_SSL_Export ACE_SSL_Context
-{
- friend void ACE_SSL_locking_callback (int, int, const char *, int);
-
-public:
-
- enum {
- INVALID_METHOD = -1,
- SSLv2_client = 1,
- SSLv2_server,
- SSLv2,
- SSLv3_client,
- SSLv3_server,
- SSLv3,
- SSLv23_client,
- SSLv23_server,
- SSLv23,
- TLSv1_client,
- TLSv1_server,
- TLSv1
- };
-
- /// Constructor
- ACE_SSL_Context (void);
-
- /// Destructor
- ~ACE_SSL_Context (void);
-
- /// The Singleton context, the SSL components use the singleton if
- /// nothing else is available.
- static ACE_SSL_Context *instance (void);
-
- /**
- * Set the CTX mode. The mode can be set only once, afterwards the
- * function has no effect and returns -1.
- * Once the mode is set the underlying SSL_CTX is initialized and
- * the class can be used.
- * If the mode is not set, then the class automatically initializes
- * itself to the default mode.
- */
- int set_mode (int mode = ACE_SSL_Context::SSLv23);
-
- int get_mode (void) const;
-
- /// Get the SSL context
- SSL_CTX *context (void);
-
- /// Get the file name and file format used for the private key
- int private_key_type (void) const;
- const char *private_key_file_name (void) const;
-
- /// Set the private key file.
- /**
- * @note This method should only be called after a certificate has
- * been set since key verification is performed against the
- * certificate, among other things.
- */
- int private_key (const char *file_name,
- int type = SSL_FILETYPE_PEM);
-
- /// Verify that the private key is valid.
- /**
- * @note This method should only be called after a certificate has
- * been set since key verification is performed against the
- * certificate, among other things.
- */
- int verify_private_key (void);
-
- /// Get the file name and file format used for the certificate file
- int certificate_type (void) const;
- const char *certificate_file_name (void) const;
-
- /// Set the certificate file.
- int certificate (const char *file_name,
- int type = SSL_FILETYPE_PEM);
-
-
- /**
- * Load the location of the trusted certification authority
- * certificates. Note that CA certificates are stored in PEM format
- * as a sequence of certificates in <ca_file> or as a set of
- * individual certificates in <ca_dir> (or both).
- *
- * Note this method is called by set_mode() to load the default
- * environment settings for <ca_file> and <ca_dir>, if any. This
- * allows for automatic service configuration (and backward
- * compatibility with previous versions.
- *
- * Note that the underlying SSL function will add valid file and
- * directory names to the load location lists maintained as part of
- * the SSL_CTX table. (... It therefore dosn't make sense to keep a
- * copy of the file and path name of the most recently added
- * <ca_file> or <ca_path>.
- *
- * @return 0 for success or -1 on error.
- *
- * @see OpenSSL manual SSL_CTX_load_verify_locations(3) for a
- * detailed description of the CA file and directory requirements
- * and processing.
- */
- int load_trusted_ca(const char* ca_file = 0, const char* ca_dir = 0);
-
- /**
- Test whether any CA locations have been successfully loaded and
- return the number of successful attempts.
-
- @return >0 This value indicates the number of successful CA load
- attempts .
- @return 0 If all CA load attempts have failed.
- */
- int have_trusted_ca(void) const;
-
-
- /**
- * @todo Complete this documentation where elipses(...) are used
- *
- * @doc Use this method when certificate chain verification is
- * required. The default server behaviour is SSL_VERIFY_NONE
- * i.e. client certicates are requested for verified. This method
- * can be used to configure server to request client certificates
- * and perform the certificate verification. If <strict> is set
- * true the client connection is rejected when certificate
- * verification fails. Otherwise the session is accepted with a
- * warning, which is the default behaviour. If <once> is set true
- * (default), certificates are requested only once per session.
- * The last parameter <depth> can be used to set the verification
- * depth.
- *
- * Note for verification to work correctly there should be a valid
- * CA name list set using load_trusted_ca().
- *
- * @see OpenSSL documentation of SSL_CTX_set_verify(3) for details of
- * the verification process.
- *
- * @see OpenSSL documentation ... set_verify_depth(3) ...
- *
- * Note that this method overrides the use of the
- * default_verify_mode() method.
- */
- void set_verify_peer (int strict = 0,
- int once = 1,
- int depth = 0);
-
-
- /// TODO: a implementation that will lookup the CTX table for the list
- /// of files and paths etc.
- /// Query the location of trusted certification authority
- /// certificates.
- // const char* ca_file_name(void) const;
- // const char* ca_dir_name(void) const;
-
-
-
- /**
- * Set and query the default verify mode for this context, it is
- * inherited by all the ACE_SSL objects created using the context.
- * It can be overriden on a per-ACE_SSL object.
- */
- void default_verify_mode (int mode);
- int default_verify_mode (void) const;
-
- /**
- * @name OpenSSL Random Number Generator Seed Related Methods
- *
- * These are methods that can be used to seed OpenSSL's
- * pseudo-random number generator. These methods can be called more
- * than once.
- */
- //@{
- /// Seed the underlying random number generator. This value should
- /// have at least 128 bits of entropy.
- int random_seed (const char * seed);
-
- /// Set the Entropy Gathering Daemon (EGD) UNIX domain socket file to
- /// read random seed values from.
- int egd_file (const char * socket_file);
-
- /**
- * Set the file that contains the random seed value state, and the
- * amount of bytes to read. "-1" bytes causes the entire file to be
- * read.
- */
- int seed_file (const char * seed_file, long bytes = -1);
- //@}
-
- /// Print SSL error corresponding to the given error code.
- static void report_error (unsigned long error_code);
-
- /// Print the last SSL error for the current thread.
- static void report_error (void);
-
- /**
- * @name Diffie-Hellman (DH) Parameters
- *
- * When using DSS-based certificates, Diffie-Hellman keys need to be
- * exchanged. These must be provided in the form of DH key
- * generation parameters loaded in, or as fixed keys hardcoded into
- * the code itself. ACE_SSL supports loaded parameters.
- *
- */
- //@{
- /**
- * Load Diffie-Hellman parameters from file_name. The specified file can be
- * a standalone file containing only DH parameters (e.g., as created
- * by <code>openssl dhparam</code>), or it can be a certificate which has
- * a PEM-encoded set of DH params concatenated on to i.
- */
- int dh_params (const char *file_name, int type = SSL_FILETYPE_PEM);
- const char *dh_params_file_name () const;
- int dh_params_file_type () const;
- //@}
-
-private:
-
- /// Verify if the context has been initialized or not.
- void check_context (void);
-
- /// @@ More to document
- void ssl_library_init ();
- void ssl_library_fini ();
-
- // = Prevent assignment and initialization.
- //@{
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_SSL_Context &))
- ACE_UNIMPLEMENTED_FUNC (ACE_SSL_Context (const ACE_SSL_Context &))
- //@}
-
-private:
- // @@ Carlos, I protected this variable with an ACE_GUARD, just like
- // what we do for the orb_init_count_ variable in
- // tao/ORB.cpp. The code isn't pretty but it should suffice
- // until the SSL context is stored in a Singleton.
- // -Ossama
-
- /// The SSL_CTX structure
- SSL_CTX *context_;
-
- /// Cache the mode so we can answer fast
- int mode_;
-
- /// The private key, certificate, and Diffie-Hellman paramters files
- ACE_SSL_Data_File private_key_;
- ACE_SSL_Data_File certificate_;
- ACE_SSL_Data_File dh_params_;
-
- /// The default verify mode.
- int default_verify_mode_;
-
- /// count of successful CA load attempts
- int have_ca_;
-
- /// Reference count of the number of times the ACE_SSL_Context was
- /// initialized.
- static int library_init_count_;
-
- // @@ This should also be done with a singleton, otherwise it is not
- // thread safe and/or portable to some weird platforms...
-
-#ifdef ACE_HAS_THREADS
- /// Array of mutexes used internally by OpenSSL when the SSL
- /// application is multithreaded.
- static ACE_mutex_t * lock_;
-
- // @@ This should also be managed by a singleton.
-#endif
-
-};
-
-#if defined(__ACE_INLINE__)
-#include "SSL_Context.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_SSL_CONTEXT_H */
diff --git a/ace/SSL/SSL_Context.inl b/ace/SSL/SSL_Context.inl
deleted file mode 100644
index 9008591e1c9..00000000000
--- a/ace/SSL/SSL_Context.inl
+++ /dev/null
@@ -1,106 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-
-ACE_INLINE
-ACE_SSL_Data_File::ACE_SSL_Data_File (void)
- : type_ (-1)
-{
-}
-
-ACE_INLINE
-ACE_SSL_Data_File::ACE_SSL_Data_File (const char *file_name,
- int type)
- : file_name_ (file_name),
- type_ (type)
-{
-}
-
-ACE_INLINE const char *
-ACE_SSL_Data_File::file_name (void) const
-{
- return this->file_name_.c_str ();
-}
-
-ACE_INLINE int
-ACE_SSL_Data_File::type (void) const
-{
- return this->type_;
-}
-
-// ****************************************************************
-
-ACE_INLINE void
-ACE_SSL_Context::check_context (void)
-{
- if (this->context_ == 0)
- this->set_mode ();
-}
-
-ACE_INLINE SSL_CTX *
-ACE_SSL_Context::context (void)
-{
- this->check_context ();
- return this->context_;
-}
-
-ACE_INLINE int
-ACE_SSL_Context::private_key_type (void) const
-{
- return this->private_key_.type ();
-}
-
-ACE_INLINE const char*
-ACE_SSL_Context::private_key_file_name (void) const
-{
- return this->private_key_.file_name ();
-}
-
-ACE_INLINE int
-ACE_SSL_Context::certificate_type (void) const
-{
- return this->certificate_.type ();
-}
-
-ACE_INLINE const char*
-ACE_SSL_Context::certificate_file_name (void) const
-{
- return this->certificate_.file_name ();
-}
-
-ACE_INLINE int
-ACE_SSL_Context::dh_params_file_type (void) const
-{
- return this->dh_params_.type ();
-}
-
-ACE_INLINE const char*
-ACE_SSL_Context::dh_params_file_name (void) const
-{
- return this->dh_params_.file_name ();
-}
-
-ACE_INLINE void
-ACE_SSL_Context::default_verify_mode (int mode)
-{
- this->default_verify_mode_ = mode;
-}
-
-ACE_INLINE int
-ACE_SSL_Context::default_verify_mode (void) const
-{
- return this->default_verify_mode_;
-}
-
-ACE_INLINE int
-ACE_SSL_Context::get_mode (void) const
-{
- return this->mode_;
-}
-
-ACE_INLINE int
-ACE_SSL_Context::have_trusted_ca (void) const
-{
- return this->have_ca_;
-}
diff --git a/ace/SSL/SSL_Export.h b/ace/SSL/SSL_Export.h
deleted file mode 100644
index ec478095d18..00000000000
--- a/ace/SSL/SSL_Export.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// -*- C++ -*-
-// $Id$
-// Definition for Win32 Export directives.
-// This file is generated automatically by
-// generate_export_file.pl
-// ------------------------------
-#if !defined (ACE_SSL_EXPORT_H)
-#define ACE_SSL_EXPORT_H
-
-#include "ace/config-all.h"
-
-#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_SSL_HAS_DLL)
-# define ACE_SSL_HAS_DLL 0
-#endif /* ACE_AS_STATIC_LIBS && ACE_SSL_HAS_DLL */
-
-#if !defined (ACE_SSL_HAS_DLL)
-#define ACE_SSL_HAS_DLL 1
-#endif /* ! ACE_SSL_HAS_DLL */
-
-#if defined (ACE_SSL_HAS_DLL)
-# if (ACE_SSL_HAS_DLL == 1)
-# if defined (ACE_SSL_BUILD_DLL)
-# define ACE_SSL_Export ACE_Proper_Export_Flag
-# define ACE_SSL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
-# define ACE_SSL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# else
-# define ACE_SSL_Export ACE_Proper_Import_Flag
-# define ACE_SSL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
-# define ACE_SSL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ACE_SSL_BUILD_DLL */
-# else
-# define ACE_SSL_Export
-# define ACE_SSL_SINGLETON_DECLARATION(T)
-# define ACE_SSL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ! ACE_SSL_HAS_DLL == 1 */
-#else
-# define ACE_SSL_Export
-# define ACE_SSL_SINGLETON_DECLARATION(T)
-# define ACE_SSL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-#endif /* ACE_SSL_HAS_DLL */
-
-#endif /* ACE_SSL_EXPORT_H */
-
-// End of auto generated file.
diff --git a/ace/SSL/SSL_SOCK.cpp b/ace/SSL/SSL_SOCK.cpp
deleted file mode 100644
index 4a2f37e3fc1..00000000000
--- a/ace/SSL/SSL_SOCK.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-
-#include "SSL_SOCK.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "SSL_SOCK.i"
-#endif
-
-ACE_RCSID (ACE_SSL,
- SSL_SOCK,
- "$Id$")
-
-
-ACE_SSL_SOCK::ACE_SSL_SOCK (void)
-{
- ACE_TRACE ("ACE_SSL_SOCK::ACE_SSL_SOCK");
-}
-
-ACE_SSL_SOCK::~ACE_SSL_SOCK (void)
-{
- ACE_TRACE ("ACE_SSL_SOCK::~ACE_SSL_SOCK");
-}
-
-int
-ACE_SSL_SOCK::enable (int value) const
-{
- ACE_TRACE ("ACE_SSL_SOCK::enable");
-
- switch (value)
- {
-#ifdef SIGURG
- case SIGURG:
- case ACE_SIGURG:
-#endif /* SIGURG */
- case SIGIO:
- case ACE_SIGIO:
- case ACE_CLOEXEC:
- ACE_NOTSUP_RETURN (-1);
- case ACE_NONBLOCK:
- return ACE_IPC_SAP::enable (value);
- default:
- return -1;
- }
-}
-
-int
-ACE_SSL_SOCK::disable (int value) const
-{
- ACE_TRACE("ACE_SSL_SOCK::disable");
- switch (value)
- {
-#ifdef SIGURG
- case SIGURG:
- case ACE_SIGURG:
-#endif /* SIGURG */
- case SIGIO:
- case ACE_SIGIO:
- case ACE_CLOEXEC:
- ACE_NOTSUP_RETURN (-1);
- case ACE_NONBLOCK:
- return ACE_IPC_SAP::disable (value);
- default:
- return -1;
- }
-}
diff --git a/ace/SSL/SSL_SOCK.h b/ace/SSL/SSL_SOCK.h
deleted file mode 100644
index 17a8e6c50bd..00000000000
--- a/ace/SSL/SSL_SOCK.h
+++ /dev/null
@@ -1,94 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file SSL_SOCK.h
- *
- * $Id$
- *
- * @author Ossama Othman <ossama@ece.uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_SSL_SOCK_H
-#define ACE_SSL_SOCK_H
-
-#include "ace/pre.h"
-
-#include "SSL_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK.h"
-
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-# define ACE_SSL_SOCK_ACCEPTOR ACE_SSL_SOCK_Acceptor
-# define ACE_SSL_SOCK_CONNECTOR ACE_SSL_SOCK_Connector
-# define ACE_SSL_SOCK_STREAM ACE_SSL_SOCK_Stream
-#else
-# define ACE_SSL_SOCK_ACCEPTOR ACE_SSL_SOCK_Acceptor, ACE_INET_Addr
-# define ACE_SSL_SOCK_CONNECTOR ACE_SSL_SOCK_Connector, ACE_INET_Addr
-# define ACE_SSL_SOCK_STREAM ACE_SSL_SOCK_Stream, ACE_INET_Addr
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
-/**
- * @class ACE_SSL_SOCK
- *
- * @brief An abstract class that forms the basis for more specific
- * classes, such as "ACE_SSL_SOCK_Acceptor" and
- * "ACE_SSL_SOCK_Stream". Do not instantiate this class.
- *
- * This class provides functions that are common to all of the
- * ACE_SSL_SOCK_* classes. ACE_SSL_SOCK provides the ability
- * to get and set socket options, get the local and remote
- * addresses, and close the socket.
- */
-class ACE_SSL_Export ACE_SSL_SOCK : public ACE_SOCK
-{
-public:
-
- /// Default destructor.
- ~ACE_SSL_SOCK (void);
-
- /**
- * Override ACE_SOCK base class implementations with these SSL
- * specific ones.
- */
- //@{
- int set_option (int level,
- int option,
- void *optval,
- int optlen) const;
- int get_option (int level,
- int option,
- void *optval,
- int *optlen) const;
- int enable (int value) const;
- int disable (int value) const;
- void set_handle (ACE_HANDLE);
- ACE_HANDLE get_handle (void) const;
- int control (int cmd, void *arg) const;
- //@}
-
-protected:
-
- /// Default constructor is private to prevent instances of this class
- /// from being defined.
- ACE_SSL_SOCK (void);
-
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "SSL_SOCK.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-
-#endif /* ACE_SSL_SOCK_H */
-
-
-
-
diff --git a/ace/SSL/SSL_SOCK.i b/ace/SSL/SSL_SOCK.i
deleted file mode 100644
index dc21bfbdba1..00000000000
--- a/ace/SSL/SSL_SOCK.i
+++ /dev/null
@@ -1,64 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-ASYS_INLINE void
-ACE_SSL_SOCK::set_handle (ACE_HANDLE fd)
-{
- this->ACE_SOCK::set_handle (fd);
-}
-
-ASYS_INLINE ACE_HANDLE
-ACE_SSL_SOCK::get_handle (void) const
-{
- // return this->ssl_ ? (ACE_HANDLE) ::SSL_get_fd (this->ssl_) : ACE_INVALID_HANDLE;
- return this->ACE_SOCK::get_handle ();
-}
-
-
-ASYS_INLINE int
-ACE_SSL_SOCK::control (int cmd, void *arg) const
-{
- return ACE_OS::ioctl (this->get_handle (), cmd, arg);
-}
-
-ASYS_INLINE int
-ACE_SSL_SOCK::set_option (int level,
- int option,
- void *optval,
- int optlen) const
-{
-// switch (option)
-// {
-// case SO_SNDBUF:
-// return ::BIO_set_write_buffer_size (this->io_bio_, *((int *) optval));
-// case SO_RCVCBUF:
-// return ::BIO_set_read_buffer_size (this->io_bio_, *((int *) optval));
-// default:
- return ACE_OS::setsockopt (this->get_handle (),
- level,
- option, (char *) optval,
- optlen);
-// }
-}
-
-// Provides access to the ACE_OS::getsockopt system call.
-
-ASYS_INLINE int
-ACE_SSL_SOCK::get_option (int level,
- int option,
- void *optval,
- int *optlen) const
-{
-// switch (option)
-// {
-// case SO_SNDBUF:
-// return ::BIO_get_write_buffer_size (this->io_bio_, *((int *) optval));
-// case SO_RCVCBUF:
-// return ::BIO_get_read_buffer_size (this->io_bio_, *((int *) optval));
-// default:
- return ACE_OS::getsockopt (this->get_handle (),
- level,
- option, (char *) optval,
- optlen);
-// }
-}
diff --git a/ace/SSL/SSL_SOCK_Acceptor.cpp b/ace/SSL/SSL_SOCK_Acceptor.cpp
deleted file mode 100644
index 92b6ab7da76..00000000000
--- a/ace/SSL/SSL_SOCK_Acceptor.cpp
+++ /dev/null
@@ -1,243 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-
-#include "SSL_SOCK_Acceptor.h"
-
-#include "ace/Handle_Set.h"
-#include "ace/OS_Errno.h"
-#include "ace/Log_Msg.h"
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SSL_SOCK_Acceptor)
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "SSL_SOCK_Acceptor.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID (ACE_SSL,
- SSL_SOCK_Acceptor,
- "$Id$")
-
-ACE_SSL_SOCK_Acceptor::~ACE_SSL_SOCK_Acceptor (void)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Acceptor::~ACE_SSL_SOCK_Acceptor");
-}
-
-
-int
-ACE_SSL_SOCK_Acceptor::ssl_accept (ACE_SSL_SOCK_Stream &new_stream,
- ACE_Time_Value *timeout) const
-{
- SSL *ssl = new_stream.ssl ();
-
- if (SSL_is_init_finished (ssl))
- return 0;
-
- if (!SSL_in_accept_init (ssl))
- ::SSL_set_accept_state (ssl);
-
- ACE_HANDLE handle = new_stream.get_handle ();
-
- // We're going to call SSL_accept, optionally doing ACE::select and
- // retrying the SSL_accept, until the SSL handshake is done or
- // it fails.
- // To get the timeout affect, set the socket to nonblocking mode
- // before beginning if there is a timeout specified. If the timeout
- // is 0 (wait as long as it takes) then don't worry about the blocking
- // status; we'll block in SSL_accept if the socket is blocking, and
- // block in ACE::select if not.
- int reset_blocking_mode = 0;
- if (timeout != 0)
- {
- reset_blocking_mode = ACE_BIT_DISABLED (ACE::get_flags (handle),
- ACE_NONBLOCK);
- // Set the handle into non-blocking mode if it's not already
- // in it.
- if (reset_blocking_mode
- && ACE::set_flags (handle,
- ACE_NONBLOCK) == -1)
- return -1;
- }
-
- // Take into account the time between each select() call below.
- ACE_Countdown_Time countdown (timeout);
-
- int status;
- do
- {
- // These handle sets are used to set up for whatever SSL_accept
- // says it wants next. They're reset on each pass around the loop.
- ACE_Handle_Set rd_handle;
- ACE_Handle_Set wr_handle;
-
- status = ::SSL_accept (ssl);
- switch (::SSL_get_error (ssl, status))
- {
- case SSL_ERROR_NONE:
- status = 0; // To tell caller about success
- break; // Done
-
- case SSL_ERROR_WANT_WRITE:
- wr_handle.set_bit (handle);
- status = 1; // Wait for more activity
- break;
-
- case SSL_ERROR_WANT_READ:
- rd_handle.set_bit (handle);
- status = 1; // Wait for more activity
- break;
-
- case SSL_ERROR_ZERO_RETURN:
- // The peer has notified us that it is shutting down via
- // the SSL "close_notify" message so we need to
- // shutdown, too.
- status = -1;
- break;
-
- case SSL_ERROR_SYSCALL:
- // On some platforms (e.g. MS Windows) OpenSSL does not
- // store the last error in errno so explicitly do so.
- //
- // Explicitly check for EWOULDBLOCK since it doesn't get
- // converted to an SSL_ERROR_WANT_{READ,WRITE} on some
- // platforms. If SSL_accept failed outright, though, don't
- // bother checking more. This can happen if the socket gets
- // closed during the handshake.
- if (ACE_OS::set_errno_to_last_error () == EWOULDBLOCK &&
- status == -1)
- {
- // Although the SSL_ERROR_WANT_READ/WRITE isn't getting
- // set correctly, the read/write state should be valid.
- // Use that to decide what to do.
- status = 1; // Wait for more activity
- if (SSL_want_write (ssl))
- wr_handle.set_bit (handle);
- else if (SSL_want_read (ssl))
- rd_handle.set_bit (handle);
- else
- status = -1; // Doesn't want anything - bail out
- }
- else
- status = -1;
- break;
-
- default:
- ACE_SSL_Context::report_error ();
- status = -1;
- break;
- }
-
- if (status == 1)
- {
- // Must have at least one handle to wait for at this point.
- ACE_ASSERT (rd_handle.num_set() == 1 || wr_handle.num_set () == 1);
- status = ACE::select (int (handle) + 1,
- &rd_handle,
- &wr_handle,
- 0,
- timeout);
-
- (void) countdown.update ();
-
- // 0 is timeout, so we're done.
- // -1 is error, so we're done.
- // Could be both handles set (same handle in both masks) so
- // set to 1.
- if (status >= 1)
- status = 1;
- else // Timeout or failure
- status = -1;
- }
-
- } while (status == 1 && !SSL_is_init_finished (ssl));
-
- if (reset_blocking_mode)
- {
- ACE_Errno_Guard eguard (errno);
- ACE::clr_flags (handle, ACE_NONBLOCK);
- }
-
- return (status == -1 ? -1 : 0);
-
-}
-
-// General purpose routine for accepting new connections.
-// Since our underlying acceptor is of the plain old ACE_SOCK_Acceptor
-// variety, get the basic socket setup done with it, then take care of
-// the SSL handshake if the socket is accepted.
-int
-ACE_SSL_SOCK_Acceptor::accept (ACE_SSL_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Acceptor::accept");
-
- // Take into account the time to complete the basic TCP handshake
- // and the SSL handshake.
- ACE_Countdown_Time countdown (timeout);
-
- ACE_SOCK_Stream temp_stream;
- if (-1 == this->acceptor_.accept (temp_stream,
- remote_addr,
- timeout,
- restart,
- reset_new_handle))
- return -1;
-
- (void) countdown.update ();
-
- new_stream.set_handle (temp_stream.get_handle ());
- temp_stream.set_handle (ACE_INVALID_HANDLE);
-
- if (this->ssl_accept (new_stream, timeout) == -1)
- {
- new_stream.close ();
- new_stream.set_handle (ACE_INVALID_HANDLE);
- return -1;
- }
-
- return 0;
-
-}
-
-int
-ACE_SSL_SOCK_Acceptor::accept (ACE_SSL_SOCK_Stream &new_stream,
- ACE_Accept_QoS_Params qos_params,
- ACE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Acceptor::accept");
-
- // Take into account the time to complete the basic TCP handshake
- // and the SSL handshake.
- ACE_Countdown_Time countdown (timeout);
-
- ACE_SOCK_Stream temp_stream;
- if (-1 == this->acceptor_.accept (temp_stream,
- qos_params,
- remote_addr,
- timeout,
- restart,
- reset_new_handle))
- return -1;
-
- (void) countdown.update ();
-
- new_stream.set_handle (temp_stream.get_handle ());
- temp_stream.set_handle (ACE_INVALID_HANDLE);
-
- if (this->ssl_accept (new_stream, timeout) == -1)
- {
- new_stream.close ();
- new_stream.set_handle (ACE_INVALID_HANDLE);
- return -1;
- }
-
- return 0;
-
-}
diff --git a/ace/SSL/SSL_SOCK_Acceptor.h b/ace/SSL/SSL_SOCK_Acceptor.h
deleted file mode 100644
index fa0b10ee425..00000000000
--- a/ace/SSL/SSL_SOCK_Acceptor.h
+++ /dev/null
@@ -1,194 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file SSL_SOCK_Acceptor.h
- *
- * $Id$
- *
- * @author John Heitmann
- * @author Chris Zimman
- * @author Ossama Othman <ossama@uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_SSL_SOCK_ACCEPTOR_H
-#define ACE_SSL_SOCK_ACCEPTOR_H
-
-#include "ace/pre.h"
-
-#include "SSL_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "SSL_SOCK_Stream.h"
-
-#include "ace/SOCK_Acceptor.h"
-#include "ace/OS_QoS.h"
-
-/**
- * @class ACE_SSL_SOCK_Acceptor
- *
- * @brief Defines a factory that creates new @c ACE_SSL_SOCK_Stream
- * objects passively.
- *
- * The ACE_SSL_SOCK_Acceptor has its own @c ACE_SOCK_Acceptor
- * which handles the basic socket acceptance. This class is a
- * wrapper which adds the SSL acceptance handshake handling.
- * Since SSL is record oriented, some additional steps must be taken
- * after the basic socket acceptance to complete the SSL handshake that
- * takes place at session establishment.
- *
- * @note The user must currently ensure that only one thread services
- * a given SSL session at any given time since some underlying
- * SSL implementations, such as OpenSSL, are not entirely
- * thread-safe or reentrant.
- */
-class ACE_SSL_Export ACE_SSL_SOCK_Acceptor : public ACE_SSL_SOCK
-{
-public:
-
- /// Default constructor.
- ACE_SSL_SOCK_Acceptor (void);
-
- /// Default destructor.
- ~ACE_SSL_SOCK_Acceptor (void);
-
- /**
- * Initiate a passive mode SSL/BSD-style acceptor socket.
- * @param local_sap The address that we're going to listen for
- * connections on. If this is @c ACE_Addr::sap_any,
- * this socket listens on an the "any" IP address
- * and selects an unused port. To find out what port
- * was selected, call this object's
- * @c ACE_SOCK::get_local_addr(ACE_Addr&) method
- * upon return.
- */
- ACE_SSL_SOCK_Acceptor (const ACE_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = PF_UNSPEC,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /**
- * Initiate a passive-mode QoS-enabled acceptor socket.
- * @param local_sap The address that we're going to listen for
- * connections on. If this is @c ACE_Addr::sap_any,
- * this socket listens on an the "any" IP address
- * and selects an unused port. To find out what port
- * was selected, call this object's
- * @c ACE_SOCK::get_local_addr(ACE_Addr&) method
- * upon return.
- */
- ACE_SSL_SOCK_Acceptor (const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int protocol_family = PF_UNSPEC,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /**
- * Initiate a passive mode SSL/BSD-style acceptor socket.
- * @param local_sap The address that we're going to listen for
- * connections on. If this is @c ACE_Addr::sap_any,
- * this socket listens on an the "any" IP address
- * and selects an unused port. To find out what port
- * was selected, call this object's
- * @c ACE_SOCK::get_local_addr(ACE_Addr&) method
- * upon return.
- *
- * @return 0 if success; -1 for failure (errno contains error code).
- */
- int open (const ACE_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = PF_UNSPEC,
- int backlog = ACE_DEFAULT_BACKLOG,
- int protocol = 0);
-
- /// Close the listening socket.
- int close (void);
-
- /**
- * @name Passive Connection "accept" Methods
- *
- * These are the canonical methods exposed by the Acceptor pattern.
- */
- //@{
- /**
- * Accept a new ACE_SSL_SOCK_Stream connection. On successful return,
- * the socket has been accepted and the SSL handshake has been completed.
- * @param new_stream The @c ACE_SSL_SOCK_Stream object that will receive
- * the new SSL socket.
- * @param remote_addr Pointer to an @c ACE_INET_Addr object that will
- * receive the address of the peer that connected.
- * @param timeout The maximum time to wait for the combined socket
- * acceptance and handshake completion. 0 means
- * block forever, a timeout of {0, 0} means poll.
- * @param restart 1 means "restart if interrupted," that is,
- * if errno == EINTR.
- *
- * @return 0 if success; -1 for failure (errno contains error code).
- */
- int accept (ACE_SSL_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
-
- /**
- * Accept a new ACE_SSL_SOCK_Stream connection using the RVSP QoS
- * information in qos_params.
- * @param new_stream The @c ACE_SSL_SOCK_Stream object that will receive
- * the new SSL socket.
- * @param remote_addr Pointer to an @c ACE_INET_Addr object that will
- * receive the address of the peer that connected.
- * @param timeout The maximum time to wait for the combined socket
- * acceptance and handshake completion. 0 means
- * block forever, a timeout of {0, 0} means poll.
- * @param restart 1 means "restart if interrupted," that is,
- * if errno == EINTR.
- *
- * @return 0 if success; -1 for failure (errno contains error code).
- */
- int accept (ACE_SSL_SOCK_Stream &new_stream,
- ACE_Accept_QoS_Params qos_params,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
- //@}
-
- /// Meta-type info
- //@{
- typedef ACE_INET_Addr PEER_ADDR;
- typedef ACE_SSL_SOCK_Stream PEER_STREAM;
- //@}
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
-
- /// Complete SSL passive connection establishment.
- int ssl_accept (ACE_SSL_SOCK_Stream &new_stream,
- ACE_Time_Value *timeout) const;
-
-private:
-
- /// The BSD-socket workhorse
- ACE_SOCK_Acceptor acceptor_;
-
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "SSL_SOCK_Acceptor.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-
-#endif /* ACE_SSL_SOCK_ACCEPTOR_H */
diff --git a/ace/SSL/SSL_SOCK_Acceptor.i b/ace/SSL/SSL_SOCK_Acceptor.i
deleted file mode 100644
index 69c0fb60372..00000000000
--- a/ace/SSL/SSL_SOCK_Acceptor.i
+++ /dev/null
@@ -1,82 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-
-ASYS_INLINE
-ACE_SSL_SOCK_Acceptor::ACE_SSL_SOCK_Acceptor (void)
- : acceptor_ ()
-{
- ACE_TRACE ("ACE_SSL_SOCK_Acceptor::ACE_SSL_SOCK_Acceptor");
-}
-
-ASYS_INLINE
-ACE_SSL_SOCK_Acceptor::ACE_SSL_SOCK_Acceptor (const ACE_Addr &local_sap,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
- : acceptor_ (local_sap,
- reuse_addr,
- protocol_family,
- backlog,
- protocol)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Acceptor::ACE_SSL_SOCK_Acceptor");
-
- this->set_handle (this->acceptor_.get_handle ());
-}
-
-ASYS_INLINE
-ACE_SSL_SOCK_Acceptor::ACE_SSL_SOCK_Acceptor (const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
- : acceptor_ (local_sap,
- protocolinfo,
- g,
- flags,
- reuse_addr,
- protocol_family,
- backlog,
- protocol)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Acceptor::ACE_SSL_SOCK_Acceptor");
-
- this->set_handle (this->acceptor_.get_handle ());
-}
-
-ASYS_INLINE int
-ACE_SSL_SOCK_Acceptor::open (const ACE_Addr &local_sap,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Acceptor::open");
- if (this->acceptor_.open (local_sap,
- reuse_addr,
- protocol_family,
- backlog,
- protocol) != 0)
- return -1;
- else
- this->set_handle (this->acceptor_.get_handle ());
-
- return 0;
-}
-
-ASYS_INLINE int
-ACE_SSL_SOCK_Acceptor::close (void)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Acceptor::close ()");
-
- int result = this->acceptor_.close ();
- this->set_handle (ACE_INVALID_HANDLE);
-
- return result;
-}
diff --git a/ace/SSL/SSL_SOCK_Connector.cpp b/ace/SSL/SSL_SOCK_Connector.cpp
deleted file mode 100644
index 80d6dcb7835..00000000000
--- a/ace/SSL/SSL_SOCK_Connector.cpp
+++ /dev/null
@@ -1,404 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-#include "SSL_SOCK_Connector.h"
-
-#include "ace/Handle_Set.h"
-#include "ace/INET_Addr.h"
-#include "ace/Synch_T.h"
-#include "ace/Log_Msg.h"
-
-#include <openssl/err.h>
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "SSL_SOCK_Connector.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID (ACE_SSL,
- SSL_SOCK_Connector,
- "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SSL_SOCK_Connector)
-
-
-ACE_SSL_SOCK_Connector::~ACE_SSL_SOCK_Connector (void)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Connector::~ACE_SSL_SOCK_Connector");
-}
-
-int
-ACE_SSL_SOCK_Connector::ssl_connect (ACE_SSL_SOCK_Stream &new_stream,
- const ACE_Time_Value *timeout)
-{
- SSL *ssl = new_stream.ssl ();
-
- if (SSL_is_init_finished (ssl))
- return 0;
-
- // Check if a connection is already pending for the given SSL
- // structure.
- if (!SSL_in_connect_init (ssl))
- ::SSL_set_connect_state (ssl);
-
- ACE_HANDLE handle = new_stream.get_handle ();
-
- // We're going to call SSL_connect, optionally doing ACE::select and
- // retrying the SSL_connect, until the SSL handshake is done or
- // it fails.
- // To get the timeout affect, set the socket to nonblocking mode
- // before beginning if there is a timeout specified. If the timeout
- // is 0 (wait as long as it takes) then don't worry about the blocking
- // status; we'll block in SSL_connect if the socket is blocking, and
- // block in ACE::select if not.
- int reset_blocking_mode = 0;
- if (timeout != 0)
- {
- reset_blocking_mode = ACE_BIT_DISABLED (ACE::get_flags (handle),
- ACE_NONBLOCK);
- // Set the handle into non-blocking mode if it's not already
- // in it.
- if (reset_blocking_mode
- && ACE::set_flags (handle,
- ACE_NONBLOCK) == -1)
- return -1;
- }
-
- ACE_Time_Value t;
- if (timeout != 0)
- t = *timeout; // Need a non-const copy.
-
- // Take into account the time between each select() call below.
- ACE_Countdown_Time countdown ((timeout == 0 ? 0 : &t));
-
- int status;
- do
- {
- // These handle sets are used to set up for whatever SSL_connect
- // says it wants next. They're reset on each pass around the loop.
- ACE_Handle_Set rd_handle;
- ACE_Handle_Set wr_handle;
-
- status = ::SSL_connect (ssl);
- switch (::SSL_get_error (ssl, status))
- {
- case SSL_ERROR_NONE:
- // Start out with non-blocking disabled on the SSL stream.
- new_stream.disable (ACE_NONBLOCK);
- status = 0; // To tell caller about success
- break; // Done
-
- case SSL_ERROR_WANT_WRITE:
- wr_handle.set_bit (handle);
- status = 1; // Wait for more activity
- break;
-
- case SSL_ERROR_WANT_READ:
- rd_handle.set_bit (handle);
- status = 1; // Wait for more activity
- break;
-
- case SSL_ERROR_ZERO_RETURN:
- // The peer has notified us that it is shutting down via
- // the SSL "close_notify" message so we need to
- // shutdown, too.
- status = -1;
- break;
-
- case SSL_ERROR_SYSCALL:
- // On some platforms (e.g. MS Windows) OpenSSL does not
- // store the last error in errno so explicitly do so.
- //
- // Explicitly check for EWOULDBLOCK since it doesn't get
- // converted to an SSL_ERROR_WANT_{READ,WRITE} on some
- // platforms. If SSL_connect failed outright, though, don't
- // bother checking more. This can happen if the socket gets
- // closed during the handshake.
- if (ACE_OS::set_errno_to_last_error () == EWOULDBLOCK &&
- status == -1)
- {
- // Although the SSL_ERROR_WANT_READ/WRITE isn't getting
- // set correctly, the read/write state should be valid.
- // Use that to decide what to do.
- status = 1; // Wait for more activity
- if (SSL_want_write (ssl))
- wr_handle.set_bit (handle);
- else if (SSL_want_read (ssl))
- rd_handle.set_bit (handle);
- else
- status = -1; // Doesn't want anything - bail out
- }
- else
- status = -1;
- break;
-
- default:
- ACE_SSL_Context::report_error ();
- status = -1;
- break;
- }
-
- if (status == 1)
- {
- // Must have at least one handle to wait for at this point.
- ACE_ASSERT (rd_handle.num_set() == 1 || wr_handle.num_set () == 1);
- status = ACE::select (int (handle) + 1,
- &rd_handle,
- &wr_handle,
- 0,
- timeout);
-
- (void) countdown.update ();
-
- // 0 is timeout, so we're done.
- // -1 is error, so we're done.
- // Could be both handles set (same handle in both masks) so set to 1.
- if (status >= 1)
- status = 1;
- else // Timeout or socket failure
- status = -1;
- }
-
- } while (status == 1 && !SSL_is_init_finished (ssl));
-
- if (reset_blocking_mode)
- {
- ACE_Errno_Guard eguard (errno);
- ACE::clr_flags (handle, ACE_NONBLOCK);
- }
-
- return (status == -1 ? -1 : 0);
-
-}
-
-int
-ACE_SSL_SOCK_Connector::connect (ACE_SSL_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Connector::connect");
-
- // Take into account the time to complete the basic TCP handshake
- // and the SSL handshake.
- ACE_Time_Value time_copy;
- ACE_Countdown_Time countdown (&time_copy);
- if (timeout != 0)
- {
- time_copy += *timeout;
- countdown.start ();
- }
-
- int result =
- this->connector_.connect (new_stream.peer (),
- remote_sap,
- timeout,
- local_sap,
- reuse_addr,
- flags,
- perms);
-
- int error = 0;
- if (result == -1)
- error = errno; // Save us some TSS accesses.
-
- // Obtain the handle from the underlying SOCK_Stream and set it in
- // the SSL_SOCK_Stream. Note that the case where a connection is in
- // progress is also handled. In that case, the handle must also be
- // set in the SSL_SOCK_Stream so that the correct handle is returned
- // when performing non-blocking connect()s.
- if (new_stream.get_handle () == ACE_INVALID_HANDLE
- && (result == 0
- || (result == -1 && (error == EWOULDBLOCK
- || error == EINPROGRESS))))
- new_stream.set_handle (new_stream.peer ().get_handle ());
-
- if (result == -1)
- return result;
-
- // If using a timeout, update the countdown timer to reflect the time
- // spent on the connect itself, then pass the remaining time to
- // ssl_connect to bound the time on the handshake.
- if (timeout != 0)
- {
- countdown.update ();
- timeout = &time_copy;
- }
-
- result = this->ssl_connect (new_stream, timeout);
-
- if (result == -1)
- new_stream.close ();
-
- return result;
-}
-
-int
-ACE_SSL_SOCK_Connector::connect (ACE_SSL_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_QoS_Params qos_params,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int perms)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Connector::connect");
-
- // Take into account the time to complete the basic TCP handshake
- // and the SSL handshake.
- ACE_Time_Value time_copy;
- ACE_Countdown_Time countdown (&time_copy);
- if (timeout != 0)
- {
- time_copy += *timeout;
- countdown.start ();
- }
-
- int result = this->connector_.connect (new_stream.peer (),
- remote_sap,
- qos_params,
- timeout,
- local_sap,
- protocolinfo,
- g,
- flags,
- reuse_addr,
- perms);
-
- int error = 0;
- if (result == -1)
- error = errno; // Save us some TSS accesses.
-
- // Obtain the handle from the underlying SOCK_Stream and set it in
- // the SSL_SOCK_Stream. Note that the case where a connection is in
- // progress is also handled. In that case, the handle must also be
- // set in the SSL_SOCK_Stream so that the correct handle is returned
- // when performing non-blocking connect()s.
- if (new_stream.get_handle () == ACE_INVALID_HANDLE
- && (result == 0
- || (result == -1 && (error == EWOULDBLOCK
- || error == EINPROGRESS))))
- new_stream.set_handle (new_stream.peer ().get_handle ());
-
- if (result == -1)
- return result;
-
- // If using a timeout, update the countdown timer to reflect the time
- // spent on the connect itself, then pass the remaining time to
- // ssl_connect to bound the time on the handshake.
- if (timeout != 0)
- {
- countdown.update ();
- timeout = &time_copy;
- }
-
- result = this->ssl_connect (new_stream, timeout);
-
- if (result == -1)
- new_stream.close ();
-
- return result;
-}
-
-// Try to complete a non-blocking connection.
-
-int
-ACE_SSL_SOCK_Connector::complete (ACE_SSL_SOCK_Stream &new_stream,
- ACE_Addr *remote_sap,
- const ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Connector::complete");
-
- // Take into account the time to complete the basic TCP handshake
- // and the SSL handshake.
- ACE_Time_Value time_copy;
- ACE_Countdown_Time countdown (&time_copy);
- if (tv != 0)
- {
- time_copy += *tv;
- countdown.start ();
- }
-
- // Only attempt to complete the TCP connection if it that hasn't
- // already been done.
- ACE_INET_Addr raddr;
- if (new_stream.peer ().get_remote_addr (raddr) != 0
- && this->connector_.complete (new_stream.peer (),
- remote_sap,
- tv) == -1)
- return -1;
-
- // The handle in the SSL_SOCK_Stream should have already been set in
- // the connect() method.
-
- // If using a timeout, update the countdown timer to reflect the time
- // spent on the connect itself, then pass the remaining time to
- // ssl_connect to bound the time on the handshake.
- if (tv != 0)
- {
- countdown.update ();
- tv = &time_copy;
- }
-
- if (this->ssl_connect (new_stream, tv) == -1)
- {
- new_stream.close ();
- return -1;
- }
-
- return 0;
-
-}
-
-
-ACE_SSL_SOCK_Connector::ACE_SSL_SOCK_Connector (
- ACE_SSL_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms)
- : connector_ ()
-{
- ACE_TRACE ("ACE_SSL_SOCK_Connector::ACE_SSL_SOCK_Connector");
- this->connect (new_stream,
- remote_sap,
- timeout,
- local_sap,
- reuse_addr,
- flags,
- perms);
-}
-
-ACE_SSL_SOCK_Connector::ACE_SSL_SOCK_Connector (
- ACE_SSL_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_QoS_Params qos_params,
- const ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- ACE_Protocol_Info *protocolinfo,
- ACE_SOCK_GROUP g,
- u_long flags,
- int reuse_addr,
- int perms)
- : connector_ ()
-{
- ACE_TRACE ("ACE_SSL_SOCK_Connector::ACE_SSL_SOCK_Connector");
-
- this->connect (new_stream,
- remote_sap,
- qos_params,
- timeout,
- local_sap,
- protocolinfo,
- g,
- flags,
- reuse_addr,
- perms);
-}
diff --git a/ace/SSL/SSL_SOCK_Connector.h b/ace/SSL/SSL_SOCK_Connector.h
deleted file mode 100644
index c5d9e4f7134..00000000000
--- a/ace/SSL/SSL_SOCK_Connector.h
+++ /dev/null
@@ -1,315 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file SSL_SOCK_Connector.h
- *
- * $Id$
- *
- * @author Ossama Othman <ossama@uci.edu>
- * @author Carlos O'Ryan <coryan@uci.edu>
- * @author John Heitmann
- * @author Chris Zimman
- */
-//=============================================================================
-
-
-#ifndef ACE_SSL_SOCK_CONNECTOR_H
-#define ACE_SSL_SOCK_CONNECTOR_H
-
-#include "ace/pre.h"
-
-#include "SSL_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "SSL_SOCK_Stream.h"
-
-#include "ace/SOCK_Connector.h"
-#include "ace/OS_QoS.h"
-
-/**
- * @class ACE_SSL_SOCK_Connector
- *
- * @brief Defines a factory that creates new <ACE_SSL_SOCK_Stream>s
- * actively.
- *
- * The ACE_SSL_SOCK_Connector doesn't have a socket of its own,
- * i.e., it simply "borrows" the one from the ACE_SSL_SOCK_Stream
- * that's being connected. The reason for this is that the
- * underlying socket API doesn't use a "factory" socket to connect
- * "data-mode" sockets. Therefore, there's no need to inherit
- * ACE_SSL_SOCK_Connector from ACE_SSL_SOCK.
- *
- * Since SSL is record-oriented, some additional work is done after
- * the plain socket is connected.
- *
- * @note The user must currently ensure that only one thread services
- * a given SSL session at any given time since some underlying
- * SSL implementations, such as OpenSSL, are not entirely
- * thread-safe or reentrant.
- */
-class ACE_SSL_Export ACE_SSL_SOCK_Connector
-{
-
-public:
-
- /// Default constructor.
- ACE_SSL_SOCK_Connector (void);
-
- /**
- * Actively connect to a peer, producing a connected @c ACE_SSL_SOCK_Stream
- * object if the connection succeeds. This method performs both the
- * initial socket connect and the SSL handshake.
- *
- * @param new_stream The @c ACE_SSL_SOCK_Stream object that will be
- * connected to the peer.
- * @param remote_sap The address that we are trying to connect to.
- * The protocol family of @c remote_sap is used for
- * the connected socket. That is, if @c remote_sap
- * contains an IPv6 address, a socket with family
- * PF_INET6 will be used, else it will be PF_INET.
- * @param timeout Pointer to an @c ACE_Time_Value object with amount
- * of time to wait to connect. If the pointer is 0
- * then the call blocks until the connection attempt
- * is complete, whether it succeeds or fails. If
- * *timeout == {0, 0} then the connection is done
- * using nonblocking mode. In this case, if the
- * connection can't be made immediately, this method
- * returns -1 and errno == EWOULDBLOCK.
- * If *timeout > {0, 0} then this is the maximum amount
- * of time to wait before timing out; if the specified
- * amount of time passes before the connection is made,
- * this method returns -1 and errno == ETIME. Note
- * the difference between this case and when a blocking
- * connect is attmpted that TCP times out - in the latter
- * case, errno will be ETIMEDOUT.
- * @param local_sap (optional) The local address to bind to. If it's
- * the default value of @c ACE_Addr::sap_any then the
- * OS will choose an unused port.
- * @param reuse_addr (optional) If the value is 1, the local address
- * (@c local_sap) is reused, even if it hasn't been
- * cleaned up yet.
- * @param flags Ignored.
- * @param perms Ignored.
- *
- * @return Returns 0 if the connection succeeds. If it fails,
- * -1 is returned and errno contains a specific error
- * code.
- */
- ACE_SSL_SOCK_Connector (ACE_SSL_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0);
-
- /**
- * Actively connect to a peer, producing a connected @c ACE_SSL_SOCK_Stream
- * object if the connection succeeds. This method performs both the
- * initial socket connect and the SSL handshake.
- *
- * @param new_stream The @c ACE_SSL_SOCK_Stream object that will be
- * connected to the peer.
- * @param remote_sap The address that we are trying to connect to.
- * The protocol family of @c remote_sap is used for
- * the connected socket. That is, if @c remote_sap
- * contains an IPv6 address, a socket with family
- * PF_INET6 will be used, else it will be PF_INET.
- * @param qos_params Contains QoS parameters that are passed to the
- * IntServ (RSVP) and DiffServ protocols.
- * @see ACE_QoS_Params.
- * @param timeout Pointer to an @c ACE_Time_Value object with amount
- * of time to wait to connect. If the pointer is 0
- * then the call blocks until the connection attempt
- * is complete, whether it succeeds or fails. If
- * *timeout == {0, 0} then the connection is done
- * using nonblocking mode. In this case, if the
- * connection can't be made immediately, this method
- * returns -1 and errno == EWOULDBLOCK.
- * If *timeout > {0, 0} then this is the maximum amount
- * of time to wait before timing out; if the specified
- * amount of time passes before the connection is made,
- * this method returns -1 and errno == ETIME. Note
- * the difference between this case and when a blocking
- * connect is attmpted that TCP times out - in the latter
- * case, errno will be ETIMEDOUT.
- * @param local_sap (optional) The local address to bind to. If it's
- * the default value of @c ACE_Addr::sap_any then the
- * OS will choose an unused port.
- * @param reuse_addr (optional) If the value is 1, the local address
- * (@c local_sap) is reused, even if it hasn't been
- * cleaned up yet.
- * @param flags Ignored.
- * @param perms Ignored.
- *
- * @return Returns 0 if the connection succeeds. If it fails,
- * -1 is returned and errno contains a specific error
- * code.
- */
- ACE_SSL_SOCK_Connector (ACE_SSL_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_QoS_Params qos_params,
- const ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- ACE_Protocol_Info *protocolinfo = 0,
- ACE_SOCK_GROUP g = 0,
- u_long flags = 0,
- int reuse_addr = 0,
- int perms = 0);
-
- /// Default dtor.
- ~ACE_SSL_SOCK_Connector (void);
-
- /**
- * Actively connect to a peer, producing a connected @c ACE_SSL_SOCK_Stream
- * object if the connection succeeds. This method performs both the
- * initial socket connect and the SSL handshake.
- *
- * @param new_stream The @c ACE_SSL_SOCK_Stream object that will be
- * connected to the peer.
- * @param remote_sap The address that we are trying to connect to.
- * The protocol family of @c remote_sap is used for
- * the connected socket. That is, if @c remote_sap
- * contains an IPv6 address, a socket with family
- * PF_INET6 will be used, else it will be PF_INET.
- * @param timeout Pointer to an @c ACE_Time_Value object with amount
- * of time to wait to connect. If the pointer is 0
- * then the call blocks until the connection attempt
- * is complete, whether it succeeds or fails. If
- * *timeout == {0, 0} then the connection is done
- * using nonblocking mode. In this case, if the
- * connection can't be made immediately, this method
- * returns -1 and errno == EWOULDBLOCK.
- * If *timeout > {0, 0} then this is the maximum amount
- * of time to wait before timing out; if the specified
- * amount of time passes before the connection is made,
- * this method returns -1 and errno == ETIME. Note
- * the difference between this case and when a blocking
- * connect is attmpted that TCP times out - in the latter
- * case, errno will be ETIMEDOUT.
- * @param local_sap (optional) The local address to bind to. If it's
- * the default value of @c ACE_Addr::sap_any then the
- * OS will choose an unused port.
- * @param reuse_addr (optional) If the value is 1, the local address
- * (@c local_sap) is reused, even if it hasn't been
- * cleaned up yet.
- * @param flags Ignored.
- * @param perms Ignored.
- *
- * @return Returns 0 if the connection succeeds. If it fails,
- * -1 is returned and errno contains a specific error
- * code.
- */
- int connect (ACE_SSL_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- const ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0);
-
- /**
- * Actively connect to a peer, producing a connected @c ACE_SSL_SOCK_Stream
- * object if the connection succeeds. This method performs both the
- * initial socket connect and the SSL handshake.
- *
- * @param new_stream The @c ACE_SSL_SOCK_Stream object that will be
- * connected to the peer.
- * @param remote_sap The address that we are trying to connect to.
- * The protocol family of @c remote_sap is used for
- * the connected socket. That is, if @c remote_sap
- * contains an IPv6 address, a socket with family
- * PF_INET6 will be used, else it will be PF_INET.
- * @param qos_params Contains QoS parameters that are passed to the
- * IntServ (RSVP) and DiffServ protocols.
- * @see ACE_QoS_Params.
- * @param timeout Pointer to an @c ACE_Time_Value object with amount
- * of time to wait to connect. If the pointer is 0
- * then the call blocks until the connection attempt
- * is complete, whether it succeeds or fails. If
- * *timeout == {0, 0} then the connection is done
- * using nonblocking mode. In this case, if the
- * connection can't be made immediately, this method
- * returns -1 and errno == EWOULDBLOCK.
- * If *timeout > {0, 0} then this is the maximum amount
- * of time to wait before timing out; if the specified
- * amount of time passes before the connection is made,
- * this method returns -1 and errno == ETIME. Note
- * the difference between this case and when a blocking
- * connect is attmpted that TCP times out - in the latter
- * case, errno will be ETIMEDOUT.
- * @param local_sap (optional) The local address to bind to. If it's
- * the default value of @c ACE_Addr::sap_any then the
- * OS will choose an unused port.
- * @param reuse_addr (optional) If the value is 1, the local address
- * (@c local_sap) is reused, even if it hasn't been
- * cleaned up yet.
- * @param flags Ignored.
- * @param perms Ignored.
- *
- * @return Returns 0 if the connection succeeds. If it fails,
- * -1 is returned and errno contains a specific error
- * code.
- */
- int connect (ACE_SSL_SOCK_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_QoS_Params qos_params,
- const ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- ACE_Protocol_Info *protocolinfo = 0,
- ACE_SOCK_GROUP g = 0,
- u_long flags = 0,
- int reuse_addr = 0,
- int perms = 0);
-
- /**
- * Try to complete a non-blocking connection.
- * If connection completion is successful then <new_stream> contains
- * the connected ACE_SSL_SOCK_Stream. If <remote_sap> is non-NULL
- * then it will contain the address of the connected peer.
- */
- int complete (ACE_SSL_SOCK_Stream &new_stream,
- ACE_Addr *remote_sap = 0,
- const ACE_Time_Value *timeout = 0);
-
- /// Resets any event associations on this handle
- int reset_new_handle (ACE_HANDLE handle);
-
- /// Meta-type info
- //@{
- typedef ACE_INET_Addr PEER_ADDR;
- typedef ACE_SSL_SOCK_Stream PEER_STREAM;
- //@}
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
-
- /// Complete non-blocking SSL active connection.
- int ssl_connect (ACE_SSL_SOCK_Stream &new_stream,
- const ACE_Time_Value *timeout);
-
-private:
-
- /// The class that does all of the non-secure socket connection.
- /// It is default contructed, and subsequently used by connect().
- ACE_SOCK_Connector connector_;
-
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "SSL_SOCK_Connector.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-
-#endif /* ACE_SSL_SOCK_CONNECTOR_H */
-
diff --git a/ace/SSL/SSL_SOCK_Connector.i b/ace/SSL/SSL_SOCK_Connector.i
deleted file mode 100644
index 60cfd9db89b..00000000000
--- a/ace/SSL/SSL_SOCK_Connector.i
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SSL_SOCK_Connector.i
-
-ASYS_INLINE
-ACE_SSL_SOCK_Connector::ACE_SSL_SOCK_Connector (void)
- : connector_ ()
-{
- ACE_TRACE ("ACE_SSL_SOCK_Connector::ACE_SSL_SOCK_Connector");
-}
-
-ASYS_INLINE int
-ACE_SSL_SOCK_Connector::reset_new_handle (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Connector::reset_new_handle");
- return this->connector_.reset_new_handle (handle);
-}
-
-ASYS_INLINE void
-ACE_SSL_SOCK_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Connector::dump");
- this->connector_.dump ();
-}
diff --git a/ace/SSL/SSL_SOCK_Stream.cpp b/ace/SSL/SSL_SOCK_Stream.cpp
deleted file mode 100644
index f7189463360..00000000000
--- a/ace/SSL/SSL_SOCK_Stream.cpp
+++ /dev/null
@@ -1,588 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-#include "ace/Handle_Set.h"
-#include "ace/Log_Msg.h"
-
-#include <openssl/err.h>
-
-#include "SSL_SOCK_Stream.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "SSL_SOCK_Stream.i"
-#endif
-
-ACE_RCSID (ACE_SSL,
- SSL_SOCK_Stream,
- "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SSL_SOCK_Stream)
-
-ACE_SSL_SOCK_Stream::ACE_SSL_SOCK_Stream (ACE_SSL_Context *context)
- : ssl_ (0),
- stream_ ()
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::ACE_SSL_SOCK_Stream");
-
- ACE_SSL_Context * ctx =
- (context == 0 ? ACE_SSL_Context::instance () : context);
-
- this->ssl_ = ::SSL_new (ctx->context ());
-
- if (this->ssl_ != 0)
- {
- ::SSL_set_verify (this->ssl_,
- ctx->default_verify_mode (),
- 0);
- }
- else
- {
- ACE_ERROR ((LM_ERROR,
- "(%P|%t) ACE_SSL_SOCK_Stream "
- "- cannot allocate new SSL structure %p\n",
- ACE_TEXT ("")));
- }
-}
-
-ACE_SSL_SOCK_Stream::~ACE_SSL_SOCK_Stream (void)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::~ACE_SSL_SOCK_Stream");
-
- ::SSL_free (this->ssl_);
- this->ssl_ = 0;
-
- // @@ Question: should we reference count the Context object or
- // leave that to the application developer? We do not reference
- // count reactors (for example) and following some simple rules
- // seems to work fine!
-}
-
-ssize_t
-ACE_SSL_SOCK_Stream::sendv (const iovec iov[],
- size_t n,
- const ACE_Time_Value *max_wait_time) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::sendv");
-
- // There is subtle problem in this method that occurs when using
- // non-blocking IO. The semantics of a non-blocking scatter write
- // (sendv()) are not possible to retain with the emulation in this
- // method.
-
- ssize_t bytes_sent = 0;
-
- ACE_Time_Value t;
- ACE_Time_Value *timeout =
- ACE_const_cast (ACE_Time_Value *, max_wait_time);
-
- if (max_wait_time != 0)
- {
- // Make a copy since ACE_Countdown_Time modifies the
- // ACE_Time_Value.
- t = *max_wait_time;
- timeout = &t;
- }
-
- // Take into account the time between each send.
- ACE_Countdown_Time countdown (timeout);
-
- for (size_t i = 0; i < n; ++i)
- {
- const ssize_t result = this->send (iov[i].iov_base,
- iov[i].iov_len,
- timeout);
-
- if (result == -1)
- {
- // There is a subtle difference in behaviour depending on
- // whether or not any data was sent. If no data was sent,
- // then always return -1. Otherwise return bytes_sent.
- // This gives the caller an opportunity to keep track of
- if (bytes_sent > 0)
- break;
- else
- return -1;
- }
- else
- {
- bytes_sent += result;
-
- // Do not continue on to the next loop iteration if the
- // amount of data sent was less than the amount data given.
- // This avoids a subtle problem where "holes" in the data
- // stream would occur if partial sends of a given buffer in
- // the iovec array occured.
- if (ACE_static_cast (size_t, result) < iov[i].iov_len)
- break;
- }
-
- (void) countdown.update ();
- }
-
- return bytes_sent;
-}
-
-ssize_t
-ACE_SSL_SOCK_Stream::recvv (iovec *io_vec,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::recvv");
-
- // From ACE_SOCK_IO::recvv().
-#if defined (FIONREAD)
- ACE_Handle_Set handle_set;
- handle_set.reset ();
- handle_set.set_bit (this->get_handle ());
-
- io_vec->iov_base = 0;
-
- // Check the status of the current socket.
- switch (ACE_OS::select (int (this->get_handle ()) + 1,
- handle_set,
- 0, 0,
- timeout))
- {
- case -1:
- return -1;
- /* NOTREACHED */
- case 0:
- errno = ETIME;
- return -1;
- /* NOTREACHED */
- default:
- // Goes fine, fallthrough to get data
- break;
- }
-
- u_long inlen;
-
-
- if (ACE_OS::ioctl (this->get_handle (),
- FIONREAD,
- (u_long *) &inlen) == -1)
- return -1;
- else if (inlen > 0)
- {
- ACE_NEW_RETURN (io_vec->iov_base,
- char[inlen],
- -1);
- io_vec->iov_len = this->recv (io_vec->iov_base,
- inlen);
- return io_vec->iov_len;
- }
- else
- return 0;
-#else
- ACE_UNUSED_ARG (io_vec);
- ACE_UNUSED_ARG (timeout);
- ACE_NOTSUP_RETURN (-1);
-#endif /* FIONREAD */
-}
-
-ssize_t
-ACE_SSL_SOCK_Stream::send (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::send");
-
- // If SSL has data in the buffer, i.e. SSL_pending() returns a
- // non-zero value, then don't block on select().
- if (timeout == 0 || ::SSL_pending (this->ssl_))
- return this->send (buf, len, flags);
-
- int val = 0;
- if (ACE::enter_send_timedwait (this->get_handle (),
- timeout,
- val) == -1)
- return -1;
-
- ssize_t bytes_transferred = this->send (buf, len, flags);
-
- ACE::restore_non_blocking_mode (this->get_handle (), val);
-
- return bytes_transferred;
-}
-
-ssize_t
-ACE_SSL_SOCK_Stream::recv (void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::recv");
-
- return this->recv_i (buf, n, flags, timeout);
-}
-
-
-ssize_t
-ACE_SSL_SOCK_Stream::send (size_t n, ...) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::send");
-
- const size_t total_tuples = n / 2;
-
- va_list argp;
- va_start (argp, n);
-
- ssize_t bytes_sent = 0;
-
- // NOTE: This method used to fill an IO vector (e.g. iovec) and then
- // send it using a scatter write (sendv()). However, it is
- // not possible to emulate a non-blocking scatter write over
- // SSL. As such, there is no point in attempting to use
- // scatter writes over SSL.
- for (size_t i = 0; i < total_tuples; ++i)
- {
- const ssize_t data_len = va_arg (argp, ssize_t);
- const ssize_t result = this->send (va_arg (argp, char *),
- data_len);
-
- if (result == -1)
- {
- // There is a subtle difference in behaviour depending on
- // whether or not any data was sent. If no data was sent,
- // then always return -1. Otherwise return bytes_sent.
- // This gives the caller an opportunity to keep track of
- // which data was actually sent.
- if (bytes_sent > 0)
- break;
- else
- {
- va_end (argp);
- return -1;
- }
- }
- else
- {
- bytes_sent += result;
-
- // Do not continue on to the next loop iteration if the
- // amount of data sent was less than the amount of data
- // given. This avoids a subtle problem where "holes" in the
- // data stream would occur if partial sends of a given
- // buffer in the varargs occured.
- if (result < data_len)
- break;
-
- }
- }
-
- va_end (argp);
-
- return bytes_sent;
-}
-
-ssize_t
-ACE_SSL_SOCK_Stream::recv (size_t n, ...) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::recv");
-
- const size_t total_tuples = n / 2;
-
- va_list argp;
- va_start (argp, n);
-
- ssize_t bytes_recv = 0;
-
- for (size_t i = 0; i < total_tuples; ++i)
- {
- const ssize_t data_len = va_arg (argp, ssize_t);
- const ssize_t result = this->recv (va_arg (argp, char *),
- data_len);
-
- if (result == -1)
- {
- // There is a subtle difference in behaviour depending on
- // whether or not any data was received. If no data was
- // received, then always return -1. Otherwise return
- // bytes_received. This gives the caller an opportunity to
- // keep track of which data was actually received.
- if (bytes_recv > 0)
- break;
- else
- {
- va_end (argp);
- return -1;
- }
- }
- else
- {
- bytes_recv += result;
-
- // Do not continue on to the next loop iteration if the
- // amount of data received was less than the amount of data
- // desired. This avoids a subtle problem where "holes" in
- // the data stream would occur if partial receives of a
- // given buffer in the varargs occured.
- if (result < data_len)
- break;
-
- }
- }
-
- va_end (argp);
-
- return bytes_recv;
-}
-
-ssize_t
-ACE_SSL_SOCK_Stream::send_n (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bt) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::send_n");
-
- // No support for send flags in SSL.
- if (flags != 0)
- ACE_NOTSUP_RETURN (-1);
-
- /* This code mimics ACE::send_n */
- // Total number of bytes written.
- size_t temp = 0;
- size_t &bytes_transferred = ((bt == 0) ? temp : *bt);
-
- // Actual number of bytes written in each <send> attempt
- ssize_t n = 0;
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- n = this->send ((const char*) buf + bytes_transferred,
- len - bytes_transferred,
- flags,
- timeout);
-
- if (n < 0)
- {
- if (errno == EWOULDBLOCK)
- {
- // If blocked, try again.
- n = 0;
- continue;
- }
- else
- return -1;
- }
- else if (n == 0)
- break;
- }
-
- return bytes_transferred;
-}
-
-ssize_t
-ACE_SSL_SOCK_Stream::recv_n (void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bt) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::recv_n");
-
- if (flags != 0)
- {
- if ((flags | MSG_PEEK) != MSG_PEEK)
- ACE_NOTSUP_RETURN (-1);
- }
-
- size_t temp = 0;
- size_t &bytes_transferred = ((bt == 0) ? temp : *bt);
-
- ssize_t n = 0;
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- n = this->recv ((char*) buf + bytes_transferred,
- len - bytes_transferred,
- flags,
- timeout);
-
- if (n < 0)
- {
- if (errno == EWOULDBLOCK)
- {
- // If blocked, try again.
- n = 0;
- continue;
- }
- else
- return -1;
- }
- else if (n == 0)
- break;
- }
-
- return bytes_transferred;
-}
-
-ssize_t
-ACE_SSL_SOCK_Stream::recv_n (void *buf, int len, int flags) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::recv_n");
-
- if (flags != 0)
- {
- if ((flags | MSG_PEEK) != MSG_PEEK)
- ACE_NOTSUP_RETURN (-1);
- }
-
- ssize_t bytes_transferred = 0;
- ssize_t n = 0;
-
- for (bytes_transferred = 0;
- bytes_transferred < len;
- bytes_transferred += n)
- {
- n = this->recv ((char*) buf + bytes_transferred,
- len - bytes_transferred,
- flags);
-
- if (n < 0)
- {
- if (errno == EWOULDBLOCK)
- {
- // If blocked, try again.
- n = 0;
- continue;
- }
- else
- return -1;
- }
- else if (n == 0)
- break;
- }
-
- return bytes_transferred;
-}
-
-ssize_t
-ACE_SSL_SOCK_Stream::send_n (const void *buf, int len, int flags) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::send_n");
-
- // Send flags are unsupported in SSL
- if (flags != 0)
- ACE_NOTSUP_RETURN (-1);
-
- /* The following code mimics <ACE::send_n> */
- size_t bytes_transferred = 0;
- ssize_t n = 0;
-
- for (bytes_transferred = 0;
- bytes_transferred < (size_t) len;
- bytes_transferred += n)
- {
- n = this->send ((const char*) buf + bytes_transferred,
- len - bytes_transferred,
- flags);
-
- if (n < 0)
- {
- if (errno == EWOULDBLOCK)
- {
- // If blocked, try again.
- n = 0;
- continue;
- }
- else
- return -1;
- }
- else if (n == 0)
- break;
- }
-
- return bytes_transferred;
-}
-
-ssize_t
-ACE_SSL_SOCK_Stream::sendv_n (const iovec iov[], size_t iovcnt) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::sendv_n");
-
- ssize_t bytes_sent = 0;
-
- for (size_t i = 0; i < iovcnt; ++i)
- {
- ssize_t result = this->send_n (iov[i].iov_base,
- iov[i].iov_len);
-
-
- if (result == -1)
- {
- // There is a subtle difference in behaviour depending on
- // whether or not any data was sent. If no data was sent,
- // then always return -1. Otherwise return bytes_sent.
- // This gives the caller an opportunity to keep track of
- // which data was actually sent.
- if (bytes_sent > 0)
- break;
- else
- return -1;
- }
- else
- bytes_sent += result;
- }
-
- return bytes_sent;
-}
-
-ssize_t
-ACE_SSL_SOCK_Stream::recvv_n (iovec iov[], size_t iovcnt) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::recvv_n");
-
- ssize_t bytes_read = 0;
-
- for (size_t i = 0; i < iovcnt; ++i)
- {
- ssize_t result = this->recv_n (iov[i].iov_base,
- iov[i].iov_len);
-
- if (result == -1)
- {
- // There is a subtle difference in behaviour depending on
- // whether or not any data was read. If no data was read,
- // then always return -1. Otherwise return bytes_read.
- // This gives the caller an opportunity to keep track of
- // which data was actually read.
- if (bytes_read > 0)
- break;
- else
- return -1;
- }
- else
- bytes_read += result;
- }
-
- return bytes_read;
-}
-
-int
-ACE_SSL_SOCK_Stream::get_remote_addr (ACE_Addr &addr) const
-{
- // Some applications use get_remote_addr() as a way of determining
- // whether or not a connection has been established. In SSL's case,
- // the remote addr will be available once the TCP handshake has been
- // complete. Despite that fact, the SSL connection may not have
- // been completed. In such a case, a successful return from
- // get_remote_addr() would be misleading.
-
- if (SSL_is_init_finished (this->ssl_))
- return this->ACE_SSL_SOCK::get_remote_addr (addr);
-
- if (this->get_handle () == ACE_INVALID_HANDLE)
- errno = EBADF;
- else
- errno = ENOTCONN;
-
- return -1;
-}
diff --git a/ace/SSL/SSL_SOCK_Stream.h b/ace/SSL/SSL_SOCK_Stream.h
deleted file mode 100644
index 06e5a4bd889..00000000000
--- a/ace/SSL/SSL_SOCK_Stream.h
+++ /dev/null
@@ -1,308 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file SSL_SOCK_Stream.h
- *
- * $Id$
- *
- * @author Ossama Othman <ossama@uci.edu>
- * @author Carlos O'Ryan <coryan@uci.edu>
- * @author John Heitmann
- */
-//=============================================================================
-
-
-#ifndef ACE_SSL_SOCK_STREAM_H
-#define ACE_SSL_SOCK_STREAM_H
-
-#include "ace/pre.h"
-
-#include "SSL_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include <openssl/err.h>
-
-#include "SSL_SOCK.h"
-#include "SSL_Context.h"
-
-#include "ace/SOCK_Stream.h"
-
-
-/**
- * @class ACE_SSL_SOCK_Stream
- *
- * @brief Defines methods in the ACE_SSL_SOCK_Stream abstraction.
- *
- * This class encapsulates the methods and functionality necessary to
- * send and receive data over TLS/SSL.
- * @par
- * Since SSL is record-oriented, some additional steps must be taken
- * to make the ACE_SSL_SOCK_Stream interact properly with the
- * Reactor (if one is used) when performing non-blocking IO. In
- * particular, if ::SSL_pending (ssl), where "ssl" is a pointer to the
- * SSL data structure returned from ACE_SSL_SOCK_Stream::ssl(),
- * returns a non-zero value then the event handler that calls the IO
- * methods in this class should return a value greater than zero to
- * force the Reactor to invoke the event handler before polling for
- * additional events (e.g. blocking on select()).
- *
- * @note The user must currently ensure that only one thread services
- * a given SSL session at any given time since underlying SSL
- * implementations, such as OpenSSL, are not entirely
- * thread-safe or reentrant.
- */
-class ACE_SSL_Export ACE_SSL_SOCK_Stream : public ACE_SSL_SOCK
-{
-public:
-
- /// Constructor
- ACE_SSL_SOCK_Stream (ACE_SSL_Context *context =
- ACE_SSL_Context::instance ());
-
- /// Destructor
- ~ACE_SSL_SOCK_Stream (void);
-
- /// Send an n byte buffer to the ssl socket using the semantics of
- /// send(3n).
- /**
- * ACE_SSL supports no flags for sending at this time.
- */
- ssize_t send (const void *buf,
- size_t n,
- int flags) const;
-
- /// Recv an n byte buffer from the ssl socket using the semantics of
- /// recv(3n).
- /**
- * ACE_SSL supports MSG_PEEK, but no other flags at this time.
- */
- ssize_t recv (void *buf,
- size_t n,
- int flags) const;
-
- /// Send an n byte buffer to the ssl socket using the semantics of
- /// write(2).
- ssize_t send (const void *buf,
- size_t n) const;
-
- /// Recv an n byte buffer from the ssl socket using the semantics of
- /// read(2).
- ssize_t recv (void *buf,
- size_t n) const;
-
- /// Send an iovec of size n to the ssl socket.
- /**
- * Note that it is not possible to perform a "scattered" write with
- * the underlying OpenSSL implementation. As such, the expected
- * semantics are not fully reproduced with this implementation.
- */
- ssize_t sendv (const iovec iov[],
- size_t n,
- const ACE_Time_Value *timeout = 0) const;
-
- /**
- * Allows a client to read from a socket without having to provide a
- * buffer to read. This method determines how much data is in the
- * socket, allocates a buffer of this size, reads in the data, and
- * returns the number of bytes read. The caller is responsible for
- * deleting the member in the iov_base field of io_vec using
- * delete [] io_vec->iov_base.
- */
- ssize_t recvv (iovec *io_vec,
- const ACE_Time_Value *timeout = 0) const;
-
- /**
- * Wait to timeout amount of time to send up to n bytes into buf
- * (uses the send() call). If send() times out -1 is returned with
- * errno == ETIME. If it succeeds the number of bytes sent is
- * returned. No flags are supported.
- */
- ssize_t send (const void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout) const;
-
- /**
- * Wait up to timeout amount of time to receive up to n bytes into
- * buf (uses the recv() call). If recv() times out -1 is returned
- * with errno == ETIME. If it succeeds the number of bytes received
- * is returned. MSG_PEEK is the only supported flag.
- */
- ssize_t recv (void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout) const;
-
- /**
- * Wait to to timeout amount of time to send up to n bytes into
- * buf (uses the send() call). If send() times out
- * a -1 is returned with errno == ETIME. If it succeeds the
- * number of bytes sent is returned.
- */
- ssize_t send (const void *buf,
- size_t n,
- const ACE_Time_Value *timeout) const;
-
- /**
- * Wait up to timeout amount of time to receive up to n bytes
- * into buf (uses the recv() call). If recv() times
- * out a -1 is returned with errno == ETIME. If it succeeds the
- * number of bytes received is returned.
- */
- ssize_t recv (void *buf,
- size_t n,
- const ACE_Time_Value *timeout) const;
-
- /// Send n varargs messages to the connected ssl socket.
- ssize_t send (size_t n,
- ...) const;
-
- /// Recv n varargs messages to the connected ssl socket.
- ssize_t recv (size_t n,
- ...) const;
-
- /// Send n bytes, keep trying until n are sent.
- ssize_t send_n (const void *buf, int n) const;
-
- /// Recv n bytes, keep trying until n are received.
- ssize_t recv_n (void *buf, int n) const;
-
- /**
- * @note In the following four methods, only MSG_PEEK is supported
- * for recv_n(), and no flags are supported for send_n().
- */
- //@{
- /// Send n bytes, keep trying until n are sent.
- ssize_t send_n (const void *buf, int n, int flags) const;
-
- /// Recv n bytes, keep trying until n are sent.
- ssize_t recv_n (void *buf, int n, int flags) const;
-
- /**
- * Try to send exactly len bytes into buf (uses the send() call).
- * If send() blocks for longer than timeout the number of bytes
- * actually sent is returned with errno == ETIME. If a timeout does
- * not occur, send_n() return len (i.e., the number of bytes
- * requested to be sent).
- */
- ssize_t send_n (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred = 0) const;
-
- /**
- * Try to receive exactly len bytes into buf (uses the recv() call).
- * The ACE_Time_Value indicates how long to blocking trying to
- * receive. If timeout == 0, the caller will block until action is
- * possible, else will wait until the relative time specified in
- * timeout elapses). If recv() blocks for longer than timeout the
- * number of bytes actually read is returned with errno == ETIME.
- * If a timeout does not occur, recv_n return len (i.e., the number
- * of bytes requested to be read).
- */
- ssize_t recv_n (void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred = 0) const;
- //@}
-
- /**
- * Send an iovec of size n to the connected socket. Will block
- * until all bytes are sent or an error occurs.
- */
- ssize_t sendv_n (const iovec iov[],
- size_t n) const;
-
- /// Receive an iovec of size n to the connected socket.
- ssize_t recvv_n (iovec iov[],
- size_t n) const;
-
-
- /**
- * Selectively close endpoints.
- */
- //@{
- /// Close down the reader.
- int close_reader (void);
-
- /// Close down the writer.
- int close_writer (void);
- //@}
-
- ///Close down the socket.
- int close (void);
-
- /// Meta-type info
- typedef ACE_INET_Addr PEER_ADDR;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /// Overridden set_handle() method.
- /**
- * Only an ACE_SSL_SOCK_Acceptor or ACE_SSL_SOCK_Connector should
- * access this method since some state in the underlying "ssl_" data
- * structure is set during SSL connection establishment.
- */
- void set_handle (ACE_HANDLE fd);
-
- /// Return a pointer to the underlying SSL structure.
- SSL *ssl (void) const;
-
- /**
- * Return the address of the remotely connected peer (if there is
- * one), in the referenced <ACE_Addr>. Returns 0 if successful, else
- * -1.
- *
- * @note If the TCP connection has been completed but the SSL
- * connection has not been completed yet, -1 will be
- * returned.
- */
- int get_remote_addr (ACE_Addr &) const;
-
- /// Return the underlying ACE_SOCK_Stream which ACE_SSL runs atop of.
- ACE_SOCK_Stream & peer (void);
-
-protected:
-
- /// Underlying send() helper method common to all public send()
- /// methods.
- ssize_t send_i (const void *buf,
- size_t n,
- int flags) const;
-
- /// Underlying send() helper method common to all public send()
- /// methods.
- ssize_t recv_i (void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout) const;
-
-private:
-
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_SSL_SOCK_Stream &))
- ACE_UNIMPLEMENTED_FUNC (ACE_SSL_SOCK_Stream (const ACE_SSL_SOCK_Stream &))
-
-protected:
-
- /// The SSL session.
- SSL *ssl_;
-
- /// The stream which works under the ssl connection.
- ACE_SOCK_Stream stream_;
-
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "SSL_SOCK_Stream.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-
-#endif /* ACE_SSL_SOCK_STREAM_H */
diff --git a/ace/SSL/SSL_SOCK_Stream.i b/ace/SSL/SSL_SOCK_Stream.i
deleted file mode 100644
index ea345cbe921..00000000000
--- a/ace/SSL/SSL_SOCK_Stream.i
+++ /dev/null
@@ -1,317 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-ASYS_INLINE void
-ACE_SSL_SOCK_Stream::set_handle (ACE_HANDLE fd)
-{
- if (this->ssl_ == 0 || fd == ACE_INVALID_HANDLE)
- {
- this->ACE_SSL_SOCK::set_handle (ACE_INVALID_HANDLE);
- return;
- }
- else
- {
- (void) ::SSL_set_fd (this->ssl_, (int) fd);
- this->ACE_SSL_SOCK::set_handle (fd);
- this->stream_.set_handle (fd);
- }
-}
-
-ASYS_INLINE ssize_t
-ACE_SSL_SOCK_Stream::send_i (const void *buf,
- size_t n,
- int flags) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::send_i");
-
- // NOTE: Caller must provide thread-synchronization.
-
- // No send flags are supported in SSL.
- if (flags != 0)
- ACE_NOTSUP_RETURN (-1);
-
- const int bytes_sent = ::SSL_write (this->ssl_,
- ACE_static_cast (const char *, buf),
- n);
-
- switch (::SSL_get_error (this->ssl_, bytes_sent))
- {
- case SSL_ERROR_NONE:
- return bytes_sent;
-
- case SSL_ERROR_WANT_READ:
- case SSL_ERROR_WANT_WRITE:
- errno = EWOULDBLOCK;
-
- return -1;
-
- case SSL_ERROR_ZERO_RETURN:
- // The peer has notified us that it is shutting down via the SSL
- // "close_notify" message so we need to shutdown, too.
- (void) ::SSL_shutdown (this->ssl_);
-
- return bytes_sent;
-
- case SSL_ERROR_SYSCALL:
- if (bytes_sent == 0)
- // An EOF occured but the SSL "close_notify" message was not
- // sent. This is a protocol error, but we ignore it.
- return 0;
-
- // If not an EOF, then fall through to "default" case.
-
- // On some platforms (e.g. MS Windows) OpenSSL does not store
- // the last error in errno so explicitly do so.
- ACE_OS::set_errno_to_last_error ();
-
- break;
-
- default:
- // Reset errno to prevent previous values (e.g. EWOULDBLOCK)
- // from being associated with fatal SSL errors.
- errno = 0;
-
- ACE_SSL_Context::report_error ();
-
- break;
- }
-
- return -1;
-}
-
-ASYS_INLINE ssize_t
-ACE_SSL_SOCK_Stream::send (const void *buf,
- size_t n,
- int flags) const
-{
- return this->send_i (buf, n, flags);
-}
-
-ASYS_INLINE ssize_t
-ACE_SSL_SOCK_Stream::recv_i (void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::recv_i");
-
- // NOTE: Caller must provide thread-synchronization.
-
- int bytes_read = 0;
- const ACE_HANDLE handle = this->get_handle ();
-
- // Value for current I/O mode (blocking/non-blocking)
- int val = 0;
-
- if (timeout != 0)
- ACE::record_and_set_non_blocking_mode (handle,
- val);
-
- // Only block on select() with a timeout if no data in the
- // internal OpenSSL buffer is pending read completion for
- // the same reasons stated above, i.e. all data must be read
- // before blocking on select().
- if (timeout != 0
- && !::SSL_pending (this->ssl_))
- {
- if (ACE::enter_recv_timedwait (handle,
- timeout,
- val) == -1)
- return -1;
- }
-
- if (flags)
- {
- if (ACE_BIT_ENABLED (flags, MSG_PEEK))
- bytes_read = ::SSL_peek (this->ssl_,
- ACE_static_cast (char *, buf),
- n);
- else
- ACE_NOTSUP_RETURN (-1);
- }
- else
- {
- bytes_read = ::SSL_read (this->ssl_,
- ACE_static_cast (char *, buf),
- n);
- }
-
- const int status = ::SSL_get_error (this->ssl_, bytes_read);
- switch (status)
- {
- case SSL_ERROR_NONE:
- if (timeout != 0)
- ACE::restore_non_blocking_mode (handle, val);
-
- return bytes_read;
-
- case SSL_ERROR_WANT_READ:
- case SSL_ERROR_WANT_WRITE:
- errno = EWOULDBLOCK;
-
- return -1;
-
- case SSL_ERROR_ZERO_RETURN:
- if (timeout != 0)
- ACE::restore_non_blocking_mode (handle, val);
-
- // The peer has notified us that it is shutting down via the SSL
- // "close_notify" message so we need to shutdown, too.
- (void) ::SSL_shutdown (this->ssl_);
-
- return bytes_read;
-
- case SSL_ERROR_SYSCALL:
- if (bytes_read == 0)
- // An EOF occured but the SSL "close_notify" message was not
- // sent. This is a protocol error, but we ignore it.
- return 0;
-
- // If not an EOF, then fall through to "default" case.
-
- // On some platforms (e.g. MS Windows) OpenSSL does not store
- // the last error in errno so explicitly do so.
- ACE_OS::set_errno_to_last_error ();
-
- break;
-
- default:
- // Reset errno to prevent previous values (e.g. EWOULDBLOCK)
- // from being associated with a fatal SSL error.
- errno = 0;
-
- ACE_SSL_Context::report_error ();
-
- break;
- }
-
- return -1;
-}
-
-ASYS_INLINE ssize_t
-ACE_SSL_SOCK_Stream::recv (void *buf,
- size_t n,
- int flags) const
-{
- return this->recv_i (buf, n, flags, 0);
-}
-
-ASYS_INLINE ssize_t
-ACE_SSL_SOCK_Stream::send (const void *buf,
- size_t n) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::send");
-
- return this->send_i (buf, n, 0);
-}
-
-ASYS_INLINE ssize_t
-ACE_SSL_SOCK_Stream::recv (void *buf,
- size_t n) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::recv");
-
- return this->recv_i (buf, n, 0, 0);
-}
-
-ASYS_INLINE ssize_t
-ACE_SSL_SOCK_Stream::send (const void *buf,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::send");
- return this->send (buf, len, 0, timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_SSL_SOCK_Stream::recv (void *buf,
- size_t n,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::recv");
- return this->recv (buf, n, 0, timeout);
-}
-
-ASYS_INLINE ssize_t
-ACE_SSL_SOCK_Stream::recv_n (void *buf, int buf_size) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::recv_n");
- return this->recv_n (buf, buf_size, 0);
-}
-
-ASYS_INLINE ssize_t
-ACE_SSL_SOCK_Stream::send_n (const void *buf, int len) const
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::send_n");
- return this->send_n (buf, len, 0);
-}
-
-ASYS_INLINE int
-ACE_SSL_SOCK_Stream::close_reader (void)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::close_reader");
- return this->stream_.close_reader ();
-}
-
-ASYS_INLINE int
-ACE_SSL_SOCK_Stream::close_writer (void)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::close_writer");
- return this->stream_.close_writer ();
-}
-
-ASYS_INLINE int
-ACE_SSL_SOCK_Stream::close (void)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::close");
-
- if (this->ssl_ == 0 || this->get_handle () == ACE_INVALID_HANDLE)
- return 0; // SSL_SOCK_Stream was never opened.
-
- // SSL_shutdown() returns 1 on successful shutdown of the SSL
- // connection, not 0.
- const int status = ::SSL_shutdown (this->ssl_);
-
- switch (::SSL_get_error (this->ssl_, status))
- {
- case SSL_ERROR_NONE:
- case SSL_ERROR_SYSCALL: // Ignore this error condition.
-
- // Reset the SSL object to allow another connection to be made
- // using this ACE_SSL_SOCK_Stream instance. This prevents the
- // previous SSL session state from being associated with the new
- // SSL session/connection.
- (void) ::SSL_clear (this->ssl_);
- this->set_handle (ACE_INVALID_HANDLE);
- return this->stream_.close ();
-
- case SSL_ERROR_WANT_READ:
- case SSL_ERROR_WANT_WRITE:
- errno = EWOULDBLOCK;
- break;
-
- default:
- ACE_SSL_Context::report_error ();
-
- ACE_Errno_Guard error (errno); // Save/restore errno
- (void) this->stream_.close ();
-
- return -1;
- }
-
- return -1;
-}
-
-ASYS_INLINE ACE_SOCK_Stream &
-ACE_SSL_SOCK_Stream::peer (void)
-{
- ACE_TRACE ("ACE_SSL_SOCK_Stream::peer");
- return this->stream_;
-}
-
-ASYS_INLINE SSL *
-ACE_SSL_SOCK_Stream::ssl (void) const
-{
- return this->ssl_;
-}
diff --git a/ace/SSL/ssl.mpc b/ace/SSL/ssl.mpc
deleted file mode 100644
index e1f2657286e..00000000000
--- a/ace/SSL/ssl.mpc
+++ /dev/null
@@ -1,8 +0,0 @@
-project : acelib, core {
- ssl = 1
- depends = ace
- sharedname = ACE_SSL
- dllflags = ACE_SSL_BUILD_DLL
- libout = ..
- include_dir = ace/SSL
-}
diff --git a/ace/SSL/sslconf.h b/ace/SSL/sslconf.h
deleted file mode 100644
index ae9f155befb..00000000000
--- a/ace/SSL/sslconf.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file sslconf.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@ece.uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_SSLCONF_H
-#define ACE_SSLCONF_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_DEFAULT_SSL_CERT_FILE)
-# ifdef WIN32
-# define ACE_DEFAULT_SSL_CERT_FILE "cert.pem"
-# else
-# define ACE_DEFAULT_SSL_CERT_FILE "/etc/ssl/cert.pem"
-# endif /* WIN32 */
-#endif /* ACE_DEFAULT_SSL_CERT_FILE */
-
-#if !defined (ACE_DEFAULT_SSL_CERT_DIR)
-# ifdef WIN32
-# define ACE_DEFAULT_SSL_CERT_DIR "certs"
-# else
-# define ACE_DEFAULT_SSL_CERT_DIR "/etc/ssl/certs"
-# endif /* WIN32 */
-#endif /* ACE_DEFAULT_SSL_CERT_DIR */
-
-#if !defined (ACE_SSL_CERT_FILE_ENV)
-#define ACE_SSL_CERT_FILE_ENV "SSL_CERT_FILE"
-#endif /* ACE_SSL_CERT_FILE_ENV */
-
-#if !defined (ACE_SSL_CERT_DIR_ENV)
-#define ACE_SSL_CERT_DIR_ENV "SSL_CERT_DIR"
-#endif /* ACE_SSL_CERT_DIR_ENV */
-
-#if !defined (ACE_SSL_EGD_FILE_ENV)
-#define ACE_SSL_EGD_FILE_ENV "SSL_EGD_FILE"
-#endif /* ACE_SSL_EGD_FILE_ENV */
-
-#if !defined (ACE_SSL_RAND_FILE_ENV)
-#define ACE_SSL_RAND_FILE_ENV "SSL_RAND_FILE"
-#endif /* ACE_SSL_RAND_FILE_ENV */
-
-#include "ace/post.h"
-
-#endif /* ACE_SSLCONF_H */
diff --git a/ace/SString.cpp b/ace/SString.cpp
deleted file mode 100644
index 88fad2ae74c..00000000000
--- a/ace/SString.cpp
+++ /dev/null
@@ -1,552 +0,0 @@
-// $Id$
-
-#include "ace/Malloc.h"
-#if !defined (ACE_HAS_WINCE)
-//# include "ace/Service_Config.h"
-#endif /* !ACE_HAS_WINCE */
-#include "ace/SString.h"
-#include "ace/Auto_Ptr.h"
-
-#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
-# include "ace/streams.h"
-#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/SString.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, SString, "SString.cpp,v 4.61 2001/03/04 00:55:30 brunsch Exp")
-
-ACE_Tokenizer::ACE_Tokenizer (ACE_TCHAR *buffer)
- : buffer_ (buffer),
- index_ (0),
- preserves_index_ (0),
- delimiter_index_ (0)
-{
-}
-
-int
-ACE_Tokenizer::delimiter (ACE_TCHAR d)
-{
- if (delimiter_index_ == MAX_DELIMITERS)
- return -1;
-
- delimiters_[delimiter_index_].delimiter_ = d;
- delimiters_[delimiter_index_].replace_ = 0;
- delimiter_index_++;
- return 0;
-}
-
-int
-ACE_Tokenizer::delimiter_replace (ACE_TCHAR d,
- ACE_TCHAR replacement)
-{
- // Make it possible to replace delimiters on-the-fly, e.g., parse
- // string until certain token count and then copy rest of the
- // original string.
- for (int i = 0; i < delimiter_index_; i++)
- if (delimiters_[i].delimiter_ == d)
- {
- delimiters_[i].replacement_ = replacement;
- delimiters_[i].replace_ = 1;
- return 0;
- }
-
- if (delimiter_index_ >= MAX_DELIMITERS)
- return -1;
-
- delimiters_[delimiter_index_].delimiter_ = d;
- delimiters_[delimiter_index_].replacement_ = replacement;
- delimiters_[delimiter_index_].replace_ = 1;
- delimiter_index_++;
- return 0;
-}
-
-int
-ACE_Tokenizer::preserve_designators (ACE_TCHAR start,
- ACE_TCHAR stop,
- int strip)
-{
- if (preserves_index_ == MAX_PRESERVES)
- return -1;
-
- preserves_[preserves_index_].start_ = start;
- preserves_[preserves_index_].stop_ = stop;
- preserves_[preserves_index_].strip_ = strip;
- preserves_index_++;
- return 0;
-}
-
-int
-ACE_Tokenizer::is_delimiter (ACE_TCHAR d,
- int &replace,
- ACE_TCHAR &r)
-{
- replace = 0;
-
- for (int x = 0; x < delimiter_index_; x++)
- if (delimiters_[x].delimiter_ == d)
- {
- if (delimiters_[x].replace_)
- {
- r = delimiters_[x].replacement_;
- replace = 1;
- }
- return 1;
- }
-
- return 0;
-}
-
-int
-ACE_Tokenizer::is_preserve_designator (ACE_TCHAR start,
- ACE_TCHAR &stop,
- int &strip)
-{
- for (int x = 0; x < preserves_index_; x++)
- if (preserves_[x].start_ == start)
- {
- stop = preserves_[x].stop_;
- strip = preserves_[x].strip_;
- return 1;
- }
-
- return 0;
-}
-
-ACE_TCHAR *
-ACE_Tokenizer::next (void)
-{
- // Check if the previous pass was the last one in the buffer.
- if (index_ == -1)
- {
- index_ = 0;
- return 0;
- }
-
- ACE_TCHAR replacement;
- int replace;
- ACE_TCHAR *next_token;
-
- // Skip all leading delimiters.
- for (;;)
- {
- // Check for end of string.
- if (buffer_[index_] == '\0')
- {
- // If we hit EOS at the start, return 0.
- index_ = 0;
- return 0;
- }
-
- if (this->is_delimiter (buffer_[index_],
- replace,
- replacement))
- index_++;
- else
- break;
- }
-
- // When we reach this point, buffer_[index_] is a non-delimiter and
- // not EOS - the start of our next_token.
- next_token = buffer_ + index_;
-
- // A preserved region is it's own token.
- ACE_TCHAR stop;
- int strip;
- if (this->is_preserve_designator (buffer_[index_],
- stop,
- strip))
- {
- while (++index_)
- {
- if (buffer_[index_] == '\0')
- {
- index_ = -1;
- goto EXIT_LABEL;
- }
-
- if (buffer_[index_] == stop)
- break;
- }
-
- if (strip)
- {
- // Skip start preserve designator.
- next_token += 1;
- // Zap the stop preserve designator.
- buffer_[index_] = '\0';
- // Increment to the next token.
- index_++;
- }
-
- goto EXIT_LABEL;
- }
-
- // Step through finding the next delimiter or EOS.
- for (;;)
- {
- // Advance pointer.
- index_++;
-
- // Check for delimiter.
- if (this->is_delimiter (buffer_[index_],
- replace,
- replacement))
- {
- // Replace the delimiter.
- if (replace != 0)
- buffer_[index_] = replacement;
-
- // Move the pointer up and return.
- index_++;
- goto EXIT_LABEL;
- }
-
- // A preserve designator signifies the end of this token.
- if (this->is_preserve_designator (buffer_[index_],
- stop,
- strip))
- goto EXIT_LABEL;
-
- // Check for end of string.
- if (buffer_[index_] == '\0')
- {
- index_ = -1;
- goto EXIT_LABEL;
- }
- }
-
-EXIT_LABEL:
- return next_token;
-}
-
-// ************************************************************
-
-#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
-ACE_OSTREAM_TYPE &
-operator<< (ACE_OSTREAM_TYPE &os, const ACE_CString &cs)
-{
- if (cs.fast_rep () != 0)
- os << cs.fast_rep ();
- return os;
-}
-
-ACE_OSTREAM_TYPE &
-operator<< (ACE_OSTREAM_TYPE &os, const ACE_WString &ws)
-{
- // @@ Need to figure out how to print the "wide" string
- // on platforms that don't support "wide" strings.
-#if defined (ACE_HAS_WCHAR)
- os << ACE_Wide_To_Ascii (ws.fast_rep ()).char_rep ();
-#else
- ACE_UNUSED_ARG (ws);
- os << "(*non-printable string*)";
-#endif
- return os;
-}
-
-ACE_OSTREAM_TYPE &
-operator<< (ACE_OSTREAM_TYPE &os, const ACE_SString &ss)
-{
- if (ss.fast_rep () != 0)
- os << ss.fast_rep ();
- return os;
-}
-#endif /* !ACE_LACKS_IOSTREAM_TOTALLY */
-
-char *
-ACE_NS_WString::char_rep (void) const
-{
- ACE_TRACE ("ACE_NS_WString::char_rep");
- if (this->len_ <= 0)
- return 0;
- else
- {
- char *t;
-
- ACE_NEW_RETURN (t,
- char[this->len_ + 1],
- 0);
-
- for (size_t i = 0; i < this->len_; i++)
- // Note that this cast may lose data if wide chars are
- // actually used!
- t[i] = char (this->rep_[i]);
-
- t[this->len_] = '\0';
- return t;
- }
-}
-
-ACE_USHORT16 *
-ACE_NS_WString::ushort_rep (void) const
-{
- ACE_TRACE ("ACE_NS_WString::ushort_rep");
- if (this->len_ <= 0)
- return 0;
- else
- {
- ACE_USHORT16 *t;
-
- ACE_NEW_RETURN (t,
- ACE_USHORT16[this->len_ + 1],
- 0);
-
- for (size_t i = 0; i < this->len_; i++)
- // Note that this cast may lose data if wide chars are
- // actually used!
- t[i] = (ACE_USHORT16)this->rep_[i];
-
- t[this->len_] = 0;
- return t;
- }
-}
-
-const int ACE_SString::npos = -1;
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SString)
-
-ACE_NS_WString::ACE_NS_WString (const char *s,
- ACE_Allocator *alloc)
- : ACE_WString (alloc)
-{
- if (s == 0)
- return;
-
- this->len_ = this->buf_len_ = ACE_OS_String::strlen (s);
-
- if (this->buf_len_ == 0)
- return;
-
- ACE_ALLOCATOR (this->rep_,
- (ACE_WSTRING_TYPE *)
- this->allocator_->malloc ((this->buf_len_ + 1) *
- sizeof (ACE_WSTRING_TYPE)));
- this->release_ = 1;
- for (size_t i = 0; i <= this->buf_len_; i++)
- this->rep_[i] = s[i];
-}
-
-#if defined (ACE_WSTRING_HAS_USHORT_SUPPORT)
-ACE_NS_WString::ACE_NS_WString (const ACE_USHORT16 *s,
- size_t len,
- ACE_Allocator *alloc)
- : ACE_WString (alloc)
-{
- if (s == 0)
- return;
-
- this->buf_len_ = len;
-
- if (this->buf_len_ == 0)
- return;
-
- ACE_ALLOCATOR (this->rep_,
- (ACE_WSTRING_TYPE *)
- this->allocator_->malloc ((this->buf_len_) *
- sizeof (ACE_WSTRING_TYPE)));
- this->release_ = 1;
- for (size_t i = 0; i < this->buf_len_; i++)
- this->rep_[i] = s[i];
-}
-#endif /* ACE_WSTRING_HAS_USHORT_SUPPORT */
-
-void
-ACE_SString::dump (void) const
-{
- ACE_TRACE ("ACE_SString::dump");
-}
-
-// Copy constructor.
-
-ACE_SString::ACE_SString (const ACE_SString &s)
- : allocator_ (s.allocator_),
- len_ (s.len_)
-{
- ACE_TRACE ("ACE_SString::ACE_SString");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- this->rep_ = (char *) this->allocator_->malloc (s.len_ + 1);
- ACE_OS::memcpy ((void *) this->rep_,
- (const void *) s.rep_,
- this->len_);
- this->rep_[this->len_] = '\0';
-}
-
-// Default constructor.
-
-ACE_SString::ACE_SString (ACE_Allocator *alloc)
- : allocator_ (alloc),
- len_ (0),
- rep_ (0)
-
-{
- ACE_TRACE ("ACE_SString::ACE_SString");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- this->len_ = 0;
- this->rep_ = (char *) this->allocator_->malloc (this->len_ + 1);
- this->rep_[this->len_] = '\0';
-}
-
-// Set the underlying pointer (does not copy memory).
-
-void
-ACE_SString::rep (char *s)
-{
- ACE_TRACE ("ACE_SString::rep");
-
- this->rep_ = s;
-
- if (s == 0)
- this->len_ = 0;
- else
- this->len_ = ACE_OS::strlen (s);
-}
-
-// Constructor that actually copies memory.
-
-ACE_SString::ACE_SString (const char *s,
- ACE_Allocator *alloc)
- : allocator_ (alloc)
-{
- ACE_TRACE ("ACE_SString::ACE_SString");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- if (s == 0)
- {
- this->len_ = 0;
- this->rep_ = (char *) this->allocator_->malloc (this->len_ + 1);
- this->rep_[this->len_] = '\0';
- }
- else
- {
- this->len_ = ACE_OS::strlen (s);
- this->rep_ = (char *) this->allocator_->malloc (this->len_ + 1);
- ACE_OS::strcpy (this->rep_, s);
- }
-}
-
-ACE_SString::ACE_SString (char c,
- ACE_Allocator *alloc)
- : allocator_ (alloc)
-{
- ACE_TRACE ("ACE_SString::ACE_SString");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- this->len_ = 1;
- this->rep_ = (char *) this->allocator_->malloc (this->len_ + 1);
- this->rep_[0] = c;
- this->rep_[this->len_] = '\0';
-}
-
-// Constructor that actually copies memory.
-
-ACE_SString::ACE_SString (const char *s,
- size_t len,
- ACE_Allocator *alloc)
- : allocator_ (alloc)
-{
- ACE_TRACE ("ACE_SString::ACE_SString");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- if (s == 0)
- {
- this->len_ = 0;
- this->rep_ = (char *) this->allocator_->malloc (this->len_ + 1);
- this->rep_[this->len_] = '\0';
- }
- else
- {
- this->len_ = len;
- this->rep_ = (char *) this->allocator_->malloc (this->len_ + 1);
- ACE_OS::memcpy (this->rep_, s, len);
- this->rep_[len] = '\0'; // Make sure to NUL terminate this!
- }
-}
-
-// Assignment operator (does copy memory).
-
-ACE_SString &
-ACE_SString::operator= (const ACE_SString &s)
-{
- ACE_TRACE ("ACE_SString::operator=");
- // Check for identify.
-
- if (this != &s)
- {
- // Only reallocate if we don't have enough space...
- if (this->len_ < s.len_)
- {
- this->allocator_->free (this->rep_);
- this->rep_ = (char *) this->allocator_->malloc (s.len_ + 1);
- }
- this->len_ = s.len_;
- ACE_OS::strcpy (this->rep_, s.rep_);
- }
-
- return *this;
-}
-
-// Return substring.
-ACE_SString
-ACE_SString::substring (size_t offset,
- ssize_t length) const
-{
- ACE_SString nill;
- size_t count = length;
-
- // case 1. empty string
- if (len_ == 0)
- return nill;
-
- // case 2. start pos l
- if (offset >= len_)
- return nill;
-
- // get all remaining bytes
- if (length == -1)
- count = len_ - offset;
-
- return ACE_SString (&rep_[offset], count, this->allocator_);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_String_Base<char>;
-template ACE_String_Base<char> operator + (const ACE_String_Base<char> &,
- const ACE_String_Base<char> &);
-template ACE_String_Base<char> operator + (const ACE_String_Base<char> &,
- const char *);
-template ACE_String_Base<char> operator + (const char *,
- const ACE_String_Base<char> &);
-template class ACE_String_Base<ACE_WSTRING_TYPE>;
-template ACE_String_Base<ACE_WSTRING_TYPE> operator + (const ACE_String_Base<ACE_WSTRING_TYPE> &,
- const ACE_String_Base<ACE_WSTRING_TYPE> &);
-template ACE_String_Base<ACE_WSTRING_TYPE> operator + (const ACE_String_Base<ACE_WSTRING_TYPE> &,
- const ACE_WSTRING_TYPE *);
-template ACE_String_Base<ACE_WSTRING_TYPE> operator + (const ACE_WSTRING_TYPE *,
- const ACE_String_Base<ACE_WSTRING_TYPE> &);
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_String_Base<char>
-#pragma instantiate ACE_String_Base<char> operator + (const ACE_String_Base<char> &, const ACE_String_Base<char> &)
-#pragma instantiate ACE_String_Base<char> operator + (const ACE_String_Base<char> &, const char *)
-#pragma instantiate ACE_String_Base<char> operator + (const char *,const ACE_String_Base<char> &)
-#pragma instantiate ACE_String_Base<ACE_WSTRING_TYPE>
-#pragma instantiate ACE_String_Base<ACE_WSTRING_TYPE> operator + (const ACE_String_Base<ACE_WSTRING_TYPE> &, const ACE_String_Base<ACE_WSTRING_TYPE> &)
-#pragma instantiate ACE_String_Base<ACE_WSTRING_TYPE> operator + (const ACE_String_Base<ACE_WSTRING_TYPE> &, const ACE_WSTRING_TYPE *)
-#pragma instantiate ACE_String_Base<ACE_WSTRING_TYPE> operator + (const ACE_WSTRING_TYPE *,const ACE_String_Base<ACE_WSTRING_TYPE> &)
-#elif defined (__GNUC__) && (defined (_AIX) || defined (__hpux) || defined (VXWORKS))
-template char ACE_String_Base<char>::NULL_String_;
-template ACE_WSTRING_TYPE ACE_String_Base<ACE_WSTRING_TYPE>::NULL_String_;
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/SString.h b/ace/SString.h
deleted file mode 100644
index 93317b49637..00000000000
--- a/ace/SString.h
+++ /dev/null
@@ -1,482 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SString.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt (schmidt@cs.wustl.edu)
- */
-//=============================================================================
-
-#ifndef ACE_SSTRING_H
-#define ACE_SSTRING_H
-#include "ace/pre.h"
-
-#include "ace/SStringfwd.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/String_Base.h"
-#include "ace/OS.h"
-
-
-#if !defined (ACE_DEFAULT_GROWSIZE)
-#define ACE_DEFAULT_GROWSIZE 32
-#endif /* ACE_DEFAULT_GROWSIZE */
-
-#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
-ACE_Export ACE_OSTREAM_TYPE &operator << (ACE_OSTREAM_TYPE &, const ACE_CString &);
-ACE_Export ACE_OSTREAM_TYPE &operator << (ACE_OSTREAM_TYPE &, const ACE_WString &);
-#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-
-#if defined ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT
-template class ACE_Export ACE_String_Base<char>;
-template class ACE_Export ACE_String_Base<ACE_WSTRING_TYPE>;
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT */
-
-/**
- * @brief This class retain the backward compatibility for
- * Naming_Conext and related classes. The only addition to
- * ACE_WString is a very naive "wchar" to "char" conversion function.
- */
-class ACE_Export ACE_NS_WString : public ACE_WString
-{
-public:
- /// Default constructor.
- ACE_NS_WString (ACE_Allocator *alloc = 0);
-
- /// Constructor that copies @a s into dynamically allocated memory.
- ACE_NS_WString (const char *s,
- ACE_Allocator *alloc = 0);
-
- /// Constructor that copies @a s into dynamically allocated memory.
- ACE_NS_WString (const ACE_WSTRING_TYPE *s,
- ACE_Allocator *alloc = 0);
-
-#if defined (ACE_WSTRING_HAS_USHORT_SUPPORT)
- /// Constructor that takes in a ushort16 string (mainly used by the
- /// ACE Name_Space classes)
- ACE_NS_WString (const ACE_USHORT16 *s,
- size_t len,
- ACE_Allocator *alloc = 0);
-#endif /* ACE_WSTRING_HAS_USHORT_SUPPORT */
-
- /// Constructor that copies @a len ACE_WSTRING_TYPE's of @a s into dynamically
- /// allocated memory (will NUL terminate the result).
- ACE_NS_WString (const ACE_WSTRING_TYPE *s,
- size_t len,
- ACE_Allocator *alloc = 0);
-
- /// Constructor that dynamically allocates memory for @a len + 1
- /// ACE_WSTRING_TYPE characters. The newly created memory is set memset to 0.
- ACE_NS_WString (size_t len, ACE_Allocator *alloc = 0);
-
- /// Copy constructor.
- ACE_NS_WString (const ACE_NS_WString &s);
-
- /// Constructor that copies @a c into dynamically allocated memory.
- ACE_NS_WString (ACE_WSTRING_TYPE c, ACE_Allocator *alloc = 0);
-
- /// Transform into a copy of the ASCII character representation.
- /// (caller must delete)
- char *char_rep (void) const;
-
- /// Transform into a copy of a USHORT16 representation (caller must
- /// delete). Note, behavior is undefined when sizeof (wchar_t) != 2.
- ACE_USHORT16 *ushort_rep (void) const;
-};
-
-ACE_INLINE ACE_Export
-ACE_NS_WString operator + (const ACE_NS_WString &,
- const ACE_NS_WString &);
-/**
- * @class ACE_SString
- *
- * @brief A very Simple String ACE_SString class. This is not a
- * general-purpose string class, and you should probably consider
- * using ACE_CString is you don't understand why this class
- * exists...
- *
- * This class is optimized for efficiency, so it doesn't provide
- * any internal locking.
- * CAUTION: This class is only intended for use with applications
- * that understand how it works. In particular, its destructor
- * does not deallocate its memory when it is destroyed... We need
- * this class since the ACE_Map_Manager requires an object that
- * supports the operator == and operator !=. This class uses an
- * ACE_Allocator to allocate memory. The user can make this a
- * persistant class by providing an ACE_Allocator with a
- * persistable memory pool.
- */
-class ACE_Export ACE_SString
-{
-public:
- /// No position constant
- static const int npos;
-
- /// Default constructor.
- ACE_SString (ACE_Allocator *alloc = 0);
-
- /// Constructor that copies @a s into dynamically allocated memory.
- ACE_SString (const char *s, ACE_Allocator *alloc = 0);
-
- /// Constructor that copies @a len chars of @s into dynamically
- /// allocated memory (will NUL terminate the result).
- ACE_SString (const char *s, size_t len, ACE_Allocator *alloc = 0);
-
- /// Copy constructor.
- ACE_SString (const ACE_SString &);
-
- /// Constructor that copies @a c into dynamically allocated memory.
- ACE_SString (char c, ACE_Allocator *alloc = 0);
-
- /// Default destructor.
- ~ACE_SString (void);
-
- /// Return the <slot'th> character in the string (doesn't perform
- /// bounds checking).
- char operator [] (size_t slot) const;
-
- /// Return the <slot'th> character by reference in the string
- /// (doesn't perform bounds checking).
- char &operator [] (size_t slot);
-
- /// Assignment operator (does copy memory).
- ACE_SString &operator = (const ACE_SString &);
-
- /**
- * Return a substring given an offset and length, if length == -1
- * use rest of str return empty substring if offset or offset/length
- * are invalid
- */
- ACE_SString substring (size_t offset, ssize_t length = -1) const;
-
- /// Same as substring
- ACE_SString substr (size_t offset, ssize_t length = -1) const;
-
- /// Returns a hash value for this string.
- u_long hash (void) const;
-
- /// Return the length of the string.
- size_t length (void) const;
-
- /// Set the underlying pointer. Since this does not copy memory or
- /// delete existing memory use with extreme caution!!!
- void rep (char *s);
-
- /// Get the underlying pointer.
- const char *rep (void) const;
-
- /// Get the underlying pointer.
- const char *fast_rep (void) const;
-
- /// Same as STL String's <c_str> and <fast_rep>.
- const char *c_str (void) const;
-
- /// Comparison operator that will match substrings. Returns the
- /// slot of the first location that matches, else -1.
- int strstr (const ACE_SString &s) const;
-
- /// Find <str> starting at pos. Returns the slot of the first
- /// location that matches (will be >= pos), else npos.
- int find (const ACE_SString &str, int pos = 0) const;
-
- /// Find <s> starting at pos. Returns the slot of the first
- /// location that matches (will be >= pos), else npos.
- int find (const char *s, int pos = 0) const;
-
- /// Find <c> starting at pos. Returns the slot of the first
- /// location that matches (will be >= pos), else npos.
- int find (char c, int pos = 0) const;
-
- /// Find <c> starting at pos (counting from the end). Returns the
- /// slot of the first location that matches, else npos.
- int rfind (char c, int pos = npos) const;
-
- /// Equality comparison operator (must match entire string).
- int operator == (const ACE_SString &s) const;
-
- /// Less than comparison operator.
- int operator < (const ACE_SString &s) const;
-
- /// Greater than comparison operator.
- int operator > (const ACE_SString &s) const;
-
- /// Inequality comparison operator.
- int operator != (const ACE_SString &s) const;
-
- /// Performs a <strcmp>-style comparison.
- int compare (const ACE_SString &s) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Pointer to a memory allocator.
- ACE_Allocator *allocator_;
-
- /// Length of the ACE_SString (not counting the trailing '\0').
- size_t len_;
-
- /// Pointer to data.
- char *rep_;
-};
-
-#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
-ACE_Export ACE_OSTREAM_TYPE &operator << (ACE_OSTREAM_TYPE &, const ACE_SString &);
-#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-
-// This allows one to use W or C String based on the Unicode
-// setting
-#if defined (ACE_USES_WCHAR)
-typedef ACE_WString ACE_TString;
-#else /* ACE_USES_WCHAR */
-typedef ACE_CString ACE_TString;
-#endif /* ACE_USES_WCHAR */
-
-
-// ************************************************************
-
-/**
- * @class ACE_Tokenizer
- *
- * @brief Tokenizer
- *
- * Tokenizes a buffer. Allows application to set delimiters and
- * preserve designators. Does not allow special characters, yet
- * (e.g., printf ("\"like a quoted string\"")).
- */
-class ACE_Export ACE_Tokenizer
-{
-public:
- /**
- * \a buffer will be parsed. Notice that ACE_Tokenizer will modify
- * \a buffer if you use <code> delimiter_replace </code> or <code>
- * preserve_designators </code> to do character substitution.
- * NOTE: You should NOT pass a constant string or string literal
- * to this constructor, since ACE_Tokenizer will try to modify
- * the string.
- * \sa preserve_designators
- * \sa preserve_designators
- */
- ACE_Tokenizer (ACE_TCHAR *buffer);
-
- /**
- * \a d is a delimiter.
- * \return Returns 0 on success, -1 if there is no memory left.
- *
- * <B>Example:</B>
- * \verbatim
- char buf[30];
- ACE_OS::strcpy(buf, "William/Joseph/Hagins");
-
- ACE_Tokenizer tok (buf);
- tok.delimiter ('/');
- for (char *p = tok.next (); p; p = tok.next ())
- cout << p << endl;
- \endverbatim
- *
- * This will print out:
- * \verbatim
- William/Joseph/Hagins
- Joseph/Hagins
- Hagins \endverbatim
- */
- int delimiter (ACE_TCHAR d);
-
- /**
- * \a d is a delimiter and, when found, will be replaced by
- * \a replacement.
- * \return 0 on success, -1 if there is no memory left.
- *
- * <B>Example:</B>
- * \verbatim
- char buf[30];
- ACE_OS::strcpy(buf, "William/Joseph/Hagins");
-
- ACE_Tokenizer tok (buf);
- tok.delimiter_replace ('/', 0);
- for (char *p = tok.next (); p; p = tok.next ())
- cout << p << endl;
- \endverbatim
- *
- * This will print out:
- * \verbatim
- William
- Joseph
- Hagins \endverbatim
- */
- int delimiter_replace (ACE_TCHAR d, ACE_TCHAR replacement);
-
- /**
- * Extract string between a pair of designator characters.
- * For instance, quotes, or '(' and ')'.
- * \a start specifies the begin designator.
- * \a stop specifies the end designator.
- * \a strip If \a strip == 1, then the preserve
- * designators will be stripped from the tokens returned by next.
- * \return 0 on success, -1 if there is no memory left.
- *
- * <B>Example with strip = 0:</B>
- * \verbatim
- char buf[30];
- ACE_OS::strcpy(buf, "William(Joseph)Hagins");
-
- ACE_Tokenizer tok (buf);
- tok.preserve_designators ('(', ')', 0);
- for (char *p = tok.next (); p; p = tok.next ())
- cout << p << endl;
- \endverbatim
- *
- * This will print out:
- * \verbatim
- William(Joseph)Hagins
- (Joseph)Hagins
- )Hagins \endverbatim
- *
- * <B>Example with strip = 1:</B>
- * \verbatim
- char buf[30];
- ACE_OS::strcpy(buf, "William(Joseph)Hagins");
-
- ACE_Tokenizer tok (buf);
- tok.preserve_designators ('(', ')', 1);
- for (char *p = tok.next (); p; p = tok.next ())
- cout << p << endl;
- \endverbatim
- *
- * This will print out:
- * \verbatim
- William
- Joseph
- Hagins \endverbatim
- */
- int preserve_designators (ACE_TCHAR start, ACE_TCHAR stop, int strip=1);
-
- /// Returns the next token.
- ACE_TCHAR *next (void);
-
- enum {
- MAX_DELIMITERS=16,
- MAX_PRESERVES=16
- };
-
-protected:
- /// Returns 1 if <d> is a delimiter, 0 otherwise. If <d> should be
- /// replaced with <r>, <replace> is set to 1, otherwise 0.
- int is_delimiter (ACE_TCHAR d, int &replace, ACE_TCHAR &r);
-
- /**
- * If <start> is a start preserve designator, returns 1 and sets
- * <stop> to the stop designator. Returns 0 if <start> is not a
- * preserve designator.
- */
- int is_preserve_designator (ACE_TCHAR start, ACE_TCHAR &stop, int &strip);
-
- ACE_TCHAR *buffer_;
- int index_;
-
- /**
- * @class Preserve_Entry
- *
- * @brief Preserve Entry
- *
- * Defines a set of characters that designate an area that
- * should not be parsed, but should be treated as a complete
- * token. For instance, in: (this is a preserve region), start
- * would be a left paren -(- and stop would be a right paren
- * -)-. The strip determines whether the designators should be
- * removed from the token.
- */
- class Preserve_Entry
- {
- public:
- /**
- * E.g., "(".
- * E.g., ")".
- * Whether the designators should be removed from the token.
- */
- ACE_TCHAR start_;
- ACE_TCHAR stop_;
- int strip_;
- };
-
- /// The application can specify MAX_PRESERVES preserve designators.
- Preserve_Entry preserves_[MAX_PRESERVES];
-
- /// Pointer to the next free spot in preserves_.
- int preserves_index_;
-
- /**
- * @class Delimiter_Entry
- *
- * @brief Delimiter Entry
- *
- * Describes a delimiter for the tokenizer.
- */
- class Delimiter_Entry
- {
- public:
- /**
- * Most commonly a space ' '.
- * What occurrences of delimiter_ should be replaced with.
- * Whether replacement_ should be used. This should be replaced
- * with a technique that sets replacement_ = delimiter by
- * default. I'll do that next iteration.
- */
- ACE_TCHAR delimiter_;
- ACE_TCHAR replacement_;
- int replace_;
- };
-
- /// The tokenizer allows MAX_DELIMITERS number of delimiters.
- Delimiter_Entry delimiters_[MAX_DELIMITERS];
-
- /// Pointer to the next free space in delimiters_.
- int delimiter_index_;
-};
-
-// ****************************************************************
-
-/**
- * @class ACE_Auto_String_Free
- *
- * @brief Simple class to automatically de-allocate strings
- *
- * Keeps a pointer to a string and deallocates it (using
- * <ACE_OS::free>) on its destructor.
- * If you need to delete using "delete[]" the
- * ACE_Auto_Array_Ptr<char*> is your choice.
- * The class plays the same role as auto_ptr<>
- */
-class ACE_Export ACE_Auto_String_Free
-{
-public:
- ACE_EXPLICIT ACE_Auto_String_Free (char* p = 0);
- ACE_Auto_String_Free (ACE_Auto_String_Free &rhs);
- ACE_Auto_String_Free& operator= (ACE_Auto_String_Free &rhs);
- ~ACE_Auto_String_Free (void);
-
- char* operator* () const;
- char operator[] (int i) const;
- char* get (void) const;
- char* release (void);
- void reset (char* p = 0);
-
-private:
- char* p_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/SString.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_SSTRING_H */
diff --git a/ace/SString.i b/ace/SString.i
deleted file mode 100644
index 2ba1558848b..00000000000
--- a/ace/SString.i
+++ /dev/null
@@ -1,284 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/Malloc_Base.h"
-
-ACE_INLINE
-ACE_NS_WString::ACE_NS_WString (ACE_Allocator *alloc)
- : ACE_WString (alloc)
-{
-}
-
-ACE_INLINE
-ACE_NS_WString::ACE_NS_WString (const ACE_WSTRING_TYPE *s,
- size_t len,
- ACE_Allocator *alloc)
- : ACE_WString (s, len, alloc)
-{
-}
-
-ACE_INLINE
-ACE_NS_WString::ACE_NS_WString (const ACE_WSTRING_TYPE *s,
- ACE_Allocator *alloc)
- : ACE_WString (s, alloc)
-{
-}
-
-ACE_INLINE
-ACE_NS_WString::ACE_NS_WString (size_t len, ACE_Allocator *alloc)
- : ACE_WString (len, 0, alloc)
-{
-}
-
-ACE_INLINE
-ACE_NS_WString::ACE_NS_WString (const ACE_NS_WString &s)
- : ACE_WString (s)
-{
-}
-
-ACE_INLINE
-ACE_NS_WString::ACE_NS_WString (ACE_WSTRING_TYPE c, ACE_Allocator *alloc)
- : ACE_WString (c, alloc)
-{
-}
-
-ACE_INLINE ACE_NS_WString
-operator+ (const ACE_NS_WString &s, const ACE_NS_WString &t)
-{
- ACE_NS_WString temp (s);
- temp += t;
- return temp;
-}
-
-ACE_INLINE
-ACE_SString::~ACE_SString (void)
-{
-}
-
-ACE_INLINE ACE_SString
-ACE_SString::substr (size_t offset,
- ssize_t length) const
-{
- return this->substring (offset, length);
-}
-
-// Return the <slot'th> character in the string.
-
-ACE_INLINE char
-ACE_SString::operator[] (size_t slot) const
-{
- ACE_TRACE ("ACE_SString::operator[]");
- return this->rep_[slot];
-}
-
-// Return the <slot'th> character in the string by reference.
-
-ACE_INLINE char &
-ACE_SString::operator[] (size_t slot)
-{
- ACE_TRACE ("ACE_SString::operator[]");
- return this->rep_[slot];
-}
-
-// Get the underlying pointer (does not make a copy, so beware!).
-
-ACE_INLINE const char *
-ACE_SString::rep (void) const
-{
- ACE_TRACE ("ACE_SString::rep");
- return this->rep_;
-}
-
-// Get the underlying pointer (does not make a copy, so beware!).
-
-ACE_INLINE const char *
-ACE_SString::fast_rep (void) const
-{
- ACE_TRACE ("ACE_SString::fast_rep");
- return this->rep_;
-}
-
-// Get the underlying pointer (does not make a copy, so beware!).
-
-ACE_INLINE const char *
-ACE_SString::c_str (void) const
-{
- ACE_TRACE ("ACE_SString::c_str");
- return this->rep_;
-}
-
-// Comparison operator.
-
-ACE_INLINE int
-ACE_SString::operator== (const ACE_SString &s) const
-{
- ACE_TRACE ("ACE_SString::operator==");
- return this->len_ == s.len_
- && ACE_OS::strcmp (this->rep_, s.rep_) == 0;
-}
-
-// Less than comparison operator.
-
-ACE_INLINE int
-ACE_SString::operator < (const ACE_SString &s) const
-{
- ACE_TRACE ("ACE_SString::operator <");
-
- return (this->rep_ && s.rep_)
- ? ACE_OS::strcmp (this->rep_, s.rep_) < 0
- : ((s.rep_) ? 1 : 0 );
-}
-
-// Greater than comparison operator.
-
-ACE_INLINE int
-ACE_SString::operator > (const ACE_SString &s) const
-{
- ACE_TRACE ("ACE_SString::operator >");
-
- return (this->rep_ && s.rep_)
- ? ACE_OS::strcmp (this->rep_, s.rep_) > 0
- : ((this->rep_) ? 1 : 0 );
-}
-
-// Comparison operator.
-
-ACE_INLINE int
-ACE_SString::operator!= (const ACE_SString &s) const
-{
- ACE_TRACE ("ACE_SString::operator!=");
- return !(*this == s);
-}
-
-ACE_INLINE int
-ACE_SString::compare (const ACE_SString &s) const
-{
- ACE_TRACE ("ACE_SString::compare");
- return ACE_OS::strcmp (this->rep_, s.rep_);
-}
-
-ACE_INLINE int
-ACE_SString::find (const char *s, int pos) const
-{
- char *substr = this->rep_ + pos;
- char *pointer = ACE_OS::strstr (substr, s);
- if (pointer == 0)
- return ACE_SString::npos;
- else
- return pointer - this->rep_;
-}
-
-ACE_INLINE int
-ACE_SString::find (char c, int pos) const
-{
- char *substr = this->rep_ + pos;
- char *pointer = ACE_OS::strchr (substr, c);
- if (pointer == 0)
- return ACE_SString::npos;
- else
- return pointer - this->rep_;
-}
-
-ACE_INLINE int
-ACE_SString::strstr (const ACE_SString &s) const
-{
- ACE_TRACE ("ACE_SString::strstr");
-
- return this->find (s.rep_);
-}
-
-ACE_INLINE int
-ACE_SString::find (const ACE_SString &str, int pos) const
-{
- return this->find (str.rep_, pos);
-}
-
-ACE_INLINE int
-ACE_SString::rfind (char c, int pos) const
-{
- if (pos == ACE_SString::npos)
- pos = ACE_static_cast (int, this->len_);
-
- for (int i = pos - 1; i >= 0; i--)
- if (this->rep_[i] == c)
- return i;
-
- return ACE_SString::npos;
-}
-
-ACE_INLINE u_long
-ACE_SString::hash (void) const
-{
- return ACE::hash_pjw (this->rep_);
-}
-
-ACE_INLINE size_t
-ACE_SString::length (void) const
-{
- ACE_TRACE ("ACE_SString::length");
- return this->len_;
-}
-
-ACE_INLINE
-ACE_Auto_String_Free::ACE_Auto_String_Free (char* p)
- : p_ (p)
-{
-}
-
-ACE_INLINE
-ACE_Auto_String_Free::ACE_Auto_String_Free (ACE_Auto_String_Free& rhs)
- : p_ (rhs.p_)
-{
- rhs.p_ = 0;
-}
-
-ACE_INLINE void
-ACE_Auto_String_Free::reset (char* p)
-{
- if (this->p_ != 0)
- ACE_OS::free (this->p_);
- this->p_ = p;
-}
-
-ACE_INLINE ACE_Auto_String_Free&
-ACE_Auto_String_Free::operator= (ACE_Auto_String_Free& rhs)
-{
- if (this != &rhs)
- {
- this->reset (rhs.p_);
- rhs.p_ = 0;
- }
- return *this;
-}
-
-ACE_INLINE
-ACE_Auto_String_Free::~ACE_Auto_String_Free (void)
-{
- this->reset (0);
-}
-
-ACE_INLINE char*
-ACE_Auto_String_Free::operator* (void) const
-{
- return this->p_;
-}
-
-ACE_INLINE char
-ACE_Auto_String_Free::operator[] (int i) const
-{
- return this->p_[i];
-}
-
-ACE_INLINE char*
-ACE_Auto_String_Free::get (void) const
-{
- return this->p_;
-}
-
-ACE_INLINE char*
-ACE_Auto_String_Free::release (void)
-{
- char* p = this->p_;
- this->p_ = 0;
- return p;
-}
diff --git a/ace/SStringfwd.h b/ace/SStringfwd.h
deleted file mode 100644
index 3bf5693b367..00000000000
--- a/ace/SStringfwd.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file SStringfwd.h
- *
- * $Id$
- *
- * Forward declarations and typedefs of ACE string types.
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- * @author Ossama Othman <ossama@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SSTRINGFWD_H
-#define ACE_SSTRINGFWD_H
-
-#include "ace/pre.h"
-
-#include "ace/Basic_Types.h" /* ACE_WCHAR_T definition */
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-
-template <class T> class ACE_String_Base; // Forward declaration.
-
-typedef ACE_WCHAR_T ACE_WSTRING_TYPE;
-
-typedef ACE_String_Base<char> ACE_CString;
-typedef ACE_String_Base<ACE_WSTRING_TYPE> ACE_WString;
-
-// This allows one to use W or C String based on the Unicode
-// setting
-#if defined (ACE_USES_WCHAR)
-typedef ACE_WString ACE_TString;
-#else /* ACE_USES_WCHAR */
-typedef ACE_CString ACE_TString;
-#endif /* ACE_USES_WCHAR */
-
-#include "ace/post.h"
-
-#endif /* ACE_SSTRINGFWD_H */
diff --git a/ace/SUN_Proactor.cpp b/ace/SUN_Proactor.cpp
deleted file mode 100644
index b3d374d1f12..00000000000
--- a/ace/SUN_Proactor.cpp
+++ /dev/null
@@ -1,313 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/SUN_Proactor.h"
-
-#if defined (ACE_HAS_AIO_CALLS) && defined (sun)
-
-#include "ace/Task_T.h"
-#include "ace/Log_Msg.h"
-#include "ace/Object_Manager.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/SUN_Proactor.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_SUN_Proactor::ACE_SUN_Proactor (size_t max_aio_operations)
- : ACE_POSIX_AIOCB_Proactor (max_aio_operations,
- ACE_POSIX_Proactor::PROACTOR_SUN),
- condition_ (mutex_)
-{
- // To provide correct virtual calls.
- create_notify_manager ();
-
- // we should start pseudo-asynchronous accept task
- // one per all future acceptors
-
- this->get_asynch_pseudo_task ().start ();
-}
-
-// Destructor.
-ACE_SUN_Proactor::~ACE_SUN_Proactor (void)
-{
- this->close ();
-}
-
-int
-ACE_SUN_Proactor::handle_events (ACE_Time_Value &wait_time)
-{
- // Decrement <wait_time> with the amount of time spent in the method
- ACE_Countdown_Time countdown (&wait_time);
- return this->handle_events_i (&wait_time);
-}
-
-int
-ACE_SUN_Proactor::handle_events (void)
-{
- return this->handle_events_i (0);
-}
-
-int ACE_SUN_Proactor::wait_for_start (ACE_Time_Value * abstime)
-{
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1));
-
- if (this->num_started_aio_ != 0) // double check
- return 0;
-
- return this->condition_.wait (abstime);
-
-#else
-
- return 0; // or -1 ???
-
-#endif /* ACE_MT_SAFE */
-}
-
-int
-ACE_SUN_Proactor::handle_events_i (ACE_Time_Value *delta)
-{
- int retval = 0;
- aio_result_t *result = 0;
-
- if (0 == delta)
- {
- if (this->num_started_aio_ == 0)
- this->wait_for_start (0);
-
- result = aiowait (0);
- }
- else
- {
- if (this->num_started_aio_ == 0)
- {
- // Decrement delta with the amount of time spent waiting
- ACE_Countdown_Time countdown (delta);
- ACE_Time_Value tv (*delta);
- tv += ACE_OS::gettimeofday ();
- if (this->wait_for_start (&tv) == -1)
- return -1;
- }
- struct timeval delta_tv = *delta;
- result = aiowait (&delta_tv);
- }
-
- if (result == 0)
- {
- // timeout, do nothing,
- // we should process "post_completed" queue
- }
- else if (ACE_reinterpret_cast (long, result) == -1)
- {
- // Check errno for EINVAL,EAGAIN,EINTR ??
- switch (errno)
- {
- case EINTR : // aiowait() was interrupted by a signal.
- case EINVAL: // there are no outstanding asynchronous I/O requests.
- break; // we should process "post_completed" queue
-
- default: // EFAULT
- ACE_ERROR_RETURN ((LM_ERROR,
- "%N:%l:(%P | %t)::%p \nNumAIO=%d\n",
- "ACE_SUN_Proactor::handle_events: aiowait failed",
- num_started_aio_),
- -1);
- }
- }
- else
- {
- int error_status = 0;
- size_t transfer_count = 0;
-
- ACE_POSIX_Asynch_Result *asynch_result =
- find_completed_aio (result,
- error_status,
- transfer_count);
-
- if (asynch_result != 0)
- {
- // Call the application code.
- this->application_specific_code (asynch_result,
- transfer_count,
- 0, // No completion key.
- error_status); // Error
- retval++;
- }
- }
-
- // process post_completed results
- retval += this->process_result_queue ();
-
- return retval > 0 ? 1 : 0 ;
-
-}
-
-int
-ACE_SUN_Proactor::get_result_status (ACE_POSIX_Asynch_Result* asynch_result,
- int &error_status,
- size_t &transfer_count)
-{
-
- // Get the error status of the aio_ operation.
- error_status = asynch_result->aio_resultp.aio_errno;
- ssize_t op_return = asynch_result->aio_resultp.aio_return;
-
- // ****** from Sun man pages *********************
- // Upon completion of the operation both aio_return and aio_errno
- // are set to reflect the result of the operation.
- // AIO_INPROGRESS is not a value used by the system
- // so the client may detect a change in state
- // by initializing aio_return to this value.
-
- if (error_status == EINPROGRESS || op_return == AIO_INPROGRESS)
- return 0; // not completed
-
- if (op_return < 0)
- transfer_count = 0; // zero bytes transferred
- else
- transfer_count = ACE_static_cast (size_t, op_return);
-
- return 1; // completed
-}
-
-ACE_POSIX_Asynch_Result *
-ACE_SUN_Proactor::find_completed_aio (aio_result_t *result,
- int &error_status,
- size_t &transfer_count)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, 0));
-
- size_t ai;
- error_status = -1;
- transfer_count = 0;
-
- // we call find_completed_aio always with result != 0
-
- for (ai = 0; ai < aiocb_list_max_size_; ai++)
- if (aiocb_list_[ai] != 0 && //check for non zero
- result == &aiocb_list_[ai]->aio_resultp)
- break;
-
- if (ai >= aiocb_list_max_size_) // not found
- return 0; // means somebody else uses aio directly!!!
-
- ACE_POSIX_Asynch_Result *asynch_result = result_list_[ai];
-
- if (this->get_result_status (asynch_result,
- error_status,
- transfer_count) == 0)
- { // should never be
- ACE_ERROR ((LM_ERROR,
- "%N:%l:(%P | %t)::%p\n",
- "ACE_SUN_Proactor::find_completed_aio:"
- "should never be !!!\n"));
- return 0;
- }
-
- aiocb_list_[ai] = 0;
- result_list_[ai] = 0;
- aiocb_list_cur_size_--;
-
- num_started_aio_--;
-
- start_deferred_aio ();
- //make attempt to start deferred AIO
- //It is safe as we are protected by mutex_
-
- return asynch_result;
-}
-
-// start_aio_i has new return codes
-// 0 successful start
-// 1 try later, OS queue overflow
-// -1 invalid request and other errors
-
-int
-ACE_SUN_Proactor::start_aio_i (ACE_POSIX_Asynch_Result *result)
-{
- ACE_TRACE ("ACE_SUN_Proactor::start_aio_i");
-
- int ret_val;
- const ACE_TCHAR *ptype;
-
- // ****** from Sun man pages *********************
- // Upon completion of the operation both aio_return and aio_errno
- // are set to reflect the result of the operation.
- // AIO_INPROGRESS is not a value used by the system
- // so the client may detect a change in state
- // by initializing aio_return to this value.
- result->aio_resultp.aio_return = AIO_INPROGRESS;
- result->aio_resultp.aio_errno = EINPROGRESS;
-
- // Start IO
- switch (result->aio_lio_opcode)
- {
- case LIO_READ :
- ptype = ACE_LIB_TEXT ("read");
- ret_val = aioread (result->aio_fildes,
- (char *) result->aio_buf,
- result->aio_nbytes,
- result->aio_offset,
- SEEK_SET,
- &result->aio_resultp);
- break;
-
- case LIO_WRITE :
- ptype = ACE_LIB_TEXT ("write");
- ret_val = aiowrite (result->aio_fildes,
- (char *) result->aio_buf,
- result->aio_nbytes,
- result->aio_offset,
- SEEK_SET,
- &result->aio_resultp);
- break;
-
- default:
- ptype = ACE_LIB_TEXT ("?????");
- ret_val = -1;
- break;
- }
-
- if (ret_val == 0)
- {
- this->num_started_aio_++;
- if (this->num_started_aio_ == 1) // wake up condition
- this->condition_.broadcast ();
- }
- else // if (ret_val == -1)
- {
- if (errno == EAGAIN || errno == ENOMEM) // Defer - retry this later.
- ret_val = 1;
- else
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:(%P | %t)::start_aio: aio%s %p\n"),
- ptype,
- ACE_LIB_TEXT ("queueing failed\n")));
- }
-
- return ret_val;
-}
-
-int
-ACE_SUN_Proactor::cancel_aiocb (ACE_POSIX_Asynch_Result *result)
-{
- ACE_TRACE ("ACE_SUN_Proactor::cancel_aiocb");
- int rc = ::aiocancel (&result->aio_resultp);
- if (rc == 0) // AIO_CANCELED
- {
- // after aiocancel Sun does not notify us
- // so we should send notification
- // to save POSIX behavoir.
- // Also we should do this for deffered aio's
-
- result->set_error (ECANCELED);
- result->set_bytes_transferred (0);
- this->putq_result (result);
- return 0;
- }
-
- return 2;
-}
-
-#endif /* ACE_HAS_AIO_CALLS && sun */
diff --git a/ace/SUN_Proactor.h b/ace/SUN_Proactor.h
deleted file mode 100644
index 4df6be7a416..00000000000
--- a/ace/SUN_Proactor.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SUN_Proactor.h
- *
- * $Id$
- *
- * @author Alexander Libman <alibman@baltimore.com>
- */
-//=============================================================================
-
-#ifndef ACE_SUN_PROACTOR_H
-#define ACE_SUN_PROACTOR_H
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_AIO_CALLS) && defined (sun)
-
-#include "ace/POSIX_Proactor.h"
-#include /**/ <sys/asynch.h> // Sun native aio calls
-
-/**
- * @class ACE_SUN_Proactor
- *
- * @brief Implementation of the fast and reliable Proactor
- * for SunOS 5.6, 5.7, etc.
- *
- * This proactor, based on <ACE_POSIX_AIOCB_Proactor>,
- * works with Sun native interface for aio calls.
- * POSIX_API Native SUN_API
- * aio_read aioread
- * aio_write aiowrite
- * aio_suspend aiowait
- * aio_error aio_result_t.errno
- * aio_return aio_result_t.return
- * On Solaris, the Sun <aio*()> native implementation is more
- * reliable and efficient than POSIX <aio_*()> implementation.
- * There is a problem of lost RT signals with POSIX, if we start
- * more than SIGQUEUEMAX asynchronous operations at the same
- * time.
- * The Sun <aiocb> it is not the standard POSX <aiocb>, instead,
- * it has the following structure:
- * typedef struct aiocb
- * {
- * int aio_fildes; File descriptor
- * void *aio_buf; buffer location
- * size_t aio_nbytes; length of transfer
- * off_t aio_offset; file offset
- * int aio_reqprio; request priority offset
- * sigevent aio_sigevent; signal number and offset
- * int aio_lio_opcode; listio operation
- * aio_result_t aio_resultp; results
- * int aio_state; state flag for List I/O
- * int aio__pad[1]; extension padding
- * };
- */
-class ACE_Export ACE_SUN_Proactor : public ACE_POSIX_AIOCB_Proactor
-{
-
-public:
- virtual Proactor_Type get_impl_type (void);
-
- /// Destructor.
- virtual ~ACE_SUN_Proactor (void);
-
- /// Constructor defines max number asynchronous operations that can
- /// be started at the same time.
- ACE_SUN_Proactor (size_t max_aio_operations = ACE_AIO_DEFAULT_SIZE);
-
-protected:
- /**
- * Dispatch a single set of events. If <wait_time> elapses before
- * any events occur, return 0. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (ACE_Time_Value &wait_time);
-
- /**
- * Block indefinitely until at least one event is dispatched.
- * Dispatch a single set of events. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (void);
-
- /// Internal completion detection and dispatching.
- int handle_events_i (ACE_Time_Value *delta);
-
- /// Initiate an aio operation.
- virtual int start_aio_i (ACE_POSIX_Asynch_Result *result);
-
- /// Check AIO for completion, error and result status
- /// Return: 1 - AIO completed , 0 - not completed yet
- virtual int get_result_status (ACE_POSIX_Asynch_Result* asynch_result,
- int &error_status,
- size_t &transfer_count);
-
- /// Extract the results of aio.
- ACE_POSIX_Asynch_Result *find_completed_aio (aio_result_t *result,
- int &error_status,
- size_t &transfer_count);
-
- /// From ACE_POSIX_AIOCB_Proactor.
- /// Attempt to cancel running request
- virtual int cancel_aiocb (ACE_POSIX_Asynch_Result *result);
-
- /// Specific Sun aiowait
- int wait_for_start (ACE_Time_Value * abstime);
-
- /// Condition variable .
- /// used to wait the first AIO start
- ACE_SYNCH_CONDITION condition_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/SUN_Proactor.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_AIO_CALLS && sun */
-#endif /* ACE_SUN_PROACTOR_H*/
diff --git a/ace/SUN_Proactor.i b/ace/SUN_Proactor.i
deleted file mode 100644
index 545841223aa..00000000000
--- a/ace/SUN_Proactor.i
+++ /dev/null
@@ -1,8 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_POSIX_Proactor::Proactor_Type ACE_SUN_Proactor::get_impl_type (void)
-{
- return PROACTOR_SUN;
-}
diff --git a/ace/SV_Message.cpp b/ace/SV_Message.cpp
deleted file mode 100644
index fef83458651..00000000000
--- a/ace/SV_Message.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// SV_Message.cpp
-// $Id$
-
-#include "ace/SV_Message.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/SV_Message.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, SV_Message, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SV_Message)
-
-void
-ACE_SV_Message::dump (void) const
-{
- ACE_TRACE ("ACE_SV_Message::dump");
-}
-
diff --git a/ace/SV_Message.h b/ace/SV_Message.h
deleted file mode 100644
index 9cb4e26c0e8..00000000000
--- a/ace/SV_Message.h
+++ /dev/null
@@ -1,64 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file SV_Message.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//==========================================================================
-
-
-#ifndef ACE_SV_MESSAGE_H
-#define ACE_SV_MESSAGE_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_SV_Message
- *
- * @brief Defines the header file for the C++ wrapper for message queues.
- */
-class ACE_Export ACE_SV_Message
-{
-public:
- /// Constructor
- ACE_SV_Message (long type = 0);
-
- /// Destructor
- ~ACE_SV_Message (void);
-
- /// Get the message type.
- long type (void) const;
-
- /// Set the message type.
- void type (long);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Type of the message.
- long type_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/SV_Message.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_SV_MESSAGE_H */
diff --git a/ace/SV_Message.i b/ace/SV_Message.i
deleted file mode 100644
index 8c08e41d151..00000000000
--- a/ace/SV_Message.i
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SV_Message.i
-
-ACE_INLINE
-ACE_SV_Message::ACE_SV_Message (long t)
- : type_ (t)
-{
- ACE_TRACE ("ACE_SV_Message::ACE_SV_Message");
-}
-
-ACE_INLINE
-ACE_SV_Message::~ACE_SV_Message (void)
-{
- ACE_TRACE ("ACE_SV_Message::~ACE_SV_Message");
-}
-
-ACE_INLINE long
-ACE_SV_Message::type (void) const
-{
- ACE_TRACE ("ACE_SV_Message::type");
- return this->type_;
-}
-
-ACE_INLINE void
-ACE_SV_Message::type (long t)
-{
- ACE_TRACE ("ACE_SV_Message::type");
- this->type_ = t;
-}
diff --git a/ace/SV_Message_Queue.cpp b/ace/SV_Message_Queue.cpp
deleted file mode 100644
index d9f924e82eb..00000000000
--- a/ace/SV_Message_Queue.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-// SV_Message_Queue.cpp
-// $Id$
-
-#include "ace/SV_Message_Queue.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SV_Message_Queue.i"
-#endif
-
-ACE_RCSID(ace, SV_Message_Queue, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SV_Message_Queue)
-
-void
-ACE_SV_Message_Queue::dump (void) const
-{
- ACE_TRACE ("ACE_SV_Message_Queue::dump");
-}
-
-ACE_SV_Message_Queue::ACE_SV_Message_Queue (void)
-{
- ACE_TRACE ("ACE_SV_Message_Queue::ACE_SV_Message_Queue");
-}
-
-ACE_SV_Message_Queue::~ACE_SV_Message_Queue (void)
-{
- ACE_TRACE ("ACE_SV_Message_Queue::~ACE_SV_Message_Queue");
-}
-
-ACE_SV_Message_Queue::ACE_SV_Message_Queue (key_t external_id,
- int create,
- int perms)
-{
- ACE_TRACE ("ACE_SV_Message_Queue::ACE_SV_Message_Queue");
- if (this->open (external_id, create, perms) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SV_Message_Queue::ACE_SV_Message_Queue")));
-}
diff --git a/ace/SV_Message_Queue.h b/ace/SV_Message_Queue.h
deleted file mode 100644
index 92055767e3a..00000000000
--- a/ace/SV_Message_Queue.h
+++ /dev/null
@@ -1,98 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file SV_Message_Queue.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@uci.edu>
- */
-//===========================================================================
-
-#ifndef ACE_SV_MESSAGE_QUEUE_H
-#define ACE_SV_MESSAGE_QUEUE_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SV_Message.h"
-
-/**
- * @class ACE_SV_Message_Queue
- *
- * @brief Defines the header file for the C++ wrapper for System V IPC
- * message queues.
- */
-class ACE_Export ACE_SV_Message_Queue
-{
-public:
- // = Useful symbolic constants.
- enum
- {
- ACE_CREATE = IPC_CREAT,
- ACE_OPEN = 0,
- ACE_NOWAIT = IPC_NOWAIT
- };
-
- // = Initialization and termination methods.
- /// Open a message queue using the <external_id>.
- ACE_SV_Message_Queue (void);
- ACE_SV_Message_Queue (key_t external_id,
- int create = ACE_SV_Message_Queue::ACE_OPEN,
- int perms = ACE_DEFAULT_FILE_PERMS);
- int open (key_t external_id,
- int create = ACE_SV_Message_Queue::ACE_OPEN,
- int perms = ACE_DEFAULT_FILE_PERMS);
-
- ~ACE_SV_Message_Queue (void);
-
- /// Close down this instance of the message queue without removing it
- /// from the system.
- int close (void);
-
- /// Close down and remove the message queue from the system.
- int remove (void);
-
- // = Message transfer methods.
- int recv (ACE_SV_Message &mb,
- int length,
- long mtype = 0,
- int mflags = 0);
-
- int send (const ACE_SV_Message &mb,
- int length,
- int mflags = 0);
-
- /// Access the underlying control operations.
- int control (int option, void *arg = 0);
-
- /// Get the underly internal id.
- int get_id (void) const;
-
- /// Set the underly internal id.
- void set_id (int);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Returned from the underlying <msgget> system call.
- int internal_id_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SV_Message_Queue.i"
-#endif
-
-#include "ace/post.h"
-
-#endif /* ACE_SV_MESSAGE_QUEUE_H */
diff --git a/ace/SV_Message_Queue.i b/ace/SV_Message_Queue.i
deleted file mode 100644
index 65c092136f7..00000000000
--- a/ace/SV_Message_Queue.i
+++ /dev/null
@@ -1,78 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SV_Message_Queue.i
-
-#include "ace/SV_Message_Queue.h"
-
-// Open a message queue using the <external_id>.
-
-ASYS_INLINE int
-ACE_SV_Message_Queue::open (key_t external_id, int create, int perms)
-{
- ACE_TRACE ("ACE_SV_Message_Queue::open");
- return this->internal_id_ = ACE_OS::msgget (external_id, create | perms);
-}
-
-// What does it mean to close a message queue?!
-
-ASYS_INLINE int
-ACE_SV_Message_Queue::close (void)
-{
- ACE_TRACE ("ACE_SV_Message_Queue::close");
- this->internal_id_ = -1;
- return 1;
-}
-
-ASYS_INLINE int
-ACE_SV_Message_Queue::control (int option, void *arg)
-{
- ACE_TRACE ("ACE_SV_Message_Queue::control");
- return ACE_OS::msgctl (this->internal_id_, option,
- (msqid_ds *) arg);
-}
-
-ASYS_INLINE int
-ACE_SV_Message_Queue::remove (void)
-{
- ACE_TRACE ("ACE_SV_Message_Queue::remove");
- int result = this->control (IPC_RMID);
- this->internal_id_ = -1;
- return result;
-}
-
-ASYS_INLINE int
-ACE_SV_Message_Queue::get_id (void) const
-{
- ACE_TRACE ("ACE_SV_Message_Queue::get_id");
- return this->internal_id_;
-}
-
-ASYS_INLINE void
-ACE_SV_Message_Queue::set_id (int id)
-{
- ACE_TRACE ("ACE_SV_Message_Queue::set_id");
- this->internal_id_ = id;
-}
-
-ASYS_INLINE int
-ACE_SV_Message_Queue::recv (ACE_SV_Message &mb,
- int length,
- long type,
- int mflags)
-{
- ACE_TRACE ("ACE_SV_Message_Queue::recv");
- return ACE_OS::msgrcv (this->internal_id_, (void *) &mb,
- length, type, mflags);
-}
-
-ASYS_INLINE int
-ACE_SV_Message_Queue::send (const ACE_SV_Message &mb,
- int length,
- int mflags)
-{
- ACE_TRACE ("ACE_SV_Message_Queue::send");
- return ACE_OS::msgsnd (this->internal_id_, (void *) &mb,
- length, mflags);
-}
-
diff --git a/ace/SV_Semaphore_Complex.cpp b/ace/SV_Semaphore_Complex.cpp
deleted file mode 100644
index 4c751da24cb..00000000000
--- a/ace/SV_Semaphore_Complex.cpp
+++ /dev/null
@@ -1,252 +0,0 @@
-// SV_Semaphore_Complex.cpp
-// $Id$
-
-#include "ace/SV_Semaphore_Complex.h"
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SV_Semaphore_Complex.i"
-#endif
-
-ACE_RCSID(ace, SV_Semaphore_Complex, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SV_Semaphore_Complex)
-
-void
-ACE_SV_Semaphore_Complex::dump (void) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::dump");
-}
-
-// initial value of process
-const int ACE_SV_Semaphore_Complex::BIGCOUNT_ = 10000;
-
-// Define the ACE_SV_Semaphore operation arrays for the semop() calls.
-sembuf ACE_SV_Semaphore_Complex::op_lock_[2] =
-{
- {0, 0, 0}, // Wait for [0] (lock) to equal 0
- {0, 1, SEM_UNDO}, // then increment [0] to 1 - this locks it.
- // UNDO to release the lock if processes exit
- // before explicitly unlocking.
-};
-
-sembuf ACE_SV_Semaphore_Complex::op_endcreate_[2] =
-{
- {1, -1, SEM_UNDO}, // Decrement [1] (proc counter) with undo on
- // exit, UNDO to adjust proc counter if
- // process exits before explicitly calling close()
- {0, -1, SEM_UNDO}, // the decrement [0] (lock) back to 0
-};
-
-sembuf ACE_SV_Semaphore_Complex::op_open_[1] =
-{
- {1, -1, SEM_UNDO}, // Decrement [1] (proc counter) with undo on
- // exit.
-};
-
-sembuf ACE_SV_Semaphore_Complex::op_close_[3] =
-{
- {0, 0, 0}, // Wait for [0] (lock) to equal 0
- {0, 1, SEM_UNDO}, // then increment [0] to 1 - this lock it
- {1, 1, SEM_UNDO}, // then increment [1] (proc counter)
-};
-
-sembuf ACE_SV_Semaphore_Complex::op_unlock_[1] =
-{
- {0, -1, SEM_UNDO}, // Decrement [0] (lock) back to 0
-};
-
-// Open or create an array of SV_Semaphores. We return 0 if all is OK, else -1.
-
-int
-ACE_SV_Semaphore_Complex::open (key_t k,
- int create,
- int initial_value,
- u_short nsems,
- int perms)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::open");
- if (k == IPC_PRIVATE)
- return -1;
-
- this->key_ = k;
-
- // Must include a count for the 2 additional semaphores we use
- // internally.
- this->sem_number_ = nsems + 2;
-
- if (create == ACE_SV_Semaphore_Complex::ACE_CREATE)
- {
- int result;
-
- do
- {
- this->internal_id_ = ACE_OS::semget
- (this->key_,
- (u_short) 2 + nsems,
- perms | ACE_SV_Semaphore_Complex::ACE_CREATE);
-
- if (this->internal_id_ == -1)
- return -1; // permission problem or tables full
-
- // When the <ACE_SV_Semaphore_Complex> is created, we know
- // that the value of all 3 members is 0. Get a lock on the
- // <ACE_SV_Semaphore_Complex> by waiting for [0] to equal 0,
- // then increment it.
-
- // There is a race condition here. There is the possibility
- // that between the <semget> above and the <semop> below,
- // another process can call out <close> function which can
- // remove the <ACE_SV_Semaphore> if that process is the last
- // one using it. Therefor we handle the error condition of
- // an invalid <ACE_SV_Semaphore> ID specifically below, and
- // if it does happen, we just go back and create it again.
- result = ACE_OS::semop (this->internal_id_,
- &ACE_SV_Semaphore_Complex::op_lock_[0],
- 2);
- }
- while (result == -1 && (errno == EINVAL || errno == EIDRM));
-
- if (result == -1)
- return -1;
-
- // Get the value of the process counter. If it equals 0, then no
- // one has initialized the ACE_SV_Semaphore yet.
-
- int semval = ACE_SV_Semaphore_Simple::control (GETVAL, 0, 1);
-
- if (semval == -1)
- return this->init ();
- else if (semval == 0)
- {
- // We should initialize by doing a SETALL, but that would
- // clear the adjust value that we set when we locked the
- // ACE_SV_Semaphore above. Instead we do system calls to
- // initialize [1], as well as all the nsems SV_Semaphores.
-
- if (ACE_SV_Semaphore_Simple::control (SETVAL,
- ACE_SV_Semaphore_Complex::BIGCOUNT_,
- 1) == -1)
- return -1;
- else
- for (int i = 0; i < nsems; i++)
- if (this->control (SETVAL, initial_value, i) == -1)
- return -1;
- }
-
- // Decrement the process counter and then release the lock.
- return ACE_OS::semop (this->internal_id_,
- &ACE_SV_Semaphore_Complex::op_endcreate_[0],
- 2);
- }
- else
- {
- this->internal_id_ = ACE_OS::semget (this->key_, 2 + nsems, 0);
- if (this->internal_id_ == -1)
- return -1; // doesn't exist or tables full
-
- // Decrement the process counter. We don't need a lock to do this.
- if (ACE_OS::semop (this->internal_id_,
- &ACE_SV_Semaphore_Complex::op_open_[0], 1) < 0)
- return this->init ();
- return 0;
- }
-}
-
-int
-ACE_SV_Semaphore_Complex::open (const char *name,
- int flags,
- int initial_value,
- u_short nsems,
- int perms)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::open");
- return this->open (ACE_SV_Semaphore_Simple::name_2_key (name),
- flags, initial_value, nsems, perms);
-}
-
-// Close a ACE_SV_Semaphore. Unlike the remove above, this function
-// is for a process to call before it exits, when it is done with the
-// ACE_SV_Semaphore. We "decrement" the counter of processes using
-// the ACE_SV_Semaphore, and if this was the last one, we can remove
-// the ACE_SV_Semaphore.
-
-int
-ACE_SV_Semaphore_Complex::close (void)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::close");
- int semval;
-
- if (this->key_ == (key_t) - 1 || this->internal_id_ == -1)
- return -1;
-
- // The following semop() first gets a lock on the ACE_SV_Semaphore,
- // then increments [1] - the process number.
-
- if (ACE_OS::semop (this->internal_id_,
- &ACE_SV_Semaphore_Complex::op_close_[0],
- 3) == -1)
- return -1;
-
- // Now that we have a lock, read the value of the process counter to
- // see if this is the last reference to the ACE_SV_Semaphore. There
- // is a race condition here - see the comments in create ().
-
- if ((semval = ACE_SV_Semaphore_Simple::control (GETVAL, 0, 1)) == -1)
- return -1;
-
- if (semval > ACE_SV_Semaphore_Complex::BIGCOUNT_)
- return -1;
- else if (semval == ACE_SV_Semaphore_Complex::BIGCOUNT_)
- return this->remove ();
- else
- {
- int result = ACE_OS::semop (this->internal_id_,
- &ACE_SV_Semaphore_Complex::op_unlock_[0], 1);
- this->init ();
- return result;
- }
-}
-
-ACE_SV_Semaphore_Complex::ACE_SV_Semaphore_Complex (key_t k,
- int flags,
- int initial_value,
- u_short nsems,
- int perms)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::ACE_SV_Semaphore_Complex");
- if (this->open (k, flags, initial_value, nsems, perms) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_SV_Semaphore_Complex")));
-}
-
-ACE_SV_Semaphore_Complex::ACE_SV_Semaphore_Complex (const char *name,
- int flags,
- int initial_value,
- u_short nsems,
- int perms)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::ACE_SV_Semaphore_Complex");
-
- key_t key;
-
- if (name == 0)
- key = ACE_DEFAULT_SEM_KEY;
- else
- key = this->name_2_key (name);
-
- if (this->open (key, flags, initial_value, nsems, perms) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_SV_Semaphore_Complex")));
-}
-
-ACE_SV_Semaphore_Complex::~ACE_SV_Semaphore_Complex (void)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::~ACE_SV_Semaphore_Complex");
- if (this->internal_id_ >= 0)
- this->close ();
-}
-
-ACE_SV_Semaphore_Complex::ACE_SV_Semaphore_Complex (void)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::ACE_SV_Semaphore_Complex");
- this->init ();
-}
diff --git a/ace/SV_Semaphore_Complex.h b/ace/SV_Semaphore_Complex.h
deleted file mode 100644
index d89c855cc69..00000000000
--- a/ace/SV_Semaphore_Complex.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file SV_Semaphore_Complex.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SV_SEMAPHORE_COMPLEX_H
-#define ACE_SV_SEMAPHORE_COMPLEX_H
-#include "ace/pre.h"
-
-#include "ace/SV_Semaphore_Simple.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_SV_Semaphore_Complex
- *
- * @brief This is a more complex semaphore wrapper that handles race
- * conditions for initialization correctly...
- *
- * This code is a port to C++, inspired by: W. Richard Stevens
- * from his book: UNIX Network Programming (Prentice Hall, ISBN
- * 0-13-949876-1 - 1990). We provide a simpler and easier to
- * understand interface to the System V Semaphore system calls.
- * We create and use a 2 + n-member set for the requested
- * <ACE_SV_Semaphore_Complex>. The first member, [0], is a
- * counter used to know when all processes have finished with
- * the <ACE_SV_Semaphore_Complex>. The counter is initialized
- * to a large number, decremented on every create or open and
- * incremented on every close. This way we can use the "adjust"
- * feature provided by System V so that any process that exit's
- * without calling <close> is accounted for. It doesn't help us
- * if the last process does this (as we have no way of getting
- * control to remove the <ACE_SV_Semaphore_Complex>) but it
- * will work if any process other than the last does an exit
- * (intentional or unintentional).
- * The second member, [1], of the semaphore is used as a lock
- * variable to avoid any race conditions in the <create> and
- * <close> functions.
- * The members beyond [1] are actual semaphore values in the
- * array of semaphores, which may be sized by the user in the
- * constructor.
- */
-class ACE_Export ACE_SV_Semaphore_Complex : private ACE_SV_Semaphore_Simple
-{
-public:
- enum
- {
- ACE_CREATE = IPC_CREAT,
- ACE_OPEN = 0
- };
-
- // = Initialization and termination methods.
- ACE_SV_Semaphore_Complex (void);
- ACE_SV_Semaphore_Complex (key_t key,
- int create = ACE_SV_Semaphore_Complex::ACE_CREATE,
- int initial_value = 1,
- u_short nsems = 1,
- int perms = ACE_DEFAULT_FILE_PERMS);
- ACE_SV_Semaphore_Complex (const char *name,
- int create = ACE_SV_Semaphore_Complex::ACE_CREATE,
- int initial_value = 1,
- u_short nsems = 1,
- int perms = ACE_DEFAULT_FILE_PERMS);
- ~ACE_SV_Semaphore_Complex (void);
-
- /// Open or create an array of SV_Semaphores. We return 0 if all is
- /// OK, else -1.
- int open (const char *name,
- int flags = ACE_SV_Semaphore_Simple::ACE_CREATE,
- int initial_value = 1,
- u_short nsems = 1,
- int perms = ACE_DEFAULT_FILE_PERMS);
-
- /// Open or create an array of SV_Semaphores. We return 0 if all is
- /// OK, else -1.
- int open (key_t key,
- int flags = ACE_SV_Semaphore_Simple::ACE_CREATE,
- int initial_value = 1,
- u_short nsems = 1,
- int perms = ACE_DEFAULT_FILE_PERMS);
-
- /**
- * Close an ACE_SV_Semaphore. Unlike the <remove> method, this
- * method is for a process to call before it exits, when it is done
- * with the ACE_SV_Semaphore. We "decrement" the counter of
- * processes using the ACE_SV_Semaphore, and if this was the last
- * one, we can remove the ACE_SV_Semaphore.
- */
- int close (void);
-
- // = Semaphore acquire and release methods.
-
- /// Acquire the semaphore.
- int acquire (u_short n = 0, int flags = 0) const;
-
- /// Acquire a semaphore for reading.
- int acquire_read (u_short n = 0, int flags = 0) const;
-
- /// Acquire a semaphore for writing
- int acquire_write (u_short n = 0, int flags = 0) const;
-
- /// Try to acquire the semaphore.
- int tryacquire (u_short n = 0, int flags = 0) const;
-
- /// Try to acquire the semaphore for reading.
- int tryacquire_read (u_short n = 0, int flags = 0) const;
-
- /// Try to acquire the semaphore for writing.
- int tryacquire_write (u_short n = 0, int flags = 0) const;
-
- /// Release the semaphore.
- int release (u_short n = 0, int flags = 0) const;
-
- // = Semaphore operation methods.
- int op (int val, u_short n = 0, int flags = 0) const;
- int op (sembuf op_vec[], u_short n) const;
-
- // = Semaphore control methods.
- int control (int cmd, semun arg, u_short n = 0) const;
- int control (int cmd, int value = 0, u_short n = 0) const;
-
- // = Upgrade access control...
- ACE_USING ACE_SV_Semaphore_Simple::get_id;
- ACE_USING ACE_SV_Semaphore_Simple::remove;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- static const int BIGCOUNT_;
- static sembuf op_lock_[2];
- static sembuf op_endcreate_[2];
- static sembuf op_open_[1];
- static sembuf op_close_[3];
- static sembuf op_unlock_[1];
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SV_Semaphore_Complex.i"
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_SV_SEMAPHORE_COMPLEX_H */
diff --git a/ace/SV_Semaphore_Complex.i b/ace/SV_Semaphore_Complex.i
deleted file mode 100644
index 82ce23bbbef..00000000000
--- a/ace/SV_Semaphore_Complex.i
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SV_Semaphore_Complex.i
-
-#include "ace/Trace.h"
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Complex::acquire (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::acquire");
- return ACE_SV_Semaphore_Simple::acquire ((u_short) n + 2, flags);
-}
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Complex::acquire_read (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::acquire_read");
- return this->acquire (n, flags);
-}
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Complex::acquire_write (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::acquire_write");
- return this->acquire (n, flags);
-}
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Complex::tryacquire (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::tryacquire");
- return ACE_SV_Semaphore_Simple::tryacquire ((u_short) n + 2, flags);
-}
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Complex::tryacquire_read (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::tryacquire_read");
- return this->tryacquire (n, flags);
-}
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Complex::tryacquire_write (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::tryacquire_write");
- return this->tryacquire (n, flags);
-}
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Complex::release (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::release");
- return ACE_SV_Semaphore_Simple::release ((u_short) n + 2, flags);
-}
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Complex::op (int val, u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::op");
- return ACE_SV_Semaphore_Simple::op (val, (u_short) n + 2, flags);
-}
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Complex::op (sembuf op_vec[], u_short n) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::op");
- return ACE_SV_Semaphore_Simple::op (op_vec, (u_short) n + 2);
-}
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Complex::control (int cmd, semun arg, u_short n) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::control");
- return ACE_SV_Semaphore_Simple::control (cmd, arg, (u_short) n + 2);
-}
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Complex::control (int cmd, int value, u_short n) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Complex::control");
- return ACE_SV_Semaphore_Simple::control (cmd, value, (u_short) n + 2);
-}
diff --git a/ace/SV_Semaphore_Simple.cpp b/ace/SV_Semaphore_Simple.cpp
deleted file mode 100644
index b6bd6ca7386..00000000000
--- a/ace/SV_Semaphore_Simple.cpp
+++ /dev/null
@@ -1,212 +0,0 @@
-#include "ace/SV_Semaphore_Simple.h"
-#include "ace/Log_Msg.h"
-#include "ace/ACE.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SV_Semaphore_Simple.i"
-#endif
-
-ACE_RCSID (ace,
- SV_Semaphore_Simple,
- "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE (ACE_SV_Semaphore_Simple)
-
-
-void
-ACE_SV_Semaphore_Simple::dump (void) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::dump");
-}
-
-int
-ACE_SV_Semaphore_Simple::control (int cmd,
- int value,
- u_short semnum) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::control");
- if (this->internal_id_ == -1)
- return -1;
- else
- {
- semun semctl_arg;
-
- semctl_arg.val = value;
- return ACE_OS::semctl (this->internal_id_,
- semnum,
- cmd,
- semctl_arg);
- }
-}
-
-int
-ACE_SV_Semaphore_Simple::init (key_t k, int i)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::init");
- this->key_ = k;
- this->internal_id_ = i;
- return 0;
-}
-
-// General ACE_SV_Semaphore operation. Increment or decrement by a
-// specific amount (positive or negative; amount can`t be zero).
-
-int
-ACE_SV_Semaphore_Simple::op (int val, u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::op");
- sembuf op_op;
-
- op_op.sem_num = n;
- op_op.sem_flg = flags;
-
- if (this->internal_id_ == -1)
- return -1;
- else if ((op_op.sem_op = val) == 0)
- return -1;
- else
- return ACE_OS::semop (this->internal_id_, &op_op, 1);
-}
-
-// Open or create one or more SV_Semaphores. We return 0 if all is
-// OK, else -1.
-
-int
-ACE_SV_Semaphore_Simple::open (key_t k,
- int flags,
- int initial_value,
- u_short n,
- int perms)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::open");
- union semun ivalue;
-
- if (k == IPC_PRIVATE || k == ACE_static_cast (key_t, ACE_INVALID_SEM_KEY))
- return -1;
-
- ivalue.val = initial_value;
- this->key_ = k;
- this->sem_number_ = n;
-
- this->internal_id_ = ACE_OS::semget (this->key_, n, perms | flags);
-
- if (this->internal_id_ == -1)
- return -1;
-
- if (ACE_BIT_ENABLED (flags, IPC_CREAT))
- for (int i = 0; i < n; i++)
- if (ACE_OS::semctl (this->internal_id_, i, SETVAL, ivalue) == -1)
- return -1;
-
- return 0;
-}
-
-ACE_SV_Semaphore_Simple::ACE_SV_Semaphore_Simple (key_t k,
- int flags,
- int initial_value,
- u_short n,
- int perms)
- : key_ (k)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::ACE_SV_Semaphore_Simple");
- if (this->open (k, flags, initial_value, n, perms) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_SV_Semaphore::ACE_SV_Semaphore")));
-}
-
-// Convert name to key. This function is used internally to create keys
-// for the semaphores.
-//
-// The method for generating names is a 32 bit CRC, but still we
-// measured close to collition ratio of nearly 0.1% for
-// ACE::unique_name()-like strings.
-
-key_t
-ACE_SV_Semaphore_Simple::name_2_key (const char *name)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::name_2_key");
-
- if (name == 0)
- {
- errno = EINVAL;
- return ACE_static_cast (key_t, ACE_INVALID_SEM_KEY);
- }
-
- // Basically "hash" the values in the <name>. This won't
- // necessarily guarantee uniqueness of all keys.
- // But (IMHO) CRC32 is good enough for most purposes (Carlos)
-#if defined (ACE_WIN64)
- // The cast below is legit...
-# pragma warning(push)
-# pragma warning(disable : 4312)
-#endif /* ACE_WIN64 */
- return (key_t) ACE::crc32 (name);
-#if defined (ACE_WIN64)
-# pragma warning(pop)
-#endif /* ACE_WIN64 */
-}
-
-// Open or create a ACE_SV_Semaphore. We return 1 if all is OK, else
-// 0.
-
-int
-ACE_SV_Semaphore_Simple::open (const char *name,
- int flags,
- int initial_value,
- u_short n,
- int perms)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::open");
-
- key_t key;
-
- if (name == 0)
- key = ACE_DEFAULT_SEM_KEY;
- else
- key = this->name_2_key (name);
-
- return this->open (key, flags, initial_value, n, perms);
-}
-
-ACE_SV_Semaphore_Simple::ACE_SV_Semaphore_Simple (const char *name,
- int flags,
- int initial_value,
- u_short n,
- int perms)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::ACE_SV_Semaphore_Simple");
- if (this->open (name,
- flags,
- initial_value,
- n,
- perms) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SV_Semaphore_Simple::ACE_SV_Semaphore_Simple")));
-}
-
-ACE_SV_Semaphore_Simple::~ACE_SV_Semaphore_Simple (void)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::~ACE_SV_Semaphore_Simple");
- this->close ();
-}
-
-ACE_SV_Semaphore_Simple::ACE_SV_Semaphore_Simple (void)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::ACE_SV_Semaphore_Simple");
- this->init ();
-}
-
-// Remove all SV_Semaphores associated with a particular key. This
-// call is intended to be called from a server, for example, when it
-// is being shut down, as we do an IPC_RMID on the ACE_SV_Semaphore,
-// regardless of whether other processes may be using it or not. Most
-// other processes should use close() below.
-
-int
-ACE_SV_Semaphore_Simple::remove (void) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::remove");
- int result = this->control (IPC_RMID);
- ((ACE_SV_Semaphore_Simple *) this)->init ();
- return result;
-}
diff --git a/ace/SV_Semaphore_Simple.h b/ace/SV_Semaphore_Simple.h
deleted file mode 100644
index 34cfdd179a0..00000000000
--- a/ace/SV_Semaphore_Simple.h
+++ /dev/null
@@ -1,162 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file SV_Semaphore_Simple.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_SV_SEMAPHORE_SIMPLE_H
-#define ACE_SV_SEMAPHORE_SIMPLE_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_SV_Semaphore_Simple
- *
- * @brief This is a simple semaphore package that assumes there are
- * no race conditions for initialization (i.e., the order of
- * process startup must be well defined).
- */
-class ACE_Export ACE_SV_Semaphore_Simple
-{
-public:
- enum
- {
- ACE_CREATE = IPC_CREAT,
- ACE_EXCL = IPC_EXCL,
- ACE_OPEN = 0
- };
-
- // = Initialization and termination methods.
- ACE_SV_Semaphore_Simple (void);
- ACE_SV_Semaphore_Simple (key_t key,
- int flags = ACE_SV_Semaphore_Simple::ACE_CREATE,
- int initial_value = 1,
- u_short nsems = 1,
- int perms = ACE_DEFAULT_FILE_PERMS);
- ACE_SV_Semaphore_Simple (const char *name,
- int flags = ACE_SV_Semaphore_Simple::ACE_CREATE,
- int initial_value = 1,
- u_short nsems = 1,
- int perms = ACE_DEFAULT_FILE_PERMS);
- ~ACE_SV_Semaphore_Simple (void);
-
- int open (const char *name,
- int flags = ACE_SV_Semaphore_Simple::ACE_CREATE,
- int initial_value = 1,
- u_short nsems = 1,
- int perms = ACE_DEFAULT_FILE_PERMS);
-
- /// Open or create one or more SV_Semaphores. We return 0 if all is
- /// OK, else -1.
- int open (key_t key,
- int flags = ACE_SV_Semaphore_Simple::ACE_CREATE,
- int initial_value = 1,
- u_short nsems = 1,
- int perms = ACE_DEFAULT_FILE_PERMS);
-
- /// Close a ACE_SV_Semaphore, marking it as invalid for subsequent
- /// operations...
- int close (void);
-
- /**
- * Remove all SV_Semaphores associated with a particular key. This
- * call is intended to be called from a server, for example, when it
- * is being shut down, as we do an IPC_RMID on the ACE_SV_Semaphore,
- * regardless of whether other processes may be using it or not.
- * Most other processes should use <close> below.
- */
- int remove (void) const;
-
- // = Semaphore acquire and release methods.
- /**
- * Wait until a ACE_SV_Semaphore's value is greater than 0, the
- * decrement it by 1 and return. Dijkstra's P operation, Tannenbaums
- * DOWN operation.
- */
- int acquire (u_short n = 0, int flags = 0) const;
-
- /// Acquire a semaphore for reading.
- int acquire_read (u_short n = 0, int flags = 0) const;
-
- /// Acquire a semaphore for writing
- int acquire_write (u_short n = 0, int flags = 0) const;
-
- /// Non-blocking version of <acquire>.
- int tryacquire (u_short n = 0, int flags = 0) const;
-
- /// Try to acquire the semaphore for reading.
- int tryacquire_read (u_short n = 0, int flags = 0) const;
-
- /// Try to acquire the semaphore for writing.
- int tryacquire_write (u_short n = 0, int flags = 0) const;
-
- /// Increment ACE_SV_Semaphore by one. Dijkstra's V operation,
- /// Tannenbaums UP operation.
- int release (u_short n = 0, int flags = 0) const;
-
- // = Semaphore operation methods.
- /// General ACE_SV_Semaphore operation. Increment or decrement by a
- /// specific amount (positive or negative; amount can`t be zero).
- int op (int val, u_short semnum = 0, int flags = SEM_UNDO) const;
-
- /// General ACE_SV_Semaphore operation on an array of SV_Semaphores.
- int op (sembuf op_vec[], u_short nsems) const;
-
- // = Semaphore control methods.
- int control (int cmd, semun arg, u_short n = 0) const;
- int control (int cmd, int value = 0, u_short n = 0) const;
-
- /// Get underlying internal id.
- int get_id (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Semaphore key.
- key_t key_;
-
- /// Internal ID to identify the semaphore group within this process.
- int internal_id_;
-
- /// Number of semaphores we're creating.
- int sem_number_;
-
- /**
- * Convert name to key This function is used internally to create
- * keys for the semaphores. A valid name contains letters and
- * digits only and MUST start with a letter.
- *
- * The method for generating names is not very sophisticated, so
- * caller should not pass strings which match each other for the first
- * LUSED characters when he wants to get a different key.
- */
- int init (key_t k = ACE_static_cast (key_t, ACE_INVALID_SEM_KEY),
- int i = -1);
- key_t name_2_key (const char *name);
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/SV_Semaphore_Simple.i"
-#endif
-
-#include "ace/post.h"
-
-#endif /* _SV_SEMAPHORE_SIMPLE_H */
diff --git a/ace/SV_Semaphore_Simple.i b/ace/SV_Semaphore_Simple.i
deleted file mode 100644
index e18acd95a84..00000000000
--- a/ace/SV_Semaphore_Simple.i
+++ /dev/null
@@ -1,106 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SV_Semaphore_Simple.i
-
-#include "ace/Trace.h"
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Simple::control (int cmd,
- semun arg,
- u_short n) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::control");
- return this->internal_id_ == -1 ?
- -1 : ACE_OS::semctl (this->internal_id_, n, cmd, arg);
-}
-
-// Close a ACE_SV_Semaphore, marking it as invalid for subsequent
-// operations...
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Simple::close (void)
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::close");
- return this->init ();
-}
-
-// General ACE_SV_Semaphore operation on an array of SV_Semaphores.
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Simple::op (sembuf op_vec[], u_short n) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::op");
- return this->internal_id_ == -1
- ? -1 : ACE_OS::semop (this->internal_id_, op_vec, n);
-}
-
-// Wait until a ACE_SV_Semaphore's value is greater than 0, the
-// decrement it by 1 and return. Dijkstra's P operation, Tannenbaums
-// DOWN operation.
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Simple::acquire (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::acquire");
- return this->op (-1, n, flags);
-}
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Simple::acquire_read (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::acquire_read");
- return this->acquire (n, flags);
-}
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Simple::acquire_write (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::acquire_write");
- return this->acquire (n, flags);
-}
-
-// Non-blocking version of acquire().
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Simple::tryacquire (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::tryacquire");
- return this->op (-1, n, flags | IPC_NOWAIT);
-}
-
-// Non-blocking version of acquire().
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Simple::tryacquire_read (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::tryacquire_read");
- return this->tryacquire (n, flags);
-}
-
-// Non-blocking version of acquire().
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Simple::tryacquire_write (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::tryacquire_write");
- return this->tryacquire (n, flags);
-}
-
-// Increment ACE_SV_Semaphore by one. Dijkstra's V operation,
-// Tannenbaums UP operation.
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Simple::release (u_short n, int flags) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::release");
- return this->op (1, n, flags);
-}
-
-ASYS_INLINE int
-ACE_SV_Semaphore_Simple::get_id (void) const
-{
- ACE_TRACE ("ACE_SV_Semaphore_Simple::get_id");
- return this->internal_id_;
-}
-
diff --git a/ace/SV_Shared_Memory.cpp b/ace/SV_Shared_Memory.cpp
deleted file mode 100644
index dfa73d99c67..00000000000
--- a/ace/SV_Shared_Memory.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-// SV_Shared_Memory.cpp
-// $Id$
-
-#include "ace/SV_Shared_Memory.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/SV_Shared_Memory.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, SV_Shared_Memory, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SV_Shared_Memory)
-
-void
-ACE_SV_Shared_Memory::dump (void) const
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::dump");
-}
-
-// Creates a shared memory segment of SIZE bytes and *does* attach to
-// this segment.
-
-int
-ACE_SV_Shared_Memory::open_and_attach (key_t external_id,
- size_t sz,
- int create,
- int perms,
- void *virtual_addr,
- int flags)
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::open_and_attach");
- if (this->open (external_id, sz, create, perms) == -1)
- return -1;
- else if (this->attach (virtual_addr, flags) == -1)
- return -1;
- else
- return 0;
-}
-
-// Constructor interface to this->open_and_attach () member function.
-
-ACE_SV_Shared_Memory::ACE_SV_Shared_Memory (key_t external_id,
- size_t sz,
- int create,
- int perms,
- void *virtual_addr,
- int flags)
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::ACE_SV_Shared_Memory");
- if (this->open_and_attach (external_id, sz, create,
- perms, virtual_addr, flags) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SV_Shared_Memory::ACE_SV_Shared_Memory")));
-}
-
-// The "do nothing" constructor.
-
-ACE_SV_Shared_Memory::ACE_SV_Shared_Memory (void)
- : internal_id_ (0),
- size_ (0),
- segment_ptr_ (0)
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::ACE_SV_Shared_Memory");
-}
-
-// Added this constructor to accept an internal id, the one generated
-// when a server constructs with the key IPC_PRIVATE. The client can
-// be passed ACE_SV_Shared_Memory::internal_id via a socket and call
-// this construtor to attach the existing segment. This prevents
-// having to hard-code a key in advance. Courtesy of Marvin Wolfthal
-// (maw@fsg.com).
-
-ACE_SV_Shared_Memory::ACE_SV_Shared_Memory (ACE_HANDLE int_id,
- int flags)
- : internal_id_ (int_id),
- size_ (0)
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::ACE_SV_Shared_Memory");
- if (this->attach (0, flags) == -1)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_SV_Shared_Memory::ACE_SV_Shared_Memory")));
-}
diff --git a/ace/SV_Shared_Memory.h b/ace/SV_Shared_Memory.h
deleted file mode 100644
index c66823c85ae..00000000000
--- a/ace/SV_Shared_Memory.h
+++ /dev/null
@@ -1,116 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file SV_Shared_Memory.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_SV_SHARED_MEMORY_H
-#define ACE_SV_SHARED_MEMORY_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_SV_Shared_Memory
- *
- * @brief This is a wrapper for System V shared memory.
- */
-class ACE_Export ACE_SV_Shared_Memory
-{
-public:
- enum
- {
- ACE_CREATE = IPC_CREAT,
- ACE_OPEN = 0
- };
-
- // = Initialization and termination methods.
- ACE_SV_Shared_Memory (void);
- ACE_SV_Shared_Memory (key_t external_id,
- size_t size,
- int create,
- int perms = ACE_DEFAULT_FILE_PERMS,
- void *virtual_addr = 0,
- int flags = 0);
-
- ACE_SV_Shared_Memory (ACE_HANDLE internal_id,
- int flags = 0);
-
- int open (key_t external_id,
- size_t size,
- int create = ACE_SV_Shared_Memory::ACE_OPEN,
- int perms = ACE_DEFAULT_FILE_PERMS);
-
- int open_and_attach (key_t external_id,
- size_t size,
- int create = ACE_SV_Shared_Memory::ACE_OPEN,
- int perms = ACE_DEFAULT_FILE_PERMS,
- void *virtual_addr = 0,
- int flags = 0);
-
- /// Attach this shared memory segment.
- int attach (void *virtual_addr = 0,
- int flags =0);
-
- /// Detach this shared memory segment.
- int detach (void);
-
- /// Remove this shared memory segment.
- int remove (void);
-
- /// Forward to underlying System V <shmctl>.
- int control (int cmd, void *buf);
-
- // = Segment-related info.
- void *get_segment_ptr (void) const;
- size_t get_segment_size (void) const;
-
- /// Return the ID of the shared memory segment (i.e., an ACE_HANDLE).
- ACE_HANDLE get_id (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- enum
- {
- /// Most restrictive alignment.
- ALIGN_WORDB = 8
- };
-
- /// Internal identifier.
- ACE_HANDLE internal_id_;
-
- /// Size of the mapped segment.
- size_t size_;
-
- /// Pointer to the beginning of the segment.
- void *segment_ptr_;
-
- /// Round up to an appropriate page size.
- size_t round_up (size_t len);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/SV_Shared_Memory.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_SV_SHARED_MEMORY_H */
diff --git a/ace/SV_Shared_Memory.i b/ace/SV_Shared_Memory.i
deleted file mode 100644
index 3e7bf1db6ef..00000000000
--- a/ace/SV_Shared_Memory.i
+++ /dev/null
@@ -1,114 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// SV_Shared_Memory.i
-
-#include "ace/SV_Shared_Memory.h"
-
-ACE_INLINE size_t
-ACE_SV_Shared_Memory::round_up (size_t len)
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::round_up");
- return (len + ACE_SV_Shared_Memory::ALIGN_WORDB - 1) & ~(ACE_SV_Shared_Memory::ALIGN_WORDB - 1);
-}
-
-// Creates a shared memory segment of SIZE bytes. Does *not* attach
-// this memory segment...
-
-ACE_INLINE int
-ACE_SV_Shared_Memory::open (key_t external_id, size_t sz, int create, int perms)
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::open");
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG(perms);
- ACE_UNUSED_ARG(create);
- ACE_UNUSED_ARG(sz);
- ACE_UNUSED_ARG(external_id);
- ACE_NOTSUP_RETURN (-1);
-#else
- this->segment_ptr_ = 0;
- this->size_ = sz;
-
- this->internal_id_ = ACE_OS::shmget (external_id, sz, create | perms);
-
- return this->internal_id_ == -1 ? -1 : 0;
-#endif /* ACE_WIN32 */
-}
-
-// Attachs to the shared memory segment.
-
-ACE_INLINE int
-ACE_SV_Shared_Memory::attach (void *virtual_addr, int flags)
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::attach");
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG(flags);
- ACE_UNUSED_ARG(virtual_addr);
- ACE_NOTSUP_RETURN (-1);
-#else
- this->segment_ptr_ = ACE_OS::shmat (this->internal_id_, virtual_addr, flags);
- return this->segment_ptr_ == (void *) -1 ? -1 : 0;
-#endif /* ACE_WIN32 */
-}
-
-// Interface to the underlying shared memory control function.
-
-ACE_INLINE int
-ACE_SV_Shared_Memory::control (int cmd, void *buf)
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::control");
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG(cmd);
- ACE_UNUSED_ARG(buf);
-
- ACE_NOTSUP_RETURN (-1);
-#else
- return ACE_OS::shmctl (this->internal_id_, cmd, (struct shmid_ds *) buf);
-#endif /* ACE_WIN32 */
-}
-
-// The overall size of the segment.
-
-ACE_INLINE size_t
-ACE_SV_Shared_Memory::get_segment_size (void) const
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::get_segment_size");
- return this->size_;
-}
-
-// Removes the shared memory segment.
-
-ACE_INLINE int
-ACE_SV_Shared_Memory::remove (void)
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::remove");
-#if defined (ACE_WIN32)
- ACE_NOTSUP_RETURN (-1);
-#else
- return ACE_OS::shmctl (this->internal_id_, IPC_RMID, 0);
-#endif /* ACE_WIN32 */
-}
-
-// Detach the current binding between this->segment_ptr and the shared
-// memory segment.
-
-ACE_INLINE int
-ACE_SV_Shared_Memory::detach (void)
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::detach");
- return ACE_OS::shmdt (this->segment_ptr_);
-}
-
-ACE_INLINE void *
-ACE_SV_Shared_Memory::get_segment_ptr (void) const
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::get_segment_ptr");
- return this->segment_ptr_;
-}
-
-ACE_INLINE ACE_HANDLE
-ACE_SV_Shared_Memory::get_id (void) const
-{
- ACE_TRACE ("ACE_SV_Shared_Memory::get_id");
- return this->internal_id_;
-}
diff --git a/ace/Sample_History.cpp b/ace/Sample_History.cpp
deleted file mode 100644
index 38bc4507776..00000000000
--- a/ace/Sample_History.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-// $Id$
-
-#include "ace/Sample_History.h"
-#include "ace/Basic_Stats.h"
-#include "ace/Log_Msg.h"
-#include "ace/OS.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Sample_History.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Sample_History, "$Id$")
-
-ACE_Sample_History::ACE_Sample_History (size_t max_samples)
- : max_samples_ (max_samples)
- , sample_count_ (0)
-{
- ACE_NEW(this->samples_, ACE_UINT64[this->max_samples_]);
-}
-
-ACE_Sample_History::~ACE_Sample_History (void)
-{
- delete[] this->samples_;
-}
-
-size_t
-ACE_Sample_History::max_samples (void) const
-{
- return this->max_samples_;
-}
-
-size_t
-ACE_Sample_History::sample_count (void) const
-{
- return this->sample_count_;
-}
-
-void
-ACE_Sample_History::dump_samples (const ACE_TCHAR *msg,
- ACE_UINT32 scale_factor) const
-{
- for (size_t i = 0; i != this->sample_count_; ++i)
- {
- ACE_UINT64 x = this->samples_[i] / scale_factor;
- ACE_UINT32 val = ACE_CU64_TO_CU32 (x);
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT("%s: %d %u\n"), msg, i, val));
- }
-}
-
-void
-ACE_Sample_History::collect_basic_stats (ACE_Basic_Stats &stats) const
-{
- for (size_t i = 0; i != this->sample_count_; ++i)
- {
- stats.sample (this->samples_[i]);
- }
-}
diff --git a/ace/Sample_History.h b/ace/Sample_History.h
deleted file mode 100644
index d2b0d03d929..00000000000
--- a/ace/Sample_History.h
+++ /dev/null
@@ -1,86 +0,0 @@
-
-//=============================================================================
-/**
- * @file Sample_History.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_SAMPLE_HISTORY_H
-#define ACE_SAMPLE_HISTORY_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-#include "ace/Basic_Types.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_Basic_Stats;
-
-/// Save multiple samples in an array
-/**
- * Save multiple samples (usually latency numbers), into an array, and
- * later print them in several formats.
- */
-class ACE_Export ACE_Sample_History
-{
-public:
- /// Constructor
- /**
- * The number of samples is pre-allocated, and cannot changes once
- * the class is initialized.
- */
- ACE_Sample_History (size_t max_samples);
-
- /// Destructor
- ~ACE_Sample_History (void);
-
- /// Record one sample.
- /**
- * Return 0 on success, -1 if the sample could not be stored
- */
- int sample (ACE_UINT64 value);
-
- /// Returns the maximum number of samples
- size_t max_samples (void) const;
-
- /// Returns the current number of samples
- size_t sample_count (void) const;
-
- /// Dump all the samples
- /**
- * Prints out all the samples, using @a msg as a prefix for each
- * message.
- */
- void dump_samples (const ACE_TCHAR *msg,
- ACE_UINT32 scale_factor) const;
-
- /// Collect the summary for all the samples
- void collect_basic_stats (ACE_Basic_Stats &) const;
-
- /// Get a sample
- ACE_UINT64 get_sample (size_t i) const;
-
-private:
- /// The maximum number of samples
- size_t max_samples_;
-
- /// The current number of samples
- size_t sample_count_;
-
- /// The samples
- ACE_UINT64 *samples_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Sample_History.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_SAMPLE_HISTORY_H */
diff --git a/ace/Sample_History.inl b/ace/Sample_History.inl
deleted file mode 100644
index e3882a28bc3..00000000000
--- a/ace/Sample_History.inl
+++ /dev/null
@@ -1,20 +0,0 @@
-// $Id$
-
-ACE_INLINE int
-ACE_Sample_History::sample (ACE_UINT64 value)
-{
- if (this->sample_count_ >= this->max_samples_)
- return -1;
-
- this->samples_[this->sample_count_++] = value;
- return 0;
-}
-
-ACE_INLINE ACE_UINT64
-ACE_Sample_History::get_sample (size_t i) const
-{
- if (this->sample_count_ <= i)
- return 0;
-
- return this->samples_[i];
-}
diff --git a/ace/Sched_Params.cpp b/ace/Sched_Params.cpp
deleted file mode 100644
index 0dd45f79fd1..00000000000
--- a/ace/Sched_Params.cpp
+++ /dev/null
@@ -1,321 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE
-//
-// = FILENAME
-// Sched_Params.cpp
-//
-// = CREATION DATE
-// 28 January 1997
-//
-// = AUTHOR
-// David Levine
-//
-// ============================================================================
-
-#include "ace/Sched_Params.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Sched_Params.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Sched_Params, "$Id$")
-
-int
-ACE_Sched_Params::priority_min (const Policy policy,
- const int scope)
-{
-#if defined (ACE_HAS_PRIOCNTL) && defined (ACE_HAS_STHREADS)
- ACE_UNUSED_ARG (scope);
-
- // Assume that ACE_SCHED_OTHER indicates TS class, and that other
- // policies indicate RT class.
-
- // Call ACE_OS::priority_control only for processes (lightweight
- // or otherwise). Calling ACE_OS::priority_control for thread
- // priorities gives incorrect results.
- if (scope == ACE_SCOPE_PROCESS || scope == ACE_SCOPE_LWP)
- {
- if (policy == ACE_SCHED_OTHER)
- {
- // Get the priority class ID and attributes.
- pcinfo_t pcinfo;
- // The following is just to avoid Purify warnings about unitialized
- // memory reads.
- ACE_OS::memset (&pcinfo, 0, sizeof pcinfo);
- ACE_OS::strcpy (pcinfo.pc_clname, "TS");
-
- if (ACE_OS::priority_control (P_ALL /* ignored */,
- P_MYID /* ignored */,
- PC_GETCID,
- (char *) &pcinfo) == -1)
- // Just hope that priority range wasn't configured from -1
- // .. 1
- return -1;
-
- // OK, now we've got the class ID in pcinfo.pc_cid. In
- // addition, the maximum configured time-share priority is in
- // ((tsinfo_t *) pcinfo.pc_clinfo)->ts_maxupri. The minimum
- // priority is just the negative of that.
-
- return -((tsinfo_t *) pcinfo.pc_clinfo)->ts_maxupri;
- }
- else
- return 0;
- }
- else
- {
- // Here we handle the case for ACE_SCOPE_THREAD. Calling
- // ACE_OS::priority_control for thread scope gives incorrect
- // results.
- switch (policy)
- {
- case ACE_SCHED_FIFO:
- return ACE_THR_PRI_FIFO_MIN;
- case ACE_SCHED_RR:
- return ACE_THR_PRI_RR_MIN;
- case ACE_SCHED_OTHER:
- default:
- return ACE_THR_PRI_OTHER_MIN;
- }
- }
-#elif defined (ACE_HAS_PTHREADS) && !defined(ACE_LACKS_SETSCHED)
-
- switch (scope)
- {
- case ACE_SCOPE_THREAD:
- switch (policy)
- {
- case ACE_SCHED_FIFO:
- return ACE_THR_PRI_FIFO_MIN;
- case ACE_SCHED_RR:
- return ACE_THR_PRI_RR_MIN;
-#if !defined (CHORUS) // SCHED_OTHRE and SCHED_RR have same value
- case ACE_SCHED_OTHER:
-#endif /* CHORUS */
- default:
- return ACE_THR_PRI_OTHER_MIN;
- }
-
- case ACE_SCOPE_PROCESS:
- default:
- switch (policy)
- {
- case ACE_SCHED_FIFO:
- return ACE_PROC_PRI_FIFO_MIN;
- case ACE_SCHED_RR:
- return ACE_PROC_PRI_RR_MIN;
-#if !defined (CHORUS) // SCHED_OTHRE and SCHED_RR have same value
- case ACE_SCHED_OTHER:
-#endif /* CHORUS */
- default:
- return ACE_PROC_PRI_OTHER_MIN;
- }
- }
-
-#elif defined (ACE_HAS_WTHREADS)
- ACE_UNUSED_ARG (policy);
- ACE_UNUSED_ARG (scope);
- return THREAD_PRIORITY_IDLE;
-#elif defined (VXWORKS)
- ACE_UNUSED_ARG (policy);
- ACE_UNUSED_ARG (scope);
- return 255;
-#else
- ACE_UNUSED_ARG (policy);
- ACE_UNUSED_ARG (scope);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_PRIOCNTL && defined (ACE_HAS_STHREADS) */
-}
-
-int
-ACE_Sched_Params::priority_max (const Policy policy,
- const int scope)
-{
-#if defined (ACE_HAS_PRIOCNTL) && defined (ACE_HAS_STHREADS)
- ACE_UNUSED_ARG (scope);
-
- // Call ACE_OS::priority_control only for processes (lightweight
- // or otherwise). Calling ACE_OS::priority_control for thread
- // priorities gives incorrect results.
- if (scope == ACE_SCOPE_PROCESS || scope == ACE_SCOPE_LWP)
- {
- // Assume that ACE_SCHED_OTHER indicates TS class, and that other
- // policies indicate RT class.
-
- // Get the priority class ID and attributes.
- pcinfo_t pcinfo;
- // The following is just to avoid Purify warnings about unitialized
- // memory reads.
- ACE_OS::memset (&pcinfo, 0, sizeof pcinfo);
- ACE_OS::strcpy (pcinfo.pc_clname,
- policy == ACE_SCHED_OTHER ? "TS" : "RT");
-
- if (ACE_OS::priority_control (P_ALL /* ignored */,
- P_MYID /* ignored */,
- PC_GETCID,
- (char *) &pcinfo) == -1)
- return -1;
-
- // OK, now we've got the class ID in pcinfo.pc_cid. In addition,
- // the maximum configured real-time priority is in ((rtinfo_t *)
- // pcinfo.pc_clinfo)->rt_maxpri, or similarly for the TS class.
-
- return policy == ACE_SCHED_OTHER
- ? ((tsinfo_t *) pcinfo.pc_clinfo)->ts_maxupri
- : ((rtinfo_t *) pcinfo.pc_clinfo)->rt_maxpri;
- }
- else
- {
- // Here we handle the case for ACE_SCOPE_THREAD. Calling
- // ACE_OS::priority_control for thread scope gives incorrect
- // results.
- switch (policy)
- {
- case ACE_SCHED_FIFO:
- return ACE_THR_PRI_FIFO_MAX;
- case ACE_SCHED_RR:
- return ACE_THR_PRI_RR_MAX;
- case ACE_SCHED_OTHER:
- default:
- return ACE_THR_PRI_OTHER_MAX;
- }
- }
-#elif defined(ACE_HAS_PTHREADS) && !defined(ACE_LACKS_SETSCHED)
-
- switch (scope)
- {
- case ACE_SCOPE_THREAD:
- switch (policy)
- {
- case ACE_SCHED_FIFO:
- return ACE_THR_PRI_FIFO_MAX;
- case ACE_SCHED_RR:
- return ACE_THR_PRI_RR_MAX;
-#if !defined (CHORUS) // SCHED_OTHRE and SCHED_RR have same value
- case ACE_SCHED_OTHER:
-#endif /* CHORUS */
- default:
- return ACE_THR_PRI_OTHER_MAX;
- }
-
- case ACE_SCOPE_PROCESS:
- default:
- switch (policy)
- {
- case ACE_SCHED_FIFO:
- return ACE_PROC_PRI_FIFO_MAX;
- case ACE_SCHED_RR:
- return ACE_PROC_PRI_RR_MAX;
-#if !defined (CHORUS) // SCHED_OTHRE and SCHED_RR have same value
- case ACE_SCHED_OTHER:
-#endif /* CHORUS */
- default:
- return ACE_PROC_PRI_OTHER_MAX;
- }
- }
-
-#elif defined (ACE_HAS_WTHREADS)
- ACE_UNUSED_ARG (policy);
- ACE_UNUSED_ARG (scope);
- return THREAD_PRIORITY_TIME_CRITICAL;
-#elif defined (VXWORKS)
- ACE_UNUSED_ARG (policy);
- ACE_UNUSED_ARG (scope);
- return 0;
-#else
- ACE_UNUSED_ARG (policy);
- ACE_UNUSED_ARG (scope);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_PRIOCNTL && defined (ACE_HAS_STHREADS) */
-}
-
-int
-ACE_Sched_Params::next_priority (const Policy policy,
- const int priority,
- const int scope)
-{
-#if defined (VXWORKS)
- return priority > priority_max (policy, scope)
- ? priority - 1
- : priority_max (policy, scope);
-#elif defined (ACE_HAS_WTHREADS)
- ACE_UNUSED_ARG (policy);
- ACE_UNUSED_ARG (scope);
- switch (priority)
- {
- case THREAD_PRIORITY_IDLE:
- return THREAD_PRIORITY_LOWEST;
- case THREAD_PRIORITY_LOWEST:
- return THREAD_PRIORITY_BELOW_NORMAL;
- case THREAD_PRIORITY_BELOW_NORMAL:
- return THREAD_PRIORITY_NORMAL;
- case THREAD_PRIORITY_NORMAL:
- return THREAD_PRIORITY_ABOVE_NORMAL;
- case THREAD_PRIORITY_ABOVE_NORMAL:
- return THREAD_PRIORITY_HIGHEST;
- case THREAD_PRIORITY_HIGHEST:
- return THREAD_PRIORITY_TIME_CRITICAL;
- case THREAD_PRIORITY_TIME_CRITICAL:
- return THREAD_PRIORITY_TIME_CRITICAL;
- default:
- return priority; // unknown priority: should never get here
- }
-#elif defined(ACE_HAS_THREADS) && !defined(ACE_LACKS_SETSCHED)
- // including STHREADS, and PTHREADS
- const int max = priority_max (policy, scope);
- return priority < max ? priority + 1 : max;
-#else
- ACE_UNUSED_ARG (policy);
- ACE_UNUSED_ARG (scope);
- ACE_UNUSED_ARG (priority);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
-
-int
-ACE_Sched_Params::previous_priority (const Policy policy,
- const int priority,
- const int scope)
-{
-#if defined (VXWORKS)
- return priority < priority_min (policy, scope)
- ? priority + 1
- : priority_min (policy, scope);
-#elif defined (ACE_HAS_WTHREADS)
- ACE_UNUSED_ARG (policy);
- ACE_UNUSED_ARG (scope);
- switch (priority)
- {
- case THREAD_PRIORITY_IDLE:
- return THREAD_PRIORITY_IDLE;
- case THREAD_PRIORITY_LOWEST:
- return THREAD_PRIORITY_IDLE;
- case THREAD_PRIORITY_BELOW_NORMAL:
- return THREAD_PRIORITY_LOWEST;
- case THREAD_PRIORITY_NORMAL:
- return THREAD_PRIORITY_BELOW_NORMAL;
- case THREAD_PRIORITY_ABOVE_NORMAL:
- return THREAD_PRIORITY_NORMAL;
- case THREAD_PRIORITY_HIGHEST:
- return THREAD_PRIORITY_ABOVE_NORMAL;
- case THREAD_PRIORITY_TIME_CRITICAL:
- return THREAD_PRIORITY_HIGHEST;
- default:
- return priority; // unknown priority: should never get here
- }
-#elif defined (ACE_HAS_THREADS) && !defined(ACE_LACKS_SETSCHED)
- // including STHREADS and PTHREADS
- const int min = priority_min (policy, scope);
-
- return priority > min ? priority - 1 : min;
-#else
- ACE_UNUSED_ARG (policy);
- ACE_UNUSED_ARG (scope);
- ACE_UNUSED_ARG (priority);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_THREADS */
-}
diff --git a/ace/Sched_Params.h b/ace/Sched_Params.h
deleted file mode 100644
index deef4a50eb1..00000000000
--- a/ace/Sched_Params.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Sched_Params.h
- *
- * $Id$
- *
- * @author David Levine <levine@cs.wustl.edu>
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SCHED_PARAMS_H
-#define ACE_SCHED_PARAMS_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Sched_Params
- *
- * @brief Container for scheduling-related parameters.
- *
- * ACE_Sched_Params are passed via <ACE_OS::sched_params> to the
- * OS to specify scheduling parameters. These parameters include
- * scheduling policy, such as FIFO (ACE_SCHED_FIFO), round-robin
- * (ACE_SCHED_RR), or an implementation-defined "OTHER"
- * (ACE_SCHED_OTHER), to which many systems default; priority;
- * and a time-slice quantum for round-robin scheduling. A
- * "scope" parameter specifies whether the ACE_Sched_Params
- * applies to the current process, current lightweight process
- * (LWP) (on Solaris), or current thread. Please see the "NOTE"
- * below about not all combinations of parameters being legal on
- * a particular platform.
- * For the case of thread priorities, it is intended that
- * <ACE_OS::sched_params> usually be called from <main> before
- * any threads have been spawned. If spawned threads inherit
- * their parent's priority (I think that's the default behavior
- * for all of our platforms), then this sets the default base
- * priority. Individual thread priorities can be adjusted as
- * usual using <ACE_OS::thr_prio> or via the ACE_Thread
- * interface. See the parameter descriptions in the private:
- * section below.
- * NOTE: this class does not do any checking of parameters. It
- * is just a container class. If it is constructed with values
- * that are not supported on a platform, the call to
- * <ACE_OS::sched_params> will fail by returning -1 with EINVAL
- * (available through <ACE_OS::last_error>).
- */
-class ACE_Export ACE_Sched_Params
-{
- // NOTE: Solaris 2.5.x threads in the RT class must set the
- // priority of their LWP. The only way to do that through ACE is
- // for the RT thread itself to call <ACE_OS::thr_setprio> with
- // it's own priority.
-
- // OS Scheduling parameters are complicated and often confusing.
- // Many thanks to Thilo Kielmann
- // <kielmann@informatik.uni-siegen.de> for his careful review of
- // this class design, thoughtful comments, and assistance with
- // implementation, especially for PTHREADS platforms. Please
- // send any comments or corrections to the ACE developers.
-public:
- typedef int Policy;
-
- // = Initialization and termination methods.
- /// Constructor.
- ACE_Sched_Params (const Policy policy,
- const ACE_Sched_Priority priority,
- const int scope = ACE_SCOPE_THREAD,
- const ACE_Time_Value &quantum = ACE_Time_Value::zero);
-
- /// Termination.
- ~ACE_Sched_Params (void);
-
- // = Get/Set methods:
-
- // = Get/Set policy
- Policy policy (void) const;
- void policy (const Policy);
-
- // = Get/Set priority.
- ACE_Sched_Priority priority (void) const;
- void priority (const ACE_Sched_Priority);
-
- // = Get/Set scope.
- int scope (void) const;
- void scope(const int);
-
- // = Get/Set quantum.
- const ACE_Time_Value &quantum (void) const;
- void quantum (const ACE_Time_Value &);
-
- // = Accessors for OS-specific priorities.
- // These return priority values for ACE_SCHED_OTHER if the Policy value
- // is invalid.
- static int priority_min (const Policy,
- const int scope = ACE_SCOPE_THREAD);
- static int priority_max (const Policy,
- const int scope = ACE_SCOPE_THREAD);
-
- /**
- * The next higher priority. "Higher" refers to scheduling priority,
- * not to the priority value itself. (On some platforms, higher scheduling
- * priority is indicated by a lower priority value.) If "priority" is
- * already the highest priority (for the specified policy), then it is
- * returned.
- */
- static int next_priority (const Policy,
- const int priority,
- const int scope = ACE_SCOPE_THREAD);
-
- /**
- * The previous, lower priority. "Lower" refers to scheduling priority,
- * not to the priority value itself. (On some platforms, lower scheduling
- * priority is indicated by a higher priority value.) If "priority" is
- * already the lowest priority (for the specified policy), then it is
- * returned.
- */
- static int previous_priority (const Policy,
- const int priority,
- const int scope = ACE_SCOPE_THREAD);
-
-private:
- /// Scheduling policy.
- Policy policy_;
-
- /// Default <priority_>: for setting the priority for the process, LWP,
- /// or thread, as indicated by the scope_ parameter.
- ACE_Sched_Priority priority_;
-
- /**
- * <scope_> must be one of the following:
- * ACE_SCOPE_PROCESS: sets the scheduling policy for the
- * process, and the process priority. On some platforms,
- * such as Win32, the scheduling policy can _only_ be
- * set at process scope.
- * ACE_SCOPE_LWP: lightweight process scope, only used with
- * Solaris threads.
- * ACE_SCOPE_THREAD: sets the scheduling policy for the thread,
- * if the OS supports it, such as with Posix threads, and the
- * thread priority.
- * NOTE: I don't think that these are the same as POSIX
- * contention scope. POSIX users who are interested in,
- * and understand, contention scope will have to set it
- * by using system calls outside of ACE.
- */
- int scope_;
-
- /**
- * The <quantum_> is for time slicing. An ACE_Time_Value of 0 has
- * special significance: it means time-slicing is disabled; with
- * that, a thread that is running on a CPU will continue to run
- * until it blocks or is preempted. Currently ignored if the OS
- * doesn't directly support time slicing, such as on VxWorks, or
- * setting the quantum (can that be done on Win32?).
- */
- ACE_Time_Value quantum_;
-};
-
-/**
- * @class ACE_Sched_Priority_Iterator
- *
- * @brief An iterator over the OS-defined scheduling priorities.
- *
- * The order of priorities (numeric value vs. importance) is OS
- * dependant, it can be the case that the priorities are not even
- * contigous. This class permits iteration over priorities using
- * the iterator pattern.
- */
-class ACE_Export ACE_Sched_Priority_Iterator
-{
-public:
- /// Initialize the iterator, the arguments define the scheduling
- /// policy and scope for the priorities (see ACE_Sched_Param).
- ACE_Sched_Priority_Iterator (const ACE_Sched_Params::Policy &policy,
- int scope = ACE_SCOPE_THREAD);
-
- /// Default dtor.
- ~ACE_Sched_Priority_Iterator (void);
-
- /// Check if there are more priorities.
- int more (void) const;
-
- /// Return the current priority.
- int priority (void) const;
-
- /// Move to the next priority.
- /// The iteration is from lowest to highest importance.
- void next (void);
-
- /// Accessor for the scheduling policy over which we are iterating.
- const ACE_Sched_Params::Policy &policy (void) const;
-
- /// Accessor for the scheduling
- int scope (void) const;
-
-private:
- /// The Scheduling policy (FIFO, RR, etc.) and scheduling scope
- /// (PROCESS, SYSTEM) we are iterating on.
- ACE_Sched_Params::Policy policy_;
- int scope_;
-
- /// The current priority.
- int priority_;
-
- /**
- * This is set to 1 when there are no more priorities. Cannot easily
- * compare against the highest priority on platforms were priorities
- * are non-contigous or descending.
- */
- int done_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Sched_Params.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_SCHED_PARAMS_H */
diff --git a/ace/Sched_Params.i b/ace/Sched_Params.i
deleted file mode 100644
index 041f9cb1648..00000000000
--- a/ace/Sched_Params.i
+++ /dev/null
@@ -1,136 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE
-//
-// = FILENAME
-// Sched_Params.i
-//
-// = CREATION DATE
-// 28 January 1997
-//
-// = AUTHOR
-// David Levine
-//
-// ============================================================================
-
-ACE_INLINE
-ACE_Sched_Params::ACE_Sched_Params (
- const Policy policy,
- const ACE_Sched_Priority priority,
- const int scope,
- const ACE_Time_Value &quantum)
- : policy_ (policy),
- priority_ (priority),
- scope_ (scope),
- quantum_ (quantum)
-{
-}
-
-ACE_INLINE ACE_Sched_Params::~ACE_Sched_Params (void)
-{
-}
-
-ACE_INLINE ACE_Sched_Params::Policy
-ACE_Sched_Params::policy (void) const
-{
- return this->policy_;
-}
-
-ACE_INLINE void
-ACE_Sched_Params::policy (const ACE_Sched_Params::Policy policy)
-{
- this->policy_ = policy;
-}
-
-ACE_INLINE ACE_Sched_Priority
-ACE_Sched_Params::priority (void) const
-{
- return this->priority_;
-}
-
-ACE_INLINE void
-ACE_Sched_Params::priority (const ACE_Sched_Priority priority)
-{
- this->priority_ = priority;
-}
-
-ACE_INLINE int
-ACE_Sched_Params::scope (void) const
-{
- return this->scope_;
-}
-
-ACE_INLINE void
-ACE_Sched_Params::scope (const int scope)
-{
- this->scope_ = scope;
-}
-
-ACE_INLINE const ACE_Time_Value &
-ACE_Sched_Params::quantum (void) const
-{
- return this->quantum_;
-}
-
-ACE_INLINE void
-ACE_Sched_Params::quantum (const ACE_Time_Value &quant)
-{
- this->quantum_ = quant;
-}
-
-ACE_INLINE const ACE_Sched_Params::Policy &
-ACE_Sched_Priority_Iterator::policy (void) const
-{
- return this->policy_;
-}
-
-ACE_INLINE int
-ACE_Sched_Priority_Iterator::scope (void) const
-{
- return this->scope_;
-}
-
-ACE_INLINE
-ACE_Sched_Priority_Iterator::ACE_Sched_Priority_Iterator (const ACE_Sched_Params::Policy &policy,
- int scope)
- : policy_ (policy),
- scope_ (scope),
- priority_ (0),
- done_ (0)
-{
- priority_ = ACE_Sched_Params::priority_min (this->policy (), this->scope ());
-}
-
-ACE_INLINE
-ACE_Sched_Priority_Iterator::~ACE_Sched_Priority_Iterator (void)
-{
-}
-
-ACE_INLINE int
-ACE_Sched_Priority_Iterator::more (void) const
-{
- return !this->done_;
-}
-
-ACE_INLINE int
-ACE_Sched_Priority_Iterator::priority (void) const
-{
- return this->priority_;
-}
-
-ACE_INLINE void
-ACE_Sched_Priority_Iterator::next (void)
-{
- if (this->done_)
- return;
-
- int old_priority = this->priority_;
- priority_ = ACE_Sched_Params::next_priority (this->policy (),
- this->priority (),
- this->scope ());
- this->done_ = old_priority == priority_;
-}
diff --git a/ace/Select_Reactor.cpp b/ace/Select_Reactor.cpp
deleted file mode 100644
index 168b2cc969b..00000000000
--- a/ace/Select_Reactor.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-// $Id$
-
-#include "ace/Select_Reactor.h"
-
-ACE_RCSID(ace, Select_Reactor, "$Id$")
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-template class ACE_Select_Reactor_Token_T<ACE_Token>;
-template class ACE_Select_Reactor_T< ACE_Select_Reactor_Token_T<ACE_Token> >;
-template class ACE_Lock_Adapter< ACE_Select_Reactor_Token_T<ACE_Token> >;
-template class ACE_Guard< ACE_Select_Reactor_Token_T<ACE_Token> >;
-# else
-template class ACE_Select_Reactor_Token_T<ACE_Noop_Token>;
-template class ACE_Select_Reactor_T< ACE_Select_Reactor_Token_T<ACE_Noop_Token> >;
-template class ACE_Lock_Adapter< ACE_Select_Reactor_Token_T<ACE_Noop_Token> >;
-# endif /* ACE_MT_SAFE && ACE_MT_SAFE != 0 */
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-# pragma instantiate ACE_Select_Reactor_Token_T<ACE_Token>
-# pragma instantiate ACE_Select_Reactor_T< ACE_Select_Reactor_Token_T<ACE_Token> >
-# pragma instantiate ACE_Lock_Adapter< ACE_Select_Reactor_Token_T<ACE_Token> >
-# pragma instantiate ACE_Guard< ACE_Select_Reactor_Token_T<ACE_Token> >
-# else
-# pragma instantiate ACE_Select_Reactor_Token_T<ACE_Noop_Token>
-# pragma instantiate ACE_Select_Reactor_T< ACE_Select_Reactor_Token_T<ACE_Noop_Token> >
-# pragma instantiate ACE_Lock_Adapter< ACE_Select_Reactor_Token_T<ACE_Noop_Token> >
-# endif /* ACE_MT_SAFE && ACE_MT_SAFE != 0 */
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Select_Reactor.h b/ace/Select_Reactor.h
deleted file mode 100644
index 3a490c82ae2..00000000000
--- a/ace/Select_Reactor.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Select_Reactor.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SELECT_REACTOR_H
-#define ACE_SELECT_REACTOR_H
-#include "ace/pre.h"
-
-#include "ace/Select_Reactor_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-typedef ACE_Select_Reactor_Token_T<ACE_SELECT_TOKEN> ACE_Select_Reactor_Token;
-
-typedef ACE_Select_Reactor_T<ACE_Select_Reactor_Token> ACE_Select_Reactor;
-ACE_TEMPLATE_SPECIALIZATION
-
-/**
- * @class ACE_Guard< ACE_Select_Reactor_Token_T<ACE_Noop_Token> >
- *
- * @brief Template specialization of <ACE_Guard> for the
- * <ACE_Null_Mutex>.
- *
- * This specialization is useful since it helps to speedup
- * performance of the "Null_Mutex" considerably.
- */
-class ACE_Export ACE_Guard< ACE_Select_Reactor_Token_T<ACE_Noop_Token> >
-{
-public:
- // = Initialization and termination methods.
- ACE_Guard (ACE_Select_Reactor_Token_T<ACE_Noop_Token> &) {}
- ACE_Guard (ACE_Select_Reactor_Token_T<ACE_Noop_Token> &, int) {}
- ~ACE_Guard (void) {}
-
- int acquire (void) { return 0; }
- int tryacquire (void) { return 0; }
- int release (void) { return 0; }
- int locked (void) { return 1; }
- int remove (void) { return 0; }
- void dump (void) const {}
-
-private:
- // = Prevent assignment and initialization.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Guard< ACE_Select_Reactor_Token_T<ACE_Noop_Token> > &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Guard (const ACE_Guard< ACE_Select_Reactor_Token_T<ACE_Noop_Token> > &))
-};
-
-#include "ace/post.h"
-#endif /* ACE_SELECT_REACTOR_H */
diff --git a/ace/Select_Reactor_Base.cpp b/ace/Select_Reactor_Base.cpp
deleted file mode 100644
index f0e71bcffc3..00000000000
--- a/ace/Select_Reactor_Base.cpp
+++ /dev/null
@@ -1,1157 +0,0 @@
-// $Id$
-
-#include "ace/Select_Reactor_Base.h"
-#include "ace/Reactor.h"
-#include "ace/Thread.h"
-#include "ace/Synch_T.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/Timer_Heap.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Select_Reactor_Base.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Select_Reactor_Base, "$Id$")
-
-#if defined (ACE_WIN32)
-#define ACE_SELECT_REACTOR_HANDLE(H) (this->event_handlers_[(H)].handle_)
-#define ACE_SELECT_REACTOR_EVENT_HANDLER(THIS,H) ((THIS)->event_handlers_[(H)].event_handler_)
-#else
-#define ACE_SELECT_REACTOR_HANDLE(H) (H)
-#define ACE_SELECT_REACTOR_EVENT_HANDLER(THIS,H) ((THIS)->event_handlers_[(H)])
-#endif /* ACE_WIN32 */
-
-// Performs sanity checking on the ACE_HANDLE.
-
-int
-ACE_Select_Reactor_Handler_Repository::invalid_handle (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Select_Reactor_Handler_Repository::invalid_handle");
-#if defined (ACE_WIN32)
- // It's too expensive to perform more exhaustive validity checks on
- // Win32 due to the way that they implement SOCKET HANDLEs.
- if (handle == ACE_INVALID_HANDLE)
-#else /* !ACE_WIN32 */
- if (handle < 0 || handle >= this->max_size_)
-#endif /* ACE_WIN32 */
- {
- errno = EINVAL;
- return 1;
- }
- else
- return 0;
-}
-
-// Performs sanity checking on the ACE_HANDLE.
-
-int
-ACE_Select_Reactor_Handler_Repository::handle_in_range (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Select_Reactor_Handler_Repository::handle_in_range");
-#if defined (ACE_WIN32)
- // It's too expensive to perform more exhaustive validity checks on
- // Win32 due to the way that they implement SOCKET HANDLEs.
- if (handle != ACE_INVALID_HANDLE)
-#else /* !ACE_WIN32 */
- if (handle >= 0 && handle < this->max_handlep1_)
-#endif /* ACE_WIN32 */
- return 1;
- else
- {
- errno = EINVAL;
- return 0;
- }
-}
-
-size_t
-ACE_Select_Reactor_Handler_Repository::max_handlep1 (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_Handler_Repository::max_handlep1");
-
- return this->max_handlep1_;
-}
-
-int
-ACE_Select_Reactor_Handler_Repository::open (size_t size)
-{
- ACE_TRACE ("ACE_Select_Reactor_Handler_Repository::open");
- this->max_size_ = size;
- this->max_handlep1_ = 0;
-
-#if defined (ACE_WIN32)
- // Try to allocate the memory.
- ACE_NEW_RETURN (this->event_handlers_,
- ACE_Event_Tuple[size],
- -1);
-
- // Initialize the ACE_Event_Handler * to { ACE_INVALID_HANDLE, 0 }.
- for (size_t h = 0; h < size; h++)
- {
- ACE_SELECT_REACTOR_HANDLE (h) = ACE_INVALID_HANDLE;
- ACE_SELECT_REACTOR_EVENT_HANDLER (this, h) = 0;
- }
-#else
- // Try to allocate the memory.
- ACE_NEW_RETURN (this->event_handlers_,
- ACE_Event_Handler *[size],
- -1);
-
- // Initialize the ACE_Event_Handler * to NULL.
- for (size_t h = 0; h < size; h++)
- ACE_SELECT_REACTOR_EVENT_HANDLER (this, h) = 0;
-#endif /* ACE_WIN32 */
-
- // Try to increase the number of handles if <size> is greater than
- // the current limit.
- return ACE::set_handle_limit (ACE_static_cast (int, size));
-}
-
-// Initialize a repository of the appropriate <size>.
-
-ACE_Select_Reactor_Handler_Repository::ACE_Select_Reactor_Handler_Repository (ACE_Select_Reactor_Impl &select_reactor)
- : select_reactor_ (select_reactor),
- max_size_ (0),
- max_handlep1_ (0),
- event_handlers_ (0)
-{
- ACE_TRACE ("ACE_Select_Reactor_Handler_Repository::ACE_Select_Reactor_Handler_Repository");
-}
-
-int
-ACE_Select_Reactor_Handler_Repository::unbind_all (void)
-{
- // Unbind all of the <handle, ACE_Event_Handler>s.
- for (int handle = 0;
- handle < this->max_handlep1_;
- handle++)
- this->unbind (ACE_SELECT_REACTOR_HANDLE (handle),
- ACE_Event_Handler::ALL_EVENTS_MASK);
-
- return 0;
-}
-
-int
-ACE_Select_Reactor_Handler_Repository::close (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_Handler_Repository::close");
-
- if (this->event_handlers_ != 0)
- {
- this->unbind_all ();
-
- delete [] this->event_handlers_;
- this->event_handlers_ = 0;
- }
- return 0;
-}
-
-// Return the <ACE_Event_Handler *> associated with the <handle>.
-
-ACE_Event_Handler *
-ACE_Select_Reactor_Handler_Repository::find (ACE_HANDLE handle,
- size_t *index_p)
-{
- ACE_TRACE ("ACE_Select_Reactor_Handler_Repository::find");
-
- ACE_Event_Handler *eh = 0;
- ssize_t i;
-
- // Only bother to search for the <handle> if it's in range.
- if (this->handle_in_range (handle))
- {
-#if defined (ACE_WIN32)
- i = 0;
-
- for (; i < this->max_handlep1_; i++)
- if (ACE_SELECT_REACTOR_HANDLE (i) == handle)
- {
- eh = ACE_SELECT_REACTOR_EVENT_HANDLER (this, i);
- break;
- }
-#else
- i = handle;
-
- eh = ACE_SELECT_REACTOR_EVENT_HANDLER (this, handle);
-#endif /* ACE_WIN32 */
- }
- else
- // g++ can't figure out that <i> won't be used below if the handle
- // is out of range, so keep it happy by defining <i> here . . .
- i = 0;
-
- if (eh != 0)
- {
- if (index_p != 0)
- *index_p = i;
- }
- else
- errno = ENOENT;
-
- return eh;
-}
-
-// Bind the <ACE_Event_Handler *> to the <ACE_HANDLE>.
-
-int
-ACE_Select_Reactor_Handler_Repository::bind (ACE_HANDLE handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_Handler_Repository::bind");
-
- if (handle == ACE_INVALID_HANDLE)
- handle = event_handler->get_handle ();
-
- if (this->invalid_handle (handle))
- return -1;
-
-#if defined (ACE_WIN32)
- int assigned_slot = -1;
-
- for (ssize_t i = 0; i < this->max_handlep1_; i++)
- {
- // Found it, so let's just reuse this location.
- if (ACE_SELECT_REACTOR_HANDLE (i) == handle)
- {
- assigned_slot = i;
- break;
- }
- // Here's the first free slot, so let's take it.
- else if (ACE_SELECT_REACTOR_HANDLE (i) == ACE_INVALID_HANDLE
- && assigned_slot == -1)
- assigned_slot = i;
- }
-
- if (assigned_slot > -1)
- // We found a free spot, let's reuse it.
- {
- ACE_SELECT_REACTOR_HANDLE (assigned_slot) = handle;
- ACE_SELECT_REACTOR_EVENT_HANDLER (this, assigned_slot) = event_handler;
- }
- else if (this->max_handlep1_ < this->max_size_)
- {
- // Insert at the end of the active portion.
- ACE_SELECT_REACTOR_HANDLE (this->max_handlep1_) = handle;
- ACE_SELECT_REACTOR_EVENT_HANDLER (this, this->max_handlep1_) = event_handler;
- this->max_handlep1_++;
- }
- else
- {
- // No more room at the inn!
- errno = ENOMEM;
- return -1;
- }
-#else
- ACE_SELECT_REACTOR_EVENT_HANDLER (this, handle) = event_handler;
-
- if (this->max_handlep1_ < handle + 1)
- this->max_handlep1_ = handle + 1;
-#endif /* ACE_WIN32 */
-
- if (this->select_reactor_.is_suspended_i (handle))
- {
- this->select_reactor_.bit_ops (handle,
- mask,
- this->select_reactor_.suspend_set_,
- ACE_Reactor::ADD_MASK);
- }
- else
- {
- this->select_reactor_.bit_ops (handle,
- mask,
- this->select_reactor_.wait_set_,
- ACE_Reactor::ADD_MASK);
-
- // Note the fact that we've changed the state of the <wait_set_>,
- // which is used by the dispatching loop to determine whether it can
- // keep going or if it needs to reconsult select().
- this->select_reactor_.state_changed_ = 1;
- }
-
- /*
- // @@NOTE: We used to do this in earlier versions of ACE+TAO. But
- // this is totally wrong..
- // Clear any suspend masks for it too.
- this->select_reactor_.bit_ops (handle,
- mask,
- this->select_reactor_.suspend_set_,
- ACE_Reactor::CLR_MASK);
- */
-
- return 0;
-}
-
-// Remove the binding of <ACE_HANDLE>.
-
-int
-ACE_Select_Reactor_Handler_Repository::unbind (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_Handler_Repository::unbind");
-
- size_t slot;
- ACE_Event_Handler *eh = this->find (handle, &slot);
-
- if (eh == 0)
- return -1;
-
- // Clear out the <mask> bits in the Select_Reactor's wait_set.
- this->select_reactor_.bit_ops (handle,
- mask,
- this->select_reactor_.wait_set_,
- ACE_Reactor::CLR_MASK);
-
- // And suspend_set.
- this->select_reactor_.bit_ops (handle,
- mask,
- this->select_reactor_.suspend_set_,
- ACE_Reactor::CLR_MASK);
-
- // Note the fact that we've changed the state of the <wait_set_>,
- // which is used by the dispatching loop to determine whether it can
- // keep going or if it needs to reconsult select().
- this->select_reactor_.state_changed_ = 1;
-
- // Close down the <Event_Handler> unless we've been instructed not
- // to.
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::DONT_CALL) == 0)
- eh->handle_close (handle, mask);
-
- // If there are no longer any outstanding events on this <handle>
- // then we can totally shut down the Event_Handler.
-
- int has_any_wait_mask =
- (this->select_reactor_.wait_set_.rd_mask_.is_set (handle)
- || this->select_reactor_.wait_set_.wr_mask_.is_set (handle)
- || this->select_reactor_.wait_set_.ex_mask_.is_set (handle));
- int has_any_suspend_mask =
- (this->select_reactor_.suspend_set_.rd_mask_.is_set (handle)
- || this->select_reactor_.suspend_set_.wr_mask_.is_set (handle)
- || this->select_reactor_.suspend_set_.ex_mask_.is_set (handle));
-
- if (!has_any_wait_mask
- && !has_any_suspend_mask
- && (this->find (handle, &slot) == eh))
-#if defined (ACE_WIN32)
- {
- ACE_SELECT_REACTOR_HANDLE (slot) = ACE_INVALID_HANDLE;
- ACE_SELECT_REACTOR_EVENT_HANDLER (this, slot) = 0;
-
- if (this->max_handlep1_ == (int) slot + 1)
- {
- // We've deleted the last entry (i.e., i + 1 == the current
- // size of the array), so we need to figure out the last
- // valid place in the array that we should consider in
- // subsequent searches.
-
- int i;
-
- for (i = this->max_handlep1_ - 1;
- i >= 0 && ACE_SELECT_REACTOR_HANDLE (i) == ACE_INVALID_HANDLE;
- i--)
- continue;
-
- this->max_handlep1_ = i + 1;
- }
- }
-#else
- {
- ACE_SELECT_REACTOR_EVENT_HANDLER (this, handle) = 0;
-
- if (this->max_handlep1_ == handle + 1)
- {
- // We've deleted the last entry, so we need to figure out
- // the last valid place in the array that is worth looking
- // at.
- ACE_HANDLE wait_rd_max = this->select_reactor_.wait_set_.rd_mask_.max_set ();
- ACE_HANDLE wait_wr_max = this->select_reactor_.wait_set_.wr_mask_.max_set ();
- ACE_HANDLE wait_ex_max = this->select_reactor_.wait_set_.ex_mask_.max_set ();
-
- ACE_HANDLE suspend_rd_max = this->select_reactor_.suspend_set_.rd_mask_.max_set ();
- ACE_HANDLE suspend_wr_max = this->select_reactor_.suspend_set_.wr_mask_.max_set ();
- ACE_HANDLE suspend_ex_max = this->select_reactor_.suspend_set_.ex_mask_.max_set ();
-
- // Compute the maximum of six values.
- this->max_handlep1_ = wait_rd_max;
- if (this->max_handlep1_ < wait_wr_max)
- this->max_handlep1_ = wait_wr_max;
- if (this->max_handlep1_ < wait_ex_max)
- this->max_handlep1_ = wait_ex_max;
-
- if (this->max_handlep1_ < suspend_rd_max)
- this->max_handlep1_ = suspend_rd_max;
- if (this->max_handlep1_ < suspend_wr_max)
- this->max_handlep1_ = suspend_wr_max;
- if (this->max_handlep1_ < suspend_ex_max)
- this->max_handlep1_ = suspend_ex_max;
-
- this->max_handlep1_++;
- }
- }
-#endif /* ACE_WIN32 */
-
- return 0;
-}
-
-ACE_Select_Reactor_Handler_Repository_Iterator::ACE_Select_Reactor_Handler_Repository_Iterator
- (const ACE_Select_Reactor_Handler_Repository *s)
- : rep_ (s),
- current_ (-1)
-{
- this->advance ();
-}
-
-// Pass back the <next_item> that hasn't been seen in the Set.
-// Returns 0 when all items have been seen, else 1.
-
-int
-ACE_Select_Reactor_Handler_Repository_Iterator::next (ACE_Event_Handler *&next_item)
-{
- int result = 1;
-
- if (this->current_ >= this->rep_->max_handlep1_)
- result = 0;
- else
- next_item = ACE_SELECT_REACTOR_EVENT_HANDLER (this->rep_,
- this->current_);
- return result;
-}
-
-int
-ACE_Select_Reactor_Handler_Repository_Iterator::done (void) const
-{
- return this->current_ >= this->rep_->max_handlep1_;
-}
-
-// Move forward by one element in the set.
-
-int
-ACE_Select_Reactor_Handler_Repository_Iterator::advance (void)
-{
- if (this->current_ < this->rep_->max_handlep1_)
- this->current_++;
-
- while (this->current_ < this->rep_->max_handlep1_)
- if (ACE_SELECT_REACTOR_EVENT_HANDLER (this->rep_, this->current_) != 0)
- return 1;
- else
- this->current_++;
-
- return this->current_ < this->rep_->max_handlep1_;
-}
-
-// Dump the state of an object.
-
-void
-ACE_Select_Reactor_Handler_Repository_Iterator::dump (void) const
-{
- ACE_TRACE ("ACE_Select_Reactor_Handler_Repository_Iterator::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("rep_ = %u"), this->rep_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("current_ = %d"), this->current_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_Select_Reactor_Handler_Repository::dump (void) const
-{
- ACE_TRACE ("ACE_Select_Reactor_Handler_Repository::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("(%t) max_handlep1_ = %d, max_size_ = %d\n"),
- this->max_handlep1_, this->max_size_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("[")));
-
- ACE_Event_Handler *eh = 0;
-
- for (ACE_Select_Reactor_Handler_Repository_Iterator iter (this);
- iter.next (eh) != 0;
- iter.advance ())
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" (eh = %x, eh->handle_ = %d)"),
- eh, eh->get_handle ()));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" ]")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Select_Reactor_Handler_Repository_Iterator)
-
-ACE_Select_Reactor_Notify::ACE_Select_Reactor_Notify (void)
- : max_notify_iterations_ (-1)
-{
-}
-
-void
-ACE_Select_Reactor_Notify::max_notify_iterations (int iterations)
-{
- // Must always be > 0 or < 0 to optimize the loop exit condition.
- if (iterations == 0)
- iterations = 1;
-
- this->max_notify_iterations_ = iterations;
-}
-
-int
-ACE_Select_Reactor_Notify::max_notify_iterations (void)
-{
- return this->max_notify_iterations_;
-}
-
-// purge_pending_notifications
-// Removes all entries from the notify_queue_ and each one that
-// matches <eh> is put on the free_queue_. The rest are saved on a
-// local queue and copied back to the notify_queue_ at the end.
-// Returns the number of entries removed. Returns -1 on error.
-// ACE_NOTSUP_RETURN if ACE_HAS_REACTOR_NOTIFICATION_QUEUE is not defined.
-int
-ACE_Select_Reactor_Notify::purge_pending_notifications (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask )
-{
- ACE_TRACE ("ACE_Select_Reactor_Notify::purge_pending_notifications");
-
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
-
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, mon, this->notify_queue_lock_, -1);
-
- if (this->notify_queue_.is_empty ())
- return 0;
-
- ACE_Notification_Buffer *temp;
- ACE_Unbounded_Queue <ACE_Notification_Buffer *> local_queue;
-
- size_t queue_size = this->notify_queue_.size ();
- int number_purged = 0;
- size_t i;
- for (i = 0; i < queue_size; ++i)
- {
- if (-1 == this->notify_queue_.dequeue_head (temp))
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("dequeue_head")),
- -1);
-
- // If this is not a Reactor notify (it is for a particular handler),
- // and it matches the specified handler (or purging all),
- // and applying the mask would totally eliminate the notification, then
- // release it and count the number purged.
- if ((0 != temp->eh_) &&
- (0 == eh || eh == temp->eh_) &&
- ACE_BIT_DISABLED (temp->mask_, ~mask)) // the existing notificationmask
- // is left with nothing when
- // applying the mask
- {
- if (-1 == this->free_queue_.enqueue_head (temp))
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("enqueue_head")),
- -1);
- ++number_purged;
- }
- else
- {
- // To preserve it, move it to the local_queue.
- // But first, if this is not a Reactor notify (it is for a particularhandler),
- // and it matches the specified handler (or purging all), then
- // apply the mask
- if ((0 != temp->eh_) &&
- (0 == eh || eh == temp->eh_))
- ACE_CLR_BITS(temp->mask_, mask);
- if (-1 == local_queue.enqueue_head (temp))
- return -1;
- }
- }
-
- if (this->notify_queue_.size ())
- { // should be empty!
- ACE_ASSERT (0);
- return -1;
- }
-
- // now put it back in the notify queue
- queue_size = local_queue.size ();
- for (i = 0; i < queue_size; ++i)
- {
- if (-1 == local_queue.dequeue_head (temp))
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("dequeue_head")),
- -1);
-
- if (-1 == this->notify_queue_.enqueue_head (temp))
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("enqueue_head")),
- -1);
- }
-
- return number_purged;
-
-#else /* defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE) */
- ACE_UNUSED_ARG (eh);
- ACE_UNUSED_ARG (mask);
- ACE_NOTSUP_RETURN (-1);
-#endif /* defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE) */
-}
-
-void
-ACE_Select_Reactor_Notify::dump (void) const
-{
- ACE_TRACE ("ACE_Select_Reactor_Notify::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("select_reactor_ = %x"), this->select_reactor_));
- this->notification_pipe_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-int
-ACE_Select_Reactor_Notify::open (ACE_Reactor_Impl *r,
- ACE_Timer_Queue *,
- int disable_notify_pipe)
-{
- ACE_TRACE ("ACE_Select_Reactor_Notify::open");
-
- if (disable_notify_pipe == 0)
- {
- this->select_reactor_ =
- ACE_dynamic_cast (ACE_Select_Reactor_Impl *, r);
-
- if (select_reactor_ == 0)
- {
- errno = EINVAL;
- return -1;
- }
-
- if (this->notification_pipe_.open () == -1)
- return -1;
-#if defined (F_SETFD)
- ACE_OS::fcntl (this->notification_pipe_.read_handle (), F_SETFD, 1);
- ACE_OS::fcntl (this->notification_pipe_.write_handle (), F_SETFD, 1);
-#endif /* F_SETFD */
-
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
- ACE_Notification_Buffer *temp;
-
- ACE_NEW_RETURN (temp,
- ACE_Notification_Buffer[ACE_REACTOR_NOTIFICATION_ARRAY_SIZE],
- -1);
-
- if (this->alloc_queue_.enqueue_head (temp) == -1)
- {
- delete [] temp;
- return -1;
- }
-
- for (size_t i = 0; i < ACE_REACTOR_NOTIFICATION_ARRAY_SIZE; i++)
- if (free_queue_.enqueue_head (temp + i) == -1)
- return -1;
-
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-
- // There seems to be a Win32 bug with this... Set this into
- // non-blocking mode.
- if (ACE::set_flags (this->notification_pipe_.read_handle (),
- ACE_NONBLOCK) == -1)
- return -1;
- else
- return this->select_reactor_->register_handler
- (this->notification_pipe_.read_handle (),
- this,
- ACE_Event_Handler::READ_MASK);
- }
- else
- {
- this->select_reactor_ = 0;
- return 0;
- }
-}
-
-int
-ACE_Select_Reactor_Notify::close (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_Notify::close");
-
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
- // Free up the dynamically allocated resources.
- ACE_Notification_Buffer **b;
-
- for (ACE_Unbounded_Queue_Iterator<ACE_Notification_Buffer *> alloc_iter (this->alloc_queue_);
- alloc_iter.next (b) != 0;
- alloc_iter.advance ())
- {
- delete [] *b;
- *b = 0;
- }
-
- this->alloc_queue_.reset ();
- this->notify_queue_.reset ();
- this->free_queue_.reset ();
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-
- return this->notification_pipe_.close ();
-}
-
-int
-ACE_Select_Reactor_Notify::notify (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Select_Reactor_Notify::notify");
-
- // Just consider this method a "no-op" if there's no
- // <ACE_Select_Reactor> configured.
- if (this->select_reactor_ == 0)
- return 0;
-
- ACE_Notification_Buffer buffer (eh, mask);
-
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
- // Artificial scope to limit the duration of the mutex.
- {
- // int notification_required = 0;
-
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, mon, this->notify_queue_lock_, -1);
-
- // No pending notifications.
-
- // We will send notify for every message..
- // if (this->notify_queue_.is_empty ())
- // notification_required = 1;
-
- ACE_Notification_Buffer *temp = 0;
-
- if (free_queue_.dequeue_head (temp) == -1)
- {
- // Grow the queue of available buffers.
- ACE_Notification_Buffer *temp1;
-
- ACE_NEW_RETURN (temp1,
- ACE_Notification_Buffer[ACE_REACTOR_NOTIFICATION_ARRAY_SIZE],
- -1);
-
- if (this->alloc_queue_.enqueue_head (temp1) == -1)
- {
- delete [] temp1;
- return -1;
- }
-
- // Start at 1 and enqueue only
- // (ACE_REACTOR_NOTIFICATION_ARRAY_SIZE - 1) elements since
- // the first one will be used right now.
- for (size_t i = 1;
- i < ACE_REACTOR_NOTIFICATION_ARRAY_SIZE;
- i++)
- this->free_queue_.enqueue_head (temp1 + i);
-
- temp = temp1;
- }
-
- ACE_ASSERT (temp != 0);
- *temp = buffer;
-
- if (notify_queue_.enqueue_tail (temp) == -1)
- return -1;
- }
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-
- ssize_t n = ACE::send (this->notification_pipe_.write_handle (),
- (char *) &buffer,
- sizeof buffer,
- timeout);
- if (n == -1)
- return -1;
-
- return 0;
-}
-
-// Handles pending threads (if any) that are waiting to unblock the
-// Select_Reactor.
-
-int
-ACE_Select_Reactor_Notify::dispatch_notifications (int &number_of_active_handles,
- ACE_Handle_Set &rd_mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_Notify::dispatch_notifications");
-
- ACE_HANDLE read_handle =
- this->notification_pipe_.read_handle ();
-
- if (read_handle != ACE_INVALID_HANDLE
- && rd_mask.is_set (read_handle))
- {
- number_of_active_handles--;
- rd_mask.clr_bit (read_handle);
- return this->handle_input (read_handle);
- }
- else
- return 0;
-}
-
-
-ACE_HANDLE
-ACE_Select_Reactor_Notify::notify_handle (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_Notify::notify_handle");
-
- return this->notification_pipe_.read_handle ();
-}
-
-
-// Special trick to unblock <select> when updates occur in somewhere
-// other than the main <ACE_Select_Reactor> thread. All we do is
-// write data to a pipe that the <ACE_Select_Reactor> is listening on.
-// Thanks to Paul Stephenson for suggesting this approach.
-int
-ACE_Select_Reactor_Notify::is_dispatchable (ACE_Notification_Buffer &buffer)
-{
- // There is tonnes of code that can be abstracted...
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
- {
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, mon, this->notify_queue_lock_, -1);
-
- ACE_Notification_Buffer *temp;
-
- ACE_UNUSED_ARG (buffer);
-
- // If the queue is empty just return 0
- if (notify_queue_.is_empty ())
- return 0;
-
- if (this->notify_queue_.dequeue_head (temp) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("dequeue_head")),
- -1);
- if (temp->eh_ != 0)
- {
- // If the queue had a buffer that has an event handler, put
- // the element back in the queue and return a 1
- if (this->notify_queue_.enqueue_head (temp) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("enque_head")),
- -1);
- }
-
- return 1;
- }
- // Else put the element in the free queue
- if (free_queue_.enqueue_head (temp) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("enqueue_head")),
- -1);
- }
-#else
- // If eh == 0 then another thread is unblocking the
- // <ACE_Select_Reactor> to update the <ACE_Select_Reactor>'s
- // internal structures. Otherwise, we need to dispatch the
- // appropriate handle_* method on the <ACE_Event_Handler>
- // pointer we've been passed.
- if (buffer.eh_ != 0)
- return 1;
-
-#endif /*ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-
- // has no dispatchable buffer
- return 0;
-}
-
-int
-ACE_Select_Reactor_Notify::dispatch_notify (ACE_Notification_Buffer &buffer)
-{
- int result = 0;
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
- // Dispatch all messages that are in the <notify_queue_>.
- {
- // We acquire the lock in a block to make sure we're not
- // holding the lock while delivering callbacks...
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, mon, this->notify_queue_lock_, -1);
-
- ACE_Notification_Buffer *temp;
-
- if (notify_queue_.is_empty ())
- return 0;
- else if (notify_queue_.dequeue_head (temp) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("dequeue_head")),
- -1);
- buffer = *temp;
- if (free_queue_.enqueue_head (temp) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("enqueue_head")),
- -1);
- }
-
- // If eh == 0 then another thread is unblocking the
- // <ACE_Select_Reactor> to update the <ACE_Select_Reactor>'s
- // internal structures. Otherwise, we need to dispatch the
- // appropriate handle_* method on the <ACE_Event_Handler>
- // pointer we've been passed.
- if (buffer.eh_ != 0)
- {
-
- switch (buffer.mask_)
- {
- case ACE_Event_Handler::READ_MASK:
- case ACE_Event_Handler::ACCEPT_MASK:
- result = buffer.eh_->handle_input (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::WRITE_MASK:
- result = buffer.eh_->handle_output (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::EXCEPT_MASK:
- result = buffer.eh_->handle_exception (ACE_INVALID_HANDLE);
- break;
- default:
- // Should we bail out if we get an invalid mask?
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("invalid mask = %d\n"), buffer.mask_));
- }
- if (result == -1)
- buffer.eh_->handle_close (ACE_INVALID_HANDLE,
- ACE_Event_Handler::EXCEPT_MASK);
- }
-#else
- // If eh == 0 then another thread is unblocking the
- // <ACE_Select_Reactor> to update the <ACE_Select_Reactor>'s
- // internal structures. Otherwise, we need to dispatch the
- // appropriate handle_* method on the <ACE_Event_Handler>
- // pointer we've been passed.
- if (buffer.eh_ != 0)
- {
- switch (buffer.mask_)
- {
- case ACE_Event_Handler::READ_MASK:
- case ACE_Event_Handler::ACCEPT_MASK:
- result = buffer.eh_->handle_input (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::WRITE_MASK:
- result = buffer.eh_->handle_output (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::EXCEPT_MASK:
- result = buffer.eh_->handle_exception (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::QOS_MASK:
- result = buffer.eh_->handle_qos (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::GROUP_QOS_MASK:
- result = buffer.eh_->handle_group_qos (ACE_INVALID_HANDLE);
- break;
- default:
- // Should we bail out if we get an invalid mask?
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("invalid mask = %d\n"),
- buffer.mask_));
- }
- if (result == -1)
- buffer.eh_->handle_close (ACE_INVALID_HANDLE,
- ACE_Event_Handler::EXCEPT_MASK);
- }
-
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-
- return 1;
-}
-
-int
-ACE_Select_Reactor_Notify::read_notify_pipe (ACE_HANDLE handle,
- ACE_Notification_Buffer &buffer)
-{
- ACE_TRACE ("ACE_Select_Reactor_Notify::read_notify_pipe");
-
- ssize_t n = ACE::recv (handle, (char *) &buffer, sizeof buffer);
-
- if (n > 0)
- {
- // Check to see if we've got a short read.
- if (n != sizeof buffer)
- {
- ssize_t remainder = sizeof buffer - n;
-
- // If so, try to recover by reading the remainder. If this
- // doesn't work we're in big trouble since the input stream
- // won't be aligned correctly. I'm not sure quite what to
- // do at this point. It's probably best just to return -1.
- if (ACE::recv (handle,
- ((char *) &buffer) + n,
- remainder) != remainder)
- return -1;
- }
-
-
- return 1;
- }
-
- // Return -1 if things have gone seriously wrong.
- if (n <= 0 && (errno != EWOULDBLOCK && errno != EAGAIN))
- return -1;
-
- return 0;
-}
-
-
-int
-ACE_Select_Reactor_Notify::handle_input (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Select_Reactor_Notify::handle_input");
- // Precondition: this->select_reactor_.token_.current_owner () ==
- // ACE_Thread::self ();
-
- int number_dispatched = 0;
- int result = 0;
- ACE_Notification_Buffer buffer;
-
- while ((result = this->read_notify_pipe (handle, buffer)) > 0)
- {
- // Dispatch the buffer
- // NOTE: We count only if we made any dispatches ie. upcalls.
- if (this->dispatch_notify (buffer) > 0)
- number_dispatched++;
-
- // Bail out if we've reached the <notify_threshold_>. Note that
- // by default <notify_threshold_> is -1, so we'll loop until all
- // the notifications in the pipe have been dispatched.
- if (number_dispatched == this->max_notify_iterations_)
- break;
- }
-
- // Reassign number_dispatched to -1 if things have gone seriously
- // wrong.
- if (result < 0)
- number_dispatched = -1;
-
- // Enqueue ourselves into the list of waiting threads. When we
- // reacquire the token we'll be off and running again with ownership
- // of the token. The postcondition of this call is that
- // <select_reactor_.token_.current_owner> == <ACE_Thread::self>.
- this->select_reactor_->renew ();
- return number_dispatched;
-}
-
-// Perform GET, CLR, SET, and ADD operations on the Handle_Sets.
-//
-// GET = 1, Retrieve current value
-// SET = 2, Set value of bits to new mask (changes the entire mask)
-// ADD = 3, Bitwise "or" the value into the mask (only changes
-// enabled bits)
-// CLR = 4 Bitwise "and" the negation of the value out of the mask
-// (only changes enabled bits)
-//
-// Returns the original mask. Must be called with locks held.
-
-int
-ACE_Select_Reactor_Impl::bit_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Select_Reactor_Handle_Set &handle_set,
- int ops)
-{
- ACE_TRACE ("ACE_Select_Reactor_Impl::bit_ops");
- if (this->handler_rep_.handle_in_range (handle) == 0)
- return -1;
-
-#if !defined (ACE_WIN32)
- ACE_Sig_Guard sb; // Block out all signals until method returns.
-#endif /* ACE_WIN32 */
-
- ACE_FDS_PTMF ptmf = &ACE_Handle_Set::set_bit;
- u_long omask = ACE_Event_Handler::NULL_MASK;
-
- // Find the old reactor masks. This automatically does the work of
- // the GET_MASK operation.
- if (handle_set.rd_mask_.is_set (handle))
- ACE_SET_BITS (omask, ACE_Event_Handler::READ_MASK);
- if (handle_set.wr_mask_.is_set (handle))
- ACE_SET_BITS (omask, ACE_Event_Handler::WRITE_MASK);
- if (handle_set.ex_mask_.is_set (handle))
- ACE_SET_BITS (omask, ACE_Event_Handler::EXCEPT_MASK);
-
- switch (ops)
- {
- case ACE_Reactor::GET_MASK:
- // The work for this operation is done in all cases at the
- // begining of the function.
- break;
- case ACE_Reactor::CLR_MASK:
- ptmf = &ACE_Handle_Set::clr_bit;
- /* FALLTHRU */
- case ACE_Reactor::SET_MASK:
- /* FALLTHRU */
- case ACE_Reactor::ADD_MASK:
-
- // The following code is rather subtle... Note that if we are
- // doing a ACE_Reactor::SET_MASK then if the bit is not enabled
- // in the mask we need to clear the bit from the ACE_Handle_Set.
- // On the other hand, if we are doing a ACE_Reactor::CLR_MASK or
- // a ACE_Reactor::ADD_MASK we just carry out the operations
- // specified by the mask.
-
- // READ, ACCEPT, and CONNECT flag will place the handle in the
- // read set.
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK)
- || ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK)
- || ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK))
- {
- (handle_set.rd_mask_.*ptmf) (handle);
- }
- else if (ops == ACE_Reactor::SET_MASK)
- handle_set.rd_mask_.clr_bit (handle);
-
- // WRITE and CONNECT flag will place the handle in the write set
- if (ACE_BIT_ENABLED (mask,
- ACE_Event_Handler::WRITE_MASK)
- || ACE_BIT_ENABLED (mask,
- ACE_Event_Handler::CONNECT_MASK))
- {
- (handle_set.wr_mask_.*ptmf) (handle);
- }
- else if (ops == ACE_Reactor::SET_MASK)
- handle_set.wr_mask_.clr_bit (handle);
-
- // EXCEPT (and CONNECT on Win32) flag will place the handle in
- // the except set.
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK)
-#if defined (ACE_WIN32)
- || ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK)
-#endif /* ACE_WIN32 */
- )
- {
- (handle_set.ex_mask_.*ptmf) (handle);
- }
- else if (ops == ACE_Reactor::SET_MASK)
- handle_set.ex_mask_.clr_bit (handle);
- break;
- default:
- return -1;
- }
- return omask;
-}
-
-int
-ACE_Select_Reactor_Impl::resumable_handler (void)
-{
- // The select reactor has no handlers that can be resumed by the
- // application. So return 0;
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
-template class ACE_Unbounded_Queue <ACE_Notification_Buffer *>;
-template class ACE_Unbounded_Queue_Iterator <ACE_Notification_Buffer *>;
-template class ACE_Node <ACE_Notification_Buffer *>;
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
-#pragma instantiate ACE_Unbounded_Queue <ACE_Notification_Buffer *>
-#pragma instantiate ACE_Unbounded_Queue_Iterator <ACE_Notification_Buffer *>
-#pragma instantiate ACE_Node <ACE_Notification_Buffer *>
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Select_Reactor_Base.h b/ace/Select_Reactor_Base.h
deleted file mode 100644
index 9d6c6cfe311..00000000000
--- a/ace/Select_Reactor_Base.h
+++ /dev/null
@@ -1,549 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Select_Reactor_Base.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SELECT_REACTOR_BASE_H
-#define ACE_SELECT_REACTOR_BASE_H
-#include "ace/pre.h"
-
-#include "ace/Signal.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Timer_Queue.h"
-#include "ace/Event_Handler.h"
-#include "ace/Handle_Set.h"
-#include "ace/Token.h"
-#include "ace/Pipe.h"
-#include "ace/Reactor_Impl.h"
-
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
-#include "ace/Unbounded_Queue.h"
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-
-// Add useful typedefs to simplify the following code.
-typedef void (ACE_Handle_Set::*ACE_FDS_PTMF) (ACE_HANDLE);
-typedef int (ACE_Event_Handler::*ACE_EH_PTMF) (ACE_HANDLE);
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-typedef ACE_Token ACE_SELECT_TOKEN;
-#else
-typedef ACE_Noop_Token ACE_SELECT_TOKEN;
-#endif /* ACE_MT_SAFE && ACE_MT_SAFE != 0 */
-
-// Forward declaration.
-class ACE_Select_Reactor_Impl;
-
-/**
- * @class ACE_Select_Reactor_Handle_Set
- *
- * @brief Track handles we are interested for various events.
- */
-class ACE_Export ACE_Select_Reactor_Handle_Set
-{
-public:
- /// Read events (e.g., input pending, accept pending).
- ACE_Handle_Set rd_mask_;
-
- /// Write events (e.g., flow control abated, non-blocking connection
- /// complete).
- ACE_Handle_Set wr_mask_;
-
- /// Exception events (e.g., SIG_URG).
- ACE_Handle_Set ex_mask_;
-};
-
-/**
- * @class ACE_Event_Tuple
- *
- * @brief An ACE_Event_Handler and its associated ACE_HANDLE.
- *
- * One <ACE_Event_Handler> is registered for one or more
- * <ACE_HANDLE>. At various points, this information must be
- * stored explicitly. This class provides a lightweight
- * mechanism to do so.
- */
-class ACE_Export ACE_Event_Tuple
-{
-public:
- /// Default constructor.
- ACE_Event_Tuple (void);
-
- /// Constructor.
- ACE_Event_Tuple (ACE_Event_Handler *eh,
- ACE_HANDLE h);
-
- /// Destructor.
- ~ACE_Event_Tuple (void);
-
- /// Equality operator.
- int operator== (const ACE_Event_Tuple &rhs) const;
-
- /// Inequality operator.
- int operator!= (const ACE_Event_Tuple &rhs) const;
-
- /// Handle.
- ACE_HANDLE handle_;
-
- /// <ACE_Event_Handler> associated with the <ACE_HANDLE>.
- ACE_Event_Handler *event_handler_;
-};
-
-/**
- * @class ACE_Select_Reactor_Notify
- *
- * @brief Unblock the <ACE_Select_Reactor> from its event loop.
- *
- * This implementation is necessary for cases where the
- * <ACE_Select_Reactor> is run in a multi-threaded program. In
- * this case, we need to be able to unblock <select> or <poll>
- * when updates occur other than in the main
- * <ACE_Select_Reactor> thread. To do this, we signal an
- * auto-reset event the <ACE_Select_Reactor> is listening on.
- * If an <ACE_Event_Handler> and <ACE_Select_Reactor_Mask> is
- * passed to <notify>, the appropriate <handle_*> method is
- * dispatched in the context of the <ACE_Select_Reactor> thread.
- */
-class ACE_Export ACE_Select_Reactor_Notify : public ACE_Reactor_Notify
-{
-public:
- /// Constructor.
- ACE_Select_Reactor_Notify (void);
-
- /// Destructor.
- ~ACE_Select_Reactor_Notify (void);
-
- // = Initialization and termination methods.
- /// Initialize.
- virtual int open (ACE_Reactor_Impl *,
- ACE_Timer_Queue * = 0,
- int disable_notify_pipe = 0);
-
- /// Destroy.
- virtual int close (void);
-
- /**
- * Called by a thread when it wants to unblock the
- * <ACE_Select_Reactor>. This wakeups the <ACE_Select_Reactor> if
- * currently blocked in <select>/<poll>. Pass over both the
- * <Event_Handler> *and* the <mask> to allow the caller to dictate
- * which <Event_Handler> method the <ACE_Select_Reactor> will
- * invoke. The <ACE_Time_Value> indicates how long to blocking
- * trying to notify the <ACE_Select_Reactor>. If <timeout> == 0,
- * the caller will block until action is possible, else will wait
- * until the relative time specified in *<timeout> elapses).
- */
- virtual int notify (ACE_Event_Handler * = 0,
- ACE_Reactor_Mask = ACE_Event_Handler::EXCEPT_MASK,
- ACE_Time_Value * = 0);
-
- /// Handles pending threads (if any) that are waiting to unblock the
- /// <ACE_Select_Reactor>.
- virtual int dispatch_notifications (int &number_of_active_handles,
- ACE_Handle_Set &rd_mask);
-
- /// Returns the ACE_HANDLE of the notify pipe on which the reactor
- /// is listening for notifications so that other threads can unblock
- /// the Select_Reactor
- virtual ACE_HANDLE notify_handle (void);
-
- /// Handle one of the notify call on the <handle>. This could be
- /// because of a thread trying to unblock the <Reactor_Impl>
- virtual int dispatch_notify (ACE_Notification_Buffer &buffer);
-
- /// Read one of the notify call on the <handle> into the
- /// <buffer>. This could be because of a thread trying to unblock
- /// the <Reactor_Impl>
- virtual int read_notify_pipe (ACE_HANDLE handle,
- ACE_Notification_Buffer &buffer);
-
- /// Verify whether the buffer has dispatchable info or not.
- virtual int is_dispatchable (ACE_Notification_Buffer &buffer);
-
- /// Called back by the <ACE_Select_Reactor> when a thread wants to
- /// unblock us.
- virtual int handle_input (ACE_HANDLE handle);
-
- /**
- * Set the maximum number of times that the
- * <ACE_Select_Reactor_Notify::handle_input> method will iterate and
- * dispatch the <ACE_Event_Handlers> that are passed in via the
- * notify pipe before breaking out of its <recv> loop. By default,
- * this is set to -1, which means "iterate until the pipe is empty."
- * Setting this to a value like "1 or 2" will increase "fairness"
- * (and thus prevent starvation) at the expense of slightly higher
- * dispatching overhead.
- */
- virtual void max_notify_iterations (int);
-
- /**
- * Get the maximum number of times that the
- * <ACE_Select_Reactor_Notify::handle_input> method will iterate and
- * dispatch the <ACE_Event_Handlers> that are passed in via the
- * notify pipe before breaking out of its <recv> loop.
- */
- virtual int max_notify_iterations (void);
-
- /**
- * Purge any notifications pending in this reactor for the specified
- * <ACE_Event_Handler> object. If <eh> == 0, all notifications for all
- * handlers are removed (but not any notifications posted just to wake up
- * the reactor itself). Returns the number of notifications purged.
- * Returns -1 on error.
- */
- virtual int purge_pending_notifications (ACE_Event_Handler *,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /**
- * Keep a back pointer to the <ACE_Select_Reactor>. If this value
- * if NULL then the <ACE_Select_Reactor> has been initialized with
- * <disable_notify_pipe>.
- */
- ACE_Select_Reactor_Impl *select_reactor_;
-
- /**
- * Contains the <ACE_HANDLE> the <ACE_Select_Reactor> is listening
- * on, as well as the <ACE_HANDLE> that threads wanting the
- * attention of the <ACE_Select_Reactor> will write to.
- */
- ACE_Pipe notification_pipe_;
-
- /**
- * Keeps track of the maximum number of times that the
- * <ACE_Select_Reactor_Notify::handle_input> method will iterate and
- * dispatch the <ACE_Event_Handlers> that are passed in via the
- * notify pipe before breaking out of its <recv> loop. By default,
- * this is set to -1, which means "iterate until the pipe is empty."
- */
- int max_notify_iterations_;
-
-#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
- // = This configuration queues up notifications in separate buffers that
- // are in user-space, rather than stored in a pipe in the OS
- // kernel. The kernel-level notifications are used only to trigger
- // the Reactor to check its notification queue. This enables many
- // more notifications to be stored than would otherwise be the case.
-
- /// Keeps track of allocated arrays of type
- /// <ACE_Notification_Buffer>.
- ACE_Unbounded_Queue <ACE_Notification_Buffer *> alloc_queue_;
-
- /// Keeps track of all pending notifications.
- ACE_Unbounded_Queue <ACE_Notification_Buffer *> notify_queue_;
-
- /// Keeps track of all free buffers.
- ACE_Unbounded_Queue <ACE_Notification_Buffer *> free_queue_;
-
- /// Synchronization for handling of queues.
- ACE_SYNCH_MUTEX notify_queue_lock_;
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-};
-
-/**
- * @class ACE_Select_Reactor_Handler_Repository
- *
- * @brief Used to map <ACE_HANDLE>s onto the appropriate
- * <ACE_Event_Handler> *.
- *
- * This class is necessary to shield differences between UNIX
- * and Win32. In UNIX, <ACE_HANDLE> is an int, whereas in Win32
- * it's a void *. This class hides all these details from the
- * bulk of the <ACE_Select_Reactor> code. All of these methods
- * are called with the main <Select_Reactor> token lock held.
- */
-class ACE_Export ACE_Select_Reactor_Handler_Repository
-{
-public:
- friend class ACE_Select_Reactor_Handler_Repository_Iterator;
-
- // = Initialization and termination methods.
- /// Default "do-nothing" constructor.
- ACE_Select_Reactor_Handler_Repository (ACE_Select_Reactor_Impl &);
-
- /// Destructor.
- ~ACE_Select_Reactor_Handler_Repository (void);
-
- /// Initialize a repository of the appropriate <size>.
- /**
- * On Unix platforms, the size parameter should be as large as the
- * maximum number of file descriptors allowed for a given process.
- * This is necessary since a file descriptor is used to directly
- * index the array of event handlers maintained by the Reactor's
- * handler repository. Direct indexing is used for efficiency
- * reasons.
- */
- int open (size_t size);
-
- /// Close down the repository.
- int close (void);
-
- // = Search structure operations.
-
- /**
- * Return the <ACE_Event_Handler *> associated with <ACE_HANDLE>.
- * If <index_p> is non-0, then return the index location of the
- * <handle>, if found.
- */
- ACE_Event_Handler *find (ACE_HANDLE handle, size_t *index_p = 0);
-
- /// Bind the <ACE_Event_Handler *> to the <ACE_HANDLE> with the
- /// appropriate <ACE_Reactor_Mask> settings.
- int bind (ACE_HANDLE,
- ACE_Event_Handler *,
- ACE_Reactor_Mask);
-
- /// Remove the binding of <ACE_HANDLE> in accordance with the <mask>.
- int unbind (ACE_HANDLE,
- ACE_Reactor_Mask mask);
-
- /// Remove all the <ACE_HANDLE, ACE_Event_Handler> tuples.
- int unbind_all (void);
-
- // = Sanity checking.
-
- // Check the <handle> to make sure it's a valid ACE_HANDLE that
- // within the range of legal handles (i.e., >= 0 && < max_size_).
- int invalid_handle (ACE_HANDLE handle);
-
- // Check the <handle> to make sure it's a valid ACE_HANDLE that
- // within the range of currently registered handles (i.e., >= 0 && <
- // max_handlep1_).
- int handle_in_range (ACE_HANDLE handle);
-
- // = Accessors.
- /// Returns the current table size.
- size_t size (void) const;
-
- /// Maximum ACE_HANDLE value, plus 1.
- size_t max_handlep1 (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Reference to our <Select_Reactor>.
- ACE_Select_Reactor_Impl &select_reactor_;
-
- /// Maximum number of handles.
- ssize_t max_size_;
-
- /// The highest currently active handle, plus 1 (ranges between 0 and
- /// <max_size_>.
- int max_handlep1_;
-
-#if defined (ACE_WIN32)
- // = The mapping from <HANDLES> to <Event_Handlers>.
-
- /**
- * The NT version implements this via a dynamically allocated
- * array of <ACE_Event_Tuple *>. Since NT implements ACE_HANDLE
- * as a void * we can't directly index into this array. Therefore,
- * we just do a linear search (for now). Next, we'll modify
- * things to use hashing or something faster...
- */
- ACE_Event_Tuple *event_handlers_;
-#else
- /**
- * The UNIX version implements this via a dynamically allocated
- * array of <ACE_Event_Handler *> that is indexed directly using
- * the ACE_HANDLE value.
- */
- ACE_Event_Handler **event_handlers_;
-#endif /* ACE_WIN32 */
-};
-
-/**
- * @class ACE_Select_Reactor_Handler_Repository_Iterator
- *
- * @brief Iterate through the <ACE_Select_Reactor_Handler_Repository>.
- */
-class ACE_Export ACE_Select_Reactor_Handler_Repository_Iterator
-{
-public:
- // = Initialization method.
- ACE_Select_Reactor_Handler_Repository_Iterator (const ACE_Select_Reactor_Handler_Repository *s);
-
- /// dtor.
- ~ACE_Select_Reactor_Handler_Repository_Iterator (void);
-
- // = Iteration methods.
-
- /// Pass back the <next_item> that hasn't been seen in the Set.
- /// Returns 0 when all items have been seen, else 1.
- int next (ACE_Event_Handler *&next_item);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Reference to the Handler_Repository we are iterating over.
- const ACE_Select_Reactor_Handler_Repository *rep_;
-
- /// Pointer to the current iteration level.
- ssize_t current_;
-};
-
-/**
- * @class ACE_Select_Reactor_Impl
- *
- * @brief This class simply defines how Select_Reactor's basic interface
- * functions should look like and provides a common base class for
- * <Select_Reactor> using various locking mechanism.
- */
-class ACE_Export ACE_Select_Reactor_Impl : public ACE_Reactor_Impl
-{
-public:
- enum
- {
- /// Default size of the Select_Reactor's handle table.
- DEFAULT_SIZE = ACE_DEFAULT_SELECT_REACTOR_SIZE
- };
-
- /// Constructor.
- ACE_Select_Reactor_Impl (void);
-
- friend class ACE_Select_Reactor_Notify;
- friend class ACE_Select_Reactor_Handler_Repository;
-
- /**
- * Purge any notifications pending in this reactor for the specified
- * <ACE_Event_Handler> object. Returns the number of notifications
- * purged. Returns -1 on error.
- */
- virtual int purge_pending_notifications (ACE_Event_Handler * = 0,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
-
- /// Does the reactor allow the application to resume the handle on
- /// its own ie. can it pass on the control of handle resumption to
- /// the application. The select reactor has no handlers that can be
- /// resumed by the application. So return 0;
- virtual int resumable_handler (void);
-
-protected:
- /// Allow manipulation of the <wait_set_> mask and <ready_set_> mask.
- virtual int bit_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Select_Reactor_Handle_Set &wait_Set,
- int ops);
-
- /// Enqueue ourselves into the list of waiting threads at the
- /// appropriate point specified by <requeue_position_>.
- virtual void renew (void) = 0;
-
- /// Check to see if the <Event_Handler> associated with <handle> is
- /// suspended. Returns 0 if not, 1 if so.
- virtual int is_suspended_i (ACE_HANDLE handle) = 0;
-
- /// Table that maps <ACE_HANDLEs> to <ACE_Event_Handler *>'s.
- ACE_Select_Reactor_Handler_Repository handler_rep_;
-
- /// Tracks handles that are waited for by <select>.
- ACE_Select_Reactor_Handle_Set wait_set_;
-
- /// Tracks handles that are currently suspended.
- ACE_Select_Reactor_Handle_Set suspend_set_;
-
- /// Track HANDLES we are interested in for various events that must
- /// be dispatched *without* going through <select>.
- ACE_Select_Reactor_Handle_Set ready_set_;
-
- /// Defined as a pointer to allow overriding by derived classes...
- ACE_Timer_Queue *timer_queue_;
-
- /// Keeps track of whether we should delete the timer queue (if we
- /// didn't create it, then we don't delete it).
- int delete_timer_queue_;
-
- /// Handle signals without requiring global/static variables.
- ACE_Sig_Handler *signal_handler_;
-
- /// Keeps track of whether we should delete the signal handler (if we
- /// didn't create it, then we don't delete it).
- int delete_signal_handler_;
-
- /// Callback object that unblocks the <ACE_Select_Reactor> if it's
- /// sleeping.
- ACE_Reactor_Notify *notify_handler_;
-
- /// Keeps track of whether we need to delete the notify handler (if
- /// we didn't create it, then we don't delete it).
- int delete_notify_handler_;
-
- /// Restart the <handle_events> event-loop method automatically when
- /// <select> is interrupted via <EINTR>.
- int restart_;
-
- /**
- * Position that the main ACE_Select_Reactor thread is requeued in
- * the list of waiters during a <notify> callback. If this value ==
- * -1 we are requeued at the end of the list. Else if it's 0 then
- * we are requeued at the front of the list. Else if it's > 1 then
- * that indicates the number of waiters to skip over.
- */
- int requeue_position_;
-
- /// True if we've been initialized yet...
- int initialized_;
-
- /// The original thread that created this Select_Reactor.
- ACE_thread_t owner_;
-
- /**
- * True if state has changed during dispatching of
- * <ACE_Event_Handlers>, else false. This is used to determine
- * whether we need to make another trip through the
- * <Select_Reactor>'s <wait_for_multiple_events> loop.
- */
- int state_changed_;
-
- /// Controls/access whether the notify handler should renew the
- /// Select_Reactor's token or not.
- int supress_notify_renew (void);
- void supress_notify_renew (int sr);
-
-private:
- /// Determine whether we should renew Select_Reactor's token after handling
- /// the notification message.
- int supress_renew_;
-
- /// Deny access since member-wise won't work...
- ACE_Select_Reactor_Impl (const ACE_Select_Reactor_Impl &);
- ACE_Select_Reactor_Impl &operator = (const ACE_Select_Reactor_Impl &);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Select_Reactor_Base.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_SELECT_REACTOR_BASE_H */
diff --git a/ace/Select_Reactor_Base.i b/ace/Select_Reactor_Base.i
deleted file mode 100644
index f04446e2e86..00000000000
--- a/ace/Select_Reactor_Base.i
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/Reactor.h"
-
-ACE_INLINE
-ACE_Event_Tuple::~ACE_Event_Tuple (void)
-{
-}
-
-ACE_INLINE
-ACE_Select_Reactor_Notify::~ACE_Select_Reactor_Notify (void)
-{
-}
-
-ACE_INLINE
-ACE_Select_Reactor_Handler_Repository::~ACE_Select_Reactor_Handler_Repository (void)
-{
-}
-
-ACE_INLINE
-ACE_Select_Reactor_Handler_Repository_Iterator::~ACE_Select_Reactor_Handler_Repository_Iterator (void)
-{
-}
-
-ACE_INLINE size_t
-ACE_Select_Reactor_Handler_Repository::size (void) const
-{
- return this->max_size_;
-}
-
-ACE_INLINE
-ACE_Event_Tuple::ACE_Event_Tuple (void)
-: handle_ (ACE_INVALID_HANDLE),
- event_handler_ (0)
-{
-}
-
-ACE_INLINE
-ACE_Event_Tuple::ACE_Event_Tuple (ACE_Event_Handler* eh,
- ACE_HANDLE h)
-: handle_ (h),
- event_handler_ (eh)
-{
-}
-
-ACE_INLINE int
-ACE_Event_Tuple::operator== (const ACE_Event_Tuple &rhs) const
-{
- return this->handle_ == rhs.handle_;
-}
-
-ACE_INLINE int
-ACE_Event_Tuple::operator!= (const ACE_Event_Tuple &rhs) const
-{
- return !(*this == rhs);
-}
-
-ACE_INLINE
-ACE_Select_Reactor_Impl::ACE_Select_Reactor_Impl ()
- : handler_rep_ (*this),
- timer_queue_ (0),
- delete_timer_queue_ (0),
- delete_signal_handler_ (0),
- delete_notify_handler_ (0),
- requeue_position_ (-1), // Requeue at end of waiters by default.
- initialized_ (0),
- state_changed_ (0),
- supress_renew_ (0)
-{
-}
-
-ACE_INLINE int
-ACE_Select_Reactor_Impl::purge_pending_notifications (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
-{
- if (this->notify_handler_ == 0)
- return 0;
- else
- return this->notify_handler_->purge_pending_notifications (eh, mask);
-}
-
-ACE_INLINE int
-ACE_Select_Reactor_Impl::supress_notify_renew (void)
-{
- return this->supress_renew_;
-}
-
-ACE_INLINE void
-ACE_Select_Reactor_Impl::supress_notify_renew (int sr)
-{
- this->supress_renew_ = sr;
-}
diff --git a/ace/Select_Reactor_T.cpp b/ace/Select_Reactor_T.cpp
deleted file mode 100644
index 78c3a3ada1f..00000000000
--- a/ace/Select_Reactor_T.cpp
+++ /dev/null
@@ -1,1517 +0,0 @@
-// $Id$
-
-#ifndef ACE_SELECT_REACTOR_T_C
-#define ACE_SELECT_REACTOR_T_C
-
-#include "ace/Select_Reactor_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-#include "ace/Thread.h"
-#include "ace/Timer_Heap.h"
-
-// @@ The latest version of SunCC can't grok the code if we put inline
-// function here. Therefore, we temporarily disable the code here.
-// We shall turn this back on once we know the problem gets fixed.
-#if 1 // !defined (__ACE_INLINE__)
-#include "ace/Select_Reactor_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Select_Reactor_T, "$Id$")
-
- ACE_ALLOC_HOOK_DEFINE(ACE_Select_Reactor_T)
-
-#if defined (ACE_WIN32)
-#define ACE_SELECT_REACTOR_HANDLE(H) (this->event_handlers_[(H)].handle_)
-#define ACE_SELECT_REACTOR_EVENT_HANDLER(THIS,H) ((THIS)->event_handlers_[(H)].event_handler_)
-#else
-#define ACE_SELECT_REACTOR_HANDLE(H) (H)
-#define ACE_SELECT_REACTOR_EVENT_HANDLER(THIS,H) ((THIS)->event_handlers_[(H)])
-#endif /* ACE_WIN32 */
-
- template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::any_ready
- (ACE_Select_Reactor_Handle_Set &wait_set)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::any_ready");
-
- if (this->mask_signals_)
- {
-#if !defined (ACE_WIN32)
- // Make this call signal safe.
- ACE_Sig_Guard sb;
-#endif /* ACE_WIN32 */
-
- return this->any_ready_i (wait_set);
- }
- return this->any_ready_i (wait_set);
-}
-
- template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::any_ready_i
- (ACE_Select_Reactor_Handle_Set &wait_set)
-{
- int number_ready = this->ready_set_.rd_mask_.num_set ()
- + this->ready_set_.wr_mask_.num_set ()
- + this->ready_set_.ex_mask_.num_set ();
-
- if (number_ready > 0 && &wait_set != &(this->ready_set_))
- {
- wait_set.rd_mask_ = this->ready_set_.rd_mask_;
- wait_set.wr_mask_ = this->ready_set_.wr_mask_;
- wait_set.ex_mask_ = this->ready_set_.ex_mask_;
-
- this->ready_set_.rd_mask_.reset ();
- this->ready_set_.wr_mask_.reset ();
- this->ready_set_.ex_mask_.reset ();
- }
-
- return number_ready;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::handler_i (int signum,
- ACE_Event_Handler **eh)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::handler_i");
- ACE_Event_Handler *handler = this->signal_handler_->handler (signum);
-
- if (handler == 0)
- return -1;
- else if (eh != 0)
- *eh = handler;
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::initialized (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::initialized");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, 0));
- return this->initialized_;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::owner (ACE_thread_t tid,
- ACE_thread_t *o_id)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::owner");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
-
- if (o_id)
- *o_id = this->owner_;
-
- this->owner_ = tid;
-
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::owner (ACE_thread_t *t_id)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::owner");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- *t_id = this->owner_;
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::restart (void)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->restart_;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::restart (int r)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- int current_value = this->restart_;
- this->restart_ = r;
- return current_value;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> void
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::requeue_position (int rp)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::requeue_position");
- ACE_MT (ACE_GUARD (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_));
-#if defined (ACE_WIN32)
- ACE_UNUSED_ARG (rp);
- // Must always requeue ourselves "next" on Win32.
- this->requeue_position_ = 0;
-#else
- this->requeue_position_ = rp;
-#endif /* ACE_WIN32 */
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::requeue_position (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::requeue_position");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->requeue_position_;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> void
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::max_notify_iterations (int iterations)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::max_notify_iterations");
- ACE_MT (ACE_GUARD (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_));
-
- this->notify_handler_->max_notify_iterations (iterations);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::max_notify_iterations (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::max_notify_iterations");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->notify_handler_->max_notify_iterations ();
-}
-
-// Enqueue ourselves into the list of waiting threads.
-template <class ACE_SELECT_REACTOR_TOKEN> void
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::renew (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::renew");
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- if (this->supress_notify_renew () == 0)
- this->token_.renew (this->requeue_position_);
-#endif /* defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) */
-}
-
-template <class ACE_SELECT_REACTOR_MUTEX> void
-ACE_Select_Reactor_Token_T<ACE_SELECT_REACTOR_MUTEX>::dump (void) const
-{
- ACE_TRACE ("ACE_Select_Reactor_Token_T::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class ACE_SELECT_REACTOR_MUTEX>
-ACE_Select_Reactor_Token_T<ACE_SELECT_REACTOR_MUTEX>::ACE_Select_Reactor_Token_T
- (ACE_Select_Reactor_Impl &r,
- int s_queue)
- : select_reactor_ (&r)
-{
- ACE_TRACE ("ACE_Select_Reactor_Token_T::ACE_Select_Reactor_Token");
-
- this->queueing_strategy (s_queue);
-}
-
-template <class ACE_SELECT_REACTOR_MUTEX>
-ACE_Select_Reactor_Token_T<ACE_SELECT_REACTOR_MUTEX>::ACE_Select_Reactor_Token_T (int s_queue)
- : select_reactor_ (0)
-{
- ACE_TRACE ("ACE_Select_Reactor_Token_T::ACE_Select_Reactor_Token");
-
- this->queueing_strategy (s_queue);
-}
-
-template <class ACE_SELECT_REACTOR_MUTEX>
-ACE_Select_Reactor_Token_T<ACE_SELECT_REACTOR_MUTEX>::~ACE_Select_Reactor_Token_T (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_Token_T::~ACE_Select_Reactor_Token_T");
-}
-
-template <class ACE_SELECT_REACTOR_MUTEX> ACE_Select_Reactor_Impl &
-ACE_Select_Reactor_Token_T<ACE_SELECT_REACTOR_MUTEX>::select_reactor (void)
-{
- return *this->select_reactor_;
-}
-
-template <class ACE_SELECT_REACTOR_MUTEX> void
-ACE_Select_Reactor_Token_T<ACE_SELECT_REACTOR_MUTEX>::select_reactor
- (ACE_Select_Reactor_Impl &select_reactor)
-{
- this->select_reactor_ = &select_reactor;
-}
-
-// Used to wakeup the Select_Reactor.
-
-template <class ACE_SELECT_REACTOR_MUTEX> void
-ACE_Select_Reactor_Token_T<ACE_SELECT_REACTOR_MUTEX>::sleep_hook (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_Token_T::sleep_hook");
- if (this->select_reactor_->notify () == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("sleep_hook failed")));
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::notify (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::notify");
-
- ssize_t n = 0;
-
- // Pass over both the Event_Handler *and* the mask to allow the
- // caller to dictate which Event_Handler method the receiver
- // invokes. Note that this call can timeout.
-
- n = this->notify_handler_->notify (eh, mask, timeout);
- return n == -1 ? -1 : 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::resume_handler (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::resume_handler");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->resume_i (handle);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::suspend_handler (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::suspend_handler");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->suspend_i (handle);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::suspend_handlers (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::suspend_handlers");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
-
- ACE_Event_Handler *eh = 0;
-
- for (ACE_Select_Reactor_Handler_Repository_Iterator iter (&this->handler_rep_);
- iter.next (eh) != 0;
- iter.advance ())
- this->suspend_i (eh->get_handle ());
-
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::resume_handlers (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::resume_handlers");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
-
- ACE_Event_Handler *eh = 0;
-
- for (ACE_Select_Reactor_Handler_Repository_Iterator iter (&this->handler_rep_);
- iter.next (eh) != 0;
- iter.advance ())
- this->resume_i (eh->get_handle ());
-
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::register_handler
- (ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::register_handler");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->register_handler_i (handler->get_handle (), handler, mask);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::register_handler
- (ACE_HANDLE handle,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::register_handler");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->register_handler_i (handle, handler, mask);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::register_handler
- (const ACE_Handle_Set &handles,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::register_handler");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->register_handler_i (handles, handler, mask);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::handler
- (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Event_Handler **handler)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::handler");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->handler_i (handle, mask, handler);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::remove_handler
- (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::remove_handler");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->remove_handler_i (handles, mask);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::remove_handler
- (ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::remove_handler");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->remove_handler_i (handler->get_handle (), mask);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::remove_handler
- (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::remove_handler");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->remove_handler_i (handle, mask);
-}
-
-// Performs operations on the "ready" bits.
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::ready_ops
- (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::ready_ops");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->bit_ops (handle,
- mask,
- this->ready_set_,
- ops);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::open
- (size_t size,
- int restart,
- ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq,
- int disable_notify_pipe,
- ACE_Reactor_Notify *notify)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::open");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
-
- // Can't initialize ourselves more than once.
- if (this->initialized_ > 0)
- return -1;
-
- this->owner_ = ACE_Thread::self ();
- this->restart_ = restart;
- this->signal_handler_ = sh;
- this->timer_queue_ = tq;
- this->notify_handler_ = notify;
-
- int result = 0;
-
- // Allows the signal handler to be overridden.
- if (this->signal_handler_ == 0)
- {
- ACE_NEW_RETURN (this->signal_handler_,
- ACE_Sig_Handler,
- -1);
-
- if (this->signal_handler_ == 0)
- result = -1;
- else
- this->delete_signal_handler_ = 1;
- }
-
- // Allows the timer queue to be overridden.
- if (result != -1 && this->timer_queue_ == 0)
- {
- ACE_NEW_RETURN (this->timer_queue_,
- ACE_Timer_Heap,
- -1);
-
- if (this->timer_queue_ == 0)
- result = -1;
- else
- this->delete_timer_queue_ = 1;
- }
-
- // Allows the Notify_Handler to be overridden.
- if (result != -1 && this->notify_handler_ == 0)
- {
- ACE_NEW_RETURN (this->notify_handler_,
- ACE_Select_Reactor_Notify,
- -1);
-
- if (this->notify_handler_ == 0)
- result = -1;
- else
- this->delete_notify_handler_ = 1;
- }
-
- if (result != -1 && this->handler_rep_.open (size) == -1)
- result = -1;
- else if (this->notify_handler_->open (this,
- 0,
- disable_notify_pipe) == -1)
- result = -1;
-
- if (result != -1)
- // We're all set to go.
- this->initialized_ = 1;
- else
- // This will close down all the allocated resources properly.
- this->close ();
-
- return result;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::set_sig_handler
- (ACE_Sig_Handler *signal_handler)
-{
- if (this->signal_handler_ != 0 && this->delete_signal_handler_ != 0)
- delete this->signal_handler_;
- this->signal_handler_ = signal_handler;
- this->delete_signal_handler_ = 0;
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> ACE_Timer_Queue *
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::timer_queue (void) const
-{
- return this->timer_queue_;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::timer_queue
- (ACE_Timer_Queue *tq)
-{
- if (this->timer_queue_ != 0 && this->delete_timer_queue_ != 0)
- delete this->timer_queue_;
- this->timer_queue_ = tq;
- this->delete_timer_queue_ = 0;
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::set_timer_queue
- (ACE_Timer_Queue *tq)
-{
- return this->timer_queue (tq);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN>
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::ACE_Select_Reactor_T
- (ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq,
- int disable_notify_pipe,
- ACE_Reactor_Notify *notify,
- int mask_signals,
- int s_queue)
- : token_ (*this, s_queue),
- lock_adapter_ (token_),
- deactivated_ (0),
- mask_signals_ (mask_signals)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::ACE_Select_Reactor_T");
-
- // First try to open the Reactor with the hard-coded default.
- if (this->open (ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::DEFAULT_SIZE,
- 0,
- sh,
- tq,
- disable_notify_pipe,
- notify) == -1)
- {
- // The hard-coded default Reactor size failed, so attempt to
- // determine the size at run-time by checking the process file
- // descriptor limit on platforms that support this feature.
-
- // There is no need to deallocate resources from previous open()
- // call since the open() method deallocates any resources prior
- // to exiting if an error was encountered.
-
- // Set the default reactor size to be the current limit on the
- // number of file descriptors available to the process. This
- // size is not necessarily the maximum limit.
- if (this->open (ACE::max_handles (),
- 0,
- sh,
- tq,
- disable_notify_pipe,
- notify) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Select_Reactor_T::open ")
- ACE_LIB_TEXT ("failed inside ")
- ACE_LIB_TEXT ("ACE_Select_Reactor_T::CTOR")));
- }
-}
-
-// Initialize ACE_Select_Reactor_T.
-
-template <class ACE_SELECT_REACTOR_TOKEN>
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::ACE_Select_Reactor_T
- (size_t size,
- int rs,
- ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq,
- int disable_notify_pipe,
- ACE_Reactor_Notify *notify,
- int mask_signals,
- int s_queue)
- : token_ (*this, s_queue),
- lock_adapter_ (token_),
- deactivated_ (0),
- mask_signals_ (mask_signals)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::ACE_Select_Reactor_T");
-
- if (this->open (size,
- rs,
- sh,
- tq,
- disable_notify_pipe,
- notify) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Select_Reactor_T::open ")
- ACE_LIB_TEXT ("failed inside ACE_Select_Reactor_T::CTOR")));
-}
-
-// Close down the ACE_Select_Reactor_T instance, detaching any
-// remaining Event_Handers. This had better be called from the main
-// event loop thread...
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::close (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::close");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
-
- if (this->delete_signal_handler_)
- {
- delete this->signal_handler_;
- this->signal_handler_ = 0;
- this->delete_signal_handler_ = 0;
- }
-
- this->handler_rep_.close ();
-
- if (this->delete_timer_queue_)
- {
- delete this->timer_queue_;
- this->timer_queue_ = 0;
- this->delete_timer_queue_ = 0;
- }
-
- if (this->notify_handler_ != 0)
- this->notify_handler_->close ();
-
- if (this->delete_notify_handler_)
- {
- delete this->notify_handler_;
- this->notify_handler_ = 0;
- this->delete_notify_handler_ = 0;
- }
-
- this->initialized_ = 0;
-
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::current_info
- (ACE_HANDLE, size_t &)
-{
- return -1;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN>
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::~ACE_Select_Reactor_T (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::~ACE_Select_Reactor_T");
- this->close ();
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::remove_handler_i
- (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::remove_handler_i");
- ACE_HANDLE h;
-
- ACE_Handle_Set_Iterator handle_iter (handles);
-
- while ((h = handle_iter ()) != ACE_INVALID_HANDLE)
- if (this->remove_handler_i (h, mask) == -1)
- return -1;
-
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::register_handler_i
- (const ACE_Handle_Set &handles,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::register_handler_i");
- ACE_HANDLE h;
-
- ACE_Handle_Set_Iterator handle_iter (handles);
- while ((h = handle_iter ()) != ACE_INVALID_HANDLE)
- if (this->register_handler_i (h, handler, mask) == -1)
- return -1;
-
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::register_handler
- (const ACE_Sig_Set &sigset,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::register_handler");
-
- int result = 0;
-
-#if (ACE_NSIG > 0) && !defined (CHORUS)
- for (int s = 1; s < ACE_NSIG; s++)
- if (sigset.is_member (s)
- && this->signal_handler_->register_handler (s,
- new_sh,
- new_disp) == -1)
- result = -1;
-#else /* ACE_NSIG <= 0 || CHORUS */
- ACE_UNUSED_ARG (sigset);
- ACE_UNUSED_ARG (new_sh);
- ACE_UNUSED_ARG (new_disp);
-#endif /* ACE_NSIG <= 0 || CHORUS */
- return result;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::remove_handler
- (const ACE_Sig_Set &sigset)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::remove_handler");
- int result = 0;
-
-#if (ACE_NSIG > 0) && !defined (CHORUS)
- for (int s = 1; s < ACE_NSIG; s++)
- if (sigset.is_member (s)
- && this->signal_handler_->remove_handler (s) == -1)
- result = -1;
-#else /* ACE_NSIG <= 0 || CHORUS */
- ACE_UNUSED_ARG (sigset);
-#endif /* ACE_NSIG <= 0 || CHORUS */
-
- return result;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::cancel_timer (ACE_Event_Handler *handler,
- int dont_call_handle_close)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::cancel_timer");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
-
- if (this->timer_queue_ != 0)
- return this->timer_queue_->cancel (handler, dont_call_handle_close);
- else
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::cancel_timer (long timer_id,
- const void **arg,
- int dont_call_handle_close)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::cancel_timer");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
-
- if (this->timer_queue_ != 0)
- return this->timer_queue_->cancel (timer_id,
- arg,
- dont_call_handle_close);
- else
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> long
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::schedule_timer
- (ACE_Event_Handler *handler,
- const void *arg,
- const ACE_Time_Value &delay_time,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::schedule_timer");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
-
- return this->timer_queue_->schedule
- (handler,
- arg,
- timer_queue_->gettimeofday () + delay_time,
- interval);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::reset_timer_interval
- (long timer_id,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::reset_timer_interval");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
-
- return this->timer_queue_->reset_interval (timer_id, interval);
-}
-
-// Main event loop driver that blocks for <max_wait_time> before
-// returning (will return earlier if I/O or signal events occur).
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::handle_events
- (ACE_Time_Value &max_wait_time)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::handle_events");
-
- return this->handle_events (&max_wait_time);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::handle_error (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::handle_error");
- if (errno == EINTR)
- return this->restart_;
-#if defined (__MVS__) || defined (ACE_WIN32) || defined (VXWORKS)
- // On MVS Open Edition and Win32, there can be a number of failure
- // codes on a bad socket, so check_handles on anything other than
- // EINTR. VxWorks doesn't even bother to always set errno on error
- // in select (specifically, it doesn't return EBADF for bad FDs).
- else
- return this->check_handles ();
-#else
-# if defined (ACE_PSOS)
- else if (errno == EBADS)
- return this->check_handles ();
-# else
- else if (errno == EBADF)
- return this->check_handles ();
-# endif /* ACE_PSOS */
- else
- return -1;
-#endif /* __MVS__ || ACE_WIN32 */
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> void
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::notify_handle
- (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Handle_Set &ready_mask,
- ACE_Event_Handler *event_handler,
- ACE_EH_PTMF ptmf)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::notify_handle");
- // Check for removed handlers.
- if (event_handler == 0)
- return;
-
- int status = (event_handler->*ptmf) (handle);
-
- if (status < 0)
- this->remove_handler_i (handle, mask);
- else if (status > 0)
- ready_mask.set_bit (handle);
-}
-
-// Perform GET, CLR, SET, and ADD operations on the select()
-// Handle_Sets.
-//
-// GET = 1, Retrieve current value
-// SET = 2, Set value of bits to new mask (changes the entire mask)
-// ADD = 3, Bitwise "or" the value into the mask (only changes
-// enabled bits)
-// CLR = 4 Bitwise "and" the negation of the value out of the mask
-// (only changes enabled bits)
-//
-// Returns the original mask.
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::mask_ops
- (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::mask_ops");
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
- return this->bit_ops (handle, mask,
- this->wait_set_,
- ops);
-}
-
-// Must be called with locks held.
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::handler_i
- (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Event_Handler **handler)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::handler_i");
- ACE_Event_Handler *h = this->handler_rep_.find (handle);
-
- if (h == 0)
- return -1;
- else
- {
- if ((ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK)
- || ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK))
- && this->wait_set_.rd_mask_.is_set (handle) == 0)
- return -1;
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK)
- && this->wait_set_.wr_mask_.is_set (handle) == 0)
- return -1;
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK)
- && this->wait_set_.ex_mask_.is_set (handle) == 0)
- return -1;
- }
-
- if (handler != 0)
- *handler = h;
- return 0;
-}
-
-// Must be called with locks held
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::resume_i (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::resume_i");
- if (this->handler_rep_.find (handle) == 0)
- return -1;
-
- if (this->suspend_set_.rd_mask_.is_set (handle))
- {
- this->wait_set_.rd_mask_.set_bit (handle);
- this->suspend_set_.rd_mask_.clr_bit (handle);
- }
- if (this->suspend_set_.wr_mask_.is_set (handle))
- {
- this->wait_set_.wr_mask_.set_bit (handle);
- this->suspend_set_.wr_mask_.clr_bit (handle);
- }
- if (this->suspend_set_.ex_mask_.is_set (handle))
- {
- this->wait_set_.ex_mask_.set_bit (handle);
- this->suspend_set_.ex_mask_.clr_bit (handle);
- }
- return 0;
-}
-
-// Must be called with locks held
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::suspend_i (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::suspend_i");
- if (this->handler_rep_.find (handle) == 0)
- return -1;
-
- if (this->wait_set_.rd_mask_.is_set (handle))
- {
- this->suspend_set_.rd_mask_.set_bit (handle);
- this->wait_set_.rd_mask_.clr_bit (handle);
- }
- if (this->wait_set_.wr_mask_.is_set (handle))
- {
- this->suspend_set_.wr_mask_.set_bit (handle);
- this->wait_set_.wr_mask_.clr_bit (handle);
- }
- if (this->wait_set_.ex_mask_.is_set (handle))
- {
- this->suspend_set_.ex_mask_.set_bit (handle);
- this->wait_set_.ex_mask_.clr_bit (handle);
- }
- return 0;
-}
-
-// Must be called with locks held
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::is_suspended_i (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::is_suspended_i");
- if (this->handler_rep_.find (handle) == 0)
- return 0;
-
- return this->suspend_set_.rd_mask_.is_set (handle) ||
- this->suspend_set_.wr_mask_.is_set (handle) ||
- this->suspend_set_.ex_mask_.is_set (handle) ;
-
-}
-
-// Must be called with locks held
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::register_handler_i
- (ACE_HANDLE handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::register_handler_i");
-
- // Insert the <handle, event_handle> tuple into the Handler
- // Repository.
- return this->handler_rep_.bind (handle, event_handler, mask);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::remove_handler_i
- (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::remove_handler_i");
-
- // Unbind this handle.
- return this->handler_rep_.unbind (handle, mask);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::work_pending
- (const ACE_Time_Value &max_wait_time)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::work_pending");
-
- ACE_Time_Value mwt (max_wait_time);
- ACE_MT (ACE_Countdown_Time countdown (&mwt));
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN,
- ace_mon,
- this->token_,
- -1));
-
- if (this->deactivated_)
- return 0;
-
- // Update the countdown to reflect time waiting for the mutex.
- ACE_MT (countdown.update ());
-
- ACE_Time_Value timer_buf (0);
- ACE_Time_Value *this_timeout =
- this->timer_queue_->calculate_timeout (&mwt, &timer_buf);
-
- // Check if we have timers to fire.
- int timers_pending =
- (this_timeout != 0 && *this_timeout != max_wait_time ? 1 : 0);
-
- u_long width = (u_long) this->handler_rep_.max_handlep1 ();
-
- ACE_Select_Reactor_Handle_Set fd_set;
- fd_set.rd_mask_ = this->wait_set_.rd_mask_;
- fd_set.wr_mask_ = this->wait_set_.wr_mask_;
- fd_set.ex_mask_ = this->wait_set_.ex_mask_;
-
- int nfds = ACE_OS::select (int (width),
- fd_set.rd_mask_,
- fd_set.wr_mask_,
- fd_set.ex_mask_,
- this_timeout);
-
- // If timers are pending, override any timeout from the select()
- // call.
- return (nfds == 0 && timers_pending != 0 ? 1 : nfds);
-}
-
-// Must be called with lock held.
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::wait_for_multiple_events
- (ACE_Select_Reactor_Handle_Set &dispatch_set,
- ACE_Time_Value *max_wait_time)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::wait_for_multiple_events");
- u_long width = 0;
- ACE_Time_Value timer_buf (0);
- ACE_Time_Value *this_timeout;
-
- int number_of_active_handles = this->any_ready (dispatch_set);
-
- // If there are any bits enabled in the <ready_set_> then we'll
- // handle those first, otherwise we'll block in <select>.
-
- if (number_of_active_handles == 0)
- {
- do
- {
- this_timeout =
- this->timer_queue_->calculate_timeout (max_wait_time,
- &timer_buf);
- width = (u_long) this->handler_rep_.max_handlep1 ();
-
- dispatch_set.rd_mask_ = this->wait_set_.rd_mask_;
- dispatch_set.wr_mask_ = this->wait_set_.wr_mask_;
- dispatch_set.ex_mask_ = this->wait_set_.ex_mask_;
- number_of_active_handles = ACE_OS::select (int (width),
- dispatch_set.rd_mask_,
- dispatch_set.wr_mask_,
- dispatch_set.ex_mask_,
- this_timeout);
- }
- while (number_of_active_handles == -1 && this->handle_error () > 0);
-
- if (number_of_active_handles > 0)
- {
-#if !defined (ACE_WIN32)
- // Resynchronize the fd_sets so their "max" is set properly.
- dispatch_set.rd_mask_.sync (this->handler_rep_.max_handlep1 ());
- dispatch_set.wr_mask_.sync (this->handler_rep_.max_handlep1 ());
- dispatch_set.ex_mask_.sync (this->handler_rep_.max_handlep1 ());
-#endif /* ACE_WIN32 */
- }
- else if (number_of_active_handles == -1)
- {
- // Normally, select() will reset the bits in dispatch_set
- // so that only those filed descriptors that are ready will
- // have bits set. However, when an error occurs, the bit
- // set remains as it was when the select call was first made.
- // Thus, we now have a dispatch_set that has every file
- // descriptor that was originally waited for, which is not
- // correct. We must clear all the bit sets because we
- // have no idea if any of the file descriptors is ready.
- //
- // NOTE: We dont have a test case to reproduce this
- // problem. But pleae dont ignore this and remove it off.
- dispatch_set.rd_mask_.reset ();
- dispatch_set.wr_mask_.reset ();
- dispatch_set.ex_mask_.reset ();
- }
- }
-
- // Return the number of events to dispatch.
- return number_of_active_handles;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::dispatch_timer_handlers
- (int &number_of_handlers_dispatched)
-{
- number_of_handlers_dispatched += this->timer_queue_->expire ();
- if (this->state_changed_)
- return -1;
- else
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::dispatch_notification_handlers
- (ACE_Select_Reactor_Handle_Set &dispatch_set,
- int &number_of_active_handles,
- int &number_of_handlers_dispatched)
-{
- // Check to see if the ACE_HANDLE associated with the
- // Select_Reactor's notify hook is enabled. If so, it means that
- // one or more other threads are trying to update the
- // ACE_Select_Reactor_T's internal tables or the notify pipe is
- // enabled. We'll handle all these threads and notifications, and
- // then break out to continue the event loop.
-
- int n = this->notify_handler_->dispatch_notifications (number_of_active_handles,
- dispatch_set.rd_mask_);
- if (n == -1)
- return -1;
- else
- number_of_handlers_dispatched += n;
-
- return this->state_changed_ ? -1 : 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::dispatch_io_set
- (int number_of_active_handles,
- int &number_of_handlers_dispatched,
- int mask,
- ACE_Handle_Set &dispatch_mask,
- ACE_Handle_Set &ready_mask,
- ACE_EH_PTMF callback)
-{
- ACE_HANDLE handle;
-
- ACE_Handle_Set_Iterator handle_iter (dispatch_mask);
-
- while ((handle = handle_iter ()) != ACE_INVALID_HANDLE
- && number_of_handlers_dispatched < number_of_active_handles
- && this->state_changed_ == 0)
- {
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Select_Reactor_T::dispatching\n")));
- number_of_handlers_dispatched++;
- this->notify_handle (handle,
- mask,
- ready_mask,
- this->handler_rep_.find (handle),
- callback);
- }
-
- if (number_of_handlers_dispatched > 0 && this->state_changed_)
- return -1;
-
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::dispatch_io_handlers
- (ACE_Select_Reactor_Handle_Set &dispatch_set,
- int &number_of_active_handles,
- int &number_of_handlers_dispatched)
-{
- // Handle output events (this code needs to come first to handle the
- // obscure case of piggy-backed data coming along with the final
- // handshake message of a nonblocking connection).
-
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Select_Reactor_T::dispatch - WRITE\n")));
- if (this->dispatch_io_set (number_of_active_handles,
- number_of_handlers_dispatched,
- ACE_Event_Handler::WRITE_MASK,
- dispatch_set.wr_mask_,
- this->ready_set_.wr_mask_,
- &ACE_Event_Handler::handle_output) == -1)
- {
- number_of_active_handles -= number_of_handlers_dispatched;
- return -1;
- }
-
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Select_Reactor_T::dispatch - EXCEPT\n")));
- if (this->dispatch_io_set (number_of_active_handles,
- number_of_handlers_dispatched,
- ACE_Event_Handler::EXCEPT_MASK,
- dispatch_set.ex_mask_,
- this->ready_set_.ex_mask_,
- &ACE_Event_Handler::handle_exception) == -1)
- {
- number_of_active_handles -= number_of_handlers_dispatched;
- return -1;
- }
-
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Select_Reactor_T::dispatch - READ\n")));
- if (this->dispatch_io_set (number_of_active_handles,
- number_of_handlers_dispatched,
- ACE_Event_Handler::READ_MASK,
- dispatch_set.rd_mask_,
- this->ready_set_.rd_mask_,
- &ACE_Event_Handler::handle_input) == -1)
- {
- number_of_active_handles -= number_of_handlers_dispatched;
- return -1;
- }
-
- number_of_active_handles -= number_of_handlers_dispatched;
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::dispatch
- (int active_handle_count,
- ACE_Select_Reactor_Handle_Set &dispatch_set)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::dispatch");
-
- int io_handlers_dispatched = 0;
- int other_handlers_dispatched = 0;
- int signal_occurred = 0;
- // The following do/while loop keeps dispatching as long as there
- // are still active handles. Note that the only way we should ever
- // iterate more than once through this loop is if signals occur
- // while we're dispatching other handlers.
-
- do
- {
- // Note that we keep track of changes to our state. If any of
- // the dispatch_*() methods below return -1 it means that the
- // <wait_set_> state has changed as the result of an
- // <ACE_Event_Handler> being dispatched. This means that we
- // need to bail out and rerun the select() loop since our
- // existing notion of handles in <dispatch_set> may no longer be
- // correct.
- //
- // In the beginning, our state starts out unchanged. After
- // every iteration (i.e., due to signals), our state starts out
- // unchanged again.
-
- this->state_changed_ = 0;
-
- // Perform the Template Method for dispatching all the handlers.
-
- // First check for interrupts.
- if (active_handle_count == -1)
- {
- // Bail out -- we got here since <select> was interrupted.
- if (ACE_Sig_Handler::sig_pending () != 0)
- {
- ACE_Sig_Handler::sig_pending (0);
-
- // If any HANDLES in the <ready_set_> are activated as a
- // result of signals they should be dispatched since
- // they may be time critical...
- active_handle_count = this->any_ready (dispatch_set);
-
- // Record the fact that the Reactor has dispatched a
- // handle_signal() method. We need this to return the
- // appropriate count below.
- signal_occurred = 1;
- }
- else
- return -1;
- }
-
- // Handle timers early since they may have higher latency
- // constraints than I/O handlers. Ideally, the order of
- // dispatching should be a strategy...
- else if (this->dispatch_timer_handlers (other_handlers_dispatched) == -1)
- // State has changed or timer queue has failed, exit loop.
- break;
-
- // Check to see if there are no more I/O handles left to
- // dispatch AFTER we've handled the timers...
- else if (active_handle_count == 0)
- return io_handlers_dispatched
- + other_handlers_dispatched
- + signal_occurred;
-
- // Next dispatch the notification handlers (if there are any to
- // dispatch). These are required to handle multi-threads that
- // are trying to update the <Reactor>.
-
- else if (this->dispatch_notification_handlers
- (dispatch_set,
- active_handle_count,
- other_handlers_dispatched) == -1)
- // State has changed or a serious failure has occured, so exit
- // loop.
- break;
-
- // Finally, dispatch the I/O handlers.
- else if (this->dispatch_io_handlers
- (dispatch_set,
- active_handle_count,
- io_handlers_dispatched) == -1)
- // State has changed, so exit loop.
- break;
- }
- while (active_handle_count > 0);
-
- return io_handlers_dispatched + other_handlers_dispatched + signal_occurred;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::release_token (void)
-{
-#if defined (ACE_WIN32)
- this->token_.release ();
- return (int) EXCEPTION_CONTINUE_SEARCH;
-#else
- return 0;
-#endif /* ACE_WIN32 */
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::handle_events
- (ACE_Time_Value *max_wait_time)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::handle_events");
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-
- // Stash the current time -- the destructor of this object will
- // automatically compute how much time elapsed since this method was
- // called.
- ACE_Countdown_Time countdown (max_wait_time);
-
- ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1);
-
- if (ACE_OS::thr_equal (ACE_Thread::self (),
- this->owner_) == 0 || this->deactivated_)
- return -1;
-
- // Update the countdown to reflect time waiting for the mutex.
- countdown.update ();
-#else
- if (this->deactivated_)
- return -1;
-#endif /* ACE_MT_SAFE */
-
- return this->handle_events_i (max_wait_time);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::handle_events_i
- (ACE_Time_Value *max_wait_time)
-{
- int result = -1;
-
- ACE_SEH_TRY
- {
- ACE_Select_Reactor_Handle_Set dispatch_set;
-
- int number_of_active_handles =
- this->wait_for_multiple_events (dispatch_set,
- max_wait_time);
-
- result = this->dispatch (number_of_active_handles,
- dispatch_set);
- }
- ACE_SEH_EXCEPT (this->release_token ())
- {
- // As it stands now, we catch and then rethrow all Win32
- // structured exceptions so that we can make sure to release the
- // <token_> lock correctly.
- }
-
- this->state_changed_ = 1;
-
- return result;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::check_handles (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::check_handles");
-
-#if defined (ACE_WIN32) || defined (__MVS__) || defined (ACE_PSOS) || defined (VXWORKS)
- ACE_Time_Value time_poll = ACE_Time_Value::zero;
- ACE_Handle_Set rd_mask;
-#endif /* ACE_WIN32 || MVS || ACE_PSOS || VXWORKS */
-
- ACE_Event_Handler *eh = 0;
- int result = 0;
-
- for (ACE_Select_Reactor_Handler_Repository_Iterator iter (&this->handler_rep_);
- iter.next (eh) != 0;
- iter.advance ())
- {
- ACE_HANDLE handle = eh->get_handle ();
-
- // Skip back to the beginning of the loop if the HANDLE is
- // invalid.
- if (handle == ACE_INVALID_HANDLE)
- continue;
-
-#if defined (ACE_WIN32) || defined (__MVS__) || defined (ACE_PSOS) || defined (VXWORKS)
- // Win32 needs to do the check this way because fstat won't work on
- // a socket handle. MVS Open Edition needs to do it this way because,
- // even though the docs say to check a handle with either select or
- // fstat, the fstat method always says the handle is ok.
- // pSOS needs to do it this way because file handles and socket handles
- // are maintained by separate pieces of the system. VxWorks needs the select
- // variant since fstat always returns an error on socket FDs.
- rd_mask.set_bit (handle);
-
- int select_width;
-# if defined (ACE_WIN64)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- select_width = 0;
-# else
- select_width = int (handle) + 1;
-# endif /* ACE_WIN64 */
-
- if (ACE_OS::select (select_width,
- rd_mask, 0, 0,
- &time_poll) < 0)
- {
- result = 1;
- this->remove_handler_i (handle,
- ACE_Event_Handler::ALL_EVENTS_MASK);
- }
- rd_mask.clr_bit (handle);
-#else /* !ACE_WIN32 && !MVS && !ACE_PSOS */
- struct stat temp;
-
- if (ACE_OS::fstat (handle, &temp) == -1)
- {
- result = 1;
- this->remove_handler_i (handle,
- ACE_Event_Handler::ALL_EVENTS_MASK);
- }
-#endif /* ACE_WIN32 || MVS || ACE_PSOS */
- }
-
- return result;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> void
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::dump (void) const
-{
- ACE_TRACE ("ACE_Select_Reactor_T::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- this->timer_queue_->dump ();
- this->handler_rep_.dump ();
- this->signal_handler_->dump ();
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("delete_signal_handler_ = %d\n"),
- this->delete_signal_handler_));
-
- ACE_HANDLE h;
-
- for (ACE_Handle_Set_Iterator handle_iter_wr (this->wait_set_.wr_mask_);
- (h = handle_iter_wr ()) != ACE_INVALID_HANDLE;
- ++handle_iter_wr)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("write_handle = %d\n"), h));
-
- for (ACE_Handle_Set_Iterator handle_iter_rd (this->wait_set_.rd_mask_);
- (h = handle_iter_rd ()) != ACE_INVALID_HANDLE;
- ++handle_iter_rd)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("read_handle = %d\n"), h));
-
- for (ACE_Handle_Set_Iterator handle_iter_ex (this->wait_set_.ex_mask_);
- (h = handle_iter_ex ()) != ACE_INVALID_HANDLE;
- ++handle_iter_ex)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("except_handle = %d\n"), h));
-
- for (ACE_Handle_Set_Iterator handle_iter_wr_ready (this->ready_set_.wr_mask_);
- (h = handle_iter_wr_ready ()) != ACE_INVALID_HANDLE;
- ++handle_iter_wr_ready)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("write_handle_ready = %d\n"), h));
-
- for (ACE_Handle_Set_Iterator handle_iter_rd_ready (this->ready_set_.rd_mask_);
- (h = handle_iter_rd_ready ()) != ACE_INVALID_HANDLE;
- ++handle_iter_rd_ready)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("read_handle_ready = %d\n"), h));
-
- for (ACE_Handle_Set_Iterator handle_iter_ex_ready (this->ready_set_.ex_mask_);
- (h = handle_iter_ex_ready ()) != ACE_INVALID_HANDLE;
- ++handle_iter_ex_ready)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("except_handle_ready = %d\n"), h));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("restart_ = %d\n"), this->restart_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nrequeue_position_ = %d\n"), this->requeue_position_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ninitialized_ = %d\n"), this->initialized_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nowner_ = %d\n"), this->owner_));
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- this->notify_handler_->dump ();
- this->token_.dump ();
-#endif /* ACE_MT_SAFE */
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-#endif /* ACE_SELECT_REACTOR_T_C */
diff --git a/ace/Select_Reactor_T.h b/ace/Select_Reactor_T.h
deleted file mode 100644
index ca51ff20d0d..00000000000
--- a/ace/Select_Reactor_T.h
+++ /dev/null
@@ -1,778 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Select_Reactor_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SELECT_REACTOR_T_H
-#define ACE_SELECT_REACTOR_T_H
-#include "ace/pre.h"
-
-#include "ace/Select_Reactor_Base.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Select_Reactor_Token_T
- *
- * @brief Used as a synchronization mechanism to coordinate concurrent
- * access to a Select_Reactor object.
- *
- * This class is used to make the <ACE_Select_Reactor>
- * thread-safe. By default, the thread that runs the
- * <handle_events> loop holds the token, even when it is blocked
- * in the <select> call. Whenever another thread wants to
- * access the <ACE_Reactor> via its <register_handler>,
- * <remove_handler>, etc. methods) it must ask the token owner
- * for temporary release of the token. To accomplish this, the
- * owner of a token must define a <sleep_hook> through which it
- * can be notified to temporarily release the token if the
- * current situation permits this.
- * The owner of the token is responsible for deciding which
- * request for the token can be granted. By using the
- * <ACE_Token::renew> API, the thread that releases the token
- * temporarily can specify to get the token back right after the
- * other thread has completed using the token. Thus, there is a
- * dedicated thread that owns the token ``by default.'' This
- * thread grants other threads access to the token by ensuring
- * that whenever somebody else has finished using the token the
- * ``default owner'' first holds the token again, i.e., the
- * owner has the chance to schedule other threads.
- * The thread that most likely needs the token most of the time
- * is the thread running the dispatch loop. Typically the token
- * gets released prior to entering the <select> call and gets
- * ``re-acquired'' as soon as the <select> call returns, which
- * results probably in many calls to <release>/<acquire> that
- * are not really needed since no other thread would need the
- * token in the meantime. That's why the dispatcher thread is
- * chosen to be the owner of the token.
- * In case the token would have been released while in <select>
- * there would be a good chance that the <fd_set> could have
- * been modified while the <select> returns from blocking and
- * trying to re-acquire the lock. Through the token mechanism
- * it is ensured that while another thread is holding the token,
- * the dispatcher thread is blocked in the <renew> call and not
- * in <select>. Thus, it is not critical to change the
- * <fd_set>. The implementation of the <sleep_hook> mechanism
- * provided by the <ACE_Select_Reactor_Token> enables the
- * default owner to be the thread that executes the dispatch
- * loop.
- */
-template <class ACE_SELECT_REACTOR_MUTEX>
-class ACE_Select_Reactor_Token_T : public ACE_SELECT_REACTOR_MUTEX
-{
-public:
-
- ACE_Select_Reactor_Token_T (ACE_Select_Reactor_Impl &r,
- int s_queue = ACE_SELECT_TOKEN::FIFO);
- ACE_Select_Reactor_Token_T (int s_queue = ACE_SELECT_TOKEN::FIFO);
- virtual ~ACE_Select_Reactor_Token_T (void);
-
- /// Called just before the ACE_Event_Handler goes to sleep.
- virtual void sleep_hook (void);
-
- /// Get the select_reactor implementation
- ACE_Select_Reactor_Impl &select_reactor (void);
-
- /// Set the select_reactor implementation
- void select_reactor (ACE_Select_Reactor_Impl &);
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- ACE_Select_Reactor_Impl *select_reactor_;
-};
-
-/**
- * @class ACE_Select_Reactor_T
- *
- * @brief An object oriented event demultiplexor and event handler
- * dispatcher.
- *
- * The <ACE_Select_Reactor> is an object-oriented event
- * demultiplexor and event handler dispatcher. The sources of
- * events that the <ACE_Select_Reactor> waits for and dispatches
- * includes I/O events, signals, and timer events. All public
- * methods acquire the main <ACE_Select_Reactor_Token> lock and
- * call down to private or protected methods, which assume that
- * the lock is held and so therefore don't (re)acquire the lock.
- */
-template <class ACE_SELECT_REACTOR_TOKEN>
-class ACE_Select_Reactor_T : public ACE_Select_Reactor_Impl
-{
-public:
-
- // = Initialization and termination methods.
-
- /// If <disable_notify_pipe> is non-0 then the reactor will
- /// not create a notification pipe, which will save two I/O handles
- /// but will elide the <notify()> feature. If <mask_signals> is
- /// 1 the reactor is "signal-safe" when dispatching handlers to
- /// signal events, whereas if <mask_signals> is 0 the reactor will
- /// be more efficient, but not signal-safe (which may be perfectly
- /// fine if your application doesn't use the reactor to handle signals).
- ACE_Select_Reactor_T (ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0,
- int disable_notify_pipe = 0,
- ACE_Reactor_Notify *notify = 0,
- int mask_signals = 1,
- int s_queue = ACE_SELECT_TOKEN::FIFO);
-
- /// Initialize @c ACE_Select_Reactor with size @arg size.
- /// If @arg disable_notify_pipe is non-0 then the reactor will
- /// not create a notification pipe, which will save two I/O handles
- /// but will elide the notification feature. If @arg mask_signals is
- /// 1 the reactor is "signal-safe" when dispatching handlers to
- /// signal events, whereas if @arg mask_signals is 0 the reactor will
- /// be more efficient, but not signal-safe (which may be perfectly
- /// fine if your application doesn't use the reactor to handle signals).
- /**
- * @note On Unix platforms, the size parameter should be as large as
- * the maximum number of file descriptors allowed for a given
- * process. This is necessary since a file descriptor is used
- * to directly index the array of event handlers maintained by
- * the Reactor's handler repository. Direct indexing is used
- * for efficiency reasons.
- */
- ACE_Select_Reactor_T (size_t size,
- int restart = 0,
- ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0,
- int disable_notify_pipe = 0,
- ACE_Reactor_Notify *notify = 0,
- int mask_signals = 1,
- int s_queue = ACE_SELECT_TOKEN::FIFO);
-
- /**
- * Initialize the @c ACE_Select_Reactor to manage
- * @arg max_number_of_handles. If @arg restart is non-0 then the
- * @c ACE_Reactor's @c handle_events method will be restarted
- * automatically when @c EINTR occurs. If @arg signal_handler or
- * @arg timer_queue are non-0 they are used as the signal handler and
- * timer queue, respectively. If @arg disable_notify_pipe is non-0 the
- * notification pipe is not created, thereby saving two I/O handles.
- *
- * @note On Unix platforms, the maximum_number_of_handles parameter
- * should be as large as the maximum number of file
- * descriptors allowed for a given process. This is necessary
- * since a file descriptor is used to directly index the array
- * of event handlers maintained by the Reactor's handler
- * repository. Direct indexing is used for efficiency
- * reasons.
- */
- virtual int open (size_t max_number_of_handles = DEFAULT_SIZE,
- int restart = 0,
- ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0,
- int disable_notify_pipe = 0,
- ACE_Reactor_Notify * = 0);
-
- /// Returns -1 (not used in this implementation);
- virtual int current_info (ACE_HANDLE, size_t & /* size */);
-
- /// Use a user specified signal handler instead.
- virtual int set_sig_handler (ACE_Sig_Handler *signal_handler);
-
- /// @deprecated The following method is deprecated. Use <timer_queue> instead.
- /// Set a user specified timer queue.
- virtual int set_timer_queue (ACE_Timer_Queue *tq);
-
- /// Set a user-specified timer queue.
- virtual int timer_queue (ACE_Timer_Queue *tq);
-
- /// Return the current <ACE_Timer_Queue>.
- virtual ACE_Timer_Queue *timer_queue (void) const;
-
- /// Close down the select_reactor and release all of its resources.
- virtual int close (void);
-
- /// Close down the select_reactor and release all of its resources.
- virtual ~ACE_Select_Reactor_T (void);
-
- // = Event loop drivers.
-
- /**
- * Returns non-zero if there are I/O events "ready" for dispatching,
- * but does not actually dispatch the event handlers. By default,
- * don't block while checking this, i.e., "poll".
- */
- virtual int work_pending (const ACE_Time_Value &max_wait_time = ACE_Time_Value::zero);
-
- /**
- * This event loop driver that blocks for <max_wait_time> before
- * returning. It will return earlier if timer events, I/O events,
- * or signal events occur. Note that <max_wait_time> can be 0, in
- * which case this method blocks indefinitely until events occur.
- *
- * <max_wait_time> is decremented to reflect how much time this call
- * took. For instance, if a time value of 3 seconds is passed to
- * handle_events and an event occurs after 2 seconds,
- * <max_wait_time> will equal 1 second. This can be used if an
- * application wishes to handle events for some fixed amount of
- * time.
- *
- * Returns the total number of I/O and Timer <ACE_Event_Handler>s
- * that were dispatched, 0 if the <max_wait_time> elapsed without
- * dispatching any handlers, or -1 if something goes wrong.
- *
- * Current <alertable_handle_events> is identical to
- * <handle_events>.
- */
- virtual int handle_events (ACE_Time_Value *max_wait_time = 0);
- virtual int alertable_handle_events (ACE_Time_Value *max_wait_time = 0);
-
- /**
- * This method is just like the one above, except the
- * <max_wait_time> value is a reference and can therefore never be
- * NULL.
- *
- * Current <alertable_handle_events> is identical to
- * <handle_events>.
- */
- virtual int handle_events (ACE_Time_Value &max_wait_time);
- virtual int alertable_handle_events (ACE_Time_Value &max_wait_time);
-
- // = Event handling control.
-
- /**
- * Return the status of Reactor. If this function returns 0, the reactor is
- * actively handling events. If it returns non-zero, <handling_events> and
- * <handle_alertable_events> return -1 immediately.
- */
- virtual int deactivated (void);
-
- /**
- * Control whether the Reactor will handle any more incoming events or not.
- * If <do_stop> == 1, the Reactor will be disabled. By default, a reactor
- * is in active state and can be deactivated/reactived as wish.
- */
- virtual void deactivate (int do_stop);
-
- // = Register and remove <ACE_Event_Handler>s.
- /**
- * Register a <eh> with a particular <mask>. Note that the
- * <Select_Reactor> will call <ACE_Event_Handler::get_handle> to
- * extract the underlying I/O handle.
- */
- virtual int register_handler (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask);
-
- /**
- * Register a <eh> with a particular <mask>. Note that since the
- * <handle> is given the Select_Reactor will *not* call
- * <ACE_Event_Handler::get_handle> to extract the underlying I/O
- * handle.
- */
- virtual int register_handler (ACE_HANDLE handle,
- ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask);
-
-#if defined (ACE_WIN32)
-
- // Originally this interface was available for all platforms, but
- // because ACE_HANDLE is an int on non-Win32 platforms, compilers
- // are not able to tell the difference between
- // register_handler(ACE_Event_Handler*,ACE_Reactor_Mask) and
- // register_handler(ACE_Event_Handler*,ACE_HANDLE). Therefore, we
- // have restricted this method to Win32 only.
-
- /// Not implemented.
- virtual int register_handler (ACE_Event_Handler *event_handler,
- ACE_HANDLE event_handle = ACE_INVALID_HANDLE);
-
-#endif /* ACE_WIN32 */
-
- /// Not implemented.
- virtual int register_handler (ACE_HANDLE event_handle,
- ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /// Register <eh> with all the <handles> in the <Handle_Set>.
- virtual int register_handler (const ACE_Handle_Set &handles,
- ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask);
-
- /**
- * Register <new_sh> to handle the signal <signum> using the
- * <new_disp>. Returns the <old_sh> that was previously registered
- * (if any), along with the <old_disp> of the signal handler.
- */
- virtual int register_handler (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp = 0,
- ACE_Event_Handler **old_sh = 0,
- ACE_Sig_Action *old_disp = 0);
-
- /// Registers <new_sh> to handle a set of signals <sigset> using the
- /// <new_disp>.
- virtual int register_handler (const ACE_Sig_Set &sigset,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp = 0);
-
- /**
- * Removes the <mask> binding of <eh> from the Select_Reactor. If
- * there are no more bindings for this <eh> then it is removed from
- * the Select_Reactor. Note that the Select_Reactor will call
- * <ACE_Event_Handler::get_handle> to extract the underlying I/O
- * handle.
- */
- virtual int remove_handler (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask);
-
- /**
- * Removes the <mask> bind of <Event_Handler> whose handle is
- * <handle> from the Select_Reactor. If there are no more bindings
- * for this <eh> then it is removed from the Select_Reactor.
- */
- virtual int remove_handler (ACE_HANDLE handle,
- ACE_Reactor_Mask);
-
- /**
- * Removes all the <mask> bindings for handles in the <handle_set>
- * bind of <Event_Handler>. If there are no more bindings for any
- * of these handlers then they are removed from the Select_Reactor.
- */
- virtual int remove_handler (const ACE_Handle_Set &handle_set,
- ACE_Reactor_Mask);
-
- /**
- * Remove the ACE_Event_Handler currently associated with <signum>.
- * <sigkey> is ignored in this implementation since there is only
- * one instance of a signal handler. Install the new disposition
- * (if given) and return the previous disposition (if desired by the
- * caller). Returns 0 on success and -1 if <signum> is invalid.
- */
- virtual int remove_handler (int signum,
- ACE_Sig_Action *new_disp,
- ACE_Sig_Action *old_disp = 0,
- int sigkey = -1);
-
- /// Calls <remove_handler> for every signal in <sigset>.
- virtual int remove_handler (const ACE_Sig_Set &sigset);
-
- // = Suspend and resume Handlers.
-
- /// Temporarily suspend the <Event_Handler> associated with <eh>.
- virtual int suspend_handler (ACE_Event_Handler *eh);
-
- /// Temporarily suspend the <Event_Handler> associated with <handle>.
- virtual int suspend_handler (ACE_HANDLE handle);
-
- /// Suspend all <handles> in handle set temporarily.
- virtual int suspend_handler (const ACE_Handle_Set &handles);
-
- /// Suspend all the <Event_Handlers> in the Select_Reactor.
- virtual int suspend_handlers (void);
-
- /// Resume a temporarily suspend <Event_Handler> associated with
- /// <eh>.
- virtual int resume_handler (ACE_Event_Handler *eh);
-
- /// Resume a temporarily suspended <Event_Handler> associated with
- /// <handle>.
- virtual int resume_handler (ACE_HANDLE handle);
-
- /// Resume all <handles> in handle set.
- virtual int resume_handler (const ACE_Handle_Set &handles);
-
- /// Resume all the <Event_Handlers> in the Select_Reactor.
- virtual int resume_handlers (void);
-
- /**
- * Return 1 if we any event associations were made by the reactor
- * for the handles that it waits on, 0 otherwise. Since the
- * Select_Reactor does not do any event associations, this function
- * always return 0.
- */
- virtual int uses_event_associations (void);
-
- // = Timer management.
- /**
- * Schedule an ACE_Event_Handler that will expire after an amount
- * of time. The return value of this method, a timer_id value,
- * uniquely identifies the event_handler in the ACE_Reactor's
- * internal list of timers.
- * This timer_id value can be used to cancel the timer
- * with the cancel_timer() call.
- *
- * @see cancel_timer()
- * @see reset_timer_interval()
- *
- * @param event_handler Event handler to schedule on reactor
- * @param arg Argument passed to the handle_timeout() method of event_handler
- * @param delay Time interval after which the timer will expire
- * @param interval Time interval after which the timer will be automatically rescheduled
- * @return -1 on failure, a timer_id value on success
- */
- virtual long schedule_timer (ACE_Event_Handler * event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval = ACE_Time_Value::zero);
-
- /**
- * Resets the interval of the timer represented by <timer_id> to
- * <interval>, which is specified in relative time to the current
- * <gettimeofday>. If <interval> is equal to
- * <ACE_Time_Value::zero>, the timer will become a non-rescheduling
- * timer. Returns 0 if successful, -1 if not.
- */
- virtual int reset_timer_interval (long timer_id,
- const ACE_Time_Value &interval);
-
- /**
- * Cancel all <event_handlers> that match the address of
- * <event_handler>. If <dont_call_handle_close> is 0 then the
- * <handle_close> method of <event_handler> will be invoked.
- * Returns number of handler's cancelled.
- */
- virtual int cancel_timer (ACE_Event_Handler *event_handler,
- int dont_call_handle_close = 1);
-
- /**
- * Cancel the single <ACE_Event_Handler> that matches the <timer_id>
- * value (which was returned from the <schedule> method). If arg is
- * non-NULL then it will be set to point to the ``magic cookie''
- * argument passed in when the <Event_Handler> was registered. This
- * makes it possible to free up the memory and avoid memory leaks.
- * If <dont_call_handle_close> is 0 then the <handle_close> method
- * of <event_handler> will be invoked. Returns 1 if cancellation
- * succeeded and 0 if the <timer_id> wasn't found.
- */
- virtual int cancel_timer (long timer_id,
- const void **arg = 0,
- int dont_call_handle_close = 1);
-
- // = High-level Event_Handler scheduling operations
-
- /// ADD the dispatch MASK "bit" bound with the <eh> and the <mask>.
- virtual int schedule_wakeup (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask);
-
- /// ADD the dispatch MASK "bit" bound with the <handle> and the <mask>.
- virtual int schedule_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
- /// CLR the dispatch MASK "bit" bound with the <eh> and the <mask>.
- virtual int cancel_wakeup (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask);
-
- /// CLR the dispatch MASK "bit" bound with the <handle> and the <mask>.
- virtual int cancel_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
- // = Notification methods.
- /**
- * Called by a thread when it wants to unblock the Select_Reactor.
- * This wakeups the <ACE_Select_Reactor> if currently blocked in
- * <select>/<poll>. Pass over both the <Event_Handler> *and* the
- * <mask> to allow the caller to dictate which <Event_Handler>
- * method the <Select_Reactor> will invoke. The <ACE_Time_Value>
- * indicates how long to blocking trying to notify the
- * <Select_Reactor>. If <timeout> == 0, the caller will block until
- * action is possible, else will wait until the relative time
- * specified in *<timeout> elapses).
- */
- virtual int notify (ACE_Event_Handler * = 0,
- ACE_Reactor_Mask = ACE_Event_Handler::EXCEPT_MASK,
- ACE_Time_Value * = 0);
-
- /**
- * Set the maximum number of times that the
- * <ACE_Select_Reactor_Notify::handle_input> method will iterate and
- * dispatch the <ACE_Event_Handlers> that are passed in via the
- * notify pipe before breaking out of its <recv> loop. By default,
- * this is set to -1, which means "iterate until the pipe is empty."
- * Setting this to a value like "1 or 2" will increase "fairness"
- * (and thus prevent starvation) at the expense of slightly higher
- * dispatching overhead.
- */
- virtual void max_notify_iterations (int);
-
- /**
- * Get the maximum number of times that the
- * <ACE_Select_Reactor_Notify::handle_input> method will iterate and
- * dispatch the <ACE_Event_Handlers> that are passed in via the
- * notify pipe before breaking out of its <recv> loop.
- */
- virtual int max_notify_iterations (void);
-
- /// Get the existing restart value.
- virtual int restart (void);
-
- /// Set a new value for restart and return the original value.
- virtual int restart (int r);
-
- /// Set position that the main ACE_Select_Reactor thread is requeued in the
- /// list of waiters during a <notify> callback.
- virtual void requeue_position (int);
-
- /// Get position that the main ACE_Select_Reactor thread is requeued in the
- /// list of waiters during a <notify> callback.
- virtual int requeue_position (void);
-
- // = Low-level wait_set mask manipulation methods.
- /// GET/SET/ADD/CLR the dispatch mask "bit" bound with the <eh> and
- /// <mask>.
- virtual int mask_ops (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask,
- int ops);
-
- /// GET/SET/ADD/CLR the dispatch MASK "bit" bound with the <handle>
- /// and <mask>.
- virtual int mask_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops);
-
- // = Low-level ready_set mask manipulation methods.
- /// GET/SET/ADD/CLR the ready "bit" bound with the <eh> and <mask>.
- virtual int ready_ops (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask,
- int ops);
-
- /// GET/SET/ADD/CLR the ready "bit" bound with the <handle> and <mask>.
- virtual int ready_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask,
- int ops);
-
- /// Wake up all threads in waiting in the event loop
- virtual void wakeup_all_threads (void);
-
- // = Only the owner thread can perform a <handle_events>.
-
- /// Set the new owner of the thread and return the old owner.
- virtual int owner (ACE_thread_t n_id, ACE_thread_t *o_id = 0);
-
- /// Return the current owner of the thread.
- virtual int owner (ACE_thread_t *);
-
- // = Miscellaneous Handler operations.
- /**
- * Check to see if <handle> is associated with a valid Event_Handler
- * bound to <mask>. Return the <eh> associated with this <handler>
- * if <eh> != 0.
- */
- virtual int handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Event_Handler **eh = 0);
-
- /**
- * Check to see if <signum> is associated with a valid Event_Handler
- * bound to a signal. Return the <eh> associated with this
- * <handler> if <eh> != 0.
- */
- virtual int handler (int signum,
- ACE_Event_Handler ** = 0);
-
- /// Returns true if we've been successfully initialized, else false.
- virtual int initialized (void);
-
- /// Returns the current size of the Reactor's internal descriptor
- /// table.
- virtual size_t size (void) const;
-
- /**
- * Returns a reference to the <ACE_Select_Reactor_Token> that is
- * used to serialize the internal Select_Reactor's processing logic.
- * This can be useful for situations where you need to avoid
- * deadlock efficiently when <ACE_Event_Handlers> are used in
- * multiple threads.
- */
- virtual ACE_Lock &lock (void);
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Internal methods that do the actual work.
-
- // All of these methods assume that the <Select_Reactor>'s token
- // lock is held by the public methods that call down to them.
-
- /// Do the work of actually binding the <handle> and <eh> with the
- /// <mask>.
- virtual int register_handler_i (ACE_HANDLE handle,
- ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask);
-
- /// Register a set of <handles>.
- virtual int register_handler_i (const ACE_Handle_Set &handles,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask);
-
- /// Do the work of actually unbinding the <handle> and <eh> with the
- /// <mask>.
- virtual int remove_handler_i (ACE_HANDLE handle,
- ACE_Reactor_Mask);
-
- /// Remove a set of <handles>.
- virtual int remove_handler_i (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask);
-
- /// Suspend the <Event_Handler> associated with <handle>
- virtual int suspend_i (ACE_HANDLE handle);
-
- /// Check to see if the <Event_Handler> associated with <handle> is
- /// suspended. Returns 0 if not, 1 if so.
- virtual int is_suspended_i (ACE_HANDLE handle);
-
- /// Resume the <Event_Handler> associated with <handle>
- virtual int resume_i (ACE_HANDLE handle);
-
- /// Implement the public <handler> method.
- virtual int handler_i (ACE_HANDLE handle,
- ACE_Reactor_Mask,
- ACE_Event_Handler ** = 0);
-
- /// Implement the public <handler> method.
- virtual int handler_i (int signum, ACE_Event_Handler ** = 0);
-
- /**
- * Check if there are any HANDLEs enabled in the <ready_set_>, and
- * if so, update the <handle_set> and return the number ready. If
- * there aren't any HANDLEs enabled return 0.
- */
- virtual int any_ready (ACE_Select_Reactor_Handle_Set &handle_set);
-
- /// Implement the <any_ready> method, assuming that the Sig_Guard is
- /// beign held
- virtual int any_ready_i (ACE_Select_Reactor_Handle_Set &handle_set);
-
- /// Take corrective action when errors occur.
- virtual int handle_error (void);
-
- /// Make sure the handles are all valid.
- virtual int check_handles (void);
-
- /// Wait for events to occur.
- virtual int wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &,
- ACE_Time_Value *);
-
- // = Dispatching methods.
-
- /**
- * Template Method that dispatches <ACE_Event_Handler>s for time
- * events, I/O events, and signal events. Returns the total number
- * of <ACE_Event_Handler>s that were dispatched or -1 if something
- * goes wrong.
- */
- virtual int dispatch (int nfound,
- ACE_Select_Reactor_Handle_Set &);
-
- /**
- * Dispatch all timer handlers that have expired. Returns -1 if the
- * state of the <wait_set_> has changed, else 0.
- * <number_dispatched> is set to the number of timer handlers
- * dispatched.
- */
- virtual int dispatch_timer_handlers (int &number_dispatched);
-
- /**
- * Dispatch any notification handlers. Returns -1 if the state of
- * the <wait_set_> has changed, else returns number of handlers
- * notified.
- */
- virtual int dispatch_notification_handlers (ACE_Select_Reactor_Handle_Set &dispatch_set,
- int &number_of_active_handles,
- int &number_of_handlers_dispatched);
-
- /**
- * Dispatch all the input/output/except handlers that are enabled in
- * the <dispatch_set>. Updates <number_of_active_handles> and
- * <number_of_handlers_dispatched> according to the behavior of the
- * number Returns -1 if the state of the <wait_set_> has changed,
- * else 0.
- */
- virtual int dispatch_io_handlers (ACE_Select_Reactor_Handle_Set &dispatch_set,
- int &number_of_active_handles,
- int &number_of_handlers_dispatched);
-
- /**
- * Factors the dispatching of an io handle set (each WRITE, EXCEPT
- * or READ set of handles). It updates the
- * <number_of_handlers_dispatched> and invokes this->notify_handle
- * for all the handles in <dispatch_set> using the <mask>,
- * <ready_set> and <callback> parameters. Must return -1 if
- * this->state_changed otherwise it must return 0.
- */
- virtual int dispatch_io_set (int number_of_active_handles,
- int &number_of_handlers_dispatched,
- int mask,
- ACE_Handle_Set& dispatch_mask,
- ACE_Handle_Set& ready_mask,
- ACE_EH_PTMF callback);
-
- /// Notify the appropriate <callback> in the context of the <eh>
- /// associated with <handle> that a particular event has occurred.
- virtual void notify_handle (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Handle_Set &,
- ACE_Event_Handler *eh,
- ACE_EH_PTMF callback);
-
- /// Enqueue ourselves into the list of waiting threads at the
- /// appropriate point specified by <requeue_position_>.
- virtual void renew (void);
-
- /// Synchronization token for the MT_SAFE ACE_Select_Reactor.
- ACE_SELECT_REACTOR_TOKEN token_;
-
- /// Adapter used to return internal lock to outside world.
- ACE_Lock_Adapter<ACE_SELECT_REACTOR_TOKEN> lock_adapter_;
-
- /// Release the token lock when a Win32 structured exception occurs.
- int release_token (void);
-
- /// Stops the VC++ compiler from bitching about exceptions and destructors
- int handle_events_i (ACE_Time_Value *max_wait_time = 0);
-
- /// This flag is used to keep track of whether we are actively handling
- /// events or not.
- sig_atomic_t deactivated_;
-
- /**
- * If 0 then the Reactor will not mask the signals during the event
- * dispatching. This is useful for applications that do not
- * register any signal handlers and want to reduce the overhead
- * introduce by the kernel level locks required to change the mask.
- */
- int mask_signals_;
-
-private:
- /// Deny access since member-wise won't work...
- ACE_UNIMPLEMENTED_FUNC (ACE_Select_Reactor_T (const ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN> &operator= (const ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN> &) )
-};
-
-// @@ The latest version of SunCC can't grok the code if we put inline
-// function here. Therefore, we temporarily disable the code here.
-// We shall turn this back on once we know the problem gets fixed.
-#if 0 // defined (__ACE_INLINE__)
-#include "ace/Select_Reactor_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Select_Reactor_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Select_Reactor_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_SELECT_REACTOR_T_H */
diff --git a/ace/Select_Reactor_T.i b/ace/Select_Reactor_T.i
deleted file mode 100644
index f82fdce2974..00000000000
--- a/ace/Select_Reactor_T.i
+++ /dev/null
@@ -1,219 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/Reactor.h"
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::resume_handler (ACE_Event_Handler *h)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::resume_handler");
- return this->resume_handler (h->get_handle ());
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::resume_handler (const ACE_Handle_Set &handles)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::resume_handler");
- ACE_Handle_Set_Iterator handle_iter (handles);
- ACE_HANDLE h;
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
-
- while ((h = handle_iter ()) != ACE_INVALID_HANDLE)
- if (this->resume_i (h) == -1)
- return -1;
-
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::suspend_handler (ACE_Event_Handler *h)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::suspend_handler");
- return this->suspend_handler (h->get_handle ());
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::suspend_handler (const ACE_Handle_Set &handles)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::suspend_handler");
- ACE_Handle_Set_Iterator handle_iter (handles);
- ACE_HANDLE h;
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1));
-
- while ((h = handle_iter ()) != ACE_INVALID_HANDLE)
- if (this->suspend_i (h) == -1)
- return -1;
-
- return 0;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::register_handler (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp,
- ACE_Event_Handler **old_sh,
- ACE_Sig_Action *old_disp)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::register_handler");
- return this->signal_handler_->register_handler (signum,
- new_sh, new_disp,
- old_sh, old_disp);
-}
-
-#if defined (ACE_WIN32)
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::register_handler (ACE_Event_Handler *event_handler,
- ACE_HANDLE event_handle)
-{
- // Don't have an implementation for this yet...
- ACE_UNUSED_ARG (event_handler);
- ACE_UNUSED_ARG (event_handle);
- ACE_NOTSUP_RETURN (-1);
-}
-
-#endif /* ACE_WIN32 */
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::register_handler (ACE_HANDLE event_handle,
- ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- // Don't have an implementation for this yet...
- ACE_UNUSED_ARG (event_handle);
- ACE_UNUSED_ARG (io_handle);
- ACE_UNUSED_ARG (event_handler);
- ACE_UNUSED_ARG (mask);
- ACE_NOTSUP_RETURN (-1);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::handler (int signum, ACE_Event_Handler **handler)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::handler");
- return this->handler_i (signum, handler);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::remove_handler (int signum,
- ACE_Sig_Action *new_disp,
- ACE_Sig_Action *old_disp,
- int sigkey)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::remove_handler");
- return this->signal_handler_->remove_handler (signum, new_disp, old_disp, sigkey);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::uses_event_associations (void)
-{
- // Since the Select_Reactor does not do any event associations, this
- // function always return 0.
- return 0;
-}
-
-// = The remaining methods in this file must be called with locks
-// held.
-
-// Performs operations on the "ready" bits.
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::ready_ops (ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask,
- int ops)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::ready_ops");
- return this->ready_ops (handler->get_handle (), mask, ops);
-}
-
-// Performs operations on the "dispatch" masks.
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::mask_ops (ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask,
- int ops)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::mask_ops");
- return this->mask_ops (handler->get_handle (), mask, ops);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::schedule_wakeup (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::schedule_wakeup");
- return this->mask_ops (eh->get_handle (), mask, ACE_Reactor::ADD_MASK);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::cancel_wakeup (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::cancel_wakeup");
- return this->mask_ops (eh->get_handle (), mask, ACE_Reactor::CLR_MASK);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::schedule_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::schedule_wakeup");
- return this->mask_ops (handle, mask, ACE_Reactor::ADD_MASK);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::cancel_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::cancel_wakeup");
- return this->mask_ops (handle, mask, ACE_Reactor::CLR_MASK);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ ACE_Lock &
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::lock (void)
-{
- ACE_TRACE ("ACE_Select_Reactor_T::lock");
- return this->lock_adapter_;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ void
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::wakeup_all_threads (void)
-{
- // Send a notification, but don't block if there's no one to receive
- // it.
- this->notify (0, ACE_Event_Handler::NULL_MASK, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::alertable_handle_events (ACE_Time_Value *max_wait_time)
-{
- return this->handle_events (max_wait_time);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::alertable_handle_events (ACE_Time_Value &max_wait_time)
-{
- return this->handle_events (max_wait_time);
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::deactivated (void)
-{
- return this->deactivated_;
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ void
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::deactivate (int do_stop)
-{
- this->deactivated_ = do_stop;
- this->wakeup_all_threads ();
-}
-
-template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ size_t
-ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::size (void) const
-{
- return this->handler_rep_.size ();
-}
diff --git a/ace/Service_Config.cpp b/ace/Service_Config.cpp
deleted file mode 100644
index 6a9330927b9..00000000000
--- a/ace/Service_Config.cpp
+++ /dev/null
@@ -1,872 +0,0 @@
-// $Id$
-
-#include "ace/Svc_Conf.h"
-#include "ace/Get_Opt.h"
-#include "ace/ARGV.h"
-#include "ace/Malloc.h"
-#include "ace/Service_Manager.h"
-#include "ace/Service_Repository.h"
-#include "ace/Service_Types.h"
-#include "ace/Containers.h"
-#include "ace/Auto_Ptr.h"
-#include "ace/Reactor.h"
-#include "ace/Thread_Manager.h"
-#include "ace/DLL.h"
-
-#include "ace/Service_Config.h"
-#include "ace/XML_Svc_Conf.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Service_Config.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID (ace,
- Service_Config,
- "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Service_Config)
-
-void
-ACE_Service_Config::dump (void) const
-{
- ACE_TRACE ("ACE_Service_Config::dump");
-}
-
-// All the factory functions that allocate default statically linked
-// services should be placed below.
-
-// Allocate a Service Manager.
-
-ACE_FACTORY_DEFINE (ACE, ACE_Service_Manager)
-
-// ----------------------------------------
-
-// Set the signal handler to point to the handle_signal() function.
-ACE_Sig_Adapter *ACE_Service_Config::signal_handler_ = 0;
-
-// Trigger a reconfiguration.
-sig_atomic_t ACE_Service_Config::reconfig_occurred_ = 0;
-
- // = Set by command-line options.
-int ACE_Service_Config::be_a_daemon_ = 0;
-int ACE_Service_Config::no_static_svcs_ = 1;
-
-// Number of the signal used to trigger reconfiguration.
-int ACE_Service_Config::signum_ = SIGHUP;
-
-// Indicates where to write the logging output. This is typically
-// either a STREAM pipe or a socket address.
-const ACE_TCHAR *ACE_Service_Config::logger_key_ = ACE_DEFAULT_LOGGER_KEY;
-
-// The ACE_Service_Manager static service object is now defined by the
-// ACE_Object_Manager, in Object_Manager.cpp.
-
-// Are we initialized already?
-int ACE_Service_Config::is_initialized_ = 0;
-
-// List of statically configured services.
-
-ACE_STATIC_SVCS *ACE_Service_Config::static_svcs_ = 0;
-ACE_SVC_QUEUE *ACE_Service_Config::svc_queue_ = 0;
-ACE_SVC_QUEUE *ACE_Service_Config::svc_conf_file_queue_ = 0;
-
-ACE_STATIC_SVCS *
-ACE_Service_Config::static_svcs (void)
-{
- if (ACE_Service_Config::static_svcs_ == 0)
- ACE_NEW_RETURN (ACE_Service_Config::static_svcs_,
- ACE_STATIC_SVCS,
- 0);
- return ACE_Service_Config::static_svcs_;
-}
-
-// Totally remove <svc_name> from the daemon by removing it from the
-// ACE_Reactor, and unlinking it if necessary.
-
-int
-ACE_Service_Config::remove (const ACE_TCHAR svc_name[])
-{
- ACE_TRACE ("ACE_Service_Config::remove");
- return ACE_Service_Repository::instance ()->remove (svc_name);
-}
-
-// Suspend <svc_name>. Note that this will not unlink the service
-// from the daemon if it was dynamically linked, it will mark it as
-// being suspended in the Service Repository and call the <suspend>
-// member function on the appropriate <ACE_Service_Object>. A service
-// can be resumed later on by calling the <resume> method...
-
-int
-ACE_Service_Config::suspend (const ACE_TCHAR svc_name[])
-{
- ACE_TRACE ("ACE_Service_Config::suspend");
- return ACE_Service_Repository::instance ()->suspend (svc_name);
-}
-
-// Resume a SVC_NAME that was previously suspended or has not yet
-// been resumed (e.g., a static service).
-
-int
-ACE_Service_Config::resume (const ACE_TCHAR svc_name[])
-{
- ACE_TRACE ("ACE_Service_Config::resume");
- return ACE_Service_Repository::instance ()->resume (svc_name);
-}
-
-// Initialize the Service Repository. Note that this *must* be
-// performed in the constructor (rather than <open>) since otherwise
-// the repository will not be properly initialized to allow static
-// configuration of services...
-
-ACE_Service_Config::ACE_Service_Config (int ignore_static_svcs,
- size_t size,
- int signum)
-{
- ACE_TRACE ("ACE_Service_Config::ACE_Service_Config");
- ACE_Service_Config::no_static_svcs_ = ignore_static_svcs;
- ACE_Service_Config::signum_ = signum;
-
- // Initialize the Service Repository.
- ACE_Service_Repository::instance (ACE_static_cast (int, size));
-
- // Initialize the ACE_Reactor (the ACE_Reactor should be the same
- // size as the ACE_Service_Repository).
- ACE_Reactor::instance ();
-}
-
-int
-ACE_Service_Config::init_svc_conf_file_queue (void)
-{
- if (ACE_Service_Config::svc_conf_file_queue_ == 0)
- ACE_NEW_RETURN (ACE_Service_Config::svc_conf_file_queue_,
- ACE_SVC_QUEUE,
- -1);
- return 0;
-}
-
-// Handle the command-line options intended for the
-// ACE_Service_Config.
-
-int
-ACE_Service_Config::parse_args (int argc, ACE_TCHAR *argv[])
-{
- ACE_TRACE ("ACE_Service_Config::parse_args");
- ACE_Get_Opt getopt (argc,
- argv,
- ACE_LIB_TEXT ("bdf:k:nys:S:"),
- 1); // Start at argv[1].
-
- if (ACE_Service_Config::init_svc_conf_file_queue () == -1)
- return -1;
-
- for (int c; (c = getopt ()) != -1; )
- switch (c)
- {
- case 'b':
- ACE_Service_Config::be_a_daemon_ = 1;
- break;
- case 'd':
- ACE::debug (1);
- break;
- case 'f':
- if (ACE_Service_Config::svc_conf_file_queue_->enqueue_tail
- (ACE_TString (getopt.opt_arg ())) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- "enqueue_tail"),
- -1);
- break;
- case 'k':
- ACE_Service_Config::logger_key_ = getopt.opt_arg ();
- break;
- case 'n':
- ACE_Service_Config::no_static_svcs_ = 1;
- break;
- case 'y':
- ACE_Service_Config::no_static_svcs_ = 0;
- break;
- case 's':
- {
- // There's no point in dealing with this on NT since it
- // doesn't really support signals very well...
-#if !defined (ACE_LACKS_UNIX_SIGNALS)
- ACE_Service_Config::signum_ =
- ACE_OS::atoi (getopt.opt_arg ());
-
- if (ACE_Reactor::instance ()->register_handler
- (ACE_Service_Config::signum_,
- ACE_Service_Config::signal_handler_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("cannot obtain signal handler\n")),
- -1);
-#endif /* ACE_LACKS_UNIX_SIGNALS */
- break;
- }
- case 'S':
- if (ACE_Service_Config::svc_queue_ == 0)
- ACE_NEW_RETURN (ACE_Service_Config::svc_queue_,
- ACE_SVC_QUEUE,
- -1);
- if (ACE_Service_Config::svc_queue_->enqueue_tail
- (ACE_TString (getopt.opt_arg ())) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- "enqueue_tail"),
- -1);
- break;
- default:
- if (ACE::debug () > 0)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("%c is not a ACE_Service_Config option\n"),
- c));
- }
-
- return 0;
-}
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 0)
-ACE_Service_Type *
-ACE_Service_Config::create_service_type (const ACE_TCHAR *n,
- ACE_Service_Type_Impl *o,
- ACE_DLL &dll,
- int active)
-{
- ACE_Service_Type *sp = 0;
- ACE_NEW_RETURN (sp,
- ACE_Service_Type (n, o, dll, active),
- 0);
- return sp;
-}
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 0 */
-
-ACE_Service_Type_Impl *
-ACE_Service_Config::create_service_type_impl (const ACE_TCHAR *name,
- int type,
- void *symbol,
- u_int flags,
- ACE_Service_Object_Exterminator gobbler)
-{
- ACE_Service_Type_Impl *stp = 0;
-
- // Note, the only place we need to put a case statement. This is
- // also the place where we'd put the RTTI tests, if the compiler
- // actually supported them!
-
- switch (type)
- {
- case ACE_Service_Type::SERVICE_OBJECT:
- ACE_NEW_RETURN (stp,
- ACE_Service_Object_Type ((ACE_Service_Object *) symbol,
- name, flags,
- gobbler),
- 0);
- break;
- case ACE_Service_Type::MODULE:
- ACE_NEW_RETURN (stp,
- ACE_Module_Type (symbol, name, flags),
- 0);
- break;
- case ACE_Service_Type::STREAM:
- ACE_NEW_RETURN (stp,
- ACE_Stream_Type (symbol, name, flags),
- 0);
- break;
- default:
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("unknown case\n")));
- break;
- }
- return stp;
-
-}
-
-// Initialize and activate a statically linked service.
-
-int
-ACE_Service_Config::initialize (const ACE_TCHAR *svc_name,
- const ACE_TCHAR *parameters)
-{
- ACE_TRACE ("ACE_Service_Config::initialize");
- ACE_ARGV args (parameters);
- ACE_Service_Type *srp = 0;
-
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("opening static service %s\n"),
- svc_name));
-
- if (ACE_Service_Repository::instance ()->find
- (svc_name,
- (const ACE_Service_Type **) &srp) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%s not found\n"),
- svc_name),
- -1);
- else if (srp->type ()->init (args.argc (),
- args.argv ()) == -1)
- {
- // Remove this entry.
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("static initialization failed, %p\n"),
- svc_name));
- ACE_Service_Repository::instance ()->remove (svc_name);
- return -1;
- }
- else
- {
- srp->active (1);
- return 0;
- }
-}
-
-// Dynamically link the shared object file and retrieve a pointer to
-// the designated shared object in this file.
-
-int
-ACE_Service_Config::initialize (const ACE_Service_Type *sr,
- const ACE_TCHAR *parameters)
-{
- ACE_TRACE ("ACE_Service_Config::initialize");
- ACE_ARGV args (parameters);
-
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("opening dynamic service %s\n"),
- sr->name ()));
-
- if (sr->type ()->init (args.argc (),
- args.argv ()) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("dynamic initialization failed for %s\n"),
- sr->name ()));
- return -1;
- }
- else
- {
- if (ACE_Service_Repository::instance ()->insert (sr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("insertion failed, %p\n"),
- sr->name ()),
- -1);
- return 0;
- }
-}
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 1)
-int
-ACE_Service_Config::process_directives_i (ACE_Svc_Conf_Param *param)
-{
- // AC 970827 Skip the heap check because yacc allocates a buffer
- // here which will be reported as a memory leak for some reason.
- ACE_NO_HEAP_CHECK
-
- ::ace_yyparse (param);
-
- if (param->yyerrno > 0)
- {
- // This is a hack, better errors should be provided...
- errno = EINVAL;
- return param->yyerrno;
- }
- else
- return 0;
-}
-#else
-ACE_XML_Svc_Conf *
-ACE_Service_Config::get_xml_svc_conf (ACE_DLL &xmldll)
-{
- if (xmldll.open (ACE_LIB_TEXT ("ACEXML_XML_Svc_Conf_Parser")) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Fail to open ACEXML_XML_Svc_Conf_Parser: %p\n"),
- "ACE_Service_Config::get_xml_svc_conf"),
- 0);
-
- void *foo;
- foo = xmldll.symbol (ACE_LIB_TEXT ("_ACEXML_create_XML_Svc_Conf_Object"));
-
- // Cast the void* to long first.
- long tmp = ACE_reinterpret_cast (long, foo);
- ACE_XML_Svc_Conf::Factory factory =
- ACE_reinterpret_cast (ACE_XML_Svc_Conf::Factory, tmp);
- if (factory == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("Unable to resolve factory: %p\n"),
- xmldll.error ()),
- 0);
-
- return factory ();
-}
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
-
-int
-ACE_Service_Config::process_file (const ACE_TCHAR file[])
-{
- ACE_TRACE ("ACE_Service_Config::process_file");
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 1)
- int result = 0;
-
- FILE *fp = ACE_OS::fopen (file,
- ACE_LIB_TEXT ("r"));
-
- if (fp == 0)
- {
- // Invalid svc.conf file. We'll report it here and break out of
- // the method.
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("%p\n"),
- file));
-
- errno = ENOENT;
- result = -1;
- }
- else
- {
- ACE_Svc_Conf_Param f (fp);
-
- // Keep track of the number of errors.
- result = ACE_Service_Config::process_directives_i (&f);
-
- (void) ACE_OS::fclose (fp);
- }
- return result;
-#else
- ACE_DLL dll;
-
- auto_ptr<ACE_XML_Svc_Conf>
- xml_svc_conf (ACE_Service_Config::get_xml_svc_conf (dll));
-
- if (xml_svc_conf.get () == 0)
- return -1;
-
- return xml_svc_conf->parse_file (file);
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
-}
-
-int
-ACE_Service_Config::process_directive (const ACE_TCHAR directive[])
-{
- ACE_TRACE ("ACE_Service_Config::process_directive");
-
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Service_Config::process_directive - %s\n"),
- directive));
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 1)
- ACE_UNUSED_ARG (directive);
-
- ACE_Svc_Conf_Param d (directive);
-
- int result = ACE_Service_Config::process_directives_i (&d);
-
- return result;
-#else
- ACE_DLL dll;
-
- auto_ptr<ACE_XML_Svc_Conf>
- xml_svc_conf (ACE_Service_Config::get_xml_svc_conf (dll));
-
- if (xml_svc_conf.get () == 0)
- return -1;
-
- return xml_svc_conf->parse_string (directive);
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
-}
-
-// Process service configuration requests as indicated in the queue of
-// svc.conf files.
-int
-ACE_Service_Config::process_directives (void)
-{
- ACE_TRACE ("ACE_Service_Config::process_directives");
-
- int result = 0;
-
- if (ACE_Service_Config::svc_conf_file_queue_ != 0)
- {
- ACE_TString *sptr = 0;
- ACE_SVC_QUEUE &queue = *ACE_Service_Config::svc_conf_file_queue_;
-
- // Iterate through all the svc.conf files.
- for (ACE_SVC_QUEUE_ITERATOR iter (queue);
- iter.next (sptr) != 0;
- iter.advance ())
- {
- int r = ACE_Service_Config::process_file (sptr->fast_rep ());
-
- if (r < 0)
- {
- result = r;
- break;
- }
-
- result += r;
- }
- }
-
- return result;
-}
-
-int
-ACE_Service_Config::process_commandline_directives (void)
-{
- int result = 0;
-
- if (ACE_Service_Config::svc_queue_ != 0)
- {
- ACE_TString *sptr = 0;
- ACE_SVC_QUEUE &queue = *ACE_Service_Config::svc_queue_;
-
- for (ACE_SVC_QUEUE_ITERATOR iter (queue);
- iter.next (sptr) != 0;
- iter.advance ())
- {
- // Process just a single directive.
- if (ACE_Service_Config::process_directive (sptr->fast_rep ()) != 0)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("process_directive")));
- result = -1;
- }
- }
-
- delete ACE_Service_Config::svc_queue_;
- ACE_Service_Config::svc_queue_ = 0;
- }
-
- return result;
-}
-
-int
-ACE_Service_Config::process_directive (const ACE_Static_Svc_Descriptor &ssd,
- int force_replace)
-{
- if (!force_replace)
- {
- if (ACE_Service_Repository::instance ()->find (ssd.name_,
- 0, 0) >= 0)
- {
- // The service is already there, just return
- return 0;
- }
- }
-
- ACE_Service_Object_Exterminator gobbler;
- void *sym = (ssd.alloc_)(&gobbler);
-
- ACE_Service_Type_Impl *stp =
- ACE_Service_Config::create_service_type_impl (ssd.name_,
- ssd.type_,
- sym,
- ssd.flags_,
- gobbler);
- if (stp == 0)
- return 0;
-
-
- ACE_Service_Type *service_type;
- ACE_NEW_RETURN (service_type,
- ACE_Service_Type (ssd.name_,
- stp,
- 0,
- ssd.active_),
- -1);
-
- return ACE_Service_Repository::instance ()->insert (service_type);
-}
-
-// Add the default statically-linked services to the Service
-// Repository.
-
-int
-ACE_Service_Config::load_static_svcs (void)
-{
- ACE_TRACE ("ACE_Service_Config::load_static_svcs");
-
- ACE_Static_Svc_Descriptor **ssdp = 0;
- ACE_STATIC_SVCS &svcs = *ACE_Service_Config::static_svcs ();
-
- for (ACE_STATIC_SVCS_ITERATOR iter (svcs);
- iter.next (ssdp) != 0;
- iter.advance ())
- {
- ACE_Static_Svc_Descriptor *ssd = *ssdp;
-
- if (ACE_Service_Config::process_directive (*ssd, 1) == -1)
- return -1;
- }
- return 0;
-}
-
-// Performs an open without parsing command-line arguments.
-
-int
-ACE_Service_Config::open_i (const ACE_TCHAR program_name[],
- const ACE_TCHAR *logger_key,
- int ignore_default_svc_conf_file,
- int ignore_debug_flag)
-{
- int result = 0;
- ACE_TRACE ("ACE_Service_Config::open_i");
- ACE_Log_Msg *log_msg = ACE_LOG_MSG;
-
- // Record the current log setting upon entering this thread.
- u_long old_process_mask = log_msg->priority_mask
- (ACE_Log_Msg::PROCESS);
- u_long old_thread_mask = log_msg->priority_mask
- (ACE_Log_Msg::THREAD);
-
- if (ACE_Service_Config::is_initialized_ != 0)
- // Guard against reentrant processing!
- return 0;
- else
- ACE_Service_Config::is_initialized_++;
-
- if (ACE_Service_Config::init_svc_conf_file_queue () == -1)
- return -1;
- else if (!ignore_default_svc_conf_file
- && ACE_Service_Config::svc_conf_file_queue_->is_empty ()
- // Load the default "svc.conf" entry here if there weren't
- // overriding -f arguments in <parse_args>.
- && ACE_Service_Config::svc_conf_file_queue_->enqueue_tail
- (ACE_TString (ACE_DEFAULT_SVC_CONF)) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- "enqueue_tail"),
- -1);
-
- if (ignore_debug_flag == 0)
- {
- // If -d was included as a startup parameter, the user wants debug
- // information printed during service initialization.
- if (ACE::debug ())
- ACE_Log_Msg::enable_debug_messages ();
- else
- // The user has requested no debugging info.
- ACE_Log_Msg::disable_debug_messages ();
- }
-
- // Become a daemon before doing anything else.
- if (ACE_Service_Config::be_a_daemon_)
- ACE_Service_Config::start_daemon ();
-
- u_long flags = log_msg->flags ();
-
- if (flags == 0)
- // Only use STDERR if the caller hasn't already set the flags.
- flags = (u_long) ACE_Log_Msg::STDERR;
-
- const ACE_TCHAR *key = logger_key;
-
- if (key == 0 || ACE_OS::strcmp (key, ACE_DEFAULT_LOGGER_KEY) == 0)
- // Only use the static <logger_key_> if the caller doesn't
- // override it in the parameter list or if the key supplied is
- // equal to the default static logger key.
- key = ACE_Service_Config::logger_key_;
- else
- ACE_SET_BITS (flags, ACE_Log_Msg::LOGGER);
-
- if (log_msg->open (program_name,
- flags,
- key) == -1)
- result = -1;
- else
- {
- if (ACE::debug ())
- ACE_DEBUG ((LM_STARTUP,
- ACE_LIB_TEXT ("starting up daemon %n\n")));
-
- // Initialize the Service Repository (this will still work if
- // user forgets to define an object of type ACE_Service_Config).
- ACE_Service_Repository::instance (ACE_Service_Config::MAX_SERVICES);
-
- // Initialize the ACE_Reactor (the ACE_Reactor should be the
- // same size as the ACE_Service_Repository).
- ACE_Reactor::instance ();
-
- // There's no point in dealing with this on NT since it doesn't
- // really support signals very well...
-#if !defined (ACE_LACKS_UNIX_SIGNALS)
- // @@ This really ought to be a Singleton.
- if (ACE_Reactor::instance ()->register_handler
- (ACE_Service_Config::signum_,
- ACE_Service_Config::signal_handler_) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("can't register signal handler\n")));
-#endif /* ACE_LACKS_UNIX_SIGNALS */
-
- // See if we need to load the static services.
- if (ACE_Service_Config::no_static_svcs_ == 0
- && ACE_Service_Config::load_static_svcs () == -1)
- result = -1;
- else
- {
- if (ACE_Service_Config::process_commandline_directives () == -1)
- result = -1;
- else
- result = ACE_Service_Config::process_directives ();
- }
- }
-
- {
- // Make sure to save/restore errno properly.
- ACE_Errno_Guard error (errno);
-
- if (ignore_debug_flag == 0)
- {
- // Reset debugging back to the way it was when we came into
- // into <open_i>.
- log_msg->priority_mask (old_process_mask, ACE_Log_Msg::PROCESS);
- log_msg->priority_mask (old_thread_mask, ACE_Log_Msg::THREAD);
- }
- }
-
- return result;
-}
-
-ACE_Service_Config::ACE_Service_Config (const ACE_TCHAR program_name[],
- const ACE_TCHAR *logger_key)
-{
- ACE_TRACE ("ACE_Service_Config::ACE_Service_Config");
-
- if (this->open (program_name,
- logger_key) == -1
- && errno != ENOENT)
- // Only print out an error if it wasn't the svc.conf file that was
- // missing.
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- program_name));
-}
-
-// Signal handling API to trigger dynamic reconfiguration.
-
-void
-ACE_Service_Config::handle_signal (int sig,
- siginfo_t *,
- ucontext_t *)
-{
-#if defined (ACE_NDEBUG)
- ACE_UNUSED_ARG (sig);
-#else /* ! ACE_NDEBUG */
- ACE_ASSERT (ACE_Service_Config::signum_ == sig);
-#endif /* ! ACE_NDEBUG */
-
- ACE_Service_Config::reconfig_occurred_ = 1;
-}
-
-// Trigger the reconfiguration process.
-
-void
-ACE_Service_Config::reconfigure (void)
-{
- ACE_TRACE ("ACE_Service_Config::reconfigure");
-
- ACE_Service_Config::reconfig_occurred_ = 0;
-
- if (ACE::debug ())
- {
-#if !defined (ACE_NLOGGING)
- time_t t = ACE_OS::time (0);
-#endif /* ! ACE_NLOGGING */
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("beginning reconfiguration at %s"),
- ACE_OS::ctime (&t)));
- }
- if (ACE_Service_Config::process_directives () == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("process_directives")));
-}
-
-// Tidy up and perform last rites on a terminating ACE_Service_Config.
-int
-ACE_Service_Config::close (void)
-{
- ACE_TRACE ("ACE_Service_Config::close");
-
- ACE_Service_Config::is_initialized_--;
- if (ACE_Service_Config::is_initialized_ > 0)
- return 0;
-
- // Delete the service repository. All the objects inside the
- // service repository should already have been finalized.
- ACE_Service_Config::close_svcs ();
-
- // Delete the list fo svc.conf files
- delete ACE_Service_Config::svc_conf_file_queue_;
- ACE_Service_Config::svc_conf_file_queue_ = 0;
-
- // Delete the dynamically allocated static_svcs instance.
- delete ACE_Service_Config::static_svcs_;
- ACE_Service_Config::static_svcs_ = 0;
-
- return 0;
-}
-
-int
-ACE_Service_Config::close_svcs (void)
-{
- ACE_TRACE ("ACE_Service_Config::close_svcs");
-
- ACE_Service_Repository::close_singleton ();
-
- return 0;
-}
-
-int
-ACE_Service_Config::fini_svcs (void)
-{
- ACE_TRACE ("ACE_Service_Config::fini_svcs");
-
- // Clear the LM_DEBUG bit from log messages if appropriate
- if (ACE::debug ())
- ACE_Log_Msg::disable_debug_messages ();
-
- int result = 0;
- if (ACE_Service_Repository::instance () != 0)
- result = ACE_Service_Repository::instance ()->fini ();
-
- if (ACE::debug ())
- ACE_Log_Msg::enable_debug_messages ();
-
- return result;
-}
-
-// Perform user-specified close activities and remove dynamic memory.
-
-ACE_Service_Config::~ACE_Service_Config (void)
-{
- ACE_TRACE ("ACE_Service_Config::~ACE_Service_Config");
-}
-
-// ************************************************************
-
-/* static */
-int
-ACE_Service_Config::reconfig_occurred (void)
-{
- ACE_TRACE ("ACE_Service_Config::reconfig_occurred");
- return ACE_Service_Config::reconfig_occurred_ != 0;
-}
-
-void
-ACE_Service_Config::reconfig_occurred (int config_occurred)
-{
- ACE_TRACE ("ACE_Service_Config::reconfig_occurred");
- ACE_Service_Config::reconfig_occurred_ = config_occurred;
-}
-
-// Become a daemon (i.e., run as a "background" process).
-
-int
-ACE_Service_Config::start_daemon (void)
-{
- ACE_TRACE ("ACE_Service_Config::start_daemon");
- return ACE::daemonize ();
-}
diff --git a/ace/Service_Config.h b/ace/Service_Config.h
deleted file mode 100644
index 6d03d3cae72..00000000000
--- a/ace/Service_Config.h
+++ /dev/null
@@ -1,455 +0,0 @@
-// -*- C++ -*-
-
-//====================================================================
-/**
- * @file Service_Config.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//====================================================================
-
-#ifndef ACE_SERVICE_CONFIG_H
-#define ACE_SERVICE_CONFIG_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Unbounded_Queue.h"
-#include "ace/Unbounded_Set.h"
-#include "ace/SString.h"
-#include "ace/XML_Svc_Conf.h"
-
-
-// Forward decl.
-class ACE_Service_Object;
-class ACE_Service_Type;
-class ACE_Service_Type_Impl;
-class ACE_Service_Repository;
-class ACE_Sig_Adapter;
-class ACE_Allocator;
-class ACE_Reactor;
-class ACE_Thread_Manager;
-class ACE_DLL;
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 1)
-class ACE_Svc_Conf_Param;
-#endif /* ACE_USES_CLASSIC_SVC_CONF ==1 */
-
-extern "C"
-{
- typedef ACE_Service_Object *(*ACE_SERVICE_ALLOCATOR) (ACE_Service_Object_Exterminator *);
-}
-
-/**
- * @class ACE_Static_Svc_Descriptor
- *
- * @brief Holds the information necessary to describe a statically linked
- * Svc.
- */
-class ACE_Static_Svc_Descriptor
-{
-public:
- /// Name of the service.
- const ACE_TCHAR *name_;
-
- /// Type of service.
- int type_;
-
- /// Factory function that allocates the service.
- ACE_SERVICE_ALLOCATOR alloc_;
-
- /// Bitmask flags indicating how the framework should delete memory.
- u_int flags_;
-
- /// Flag indicating whether the service starts out active.
- int active_;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-public:
- /// Compare two service descriptors for equality.
- int operator== (ACE_Static_Svc_Descriptor &) const;
-
- /// Compare two service descriptors for inequality.
- int operator!= (ACE_Static_Svc_Descriptor &) const;
-};
-
-// Maintain a set of the statically linked service descriptors.
-typedef ACE_Unbounded_Set<ACE_Static_Svc_Descriptor *>
- ACE_STATIC_SVCS;
-typedef ACE_Unbounded_Set_Iterator<ACE_Static_Svc_Descriptor *>
- ACE_STATIC_SVCS_ITERATOR;
-
-// Maintain a queue of services to be configured from the
-// command-line.
-typedef ACE_Unbounded_Queue<ACE_TString>
- ACE_SVC_QUEUE;
-typedef ACE_Unbounded_Queue_Iterator<ACE_TString>
- ACE_SVC_QUEUE_ITERATOR;
-
-#define ACE_Component_Config ACE_Service_Config
-/**
- * @class ACE_Service_Config
- *
- * @brief Supplies common server operations for dynamic and static
- * configuration of services.
- *
- * The <ACE_Service_Config> uses the Monostate pattern. Therefore,
- * you can only have one of these instantiated per-process.
- * NOTE: the signal_handler_ static member is allocated by the
- * <ACE_Object_Manager>. The <ACE_Service_Config> constructor
- * uses signal_handler_. Therefore, if the program has any
- * static <ACE_Service_Config> objects, there might be
- * initialization order problems. They can be minimized, but
- * not eliminated, by _not_ #defining
- * <ACE_HAS_NONSTATIC_OBJECT_MANAGER>.
- */
-class ACE_Export ACE_Service_Config
-{
-public:
- enum
- {
- MAX_SERVICES = ACE_DEFAULT_SERVICE_REPOSITORY_SIZE
- };
-
- // = Initialization and termination methods.
-
- /// Initialize the Service Repository.
- ACE_Service_Config (int ignore_static_svcs = 1,
- size_t size = ACE_Service_Config::MAX_SERVICES,
- int signum = SIGHUP);
-
- /**
- * Performs an open without parsing command-line arguments. The
- * @a logger_key indicates where to write the logging output, which
- * is typically either a STREAM pipe or a socket address.
- */
- ACE_Service_Config (const ACE_TCHAR program_name[],
- const ACE_TCHAR *logger_key = ACE_DEFAULT_LOGGER_KEY);
-
- /**
- * Performs an open without parsing command-line arguments. The
- * <logger_key> indicates where to write the logging output, which
- * is typically either a STREAM pipe or a socket address. If
- * <ignore_default_svc_conf_file> is non-0 then the "svc.conf" file
- * will be ignored. If <ignore_debug_flag> is non-0 then the
- * application is responsible for setting the
- * <ACE_Log_Msg::priority_mask> appropriately. Returns number of
- * errors that occurred on failure and 0 otherwise.
- */
- static int open_i (const ACE_TCHAR program_name[],
- const ACE_TCHAR *logger_key = ACE_DEFAULT_LOGGER_KEY,
- int ignore_default_svc_conf_file = 0,
- int ignore_debug_flag = 0);
-
- /**
- * Performs an open without parsing command-line arguments. The
- * <logger_key> indicates where to write the logging output, which
- * is typically either a STREAM pipe or a socket address. If
- * <ignore_static_svcs> is 1 then static services are not loaded,
- * otherwise, they are loaded. If <ignore_default_svc_conf_file> is
- * non-0 then the <svc.conf> configuration file will be ignored.
- * Returns zero upon success, -1 if the file is not found or cannot
- * be opened (errno is set accordingly), otherwise returns the
- * number of errors encountered loading the services in the
- * specified svc.conf configuration file. If <ignore_debug_flag> is
- * non-0 then the application is responsible for setting the
- * <ACE_Log_Msg::priority_mask> appropriately.
- */
- static int open (const ACE_TCHAR program_name[],
- const ACE_TCHAR *logger_key = ACE_DEFAULT_LOGGER_KEY,
- int ignore_static_svcs = 1,
- int ignore_default_svc_conf_file = 0,
- int ignore_debug_flag = 0);
-
- /**
- * This is the primary entry point into the ACE_Service_Config (the
- * constructor just handles simple initializations). It parses
- * arguments passed in from @a argc and @a argv parameters. The
- * arguments that are valid in a call to this method include:
- *
- * - '-b' Option to indicate that we should be a daemon. Note that when
- * this option is used, the process will be daemonized before the
- * service configuration file(s) are read. During daemonization,
- * (on POSIX systems) the current directory will be changed to "/"
- * so the caller should either fully specify the file names, or
- * execute a @c chroot() to the appropriate directory.
- * @sa ACE::daemonize().
- * - '-d' Turn on debugging mode
- * - '-f' Option to read in the list of svc.conf file names
- * - '-k' Option to read a wide string where in the logger output can
- * be written
- * - '-y' Option required to use statically linked services.
- * A static service repostory will be constructed if the flag
- * is used. Use this flag to override the default
- * <ignore_static_svcs> flag at run-time.
- * - '-n' Option to avoid using any statically linked services, which
- * eliminates the need to construct the static service repository.
- * - '-S' Option to read in the list of services on the command-line
- * Please observe the difference between options '-f' that looks
- * for a list of files and here a list of services.
- *
- * @param argc The number of commandline arguments.
- * @param argv The array with commandline arguments
- * @param logger_key Indicates where to write the logging output,
- * which is typically either a STREAM pipe or a
- * socket address.
- * @param ignore_static_svcs If 1 then static services are not loaded,
- * otherwise, they are loaded.
- * @param ignore_default_svc_conf_file If non-0 then the @c svc.conf
- * configuration file will be ignored.
- * @param ignore_debug_flag If non-0 then the application is responsible
- * for setting the @c ACE_Log_Msg::priority_mask
- * appropriately.
- *
- * @retval -1 the configuration file is not found or cannot
- * be opened (errno is set accordingly).
- * @retval 0 Success.
- * @retval >0 The number of errors encountered while processing
- * the service configuration file(s).
- */
- static int open (int argc,
- ACE_TCHAR *argv[],
- const ACE_TCHAR *logger_key = ACE_DEFAULT_LOGGER_KEY,
- int ignore_static_svcs = 1,
- int ignore_default_svc_conf_file = 0,
- int ignore_debug_flag = 0);
-
- /// Perform user-specified close activities and remove dynamic
- /// memory.
- virtual ~ACE_Service_Config (void);
-
- /// Tidy up and perform last rites when ACE_Service_Config is shut
- /// down. This method calls <close_svcs>. Returns 0.
- static int close (void);
-
- /// Perform user-specified close hooks and possibly delete all of the
- /// configured services in the <Service_Repository>.
- static int fini_svcs (void);
-
- /**
- * Perform user-specified close hooks on all of the configured
- * services in the <Service_Repository>, then delete the
- * <Service_Repository> itself. Returns 0.
- */
- static int close_svcs (void);
-
- /// True if reconfiguration occurred.
- static int reconfig_occurred (void);
-
- /// Indicate that reconfiguration occurred.
- static void reconfig_occurred (int);
-
- /// Perform the reconfiguration process.
- static void reconfigure (void);
-
- // = The following methods are static in order to enforce Singleton
- // semantics for the Reactor, Service_Repository, Thread_Manager,
- // and Acceptor/Connector Strategy factory. Other portions of the
- // system may need to access them at some point or another...
-
- // = Accessors and mutators for process-wide Singletons.
-
- /// Returns a pointer to the list of statically linked services.
- static ACE_STATIC_SVCS *static_svcs (void);
-
- // = Utility methods.
- /// Dynamically link the shared object file and retrieve a pointer to
- /// the designated shared object in this file.
- static int initialize (const ACE_Service_Type *,
- const ACE_TCHAR *parameters);
-
- /// Initialize and activate a statically <svc_name> service.
- static int initialize (const ACE_TCHAR *svc_name,
- const ACE_TCHAR *parameters);
-
- /// Resume a <svc_name> that was previously suspended or has not yet
- /// been resumed (e.g., a static service).
- static int resume (const ACE_TCHAR svc_name[]);
-
- /**
- * Suspend <svc_name>. Note that this will not unlink the service
- * from the daemon if it was dynamically linked, it will mark it as
- * being suspended in the Service Repository and call the <suspend>
- * member function on the appropriate <ACE_Service_Object>. A
- * service can be resumed later on by calling the <RESUME> member
- * function...
- */
- static int suspend (const ACE_TCHAR svc_name[]);
-
- /// Totally remove <svc_name> from the daemon by removing it
- /// from the ACE_Reactor, and unlinking it if necessary.
- static int remove (const ACE_TCHAR svc_name[]);
-
-#if defined (ACE_HAS_WINCE)
- // We must provide these function to bridge the Svc_Conf parser
- // with ACE.
- static int initialize (const ACE_Service_Type *, char parameters[]);
- static int initialize (const char svc_name[], char parameters[]);
- static int resume (const char svc_name[]);
- static int suspend (const char svc_name[]);
- static int remove (const char svc_name[]);
-#endif /* ACE_HAS_WINCE */
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Set the signal_handler;for internal use by ACE_Object_Manager only.
- static ACE_INLINE void signal_handler (ACE_Sig_Adapter *);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /// Process a file containing a list of service configuration
- /// directives.
- static int process_file (const ACE_TCHAR file[]);
-
- /// Process one service configuration <directive>, which is passed as
- /// a string. Returns the number of errors that occurred.
- static int process_directive (const ACE_TCHAR directive[]);
-
- /// Process one static service definition.
- /**
- * Load a new static service into the ACE_Service_Repository.
- *
- * @param ssd Service descriptor, see the document of
- * ACE_Static_Svc_Descriptor for more details.
- *
- * @param force_replace If set the new service descriptor replaces
- * any previous instance in the ACE_Service_Repository.
- *
- * @return Returns -1 if the service cannot be 'loaded'.
- */
- static int process_directive (const ACE_Static_Svc_Descriptor &ssd,
- int force_replace = 0);
-
- /**
- * Process (or re-process) service configuration requests that are
- * provided in the svc.conf file(s). Returns the number of errors
- * that occurred.
- */
- static int process_directives (void);
-
- /// Handles signals to trigger reconfigurations.
- static void handle_signal (int sig, siginfo_t *, ucontext_t *);
-
- /**
- * Handle the command-line options intended for the
- * <ACE_Service_Config>. Note that <argv[0]> is assumed to be the
- * program name.
- * The arguments that are valid in a call to this method are
- * - '-b' Option to indicate that we should be a daemon
- * - '-d' Turn on debugging mode
- * - '-f' Option to read in the list of svc.conf file names
- * - '-k' Option to read a wide string where in the logger output can
- * be written
- * - '-y' Turn on the flag for a repository of statically
- * linked services
- * - '-n' Need not have a repository of statically linked services
- * - '-S' Option to read in the list of services on the command-line
- * Please observe the difference between options '-f' that looks
- * for a list of files and here a list of services.
- */
- static int parse_args (int, ACE_TCHAR *argv[]);
-#if (ACE_USES_CLASSIC_SVC_CONF == 0)
- static ACE_Service_Type *create_service_type (const ACE_TCHAR *n,
- ACE_Service_Type_Impl *o,
- ACE_DLL &dll,
- int active);
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 0 */
-
- static ACE_Service_Type_Impl *create_service_type_impl (const ACE_TCHAR *name,
- int type,
- void *symbol,
- u_int flags,
- ACE_Service_Object_Exterminator gobbler);
-protected:
- /// Process service configuration requests that were provided on the
- /// command-line. Returns the number of errors that occurred.
- static int process_commandline_directives (void);
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 1)
- /// This is the implementation function that process_directives()
- /// and process_directive() both call. Returns the number of errors
- /// that occurred.
- static int process_directives_i (ACE_Svc_Conf_Param *param);
-#else
- /// Helper function to dynamically link in the XML Service Configurator parser.
- static ACE_XML_Svc_Conf *get_xml_svc_conf (ACE_DLL &d);
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
-
- /// Become a daemon.
- static int start_daemon (void);
-
- /// Add the default statically-linked services to the
- /// <ACE_Service_Repository>.
- static int load_static_svcs (void);
-
-private:
- /// Indicates where to write the logging output. This is typically
- /// either a STREAM pipe or a socket address.
- static const ACE_TCHAR *logger_key_;
-
- /// Singleton repository of statically linked services.
- static ACE_STATIC_SVCS *static_svcs_;
-
- /// Queue of services specified on the command-line.
- static ACE_SVC_QUEUE *svc_queue_;
-
- /// Queue of svc.conf files specified on the command-line.
- /// @@ This should probably be made to handle unicode filenames...
- static ACE_SVC_QUEUE *svc_conf_file_queue_;
-
- /// Initialize the <svc_conf_file_queue_> if necessary.
- static int init_svc_conf_file_queue (void);
-
- /// True if reconfiguration occurred.
- static sig_atomic_t reconfig_occurred_;
-
- // = Set by command-line options.
- /// Shall we become a daemon process?
- static int be_a_daemon_;
-
- /// Should we avoid loading the static services?
- static int no_static_svcs_;
-
- /// Number of the signal used to trigger reconfiguration.
- static int signum_;
-
- /// Handles the reconfiguration signals.
- static ACE_Sig_Adapter *signal_handler_;
-
- /**
- * Keep track of whether the <ACE_Service_Config> is already
- * initialized. If so, we can't allow <yyparse> to be called since
- * it's not reentrant. This variable is incremented by the
- * <ACE_Service_Config::open> method and decremented by the
- * <ACE_Service_Config::close> method.
- */
- static int is_initialized_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Service_Config.i"
-#endif /* __ACE_INLINE__ */
-
-// These must go here to avoid circular includes... (only left here
-// for to not break applications which rely on this - no real need any
-// longer)
-#include "ace/Reactor.h"
-#include "ace/Svc_Conf_Tokens.h"
-
-#include "ace/post.h"
-
-#endif /* ACE_SERVICE_CONFIG_H */
diff --git a/ace/Service_Config.i b/ace/Service_Config.i
deleted file mode 100644
index 42577cb1e04..00000000000
--- a/ace/Service_Config.i
+++ /dev/null
@@ -1,101 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-
-// This is the primary entry point into the ACE_Service_Config (the
-// constructor just handles simple initializations).
-
-ACE_INLINE int
-ACE_Service_Config::open (const ACE_TCHAR program_name[],
- const ACE_TCHAR *logger_key,
- int ignore_static_svcs,
- int ignore_default_svc_conf,
- int ignore_debug_flag)
-{
- ACE_TRACE ("ACE_Service_Config::open");
- ACE_Service_Config::no_static_svcs_ = ignore_static_svcs;
-
- return ACE_Service_Config::open_i (program_name,
- logger_key,
- ignore_default_svc_conf,
- ignore_debug_flag);
-}
-
-ACE_INLINE int
-ACE_Service_Config::open (int argc,
- ACE_TCHAR *argv[],
- const ACE_TCHAR *logger_key,
- int ignore_static_svcs,
- int ignore_default_svc_conf,
- int ignore_debug_flag)
-{
- ACE_TRACE ("ACE_Service_Config::open");
- ACE_Service_Config::no_static_svcs_ = ignore_static_svcs;
-
- if (ACE_Service_Config::parse_args (argc,
- argv) == -1)
- return -1;
- else
- return ACE_Service_Config::open_i (argv[0],
- logger_key,
- ignore_default_svc_conf,
- ignore_debug_flag);
-}
-
-// Compare two service descriptors for equality.
-
-ACE_INLINE int
-ACE_Static_Svc_Descriptor::operator== (ACE_Static_Svc_Descriptor &d) const
-{
- return ACE_OS::strcmp (name_, d.name_) == 0;
-}
-
-// Compare two service descriptors for inequality.
-
-ACE_INLINE int
-ACE_Static_Svc_Descriptor::operator!= (ACE_Static_Svc_Descriptor &d) const
-{
- return !(*this == d);
-}
-
-ACE_INLINE void
-ACE_Service_Config::signal_handler (ACE_Sig_Adapter *signal_handler)
-{
- signal_handler_ = signal_handler;
-}
-
-#if defined (ACE_HAS_WINCE) && !defined (ACE_USES_WCHAR)
- // We must provide these function to bridge Svc_Conf parser with ACE.
-
-ACE_INLINE int
-ACE_Service_Config::initialize (const ACE_Service_Type *sp, char parameters[])
-{
- return ACE_Service_Config::initialize (sp, ACE_TEXT_CHAR_TO_TCHAR (parameters));
-}
-
-ACE_INLINE int
-ACE_Service_Config::initialize (const char svc_name[], char parameters[])
-{
- return ACE_Service_Config::initialize (ACE_TEXT_CHAR_TO_TCHAR (svc_name),
- ACE_TEXT_CHAR_TO_TCHAR (parameters));
-}
-
-ACE_INLINE int
-ACE_Service_Config::resume (const char svc_name[])
-{
- return ACE_Service_Config::resume (ACE_TEXT_CHAR_TO_TCHAR (svc_name));
-}
-
-ACE_INLINE int
-ACE_Service_Config::suspend (const char svc_name[])
-{
- return ACE_Service_Config::suspend (ACE_TEXT_CHAR_TO_TCHAR (svc_name));
-}
-
-ACE_INLINE int
-ACE_Service_Config::remove (const char svc_name[])
-{
- return ACE_Service_Config::remove (ACE_TEXT_CHAR_TO_TCHAR (svc_name));
-}
-#endif /* ACE_HAS_WINCE && !ACE_USES_WCHAR */
diff --git a/ace/Service_Manager.cpp b/ace/Service_Manager.cpp
deleted file mode 100644
index 8d9ce8468a2..00000000000
--- a/ace/Service_Manager.cpp
+++ /dev/null
@@ -1,374 +0,0 @@
-#include "ace/Get_Opt.h"
-#include "ace/Log_Msg.h"
-#include "ace/Service_Repository.h"
-#include "ace/Service_Config.h"
-#include "ace/Service_Manager.h"
-#include "ace/Service_Types.h"
-#include "ace/Reactor.h"
-#include "ace/WFMO_Reactor.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Service_Manager.i"
-#endif /* __ACE_INLINE__ */
-
-
-ACE_RCSID (ace,
- Service_Manager,
- "$Id$")
-
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Service_Manager)
-
-void
-ACE_Service_Manager::dump (void) const
-{
- ACE_TRACE ("ACE_Service_Manager::dump");
-}
-
-// Static variables.
-
-u_short ACE_Service_Manager::DEFAULT_PORT_ = 10000;
-
-ACE_Service_Manager::ACE_Service_Manager (void)
- : debug_ (0),
- signum_ (SIGHUP)
-{
- ACE_TRACE ("ACE_Service_Manager::ACE_Service_Manager");
-}
-
-int
-ACE_Service_Manager::suspend (void)
-{
- ACE_TRACE ("ACE_Service_Manager::suspend");
- return ACE_Reactor::instance ()->suspend_handler (this);
-}
-
-int
-ACE_Service_Manager::resume (void)
-{
- ACE_TRACE ("ACE_Service_Manager::resume");
- return ACE_Reactor::instance ()->resume_handler (this);
-}
-
-int
-ACE_Service_Manager::open (const ACE_INET_Addr &sia)
-{
- ACE_TRACE ("ACE_Service_Manager::open");
-
- // Reuse the listening address, even if it's already in use!
- if (this->acceptor_.open (sia, 1) == -1)
- return -1;
- return 0;
-}
-
-int
-ACE_Service_Manager::info (ACE_TCHAR **strp, size_t length) const
-{
- ACE_TRACE ("ACE_Service_Manager::info");
- ACE_INET_Addr sa;
- ACE_TCHAR buf[BUFSIZ];
-
- if (this->acceptor_.get_local_addr (sa) == -1)
- return -1;
-
- ACE_OS::sprintf (buf,
- ACE_LIB_TEXT ("%d/%s %s"),
- sa.get_port_number (),
- ACE_LIB_TEXT ("tcp"),
- ACE_LIB_TEXT ("# lists all services in the daemon\n"));
- if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strsncpy (*strp, buf, length);
- return ACE_static_cast (int, ACE_OS_String::strlen (buf));
-}
-
-int
-ACE_Service_Manager::init (int argc, ACE_TCHAR *argv[])
-{
- ACE_TRACE ("ACE_Service_Manager::init");
- ACE_INET_Addr local_addr (ACE_Service_Manager::DEFAULT_PORT_);
- ACE_Get_Opt getopt (argc, argv, ACE_LIB_TEXT ("dp:s:"), 0); // Start at argv[0]
-
- for (int c; (c = getopt ()) != -1; )
- switch (c)
- {
- case 'd':
- this->debug_ = 1;
- break;
- case 'p':
- local_addr.set ((u_short) ACE_OS::atoi (getopt.opt_arg ()));
- break;
- case 's':
- this->signum_ = ACE_OS::atoi (getopt.opt_arg ());
- break;
- default:
- break;
- }
-
- if (this->get_handle () == ACE_INVALID_HANDLE &&
- this->open (local_addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("open")), -1);
- else if (ACE_Reactor::instance ()->register_handler
- (this,
- ACE_Event_Handler::ACCEPT_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("registering service with ACE_Reactor\n")),
- -1);
- return 0;
-}
-
-int
-ACE_Service_Manager::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_TRACE ("ACE_Service_Manager::handle_close");
- return this->acceptor_.close ();
-}
-
-int
-ACE_Service_Manager::fini (void)
-{
- ACE_TRACE ("ACE_Service_Manager::fini");
-
- int retv = 0;
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- retv = ACE_Reactor::instance ()->remove_handler
- (this,
- ACE_Event_Handler::ACCEPT_MASK |
- ACE_Event_Handler::DONT_CALL);
- this->handle_close (ACE_INVALID_HANDLE,
- ACE_Event_Handler::NULL_MASK);
- }
- return retv;
-}
-
-ACE_HANDLE
-ACE_Service_Manager::get_handle (void) const
-{
- ACE_TRACE ("ACE_Service_Manager::get_handle");
- return this->acceptor_.get_handle ();
-}
-
-int
-ACE_Service_Manager::handle_signal (int, siginfo_t *, ucontext_t *)
-{
- return 0;
-}
-
-// Determine all the services offered by this daemon and return the
-// information back to the client.
-
-int
-ACE_Service_Manager::list_services (void)
-{
- ACE_TRACE ("ACE_Service_Manager::list_services");
- ACE_Service_Repository_Iterator sri (*ACE_Service_Repository::instance (), 0);
-
- for (const ACE_Service_Type *sr;
- sri.next (sr) != 0;
- sri.advance ())
- {
- size_t len = ACE_OS_String::strlen (sr->name ()) + 11;
- ACE_TCHAR buf[BUFSIZ];
- ACE_TCHAR *p = buf + len;
-
- ACE_OS::strcpy (buf, sr->name ());
- ACE_OS::strcat (buf, (sr->active ()) ?
- ACE_LIB_TEXT (" (active) ") :
- ACE_LIB_TEXT (" (paused) "));
-
- p[-1] = ' ';
- p[0] = '\0';
-
- len += sr->type ()->info (&p, sizeof buf - len);
-
- if (this->debug_)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("len = %d, info = %s%s"),
- len,
- buf,
- buf[len - 1] == '\n' ? ACE_LIB_TEXT ("") : ACE_LIB_TEXT ("\n")));
-
- if (len > 0)
- {
- ssize_t n = this->client_stream_.send_n (buf, len);
- if (n <= 0 && errno != EPIPE)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("send_n")));
- }
- }
-
- return 0;
-}
-
-// Trigger a reconfiguration of the Service Configurator via its
-// svc.conf file.
-
-int
-ACE_Service_Manager::reconfigure_services (void)
-{
- ACE_TRACE ("ACE_Service_Manager::reconfigure_services");
-
-#if 0
-// Send ourselves a signal! ACE_OS::kill (ACE_OS::getpid (),
-// this->signum_);
-#endif /* 0 */
-
- // Flag the main event loop that a reconfiguration should occur.
- // The next trip through the <ACE_Reactor::run_event_loop> should
- // pick this up and cause a reconfiguration. Note that we can't
- // trigger the reconfiguration automatically since that might "pull
- // the rug" out from underneath the existing services in a
- // problematic way.
- ACE_Service_Config::reconfig_occurred ((sig_atomic_t) 1);
- return this->client_stream_.send_n ("done\n",
- sizeof ("done\n"));
-}
-
-// isolate the request-processing code
-void
-ACE_Service_Manager::process_request (ACE_TCHAR *request)
-{
- ACE_TRACE("ACE_Service_Manager::process_request");
- ACE_TCHAR *p;
-
- // Kill trailing newlines.
- for (p = request;
- (*p != '\0') && (*p != '\r') && (*p != '\n');
- p++)
- continue;
-
- *p = '\0';
-
- if (ACE_OS::strcmp (request, ACE_LIB_TEXT ("help")) == 0)
- // Return a list of the configured services.
- this->list_services ();
- else if (ACE_OS::strcmp (request, ACE_LIB_TEXT ("reconfigure") )== 0)
- // Trigger a reconfiguration by re-reading the local <svc.conf> file.
- this->reconfigure_services ();
- else
- // Just process a single request passed in via the socket
- // remotely.
- ACE_Service_Config::process_directive (request);
-
- // Additional management services may be handled here...
-}
-
-// Accept new connection from client and carry out the service they
-// request.
-
-int
-ACE_Service_Manager::handle_input (ACE_HANDLE)
-{
- ACE_TRACE ("ACE_Service_Manager::handle_input");
-
- // Try to find out if the implementation of the reactor that we are
- // using requires us to reset the event association for the newly
- // created handle. This is because the newly created handle will
- // inherit the properties of the listen handle, including its event
- // associations.
- int reset_new_handle =
- ACE_Reactor::instance ()->uses_event_associations ();
-
- if (this->acceptor_.accept (this->client_stream_, // stream
- 0, // remote address
- 0, // timeout
- 1, // restart
- reset_new_handle // reset new handler
- ) == -1)
- return -1;
-
- if (this->debug_)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("client_stream fd = %d\n"),
- this->client_stream_.get_handle ()));
- ACE_INET_Addr sa;
- if (this->client_stream_.get_remote_addr (sa) == -1)
- return -1;
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("accepted from host %s at port %d\n"),
- sa.get_host_name (),
- sa.get_port_number ()));
- }
-
- ACE_TCHAR request[BUFSIZ];
- ACE_TCHAR* offset = request;
- ssize_t remaining = sizeof (request);
-
- // Read service request from client.
-
- ssize_t result;
-
- // Keep looping until we actually get the request. Note that Win32
- // sets the socket into non-blocking mode, so we may need to loop if
- // the system is heavily loaded. Read bytes into the buffer until a
- // '\n' or '\r' is found in the buffer, otherwise the buffer
- // contains an incomplete string.
-
- int error;
- do
- {
- result = client_stream_.recv (offset, remaining);
- error = errno;
- if (result == 0 && error != EWOULDBLOCK)
- remaining = 0;
-
- if (result >= 0)
- {
- if ((remaining -= result) <= 0)
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("Request buffer overflow.\n")));
- result = 0;
- break;
- }
-
- offset += result;
- *offset = 0;
-
- if (ACE_OS::strchr (request, '\r') != 0
- || ACE_OS::strchr (request, '\n') != 0)
- remaining = 0;
- }
- }
- while (result == -1 && error == EWOULDBLOCK || remaining > 0);
-
- switch (result)
- {
- case -1:
- if (this->debug_)
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("recv")));
- break;
- case 0:
- return 0;
- /* NOTREACHED */
- default:
- {
- ACE_Event_Handler *old_signal_handler = 0;
- ACE_Reactor::instance ()->register_handler (SIGPIPE,
- this,
- 0,
- &old_signal_handler);
-
- this->process_request (request);
-
- // Restore existing SIGPIPE handler
- ACE_Reactor::instance ()->register_handler (SIGPIPE,
- old_signal_handler);
- }
- }
-
- if (this->client_stream_.close () == -1 && this->debug_)
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("close")));
- return 0;
-}
diff --git a/ace/Service_Manager.h b/ace/Service_Manager.h
deleted file mode 100644
index 561d3496929..00000000000
--- a/ace/Service_Manager.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Service_Manager.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SERVICE_MANAGER_H
-#define ACE_SERVICE_MANAGER_H
-#include "ace/pre.h"
-
-#include "ace/SOCK_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Acceptor.h"
-#include "ace/INET_Addr.h"
-#include "ace/Service_Object.h"
-
-/**
- * @class ACE_Service_Manager
- *
- * @brief Provide a standard ACE service for managing all the services
- * configured in an <ACE_Service_Repository>.
- *
- * This implementation is simple and just handles each client
- * request one at a time. There are currently 3 types of requests:
- * + List services: If the string "help" is sent, return a list of all
- * the services supported by the Service Configurator.
- * + Reconfigure: If the string "reconfigure" is sent trigger a
- * reconfiguration, which will re-read the local <svc.conf> file.
- * + Process directive: If neither "help" nor "reconfigure" is sent,
- * simply treat the incoming string as a process directive and pass
- * it along to <ACE_Service_Config::process_directive>. This allows
- * remote configuration via command-line instructions like
- * % echo suspend My_Remote_Service | telnet hostname 3911
- *
- * Each request is associated with a new connection, which is closed
- * when the request is processed. In addition, you must be using the
- * singleton <ACE_Reactor::instance> in order to trigger
- * reconfigurations.
- */
-class ACE_Export ACE_Service_Manager : public ACE_Service_Object
-{
-public:
- // = Initialization and termination hooks.
- /// Constructor.
- ACE_Service_Manager (void);
-
- /// Destructor.
- ~ACE_Service_Manager (void);
-
-protected:
- // = Perform the various meta-services.
-
- /// Trigger a reconfiguration of the Service Configurator by
- //re-reading its local <svc.conf> file.
- virtual int reconfigure_services (void);
-
- /// Determine all the services offered by this daemon and return the
- /// information back to the client.
- virtual int list_services (void);
-
- // = Dynamic linking hooks.
- virtual int init (int argc, ACE_TCHAR *argv[]);
- virtual int info (ACE_TCHAR **info_string, size_t length) const;
- virtual int fini (void);
-
- // = Scheduling hooks.
- virtual int suspend (void);
- virtual int resume (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- int open (const ACE_INET_Addr &sia);
-
- // = Demultiplexing hooks.
- virtual ACE_HANDLE get_handle (void) const;
- virtual int handle_input (ACE_HANDLE fd);
- virtual int handle_close (ACE_HANDLE fd, ACE_Reactor_Mask);
- virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
-
- /// Handle one request.
- virtual void process_request (ACE_TCHAR *request);
-
- /// Connection to the client (we only support one client connection
- /// at a time).
- ACE_SOCK_Stream client_stream_;
-
- /// Acceptor instance.
- ACE_SOCK_Acceptor acceptor_;
-
- /// Keep track of the debugging level.
- int debug_;
-
- /// The signal used to trigger reconfiguration.
- int signum_;
-
- /// Default port for the Acceptor to listen on.
- static u_short DEFAULT_PORT_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Service_Manager.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* _SERVICE_MANAGER_H */
diff --git a/ace/Service_Manager.i b/ace/Service_Manager.i
deleted file mode 100644
index a040265d05f..00000000000
--- a/ace/Service_Manager.i
+++ /dev/null
@@ -1,10 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Service_Manager.i
-
-ACE_INLINE
-ACE_Service_Manager::~ACE_Service_Manager (void)
-{
- ACE_TRACE ("ACE_Service_Manager::~ACE_Service_Manager");
-}
diff --git a/ace/Service_Object.cpp b/ace/Service_Object.cpp
deleted file mode 100644
index e370e21024f..00000000000
--- a/ace/Service_Object.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-// $Id$
-
-#include "ace/Service_Object.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Service_Object.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Service_Types.h"
-#include "ace/DLL.h"
-
-ACE_RCSID(ace, Service_Object, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Service_Object)
-ACE_ALLOC_HOOK_DEFINE(ACE_Service_Type)
-
-void
-ACE_Service_Type::dump (void) const
-{
- ACE_TRACE ("ACE_Service_Type::dump");
-}
-
-ACE_Service_Type::ACE_Service_Type (const ACE_TCHAR *n,
- ACE_Service_Type_Impl *t,
- const ACE_DLL &dll,
- int active)
- : name_ (0),
- type_ (t),
- dll_ (dll),
- active_ (active),
- fini_already_called_ (0)
-{
- ACE_TRACE ("ACE_Service_Type::ACE_Service_Type");
- this->name (n);
-}
-
-ACE_Service_Type::~ACE_Service_Type (void)
-{
- ACE_TRACE ("ACE_Service_Type::~ACE_Service_Type");
-
- this->fini ();
-
- delete [] (ACE_TCHAR *) this->name_;
-}
-
-int
-ACE_Service_Type::fini (void)
-{
- if (!this->fini_already_called_)
- {
- this->fini_already_called_ = 1;
- return this->type_->fini ();
- }
- return 0;
-}
-
-int
-ACE_Service_Type::suspend (void) const
-{
- ACE_TRACE ("ACE_Service_Type::suspend");
- ((ACE_Service_Type *) this)->active_ = 0;
- return this->type_->suspend ();
-}
-
-int
-ACE_Service_Type::resume (void) const
-{
- ACE_TRACE ("ACE_Service_Type::resume");
- ((ACE_Service_Type *) this)->active_ = 1;
- return this->type_->resume ();
-}
-
-ACE_Service_Object::ACE_Service_Object (ACE_Reactor *r)
- : ACE_Event_Handler (r)
-{
- ACE_TRACE ("ACE_Service_Object::ACE_Service_Object");
-}
-
-ACE_Service_Object::~ACE_Service_Object (void)
-{
- ACE_TRACE ("ACE_Service_Object::~ACE_Service_Object");
-}
-
-int
-ACE_Service_Object::suspend (void)
-{
- ACE_TRACE ("ACE_Service_Object::suspend");
- return 0;
-}
-
-int
-ACE_Service_Object::resume (void)
-{
- ACE_TRACE ("ACE_Service_Object::resume");
- return 0;
-}
-
-void
-ACE_Service_Type::name (const ACE_TCHAR *n)
-{
- ACE_TRACE ("ACE_Service_Type::name");
-
- delete [] (ACE_TCHAR *) this->name_;
- this->name_ = ACE::strnew (n);
-}
diff --git a/ace/Service_Object.h b/ace/Service_Object.h
deleted file mode 100644
index 16cc48518da..00000000000
--- a/ace/Service_Object.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Service_Object.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SERVICE_OBJECT_H
-#define ACE_SERVICE_OBJECT_H
-#include "ace/pre.h"
-
-#include "ace/Shared_Object.h"
-#include "ace/Svc_Conf_Tokens.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Event_Handler.h"
-#include "ace/DLL.h"
-
-#define ACE_Component ACE_Service_Object
-/**
- * @class ACE_Service_Object
- *
- * @brief Provide the abstract base class common to all service
- * implementations.
- *
- * Classes that inherit from <ACE_Service_Objects> are capable
- * of being registered with the <ACE_Reactor> (due to the
- * <ACE_Event_Handler>, as well as being dynamically linked by
- * the <ACE_Service_Config> (due to the <ACE_Shared_Object>).
- */
-class ACE_Export ACE_Service_Object : public ACE_Event_Handler, public ACE_Shared_Object
-{
-public:
- // = Initialization and termination methods.
- /// Constructor.
- ACE_Service_Object (ACE_Reactor * = 0);
-
- /// Destructor.
- virtual ~ACE_Service_Object (void);
-
- /// Temporarily disable a service without removing it completely.
- virtual int suspend (void);
-
- /// Re-enable a previously suspended service.
- virtual int resume (void);
-};
-
-// Forward decl.
-class ACE_Service_Type_Impl;
-class ACE_DLL;
-
-/**
- * @class ACE_Service_Type
- *
- * @brief Keeps track of information related to the various
- * <ACE_Service_Type_Impl> subclasses.
- *
- * This class acts as the interface of the "Bridge" pattern.
- */
-class ACE_Export ACE_Service_Type
-{
-public:
- enum
- {
- /// Delete the payload object.
- DELETE_OBJ = 1,
-
- /// Delete the enclosing object.
- DELETE_THIS = 2
- };
-
- enum
- {
- SERVICE_OBJECT = ACE_SVC_OBJ_T,
- MODULE = ACE_MODULE_T,
- STREAM = ACE_STREAM_T,
- INVALID_TYPE = -1
- };
-
- // = Initialization and termination methods.
- ACE_Service_Type (const ACE_TCHAR *n,
- ACE_Service_Type_Impl *o,
- const ACE_DLL &dll,
- int active);
- ~ACE_Service_Type (void);
-
- const ACE_TCHAR *name (void) const;
- void name (const ACE_TCHAR *);
-
- const ACE_Service_Type_Impl *type (void) const;
- void type (const ACE_Service_Type_Impl *,
- int active = 1);
-
- int suspend (void) const;
- int resume (void) const;
- int active (void) const;
- void active (int);
-
- /// Calls <fini> on <type_>
- int fini (void);
-
- /// Check if the service has been fini'ed.
- int fini_called (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Humanly readible name of svc.
- const ACE_TCHAR *name_;
-
- /// Pointer to C++ object that implements the svc.
- const ACE_Service_Type_Impl *type_;
-
- /// ACE_DLL representing the shared object file (non-zero if dynamically linked).
- ACE_DLL dll_;
-
- /// 1 if svc is currently active, otherwise 0.
- int active_;
-
- /// 1 if <fini> on <type_> has already been called, otherwise 0.
- int fini_already_called_;
-};
-
-/**
- * @class ACE_Service_Object_Ptr
- *
- * @brief This is a smart pointer that holds onto the associated
- * <ACE_Service_Object> * until the current scope is left, at
- * which point the object's <fini> hook is called and the
- * service_object_ gets deleted.
- *
- * This class is similar to the Standard C++ Library class
- * <auto_ptr>. It is used in conjunction with statically linked
- * <ACE_Service_Objects>, as shown in the
- * ./netsvcs/server/main.cpp example.
- */
-class ACE_Export ACE_Service_Object_Ptr
-{
-public:
- // = Initialization and termination methods.
- /// Acquire ownership of the <so>.
- ACE_Service_Object_Ptr (ACE_Service_Object *so);
-
- /// Release the held <ACE_Service_Object> by calling its <fini> hook.
- ~ACE_Service_Object_Ptr (void);
-
- /// Smart pointer to access the underlying <ACE_Service_Object>.
- ACE_Service_Object *operator-> ();
-
-private:
- /// Holds the service object until we're done.
- ACE_Service_Object *service_object_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Service_Object.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_SERVICE_OBJECT_H */
diff --git a/ace/Service_Object.i b/ace/Service_Object.i
deleted file mode 100644
index 5e1b7ae475e..00000000000
--- a/ace/Service_Object.i
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Service_Object.i
-
-ACE_INLINE ACE_Service_Object_Ptr::ACE_Service_Object_Ptr (ACE_Service_Object *so)
- : service_object_ (so)
-{
-}
-
-ACE_INLINE ACE_Service_Object_Ptr::~ACE_Service_Object_Ptr (void)
-{
- this->service_object_->fini ();
- delete this->service_object_;
-}
-
-ACE_INLINE ACE_Service_Object *
-ACE_Service_Object_Ptr::operator-> ()
-{
- return this->service_object_;
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_Service_Type::name (void) const
-{
- ACE_TRACE ("ACE_Service_Type::name");
- return this->name_;
-}
-
-ACE_INLINE const ACE_Service_Type_Impl *
-ACE_Service_Type::type (void) const
-{
- ACE_TRACE ("ACE_Service_Type::type");
- return this->type_;
-}
-
-ACE_INLINE void
-ACE_Service_Type::type (const ACE_Service_Type_Impl *o, int enabled)
-{
- ACE_TRACE ("ACE_Service_Type::type");
- this->type_ = o;
- ((ACE_Service_Type *) this)->active_ = enabled;
-}
-
-ACE_INLINE int
-ACE_Service_Type::active (void) const
-{
- ACE_TRACE ("ACE_Service_Type::active");
- return this->active_ != 0;
-}
-
-ACE_INLINE void
-ACE_Service_Type::active (int turnon)
-{
- ACE_TRACE ("ACE_Service_Type::active");
- this->active_ = turnon;
-}
-
-ACE_INLINE int
-ACE_Service_Type::fini_called (void) const
-{
- ACE_TRACE ("ACE_Service_Type::fini_called");
- return this->fini_already_called_;
-}
diff --git a/ace/Service_Repository.cpp b/ace/Service_Repository.cpp
deleted file mode 100644
index 125c2e77b87..00000000000
--- a/ace/Service_Repository.cpp
+++ /dev/null
@@ -1,416 +0,0 @@
-#include "ace/Service_Repository.h"
-#include "ace/Service_Types.h"
-#include "ace/Object_Manager.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Service_Repository.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID (ace,
- Service_Repository,
- "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Service_Repository)
-
-// Process-wide Service Repository.
-ACE_Service_Repository *ACE_Service_Repository::svc_rep_ = 0;
-
-// Controls whether the Service_Repository is deleted when we shut
-// down (we can only delete it safely if we created it)!
-int ACE_Service_Repository::delete_svc_rep_ = 0;
-
-void
-ACE_Service_Repository::dump (void) const
-{
- ACE_TRACE ("ACE_Service_Repository::dump");
-}
-
-ACE_Service_Repository::ACE_Service_Repository (void)
- : service_vector_ (0),
- current_size_ (0),
- total_size_ (0)
-{
- ACE_TRACE ("ACE_Service_Repository::ACE_Service_Repository");
-}
-
-ACE_Service_Repository *
-ACE_Service_Repository::instance (int size /* = ACE_Service_Repository::DEFAULT_SIZE */)
-{
- ACE_TRACE ("ACE_Service_Repository::instance");
-
- if (ACE_Service_Repository::svc_rep_ == 0)
- {
- // Perform Double-Checked Locking Optimization.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
- if (ACE_Service_Repository::svc_rep_ == 0)
- {
- if (ACE_Object_Manager::starting_up () ||
- !ACE_Object_Manager::shutting_down ())
- {
- ACE_NEW_RETURN (ACE_Service_Repository::svc_rep_,
- ACE_Service_Repository (size),
- 0);
- ACE_Service_Repository::delete_svc_rep_ = 1;
- }
- }
- }
-
- return ACE_Service_Repository::svc_rep_;
-}
-
-ACE_Service_Repository *
-ACE_Service_Repository::instance (ACE_Service_Repository *s)
-{
- ACE_TRACE ("ACE_Service_Repository::instance");
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
-
- ACE_Service_Repository *t = ACE_Service_Repository::svc_rep_;
- // We can't safely delete it since we don't know who created it!
- ACE_Service_Repository::delete_svc_rep_ = 0;
-
- ACE_Service_Repository::svc_rep_ = s;
- return t;
-}
-
-void
-ACE_Service_Repository::close_singleton (void)
-{
- ACE_TRACE ("ACE_Service_Repository::close_singleton");
-
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance ()));
-
- if (ACE_Service_Repository::delete_svc_rep_)
- {
- delete ACE_Service_Repository::svc_rep_;
- ACE_Service_Repository::svc_rep_ = 0;
- ACE_Service_Repository::delete_svc_rep_ = 0;
- }
-}
-
-// Initialize the Repository to a clean slate.
-
-int
-ACE_Service_Repository::open (int size)
-{
- ACE_TRACE ("ACE_Service_Repository::open");
-
- ACE_Service_Type **temp;
-
- ACE_NEW_RETURN (temp,
- ACE_Service_Type *[size],
- -1);
-
- this->service_vector_ = ACE_const_cast (const ACE_Service_Type **,
- temp);
- this->total_size_ = size;
- return 0;
-}
-
-ACE_Service_Repository::ACE_Service_Repository (int size)
- : current_size_ (0)
-{
- ACE_TRACE ("ACE_Service_Repository::ACE_Service_Repository");
-
- if (this->open (size) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Service_Repository")));
-}
-
-// Finalize (call <fini> and possibly delete) all the services.
-
-int
-ACE_Service_Repository::fini (void)
-{
- ACE_TRACE ("ACE_Service_Repository::fini");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
- int retval = 0;
-
- if (this->service_vector_ != 0)
- {
- // <fini> the services in reverse order. Note that if services
- // were removed from the middle of the repository the order
- // won't necessarily be maintained since the <remove> method
- // performs compaction. However, the common case is not to
- // remove services, so typically they are deleted in reverse
- // order.
-
- for (int i = this->current_size_ - 1; i >= 0; i--)
- {
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("finalizing %s\n"),
- this->service_vector_[i]->name ()));
- ACE_Service_Type *s =
- ACE_const_cast (ACE_Service_Type *,
- this->service_vector_[i]);
- // Collect errors.
- retval += s->fini ();
- }
- }
-
- return (retval == 0) ? 0 : -1;
-}
-
-// Close down all the services.
-
-int
-ACE_Service_Repository::close (void)
-{
- ACE_TRACE ("ACE_Service_Repository::close");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- if (this->service_vector_ != 0)
- {
- // Delete services in reverse order. Note that if services were
- // removed from the middle of the repository the order won't
- // necessarily be maintained since the <remove> method performs
- // compaction. However, the common case is not to remove
- // services, so typically they are deleted in reverse order.
-
- for (int i = this->current_size_ - 1; i >= 0; i--)
- {
- ACE_Service_Type *s = ACE_const_cast (ACE_Service_Type *,
- this->service_vector_[i]);
- --this->current_size_;
- delete s;
- }
-
- delete [] this->service_vector_;
- this->service_vector_ = 0;
- this->current_size_ = 0;
- }
-
- return 0;
-}
-
-ACE_Service_Repository::~ACE_Service_Repository (void)
-{
- ACE_TRACE ("ACE_Service_Repository::~ACE_Service_Repository");
- this->close ();
-}
-
-// Locate an entry with <name> in the table. If <ignore_suspended> is
-// set then only consider services marked as resumed. If the caller
-// wants the located entry, pass back a pointer to the located entry
-// via <srp>. If <name> is not found -1 is returned. If <name> is
-// found, but it is suspended and the caller wants to ignore suspended
-// services a -2 is returned. Must be called with locks held.
-
-int
-ACE_Service_Repository::find_i (const ACE_TCHAR name[],
- const ACE_Service_Type **srp,
- int ignore_suspended)
-{
- ACE_TRACE ("ACE_Service_Repository::find_i");
- int i;
-
- for (i = 0; i < this->current_size_; i++)
- if (ACE_OS::strcmp (name,
- this->service_vector_[i]->name ()) == 0)
- break;
-
- if (i < this->current_size_)
- {
- if (this->service_vector_[i]->fini_called ())
- {
- if (srp != 0)
- *srp = 0;
- return -1;
- }
-
- if (srp != 0)
- *srp = this->service_vector_[i];
- if (ignore_suspended
- && this->service_vector_[i]->active () == 0)
- return -2;
- return i;
- }
- else
- return -1;
-}
-
-int
-ACE_Service_Repository::find (const ACE_TCHAR name[],
- const ACE_Service_Type **srp,
- int ignore_suspended)
-{
- ACE_TRACE ("ACE_Service_Repository::find");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- return this->find_i (name, srp, ignore_suspended);
-}
-
-
-// Insert the ACE_Service_Type SR into the repository. Note that
-// services may be inserted either resumed or suspended.
-
-int
-ACE_Service_Repository::insert (const ACE_Service_Type *sr)
-{
- ACE_TRACE ("ACE_Service_Repository::insert");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
- int i;
-
- // Check to see if this is a duplicate.
- for (i = 0; i < this->current_size_; i++)
- if (ACE_OS::strcmp (sr->name (),
- this->service_vector_[i]->name ()) == 0)
- break;
-
- // Replacing an existing entry
- if (i < this->current_size_)
- {
- // Check for self-assignment...
- if (sr == this->service_vector_[i])
- return 0;
- ACE_Service_Type *s = ACE_const_cast (ACE_Service_Type *,
- this->service_vector_[i]);
- delete s;
- this->service_vector_[i] = sr;
- return 0;
- }
- // Adding a new entry.
- else if (i < this->total_size_)
- {
- this->service_vector_[i] = sr;
- this->current_size_++;
- return 0;
- }
-
- return -1;
-}
-
-// Re-resume a service that was previously suspended.
-
-int
-ACE_Service_Repository::resume (const ACE_TCHAR name[],
- const ACE_Service_Type **srp)
-{
- ACE_TRACE ("ACE_Service_Repository::resume");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- int i = this->find_i (name, srp, 0);
-
- if (i == -1)
- return -1;
-
- return this->service_vector_[i]->resume ();
-}
-
-// Suspend a service so that it will not be considered active under
-// most circumstances by other portions of the ACE_Service_Repository.
-
-int
-ACE_Service_Repository::suspend (const ACE_TCHAR name[],
- const ACE_Service_Type **srp)
-{
- ACE_TRACE ("ACE_Service_Repository::suspend");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
- int i = this->find_i (name, srp, 0);
-
- if (i == -1)
- return -1;
-
- return this->service_vector_[i]->suspend ();
-}
-
-// Completely remove a <name> entry from the Repository and
-// dynamically unlink it if it was originally dynamically linked.
-// Since the order of services in the Respository does not matter, we
-// simply overwrite the entry being deleted with the final entry in
-// the array and decrement the <current_size> by 1.
-
-int
-ACE_Service_Repository::remove (const ACE_TCHAR name[])
-{
- ACE_TRACE ("ACE_Service_Repository::remove");
- ACE_Service_Type *s = 0;
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
- int i = this->find_i (name, 0, 0);
-
- if (i == -1)
- return -1;
-
- s = ACE_const_cast (ACE_Service_Type *,
- this->service_vector_[i]);
- --this->current_size_;
-
- if (this->current_size_ >= 1)
- this->service_vector_[i]
- = this->service_vector_[this->current_size_];
- }
- delete s;
- return 0;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Service_Repository_Iterator)
-
-void
-ACE_Service_Repository_Iterator::dump (void) const
-{
- ACE_TRACE ("ACE_Service_Repository_Iterator::dump");
-}
-
-// Initializes the iterator and skips over any suspended entries at
-// the beginning of the table, if necessary. Note, you must not
-// perform destructive operations on elements during this iteration...
-
-ACE_Service_Repository_Iterator::ACE_Service_Repository_Iterator
- (ACE_Service_Repository &sr,
- int ignr_suspended)
- : svc_rep_ (sr),
- next_ (-1),
- ignore_suspended_ (ignr_suspended)
-{
- this->advance ();
-}
-
-// Obtains a pointer to the next valid service in the table. If there
-// are no more entries, returns 0, else 1.
-
-int
-ACE_Service_Repository_Iterator::next (const ACE_Service_Type *&sr)
-{
- ACE_TRACE ("ACE_Service_Repository_Iterator::next");
- if (this->next_ < this->svc_rep_.current_size_)
- {
- sr = this->svc_rep_.service_vector_[this->next_];
- return 1;
- }
- else
- return 0;
-}
-
-int
-ACE_Service_Repository_Iterator::done (void) const
-{
- ACE_TRACE ("ACE_Service_Repository_Iterator::done");
-
- return this->next_ >= this->svc_rep_.current_size_;
-}
-
-// Advance the iterator by the proper amount. If we are ignoring
-// suspended entries and the current entry is suspended, then we must
-// skip over this entry. Otherwise, we must advance the NEXT index to
-// reference the next valid service entry.
-
-int
-ACE_Service_Repository_Iterator::advance (void)
-{
- ACE_TRACE ("ACE_Service_Repository_Iterator::advance");
-
- for (++this->next_;
- this->next_ < this->svc_rep_.current_size_
- && this->ignore_suspended_
- && this->svc_rep_.service_vector_[this->next_]->active () == 0;
- this->next_++)
- continue;
-
- return this->next_ < this->svc_rep_.current_size_;
-}
diff --git a/ace/Service_Repository.h b/ace/Service_Repository.h
deleted file mode 100644
index fa8bc699edb..00000000000
--- a/ace/Service_Repository.h
+++ /dev/null
@@ -1,211 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Service_Repository.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SERVICE_REPOSITORY_H
-#define ACE_SERVICE_REPOSITORY_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Default_Constants.h"
-#include "ace/Synch.h"
-
-
-class ACE_Service_Type;
-
-#define ACE_Component_Repository ACE_Service_Repository
-/**
- * @class ACE_Service_Repository
- *
- * @brief Contains all the services offered by a Service
- * Configurator-based application.
- *
- * This class contains a vector of <ACE_Service_Types> *'s and
- * allows an administrative entity to centrally manage and
- * control the behavior of application services. Note that if
- * services are removed from the middle of the repository the
- * order won't necessarily be maintained since the <remove>
- * method performs compaction. However, the common case is not
- * to remove services, so typically they are deleted in the
- * reverse order that they were added originally.
- */
-class ACE_Export ACE_Service_Repository
-{
-public:
- friend class ACE_Service_Repository_Iterator;
-
- enum
- {
- DEFAULT_SIZE = ACE_DEFAULT_SERVICE_REPOSITORY_SIZE
- };
-
- // = Initialization and termination methods.
- /// Initialize the repository.
- ACE_Service_Repository (void);
-
- /// Initialize the repository.
- ACE_Service_Repository (int size);
-
- /// Initialize the repository.
- int open (int size = DEFAULT_SIZE);
-
- /// Close down the repository and free up dynamically allocated
- /// resources.
- ~ACE_Service_Repository (void);
-
- /// Close down the repository and free up dynamically allocated
- /// resources.
- int close (void);
-
- /// Finalize all the services by calling <fini> and deleting
- /// dynamically allocated services.
- int fini (void);
-
- /// Get pointer to a process-wide <ACE_Service_Repository>.
- static ACE_Service_Repository *instance (int size = ACE_Service_Repository::DEFAULT_SIZE);
-
- /// Set pointer to a process-wide <ACE_Service_Repository> and return
- /// existing pointer.
- static ACE_Service_Repository *instance (ACE_Service_Repository *);
-
- /// Delete the dynamically allocated Singleton.
- static void close_singleton (void);
-
- // = Search structure operations (all acquire locks as necessary).
-
- /// Insert a new service record. Returns -1 when the service repository is full
- /// and 0 on success.
- int insert (const ACE_Service_Type *);
-
- /**
- * Locate an entry with <name> in the table. If <ignore_suspended>
- * is set then only consider services marked as resumed. If the
- * caller wants the located entry, pass back a pointer to the
- * located entry via <srp>. If <name> is not found, -1 is returned.
- * If <name> is found, but it is suspended and the caller wants to
- * ignore suspended services a -2 is returned.
- */
- int find (const ACE_TCHAR name[],
- const ACE_Service_Type **srp = 0,
- int ignore_suspended = 1);
-
- /// Remove an existing service record.
- int remove (const ACE_TCHAR[]);
-
- // = Liveness control
- /// Resume a service record.
- int resume (const ACE_TCHAR[], const ACE_Service_Type ** = 0);
-
- /// Suspend a service record.
- int suspend (const ACE_TCHAR[], const ACE_Service_Type ** = 0);
-
- /// Return the current size of the repository.
- int current_size (void) const;
-
- /// Return the total size of the repository.
- int total_size (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Locates <service_name>. Must be called without locks being
- /// held...
- int find_i (const ACE_TCHAR service_name[],
- const ACE_Service_Type ** = 0,
- int ignore_suspended = 1);
-
- /// Contains all the configured services.
- const ACE_Service_Type **service_vector_;
-
- /// Current number of services.
- int current_size_;
-
- /// Maximum number of services.
- int total_size_;
-
- /// Pointer to a process-wide <ACE_Service_Repository>.
- static ACE_Service_Repository *svc_rep_;
-
- /// Must delete the <svc_rep_> if non-0.
- static int delete_svc_rep_;
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- /// Synchronization variable for the MT_SAFE Repository
- ACE_Thread_Mutex lock_;
-#endif /* ACE_MT_SAFE */
-};
-
-/**
- * @class ACE_Service_Repository_Iterator
- *
- * @brief Iterate through the <ACE_Service_Repository>.
- *
- * Make sure not to delete entries as the iteration is going on
- * since this class is not designed as a robust iterator.
- */
-class ACE_Export ACE_Service_Repository_Iterator
-{
-public:
- // = Initialization and termination methods.
- /// Constructor initializes the iterator.
- ACE_Service_Repository_Iterator (ACE_Service_Repository &sr,
- int ignored_suspended = 1);
-
- /// Destructor.
- ~ACE_Service_Repository_Iterator (void);
-
- // = Iteration methods.
-
- /// Pass back the <next_item> that hasn't been seen in the repository.
- /// Returns 0 when all items have been seen, else 1.
- int next (const ACE_Service_Type *&next_item);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Move forward by one element in the repository. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Reference to the Service Repository we are iterating over.
- ACE_Service_Repository &svc_rep_;
-
- /// Next index location that we haven't yet seen.
- int next_;
-
- /// Are we ignoring suspended services?
- int ignore_suspended_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Service_Repository.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* _SERVICE_REPOSITORY_H */
diff --git a/ace/Service_Repository.i b/ace/Service_Repository.i
deleted file mode 100644
index 053ff2673a8..00000000000
--- a/ace/Service_Repository.i
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Service_Repository.i
-
-// Returns a count of the number of currently valid entries (counting
-// both resumed and suspended entries).
-
-ACE_INLINE int
-ACE_Service_Repository::current_size (void) const
-{
- ACE_TRACE ("ACE_Service_Repository::current_size");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, (ACE_Thread_Mutex &) this->lock_, -1));
- return this->current_size_;
-}
-
-// Returns a count of the total number of possible entries in the
-// table.
-
-ACE_INLINE int
-ACE_Service_Repository::total_size (void) const
-{
- ACE_TRACE ("ACE_Service_Repository::total_size");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, (ACE_Thread_Mutex &) this->lock_, -1));
- return this->total_size_;
-}
-
-ACE_INLINE
-ACE_Service_Repository_Iterator::~ACE_Service_Repository_Iterator (void)
-{
-}
diff --git a/ace/Service_Templates.cpp b/ace/Service_Templates.cpp
deleted file mode 100644
index 09531b68540..00000000000
--- a/ace/Service_Templates.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// $Id$
-
-#include "ace/Service_Templates.h"
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Node<ACE_Static_Svc_Descriptor *>;
-template class ACE_Unbounded_Set<ACE_Static_Svc_Descriptor *>;
-template class ACE_Unbounded_Set_Iterator<ACE_Static_Svc_Descriptor *>;
-template class ACE_Node<ACE_TString>;
-template class ACE_Unbounded_Queue<ACE_TString>;
-template class ACE_Unbounded_Queue_Iterator<ACE_TString>;
-template class ACE_Unbounded_Set<ACE_TString>;
-template class ACE_Unbounded_Set_Iterator<ACE_TString>;
-template class auto_ptr<ACE_Obstack>;
-# if defined (ACE_LACKS_AUTO_PTR) \
- || !(defined (ACE_HAS_STANDARD_CPP_LIBRARY) \
- && (ACE_HAS_STANDARD_CPP_LIBRARY != 0))
-template class ACE_Auto_Basic_Ptr<ACE_Obstack>;
-# endif /* ACE_LACKS_AUTO_PTR */
-
-template class ACE_Message_Queue<ACE_SYNCH>;
-template class ACE_Message_Queue_Iterator<ACE_SYNCH>;
-template class ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH>;
-template class ACE_Message_Queue_Factory<ACE_SYNCH>;
-template class ACE_Dynamic_Message_Queue<ACE_SYNCH>;
-template class ACE_Module<ACE_SYNCH>;
-template class ACE_Stream<ACE_SYNCH>;
-template class ACE_Stream_Head<ACE_SYNCH>;
-template class ACE_Stream_Tail<ACE_SYNCH>;
-template class ACE_Task<ACE_SYNCH>;
-template class ACE_Thru_Task<ACE_SYNCH>;
-
-// Even with threads, these ACE_NULL_SYNCH specializations are necessary.
-#if defined (ACE_HAS_THREADS)
- template class ACE_Message_Queue<ACE_NULL_SYNCH>;
- template class ACE_Message_Queue_Iterator<ACE_NULL_SYNCH>;
- template class ACE_Message_Queue_Reverse_Iterator<ACE_NULL_SYNCH>;
- template class ACE_Message_Queue_Factory<ACE_NULL_SYNCH>;
- template class ACE_Dynamic_Message_Queue<ACE_NULL_SYNCH>;
- template class ACE_Module<ACE_NULL_SYNCH>;
- template class ACE_Task<ACE_NULL_SYNCH>;
- template class ACE_Thru_Task<ACE_NULL_SYNCH>;
-#endif /* ACE_HAS_THREADS */
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Node<ACE_Static_Svc_Descriptor *>
-#pragma instantiate ACE_Unbounded_Set<ACE_Static_Svc_Descriptor *>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_Static_Svc_Descriptor *>
-#pragma instantiate ACE_Node<ACE_TString>
-#pragma instantiate ACE_Unbounded_Queue<ACE_TString>
-#pragma instantiate ACE_Unbounded_Queue_Iterator<ACE_TString>
-#pragma instantiate ACE_Unbounded_Set<ACE_TString>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_TString>
-#pragma instantiate auto_ptr<ACE_Obstack>
-# if defined (ACE_LACKS_AUTO_PTR) \
- || !(defined (ACE_HAS_STANDARD_CPP_LIBRARY) \
- && (ACE_HAS_STANDARD_CPP_LIBRARY != 0))
-# pragma instantiate ACE_Auto_Basic_Ptr<ACE_Obstack>
-# endif /* ACE_LACKS_AUTO_PTR */
-
-#pragma instantiate ACE_Message_Queue<ACE_SYNCH>
-#pragma instantiate ACE_Message_Queue_Iterator<ACE_SYNCH>
-#pragma instantiate ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH>
-#pragma instantiate ACE_Message_Queue_Factory<ACE_SYNCH>
-#pragma instantiate ACE_Dynamic_Message_Queue<ACE_SYNCH>
-#pragma instantiate ACE_Module<ACE_SYNCH>
-#pragma instantiate ACE_Stream<ACE_SYNCH>
-#pragma instantiate ACE_Stream_Head<ACE_SYNCH>
-#pragma instantiate ACE_Stream_Tail<ACE_SYNCH>
-#pragma instantiate ACE_Task<ACE_SYNCH>
-#pragma instantiate ACE_Thru_Task<ACE_SYNCH>
-// Even with threads, these ACE_NULL_SYNCH specializations are necessary.
-#if defined (ACE_HAS_THREADS)
- #pragma instantiate ACE_Message_Queue<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Message_Queue_Iterator<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Message_Queue_Reverse_Iterator<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Message_Queue_Factory<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Dynamic_Message_Queue<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Module<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Task<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Thru_Task<ACE_NULL_SYNCH>
-#endif /* ACE_HAS_THREADS */
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Service_Templates.h b/ace/Service_Templates.h
deleted file mode 100644
index 939081f7813..00000000000
--- a/ace/Service_Templates.h
+++ /dev/null
@@ -1,29 +0,0 @@
-
-//=============================================================================
-/**
- * @file Service_Templates.h
- *
- * $Id$
- *
- * @author Priyanka Gontla <pgontla@ece.uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_SERVICE_TEMPLATES_H
-#define ACE_SERVICE_TEMPLATES_H
-#include "ace/pre.h"
-
-#include "ace/Svc_Conf.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Auto_Ptr.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Stream_Modules.h"
-#include "ace/Stream.h"
-
-#include "ace/post.h"
-#endif /* ACE_SERVICE_TEMPLATES_H */
diff --git a/ace/Service_Types.cpp b/ace/Service_Types.cpp
deleted file mode 100644
index a39d163fa60..00000000000
--- a/ace/Service_Types.cpp
+++ /dev/null
@@ -1,454 +0,0 @@
-// $Id$
-
-#include "ace/Service_Types.h"
-#include "ace/Stream_Modules.h"
-#include "ace/Stream.h"
-
-ACE_RCSID(ace, Service_Types, "$Id$")
-
-typedef ACE_Stream<ACE_SYNCH> MT_Stream;
-typedef ACE_Module<ACE_SYNCH> MT_Module;
-typedef ACE_Task<ACE_SYNCH> MT_Task;
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Service_Types.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Service_Type_Impl)
-
-void
-ACE_Service_Type_Impl::dump (void) const
-{
- ACE_TRACE ("ACE_Service_Type_Impl::dump");
-}
-
-ACE_Service_Type_Impl::ACE_Service_Type_Impl (void *so,
- const ACE_TCHAR *s_name,
- u_int f,
- ACE_Service_Object_Exterminator gobbler)
- : name_ (0),
- obj_ (so),
- gobbler_ (gobbler),
- flags_ (f)
-{
- ACE_TRACE ("ACE_Service_Type_Impl::ACE_Service_Type_Impl");
- this->name (s_name);
-}
-
-ACE_Service_Type_Impl::~ACE_Service_Type_Impl (void)
-{
- ACE_TRACE ("ACE_Service_Type_Impl::~ACE_Service_Type_Impl");
-
- // It's ok to call this, even though we may have already deleted it
- // in the fini() method since it would then be NULL.
- delete [] (ACE_TCHAR *) this->name_;
-}
-
-int
-ACE_Service_Type_Impl::fini (void) const
-{
- ACE_TRACE ("ACE_Service_Type_Impl::fini");
- if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("destroying %s, flags = %d\n"),
- this->name_,
- this->flags_));
-
- delete [] (ACE_TCHAR *) this->name_;
- ((ACE_Service_Type_Impl *) this)->name_ = 0;
-
- if (ACE_BIT_ENABLED (this->flags_,
- ACE_Service_Type::DELETE_OBJ))
- {
- if (gobbler_ != 0)
- gobbler_ (this->object ());
- else
- // Cast to remove const-ness.
- operator delete ((void *) this->object ());
- }
-
- if (ACE_BIT_ENABLED (this->flags_,
- ACE_Service_Type::DELETE_THIS))
- delete (ACE_Service_Type_Impl *) this;
-
- return 0;
-}
-
-ACE_Service_Object_Type::ACE_Service_Object_Type (void *so,
- const ACE_TCHAR *s_name,
- u_int f,
- ACE_Service_Object_Exterminator gobbler)
- : ACE_Service_Type_Impl (so, s_name, f, gobbler)
-{
- ACE_TRACE ("ACE_Service_Object_Type::ACE_Service_Object_Type");
-}
-
-int
-ACE_Service_Object_Type::init (int argc, ACE_TCHAR *argv[]) const
-{
- ACE_TRACE ("ACE_Service_Object_Type::init");
-
- void *obj = this->object ();
- ACE_Service_Object *so = (ACE_Service_Object *) obj;
-
- if (so == 0)
- return -1;
- else
- return so->init (argc, argv);
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Module_Type)
-
-void
-ACE_Module_Type::dump (void) const
-{
- ACE_TRACE ("ACE_Module_Type::dump");
-}
-
-ACE_Module_Type::ACE_Module_Type (void *m,
- const ACE_TCHAR *m_name,
- u_int f)
- : ACE_Service_Type_Impl (m, m_name, f)
-{
- ACE_TRACE ("ACE_Module_Type::ACE_Module_Type");
-}
-
-int
-ACE_Module_Type::init (int argc, ACE_TCHAR *argv[]) const
-{
- ACE_TRACE ("ACE_Module_Type::init");
- void *obj = this->object ();
- MT_Module *mod = (MT_Module *) obj;
- MT_Task *reader = mod->reader ();
- MT_Task *writer = mod->writer ();
-
- if (reader->init (argc, argv) == -1
- || writer->init (argc, argv) == -1)
- return -1;
- else
- return 0;
-}
-
-int
-ACE_Module_Type::suspend (void) const
-{
- ACE_TRACE ("ACE_Module_Type::suspend");
- void *obj = this->object ();
- MT_Module *mod = (MT_Module *) obj;
- MT_Task *reader = mod->reader ();
- MT_Task *writer = mod->writer ();
-
- if (reader->suspend () == -1
- || writer->suspend () == -1)
- return -1;
- else
- return 0;
-}
-
-int
-ACE_Module_Type::resume (void) const
-{
- ACE_TRACE ("ACE_Module_Type::resume");
- void *obj = this->object ();
- MT_Module *mod = (MT_Module *) obj;
- MT_Task *reader = mod->reader ();
- MT_Task *writer = mod->writer ();
-
- if (reader->resume () == -1
- || writer->resume () == -1)
- return -1;
- else
- return 0;
-}
-
-// Note, these operations are somewhat too familiar with the
-// implementation of ACE_Module and ACE_Module::close...
-
-int
-ACE_Module_Type::fini (void) const
-{
- ACE_TRACE ("ACE_Module_Type::fini");
-
- void *obj = this->object ();
- MT_Module *mod = (MT_Module *) obj;
- MT_Task *reader = mod->reader ();
- MT_Task *writer = mod->writer ();
-
- if (reader != 0)
- reader->fini ();
-
- if (writer != 0)
- writer->fini ();
-
- // Close the module and delete the memory.
- mod->close (MT_Module::M_DELETE);
- return ACE_Service_Type_Impl::fini ();
-}
-
-int
-ACE_Module_Type::info (ACE_TCHAR **str, size_t len) const
-{
- ACE_TRACE ("ACE_Module_Type::info");
- ACE_TCHAR buf[BUFSIZ];
-
- ACE_OS::sprintf (buf,
- ACE_LIB_TEXT ("%s\t %s"),
- this->name (),
- ACE_LIB_TEXT ("# ACE_Module\n"));
-
- if (*str == 0 && (*str = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strsncpy (*str, buf, len);
- return ACE_static_cast (int, ACE_OS_String::strlen (buf));
-}
-
-void
-ACE_Module_Type::link (ACE_Module_Type *n)
-{
- ACE_TRACE ("ACE_Module_Type::link");
- this->link_ = n;
-}
-
-ACE_Module_Type *
-ACE_Module_Type::link (void) const
-{
- ACE_TRACE ("ACE_Module_Type::link");
- return this->link_;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Stream_Type)
-
-void
-ACE_Stream_Type::dump (void) const
-{
- ACE_TRACE ("ACE_Stream_Type::dump");
-}
-
-int
-ACE_Stream_Type::init (int, ACE_TCHAR *[]) const
-{
- ACE_TRACE ("ACE_Stream_Type::init");
- return 0;
-}
-
-int
-ACE_Stream_Type::suspend (void) const
-{
- ACE_TRACE ("ACE_Stream_Type::suspend");
-
- for (ACE_Module_Type *m = this->head_;
- m != 0;
- m = m->link ())
- m->suspend ();
-
- return 0;
-}
-
-int
-ACE_Stream_Type::resume (void) const
-{
- ACE_TRACE ("ACE_Stream_Type::resume");
-
- for (ACE_Module_Type *m = this->head_;
- m != 0;
- m = m->link ())
- m->resume ();
-
- return 0;
-}
-
-ACE_Stream_Type::ACE_Stream_Type (void *s,
- const ACE_TCHAR *s_name,
- u_int f)
- : ACE_Service_Type_Impl (s, s_name, f),
- head_ (0)
-{
- ACE_TRACE ("ACE_Stream_Type::ACE_Stream_Type");
-}
-
-int
-ACE_Stream_Type::info (ACE_TCHAR **str, size_t len) const
-{
- ACE_TRACE ("ACE_Stream_Type::info");
- ACE_TCHAR buf[BUFSIZ];
-
- ACE_OS::sprintf (buf,
- ACE_LIB_TEXT ("%s\t %s"),
- this->name (),
- ACE_LIB_TEXT ("# STREAM\n"));
-
- if (*str == 0 && (*str = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strsncpy (*str, buf, len);
- return ACE_static_cast (int, ACE_OS_String::strlen (buf));
-}
-
-int
-ACE_Stream_Type::fini (void) const
-{
- ACE_TRACE ("ACE_Stream_Type::fini");
- void *obj = this->object ();
- MT_Stream *str = (MT_Stream *) obj;
-
- for (ACE_Module_Type *m = this->head_; m != 0; )
- {
- ACE_Module_Type *t = m->link ();
-
- // Final arg is an indication to *not* delete the Module.
- str->remove (m->name (),
- MT_Module::M_DELETE_NONE);
-
- // Finalize the Module (this may delete it, but we don't really
- // care since we don't access it again).
- m->fini ();
- m = t;
- }
-
- str->close ();
- return ACE_Service_Type_Impl::fini ();
-}
-
-// Locate and remove <mod_name> from the ACE_Stream.
-
-int
-ACE_Stream_Type::remove (ACE_Module_Type *mod)
-{
- ACE_TRACE ("ACE_Stream_Type::remove");
-
- ACE_Module_Type *prev = 0;
- void *obj = this->object ();
- MT_Stream *str = (MT_Stream *) obj;
- int result = 0;
-
- for (ACE_Module_Type *m = this->head_; m != 0; )
- {
- // We need to do this first so we don't bomb out if we delete m!
- ACE_Module_Type *link = m->link ();
-
- if (m == mod)
- {
- if (prev == 0)
- this->head_ = link;
- else
- prev->link (link);
-
- // Final arg is an indication to *not* delete the Module.
- if (str->remove (m->name (),
- MT_Module::M_DELETE_NONE) == -1)
- result = -1;
-
- // This call may end up deleting m, which is ok since we
- // don't access it again!
- m->fini ();
- }
- else
- prev = m;
-
- m = link;
- }
-
- return result;
-}
-
-int
-ACE_Stream_Type::push (ACE_Module_Type *new_module)
-{
- ACE_TRACE ("ACE_Stream_Type::push");
- void *obj = this->object ();
- MT_Stream *str = (MT_Stream *) obj;
-
- new_module->link (this->head_);
- this->head_ = new_module;
- obj = new_module->object ();
- return str->push ((MT_Module *) obj);
-}
-
-ACE_Module_Type *
-ACE_Stream_Type::find (const ACE_TCHAR *mod_name) const
-{
- ACE_TRACE ("ACE_Stream_Type::find");
-
- for (ACE_Module_Type *m = this->head_;
- m != 0;
- m = m->link ())
- if (ACE_OS::strcmp (m->name (), mod_name) == 0)
- return m;
-
- return 0;
-}
-
-int
-ACE_Service_Object_Type::fini (void) const
-{
- ACE_TRACE ("ACE_Service_Object_Type::fini");
-
- void *obj = this->object ();
-
- ACE_Service_Object *so = (ACE_Service_Object *) obj;
-
- if (so)
- {
- so->fini ();
-
-#if 0
- if (ACE_BIT_ENABLED (this->flags_,
- ACE_Service_Type::DELETE_OBJ))
- delete so;
-#endif /* 1 */
- }
-
- return ACE_Service_Type_Impl::fini ();
-}
-/*
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Message_Queue<ACE_SYNCH>;
-template class ACE_Message_Queue_Iterator<ACE_SYNCH>;
-template class ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH>;
-template class ACE_Message_Queue_Factory<ACE_SYNCH>;
-template class ACE_Dynamic_Message_Queue<ACE_SYNCH>;
-template class ACE_Module<ACE_SYNCH>;
-template class ACE_Stream<ACE_SYNCH>;
-template class ACE_Stream_Head<ACE_SYNCH>;
-template class ACE_Stream_Tail<ACE_SYNCH>;
-template class ACE_Task<ACE_SYNCH>;
-template class ACE_Thru_Task<ACE_SYNCH>;
-
-// Even with threads, these ACE_NULL_SYNCH specializations are necessary.
-#if defined (ACE_HAS_THREADS)
- template class ACE_Message_Queue<ACE_NULL_SYNCH>;
- template class ACE_Message_Queue_Iterator<ACE_NULL_SYNCH>;
- template class ACE_Message_Queue_Reverse_Iterator<ACE_NULL_SYNCH>;
- template class ACE_Message_Queue_Factory<ACE_NULL_SYNCH>;
- template class ACE_Dynamic_Message_Queue<ACE_NULL_SYNCH>;
- template class ACE_Module<ACE_NULL_SYNCH>;
- template class ACE_Task<ACE_NULL_SYNCH>;
- template class ACE_Thru_Task<ACE_NULL_SYNCH>;
- #endif *//* ACE_HAS_THREADS */
-/*
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Message_Queue<ACE_SYNCH>
-#pragma instantiate ACE_Message_Queue_Iterator<ACE_SYNCH>
-#pragma instantiate ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH>
-#pragma instantiate ACE_Message_Queue_Factory<ACE_SYNCH>
-#pragma instantiate ACE_Dynamic_Message_Queue<ACE_SYNCH>
-#pragma instantiate ACE_Module<ACE_SYNCH>
-#pragma instantiate ACE_Stream<ACE_SYNCH>
-#pragma instantiate ACE_Stream_Head<ACE_SYNCH>
-#pragma instantiate ACE_Stream_Tail<ACE_SYNCH>
-#pragma instantiate ACE_Task<ACE_SYNCH>
-#pragma instantiate ACE_Thru_Task<ACE_SYNCH>
-// Even with threads, these ACE_NULL_SYNCH specializations are necessary.
-#if defined (ACE_HAS_THREADS)
- #pragma instantiate ACE_Message_Queue<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Message_Queue_Iterator<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Message_Queue_Reverse_Iterator<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Message_Queue_Factory<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Dynamic_Message_Queue<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Module<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Task<ACE_NULL_SYNCH>
- #pragma instantiate ACE_Thru_Task<ACE_NULL_SYNCH>
- #endif *//* ACE_HAS_THREADS */
-//#else
-//#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Service_Types.h b/ace/Service_Types.h
deleted file mode 100644
index 8e306db409b..00000000000
--- a/ace/Service_Types.h
+++ /dev/null
@@ -1,201 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Service_Types.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_SERVICE_TYPE_H
-#define ACE_SERVICE_TYPE_H
-
-#include "ace/pre.h"
-
-#include "ace/Service_Object.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/ACE.h"
-#include "ace/Synch.h"
-
-/**
- * @class ACE_Service_Type_Impl
- *
- * @brief The abstract base class of the hierarchy that defines the
- * contents of the <ACE_Service_Repository>. The subclasses of
- * this class allow the configuration of <ACE_Service_Objects>,
- * <ACE_Modules>, and <ACE_Streams>.
- *
- * This class provides the root of the implementation hierarchy
- * of the "Bridge" pattern. It maintains a pointer to the
- * appropriate type of service implementation, i.e.,
- * <ACE_Service_Object>, <ACE_Module>, or <ACE_Stream>.
- */
-class ACE_Export ACE_Service_Type_Impl
-{
-public:
- // = Initialization and termination methods.
- ACE_Service_Type_Impl (void *object,
- const ACE_TCHAR *s_name,
- u_int flags = 0,
- ACE_Service_Object_Exterminator gobbler = 0);
- virtual ~ACE_Service_Type_Impl (void);
-
- // = Pure virtual interface (must be defined by the subclass).
- virtual int suspend (void) const = 0;
- virtual int resume (void) const = 0;
- virtual int init (int argc, ACE_TCHAR *argv[]) const = 0;
- virtual int fini (void) const;
- virtual int info (ACE_TCHAR **str, size_t len) const = 0;
-
- /// The pointer to the service.
- void *object (void) const;
-
- /// Get the name of the service.
- const ACE_TCHAR *name (void) const;
-
- /// Set the name of the service.
- void name (const ACE_TCHAR *);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Name of the service.
- const ACE_TCHAR *name_;
-
- /// Pointer to object that implements the service. This actually
- /// points to an <ACE_Service_Object>, <ACE_Module>, or <ACE_Stream>.
- void *obj_;
-
- /// Destroy function to deallocate obj_.
- ACE_Service_Object_Exterminator gobbler_;
-
- /// Flags that control serivce behavior (particularly deletion).
- u_int flags_;
-};
-
-/**
- * @class ACE_Service_Object_Type
- *
- * @brief Define the methods for handling the configuration of
- * <ACE_Service_Objects>.
- */
-class ACE_Export ACE_Service_Object_Type : public ACE_Service_Type_Impl
-{
-public:
- // = Initialization method.
- ACE_Service_Object_Type (void *so,
- const ACE_TCHAR *name,
- u_int flags = 0,
- ACE_Service_Object_Exterminator gobbler = 0);
-
- ~ACE_Service_Object_Type (void);
-
- // = Implement the hooks for <ACE_Service_Objects>.
- virtual int suspend (void) const;
- virtual int resume (void) const;
- virtual int init (int argc, ACE_TCHAR *argv[]) const;
- virtual int fini (void) const;
- virtual int info (ACE_TCHAR **str, size_t len) const;
-};
-
-/**
- * @class ACE_Module_Type
- *
- * @brief Define the methods for handling the configuration of
- * <ACE_Modules>.
- */
-class ACE_Export ACE_Module_Type : public ACE_Service_Type_Impl
-{
-public:
- // = Initialization method.
- ACE_Module_Type (void *m, // Really an <ACE_Module> *.
- const ACE_TCHAR *identifier,
- u_int flags = 0);
-
- ~ACE_Module_Type (void);
-
- // = Implement the hooks for <ACE_Modules>.
- virtual int suspend (void) const;
- virtual int resume (void) const;
- virtual int init (int argc, ACE_TCHAR *argv[]) const;
- virtual int fini (void) const;
- virtual int info (ACE_TCHAR **str, size_t len) const;
-
- // Get the link pointer.
- ACE_Module_Type *link (void) const;
-
- // Set the link pointer.
- void link (ACE_Module_Type *);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Pointer to the next <ACE_Module_Type> in an <ACE_Stream_Type>.
- ACE_Module_Type *link_;
-};
-
-/**
- * @class ACE_Stream_Type
- *
- * @brief Define the methods for handling the configuration of
- * <ACE_Streams>.
- */
-class ACE_Export ACE_Stream_Type : public ACE_Service_Type_Impl
-{
-public:
- // = Initialization method.
- ACE_Stream_Type (void *s, // Really an <ACE_Stream> *.
- const ACE_TCHAR *identifier,
- u_int flags = 0);
-
- ~ACE_Stream_Type (void);
-
- // = Implement the hooks for <ACE_Streams>.
- virtual int suspend (void) const;
- virtual int resume (void) const;
- virtual int init (int argc, ACE_TCHAR *argv[]) const;
- virtual int fini (void) const;
- virtual int info (ACE_TCHAR **str, size_t len) const;
-
- /// Add a new <ACE_Module> to the top of the <ACE_Stream>.
- int push (ACE_Module_Type *new_module);
-
- /// Search for <module> and remove it from the <ACE_Stream>.
- int remove (ACE_Module_Type *module);
-
- /// Locate the <ACE_Module> with <mod_name>.
- ACE_Module_Type *find (const ACE_TCHAR *mod_name) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Pointer to the head of the <ACE_Module> list.
- ACE_Module_Type *head_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Service_Types.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* _SERVICE_TYPE_H */
diff --git a/ace/Service_Types.i b/ace/Service_Types.i
deleted file mode 100644
index 78eb127cbfc..00000000000
--- a/ace/Service_Types.i
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE void *
-ACE_Service_Type_Impl::object (void) const
-{
- ACE_TRACE ("ACE_Service_Type_Impl::object");
- return this->obj_;
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_Service_Type_Impl::name (void) const
-{
- ACE_TRACE ("ACE_Service_Type_Impl::name");
- return this->name_;
-}
-
-ACE_INLINE void
-ACE_Service_Type_Impl::name (const ACE_TCHAR *n)
-{
- ACE_TRACE ("ACE_Service_Type_Impl::name");
-
- delete [] (ACE_TCHAR *) this->name_;
- this->name_ = ACE::strnew (n);
-}
-
-ACE_INLINE
-ACE_Service_Object_Type::~ACE_Service_Object_Type (void)
-{
- ACE_TRACE ("ACE_Service_Object_Type::~ACE_Service_Object_Type");
-}
-
-ACE_INLINE int
-ACE_Service_Object_Type::suspend (void) const
-{
- ACE_TRACE ("ACE_Service_Object_Type::suspend");
- return ((ACE_Service_Object *) this->object ())->suspend ();
-}
-
-ACE_INLINE int
-ACE_Service_Object_Type::resume (void) const
-{
- ACE_TRACE ("ACE_Service_Object_Type::resume");
- return ((ACE_Service_Object *) this->object ())->resume ();
-}
-
-ACE_INLINE int
-ACE_Service_Object_Type::info (ACE_TCHAR **str, size_t len) const
-{
- ACE_TRACE ("ACE_Service_Object_Type::info");
- return ((ACE_Service_Object *) this->object ())->info (str, len);
-}
-
-ACE_INLINE
-ACE_Module_Type::~ACE_Module_Type (void)
-{
- ACE_TRACE ("ACE_Module_Type::~ACE_Module_Type");
-}
-
-ACE_INLINE
-ACE_Stream_Type::~ACE_Stream_Type (void)
-{
- ACE_TRACE ("ACE_Stream_Type::~ACE_Stream_Type");
-}
diff --git a/ace/Shared_Memory.cpp b/ace/Shared_Memory.cpp
deleted file mode 100644
index 5e4447075ee..00000000000
--- a/ace/Shared_Memory.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// $Id$
-
-#include "ace/Shared_Memory.h"
-
-ACE_RCSID(ace, Shared_Memory, "$Id$")
-
-ACE_Shared_Memory::~ACE_Shared_Memory (void)
-{
-}
diff --git a/ace/Shared_Memory.h b/ace/Shared_Memory.h
deleted file mode 100644
index 2ee4dc907db..00000000000
--- a/ace/Shared_Memory.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Shared_Memory.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//==========================================================================
-
-
-#ifndef ACE_SHARED_MEMORY_H
-#define ACE_SHARED_MEMORY_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_Shared_Memory
- *
- * @brief This base class adapts both System V shared memory and "BSD"
- * mmap to a common API.
- *
- * This is a very simple-minded wrapper, i.e., it really is only
- * useful for allocating large contiguous chunks of shared
- * memory. For a much more sophisticated version, please check
- * out the <ACE_Malloc> class.
- */
-class ACE_Export ACE_Shared_Memory
-{
-public:
- virtual ~ACE_Shared_Memory (void);
-
- // = Note that all the following methods are pure virtual.
- virtual int close (void) = 0;
- virtual int remove (void) = 0;
- virtual void *malloc (size_t = 0) = 0;
- virtual int free (void *p) = 0;
- virtual int get_segment_size (void) const = 0;
- virtual ACE_HANDLE get_id (void) const = 0;
-};
-
-#include "ace/post.h"
-
-#endif /* ACE_SHARED_MEMORY_H */
diff --git a/ace/Shared_Memory_MM.cpp b/ace/Shared_Memory_MM.cpp
deleted file mode 100644
index 85778fbdf07..00000000000
--- a/ace/Shared_Memory_MM.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-// Shared_Memory_MM.cpp
-// $Id$
-
-#include "ace/Shared_Memory_MM.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Shared_Memory_MM.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Shared_Memory_MM, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Shared_Memory_MM)
-
-void
-ACE_Shared_Memory_MM::dump (void) const
-{
- ACE_TRACE ("ACE_Shared_Memory_MM::dump");
-}
-
-// Creates a shared memory segment of SIZE bytes.
-
-ACE_Shared_Memory_MM::ACE_Shared_Memory_MM (ACE_HANDLE handle,
- int length,
- int prot,
- int share,
- char *addr,
- off_t pos)
- : shared_memory_ (handle, length, prot, share, addr, pos)
-{
- ACE_TRACE ("ACE_Shared_Memory_MM::ACE_Shared_Memory_MM");
-}
-
-ACE_Shared_Memory_MM::ACE_Shared_Memory_MM (const ACE_TCHAR *file_name,
- int len,
- int flags,
- int mode,
- int prot,
- int share,
- char *addr,
- off_t pos)
- : shared_memory_ (file_name, len, flags, mode,
- prot, share, addr, pos)
-{
- ACE_TRACE ("ACE_Shared_Memory_MM::ACE_Shared_Memory_MM");
-}
-
-// The "do-nothing" constructor.
-
-ACE_Shared_Memory_MM::ACE_Shared_Memory_MM (void)
-{
- ACE_TRACE ("ACE_Shared_Memory_MM::ACE_Shared_Memory_MM");
-}
diff --git a/ace/Shared_Memory_MM.h b/ace/Shared_Memory_MM.h
deleted file mode 100644
index 1ea201be975..00000000000
--- a/ace/Shared_Memory_MM.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Shared_Memory_MM.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_SHARED_MALLOC_MM_H
-#define ACE_SHARED_MALLOC_MM_H
-#include "ace/pre.h"
-
-#include "ace/Shared_Memory.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Mem_Map.h"
-
-/**
- * @class ACE_Shared_Memory_MM
- *
- * @brief Shared memory wrapper based on MMAP.
- *
- * This class provides a very simple-minded shared memory
- * manager. For more a powerful memory allocator please see
- * <ACE_Malloc>.
- */
-class ACE_Export ACE_Shared_Memory_MM : public ACE_Shared_Memory
-{
-public:
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_Shared_Memory_MM (void);
-
- /// Constructor.
- ACE_Shared_Memory_MM (ACE_HANDLE handle,
- int length = -1,
- int prot = PROT_RDWR,
- int share = ACE_MAP_PRIVATE,
- char *addr = 0,
- off_t pos = 0);
-
- /// Constructor.
- ACE_Shared_Memory_MM (const ACE_TCHAR *file_name,
- int len = -1,
- int flags = O_RDWR | O_CREAT,
- int mode = ACE_DEFAULT_FILE_PERMS,
- int prot = PROT_RDWR,
- int share = ACE_MAP_SHARED,
- char *addr = 0, off_t pos = 0);
-
- /// Open method.
- int open (ACE_HANDLE handle,
- int length = -1,
- int prot = PROT_RDWR,
- int share = ACE_MAP_PRIVATE,
- char *addr = 0,
- off_t pos = 0);
-
- /// Open method.
- int open (const ACE_TCHAR *file_name,
- int len = -1,
- int flags = O_RDWR | O_CREAT,
- int mode = ACE_DEFAULT_FILE_PERMS,
- int prot = PROT_RDWR,
- int share = ACE_MAP_SHARED,
- char *addr = 0,
- off_t pos = 0);
-
- /// Return the name of file that is mapped (if any).
- const ACE_TCHAR *filename (void) const;
-
- /// Close down the shared memory segment.
- virtual int close (void);
-
- /// Remove the shared memory segment and the underlying file.
- virtual int remove (void);
-
- // = Allocation and deallocation methods.
- /// Create a new chuck of memory containing <size> bytes.
- virtual void *malloc (size_t size = 0);
-
- /// Free a chuck of memory allocated by
- /// <ACE_Shared_Memory_MM::malloc>.
- virtual int free (void *p);
-
- /// Return the size of the shared memory segment.
- virtual int get_segment_size (void) const;
-
- /// Return the ID of the shared memory segment (i.e., an ACE_HANDLE).
- virtual ACE_HANDLE get_id (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// This version is implemented with memory-mapped files.
- ACE_Mem_Map shared_memory_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Shared_Memory_MM.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_SHARED_MALLOC_MM_H */
diff --git a/ace/Shared_Memory_MM.i b/ace/Shared_Memory_MM.i
deleted file mode 100644
index 67925b29129..00000000000
--- a/ace/Shared_Memory_MM.i
+++ /dev/null
@@ -1,90 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Shared_Memory_MM.i
-
-// Return the name of file that is mapped (if any).
-
-ACE_INLINE const ACE_TCHAR *
-ACE_Shared_Memory_MM::filename (void) const
-{
- return this->shared_memory_.filename ();
-}
-
-ACE_INLINE int
-ACE_Shared_Memory_MM::open (ACE_HANDLE handle,
- int length,
- int prot,
- int share,
- char *addr,
- off_t pos)
-{
- ACE_TRACE ("ACE_Shared_Memory_MM::open");
- return shared_memory_.map (handle, length, prot, share, addr, pos);
-}
-
-ACE_INLINE int
-ACE_Shared_Memory_MM::open (const ACE_TCHAR *file_name,
- int len,
- int flags,
- int mode,
- int prot,
- int share,
- char *addr,
- off_t pos)
-{
- ACE_TRACE ("ACE_Shared_Memory_MM::open");
- return shared_memory_.map (file_name, len, flags, mode,
- prot, share, addr, pos);
-}
-
-// The overall size of the segment.
-
-ACE_INLINE int
-ACE_Shared_Memory_MM::get_segment_size (void) const
-{
- ACE_TRACE ("ACE_Shared_Memory_MM::get_segment_size");
- // This cast is legit since the original length in open() is an int.
- return ACE_static_cast (int, this->shared_memory_.size ());
-}
-
-// Unmaps the shared memory segment.
-
-ACE_INLINE int
-ACE_Shared_Memory_MM::remove (void)
-{
- ACE_TRACE ("ACE_Shared_Memory_MM::remove");
- return shared_memory_.remove ();
-}
-
-// Closes (unmaps) the shared memory segment.
-
-ACE_INLINE int
-ACE_Shared_Memory_MM::close (void)
-{
- ACE_TRACE ("ACE_Shared_Memory_MM::close");
- return shared_memory_.unmap ();
-}
-
-ACE_INLINE void *
-ACE_Shared_Memory_MM::malloc (size_t)
-{
- ACE_TRACE ("ACE_Shared_Memory_MM::malloc");
- void *addr;
-
- return this->shared_memory_ (addr) == -1 ? 0 : addr;
-}
-
-ACE_INLINE ACE_HANDLE
-ACE_Shared_Memory_MM::get_id (void) const
-{
- ACE_TRACE ("ACE_Shared_Memory_MM::get_id");
- return this->shared_memory_.handle ();
-}
-
-ACE_INLINE int
-ACE_Shared_Memory_MM::free (void *p)
-{
- ACE_TRACE ("ACE_Shared_Memory_MM::free");
- return p != 0;
-}
diff --git a/ace/Shared_Memory_SV.cpp b/ace/Shared_Memory_SV.cpp
deleted file mode 100644
index bd8dba00a8a..00000000000
--- a/ace/Shared_Memory_SV.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-// Shared_Memory_SV.cpp
-// $Id$
-
-#include "ace/Shared_Memory_SV.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Shared_Memory_SV.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Shared_Memory_SV, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Shared_Memory_SV)
-
-void
-ACE_Shared_Memory_SV::dump (void) const
-{
- ACE_TRACE ("ACE_Shared_Memory_SV::dump");
-}
-
-ACE_Shared_Memory_SV::ACE_Shared_Memory_SV (key_t id,
- int length,
- int create,
- int perms,
- void *addr,
- int flags)
- : shared_memory_ (id, length, create, perms, addr, flags)
-{
- ACE_TRACE ("ACE_Shared_Memory_SV::ACE_Shared_Memory_SV");
-}
-
diff --git a/ace/Shared_Memory_SV.h b/ace/Shared_Memory_SV.h
deleted file mode 100644
index 6ed7315c168..00000000000
--- a/ace/Shared_Memory_SV.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Shared_Memory_SV.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_SHARED_MALLOC_SV_H
-#define ACE_SHARED_MALLOC_SV_H
-#include "ace/pre.h"
-
-#include "ace/Shared_Memory.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SV_Shared_Memory.h"
-
-/**
- * @class ACE_Shared_Memory_SV
- *
- * @brief Shared memory wrapper based on System V shared memory.
- *
- * This class provides a very simple-minded shared memory
- * manager. For more a powerful memory allocator please see
- * <ACE_Malloc>.
- */
-class ACE_Export ACE_Shared_Memory_SV : public ACE_Shared_Memory
-{
-public:
- enum
- {
- ACE_CREATE = IPC_CREAT,
- ACE_OPEN = 0
- };
-
- // = Initialization and termination methods.
- ACE_Shared_Memory_SV (void);
- ACE_Shared_Memory_SV (key_t id,
- int length,
- int create = ACE_Shared_Memory_SV::ACE_OPEN,
- int perms = ACE_DEFAULT_FILE_PERMS,
- void *addr = 0,
- int flags = 0);
-
- int open (key_t id,
- int length,
- int create = ACE_Shared_Memory_SV::ACE_OPEN,
- int perms = ACE_DEFAULT_FILE_PERMS,
- void *addr = 0,
- int flags = 0);
-
- /// Close down the shared memory segment.
- virtual int close (void);
-
- /// Remove the underlying shared memory segment.
- virtual int remove (void);
-
- // = Allocation and deallocation methods.
- /// Create a new chuck of memory containing <size> bytes.
- virtual void *malloc (size_t = 0);
-
- /// Free a chuck of memory allocated by <ACE_Shared_Memory_SV::malloc>.
- virtual int free (void *p);
-
- /// Return the size of the shared memory segment.
- virtual int get_segment_size (void) const;
-
- /// Return the ID of the shared memory segment (i.e., a System V
- /// shared memory internal id).
- virtual ACE_HANDLE get_id (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// This version is implemented with System V shared memory
- /// segments.
- ACE_SV_Shared_Memory shared_memory_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Shared_Memory_SV.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_SHARED_MALLOC_SV_H */
diff --git a/ace/Shared_Memory_SV.i b/ace/Shared_Memory_SV.i
deleted file mode 100644
index f1998fb3ae6..00000000000
--- a/ace/Shared_Memory_SV.i
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Shared_Memory_SV.i
-
-ACE_INLINE int
-ACE_Shared_Memory_SV::open (key_t id,
- int length,
- int create,
- int perms,
- void *addr,
- int flags)
-{
- ACE_TRACE ("ACE_Shared_Memory_SV::open");
- return shared_memory_.open_and_attach (id, length, create,
- perms, addr, flags);
-}
-
-// The overall size of the segment.
-
-ACE_INLINE int
-ACE_Shared_Memory_SV::get_segment_size (void) const
-{
- ACE_TRACE ("ACE_Shared_Memory_SV::get_segment_size");
- // This cast is ok since the 'open' method for this class allows only
- // an 'int' size. Therefore, this case should not lose information.
- return ACE_static_cast (int, this->shared_memory_.get_segment_size ());
-}
-
-// Removes the shared memory segment.
-
-ACE_INLINE int
-ACE_Shared_Memory_SV::remove (void)
-{
- ACE_TRACE ("ACE_Shared_Memory_SV::remove");
- return shared_memory_.remove ();
-}
-
-// Closes (detaches) the shared memory segment.
-
-ACE_INLINE int
-ACE_Shared_Memory_SV::close (void)
-{
- ACE_TRACE ("ACE_Shared_Memory_SV::close");
- return shared_memory_.detach ();
-}
-
-ACE_INLINE void *
-ACE_Shared_Memory_SV::malloc (size_t)
-{
- ACE_TRACE ("ACE_Shared_Memory_SV::malloc");
- return this->shared_memory_.get_segment_ptr ();
-}
-
-ACE_INLINE ACE_HANDLE
-ACE_Shared_Memory_SV::get_id (void) const
-{
- ACE_TRACE ("ACE_Shared_Memory_SV::get_id");
- return this->shared_memory_.get_id ();
-}
-
-// The "do-nothing" constructor.
-
-ACE_INLINE
-ACE_Shared_Memory_SV::ACE_Shared_Memory_SV (void)
-{
- ACE_TRACE ("ACE_Shared_Memory_SV::ACE_Shared_Memory_SV");
-}
-
-ACE_INLINE int
-ACE_Shared_Memory_SV::free (void *p)
-{
- ACE_TRACE ("ACE_Shared_Memory_SV::free");
- return p != 0;
-}
diff --git a/ace/Shared_Object.cpp b/ace/Shared_Object.cpp
deleted file mode 100644
index b7237bfb1a3..00000000000
--- a/ace/Shared_Object.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-// Shared_Object.cpp
-// $Id$
-
-#include "ace/Shared_Object.h"
-/* Provide the abstract base class used to access dynamic linking
- facilities */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Shared_Object.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Shared_Object, "$Id$")
-
-// Initializes object when dynamic linking occurs.
-
-int
-ACE_Shared_Object::init (int, ACE_TCHAR *[])
-{
- ACE_TRACE ("ACE_Shared_Object::init");
- return 0;
-}
-
-// Terminates object when dynamic unlinking occurs.
-
-int
-ACE_Shared_Object::fini (void)
-{
- ACE_TRACE ("ACE_Shared_Object::fini");
- return 0;
-}
-
-// Returns information on active object.
-
-int
-ACE_Shared_Object::info (ACE_TCHAR **, size_t) const
-{
- ACE_TRACE ("ACE_Shared_Object::info");
- return 0;
-}
-
-// Need to give a default implementation.
-
-ACE_Shared_Object::~ACE_Shared_Object (void)
-{
- ACE_TRACE ("ACE_Shared_Object::~ACE_Shared_Object");
-}
diff --git a/ace/Shared_Object.h b/ace/Shared_Object.h
deleted file mode 100644
index 5fe31543032..00000000000
--- a/ace/Shared_Object.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Shared_Object.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_SHARED_OBJECT_H
-#define ACE_SHARED_OBJECT_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_Shared_Object
- *
- * @brief Provide the abstract base class used to access dynamic
- * linking facilities.
- */
-class ACE_Export ACE_Shared_Object
-{
-public:
- ACE_Shared_Object (void);
-
- /// Initializes object when dynamic linking occurs.
- virtual int init (int argc, ACE_TCHAR *argv[]);
-
- /// Terminates object when dynamic unlinking occurs.
- virtual int fini (void);
-
- /// Returns information on a service object.
- virtual int info (ACE_TCHAR **info_string, size_t length = 0) const;
-
- virtual ~ACE_Shared_Object (void);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Shared_Object.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_SHARED_OBJECT_H */
diff --git a/ace/Shared_Object.i b/ace/Shared_Object.i
deleted file mode 100644
index 97ca0090c6d..00000000000
--- a/ace/Shared_Object.i
+++ /dev/null
@@ -1,9 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Shared_Object.i
-
-ACE_INLINE
-ACE_Shared_Object::ACE_Shared_Object (void)
-{
-}
diff --git a/ace/Signal.cpp b/ace/Signal.cpp
deleted file mode 100644
index cdeb7011f41..00000000000
--- a/ace/Signal.cpp
+++ /dev/null
@@ -1,859 +0,0 @@
-// $Id$
-
-#include "ace/Synch_T.h"
-#include "ace/Signal.h"
-#include "ace/Object_Manager.h"
-#include "ace/Log_Msg.h"
-#include "ace/Containers.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Signal.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Signal, "$Id$")
-
-// Static definitions.
-
-#if defined (ACE_HAS_SIG_C_FUNC)
-
-extern "C" void
-ace_sig_handler_dispatch (int signum, siginfo_t *info, ucontext_t *context)
-{
- ACE_TRACE ("ace_sig_handler_dispatch");
- ACE_Sig_Handler::dispatch (signum, info, context);
-}
-
-#define ace_signal_handler_dispatcher ACE_SignalHandler(ace_sig_handler_dispatch)
-
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES)
-extern "C" void
-ace_sig_handlers_dispatch (int signum, siginfo_t *info, ucontext_t *context)
-{
- ACE_TRACE ("ace_sig_handlers_dispatch");
- ACE_Sig_Handlers::dispatch (signum, info, context);
-}
-
-#define ace_signal_handlers_dispatcher ACE_SignalHandler(ace_sig_handlers_dispatch)
-#endif /* ACE_HAS_BROKEN_HPUX_TEMPLATES */
-
-#else
-#define ace_signal_handler_dispatcher ACE_SignalHandler(ACE_Sig_Handler::dispatch)
-
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES)
-#define ace_signal_handlers_dispatcher ACE_SignalHandler(ACE_Sig_Handlers::dispatch)
-#endif /* ACE_HAS_BROKEN_HPUX_TEMPLATES */
-#endif /* ACE_HAS_SIG_C_FUNC */
-
-// Array of Event_Handlers that will handle the signals.
-ACE_Event_Handler *ACE_Sig_Handler::signal_handlers_[ACE_NSIG];
-
-// Remembers if a signal has occurred.
-sig_atomic_t ACE_Sig_Handler::sig_pending_ = 0;
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Sig_Action)
-
-void
-ACE_Sig_Action::dump (void) const
-{
- ACE_TRACE ("ACE_Sig_Action::dump");
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Sig_Set)
-
-void
-ACE_Sig_Set::dump (void) const
-{
- ACE_TRACE ("ACE_Sig_Set::dump");
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Sig_Guard)
-
-void
-ACE_Sig_Guard::dump (void) const
-{
- ACE_TRACE ("ACE_Sig_Guard::dump");
-}
-
-ACE_Sig_Action::ACE_Sig_Action (void)
-{
- // ACE_TRACE ("ACE_Sig_Action::ACE_Sig_Action");
- this->sa_.sa_flags = 0;
-
- // Since Service_Config::signal_handler_ is static and has an
- // ACE_Sig_Action instance, Win32 will get errno set unless this is
- // commented out.
-#if !defined (ACE_WIN32)
- ACE_OS::sigemptyset (&this->sa_.sa_mask);
-#endif /* ACE_WIN32 */
- this->sa_.sa_handler = 0;
-}
-
-ACE_Sig_Action::ACE_Sig_Action (ACE_SignalHandler sig_handler,
- sigset_t *sig_mask,
- int sig_flags)
-{
- // ACE_TRACE ("ACE_Sig_Action::ACE_Sig_Action");
- this->sa_.sa_flags = sig_flags;
-
- if (sig_mask == 0)
- ACE_OS::sigemptyset (&this->sa_.sa_mask);
- else
- this->sa_.sa_mask = *sig_mask; // Structure assignment...
-
-#if !defined(ACE_HAS_TANDEM_SIGNALS)
- this->sa_.sa_handler = ACE_SignalHandlerV (sig_handler);
-#else
- this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (sig_handler);
-#endif /* !ACE_HAS_TANDEM_SIGNALS */
-}
-
-ACE_Sig_Action::ACE_Sig_Action (ACE_SignalHandler sig_handler,
- const ACE_Sig_Set &sig_mask,
- int sig_flags)
-{
- // ACE_TRACE ("ACE_Sig_Action::ACE_Sig_Action");
- this->sa_.sa_flags = sig_flags;
-
- // Structure assignment...
- this->sa_.sa_mask = sig_mask.sigset ();
-
-#if !defined(ACE_HAS_TANDEM_SIGNALS)
- this->sa_.sa_handler = ACE_SignalHandlerV (sig_handler);
-#else
- this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (sig_handler);
-#endif /* !ACE_HAS_TANDEM_SIGNALS */
-}
-
-ACE_Sig_Action::ACE_Sig_Action (ACE_SignalHandler sig_handler,
- int signum,
- sigset_t *sig_mask,
- int sig_flags)
-{
- // ACE_TRACE ("ACE_Sig_Action::ACE_Sig_Action");
- this->sa_.sa_flags = sig_flags;
-
- if (sig_mask == 0)
- ACE_OS::sigemptyset (&this->sa_.sa_mask);
- else
- this->sa_.sa_mask = *sig_mask; // Structure assignment...
-
-#if !defined(ACE_HAS_TANDEM_SIGNALS)
- this->sa_.sa_handler = ACE_SignalHandlerV (sig_handler);
-#else
- this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (sig_handler);
-#endif /* !ACE_HAS_TANDEM_SIGNALS */
- ACE_OS::sigaction (signum, &this->sa_, 0);
-}
-
-ACE_Sig_Action::ACE_Sig_Action (ACE_SignalHandler sig_handler,
- int signum,
- const ACE_Sig_Set &sig_mask,
- int sig_flags)
-{
- // ACE_TRACE ("ACE_Sig_Action::ACE_Sig_Action");
- this->sa_.sa_flags = sig_flags;
-
- // Structure assignment...
- this->sa_.sa_mask = sig_mask.sigset ();
-
-#if !defined(ACE_HAS_TANDEM_SIGNALS)
- this->sa_.sa_handler = ACE_SignalHandlerV (sig_handler);
-#else
- this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (sig_handler);
-#endif /* !ACE_HAS_TANDEM_SIGNALS */
- ACE_OS::sigaction (signum, &this->sa_, 0);
-}
-
-ACE_Sig_Action::ACE_Sig_Action (const ACE_Sig_Set &signals,
- ACE_SignalHandler sig_handler,
- const ACE_Sig_Set &sig_mask,
- int sig_flags)
-{
- // ACE_TRACE ("ACE_Sig_Action::ACE_Sig_Action");
- this->sa_.sa_flags = sig_flags;
-
- // Structure assignment...
- this->sa_.sa_mask = sig_mask.sigset ();
-
-#if !defined(ACE_HAS_TANDEM_SIGNALS)
- this->sa_.sa_handler = ACE_SignalHandlerV (sig_handler);
-#else
- this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (sig_handler);
-#endif /* !ACE_HAS_TANDEM_SIGNALS */
-
-#if (ACE_NSIG > 0) && !defined (CHORUS)
- for (int s = 1; s < ACE_NSIG; s++)
- if (signals.is_member (s))
- ACE_OS::sigaction (s, &this->sa_, 0);
-#else /* ACE_NSIG <= 0 || CHORUS */
- ACE_UNUSED_ARG (signals);
-#endif /* ACE_NSIG <= 0 || CHORUS */
-}
-
-ACE_Sig_Action::ACE_Sig_Action (const ACE_Sig_Set &signals,
- ACE_SignalHandler sig_handler,
- sigset_t *sig_mask,
- int sig_flags)
-{
- // ACE_TRACE ("ACE_Sig_Action::ACE_Sig_Action");
- this->sa_.sa_flags = sig_flags;
-
- if (sig_mask == 0)
- ACE_OS::sigemptyset (&this->sa_.sa_mask);
- else
- this->sa_.sa_mask = *sig_mask; // Structure assignment...
-
-#if !defined(ACE_HAS_TANDEM_SIGNALS)
- this->sa_.sa_handler = ACE_SignalHandlerV (sig_handler);
-#else
- this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (sig_handler);
-#endif /* !ACE_HAS_TANDEM_SIGNALS */
-
-#if (ACE_NSIG > 0) && !defined (CHORUS)
- for (int s = 1; s < ACE_NSIG; s++)
- if (signals.is_member (s))
- ACE_OS::sigaction (s, &this->sa_, 0);
-#else /* ACE_NSIG <= 0 || CHORUS */
- ACE_UNUSED_ARG (signals);
-#endif /* ACE_NSIG <= 0 || CHORUS */
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Sig_Handler)
-
-void
-ACE_Sig_Handler::dump (void) const
-{
- ACE_TRACE ("ACE_Sig_Handler::dump");
-}
-
-int
-ACE_Sig_Handler::sig_pending (void)
-{
- ACE_TRACE ("ACE_Sig_Handler::sig_pending");
- ACE_MT (ACE_Recursive_Thread_Mutex *lock =
- ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
- (ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
- return ACE_Sig_Handler::sig_pending_ != 0;
-}
-
-void
-ACE_Sig_Handler::sig_pending (int pending)
-{
- ACE_TRACE ("ACE_Sig_Handler::sig_pending");
-
- ACE_MT (ACE_Recursive_Thread_Mutex *lock =
- ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
- (ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
- ACE_Sig_Handler::sig_pending_ = pending;
-}
-
-ACE_Event_Handler *
-ACE_Sig_Handler::handler (int signum)
-{
- ACE_TRACE ("ACE_Sig_Handler::handler");
- ACE_MT (ACE_Recursive_Thread_Mutex *lock =
- ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
- (ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
-
- if (ACE_Sig_Handler::in_range (signum))
- return ACE_Sig_Handler::signal_handlers_[signum];
- else
- return 0;
-}
-
-ACE_Event_Handler *
-ACE_Sig_Handler::handler_i (int signum,
- ACE_Event_Handler *new_sh)
-{
- ACE_TRACE ("ACE_Sig_Handler::handler_i");
-
- if (ACE_Sig_Handler::in_range (signum))
- {
- ACE_Event_Handler *sh = ACE_Sig_Handler::signal_handlers_[signum];
-
- ACE_Sig_Handler::signal_handlers_[signum] = new_sh;
- return sh;
- }
- else
- return 0;
-}
-
-ACE_Event_Handler *
-ACE_Sig_Handler::handler (int signum,
- ACE_Event_Handler *new_sh)
-{
- ACE_TRACE ("ACE_Sig_Handler::handler");
- ACE_MT (ACE_Recursive_Thread_Mutex *lock =
- ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
- (ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
-
- return ACE_Sig_Handler::handler_i (signum, new_sh);
-}
-
-// Register an ACE_Event_Handler along with the corresponding SIGNUM.
-// This method does NOT acquire any locks, so it can be called from a
-// signal handler.
-
-int
-ACE_Sig_Handler::register_handler_i (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp,
- ACE_Event_Handler **old_sh,
- ACE_Sig_Action *old_disp)
-{
- ACE_TRACE ("ACE_Sig_Handler::register_handler_i");
-
- if (ACE_Sig_Handler::in_range (signum))
- {
- ACE_Sig_Action sa; // Define a "null" action.
- ACE_Event_Handler *sh = ACE_Sig_Handler::handler_i (signum,
- new_sh);
-
- // Return a pointer to the old <ACE_Sig_Handler> if the user
- // asks for this.
- if (old_sh != 0)
- *old_sh = sh;
-
- // Make sure that <new_disp> points to a valid location if the
- // user doesn't care...
- if (new_disp == 0)
- new_disp = &sa;
-
- new_disp->handler (ace_signal_handler_dispatcher);
-#if !defined (ACE_HAS_LYNXOS_SIGNALS)
- new_disp->flags (new_disp->flags () | SA_SIGINFO);
-#endif /* ACE_HAS_LYNXOS_SIGNALS */
- return new_disp->register_action (signum, old_disp);
- }
- else
- return -1;
-}
-
-// Register an ACE_Event_Handler along with the corresponding SIGNUM.
-// This method acquires a lock, so it can't be called from a signal
-// handler, e.g., <dispatch>.
-
-int
-ACE_Sig_Handler::register_handler (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp,
- ACE_Event_Handler **old_sh,
- ACE_Sig_Action *old_disp)
-{
- ACE_TRACE ("ACE_Sig_Handler::register_handler");
- ACE_MT (ACE_Recursive_Thread_Mutex *lock =
- ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
- (ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
-
- return ACE_Sig_Handler::register_handler_i (signum,
- new_sh,
- new_disp,
- old_sh,
- old_disp);
-}
-
-// Remove an ACE_Event_Handler.
-
-int
-ACE_Sig_Handler::remove_handler (int signum,
- ACE_Sig_Action *new_disp,
- ACE_Sig_Action *old_disp,
- int)
-{
- ACE_TRACE ("ACE_Sig_Handler::remove_handler");
- ACE_MT (ACE_Recursive_Thread_Mutex *lock =
- ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
- (ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
-
- if (ACE_Sig_Handler::in_range (signum))
- {
- ACE_Sig_Action sa (SIG_DFL, (sigset_t *) 0); // Define the default disposition.
-
- if (new_disp == 0)
- new_disp = &sa;
-
- ACE_Sig_Handler::signal_handlers_[signum] = 0;
-
- // Register either the new disposition or restore the default.
- return new_disp->register_action (signum, old_disp);
- }
- else
- return -1;
-}
-
-// Master dispatcher function that gets called by a signal handler and
-// dispatches one handler...
-
-void
-ACE_Sig_Handler::dispatch (int signum,
- siginfo_t *siginfo,
- ucontext_t *ucontext)
-{
- ACE_TRACE ("ACE_Sig_Handler::dispatch");
-
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
-
- // We can't use the <sig_pending> call here because that acquires
- // the lock, which is non-portable...
- ACE_Sig_Handler::sig_pending_ = 1;
-
- // Darn well better be in range since the OS dispatched this...
- ACE_ASSERT (ACE_Sig_Handler::in_range (signum));
-
- ACE_Event_Handler *eh = ACE_Sig_Handler::signal_handlers_[signum];
-
- if (eh != 0)
- {
- if (eh->handle_signal (signum, siginfo, ucontext) == -1)
- {
- // Define the default disposition.
- ACE_Sig_Action sa ((ACE_SignalHandler) SIG_DFL, (sigset_t *) 0);
-
- ACE_Sig_Handler::signal_handlers_[signum] = 0;
-
- // Remove the current disposition by registering the default
- // disposition.
- sa.register_action (signum);
-
- // Allow the event handler to close down if necessary.
- eh->handle_close (ACE_INVALID_HANDLE,
- ACE_Event_Handler::SIGNAL_MASK);
- }
-#if defined (ACE_WIN32)
- else
- // Win32 is weird in the sense that it resets the signal
- // disposition to SIG_DFL after a signal handler is
- // dispatched. Therefore, to workaround this "feature" we
- // must re-register the <ACE_Event_Handler> with <signum>
- // explicitly.
- ACE_Sig_Handler::register_handler_i (signum,
- eh);
-#endif /* ACE_WIN32*/
- }
-}
-
-ACE_Sig_Adapter::ACE_Sig_Adapter (ACE_Sig_Action &sa, int sigkey)
- : sigkey_ (sigkey),
- type_ (SIG_ACTION),
- sa_ (sa)
-{
- // ACE_TRACE ("ACE_Sig_Adapter::ACE_Sig_Adapter");
-}
-
-ACE_Sig_Adapter::ACE_Sig_Adapter (ACE_Event_Handler *eh,
- int sigkey)
- : sigkey_ (sigkey),
- type_ (ACE_HANDLER),
- eh_ (eh)
-{
- // ACE_TRACE ("ACE_Sig_Adapter::ACE_Sig_Adapter");
-}
-
-ACE_Sig_Adapter::ACE_Sig_Adapter (ACE_Sig_Handler_Ex sig_func,
- int sigkey)
- : sigkey_ (sigkey),
- type_ (C_FUNCTION),
- sig_func_ (sig_func)
-{
- // ACE_TRACE ("ACE_Sig_Adapter::ACE_Sig_Adapter");
-}
-
-int
-ACE_Sig_Adapter::sigkey (void)
-{
- ACE_TRACE ("ACE_Sig_Adapter::sigkey");
- return this->sigkey_;
-}
-
-int
-ACE_Sig_Adapter::handle_signal (int signum,
- siginfo_t *siginfo,
- ucontext_t *ucontext)
-{
- ACE_TRACE ("ACE_Sig_Adapter::handle_signal");
-
- switch (this->type_)
- {
- case SIG_ACTION:
- {
- // We have to dispatch a handler that was registered by a
- // third-party library.
-
- ACE_Sig_Action old_disp;
-
- // Make sure this handler executes in the context it was
- // expecting...
- this->sa_.register_action (signum, &old_disp);
-
- ACE_Sig_Handler_Ex sig_func = ACE_Sig_Handler_Ex (this->sa_.handler ());
-
- (*sig_func) (signum, siginfo, ucontext);
- // Restore the original disposition.
- old_disp.register_action (signum);
- break;
- }
- case ACE_HANDLER:
- this->eh_->handle_signal (signum, siginfo, ucontext);
- break;
- case C_FUNCTION:
- (*this->sig_func_) (signum, siginfo, ucontext);
- break;
- }
- return 0;
-}
-
-// ----------------------------------------
-// The following classes are local to this file.
-
-// There are bugs with HP/UX's C++ compiler that prevents this stuff
-// from compiling...
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES)
-#define ACE_MAX_SIGNAL_HANDLERS ((size_t) 20)
-
-// Keeps track of the id that uniquely identifies each registered
-// signal handler. This id can be used to cancel a timer via the
-// <remove_handler> method.
-int ACE_Sig_Handlers::sigkey_ = 0;
-
-// If this is > 0 then a 3rd party library has registered a
-// handler...
-int ACE_Sig_Handlers::third_party_sig_handler_ = 0;
-
-// Make life easier by defining typedefs...
-typedef ACE_Fixed_Set <ACE_Event_Handler *, ACE_MAX_SIGNAL_HANDLERS> ACE_SIG_HANDLERS_SET;
-typedef ACE_Fixed_Set_Iterator <ACE_Event_Handler *, ACE_MAX_SIGNAL_HANDLERS> ACE_SIG_HANDLERS_ITERATOR;
-
-class ACE_Sig_Handlers_Set
-{
-public:
- static ACE_SIG_HANDLERS_SET *instance (int signum);
-
-private:
- static ACE_SIG_HANDLERS_SET *sig_handlers_[ACE_NSIG];
-};
-
-/* static */
-ACE_SIG_HANDLERS_SET *ACE_Sig_Handlers_Set::sig_handlers_[ACE_NSIG];
-
-/* static */
-ACE_SIG_HANDLERS_SET *
-ACE_Sig_Handlers_Set::instance (int signum)
-{
- if (signum <= 0 || signum >= ACE_NSIG)
- return 0; // This will cause problems...
- else if (ACE_Sig_Handlers_Set::sig_handlers_[signum] == 0)
- ACE_NEW_RETURN (ACE_Sig_Handlers_Set::sig_handlers_[signum],
- ACE_SIG_HANDLERS_SET,
- 0);
- return ACE_Sig_Handlers_Set::sig_handlers_[signum];
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Sig_Handlers)
-
-void
-ACE_Sig_Handlers::dump (void) const
-{
- ACE_TRACE ("ACE_Sig_Handlers::dump");
-}
-
-// This is the method that does all the dirty work... The basic
-// structure of this method was devised by Detlef Becker.
-
-int
-ACE_Sig_Handlers::register_handler (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp,
- ACE_Event_Handler **,
- ACE_Sig_Action *old_disp)
-{
- ACE_TRACE ("ACE_Sig_Handlers::register_handler");
- ACE_MT (ACE_Recursive_Thread_Mutex *lock =
- ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
- (ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
-
- if (ACE_Sig_Handler::in_range (signum))
- {
- ACE_Sig_Adapter *ace_sig_adapter = 0; // Our signal handler.
- ACE_Sig_Adapter *extern_sh = 0; // An external signal handler.
- ACE_Sig_Action sa;
-
- // Get current signal disposition.
- sa.retrieve_action (signum);
-
- // Check whether we are already in control of the signal
- // handling disposition...
-
- if (!(sa.handler () == ace_signal_handlers_dispatcher
- || sa.handler () == ACE_SignalHandler (SIG_IGN)
- || sa.handler () == ACE_SignalHandler (SIG_DFL)))
- {
- // Drat, a 3rd party library has already installed a signal ;-(
-
- // Upto here we never disabled RESTART_MODE. Thus,
- // RESTART_MODE can only be changed by 3rd party libraries.
-
- if (ACE_BIT_DISABLED (sa.flags (), SA_RESTART)
- && ACE_Sig_Handlers::third_party_sig_handler_)
- // Toggling is disallowed since we might break 3rd party
- // code.
- return -1;
-
- // Note that we've seen a 3rd party handler...
- ACE_Sig_Handlers::third_party_sig_handler_ = 1;
-
- // Create a new 3rd party disposition, remembering its
- // preferred signal blocking etc...;
- ACE_NEW_RETURN (extern_sh,
- ACE_Sig_Adapter (sa,
- ++ACE_Sig_Handlers::sigkey_),
- -1);
- // Add the external signal handler to the set of handlers
- // for this signal.
- if (ACE_Sig_Handlers_Set::instance (signum)->insert (extern_sh) == -1)
- {
- delete extern_sh;
- return -1;
- }
- }
- // Add our new handler at this point.
- ACE_NEW_RETURN (ace_sig_adapter,
- ACE_Sig_Adapter (new_sh,
- ++ACE_Sig_Handlers::sigkey_),
- -1);
- // Add the ACE signal handler to the set of handlers for this
- // signal (make sure it goes before the external one if there is
- // one of these).
- if (ACE_Sig_Handlers_Set::instance (signum)->insert (ace_sig_adapter) == -1)
- {
- // We couldn't reinstall our handler, so let's pretend like
- // none of this happened...
- if (extern_sh)
- {
- ACE_Sig_Handlers_Set::instance (signum)->remove (extern_sh);
- delete extern_sh;
- }
- delete ace_sig_adapter;
- return -1;
- }
- // If ACE_Sig_Handlers::dispatch() was set we're done.
- else if (sa.handler () == ace_signal_handlers_dispatcher)
- return ace_sig_adapter->sigkey ();
-
- // Otherwise, we need to register our handler function so that
- // all signals will be dispatched through ACE.
- else
- {
- // Make sure that new_disp points to a valid location if the
- // user doesn't care...
- if (new_disp == 0)
- new_disp = &sa;
-
- new_disp->handler (ace_signal_handlers_dispatcher);
-
- // Default is to restart signal handlers.
- new_disp->flags (new_disp->flags () | SA_RESTART);
- new_disp->flags (new_disp->flags () | SA_SIGINFO);
-
- // Finally install (possibly reinstall) the ACE signal
- // handler disposition with the SA_RESTART mode enabled.
- if (new_disp->register_action (signum, old_disp) == -1)
- {
- // Yikes, lots of roll back at this point...
- ACE_Sig_Handlers_Set::instance (signum)->remove (ace_sig_adapter);
- delete ace_sig_adapter;
-
- if (extern_sh)
- {
- ACE_Sig_Handlers_Set::instance (signum)->remove (extern_sh);
- delete extern_sh;
- }
- return -1;
- }
- else // Return the signal key so that programs can cancel this
- // handler if they want!
- return ace_sig_adapter->sigkey ();
- }
- }
- else
- return -1;
-}
-
-// Remove the ACE_Event_Handler currently associated with <signum>.
-// Install the new disposition (if given) and return the previous
-// disposition (if desired by the caller). Returns 0 on success and
-// -1 if <signum> is invalid.
-
-int
-ACE_Sig_Handlers::remove_handler (int signum,
- ACE_Sig_Action *new_disp,
- ACE_Sig_Action *old_disp,
- int sigkey)
-{
- ACE_TRACE ("ACE_Sig_Handlers::remove_handler");
- ACE_MT (ACE_Recursive_Thread_Mutex *lock =
- ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
- (ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
-
- if (ACE_Sig_Handler::in_range (signum))
- {
- ACE_SIG_HANDLERS_SET *handler_set =
- ACE_Sig_Handlers_Set::instance (signum);
-
- ACE_SIG_HANDLERS_ITERATOR handler_iterator (*handler_set);
-
- // Iterate through the set of handlers for this signal.
-
- for (ACE_Event_Handler **eh;
- handler_iterator.next (eh) != 0;
- handler_iterator.advance ())
- {
- // Type-safe downcast would be nice here...
- ACE_Sig_Adapter *sh = (ACE_Sig_Adapter *) *eh;
-
- // Remove the handler if (1) its key matches the key we've
- // been told to remove or (2) if we've been told to remove
- // *all* handlers (i.e., <sigkey> == -1).
-
- if (sh->sigkey () == sigkey || sigkey == -1)
- {
- handler_set->remove (*eh);
- delete *eh;
- }
- }
-
- if (handler_set->size () == 0)
- {
- // If there are no more handlers left for a signal then
- // register the new disposition or restore the default
- // disposition.
-
- ACE_Sig_Action sa (SIG_DFL, (sigset_t *) 0);
-
- if (new_disp == 0)
- new_disp = &sa;
-
- return new_disp->register_action (signum, old_disp);
- }
- return 0;
- }
- else
- return -1;
-}
-
-// Master dispatcher function that gets called by a signal handler and
-// dispatches *all* the handlers...
-
-void
-ACE_Sig_Handlers::dispatch (int signum,
- siginfo_t *siginfo,
- ucontext_t *ucontext)
-{
- ACE_TRACE ("ACE_Sig_Handlers::dispatch");
- // The following is #ifdef'd out because it's entirely non-portable
- // to acquire a mutex in a signal handler...
-#if 0
- ACE_MT (ACE_Recursive_Thread_Mutex *lock =
- ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
- (ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_TSS_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
-#endif /* 0 */
-
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
-
- ACE_Sig_Handler::sig_pending_ = 1;
-
- // Darn well better be in range since the OS dispatched this...
- ACE_ASSERT (ACE_Sig_Handler::in_range (signum));
-
- ACE_SIG_HANDLERS_SET *handler_set =
- ACE_Sig_Handlers_Set::instance (signum);
-
- ACE_SIG_HANDLERS_ITERATOR handler_iterator (*handler_set);
-
- for (ACE_Event_Handler **eh = 0;
- handler_iterator.next (eh) != 0;
- handler_iterator.advance ())
- {
- if ((*eh)->handle_signal (signum, siginfo, ucontext) == -1)
- {
- handler_set->remove (*eh);
- delete *eh;
- }
- }
-}
-
-// Return the first item in the list of handlers. Note that this will
-// trivially provide the same behavior as the ACE_Sig_Handler
-// version if there is only 1 handler registered!
-
-ACE_Event_Handler *
-ACE_Sig_Handlers::handler (int signum)
-{
- ACE_TRACE ("ACE_Sig_Handlers::handler");
- ACE_SIG_HANDLERS_SET *handler_set =
- ACE_Sig_Handlers_Set::instance (signum);
- ACE_SIG_HANDLERS_ITERATOR handler_iterator (*handler_set);
- ACE_Event_Handler **eh = 0;
- handler_iterator.next (eh);
- return *eh;
-}
-
-// The following is a strange bit of logic that tries to give the same
-// semantics as what happens in ACE_Sig_Handler when we replace the
-// current signal handler with a new one. Note that if there is only
-// one signal handler the behavior will be identical. If there is
-// more than one handler then things get weird...
-
-ACE_Event_Handler *
-ACE_Sig_Handlers::handler (int signum, ACE_Event_Handler *new_sh)
-{
- ACE_TRACE ("ACE_Sig_Handlers::handler");
- ACE_SIG_HANDLERS_SET *handler_set =
- ACE_Sig_Handlers_Set::instance (signum);
- ACE_SIG_HANDLERS_ITERATOR handler_iterator (*handler_set);
- ACE_Event_Handler **eh = 0;
-
- // Find the first handler...
- handler_iterator.next (eh);
-
- // ... then remove it from the set ...
- handler_set->remove (*eh);
-
- // ... and then insert the new signal handler into the beginning of
- // the set (note, this is a bit too tied up in the implementation of
- // ACE_Unbounded_Set...).
- ACE_Sig_Adapter *temp;
-
- ACE_NEW_RETURN (temp,
- ACE_Sig_Adapter (new_sh,
- ++ACE_Sig_Handlers::sigkey_),
- 0);
- handler_set->insert (temp);
- return *eh;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-ACE_MT (template class ACE_TSS_Guard<ACE_Recursive_Thread_Mutex>);
-ACE_MT (template class ACE_Guard<ACE_Recursive_Thread_Mutex>);
-template class ACE_Fixed_Set<ACE_Event_Handler *, ACE_MAX_SIGNAL_HANDLERS>;
-template class ACE_Fixed_Set_Iterator<ACE_Event_Handler *, ACE_MAX_SIGNAL_HANDLERS>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-#pragma instantiate ACE_TSS_Guard<ACE_Recursive_Thread_Mutex>
-#pragma instantiate ACE_Guard<ACE_Recursive_Thread_Mutex>
-#endif /* ACE_MT_SAFE */
-#pragma instantiate ACE_Fixed_Set<ACE_Event_Handler *, ACE_MAX_SIGNAL_HANDLERS>
-#pragma instantiate ACE_Fixed_Set_Iterator<ACE_Event_Handler *, ACE_MAX_SIGNAL_HANDLERS>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_HAS_BROKEN_HPUX_TEMPLATES */
diff --git a/ace/Signal.h b/ace/Signal.h
deleted file mode 100644
index 2f2c920f26a..00000000000
--- a/ace/Signal.h
+++ /dev/null
@@ -1,519 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Signal.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SIGNAL_HANDLER_H
-#define ACE_SIGNAL_HANDLER_H
-#include "ace/pre.h"
-
-#if defined (ACE_DONT_INCLUDE_ACE_SIGNAL_H)
-# error ace/Signal.h was #included instead of signal.h by ace/OS.h: fix!!!!
-#endif /* ACE_DONT_INCLUDE_ACE_SIGNAL_H */
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Event_Handler.h"
-
-// This worksaround a horrible bug with HP/UX C++...
-typedef struct sigaction ACE_SIGACTION;
-
-/**
- * @class ACE_Sig_Set
- *
- * @brief Provide a C++ wrapper for the C sigset_t interface.
- *
- * Handle signals via a more elegant C++ interface (e.g.,
- * doesn't require the use of global variables or global
- * functions in an application).
- */
-class ACE_Export ACE_Sig_Set
-{
-public:
- // = Initialization and termination methods.
- /// Initialize <sigset_> with <sigset>. If <sigset> == 0 then fill
- /// the set.
- ACE_Sig_Set (sigset_t *sigset);
-
- /// Initialize <sigset_> with <sigset>. If <sigset> == 0 then fill
- /// the set.
- ACE_Sig_Set (ACE_Sig_Set *sigset);
-
- /// If <fill> == 0 then initialize the <sigset_> to be empty, else
- /// full.
- ACE_Sig_Set (int fill = 0);
-
- ~ACE_Sig_Set (void);
-
- /// Create a set that excludes all signals defined by the system.
- int empty_set (void);
-
- /// Create a set that includes all signals defined by the system.
- int fill_set (void);
-
- /// Adds the individual signal specified by <signo> to the set.
- int sig_add (int signo);
-
- /// Deletes the individual signal specified by <signo> from the set.
- int sig_del (int signo);
-
- /// Checks whether the signal specified by <signo> is in the set.
- int is_member (int signo) const;
-
- /// Returns a pointer to the underlying <sigset_t>.
- operator sigset_t *();
-
- /// Returns a copy of the underlying <sigset_t>.
- sigset_t sigset (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Set of signals.
- sigset_t sigset_;
-};
-
-/**
- * @class ACE_Sig_Action
- *
- * @brief C++ wrapper facade for the <sigaction> struct.
- */
-class ACE_Export ACE_Sig_Action
-{
-public:
- // = Initialization methods.
- /// Default constructor. Initializes everything to 0.
- ACE_Sig_Action (void);
-
- /// Assigns the various fields of a <sigaction> struct but doesn't
- /// register for signal handling via the <sigaction> function.
- ACE_Sig_Action (ACE_SignalHandler handler,
- sigset_t *sigmask = 0,
- int flags = 0);
-
- /// Assigns the various fields of a <sigaction> struct but doesn't
- /// register for signal handling via the <sigaction> function.
- ACE_Sig_Action (ACE_SignalHandler handler,
- const ACE_Sig_Set &sigmask,
- int flags = 0);
-
- /**
- * Assigns the various fields of a <sigaction> struct and registers
- * the <handler> to process signal <signum> via the <sigaction>
- * function.
- */
- ACE_Sig_Action (ACE_SignalHandler handler,
- int signum,
- sigset_t *sigmask = 0,
- int flags = 0);
-
- /**
- * Assigns the various fields of a <sigaction> struct and registers
- * the <handler> to process signal <signum> via the <sigaction>
- * function.
- */
- ACE_Sig_Action (ACE_SignalHandler handler,
- int signum,
- const ACE_Sig_Set &sigmask,
- int flags = 0);
-
-
- // @@ The next two methods have a parameter as "signalss". Please do
- // not change the argument name as "signals". This causes the
- // following problem as reported by
- // <James.Briggs@dsto.defence.gov.au>.
-
- // In the file Signal.h two of the functions have and argument name
- // of signals. signals is a Qt macro (to do with their meta object
- // stuff.
- // We could as well have it as "signal", but I am nost sure whether
- // that would cause a problem with something else - Bala <bala@cs>
-
- /**
- * Assigns the various fields of a <sigaction> struct and registers
- * the <handler> to process all <signals> via the <sigaction>
- * function.
- */
- ACE_Sig_Action (const ACE_Sig_Set &signalss,
- ACE_SignalHandler handler,
- const ACE_Sig_Set &sigmask,
- int flags = 0);
-
- /**
- * Assigns the various fields of a <sigaction> struct and registers
- * the <handler> to process all <signals> via the <sigaction>
- * function.
- */
- ACE_Sig_Action (const ACE_Sig_Set &signalss,
- ACE_SignalHandler handler,
- sigset_t *sigmask = 0,
- int flags = 0);
-
- /// Copy constructor.
- ACE_Sig_Action (const ACE_Sig_Action &s);
-
- /// Default dtor.
- ~ACE_Sig_Action (void);
-
- // = Signal action management.
- /// Register <this> as the current disposition and store old
- /// disposition into <oaction> if it is non-NULL.
- int register_action (int signum,
- ACE_Sig_Action *oaction = 0);
-
- /// Assign the value of <oaction> to <this> and make it become the
- /// new signal disposition.
- int restore_action (int signum,
- ACE_Sig_Action &oaction);
-
- /// Retrieve the current disposition into <this>.
- int retrieve_action (int signum);
-
- /// Set current signal action.
- void set (struct sigaction *);
-
- /// Get current signal action.
- struct sigaction *get (void);
- operator ACE_SIGACTION *();
-
- /// Set current signal flags.
- void flags (int);
-
- /// Get current signal flags.
- int flags (void);
-
- /// Set current signal mask.
- void mask (sigset_t *);
- void mask (ACE_Sig_Set &);
-
- /// Get current signal mask.
- sigset_t *mask (void);
-
- /// Set current signal handler (pointer to function).
- void handler (ACE_SignalHandler);
-
- /// Get current signal handler (pointer to function).
- ACE_SignalHandler handler (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Controls signal behavior.
- struct sigaction sa_;
-};
-
-/**
- * @class ACE_Sig_Guard
- *
- * @brief Hold signals in MASK for duration of a C++ statement block.
- * Note that a "0" for mask causes all signals to be held.
- */
-class ACE_Export ACE_Sig_Guard
-{
-public:
- // = Initialization and termination methods.
- /// Block out signals in <mask>. Default is to block all signals!
- ACE_Sig_Guard (ACE_Sig_Set *mask = 0);
-
- /// Restore blocked signals.
- ~ACE_Sig_Guard (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Original signal mask.
- ACE_Sig_Set omask_;
-};
-
-/**
- * @class ACE_Sig_Handler
- *
- * @brief This is the main dispatcher of signals for ACE. It improves
- * the existing UNIX signal handling mechanism by allowing C++
- * objects to handle signals in a way that avoids the use of
- * global/static variables and functions.
- *
- * Using this class a program can register an <ACE_Event_Handler>
- * with the <ACE_Sig_Handler> in order to handle a designated
- * <signum>. When a signal occurs that corresponds to this
- * <signum>, the <handle_signal> method of the registered
- * <ACE_Event_Handler> is invoked automatically.
- */
-class ACE_Export ACE_Sig_Handler
-{
-public:
-#if defined (ACE_HAS_WINCE)
- /// Default ctor/dtor.
- ACE_Sig_Handler (void);
- virtual ~ACE_Sig_Handler (void);
-#endif /* ACE_HAS_WINCE */
-
- // = Registration and removal methods.
- /**
- * Add a new <ACE_Event_Handler> and a new sigaction associated with
- * <signum>. Passes back the existing <ACE_Event_Handler> and its
- * sigaction if pointers are non-zero. Returns -1 on failure and >=
- * 0 on success.
- */
- virtual int register_handler (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp = 0,
- ACE_Event_Handler **old_sh = 0,
- ACE_Sig_Action *old_disp = 0);
-
- /**
- * Remove the <ACE_Event_Handler> currently associated with
- * <signum>. <sigkey> is ignored in this implementation since there
- * is only one instance of a signal handler. Install the new
- * disposition (if given) and return the previous disposition (if
- * desired by the caller). Returns 0 on success and -1 if <signum>
- * is invalid.
- */
- virtual int remove_handler (int signum,
- ACE_Sig_Action *new_disp = 0,
- ACE_Sig_Action *old_disp = 0,
- int sigkey = -1);
-
- // Set/get signal status.
- /// True if there is a pending signal.
- static int sig_pending (void);
-
- /// Reset the value of <sig_pending_> so that no signal is pending.
- static void sig_pending (int);
-
- // = Set/get the handler associated with a particular signal.
-
- /// Return the <ACE_Sig_Handler> associated with <signum>.
- virtual ACE_Event_Handler *handler (int signum);
-
- /// Set a new <ACE_Event_Handler> that is associated with <signum>.
- /// Return the existing handler.
- virtual ACE_Event_Handler *handler (int signum,
- ACE_Event_Handler *);
-
- /**
- * Callback routine registered with sigaction(2) that dispatches the
- * <handle_signal> method of the appropriate pre-registered
- * ACE_Event_Handler.
- */
- static void dispatch (int, siginfo_t *,
- ucontext_t *);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = These methods and data members are shared by derived classes.
-
- /**
- * Set a new <ACE_Event_Handler> that is associated with <signum>.
- * Return the existing handler. Does not acquire any locks so that
- * it can be called from a signal handler, such as <dispatch>.
- */
- static ACE_Event_Handler *handler_i (int signum,
- ACE_Event_Handler *);
-
- /**
- * This implementation method is called by <register_handler> and
- * <dispatch>. It doesn't do any locking so that it can be called
- * within a signal handler, such as <dispatch>. It adds a new
- * <ACE_Event_Handler> and a new sigaction associated with <signum>.
- * Passes back the existing <ACE_Event_Handler> and its sigaction if
- * pointers are non-zero. Returns -1 on failure and >= 0 on
- * success.
- */
- static int register_handler_i (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp = 0,
- ACE_Event_Handler **old_sh = 0,
- ACE_Sig_Action *old_disp = 0);
-
- /// Check whether the SIGNUM is within the legal range of signals.
- static int in_range (int signum);
-
- /// Keeps track of whether a signal is pending.
- static sig_atomic_t sig_pending_;
-
-private:
- /// Array used to store one user-defined Event_Handler for every
- /// signal.
- static ACE_Event_Handler *signal_handlers_[ACE_NSIG];
-};
-
-/**
- * @class ACE_Sig_Adapter
- *
- * @brief Provide an adapter that transforms various types of signal
- * handlers into the scheme used by the <ACE_Reactor>.
- */
-class ACE_Export ACE_Sig_Adapter : public ACE_Event_Handler
-{
-public:
- ACE_Sig_Adapter (ACE_Sig_Action &, int sigkey);
- ACE_Sig_Adapter (ACE_Event_Handler *, int sigkey);
- ACE_Sig_Adapter (ACE_Sig_Handler_Ex, int sigkey = 0);
- ~ACE_Sig_Adapter (void);
-
- /// Returns this signal key that's used to remove this from the
- /// <ACE_Reactor>'s internal table.
- int sigkey (void);
-
- /// Called by the <Reactor> to dispatch the signal handler.
- virtual int handle_signal (int, siginfo_t *, ucontext_t *);
-
-private:
- /// Key for this signal handler (used to remove it).
- int sigkey_;
-
- /// Is this an external handler or an ACE handler?
- enum
- {
- /// We're just wrapping an ACE_Event_Handler.
- ACE_HANDLER,
- /// An ACE_Sig_Action.
- SIG_ACTION,
- /// A normal C function.
- C_FUNCTION
- } type_;
-
- // = This should be a union, but C++ won't allow that because the
- // <ACE_Sig_Action> has a constructor.
- /// This is an external handler (ugh).
- ACE_Sig_Action sa_;
-
- /// This is an ACE hander.
- ACE_Event_Handler *eh_;
-
- /// This is a normal C function.
- ACE_Sig_Handler_Ex sig_func_;
-};
-
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES)
-/**
- * @class ACE_Sig_Handlers
- *
- * @brief This is an alternative signal handling dispatcher for ACE. It
- * allows a list of signal handlers to be registered for each
- * signal. It also makes SA_RESTART the default mode.
- *
- * Using this class a program can register one or more
- * ACE_Event_Handler with the ACE_Sig_Handler in order to
- * handle a designated <signum>. When a signal occurs that
- * corresponds to this <signum>, the <handle_signal> methods of
- * all the registered ACE_Event_Handlers are invoked
- * automatically.
- */
-class ACE_Export ACE_Sig_Handlers : public ACE_Sig_Handler
-{
-public:
- // = Registration and removal methods.
- /**
- * Add a new ACE_Event_Handler and a new sigaction associated with
- * <signum>. Passes back the existing ACE_Event_Handler and its
- * sigaction if pointers are non-zero. Returns -1 on failure and
- * a <sigkey> that is >= 0 on success.
- */
- virtual int register_handler (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp = 0,
- ACE_Event_Handler **old_sh = 0,
- ACE_Sig_Action *old_disp = 0);
-
- /**
- * Remove an <ACE_Event_Handler> currently associated with <signum>.
- * We remove the handler if (1) its <sigkey> matches the <sigkey>
- * passed as a parameter or (2) if we've been told to remove all the
- * handlers, i.e., <sigkey> == -1. If a new disposition is given it
- * is installed and the previous disposition is returned (if desired
- * by the caller). Returns 0 on success and -1 if <signum> is
- * invalid.
- */
- virtual int remove_handler (int signum,
- ACE_Sig_Action *new_disp = 0,
- ACE_Sig_Action *old_disp = 0,
- int sigkey = -1);
-
- // = Set/get the handler associated with a particular signal.
-
- /// Return the head of the list of <ACE_Sig_Handler>s associated with
- /// SIGNUM.
- virtual ACE_Event_Handler *handler (int signum);
-
- /**
- * Set a new <ACE_Event_Handler> that is associated with SIGNUM at
- * the head of the list of signals. Return the existing handler
- * that was at the head.
- */
- virtual ACE_Event_Handler *handler (int signum,
- ACE_Event_Handler *);
-
- /**
- * Callback routine registered with sigaction(2) that dispatches the
- * <handle_signal> method of all the pre-registered
- * ACE_Event_Handlers for <signum>
- */
- static void dispatch (int signum, siginfo_t *, ucontext_t *);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /**
- * Keeps track of the id that uniquely identifies each registered
- * signal handler. This id can be used to cancel a timer via the
- * <remove_handler> method.
- */
- static int sigkey_;
-
- /// If this is > 0 then a 3rd party library has registered a
- /// handler...
- static int third_party_sig_handler_;
-};
-#endif /* ACE_HAS_BROKEN_HPUX_TEMPLATES */
-
-#if defined (ACE_HAS_SIG_C_FUNC)
-extern "C" void
-ace_sig_handler_dispatch (int signum, siginfo_t *info, ucontext_t *context);
-
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES)
-extern "C" void
-ace_sig_handlers_dispatch (int signum, siginfo_t *info, ucontext_t *context);
-#endif /* ACE_HAS_BROKEN_HPUX_TEMPLATES */
-
-#endif /* ACE_HAS_SIG_C_FUNC */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Signal.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_SIGNAL_HANDLER_H */
diff --git a/ace/Signal.i b/ace/Signal.i
deleted file mode 100644
index e2ca95be130..00000000000
--- a/ace/Signal.i
+++ /dev/null
@@ -1,306 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_Sig_Set::ACE_Sig_Set (sigset_t *ss)
- // : sigset_ ()
-{
- ACE_TRACE ("ACE_Sig_Set::ACE_Sig_Set");
-
- if (ss == 0)
- ACE_OS::sigfillset (&this->sigset_);
- else
- // Structure assignment.
- this->sigset_ = *ss;
-}
-
-ACE_INLINE
-ACE_Sig_Set::ACE_Sig_Set (int fill)
- // : sigset_ ()
-{
- ACE_TRACE ("ACE_Sig_Set::ACE_Sig_Set");
-
- if (fill)
- ACE_OS::sigfillset (&this->sigset_);
- else
- ACE_OS::sigemptyset (&this->sigset_);
-}
-
-ACE_INLINE
-ACE_Sig_Set::ACE_Sig_Set (ACE_Sig_Set *ss)
- // : sigset_ ()
-{
- ACE_TRACE ("ACE_Sig_Set::ACE_Sig_Set");
-
- if (ss == 0)
- ACE_OS::sigfillset (&this->sigset_);
- else
- this->sigset_ = ss->sigset_;
-}
-
-ACE_INLINE
-ACE_Sig_Set::~ACE_Sig_Set (void)
-{
- ACE_TRACE ("ACE_Sig_Set::~ACE_Sig_Set");
- ACE_OS::sigemptyset (&this->sigset_);
-}
-
-ACE_INLINE int
-ACE_Sig_Set::empty_set (void)
-{
- ACE_TRACE ("ACE_Sig_Set::empty_set");
- return ACE_OS::sigemptyset (&this->sigset_);
-}
-
-ACE_INLINE int
-ACE_Sig_Set::fill_set (void)
-{
- ACE_TRACE ("ACE_Sig_Set::fill_set");
- return ACE_OS::sigfillset (&this->sigset_);
-}
-
-ACE_INLINE int
-ACE_Sig_Set::sig_add (int signo)
-{
- ACE_TRACE ("ACE_Sig_Set::sig_add");
- return ACE_OS::sigaddset (&this->sigset_, signo);
-}
-
-ACE_INLINE int
-ACE_Sig_Set::sig_del (int signo)
-{
- ACE_TRACE ("ACE_Sig_Set::sig_del");
- return ACE_OS::sigdelset (&this->sigset_, signo);
-}
-
-ACE_INLINE int
-ACE_Sig_Set::is_member (int signo) const
-{
- ACE_TRACE ("ACE_Sig_Set::is_member");
- return ACE_OS::sigismember (ACE_const_cast (sigset_t *, &this->sigset_), signo);
-}
-
-ACE_INLINE
-ACE_Sig_Set::operator sigset_t *(void)
-{
- ACE_TRACE ("ACE_Sig_Set::operator sigset_t *");
- return &this->sigset_;
-}
-
-ACE_INLINE sigset_t
-ACE_Sig_Set::sigset (void) const
-{
- ACE_TRACE ("ACE_Sig_Set::sigset");
- return this->sigset_;
-}
-
-ACE_INLINE
-ACE_Sig_Action::~ACE_Sig_Action (void)
-{
- ACE_TRACE ("ACE_Sig_Action::~ACE_Sig_Action");
-}
-
-ACE_INLINE int
-ACE_Sig_Action::flags (void)
-{
- ACE_TRACE ("ACE_Sig_Action::flags");
- return this->sa_.sa_flags;
-}
-
-ACE_INLINE void
-ACE_Sig_Action::flags (int flags)
-{
- ACE_TRACE ("ACE_Sig_Action::flags");
- this->sa_.sa_flags = flags;
-}
-
-ACE_INLINE sigset_t *
-ACE_Sig_Action::mask (void)
-{
- ACE_TRACE ("ACE_Sig_Action::mask");
- return &this->sa_.sa_mask;
-}
-
-ACE_INLINE void
-ACE_Sig_Action::mask (sigset_t *ss)
-{
- ACE_TRACE ("ACE_Sig_Action::mask");
- if (ss != 0)
- this->sa_.sa_mask = *ss; // Structure assignment
-}
-
-ACE_INLINE void
-ACE_Sig_Action::mask (ACE_Sig_Set &ss)
-{
- ACE_TRACE ("ACE_Sig_Action::mask");
- this->sa_.sa_mask = ss.sigset (); // Structure assignment
-}
-
-ACE_INLINE ACE_SignalHandler
-ACE_Sig_Action::handler (void)
-{
- ACE_TRACE ("ACE_Sig_Action::handler");
- return ACE_SignalHandler (this->sa_.sa_handler);
-}
-
-ACE_INLINE void
-ACE_Sig_Action::handler (ACE_SignalHandler handler)
-{
- ACE_TRACE ("ACE_Sig_Action::handler");
-#if !defined(ACE_HAS_TANDEM_SIGNALS)
- this->sa_.sa_handler = ACE_SignalHandlerV (handler);
-#else
- this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (handler);
-#endif /* !ACE_HAS_TANDEM_SIGNALS */
-}
-
-#if 0
-ACE_INLINE ACE_SignalHandler
-ACE_Sig_Action::sigaction (void)
-{
- ACE_TRACE ("ACE_Sig_Action::sigaction");
- return ACE_SignalHandler (this->sa_.sa_sigaction);
-}
-
-ACE_INLINE void
-ACE_Sig_Action::sigaction (ACE_SignalHandler handler)
-{
- ACE_TRACE ("ACE_Sig_Action::sigaction");
- this->sa_.sa_sigaction = (void (*)()) ACE_SignalHandlerV (handler);
-}
-#endif /* 0 */
-
-ACE_INLINE void
-ACE_Sig_Action::set (struct sigaction *sa)
-{
- ACE_TRACE ("ACE_Sig_Action::set");
- this->sa_ = *sa; // Structure assignment.
-}
-
-ACE_INLINE struct sigaction *
-ACE_Sig_Action::get (void)
-{
- ACE_TRACE ("ACE_Sig_Action::get");
- return &this->sa_;
-}
-
-ACE_INLINE
-ACE_Sig_Action::operator ACE_SIGACTION * ()
-{
- ACE_TRACE ("ACE_Sig_Action::operator ACE_SIGACTION *");
- return &this->sa_;
-}
-
-ACE_INLINE
-ACE_Sig_Action::ACE_Sig_Action (const ACE_Sig_Action &s)
- // : sa_ ()
-{
- ACE_TRACE ("ACE_Sig_Action::ACE_Sig_Action");
- *this = s; // structure copy.
-}
-
-ACE_INLINE int
-ACE_Sig_Action::register_action (int signum, ACE_Sig_Action *oaction)
-{
- ACE_TRACE ("ACE_Sig_Action::register_action");
- struct sigaction *sa = oaction == 0 ? 0 : oaction->get ();
-
- return ACE_OS::sigaction (signum, &this->sa_, sa);
-}
-
-ACE_INLINE int
-ACE_Sig_Action::retrieve_action (int signum)
-{
- ACE_TRACE ("ACE_Sig_Action::retrieve_action");
- return ACE_OS::sigaction (signum, 0, &this->sa_);
-}
-
-ACE_INLINE int
-ACE_Sig_Action::restore_action (int signum, ACE_Sig_Action &oaction)
-{
- ACE_TRACE ("ACE_Sig_Action::restore_action");
- this->sa_ = *oaction.get (); // Structure assignment
- return ACE_OS::sigaction (signum, &this->sa_, 0);
-}
-
-// Block out the signal MASK until the destructor is called.
-
-ACE_INLINE
-ACE_Sig_Guard::ACE_Sig_Guard (ACE_Sig_Set *mask)
- : omask_ ()
-{
- //ACE_TRACE ("ACE_Sig_Guard::ACE_Sig_Guard");
-
-#if defined (ACE_LACKS_UNIX_SIGNALS)
- ACE_UNUSED_ARG (mask);
-#else
- // If MASK is 0 then block all signals!
- if (mask == 0)
- {
-# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
- ACE_OS::sigprocmask (SIG_BLOCK,
- ACE_OS_Object_Manager::default_mask (),
- (sigset_t *) this->omask_);
-# else
- ACE_OS::thr_sigsetmask (SIG_BLOCK,
- ACE_OS_Object_Manager::default_mask (),
- (sigset_t *) this->omask_);
-# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
- }
- else
-# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
- ACE_OS::sigprocmask (SIG_BLOCK,
- (sigset_t *) *mask,
- (sigset_t *)
- this->omask_);
-# else
- ACE_OS::thr_sigsetmask (SIG_BLOCK,
- (sigset_t *) *mask,
- (sigset_t *)
- this->omask_);
-# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
-#endif /* ACE_LACKS_UNIX_SIGNALS */
-}
-
-// Restore the signal mask.
-
-ACE_INLINE
-ACE_Sig_Guard::~ACE_Sig_Guard (void)
-{
- //ACE_TRACE ("ACE_Sig_Guard::~ACE_Sig_Guard");
-#if !defined (ACE_LACKS_UNIX_SIGNALS)
-#if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
- ACE_OS::sigprocmask (SIG_SETMASK,
- (sigset_t *) this->omask_,
- 0);
-#else
- ACE_OS::thr_sigsetmask (SIG_SETMASK,
- (sigset_t *) this->omask_,
- 0);
-#endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
-#endif /* !ACE_LACKS_UNIX_SIGNALS */
-}
-
-#if defined (ACE_HAS_WINCE)
-ACE_INLINE
-ACE_Sig_Handler::ACE_Sig_Handler (void)
-{
-}
-
-ACE_INLINE
-ACE_Sig_Handler::~ACE_Sig_Handler (void)
-{
-}
-#endif /* ACE_HAS_WINCE */
-
-ACE_INLINE int
-ACE_Sig_Handler::in_range (int signum)
-{
- ACE_TRACE ("ACE_Sig_Handler::in_range");
- return signum > 0 && signum < ACE_NSIG;
-}
-
-ACE_INLINE
-ACE_Sig_Adapter::~ACE_Sig_Adapter (void)
-{
-}
diff --git a/ace/Singleton.cpp b/ace/Singleton.cpp
deleted file mode 100644
index f76472c997f..00000000000
--- a/ace/Singleton.cpp
+++ /dev/null
@@ -1,519 +0,0 @@
-// $Id$
-
-#ifndef ACE_SINGLETON_C
-#define ACE_SINGLETON_C
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Singleton.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Synch_T.h"
-#include "ace/Object_Manager.h"
-#include "ace/Log_Msg.h"
-#include "ace/Framework_Component.h"
-
-ACE_RCSID (ace,
- Singleton,
- "$Id$")
-
-template <class TYPE, class ACE_LOCK> void
-ACE_Singleton<TYPE, ACE_LOCK>::dump (void)
-{
- ACE_TRACE ("ACE_Singleton<TYPE, ACE_LOCK>::dump");
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("instance_ = %x"),
- ACE_Singleton<TYPE, ACE_LOCK>::instance_i ()));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-}
-
-template <class TYPE, class ACE_LOCK> ACE_Singleton<TYPE, ACE_LOCK> *&
-ACE_Singleton<TYPE, ACE_LOCK>::instance_i (void)
-{
-#if defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- // Pointer to the Singleton instance. This works around a bug with
- // G++ and it's (mis-)handling of templates and statics...
- static ACE_Singleton<TYPE, ACE_LOCK> *singleton_ = 0;
-
- return singleton_;
-#else
- return ACE_Singleton<TYPE, ACE_LOCK>::singleton_;
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-}
-
-template <class TYPE, class ACE_LOCK> TYPE *
-ACE_Singleton<TYPE, ACE_LOCK>::instance (void)
-{
- ACE_TRACE ("ACE_Singleton<TYPE, ACE_LOCK>::instance");
-
- ACE_Singleton<TYPE, ACE_LOCK> *&singleton =
- ACE_Singleton<TYPE, ACE_LOCK>::instance_i ();
-
- // Perform the Double-Check pattern...
- if (singleton == 0)
- {
- if (ACE_Object_Manager::starting_up () ||
- ACE_Object_Manager::shutting_down ())
- {
- // The program is still starting up, and therefore assumed
- // to be single threaded. There's no need to double-check.
- // Or, the ACE_Object_Manager instance has been destroyed,
- // so the preallocated lock is not available. Either way,
- // don't register for destruction with the
- // ACE_Object_Manager: we'll have to leak this instance.
-
- ACE_NEW_RETURN (singleton, (ACE_Singleton<TYPE, ACE_LOCK>), 0);
- }
- else
- {
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- // Obtain a lock from the ACE_Object_Manager. The pointer
- // is static, so we only obtain one per ACE_Singleton
- // instantiation.
- static ACE_LOCK *lock = 0;
- if (ACE_Object_Manager::get_singleton_lock (lock) != 0)
- // Failed to acquire the lock!
- return 0;
-
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, *lock, 0);
-
- if (singleton == 0)
- {
-#endif /* ACE_MT_SAFE */
- ACE_NEW_RETURN (singleton, (ACE_Singleton<TYPE, ACE_LOCK>), 0);
-
- // Register for destruction with ACE_Object_Manager.
- ACE_Object_Manager::at_exit (singleton);
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- }
-#endif /* ACE_MT_SAFE */
- }
- }
-
- return &singleton->instance_;
-}
-
-template <class TYPE, class ACE_LOCK> void
-ACE_Singleton<TYPE, ACE_LOCK>::cleanup (void *)
-{
- delete this;
- ACE_Singleton<TYPE, ACE_LOCK>::instance_i () = 0;
-}
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
-// Pointer to the Singleton instance.
-template <class TYPE, class ACE_LOCK> ACE_Singleton<TYPE, ACE_LOCK> *
-ACE_Singleton<TYPE, ACE_LOCK>::singleton_ = 0;
-
-template <class TYPE, class ACE_LOCK> ACE_Unmanaged_Singleton<TYPE, ACE_LOCK> *
-ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>::singleton_ = 0;
-#endif /* !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES) */
-
-template <class TYPE, class ACE_LOCK> void
-ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>::dump (void)
-{
- ACE_TRACE ("ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>::dump");
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("instance_ = %x"),
- ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>::instance_i ()));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-}
-
-template <class TYPE, class ACE_LOCK>
-ACE_Unmanaged_Singleton<TYPE, ACE_LOCK> *&
-ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>::instance_i (void)
-{
-#if defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- // Pointer to the Singleton instance. This works around a bug with
- // G++ and it's (mis-)handling of templates and statics...
- static ACE_Unmanaged_Singleton<TYPE, ACE_LOCK> *singleton_ = 0;
-
- return singleton_;
-#else
- return ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>::singleton_;
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-}
-
-template <class TYPE, class ACE_LOCK> TYPE *
-ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>::instance (void)
-{
- ACE_TRACE ("ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>::instance");
-
- ACE_Unmanaged_Singleton<TYPE, ACE_LOCK> *&singleton =
- ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>::instance_i ();
-
- // Perform the Double-Check pattern...
- if (singleton == 0)
- {
- if (ACE_Object_Manager::starting_up () ||
- ACE_Object_Manager::shutting_down ())
- {
- // The program is still starting up, and therefore assumed
- // to be single threaded. There's no need to double-check.
- // Or, the ACE_Object_Manager instance has been destroyed,
- // so the preallocated lock is not available. Either way,
- // don't register for destruction with the
- // ACE_Object_Manager: we'll have to leak this instance.
-
- ACE_NEW_RETURN (singleton, (ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>),
- 0);
- }
- else
- {
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- // Obtain a lock from the ACE_Object_Manager. The pointer
- // is static, so we only obtain one per
- // ACE_Unmanaged_Singleton instantiation.
- static ACE_LOCK *lock = 0;
- if (ACE_Object_Manager::get_singleton_lock (lock) != 0)
- // Failed to acquire the lock!
- return 0;
-
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, *lock, 0);
-#endif /* ACE_MT_SAFE */
-
- if (singleton == 0)
- ACE_NEW_RETURN (singleton,
- (ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>),
- 0);
- }
- }
-
- return &singleton->instance_;
-}
-
-template <class TYPE, class ACE_LOCK> void
-ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>::close (void)
-{
- ACE_Unmanaged_Singleton<TYPE, ACE_LOCK> *&singleton =
- ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>::instance_i ();
-
- if (singleton)
- {
- singleton->cleanup ();
- ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>::instance_i () = 0;
- }
-}
-
-template <class TYPE, class ACE_LOCK> void
-ACE_TSS_Singleton<TYPE, ACE_LOCK>::dump (void)
-{
- ACE_TRACE ("ACE_TSS_Singleton<TYPE, ACE_LOCK>::dump");
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("instance_ = %x"),
- ACE_TSS_Singleton<TYPE, ACE_LOCK>::instance_i ()));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-}
-
-template <class TYPE, class ACE_LOCK> ACE_TSS_Singleton<TYPE, ACE_LOCK> *&
-ACE_TSS_Singleton<TYPE, ACE_LOCK>::instance_i (void)
-{
-#if defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- // Pointer to the Singleton instance. This works around a bug with
- // G++ and it's (mis-)handling of templates and statics...
- static ACE_TSS_Singleton<TYPE, ACE_LOCK> *singleton_ = 0;
-
- return singleton_;
-#else
- return ACE_TSS_Singleton<TYPE, ACE_LOCK>::singleton_;
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-}
-
-template <class TYPE, class ACE_LOCK> TYPE *
-ACE_TSS_Singleton<TYPE, ACE_LOCK>::instance (void)
-{
- ACE_TRACE ("ACE_TSS_Singleton<TYPE, ACE_LOCK>::instance");
-
- ACE_TSS_Singleton<TYPE, ACE_LOCK> *&singleton =
- ACE_TSS_Singleton<TYPE, ACE_LOCK>::instance_i ();
-
- // Perform the Double-Check pattern...
- if (singleton == 0)
- {
- if (ACE_Object_Manager::starting_up () ||
- ACE_Object_Manager::shutting_down ())
- {
- // The program is still starting up, and therefore assumed
- // to be single threaded. There's no need to double-check.
- // Or, the ACE_Object_Manager instance has been destroyed,
- // so the preallocated lock is not available. Either way,
- // don't register for destruction with the
- // ACE_Object_Manager: we'll have to leak this instance.
-
- ACE_NEW_RETURN (singleton, (ACE_TSS_Singleton<TYPE, ACE_LOCK>), 0);
- }
- else
- {
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-
- // Obtain a lock from the ACE_Object_Manager. The pointer
- // is static, so we only obtain one per ACE_Singleton instantiation.
- static ACE_LOCK *lock = 0;
- if (ACE_Object_Manager::get_singleton_lock (lock) != 0)
- // Failed to acquire the lock!
- return 0;
-
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, *lock, 0);
-
- if (singleton == 0)
- {
-#endif /* ACE_MT_SAFE */
- ACE_NEW_RETURN (singleton, (ACE_TSS_Singleton<TYPE, ACE_LOCK>),
- 0);
-
- // Register for destruction with ACE_Object_Manager.
- ACE_Object_Manager::at_exit (singleton);
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- }
-#endif /* ACE_MT_SAFE */
- }
- }
-
- return ACE_TSS_GET (&singleton->instance_, TYPE);
-}
-
-template <class TYPE, class ACE_LOCK> void
-ACE_TSS_Singleton<TYPE, ACE_LOCK>::cleanup (void *)
-{
- delete this;
- ACE_TSS_Singleton<TYPE, ACE_LOCK>::instance_i () = 0;
-}
-
-template <class TYPE, class ACE_LOCK> void
-ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>::dump (void)
-{
- ACE_TRACE ("ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>::dump");
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("instance_ = %x"),
- ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>::instance_i ()));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-}
-
-template <class TYPE, class ACE_LOCK>
-ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK> *&
-ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>::instance_i (void)
-{
-#if defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- // Pointer to the Singleton instance. This works around a bug with
- // G++ and it's (mis-)handling of templates and statics...
- static ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK> *singleton_ = 0;
-
- return singleton_;
-#else
- return ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>::singleton_;
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-}
-
-template <class TYPE, class ACE_LOCK> TYPE *
-ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>::instance (void)
-{
- ACE_TRACE ("ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>::instance");
-
- ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK> *&singleton =
- ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>::instance_i ();
-
- // Perform the Double-Check pattern...
- if (singleton == 0)
- {
- if (ACE_Object_Manager::starting_up () ||
- ACE_Object_Manager::shutting_down ())
- {
- // The program is still starting up, and therefore assumed
- // to be single threaded. There's no need to double-check.
- // Or, the ACE_Object_Manager instance has been destroyed,
- // so the preallocated lock is not available. Either way,
- // don't register for destruction with the
- // ACE_Object_Manager: we'll have to leak this instance.
-
- ACE_NEW_RETURN (singleton,
- (ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>),
- 0);
- }
- else
- {
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- // Obtain a lock from the ACE_Object_Manager. The pointer
- // is static, so we only obtain one per
- // ACE_Unmanaged_Singleton instantiation.
- static ACE_LOCK *lock = 0;
- if (ACE_Object_Manager::get_singleton_lock (lock) != 0)
- // Failed to acquire the lock!
- return 0;
-
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, *lock, 0);
-#endif /* ACE_MT_SAFE */
-
- if (singleton == 0)
- ACE_NEW_RETURN (singleton,
- (ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>),
- 0);
- }
- }
-
- return ACE_TSS_GET (&singleton->instance_, TYPE);
-}
-
-template <class TYPE, class ACE_LOCK> void
-ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>::close (void)
-{
- ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK> *&singleton =
- ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>::instance_i ();
-
- if (singleton)
- singleton->cleanup ();
-}
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
-// Pointer to the Singleton instance.
-template <class TYPE, class ACE_LOCK> ACE_TSS_Singleton <TYPE, ACE_LOCK> *
-ACE_TSS_Singleton<TYPE, ACE_LOCK>::singleton_ = 0;
-
-template <class TYPE, class ACE_LOCK>
-ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK> *
-ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>::singleton_ = 0;
-#endif /* !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES) */
-
-/*************************************************************************/
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
-// Pointer to the Singleton instance.
-template <class TYPE, class ACE_LOCK> ACE_DLL_Singleton_T<TYPE, ACE_LOCK> *
-ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::singleton_ = 0;
-#endif /* !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES) */
-
-template <class TYPE, class ACE_LOCK> void
-ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::dump (void)
-{
- ACE_TRACE ("ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::dump");
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("instance_ = %x"),
- ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::instance_i ()));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-}
-
-template <class TYPE, class ACE_LOCK>
-ACE_DLL_Singleton_T<TYPE, ACE_LOCK> *&
-ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::instance_i (void)
-{
- ACE_TRACE ("ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::instance_i");
-
-#if defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- // Pointer to the Singleton instance. This works around a bug with
- // G++ and it's (mis-)handling of templates and statics...
- static ACE_DLL_Singleton_T<TYPE, ACE_LOCK> *singleton_ = 0;
-
- return singleton_;
-#else
- return ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::singleton_;
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-}
-
-template <class TYPE, class ACE_LOCK> TYPE *
-ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::instance (void)
-{
- ACE_TRACE ("ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::instance");
-
- ACE_DLL_Singleton_T<TYPE, ACE_LOCK> *&singleton =
- ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::instance_i ();
-
- // Perform the Double-Check pattern...
- if (singleton == 0)
- {
- if (ACE_Object_Manager::starting_up () ||
- ACE_Object_Manager::shutting_down ())
- {
- // The program is still starting up, and therefore assumed
- // to be single threaded. There's no need to double-check.
- // Or, the ACE_Object_Manager instance has been destroyed,
- // so the preallocated lock is not available. Either way,
- // don't register for destruction with the
- // ACE_Object_Manager: we'll have to leak this instance.
-
- ACE_NEW_RETURN (singleton, (ACE_DLL_Singleton_T<TYPE, ACE_LOCK>),
- 0);
- }
- else
- {
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- // Obtain a lock from the ACE_Object_Manager. The pointer
- // is static, so we only obtain one per
- // ACE_Unmanaged_Singleton instantiation.
- static ACE_LOCK *lock = 0;
- if (ACE_Object_Manager::get_singleton_lock (lock) != 0)
- // Failed to acquire the lock!
- return 0;
-
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, *lock, 0);
-#endif /* ACE_MT_SAFE */
-
- if (singleton == 0)
- ACE_NEW_RETURN (singleton,
- (ACE_DLL_Singleton_T<TYPE, ACE_LOCK>),
- 0);
- }
- //ACE_REGISTER_FRAMEWORK_COMPONENT(ACE_DLL_Singleton<TYPE,ACE_LOCK>, singleton);
- ACE_Framework_Repository::instance ()->register_component
- (new ACE_Framework_Component_T<ACE_DLL_Singleton_T<TYPE, ACE_LOCK> > (singleton));
- }
-
- return &singleton->instance_;
-}
-
-template <class TYPE, class ACE_LOCK> void
-ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::close (void)
-{
- ACE_TRACE ("ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::close");
-
- ACE_DLL_Singleton_T<TYPE, ACE_LOCK> *&singleton =
- ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::instance_i ();
-
- delete singleton;
- singleton = 0;
-}
-
-template <class TYPE, class ACE_LOCK> void
-ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::close_singleton (void)
-{
- ACE_TRACE ("ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::close_singleton");
- ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::close ();
-}
-
-template <class TYPE, class ACE_LOCK> const ACE_TCHAR *
-ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::dll_name (void)
-{
- return this->instance ()->dll_name ();
-}
-
-template <class TYPE, class ACE_LOCK> const ACE_TCHAR *
-ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::name (void)
-{
- return this->instance ()->name ();
-}
-
-
-/**********************************************************************/
-
-template <class TYPE> const ACE_TCHAR*
-ACE_DLL_Singleton_Adapter_T<TYPE>::dll_name (void)
-{
- // @todo make this a constant somewhere (or it there already is one
- // then use it.
- return ACE_TEXT("ACE");
-}
-
-#endif /* ACE_SINGLETON_C */
diff --git a/ace/Singleton.h b/ace/Singleton.h
deleted file mode 100644
index 4f976f9d285..00000000000
--- a/ace/Singleton.h
+++ /dev/null
@@ -1,322 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Singleton.h
- *
- * $Id$
- *
- * @brief
- *
- * @author Tim Harrison <harrison@cs.wustl.edu>
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * @author Chris Lahey
- * @author Rich Christy
- * @author David Levine <levine@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_SINGLETON_H
-#define ACE_SINGLETON_H
-#include "ace/pre.h"
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Singleton
- *
- * @brief A Singleton Adapter uses the Adapter pattern to turn ordinary
- * classes into Singletons optimized with the Double-Checked
- * Locking optimization pattern.
- *
- * This implementation is a slight variation on the GoF
- * Singleton pattern. In particular, a single
- * <ACE_Singleton<TYPE, ACE_LOCK> > instance is allocated here,
- * not a <TYPE> instance. The reason for this is to allow
- * registration with the ACE_Object_Manager, so that the
- * Singleton can be cleaned up when the process exits. For this
- * scheme to work, a (static) cleanup() function must be
- * provided. ACE_Singleton provides one so that TYPE doesn't
- * need to.
- * If you want to make sure that only the singleton instance of
- * <T> is created, and that users cannot create their own
- * instances of <T>, do the following to class <T>:
- * (a) Make the constructor of <T> private (or protected)
- * (b) Make Singleton a friend of <T>
- * Here is an example:
- * @verbatim
- * class foo
- * {
- * friend class ACE_Singleton<foo, ACE_Null_Mutex>;
- * private:
- * foo () { cout << "foo constructed" << endl; }
- * ~foo () { cout << "foo destroyed" << endl; }
- * };
- * typedef ACE_Singleton<foo, ACE_Null_Mutex> FOO;
- * @endverbatim
- *
- * NOTE: the best types to use for ACE_LOCK are
- * ACE_Recursive_Thread_Mutex and ACE_Null_Mutex.
- * ACE_Recursive_Thread_Mutex should be used in multi-threaded
- * programs in which it is possible for more than one thread to
- * access the <ACE_Singleton<TYPE, ACE_LOCK>> instance.
- * ACE_Null_Mutex can be used otherwise. The reason that these
- * types of locks are best has to do with their allocation by
- * the ACE_Object_Manager. Single ACE_Recursive_Thread_Mutex
- * and ACE_Null_Mutex instances are used for all ACE_Singleton
- * instantiations. However, other types of locks are allocated
- * per ACE_Singleton instantiation.
- */
-template <class TYPE, class ACE_LOCK>
-class ACE_Singleton : public ACE_Cleanup
-{
-public:
- /// Global access point to the Singleton.
- static TYPE *instance (void);
-
- /// Cleanup method, used by <ace_cleanup_destroyer> to destroy the
- /// ACE_Singleton.
- virtual void cleanup (void *param = 0);
-
- /// Dump the state of the object.
- static void dump (void);
-
-protected:
- /// Default constructor.
- ACE_Singleton (void);
-
- /// Contained instance.
- TYPE instance_;
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- /// Pointer to the Singleton (ACE_Cleanup) instance.
- static ACE_Singleton<TYPE, ACE_LOCK> *singleton_;
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-
- /// Get pointer to the Singleton instance.
- static ACE_Singleton<TYPE, ACE_LOCK> *&instance_i (void);
-};
-
-/**
- * @class ACE_Unmanaged_Singleton
- *
- * @brief Same as ACE_Singleton, except does _not_ register with
- * ACE_Object_Manager for destruction.
- *
- * This version of ACE_Singleton can be used if, for example,
- * its DLL will be unloaded before the ACE_Object_Manager
- * destroys the instance. Unlike with ACE_Singleton, the
- * application is responsible for explicitly destroying the
- * instance after it is no longer needed (if it wants to avoid
- * memory leaks, at least). The close() static member function
- * must be used to explicitly destroy the Singleton.
- * Usage is the same as for ACE_Singleton, but note that if you
- * you declare a friend, the friend class must still be an
- * *ACE_Singleton*<T, [ACE_LOCK]>, not an ACE_Unmanaged_Singleton.
- */
-template <class TYPE, class ACE_LOCK>
-class ACE_Unmanaged_Singleton : public ACE_Singleton <TYPE, ACE_LOCK>
-{
-public:
- /// Global access point to the Singleton.
- static TYPE *instance (void);
-
- /// Explicitly delete the Singleton instance.
- static void close (void);
-
- /// Dump the state of the object.
- static void dump (void);
-
-protected:
- /// Default constructor.
- ACE_Unmanaged_Singleton (void);
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- /// Pointer to the Singleton (ACE_Cleanup) instance.
- static ACE_Unmanaged_Singleton<TYPE, ACE_LOCK> *singleton_;
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-
- /// Get pointer to the Singleton instance.
- static ACE_Unmanaged_Singleton<TYPE, ACE_LOCK> *&instance_i (void);
-};
-
-/**
- * @class ACE_TSS_Singleton
- *
- * @brief This class uses the Adapter pattern to turn ordinary classes
- * into Thread-specific Singletons optimized with the
- * Double-Checked Locking optimization pattern.
- *
- * This implementation is another variation on the GoF Singleton
- * pattern. In this case, a single <ACE_TSS_Singleton<TYPE,
- * LOCK> > instance is allocated here, not a <TYPE> instance.
- * Each call to the <instance> static method returns a Singleton
- * whose pointer resides in thread-specific storage. As with
- * ACE_Singleton, we use the ACE_Object_Manager so that the
- * Singleton can be cleaned up when the process exits. For this
- * scheme to work, a (static) cleanup() function must be
- * provided. ACE_Singleton provides one so that TYPE doesn't
- * need to.
- */
-template <class TYPE, class ACE_LOCK>
-class ACE_TSS_Singleton : public ACE_Cleanup
-{
-public:
- /// Global access point to the singleton.
- static TYPE *instance (void);
-
- /// Cleanup method, used by <ace_cleanup_destroyer> to destroy the
- /// singleton.
- virtual void cleanup (void *param = 0);
-
- /// Dump the state of the object.
- static void dump (void);
-
-protected:
- /// Default constructor.
- ACE_TSS_Singleton (void);
-
- /// Contained instance.
- ACE_TSS_TYPE (TYPE) instance_;
-
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_TSS_Singleton<TYPE,ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_TSS_Singleton (const ACE_TSS_Singleton<TYPE,ACE_LOCK> &))
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- /// Pointer to the Singleton (ACE_Cleanup) instance.
- static ACE_TSS_Singleton<TYPE, ACE_LOCK> *singleton_;
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-
- /// Get pointer to the TSS Singleton instance.
- static ACE_TSS_Singleton<TYPE, ACE_LOCK> *&instance_i (void);
-};
-
-/**
- * @class ACE_Unmanaged_TSS_Singleton
- *
- * @brief Same as ACE_TSS_Singleton, except does _not_ register with
- * ACE_Object_Manager for destruction.
- *
- * This version of ACE_TSS_Singleton can be used if, for example, its DLL will
- * be unloaded before the ACE_Object_Manager destroys the instance. Unlike with
- * ACE_Singleton, the application is responsible for explicitly destroying the
- * instance after it is no longer needed (if it wants to avoid memory leaks,
- * at least). The close() static member function must be used to explicitly
- * destroy the Singleton.
- */
-template <class TYPE, class ACE_LOCK>
-class ACE_Unmanaged_TSS_Singleton : public ACE_TSS_Singleton <TYPE, ACE_LOCK>
-{
-public:
- /// Global access point to the singleton.
- static TYPE *instance (void);
-
- /// Explicitly delete the singleton instance.
- static void close (void);
-
- /// Dump the state of the object.
- static void dump (void);
-
-protected:
- /// Default constructor.
- ACE_Unmanaged_TSS_Singleton (void);
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- /// Pointer to the Singleton (ACE_Cleanup) instance.
- static ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK> *singleton_;
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-
- /// Get pointer to the Singleton instance.
- static ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK> *&instance_i (void);
-};
-
-/**
- * @class ACE_DLL_Singleton_T
- *
- * @brief Same as ACE_Singleton, except that it registers for
- * destruction with the ACE_Framework_Repository instead of
- * with the ACE_Object_Manager directly.
- *
- * This version of ACE_Singleton should be used for singletons
- * that live in a dll loaded either directly by ACE_DLL or indirectly
- * by the ACE Service Configuration framework. Whenever ACE_DLL is ready
- * to actually unload the dll, ACE_DLL_Singleton based dlls associated
- * with that dll will be destroyed first. In fact, any singleton can
- * safely use ACE_DLL_Singleton, even those that don't live in dlls. In
- * that case, the singleton will be destroyed at normal program shutdown.
- *
- * The only additional requirement is that the contained class
- * export name() and dll_name() methods. See ACE_DLL_Singleton_Adapter_T
- * below for a convenient example of how to satisfy this
- * requirement for the dll_name().
- *
- * Usage is the same as for ACE_Singleton, but note that if you
- * you declare a friend, the friend class must still be an
- * *ACE_Singleton*<T, [ACE_LOCK]>, not an ACE_Unmanaged_Singleton.
- */
-template <class TYPE, class ACE_LOCK>
-class ACE_DLL_Singleton_T
-{
-public:
- //void cleanup (void *param = 0);
-
- /// Global access point to the Singleton.
- static TYPE *instance (void);
-
- /// Explicitly delete the Singleton instance.
- static void close (void);
-
- static void close_singleton (void);
-
- /// Dump the state of the object.
- static void dump (void);
-
- const ACE_TCHAR *dll_name (void);
-
- const ACE_TCHAR *name (void);
-
-protected:
- /// Default constructor.
- ACE_DLL_Singleton_T (void);
-
- /// Destructor.
- ~ACE_DLL_Singleton_T (void);
-
- /// Contained instance.
- TYPE instance_;
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- /// Pointer to the Singleton instance.
- static ACE_DLL_Singleton_T<TYPE, ACE_LOCK> *singleton_;
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-
- /// Get pointer to the singleton instance.
- static ACE_DLL_Singleton_T<TYPE, ACE_LOCK> *&instance_i (void);
-};
-
-template <class TYPE>
-class ACE_DLL_Singleton_Adapter_T : public TYPE
-{
-public:
- const ACE_TCHAR *dll_name (void);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Singleton.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Singleton.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Singleton.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_SINGLETON_H */
diff --git a/ace/Singleton.i b/ace/Singleton.i
deleted file mode 100644
index 12dfe1bdda3..00000000000
--- a/ace/Singleton.i
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Default constructors.
-//
-// Note: don't explicitly initialize "instance_", because TYPE may not
-// have a default constructor. Let the compiler figure it out . . .
-
-template <class TYPE, class ACE_LOCK> ACE_INLINE
-ACE_Singleton<TYPE, ACE_LOCK>::ACE_Singleton (void)
-{
-}
-
-template <class TYPE, class ACE_LOCK> ACE_INLINE
-ACE_Unmanaged_Singleton<TYPE, ACE_LOCK>::ACE_Unmanaged_Singleton (void)
-{
-}
-
-template <class TYPE, class ACE_LOCK> ACE_INLINE
-ACE_TSS_Singleton<TYPE, ACE_LOCK>::ACE_TSS_Singleton (void)
-{
-}
-
-template <class TYPE, class ACE_LOCK> ACE_INLINE
-ACE_Unmanaged_TSS_Singleton<TYPE, ACE_LOCK>::ACE_Unmanaged_TSS_Singleton (void)
-{
-}
-
-template <class TYPE, class ACE_LOCK> ACE_INLINE
-ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::ACE_DLL_Singleton_T (void)
-{
-}
-
-template <class TYPE, class ACE_LOCK>
-ACE_DLL_Singleton_T<TYPE, ACE_LOCK>::~ACE_DLL_Singleton_T (void)
-{
-}
diff --git a/ace/Sock_Connect.cpp b/ace/Sock_Connect.cpp
deleted file mode 100644
index 4c7caacee71..00000000000
--- a/ace/Sock_Connect.cpp
+++ /dev/null
@@ -1,1339 +0,0 @@
-// $Id$
-
-#include "ace/Sock_Connect.h"
-#include "ace/OS.h" // Needed to get the ifreq stuff
-#include "ace/INET_Addr.h"
-#include "ace/Log_Msg.h"
-#include "ace/Handle_Set.h"
-#include "ace/Auto_Ptr.h"
-#include "ace/SString.h"
-
-# if defined (ACE_HAS_GETIFADDRS)
-# include /**/ <ifaddrs.h>
-# endif /* ACE_HAS_GETIFADDRS */
-
-#if defined (VXWORKS)
-#include /**/ <inetLib.h>
-#include /**/ <netinet/in_var.h>
-extern "C" {
- extern struct in_ifaddr* in_ifaddr;
-}
-#endif /* VXWORKS */
-
-#if defined (ACE_HAS_WINCE)
-#include <Iphlpapi.h>
-#endif // ACE_HAS_WINCE
-
-#if defined (ACE_HAS_IPV6)
-# if defined (ACE_HAS_THREADS)
-# include "ace/Synch.h"
-# include "ace/Object_Manager.h"
-# endif /* ACE_HAS_THREADS */
-
-// Whether or not ipv6 is turned on in this box
-int ACE_Sock_Connect::ipv6_enabled_ = -1;
-#endif /* ACE_HAS_IPV6 */
-
-// This is a hack to work around a problem with Visual Age C++ 5 and 6 on AIX.
-// Without this, the compiler auto-instantiates the ACE_Auto_Array_Ptr for
-// ifreq (contained in this module) but only adds the #include for <net/if.h>
-// and not the one for <sys/socket.h> which is also needed. Although we
-// don't need the template defined here, it makes the compiler pull in
-// <sys/socket.h> and the build runs clean.
-#if defined (AIX) && defined (__IBMCPP__) && (__IBMCPP__ >= 500)
-# if (__IBMCPP__ >= 700)
-# error Recheck this hack to see if version 7 fixed it!
-# endif
-static ACE_Auto_Array_Ptr<sockaddr> force_compiler_to_include_socket_h;
-#endif /* AIX && __IBMCPP__ >= 500 */
-
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Sock_Connect.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_RCSID(ace, Sock_Connect, "$Id$")
-
-#if defined (ACE_WIN32) && \
- (!defined (ACE_HAS_WINSOCK2) \
- || (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 == 0)))
-
-static int
-get_reg_subkeys (const ACE_TCHAR *key,
- ACE_TCHAR *buffer,
- DWORD &buf_len)
-{
- HKEY hk;
- LONG rc = ACE_TEXT_RegOpenKeyEx (HKEY_LOCAL_MACHINE,
- key,
- 0,
- KEY_READ,
- &hk);
-
- if (rc != ERROR_SUCCESS)
- return -1;
-
- ACE_TCHAR subkeyname[ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1];
- DWORD subkeyname_len = ACE_MAX_FULLY_QUALIFIED_NAME_LEN;
- FILETIME update_dummy;
-
- DWORD total = 0;
-
- for (int i = 0;
- (rc = ACE_TEXT_RegEnumKeyEx (hk, i,
- subkeyname,
- &subkeyname_len,
- 0, 0, 0,
- &update_dummy)) != ERROR_NO_MORE_ITEMS;
- ++i)
- {
- if (subkeyname_len < buf_len - total)
- {
- ACE_OS::strcpy(buffer + total, subkeyname);
- total += subkeyname_len + 1;
- // Reset: was changed by RegEnumKeyEx call.
- subkeyname_len = ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1;
- }
- else
- return -1;
- }
-
- buf_len = total;
-
- ::RegCloseKey (hk);
- return 0;
-}
-
-// Return value in buffer for a key/name pair from the Windows
-// Registry up to buf_len size.
-// If all_subkeys == 1, look for name under all subkeys of key.
-
-static int
-get_reg_value (const ACE_TCHAR *key,
- const ACE_TCHAR *name,
- ACE_TCHAR *buffer,
- DWORD &buf_len,
- int all_subkeys = 0)
-{
- HKEY hk;
- DWORD buf_type;
- LONG rc = ACE_TEXT_RegOpenKeyEx (HKEY_LOCAL_MACHINE,
- key,
- 0,
- KEY_READ,
- &hk);
-
- if (rc != ERROR_SUCCESS)
- // print_error_string(ACE_LIB_TEXT ("RegOpenKeyEx"), rc);
- return -1;
-
- if (all_subkeys)
- {
- ACE_TCHAR ifname[ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1];
- DWORD ifname_len = ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1;
- FILETIME update_dummy;
-
- DWORD total = 0;
- DWORD size = buf_len;
-
- for (int i = 0;
- (rc = ACE_TEXT_RegEnumKeyEx (hk, i, ifname, &ifname_len,
- 0, 0, 0,
- &update_dummy)) != ERROR_NO_MORE_ITEMS;
- ++i)
- {
- HKEY ifkey;
- if (rc != ERROR_SUCCESS
- || ACE_TEXT_RegOpenKeyEx (hk, ifname, 0,
- KEY_READ, &ifkey) != ERROR_SUCCESS)
- continue;
-
- if (ACE_TEXT_RegQueryValueEx (ifkey, name, 0, 0,
- (u_char*) (buffer + total),
- &size) != ERROR_SUCCESS)
- {
- RegCloseKey(ifkey);
- continue;
- }
- else
- {
- total += size;
- size = buf_len - total;
- }
- // Needs to be reset.
- ifname_len = ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1;
- }
-
- if (total == 0)
- {
- ::RegCloseKey (hk);
- return -2;
- }
- else
- {
- buf_len = total;
- }
- }
- else
- {
-
- rc = ACE_TEXT_RegQueryValueEx (hk,
- name,
- 0,
- &buf_type,
- (u_char *) buffer,
- &buf_len);
- if (rc != ERROR_SUCCESS)
- {
- // print_error_string(ACE_LIB_TEXT ("RegEnumKeyEx"), rc);
- RegCloseKey (hk);
- return -2;
- }
- }
-
- ::RegCloseKey (hk);
- return 0;
-}
-
-enum ACE_WINDOWS_VERSION {
- ACE_WINDOWS_IS_UNKNOWN,
- ACE_WINDOWS_IS_WIN95,
- ACE_WINDOWS_IS_WIN98,
- ACE_WINDOWS_IS_WINME,
- ACE_WINDOWS_IS_WINNT,
- ACE_WINDOWS_IS_WIN2K,
- ACE_WINDOWS_IS_WINCE
-};
-
-static ACE_WINDOWS_VERSION
-get_windows_version()
-{
- OSVERSIONINFO vinfo;
- vinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- if (::GetVersionEx(&vinfo) == 0)
- {
- return ACE_WINDOWS_IS_UNKNOWN;
- }
-
- switch (vinfo.dwPlatformId)
- {
- case VER_PLATFORM_WIN32_NT:
- if (vinfo.dwMajorVersion <= 4)
- return ACE_WINDOWS_IS_WINNT;
- else
- return ACE_WINDOWS_IS_WIN2K;
- case VER_PLATFORM_WIN32_WINDOWS:
- if (vinfo.dwMajorVersion == 4)
- {
- if (vinfo.dwMinorVersion == 0)
- return ACE_WINDOWS_IS_WIN95;
- else if (vinfo.dwMinorVersion == 10)
- return ACE_WINDOWS_IS_WIN98;
- else if (vinfo.dwMinorVersion == 90)
- return ACE_WINDOWS_IS_WINME;
- }
- case VER_PLATFORM_WIN32_CE:
- if (vinfo.dwMajorVersion >= 3) {
- return ACE_WINDOWS_IS_WINCE;
- }
- else {
- return ACE_WINDOWS_IS_UNKNOWN;
- }
- // If no match we fall throu.
- default:
- return ACE_WINDOWS_IS_UNKNOWN;
- }
-}
-
-#endif //(ACE_WIN32) && !(ACE_HAS_WINSOCK2) || (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 == 0)
-
-// Bind socket to an unused port.
-
-int
-ACE_Sock_Connect::bind_port (ACE_HANDLE handle,
- ACE_UINT32 ip_addr)
-{
- ACE_TRACE ("ACE_Sock_Connect::bind_port");
-
- ACE_INET_Addr addr ((u_short)0, ip_addr);
-
-#if !defined (ACE_LACKS_WILDCARD_BIND)
- // The OS kernel should select a free port for us.
- return ACE_OS::bind (handle,
- (sockaddr*)addr.get_addr(),
- addr.get_size());
-#else
- static u_short upper_limit = ACE_MAX_DEFAULT_PORT;
- int round_trip = upper_limit;
- int lower_limit = IPPORT_RESERVED;
-
- // We have to select the port explicitly.
-
- for (;;)
- {
- addr.set((u_short)upper_limit,ip_addr);
-
- if (ACE_OS::bind (handle,
- (sockaddr*)addr.get_addr()
- addr.get_size()) >= 0)
- {
-#if defined (ACE_WIN32)
- upper_limit--;
-#endif /* ACE_WIN32 */
- return 0;
- }
- else if (errno != EADDRINUSE)
- return -1;
- else
- {
- upper_limit--;
-
- // Wrap back around when we reach the bottom.
- if (upper_limit <= lower_limit)
- upper_limit = ACE_MAX_DEFAULT_PORT;
-
- // See if we have already gone around once!
- if (upper_limit == round_trip)
- {
- errno = EAGAIN;
- return -1;
- }
- }
- }
-#endif /* ACE_HAS_WILDCARD_BIND */
-}
-
-int
-ACE_Sock_Connect::get_bcast_addr (ACE_UINT32 &bcast_addr,
- const ACE_TCHAR *host_name,
- ACE_UINT32 host_addr,
- ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Sock_Connect::get_bcast_addr");
-
-#if !defined(ACE_WIN32)
- ACE_HANDLE s = handle;
-
- if (s == ACE_INVALID_HANDLE)
- s = ACE_OS::socket (AF_INET, SOCK_STREAM, 0);
-
- if (s == ACE_INVALID_HANDLE)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_OS::socket")),
- -1);
-
- struct ifconf ifc;
- char buf[BUFSIZ];
-
- ifc.ifc_len = sizeof buf;
- ifc.ifc_buf = buf;
-
- // Get interface structure and initialize the addresses using UNIX
- // techniques
-#if defined (AIX)
- int cmd = CSIOCGIFCONF;
-#else
- int cmd = SIOCGIFCONF;
-#endif /* AIX */
- if (ACE_OS::ioctl (s, cmd, (char *) &ifc) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Sock_Connect::get_bcast_addr:")
- ACE_LIB_TEXT ("ioctl (get interface configuration)")),
- -1);
-
- struct ifreq *ifr = ifc.ifc_req;
-
- struct sockaddr_in ip_addr;
-
- // Get host ip address if necessary.
- if (host_name)
- {
- hostent *hp = ACE_OS::gethostbyname (host_name);
-
- if (hp == 0)
- return -1;
- else
-#if !defined(_UNICOS)
- ACE_OS::memcpy ((char *) &ip_addr.sin_addr.s_addr,
- (char *) hp->h_addr,
- hp->h_length);
-#else /* _UNICOS */
- {
- ACE_UINT64 haddr; // a place to put the address
- char * haddrp = (char *) &haddr; // convert to char pointer
- ACE_OS::memcpy(haddrp,(char *) hp->h_addr,hp->h_length);
- ip_addr.sin_addr.s_addr = haddr;
- }
-#endif /* ! _UNICOS */
- }
- else
- {
- ACE_OS::memset ((void *) &ip_addr, 0, sizeof ip_addr);
-#if !defined(_UNICOS)
- ACE_OS::memcpy ((void *) &ip_addr.sin_addr,
- (void*) &host_addr,
- sizeof ip_addr.sin_addr);
-#else /* _UNICOS */
- ip_addr.sin_addr.s_addr = host_addr; // just copy to the bitfield
-#endif /* ! _UNICOS */
- }
-
- for (int n = ifc.ifc_len / sizeof (struct ifreq);
- n > 0;
-#if !defined (CHORUS_4) && !defined (__FreeBSD__)
- n--, ifr++)
-#else
- n--,
- ((ifr->ifr_addr.sa_len <= sizeof (struct sockaddr)) ?
- ifr++ :
- ifr = (struct ifreq *)
- (ifr->ifr_addr.sa_len + (caddr_t) &ifr->ifr_addr)))
-#endif /* !CHORUS_4 && !__FreeBSD__ */
- {
- struct sockaddr_in if_addr;
-
- // Compare host ip address with interface ip address.
- ACE_OS::memcpy (&if_addr,
- &ifr->ifr_addr,
- sizeof if_addr);
-
- if (ip_addr.sin_addr.s_addr != if_addr.sin_addr.s_addr)
- continue;
-
- if (ifr->ifr_addr.sa_family != AF_INET)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Sock_Connect::get_bcast_addr:")
- ACE_LIB_TEXT ("Not AF_INET")));
- continue;
- }
-
- struct ifreq flags = *ifr;
- struct ifreq if_req = *ifr;
-
- if (ACE_OS::ioctl (s, SIOCGIFFLAGS, (char *) &flags) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Sock_Connect::get_bcast_addr:")
- ACE_LIB_TEXT (" ioctl (get interface flags)")));
- continue;
- }
-
- if (ACE_BIT_DISABLED (flags.ifr_flags, IFF_UP))
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Sock_Connect::get_bcast_addr:")
- ACE_LIB_TEXT ("Network interface is not up")));
- continue;
- }
-
- if (ACE_BIT_ENABLED (flags.ifr_flags, IFF_LOOPBACK))
- continue;
-
- if (ACE_BIT_ENABLED (flags.ifr_flags, IFF_BROADCAST))
- {
- if (ACE_OS::ioctl (s,
- SIOCGIFBRDADDR,
- (char *) &if_req) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Sock_Connect::get_bcast_addr:")
- ACE_LIB_TEXT ("ioctl (get broadaddr)")));
- else
- {
- ACE_OS::memcpy (ACE_reinterpret_cast(sockaddr_in *, &ip_addr),
- ACE_reinterpret_cast(sockaddr_in *, &if_req.ifr_broadaddr),
- sizeof if_req.ifr_broadaddr);
-
- ACE_OS::memcpy ((void *) &host_addr,
- (void *) &ip_addr.sin_addr,
- sizeof host_addr);
-
- if (handle == ACE_INVALID_HANDLE)
- ACE_OS::close (s);
-
- bcast_addr = host_addr;
- return 0;
- }
- }
- else
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Sock_Connect::get_bcast_addr:")
- ACE_LIB_TEXT ("Broadcast is not enable for this interface.")));
-
- if (handle == ACE_INVALID_HANDLE)
- ACE_OS::close (s);
-
- bcast_addr = host_addr;
- return 0;
- }
-
- return 0;
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (host_addr);
- ACE_UNUSED_ARG (host_name);
- bcast_addr = (ACE_UINT32 (INADDR_BROADCAST));
- return 0;
-#endif /* !ACE_WIN32 */
-}
-
-// return an array of all configured IP interfaces on this host, count
-// rc = 0 on success (count == number of interfaces else -1 caller is
-// responsible for calling delete [] on parray
-
-int
-ACE_Sock_Connect::get_ip_interfaces (size_t &count,
- ACE_INET_Addr *&addrs)
-{
- ACE_TRACE ("ACE_Sock_Connect::get_ip_interfaces");
-
- count = 0;
- addrs = 0;
-
-#if defined (ACE_WIN32)
- // Win32 can do this by a simple API call if MSVC 5 or later is the compiler.
- // Not sure if Borland supplies the needed header/lib, but it might.
-# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- int i, n_interfaces, status;
-
- INTERFACE_INFO info[64];
- SOCKET sock;
-
- // Get an (overlapped) DGRAM socket to test with
- sock = socket (AF_INET, SOCK_DGRAM, 0);
- if (sock == INVALID_SOCKET)
- return -1;
-
- DWORD bytes;
- status = WSAIoctl(sock,
- SIO_GET_INTERFACE_LIST,
- 0,
- 0,
- info,
- sizeof(info),
- &bytes,
- 0,
- 0);
- closesocket (sock);
- if (status == SOCKET_ERROR)
- return -1;
-
- n_interfaces = bytes / sizeof(INTERFACE_INFO);
- if (n_interfaces == 0)
- return 0;
-
- ACE_NEW_RETURN (addrs,
- ACE_INET_Addr[n_interfaces],
- -1);
-
- // Now go through the list and transfer the good ones to the list of
- // because they're down or don't have an IP address.
- for (count = 0, i = 0; i < n_interfaces; i++)
- {
- LPINTERFACE_INFO lpii;
- struct sockaddr_in *addrp;
-
- lpii = &info[i];
- if (!(lpii->iiFlags & IFF_UP))
- continue;
-
- // We assume IPv4 addresses here
- addrp = ACE_reinterpret_cast(struct sockaddr_in *, &(lpii->iiAddress));
- if (addrp->sin_addr.s_addr == INADDR_ANY)
- continue;
-
- // Set the address for the caller.
- addrs[count].set(addrp, sizeof(sockaddr_in));
- ++count;
- }
-
- if (count == 0)
- {
- delete [] addrs;
- addrs = 0;
- }
-
- return 0;
-
-#else /* Winsock 2 && MSVC 5 or later */
-
- // PharLap ETS has kernel routines to rummage through the device
- // configs and extract the interface info. Sort of a pain in the
- // butt, but better than trying to figure out where it moved to in
- // the registry... :-|
-# if defined (ACE_HAS_PHARLAP)
-# if !defined (ACE_HAS_PHARLAP_RT)
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_PHARLAP_RT */
-
- // Locate all of the IP devices in the system, saving a DEVHANDLE
- // for each. Then allocate the ACE_INET_Addrs needed and fetch all
- // the IP addresses. To locate the devices, try the available
- // device name roots and increment the device number until the
- // kernel says there are no more of that type.
- const size_t ACE_MAX_ETS_DEVICES = 64; // Arbitrary, but should be enough.
- DEVHANDLE ip_dev[ACE_MAX_ETS_DEVICES];
- EK_TCPIPCFG *devp;
- size_t i, j;
- ACE_TCHAR dev_name[16];
-
- count = 0;
- for (i = 0; count < ACE_MAX_ETS_DEVICES; i++, ++count)
- {
- // Ethernet.
- ACE_OS::sprintf (dev_name,
- "ether%d",
- i);
- ip_dev[count] = EtsTCPGetDeviceHandle (dev_name);
- if (ip_dev[count] == 0)
- break;
- }
- for (i = 0; count < ACE_MAX_ETS_DEVICES; i++, ++count)
- {
- // SLIP.
- ACE_OS::sprintf (dev_name,
- "sl%d",
- i);
- ip_dev[count] = EtsTCPGetDeviceHandle (dev_name);
- if (ip_dev[count] == 0)
- break;
- }
- for (i = 0; count < ACE_MAX_ETS_DEVICES; i++, ++count)
- {
- // PPP.
- ACE_OS::sprintf (dev_name,
- "ppp%d",
- i);
- ip_dev[count] = EtsTCPGetDeviceHandle (dev_name);
- if (ip_dev[count] == 0)
- break;
- }
-
- if (count > 0)
- ACE_NEW_RETURN (addrs,
- ACE_INET_Addr[count],
- -1);
- else
- addrs = 0;
-
- for (i = 0, j = 0; i < count; i++)
- {
- devp = EtsTCPGetDeviceCfg (ip_dev[i]);
- if (devp != 0)
- {
- addrs[j].set (0,
- devp->nwIPAddress,
- 0); // Already in net order.
- j++;
- }
- // There's no call to close the DEVHANDLE.
- }
-
- count = j;
- if (count == 0 && addrs != 0)
- {
- delete [] addrs;
- addrs = 0;
- }
-
- return 0;
-
-# else /* ACE_HAS_PHARLAP */
-
-# if defined (ACE_HAS_WINCE)
-
- // CE does not support Winsock2 (yet) and has many variations on registry setting.
- // Thus, it is better to use GetAdapterInfo defined in iphlpapi.h, which is a
- // standard library for CE. iphlpapi.lib should come with the CE SDK and should
- // be included in the machine.
- // Note: This call is supported only in WinCE 3.0 or later. Also, even though
- // "iphlpapi.dll" may not be found in the /Windows directory on some machines,
- // it will (must) support iphlpapi API's because it is part of the standard
- // library for WinCE.
-
- IP_ADAPTER_INFO* adapterInfo = 0;
- ULONG sz = 0;
- DWORD result = ::GetAdaptersInfo(adapterInfo, &sz);
-
- while (result != ERROR_SUCCESS)
- {
- switch (result)
- {
- case ERROR_BUFFER_OVERFLOW: // MUST come here at the first run because sz = 0
- adapterInfo = (PIP_ADAPTER_INFO)(new char[sz]); // I know, I know, this is ugly.
-
- result = ::GetAdaptersInfo(adapterInfo, &sz);
- if (result == ERROR_SUCCESS) {
- const char* invalid_IP = "0.0.0.0";
-
- // find out how many interfaces are there
- {
- IP_ADAPTER_INFO* tempAdapterInfo = adapterInfo;
- int n_interfaces = 0;
- while (tempAdapterInfo != 0) {
- IP_ADDR_STRING* addr = &tempAdapterInfo->IpAddressList;
- while (addr != 0) {
- if (ACE_OS::strcmp(addr->IpAddress.String, invalid_IP) != 0) {
- // skip invalid IP address
- ++n_interfaces;
- }
- addr = addr->Next;
- }
- tempAdapterInfo = tempAdapterInfo->Next;
- }
- if (n_interfaces == 0) {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\nACE_Sock_Connect::get_ip_interfaces - ")
- ACE_LIB_TEXT ("No adapter found.")),
- -1);
- }
-
- ACE_NEW_RETURN (addrs, ACE_INET_Addr[n_interfaces], -2);
- }
-
- // find out valid IP addresses and put them into the addr
- while (adapterInfo != 0) {
- IP_ADDR_STRING* addr = &adapterInfo->IpAddressList;
- while (addr != 0) {
- if (ACE_OS::strcmp(addr->IpAddress.String, invalid_IP) != 0) {
- addrs[count++] = ACE_INET_Addr((u_short) 0, addr->IpAddress.String);
- }
- addr = addr->Next;
- }
- adapterInfo = adapterInfo->Next;
- }
- }
- // if second GetAdaptersInfo call fails, let other cases take care of it
- break;
-
- case ERROR_NOT_SUPPORTED: // OS does not support this method
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\nACE_Sock_Connect::get_ip_interfaces - ")
- ACE_LIB_TEXT ("This version of WinCE does not support GetAdapterInfo.")),
- -1);
- break;
-
- case ERROR_NO_DATA: // no adapter installed
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\nACE_Sock_Connect::get_ip_interfaces - ")
- ACE_LIB_TEXT ("No network adapter installed.")),
- -1);
- break;
-
- case ERROR_INVALID_PARAMETER:
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\nACE_Sock_Connect::get_ip_interfaces - ")
- ACE_LIB_TEXT ("Invalid parameter.")),
- -1);
- break;
-
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\nACE_Sock_Connect::get_ip_interfaces - ")
- ACE_LIB_TEXT ("Adapter info access permission denied.")),
- -1);
- break;
- }
- }
-
- delete [] adapterInfo;
- return 0;
-
-# endif // ACE_HAS_WINCE
-
- //
- // No Winsock2.
- // Get interface information from the registry.
- // As this information is in different locations of the registry
- // on different windows versions, we need to ask at runtime.
- //
-
- // Normally we have to look under one key for interfaces name,
- // and under a second key for ip address of those interfaces.
- // Exact values and the way to search depend on windows version.
-
- // This is the first key we have to look for.
- const ACE_TCHAR *BASE_KEY1;
-
- // This is the name we have to look for under the first key.
- // If this is == 0, we need to look for subkeys, not the values from
- // a name.
- const ACE_TCHAR *KEY1_NAME_ID;
-
- // The second key is normally constructed concatenating a prefix,
- // the value found on KEY1_NAME_ID stripped from the first s_offset
- // characters, and a suffix.
- unsigned int s_offset;
- const ACE_TCHAR *PREFFIX_KEY2;
- const ACE_TCHAR *SUFFIX_KEY2;
-
- // If != 0, look for the value of KEY1_NAME_ID not directly under
- // BASE_KEY1, but on every subkey of BASE_KEY1.
- int use_subkeys;
-
- // When we search for IP Addresses below, we look for a key with a
- // name in this array (null terminated).
- // For some windows versions, there is an
- // aditional key for ppp interfaces that will be stored on [1].
- const ACE_TCHAR *IPADDR_NAME_ID[3] = {
- ACE_LIB_TEXT ("IPAddress"), 0, 0
- };
-
- // Skip addresses that match this.
- const ACE_TCHAR *INVALID_TCPIP_DEVICE_ADDR = ACE_LIB_TEXT ("0.0.0.0");
-
- ACE_WINDOWS_VERSION winver = get_windows_version();
-
- switch (winver)
- {
- case ACE_WINDOWS_IS_WINNT:
- PREFFIX_KEY2 = ACE_LIB_TEXT ("SYSTEM\\CurrentControlSet\\Services\\");
- BASE_KEY1 =
- ACE_LIB_TEXT ("SYSTEM\\CurrentControlSet\\Services")
- ACE_LIB_TEXT ("\\Tcpip\\Linkage");
- SUFFIX_KEY2 = ACE_LIB_TEXT ("\\Parameters\\Tcpip");
- KEY1_NAME_ID = ACE_LIB_TEXT ("Bind");
- s_offset = 8;
- use_subkeys = 0;
- break;
-
- case ACE_WINDOWS_IS_WIN2K:
- BASE_KEY1 =
- ACE_LIB_TEXT ("SYSTEM\\CurrentControlSet\\Services")
- ACE_LIB_TEXT ("\\Tcpip\\Parameters\\Interfaces\\");
- PREFFIX_KEY2 = BASE_KEY1;
- SUFFIX_KEY2 = ACE_LIB_TEXT ("");
- KEY1_NAME_ID = 0;
- s_offset = 0;
- use_subkeys = 1;
- // PPP.
- IPADDR_NAME_ID[1] = ACE_LIB_TEXT ("DhcpIPAddress");
- break;
-
- // If ACE_HAS_WINNT4 we can safely assume the ones below will
- // not be needed.
-# if !defined(ACE_HAS_WINNT4) || (ACE_HAS_WINNT4 == 0)
- case ACE_WINDOWS_IS_WIN95:
- case ACE_WINDOWS_IS_WIN98:
- case ACE_WINDOWS_IS_WINME:
- PREFFIX_KEY2 =
- ACE_LIB_TEXT ("SYSTEM\\CurrentControlSet\\Services\\Class\\");
- BASE_KEY1 = ACE_LIB_TEXT ("Enum\\Network\\MSTCP");
- SUFFIX_KEY2 = ACE_LIB_TEXT ("");
- KEY1_NAME_ID = ACE_LIB_TEXT ("Driver");
- use_subkeys = 1;
- s_offset = 0;
- break;
-# endif /* !ACE_HAS_WINNT4 */
-
- default:
- return -1;
- }
-
- ACE_TCHAR raw_buffer[ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1];
- DWORD raw_buflen = ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1;
-
- if (KEY1_NAME_ID == 0)
- {
- if (::get_reg_subkeys (BASE_KEY1,
- raw_buffer,
- raw_buflen))
- return -1;
- }
- else
- {
- if (::get_reg_value (BASE_KEY1,
- KEY1_NAME_ID,
- raw_buffer,
- raw_buflen,
- use_subkeys))
- return -1;
- }
- // return buffer contains 0 delimited strings
-
- ACE_Tokenizer dev_names (raw_buffer);
- dev_names.delimiter (ACE_LIB_TEXT ('\0'));
- int n_interfaces = 0;
-
- // Count the number of interfaces
- while (dev_names.next () != 0)
- n_interfaces ++;
-
- // case 1. no interfaces present, empty string? OS version change?
- if (n_interfaces == 0)
- return 0;
-
- ACE_NEW_RETURN (addrs,
- ACE_INET_Addr[n_interfaces],
- -2);
-
- ACE_TCHAR buffer[ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1];
- DWORD buf_len = ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1;
-
- count = 0;
- for (int i = 0; i < n_interfaces; i++)
- {
- for (const ACE_TCHAR **ipaddr_name_id = IPADDR_NAME_ID;
- *ipaddr_name_id != 0;
- ++ipaddr_name_id)
- {
- // a. construct name to access IP Address for this interface
- ACE_TString ifdevkey (PREFFIX_KEY2);
- ACE_TString the_dev = dev_names.next ();
-
- if (the_dev.length() < s_offset)
- {
- return -3; // Something's wrong
- }
-
- // rest of string from offset.
- the_dev = the_dev.substring (s_offset);
-
- ifdevkey += the_dev;
- ifdevkey += SUFFIX_KEY2;
-
- // b. extract value
- // Gets overwritten on each call
- buf_len = sizeof (buffer);
- if (get_reg_value (ifdevkey.fast_rep (),
- *ipaddr_name_id,
- buffer,
- buf_len))
- continue; // Skip unknown devices.
-
- if (ACE_OS::strcmp (buffer,
- INVALID_TCPIP_DEVICE_ADDR) == 0)
- continue; // Don't count this device
-
- // c. store in hostinfo object array and up the counter
- addrs[count++] =
- ACE_INET_Addr ((u_short) 0, buffer);
- }
- }
-
- return 0;
-# endif /* ACE_HAS_PHARLAP */
-# endif /* Winsock 2 && MSVC 5 or later */
-
-#elif defined (ACE_HAS_GETIFADDRS)
- // Take advantage of the BSD getifaddrs function that simplifies
- // access to connected interfaces.
- struct ifaddrs *ifap;
- struct ifaddrs *p_if;
-
- if (::getifaddrs (&ifap) != 0)
- return -1;
-
- // Count number of interfaces.
- size_t num_ifs = 0;
- for (p_if = ifap; p_if != 0; p_if = p_if->ifa_next)
- ++num_ifs;
-
- // Now create and initialize output array.
- ACE_NEW_RETURN (addrs,
- ACE_INET_Addr[num_ifs],
- -1); // caller must free
-
- // Pull the address out of each INET interface. Not every interface
- // is for IP, so be careful to count properly. When setting the
- // INET_Addr, note that the 3rd arg (0) says to leave the byte order
- // (already in net byte order from the interface structure) as is.
- count = 0;
-
- for (p_if = ifap;
- p_if != 0;
- p_if = p_if->ifa_next)
- {
- if (p_if->ifa_addr &&
- p_if->ifa_addr->sa_family == AF_INET)
- {
- struct sockaddr_in *addr =
- ACE_reinterpret_cast(sockaddr_in *, p_if->ifa_addr);
-
- // Sometimes the kernel returns 0.0.0.0 as the interface
- // address, skip those...
- if (addr->sin_addr.s_addr != 0)
- {
- addrs[count].set ((u_short) 0,
- addr->sin_addr.s_addr,
- 0);
- count++;
- }
- }
- }
-
- ::freeifaddrs (ifap);
-
- return 0;
-
-#elif defined (__unix) || defined (__unix__) || defined (__Lynx__) || defined (_AIX)
- // COMMON (SVR4 and BSD) UNIX CODE
-
- size_t num_ifs;
-
- // Call specific routine as necessary.
- ACE_HANDLE handle = get_handle();
-
- if (handle == ACE_INVALID_HANDLE)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Sock_Connect::get_ip_interfaces:open")),
- -1);
- if (ACE_Sock_Connect::count_interfaces (handle, num_ifs))
- {
- ACE_OS::close (handle);
- return -1;
- }
-
- // ioctl likes to have an extra ifreq structure to mark the end of
- // what it returned, so increase the num_ifs by one.
- ++num_ifs;
-
- struct ifreq *ifs = 0;
- ACE_NEW_RETURN (ifs,
- struct ifreq[num_ifs],
- -1);
- ACE_OS::memset (ifs, 0, num_ifs * sizeof (struct ifreq));
-
- ACE_Auto_Array_Ptr<struct ifreq> p_ifs (ifs);
-
- if (p_ifs.get() == 0)
- {
- ACE_OS::close (handle);
- errno = ENOMEM;
- return -1;
- }
-
- struct ifconf ifcfg;
- ACE_OS::memset (&ifcfg, 0, sizeof (struct ifconf));
- ifcfg.ifc_req = p_ifs.get ();
- ifcfg.ifc_len = num_ifs * sizeof (struct ifreq);
-
-#if defined (AIX)
- int cmd = CSIOCGIFCONF;
-#else
- int cmd = SIOCGIFCONF;
-#endif /* AIX */
- if (ACE_OS::ioctl (handle,
- cmd,
- (caddr_t) &ifcfg) == -1)
- {
- ACE_OS::close (handle);
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("get_ip_interfaces:")
- ACE_LIB_TEXT ("ioctl - SIOCGIFCONF failed")),
- -1);
- }
-
- ACE_OS::close (handle);
-
- // Now create and initialize output array.
-
- ACE_NEW_RETURN (addrs,
- ACE_INET_Addr[num_ifs],
- -1); // caller must free
-
- struct ifreq *pcur = p_ifs.get ();
- // Pull the address out of each INET interface. Not every interface
- // is for IP, so be careful to count properly. When setting the
- // INET_Addr, note that the 3rd arg (0) says to leave the byte order
- // (already in net byte order from the interface structure) as is.
- count = 0;
-
- for (size_t i = 0;
- i < num_ifs;
- i++)
- {
- if (pcur->ifr_addr.sa_family == AF_INET)
- {
-#if !defined(_UNICOS)
- struct sockaddr_in *addr =
- ACE_reinterpret_cast(sockaddr_in *, &pcur->ifr_addr);
-
- // Sometimes the kernel returns 0.0.0.0 as the interface
- // address, skip those...
- if (addr->sin_addr.s_addr != 0)
- {
- addrs[count].set ((u_short) 0,
- addr->sin_addr.s_addr,
- 0);
- count++;
- }
-#else /* ! _UNICOS */
- // need to explicitly copy on the Cray, since the bitfields kinda
- // screw things up here
- struct sockaddr_in inAddr;
-
- inAddr.sin_len = pcur->ifr_addr.sa_len;
- inAddr.sin_family = pcur->ifr_addr.sa_family;
- memcpy((void *)&(inAddr.sin_addr),
- (const void *)&(pcur->ifr_addr.sa_data[8]),
- sizeof(struct in_addr));
-
- if (inAddr.sin_addr.s_addr != 0)
- {
- addrs[count].set(&inAddr, sizeof(struct sockaddr_in));
- count++;
- }
-#endif /* ! _UNICOS */
- }
-
-#if !defined (CHORUS_4) && !defined (__FreeBSD__)
- pcur++;
-#else
- if (pcur->ifr_addr.sa_len <= sizeof (struct sockaddr))
- {
- pcur++;
- }
- else
- {
- pcur = (struct ifreq *)
- (pcur->ifr_addr.sa_len + (caddr_t) &pcur->ifr_addr);
- }
-#endif /* !CHORUS_4 && !__FreeBSD__ */
- }
- return 0;
-#elif defined (VXWORKS)
- count = 0;
- // Loop through each address structure
- for (struct in_ifaddr* ia = in_ifaddr; ia != 0; ia = ia->ia_next)
- {
- ++count;
- }
-
- // Now create and initialize output array.
- ACE_NEW_RETURN (addrs,
- ACE_INET_Addr[count],
- -1); // caller must free
- count = 0;
- for (struct in_ifaddr* ia = in_ifaddr; ia != 0; ia = ia->ia_next)
- {
- struct ifnet* ifp = ia->ia_ifa.ifa_ifp;
- if (ifp != 0)
- {
- // Get the current interface name
- char interface[64];
- ACE_OS::sprintf(interface, "%s%d", ifp->if_name, ifp->if_unit);
-
- // Get the address for the current interface
- char address [INET_ADDR_LEN];
- STATUS status = ifAddrGet(interface, address);
-
- if (status == OK)
- {
- // Concatenate a ':' at the end. This is because in
- // ACE_INET_Addr::string_to_addr, the ip_address is
- // obtained using ':' as the delimiter. Since, using
- // ifAddrGet(), we just get the IP address, I am adding
- // a ":" to get with the general case.
- ACE_OS::strcat (address, ":");
- addrs[count].set (address);
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE::get_ip_interface failed\n"),
- ACE_LIB_TEXT ("Couldnt get the IP Address\n")),
- -1);
- }
- ++count;
- }
- }
- return 0;
-#else
- ACE_UNUSED_ARG (count);
- ACE_UNUSED_ARG (addrs);
- ACE_NOTSUP_RETURN (-1);; // no implementation
-#endif /* ACE_WIN32 */
-}
-
-// Helper routine for get_ip_interfaces, differs by UNIX platform so
-// put into own subroutine. perform some ioctls to retrieve ifconf
-// list of ifreq structs.
-
-int
-ACE_Sock_Connect::count_interfaces (ACE_HANDLE handle, size_t &how_many)
-{
-#if defined (sparc) && defined (SIOCGIFNUM)
- int tmp_how_many; // For 64 bit Solaris
- if (ACE_OS::ioctl (handle,
- SIOCGIFNUM,
- (caddr_t) &tmp_how_many) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Sock_Connect::get_ip_interfaces:")
- ACE_LIB_TEXT ("ioctl - SIOCGIFNUM failed")),
- -1);
- how_many = (size_t) tmp_how_many;
- return 0;
-#elif defined (ACE_HAS_GETIFADDRS)
- ACE_UNUSED_ARG (handle);
-
- struct ifaddrs *ifap;
- struct ifaddrs *p_if;
-
- if (::getifaddrs (&ifap) != 0)
- return -1;
-
- // Count number of interfaces.
- size_t num_ifs = 0;
- for (p_if = ifap; p_if != 0; p_if = p_if->ifa_next)
- ++num_ifs;
-
- ::freeifaddrs (ifap);
-
- how_many = num_ifs;
- return 0;
-#elif defined (__unix) || defined (__unix__) || defined (__Lynx__) || defined (_AIX)
- // Note: DEC CXX doesn't define "unix". BSD compatible OS: HP UX,
- // AIX, SunOS 4.x perform some ioctls to retrieve ifconf list of
- // ifreq structs no SIOCGIFNUM on SunOS 4.x, so use guess and scan
- // algorithm
-
- // Probably hard to put this many ifs in a unix box..
- const int MAX_IF = 50;
-
- // HACK - set to an unreasonable number
- int num_ifs = MAX_IF;
-
- struct ifconf ifcfg;
- size_t ifreq_size = num_ifs * sizeof (struct ifreq);
- struct ifreq *p_ifs =
- (struct ifreq *) ACE_OS::malloc (ifreq_size);
-
- if (!p_ifs)
- {
- errno = ENOMEM;
- return -1;
- }
-
- ACE_OS::memset (p_ifs, 0, ifreq_size);
- ACE_OS::memset (&ifcfg, 0, sizeof (struct ifconf));
-
- ifcfg.ifc_req = p_ifs;
- ifcfg.ifc_len = ifreq_size;
-
-#if defined (AIX)
- int cmd = CSIOCGIFCONF;
-#else
- int cmd = SIOCGIFCONF;
-#endif /* AIX */
- if (ACE_OS::ioctl (handle,
- cmd,
- (caddr_t) &ifcfg) == -1)
- {
- ACE_OS::free (ifcfg.ifc_req);
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("count_interfaces:ioctl:")
- ACE_LIB_TEXT ("SIOCGIFCONF failed")),
- -1);
- }
-
- int if_count = 0, i;
-
- // get if address out of ifreq buffers. ioctl puts a blank-named
- // interface to mark the end of the returned interfaces.
- for (i = 0;
- i < num_ifs;
- i++)
- {
- /* In OpenBSD, the length of the list is returned. */
- ifcfg.ifc_len -= sizeof (struct ifreq);
- if (ifcfg.ifc_len < 0)
- break;
-
- if_count++;
-#if !defined (CHORUS_4) && !defined (__FreeBSD__)
- p_ifs++;
-#else
- if (p_ifs->ifr_addr.sa_len <= sizeof (struct sockaddr))
- {
- p_ifs++;
- }
- else
- {
- p_ifs = (struct ifreq *)
- (p_ifs->ifr_addr.sa_len + (caddr_t) &p_ifs->ifr_addr);
- }
-#endif /* !CHORUS_4 && !__FreeBSD__ */
- }
-
- ACE_OS::free (ifcfg.ifc_req);
- how_many = if_count;
- return 0;
-#else
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (how_many);
- ACE_NOTSUP_RETURN (-1);; // no implmentation
-#endif /* sparc && SIOCGIFNUM */
-}
-
-// Routine to return a handle from which ioctl() requests can be made.
-
-ACE_HANDLE
-ACE_Sock_Connect::get_handle (void)
-{
- // Solaris 2.x
- ACE_HANDLE handle = ACE_INVALID_HANDLE;
-#if defined (sparc) && ! defined (CHORUS)
- handle = ACE_OS::open ("/dev/udp", O_RDONLY);
-#elif defined (__unix) || defined (__unix__) || defined (__Lynx__) || defined (_AIX)
- // Note: DEC CXX doesn't define "unix" BSD compatible OS: HP UX,
- // AIX, SunOS 4.x
-
- handle = ACE_OS::socket (PF_INET, SOCK_DGRAM, 0);
-#endif /* sparc */
- return handle;
-}
-
-
-int
-ACE_Sock_Connect::ipv6_enabled (void)
-{
-#if defined (ACE_HAS_IPV6)
- if (ACE_Sock_Connect::ipv6_enabled_ == -1)
- {
- // Perform Double-Checked Locking Optimization.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
-
- if (ACE_Sock_Connect::ipv6_enabled_ == -1)
- {
- // Determine if the kernel has IPv6 support by attempting to
- // create a PF_INET6 socket and see if it fails.
- ACE_HANDLE s = ACE_OS::socket (PF_INET6, SOCK_DGRAM, 0);
- if (s == ACE_INVALID_HANDLE)
- {
- ACE_Sock_Connect::ipv6_enabled_ = 0;
- }
- else
- {
- ACE_Sock_Connect::ipv6_enabled_ = 1;
- ACE_OS::closesocket (s);
- }
- }
- }
-
- return ACE_Sock_Connect::ipv6_enabled_;
-#else
- return 0;
-#endif /* ACE_HAS_IPV6 */
-}
-
-#if defined (__unix) || defined (__unix__) || defined (__Lynx__) || \
- defined (_AIX)
-# if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Auto_Array_Ptr<struct ifreq>;
-template class ACE_Auto_Basic_Array_Ptr<struct ifreq>;
-# elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Auto_Array_Ptr<struct ifreq>
-#pragma instantiate ACE_Auto_Basic_Array_Ptr<struct ifreq>
-# endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /* (__unix || __Lynx_ || AIX ) */
diff --git a/ace/Sock_Connect.h b/ace/Sock_Connect.h
deleted file mode 100644
index f1be1c2d2ef..00000000000
--- a/ace/Sock_Connect.h
+++ /dev/null
@@ -1,96 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Sock_Connect.h
- *
- * $Id$
- *
- * @author Priyanka Gontla <pgontla@ece.uci.edu>
- * @author Based on code that existed formerly in ACE.h.
- */
-//==========================================================================
-
-#ifndef ACE_SOCK_CONNECT_H
-#define ACE_SOCK_CONNECT_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-// Forward Declarations
-class ACE_INET_Addr;
-
-class ACE_Export ACE_Sock_Connect
-{
- public:
-
- // = Socket connection establishment calls.
-
- /// Bind a new unused port to <handle>.
- static int bind_port (ACE_HANDLE handle,
- ACE_UINT32 ip_addr = INADDR_ANY);
-
- /**
- * Get our broadcast address based on our <host_addr>. If
- * <hostname> is non-0 we'll use it to determine our IP address. If
- * <handle> is not <ACE_INVALID_HANDLE> then we'll use this to
- * determine our broadcast address, otherwise we'll have to create a
- * socket internally (and free it). Returns -1 on failure and 0 on
- * success.
- */
- static int get_bcast_addr (ACE_UINT32 &bcast_addr,
- const ACE_TCHAR *hostname = 0,
- ACE_UINT32 host_addr = 0,
- ACE_HANDLE handle = ACE_INVALID_HANDLE);
-
- /**
- * Return count and array of all configured IP interfaces on this
- * host, rc = 0 on success (count == number of interfaces else -1).
- * Caller is responsible for calling delete [] on <addr_array>.
- */
- static int get_ip_interfaces (size_t &count,
- ACE_INET_Addr *&addr_array);
-
- /**
- * Helper routine for get_ip_interfaces, differs by UNIX platform so
- * put into own subroutine. perform some ioctls to retrieve ifconf
- * list of ifreq structs.
- */
- static int count_interfaces (ACE_HANDLE handle,
- size_t &how_many);
-
- /// Routine to return a handle from which <ioctl> requests can be
- /// made. Caller must <close> the handle.
- static ACE_HANDLE get_handle (void);
-
- /**
- * Returns 1 if IPv6 is enabled on the current host; 0 if not.
- * This is an execution-time check. If ACE has not been compiled
- * with ACE_HAS_IPV6, it always returns 0. If ACE_HAS_IPV6 is
- * enabled, this function tries to create a PF_INET6 socket,
- * returning 1 if it succeeds, and 0 if it fails. Caches the result
- * so it only gets checked once.
- */
- static int ipv6_enabled (void);
-
-#if defined (ACE_HAS_IPV6)
-private:
- /// Does this box have ipv6 turned on?
- static int ipv6_enabled_;
-#endif /* ACE_HAS_IPV6 */
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Sock_Connect.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-
-#endif /* ACE_SOCK_CONNECT_H */
diff --git a/ace/Sock_Connect.i b/ace/Sock_Connect.i
deleted file mode 100644
index cfa1da318d3..00000000000
--- a/ace/Sock_Connect.i
+++ /dev/null
@@ -1 +0,0 @@
-// $Id$
diff --git a/ace/Stats.cpp b/ace/Stats.cpp
deleted file mode 100644
index f9d60fbcd78..00000000000
--- a/ace/Stats.cpp
+++ /dev/null
@@ -1,612 +0,0 @@
-// $Id$
-
-#include "ace/Stats.h"
-#include "ace/High_Res_Timer.h"
-
-#if !defined (__ACE_INLINE__)
-# include "ace/Stats.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Stats, "$Id$")
-
-ACE_UINT32
-ACE_Stats_Value::fractional_field (void) const
-{
- if (precision () == 0)
- {
- return 1;
- }
- else
- {
- ACE_UINT32 field = 10;
- for (u_int i = 0; i < precision () - 1; ++i)
- {
- field *= 10;
- }
-
- return field;
- }
-}
-
-int
-ACE_Stats::sample (const ACE_INT32 value)
-{
- if (samples_.enqueue_tail (value) == 0)
- {
- ++number_of_samples_;
- if (number_of_samples_ == 0)
- {
- // That's a lot of samples :-)
- overflow_ = EFAULT;
- return -1;
- }
-
- if (value < min_)
- min_ = value;
-
- if (value > max_)
- max_ = value;
-
- return 0;
- }
- else
- {
- // Probably failed due to running out of memory when trying to
- // enqueue the new value.
- overflow_ = errno;
- return -1;
- }
-}
-
-void
-ACE_Stats::mean (ACE_Stats_Value &m,
- const ACE_UINT32 scale_factor)
-{
- if (number_of_samples_ > 0)
- {
-#if defined ACE_LACKS_LONGLONG_T
- // If ACE_LACKS_LONGLONG_T, then ACE_UINT64 is a user-defined class.
- // To prevent having to construct a static of that class, declare it
- // on the stack, and construct it, in each function that needs it.
- const ACE_U_LongLong ACE_STATS_INTERNAL_OFFSET (0, 8);
-#else /* ! ACE_LACKS_LONGLONG_T */
- const ACE_UINT64 ACE_STATS_INTERNAL_OFFSET =
- ACE_UINT64_LITERAL (0x100000000);
-#endif /* ! ACE_LACKS_LONGLONG_T */
-
- ACE_UINT64 sum = ACE_STATS_INTERNAL_OFFSET;
- ACE_Unbounded_Queue_Iterator<ACE_INT32> i (samples_);
- while (! i.done ())
- {
- ACE_INT32 *sample;
- if (i.next (sample))
- {
- sum += *sample;
- i.advance ();
- }
- }
-
- // sum_ was initialized with ACE_STATS_INTERNAL_OFFSET, so
- // subtract that off here.
- quotient (sum - ACE_STATS_INTERNAL_OFFSET,
- number_of_samples_ * scale_factor,
- m);
- }
- else
- {
- m.whole (0);
- m.fractional (0);
- }
-}
-
-int
-ACE_Stats::std_dev (ACE_Stats_Value &std_dev,
- const ACE_UINT32 scale_factor)
-{
- if (number_of_samples_ <= 1)
- {
- std_dev.whole (0);
- std_dev.fractional (0);
- }
- else
- {
- const ACE_UINT32 field = std_dev.fractional_field ();
-
- // The sample standard deviation is:
- //
- // sqrt (sum (sample_i - mean)^2 / (number_of_samples_ - 1))
-
- ACE_UINT64 mean_scaled;
- // Calculate the mean, scaled, so that we don't lose its
- // precision.
- ACE_Stats_Value avg (std_dev.precision ());
- mean (avg, 1u);
- avg.scaled_value (mean_scaled);
-
- // Calculate the summation term, of squared differences from the
- // mean.
- ACE_UINT64 sum_of_squares = 0;
- ACE_Unbounded_Queue_Iterator<ACE_INT32> i (samples_);
- while (! i.done ())
- {
- ACE_INT32 *sample;
- if (i.next (sample))
- {
- const ACE_UINT64 original_sum_of_squares = sum_of_squares;
-
- // Scale up by field width so that we don't lose the
- // precision of the mean. Carefully . . .
- const ACE_UINT64 product (*sample * field);
-
- ACE_UINT64 difference;
- // NOTE: please do not reformat this code! It //
- // works with the Diab compiler the way it is! //
- if (product >= mean_scaled) //
- { //
- difference = product - mean_scaled; //
- } //
- else //
- { //
- difference = mean_scaled - product; //
- } //
- // NOTE: please do not reformat this code! It //
- // works with the Diab compiler the way it is! //
-
- // Square using 64-bit arithmetic.
- sum_of_squares += difference * ACE_U64_TO_U32 (difference);
- i.advance ();
-
- if (sum_of_squares < original_sum_of_squares)
- {
- overflow_ = ENOSPC;
- return -1;
- }
- }
- }
-
- // Divide the summation by (number_of_samples_ - 1), to get the
- // variance. In addition, scale the variance down to undo the
- // mean scaling above. Otherwise, it can get too big.
- ACE_Stats_Value variance (std_dev.precision ());
- quotient (sum_of_squares,
- (number_of_samples_ - 1) * field * field,
- variance);
-
- // Take the square root of the variance to get the standard
- // deviation. First, scale up . . .
- ACE_UINT64 scaled_variance;
- variance.scaled_value (scaled_variance);
-
- // And scale up, once more, because we'll be taking the square
- // root.
- scaled_variance *= field;
- ACE_Stats_Value unscaled_standard_deviation (std_dev.precision ());
- square_root (scaled_variance,
- unscaled_standard_deviation);
-
- // Unscale.
- quotient (unscaled_standard_deviation,
- scale_factor * field,
- std_dev);
- }
-
- return 0;
-}
-
-
-void
-ACE_Stats::reset (void)
-{
- overflow_ = 0u;
- number_of_samples_ = 0u;
- min_ = 0x7FFFFFFF;
- max_ = -0x8000 * 0x10000;
- samples_.reset ();
-}
-
-int
-ACE_Stats::print_summary (const u_int precision,
- const ACE_UINT32 scale_factor,
- FILE *file) const
-{
- ACE_TCHAR mean_string [128];
- ACE_TCHAR std_dev_string [128];
- ACE_TCHAR min_string [128];
- ACE_TCHAR max_string [128];
- int success = 0;
-
- for (int tmp_precision = precision;
- ! overflow_ && ! success && tmp_precision >= 0;
- --tmp_precision)
- {
- // Build a format string, in case the C library doesn't support %*u.
- ACE_TCHAR format[32];
- if (tmp_precision == 0)
- ACE_OS::sprintf (format, ACE_LIB_TEXT ("%%%d"), tmp_precision);
- else
- ACE_OS::sprintf (format, ACE_LIB_TEXT ("%%d.%%0%du"), tmp_precision);
-
- ACE_Stats_Value u (tmp_precision);
- ((ACE_Stats *) this)->mean (u, scale_factor);
- ACE_OS::sprintf (mean_string, format, u.whole (), u.fractional ());
-
- ACE_Stats_Value sd (tmp_precision);
- if (((ACE_Stats *) this)->std_dev (sd, scale_factor))
- {
- success = 0;
- continue;
- }
- else
- {
- success = 1;
- }
- ACE_OS::sprintf (std_dev_string, format, sd.whole (), sd.fractional ());
-
- ACE_Stats_Value minimum (tmp_precision), maximum (tmp_precision);
- if (min_ != 0)
- {
- const ACE_UINT64 m (min_);
- quotient (m, scale_factor, minimum);
- }
- if (max_ != 0)
- {
- const ACE_UINT64 m (max_);
- quotient (m, scale_factor, maximum);
- }
- ACE_OS::sprintf (min_string, format,
- minimum.whole (), minimum.fractional ());
- ACE_OS::sprintf (max_string, format,
- maximum.whole (), maximum.fractional ());
- }
-
- if (success == 1)
- {
- ACE_OS::fprintf (file, ACE_LIB_TEXT ("samples: %u (%s - %s); mean: ")
- ACE_LIB_TEXT ("%s; std dev: %s\n"),
- samples (), min_string, max_string,
- mean_string, std_dev_string);
- return 0;
- }
- else
- {
-#if !defined (ACE_HAS_WINCE)
- ACE_OS::fprintf (file,
- ACE_LIB_TEXT ("ACE_Stats::print_summary: OVERFLOW: %s\n"),
- strerror (overflow_));
-#else
- // WinCE doesn't have strerror ;(
- ACE_OS::fprintf (file,
- ACE_LIB_TEXT ("ACE_Stats::print_summary: OVERFLOW\n"));
-#endif /* ACE_HAS_WINCE */
- return -1;
- }
-}
-
-void
-ACE_Stats::quotient (const ACE_UINT64 dividend,
- const ACE_UINT32 divisor,
- ACE_Stats_Value &quotient)
-{
- // The whole part of the division comes from simple integer division.
- quotient.whole (ACE_static_cast (ACE_UINT32,
- divisor == 0 ? 0 : dividend / divisor));
-
- if (quotient.precision () > 0 || divisor == 0)
- {
- const ACE_UINT32 field = quotient.fractional_field ();
-
- // Fractional = (dividend % divisor) * 10^precision / divisor
-
- // It would be nice to add round-up term:
- // Fractional = (dividend % divisor) * 10^precision / divisor +
- // 10^precision/2 / 10^precision
- // = ((dividend % divisor) * 10^precision + divisor) /
- // divisor
- quotient.fractional (ACE_static_cast (ACE_UINT32,
- dividend % divisor * field / divisor));
- }
- else
- {
- // No fractional portion is requested, so don't bother
- // calculating it.
- quotient.fractional (0);
- }
-}
-
-void
-ACE_Stats::quotient (const ACE_Stats_Value &dividend,
- const ACE_UINT32 divisor,
- ACE_Stats_Value &quotient)
-{
- // The whole part of the division comes from simple integer division.
- quotient.whole (divisor == 0 ? 0 : dividend.whole () / divisor);
-
- if (quotient.precision () > 0 || divisor == 0)
- {
- const ACE_UINT32 field = quotient.fractional_field ();
-
- // Fractional = (dividend % divisor) * 10^precision / divisor.
- quotient.fractional (dividend.whole () % divisor * field / divisor +
- dividend.fractional () / divisor);
- }
- else
- {
- // No fractional portion is requested, so don't bother
- // calculating it.
- quotient.fractional (0);
- }
-}
-
-void
-ACE_Stats::square_root (const ACE_UINT64 n,
- ACE_Stats_Value &square_root)
-{
- ACE_UINT32 floor = 0;
- ACE_UINT32 ceiling = 0xFFFFFFFFu;
- ACE_UINT32 mid = 0;
- u_int i;
-
- // The maximum number of iterations is log_2 (2^64) == 64.
- for (i = 0; i < 64; ++i)
- {
- mid = (ceiling - floor) / 2 + floor;
- if (floor == mid)
- // Can't divide the interval any further.
- break;
- else
- {
- // Multiply carefully to avoid overflow.
- ACE_UINT64 mid_squared = mid; mid_squared *= mid;
- if (mid_squared == n)
- break;
- else if (mid_squared < n)
- floor = mid;
- else
- ceiling = mid;
- }
- }
-
- square_root.whole (mid);
- ACE_UINT64 mid_squared = mid; mid_squared *= mid;
-
- if (square_root.precision () && mid_squared < n)
- {
- // (mid * 10^precision + fractional)^2 ==
- // n^2 * 10^(precision * 2)
-
- const ACE_UINT32 field = square_root.fractional_field ();
-
- floor = 0;
- ceiling = field;
- mid = 0;
-
- // Do the 64-bit arithmetic carefully to avoid overflow.
- ACE_UINT64 target = n;
- target *= field;
- target *= field;
-
- ACE_UINT64 difference = 0;
-
- for (i = 0; i < square_root.precision (); ++i)
- {
- mid = (ceiling - floor) / 2 + floor;
-
- ACE_UINT64 current = square_root.whole () * field + mid;
- current *= square_root.whole () * field + mid;
-
- if (floor == mid)
- {
- difference = target - current;
- break;
- }
- else if (current <= target)
- floor = mid;
- else
- ceiling = mid;
- }
-
- // Check to see if the fractional part should be one greater.
- ACE_UINT64 next = square_root.whole () * field + mid + 1;
- next *= square_root.whole () * field + mid + 1;
-
- square_root.fractional (next - target < difference ? mid + 1 : mid);
- }
- else
- {
- // No fractional portion is requested, so don't bother
- // calculating it.
- square_root.fractional (0);
- }
-}
-
-// ****************************************************************
-
-ACE_Throughput_Stats::ACE_Throughput_Stats (void)
- : ACE_Basic_Stats ()
- , throughput_last_ (0)
-#if 0
- // @@TODO: This is what I really wanted to compute, but it just
- // does not work.
- , throughput_sum_x_ (0)
- , throughput_sum_x2_ (0)
- , throughput_sum_y_ (0)
- , throughput_sum_y2_ (0)
- , throughput_sum_xy_ (0)
-#endif /* 0 */
-{
-}
-
-void
-ACE_Throughput_Stats::sample (ACE_UINT64 throughput,
- ACE_UINT64 latency)
-{
- this->ACE_Basic_Stats::sample (latency);
-
- if (this->samples_count () == 1u)
- {
-
- this->throughput_last_ = throughput;
-#if 0
- // @@TODO: This is what I really wanted to compute, but it just
- // does not work.
- this->throughput_sum_y_ = this->samples_count_;
- this->throughput_sum_y2_ = this->samples_count_ * this->samples_count_;
- this->throughput_sum_x_ = throughput;
- this->throughput_sum_x2_ = throughput * throughput;
- this->throughput_sum_xy_ = throughput * this->samples_count_;
-
- printf ("%f %qu\n", throughput / 400000000.0, this->samples_count_);
-#endif /* 0 */
- }
- else
- {
- this->throughput_last_ = throughput;
-
-#if 0
- // @@TODO: This is what I really wanted to compute, but it just
- // does not work.
- this->throughput_sum_y_ += this->samples_count_;
- this->throughput_sum_y2_ += this->samples_count_ * this->samples_count_;
- this->throughput_sum_x_ += throughput;
- this->throughput_sum_x2_ += throughput * throughput;
- this->throughput_sum_xy_ += throughput * this->samples_count_;
-
- printf ("%f %qu\n", throughput / 400000000.0, this->samples_count_);
-#endif /* 0 */
- }
-}
-
-void
-ACE_Throughput_Stats::accumulate (const ACE_Throughput_Stats &rhs)
-{
- if (rhs.samples_count () == 0u)
- return;
-
- this->ACE_Basic_Stats::accumulate (rhs);
-
- if (this->samples_count () == 0u)
- {
- this->throughput_last_ = rhs.throughput_last_;
-#if 0
- // @@TODO: This is what I really wanted to compute, but it just
- // does not work.
- this->throughput_sum_x_ = rhs.throughput_sum_x_;
- this->throughput_sum_x2_ = rhs.throughput_sum_x2_;
- this->throughput_sum_y_ = rhs.throughput_sum_y_;
- this->throughput_sum_y2_ = rhs.throughput_sum_y2_;
- this->throughput_sum_xy_ = rhs.throughput_sum_xy_;
-#endif /* 0 */
-
- return;
- }
-
-
- if (this->throughput_last_ < rhs.throughput_last_)
- this->throughput_last_ = rhs.throughput_last_;
-
-#if 0
- // @@TODO: This is what I really wanted to compute, but it just
- // does not work.
- this->throughput_sum_x_ += rhs.throughput_sum_x_;
- this->throughput_sum_x2_ += rhs.throughput_sum_x2_;
- this->throughput_sum_y_ += rhs.throughput_sum_y_;
- this->throughput_sum_y2_ += rhs.throughput_sum_y2_;
- this->throughput_sum_xy_ += rhs.throughput_sum_xy_;
-#endif /* 0 */
-}
-
-void
-ACE_Throughput_Stats::dump_results (const ACE_TCHAR* msg,
- ACE_UINT32 sf)
-{
- if (this->samples_count () == 0u)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("%s : no data collected\n"), msg));
- return;
- }
-
- this->ACE_Basic_Stats::dump_results (msg, sf);
-
- ACE_Throughput_Stats::dump_throughput (msg, sf,
- this->throughput_last_,
- this->samples_count ());
-
-#if 0
- // @@TODO: This is what I really wanted to generate, but it just
- // doesn't work.
- double t_sum_x =
- ACE_CU64_TO_CU32 (this->throughput_sum_x_);// / sf);
- //t_sum_x /= 1000000.0;
- double t_sum_y =
- ACE_CU64_TO_CU32 (this->throughput_sum_y_);
- double t_sum_x2 =
- ACE_CU64_TO_CU32 (this->throughput_sum_x2_);// / (sf*sf));
- //t_sum_x2 /= 1000000.0;
- //t_sum_x2 /= 1000000.0;
- double t_sum_y2 =
- ACE_CU64_TO_CU32 (this->throughput_sum_y2_);
- double t_sum_xy =
- ACE_CU64_TO_CU32 (this->throughput_sum_xy_);// / sf);
- //t_sum_xy /= 1000000.0;
- double t_avgx = t_sum_x / this->samples_count ();
- double t_avgy = t_sum_y / this->samples_count ();
-
- double t_a =
- (this->samples_count () * t_sum_xy - t_sum_x * t_sum_y)
- / (this->samples_count () * t_sum_x2 - t_sum_x * t_sum_x);
- double t_b = (t_avgy - t_a * t_avgx);
-
- t_a *= 1000000.0;
-
- double d_r =
- (t_sum_xy - t_avgx * t_sum_y - t_avgy * t_sum_x
- + this->samples_count () * t_avgx * t_avgy);
- double n_r =
- (t_sum_x2
- - this->samples_count () * t_avgx * t_avgx)
- * (t_sum_y2
- - this->samples_count () * t_avgy * t_avgy);
- double t_r = d_r * d_r / n_r;
-
- // ACE_DEBUG ((LM_DEBUG,
- // "%s throughput: %.2f/%.2f/%.2f/%.6f/%.2f (avg/a/b/r/elapsed)\n",
- // msg, t_avg, t_a, t_b, t_r, seconds));
- // ACE_DEBUG ((LM_DEBUG,
- // "%s data: %.2f/%.2f/%.2f/%.6f/%.2f (x/x2/y/y2/xy)\n",
- // msg, t_sum_x, t_sum_x2, t_sum_y, t_sum_y2, t_sum_xy));
-#endif
-}
-
-void
-ACE_Throughput_Stats::dump_throughput (const ACE_TCHAR *msg,
- ACE_UINT32 sf,
- ACE_UINT64 elapsed_time,
- ACE_UINT32 samples_count)
-{
- double seconds =
-#if defined ACE_LACKS_LONGLONG_T
- elapsed_time / sf;
-#else /* ! ACE_LACKS_LONGLONG_T */
- ACE_static_cast (double,
- ACE_UINT64_DBLCAST_ADAPTER(elapsed_time / sf));
-#endif /* ! ACE_LACKS_LONGLONG_T */
- seconds /= ACE_HR_SCALE_CONVERSION;
- double t_avg = samples_count / seconds;
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("%s throughput: %.2f (events/second)\n"),
- msg, t_avg));
-}
-
-// ****************************************************************
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Node <ACE_INT32>;
-template class ACE_Unbounded_Queue <ACE_INT32>;
-template class ACE_Unbounded_Queue_Iterator <ACE_INT32>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Node <ACE_INT32>
-#pragma instantiate ACE_Unbounded_Queue <ACE_INT32>
-#pragma instantiate ACE_Unbounded_Queue_Iterator <ACE_INT32>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Stats.h b/ace/Stats.h
deleted file mode 100644
index 864132a57a2..00000000000
--- a/ace/Stats.h
+++ /dev/null
@@ -1,273 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Stats.h
- *
- * $Id$
- *
- * @author David L. Levine
- */
-//==========================================================================
-
-
-#ifndef ACE_STATS_H
-#define ACE_STATS_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Unbounded_Queue.h"
-#include "ace/Log_Msg.h"
-#include "ace/Basic_Stats.h"
-#include "ace/OS.h"
-
-/**
- * @class ACE_Stats_Value
- *
- * @brief Helper class for ACE_Stats.
- *
- * Container struct for 64-bit signed quantity and its
- * precision. It would be nicer to use a fixed-point class, but
- * this is sufficient. Users typically don't need to use this
- * class directly; see ACE_Stats below.
- */
-class ACE_Export ACE_Stats_Value
-{
-public:
- /**
- * Constructor, which requires precision in terms of number of
- * decimal digits. The more variation in the data, and the greater
- * the data values, the smaller the precision must be to avoid
- * overflow in the standard deviation calculation. 3 might be a
- * good value, or maybe 4. 5 will probably be too large for
- * non-trivial data sets.
- */
- ACE_Stats_Value (const u_int precision);
-
- /// Accessor for precision.
- u_int precision (void) const;
-
- /// Set the whole_ field.
- void whole (const ACE_UINT32);
-
- /// Accessor for the whole_ field.
- ACE_UINT32 whole (void) const;
-
- /// Set the fractional_ field.
- void fractional (const ACE_UINT32);
-
- /// Accessor for the fractional_ field.
- ACE_UINT32 fractional (void) const;
-
- /// Calculates the maximum value of the fractional portion, given its
- /// precision.
- ACE_UINT32 fractional_field (void) const;
-
- /**
- * Access the value as an _unsigned_ 64 bit quantity. It scales the
- * value up by <precision> decimal digits, so that no precision will
- * be lost. It assumes that <whole_> is >= 0.
- */
- void scaled_value (ACE_UINT64 &) const;
-
- /// Print to stdout.
- void dump (void) const;
-
-private:
- /// The integer portion of the value.
- ACE_UINT32 whole_;
-
- /// The fractional portion of the value.
- ACE_UINT32 fractional_;
-
- /**
- * The number of decimal digits of precision represented by
- * <fractional_>. Not declared const, so the only way to change it
- * is via the assignment operator.
- */
- u_int precision_;
-
- ACE_UNIMPLEMENTED_FUNC (ACE_Stats_Value (void))
-};
-
-/**
- * @class ACE_Stats
- *
- * @brief Provides simple statistical analysis.
- *
- * Simple statistical analysis package. Prominent features are:
- * -# It does not use any floating point arithmetic.
- * -# It handles positive and/or negative sample values. The
- * sample value type is ACE_INT32.
- * -# It uses 64 bit unsigned, but not 64 bit signed, quantities
- * internally.
- * -# It checks for overflow of internal state.
- * -# It has no static variables of other than built-in types.
- *
- * Example usage:
- *
- * @verbatim
- * ACE_Stats stats;
- * for (u_int i = 0; i < n; ++i)
- * {
- * const ACE_UINT32 sample = ...;
- * stats.sample (sample);
- * }
- * stats.print_summary (3);
- * @endverbatim
- */
-class ACE_Export ACE_Stats
-{
-public:
- /// Default constructor.
- ACE_Stats (void);
-
- /// Provide a new sample. Returns 0 on success, -1 if it fails due
- /// to running out of memory, or to rolling over of the sample count.
- int sample (const ACE_INT32 value);
-
- /// Access the number of samples provided so far.
- ACE_UINT32 samples (void) const;
-
- /// Value of the minimum sample provided so far.
- ACE_INT32 min_value (void) const;
-
- /// Value of the maximum sample provided so far.
- ACE_INT32 max_value (void) const;
-
- /**
- * Access the mean of all samples provided so far. The fractional
- * part is to the specified number of digits. E.g., 3 fractional
- * digits specifies that the fractional part is in thousandths.
- */
- void mean (ACE_Stats_Value &mean,
- const ACE_UINT32 scale_factor = 1);
-
- /// Access the standard deviation, whole and fractional parts. See
- /// description of <mean> method for argument descriptions.
- int std_dev (ACE_Stats_Value &std_dev,
- const ACE_UINT32 scale_factor = 1);
-
- /**
- * Print summary statistics. If scale_factor is not 1, then the
- * results are divided by it, i.e., each of the samples is scaled
- * down by it. If internal overflow is reached with the specified
- * scale factor, it successively tries to reduce it. Returns -1 if
- * there is overflow even with a 0 scale factor.
- */
- int print_summary (const u_int precision,
- const ACE_UINT32 scale_factor = 1,
- FILE * = stdout) const;
-
- /// Initialize internal state.
- void reset (void);
-
- /// Utility division function, for ACE_UINT64 dividend.
- static void quotient (const ACE_UINT64 dividend,
- const ACE_UINT32 divisor,
- ACE_Stats_Value &quotient);
-
- /// Utility division function, for ACE_Stats_Value dividend.
- static void quotient (const ACE_Stats_Value &dividend,
- const ACE_UINT32 divisor,
- ACE_Stats_Value &quotient);
-
- /**
- * Sqrt function, which uses an oversimplified version of Newton's
- * method. It's not fast, but it doesn't require floating point
- * support.
- */
- static void square_root (const ACE_UINT64 n,
- ACE_Stats_Value &square_root);
-
- /// Print summary statistics to stdout.
- void dump (void) const;
-
-private:
- /// Internal indication of whether there has been overflow. Contains
- /// the errno corresponding to the cause of overflow.
- u_int overflow_;
-
- /// Number of samples.
- ACE_UINT32 number_of_samples_;
-
- /// Minimum sample value.
- ACE_INT32 min_;
-
- /// Maximum sample value.
- ACE_INT32 max_;
-
- /// The samples.
- ACE_Unbounded_Queue <ACE_INT32> samples_;
-};
-
-// ****************************************************************
-
-
-/// A simple class to make throughput and latency analysis.
-/**
- *
- * Keep the relevant information to perform throughput and latency
- * analysis, including:
- * -# Minimum, Average and Maximum latency
- * -# Jitter for the latency
- * -# Linear regression for throughput
- * -# Accumulate results from several samples to obtain aggregated
- * results, across several threads or experiments.
- *
- * @todo The idea behind this class was to use linear regression to
- * determine if the throughput was linear or exhibited jitter.
- * Unfortunately it never worked quite right, so only average
- * throughput is computed.
- */
-class ACE_Export ACE_Throughput_Stats : public ACE_Basic_Stats
-{
-public:
- /// Constructor
- ACE_Throughput_Stats (void);
-
- /// Store one sample
- void sample (ACE_UINT64 throughput, ACE_UINT64 latency);
-
- /// Update the values to reflect the stats in @a throughput
- void accumulate (const ACE_Throughput_Stats &throughput);
-
- /// Print down the stats
- void dump_results (const ACE_TCHAR* msg, ACE_UINT32 scale_factor);
-
- /// Dump the average throughput stats.
- static void dump_throughput (const ACE_TCHAR *msg,
- ACE_UINT32 scale_factor,
- ACE_UINT64 elapsed_time,
- ACE_UINT32 samples_count);
-private:
- /// The last throughput measurement.
- ACE_UINT64 throughput_last_;
-
-#if 0
- /// These are the fields that we should keep to perform linear
- /// regression
- //@{
- ///@}
- ACE_UINT64 throughput_sum_x_;
- ACE_UINT64 throughput_sum_x2_;
- ACE_UINT64 throughput_sum_y_;
- ACE_UINT64 throughput_sum_y2_;
- ACE_UINT64 throughput_sum_xy_;
-#endif /* 0 */
-};
-
-
-#if defined (__ACE_INLINE__)
-# include "ace/Stats.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ! ACE_STATS_H */
diff --git a/ace/Stats.i b/ace/Stats.i
deleted file mode 100644
index c97c0d29ca6..00000000000
--- a/ace/Stats.i
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_Stats_Value::ACE_Stats_Value (const u_int precision)
- : whole_ (0),
- fractional_ (0),
- precision_ (precision)
-{
-}
-
-ACE_INLINE
-u_int
-ACE_Stats_Value::precision (void) const
-{
- return precision_;
-}
-
-ACE_INLINE
-void
-ACE_Stats_Value::whole (const ACE_UINT32 value)
-{
- whole_ = value;
-}
-
-ACE_INLINE
-ACE_UINT32
-ACE_Stats_Value::whole (void) const
-{
- return whole_;
-}
-
-ACE_INLINE
-void
-ACE_Stats_Value::fractional (const ACE_UINT32 value)
-{
- fractional_ = value;
-}
-
-ACE_INLINE
-ACE_UINT32
-ACE_Stats_Value::fractional (void) const
-{
- return fractional_;
-}
-
-ACE_INLINE
-void
-ACE_Stats_Value::scaled_value (ACE_UINT64 &sv) const
-{
- sv = whole () * fractional_field () + fractional ();
-}
-
-ACE_INLINE
-void
-ACE_Stats_Value::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("precision: %u digits; whole: %u, fractional: %u\n"),
- precision_, whole_, fractional_));
-}
-
-ACE_INLINE
-ACE_Stats::ACE_Stats (void)
-{
- reset ();
-}
-
-ACE_INLINE
-ACE_UINT32
-ACE_Stats::samples (void) const
-{
- return number_of_samples_;
-}
-
-ACE_INLINE
-ACE_INT32
-ACE_Stats::min_value (void) const
-{
- return min_;
-}
-
-ACE_INLINE
-ACE_INT32
-ACE_Stats::max_value (void) const
-{
- return max_;
-}
-
-ACE_INLINE
-void
-ACE_Stats::dump (void) const
-{
- print_summary (3u);
-}
diff --git a/ace/Strategies.h b/ace/Strategies.h
deleted file mode 100644
index 7eb369f8007..00000000000
--- a/ace/Strategies.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Strategies.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_STRATEGIES_H
-#define ACE_STRATEGIES_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/// Place holder for backward compatibility..
-#include "ace/Connection_Recycling_Strategy.h"
-#include "ace/Hashable.h"
-#include "ace/Notification_Strategy.h"
-#include "ace/Reactor_Notification_Strategy.h"
-#include "ace/Recyclable.h"
-#include "ace/Refcountable.h"
-
-
-#include"ace/post.h"
-#endif /*ACE_STRATEGIES_H*/
diff --git a/ace/Strategies_T.cpp b/ace/Strategies_T.cpp
deleted file mode 100644
index eec7d86d135..00000000000
--- a/ace/Strategies_T.cpp
+++ /dev/null
@@ -1,1234 +0,0 @@
-#ifndef ACE_STRATEGIES_T_CPP
-#define ACE_STRATEGIES_T_CPP
-
-#include "ace/Strategies_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Service_Repository.h"
-#include "ace/Synch.h"
-#include "ace/Service_Types.h"
-#include "ace/Thread_Manager.h"
-#include "ace/WFMO_Reactor.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Strategies_T.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-
-ACE_RCSID (ace,
- Strategies_T,
- "$Id$")
-
-
-template <class SVC_HANDLER> int
-ACE_Singleton_Strategy<SVC_HANDLER>::open (SVC_HANDLER *sh,
- ACE_Thread_Manager *)
-{
- ACE_TRACE ("ACE_Singleton_Strategy<SVC_HANDLER>::open");
-
- if (this->delete_svc_handler_
- && this->svc_handler_ != 0)
- delete this->svc_handler_;
-
- // If <sh> is NULL then create a new <SVC_HANDLER>.
- if (sh == 0)
- {
- ACE_NEW_RETURN (this->svc_handler_,
- SVC_HANDLER,
- -1);
- this->delete_svc_handler_ = 1;
- }
- else
- {
- this->svc_handler_ = sh;
- this->delete_svc_handler_ = 0;
- }
-
- return 0;
-}
-
-template <class SVC_HANDLER> int
-ACE_DLL_Strategy<SVC_HANDLER>::open (const char dll_name[],
- const char factory_function[],
- const char svc_name[],
- ACE_Service_Repository *svc_rep,
- ACE_Thread_Manager *thr_mgr)
-{
- ACE_TRACE ("ACE_DLL_Strategy<SVC_HANDLER>::open");
- this->inherited::open (thr_mgr);
- ACE_OS::strcpy (this->dll_name_, dll_name);
- ACE_OS::strcpy (this->factory_function_, factory_function);
- ACE_OS::strcpy (this->svc_name_, svc_name);
- this->svc_rep_ = svc_rep;
- return 0;
-}
-
-// Create a SVC_HANDLER by dynamically linking it from a DLL.
-
-template <class SVC_HANDLER> int
-ACE_DLL_Strategy<SVC_HANDLER>::make_svc_handler (SVC_HANDLER *&sh)
-{
- ACE_TRACE ("ACE_DLL_Strategy<SVC_HANDLER>::make_svc_handler");
-
- // Open the shared library.
- ACE_SHLIB_HANDLE handle = ACE_OS::dlopen (this->dll_name_);
-
- // Extract the factory function.
- SVC_HANDLER *(*factory)(void) =
- (SVC_HANDLER *(*)(void)) ACE_OS::dlsym (handle,
- this->factory_function_);
-
- // Call the factory function to obtain the new SVC_Handler (should
- // use RTTI here when it becomes available...)
- SVC_HANDLER *svc_handler;
-
- ACE_ALLOCATOR_RETURN (svc_handler, (*factory)(), -1);
-
- if (svc_handler != 0)
- {
- // Create an ACE_Service_Type containing the SVC_Handler and
- // insert into this->svc_rep_;
-
- ACE_Service_Type_Impl *stp;
- ACE_NEW_RETURN (stp,
- ACE_Service_Object_Type (svc_handler,
- this->svc_name_),
- -1);
-
- ACE_Service_Type *srp = 0;
-
- ACE_NEW_RETURN (srp,
- ACE_Service_Type (this->svc_name_,
- stp,
- handle,
- 1),
- -1);
- if (srp == 0)
- {
- delete stp;
- errno = ENOMEM;
- return -1;
- }
-
- if (this->svc_rep_->insert (srp) == -1)
- return -1;
- // @@ Somehow, we need to deal with this->thr_mgr_...
- }
-
- sh = svc_handler;
- return 0;
-}
-
-// Default behavior is to activate the SVC_HANDLER by calling it's
-// open() method, which allows the SVC_HANDLER to determine its own
-// concurrency strategy.
-
-template <class SVC_HANDLER> int
-ACE_Concurrency_Strategy<SVC_HANDLER>::activate_svc_handler (SVC_HANDLER *svc_handler,
- void *arg)
-{
- ACE_TRACE ("ACE_Concurrency_Strategy<SVC_HANDLER>::activate_svc_handler");
-
- int result = 0;
-
- // See if we should enable non-blocking I/O on the <svc_handler>'s
- // peer.
- if (ACE_BIT_ENABLED (this->flags_, ACE_NONBLOCK) != 0)
- {
- if (svc_handler->peer ().enable (ACE_NONBLOCK) == -1)
- result = -1;
- }
- // Otherwise, make sure it's disabled by default.
- else if (svc_handler->peer ().disable (ACE_NONBLOCK) == -1)
- result = -1;
-
- if (result == 0 && svc_handler->open (arg) == -1)
- result = -1;
-
- if (result == -1)
- svc_handler->close (0);
-
- return result;
-}
-
-template <class SVC_HANDLER> int
-ACE_Reactive_Strategy<SVC_HANDLER>::open (ACE_Reactor *reactor,
- ACE_Reactor_Mask mask,
- int flags)
-{
- ACE_TRACE ("ACE_Reactive_Strategy<SVC_HANDLER>::open");
- this->reactor_ = reactor;
- this->mask_ = mask;
- this->flags_ = flags;
-
- // Must have a <Reactor>
- if (this->reactor_ == 0)
- return -1;
- else
- return 0;
-}
-
-template <class SVC_HANDLER> int
-ACE_Reactive_Strategy<SVC_HANDLER>::activate_svc_handler (SVC_HANDLER *svc_handler,
- void *arg)
-{
- ACE_TRACE ("ACE_Reactive_Strategy<SVC_HANDLER>::activate_svc_handler");
-
- int result = 0;
-
- if (this->reactor_ == 0)
- result = -1;
-
- // Register with the Reactor with the appropriate <mask>.
- else if (this->reactor_->register_handler (svc_handler, this->mask_) == -1)
- result = -1;
-
- // If the implementation of the reactor uses event associations
- else if (this->reactor_->uses_event_associations ())
- {
- // If we don't have non-block on, it won't work with
- // WFMO_Reactor
- // This maybe too harsh
- // if (!ACE_BIT_ENABLED (this->flags_, ACE_NONBLOCK))
- // goto failure;
- if (svc_handler->open (arg) != -1)
- return 0;
- else
- result = -1;
- }
- else
- // Call up to our parent to do the SVC_HANDLER initialization.
- return this->inherited::activate_svc_handler (svc_handler, arg);
-
- if (result == -1)
- svc_handler->close (0);
-
- return result;
-}
-
-template <class SVC_HANDLER> int
-ACE_Thread_Strategy<SVC_HANDLER>::open (ACE_Thread_Manager *thr_mgr,
- long thr_flags,
- int n_threads,
- int flags)
-{
- ACE_TRACE ("ACE_Thread_Strategy<SVC_HANDLER>::open");
- this->thr_mgr_ = thr_mgr;
- this->n_threads_ = n_threads;
- this->thr_flags_ = thr_flags;
- this->flags_ = flags;
-
- // Must have a thread manager!
- if (this->thr_mgr_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("error: must have a non-NULL thread manager\n")),
- -1);
- else
- return 0;
-}
-
-template <class SVC_HANDLER> int
-ACE_Thread_Strategy<SVC_HANDLER>::activate_svc_handler (SVC_HANDLER *svc_handler,
- void *arg)
-{
- ACE_TRACE ("ACE_Thread_Strategy<SVC_HANDLER>::activate_svc_handler");
- // Call up to our parent to do the SVC_HANDLER initialization.
- if (this->inherited::activate_svc_handler (svc_handler,
- arg) == -1)
- return -1;
- else
- // Turn the <svc_handler> into an active object (if it isn't
- // already one as a result of the first activation...)
- return svc_handler->activate (this->thr_flags_,
- this->n_threads_);
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::open
- (const ACE_PEER_ACCEPTOR_ADDR &local_addr, int reuse_addr)
-{
- this->reuse_addr_ = reuse_addr;
- this->peer_acceptor_addr_ = local_addr;
- if (this->peer_acceptor_.open (local_addr,
- reuse_addr) == -1)
- return -1;
-
- // Set the peer acceptor's handle into non-blocking mode. This is a
- // safe-guard against the race condition that can otherwise occur
- // between the time when <select> indicates that a passive-mode
- // socket handle is "ready" and when we call <accept>. During this
- // interval, the client can shutdown the connection, in which case,
- // the <accept> call can hang!
- this->peer_acceptor_.enable (ACE_NONBLOCK);
- return 0;
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Accept_Strategy
- (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
- int reuse_addr,
- ACE_Reactor *reactor)
- : reactor_ (reactor)
-{
- ACE_TRACE ("ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Accept_Strategy");
-
- if (this->open (local_addr, reuse_addr) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("open")));
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
-ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::accept_svc_handler
- (SVC_HANDLER *svc_handler)
-{
- ACE_TRACE ("ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::accept_svc_handler");
-
- // Try to find out if the implementation of the reactor that we are
- // using requires us to reset the event association for the newly
- // created handle. This is because the newly created handle will
- // inherit the properties of the listen handle, including its event
- // associations.
- int reset_new_handle = this->reactor_->uses_event_associations ();
-
- if (this->peer_acceptor_.accept (svc_handler->peer (), // stream
- 0, // remote address
- 0, // timeout
- 1, // restart
- reset_new_handle // reset new handler
- ) == -1)
- {
- // Close down handler to avoid memory leaks.
- svc_handler->close (0);
-
- return -1;
- }
- else
- return 0;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_svc_handler
-(SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_svc_handler");
-
- return this->connector_.connect (sh->peer (),
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms);
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> int
-ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_svc_handler
-(SVC_HANDLER *&sh,
- SVC_HANDLER *&sh_copy,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connect_svc_handler");
-
- int result =
- this->connector_.connect (sh->peer (),
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms);
- sh_copy = sh;
- return result;
-}
-
-template <class SVC_HANDLER> int
-ACE_Process_Strategy<SVC_HANDLER>::open (size_t n_processes,
- ACE_Event_Handler *acceptor,
- ACE_Reactor *reactor,
- int avoid_zombies)
-{
- ACE_TRACE ("ACE_Process_Strategy<SVC_HANDLER>::open");
- this->n_processes_ = n_processes;
- this->acceptor_ = acceptor;
- this->reactor_ = reactor;
- this->flags_ = avoid_zombies;
-
- return 0;
-}
-
-template <class SVC_HANDLER> int
-ACE_Process_Strategy<SVC_HANDLER>::activate_svc_handler (SVC_HANDLER *svc_handler,
- void *arg)
-{
- ACE_TRACE ("ACE_Process_Strategy<SVC_HANDLER>::activate_svc_handler");
-
- // If <flags_> is non-0 then we won't create zombies.
- switch (ACE::fork (ACE_LIB_TEXT ("child"), this->flags_))
- {
- case -1:
- svc_handler->destroy ();
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("fork")),
- -1);
- /* NOTREACHED */
- case 0: // In child process.
-
- // Close down the SOCK_Acceptor's handle since we don't need to
- // keep it open.
- if (this->acceptor_ != 0)
- // Ignore the return value here...
- (void) this->reactor_->remove_handler (this->acceptor_,
- ACE_Event_Handler::ACCEPT_MASK);
-
- // Call up to our ancestor in the inheritance to do the
- // SVC_HANDLER initialization.
- return this->inherited::activate_svc_handler (svc_handler, arg);
- /* NOTREACHED */
- default: // In parent process.
- // We need to close down the <SVC_HANDLER> here because it's
- // running in the child.
- svc_handler->destroy ();
- return 0;
- }
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX>
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::ACE_Cached_Connect_Strategy
-(creation_strategy_type *cre_s,
- ACE_Concurrency_Strategy<SVC_HANDLER> *con_s,
- ACE_Recycling_Strategy<SVC_HANDLER> *rec_s,
- MUTEX *lock,
- int delete_lock)
- : lock_ (lock),
- delete_lock_ (delete_lock),
- reverse_lock_ (0),
- creation_strategy_ (0),
- delete_creation_strategy_ (0),
- concurrency_strategy_ (0),
- delete_concurrency_strategy_ (0),
- recycling_strategy_ (0),
- delete_recycling_strategy_ (0)
-{
- // Create a new lock if necessary.
- if (this->lock_ == 0)
- {
- ACE_NEW (this->lock_,
- MUTEX);
-
- this->delete_lock_ = 1;
- }
-
- ACE_NEW (this->reverse_lock_,
- REVERSE_MUTEX (*this->lock_));
-
- if (this->open (cre_s,
- con_s,
- rec_s) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Cached_Connect_Strategy::ACE_Cached_Connect_Strategy")));
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX>
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::~ACE_Cached_Connect_Strategy (void)
-{
- if (this->delete_lock_)
- delete this->lock_;
-
- delete this->reverse_lock_;
-
- if (this->delete_creation_strategy_)
- delete this->creation_strategy_;
- this->delete_creation_strategy_ = 0;
- this->creation_strategy_ = 0;
-
- if (this->delete_concurrency_strategy_)
- delete this->concurrency_strategy_;
- this->delete_concurrency_strategy_ = 0;
- this->concurrency_strategy_ = 0;
-
- if (this->delete_recycling_strategy_)
- delete this->recycling_strategy_;
- this->delete_recycling_strategy_ = 0;
- this->recycling_strategy_ = 0;
-
- // Close down all cached service handlers.
- CONNECTION_MAP_ENTRY *entry;
- for (CONNECTION_MAP_ITERATOR iterator (connection_map_);
- iterator.next (entry);
- iterator.advance ())
- {
- entry->int_id_->recycler (0, 0);
- entry->int_id_->close ();
- }
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::open
-(creation_strategy_type *cre_s,
- ACE_Concurrency_Strategy<SVC_HANDLER> *con_s,
- ACE_Recycling_Strategy<SVC_HANDLER> *rec_s)
-{
- // Initialize the creation strategy.
-
- // First we decide if we need to clean up.
- if (this->creation_strategy_ != 0 &&
- this->delete_creation_strategy_ != 0 &&
- cre_s != 0)
- {
- delete this->creation_strategy_;
- this->creation_strategy_ = 0;
- this->delete_creation_strategy_ = 0;
- }
-
- if (cre_s != 0)
- this->creation_strategy_ = cre_s;
- else if (this->creation_strategy_ == 0)
- {
- ACE_NEW_RETURN (this->creation_strategy_,
- CREATION_STRATEGY, -1);
- this->delete_creation_strategy_ = 1;
- }
-
- // Initialize the concurrency strategy.
-
- if (this->concurrency_strategy_ != 0 &&
- this->delete_concurrency_strategy_ != 0 &&
- con_s != 0)
- {
- delete this->concurrency_strategy_;
- this->concurrency_strategy_ = 0;
- this->delete_concurrency_strategy_ = 0;
- }
-
- if (con_s != 0)
- this->concurrency_strategy_ = con_s;
- else if (this->concurrency_strategy_ == 0)
- {
- ACE_NEW_RETURN (this->concurrency_strategy_,
- CONCURRENCY_STRATEGY, -1);
- this->delete_concurrency_strategy_ = 1;
- }
-
- // Initialize the recycling strategy.
-
- if (this->recycling_strategy_ != 0 &&
- this->delete_recycling_strategy_ != 0 &&
- rec_s != 0)
- {
- delete this->recycling_strategy_;
- this->recycling_strategy_ = 0;
- this->delete_recycling_strategy_ = 0;
- }
-
- if (rec_s != 0)
- this->recycling_strategy_ = rec_s;
- else if (this->recycling_strategy_ == 0)
- {
- ACE_NEW_RETURN (this->recycling_strategy_,
- RECYCLING_STRATEGY, -1);
- this->delete_recycling_strategy_ = 1;
- }
-
- return 0;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::check_hint_i
-(SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- CONNECTION_MAP_ENTRY *&entry,
- int &found)
-{
- ACE_UNUSED_ARG (remote_addr);
- ACE_UNUSED_ARG (timeout);
- ACE_UNUSED_ARG (local_addr);
- ACE_UNUSED_ARG (reuse_addr);
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (perms);
-
- found = 0;
-
- // Get the recycling act for the svc_handler
- CONNECTION_MAP_ENTRY *possible_entry = (CONNECTION_MAP_ENTRY *) sh->recycling_act ();
-
- // Check to see if the hint svc_handler has been closed down
- if (possible_entry->ext_id_.recycle_state () == ACE_RECYCLABLE_CLOSED)
- {
- // If close, decrement refcount
- if (possible_entry->ext_id_.decrement () == 0)
- {
- // If refcount goes to zero, close down the svc_handler
- possible_entry->int_id_->recycler (0, 0);
- possible_entry->int_id_->close ();
- this->purge_i (possible_entry);
- }
-
- // Hint not successful
- found = 0;
-
- // Reset hint
- sh = 0;
- }
-
- // If hint is not closed, see if it is connected to the correct
- // address and is recyclable
- else if ((possible_entry->ext_id_.recycle_state () == ACE_RECYCLABLE_IDLE_AND_PURGABLE ||
- possible_entry->ext_id_.recycle_state () == ACE_RECYCLABLE_IDLE_BUT_NOT_PURGABLE) &&
- possible_entry->ext_id_.subject () == remote_addr)
- {
- // Hint successful
- found = 1;
-
- // Tell the <svc_handler> that it should prepare itself for
- // being recycled.
- this->prepare_for_recycling (sh);
- }
- else
- {
- // This hint will not be used.
- possible_entry->ext_id_.decrement ();
-
- // Hint not successful
- found = 0;
-
- // If <sh> is not connected to the correct address or is busy,
- // we will not use it.
- sh = 0;
- }
-
- if (found)
- entry = possible_entry;
-
- return 0;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::find_or_create_svc_handler_i
-(SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- CONNECTION_MAP_ENTRY *&entry,
- int &found)
-{
- // Explicit type conversion
- REFCOUNTED_HASH_RECYCLABLE_ADDRESS search_addr (remote_addr);
-
- // Try to find the address in the cache. Only if we don't find it
- // do we create a new <SVC_HANDLER> and connect it with the server.
- if (this->find (search_addr, entry) == -1)
- {
- // Set the flag
- found = 0;
-
- // We need to use a temporary variable here since we are not
- // allowed to change <sh> because other threads may use this
- // when we let go of the lock during the OS level connect.
- //
- // Note that making a new svc_handler, connecting remotely,
- // binding to the map, and assigning of the hint and recycler
- // should be atomic to the outside world.
- SVC_HANDLER *potential_handler = 0;
-
- // Create a new svc_handler
- if (this->make_svc_handler (potential_handler) == -1)
- return -1;
-
- // Actively establish the connection. This is a timed blocking
- // connect.
- if (this->new_connection (potential_handler,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms) == -1)
- {
- // If connect() failed because of timeouts, we have to
- // reject the connection entirely. This is necessary since
- // currently there is no way for the non-blocking connects
- // to complete and for the <Connector> to notify the cache
- // of the completion of connect().
- if (errno == EWOULDBLOCK)
- errno = ENOTSUP;
-
- // Close the svc handler.
- potential_handler->close (0);
-
- return -1;
- }
- else
- {
- // Insert the new SVC_HANDLER instance into the cache.
- if (this->connection_map_.bind (search_addr,
- potential_handler,
- entry) == -1)
- {
- // Close the svc handler.
- potential_handler->close (0);
-
- return -1;
- }
-
- // Everything succeeded as planned. Assign <sh> to <potential_handler>.
- sh = potential_handler;
-
- // Set the recycler and the recycling act
- this->assign_recycler (sh, this, entry);
- }
- }
- else
- // We found a cached svc_handler.
- {
- // Set the flag
- found = 1;
-
- // Get the cached <svc_handler>
- sh = entry->int_id_;
-
- // Tell the <svc_handler> that it should prepare itself for
- // being recycled.
- this->prepare_for_recycling (sh);
- }
-
- return 0;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::new_connection
-(SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms)
-{
- // Yow, Reverse Guard! Let go of the lock for the duration of the
- // actual connect. This will allow other threads to hack on the
- // connection cache while this thread creates the new connection.
- ACE_GUARD_RETURN (REVERSE_MUTEX, ace_mon, *this->reverse_lock_, -1);
-
- return this->CONNECT_STRATEGY::connect_svc_handler (sh,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms);
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::connect_svc_handler
-(SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms)
-{
- int found = 0;
-
- // This artificial scope is required since we need to let go of the
- // lock *before* registering the newly created handler with the
- // Reactor.
- {
- // Synchronization is required here as the setting of the
- // recyclable state must be done atomically with the finding and
- // binding of the service handler in the cache.
- ACE_GUARD_RETURN (MUTEX, ace_mon, *this->lock_, -1);
-
- int result = this->connect_svc_handler_i (sh,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms,
- found);
- if (result != 0)
- return result;
-
- }
-
- // If it is a new connection, activate it.
- //
- // Note: This activation is outside the scope of the lock of the
- // cached connector. This is necessary to avoid subtle deadlock
- // conditions with this lock and the Reactor lock.
-
- if (!found)
- {
- if (this->activate_svc_handler (sh) == -1)
- {
- // If an error occurs while activating the handler, the
- // <activate_svc_handler> method will close the handler.
- // This in turn will remove this entry from the internal
- // table.
-
- // Synchronization is required here as the setting of the
- // handler to zero must be done atomically with the users of
- // the cache.
- ACE_GUARD_RETURN (MUTEX, ace_mon, *this->lock_, -1);
-
- // Reset handler.
- sh = 0;
-
- return -1;
- }
- }
-
- return 0;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::connect_svc_handler
-(SVC_HANDLER *&sh,
- SVC_HANDLER *&sh_copy,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms)
-{
- int found = 0;
-
- // This artificial scope is required since we need to let go of the
- // lock *before* registering the newly created handler with the
- // Reactor.
- {
- // Synchronization is required here as the setting of the
- // recyclable state must be done atomically with the finding and
- // binding of the service handler in the cache.
- ACE_GUARD_RETURN (MUTEX, ace_mon, *this->lock_, -1);
-
- int result = this->connect_svc_handler_i (sh,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms,
- found);
- sh_copy = sh;
-
- if (result != 0)
- return result;
-
- }
-
- // If it is a new connection, activate it.
- //
- // Note: This activation is outside the scope of the lock of the
- // cached connector. This is necessary to avoid subtle deadlock
- // conditions with this lock and the Reactor lock.
-
- if (!found)
- {
- if (this->activate_svc_handler (sh_copy) == -1)
- {
- // If an error occurs while activating the handler, the
- // <activate_svc_handler> method will close the handler.
- // This in turn will remove this entry from the internal
- // table.
-
- // Synchronization is required here as the setting of the
- // handler to zero must be done atomically with the users of
- // the cache.
- ACE_GUARD_RETURN (MUTEX, ace_mon, *this->lock_, -1);
-
- // Reset handler.
- sh = 0;
- sh_copy = 0;
-
- return -1;
- }
- }
-
- return 0;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::connect_svc_handler_i
-(SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- int& found)
-{
- CONNECTION_MAP_ENTRY *entry = 0;
-
- // Check if the user passed a hint svc_handler
- if (sh != 0)
- {
- int result = this->check_hint_i (sh,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms,
- entry,
- found);
- if (result != 0)
- return result;
- }
-
- // If not found
- if (!found)
- {
- int result = this->find_or_create_svc_handler_i (sh,
- remote_addr,
- timeout,
- local_addr,
- reuse_addr,
- flags,
- perms,
- entry,
- found);
- if (result != 0)
- return result;
- }
-
- // For all successful cases: mark the <svc_handler> in the cache
- // as being <in_use>. Therefore recyclable is BUSY.
- entry->ext_id_.recycle_state (ACE_RECYCLABLE_BUSY);
-
- // And increment the refcount
- entry->ext_id_.increment ();
-
- return 0;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::cache (const void *recycling_act)
-{
- // Synchronization is required here as the setting of the recyclable
- // state must be done atomically with respect to other threads that
- // are querying the cache.
- ACE_GUARD_RETURN (MUTEX, ace_mon, *this->lock_, -1);
-
- return this->cache_i (recycling_act);
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::cache_i (const void *recycling_act)
-{
- // The wonders and perils of ACT
- CONNECTION_MAP_ENTRY *entry = (CONNECTION_MAP_ENTRY *) recycling_act;
-
- // Mark the <svc_handler> in the cache as not being <in_use>.
- // Therefore recyclable is IDLE.
- entry->ext_id_.recycle_state (ACE_RECYCLABLE_IDLE_AND_PURGABLE);
-
- return 0;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::recycle_state (const void *recycling_act,
- ACE_Recyclable_State new_state)
-{
- // Synchronization is required here as the setting of the recyclable
- // state must be done atomically with respect to other threads that
- // are querying the cache.
- ACE_GUARD_RETURN (MUTEX, ace_mon, *this->lock_, -1);
-
- return this->recycle_state_i (recycling_act,
- new_state);
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::recycle_state_i (const void *recycling_act,
- ACE_Recyclable_State new_state)
-{
- // The wonders and perils of ACT
- CONNECTION_MAP_ENTRY *entry = (CONNECTION_MAP_ENTRY *) recycling_act;
-
- // Mark the <svc_handler> in the cache as not being <in_use>.
- // Therefore recyclable is IDLE.
- entry->ext_id_.recycle_state (new_state);
-
- return 0;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> ACE_Recyclable_State
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::recycle_state (const void *recycling_act) const
-{
- // Const cast.
- SELF *fake_this = ACE_const_cast (SELF *, this);
-
- // Synchronization is required here.
- ACE_GUARD_RETURN (MUTEX, ace_mon, *fake_this->lock_, ACE_RECYCLABLE_UNKNOWN);
-
- return this->recycle_state_i (recycling_act);
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> ACE_Recyclable_State
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::recycle_state_i (const void *recycling_act) const
-{
- // The wonders and perils of ACT
- CONNECTION_MAP_ENTRY *entry = (CONNECTION_MAP_ENTRY *) recycling_act;
-
- // Mark the <svc_handler> in the cache as not being <in_use>.
- // Therefore recyclable is IDLE.
- return entry->ext_id_.recycle_state ();
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::purge (const void *recycling_act)
-{
- // Excluded other threads from changing cache while we take this
- // entry out.
- ACE_GUARD_RETURN (MUTEX, ace_mon, *this->lock_, -1);
-
- return this->purge_i (recycling_act);
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::purge_i (const void *recycling_act)
-{
- // The wonders and perils of ACT
- CONNECTION_MAP_ENTRY *entry = (CONNECTION_MAP_ENTRY *) recycling_act;
-
- return this->connection_map_.unbind (entry);
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::mark_as_closed (const void *recycling_act)
-{
- // Excluded other threads from changing cache while we take this
- // entry out.
- ACE_GUARD_RETURN (MUTEX, ace_mon, *this->lock_, -1);
-
- return this->mark_as_closed_i (recycling_act);
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::mark_as_closed_i (const void *recycling_act)
-{
- // The wonders and perils of ACT
- CONNECTION_MAP_ENTRY *entry = (CONNECTION_MAP_ENTRY *) recycling_act;
-
- // Mark the <svc_handler> in the cache as CLOSED.
- entry->ext_id_.recycle_state (ACE_RECYCLABLE_CLOSED);
-
- return 0;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::cleanup_hint (const void *recycling_act,
- void **act_holder)
-{
- // Excluded other threads from changing cache while we take this
- // entry out.
- ACE_GUARD_RETURN (MUTEX, ace_mon, *this->lock_, -1);
-
- return this->cleanup_hint_i (recycling_act,
- act_holder);
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::cleanup_hint_i (const void *recycling_act,
- void **act_holder)
-{
- // Reset the <*act_holder> in the confines and protection of the
- // lock.
- if (act_holder)
- *act_holder = 0;
-
- // The wonders and perils of ACT
- CONNECTION_MAP_ENTRY *entry = (CONNECTION_MAP_ENTRY *) recycling_act;
-
- // Decrement the refcount on the <svc_handler>.
- int refcount = entry->ext_id_.decrement ();
-
- // If the svc_handler state is closed and the refcount == 0, call
- // close() on svc_handler.
- if (entry->ext_id_.recycle_state () == ACE_RECYCLABLE_CLOSED &&
- refcount == 0)
- {
- entry->int_id_->recycler (0, 0);
- entry->int_id_->close ();
- this->purge_i (entry);
- }
-
- return 0;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> ACE_Creation_Strategy<SVC_HANDLER> *
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::creation_strategy (void) const
-{
- return this->creation_strategy_;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> ACE_Recycling_Strategy<SVC_HANDLER> *
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::recycling_strategy (void) const
-{
- return this->recycling_strategy_;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> ACE_Concurrency_Strategy<SVC_HANDLER> *
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::concurrency_strategy (void) const
-{
- return this->concurrency_strategy_;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::find (
- REFCOUNTED_HASH_RECYCLABLE_ADDRESS &search_addr,
- CONNECTION_MAP_ENTRY *&entry)
-{
- typedef ACE_Hash_Map_Bucket_Iterator<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,
- SVC_HANDLER *,
- ACE_Hash<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
- ACE_Equal_To<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
- ACE_Null_Mutex>
- CONNECTION_MAP_BUCKET_ITERATOR;
-
- CONNECTION_MAP_BUCKET_ITERATOR iterator (this->connection_map_,
- search_addr);
-
- CONNECTION_MAP_BUCKET_ITERATOR end (this->connection_map_,
- search_addr,
- 1);
-
- for (;
- iterator != end;
- ++iterator)
- {
- REFCOUNTED_HASH_RECYCLABLE_ADDRESS &addr = (*iterator).ext_id_;
-
- if (addr.recycle_state () != ACE_RECYCLABLE_IDLE_AND_PURGABLE &&
- addr.recycle_state () != ACE_RECYCLABLE_IDLE_BUT_NOT_PURGABLE)
- continue;
-
- if (addr.subject () != search_addr.subject ())
- continue;
-
- entry = &(*iterator);
- return 0;
- }
-
- return -1;
-}
-
-template <class SVC_HANDLER> void
-ACE_DLL_Strategy<SVC_HANDLER>::dump (void) const
-{
- ACE_TRACE ("ACE_DLL_Strategy<SVC_HANDLER>::dump");
-}
-
-template <class SVC_HANDLER> void
-ACE_Concurrency_Strategy<SVC_HANDLER>::dump (void) const
-{
- ACE_TRACE ("ACE_Concurrency_Strategy<SVC_HANDLER>::dump");
-}
-
-template <class SVC_HANDLER> void
-ACE_Reactive_Strategy<SVC_HANDLER>::dump (void) const
-{
- ACE_TRACE ("ACE_Reactive_Strategy<SVC_HANDLER>::dump");
-}
-
-template <class SVC_HANDLER> void
-ACE_Thread_Strategy<SVC_HANDLER>::dump (void) const
-{
- ACE_TRACE ("ACE_Thread_Strategy<SVC_HANDLER>::dump");
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> void
-ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::dump (void) const
-{
- ACE_TRACE ("ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::dump");
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> void
-ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::dump (void) const
-{
- ACE_TRACE ("ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::dump");
-}
-
-template <class SVC_HANDLER> void
-ACE_Process_Strategy<SVC_HANDLER>::dump (void) const
-{
- ACE_TRACE ("ACE_Process_Strategy<SVC_HANDLER>::dump");
-}
-
-template <class SVC_HANDLER> void
-ACE_Scheduling_Strategy<SVC_HANDLER>::dump (void) const
-{
- ACE_TRACE ("ACE_Scheduling_Strategy<SVC_HANDLER>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class SVC_HANDLER> void
-ACE_Schedule_All_Reactive_Strategy<SVC_HANDLER>::dump (void) const
-{
- ACE_TRACE ("ACE_Schedule_All_Reactive_Strategy<SVC_HANDLER>::dump");
-
- ACE_Scheduling_Strategy<SVC_HANDLER>::dump ();
-}
-
-template <class SVC_HANDLER> void
-ACE_Schedule_All_Threaded_Strategy<SVC_HANDLER>::dump (void) const
-{
- ACE_TRACE ("ACE_Schedule_All_Threaded_Strategy<SVC_HANDLER>::dump");
-
- ACE_Scheduling_Strategy<SVC_HANDLER>::dump ();
-}
-
-template <class SVC_HANDLER> ACE_INLINE void
-ACE_Singleton_Strategy<SVC_HANDLER>::dump (void) const
-{
- ACE_TRACE ("ACE_Singleton_Strategy<SVC_HANDLER>::dump");
-}
-
-template <class SVC_HANDLER> void
-ACE_Creation_Strategy<SVC_HANDLER>::dump (void) const
-{
- ACE_TRACE ("ACE_Creation_Strategy<SVC_HANDLER>::dump");
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Creation_Strategy)
-ACE_ALLOC_HOOK_DEFINE(ACE_Singleton_Strategy)
-ACE_ALLOC_HOOK_DEFINE(ACE_DLL_Strategy)
-ACE_ALLOC_HOOK_DEFINE(ACE_Concurrency_Strategy)
-ACE_ALLOC_HOOK_DEFINE(ACE_Thread_Strategy)
-ACE_ALLOC_HOOK_DEFINE(ACE_Connect_Strategy)
-ACE_ALLOC_HOOK_DEFINE(ACE_Process_Strategy)
-ACE_ALLOC_HOOK_DEFINE(ACE_Accept_Strategy)
-ACE_ALLOC_HOOK_DEFINE(ACE_Thread_Strategy)
-
-#endif /* ACE_STRATEGIES_T_CPP */
diff --git a/ace/Strategies_T.h b/ace/Strategies_T.h
deleted file mode 100644
index aeef4908030..00000000000
--- a/ace/Strategies_T.h
+++ /dev/null
@@ -1,1073 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Strategies_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_STRATEGIES_T_H
-#define ACE_STRATEGIES_T_H
-
-#include "ace/pre.h"
-
-#include "ace/Hash_Map_Manager_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Reactor.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Connection_Recycling_Strategy.h"
-#include "ace/Refcountable.h"
-#include "ace/Hashable.h"
-#include "ace/Recyclable.h"
-
-
-// Needed for broken linkers that can't grok long symbols.
-#define ACE_Refcounted_Hash_Recyclable ARHR
-
-
-class ACE_Service_Repository;
-
-/**
- * @class ACE_Recycling_Strategy
- *
- * @brief Defines the interface (and default implementation) for
- * specifying a recycling strategy for a SVC_HANDLER.
- *
- * Acts as a consular to the Svc_Handler, preparing it for the
- * tough times ahead when the Svc_Handler will be recycled.
- */
-template<class SVC_HANDLER>
-class ACE_Recycling_Strategy
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_TYPENAME SVC_HANDLER::addr_type addr_type;
- typedef SVC_HANDLER handler_type;
- typedef ACE_TYPENAME SVC_HANDLER::stream_type stream_type;
-
- /// Virtual Destructor
- virtual ~ACE_Recycling_Strategy (void);
-
- /// Tell the Svc_Handler something about the recycler, so that it can
- /// reach the recycler when necessary.
- virtual int assign_recycler (SVC_HANDLER *svc_handler,
- ACE_Connection_Recycling_Strategy *recycler,
- const void *recycling_act);
-
- /// This allows us to prepare the svc_handler for recycling.
- virtual int prepare_for_recycling (SVC_HANDLER *svc_handler);
-};
-
-/**
- * @class ACE_Creation_Strategy
- *
- * @brief Defines the interface for specifying a creation strategy for
- * a SVC_HANDLER.
- *
- * The default behavior is to make a new SVC_HANDLER. However,
- * subclasses can override this strategy to perform SVC_HANDLER
- * creation in any way that they like (such as creating subclass
- * instances of SVC_HANDLER, using a singleton, dynamically
- * linking the handler, etc.).
- */
-template <class SVC_HANDLER>
-class ACE_Creation_Strategy
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_TYPENAME SVC_HANDLER::addr_type addr_type;
- typedef SVC_HANDLER handler_type;
- typedef ACE_TYPENAME SVC_HANDLER::stream_type stream_type;
-
- // = Initialization and termination methods.
-
- /// Default constructor.
- ACE_Creation_Strategy (ACE_Thread_Manager * = 0,
- ACE_Reactor * = ACE_Reactor::instance ());
-
- /// An ACE_Thread_Manager is useful when creating active objects and
- /// the ACE_Reactor is used to initialize the service handler's reactor.
- int open (ACE_Thread_Manager * = 0,
- ACE_Reactor * = ACE_Reactor::instance ());
-
- virtual ~ACE_Creation_Strategy (void);
-
- // = Factory method.
- /**
- * Create a SVC_HANDLER with the appropriate creation strategy. The
- * default behavior of this method is to make a new <SVC_HANDLER> if
- * <sh> == 0 (passing in the <Thread_Manager>), else <sh> is
- * unchanged. Returns -1 on failure, else 0.
- */
- virtual int make_svc_handler (SVC_HANDLER *&sh);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Pointer to a thread manager.
- ACE_Thread_Manager *thr_mgr_;
-
- /// Pointer to an ACE_Reactor.
- ACE_Reactor *reactor_;
-};
-
-/**
- * @class ACE_Singleton_Strategy
- *
- * @brief Defines the interface for specifying a creation strategy for
- * a <SVC_HANDLER> that always returns the same <SVC_HANDLER> (i.e.,
- * it's a Singleton).
- *
- * Note that this class takes over the ownership of the
- * SVC_HANDLER passed into it as a parameter and it becomes
- * responsible for deleting this object.
- */
-template <class SVC_HANDLER>
-class ACE_Singleton_Strategy : public ACE_Creation_Strategy<SVC_HANDLER>
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_Creation_Strategy<SVC_HANDLER> base_type;
-
- // = Initialization and termination methods.
- ACE_Singleton_Strategy (SVC_HANDLER * = 0,
- ACE_Thread_Manager * = 0);
- int open (SVC_HANDLER *,
- ACE_Thread_Manager * = 0);
- virtual ~ACE_Singleton_Strategy (void);
-
- // = Factory method.
- /// Create a Singleton SVC_HANDLER by always returning the same
- /// SVC_HANDLER. Returns -1 on failure, else 0.
- virtual int make_svc_handler (SVC_HANDLER *&);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Pointer to the Singleton svc_handler.
- SVC_HANDLER *svc_handler_;
-
- /// Keep track of whether we need to delete the <SVC_HANDLER>.
- int delete_svc_handler_;
-};
-
-/**
- * @class ACE_DLL_Strategy
- *
- * @brief Defines the interface for specifying a creation strategy for
- * a SVC_HANDLER based on dynamic linking of the SVC_HANDLER.
- */
-template <class SVC_HANDLER>
-class ACE_DLL_Strategy : public ACE_Creation_Strategy<SVC_HANDLER>
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_Creation_Strategy<SVC_HANDLER> base_type;
-
- // = Intialization and termination methods.
-
- /// "Do-nothing" constructor.
- ACE_DLL_Strategy (void);
-
- /// Initialize the DLL strategy based upon the service's DLL
- /// information contained in the <svc_dll_info> string.
- ACE_DLL_Strategy (const char dll_name[],
- const char factory_function[],
- const char svc_name[],
- ACE_Service_Repository *,
- ACE_Thread_Manager * = 0);
-
- /// Initialize the DLL strategy based upon the service's DLL
- /// information contained in the <svc_dll_info> string.
- int open (const char dll_name[],
- const char factory_function[],
- const char svc_name[],
- ACE_Service_Repository *,
- ACE_Thread_Manager * = 0);
-
- // = Factory method.
- /// Create a SVC_HANDLER by dynamically linking it from a DLL.
- /// Returns -1 on failure, else 0.
- virtual int make_svc_handler (SVC_HANDLER *&);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- typedef ACE_Creation_Strategy<SVC_HANDLER> inherited;
-
- /// Name of the DLL to dynamically link.
- char dll_name_[MAXPATHLEN + 1];
-
- /// Name of the factory function in the shared library to use to
- /// obtain a pointer to the new SVC_HANDLER.
- char factory_function_[MAXPATHLEN + 1];
-
- /// Name of the service.
- char svc_name_[MAXNAMELEN + 1];
-
- /// Pointer to the <Service_Repository>.
- ACE_Service_Repository *svc_rep_;
-};
-
-/**
- * @class ACE_Concurrency_Strategy
- *
- * @brief Defines the interface for specifying a concurrency strategy
- * for a SVC_HANDLER.
- *
- * Default behavior is to activate the SVC_HANDLER by calling
- * its <open> method (which allows the SVC_HANDLER to define its
- * own concurrency strategy). However, subclasses can override
- * this default strategy to do more sophisticated concurrency
- * activations (such as creating the SVC_HANDLER as an active
- * object via multi-threading or multi-processing).
- */
-template <class SVC_HANDLER>
-class ACE_Concurrency_Strategy
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_TYPENAME SVC_HANDLER::addr_type addr_type;
- typedef SVC_HANDLER handler_type;
- typedef ACE_TYPENAME SVC_HANDLER::stream_type stream_type;
-
- /// Constructor
- ACE_Concurrency_Strategy (int flags = 0);
-
- // = Factory method.
- /**
- * Activate the <svc_handler> with an appropriate concurrency
- * strategy. The default behavior of this method is to activate the
- * SVC_HANDLER by calling its <open> method (which allows the
- * SVC_HANDLER to define its own concurrency strategy).
- */
- virtual int activate_svc_handler (SVC_HANDLER *svc_handler,
- void *arg = 0);
-
- virtual ~ACE_Concurrency_Strategy (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
-
- /// Flags that are parsed to set options for the connected
- /// <SVC_HANDLER>.
- int flags_;
-};
-
-/**
- * @class ACE_Reactive_Strategy
- *
- * @brief Defines the interface for specifying a Reactive concurrency
- * strategy for a SVC_HANDLER.
- *
- * This class provides a strategy that registers the
- * <SVC_HANDLER> with a <Reactor>.
- */
-template <class SVC_HANDLER>
-class ACE_Reactive_Strategy : public ACE_Concurrency_Strategy <SVC_HANDLER>
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_Concurrency_Strategy<SVC_HANDLER> base_type;
-
- // = Intialization and termination methods.
- /// "Do-nothing constructor"
- ACE_Reactive_Strategy (int flags = 0);
-
- /// Initialize the strategy.
- ACE_Reactive_Strategy (ACE_Reactor *reactor,
- ACE_Reactor_Mask = ACE_Event_Handler::READ_MASK,
- int flags = 0);
-
- /// Initialize the strategy.
- virtual int open (ACE_Reactor *reactor,
- ACE_Reactor_Mask = ACE_Event_Handler::READ_MASK,
- int flags = 0);
-
- /// Destructor.
- virtual ~ACE_Reactive_Strategy (void);
-
- // = Factory method.
- /// Activate the <svc_handler> by registering it with the <Reactor>
- /// and then calling it's <open> hook.
- virtual int activate_svc_handler (SVC_HANDLER *svc_handler,
- void *arg = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- typedef ACE_Concurrency_Strategy<SVC_HANDLER> inherited;
-
- /// Pointer to the Reactor we'll use to register the <SVC_HANDLER>.
- ACE_Reactor *reactor_;
-
- /// The mask that we pass to the <Reactor> when we register the
- /// <SVC_HANDLER>.
- ACE_Reactor_Mask mask_;
-};
-
-/**
- * @class ACE_Thread_Strategy
- *
- * @brief Defines the interface for specifying a concurrency strategy
- * for a <SVC_HANDLER> based on multithreading.
- *
- * This class provides a strategy that manages the creation of
- * threads to handle requests from clients concurrently. It
- * behaves as a "thread factory", spawning threads "on-demand"
- * to run the service specified by a user-supplied
- * <SVC_HANDLER>.
- */
-template <class SVC_HANDLER>
-class ACE_Thread_Strategy : public ACE_Concurrency_Strategy<SVC_HANDLER>
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_Concurrency_Strategy<SVC_HANDLER> base_type;
-
- // = Intialization and termination methods.
- /// "Do-nothing constructor"
- ACE_Thread_Strategy (int flags = 0);
-
- /// Initialize the strategy.
- ACE_Thread_Strategy (ACE_Thread_Manager *tm,
- long thr_flags,
- int n_threads = 1,
- int flags = 0);
-
- /// Initialize the strategy.
- virtual int open (ACE_Thread_Manager *tm,
- long thr_flags,
- int n_threads = 1,
- int flags = 0);
-
- virtual ~ACE_Thread_Strategy (void);
-
- // = Factory method.
- /**
- * Activate the <svc_handler> with an appropriate concurrency
- * strategy. This method activates the SVC_HANDLER by first calling
- * its <open> method and then calling its <activate> method to turn
- * it into an active object.
- */
- virtual int activate_svc_handler (SVC_HANDLER *svc_handler,
- void *arg = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- typedef ACE_Concurrency_Strategy<SVC_HANDLER> inherited;
-
- /// Thread manager for this class (must be provided).
- ACE_Thread_Manager *thr_mgr_;
-
- /// Flags to pass into the <SVC_HANDLER::activate> method.
- long thr_flags_;
-
- /// Number of threads to spawn.
- int n_threads_;
-};
-
-/**
- * @class ACE_Process_Strategy
- *
- * @brief Defines the interface for specifying a concurrency strategy
- * for a <SVC_HANDLER> based on multiprocessing.
- *
- * This class provides a strategy that manages the creation of
- * processes to handle requests from clients concurrently. It
- * behaves as a "process factory", using <ACE::fork> to fork
- * threads "on-demand" to run the service specified by a
- * user-supplied <SVC_HANDLER> in a separate process.
- */
-template <class SVC_HANDLER>
-class ACE_Process_Strategy : public ACE_Concurrency_Strategy<SVC_HANDLER>
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_Concurrency_Strategy<SVC_HANDLER> base_type;
-
- // = Intialization and termination methods.
-
- /// Initialize the strategy. If <avoid_zombies> is non-0 then set a
- /// flag to <ACE::fork> to avoid zombies.
- ACE_Process_Strategy (size_t n_processes = 1,
- ACE_Event_Handler *acceptor = 0,
- ACE_Reactor * = 0,
- int avoid_zombies = 0);
-
- /// Initialize the strategy. If <avoid_zombies> is non-0 then set a
- /// flag to <ACE::fork> to avoid zombies.
- virtual int open (size_t n_processes = 1,
- ACE_Event_Handler *acceptor = 0,
- ACE_Reactor * = 0,
- int avoid_zombies = 0);
-
- virtual ~ACE_Process_Strategy (void);
-
- // = Factory method.
- /**
- * Activate the <svc_handler> with an appropriate concurrency
- * strategy. This method activates the SVC_HANDLER by first forking
- * and then calling the <open> method of the SVC_HANDLER in the
- * child.
- */
- virtual int activate_svc_handler (SVC_HANDLER *svc_handler,
- void *arg = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- typedef ACE_Concurrency_Strategy<SVC_HANDLER> inherited;
-
- /// Number of processes to spawn.
- size_t n_processes_;
-
- /**
- * This is the <Acceptor> in the parent is listening on. We need to
- * make sure that we remove it from the Reactor and close it down in
- * the child.
- */
- ACE_Event_Handler *acceptor_;
-
- /**
- * This is the <Reactor> the child is using in conjunction with the
- * <Acceptor>. We need to remove the <Acceptor> from this <Reactor>
- * in the child.
- */
- ACE_Reactor *reactor_;
-};
-
-/**
- * @class ACE_Accept_Strategy
- *
- * @brief Defines the interface for specifying a passive connection
- * acceptance strategy for a SVC_HANDLER.
- *
- * This class provides a strategy that manages passive
- * connection acceptance of a client.
- */
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
-class ACE_Accept_Strategy
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_PEER_ACCEPTOR_ADDR addr_type;
- typedef ACE_PEER_ACCEPTOR acceptor_type;
- typedef SVC_HANDLER handler_type;
- typedef ACE_TYPENAME SVC_HANDLER::stream_type stream_type;
-
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_Accept_Strategy (ACE_Reactor *reactor = ACE_Reactor::instance ());
-
- /// Initialize the <peer_acceptor_> with <local_addr>.
- ACE_Accept_Strategy (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
- int restart = 0,
- ACE_Reactor *reactor = ACE_Reactor::instance ());
-
- /// Initialize the <peer_acceptor_> with <local_addr>, indicating
- /// whether to <reuse_addr> if it's already in use.
- virtual int open (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
- int reuse_addr = 0);
-
- /// Return the underlying ACE_HANDLE of the <peer_acceptor_>.
- virtual ACE_HANDLE get_handle (void) const;
-
- /// Return a reference to the <peer_acceptor_>.
- virtual ACE_PEER_ACCEPTOR &acceptor (void) const;
-
- virtual ~ACE_Accept_Strategy (void);
-
- // = Factory method.
- /// The default behavior delegates to the <accept> method of the
- /// PEER_ACCEPTOR.
- virtual int accept_svc_handler (SVC_HANDLER *);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Factory that establishes connections passively.
- ACE_PEER_ACCEPTOR peer_acceptor_;
-
- /// Pointer to the reactor used by the Acceptor.
- ACE_Reactor *reactor_;
-
- /// Needed to reopen the socket if <accept> fails.
- int reuse_addr_;
-
- /// Needed to reopen the socket if <accept> fails.
- ACE_PEER_ACCEPTOR_ADDR peer_acceptor_addr_;
-};
-
-/**
- * @class ACE_Connect_Strategy
- *
- * @brief Defines the interface for specifying an active
- * connection establishment strategy for a SVC_HANDLER.
- *
- * This class provides a strategy that manages active
- * connection establishment to a server.
- */
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1>
-class ACE_Connect_Strategy
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_PEER_CONNECTOR_ADDR addr_type;
- typedef ACE_PEER_CONNECTOR connector_type;
- typedef SVC_HANDLER handler_type;
- typedef ACE_TYPENAME SVC_HANDLER::stream_type stream_type;
-
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_Connect_Strategy (void);
-
- /// Return a reference to the <peer_connector_>.
- virtual ACE_PEER_CONNECTOR &connector (void) const;
-
- virtual ~ACE_Connect_Strategy (void);
-
- // = Factory method.
- /// The default behavior delegates to the <connect> method of the
- /// <PEER_CONNECTOR::connect>.
- virtual int connect_svc_handler (SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms);
-
- /**
- * The default behavior delegates to the <connect> method of the
- * <PEER_CONNECTOR::connect>.
- * Please check the documentation in Connector.h for more details.
- */
- virtual int connect_svc_handler (SVC_HANDLER *&sh,
- SVC_HANDLER *&sh_copy,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Factory that establishes connections actively.
- ACE_PEER_CONNECTOR connector_;
-};
-
-/**
- * @class ACE_Scheduling_Strategy
- *
- * @brief Defines the interface for specifying how to suspend and
- * resume a service .
- *
- * This class provides a strategy that allows arbitrarily
- * sophisticated service suspension and resumption. The default
- * behavior is to do nothing...
- */
-template <class SVC_HANDLER>
-class ACE_Scheduling_Strategy
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_TYPENAME SVC_HANDLER::addr_type addr_type;
- typedef SVC_HANDLER handler_type;
- typedef ACE_TYPENAME SVC_HANDLER::stream_type stream_type;
-
- // = Initialization and termination methods.
-
- /// Constructor
- ACE_Scheduling_Strategy (SVC_HANDLER * = 0);
-
- /// Destructor
- virtual ~ACE_Scheduling_Strategy (void);
-
- // = Scheduling methods
-
- /// Suspend hook.
- virtual int suspend (void);
-
- /// Resume hook.
- virtual int resume (void);
-
- /// Dump the state of the object.
- virtual void dump (void) const;
-};
-
-/**
- * @class ACE_Schedule_All_Reactive_Strategy
- *
- * @brief Defines the interface for specifying how to suspend and
- * resume a single-threaded reactive service .
- *
- * This class provides a strategy that suspends and resumes all
- * the Event_Handlers in a Reactor in one fell swoop.
- */
-template <class SVC_HANDLER>
-class ACE_Schedule_All_Reactive_Strategy
- : public ACE_Scheduling_Strategy<SVC_HANDLER>
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_Scheduling_Strategy<SVC_HANDLER> base_type;
-
- // = Initialization and termination methods.
- /// Constructor
- ACE_Schedule_All_Reactive_Strategy (SVC_HANDLER * = 0);
-
- // = Scheduling methods
-
- /// Suspend hook.
- virtual int suspend (void);
-
- /// Resume hook.
- virtual int resume (void);
-
- /// Dump the state of the object.
- virtual void dump (void) const;
-
-protected:
-
- /// Reactor
- ACE_Reactor *reactor_;
-};
-
-/**
- * @class ACE_Schedule_All_Threaded_Strategy
- *
- * @brief Defines the interface for specifying how to suspend and
- * resume a multithreaded service .
- *
- * This class provides a strategy that suspends and resumes all
- * the Event_Handlers controlled by a Thread_Manager in one fell swoop.
- */
-template <class SVC_HANDLER>
-class ACE_Schedule_All_Threaded_Strategy
- : public ACE_Scheduling_Strategy<SVC_HANDLER>
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_Scheduling_Strategy<SVC_HANDLER> base_type;
-
- // = Initialization and termination methods.
- /// Constructor
- ACE_Schedule_All_Threaded_Strategy (SVC_HANDLER * = 0);
-
- // = Scheduling methods
-
- /// Suspend hook.
- virtual int suspend (void);
-
- /// Resume hook.
- virtual int resume (void);
-
- /// Dump the state of the object.
- virtual void dump (void) const;
-
-protected:
-
- /// Thread Manager
- ACE_Thread_Manager *thr_mgr_;
-};
-
-/**
- * @class ACE_NOOP_Creation_Strategy
- *
- * @brief Implements a no-op creation strategy in order to defer
- * decisions regarding creation to some later point in time, such
- * as in connect or accept strategy.
- *
- * An example of the use of this is in the
- * <ACE_Cached_Connect_Strategy>, which only returns a single
- * connection for a given endpoint.
- */
-template <class SVC_HANDLER>
-class ACE_NOOP_Creation_Strategy : public ACE_Creation_Strategy<SVC_HANDLER>
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_Creation_Strategy<SVC_HANDLER> base_type;
-
- /// This is a no-op.
- virtual int make_svc_handler (SVC_HANDLER *&);
-};
-
-/**
- * @class ACE_NOOP_Concurrency_Strategy
- *
- * @brief Implements a no-op activation strategy in order to avoid
- * calling open on a svc_handler multiple times.
- *
- * An example of the use of this is in the
- * <ACE_Cached_Connect_Strategy>, which reuses svc_handlers.
- * Therefore we don't want to call open on the recycled
- * svc_handler more than once.
- */
-template <class SVC_HANDLER>
-class ACE_NOOP_Concurrency_Strategy
- : public ACE_Concurrency_Strategy<SVC_HANDLER>
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_Concurrency_Strategy<SVC_HANDLER> base_type;
-
- // = Factory method.
- /// This is a no-op.
- virtual int activate_svc_handler (SVC_HANDLER *svc_handler,
- void *arg = 0);
-};
-
-template <class T>
-class ACE_Refcounted_Hash_Recyclable : public ACE_Refcountable,
- public ACE_Hashable,
- public ACE_Recyclable
-{
-public:
- /// Default constructor.
- ACE_Refcounted_Hash_Recyclable (void);
-
- /// Constructor.
- ACE_Refcounted_Hash_Recyclable (const T &t,
- int refcount = 0,
- ACE_Recyclable_State state = ACE_RECYCLABLE_UNKNOWN);
-
- /// Destructor
- virtual ~ACE_Refcounted_Hash_Recyclable (void);
-
- /// Compares two instances.
- int operator== (const ACE_Refcounted_Hash_Recyclable<T> &rhs) const;
- int operator!= (const ACE_Refcounted_Hash_Recyclable<T> &rhs) const;
-
- T &subject ();
-
-protected:
- /// Computes and returns hash value.
- u_long hash_i (void) const;
-
- T t_;
-};
-
-/**
- * @class ACE_Cached_Connect_Strategy
- *
- * @brief A connection strategy which caches connections to peers
- * (represented by <SVC_HANDLER> instances), thereby allowing
- * subsequent re-use of unused, but available, connections.
- *
- * <ACE_Cached_Connect_Strategy> is intended to be used as a
- * plug-in connection strategy for <ACE_Strategy_Connector>.
- * It's added value is re-use of established connections.
- */
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX>
-class ACE_Cached_Connect_Strategy
- : public ACE_Connection_Recycling_Strategy,
- public ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_Creation_Strategy<SVC_HANDLER>
- creation_strategy_type;
- typedef ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>
- connect_strategy_type;
- typedef ACE_Concurrency_Strategy<SVC_HANDLER>
- concurrency_strategy_type;
- typedef ACE_Recycling_Strategy<SVC_HANDLER> recycling_strategy_type;
-
- // = Define some useful (old style) traits.
- typedef ACE_Creation_Strategy<SVC_HANDLER>
- CREATION_STRATEGY;
- typedef ACE_Concurrency_Strategy<SVC_HANDLER>
- CONCURRENCY_STRATEGY;
- typedef ACE_Recycling_Strategy<SVC_HANDLER>
- RECYCLING_STRATEGY;
-
- // = Super class
- typedef ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>
- CONNECT_STRATEGY;
-
-
- typedef ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX> SELF;
-
- /// Constructor
- ACE_Cached_Connect_Strategy (ACE_Creation_Strategy<SVC_HANDLER> *cre_s = 0,
- ACE_Concurrency_Strategy<SVC_HANDLER> *con_s = 0,
- ACE_Recycling_Strategy<SVC_HANDLER> *rec_s = 0,
- MUTEX *mutex = 0,
- int delete_mutex = 0);
-
- /// Destructor
- virtual ~ACE_Cached_Connect_Strategy (void);
-
- /// This methods allow you to change the strategies used by the
- /// cached connector.
- virtual int open (ACE_Creation_Strategy<SVC_HANDLER> *cre_s,
- ACE_Concurrency_Strategy<SVC_HANDLER> *con_s,
- ACE_Recycling_Strategy<SVC_HANDLER> *rec_s);
-
- /// Template method for making a new <svc_handler>
- virtual int make_svc_handler (SVC_HANDLER *&sh);
-
- /// Template method for activating a new <svc_handler>
- virtual int activate_svc_handler (SVC_HANDLER *svc_handler);
-
- /// Template method for setting the recycler information of the
- /// svc_handler.
- virtual int assign_recycler (SVC_HANDLER *svc_handler,
- ACE_Connection_Recycling_Strategy *recycler,
- const void *recycling_act);
-
- /// Template method for preparing the svc_handler for recycling.
- virtual int prepare_for_recycling (SVC_HANDLER *svc_handler);
-
- /**
- * Checks to see if there is already a <SVC_HANDLER> in the cache
- * connected to the <remote_addr>. If so, we return this pointer.
- * Otherwise we establish the connection, put it into the cache, and
- * return the <SVC_HANDLER> pointer. <[NOTE]>: the <{reuse_addr}>
- * argument does NOT control re-use of addresses in the cache.
- * Rather, if the underlying protocol requires a "dead time" prior
- * to re-use of its addresses (TCP is a classic example of this),
- * <{and}> the protocol provides a means by which to defeat the dead
- * time, setting this argument to non-zero will defeat the dead-time
- * requirement. <{Dev. Note: We might want to consider enhancing
- * the interface at some point so that this also controls re-use of
- * the cache.}>
- */
- virtual int connect_svc_handler (SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms);
- virtual int connect_svc_handler (SVC_HANDLER *&sh,
- SVC_HANDLER *&sh_copy,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms);
-
- /// Remove from cache.
- virtual int purge (const void *recycling_act);
-
- /// Add to cache.
- virtual int cache (const void *recycling_act);
-
- /// Get/Set <recycle_state>.
- virtual int recycle_state (const void *recycling_act,
- ACE_Recyclable_State new_state);
- virtual ACE_Recyclable_State recycle_state (const void *recycling_act) const;
-
- /// Mark as closed.
- virtual int mark_as_closed (const void *recycling_act);
-
- /**
- * Mark as closed (non-locking version). This method needs to be public
- * as it is used in the cleanup of handlers where teh locked version causes
- * a deadlock.
- */
- virtual int mark_as_closed_i (const void *recycling_act);
-
- /// Cleanup hint and reset <*act_holder> to zero if <act_holder != 0>.
- virtual int cleanup_hint (const void *recycling_act,
- void **act_holder = 0);
-
- // = Traits for managing the map
- typedef ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>
- REFCOUNTED_HASH_RECYCLABLE_ADDRESS;
- typedef ACE_Hash_Map_Manager_Ex<REFCOUNTED_HASH_RECYCLABLE_ADDRESS, SVC_HANDLER *, ACE_Hash<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>, ACE_Equal_To<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>, ACE_Null_Mutex>
- CONNECTION_MAP;
-
- typedef ACE_TYPENAME CONNECTION_MAP::ITERATOR CONNECTION_MAP_ITERATOR;
- typedef ACE_TYPENAME CONNECTION_MAP::ENTRY CONNECTION_MAP_ENTRY;
-
- typedef ACE_Reverse_Lock<MUTEX> REVERSE_MUTEX;
-
- // = Strategy accessors
- virtual ACE_Creation_Strategy<SVC_HANDLER> *creation_strategy (void) const;
- virtual ACE_Recycling_Strategy<SVC_HANDLER> *recycling_strategy (void) const;
- virtual ACE_Concurrency_Strategy<SVC_HANDLER> *concurrency_strategy (void) const;
-
-protected:
-
- /// Creates a new connection.
- virtual int new_connection (SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms);
-
- /// Find an idle handle.
- int find (REFCOUNTED_HASH_RECYCLABLE_ADDRESS &search_addr,
- CONNECTION_MAP_ENTRY *&entry);
-
- /// Remove from cache (non-locking version).
- virtual int purge_i (const void *recycling_act);
-
- /// Add to cache (non-locking version).
- virtual int cache_i (const void *recycling_act);
-
- /// Set <recycle_state> (non-locking version).
- virtual int recycle_state_i (const void *recycling_act,
- ACE_Recyclable_State new_state);
-
- /// Get <recycle_state> (non-locking version).
- virtual ACE_Recyclable_State recycle_state_i (const void *recycling_act) const;
-
- /// Cleanup hint and reset <*act_holder> to zero if <act_holder != 0>.
- virtual int cleanup_hint_i (const void *recycling_act,
- void **act_holder);
-
- // = Helpers
- int check_hint_i (SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- CONNECTION_MAP_ENTRY *&entry,
- int &found);
-
- int find_or_create_svc_handler_i (SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- CONNECTION_MAP_ENTRY *&entry,
- int &found);
-
- virtual int connect_svc_handler_i (
- SVC_HANDLER *&sh,
- const ACE_PEER_CONNECTOR_ADDR &remote_addr,
- ACE_Time_Value *timeout,
- const ACE_PEER_CONNECTOR_ADDR &local_addr,
- int reuse_addr,
- int flags,
- int perms,
- int &found);
-
- /// Table that maintains the cache of connected <SVC_HANDLER>s.
- CONNECTION_MAP connection_map_;
-
- /// Mutual exclusion for this object.
- MUTEX *lock_;
-
- /// Mutual exclusion for this object.
- int delete_lock_;
-
- /// Reverse lock.
- REVERSE_MUTEX *reverse_lock_;
-
- // = Strategy objects.
-
- /// Creation strategy for an <Connector>.
- CREATION_STRATEGY *creation_strategy_;
-
- /// 1 if <Connector> created the creation strategy and thus should
- /// delete it, else 0.
- int delete_creation_strategy_;
-
- /// Concurrency strategy for an <Connector>.
- CONCURRENCY_STRATEGY *concurrency_strategy_;
-
- /// 1 if <Connector> created the concurrency strategy and thus should
- /// delete it, else 0.
- int delete_concurrency_strategy_;
-
- /// Recycling strategy for an <Connector>.
- RECYCLING_STRATEGY *recycling_strategy_;
-
- /// 1 if <Connector> created the recycling strategy and thus should
- /// delete it, else 0.
- int delete_recycling_strategy_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/Strategies_T.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Strategies_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Strategies_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-
-#endif /* ACE_STRATEGIES_T_H */
diff --git a/ace/Strategies_T.i b/ace/Strategies_T.i
deleted file mode 100644
index 41582fc6e95..00000000000
--- a/ace/Strategies_T.i
+++ /dev/null
@@ -1,443 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-template<class SVC_HANDLER> ASYS_INLINE
-ACE_Recycling_Strategy<SVC_HANDLER>::~ACE_Recycling_Strategy (void)
-{
-}
-
-template<class SVC_HANDLER> ASYS_INLINE int
-ACE_Recycling_Strategy<SVC_HANDLER>::assign_recycler (SVC_HANDLER *svc_handler,
- ACE_Connection_Recycling_Strategy *recycler,
- const void *recycling_act)
-{
- svc_handler->recycler (recycler, recycling_act);
- return 0;
-}
-
-template<class SVC_HANDLER> ASYS_INLINE int
-ACE_Recycling_Strategy<SVC_HANDLER>::prepare_for_recycling (SVC_HANDLER *svc_handler)
-{
- return svc_handler->recycle ();
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Singleton_Strategy<SVC_HANDLER>::ACE_Singleton_Strategy (SVC_HANDLER *sh,
- ACE_Thread_Manager *tm)
- : svc_handler_ (0),
- delete_svc_handler_ (1)
-{
- ACE_TRACE ("ACE_Singleton_Strategy<SVC_HANDLER>::ACE_Singleton_Strategy");
- if (this->open (sh, tm) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Singleton_Strategy")));
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Singleton_Strategy<SVC_HANDLER>::~ACE_Singleton_Strategy (void)
-{
- ACE_TRACE ("ACE_Singleton_Strategy<SVC_HANDLER>::~ACE_Singleton_Strategy");
- if (this->delete_svc_handler_ != 0)
- delete this->svc_handler_;
-}
-
-// Create a Singleton SVC_HANDLER by always returning the same
-// SVC_HANDLER.
-
-template <class SVC_HANDLER> ASYS_INLINE int
-ACE_Singleton_Strategy<SVC_HANDLER>::make_svc_handler (SVC_HANDLER *&sh)
-{
- ACE_TRACE ("ACE_Singleton_Strategy<SVC_HANDLER>::make_svc_handler");
- sh = this->svc_handler_;
- return 0;
-}
-
-template <class SVC_HANDLER> ASYS_INLINE int
-ACE_Creation_Strategy<SVC_HANDLER>::open (ACE_Thread_Manager *thr_mgr,
- ACE_Reactor *reactor)
-{
- ACE_TRACE ("ACE_Creation_Strategy<SVC_HANDLER>::open");
- this->thr_mgr_ = thr_mgr;
- this->reactor_ = reactor;
- return 0;
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Creation_Strategy<SVC_HANDLER>::ACE_Creation_Strategy (ACE_Thread_Manager *thr_mgr,
- ACE_Reactor *reactor)
-{
- ACE_TRACE ("ACE_Creation_Strategy<SVC_HANDLER>::ACE_Creation_Strategy");
- if (this->open (thr_mgr, reactor) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Creation_Strategy")));
-}
-
-// Default behavior is to make a new SVC_HANDLER, passing in the
-// Thread_Manager (if any).
-
-template <class SVC_HANDLER> ASYS_INLINE int
-ACE_Creation_Strategy<SVC_HANDLER>::make_svc_handler (SVC_HANDLER *&sh)
-{
- ACE_TRACE ("ACE_Creation_Strategy<SVC_HANDLER>::make_svc_handler");
-
- if (sh == 0)
- ACE_NEW_RETURN (sh, SVC_HANDLER (this->thr_mgr_), -1);
- sh->reactor (this->reactor_);
- return 0;
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Creation_Strategy<SVC_HANDLER>::~ACE_Creation_Strategy (void)
-{
- ACE_TRACE ("ACE_Creation_Strategy<SVC_HANDLER>::~ACE_Creation_Strategy");
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_DLL_Strategy<SVC_HANDLER>::ACE_DLL_Strategy (const char dll_name[],
- const char factory_function[],
- const char svc_name[],
- ACE_Service_Repository *svc_rep,
- ACE_Thread_Manager *thr_mgr)
-{
- ACE_TRACE ("ACE_DLL_Strategy<SVC_HANDLER>::ACE_DLL_Strategy");
- if (this->open (dll_name,
- factory_function,
- svc_name,
- svc_rep,
- thr_mgr) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("open")));
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_DLL_Strategy<SVC_HANDLER>::ACE_DLL_Strategy (void)
-{
- ACE_TRACE ("ACE_DLL_Strategy<SVC_HANDLER>::ACE_DLL_Strategy");
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Concurrency_Strategy<SVC_HANDLER>::ACE_Concurrency_Strategy (int flags)
- : flags_ (flags)
-{
- ACE_TRACE ("ACE_Concurrency_Strategy<SVC_HANDLER>::~ACE_Concurrency_Strategy");
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Concurrency_Strategy<SVC_HANDLER>::~ACE_Concurrency_Strategy (void)
-{
- ACE_TRACE ("ACE_Concurrency_Strategy<SVC_HANDLER>::~ACE_Concurrency_Strategy");
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Reactive_Strategy<SVC_HANDLER>::ACE_Reactive_Strategy (ACE_Reactor *reactor,
- ACE_Reactor_Mask mask,
- int flags)
-{
- ACE_TRACE ("ACE_Reactive_Strategy<SVC_HANDLER>::ACE_Reactive_Strategy");
-
- if (this->open (reactor,
- mask,
- flags) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Reactive_Strategy<SVC_HANDLER>::ACE_Reactive_Strategy")));
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Reactive_Strategy<SVC_HANDLER>::ACE_Reactive_Strategy (int flags)
- : ACE_Concurrency_Strategy<SVC_HANDLER> (flags),
- reactor_ (0),
- mask_ (ACE_Event_Handler::NULL_MASK)
-{
- ACE_TRACE ("ACE_Reactive_Strategy<SVC_HANDLER>::ACE_Reactive_Strategy");
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Reactive_Strategy<SVC_HANDLER>::~ACE_Reactive_Strategy (void)
-{
- ACE_TRACE ("ACE_Reactive_Strategy<SVC_HANDLER>::~ACE_Reactive_Strategy");
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Thread_Strategy<SVC_HANDLER>::ACE_Thread_Strategy (ACE_Thread_Manager *thr_mgr,
- long thr_flags,
- int n_threads,
- int flags)
-{
- ACE_TRACE ("ACE_Thread_Strategy<SVC_HANDLER>::ACE_Thread_Strategy");
-
- if (this->open (thr_mgr,
- thr_flags,
- n_threads,
- flags) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Thread_Strategy<SVC_HANDLER>::ACE_Thread_Strategy")));
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Thread_Strategy<SVC_HANDLER>::ACE_Thread_Strategy (int flags)
- : ACE_Concurrency_Strategy<SVC_HANDLER> (flags),
- thr_mgr_ (0),
- thr_flags_ (0),
- n_threads_ (1)
-{
- ACE_TRACE ("ACE_Thread_Strategy<SVC_HANDLER>::ACE_Thread_Strategy");
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Thread_Strategy<SVC_HANDLER>::~ACE_Thread_Strategy (void)
-{
- ACE_TRACE ("ACE_Thread_Strategy<SVC_HANDLER>::~ACE_Thread_Strategy");
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> ASYS_INLINE
-ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Accept_Strategy (ACE_Reactor *reactor)
- : reactor_ (reactor)
-{
- ACE_TRACE ("ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Accept_Strategy");
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> ASYS_INLINE ACE_HANDLE
-ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::get_handle (void) const
-{
- ACE_TRACE ("ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::get_handle");
- return this->peer_acceptor_.get_handle ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> ASYS_INLINE ACE_PEER_ACCEPTOR &
-ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::acceptor (void) const
-{
- ACE_TRACE ("ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::acceptor");
- return (ACE_PEER_ACCEPTOR &) this->peer_acceptor_;
-}
-
-template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> ASYS_INLINE
-ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::~ACE_Accept_Strategy (void)
-{
- ACE_TRACE ("ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::~ACE_Accept_Strategy");
-
- // Close the underlying acceptor.
- this->peer_acceptor_.close ();
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> ASYS_INLINE ACE_PEER_CONNECTOR &
-ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connector (void) const
-{
- ACE_TRACE ("ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::connector");
- return (ACE_PEER_CONNECTOR &) this->connector_;
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> ASYS_INLINE
-ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::ACE_Connect_Strategy (void)
-{
- ACE_TRACE ("ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::ACE_Connect_Strategy");
-}
-
-template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1> ASYS_INLINE
-ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::~ACE_Connect_Strategy (void)
-{
- ACE_TRACE ("ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::~ACE_Connect_Strategy");
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Process_Strategy<SVC_HANDLER>::ACE_Process_Strategy (size_t n_processes,
- ACE_Event_Handler *acceptor,
- ACE_Reactor *reactor,
- int avoid_zombies)
-{
- ACE_TRACE ("ACE_Process_Strategy<SVC_HANDLER>::ACE_Process_Strategy");
- if (this->open (n_processes,
- acceptor,
- reactor,
- avoid_zombies) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Process_Strategy")));
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Process_Strategy<SVC_HANDLER>::~ACE_Process_Strategy (void)
-{
- ACE_TRACE ("ACE_Process_Strategy<SVC_HANDLER>::~ACE_Process_Strategy");
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Scheduling_Strategy<SVC_HANDLER>::ACE_Scheduling_Strategy (SVC_HANDLER *)
-{
- ACE_TRACE ("ACE_Scheduling_Strategy<SVC_HANDLER>::ACE_Scheduling_Strategy");
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Scheduling_Strategy<SVC_HANDLER>::~ACE_Scheduling_Strategy (void)
-{
- ACE_TRACE ("ACE_Scheduling_Strategy<SVC_HANDLER>::~ACE_Scheduling_Strategy");
-}
-
-template <class SVC_HANDLER> ASYS_INLINE int
-ACE_Scheduling_Strategy<SVC_HANDLER>::suspend (void)
-{
- ACE_TRACE ("ACE_Scheduling_Strategy<SVC_HANDLER>::suspend");
- return -1;
-}
-
-template <class SVC_HANDLER> ASYS_INLINE int
-ACE_Scheduling_Strategy<SVC_HANDLER>::resume (void)
-{
- ACE_TRACE ("ACE_Scheduling_Strategy<SVC_HANDLER>::resume");
- return -1;
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Schedule_All_Reactive_Strategy<SVC_HANDLER>::ACE_Schedule_All_Reactive_Strategy
- (SVC_HANDLER *scheduler)
- : ACE_Scheduling_Strategy<SVC_HANDLER> (scheduler)
-{
- ACE_TRACE ("ACE_Schedule_All_Reactive_Strategy<SVC_HANDLER>::ACE_Schedule_All_Reactive_Strategy");
-
- if (scheduler == 0 || scheduler->reactor () == 0)
- this->reactor_ = ACE_Reactor::instance ();
- else
- this->reactor_ = scheduler->reactor ();
-}
-
-template <class SVC_HANDLER> ASYS_INLINE int
-ACE_Schedule_All_Reactive_Strategy<SVC_HANDLER>::suspend (void)
-{
- ACE_TRACE ("ACE_Schedule_All_Reactive_Strategy<SVC_HANDLER>::suspend");
- return this->reactor_->suspend_handlers ();
-}
-
-template <class SVC_HANDLER> ASYS_INLINE int
-ACE_Schedule_All_Reactive_Strategy<SVC_HANDLER>::resume (void)
-{
- ACE_TRACE ("ACE_Schedule_All_Reactive_Strategy<SVC_HANDLER>::resume");
- return this->reactor_->resume_handlers ();
-}
-
-template <class SVC_HANDLER> ASYS_INLINE
-ACE_Schedule_All_Threaded_Strategy<SVC_HANDLER>::ACE_Schedule_All_Threaded_Strategy
- (SVC_HANDLER *scheduler)
- : ACE_Scheduling_Strategy<SVC_HANDLER> (scheduler)
-{
- ACE_TRACE ("ACE_Schedule_All_Threaded_Strategy<SVC_HANDLER>::ACE_Schedule_All_Threaded_Strategy");
-
- if (scheduler == 0 || scheduler->thr_mgr () == 0)
- this->thr_mgr_ = ACE_Thread_Manager::instance ();
- else
- this->thr_mgr_ = scheduler->thr_mgr ();
-}
-
-template <class SVC_HANDLER> ASYS_INLINE int
-ACE_Schedule_All_Threaded_Strategy<SVC_HANDLER>::suspend (void)
-{
- ACE_TRACE ("ACE_Schedule_All_Threaded_Strategy<SVC_HANDLER>::suspend");
- return this->thr_mgr_->suspend_all ();
-}
-
-template <class SVC_HANDLER> ASYS_INLINE int
-ACE_Schedule_All_Threaded_Strategy<SVC_HANDLER>::resume (void)
-{
- ACE_TRACE ("ACE_Schedule_All_Threaded_Strategy<SVC_HANDLER>::resume");
- return this->thr_mgr_->resume_all ();
-}
-
-template <class T> ASYS_INLINE
-ACE_Refcounted_Hash_Recyclable<T>::ACE_Refcounted_Hash_Recyclable (void)
- : ACE_Refcountable (0),
- ACE_Hashable (),
- ACE_Recyclable (ACE_RECYCLABLE_UNKNOWN),
- t_ ()
-{
-}
-
-template <class T> ASYS_INLINE
-ACE_Refcounted_Hash_Recyclable<T>::ACE_Refcounted_Hash_Recyclable (const T &t,
- int refcount,
- ACE_Recyclable_State state)
- : ACE_Refcountable (refcount),
- ACE_Hashable (),
- ACE_Recyclable (state),
- t_ (t)
-{
-}
-
-template <class T> ASYS_INLINE
-ACE_Refcounted_Hash_Recyclable<T>::~ACE_Refcounted_Hash_Recyclable (void)
-{
-}
-
-template <class T> ASYS_INLINE u_long
-ACE_Refcounted_Hash_Recyclable<T>::hash_i (void) const
-{
- return this->t_.hash ();
-}
-
-template <class T> ASYS_INLINE T &
-ACE_Refcounted_Hash_Recyclable<T>::subject (void)
-{
- return this->t_;
-}
-
-template <class T> ASYS_INLINE int
-ACE_Refcounted_Hash_Recyclable<T>::operator== (const ACE_Refcounted_Hash_Recyclable<T> &rhs) const
-{
- return this->recycle_state () == rhs.recycle_state () &&
- this->t_ == rhs.t_;
-}
-
-template <class T> ASYS_INLINE int
-ACE_Refcounted_Hash_Recyclable<T>::operator!= (const ACE_Refcounted_Hash_Recyclable<T> &rhs) const
-{
- return !this->operator== (rhs);
-}
-
-template <class SVC_HANDLER> ASYS_INLINE int
-ACE_NOOP_Creation_Strategy<SVC_HANDLER>::make_svc_handler (SVC_HANDLER *&)
-{
- ACE_TRACE ("ACE_NOOP_Creation_Strategy<SVC_HANDLER>::make_svc_handler");
- return 0;
-}
-
-template <class SVC_HANDLER> ASYS_INLINE int
-ACE_NOOP_Concurrency_Strategy<SVC_HANDLER>::activate_svc_handler (SVC_HANDLER *,
- void *)
-{
- ACE_TRACE ("ACE_NOOP_Concurrency_Strategy<SVC_HANDLER>::activate_svc_handler");
- return 0;
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> ASYS_INLINE int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::make_svc_handler
- (SVC_HANDLER *&sh)
-{
- return this->creation_strategy_->make_svc_handler (sh);
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> ASYS_INLINE int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::activate_svc_handler
- (SVC_HANDLER *svc_handler)
-{
- return this->concurrency_strategy_->activate_svc_handler (svc_handler);
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> ASYS_INLINE int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::assign_recycler
- (SVC_HANDLER *svc_handler,
- ACE_Connection_Recycling_Strategy *recycler,
- const void *recycling_act)
-{
- return this->recycling_strategy_->assign_recycler (svc_handler,
- recycler,
- recycling_act);
-}
-
-template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class MUTEX> ASYS_INLINE int
-ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::prepare_for_recycling
- (SVC_HANDLER *svc_handler)
-{
- return this->recycling_strategy_->prepare_for_recycling (svc_handler);
-}
diff --git a/ace/Stream.cpp b/ace/Stream.cpp
deleted file mode 100644
index fb9ba6e09b3..00000000000
--- a/ace/Stream.cpp
+++ /dev/null
@@ -1,614 +0,0 @@
-// Stream.cpp
-// $Id$
-
-#ifndef ACE_STREAM_C
-#define ACE_STREAM_C
-
-//#include "ace/Module.h"
-#include "ace/Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Stream_Modules.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Stream.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Stream, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Stream)
-
-// Give some idea of what the heck is going on in a stream!
-
-template <ACE_SYNCH_DECL> void
-ACE_Stream<ACE_SYNCH_USE>::dump (void) const
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("-------- module links --------\n")));
-
- for (ACE_Module<ACE_SYNCH_USE> *mp = this->stream_head_;
- ;
- mp = mp->next ())
- {
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("module name = %s\n"), mp->name ()));
- if (mp == this->stream_tail_)
- break;
- }
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("-------- writer links --------\n")));
-
- ACE_Task<ACE_SYNCH_USE> *tp;
-
- for (tp = this->stream_head_->writer ();
- ;
- tp = tp->next ())
- {
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("writer queue name = %s\n"), tp->name ()));
- tp->dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("-------\n")));
- if (tp == this->stream_tail_->writer ()
- || (this->linked_us_
- && tp == this->linked_us_->stream_head_->reader ()))
- break;
- }
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("-------- reader links --------\n")));
- for (tp = this->stream_tail_->reader (); ; tp = tp->next ())
- {
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("reader queue name = %s\n"), tp->name ()));
- tp->dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("-------\n")));
- if (tp == this->stream_head_->reader ()
- || (this->linked_us_
- && tp == this->linked_us_->stream_head_->writer ()))
- break;
- }
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::push (ACE_Module<ACE_SYNCH_USE> *new_top)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::push");
- if (this->push_module (new_top,
- this->stream_head_->next (),
- this->stream_head_) == -1)
- return -1;
- else
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::put");
- return this->stream_head_->writer ()->put (mb, tv);
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::get (ACE_Message_Block *&mb, ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::get");
- return this->stream_head_->reader ()->getq (mb, tv);
-}
-
-// Return the "top" ACE_Module in a ACE_Stream, skipping over the
-// stream_head.
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::top (ACE_Module<ACE_SYNCH_USE> *&m)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::top");
- if (this->stream_head_->next () == this->stream_tail_)
- return -1;
- else
- {
- m = this->stream_head_->next ();
- return 0;
- }
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::insert (const ACE_TCHAR *prev_name,
- ACE_Module<ACE_SYNCH_USE> *mod)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::insert");
-
- for (ACE_Module<ACE_SYNCH_USE> *prev_mod = this->stream_head_;
- prev_mod != 0;
- prev_mod = prev_mod->next ())
- if (ACE_OS::strcmp (prev_mod->name (), prev_name) == 0)
- {
- ACE_Module<ACE_SYNCH_USE> *next_mod = prev_mod->next ();
-
- // We can't insert a module below <stream_tail_>.
- if (next_mod == 0)
- return -1;
-
- mod->link (next_mod);
- prev_mod->link (mod);
-
- if (mod->reader ()->open (mod->arg ()) == -1)
- return -1;
-
- if (mod->writer ()->open (mod->arg ()) == -1)
- return -1;
-
- return 0;
- }
-
- return -1;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::replace (const ACE_TCHAR *replace_name,
- ACE_Module<ACE_SYNCH_USE> *mod,
- int flags)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::replace");
- ACE_Module<ACE_SYNCH_USE> *prev_mod = 0;
-
- for (ACE_Module<ACE_SYNCH_USE> *rep_mod = this->stream_head_;
- rep_mod != 0;
- rep_mod = rep_mod->next ())
- if (ACE_OS::strcmp (rep_mod->name (), replace_name) == 0)
- {
- ACE_Module<ACE_SYNCH_USE> *next_mod = rep_mod->next ();
-
- if (next_mod)
- mod->link (next_mod);
- else // In case the <next_mod> is <stream_tail_>.
- {
- mod->writer ()->next (0);
- mod->next (0);
- this->stream_tail_ = mod;
- }
-
- if (prev_mod)
- prev_mod->link (mod);
- else // In case the <rep_mod> is <stream_head_>.
- {
- mod->reader ()->next (0);
- this->stream_head_ = mod;
- }
-
- if (mod->reader ()->open (mod->arg ()) == -1)
- return -1;
-
- if (mod->writer ()->open (mod->arg ()) == -1)
- return -1;
-
- if (flags != ACE_Module<ACE_SYNCH_USE>::M_DELETE_NONE)
- {
- rep_mod->close (flags);
- delete rep_mod;
- }
-
- return 0;
- }
- else
- prev_mod = rep_mod;
-
- return -1;
-}
-
-// Remove the "top" ACE_Module in a ACE_Stream, skipping over the
-// stream_head.
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::pop (int flags)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::pop");
- if (this->stream_head_->next () == this->stream_tail_)
- return -1;
- else
- {
- // Skip over the ACE_Stream head.
- ACE_Module<ACE_SYNCH_USE> *top_mod = this->stream_head_->next ();
- ACE_Module<ACE_SYNCH_USE> *new_top = top_mod->next ();
-
- this->stream_head_->next (new_top);
-
- // Close the top ACE_Module.
-
- top_mod->close (flags);
-
- // Don't delete the Module unless the flags request this.
- if (flags != ACE_Module<ACE_SYNCH_USE>::M_DELETE_NONE)
- delete top_mod;
-
- this->stream_head_->writer ()->next (new_top->writer ());
- new_top->reader ()->next (this->stream_head_->reader ());
- return 0;
- }
-}
-
-// Remove a named ACE_Module from an arbitrary place in the
-// ACE_Stream.
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::remove (const ACE_TCHAR *name,
- int flags)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::remove");
- ACE_Module<ACE_SYNCH_USE> *prev = 0;
-
- for (ACE_Module<ACE_SYNCH_USE> *mod = this->stream_head_;
- mod != 0;
- mod = mod->next ())
- if (ACE_OS::strcmp (mod->name (), name) == 0)
- {
- if (prev == 0) // Deleting ACE_Stream Head
- this->stream_head_->link (mod->next ());
- else
- prev->link (mod->next ());
-
- // Don't delete the Module unless the flags request this.
- if (flags != ACE_Module<ACE_SYNCH_USE>::M_DELETE_NONE)
- {
- // Close down the module and release the memory.
- mod->close (flags);
- delete mod;
- }
-
- return 0;
- }
- else
- prev = mod;
-
- return -1;
-}
-
-template <ACE_SYNCH_DECL> ACE_Module<ACE_SYNCH_USE> *
-ACE_Stream<ACE_SYNCH_USE>::find (const ACE_TCHAR *name)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::find");
- for (ACE_Module<ACE_SYNCH_USE> *mod = this->stream_head_;
- mod != 0;
- mod = mod->next ())
- if (ACE_OS::strcmp (mod->name (), name) == 0)
- return mod;
-
- return 0;
-}
-
-// Actually push a module onto the stack...
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::push_module (ACE_Module<ACE_SYNCH_USE> *new_top,
- ACE_Module<ACE_SYNCH_USE> *current_top,
- ACE_Module<ACE_SYNCH_USE> *head)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::push_module");
- ACE_Task<ACE_SYNCH_USE> *nt_reader = new_top->reader ();
- ACE_Task<ACE_SYNCH_USE> *nt_writer = new_top->writer ();
- ACE_Task<ACE_SYNCH_USE> *ct_reader = 0;
- ACE_Task<ACE_SYNCH_USE> *ct_writer = 0;
-
- if (current_top)
- {
- ct_reader = current_top->reader ();
- ct_writer = current_top->writer ();
- ct_reader->next (nt_reader);
- }
-
- nt_writer->next (ct_writer);
-
- if (head)
- {
- if (head != new_top)
- head->link (new_top);
- }
- else
- nt_reader->next (0);
-
- new_top->next (current_top);
-
- if (nt_reader->open (new_top->arg ()) == -1)
- return -1;
-
- if (nt_writer->open (new_top->arg ()) == -1)
- return -1;
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::open (void *a,
- ACE_Module<ACE_SYNCH_USE> *head,
- ACE_Module<ACE_SYNCH_USE> *tail)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::open");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- ACE_Task<ACE_SYNCH_USE> *h1 = 0, *h2 = 0;
- ACE_Task<ACE_SYNCH_USE> *t1 = 0, *t2 = 0;
-
- if (head == 0)
- {
- ACE_NEW_RETURN (h1,
- ACE_Stream_Head<ACE_SYNCH_USE>,
- -1);
- ACE_NEW_RETURN (h2,
- ACE_Stream_Head<ACE_SYNCH_USE>,
- -1);
- ACE_NEW_RETURN (head,
- ACE_Module<ACE_SYNCH_USE> (ACE_LIB_TEXT ("ACE_Stream_Head"),
- h1, h2,
- a,
- M_DELETE),
- -1);
- }
-
- if (tail == 0)
- {
- ACE_NEW_RETURN (t1,
- ACE_Stream_Tail<ACE_SYNCH_USE>,
- -1);
- ACE_NEW_RETURN (t2,
- ACE_Stream_Tail<ACE_SYNCH_USE>,
- -1);
- ACE_NEW_RETURN (tail,
- ACE_Module<ACE_SYNCH_USE> (ACE_LIB_TEXT ("ACE_Stream_Tail"),
- t1, t2,
- a,
- M_DELETE),
- -1);
- }
-
- // Make sure *all* the allocation succeeded!
- if (head == 0 && (h1 == 0 || h2 == 0)
- || tail == 0 && (t1 == 0 || t2 == 0))
- {
- delete h1;
- delete h2;
- delete t1;
- delete t2;
- delete head;
- delete tail;
- errno = ENOMEM;
- return -1;
- }
-
- this->stream_head_ = head;
- this->stream_tail_ = tail;
-
- if (this->push_module (this->stream_tail_) == -1)
- return -1;
- else if (this->push_module (this->stream_head_,
- this->stream_tail_,
- this->stream_head_) == -1)
- return -1;
-
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::close (int flags)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::close");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- if (this->stream_head_ != 0
- && this->stream_tail_ != 0)
- {
- // Don't bother checking return value here.
- this->unlink_i ();
-
- int result = 0;
-
- // Remove and cleanup all the intermediate modules.
-
- while (this->stream_head_->next () != this->stream_tail_)
- if (this->pop (flags) == -1)
- result = -1;
-
- // Clean up the head and tail of the stream.
- if (this->stream_head_->close (flags) == -1)
- result = -1;
- if (this->stream_tail_->close (flags) == -1)
- result = -1;
-
- // Cleanup the memory.
- delete this->stream_head_;
- delete this->stream_tail_;
-
- this->stream_head_ = 0;
- this->stream_tail_ = 0;
-
- // Tell all threads waiting on the close that we are done.
- this->final_close_.broadcast ();
- return result;
- }
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::control (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
- void *a)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::control");
- ACE_IO_Cntl_Msg ioc (cmd);
-
- ACE_Message_Block *db;
-
- // Try to create a data block that contains the user-supplied data.
- ACE_NEW_RETURN (db,
- ACE_Message_Block (sizeof (int),
- ACE_Message_Block::MB_IOCTL,
- 0,
- (char *) a),
- -1);
- // Try to create a control block <cb> that contains the control
- // field and a pointer to the data block <db> in <cb>'s continuation
- // field.
- ACE_Message_Block *cb = 0;
-
- ACE_NEW_RETURN (cb,
- ACE_Message_Block (sizeof ioc,
- ACE_Message_Block::MB_IOCTL,
- db,
- (char *) &ioc),
- -1);
- // @@ Michael: The old semantic assumed that cb returns == 0
- // if no memory was available. We will now return immediately
- // without release (errno is set to ENOMEM by the macro).
-
- // If we can't allocate <cb> then we need to delete db and return
- // -1.
- if (cb == 0)
- {
- db->release ();
- errno = ENOMEM;
- return -1;
- }
-
- int result;
-
- if (this->stream_head_->writer ()->put (cb) == -1)
- result = -1;
- else if (this->stream_head_->reader ()->getq (cb) == -1)
- result = -1;
- else
- result = ((ACE_IO_Cntl_Msg *) cb->rd_ptr ())->rval ();
-
- // This will also release db if it's reference count == 0.
- cb->release ();
-
- return result;
-}
-
-// Link two streams together at their bottom-most Modules (i.e., the
-// one just above the Stream tail). Note that all of this is premised
-// on the fact that the Stream head and Stream tail are non-NULL...
-// This must be called with locks held.
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::link_i (ACE_Stream<ACE_SYNCH_USE> &us)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::link_i");
- this->linked_us_ = &us;
- // Make sure the other side is also linked to us!
- us.linked_us_ = this;
-
- ACE_Module<ACE_SYNCH_USE> *my_tail = this->stream_head_;
-
- if (my_tail == 0)
- return -1;
-
- // Locate the module just above our Stream tail.
- while (my_tail->next () != this->stream_tail_)
- my_tail = my_tail->next ();
-
- ACE_Module<ACE_SYNCH_USE> *other_tail = us.stream_head_;
-
- if (other_tail == 0)
- return -1;
-
- // Locate the module just above the other Stream's tail.
- while (other_tail->next () != us.stream_tail_)
- other_tail = other_tail->next ();
-
- // Reattach the pointers so that the two streams are linked!
- my_tail->writer ()->next (other_tail->reader ());
- other_tail->writer ()->next (my_tail->reader ());
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::link (ACE_Stream<ACE_SYNCH_USE> &us)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::link");
-
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- return this->link_i (us);
-}
-
-// Must be called with locks held...
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::unlink_i (void)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::unlink_i");
-
- // Only try to unlink if we are in fact still linked!
-
- if (this->linked_us_ != 0)
- {
- ACE_Module<ACE_SYNCH_USE> *my_tail = this->stream_head_;
-
- // Only relink if we still exist!
- if (my_tail)
- {
- // Find the module that's just before our stream tail.
- while (my_tail->next () != this->stream_tail_)
- my_tail = my_tail->next ();
-
- // Restore the writer's next() link to our tail.
- my_tail->writer ()->next (this->stream_tail_->writer ());
- }
-
- ACE_Module<ACE_SYNCH_USE> *other_tail =
- this->linked_us_->stream_head_;
-
- // Only fiddle with the other side if it in fact still remains.
- if (other_tail != 0)
- {
- while (other_tail->next () != this->linked_us_->stream_tail_)
- other_tail = other_tail->next ();
-
- other_tail->writer ()->next (this->linked_us_->stream_tail_->writer ());
-
- }
-
- // Make sure the other side is also aware that it's been unlinked!
- this->linked_us_->linked_us_ = 0;
-
- this->linked_us_ = 0;
- return 0;
- }
- else
- return -1;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::unlink (void)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::unlink");
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
- return this->unlink_i ();
-}
-
-template <ACE_SYNCH_DECL>
-ACE_Stream<ACE_SYNCH_USE>::ACE_Stream (void * a,
- ACE_Module<ACE_SYNCH_USE> *head,
- ACE_Module<ACE_SYNCH_USE> *tail)
- : linked_us_ (0),
- final_close_ (this->lock_)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::ACE_Stream");
- if (this->open (a, head, tail) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_Stream<ACE_SYNCH_USE>::open (%s, %s)\n"),
- head->name (), tail->name ()));
-}
-
-template <ACE_SYNCH_DECL>
-ACE_Stream<ACE_SYNCH_USE>::~ACE_Stream (void)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::~ACE_Stream");
-
- if (this->stream_head_ != 0)
- this->close ();
-}
-
-template <ACE_SYNCH_DECL>
-ACE_Stream_Iterator<ACE_SYNCH_USE>::ACE_Stream_Iterator (const ACE_Stream<ACE_SYNCH_USE> &sr)
- : next_ (sr.stream_head_)
-{
- ACE_TRACE ("ACE_Stream_Iterator<ACE_SYNCH_USE>::ACE_Stream_Iterator");
-}
-
-#endif /* ACE_STREAM_C */
diff --git a/ace/Stream.h b/ace/Stream.h
deleted file mode 100644
index b5bcbe002d9..00000000000
--- a/ace/Stream.h
+++ /dev/null
@@ -1,233 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Stream.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@uci.edu>
- */
-//==========================================================================
-
-#ifndef ACE_STREAM_H
-#define ACE_STREAM_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/IO_Cntl_Msg.h"
-#include "ace/Message_Block.h"
-#include "ace/Time_Value.h"
-#include "ace/Module.h"
-
-// Forward decls.
-template<ACE_SYNCH_DECL> class ACE_Stream_Iterator;
-
-/**
- * @class ACE_Stream
- *
- * @brief This class is the primary abstraction for the ASX framework.
- * It is moduled after System V Stream.
- *
- * A Stream consists of a stack of <ACE_Modules>, each of which
- * contains two <ACE_Tasks>. Even though the methods in this
- * class are virtual, this class isn't really intended for
- * subclassing unless you know what you are doing. In
- * particular, the <ACE_Stream> destructor calls <close>, which
- * won't be overridden properly unless you call it in a subclass
- * destructor.
- */
-template <ACE_SYNCH_DECL>
-class ACE_Stream
-{
-public:
- friend class ACE_Stream_Iterator<ACE_SYNCH_USE>;
-
- enum
- {
- /// Indicates that <close> deletes the Tasks. Don't change this
- /// value without updating the same enum in class ACE_Module...
- M_DELETE = 3
- };
-
- // = Initializatation and termination methods.
- /**
- * Create a Stream consisting of <head> and <tail> as the Stream
- * head and Stream tail, respectively. If these are 0 then the
- * <ACE_Stream_Head> and <ACE_Stream_Tail> are used, respectively.
- * <arg> is the value past in to the <open> methods of the tasks.
- */
- ACE_Stream (void *arg = 0,
- ACE_Module<ACE_SYNCH_USE> *head = 0,
- ACE_Module<ACE_SYNCH_USE> *tail = 0);
-
- /**
- * Create a Stream consisting of <head> and <tail> as the Stream
- * head and Stream tail, respectively. If these are 0 then the
- * <ACE_Stream_Head> and <ACE_Stream_Tail> are used, respectively.
- * <arg> is the value past in to the <open> methods of the tasks.
- */
- virtual int open (void *arg,
- ACE_Module<ACE_SYNCH_USE> *head = 0,
- ACE_Module<ACE_SYNCH_USE> *tail = 0);
-
- /// Close down the stream and release all the resources.
- virtual int close (int flags = M_DELETE);
-
- /// Close down the stream and release all the resources.
- virtual ~ACE_Stream (void);
-
- // = ACE_Stream plumbing operations
-
- /// Add a new module <mod> right below the Stream head.
- virtual int push (ACE_Module<ACE_SYNCH_USE> *mod);
-
- /// Remove the <mod> right below the Stream head and close it down.
- virtual int pop (int flags = M_DELETE);
-
- /// Return the top module on the stream (right below the stream
- /// head).
- virtual int top (ACE_Module<ACE_SYNCH_USE> *&mod);
-
- /// Insert a new module <mod> below the named module <prev_name>.
- virtual int insert (const ACE_TCHAR *prev_name,
- ACE_Module<ACE_SYNCH_USE> *mod);
-
- /// Replace the named module <replace_name> with a new module <mod>.
- virtual int replace (const ACE_TCHAR *replace_name,
- ACE_Module<ACE_SYNCH_USE> *mod,
- int flags = M_DELETE);
-
- /// Remove the named module <mod> from the stream. This bypasses the
- /// strict LIFO ordering of <push> and <pop>.
- virtual int remove (const ACE_TCHAR *mod,
- int flags = M_DELETE);
-
- /// Return current stream head.
- virtual ACE_Module<ACE_SYNCH_USE> *head (void);
-
- /// Return current stream tail.
- virtual ACE_Module<ACE_SYNCH_USE> *tail (void);
-
- /// Find a particular ACE_Module.
- virtual ACE_Module<ACE_SYNCH_USE> *find (const ACE_TCHAR *mod);
-
- /// Create a pipe between two Streams.
- virtual int link (ACE_Stream<ACE_SYNCH_USE> &);
-
- /// Remove a pipe formed between two Streams.
- virtual int unlink (void);
-
- // = Blocking data transfer operations
- /**
- * Send the message <mb> down the stream, starting at the Module
- * below the Stream head. Wait for upto <timeout> amount of
- * absolute time for the operation to complete (or block forever if
- * <timeout> == 0).
- */
- virtual int put (ACE_Message_Block *mb,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Read the message <mb> that is stored in the stream head.
- * Wait for upto <timeout> amount of absolute time for the operation
- * to complete (or block forever if <timeout> == 0).
- */
- virtual int get (ACE_Message_Block *&mb,
- ACE_Time_Value *timeout = 0);
-
- /// Send control message down the stream.
- virtual int control (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
- void *args);
-
- /// Synchronize with the final close of the stream.
- virtual int wait (void);
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Actually perform the unlinking of two Streams (must be called
- /// with locks held).
- int unlink_i (void);
-
- /// Actually perform the linking of two Streams (must be called with
- /// locks held).
- int link_i (ACE_Stream<ACE_SYNCH_USE> &);
-
- /// Must a new module onto the Stream.
- int push_module (ACE_Module<ACE_SYNCH_USE> *,
- ACE_Module<ACE_SYNCH_USE> * = 0,
- ACE_Module<ACE_SYNCH_USE> * = 0);
-
- /// Pointer to the head of the stream.
- ACE_Module<ACE_SYNCH_USE> *stream_head_;
-
- /// Pointer to the tail of the stream.
- ACE_Module<ACE_SYNCH_USE> *stream_tail_;
-
- /// Pointer to an adjoining linked stream.
- ACE_Stream<ACE_SYNCH_USE> *linked_us_;
-
- // = Synchronization objects used for thread-safe streams.
- /// Protect the stream against race conditions.
- ACE_SYNCH_MUTEX_T lock_;
-
- /// Use to tell all threads waiting on the close that we are done.
- ACE_SYNCH_CONDITION_T final_close_;
-};
-
-/**
- * @class ACE_Stream_Iterator
- *
- * @brief Iterate through an <ACE_Stream>.
- */
-template <ACE_SYNCH_DECL>
-class ACE_Stream_Iterator
-{
-public:
- // = Initialization method.
- ACE_Stream_Iterator (const ACE_Stream<ACE_SYNCH_USE> &sr);
-
- // = Iteration methods.
-
- /// Pass back the <next_item> that hasn't been seen in the set.
- /// Returns 0 when all items have been seen, else 1.
- int next (const ACE_Module<ACE_SYNCH_USE> *&next_item);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
-private:
- /// Next <Module> that we haven't yet seen.
- ACE_Module<ACE_SYNCH_USE> *next_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Stream.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Stream.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Stream.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_STREAM_H */
diff --git a/ace/Stream.i b/ace/Stream.i
deleted file mode 100644
index 42a4989eff0..00000000000
--- a/ace/Stream.i
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Stream.i
-
-template <ACE_SYNCH_DECL> ACE_INLINE ACE_Module<ACE_SYNCH_USE> *
-ACE_Stream<ACE_SYNCH_USE>::head (void)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::head");
- return this->stream_head_;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE ACE_Module<ACE_SYNCH_USE> *
-ACE_Stream<ACE_SYNCH_USE>::tail (void)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::tail");
- return this->stream_tail_;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Stream<ACE_SYNCH_USE>::wait (void)
-{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::wait");
- return this->final_close_.wait ();
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Stream_Iterator<ACE_SYNCH_USE>::next (const ACE_Module<ACE_SYNCH_USE> *&mod)
-{
- ACE_TRACE ("ACE_Stream_Iterator<ACE_SYNCH_USE>::next");
- mod = this->next_;
- return this->next_ != 0;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Stream_Iterator<ACE_SYNCH_USE>::done (void) const
-{
- ACE_TRACE ("ACE_Stream_Iterator<ACE_SYNCH_USE>::done");
- return this->next_ == 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Iterator<ACE_SYNCH_USE>::advance (void)
-{
- ACE_TRACE ("ACE_Stream_Iterator<ACE_SYNCH_USE>::advance");
- this->next_ = this->next_->next ();
- return this->next_ != 0;
-}
-
diff --git a/ace/Stream_Modules.cpp b/ace/Stream_Modules.cpp
deleted file mode 100644
index 84527422c72..00000000000
--- a/ace/Stream_Modules.cpp
+++ /dev/null
@@ -1,371 +0,0 @@
-// Stream_Modules.cpp
-// $Id$
-
-#ifndef ACE_STREAM_MODULES_C
-#define ACE_STREAM_MODULES_C
-
-#include "ace/Stream_Modules.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, Stream_Modules, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Stream_Head)
-
-template <ACE_SYNCH_DECL>
-ACE_Stream_Head<ACE_SYNCH_USE>::ACE_Stream_Head (void)
-{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::ACE_Stream_Head");
-}
-
-template <ACE_SYNCH_DECL>
-ACE_Stream_Head<ACE_SYNCH_USE>::~ACE_Stream_Head (void)
-{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::~ACE_Stream_Head");
-}
-
-template <ACE_SYNCH_DECL> void
-ACE_Stream_Head<ACE_SYNCH_USE>::dump (void) const
-{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::dump");
-}
-
-// ACE_Module that act as the head and tail of a Stream.
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::open (void *)
-{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::open");
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::close (u_long)
-{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::close");
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::svc (void)
-{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::svc");
- return -1;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::control (ACE_Message_Block *mb)
-{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::control");
- ACE_IO_Cntl_Msg *ioc = (ACE_IO_Cntl_Msg *) mb->rd_ptr ();
- ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd;
-
- switch (cmd = ioc->cmd ())
- {
- case ACE_IO_Cntl_Msg::SET_LWM:
- case ACE_IO_Cntl_Msg::SET_HWM:
- this->water_marks (cmd, *(size_t *) mb->cont ()->rd_ptr ());
- ioc->rval (0);
- break;
- default:
- return 0;
- }
- return ioc->rval ();
-}
-
-// Performs canonical flushing at the ACE_Stream Head.
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::canonical_flush (ACE_Message_Block *mb)
-{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::canonical_flush");
- char *cp = mb->rd_ptr ();
-
- if (ACE_BIT_ENABLED (*cp, ACE_Task_Flags::ACE_FLUSHR))
- {
- this->flush (ACE_Task_Flags::ACE_FLUSHALL);
- ACE_CLR_BITS (*cp, ACE_Task_Flags::ACE_FLUSHR);
- }
-
- if (ACE_BIT_ENABLED (*cp, ACE_Task_Flags::ACE_FLUSHW))
- return this->reply (mb);
- else
- mb->release ();
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::put (ACE_Message_Block *mb,
- ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::put");
- int res = 0;
-
- if (mb->msg_type () == ACE_Message_Block::MB_IOCTL
- && (res = this->control (mb)) == -1)
- return res;
-
- if (this->is_writer ())
- return this->put_next (mb, tv);
- else // this->is_reader ()
- {
- switch (mb->msg_type ())
- {
- case ACE_Message_Block::MB_FLUSH:
- return this->canonical_flush (mb);
- default:
- break;
- }
-
- return this->putq (mb, tv);
- }
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::init (int, ACE_TCHAR *[])
-{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::init");
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::info (ACE_TCHAR **strp, size_t length) const
-{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::info");
- const ACE_TCHAR *name = this->name ();
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (name)) == 0)
- return -1;
- else
- ACE_OS::strsncpy (*strp, name, length);
- return ACE_static_cast (int, ACE_OS_String::strlen (name));
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::fini (void)
-{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::fini");
- return 0;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Stream_Tail)
-
-template <ACE_SYNCH_DECL>
-ACE_Stream_Tail<ACE_SYNCH_USE>::ACE_Stream_Tail (void)
-{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::ACE_Stream_Tail");
-}
-
-template <ACE_SYNCH_DECL>
-ACE_Stream_Tail<ACE_SYNCH_USE>::~ACE_Stream_Tail (void)
-{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::~ACE_Stream_Tail");
-}
-
-template <ACE_SYNCH_DECL> void
-ACE_Stream_Tail<ACE_SYNCH_USE>::dump (void) const
-{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::dump");
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::open (void *)
-{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::open");
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::close (u_long)
-{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::close");
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::svc (void)
-{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::svc");
- return -1;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::control (ACE_Message_Block *mb)
-{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::control");
- ACE_IO_Cntl_Msg *ioc = (ACE_IO_Cntl_Msg *) mb->rd_ptr ();
- ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd;
-
- switch (cmd = ioc->cmd ())
- {
- case ACE_IO_Cntl_Msg::SET_LWM:
- case ACE_IO_Cntl_Msg::SET_HWM:
- {
- size_t wm_size = *(size_t *) mb->cont ()->rd_ptr ();
-
- this->water_marks (cmd, wm_size);
- this->sibling ()->water_marks (cmd, wm_size);
- ioc->rval (0);
- break;
- }
- default:
- mb->msg_type (ACE_Message_Block::MB_IOCNAK);
- }
- return this->reply (mb);
-}
-
-// Perform flush algorithm as though we were the driver.
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::canonical_flush (ACE_Message_Block *mb)
-{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::canonical_flush");
- char *cp = mb->rd_ptr ();
-
- if (ACE_BIT_ENABLED (*cp, ACE_Task_Flags::ACE_FLUSHW))
- {
- this->flush (ACE_Task_Flags::ACE_FLUSHALL);
- ACE_CLR_BITS (*cp, ACE_Task_Flags::ACE_FLUSHW);
- }
-
- if (ACE_BIT_ENABLED (*cp, ACE_Task_Flags::ACE_FLUSHR))
- {
- this->sibling ()->flush (ACE_Task_Flags::ACE_FLUSHALL);
- return this->reply (mb);
- }
- else
- mb->release ();
-
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::put (ACE_Message_Block *mb,
- ACE_Time_Value *)
-{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::put");
-
- if (this->is_writer ())
- {
- switch (mb->msg_type ())
- {
- case ACE_Message_Block::MB_IOCTL:
- return this->control (mb);
- /* NOTREACHED */
- default:
- mb->release ();
- return 0;
- /* NOTREACHED */
- }
- }
-
- return -1;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::init (int, ACE_TCHAR *[])
-{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::init");
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::info (ACE_TCHAR **strp, size_t length) const
-{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::info");
- const ACE_TCHAR *name = this->name ();
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (name)) == 0)
- return -1;
- else
- ACE_OS::strsncpy (*strp, name, length);
- return ACE_static_cast (int, ACE_OS_String::strlen (name));
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::fini (void)
-{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::fini");
- return 0;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Thru_Task)
-
-template <ACE_SYNCH_DECL>
-ACE_Thru_Task<ACE_SYNCH_USE>::ACE_Thru_Task (void)
-{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::ACE_Thru_Task");
-}
-
-template <ACE_SYNCH_DECL>
-ACE_Thru_Task<ACE_SYNCH_USE>::~ACE_Thru_Task (void)
-{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::~ACE_Thru_Task");
-}
-
-template <ACE_SYNCH_DECL> void
-ACE_Thru_Task<ACE_SYNCH_USE>::dump (void) const
-{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::dump");
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::open (void *)
-{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::open");
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::close (u_long)
-{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::close");
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::svc (void)
-{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::svc");
- return -1;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::put (ACE_Message_Block *msg,
- ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::put");
- return this->put_next (msg, tv);
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::init (int, ACE_TCHAR *[])
-{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::init");
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::info (ACE_TCHAR **strp,
- size_t length) const
-{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::info");
- const ACE_TCHAR *name = this->name ();
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (name)) == 0)
- return -1;
- else
- ACE_OS::strsncpy (*strp, name, length);
- return ACE_static_cast (int, ACE_OS_String::strlen (name));
-}
-
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::fini (void)
-{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::fini");
- return 0;
-}
-
-#endif /* ACE_STREAM_MODULES_C */
diff --git a/ace/Stream_Modules.h b/ace/Stream_Modules.h
deleted file mode 100644
index 536db22e65e..00000000000
--- a/ace/Stream_Modules.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Stream_Modules.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-// This needs to go outside of the #if !defined() block. Don't ask...
-#include "ace/Task.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#ifndef ACE_STREAM_MODULES
-#define ACE_STREAM_MODULES
-#include "ace/pre.h"
-
-/**
- * @class ACE_Stream_Head
- *
- * @brief Standard module that acts as the head of a ustream.
- */
-template <ACE_SYNCH_DECL>
-class ACE_Stream_Head : public ACE_Task<ACE_SYNCH_USE>
-{
-public:
- /// Construction
- ACE_Stream_Head (void);
-
- /// Destruction
- ~ACE_Stream_Head (void);
-
- // = ACE_Task hooks
- virtual int open (void *a = 0);
- virtual int close (u_long flags = 0);
- virtual int put (ACE_Message_Block *msg, ACE_Time_Value * = 0);
- virtual int svc (void);
-
- // = Dynamic linking hooks
- virtual int init (int argc, ACE_TCHAR *argv[]);
- virtual int info (ACE_TCHAR **info_string, size_t length) const;
- virtual int fini (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Performs canonical flushing at the ACE_Stream Head.
- int control (ACE_Message_Block *);
- int canonical_flush (ACE_Message_Block *);
-};
-
-/**
- * @class ACE_Stream_Tail
- *
- * @brief Standard module that acts as the head of a ustream.
- */
-template <ACE_SYNCH_DECL>
-class ACE_Stream_Tail : public ACE_Task<ACE_SYNCH_USE>
-{
-public:
- /// Construction
- ACE_Stream_Tail (void);
-
- /// Destruction
- ~ACE_Stream_Tail (void);
-
- // = ACE_Task hooks
- virtual int open (void *a = 0);
- virtual int close (u_long flags = 0);
- virtual int put (ACE_Message_Block *msg, ACE_Time_Value * = 0);
- virtual int svc (void);
-
- // = Dynamic linking hooks
- virtual int init (int argc, ACE_TCHAR *argv[]);
- virtual int info (ACE_TCHAR **info_string, size_t length) const;
- virtual int fini (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Performs canonical flushing at the ACE_Stream tail.
- int control (ACE_Message_Block *);
- int canonical_flush (ACE_Message_Block *);
-};
-
-/**
- * @class ACE_Thru_Task
- *
- * @brief Standard module that acts as a "no op", simply passing on all
- * data to its adjacent neighbor.
- */
-template <ACE_SYNCH_DECL>
-class ACE_Thru_Task : public ACE_Task<ACE_SYNCH_USE>
-{
-public:
- /// Construction
- ACE_Thru_Task (void);
-
- /// Destruction
- ~ACE_Thru_Task (void);
-
- // = ACE_Task hooks
- virtual int open (void *a = 0);
- virtual int close (u_long flags = 0);
- virtual int put (ACE_Message_Block *msg, ACE_Time_Value * = 0);
- virtual int svc (void);
-
- // = Dynamic linking hooks
- virtual int init (int argc, ACE_TCHAR *argv[]);
- virtual int info (ACE_TCHAR **info_string, size_t length) const;
- virtual int fini (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Stream_Modules.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Stream_Modules.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_STREAM_MODULES */
diff --git a/ace/String_Base.cpp b/ace/String_Base.cpp
deleted file mode 100644
index 43e457d24fc..00000000000
--- a/ace/String_Base.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-#ifndef ACE_STRING_BASE_CPP
-#define ACE_STRING_BASE_CPP
-
-#include "ace/ACE.h"
-#include "ace/Malloc.h"
-#include "ace/String_Base.h"
-#include "ace/Auto_Ptr.h"
-
-#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
-# include "ace/streams.h"
-#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/String_Base.i"
-#endif /* __ACE_INLINE__ */
-
-
-ACE_RCSID (ace,
- String_Base,
- "$Id$")
-
-
-ACE_ALLOC_HOOK_DEFINE(ACE_String_Base)
-
-template <class CHAR>
-CHAR ACE_String_Base<CHAR>::NULL_String_ = '\0';
-
-// this method might benefit from a little restructuring.
-template <class CHAR> void
-ACE_String_Base<CHAR>::set (const CHAR *s,
- size_t len,
- int release)
-{
- // Case 1. Going from memory to more memory
- size_t new_buf_len = len + 1;
- if (s != 0 && len != 0 && release && this->buf_len_ < new_buf_len)
- {
- CHAR *temp;
- ACE_ALLOCATOR (temp,
- (CHAR *) this->allocator_->malloc (new_buf_len * sizeof (CHAR)));
-
- if (this->release_)
- this->allocator_->free (this->rep_);
-
- this->rep_ = temp;
- this->buf_len_ = new_buf_len;
- this->release_ = 1;
- this->len_ = len;
- ACE_OS::memcpy (this->rep_, s, len * sizeof (CHAR));
- // NUL terminate.
- this->rep_[len] = '\0';
- }
-
- // Case 2. No memory allocation is necessary.
- else
- {
- // Free memory if necessary and figure out future ownership
- if (!release || s == 0 || len == 0)
- {
- if (this->release_)
- {
- this->allocator_->free (this->rep_);
- this->release_ = 0;
- }
- }
- // else - stay with whatever value for release_ we have.
-
- // Populate data.
- if (s == 0 || len == 0)
- {
- this->buf_len_ = 0;
- this->len_ = 0;
- this->rep_ = &ACE_String_Base<CHAR>::NULL_String_;
- }
- else if (!release)
- {
- this->buf_len_ = len;
- this->len_ = len;
- this->rep_ = (CHAR *) s;
- }
- else
- {
- ACE_OS::memcpy (this->rep_, s, len * sizeof (CHAR));
- // NUL terminate.
- this->rep_[len] = 0;
- this->len_ = len;
- }
- }
-}
-
-// Return substring.
-template <class CHAR> ACE_String_Base<CHAR>
-ACE_String_Base<CHAR>::substring (size_t offset,
- ssize_t length) const
-{
- ACE_String_Base<CHAR> nill;
- size_t count = length;
-
- // case 1. empty string
- if (this->len_ == 0)
- return nill;
-
- // case 2. start pos past our end
- if (offset >= this->len_)
- return nill;
- // No length == empty string.
- else if (length == 0)
- return nill;
- // Get all remaining bytes.
- else if (length == -1 || count > (this->len_ - offset))
- count = this->len_ - offset;
-
- return ACE_String_Base<CHAR> (&this->rep_[offset],
- count,
- this->allocator_);
-}
-
-// Concat operator (does copy memory).
-
-template <class CHAR> ACE_String_Base<CHAR> &
-ACE_String_Base<CHAR>::operator+= (const ACE_String_Base<CHAR> &s)
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator+=");
-
- if (s.len_ > 0)
- {
- size_t new_buf_len = this->len_ + s.len_ + 1;
-
- // case 1. No memory allocation needed.
- if (this->buf_len_ >= new_buf_len)
- // Copy in data from new string.
- ACE_OS::memcpy (this->rep_ + this->len_,
- s.rep_,
- s.len_ * sizeof (CHAR));
- // case 2. Memory reallocation is needed
- else
- {
- CHAR *t = 0;
-
- ACE_ALLOCATOR_RETURN (t,
- (CHAR *) this->allocator_->malloc (new_buf_len *
- sizeof (CHAR)),
- *this);
-
- // Copy memory from old string into new string.
- ACE_OS::memcpy (t,
- this->rep_,
- this->len_ * sizeof (CHAR));
-
- ACE_OS::memcpy (t + this->len_,
- s.rep_,
- s.len_ * sizeof (CHAR));
-
- if (this->release_)
- this->allocator_->free (this->rep_);
-
- this->release_ = 1;
- this->rep_ = t;
- this->buf_len_ = new_buf_len;
- }
-
- this->len_ += s.len_;
- this->rep_[this->len_] = '\0';
- }
-
- return *this;
-}
-
-template <class CHAR> u_long
-ACE_String_Base<CHAR>::hash (void) const
-{
- return ACE::hash_pjw ((ACE_reinterpret_cast (char *,
- ACE_const_cast (CHAR *,
- this->rep_))),
- this->len_ * sizeof (CHAR));
-}
-
-template <class CHAR> void
-ACE_String_Base<CHAR>::resize (size_t len, CHAR c)
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::resize");
-
- // Only reallocate if we don't have enough space...
- if (this->buf_len_ <= len)
- {
- if (this->buf_len_ != 0)
- this->allocator_->free (this->rep_);
-
- this->rep_ = (CHAR *)
- this->allocator_->malloc ((len + 1) * sizeof (CHAR));
- this->buf_len_ = len + 1;
- }
-
- this->len_ = 0;
- ACE_OS::memset (this->rep_,
- c,
- this->buf_len_ * sizeof (CHAR));
-}
-
-#endif /* ACE_STRING_BASE_CPP */
diff --git a/ace/String_Base.h b/ace/String_Base.h
deleted file mode 100644
index 8856be1dba0..00000000000
--- a/ace/String_Base.h
+++ /dev/null
@@ -1,445 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file String_Base.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt (schmidt@cs.wustl.edu)
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_STRING_BASE_H
-#define ACE_STRING_BASE_H
-
-#include "ace/pre.h"
-
-#include "ace/String_Base_Const.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Global_Macros.h"
-#include "ace/OS_String.h"
-#include "ace/OS_Memory.h"
-
-
-// Forward decl.
-class ACE_Allocator;
-
-/**
- * @class ACE_String_Base
- *
- * @brief This class provides a wrapper facade for C strings.
- *
- * This class uses an ACE_Allocator to allocate memory. The
- * user can make this a persistant class by providing an
- * ACE_Allocator with a persistable memory pool. This class is
- * optimized for efficiency, so it doesn't provide any internal
- * locking.
- * NOTE: if an instance of this class is constructed from or
- * assigned an empty string (with first element of '\0'), then it
- * is not allocated new space. Instead, its internal
- * representation is set equal to a global empty string.
- * CAUTION: in cases when ACE_String_Base is constructed from a
- * provided buffer with the release parameter set to 0,
- * ACE_String_Base is not guaranteed to be '\0' terminated.
- */
-template <class CHAR> class ACE_String_Base : public ACE_String_Base_Const
-{
-public:
- /**
- * Default constructor.
- *
- * @param alloc ACE_Allocator associated with string
- * @return Default ACE_String_Base string.
- */
- ACE_String_Base (ACE_Allocator * alloc = 0);
-
- /**
- * Constructor that copies @a s into dynamically allocated memory.
- * If @a release is non-0 then the @a ACE_Allocator is responsible for
- * freeing this memory. Memory is _not_ allocated/freed if @a release
- * is 0.
- *
- * @param s Zero terminated input string
- * @param alloc ACE_Allocator associated with string
- * @param release Allocator responsible(1)/not reponsible(0) for
- * freeing memory.
- * @return ACE_String_Base containing const CHAR *s
- */
- ACE_String_Base (const CHAR * s,
- ACE_Allocator * alloc = 0,
- int release = 1);
-
- /**
- * Constructor that copies @a len CHARs of @a s into dynamically
- * allocated memory (will zero terminate the result). If @a release
- * is non-0 then the @a ACE_allocator is responsible for freeing this
- * memory. Memory is _not_ allocated/freed if @a release is 0.
- *
- * @param s Non-zero terminated input string
- * @param len Length of non-zero terminated input string
- * @param alloc ACE_Allocator associated with string
- * @param release Allocator responsible(1)/not reponsible(0) for
- * freeing memory.
- * @return ACE_String_Base containing const CHAR *s
- */
- ACE_String_Base (const CHAR * s,
- size_t len,
- ACE_Allocator * alloc = 0,
- int release = 1);
-
- /**
- * Copy constructor.
- *
- * @param s Input ACE_String_Base string to copy
- * @return Copy of input string @a s
- */
- ACE_String_Base (const ACE_String_Base < CHAR > &s);
-
- /**
- * Constructor that copies @a c into dynamically allocated memory.
- *
- * @param c Single input character.
- * @param alloc ACE_Allocator associated with string
- * @return ACE_String_Base containing CHAR 'c'
- */
- ACE_String_Base (CHAR c,
- ACE_Allocator * alloc = 0);
-
- /**
- * Constructor that dynamically allocate @a len long of char array
- * and initialize it to @a c using @a alloc to allocate the memory.
- *
- * @param len Length of character array 'c'
- * @param c Input character array
- * @param alloc ACE_Allocator associated with string
- * @return ACE_String_Base containing character array 'c'
- */
- ACE_String_Base (size_t len,
- CHAR c = 0,
- ACE_Allocator * alloc = 0);
-
- /**
- * Deletes the memory...
- */
- ~ACE_String_Base (void);
-
- /**
- * Return the <slot'th> character in the string (doesn't perform
- * bounds checking).
- *
- * @param slot Index of the desired character
- * @return The character at index @a slot
- */
- const CHAR & operator[] (size_t slot) const;
-
- /**
- * Return the <slot'th> character by reference in the string
- * (doesn't perform bounds checking).
- *
- * @param slot Index of the desired character
- * @return The character at index @a slot
- */
- CHAR & operator[] (size_t slot);
-
- /**
- * Assignment operator (does copy memory).
- *
- * @param s Input ACE_String_Base string to assign to this object.
- * @return Return a copy of the this string.
- */
- ACE_String_Base < CHAR > &operator = (const ACE_String_Base < CHAR > &s);
-
- /**
- * Assignment alternative method (does not copy memory).
- *
- * @param s Input ACE_String_Base string to assign to this object.
- * @return Return this string.
- */
- ACE_String_Base < CHAR > &assign_nocopy (const ACE_String_Base < CHAR > &s);
-
- /**
- * Copy @a s into this @a ACE_String_Base. Memory is _not_
- * allocated/freed if @a release is 0.
- *
- * @param s Null terminated input string
- * @param release Allocator responsible(1)/not reponsible(0) for
- * freeing memory.
- */
- void set (const CHAR * s, int release = 1);
-
- /**
- * Copy @a len bytes of @a s (will zero terminate the result).
- * Memory is _not_ allocated/freed if @a release is 0.
- *
- * @param s Non-zero terminated input string
- * @param len Length of input string 's'
- * @param release Allocator responsible(1)/not reponsible(0) for
- * freeing memory.
- */
- void set (const CHAR * s, size_t len, int release);
-
- /**
- * Clear this string. Memory is _not_ freed if <release> is 0.
- *
- * @param release Memory is freed if 1 or not if 0.
- */
- void clear (int release = 0);
-
- /**
- * Return a substring given an offset and length, if length == -1
- * use rest of str. Return empty substring if offset or
- * offset/length are invalid.
- *
- * @param offset Index of first desired character of the substring.
- * @param length How many characters to return starting at the offset.
- * @return The string containing the desired substring
- */
- ACE_String_Base < CHAR > substring (size_t offset,
- ssize_t length = -1) const;
-
- /**
- * Same as <substring>.
- *
- * @param offset Index of first desired character of the substring.
- * @param length How many characters to return starting at the offset.
- * @return The string containing the desired substring
- */
- ACE_String_Base < CHAR > substr (size_t offset, ssize_t length = -1) const;
-
- /**
- * Concat operator (copies memory).
- *
- * @param s Input ACE_String_Base string to concatenate to another string.
- * @return The combined string (input append to the end of the old). New
- * string is zero terminated.
- */
- ACE_String_Base < CHAR > &operator += (const ACE_String_Base < CHAR > &s);
-
- /**
- * Returns a hash value for this string.
- *
- * @return Hash value of string
- */
- u_long hash (void) const;
-
- /**
- * Return the length of the string.
- *
- * @return Length of stored string
- */
- size_t length (void) const;
-
- /**
- * Get a copy of the underlying representation.
- *
- * This method allocates memory for a copy of the string and returns
- * a pointer to the new area. The caller is responsible for freeing
- * the memory when finished; use delete []
- *
- * @return Pointer reference to the string data. Returned string is
- * zero terminated.
- */
- CHAR *rep (void) const;
-
- /**
- * Get at the underlying representation directly!
- * _Don't_ even think about casting the result to (char *) and modifying it,
- * if it has length 0!
- *
- * @return Pointer reference to the stored string data. No guarantee is
- * that the string is zero terminated.
- *
- */
- const CHAR *fast_rep (void) const;
-
- /**
- * Same as STL String's <c_str> and <fast_rep>.
- */
- const CHAR *c_str (void) const;
-
- /**
- * Comparison operator that will match substrings. Returns the
- * slot of the first location that matches, else -1.
- *
- * @param s Input ACE_String_Base string
- * @return Integer index value of the first location of string @a s or
- * -1 (not found).
- */
- ssize_t strstr (const ACE_String_Base<CHAR> &s) const;
-
- /**
- * Find <str> starting at pos. Returns the slot of the first
- * location that matches (will be >= pos), else npos.
- *
- * @param str Input ACE_String_Base string to search for in stored string.
- * @param pos Starting index position to start searching for string @a str.
- * @return Index value of the first location of string @a str else npos.
- */
- ssize_t find (const ACE_String_Base<CHAR> &str, size_t pos = 0) const;
-
- /**
- * Find @a s starting at pos. Returns the slot of the first
- * location that matches (will be >= pos), else npos.
- *
- * @param s non-zero input string to search for in stored string.
- * @param pos Starting index position to start searching for string @a str.
- * @return Index value of the first location of string @a str else npos.
- */
- ssize_t find (const CHAR *s, size_t pos = 0) const;
-
- /**
- * Find @a c starting at pos. Returns the slot of the first
- * location that matches (will be >= pos), else npos.
- *
- * @param c Input character to search for in stored string.
- * @param pos Starting index position to start searching for string @a str.
- * @return Index value of the first location of string @a str else npos.
- */
- ssize_t find (CHAR c, size_t pos = 0) const;
-
- /**
- * Find @a c starting at pos (counting from the end). Returns the
- * slot of the first location that matches, else npos.
- *
- * @param c Input character to search for in stored string.
- * @param pos Starting index position to start searching for string @a str.
- * @return Index value of the first location of string @a str else npos.
- */
- ssize_t rfind (CHAR c, ssize_t pos = npos) const;
-
- /**
- * Equality comparison operator (must match entire string).
- *
- * @param s Input ACE_String_Base string to compare against stored string.
- * @return Integer value of result (1 = found, 0 = not found).
- */
- int operator == (const ACE_String_Base<CHAR> &s) const;
-
- /**
- * Less than comparison operator.
- *
- * @param s Input ACE_String_Base string to compare against stored string.
- * @return Integer value of result (1 = less than, 0 = greater than or
- * equal).
- */
- int operator < (const ACE_String_Base<CHAR> &s) const;
-
- /**
- * Greater than comparison operator.
- *
- * @param s Input ACE_String_Base string to compare against stored string.
- * @return Integer value of result (1 = greater than, 0 = less than or
- * equal).
- */
- int operator > (const ACE_String_Base<CHAR> &s) const;
-
- /**
- * Inequality comparison operator.
- *
- * @param s Input ACE_String_Base string to compare against stored string.
- * @return Integer value of result (1 = not equal, 0 = equal).
- */
- int operator != (const ACE_String_Base<CHAR> &s) const;
-
- /**
- * Performs a strncmp comparison.
- *
- * @param s Input ACE_String_Base string to compare against stored string.
- * @return Integer value of result (less than 0, 0, greater than 0)
- * depending on how input string @a s is to the stored string.
- */
- int compare (const ACE_String_Base<CHAR> &s) const;
-
- /**
- * Dump the state of an object.
- */
- void dump (void) const;
-
- /**
- * This method is designed for high-performance. Please use with
- * care ;-) If the current size of the string is less than <len>,
- * the string is resized to the new length. The data is zero'd
- * out after this operation.
- *
- * @param len New string size
- * @param c New input string
- */
- void resize (size_t len, CHAR c = 0);
-
- /**
- * Declare the dynamic allocation hooks.
- */
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /**
- * Pointer to a memory allocator.
- */
- ACE_Allocator * allocator_;
-
- /**
- * Length of the ACE_String_Base data (not counting the trailing '\0').
- */
- size_t len_;
-
- /**
- * Length of the ACE_String_Base data buffer. Keeping track of the
- * length allows to avoid unnecessary dynamic allocations.
- */
- size_t buf_len_;
-
- /**
- * Pointer to data.
- */
- CHAR *rep_;
-
- /**
- * Flag that indicates if we own the memory
- */
- int release_;
-
- /**
- * Represents the "NULL" string to simplify the internal logic.
- */
- static CHAR NULL_String_;
-};
-
-template < class CHAR > ACE_INLINE
- ACE_String_Base < CHAR > operator + (const ACE_String_Base < CHAR > &,
- const ACE_String_Base < CHAR > &);
-template < class CHAR > ACE_INLINE
- ACE_String_Base < CHAR > operator + (const ACE_String_Base < CHAR > &,
- const CHAR *);
-template < class CHAR > ACE_INLINE
- ACE_String_Base < CHAR > operator + (const CHAR *,
- const ACE_String_Base < CHAR > &);
-
-template < class CHAR > ACE_INLINE
- ACE_String_Base < CHAR > operator + (const ACE_String_Base < CHAR > &t,
- const CHAR c);
-
-template < class CHAR > ACE_INLINE
- ACE_String_Base < CHAR > operator + (const CHAR c,
- const ACE_String_Base < CHAR > &t);
-
-#if defined (__ACE_INLINE__)
-#include "ace/String_Base.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/String_Base.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("String_Base.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_STRING_BASE_H */
diff --git a/ace/String_Base.i b/ace/String_Base.i
deleted file mode 100644
index f4cb1a547da..00000000000
--- a/ace/String_Base.i
+++ /dev/null
@@ -1,363 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-
-#include "ace/Malloc_Base.h"
-
-// Default constructor.
-
-template <class CHAR> ACE_INLINE
-ACE_String_Base<CHAR>::ACE_String_Base (ACE_Allocator *alloc)
- : allocator_ (alloc ? alloc : ACE_Allocator::instance ()),
- len_ (0),
- buf_len_ (0),
- rep_ (&ACE_String_Base<CHAR>::NULL_String_),
- release_ (0)
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::ACE_String_Base");
-}
-
-// Constructor that actually copies memory.
-
-template <class CHAR> ACE_INLINE
-ACE_String_Base<CHAR>::ACE_String_Base (const CHAR *s,
- ACE_Allocator *alloc,
- int release)
- : allocator_ (alloc ? alloc : ACE_Allocator::instance ()),
- len_ (0),
- buf_len_ (0),
- rep_ (0),
- release_ (0)
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::ACE_String_Base");
-
- size_t length;
- if (s != 0)
- length = ACE_OS_String::strlen (s);
- else
- length = 0;
-
- this->set (s, length, release);
-}
-
-template <class CHAR> ACE_INLINE
-ACE_String_Base<CHAR>::ACE_String_Base (CHAR c,
- ACE_Allocator *alloc)
- : allocator_ (alloc ? alloc : ACE_Allocator::instance ()),
- len_ (0),
- buf_len_ (0),
- rep_ (0),
- release_ (0)
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::ACE_String_Base");
-
- this->set (&c, 1, 1);
-}
-
-// Constructor that actually copies memory.
-
-template <class CHAR> ACE_INLINE
-ACE_String_Base<CHAR>::ACE_String_Base (const CHAR *s,
- size_t len,
- ACE_Allocator *alloc,
- int release)
- : allocator_ (alloc ? alloc : ACE_Allocator::instance ()),
- len_ (0),
- buf_len_ (0),
- rep_ (0),
- release_ (0)
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::ACE_String_Base");
-
- this->set (s, len, release);
-}
-
-// Copy constructor.
-
-template <class CHAR> ACE_INLINE
-ACE_String_Base<CHAR>::ACE_String_Base (const ACE_String_Base<CHAR> &s)
- : allocator_ (s.allocator_ ? s.allocator_ : ACE_Allocator::instance ()),
- len_ (0),
- buf_len_ (0),
- rep_ (0),
- release_ (0)
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::ACE_String_Base");
-
- this->set (s.rep_, s.len_, 1);
-}
-
-template <class CHAR> ACE_INLINE
-ACE_String_Base<CHAR>::ACE_String_Base (size_t len, CHAR c, ACE_Allocator *alloc)
- : allocator_ (alloc ? alloc : ACE_Allocator::instance ()),
- len_ (0),
- buf_len_ (0),
- rep_ (0),
- release_ (0)
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::ACE_String_Base");
-
- this->resize (len, c);
-}
-
-template <class CHAR> ACE_INLINE
-ACE_String_Base<CHAR>::~ACE_String_Base (void)
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::~ACE_String_Base");
-
- this->set (0, 0, 0);
-}
-
-template <class CHAR> ACE_INLINE void
-ACE_String_Base<CHAR>::dump (void) const
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::dump");
-}
-
-// Assignment operator (does copy memory).
-template <class CHAR> ACE_INLINE ACE_String_Base<CHAR> &
-ACE_String_Base<CHAR>::operator= (const ACE_String_Base<CHAR> &s)
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator=");
-
- // Check for identify.
- if (this != &s)
- {
- this->set (s.rep_, s.len_, 1);
- }
-
- return *this;
-}
-
-// Assignment method (does not copy memory)
-template <class CHAR> ACE_INLINE ACE_String_Base<CHAR> &
-ACE_String_Base<CHAR>::assign_nocopy (const ACE_String_Base<CHAR> &s)
-{
- this->set (s.rep_, s.len_, 0);
- return *this;
-}
-
-template <class CHAR> ACE_INLINE void
-ACE_String_Base<CHAR>::set (const CHAR *s, int release)
-{
- size_t length;
- if (s != 0)
- length = ACE_OS_String::strlen (s);
- else
- length = 0;
-
- this->set (s, length, release);
-}
-
-template <class CHAR> ACE_INLINE size_t
-ACE_String_Base<CHAR>::length (void) const
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::length");
- return this->len_;
-}
-
-template <class CHAR> ACE_INLINE void
-ACE_String_Base<CHAR>::clear (int release)
-{
- this->set(0, 0, release);
-}
-
-template <class CHAR> ACE_INLINE ACE_String_Base<CHAR>
-ACE_String_Base<CHAR>::substr (size_t offset,
- ssize_t length) const
-{
- return this->substring (offset, length);
-}
-
-// Return the <slot'th> character in the string.
-
-template <class CHAR> ACE_INLINE const CHAR &
-ACE_String_Base<CHAR>::operator[] (size_t slot) const
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator[]");
- return this->rep_[slot];
-}
-
-// Return the <slot'th> character in the string by reference.
-
-template <class CHAR> ACE_INLINE CHAR &
-ACE_String_Base<CHAR>::operator[] (size_t slot)
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator[]");
- return this->rep_[slot];
-}
-
-// Get a copy of the underlying representation.
-
-template <class CHAR> ACE_INLINE CHAR *
-ACE_String_Base<CHAR>::rep (void) const
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::rep");
-
- CHAR *new_string;
- ACE_NEW_RETURN (new_string, CHAR[this->len_ + 1], 0);
- ACE_OS_String::strsncpy (new_string, this->rep_, this->len_+1);
-
- return new_string;
-}
-
-template <class CHAR> ACE_INLINE const CHAR *
-ACE_String_Base<CHAR>::fast_rep (void) const
-{
- return this->rep_;
-}
-
-template <class CHAR> ACE_INLINE const CHAR *
-ACE_String_Base<CHAR>::c_str (void) const
-{
- return this->rep_;
-}
-
-template <class CHAR> ACE_INLINE int
-ACE_String_Base<CHAR>::compare (const ACE_String_Base<CHAR> &s) const
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::compare");
-
- // Pick smaller of the two lengths and perform the comparison.
- size_t smaller_length = ace_min (this->len_, s.len_);
-
- int result = ACE_OS_String::memcmp (this->rep_,
- s.rep_,
- smaller_length * sizeof (CHAR));
-
- if (!result)
- result = ACE_static_cast (int, (this->len_ - s.len_));
- return result;
-}
-
-
-// Comparison operator.
-
-template <class CHAR> ACE_INLINE int
-ACE_String_Base<CHAR>::operator== (const ACE_String_Base<CHAR> &s) const
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator==");
-
- return compare (s) == 0;
-}
-
-// Less than comparison operator.
-
-template <class CHAR> ACE_INLINE int
-ACE_String_Base<CHAR>::operator < (const ACE_String_Base<CHAR> &s) const
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator <");
- return compare (s) < 0;
-}
-
-// Greater than comparison operator.
-
-template <class CHAR> ACE_INLINE int
-ACE_String_Base<CHAR>::operator > (const ACE_String_Base &s) const
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator >");
- return compare (s) > 0;
-}
-
-
-// Comparison operator.
-
-template <class CHAR> ACE_INLINE int
-ACE_String_Base<CHAR>::operator!= (const ACE_String_Base<CHAR> &s) const
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator!=");
- return !(*this == s);
-}
-
-template <class CHAR> ACE_INLINE ssize_t
-ACE_String_Base<CHAR>::find (const CHAR *s, size_t pos) const
-{
- CHAR *substr = this->rep_ + pos;
- size_t len = ACE_OS_String::strlen (s);
- CHAR *pointer = ACE_OS_String::strnstr (substr, s, len);
- if (pointer == 0)
- return ACE_String_Base<CHAR>::npos;
- else
- return pointer - this->rep_;
-}
-
-template <class CHAR> ACE_INLINE ssize_t
-ACE_String_Base<CHAR>::find (CHAR c, size_t pos) const
-{
- CHAR *substr = this->rep_ + pos;
- CHAR *pointer = ACE_OS_String::strnchr (substr, c, this->len_ - pos);
- if (pointer == 0)
- return ACE_String_Base<CHAR>::npos;
- else
- return pointer - this->rep_;
-}
-
-template <class CHAR> ACE_INLINE ssize_t
-ACE_String_Base<CHAR>::find (const ACE_String_Base<CHAR>&str, size_t pos) const
-{
- return this->find (str.rep_, pos);
-}
-
-template <class CHAR> ACE_INLINE ssize_t
-ACE_String_Base<CHAR>::strstr (const ACE_String_Base<CHAR> &s) const
-{
- ACE_TRACE ("ACE_String_Base<CHAR>::strstr");
-
- return this->find (s.rep_);
-}
-
-template <class CHAR> ACE_INLINE ssize_t
-ACE_String_Base<CHAR>::rfind (CHAR c, ssize_t pos) const
-{
- if (pos == npos || pos > ACE_static_cast (ssize_t, this->len_))
- pos = ACE_static_cast (ssize_t, this->len_);
-
- for (ssize_t i = pos - 1; i >= 0; i--)
- if (this->rep_[i] == c)
- return i;
-
- return ACE_String_Base<CHAR>::npos;
-}
-
-template <class CHAR> ACE_INLINE ACE_String_Base<CHAR>
-operator+ (const ACE_String_Base<CHAR> &s, const ACE_String_Base<CHAR> &t)
-{
- ACE_String_Base<CHAR> temp (s);
- temp += t;
- return temp;
-}
-
-template <class CHAR> ACE_INLINE ACE_String_Base<CHAR>
-operator+ (const CHAR *s, const ACE_String_Base<CHAR> &t)
-{
- ACE_String_Base<CHAR> temp (s);
- temp += t;
- return temp;
-}
-
-template <class CHAR> ACE_INLINE ACE_String_Base<CHAR>
-operator+ (const ACE_String_Base<CHAR> &s, const CHAR *t)
-{
- ACE_String_Base<CHAR> temp (s);
- temp += t;
- return temp;
-}
-
-template <class CHAR> ACE_INLINE
-ACE_String_Base<CHAR> operator + (const ACE_String_Base<CHAR> &t,
- const CHAR c)
-{
- ACE_String_Base<CHAR> temp (t);
- temp += c;
- return temp;
-}
-
-template <class CHAR> ACE_INLINE
-ACE_String_Base<CHAR> operator + (const CHAR c,
- const ACE_String_Base<CHAR> &t)
-{
- ACE_String_Base<CHAR> temp (c);
- temp += t;
- return temp;
-}
diff --git a/ace/String_Base_Const.cpp b/ace/String_Base_Const.cpp
deleted file mode 100644
index bf66b2cf873..00000000000
--- a/ace/String_Base_Const.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-// $Id$
-
-#include "ace/String_Base_Const.h"
-
-ssize_t ACE_String_Base_Const::npos = -1;
diff --git a/ace/String_Base_Const.h b/ace/String_Base_Const.h
deleted file mode 100644
index d0dd5b744a1..00000000000
--- a/ace/String_Base_Const.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file String_Base_Const.h
- *
- * $Id$
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_STRING_BASE_CONST_H
-#define ACE_STRING_BASE_CONST_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-#include "ace/Basic_Types.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-
-/**
- * @class ACE_String_Base_Const
- *
- * @brief This class defines a constant for ACE_String_Base to
- * circumvent a bug in SunCC 6.0.
- */
-class ACE_Export ACE_String_Base_Const
-{
-public:
- static ssize_t npos;
-};
-
-#include "ace/post.h"
-#endif /* ACE_STRING_BASE_CONST_H */
diff --git a/ace/Svc_Conf.h b/ace/Svc_Conf.h
deleted file mode 100644
index 5b1d50b7dc4..00000000000
--- a/ace/Svc_Conf.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Svc_Conf.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_SVC_CONF_H
-#define ACE_SVC_CONF_H
-
-#include "ace/pre.h"
-
-// Globally visible macros, type decls, and extern var decls for
-// Service Configurator utility.
-
-#include "ace/Obstack.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Service_Config.h"
-#include "ace/Parse_Node.h"
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 1)
-
-// Forward declarations.
-struct ace_yy_buffer_state;
-
-// The following yylex() declarations require support for reentrant
-// parser generation (e.g. from GNU Bison).
-#if defined (DEBUGGING)
-#if defined (ACE_YY_DECL)
-#undef ACE_YY_DECL
-#endif /* ACE_YY_DECL */
-#define ACE_YY_DECL extern "C" char *ace_yylex (ACE_YYSTYPE *ace_yylval, void *ACE_YYLEX_PARAM)
-#else
-#define ACE_YY_DECL extern "C" int ace_yylex (ACE_YYSTYPE *ace_yylval, void *ACE_YYLEX_PARAM)
-#endif /* DEBUGGING */
-
-extern void ace_yy_delete_buffer (ace_yy_buffer_state *buffer);
-
-/**
- * @class ACE_Svc_Conf_Param
- *
- * @brief An instance of this object will be passed down to the
- * yyparse() and yylex() functions.
- *
- * This class retains the state for a given parse/scan. It primarily
- * makes it possible to hold the static object lock in the scanner
- * for as short a period of time as possible. The resulting finer
- * grained locking prevents deadlocks from occuring when scanning a
- * `svc.conf' file and activating an ACE_Task, for example, as a
- * result of processing the directives in that file.
- */
-class ACE_Svc_Conf_Param
-{
-public:
-
- enum SVC_CONF_PARAM_TYPE
- {
- /// The lexer will scan a file containing one or more directives.
- SVC_CONF_FILE,
-
- /// The lexer will scan a string containing a directive.
- SVC_CONF_DIRECTIVE
- };
-
- /// Constructor
- ACE_Svc_Conf_Param (FILE *file)
- : type (SVC_CONF_FILE),
- yyerrno (0),
- yylineno (1),
- buffer (0),
- obstack ()
- {
- source.file = file;
- }
-
- /// Constructor
- ACE_Svc_Conf_Param (const ACE_TCHAR *directive)
- : type (SVC_CONF_DIRECTIVE),
- yyerrno (0),
- yylineno (1),
- buffer (0),
- obstack ()
- {
- source.directive = directive;
- }
-
- ~ACE_Svc_Conf_Param (void)
- {
- ace_yy_delete_buffer (this->buffer);
- }
-
-public:
-
- union
- {
- /// FILE stream from which directives will be scanned and parsed.
- FILE *file;
-
- /// String containing directive that will be scanned and parsed.
- const ACE_TCHAR *directive;
-
- } source;
-
- /// Discriminant use to determine which union member to use.
- SVC_CONF_PARAM_TYPE type;
-
- /// Keeps track of the number of errors encountered so far.
- int yyerrno;
-
- /// Keeps track of the current line number for error-handling routine.
- int yylineno;
-
- /// Lexer buffer that corresponds to the current Service
- /// Configurator file/direct scan.
- ace_yy_buffer_state *buffer;
-
- /// Obstack used for efficient memory allocation when
- /// parsing/scanning a service configurator directive.
- ACE_Obstack_T<ACE_TCHAR> obstack;
-
-};
-
-// Parameter that is passed down to the yyparse() function, and
-// eventually to yylex().
-#define ACE_YYPARSE_PARAM ace_svc_conf_parameter
-#define ACE_YYLEX_PARAM ACE_YYPARSE_PARAM
-
-#define ACE_SVC_CONF_PARAM (ACE_static_cast (ACE_Svc_Conf_Param *, ACE_YYLEX_PARAM))
-
-// The following definition for the ACE_YYSTYPE must occur before
-// ACE_YY_DECL is declared since ACE_YY_DECL expands to function
-// prototypes that use ACE_YYSTYPE.
-typedef union
-{
- int type_;
- ACE_Location_Node *location_node_;
- ACE_Parse_Node *parse_node_;
- ACE_Static_Node *static_node_;
- ACE_Service_Type *svc_record_;
- ACE_TCHAR *ident_;
-} ACE_YYSTYPE;
-
-// Forward declaration
-struct ace_yy_buffer_state;
-
-/// Create and push a new lexer buffer on to the buffer stack for use
-/// when scanning the given file.
-void ace_yy_push_buffer (FILE *file,
- ace_yy_buffer_state *&buffer);
-
-/// Create and push a new lexer buffer on to the buffer stack for use
-/// when scanning the given directive.
-void ace_yy_push_buffer (const ACE_TCHAR *directive,
- ace_yy_buffer_state *&buffer);
-
-/// Pop the current lexer buffer off of the buffer stack and
-/// deallocate it.
-void ace_yy_pop_buffer (ace_yy_buffer_state *buf);
-
-/// Performs the parsing
-#ifdef ACE_YYPARSE_PARAM
-int ace_yyparse (void *);
-#else
-int ace_yyparse (void);
-#endif
-
-/// Performs the lexical analysis
-ACE_YY_DECL;
-
-/// Name of input stream
-extern FILE *ace_yyin;
-
-/// Error handling routine required by YACC or BISON
-void ace_yyerror (int yyerrno, int yylineno, const ACE_TCHAR *);
-
-/// Holds the lexeme for the current token
-extern ACE_TCHAR *ace_yytext;
-
-/// Holds the length of the lexeme for the current token
-extern int ace_yyleng;
-
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
-
-/// Factory that creates a new ACE_Service_Type_Impl.
-extern ACE_Service_Type_Impl *
-ace_create_service_type (const ACE_TCHAR *,
- int,
- void *,
- unsigned int,
- ACE_Service_Object_Exterminator = 0);
-
-
-#include "ace/post.h"
-
-#endif /* ACE_SVC_CONF_H */
diff --git a/ace/Svc_Conf.l b/ace/Svc_Conf.l
deleted file mode 100644
index dd17bf2160f..00000000000
--- a/ace/Svc_Conf.l
+++ /dev/null
@@ -1,134 +0,0 @@
-%{
-// $Id$
-// Sample lexical analysis for regular expression subset. Must be
-// compiled with FLEX and an ANSI C++ compiler.
-
-// Lexical tokens values defined by YACC.
-#include "ace/Svc_Conf.h"
-#include "ace/Svc_Conf_Tokens.h"
-#include "ace/Svc_Conf_Lexer_Guard.h"
-
-ACE_RCSID (ace,
- Svc_Conf_l,
- "$Id$")
-
-#define token(x) x
-%}
-
-%s PARAMETERS
-%s NORMAL
-
-letter [a-zA-Z_]
-letter_or_digit [a-zA-Z_0-9]
-digit [0-9]
-ident {letter}{letter_or_digit}*
-pathname ([A-Za-z\%]:)?[a-zA-Z_0-9/\%\.\\~-]+
-symbol [ -~]
-string (\"{symbol}*\"|\'{symbol}*\')
-white_space [ \t]
-newline \n
-carrage_retn \r
-other .
-
-%%
-
-^#{other}*$ ; /* EMPTY */
-dynamic { return token (ACE_DYNAMIC); }
-static { return token (ACE_STATIC); }
-suspend { return token (ACE_SUSPEND); }
-resume { return token (ACE_RESUME); }
-remove { return token (ACE_REMOVE); }
-stream { return token (ACE_USTREAM); }
-Module { return token (ACE_MODULE_T); }
-Service_Object { return token (ACE_SVC_OBJ_T); }
-STREAM { return token (ACE_STREAM_T); }
-active { return token (ACE_ACTIVE); }
-inactive { return token (ACE_INACTIVE); }
-":" { return token (':'); }
-"*" { return token ('*'); }
-"(" { return token ('('); }
-")" { return token (')'); }
-"{" { return token ('{'); }
-"}" { return token ('}'); }
-{string} {
- // Remove trailing quote character (' or ")
- ACE_TCHAR *s = ACE_OS::strrchr (yytext, yytext[0]);
-
- ACE_ASSERT (s != 0);
- // Eliminate the opening and closing double or
- // single quotes.
- *s = '\0';
- yyleng -= 1;
- yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (yytext + 1, yyleng);
- return token (ACE_STRING); }
-{ident} {
- yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (yytext, yyleng);
- return token (ACE_IDENT);
- }
-{pathname} {
- yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (yytext, yyleng);
- return token (ACE_PATHNAME);
- }
-{white_space}+ ; /* EMPTY */
-{carrage_retn} ; /* EMPTY */
-{newline} { ACE_SVC_CONF_PARAM->yylineno++; }
-{other} {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("unknown character = (%d"),
- *yytext));
- if (ACE_OS::ace_isprint (*yytext))
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("|%c"), *yytext));
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT (")\n")));
- }
-<<EOF>> { yyterminate (); }
-%%
-int
-yywrap (void)
-{
- ACE_OS::fflush (yyin);
- yytext[0] = '#';
- yyleng = 0;
-
- return 1;
-}
-
-void
-yy_push_buffer (FILE *file, yy_buffer_state *&buffer)
-{
- // External synchronization is required.
-
- if (buffer == 0)
- buffer = yy_create_buffer (file, YY_BUF_SIZE);
-
- yy_switch_to_buffer (buffer);
-}
-
-void
-yy_push_buffer (const ACE_TCHAR *directive, yy_buffer_state *&buffer)
-{
- // External synchronization is required.
-
- // yyparse() may invoke yylex() multiple times when parsing
- // a single directive. Prevent a new buffer from created during
- // each call to yylex().
- if (YY_CURRENT_BUFFER != 0
- && directive == YY_CURRENT_BUFFER->yy_ch_buf)
- return;
-
- if (buffer == 0)
- {
- // yy_scan_string() already switches the buffer so there is
- // no need to explicitly make the switch.
- buffer = yy_scan_string (directive);
- }
- else
- yy_switch_to_buffer (buffer);
-}
-
-void
-yy_pop_buffer (yy_buffer_state *buffer)
-{
- // External synchronization is required.
-
- yy_switch_to_buffer (buffer);
-}
diff --git a/ace/Svc_Conf.y b/ace/Svc_Conf.y
deleted file mode 100644
index 002d4d59b00..00000000000
--- a/ace/Svc_Conf.y
+++ /dev/null
@@ -1,436 +0,0 @@
-%{
-// $Id$
-
-#include "ace/Svc_Conf.h"
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 1)
-
-#include "ace/ARGV.h"
-#include "ace/Module.h"
-#include "ace/Stream.h"
-#include "ace/Service_Types.h"
-
-
-ACE_RCSID (ace,
- Svc_Conf_y,
- "$Id$")
-
-
-// Prototypes.
-static ACE_Module_Type *ace_get_module (ACE_Static_Node *str_rec,
- ACE_Static_Node *svc_type,
- int & yyerrno);
-static ACE_Module_Type *ace_get_module (ACE_Static_Node *str_rec,
- const ACE_TCHAR *svc_name,
- int & yyerrno);
-
-#define YYDEBUG_LEXER_TEXT (yytext[yyleng] = '\0', yytext)
-
-// Force the pretty debugging code to compile.
-// #define YYDEBUG 1
-
-%}
-
-%token ACE_DYNAMIC ACE_STATIC ACE_SUSPEND ACE_RESUME ACE_REMOVE ACE_USTREAM
-%token ACE_MODULE_T ACE_STREAM_T ACE_SVC_OBJ_T ACE_ACTIVE ACE_INACTIVE
-%token ACE_PATHNAME ACE_IDENT ACE_STRING
-
-%start svc_config_entries
-
-%type <ident_> ACE_IDENT ACE_STRING ACE_PATHNAME pathname parameters_opt
-%type <type_> type status
-%type <parse_node_> dynamic static suspend resume remove module_list stream
-%type <parse_node_> stream_modules module svc_config_entry
-%type <static_node_> stream_ops
-%type <svc_record_> svc_location
-%type <location_node_> svc_initializer
-
-// Generate a pure (reentrant) parser -- GNU Bison only
-%pure_parser
-
-%%
-
-svc_config_entries
- : svc_config_entries svc_config_entry
- {
- if ($2 != 0)
- {
- $2->apply (ACE_SVC_CONF_PARAM->yyerrno); delete $2;
- }
- ACE_SVC_CONF_PARAM->obstack.release ();
- }
- | svc_config_entries error
- {
- ACE_SVC_CONF_PARAM->obstack.release ();
- }
- | /* EMPTY */
- ;
-
-svc_config_entry
- : dynamic
- | static
- | suspend
- | resume
- | remove
- | stream
- ;
-
-dynamic
- : ACE_DYNAMIC svc_location parameters_opt
- {
- if ($2 != 0)
- $$ = new ACE_Dynamic_Node ($2, $3);
- else
- $$ = 0;
- }
- ;
-
-static
- : ACE_STATIC ACE_IDENT parameters_opt
- {
- $$ = new ACE_Static_Node ($2, $3);
- }
- ;
-
-suspend
- : ACE_SUSPEND ACE_IDENT
- {
- $$ = new ACE_Suspend_Node ($2);
- }
- ;
-
-resume
- : ACE_RESUME ACE_IDENT
- {
- $$ = new ACE_Resume_Node ($2);
- }
- ;
-
-remove
- : ACE_REMOVE ACE_IDENT
- {
- $$ = new ACE_Remove_Node ($2);
- }
- ;
-
-stream
- : ACE_USTREAM stream_ops stream_modules
- {
- $$ = new ACE_Stream_Node ($2, $3);
- }
- | ACE_USTREAM ACE_IDENT { $<static_node_>$ = new ACE_Static_Node ($2); } stream_modules
- {
- $$ = new ACE_Dummy_Node ($<static_node_>3, $4);
- }
- ;
-
-stream_ops
- : dynamic
- {
- }
- | static
- {
- }
- ;
-
-stream_modules
- : '{'
- {
- // Initialize left context...
- $<static_node_>$ = $<static_node_>0;
- }
- module_list '}'
- {
- $$ = $3;
- }
- | /* EMPTY */ { $$ = 0; }
- ;
-
-module_list
- : module_list module
- {
- if ($2 != 0)
- {
- $2->link ($1);
- $$ = $2;
- }
- }
- | /* EMPTY */ { $$ = 0; }
- ;
-
-module
- : dynamic
- {
- ACE_Static_Node *svc_type = $<static_node_>1;
-
- if (svc_type != 0)
- {
- ACE_Static_Node *module = $<static_node_>-1;
-
- ACE_ARGV args (svc_type->parameters ());
- ACE_Module_Type *mt = ace_get_module (module,
- svc_type,
- ACE_SVC_CONF_PARAM->yyerrno);
- ACE_Stream_Type *st =
- ACE_dynamic_cast (ACE_Stream_Type *,
- ACE_const_cast (ACE_Service_Type_Impl *,
- module->record ()->type ()));
-
- if (mt->init (args.argc (), args.argv ()) == -1
- || st->push (mt) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("dynamic initialization failed for Module %s\n"),
- svc_type->name ()));
- ACE_SVC_CONF_PARAM->yyerrno++;
- }
- }
- }
- | static
- {
- ACE_Module_Type *mt = ace_get_module ($<static_node_>-1,
- $<static_node_>1->name (),
- ACE_SVC_CONF_PARAM->yyerrno);
-
- if (((ACE_Stream_Type *) ($<static_node_>-1)->record ()->type ())->push (mt) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Problem with static\n")));
- ACE_SVC_CONF_PARAM->yyerrno++;
- }
- }
- | suspend
- {
- ACE_Module_Type *mt = ace_get_module ($<static_node_>-1,
- $<static_node_>1->name (),
- ACE_SVC_CONF_PARAM->yyerrno);
- if (mt != 0)
- mt->suspend ();
- }
- | resume
- {
- ACE_Module_Type *mt = ace_get_module ($<static_node_>-1,
- $<static_node_>1->name (),
- ACE_SVC_CONF_PARAM->yyerrno);
- if (mt != 0)
- mt->resume ();
- }
- | remove
- {
- ACE_Static_Node *stream = $<static_node_>-1;
- ACE_Static_Node *module = $<static_node_>1;
- ACE_Module_Type *mt = ace_get_module (stream,
- module->name (),
- ACE_SVC_CONF_PARAM->yyerrno);
-
- ACE_Stream_Type *st =
- ACE_dynamic_cast (ACE_Stream_Type *,
- ACE_const_cast (ACE_Service_Type_Impl *,
- stream->record ()->type ()));
- if (mt != 0 && st->remove (mt) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("cannot remove Module_Type %s from STREAM_Type %s\n"),
- module->name (),
- stream->name ()));
- ACE_SVC_CONF_PARAM->yyerrno++;
- }
- }
- ;
-
-svc_location
- : ACE_IDENT type svc_initializer status
- {
- u_int flags
- = ACE_Service_Type::DELETE_THIS
- | ($3->dispose () == 0 ? 0 : ACE_Service_Type::DELETE_OBJ);
- ACE_Service_Object_Exterminator gobbler = 0;
- void *sym = $3->symbol (ACE_SVC_CONF_PARAM->yyerrno, &gobbler);
-
- if (sym != 0)
- {
- ACE_Service_Type_Impl *stp
- = ACE_Service_Config::create_service_type_impl ($1,
- $2,
- sym,
- flags,
- gobbler);
- if (stp == 0)
- ++ACE_SVC_CONF_PARAM->yyerrno;
-
- $$ = new ACE_Service_Type ($1,
- stp,
- $3->dll (),
- $4);
- }
- else
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Unable to find service: %s\n"),
- $1));
- ++ACE_SVC_CONF_PARAM->yyerrno;
- $$ = 0;
- }
- delete $3;
- }
- ;
-
-status
- : ACE_ACTIVE
- {
- $$ = 1;
- }
- | ACE_INACTIVE
- {
- $$ = 0;
- }
- | /* EMPTY */
- {
- $$ = 1;
- }
- ;
-
-svc_initializer
- : pathname ':' ACE_IDENT
- {
- $$ = new ACE_Object_Node ($1, $3);
- }
- | pathname ':' ACE_IDENT '(' ')'
- {
- $$ = new ACE_Function_Node ($1, $3);
- }
- | ':' ACE_IDENT '(' ')'
- {
- $$ = new ACE_Static_Function_Node ($2);
- }
- ;
-
-type
- : ACE_MODULE_T '*'
- {
- $$ = ACE_MODULE_T;
- }
- | ACE_SVC_OBJ_T '*'
- {
- $$ = ACE_SVC_OBJ_T;
- }
- | ACE_STREAM_T '*'
- {
- $$ = ACE_STREAM_T;
- }
- ;
-
-parameters_opt
- : ACE_STRING
- | /* EMPTY */ { $$ = 0; }
- ;
-
-pathname
- : ACE_PATHNAME
- | ACE_IDENT
- | ACE_STRING
- ;
-
-%%
-// Prints the error string to standard output. Cleans up the error
-// messages.
-
-void
-yyerror (int yyerrno, int yylineno, const ACE_TCHAR *s)
-{
-#if defined (ACE_NLOGGING)
- ACE_UNUSED_ARG (yyerrno);
- ACE_UNUSED_ARG (yylineno);
- ACE_UNUSED_ARG (s);
-#endif /* ACE_NLOGGING */
-
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("[error %d] on line %d: %s\n"),
- yyerrno,
- yylineno,
- s));
-}
-
-// Note that SRC_REC represents left context, which is the STREAM *
-// record.
-
-static ACE_Module_Type *
-ace_get_module (ACE_Static_Node *str_rec,
- const ACE_TCHAR *svc_name,
- int & yyerrno)
-{
- const ACE_Service_Type *sr = str_rec->record ();
- const ACE_Service_Type_Impl *type = sr->type ();
- ACE_Stream_Type *st = sr == 0
- ? 0
- : ACE_dynamic_cast (ACE_Stream_Type *,
- ACE_const_cast (ACE_Service_Type_Impl *,
- type));
- ACE_Module_Type *mt = st == 0 ? 0 : st->find (svc_name);
-
- if (sr == 0 || st == 0 || mt == 0)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("cannot locate Module_Type %s in STREAM_Type %s\n"),
- svc_name,
- str_rec->name ()));
- yyerrno++;
- }
-
- return mt;
-}
-
-static ACE_Module_Type *
-ace_get_module (ACE_Static_Node *str_rec,
- ACE_Static_Node *svc_type,
- int & yyerrno)
-{
- const ACE_Service_Type *sr = str_rec->record ();
- const ACE_Service_Type_Impl *type = sr->type ();
- ACE_Stream_Type *st = sr == 0 ? 0 : (ACE_Stream_Type *) type;
- const ACE_Service_Type *sv = svc_type->record ();
- type = sv->type ();
- ACE_Module_Type *mt = (ACE_Module_Type *) type;
- const ACE_TCHAR *module_type_name = svc_type->name ();
-
- if (sr == 0 || st == 0 || mt == 0)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("cannot locate Module_Type %s or STREAM_Type %s\n"),
- module_type_name,
- str_rec->name ()));
- yyerrno++;
- }
-
- // Make sure that the Module has the same name as the
- // Module_Type object from the svc.conf file.
- ACE_Module<ACE_SYNCH> *mp = (ACE_Module<ACE_SYNCH> *) mt->object ();
-
- if (ACE_OS::strcmp (mp->name (), module_type_name) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("warning: assigning Module_Type name %s to Module %s since names differ\n"),
- module_type_name,
- mp->name ()));
- mp->name (module_type_name);
- }
-
- return mt;
-}
-
-#if defined (DEBUGGING)
-// Main driver program.
-
-int
-main (int argc, char *argv[])
-{
- ACE_Svc_Conf_Param param (stdin);
-
- // Try to reopen any filename argument to use YYIN.
- if (argc > 1 && (yyin = freopen (argv[1], "r", stdin)) == 0)
- (void) ACE_OS::fprintf (stderr, ACE_LIB_TEXT ("usage: %s [file]\n"), argv[0]), ACE_OS::exit (1);
-
- return ::yyparse (&param);
-}
-#endif /* DEBUGGING */
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
diff --git a/ace/Svc_Conf_Lexer_Guard.cpp b/ace/Svc_Conf_Lexer_Guard.cpp
deleted file mode 100644
index c5d79aa1f32..00000000000
--- a/ace/Svc_Conf_Lexer_Guard.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-// -*- C++ -*-
-
-#include "ace/Svc_Conf_Lexer_Guard.h"
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 1)
-
-#include "ace/Svc_Conf.h"
-
-ACE_RCSID (ace,
- Svc_Conf_Lexer_Guard,
- "$Id$")
-
-ACE_Svc_Conf_Lexer_Guard::ACE_Svc_Conf_Lexer_Guard (ACE_Svc_Conf_Param *param)
- : buffer_ (0)
-{
- // External synchronization is required.
-
- // Note that allocation/deallocation is done once during the
- // processing of a service configurator directive. Memory
- // managements is done at a higher level, not in this class. This
- // is necessary to prevent an allocation/deallocation from occurring
- // when parsing/scanning each token.
-
- if (param->type == ACE_Svc_Conf_Param::SVC_CONF_FILE)
- ::ace_yy_push_buffer (param->source.file, param->buffer);
- else
- ::ace_yy_push_buffer (param->source.directive,
- param->buffer);
-
- this->buffer_ = param->buffer;
-}
-
-ACE_Svc_Conf_Lexer_Guard::~ACE_Svc_Conf_Lexer_Guard (void)
-{
- // External synchronization is required.
-
- ::ace_yy_pop_buffer (this->buffer_);
-}
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
diff --git a/ace/Svc_Conf_Lexer_Guard.h b/ace/Svc_Conf_Lexer_Guard.h
deleted file mode 100644
index 4e68bb60ed5..00000000000
--- a/ace/Svc_Conf_Lexer_Guard.h
+++ /dev/null
@@ -1,79 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Svc_Conf_Lexer_Guard.h
- *
- * $Id$
- *
- * @author Ossama Othman <ossama@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SVC_CONF_LEXER_GUARD_H
-#define ACE_SVC_CONF_LEXER_GUARD_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/// Forward declarations
-class ACE_Svc_Conf_Param;
-
-struct ace_yy_buffer_state;
-
-/**
- * @class ACE_Svc_Conf_Lexer_Guard
- *
- * @brief "Guard" that ensures lexer buffer switching is
- * exception-safe.
- *
- * Buffers are switched, if necessary, each time a token is
- * parsed/scanned. The buffer switching must be synchronized
- * externally. This class performs no synchronization.
- *
- * @note Note that allocation/deallocation is done once during the
- * processing of a service configurator directive. Memory
- * managements is done at a higher level, not in this class.
- * This is necessary to prevent an allocation/deallocation from
- * occurring when parsing/scanning each token.
- */
-class ACE_Svc_Conf_Lexer_Guard
-{
-public:
-
- /// Constructor
- /**
- * Switches buffers, if necessary, when token scanning first
- * begins. Allocation of the buffer will also occur if one has not
- * already been allocated. This operation effectively pushes a
- * buffer on to a stack.
- */
- ACE_Svc_Conf_Lexer_Guard (ACE_Svc_Conf_Param *param);
-
- /// Destructor
- /**
- * Switches buffers, if necessary when token scanning completes. No
- * buffer deallocation occurs here. Buffers are deallocated when
- * parsing of the entire directive is done, not when scanning of a
- * single token is done. This operation effective pops a buffer off
- * of a stack.
- */
- ~ACE_Svc_Conf_Lexer_Guard (void);
-
-private:
-
- /// Lexer buffer that corresponds to the current Service
- /// Configurator file/direct scan.
- ace_yy_buffer_state *buffer_;
-
-};
-
-
-#include "ace/post.h"
-
-#endif /* ACE_SVC_CONF_LEXER_GUARD_H */
diff --git a/ace/Svc_Conf_Tokens.h b/ace/Svc_Conf_Tokens.h
deleted file mode 100644
index 6fe46126fef..00000000000
--- a/ace/Svc_Conf_Tokens.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// $Id$
-#ifndef BISON_SVC_CONF_TAB_H
-# define BISON_SVC_CONF_TAB_H
-
-# define ACE_DYNAMIC 257
-# define ACE_STATIC 258
-# define ACE_SUSPEND 259
-# define ACE_RESUME 260
-# define ACE_REMOVE 261
-# define ACE_USTREAM 262
-# define ACE_MODULE_T 263
-# define ACE_STREAM_T 264
-# define ACE_SVC_OBJ_T 265
-# define ACE_ACTIVE 266
-# define ACE_INACTIVE 267
-# define ACE_PATHNAME 268
-# define ACE_IDENT 269
-# define ACE_STRING 270
-
-
-#endif /* not BISON_SVC_CONF_TAB_H */
diff --git a/ace/Svc_Conf_l.cpp b/ace/Svc_Conf_l.cpp
deleted file mode 100644
index f232996aca9..00000000000
--- a/ace/Svc_Conf_l.cpp
+++ /dev/null
@@ -1,1855 +0,0 @@
-#define ACE_YY_NO_UNPUT
-
-/* A lexical scanner generated by flex */
-
-/* Scanner skeleton version:
- * $Header$
- */
-
-#define FLEX_SCANNER
-#define ACE_YY_FLEX_MAJOR_VERSION 2
-#define ACE_YY_FLEX_MINOR_VERSION 5
-
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
-#endif
-
-
-#ifdef __cplusplus
-
-#include "ace/OS.h"
-#include "ace/Object_Manager.h"
-
-/* Use prototypes in function declarations. */
-#define ACE_YY_USE_PROTOS
-
-/* The "const" storage-class-modifier is valid. */
-#define ACE_YY_USE_CONST
-
-#else /* ! __cplusplus */
-
-#if __STDC__
-
-#define ACE_YY_USE_PROTOS
-#define ACE_YY_USE_CONST
-
-#endif /* __STDC__ */
-#endif /* ! __cplusplus */
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 1)
-
-#ifdef __TURBOC__
- #pragma warn -rch
- #pragma warn -use
-#include /**/ <io.h>
-#include /**/ <stdlib.h>
-#define ACE_YY_USE_CONST
-#define ACE_YY_USE_PROTOS
-#endif
-
-#ifdef ACE_YY_USE_CONST
-#define ace_yyconst const
-#else
-#define ace_yyconst
-#endif
-
-
-#ifdef ACE_YY_USE_PROTOS
-#define ACE_YY_PROTO(proto) proto
-#else
-#define ACE_YY_PROTO(proto) ()
-#endif
-
-/* Returned upon end-of-file. */
-#define ACE_YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index. If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define ACE_YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition. This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN ace_yy_start = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state. The ACE_YYSTATE alias is for lex
- * compatibility.
- */
-#define ACE_YY_START ((ace_yy_start - 1) / 2)
-#define ACE_YYSTATE ACE_YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define ACE_YY_STATE_EOF(state) (ACE_YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define ACE_YY_NEW_FILE ace_yyrestart( ace_yyin )
-
-#define ACE_YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#define ACE_YY_BUF_SIZE 16384
-
-typedef struct ace_yy_buffer_state *ACE_YY_BUFFER_STATE;
-
-extern int ace_yyleng;
-extern FILE *ace_yyin, *ace_yyout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-/* The funky do-while in the following #define is used to turn the definition
- * int a single C statement (which needs a semi-colon terminator). This
- * avoids problems with code like:
- *
- * if ( condition_holds )
- * ace_yyless( 5 );
- * else
- * do_something_else();
- *
- * Prior to using the do-while the compiler would get upset at the
- * "else" because it interpreted the "if" statement as being all
- * done when it reached the ';' after the ace_yyless() call.
- */
-
-/* Return all but the first 'n' matched characters back to the input stream. */
-
-#define ace_yyless(n) \
- do \
- { \
- /* Undo effects of setting up ace_yytext. */ \
- *ace_yy_cp = ace_yy_hold_char; \
- ACE_YY_RESTORE_ACE_YY_MORE_OFFSET \
- ace_yy_c_buf_p = ace_yy_cp = ace_yy_bp + n - ACE_YY_MORE_ADJ; \
- ACE_YY_DO_BEFORE_ACTION; /* set up ace_yytext again */ \
- } \
- while ( 0 )
-
-#if 0
-#define unput(c) ace_yyunput( c, ace_yytext_ptr )
-#endif /* 0 */
-
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-typedef unsigned int ace_yy_size_t;
-
-
-struct ace_yy_buffer_state
- {
- FILE *ace_yy_input_file;
-
- ACE_TCHAR *ace_yy_ch_buf; /* input buffer */
- ACE_TCHAR *ace_yy_buf_pos; /* current position in input buffer */
-
- /* Size of input buffer in bytes, not including room for EOB
- * characters.
- */
- ace_yy_size_t ace_yy_buf_size;
-
- /* Number of characters read into ace_yy_ch_buf, not including EOB
- * characters.
- */
- int ace_yy_n_chars;
-
- /* Whether we "own" the buffer - i.e., we know we created it,
- * and can realloc() it to grow it, and should free() it to
- * delete it.
- */
- int ace_yy_is_our_buffer;
-
- /* Whether this is an "interactive" input source; if so, and
- * if we're using stdio for input, then we want to use getc()
- * instead of fread(), to make sure we stop fetching input after
- * each newline.
- */
- int ace_yy_is_interactive;
-
- /* Whether we're considered to be at the beginning of a line.
- * If so, '^' rules will be active on the next match, otherwise
- * not.
- */
- int ace_yy_at_bol;
-
- /* Whether to try to fill the input buffer when we reach the
- * end of it.
- */
- int ace_yy_fill_buffer;
-
- int ace_yy_buffer_status;
-#define ACE_YY_BUFFER_NEW 0
-#define ACE_YY_BUFFER_NORMAL 1
- /* When an EOF's been seen but there's still some text to process
- * then we mark the buffer as ACE_YY_EOF_PENDING, to indicate that we
- * shouldn't try reading from the input source any more. We might
- * still have a bunch of tokens to match, though, because of
- * possible backing-up.
- *
- * When we actually see the EOF, we change the status to "new"
- * (via ace_yyrestart()), so that the user can continue scanning by
- * just pointing ace_yyin at a new input file.
- */
-#define ACE_YY_BUFFER_EOF_PENDING 2
- };
-
-static ACE_YY_BUFFER_STATE ace_yy_current_buffer = 0;
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- */
-#define ACE_YY_CURRENT_BUFFER ace_yy_current_buffer
-
-
-/* ace_yy_hold_char holds the character lost when ace_yytext is formed. */
-static ACE_TCHAR ace_yy_hold_char;
-
-static int ace_yy_n_chars; /* number of characters read into ace_yy_ch_buf */
-
-
-int ace_yyleng;
-
-/* Points to current character in buffer. */
-static ACE_TCHAR *ace_yy_c_buf_p = (ACE_TCHAR *) 0;
-static int ace_yy_init = 1; /* whether we need to initialize */
-static int ace_yy_start = 0; /* start state number */
-
-/* Flag which is used to allow ace_yywrap()'s to do buffer switches
- * instead of setting up a fresh ace_yyin. A bit of a hack ...
- */
-static int ace_yy_did_buffer_switch_on_eof;
-
-void ace_yyrestart ACE_YY_PROTO(( FILE *input_file ));
-
-void ace_yy_switch_to_buffer ACE_YY_PROTO(( ACE_YY_BUFFER_STATE new_buffer ));
-void ace_yy_load_buffer_state ACE_YY_PROTO(( void ));
-ACE_YY_BUFFER_STATE ace_yy_create_buffer ACE_YY_PROTO(( FILE *file, int size ));
-void ace_yy_delete_buffer ACE_YY_PROTO(( ACE_YY_BUFFER_STATE b ));
-void ace_yy_init_buffer ACE_YY_PROTO(( ACE_YY_BUFFER_STATE b, FILE *file ));
-void ace_yy_flush_buffer ACE_YY_PROTO(( ACE_YY_BUFFER_STATE b ));
-#define ACE_YY_FLUSH_BUFFER ace_yy_flush_buffer( ace_yy_current_buffer )
-
-ACE_YY_BUFFER_STATE ace_yy_scan_buffer ACE_YY_PROTO(( ACE_TCHAR *base, ace_yy_size_t size ));
-ACE_YY_BUFFER_STATE ace_yy_scan_string ACE_YY_PROTO(( ace_yyconst ACE_TCHAR *ace_yy_str ));
-ACE_YY_BUFFER_STATE ace_yy_scan_bytes ACE_YY_PROTO(( ace_yyconst ACE_TCHAR *bytes, int len ));
-
-static void *ace_yy_flex_alloc ACE_YY_PROTO(( ace_yy_size_t ));
-static void *ace_yy_flex_realloc ACE_YY_PROTO(( void *, ace_yy_size_t ));
-static void ace_yy_flex_free ACE_YY_PROTO(( void * ));
-
-#define ace_yy_new_buffer ace_yy_create_buffer
-
-#define ace_yy_set_interactive(is_interactive) \
- { \
- if ( ! ace_yy_current_buffer ) \
- ace_yy_current_buffer = ace_yy_create_buffer( ace_yyin, ACE_YY_BUF_SIZE ); \
- ace_yy_current_buffer->ace_yy_is_interactive = is_interactive; \
- }
-
-#define ace_yy_set_bol(at_bol) \
- { \
- if ( ! ace_yy_current_buffer ) \
- ace_yy_current_buffer = ace_yy_create_buffer( ace_yyin, ACE_YY_BUF_SIZE ); \
- ace_yy_current_buffer->ace_yy_at_bol = at_bol; \
- }
-
-#define ACE_YY_AT_BOL() (ace_yy_current_buffer->ace_yy_at_bol)
-
-typedef ACE_TCHAR ACE_YY_CHAR;
-FILE *ace_yyin = (FILE *) 0, *ace_yyout = (FILE *) 0;
-typedef int ace_yy_state_type;
-extern ACE_TCHAR *ace_yytext;
-#define ace_yytext_ptr ace_yytext
-
-static ace_yy_state_type ace_yy_get_previous_state ACE_YY_PROTO(( void ));
-static ace_yy_state_type ace_yy_try_NUL_trans ACE_YY_PROTO(( ace_yy_state_type current_state ));
-static int ace_yy_get_next_buffer ACE_YY_PROTO(( void ));
-static void ace_yy_fatal_error ACE_YY_PROTO(( ace_yyconst ACE_TCHAR msg[] ));
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up ace_yytext.
- */
-#define ACE_YY_DO_BEFORE_ACTION \
- ace_yytext_ptr = ace_yy_bp; \
- ace_yyleng = (int) (ace_yy_cp - ace_yy_bp); \
- ace_yy_hold_char = *ace_yy_cp; \
- *ace_yy_cp = '\0'; \
- ace_yy_c_buf_p = ace_yy_cp;
-
-#define ACE_YY_NUM_RULES 26
-#define ACE_YY_END_OF_BUFFER 27
-static ace_yyconst short int ace_yy_accept[108] =
- { 0,
- 0, 0, 0, 0, 0, 0, 27, 25, 22, 24,
- 23, 25, 21, 25, 15, 16, 14, 21, 13, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 17, 18,
- 25, 22, 0, 19, 21, 0, 0, 19, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 0, 1,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 8, 10, 20, 11, 20, 20, 6,
- 5, 3, 7, 20, 20, 2, 20, 4, 20, 12,
-
- 20, 20, 20, 20, 20, 9, 0
- } ;
-
-static ace_yyconst int ace_yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 5, 6, 7, 8, 6, 9, 6, 10, 11,
- 12, 13, 6, 6, 14, 14, 14, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 16, 6, 6,
- 6, 6, 6, 6, 17, 18, 18, 18, 19, 18,
- 18, 18, 18, 18, 18, 18, 20, 18, 21, 18,
- 18, 22, 23, 24, 18, 18, 18, 18, 18, 18,
- 6, 14, 6, 6, 25, 6, 26, 27, 28, 29,
-
- 30, 18, 18, 18, 31, 32, 18, 33, 34, 35,
- 36, 37, 18, 38, 39, 40, 41, 42, 18, 18,
- 43, 18, 44, 6, 45, 14, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1
- } ;
-
-static ace_yyconst int ace_yy_meta[46] =
- { 0,
- 1, 1, 1, 1, 2, 2, 2, 2, 3, 2,
- 2, 2, 2, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 2, 2
- } ;
-
-static ace_yyconst short int ace_yy_base[113] =
- { 0,
- 0, 127, 0, 118, 0, 117, 124, 438, 44, 438,
- 438, 115, 100, 93, 438, 438, 438, 86, 438, 38,
- 39, 42, 48, 51, 54, 60, 64, 68, 438, 438,
- 98, 81, 86, 82, 72, 71, 71, 61, 76, 82,
- 90, 91, 101, 104, 105, 114, 118, 124, 58, 438,
- 133, 136, 145, 148, 151, 157, 166, 167, 175, 179,
- 183, 189, 197, 203, 207, 216, 215, 219, 228, 227,
- 231, 237, 250, 254, 262, 263, 272, 273, 282, 283,
- 286, 292, 301, 302, 311, 314, 315, 323, 324, 332,
- 333, 336, 344, 345, 348, 354, 362, 363, 366, 372,
-
- 375, 381, 384, 387, 390, 396, 438, 429, 56, 431,
- 47, 434
- } ;
-
-static ace_yyconst short int ace_yy_def[113] =
- { 0,
- 107, 1, 1, 1, 1, 1, 107, 107, 107, 107,
- 107, 108, 109, 110, 107, 107, 107, 109, 107, 111,
- 111, 111, 111, 111, 111, 111, 111, 111, 107, 107,
- 112, 107, 108, 108, 109, 109, 110, 110, 111, 111,
- 111, 111, 111, 111, 111, 111, 111, 111, 112, 107,
- 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
- 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
- 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
- 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
- 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
-
- 111, 111, 111, 111, 111, 111, 0, 107, 107, 107,
- 107, 107
- } ;
-
-static ace_yyconst short int ace_yy_nxt[484] =
- { 0,
- 8, 9, 10, 11, 9, 8, 12, 8, 13, 14,
- 15, 16, 17, 18, 18, 19, 20, 20, 20, 21,
- 20, 20, 22, 20, 23, 24, 20, 20, 25, 20,
- 26, 20, 20, 20, 20, 20, 20, 27, 28, 20,
- 20, 20, 20, 29, 30, 32, 35, 35, 32, 39,
- 35, 35, 35, 36, 36, 35, 35, 36, 35, 35,
- 50, 35, 35, 107, 35, 41, 36, 35, 35, 36,
- 38, 42, 35, 35, 40, 36, 35, 35, 43, 36,
- 38, 35, 32, 36, 35, 32, 107, 107, 34, 35,
- 35, 107, 34, 46, 45, 35, 44, 107, 35, 35,
-
- 50, 107, 38, 35, 35, 107, 107, 47, 48, 35,
- 51, 52, 35, 35, 35, 36, 107, 35, 35, 107,
- 107, 34, 35, 107, 31, 31, 35, 35, 53, 107,
- 56, 35, 35, 107, 31, 107, 107, 35, 55, 107,
- 54, 35, 107, 59, 35, 107, 35, 57, 107, 35,
- 107, 107, 58, 35, 63, 60, 35, 107, 35, 35,
- 107, 35, 61, 107, 35, 35, 107, 107, 107, 107,
- 35, 107, 107, 62, 35, 35, 66, 107, 65, 35,
- 35, 107, 107, 35, 67, 107, 64, 35, 35, 107,
- 107, 35, 35, 107, 107, 107, 35, 35, 107, 107,
-
- 107, 68, 35, 107, 107, 35, 107, 69, 71, 107,
- 35, 35, 107, 74, 70, 35, 35, 107, 107, 72,
- 35, 73, 107, 35, 35, 107, 107, 35, 35, 35,
- 107, 107, 35, 75, 107, 35, 35, 107, 107, 35,
- 35, 35, 107, 107, 35, 35, 107, 107, 76, 77,
- 35, 107, 107, 107, 78, 107, 82, 81, 35, 107,
- 79, 80, 35, 35, 107, 107, 83, 35, 107, 107,
- 35, 35, 107, 85, 107, 35, 35, 107, 107, 84,
- 35, 35, 107, 107, 107, 35, 35, 107, 107, 86,
- 35, 35, 87, 107, 35, 35, 35, 107, 107, 35,
-
- 35, 107, 88, 89, 107, 35, 107, 107, 107, 35,
- 35, 90, 91, 92, 35, 35, 107, 107, 107, 35,
- 107, 107, 35, 35, 35, 93, 107, 35, 35, 107,
- 107, 35, 35, 107, 107, 94, 35, 35, 107, 107,
- 35, 35, 107, 95, 35, 35, 35, 107, 107, 35,
- 96, 107, 35, 35, 107, 107, 35, 35, 35, 107,
- 107, 35, 35, 107, 107, 97, 107, 35, 107, 107,
- 35, 35, 99, 98, 35, 35, 35, 107, 107, 35,
- 35, 107, 107, 35, 107, 35, 101, 107, 35, 35,
- 107, 100, 35, 107, 35, 35, 107, 35, 35, 107,
-
- 35, 102, 107, 35, 35, 107, 107, 107, 107, 35,
- 107, 107, 103, 104, 105, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 106,
- 33, 33, 37, 37, 49, 49, 49, 7, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107
- } ;
-
-static ace_yyconst short int ace_yy_chk[484] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 9, 20, 21, 9, 111,
- 22, 20, 21, 20, 21, 22, 23, 22, 109, 24,
- 49, 23, 25, 23, 24, 22, 24, 25, 26, 25,
- 38, 22, 27, 26, 21, 26, 28, 27, 24, 27,
- 37, 28, 32, 28, 39, 32, 36, 35, 34, 39,
- 40, 39, 33, 27, 26, 40, 25, 40, 41, 42,
-
- 31, 18, 14, 41, 42, 41, 42, 28, 28, 43,
- 40, 41, 44, 45, 43, 13, 43, 44, 45, 44,
- 45, 12, 46, 7, 6, 4, 47, 46, 42, 46,
- 45, 47, 48, 47, 2, 0, 0, 48, 44, 48,
- 43, 51, 0, 47, 52, 0, 51, 46, 51, 52,
- 0, 52, 46, 53, 52, 47, 54, 0, 53, 55,
- 53, 54, 48, 54, 55, 56, 55, 0, 0, 0,
- 56, 0, 56, 51, 57, 58, 55, 0, 54, 57,
- 58, 57, 58, 59, 56, 0, 53, 60, 59, 0,
- 59, 61, 60, 0, 60, 0, 61, 62, 61, 0,
-
- 0, 57, 62, 0, 62, 63, 0, 58, 60, 0,
- 63, 64, 63, 63, 59, 65, 64, 0, 64, 61,
- 65, 62, 65, 67, 66, 0, 0, 68, 67, 66,
- 67, 66, 68, 64, 68, 70, 69, 0, 0, 71,
- 70, 69, 70, 69, 71, 72, 71, 0, 65, 66,
- 72, 0, 72, 0, 67, 0, 71, 70, 73, 0,
- 68, 69, 74, 73, 0, 73, 72, 74, 0, 74,
- 75, 76, 0, 74, 0, 75, 76, 75, 76, 73,
- 77, 78, 0, 0, 0, 77, 78, 77, 78, 75,
- 79, 80, 76, 0, 81, 79, 80, 79, 80, 81,
-
- 82, 81, 77, 78, 0, 82, 0, 82, 0, 83,
- 84, 79, 80, 81, 83, 84, 83, 84, 0, 85,
- 0, 0, 86, 87, 85, 82, 85, 86, 87, 86,
- 87, 88, 89, 0, 0, 83, 88, 89, 88, 89,
- 90, 91, 0, 86, 92, 90, 91, 90, 91, 92,
- 88, 92, 93, 94, 0, 0, 95, 93, 94, 93,
- 94, 95, 96, 95, 0, 89, 0, 96, 0, 96,
- 97, 98, 95, 94, 99, 97, 98, 97, 98, 99,
- 100, 99, 0, 101, 0, 100, 99, 100, 101, 102,
- 101, 97, 103, 0, 102, 104, 102, 103, 105, 103,
-
- 104, 101, 104, 105, 106, 105, 0, 0, 0, 106,
- 0, 106, 102, 103, 104, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 105,
- 108, 108, 110, 110, 112, 112, 112, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107
- } ;
-
-static ace_yy_state_type ace_yy_last_accepting_state;
-static ACE_TCHAR *ace_yy_last_accepting_cpos;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define ace_yymore() ace_yymore_used_but_not_detected
-#define ACE_YY_MORE_ADJ 0
-#define ACE_YY_RESTORE_ACE_YY_MORE_OFFSET
-ACE_TCHAR *ace_yytext;
-#define INITIAL 0
-// $Id$
-// Sample lexical analysis for regular expression subset. Must be
-// compiled with FLEX and an ANSI C++ compiler.
-
-// Lexical tokens values defined by YACC.
-#include "ace/Svc_Conf.h"
-#include "ace/Svc_Conf_Tokens.h"
-#include "ace/Svc_Conf_Lexer_Guard.h"
-
-ACE_RCSID (ace,
- Svc_Conf_l,
- "$Id$")
-
-#define token(x) x
-#define PARAMETERS 1
-
-#define NORMAL 2
-
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef ACE_YY_SKIP_ACE_YYWRAP
-#ifdef __cplusplus
-extern "C" int ace_yywrap ACE_YY_PROTO(( void ));
-#else
-extern int ace_yywrap ACE_YY_PROTO(( void ));
-#endif
-#endif
-
-#ifndef ACE_YY_NO_UNPUT
-static void ace_yyunput ACE_YY_PROTO(( int c, ACE_TCHAR *buf_ptr ));
-#endif
-
-#ifndef ace_yytext_ptr
-static void ace_yy_flex_strncpy ACE_YY_PROTO(( ACE_TCHAR *, ace_yyconst ACE_TCHAR *, int ));
-#endif
-
-#ifdef ACE_YY_NEED_STRLEN
-static int ace_yy_flex_strlen ACE_YY_PROTO(( ace_yyconst ACE_TCHAR * ));
-#endif
-
-#ifndef ACE_YY_NO_INPUT
-#ifdef __cplusplus
-static int ace_yyinput ACE_YY_PROTO(( void ));
-#else
-static int input ACE_YY_PROTO(( void ));
-#endif
-#endif
-
-#if ACE_YY_STACK_USED
-static int ace_yy_start_stack_ptr = 0;
-static int ace_yy_start_stack_depth = 0;
-static int *ace_yy_start_stack = 0;
-#ifndef ACE_YY_NO_PUSH_STATE
-static void ace_yy_push_state ACE_YY_PROTO(( int new_state ));
-#endif
-#ifndef ACE_YY_NO_POP_STATE
-static void ace_yy_pop_state ACE_YY_PROTO(( void ));
-#endif
-#ifndef ACE_YY_NO_TOP_STATE
-static int ace_yy_top_state ACE_YY_PROTO(( void ));
-#endif
-
-#else
-#define ACE_YY_NO_PUSH_STATE 1
-#define ACE_YY_NO_POP_STATE 1
-#define ACE_YY_NO_TOP_STATE 1
-#endif
-
-#ifdef ACE_YY_MALLOC_DECL
-ACE_YY_MALLOC_DECL
-#else
-#if __STDC__
-#ifndef __cplusplus
-#include /**/ <stdlib.h>
-#endif
-#else
-/* Just try to get by without declaring the routines. This will fail
- * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
- * or sizeof(void*) != sizeof(int).
- */
-#endif
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef ACE_YY_READ_BUF_SIZE
-#define ACE_YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-
-#ifndef ACE_SVC_CONF_ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ACE_SVC_CONF_ECHO (void) fwrite( ace_yytext, ace_yyleng, 1, ace_yyout )
-#endif
-
-/* Gets input and stuffs it into "buf". number of characters read, or ACE_YY_NULL,
- * is returned in "result".
- */
-#ifndef ACE_YY_INPUT
-#define ACE_YY_INPUT(buf,result,max_size) \
- if ( ace_yy_current_buffer->ace_yy_is_interactive ) \
- { \
- int c = '*', n; \
- for ( n = 0; n < max_size && \
- (c = getc( ace_yyin )) != EOF && c != '\n'; ++n ) \
- buf[n] = (ACE_TCHAR) c; \
- if ( c == '\n' ) \
- buf[n++] = (ACE_TCHAR) c; \
- if ( c == EOF && ferror( ace_yyin ) ) \
- ACE_YY_FATAL_ERROR( ACE_LIB_TEXT ("input in flex scanner failed") ); \
- result = n; \
- } \
- else \
- { \
- errno=0; \
- while ( (result = fread(buf, sizeof (ACE_TCHAR), max_size, ace_yyin))==0 && ferror(ace_yyin)) \
- { \
- if( errno != EINTR) \
- { \
- ACE_YY_FATAL_ERROR( ACE_LIB_TEXT ("input in flex scanner failed") ); \
- break; \
- } \
- errno=0; \
- clearerr(ace_yyin); \
- } \
- }
-#endif
-
-/* No semi-colon after return; correct usage is to write "ace_yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef ace_yyterminate
-#define ace_yyterminate() return ACE_YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef ACE_YY_START_STACK_INCR
-#define ACE_YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef ACE_YY_FATAL_ERROR
-#define ACE_YY_FATAL_ERROR(msg) ace_yy_fatal_error( msg )
-#endif
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef ACE_YY_DECL
-#define ACE_YY_DECL int ace_yylex ACE_YY_PROTO(( void ))
-#endif
-
-/* Code executed at the beginning of each rule, after ace_yytext and ace_yyleng
- * have been set up.
- */
-#ifndef ACE_YY_USER_ACTION
-#define ACE_YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef ACE_YY_BREAK
-#define ACE_YY_BREAK break;
-#endif
-
-#define ACE_YY_RULE_SETUP \
- if ( ace_yyleng > 0 ) \
- ace_yy_current_buffer->ace_yy_at_bol = \
- (ace_yytext[ace_yyleng - 1] == '\n'); \
- ACE_YY_USER_ACTION
-
-ACE_YY_DECL
- {
- register ace_yy_state_type ace_yy_current_state;
- register ACE_TCHAR *ace_yy_cp=0, *ace_yy_bp=0;
- register int ace_yy_act;
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX,
- ace_mon,
- *ACE_Static_Object_Lock::instance (),
- -1));
-
- ACE_Svc_Conf_Lexer_Guard ace_lexer_guard (ACE_SVC_CONF_PARAM);
-
- if ( ace_yy_init )
- {
- ace_yy_init = 0;
-
-#ifdef ACE_YY_USER_INIT
- ACE_YY_USER_INIT;
-#endif
-
- if ( ! ace_yy_start )
- ace_yy_start = 1; /* first start state */
-
- if ( ! ace_yyin )
- ace_yyin = stdin;
-
- if ( ! ace_yyout )
- ace_yyout = stdout;
-
- if ( ! ace_yy_current_buffer )
- ace_yy_current_buffer =
- ace_yy_create_buffer( ace_yyin, ACE_YY_BUF_SIZE );
-
- ace_yy_load_buffer_state();
- }
-
- while ( 1 ) /* loops until end-of-file is reached */
- {
- ace_yy_cp = ace_yy_c_buf_p;
-
- /* Support of ace_yytext. */
- *ace_yy_cp = ace_yy_hold_char;
-
- /* ace_yy_bp points to the position in ace_yy_ch_buf of the start of
- * the current run.
- */
- ace_yy_bp = ace_yy_cp;
-
- ace_yy_current_state = ace_yy_start;
- ace_yy_current_state += ACE_YY_AT_BOL();
-ace_yy_match:
- do
- {
- register ACE_YY_CHAR ace_yy_c = ace_yy_ec[ACE_YY_SC_TO_UI(*ace_yy_cp)];
- if ( ace_yy_accept[ace_yy_current_state] )
- {
- ace_yy_last_accepting_state = ace_yy_current_state;
- ace_yy_last_accepting_cpos = ace_yy_cp;
- }
- while ( ace_yy_chk[ace_yy_base[ace_yy_current_state] + ace_yy_c] != ace_yy_current_state )
- {
- ace_yy_current_state = (int) ace_yy_def[ace_yy_current_state];
- if ( ace_yy_current_state >= 108 )
- ace_yy_c = ace_yy_meta[(unsigned int) ace_yy_c];
- }
- ace_yy_current_state = ace_yy_nxt[ace_yy_base[ace_yy_current_state] + (unsigned int) ace_yy_c];
- ++ace_yy_cp;
- }
- while ( ace_yy_base[ace_yy_current_state] != 438 );
-
-ace_yy_find_action:
- ace_yy_act = ace_yy_accept[ace_yy_current_state];
- if ( ace_yy_act == 0 )
- { /* have to back up */
- ace_yy_cp = ace_yy_last_accepting_cpos;
- ace_yy_current_state = ace_yy_last_accepting_state;
- ace_yy_act = ace_yy_accept[ace_yy_current_state];
- }
-
- ACE_YY_DO_BEFORE_ACTION;
-
-
-do_action: /* This label is used only to access EOF actions. */
-
-
- switch ( ace_yy_act )
- { /* beginning of action switch */
- case 0: /* must back up */
- /* undo the effects of ACE_YY_DO_BEFORE_ACTION */
- *ace_yy_cp = ace_yy_hold_char;
- ace_yy_cp = ace_yy_last_accepting_cpos;
- ace_yy_current_state = ace_yy_last_accepting_state;
- goto ace_yy_find_action;
-
-case 1:
-*ace_yy_cp = ace_yy_hold_char; /* undo effects of setting up ace_yytext */
-ace_yy_c_buf_p = ace_yy_cp -= 1;
-ACE_YY_DO_BEFORE_ACTION; /* set up ace_yytext again */
-ACE_YY_RULE_SETUP
-; /* EMPTY */
- ACE_YY_BREAK
-case 2:
-ACE_YY_RULE_SETUP
-{ return token (ACE_DYNAMIC); }
- // ACE_YY_BREAK
-case 3:
-ACE_YY_RULE_SETUP
-{ return token (ACE_STATIC); }
- // ACE_YY_BREAK
-case 4:
-ACE_YY_RULE_SETUP
-{ return token (ACE_SUSPEND); }
- // ACE_YY_BREAK
-case 5:
-ACE_YY_RULE_SETUP
-{ return token (ACE_RESUME); }
- // ACE_YY_BREAK
-case 6:
-ACE_YY_RULE_SETUP
-{ return token (ACE_REMOVE); }
- // ACE_YY_BREAK
-case 7:
-ACE_YY_RULE_SETUP
-{ return token (ACE_USTREAM); }
- // ACE_YY_BREAK
-case 8:
-ACE_YY_RULE_SETUP
-{ return token (ACE_MODULE_T); }
- // ACE_YY_BREAK
-case 9:
-ACE_YY_RULE_SETUP
-{ return token (ACE_SVC_OBJ_T); }
- // ACE_YY_BREAK
-case 10:
-ACE_YY_RULE_SETUP
-{ return token (ACE_STREAM_T); }
- // ACE_YY_BREAK
-case 11:
-ACE_YY_RULE_SETUP
-{ return token (ACE_ACTIVE); }
- // ACE_YY_BREAK
-case 12:
-ACE_YY_RULE_SETUP
-{ return token (ACE_INACTIVE); }
- // ACE_YY_BREAK
-case 13:
-ACE_YY_RULE_SETUP
-{ return token (':'); }
- // ACE_YY_BREAK
-case 14:
-ACE_YY_RULE_SETUP
-{ return token ('*'); }
- // ACE_YY_BREAK
-case 15:
-ACE_YY_RULE_SETUP
-{ return token ('('); }
- // ACE_YY_BREAK
-case 16:
-ACE_YY_RULE_SETUP
-{ return token (')'); }
- // ACE_YY_BREAK
-case 17:
-ACE_YY_RULE_SETUP
-{ return token ('{'); }
- // ACE_YY_BREAK
-case 18:
-ACE_YY_RULE_SETUP
-{ return token ('}'); }
- // ACE_YY_BREAK
-case 19:
-ACE_YY_RULE_SETUP
-{
- // Remove tailaing quote character (' or ")
- ACE_TCHAR *s = ACE_OS::strrchr (ace_yytext, ace_yytext[0]);
-
- ACE_ASSERT (s != 0);
- // Eliminate the opening and closing double or
- // single quotes.
- *s = '\0';
- ace_yyleng -= 1;
- ace_yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (ace_yytext + 1, ace_yyleng);
- return token (ACE_STRING); }
-// ACE_YY_BREAK
-case 20:
-ACE_YY_RULE_SETUP
-{
- ace_yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (ace_yytext, ace_yyleng);
- return token (ACE_IDENT);
- }
-// ACE_YY_BREAK
-case 21:
-ACE_YY_RULE_SETUP
-{
- ace_yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (ace_yytext, ace_yyleng);
- return token (ACE_PATHNAME);
- }
-// ACE_YY_BREAK
-case 22:
-ACE_YY_RULE_SETUP
-; /* EMPTY */
- ACE_YY_BREAK
-case 23:
-ACE_YY_RULE_SETUP
-; /* EMPTY */
- ACE_YY_BREAK
-case 24:
-ACE_YY_RULE_SETUP
-{ ACE_SVC_CONF_PARAM->yylineno++; }
- ACE_YY_BREAK
-case 25:
-ACE_YY_RULE_SETUP
-{
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("unknown character = (%d"),
- *ace_yytext));
- if (ACE_OS::ace_isprint (*ace_yytext))
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("|%c"), *ace_yytext));
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT (")\n")));
- }
- ACE_YY_BREAK
-case ACE_YY_STATE_EOF(INITIAL):
-case ACE_YY_STATE_EOF(PARAMETERS):
-case ACE_YY_STATE_EOF(NORMAL):
-{ ace_yyterminate (); }
- ACE_YY_BREAK
-case 26:
-ACE_YY_RULE_SETUP
-ACE_SVC_CONF_ECHO;
- ACE_YY_BREAK
-
- case ACE_YY_END_OF_BUFFER:
- {
- /* Amount of text matched not including the EOB ACE_TCHAR. */
- int ace_yy_amount_of_matched_text = (int) (ace_yy_cp - ace_yytext_ptr) - 1;
-
- /* Undo the effects of ACE_YY_DO_BEFORE_ACTION. */
- *ace_yy_cp = ace_yy_hold_char;
- ACE_YY_RESTORE_ACE_YY_MORE_OFFSET
-
- if ( ace_yy_current_buffer->ace_yy_buffer_status == ACE_YY_BUFFER_NEW )
- {
- /* We're scanning a new file or input source. It's
- * possible that this happened because the user
- * just pointed ace_yyin at a new source and called
- * ace_yylex(). If so, then we have to assure
- * consistency between ace_yy_current_buffer and our
- * globals. Here is the right place to do so, because
- * this is the first action (other than possibly a
- * back-up) that will match for the new input source.
- */
- ace_yy_n_chars = ace_yy_current_buffer->ace_yy_n_chars;
- ace_yy_current_buffer->ace_yy_input_file = ace_yyin;
- ace_yy_current_buffer->ace_yy_buffer_status = ACE_YY_BUFFER_NORMAL;
- }
-
- /* Note that here we test for ace_yy_c_buf_p "<=" to the position
- * of the first EOB in the buffer, since ace_yy_c_buf_p will
- * already have been incremented past the NUL character
- * (since all states make transitions on EOB to the
- * end-of-buffer state). Contrast this with the test
- * in input().
- */
- if ( ace_yy_c_buf_p <= &ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars] )
- { /* This was really a NUL. */
- ace_yy_state_type ace_yy_next_state;
-
- ace_yy_c_buf_p = ace_yytext_ptr + ace_yy_amount_of_matched_text;
-
- ace_yy_current_state = ace_yy_get_previous_state();
-
- /* Okay, we're now positioned to make the NUL
- * transition. We couldn't have
- * ace_yy_get_previous_state() go ahead and do it
- * for us because it doesn't know how to deal
- * with the possibility of jamming (and we don't
- * want to build jamming into it because then it
- * will run more slowly).
- */
-
- ace_yy_next_state = ace_yy_try_NUL_trans( ace_yy_current_state );
-
- ace_yy_bp = ace_yytext_ptr + ACE_YY_MORE_ADJ;
-
- if ( ace_yy_next_state )
- {
- /* Consume the NUL. */
- ace_yy_cp = ++ace_yy_c_buf_p;
- ace_yy_current_state = ace_yy_next_state;
- goto ace_yy_match;
- }
-
- else
- {
- ace_yy_cp = ace_yy_c_buf_p;
- goto ace_yy_find_action;
- }
- }
-
- else switch ( ace_yy_get_next_buffer() )
- {
- case EOB_ACT_END_OF_FILE:
- {
- ace_yy_did_buffer_switch_on_eof = 0;
-
- if ( ace_yywrap() )
- {
- /* Note: because we've taken care in
- * ace_yy_get_next_buffer() to have set up
- * ace_yytext, we can now set up
- * ace_yy_c_buf_p so that if some total
- * hoser (like flex itself) wants to
- * call the scanner after we return the
- * ACE_YY_NULL, it'll still work - another
- * ACE_YY_NULL will get returned.
- */
- ace_yy_c_buf_p = ace_yytext_ptr + ACE_YY_MORE_ADJ;
-
- ace_yy_act = ACE_YY_STATE_EOF(ACE_YY_START);
- goto do_action;
- }
-
- else
- {
- if ( ! ace_yy_did_buffer_switch_on_eof )
- ACE_YY_NEW_FILE;
- }
- break;
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- ace_yy_c_buf_p =
- ace_yytext_ptr + ace_yy_amount_of_matched_text;
-
- ace_yy_current_state = ace_yy_get_previous_state();
-
- ace_yy_cp = ace_yy_c_buf_p;
- ace_yy_bp = ace_yytext_ptr + ACE_YY_MORE_ADJ;
- goto ace_yy_match;
-
- case EOB_ACT_LAST_MATCH:
- ace_yy_c_buf_p =
- &ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars];
-
- ace_yy_current_state = ace_yy_get_previous_state();
-
- ace_yy_cp = ace_yy_c_buf_p;
- ace_yy_bp = ace_yytext_ptr + ACE_YY_MORE_ADJ;
- goto ace_yy_find_action;
- }
- break;
- }
-
- default:
- ACE_YY_FATAL_ERROR(
- ACE_LIB_TEXT("fatal flex scanner internal error--no action found") );
- } /* end of action switch */
- } /* end of scanning one token */
- } /* end of ace_yylex */
-
-
-/* ace_yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- * EOB_ACT_LAST_MATCH -
- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- * EOB_ACT_END_OF_FILE - end of file
- */
-
-static int ace_yy_get_next_buffer()
- {
- register ACE_TCHAR *dest = ace_yy_current_buffer->ace_yy_ch_buf;
- register ACE_TCHAR *source = ace_yytext_ptr;
- register int number_to_move, i;
- int ret_val;
-
- if ( ace_yy_c_buf_p > &ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars + 1] )
- ACE_YY_FATAL_ERROR(
- ACE_LIB_TEXT("fatal flex scanner internal error--end of buffer missed") );
-
- if ( ace_yy_current_buffer->ace_yy_fill_buffer == 0 )
- { /* Don't try to fill the buffer, so this is an EOF. */
- if ( ace_yy_c_buf_p - ace_yytext_ptr - ACE_YY_MORE_ADJ == 1 )
- {
- /* We matched a single character, the EOB, so
- * treat this as a final EOF.
- */
- return EOB_ACT_END_OF_FILE;
- }
-
- else
- {
- /* We matched some text prior to the EOB, first
- * process it.
- */
- return EOB_ACT_LAST_MATCH;
- }
- }
-
- /* Try to read more data. */
-
- /* First move last chars to start of buffer. */
- number_to_move = (int) (ace_yy_c_buf_p - ace_yytext_ptr) - 1;
-
- for ( i = 0; i < number_to_move; ++i )
- *(dest++) = *(source++);
-
- if ( ace_yy_current_buffer->ace_yy_buffer_status == ACE_YY_BUFFER_EOF_PENDING )
- /* don't do the read, it's not guaranteed to return an EOF,
- * just force an EOF
- */
- ace_yy_current_buffer->ace_yy_n_chars = ace_yy_n_chars = 0;
-
- else
- {
- int num_to_read =
- ace_yy_current_buffer->ace_yy_buf_size - number_to_move - 1;
-
- while ( num_to_read <= 0 )
- { /* Not enough room in the buffer - grow it. */
-#ifdef ACE_YY_USES_REJECT
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT(
-"input buffer overflow, can't enlarge buffer because scanner uses REJECT") );
-#else
-
- /* just a shorter name for the current buffer */
- ACE_YY_BUFFER_STATE b = ace_yy_current_buffer;
-
- int ace_yy_c_buf_p_offset =
- (int) (ace_yy_c_buf_p - b->ace_yy_ch_buf);
-
- if ( b->ace_yy_is_our_buffer )
- {
- int new_size = b->ace_yy_buf_size * 2;
-
- if ( new_size <= 0 )
- b->ace_yy_buf_size += b->ace_yy_buf_size / 8;
- else
- b->ace_yy_buf_size *= 2;
-
- b->ace_yy_ch_buf = (ACE_TCHAR *)
- /* Include room in for 2 EOB chars. */
- ace_yy_flex_realloc( (void *) b->ace_yy_ch_buf,
- (b->ace_yy_buf_size + 2)*sizeof(ACE_TCHAR));
- }
- else
- /* Can't grow it, we don't own it. */
- b->ace_yy_ch_buf = 0;
-
- if ( ! b->ace_yy_ch_buf )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT(
- "fatal error - scanner input buffer overflow") );
-
- ace_yy_c_buf_p = &b->ace_yy_ch_buf[ace_yy_c_buf_p_offset];
-
- num_to_read = ace_yy_current_buffer->ace_yy_buf_size -
- number_to_move - 1;
-#endif
- }
-
- if ( num_to_read * sizeof (ACE_TCHAR) > ACE_YY_READ_BUF_SIZE )
- num_to_read = ACE_YY_READ_BUF_SIZE/sizeof (ACE_TCHAR);
-
- /* Read in more data. */
- ACE_YY_INPUT( (&ace_yy_current_buffer->ace_yy_ch_buf[number_to_move]),
- ace_yy_n_chars, num_to_read );
-
- ace_yy_current_buffer->ace_yy_n_chars = ace_yy_n_chars;
- }
-
- if ( ace_yy_n_chars == 0 )
- {
- if ( number_to_move == ACE_YY_MORE_ADJ )
- {
- ret_val = EOB_ACT_END_OF_FILE;
- ace_yyrestart( ace_yyin );
- }
-
- else
- {
- ret_val = EOB_ACT_LAST_MATCH;
- ace_yy_current_buffer->ace_yy_buffer_status =
- ACE_YY_BUFFER_EOF_PENDING;
- }
- }
-
- else
- ret_val = EOB_ACT_CONTINUE_SCAN;
-
- ace_yy_n_chars += number_to_move;
- ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars] = ACE_YY_END_OF_BUFFER_CHAR;
- ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars + 1] = ACE_YY_END_OF_BUFFER_CHAR;
-
- ace_yytext_ptr = &ace_yy_current_buffer->ace_yy_ch_buf[0];
-
- return ret_val;
- }
-
-
-/* ace_yy_get_previous_state - get the state just before the EOB ACE_TCHAR was reached */
-
-static ace_yy_state_type ace_yy_get_previous_state()
- {
- register ace_yy_state_type ace_yy_current_state;
- register ACE_TCHAR *ace_yy_cp;
-
- ace_yy_current_state = ace_yy_start;
- ace_yy_current_state += ACE_YY_AT_BOL();
-
- for ( ace_yy_cp = ace_yytext_ptr + ACE_YY_MORE_ADJ; ace_yy_cp < ace_yy_c_buf_p; ++ace_yy_cp )
- {
- register ACE_YY_CHAR ace_yy_c = (*ace_yy_cp ? ace_yy_ec[ACE_YY_SC_TO_UI(*ace_yy_cp)] : 1);
- if ( ace_yy_accept[ace_yy_current_state] )
- {
- ace_yy_last_accepting_state = ace_yy_current_state;
- ace_yy_last_accepting_cpos = ace_yy_cp;
- }
- while ( ace_yy_chk[ace_yy_base[ace_yy_current_state] + ace_yy_c] != ace_yy_current_state )
- {
- ace_yy_current_state = (int) ace_yy_def[ace_yy_current_state];
- if ( ace_yy_current_state >= 108 )
- ace_yy_c = ace_yy_meta[(unsigned int) ace_yy_c];
- }
- ace_yy_current_state = ace_yy_nxt[ace_yy_base[ace_yy_current_state] + (unsigned int) ace_yy_c];
- }
-
- return ace_yy_current_state;
- }
-
-
-/* ace_yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- * next_state = ace_yy_try_NUL_trans( current_state );
- */
-
-#ifdef ACE_YY_USE_PROTOS
-static ace_yy_state_type ace_yy_try_NUL_trans( ace_yy_state_type ace_yy_current_state )
-#else
-static ace_yy_state_type ace_yy_try_NUL_trans( ace_yy_current_state )
-ace_yy_state_type ace_yy_current_state;
-#endif
- {
- register int ace_yy_is_jam;
- register ACE_TCHAR *ace_yy_cp = ace_yy_c_buf_p;
-
- register ACE_YY_CHAR ace_yy_c = 1;
- if ( ace_yy_accept[ace_yy_current_state] )
- {
- ace_yy_last_accepting_state = ace_yy_current_state;
- ace_yy_last_accepting_cpos = ace_yy_cp;
- }
- while ( ace_yy_chk[ace_yy_base[ace_yy_current_state] + ace_yy_c] != ace_yy_current_state )
- {
- ace_yy_current_state = (int) ace_yy_def[ace_yy_current_state];
- if ( ace_yy_current_state >= 108 )
- ace_yy_c = ace_yy_meta[(unsigned int) ace_yy_c];
- }
- ace_yy_current_state = ace_yy_nxt[ace_yy_base[ace_yy_current_state] + (unsigned int) ace_yy_c];
- ace_yy_is_jam = (ace_yy_current_state == 107);
-
- return ace_yy_is_jam ? 0 : ace_yy_current_state;
- }
-
-
-#ifndef ACE_YY_NO_UNPUT
-#ifdef ACE_YY_USE_PROTOS
-static void ace_yyunput( int c, register ACE_TCHAR *ace_yy_bp )
-#else
-static void ace_yyunput( c, ace_yy_bp )
-int c;
-register ACE_TCHAR *ace_yy_bp;
-#endif
- {
- register ACE_TCHAR *ace_yy_cp = ace_yy_c_buf_p;
-
- /* undo effects of setting up ace_yytext */
- *ace_yy_cp = ace_yy_hold_char;
-
- if ( ace_yy_cp < ace_yy_current_buffer->ace_yy_ch_buf + 2 )
- { /* need to shift things up to make room */
- /* +2 for EOB chars. */
- register int number_to_move = ace_yy_n_chars + 2;
- register ACE_TCHAR *dest = &ace_yy_current_buffer->ace_yy_ch_buf[
- ace_yy_current_buffer->ace_yy_buf_size + 2];
- register ACE_TCHAR *source =
- &ace_yy_current_buffer->ace_yy_ch_buf[number_to_move];
-
- while ( source > ace_yy_current_buffer->ace_yy_ch_buf )
- *--dest = *--source;
-
- ace_yy_cp += (int) (dest - source);
- ace_yy_bp += (int) (dest - source);
- ace_yy_current_buffer->ace_yy_n_chars =
- ace_yy_n_chars = ace_yy_current_buffer->ace_yy_buf_size;
-
- if ( ace_yy_cp < ace_yy_current_buffer->ace_yy_ch_buf + 2 )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "flex scanner push-back overflow") );
- }
-
- *--ace_yy_cp = (ACE_TCHAR) c;
-
-
- ace_yytext_ptr = ace_yy_bp;
- ace_yy_hold_char = *ace_yy_cp;
- ace_yy_c_buf_p = ace_yy_cp;
- }
-#endif /* ifndef ACE_YY_NO_UNPUT */
-
-
-#ifdef __cplusplus
-static int ace_yyinput()
-#else
-static int input()
-#endif
- {
- int c;
-
- *ace_yy_c_buf_p = ace_yy_hold_char;
-
- if ( *ace_yy_c_buf_p == ACE_YY_END_OF_BUFFER_CHAR )
- {
- /* ace_yy_c_buf_p now points to the character we want to return.
- * If this occurs *before* the EOB characters, then it's a
- * valid NUL; if not, then we've hit the end of the buffer.
- */
- if ( ace_yy_c_buf_p < &ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars] )
- /* This was really a NUL. */
- *ace_yy_c_buf_p = '\0';
-
- else
- { /* need more input */
- int offset = ace_yy_c_buf_p - ace_yytext_ptr;
- ++ace_yy_c_buf_p;
-
- switch ( ace_yy_get_next_buffer() )
- {
- case EOB_ACT_LAST_MATCH:
- /* This happens because ace_yy_g_n_b()
- * sees that we've accumulated a
- * token and flags that we need to
- * try matching the token before
- * proceeding. But for input(),
- * there's no matching to consider.
- * So convert the EOB_ACT_LAST_MATCH
- * to EOB_ACT_END_OF_FILE.
- */
-
- /* Reset buffer status. */
- ace_yyrestart( ace_yyin );
-
- /* fall through */
-
- case EOB_ACT_END_OF_FILE:
- {
- if ( ace_yywrap() )
- return EOF;
-
- if ( ! ace_yy_did_buffer_switch_on_eof )
- ACE_YY_NEW_FILE;
-#ifdef __cplusplus
- return ace_yyinput();
-#else
- return input();
-#endif
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- ace_yy_c_buf_p = ace_yytext_ptr + offset;
- break;
- }
- }
- }
-
- c = *(unsigned char *) ace_yy_c_buf_p; /* cast for 8-bit char's */
- *ace_yy_c_buf_p = '\0'; /* preserve ace_yytext */
- ace_yy_hold_char = *++ace_yy_c_buf_p;
-
- ace_yy_current_buffer->ace_yy_at_bol = (c == '\n');
-
- return c;
- }
-
-
-#ifdef ACE_YY_USE_PROTOS
-void ace_yyrestart( FILE *input_file )
-#else
-void ace_yyrestart( input_file )
-FILE *input_file;
-#endif
- {
- if ( ! ace_yy_current_buffer )
- ace_yy_current_buffer = ace_yy_create_buffer( ace_yyin, ACE_YY_BUF_SIZE );
-
- ace_yy_init_buffer( ace_yy_current_buffer, input_file );
- ace_yy_load_buffer_state();
- }
-
-
-#ifdef ACE_YY_USE_PROTOS
-void ace_yy_switch_to_buffer( ACE_YY_BUFFER_STATE new_buffer )
-#else
-void ace_yy_switch_to_buffer( new_buffer )
-ACE_YY_BUFFER_STATE new_buffer;
-#endif
- {
- if ( ace_yy_current_buffer == new_buffer )
- return;
-
- if ( ace_yy_current_buffer )
- {
- /* Flush out information for old buffer. */
- *ace_yy_c_buf_p = ace_yy_hold_char;
- ace_yy_current_buffer->ace_yy_buf_pos = ace_yy_c_buf_p;
- ace_yy_current_buffer->ace_yy_n_chars = ace_yy_n_chars;
- }
-
- ace_yy_current_buffer = new_buffer;
- ace_yy_load_buffer_state();
-
- /* We don't actually know whether we did this switch during
- * EOF (ace_yywrap()) processing, but the only time this flag
- * is looked at is after ace_yywrap() is called, so it's safe
- * to go ahead and always set it.
- */
- ace_yy_did_buffer_switch_on_eof = 1;
- }
-
-
-#ifdef ACE_YY_USE_PROTOS
-void ace_yy_load_buffer_state( void )
-#else
-void ace_yy_load_buffer_state()
-#endif
- {
- ace_yy_n_chars = ace_yy_current_buffer->ace_yy_n_chars;
- ace_yytext_ptr = ace_yy_c_buf_p = ace_yy_current_buffer->ace_yy_buf_pos;
- ace_yyin = ace_yy_current_buffer->ace_yy_input_file;
- ace_yy_hold_char = *ace_yy_c_buf_p;
- }
-
-
-#ifdef ACE_YY_USE_PROTOS
-ACE_YY_BUFFER_STATE ace_yy_create_buffer( FILE *file, int size )
-#else
-ACE_YY_BUFFER_STATE ace_yy_create_buffer( file, size )
-FILE *file;
-int size;
-#endif
- {
- ACE_YY_BUFFER_STATE b;
-
- b = (ACE_YY_BUFFER_STATE) ace_yy_flex_alloc( sizeof( struct ace_yy_buffer_state ) );
- if ( ! b )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_create_buffer()") );
-
- b->ace_yy_buf_size = size;
-
- /* ace_yy_ch_buf has to be 2 characters longer than the size given because
- * we need to put in 2 end-of-buffer characters.
- */
- b->ace_yy_ch_buf = (ACE_TCHAR *) ace_yy_flex_alloc( (b->ace_yy_buf_size + 2 ) * sizeof (ACE_TCHAR));
- if ( ! b->ace_yy_ch_buf )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_create_buffer()") );
-
- b->ace_yy_is_our_buffer = 1;
-
- ace_yy_init_buffer( b, file );
-
- return b;
- }
-
-
-#ifdef ACE_YY_USE_PROTOS
-void ace_yy_delete_buffer( ACE_YY_BUFFER_STATE b )
-#else
-void ace_yy_delete_buffer( b )
-ACE_YY_BUFFER_STATE b;
-#endif
- {
- if ( ! b )
- return;
-
- if ( b == ace_yy_current_buffer )
- ace_yy_current_buffer = (ACE_YY_BUFFER_STATE) 0;
-
- if ( b->ace_yy_is_our_buffer )
- ace_yy_flex_free( (void *) b->ace_yy_ch_buf );
-
- ace_yy_flex_free( (void *) b );
- }
-
-#ifndef ACE_YY_ALWAYS_INTERACTIVE
-#ifndef ACE_YY_NEVER_INTERACTIVE
-extern int nop_isatty ACE_YY_PROTO(( int ));
-#endif
-#endif
-
-#ifndef ACE_YY_ALWAYS_INTERACTIVE
-#ifndef ACE_YY_NEVER_INTERACTIVE
-extern int nop_isatty ACE_YY_PROTO(( int ));
-#endif
-#endif
-
-#ifdef ACE_YY_USE_PROTOS
-void ace_yy_init_buffer( ACE_YY_BUFFER_STATE b, FILE *file )
-#else
-void ace_yy_init_buffer( b, file )
-ACE_YY_BUFFER_STATE b;
-FILE *file;
-#endif
-
-
- {
- ace_yy_flush_buffer( b );
-
- b->ace_yy_input_file = file;
- b->ace_yy_fill_buffer = 1;
-
-#if ACE_YY_ALWAYS_INTERACTIVE
- b->ace_yy_is_interactive = 1;
-#else
-#if ACE_YY_NEVER_INTERACTIVE
- b->ace_yy_is_interactive = 0;
-#else
- b->ace_yy_is_interactive = file ? (ACE_OS::isatty( fileno (file) ) > 0) : 0;
-#endif
-#endif
- }
-
-
-#ifdef ACE_YY_USE_PROTOS
-void ace_yy_flush_buffer( ACE_YY_BUFFER_STATE b )
-#else
-void ace_yy_flush_buffer( b )
-ACE_YY_BUFFER_STATE b;
-#endif
-
- {
- if ( ! b )
- return;
-
- b->ace_yy_n_chars = 0;
-
- /* We always need two end-of-buffer characters. The first causes
- * a transition to the end-of-buffer state. The second causes
- * a jam in that state.
- */
- b->ace_yy_ch_buf[0] = ACE_YY_END_OF_BUFFER_CHAR;
- b->ace_yy_ch_buf[1] = ACE_YY_END_OF_BUFFER_CHAR;
-
- b->ace_yy_buf_pos = &b->ace_yy_ch_buf[0];
-
- b->ace_yy_at_bol = 1;
- b->ace_yy_buffer_status = ACE_YY_BUFFER_NEW;
-
- if ( b == ace_yy_current_buffer )
- ace_yy_load_buffer_state();
- }
-
-
-#ifndef ACE_YY_NO_SCAN_BUFFER
-#ifdef ACE_YY_USE_PROTOS
-ACE_YY_BUFFER_STATE ace_yy_scan_buffer( ACE_TCHAR *base, ace_yy_size_t size )
-#else
-ACE_YY_BUFFER_STATE ace_yy_scan_buffer( base, size )
-ACE_TCHAR *base;
-ace_yy_size_t size;
-#endif
- {
- ACE_YY_BUFFER_STATE b;
-
- if ( size < 2 ||
- base[size-2] != ACE_YY_END_OF_BUFFER_CHAR ||
- base[size-1] != ACE_YY_END_OF_BUFFER_CHAR )
- /* They forgot to leave room for the EOB's. */
- return 0;
-
- b = (ACE_YY_BUFFER_STATE) ace_yy_flex_alloc( sizeof( struct ace_yy_buffer_state ) );
- if ( ! b )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_scan_buffer()" ));
-
- b->ace_yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
- b->ace_yy_buf_pos = b->ace_yy_ch_buf = base;
- b->ace_yy_is_our_buffer = 0;
- b->ace_yy_input_file = 0;
- b->ace_yy_n_chars = b->ace_yy_buf_size;
- b->ace_yy_is_interactive = 0;
- b->ace_yy_at_bol = 1;
- b->ace_yy_fill_buffer = 0;
- b->ace_yy_buffer_status = ACE_YY_BUFFER_NEW;
-
- ace_yy_switch_to_buffer( b );
-
- return b;
- }
-#endif
-
-
-#ifndef ACE_YY_NO_SCAN_STRING
-#ifdef ACE_YY_USE_PROTOS
-ACE_YY_BUFFER_STATE ace_yy_scan_string( ace_yyconst ACE_TCHAR *ace_yy_str )
-#else
-ACE_YY_BUFFER_STATE ace_yy_scan_string( ace_yy_str )
-ace_yyconst ACE_TCHAR *ace_yy_str;
-#endif
- {
- int len;
- for ( len = 0; ace_yy_str[len]; ++len )
- ;
-
- return ace_yy_scan_bytes( ace_yy_str, len );
- }
-#endif
-
-
-#ifndef ACE_YY_NO_SCAN_BYTES
-#ifdef ACE_YY_USE_PROTOS
-ACE_YY_BUFFER_STATE ace_yy_scan_bytes( ace_yyconst ACE_TCHAR *bytes, int len )
-#else
-ACE_YY_BUFFER_STATE ace_yy_scan_bytes( bytes, len )
-ace_yyconst ACE_TCHAR *bytes;
-int len;
-#endif
- {
- ACE_YY_BUFFER_STATE b;
- ACE_TCHAR *buf;
- ace_yy_size_t n;
- int i;
-
- /* Get memory for full buffer, including space for trailing EOB's. */
- n = len + 2;
- buf = (ACE_TCHAR *) ace_yy_flex_alloc( n * sizeof (ACE_TCHAR));
- if ( ! buf )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_scan_bytes()" ));
-
- for ( i = 0; i < len; ++i )
- buf[i] = bytes[i];
-
- buf[len] = buf[len+1] = ACE_YY_END_OF_BUFFER_CHAR;
-
- b = ace_yy_scan_buffer( buf, n );
- if ( ! b )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "bad buffer in ace_yy_scan_bytes()") );
-
- /* It's okay to grow etc. this buffer, and we should throw it
- * away when we're done.
- */
- b->ace_yy_is_our_buffer = 1;
-
- return b;
- }
-#endif
-
-
-#ifndef ACE_YY_NO_PUSH_STATE
-#ifdef ACE_YY_USE_PROTOS
-static void ace_yy_push_state( int new_state )
-#else
-static void ace_yy_push_state( new_state )
-int new_state;
-#endif
- {
- if ( ace_yy_start_stack_ptr >= ace_yy_start_stack_depth )
- {
- ace_yy_size_t new_size;
-
- ace_yy_start_stack_depth += ACE_YY_START_STACK_INCR;
- new_size = ace_yy_start_stack_depth * sizeof( int );
-
- if ( ! ace_yy_start_stack )
- ace_yy_start_stack = (int *) ace_yy_flex_alloc( new_size );
-
- else
- ace_yy_start_stack = (int *) ace_yy_flex_realloc(
- (void *) ace_yy_start_stack, new_size );
-
- if ( ! ace_yy_start_stack )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT(
- "out of memory expanding start-condition stack" ));
- }
-
- ace_yy_start_stack[ace_yy_start_stack_ptr++] = ACE_YY_START;
-
- BEGIN(new_state);
- }
-#endif
-
-
-#ifndef ACE_YY_NO_POP_STATE
-static void ace_yy_pop_state()
- {
- if ( --ace_yy_start_stack_ptr < 0 )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "start-condition stack underflow" ));
-
- BEGIN(ace_yy_start_stack[ace_yy_start_stack_ptr]);
- }
-#endif
-
-
-#ifndef ACE_YY_NO_TOP_STATE
-static int ace_yy_top_state()
- {
- return ace_yy_start_stack[ace_yy_start_stack_ptr - 1];
- }
-#endif
-
-#ifndef ACE_YY_EXIT_FAILURE
-#define ACE_YY_EXIT_FAILURE 2
-#endif
-
-#ifdef ACE_YY_USE_PROTOS
-static void ace_yy_fatal_error( ace_yyconst ACE_TCHAR msg[] )
-#else
-static void ace_yy_fatal_error( msg )
-ACE_TCHAR msg[];
-#endif
- {
- (void) ACE_OS::fprintf( stderr, ACE_LIB_TEXT("%s\n"), msg );
- exit( ACE_YY_EXIT_FAILURE );
- }
-
-
-
-/* Redefine ace_yyless() so it works in section 3 code. */
-
-#undef ace_yyless
-#define ace_yyless(n) \
- do \
- { \
- /* Undo effects of setting up ace_yytext. */ \
- ace_yytext[ace_yyleng] = ace_yy_hold_char; \
- ace_yy_c_buf_p = ace_yytext + n; \
- ace_yy_hold_char = *ace_yy_c_buf_p; \
- *ace_yy_c_buf_p = '\0'; \
- ace_yyleng = n; \
- } \
- while ( 0 )
-
-
-/* Internal utility routines. */
-
-#ifndef ace_yytext_ptr
-#ifdef ACE_YY_USE_PROTOS
-static void ace_yy_flex_strncpy( ACE_TCHAR *s1, ace_yyconst ACE_TCHAR *s2, int n )
-#else
-static void ace_yy_flex_strncpy( s1, s2, n )
-ACE_TCHAR *s1;
-ace_yyconst ACE_TCHAR *s2;
-int n;
-#endif
- {
- register int i;
- for ( i = 0; i < n; ++i )
- s1[i] = s2[i];
- }
-#endif
-
-#ifdef ACE_YY_NEED_STRLEN
-#ifdef ACE_YY_USE_PROTOS
-static int ace_yy_flex_strlen( ace_yyconst ACE_TCHAR *s )
-#else
-static int ace_yy_flex_strlen( s )
-ace_yyconst ACE_TCHAR *s;
-#endif
- {
- register int n;
- for ( n = 0; s[n]; ++n )
- ;
-
- return n;
- }
-#endif
-
-
-#ifdef ACE_YY_USE_PROTOS
-static void *ace_yy_flex_alloc( ace_yy_size_t size )
-#else
-static void *ace_yy_flex_alloc( size )
-ace_yy_size_t size;
-#endif
- {
- return (void *) malloc( size );
- }
-
-#ifdef ACE_YY_USE_PROTOS
-static void *ace_yy_flex_realloc( void *ptr, ace_yy_size_t size )
-#else
-static void *ace_yy_flex_realloc( ptr, size )
-void *ptr;
-ace_yy_size_t size;
-#endif
- {
- /* The cast to (char *) in the following accommodates both
- * implementations that use char* generic pointers, and those
- * that use void* generic pointers. It works with the latter
- * because both ANSI C and C++ allow castless assignment from
- * any pointer type to void*, and deal with argument conversions
- * as though doing an assignment.
- */
- return (void *) realloc( (char *) ptr, size );
- }
-
-#ifdef ACE_YY_USE_PROTOS
-static void ace_yy_flex_free( void *ptr )
-#else
-static void ace_yy_flex_free( ptr )
-void *ptr;
-#endif
- {
- free( ACE_MALLOC_T (ptr) );
- }
-
-#if ACE_YY_MAIN
-int main()
- {
- ace_yylex();
- return 0;
- }
-#endif
-
-int
-ace_yywrap (void)
-{
- ACE_OS::fflush (ace_yyin);
- ace_yytext[0] = '#';
- ace_yyleng = 0;
-
- return 1;
-}
-
-void
-ace_yy_push_buffer (FILE *file, ace_yy_buffer_state *&buffer)
-{
- // External synchronization is required.
-
- if (buffer == 0)
- buffer = ace_yy_create_buffer (file, ACE_YY_BUF_SIZE);
-
- ace_yy_switch_to_buffer (buffer);
-}
-
-void
-ace_yy_push_buffer (const ACE_TCHAR *directive, ace_yy_buffer_state *&buffer)
-{
- // External synchronization is required.
-
- // ace_yyparse() may invoke ace_yylex() multiple times when parsing
- // a single directive. Prevent a new buffer from created during
- // each call to ace_yylex().
- if (ACE_YY_CURRENT_BUFFER != 0
- && directive == ACE_YY_CURRENT_BUFFER->ace_yy_ch_buf)
- return;
-
- if (buffer == 0)
- {
- // ace_yy_scan_string() already switches the buffer so there is
- // no need to explicitly make the switch.
- buffer = ace_yy_scan_string (directive);
- }
- else
- ace_yy_switch_to_buffer (buffer);
-}
-
-void
-ace_yy_pop_buffer (ace_yy_buffer_state *buffer)
-{
- // External synchronization is required.
-
- ace_yy_switch_to_buffer (buffer);
-}
-
-#endif /* ACE_USES_CLASSIC_SVC_CONF = 1 */
diff --git a/ace/Svc_Conf_y.cpp b/ace/Svc_Conf_y.cpp
deleted file mode 100644
index c89c43fb9d9..00000000000
--- a/ace/Svc_Conf_y.cpp
+++ /dev/null
@@ -1,1567 +0,0 @@
-/* A Bison parser, made from Svc_Conf.y
- by GNU bison 1.35. */
-
-#define ACE_YYBISON 1 /* Identify Bison output. */
-
-# define ACE_DYNAMIC 257
-# define ACE_STATIC 258
-# define ACE_SUSPEND 259
-# define ACE_RESUME 260
-# define ACE_REMOVE 261
-# define ACE_USTREAM 262
-# define ACE_MODULE_T 263
-# define ACE_STREAM_T 264
-# define ACE_SVC_OBJ_T 265
-# define ACE_ACTIVE 266
-# define ACE_INACTIVE 267
-# define ACE_PATHNAME 268
-# define ACE_IDENT 269
-# define ACE_STRING 270
-
-
-// $Id$
-
-#include "ace/Svc_Conf.h"
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 1)
-
-#include "ace/ARGV.h"
-#include "ace/Module.h"
-#include "ace/Stream.h"
-#include "ace/Service_Types.h"
-
-
-ACE_RCSID (ace,
- Svc_Conf_y,
- "$Id$")
-
-
-// Prototypes.
-static ACE_Module_Type *ace_get_module (ACE_Static_Node *str_rec,
- ACE_Static_Node *svc_type,
- int & ace_yyerrno);
-static ACE_Module_Type *ace_get_module (ACE_Static_Node *str_rec,
- const ACE_TCHAR *svc_name,
- int & ace_yyerrno);
-
-#define ACE_YYDEBUG_LEXER_TEXT (ace_yytext[ace_yyleng] = '\0', ace_yytext)
-
-// Force the pretty debugging code to compile.
-// #define ACE_YYDEBUG 1
-
-#ifndef ACE_YYDEBUG
-# define ACE_YYDEBUG 0
-#endif
-
-
-
-#define ACE_YYFINAL 66
-#define ACE_YYFLAG -32768
-#define ACE_YYNTBASE 23
-
-/* ACE_YYTRANSLATE(ACE_YYLEX) -- Bison token number corresponding to ACE_YYLEX. */
-#define ACE_YYTRANSLATE(x) ((unsigned)(x) <= 270 ? ace_yytranslate[x] : 43)
-
-/* ACE_YYTRANSLATE[ACE_YYLEX] -- Bison token number corresponding to ACE_YYLEX. */
-static const ACE_TCHAR ace_yytranslate[] =
-{
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 20, 21, 22, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 19, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 17, 2, 18, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16
-};
-
-#if ACE_YYDEBUG
-static const short ace_yyprhs[] =
-{
- 0, 0, 3, 6, 7, 9, 11, 13, 15, 17,
- 19, 23, 27, 30, 33, 36, 40, 41, 46, 48,
- 50, 51, 56, 57, 60, 61, 63, 65, 67, 69,
- 71, 76, 78, 80, 81, 85, 91, 96, 99, 102,
- 105, 107, 108, 110, 112
-};
-static const short ace_yyrhs[] =
-{
- 23, 24, 0, 23, 1, 0, 0, 25, 0, 26,
- 0, 27, 0, 28, 0, 29, 0, 30, 0, 3,
- 37, 41, 0, 4, 15, 41, 0, 5, 15, 0,
- 6, 15, 0, 7, 15, 0, 8, 32, 33, 0,
- 0, 8, 15, 31, 33, 0, 25, 0, 26, 0,
- 0, 17, 34, 35, 18, 0, 0, 35, 36, 0,
- 0, 25, 0, 26, 0, 27, 0, 28, 0, 29,
- 0, 15, 40, 39, 38, 0, 12, 0, 13, 0,
- 0, 42, 19, 15, 0, 42, 19, 15, 20, 21,
- 0, 19, 15, 20, 21, 0, 9, 22, 0, 11,
- 22, 0, 10, 22, 0, 16, 0, 0, 14, 0,
- 15, 0, 16, 0
-};
-
-#endif
-
-#if ACE_YYDEBUG
-/* ACE_YYRLINE[ACE_YYN] -- source line where rule number ACE_YYN was defined. */
-static const short ace_yyrline[] =
-{
- 0, 51, 59, 63, 67, 68, 69, 70, 71, 72,
- 76, 86, 93, 100, 107, 114, 118, 118, 125, 128,
- 134, 134, 143, 147, 155, 159, 186, 199, 207, 215,
- 239, 276, 280, 284, 291, 295, 299, 306, 310, 314,
- 321, 322, 326, 327, 328
-};
-#endif
-
-
-#if (ACE_YYDEBUG) || defined ACE_YYERROR_VERBOSE
-
-/* ACE_YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
-static const ACE_TCHAR *const ace_yytname[] =
-{
- ACE_LIB_TEXT ("$"),
- ACE_LIB_TEXT ("error"),
- ACE_LIB_TEXT ("$undefined."),
- ACE_LIB_TEXT ("ACE_DYNAMIC"),
- ACE_LIB_TEXT ("ACE_STATIC"),
- ACE_LIB_TEXT ("ACE_SUSPEND"),
- ACE_LIB_TEXT ("ACE_RESUME"),
- ACE_LIB_TEXT ("ACE_REMOVE"),
- ACE_LIB_TEXT ("ACE_USTREAM"),
- ACE_LIB_TEXT ("ACE_MODULE_T",)
- ACE_LIB_TEXT ("ACE_STREAM_T"),
- ACE_LIB_TEXT ("ACE_SVC_OBJ_T"),
- ACE_LIB_TEXT ("ACE_ACTIVE"),
- ACE_LIB_TEXT ("ACE_INACTIVE",)
- ACE_LIB_TEXT ("ACE_PATHNAME"),
- ACE_LIB_TEXT ("ACE_IDENT"),
- ACE_LIB_TEXT ("ACE_STRING"),
- ACE_LIB_TEXT ("'{'"),
- ACE_LIB_TEXT ("'}'"),
- ACE_LIB_TEXT ("':'"),
- ACE_LIB_TEXT ("'('"),
- ACE_LIB_TEXT ("')'"),
- ACE_LIB_TEXT ("'*'"),
- ACE_LIB_TEXT ("svc_config_entries"),
- ACE_LIB_TEXT ("svc_config_entry"),
- ACE_LIB_TEXT ("dynamic",)
- ACE_LIB_TEXT ("static"),
- ACE_LIB_TEXT ("suspend"),
- ACE_LIB_TEXT ("resume"),
- ACE_LIB_TEXT ("remove"),
- ACE_LIB_TEXT ("stream"),
- ACE_LIB_TEXT ("@1"),
- ACE_LIB_TEXT ("stream_ops",)
- ACE_LIB_TEXT ("stream_modules"),
- ACE_LIB_TEXT ("@2"),
- ACE_LIB_TEXT ("module_list"),
- ACE_LIB_TEXT ("module"),
- ACE_LIB_TEXT ("svc_location",)
- ACE_LIB_TEXT ("status"),
- ACE_LIB_TEXT ("svc_initializer"),
- ACE_LIB_TEXT ("type"),
- ACE_LIB_TEXT ("parameters_opt"),
- ACE_LIB_TEXT ("pathname"),
- 0
-};
-#endif
-
-/* ACE_YYR1[ACE_YYN] -- Symbol number of symbol that rule ACE_YYN derives. */
-static const short ace_yyr1[] =
-{
- 0, 23, 23, 23, 24, 24, 24, 24, 24, 24,
- 25, 26, 27, 28, 29, 30, 31, 30, 32, 32,
- 34, 33, 33, 35, 35, 36, 36, 36, 36, 36,
- 37, 38, 38, 38, 39, 39, 39, 40, 40, 40,
- 41, 41, 42, 42, 42
-};
-
-/* ACE_YYR2[ACE_YYN] -- Number of symbols composing right hand side of rule ACE_YYN. */
-static const short ace_yyr2[] =
-{
- 0, 2, 2, 0, 1, 1, 1, 1, 1, 1,
- 3, 3, 2, 2, 2, 3, 0, 4, 1, 1,
- 0, 4, 0, 2, 0, 1, 1, 1, 1, 1,
- 4, 1, 1, 0, 3, 5, 4, 2, 2, 2,
- 1, 0, 1, 1, 1
-};
-
-/* ACE_YYDEFACT[S] -- default rule to reduce with in state S when ACE_YYTABLE
- doesn't specify something else to do. Zero means the default is an
- error. */
-static const short ace_yydefact[] =
-{
- 3, 0, 2, 0, 0, 0, 0, 0, 0, 1,
- 4, 5, 6, 7, 8, 9, 0, 41, 41, 12,
- 13, 14, 16, 18, 19, 22, 0, 0, 0, 0,
- 40, 10, 11, 22, 20, 15, 37, 39, 38, 42,
- 43, 44, 0, 33, 0, 17, 24, 0, 31, 32,
- 30, 0, 0, 0, 34, 21, 25, 26, 27, 28,
- 29, 23, 36, 0, 35, 0, 0
-};
-
-static const short ace_yydefgoto[] =
-{
- 1, 9, 10, 11, 12, 13, 14, 15, 33, 25,
- 35, 46, 52, 61, 17, 50, 43, 29, 31, 44
-};
-
-static const short ace_yypact[] =
-{
- -32768, 20,-32768, 1, 3, 7, 14, 18, 4,-32768,
- -32768,-32768,-32768,-32768,-32768,-32768, 21, 19, 19,-32768,
- -32768,-32768,-32768,-32768,-32768, -2, 12, 15, 16, -5,
- -32768,-32768,-32768, -2,-32768,-32768,-32768,-32768,-32768,-32768,
- -32768,-32768, 24, 0, 17,-32768,-32768, 22,-32768,-32768,
- -32768, 25, -1, 26, 23,-32768,-32768,-32768,-32768,-32768,
- -32768,-32768,-32768, 27,-32768, 41,-32768
-};
-
-static const short ace_yypgoto[] =
-{
- -32768,-32768, -8, -7, -6, -3, 2,-32768,-32768,-32768,
- 28,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 32,-32768
-};
-
-
-#define ACE_YYLAST 61
-
-
-static const short ace_yytable[] =
-{
- 23, 24, 3, 4, 5, 6, 7, 3, 4, 39,
- 40, 41, 48, 49, 42, 34, 16, 55, 18, 22,
- 65, 2, 19, 3, 4, 5, 6, 7, 8, 20,
- 26, 27, 28, 21, 36, 30, 51, 37, 38, 47,
- 54, 66, 53, 63, 56, 57, 58, 62, 64, 59,
- 32, 0, 0, 0, 60, 0, 0, 0, 0, 0,
- 0, 45
-};
-
-static const short ace_yycheck[] =
-{
- 8, 8, 3, 4, 5, 6, 7, 3, 4, 14,
- 15, 16, 12, 13, 19, 17, 15, 18, 15, 15,
- 0, 1, 15, 3, 4, 5, 6, 7, 8, 15,
- 9, 10, 11, 15, 22, 16, 19, 22, 22, 15,
- 15, 0, 20, 20, 52, 52, 52, 21, 21, 52,
- 18, -1, -1, -1, 52, -1, -1, -1, -1, -1,
- -1, 33
-};
-#define ACE_YYPURE 1
-
-/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
-
-/* Skeleton output parser for bison,
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
- Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-/* As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison. */
-
-/* This is the parser code that is written into each bison parser when
- the %semantic_parser declaration is not specified in the grammar.
- It was written by Richard Stallman by simplifying the hairy parser
- used when %semantic_parser is specified. */
-
-/* All symbols defined below should begin with ace_yy or ACE_YY, to avoid
- infringing on user name space. This should be done even for local
- variables, as they might otherwise be expanded by user macros.
- There are some unavoidable exceptions within include files to
- define necessary library symbols; they are noted "INFRINGES ON
- USER NAME SPACE" below. */
-
-#if ! defined (ace_yyoverflow) || defined (ACE_YYERROR_VERBOSE)
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# if ACE_YYSTACK_USE_ALLOCA
-# define ACE_YYSTACK_ALLOC alloca
-# else
-# ifndef ACE_YYSTACK_USE_ALLOCA
-# if defined (alloca) || defined (_ALLOCA_H)
-# define ACE_YYSTACK_ALLOC alloca
-# else
-# ifdef __GNUC__
-# define ACE_YYSTACK_ALLOC __builtin_alloca
-# endif
-# endif
-# endif
-# endif
-
-# ifdef ACE_YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define ACE_YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# define ACE_YYSIZE_T size_t
-# endif
-# define ACE_YYSTACK_ALLOC malloc
-# define ACE_YYSTACK_FREE free
-# endif
-#endif /* ! defined (ace_yyoverflow) || defined (ACE_YYERROR_VERBOSE) */
-
-
-#if (! defined (ace_yyoverflow) \
- && (! defined (__cplusplus) \
- || (ACE_YYLTYPE_IS_TRIVIAL && ACE_YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member. */
-union ace_yyalloc
-{
- short ace_yyss;
- ACE_YYSTYPE ace_yyvs;
-# if ACE_YYLSP_NEEDED
- ACE_YYLTYPE ace_yyls;
-# endif
-};
-
-/* The size of the maximum gap between one aligned stack and the next. */
-# define ACE_YYSTACK_GAP_MAX (sizeof (union ace_yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
- N elements. */
-# if ACE_YYLSP_NEEDED
-# define ACE_YYSTACK_BYTES(N) \
- ((N) * (sizeof (short) + sizeof (ACE_YYSTYPE) + sizeof (ACE_YYLTYPE)) \
- + 2 * ACE_YYSTACK_GAP_MAX)
-# else
-# define ACE_YYSTACK_BYTES(N) \
- ((N) * (sizeof (short) + sizeof (ACE_YYSTYPE)) \
- + ACE_YYSTACK_GAP_MAX)
-# endif
-
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef ACE_YYCOPY
-# if 1 < __GNUC__
-# define ACE_YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define ACE_YYCOPY(To, From, Count) \
- do \
- { \
- register ACE_YYSIZE_T ace_yyi; \
- for (ace_yyi = 0; ace_yyi < (Count); ace_yyi++) \
- (To)[ace_yyi] = (From)[ace_yyi]; \
- } \
- while (0)
-# endif
-# endif
-
-/* Relocate STACK from its old location to the new one. The
- local variables ACE_YYSIZE and ACE_YYSTACKSIZE give the old and new number of
- elements in the stack, and ACE_YYPTR gives the new location of the
- stack. Advance ACE_YYPTR to a properly aligned location for the next
- stack. */
-# define ACE_YYSTACK_RELOCATE(Stack) \
- do \
- { \
- ACE_YYSIZE_T ace_yynewbytes; \
- ACE_YYCOPY (&ace_yyptr->Stack, Stack, ace_yysize); \
- Stack = &ace_yyptr->Stack; \
- ace_yynewbytes = ace_yystacksize * sizeof (*Stack) + ACE_YYSTACK_GAP_MAX; \
- ace_yyptr += ace_yynewbytes / sizeof (*ace_yyptr); \
- } \
- while (0)
-
-#endif
-
-
-#if ! defined (ACE_YYSIZE_T) && defined (__SIZE_TYPE__)
-# define ACE_YYSIZE_T __SIZE_TYPE__
-#endif
-#if ! defined (ACE_YYSIZE_T) && defined (size_t)
-# define ACE_YYSIZE_T size_t
-#endif
-#if ! defined (ACE_YYSIZE_T)
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define ACE_YYSIZE_T size_t
-# endif
-#endif
-#if ! defined (ACE_YYSIZE_T)
-# define ACE_YYSIZE_T unsigned int
-#endif
-
-#define ace_yyerrok (ace_yyerrstatus = 0)
-#define ace_yyclearin (ace_yychar = ACE_YYEMPTY)
-#define ACE_YYEMPTY -2
-#define ACE_YYEOF 0
-#define ACE_YYACCEPT goto ace_yyacceptlab
-#define ACE_YYABORT goto ace_yyabortlab
-#define ACE_YYERROR goto ace_yyerrlab1
-/* Like ACE_YYERROR except do call ace_yyerror. This remains here temporarily
- to ease the transition to the new meaning of ACE_YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
-#define ACE_YYFAIL goto ace_yyerrlab
-#define ACE_YYRECOVERING() (!!ace_yyerrstatus)
-#define ACE_YYBACKUP(Token, Value) \
-do \
- if (ace_yychar == ACE_YYEMPTY && ace_yylen == 1) \
- { \
- ace_yychar = (Token); \
- ace_yylval = (Value); \
- ace_yychar1 = ACE_YYTRANSLATE (ace_yychar); \
- ACE_YYPOPSTACK; \
- goto ace_yybackup; \
- } \
- else \
- { \
- ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, ACE_LIB_TEXT ("syntax error: cannot back up")); \
- ACE_YYERROR; \
- } \
-while (0)
-
-#define ACE_YYTERROR 1
-#define ACE_YYERRCODE 256
-
-
-/* ACE_YYLLOC_DEFAULT -- Compute the default location (before the actions
- are run).
-
- When ACE_YYLLOC_DEFAULT is run, CURRENT is set the location of the
- first token. By default, to implement support for ranges, extend
- its range to the last symbol. */
-
-#ifndef ACE_YYLLOC_DEFAULT
-# define ACE_YYLLOC_DEFAULT(Current, Rhs, N) \
- Current.last_line = Rhs[N].last_line; \
- Current.last_column = Rhs[N].last_column;
-#endif
-
-
-/* ACE_YYLEX -- calling `ace_yylex' with the right arguments. */
-
-#if ACE_YYPURE
-# if ACE_YYLSP_NEEDED
-# ifdef ACE_YYLEX_PARAM
-# define ACE_YYLEX ace_yylex (&ace_yylval, &ace_yylloc, ACE_YYLEX_PARAM)
-# else
-# define ACE_YYLEX ace_yylex (&ace_yylval, &ace_yylloc)
-# endif
-# else /* !ACE_YYLSP_NEEDED */
-# ifdef ACE_YYLEX_PARAM
-# define ACE_YYLEX ace_yylex (&ace_yylval, ACE_YYLEX_PARAM)
-# else
-# define ACE_YYLEX ace_yylex (&ace_yylval)
-# endif
-# endif /* !ACE_YYLSP_NEEDED */
-#else /* !ACE_YYPURE */
-# define ACE_YYLEX ace_yylex ()
-#endif /* !ACE_YYPURE */
-
-
-/* Enable debugging if requested. */
-#if ACE_YYDEBUG
-
-# ifndef ACE_YYFPRINTF
-# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-# define ACE_YYFPRINTF ACE_OS::fprintf
-# endif
-
-# define ACE_YYDPRINTF(Args) \
-do { \
- if (ace_yydebug) \
- ACE_YYFPRINTF Args; \
-} while (0)
-/* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
-int ace_yydebug;
-#else /* !ACE_YYDEBUG */
-# define ACE_YYDPRINTF(Args)
-#endif /* !ACE_YYDEBUG */
-
-/* ACE_YYINITDEPTH -- initial size of the parser's stacks. */
-#ifndef ACE_YYINITDEPTH
-# define ACE_YYINITDEPTH 200
-#endif
-
-/* ACE_YYMAXDEPTH -- maximum size the stacks can grow to (effective only
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
- SIZE_MAX < ACE_YYSTACK_BYTES (ACE_YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
-#if ACE_YYMAXDEPTH == 0
-# undef ACE_YYMAXDEPTH
-#endif
-
-#ifndef ACE_YYMAXDEPTH
-# define ACE_YYMAXDEPTH 10000
-#endif
-
-#ifdef ACE_YYERROR_VERBOSE
-
-# ifndef ace_yystrlen
-# if defined (__GLIBC__) && defined (_STRING_H)
-# define ace_yystrlen strlen
-# else
-/* Return the length of ACE_YYSTR. */
-static ACE_YYSIZE_T
-# if defined (__STDC__) || defined (__cplusplus)
-ace_yystrlen (const ACE_TCHAR *ace_yystr)
-# else
-ace_yystrlen (ace_yystr)
- const ACE_TCHAR *ace_yystr;
-# endif
-{
- register const ACE_TCHAR *ace_yys = ace_yystr;
-
- while (*ace_yys++ != '\0')
- continue;
-
- return ace_yys - ace_yystr - 1;
-}
-# endif
-# endif
-
-# ifndef ace_yystpcpy
-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-# define ace_yystpcpy stpcpy
-# else
-/* Copy ACE_YYSRC to ACE_YYDEST, returning the address of the terminating '\0' in
- ACE_YYDEST. */
-static char *
-# if defined (__STDC__) || defined (__cplusplus)
-ace_yystpcpy (ACE_TCHAR *ace_yydest, const ACE_TCHAR *ace_yysrc)
-# else
-ace_yystpcpy (ace_yydest, ace_yysrc)
- ACE_TCHAR *ace_yydest;
- const ACE_TCHAR *ace_yysrc;
-# endif
-{
- register ACE_TCHAR *ace_yyd = ace_yydest;
- register const ACE_TCHAR *ace_yys = ace_yysrc;
-
- while ((*ace_yyd++ = *ace_yys++) != '\0')
- continue;
-
- return ace_yyd - 1;
-}
-# endif
-# endif
-#endif
-
-
-
-/* The user can define ACE_YYPARSE_PARAM as the name of an argument to be passed
- into ace_yyparse. The argument should have type void *.
- It should actually point to an object.
- Grammar actions can access the variable by casting it
- to the proper pointer type. */
-
-#ifdef ACE_YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-# define ACE_YYPARSE_PARAM_ARG void *ACE_YYPARSE_PARAM
-# define ACE_YYPARSE_PARAM_DECL
-# else
-# define ACE_YYPARSE_PARAM_ARG ACE_YYPARSE_PARAM
-# define ACE_YYPARSE_PARAM_DECL void *ACE_YYPARSE_PARAM;
-# endif
-#else /* !ACE_YYPARSE_PARAM */
-# define ACE_YYPARSE_PARAM_ARG
-# define ACE_YYPARSE_PARAM_DECL
-#endif /* !ACE_YYPARSE_PARAM */
-
-/* Prevent warning if -Wstrict-prototypes. */
-#ifdef __GNUC__
-# ifdef ACE_YYPARSE_PARAM
-int ace_yyparse (void *);
-# else
-int ace_yyparse (void);
-# endif
-#endif
-
-/* ACE_YY_DECL_VARIABLES -- depending whether we use a pure parser,
- variables are global, or local to ACE_YYPARSE. */
-
-#define ACE_YY_DECL_NON_LSP_VARIABLES \
-/* The lookahead symbol. */ \
-int ace_yychar; \
- \
-/* The semantic value of the lookahead symbol. */ \
-ACE_YYSTYPE ace_yylval; \
- \
-/* Number of parse errors so far. */ \
-int ace_yynerrs;
-
-#if ACE_YYLSP_NEEDED
-# define ACE_YY_DECL_VARIABLES \
-ACE_YY_DECL_NON_LSP_VARIABLES \
- \
-/* Location data for the lookahead symbol. */ \
-ACE_YYLTYPE ace_yylloc;
-#else
-# define ACE_YY_DECL_VARIABLES \
-ACE_YY_DECL_NON_LSP_VARIABLES
-#endif
-
-
-/* If nonreentrant, generate the variables here. */
-
-#if !ACE_YYPURE
-ACE_YY_DECL_VARIABLES
-#endif /* !ACE_YYPURE */
-
-int
-ace_yyparse (ACE_YYPARSE_PARAM_ARG)
- ACE_YYPARSE_PARAM_DECL
-{
- /* If reentrant, generate the variables here. */
-#if ACE_YYPURE
- ACE_YY_DECL_VARIABLES
-#endif /* !ACE_YYPURE */
-
- register int ace_yystate;
- register int ace_yyn;
- int ace_yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int ace_yyerrstatus;
- /* Lookahead token as an internal (translated) token number. */
- int ace_yychar1 = 0;
-
- /* Three stacks and their tools:
- `ace_yyss': related to states,
- `ace_yyvs': related to semantic values,
- `ace_yyls': related to locations.
-
- Refer to the stacks thru separate pointers, to allow ace_yyoverflow
- to reallocate them elsewhere. */
-
- /* The state stack. */
- short ace_yyssa[ACE_YYINITDEPTH];
- short *ace_yyss = ace_yyssa;
- register short *ace_yyssp;
-
- /* The semantic value stack. */
- ACE_YYSTYPE ace_yyvsa[ACE_YYINITDEPTH];
- ACE_YYSTYPE *ace_yyvs = ace_yyvsa;
- register ACE_YYSTYPE *ace_yyvsp;
-
-#if ACE_YYLSP_NEEDED
- /* The location stack. */
- ACE_YYLTYPE ace_yylsa[ACE_YYINITDEPTH];
- ACE_YYLTYPE *ace_yyls = ace_yylsa;
- ACE_YYLTYPE *ace_yylsp;
-#endif
-
-#if ACE_YYLSP_NEEDED
-# define ACE_YYPOPSTACK (ace_yyvsp--, ace_yyssp--, ace_yylsp--)
-#else
-# define ACE_YYPOPSTACK (ace_yyvsp--, ace_yyssp--)
-#endif
-
- ACE_YYSIZE_T ace_yystacksize = ACE_YYINITDEPTH;
-
-
- /* The variables used to return semantic value and location from the
- action routines. */
- ACE_YYSTYPE ace_yyval;
-#if ACE_YYLSP_NEEDED
- ACE_YYLTYPE ace_yyloc;
-#endif
-
- /* When reducing, the number of symbols on the RHS of the reduced
- rule. */
- int ace_yylen;
-
- ACE_YYDPRINTF ((stderr, ACE_LIB_TEXT ("Starting parse\n")));
-
- ace_yystate = 0;
- ace_yyerrstatus = 0;
- ace_yynerrs = 0;
- ace_yychar = ACE_YYEMPTY; /* Cause a token to be read. */
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- so that they stay on the same level as the state stack.
- The wasted elements are never initialized. */
-
- ace_yyssp = ace_yyss;
- ace_yyvsp = ace_yyvs;
-#if ACE_YYLSP_NEEDED
- ace_yylsp = ace_yyls;
-#endif
- goto ace_yysetstate;
-
-/*------------------------------------------------------------.
-| ace_yynewstate -- Push a new state, which is found in ace_yystate. |
-`------------------------------------------------------------*/
- ace_yynewstate:
- /* In all cases, when you get here, the value and location stacks
- have just been pushed. so pushing a state here evens the stacks.
- */
- ace_yyssp++;
-
- ace_yysetstate:
- *ace_yyssp = ace_yystate;
-
- if (ace_yyssp >= ace_yyss + ace_yystacksize - 1)
- {
- /* Get the current used size of the three stacks, in elements. */
- ACE_YYSIZE_T ace_yysize = ace_yyssp - ace_yyss + 1;
-
-#ifdef ace_yyoverflow
- {
- /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- ACE_YYSTYPE *ace_yyvs1 = ace_yyvs;
- short *ace_yyss1 = ace_yyss;
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. */
-# if ACE_YYLSP_NEEDED
- ACE_YYLTYPE *ace_yyls1 = ace_yyls;
- /* This used to be a conditional around just the two extra args,
- but that might be undefined if ace_yyoverflow is a macro. */
- ace_yyoverflow (ACE_LIB_TEXT ("parser stack overflow"),
- &ace_yyss1, ace_yysize * sizeof (*ace_yyssp),
- &ace_yyvs1, ace_yysize * sizeof (*ace_yyvsp),
- &ace_yyls1, ace_yysize * sizeof (*ace_yylsp),
- &ace_yystacksize);
- ace_yyls = ace_yyls1;
-# else
- ace_yyoverflow (ACE_LIB_TEXT ("parser stack overflow"),
- &ace_yyss1, ace_yysize * sizeof (*ace_yyssp),
- &ace_yyvs1, ace_yysize * sizeof (*ace_yyvsp),
- &ace_yystacksize);
-# endif
- ace_yyss = ace_yyss1;
- ace_yyvs = ace_yyvs1;
- }
-#else /* no ace_yyoverflow */
-# ifndef ACE_YYSTACK_RELOCATE
- goto ace_yyoverflowlab;
-# else
- /* Extend the stack our own way. */
- if (ace_yystacksize >= ACE_YYMAXDEPTH)
- goto ace_yyoverflowlab;
- ace_yystacksize *= 2;
- if (ace_yystacksize > ACE_YYMAXDEPTH)
- ace_yystacksize = ACE_YYMAXDEPTH;
-
- {
- short *ace_yyss1 = ace_yyss;
- union ace_yyalloc *ace_yyptr =
- (union ace_yyalloc *) ACE_YYSTACK_ALLOC (ACE_YYSTACK_BYTES (ace_yystacksize));
- if (! ace_yyptr)
- goto ace_yyoverflowlab;
- ACE_YYSTACK_RELOCATE (ace_yyss);
- ACE_YYSTACK_RELOCATE (ace_yyvs);
-# if ACE_YYLSP_NEEDED
- ACE_YYSTACK_RELOCATE (ace_yyls);
-# endif
-# undef ACE_YYSTACK_RELOCATE
- if (ace_yyss1 != ace_yyssa)
- ACE_YYSTACK_FREE (ace_yyss1);
- }
-# endif
-#endif /* no ace_yyoverflow */
-
- ace_yyssp = ace_yyss + ace_yysize - 1;
- ace_yyvsp = ace_yyvs + ace_yysize - 1;
-#if ACE_YYLSP_NEEDED
- ace_yylsp = ace_yyls + ace_yysize - 1;
-#endif
-
- ACE_YYDPRINTF ((stderr, ACE_LIB_TEXT ("Stack size increased to %lu\n"),
- (unsigned long int) ace_yystacksize));
-
- if (ace_yyssp >= ace_yyss + ace_yystacksize - 1)
- ACE_YYABORT;
- }
-
- ACE_YYDPRINTF ((stderr, ACE_LIB_TEXT ("Entering state %d\n"), ace_yystate));
-
- goto ace_yybackup;
-
-
-/*-----------.
-| ace_yybackup. |
-`-----------*/
-ace_yybackup:
-
-/* Do appropriate processing given the current state. */
-/* Read a lookahead token if we need one and don't already have one. */
-/* ace_yyresume: */
-
- /* First try to decide what to do without reference to lookahead token. */
-
- ace_yyn = ace_yypact[ace_yystate];
- if (ace_yyn == ACE_YYFLAG)
- goto ace_yydefault;
-
- /* Not known => get a lookahead token if don't already have one. */
-
- /* ace_yychar is either ACE_YYEMPTY or ACE_YYEOF
- or a valid token in external form. */
-
- if (ace_yychar == ACE_YYEMPTY)
- {
- ACE_YYDPRINTF ((stderr, ACE_LIB_TEXT ("Reading a token: ")));
- ace_yychar = ACE_YYLEX;
- }
-
- /* Convert token to internal form (in ace_yychar1) for indexing tables with */
-
- if (ace_yychar <= 0) /* This means end of input. */
- {
- ace_yychar1 = 0;
- ace_yychar = ACE_YYEOF; /* Don't call ACE_YYLEX any more */
-
- ACE_YYDPRINTF ((stderr, ACE_LIB_TEXT ("Now at end of input.\n")));
- }
- else
- {
- ace_yychar1 = ACE_YYTRANSLATE (ace_yychar);
-
-#if ACE_YYDEBUG
- /* We have to keep this `#if ACE_YYDEBUG', since we use variables
- which are defined only if `ACE_YYDEBUG' is set. */
- if (ace_yydebug)
- {
- ACE_YYFPRINTF (stderr, ACE_LIB_TEXT ("Next token is %d (%s"),
- ace_yychar, ace_yytname[ace_yychar1]);
- /* Give the individual parser a way to print the precise
- meaning of a token, for further debugging info. */
-# ifdef ACE_YYPRINT
- ACE_YYPRINT (stderr, ace_yychar, ace_yylval);
-# endif
- ACE_YYFPRINTF (stderr, ACE_LIB_TEXT (")\n"));
- }
-#endif
- }
-
- ace_yyn += ace_yychar1;
- if (ace_yyn < 0 || ace_yyn > ACE_YYLAST || ace_yycheck[ace_yyn] != ace_yychar1)
- goto ace_yydefault;
-
- ace_yyn = ace_yytable[ace_yyn];
-
- /* ace_yyn is what to do for this token type in this state.
- Negative => reduce, -ace_yyn is rule number.
- Positive => shift, ace_yyn is new state.
- New state is final state => don't bother to shift,
- just return success.
- 0, or most negative number => error. */
-
- if (ace_yyn < 0)
- {
- if (ace_yyn == ACE_YYFLAG)
- goto ace_yyerrlab;
- ace_yyn = -ace_yyn;
- goto ace_yyreduce;
- }
- else if (ace_yyn == 0)
- goto ace_yyerrlab;
-
- if (ace_yyn == ACE_YYFINAL)
- ACE_YYACCEPT;
-
- /* Shift the lookahead token. */
- ACE_YYDPRINTF ((stderr, ACE_LIB_TEXT ("Shifting token %d (%s), "),
- ace_yychar, ace_yytname[ace_yychar1]));
-
- /* Discard the token being shifted unless it is eof. */
- if (ace_yychar != ACE_YYEOF)
- ace_yychar = ACE_YYEMPTY;
-
- *++ace_yyvsp = ace_yylval;
-#if ACE_YYLSP_NEEDED
- *++ace_yylsp = ace_yylloc;
-#endif
-
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (ace_yyerrstatus)
- ace_yyerrstatus--;
-
- ace_yystate = ace_yyn;
- goto ace_yynewstate;
-
-
-/*-----------------------------------------------------------.
-| ace_yydefault -- do the default action for the current state. |
-`-----------------------------------------------------------*/
-ace_yydefault:
- ace_yyn = ace_yydefact[ace_yystate];
- if (ace_yyn == 0)
- goto ace_yyerrlab;
- goto ace_yyreduce;
-
-
-/*-----------------------------.
-| ace_yyreduce -- Do a reduction. |
-`-----------------------------*/
-ace_yyreduce:
- /* ace_yyn is the number of a rule to reduce with. */
- ace_yylen = ace_yyr2[ace_yyn];
-
- /* If ACE_YYLEN is nonzero, implement the default value of the action:
- `$$ = $1'.
-
- Otherwise, the following line sets ACE_YYVAL to the semantic value of
- the lookahead token. This behavior is undocumented and Bison
- users should not rely upon it. Assigning to ACE_YYVAL
- unconditionally makes the parser a bit smaller, and it avoids a
- GCC warning that ACE_YYVAL may be used uninitialized. */
- ace_yyval = ace_yyvsp[1-ace_yylen];
-
-#if ACE_YYLSP_NEEDED
- /* Similarly for the default location. Let the user run additional
- commands if for instance locations are ranges. */
- ace_yyloc = ace_yylsp[1-ace_yylen];
- ACE_YYLLOC_DEFAULT (ace_yyloc, (ace_yylsp - ace_yylen), ace_yylen);
-#endif
-
-#if ACE_YYDEBUG
- /* We have to keep this `#if ACE_YYDEBUG', since we use variables which
- are defined only if `ACE_YYDEBUG' is set. */
- if (ace_yydebug)
- {
- int ace_yyi;
-
- ACE_YYFPRINTF (stderr, ACE_LIB_TEXT ("Reducing via rule %d (line %d), "),
- ace_yyn, ace_yyrline[ace_yyn]);
-
- /* Print the symbols being reduced, and their result. */
- for (ace_yyi = ace_yyprhs[ace_yyn]; ace_yyrhs[ace_yyi] > 0; ace_yyi++)
- ACE_YYFPRINTF (stderr, ACE_LIB_TEXT ("%s "), ace_yytname[ace_yyrhs[ace_yyi]]);
- ACE_YYFPRINTF (stderr, ACE_LIB_TEXT (" -> %s\n"), ace_yytname[ace_yyr1[ace_yyn]]);
- }
-#endif
-
- switch (ace_yyn) {
-
-case 1:
-{
- if (ace_yyvsp[0].parse_node_ != 0)
- {
- ace_yyvsp[0].parse_node_->apply (ACE_SVC_CONF_PARAM->yyerrno); delete ace_yyvsp[0].parse_node_;
- }
- ACE_SVC_CONF_PARAM->obstack.release ();
- ;
- break;}
-case 2:
-{
- ACE_SVC_CONF_PARAM->obstack.release ();
- ;
- break;}
-case 10:
-{
- if (ace_yyvsp[-1].svc_record_ != 0)
- ace_yyval.parse_node_ = new ACE_Dynamic_Node (ace_yyvsp[-1].svc_record_, ace_yyvsp[0].ident_);
- else
- ace_yyval.parse_node_ = 0;
- ;
- break;}
-case 11:
-{
- ace_yyval.parse_node_ = new ACE_Static_Node (ace_yyvsp[-1].ident_, ace_yyvsp[0].ident_);
- ;
- break;}
-case 12:
-{
- ace_yyval.parse_node_ = new ACE_Suspend_Node (ace_yyvsp[0].ident_);
- ;
- break;}
-case 13:
-{
- ace_yyval.parse_node_ = new ACE_Resume_Node (ace_yyvsp[0].ident_);
- ;
- break;}
-case 14:
-{
- ace_yyval.parse_node_ = new ACE_Remove_Node (ace_yyvsp[0].ident_);
- ;
- break;}
-case 15:
-{
- ace_yyval.parse_node_ = new ACE_Stream_Node (ace_yyvsp[-1].static_node_, ace_yyvsp[0].parse_node_);
- ;
- break;}
-case 16:
-{ ace_yyval.static_node_ = new ACE_Static_Node (ace_yyvsp[0].ident_); ;
- break;}
-case 17:
-{
- ace_yyval.parse_node_ = new ACE_Dummy_Node (ace_yyvsp[-1].static_node_, ace_yyvsp[0].parse_node_);
- ;
- break;}
-case 18:
-{
- ;
- break;}
-case 19:
-{
- ;
- break;}
-case 20:
-{
- // Initialize left context...
- ace_yyval.static_node_ = ace_yyvsp[-1].static_node_;
- ;
- break;}
-case 21:
-{
- ace_yyval.parse_node_ = ace_yyvsp[-1].parse_node_;
- ;
- break;}
-case 22:
-{ ace_yyval.parse_node_ = 0; ;
- break;}
-case 23:
-{
- if (ace_yyvsp[0].parse_node_ != 0)
- {
- ace_yyvsp[0].parse_node_->link (ace_yyvsp[-1].parse_node_);
- ace_yyval.parse_node_ = ace_yyvsp[0].parse_node_;
- }
- ;
- break;}
-case 24:
-{ ace_yyval.parse_node_ = 0; ;
- break;}
-case 25:
-{
- ACE_Static_Node *svc_type = ace_yyvsp[0].static_node_;
-
- if (svc_type != 0)
- {
- ACE_Static_Node *module = ace_yyvsp[-2].static_node_;
-
- ACE_ARGV args (svc_type->parameters ());
- ACE_Module_Type *mt = ace_get_module (module,
- svc_type,
- ACE_SVC_CONF_PARAM->yyerrno);
- ACE_Stream_Type *st =
- ACE_dynamic_cast (ACE_Stream_Type *,
- ACE_const_cast (ACE_Service_Type_Impl *,
- module->record ()->type ()));
-
- if (mt->init (args.argc (), args.argv ()) == -1
- || st->push (mt) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("dynamic initialization failed for Module %s\n"),
- svc_type->name ()));
- ACE_SVC_CONF_PARAM->yyerrno++;
- }
- }
- ;
- break;}
-case 26:
-{
- ACE_Module_Type *mt = ace_get_module (ace_yyvsp[-2].static_node_,
- ace_yyvsp[0].static_node_->name (),
- ACE_SVC_CONF_PARAM->yyerrno);
-
- if (((ACE_Stream_Type *) (ace_yyvsp[-2].static_node_)->record ()->type ())->push (mt) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Problem with static\n")));
- ACE_SVC_CONF_PARAM->yyerrno++;
- }
- ;
- break;}
-case 27:
-{
- ACE_Module_Type *mt = ace_get_module (ace_yyvsp[-2].static_node_,
- ace_yyvsp[0].static_node_->name (),
- ACE_SVC_CONF_PARAM->yyerrno);
- if (mt != 0)
- mt->suspend ();
- ;
- break;}
-case 28:
-{
- ACE_Module_Type *mt = ace_get_module (ace_yyvsp[-2].static_node_,
- ace_yyvsp[0].static_node_->name (),
- ACE_SVC_CONF_PARAM->yyerrno);
- if (mt != 0)
- mt->resume ();
- ;
- break;}
-case 29:
-{
- ACE_Static_Node *stream = ace_yyvsp[-2].static_node_;
- ACE_Static_Node *module = ace_yyvsp[0].static_node_;
- ACE_Module_Type *mt = ace_get_module (stream,
- module->name (),
- ACE_SVC_CONF_PARAM->yyerrno);
-
- ACE_Stream_Type *st =
- ACE_dynamic_cast (ACE_Stream_Type *,
- ACE_const_cast (ACE_Service_Type_Impl *,
- stream->record ()->type ()));
- if (mt != 0 && st->remove (mt) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("cannot remove Module_Type %s from STREAM_Type %s\n"),
- module->name (),
- stream->name ()));
- ACE_SVC_CONF_PARAM->yyerrno++;
- }
- ;
- break;}
-case 30:
-{
- u_int flags
- = ACE_Service_Type::DELETE_THIS
- | (ace_yyvsp[-1].location_node_->dispose () == 0 ? 0 : ACE_Service_Type::DELETE_OBJ);
- ACE_Service_Object_Exterminator gobbler = 0;
- void *sym = ace_yyvsp[-1].location_node_->symbol (ACE_SVC_CONF_PARAM->yyerrno, &gobbler);
-
- if (sym != 0)
- {
- ACE_Service_Type_Impl *stp
- = ACE_Service_Config::create_service_type_impl (ace_yyvsp[-3].ident_,
- ace_yyvsp[-2].type_,
- sym,
- flags,
- gobbler);
- if (stp == 0)
- ++ACE_SVC_CONF_PARAM->yyerrno;
-
- ace_yyval.svc_record_ = new ACE_Service_Type (ace_yyvsp[-3].ident_,
- stp,
- ace_yyvsp[-1].location_node_->dll (),
- ace_yyvsp[0].type_);
- }
- else
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Unable to find service: %s\n"),
- ace_yyvsp[-3].ident_));
- ++ACE_SVC_CONF_PARAM->yyerrno;
- ace_yyval.svc_record_ = 0;
- }
- delete ace_yyvsp[-1].location_node_;
- ;
- break;}
-case 31:
-{
- ace_yyval.type_ = 1;
- ;
- break;}
-case 32:
-{
- ace_yyval.type_ = 0;
- ;
- break;}
-case 33:
-{
- ace_yyval.type_ = 1;
- ;
- break;}
-case 34:
-{
- ace_yyval.location_node_ = new ACE_Object_Node (ace_yyvsp[-2].ident_, ace_yyvsp[0].ident_);
- ;
- break;}
-case 35:
-{
- ace_yyval.location_node_ = new ACE_Function_Node (ace_yyvsp[-4].ident_, ace_yyvsp[-2].ident_);
- ;
- break;}
-case 36:
-{
- ace_yyval.location_node_ = new ACE_Static_Function_Node (ace_yyvsp[-2].ident_);
- ;
- break;}
-case 37:
-{
- ace_yyval.type_ = ACE_MODULE_T;
- ;
- break;}
-case 38:
-{
- ace_yyval.type_ = ACE_SVC_OBJ_T;
- ;
- break;}
-case 39:
-{
- ace_yyval.type_ = ACE_STREAM_T;
- ;
- break;}
-case 41:
-{ ace_yyval.ident_ = 0; ;
- break;}
-}
-
-
-
- ace_yyvsp -= ace_yylen;
- ace_yyssp -= ace_yylen;
-#if ACE_YYLSP_NEEDED
- ace_yylsp -= ace_yylen;
-#endif
-
-#if ACE_YYDEBUG
- if (ace_yydebug)
- {
- short *ace_yyssp1 = ace_yyss - 1;
- ACE_YYFPRINTF (stderr, ACE_LIB_TEXT ("state stack now"));
- while (ace_yyssp1 != ace_yyssp)
- ACE_YYFPRINTF (stderr, ACE_LIB_TEXT (" %d"), *++ace_yyssp1);
- ACE_YYFPRINTF (stderr, ACE_LIB_TEXT ("\n"));
- }
-#endif
-
- *++ace_yyvsp = ace_yyval;
-#if ACE_YYLSP_NEEDED
- *++ace_yylsp = ace_yyloc;
-#endif
-
- /* Now `shift' the result of the reduction. Determine what state
- that goes to, based on the state we popped back to and the rule
- number reduced by. */
-
- ace_yyn = ace_yyr1[ace_yyn];
-
- ace_yystate = ace_yypgoto[ace_yyn - ACE_YYNTBASE] + *ace_yyssp;
- if (ace_yystate >= 0 && ace_yystate <= ACE_YYLAST && ace_yycheck[ace_yystate] == *ace_yyssp)
- ace_yystate = ace_yytable[ace_yystate];
- else
- ace_yystate = ace_yydefgoto[ace_yyn - ACE_YYNTBASE];
-
- goto ace_yynewstate;
-
-
-/*------------------------------------.
-| ace_yyerrlab -- here on detecting error |
-`------------------------------------*/
-ace_yyerrlab:
- /* If not already recovering from an error, report this error. */
- if (!ace_yyerrstatus)
- {
- ++ace_yynerrs;
-
-#ifdef ACE_YYERROR_VERBOSE
- ace_yyn = ace_yypact[ace_yystate];
-
- if (ace_yyn > ACE_YYFLAG && ace_yyn < ACE_YYLAST)
- {
- ACE_YYSIZE_T ace_yysize = 0;
- ACE_TCHAR *ace_yymsg;
- int ace_yyx, ace_yycount;
-
- ace_yycount = 0;
- /* Start ACE_YYX at -ACE_YYN if negative to avoid negative indexes in
- ACE_YYCHECK. */
- for (ace_yyx = ace_yyn < 0 ? -ace_yyn : 0;
- ace_yyx < (int) (sizeof (ace_yytname) / sizeof (ACE_TCHAR *)); ace_yyx++)
- if (ace_yycheck[ace_yyx + ace_yyn] == ace_yyx)
- ace_yysize += ace_yystrlen (ace_yytname[ace_yyx]) + 15, ace_yycount++;
- ace_yysize += ace_yystrlen (ACE_LIB_TEXT ("parse error, unexpected ")) + 1;
- ace_yysize += ace_yystrlen (ace_yytname[ACE_YYTRANSLATE (ace_yychar)]);
- ace_yymsg = (ACE_TCHAR *) ACE_YYSTACK_ALLOC (ace_yysize);
- if (ace_yymsg != 0)
- {
- ACE_TCHAR *ace_yyp = ace_yystpcpy (ace_yymsg, ACE_LIB_TEXT ("parse error, unexpected "));
- ace_yyp = ace_yystpcpy (ace_yyp, ace_yytname[ACE_YYTRANSLATE (ace_yychar)]);
-
- if (ace_yycount < 5)
- {
- ace_yycount = 0;
- for (ace_yyx = ace_yyn < 0 ? -ace_yyn : 0;
- ace_yyx < (int) (sizeof (ace_yytname) / sizeof (ACE_TCHAR *));
- ace_yyx++)
- if (ace_yycheck[ace_yyx + ace_yyn] == ace_yyx)
- {
- const ACE_TCHAR *ace_yyq = ! ace_yycount ? ACE_LIB_TEXT (", expecting ") : ACE_LIB_TEXT (" or ");
- ace_yyp = ace_yystpcpy (ace_yyp, ace_yyq);
- ace_yyp = ace_yystpcpy (ace_yyp, ace_yytname[ace_yyx]);
- ace_yycount++;
- }
- }
- ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, ace_yymsg);
- ACE_YYSTACK_FREE (ace_yymsg);
- }
- else
- ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, ACE_LIB_TEXT ("parse error; also virtual memory exhausted"));
- }
- else
-#endif /* defined (ACE_YYERROR_VERBOSE) */
- ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, ACE_LIB_TEXT ("parse error"));
- }
- goto ace_yyerrlab1;
-
-
-/*--------------------------------------------------.
-| ace_yyerrlab1 -- error raised explicitly by an action |
-`--------------------------------------------------*/
-ace_yyerrlab1:
- if (ace_yyerrstatus == 3)
- {
- /* If just tried and failed to reuse lookahead token after an
- error, discard it. */
-
- /* return failure if at end of input */
- if (ace_yychar == ACE_YYEOF)
- ACE_YYABORT;
- ACE_YYDPRINTF ((stderr, ACE_LIB_TEXT ("Discarding token %d (%s).\n"),
- ace_yychar, ace_yytname[ace_yychar1]));
- ace_yychar = ACE_YYEMPTY;
- }
-
- /* Else will try to reuse lookahead token after shifting the error
- token. */
-
- ace_yyerrstatus = 3; /* Each real token shifted decrements this */
-
- goto ace_yyerrhandle;
-
-
-/*-------------------------------------------------------------------.
-| ace_yyerrdefault -- current state does not do anything special for the |
-| error token. |
-`-------------------------------------------------------------------*/
-ace_yyerrdefault:
-#if 0
- /* This is wrong; only states that explicitly want error tokens
- should shift them. */
-
- /* If its default is to accept any token, ok. Otherwise pop it. */
- ace_yyn = ace_yydefact[ace_yystate];
- if (ace_yyn)
- goto ace_yydefault;
-#endif
-
-
-/*---------------------------------------------------------------.
-| ace_yyerrpop -- pop the current state because it cannot handle the |
-| error token |
-`---------------------------------------------------------------*/
-ace_yyerrpop:
- if (ace_yyssp == ace_yyss)
- ACE_YYABORT;
- ace_yyvsp--;
- ace_yystate = *--ace_yyssp;
-#if ACE_YYLSP_NEEDED
- ace_yylsp--;
-#endif
-
-#if ACE_YYDEBUG
- if (ace_yydebug)
- {
- short *ace_yyssp1 = ace_yyss - 1;
- ACE_YYFPRINTF (stderr, ACE_LIB_TEXT ("Error: state stack now"));
- while (ace_yyssp1 != ace_yyssp)
- ACE_YYFPRINTF (stderr, ACE_LIB_TEXT (" %d"), *++ace_yyssp1);
- ACE_YYFPRINTF (stderr, ACE_LIB_TEXT ("\n"));
- }
-#endif
-
-/*--------------.
-| ace_yyerrhandle. |
-`--------------*/
-ace_yyerrhandle:
- ace_yyn = ace_yypact[ace_yystate];
- if (ace_yyn == ACE_YYFLAG)
- goto ace_yyerrdefault;
-
- ace_yyn += ACE_YYTERROR;
- if (ace_yyn < 0 || ace_yyn > ACE_YYLAST || ace_yycheck[ace_yyn] != ACE_YYTERROR)
- goto ace_yyerrdefault;
-
- ace_yyn = ace_yytable[ace_yyn];
- if (ace_yyn < 0)
- {
- if (ace_yyn == ACE_YYFLAG)
- goto ace_yyerrpop;
- ace_yyn = -ace_yyn;
- goto ace_yyreduce;
- }
- else if (ace_yyn == 0)
- goto ace_yyerrpop;
-
- if (ace_yyn == ACE_YYFINAL)
- ACE_YYACCEPT;
-
- ACE_YYDPRINTF ((stderr, ACE_LIB_TEXT ("Shifting error token, ")));
-
- *++ace_yyvsp = ace_yylval;
-#if ACE_YYLSP_NEEDED
- *++ace_yylsp = ace_yylloc;
-#endif
-
- ace_yystate = ace_yyn;
- goto ace_yynewstate;
-
-
-/*-------------------------------------.
-| ace_yyacceptlab -- ACE_YYACCEPT comes here. |
-`-------------------------------------*/
-ace_yyacceptlab:
- ace_yyresult = 0;
- goto ace_yyreturn;
-
-/*-----------------------------------.
-| ace_yyabortlab -- ACE_YYABORT comes here. |
-`-----------------------------------*/
-ace_yyabortlab:
- ace_yyresult = 1;
- goto ace_yyreturn;
-
-/*---------------------------------------------.
-| ace_yyoverflowab -- parser overflow comes here. |
-`---------------------------------------------*/
-ace_yyoverflowlab:
- ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, ACE_LIB_TEXT ("parser stack overflow"));
- ace_yyresult = 2;
- /* Fall through. */
-
-ace_yyreturn:
-#ifndef ace_yyoverflow
- if (ace_yyss != ace_yyssa)
- ACE_YYSTACK_FREE (ace_yyss);
-#endif
- return ace_yyresult;
-}
-
-// Prints the error string to standard output. Cleans up the error
-// messages.
-
-void
-ace_yyerror (int ace_yyerrno, int ace_yylineno, const ACE_TCHAR *s)
-{
-#if defined (ACE_NLOGGING)
- ACE_UNUSED_ARG (ace_yyerrno);
- ACE_UNUSED_ARG (ace_yylineno);
- ACE_UNUSED_ARG (s);
-#endif /* ACE_NLOGGING */
-
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("[error %d] on line %d: %s\n"),
- ace_yyerrno,
- ace_yylineno,
- s));
-}
-
-// Note that SRC_REC represents left context, which is the STREAM *
-// record.
-
-static ACE_Module_Type *
-ace_get_module (ACE_Static_Node *str_rec,
- const ACE_TCHAR *svc_name,
- int & ace_yyerrno)
-{
- const ACE_Service_Type *sr = str_rec->record ();
- const ACE_Service_Type_Impl *type = sr->type ();
- ACE_Stream_Type *st = sr == 0
- ? 0
- : ACE_dynamic_cast (ACE_Stream_Type *,
- ACE_const_cast (ACE_Service_Type_Impl *,
- type));
- ACE_Module_Type *mt = st == 0 ? 0 : st->find (svc_name);
-
- if (sr == 0 || st == 0 || mt == 0)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("cannot locate Module_Type %s in STREAM_Type %s\n"),
- svc_name,
- str_rec->name ()));
- ace_yyerrno++;
- }
-
- return mt;
-}
-
-static ACE_Module_Type *
-ace_get_module (ACE_Static_Node *str_rec,
- ACE_Static_Node *svc_type,
- int & ace_yyerrno)
-{
- const ACE_Service_Type *sr = str_rec->record ();
- const ACE_Service_Type_Impl *type = sr->type ();
- ACE_Stream_Type *st = sr == 0 ? 0 : (ACE_Stream_Type *) type;
- const ACE_Service_Type *sv = svc_type->record ();
- type = sv->type ();
- ACE_Module_Type *mt = (ACE_Module_Type *) type;
- const ACE_TCHAR *module_type_name = svc_type->name ();
-
- if (sr == 0 || st == 0 || mt == 0)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("cannot locate Module_Type %s or STREAM_Type %s\n"),
- module_type_name,
- str_rec->name ()));
- ace_yyerrno++;
- }
-
- // Make sure that the Module has the same name as the
- // Module_Type object from the svc.conf file.
- ACE_Module<ACE_SYNCH> *mp = (ACE_Module<ACE_SYNCH> *) mt->object ();
-
- if (ACE_OS::strcmp (mp->name (), module_type_name) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("warning: assigning Module_Type name %s to Module %s since names differ\n"),
- module_type_name,
- mp->name ()));
- mp->name (module_type_name);
- }
-
- return mt;
-}
-
-#if defined (DEBUGGING)
-// Main driver program.
-
-int
-main (int argc, char *argv[])
-{
- ACE_Svc_Conf_Param param (stdin);
-
- // Try to reopen any filename argument to use ACE_YYIN.
- if (argc > 1 && (ace_yyin = freopen (argv[1], "r", stdin)) == 0)
- (void) ACE_OS::ACE_OS::fprintf (stderr, ACE_LIB_TEXT ("usage: %s [file]\n"), argv[0]), ACE_OS::exit (1);
-
- return ::ace_yyparse (&param);
-}
-#endif /* DEBUGGING */
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
diff --git a/ace/Svc_Handler.cpp b/ace/Svc_Handler.cpp
deleted file mode 100644
index d16028e7078..00000000000
--- a/ace/Svc_Handler.cpp
+++ /dev/null
@@ -1,509 +0,0 @@
-// $Id$
-
-#ifndef ACE_SVC_HANDLER_C
-#define ACE_SVC_HANDLER_C
-
-#include "ace/Svc_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Object_Manager.h"
-#include "ace/Connection_Recycling_Strategy.h"
-
-#include "ace/Dynamic.h"
-
-ACE_RCSID(ace, Svc_Handler, "$Id$")
-
-#define PR_ST_1 ACE_PEER_STREAM_1
-#define PR_ST_2 ACE_PEER_STREAM_2
-
-template <PR_ST_1, ACE_SYNCH_DECL> void *
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator new (size_t,
- void *p)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator new (NOOP, 2 parameters)");
- return p;
-}
-
-#if !defined (ACE_LACKS_PLACEMENT_OPERATOR_DELETE)
-template <PR_ST_1, ACE_SYNCH_DECL> void
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator delete (void *,
- void *)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator delete (NOOP, 2 parameters)");
- return;
-}
-#endif /* ACE_LACKS_PLACEMENT_OPERATOR_DELETE */
-
-template <PR_ST_1, ACE_SYNCH_DECL> void *
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator new (size_t n)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator new");
-
- ACE_Dynamic *const dynamic_instance = ACE_Dynamic::instance ();
-
- if (dynamic_instance == 0)
- {
- // If this ACE_ASSERT fails, it may be due to running of out TSS
- // keys. Try using ACE_HAS_TSS_EMULATION, or increasing
- // ACE_DEFAULT_THREAD_KEYS if already using TSS emulation.
- ACE_ASSERT (dynamic_instance != 0);
-
- ACE_throw_bad_alloc;
- }
- else
- {
- // Allocate the memory and store it (usually in thread-specific
- // storage, depending on config flags).
- dynamic_instance->set ();
-
- return ::new char[n];
- }
-}
-
-#if defined (ACE_HAS_NEW_NOTHROW)
-template <PR_ST_1, ACE_SYNCH_DECL> void *
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator new (size_t n,
- const ACE_nothrow_t&)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator new(nothrow)");
-
- ACE_Dynamic *const dynamic_instance = ACE_Dynamic::instance ();
-
- if (dynamic_instance == 0)
- {
- // If this ACE_ASSERT fails, it may be due to running of out TSS
- // keys. Try using ACE_HAS_TSS_EMULATION, or increasing
- // ACE_DEFAULT_THREAD_KEYS if already using TSS emulation.
- ACE_ASSERT (dynamic_instance != 0);
-
- return 0;
- }
- else
- {
- // Allocate the memory and store it (usually in thread-specific
- // storage, depending on config flags).
- dynamic_instance->set ();
-
- return ::new(ACE_nothrow) char[n];
- }
-}
-#endif /* ACE_HAS_NEW_NOTHROW */
-
-template <PR_ST_1, ACE_SYNCH_DECL> void
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::destroy (void)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::destroy");
-
- // Only delete ourselves if we're not owned by a module and have
- // been allocated dynamically.
- if (this->mod_ == 0 && this->dynamic_ && this->closing_ == 0)
- // Will call the destructor, which automatically calls <shutdown>.
- // Note that if we are *not* allocated dynamically then the
- // destructor will call <shutdown> automatically when it gets run
- // during cleanup.
- delete this;
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> void
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator delete (void *obj)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator delete");
- // You cannot delete a 'void*' (X3J16/95-0087 5.3.5.3), but we know
- // the pointer was created using new char[] (see operator new code),
- // so we use a cast:
- char *tmp = (char *) obj;
- ::delete [] tmp;
-}
-
-// Default constructor.
-
-template <PR_ST_1, ACE_SYNCH_DECL>
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::ACE_Svc_Handler (ACE_Thread_Manager *tm,
- ACE_Message_Queue<ACE_SYNCH_USE> *mq,
- ACE_Reactor *reactor)
- : ACE_Task<ACE_SYNCH_USE> (tm, mq),
- closing_ (0),
- recycler_ (0),
- recycling_act_ (0)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::ACE_Svc_Handler");
-
- this->reactor (reactor);
-
- // This clever idiom transparently checks if we were allocated
- // dynamically. This information is used by the <destroy> method to
- // decide if we need to delete <this>... The idiom is based on a
- // paper by Michael van Rooyen (mrooyen@cellnet.co.uk) that appeared
- // in the April '96 issue of the C++ Report. We've spruced it up to
- // work correctly in multi-threaded programs by using our ACE_TSS
- // class.
- this->dynamic_ = ACE_Dynamic::instance ()->is_dynamic ();
-
- if (this->dynamic_ != 0)
- // Make sure to reset the flag.
- ACE_Dynamic::instance ()->reset ();
-}
-
-// Default behavior for a ACE_Svc_Handler object is to be registered
-// with the ACE_Reactor (thereby ensuring single threading).
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::open (void *)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::open");
-#if defined (ACE_DEBUGGING)
- ACE_TCHAR buf[BUFSIZ];
- ACE_PEER_STREAM_ADDR client_addr;
-
- if (this->peer_.get_remote_addr (client_addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("get_remote_addr")),
- -1);
- else if (client_addr.addr_to_string (buf, sizeof buf) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("can't obtain peer's address")),
- -1);
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("connected to %s on fd %d\n"),
- buf,
- this->peer_.get_handle ()));
-#endif /* ACE_DEBUGGING */
- if (this->reactor ()
- && this->reactor ()->register_handler
- (this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("unable to register client handler")),
- -1);
- return 0;
-}
-
-// Perform termination activities.
-
-template <PR_ST_1, ACE_SYNCH_DECL> void
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::shutdown (void)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::shutdown");
-
- // Deregister this handler with the ACE_Reactor.
- if (this->reactor ())
- {
- ACE_Reactor_Mask mask = ACE_Event_Handler::ALL_EVENTS_MASK |
- ACE_Event_Handler::DONT_CALL;
-
- // Make sure there are no timers.
- this->reactor ()->cancel_timer (this);
-
- if (this->peer ().get_handle () != ACE_INVALID_HANDLE)
- // Remove self from reactor.
- this->reactor ()->remove_handler (this, mask);
- }
-
- // Remove self from the recycler.
- if (this->recycler ())
- this->recycler ()->purge (this->recycling_act_);
-
- this->peer ().close ();
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> void
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::cleanup_hint (void **act_holder)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::cleanup_hint");
-
- // Remove as hint.
- if (this->recycler ())
- this->recycler ()->cleanup_hint (this->recycling_act_,
- act_holder);
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> void
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::dump (void) const
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::dump");
-
- this->peer_.dump ();
- ACE_DEBUG ((LM_DEBUG,
- "dynamic_ = %d\n",
- this->dynamic_));
- ACE_DEBUG ((LM_DEBUG,
- "closing_ = %d\n",
- this->closing_));
- ACE_DEBUG ((LM_DEBUG,
- "recycler_ = %d\n",
- this->recycler_));
- ACE_DEBUG ((LM_DEBUG,
- "recycling_act_ = %d\n",
- this->recycling_act_));
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> ACE_PEER_STREAM &
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::peer (void) const
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::peer");
- return (ACE_PEER_STREAM &) this->peer_;
-}
-
-// Extract the underlying I/O descriptor.
-
-template <PR_ST_1, ACE_SYNCH_DECL> ACE_HANDLE
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::get_handle (void) const
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::get_handle");
- return this->peer_.get_handle ();
-}
-
-// Set the underlying I/O descriptor.
-
-template <PR_ST_1, ACE_SYNCH_DECL> void
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::set_handle (ACE_HANDLE h)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::set_handle");
- this->peer_.set_handle (h);
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL>
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::~ACE_Svc_Handler (void)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::~ACE_Svc_Handler");
-
- if (this->closing_ == 0)
- {
- // We're closing down now, so make sure not to call ourselves
- // recursively via other calls to handle_close() (e.g., from the
- // Timer_Queue).
- this->closing_ = 1;
-
- this->shutdown ();
- }
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::handle_close (ACE_HANDLE,
- ACE_Reactor_Mask)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::handle_close");
-
- this->destroy ();
- return 0;
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::handle_timeout (const ACE_Time_Value &,
- const void *)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::handle_timeout");
- return this->handle_close ();
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::close (u_long)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::close");
- return this->handle_close ();
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::init (int argc, ACE_TCHAR *argv[])
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::init");
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
- return -1;
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::fini (void)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::fini");
- return -1;
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::info (ACE_TCHAR **, size_t) const
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::info");
- return -1;
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::idle (u_long flags)
-{
- if (this->recycler ())
- return this->recycler ()->cache (this->recycling_act_);
- else
- return this->close (flags);
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::recycle_state (ACE_Recyclable_State new_state)
-{
- if (this->recycler ())
- return this->recycler ()->recycle_state (this->recycling_act_,
- new_state);
-
- return 0;
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> ACE_Recyclable_State
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::recycle_state (void) const
-{
- if (this->recycler ())
- return this->recycler ()->recycle_state (this->recycling_act_);
-
- return ACE_RECYCLABLE_UNKNOWN;
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> void
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::recycler (ACE_Connection_Recycling_Strategy *recycler,
- const void *recycling_act)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::recycler");
- this->recycler_ = recycler;
- this->recycling_act_ = recycling_act;
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> ACE_Connection_Recycling_Strategy *
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::recycler (void) const
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::recycler");
- return this->recycler_;
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> const void *
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::recycling_act (void) const
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::recycling_act");
- return this->recycling_act_;
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::recycle (void *)
-{
- ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::recycle");
- // By default, the object is ready and willing to be recycled.
- return 0;
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL>
-ACE_Buffered_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::~ACE_Buffered_Svc_Handler (void)
-{
- this->flush ();
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL>
-ACE_Buffered_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::ACE_Buffered_Svc_Handler (ACE_Thread_Manager *tm,
- ACE_Message_Queue<ACE_SYNCH_USE> *mq,
- ACE_Reactor *reactor,
- size_t maximum_buffer_size,
- ACE_Time_Value *timeout)
- : ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE> (tm, mq, reactor),
- maximum_buffer_size_ (maximum_buffer_size),
- current_buffer_size_ (0),
- timeoutp_ (timeout)
-{
- ACE_TRACE ("ACE_Buffered_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::ACE_Buffered_Svc_Handler");
-
- if (this->timeoutp_ != 0)
- {
- this->interval_ = *timeout;
- this->next_timeout_ = ACE_OS::gettimeofday () + this->interval_;
- }
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Buffered_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::put (ACE_Message_Block *mb,
- ACE_Time_Value *tv)
-{
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->msg_queue ()->lock (), -1);
-
- // Enqueue <mb> onto the message queue.
- if (this->putq (mb, tv) == -1)
- return -1;
- else
- {
- // Update the current number of bytes on the queue.
- this->current_buffer_size_ += mb->total_size ();
-
- // Flush the buffer when the number of bytes exceeds the maximum
- // buffer size or when the timeout period has elapsed.
- if (this->current_buffer_size_ >= this->maximum_buffer_size_
- || (this->timeoutp_ != 0
- && this->next_timeout_ <= ACE_OS::gettimeofday ()))
- return this->flush_i ();
- else
- return 0;
- }
-}
-
-// Flush the buffer.
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Buffered_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::flush (void)
-{
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->msg_queue ()->lock (), -1);
-
- return this->flush_i ();
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Buffered_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::flush_i (void)
-{
- ACE_Message_Queue_Iterator<ACE_SYNCH_USE> iterator (*this->msg_queue ());
- ACE_Message_Block *mblk;
- int result = 0;
-
- // Get the first <ACE_Message_Block> so that we can write everything
- // out via the <send_n>.
- if (iterator.next (mblk) != 0)
- result = this->peer ().send_n (mblk);
-
- // This method assumes the caller holds the queue's lock!
- if (result != -1)
- this->msg_queue ()->flush_i ();
-
- if (this->timeoutp_ != 0)
- // Update the next timeout period by adding the interval.
- this->next_timeout_ += this->interval_;
-
- this->current_buffer_size_ = 0;
-
- return result;
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> void
-ACE_Buffered_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::dump (void) const
-{
- ACE_TRACE ("ACE_Buffered_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::dump");
-
- ACE_Buffered_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::dump ();
- ACE_DEBUG ((LM_DEBUG,
- "maximum_buffer_size_ = %d\n",
- this->maximum_buffer_size_));
- ACE_DEBUG ((LM_DEBUG,
- "current_buffer_size_ = %d\n",
- this->current_buffer_size_));
- if (this->timeoutp_ != 0)
- ACE_DEBUG ((LM_DEBUG,
- "next_timeout_.sec = %d, next_timeout_.usec = %d\n",
- this->next_timeout_.sec (),
- this->next_timeout_.usec ()));
-}
-
-template <PR_ST_1, ACE_SYNCH_DECL> int
-ACE_Buffered_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::handle_timeout (const ACE_Time_Value &,
- const void *)
-{
- ACE_TRACE ("ACE_Buffered_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::handle_timeout");
- return 0;
-}
-
-#undef PR_ST_1
-#undef PR_ST_2
-#endif /* ACE_SVC_HANDLER_C */
diff --git a/ace/Svc_Handler.h b/ace/Svc_Handler.h
deleted file mode 100644
index 56a107212ab..00000000000
--- a/ace/Svc_Handler.h
+++ /dev/null
@@ -1,333 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Svc_Handler.h
- *
- * $Id$
- *
- * @author Douglas Schmidt <schmidt@uci.edu>
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SVC_HANDLER_H
-#define ACE_SVC_HANDLER_H
-
-#include "ace/pre.h"
-
-// Forward decls.
-class ACE_Connection_Recycling_Strategy;
-
-#include "ace/Synch_Options.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Task.h"
-#include "ace/Service_Config.h"
-#include "ace/Recyclable.h"
-
-/**
- * @class ACE_Svc_Handler
- *
- * @brief Defines the interface for a service that exchanges data with
- * its connected peer.
- *
- * This class provides a well-defined interface that the
- * Acceptor and Connector pattern factories use as their target.
- * Typically, client applications will subclass ACE_Svc_Handler
- * and do all the interesting work in the subclass. One thing
- * that the ACE_Svc_Handler does contain is a PEER_STREAM
- * endpoint that is initialized by an ACE_Acceptor or
- * ACE_Connector when a connection is established successfully.
- * This endpoint is used to exchange data between a
- * ACE_Svc_Handler and the peer it is connected with.
- */
-template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
-class ACE_Svc_Handler : public ACE_Task<ACE_SYNCH_USE>
-{
-public:
-
- // Useful STL-style traits.
- typedef ACE_PEER_STREAM_ADDR addr_type;
- typedef ACE_PEER_STREAM stream_type;
-
- /**
- * Constructor initializes the <thr_mgr> and <mq> by passing them
- * down to the <ACE_Task> base class. The <reactor> is passed to
- * the <ACE_Event_Handler>.
- */
- ACE_Svc_Handler (ACE_Thread_Manager *thr_mgr = 0,
- ACE_Message_Queue<ACE_SYNCH_USE> *mq = 0,
- ACE_Reactor *reactor = ACE_Reactor::instance ());
-
- /// Destructor.
- virtual ~ACE_Svc_Handler (void);
-
- /// Activate the client handler. This is typically called by the
- /// <ACE_Acceptor> or <ACE_Connector>.
- virtual int open (void * = 0);
-
- /**
- * Object termination hook -- application-specific cleanup code goes
- * here. This function is called by the idle() function if the object
- * does not have a ACE_Connection_Recycling_Strategy associated with it.
- * Also, due to this class's derivation from <ACE_Task>, <close> is
- * also called when a thread activated with this object exits. See
- * <ACE_Task::close> for further details. The default action of this
- * function is to call <handle_close> with the default arguments.
- */
- virtual int close (u_long flags = 0);
-
- /**
- * Call this method if you want to recycling the <Svc_Handler>
- * instead of closing it. If the object does not have a recycler,
- * it will be closed.
- */
- virtual int idle (u_long flags = 0);
-
- /**
- * Call this method if you want to get/set the state of the
- * <Svc_Handler>. If the object does not have a recycler, this call
- * will have no effect (and the accessor will return
- * ACE_RECYCLABLE_UNKNOWN).
- */
- virtual ACE_Recyclable_State recycle_state (void) const;
- virtual int recycle_state (ACE_Recyclable_State new_state);
-
- /**
- * When the svc_handle is no longer needed around as a hint, call
- * this method. In addition, reset <*act_holder> to zero if
- * <act_holder != 0>.
- */
- virtual void cleanup_hint (void **act_holder = 0);
-
- // = Dynamic linking hooks.
- /// Default version does no work and returns -1. Must be overloaded
- /// by application developer to do anything meaningful.
- virtual int init (int argc, ACE_TCHAR *argv[]);
-
- /// Default version does no work and returns -1. Must be overloaded
- /// by application developer to do anything meaningful.
- virtual int fini (void);
-
- /// Default version does no work and returns -1. Must be overloaded
- /// by application developer to do anything meaningful.
- virtual int info (ACE_TCHAR **info_string, size_t length) const;
-
- // = Demultiplexing hooks.
-
- /**
- * Perform termination activities on the SVC_HANDLER. The default
- * behavior is to close down the <peer_> (to avoid descriptor leaks)
- * and to <destroy> this object (to avoid memory leaks)! If you
- * don't want this behavior make sure you override this method...
- */
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
-
- /// Default behavior when timeouts occur is to close down the
- /// <Svc_Handler> by calling <handle_close>.
- virtual int handle_timeout (const ACE_Time_Value &time,
- const void *);
-
- /// Get the underlying handle associated with the <peer_>.
- virtual ACE_HANDLE get_handle (void) const;
-
- /// Set the underlying handle associated with the <peer_>.
- virtual void set_handle (ACE_HANDLE);
-
- /// Returns the underlying PEER_STREAM. Used by
- /// <ACE_Acceptor::accept> and <ACE_Connector::connect> factories
- ACE_PEER_STREAM &peer (void) const;
-
- /// Overloaded new operator. This method unobtrusively records if a
- /// <Svc_Handler> is allocated dynamically, which allows it to clean
- /// itself up correctly whether or not it's allocated statically or
- /// dynamically.
- void *operator new (size_t n);
-
-#if defined (ACE_HAS_NEW_NOTHROW)
- /// Overloaded new operator, nothrow_t variant. Unobtrusively records if a
- /// <Svc_Handler> is allocated dynamically, which allows it to clean
- /// itself up correctly whether or not it's allocated statically or
- /// dynamically.
- void *operator new (size_t n, const ACE_nothrow_t&);
-#endif
-
- /// This operator permits "placement new" on a per-object basis.
- void * operator new (size_t n,
- void *p);
-
- /**
- * Call this to free up dynamically allocated <Svc_Handlers>
- * (otherwise you will get memory leaks). In general, you should
- * call this method rather than <delete> since this method knows
- * whether or not the object was allocated dynamically, and can act
- * accordingly (i.e., deleting it if it was allocated dynamically).
- */
- virtual void destroy (void);
-
- /**
- * This really should be private so that users are forced to call
- * <destroy>. Unfortunately, the C++ standard doesn't allow there
- * to be a public new and a private delete. It is a bad idea to
- * call this method directly, so use <destroy> instead, unless you
- * know for sure that you've allocated the object dynamically.
- */
- void operator delete (void *);
-
-#if !defined (ACE_LACKS_PLACEMENT_OPERATOR_DELETE)
- /**
- * This operator is necessary to complement the class-specific
- * operator new above. Unfortunately, it's not portable to all C++
- * compilers...
- */
- void operator delete (void *, void *);
-#endif /* ACE_LACKS_PLACEMENT_OPERATOR_DELETE */
-
- /// Close down the descriptor and unregister from the Reactor
- void shutdown (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
-public:
-
- // = The following methods are not suppose to be public.
-
- // Because friendship is *not* inherited in C++, these methods have
- // to be public.
-
- // = Accessors to set/get the connection recycler.
-
- /// Set the recycler and the <recycling_act> that is used during
- /// purging and caching.
- virtual void recycler (ACE_Connection_Recycling_Strategy *recycler,
- const void *recycling_act);
-
- /// Get the recycler.
- virtual ACE_Connection_Recycling_Strategy *recycler (void) const;
-
- /// Get the recycling act.
- virtual const void *recycling_act (void) const;
-
- /**
- * Upcall made by the recycler when it is about to recycle the
- * connection. This gives the object a chance to prepare itself for
- * recycling. Return 0 if the object is ready for recycling, -1 on
- * failures.
- */
- virtual int recycle (void * = 0);
-
-protected:
- /// Maintain connection with client.
- ACE_PEER_STREAM peer_;
-
- /// Have we been dynamically created?
- int dynamic_;
-
- /// Keeps track of whether we are in the process of closing (required
- /// to avoid circular calls to <handle_close>).
- char closing_;
-
- /// Pointer to the connection recycler.
- ACE_Connection_Recycling_Strategy *recycler_;
-
- /// Asynchronous Completion Token (ACT) to be used to when talking to
- /// the recycler.
- const void *recycling_act_;
-};
-
-/**
- * @class ACE_Buffered_Svc_Handler
- *
- * @brief Defines the interface for a service that exchanges data with
- * its connected peer and supports buffering.
- *
- * The buffering feature makes it possible to queue up
- * <ACE_Message_Blocks> in an <ACE_Message_Queue> until (1) the
- * queue is "full" or (2) a period of time elapses, at which
- * point the queue is "flushed" via <sendv_n> to the peer.
- */
-template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
-class ACE_Buffered_Svc_Handler : public ACE_Svc_Handler<ACE_PEER_STREAM_2, ACE_SYNCH_USE>
-{
-public:
- // = Initialization and termination methods.
- /**
- * Constructor initializes the <thr_mgr> and <mq> by passing them
- * down to the <ACE_Task> base class. The <reactor> is passed to
- * the <ACE_Event_Handler>. The <max_buffer_size> and
- * <relative_timeout> are used to determine at what point to flush
- * the <mq>. By default, there's no buffering at all. The
- * <relative_timeout> value is interpreted to be in a unit that's
- * relative to the current time returned by <ACE_OS::gettimeofday>.
- */
- ACE_Buffered_Svc_Handler (ACE_Thread_Manager *thr_mgr = 0,
- ACE_Message_Queue<ACE_SYNCH_USE> *mq = 0,
- ACE_Reactor *reactor = ACE_Reactor::instance (),
- size_t max_buffer_size = 0,
- ACE_Time_Value *relative_timeout = 0);
-
- /// Destructor, which calls <flush>.
- virtual ~ACE_Buffered_Svc_Handler (void);
-
- /**
- * Insert the <ACE_Message_Block> chain rooted at <message_block>
- * into the <ACE_Message_Queue> with the designated <timeout>. The
- * <flush> method will be called if this <put> causes the number of
- * bytes to exceed the maximum buffer size or if the timeout period
- * has elapsed.
- */
- virtual int put (ACE_Message_Block *message_block,
- ACE_Time_Value *timeout = 0);
-
- /// Flush the <ACE_Message_Queue>, which writes all the queued
- /// <ACE_Message_Block>s to the <PEER_STREAM>.
- virtual int flush (void);
-
- /// This method is not currently implemented -- this is where the
- /// integration with the <Reactor> would occur.
- virtual int handle_timeout (const ACE_Time_Value &time,
- const void *);
-
- /// Dump the state of an object.
- void dump (void) const;
-
-protected:
- /// Implement the flush operation on the <ACE_Message_Queue>, which
- /// writes all the queued <ACE_Message_Block>s to the <PEER_STREAM>.
- /// Assumes that the caller holds the lock.
- virtual int flush_i (void);
-
- /// Maximum size the <Message_Queue> can be before we have to flush
- /// the buffer.
- size_t maximum_buffer_size_;
-
- /// Current size in bytes of the <Message_Queue> contents.
- size_t current_buffer_size_;
-
- /// Timeout value used to control when the buffer is flushed.
- ACE_Time_Value next_timeout_;
-
- /// Interval of the timeout.
- ACE_Time_Value interval_;
-
- /// Timeout pointer.
- ACE_Time_Value *timeoutp_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Svc_Handler.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Svc_Handler.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_SVC_HANDLER_H */
diff --git a/ace/Swap.cpp b/ace/Swap.cpp
deleted file mode 100644
index 4f62e72ade6..00000000000
--- a/ace/Swap.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -*- C++ -*- */
-/**
- * @file Swap.cpp
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-
-#ifndef ACE_SWAP_C
-#define ACE_SWAP_C
-
-#include "ace/Swap.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Swap.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Swap, "$Id$")
-
-#endif /* ACE_SWAP_C */
diff --git a/ace/Swap.h b/ace/Swap.h
deleted file mode 100644
index 0915eba17b2..00000000000
--- a/ace/Swap.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- C++ -*- */
-/**
- * @file Swap.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-
-#ifndef ACE_SWAP_H
-#define ACE_SWAP_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Swap
- *
- * @brief Defines a function to swap two variables.
- *
- */
-template<class T> class ACE_Swap
-{
-public:
- /// Swap two variables
- static void swap (T &lhs, T &rhs);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Swap.inl"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Swap.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Swap.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_FUNCTOR_H */
diff --git a/ace/Swap.inl b/ace/Swap.inl
deleted file mode 100644
index b1139ca3ffb..00000000000
--- a/ace/Swap.inl
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * @file Swap.inl
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-
-template<class T> ACE_INLINE void
-ACE_Swap<T>::swap (T &lhs, T& rhs)
-{
- T tmp = lhs;
- lhs = rhs;
- rhs = tmp;
-}
diff --git a/ace/Synch.cpp b/ace/Synch.cpp
deleted file mode 100644
index b77a48d00af..00000000000
--- a/ace/Synch.cpp
+++ /dev/null
@@ -1,1010 +0,0 @@
-#ifndef ACE_SYNCH_C
-#define ACE_SYNCH_C
-
-#include "ace/Thread.h"
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/Log_Msg.h"
-
-
-ACE_RCSID (ace,
- Synch,
- "$Id$")
-
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Synch.i"
-#endif /* __ACE_INLINE__ */
-
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Null_Mutex)
-
-ACE_Lock::~ACE_Lock (void)
-{
-}
-
-ACE_Adaptive_Lock::ACE_Adaptive_Lock (void)
- : lock_ (0)
-{
-}
-
-ACE_Adaptive_Lock::~ACE_Adaptive_Lock (void)
-{
-}
-
-int
-ACE_Adaptive_Lock::remove (void)
-{
- return this->lock_->remove ();
-}
-
-int
-ACE_Adaptive_Lock::acquire (void)
-{
- return this->lock_->acquire ();
-}
-
-int
-ACE_Adaptive_Lock::tryacquire (void)
-{
- return this->lock_->tryacquire ();
-}
-
-int
-ACE_Adaptive_Lock::release (void)
-{
- return this->lock_->release ();
-}
-
-int
-ACE_Adaptive_Lock::acquire_read (void)
-{
- return this->lock_->acquire_read ();
-}
-
-int
-ACE_Adaptive_Lock::acquire_write (void)
-{
- return this->lock_->acquire_write ();
-}
-
-int
-ACE_Adaptive_Lock::tryacquire_read (void)
-{
- return this->lock_->tryacquire_read ();
-}
-
-int
-ACE_Adaptive_Lock::tryacquire_write (void)
-{
- return this->lock_->tryacquire_write ();
-}
-
-int
-ACE_Adaptive_Lock::tryacquire_write_upgrade (void)
-{
- return this->lock_->tryacquire_write_upgrade ();
-}
-
-void
-ACE_Adaptive_Lock::dump (void) const
-{
- // return this->lock_->dump ();
-}
-
-ACE_TSS_Adapter::ACE_TSS_Adapter (void *object, ACE_THR_DEST f)
- : ts_obj_ (object),
- func_ (f)
-{
- // ACE_TRACE ("ACE_TSS_Adapter::ACE_TSS_Adapter");
-}
-
-void
-ACE_TSS_Adapter::cleanup (void)
-{
- // ACE_TRACE ("ACE_TSS_Adapter::cleanup");
- (*this->func_)(this->ts_obj_); // call cleanup routine for ts_obj_
-}
-
-extern "C" void
-ACE_TSS_C_cleanup (void *object)
-{
- // ACE_TRACE ("ACE_TSS_C_cleanup");
- if (object != 0)
- {
- ACE_TSS_Adapter *tss_adapter = (ACE_TSS_Adapter *) object;
- // Perform cleanup on the real TS object.
- tss_adapter->cleanup ();
- // Delete the adapter object.
- delete tss_adapter;
- }
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Semaphore)
-
-void
-ACE_Semaphore::dump (void) const
-{
-// ACE_TRACE ("ACE_Semaphore::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Semaphore::ACE_Semaphore (u_int count,
- int type,
- const ACE_TCHAR *name,
- void *arg,
- int max)
- : removed_ (0)
-{
-// ACE_TRACE ("ACE_Semaphore::ACE_Semaphore");
-#if defined(ACE_LACKS_UNNAMED_SEMAPHORE)
-// if the user does not provide a name, we generate a unique name here
- ACE_TCHAR iname[ACE_UNIQUE_NAME_LEN];
- if (name == 0)
- ACE::unique_name (this, iname, ACE_UNIQUE_NAME_LEN);
- if (ACE_OS::sema_init (&this->semaphore_, count, type,
- name ? name : iname,
- arg, max) != 0)
-#else
- if (ACE_OS::sema_init (&this->semaphore_, count, type,
- name, arg, max) != 0)
-#endif
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Semaphore::ACE_Semaphore")));
-}
-
-ACE_Semaphore::~ACE_Semaphore (void)
-{
-// ACE_TRACE ("ACE_Semaphore::~ACE_Semaphore");
-
- this->remove ();
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Mutex)
-
-void
-ACE_Mutex::dump (void) const
-{
-// ACE_TRACE ("ACE_Mutex::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-#if defined (CHORUS)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("lockname_ = %s\n"), this->lockname_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("process_lock_ = %x\n"), this->process_lock_));
-#endif /* CHORUS */
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Mutex::ACE_Mutex (int type, const ACE_TCHAR *name,
- ACE_mutexattr_t *arg, mode_t mode)
- :
-#if defined (CHORUS) || defined (ACE_HAS_PTHREADS) || defined(ACE_HAS_STHREADS)
- process_lock_ (0),
- lockname_ (0),
-#endif /* CHORUS */
- removed_ (0)
-{
- // ACE_TRACE ("ACE_Mutex::ACE_Mutex");
-
- // These platforms need process-wide mutex to be in shared memory.
-#if defined (CHORUS) || defined(ACE_HAS_PTHREADS) || defined (ACE_HAS_STHREADS)
- if (type == USYNC_PROCESS)
- {
- // Let's see if the shared memory entity already exists.
- ACE_HANDLE fd = ACE_OS::shm_open (name, O_RDWR | O_CREAT | O_EXCL, mode);
- if (fd == ACE_INVALID_HANDLE)
- {
- if (errno == EEXIST)
- fd = ACE_OS::shm_open (name, O_RDWR | O_CREAT, mode);
- else
- return;
- }
- else
- {
- // We own this shared memory object! Let's set its size.
- if (ACE_OS::ftruncate (fd,
- sizeof (ACE_mutex_t)) == -1)
- {
- ACE_OS::close (fd);
- return;
- }
- this->lockname_ = ACE_OS::strdup (name);
- if (this->lockname_ == 0)
- {
- ACE_OS::close (fd);
- return;
- }
- }
-
- this->process_lock_ =
- (ACE_mutex_t *) ACE_OS::mmap (0,
- sizeof (ACE_mutex_t),
- PROT_RDWR,
- MAP_SHARED,
- fd,
- 0);
- ACE_OS::close (fd);
- if (this->process_lock_ == MAP_FAILED)
- return;
-
- if (this->lockname_
- && ACE_OS::mutex_init (this->process_lock_,
- type,
- name,
- arg) != 0)
- return;
- }
- // It is ok to fall through into the <mutex_init> below if the
- // USYNC_PROCESS flag is not enabled.
-#else
- ACE_UNUSED_ARG (mode);
-#endif /* CHORUS */
-
- if (ACE_OS::mutex_init (&this->lock_,
- type,
- name,
- arg) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Mutex::ACE_Mutex")));
-}
-
-ACE_Mutex::~ACE_Mutex (void)
-{
-// ACE_TRACE ("ACE_Mutex::~ACE_Mutex");
- this->remove ();
-}
-
-ACE_Event::ACE_Event (int manual_reset,
- int initial_state,
- int type,
- const ACE_TCHAR *name,
- void *arg)
- : removed_ (0)
-{
- if (ACE_OS::event_init (&this->handle_,
- manual_reset,
- initial_state,
- type,
- name,
- arg) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Event::ACE_Event")));
-}
-
-ACE_Event::~ACE_Event (void)
-{
- this->remove ();
-}
-
-int
-ACE_Event::remove (void)
-{
- int result = 0;
- if (this->removed_ == 0)
- {
- this->removed_ = 1;
- result = ACE_OS::event_destroy (&this->handle_);
- }
- return result;
-}
-
-ACE_event_t
-ACE_Event::handle (void) const
-{
- return this->handle_;
-}
-
-void
-ACE_Event::handle (ACE_event_t new_handle)
-{
- this->handle_ = new_handle;
-}
-
-int
-ACE_Event::wait (void)
-{
- return ACE_OS::event_wait (&this->handle_);
-}
-
-int
-ACE_Event::wait (const ACE_Time_Value *abstime, int use_absolute_time)
-{
- return ACE_OS::event_timedwait (&this->handle_,
- (ACE_Time_Value *) abstime,
- use_absolute_time);
-}
-
-int
-ACE_Event::signal (void)
-{
- return ACE_OS::event_signal (&this->handle_);
-}
-
-int
-ACE_Event::pulse (void)
-{
- return ACE_OS::event_pulse (&this->handle_);
-}
-
-int
-ACE_Event::reset (void)
-{
- return ACE_OS::event_reset (&this->handle_);
-}
-
-void
-ACE_Event::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Manual_Event::ACE_Manual_Event (int initial_state,
- int type,
- const char *name,
- void *arg)
- : ACE_Event (1,
- initial_state,
- type,
- ACE_TEXT_CHAR_TO_TCHAR (name),
- arg)
-{
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_Manual_Event::ACE_Manual_Event (int initial_state,
- int type,
- const wchar_t *name,
- void *arg)
- : ACE_Event (1,
- initial_state,
- type,
- ACE_TEXT_WCHAR_TO_TCHAR (name),
- arg)
-{
-}
-#endif /* ACE_HAS_WCHAR */
-
-void
-ACE_Manual_Event::dump (void) const
-{
- ACE_Event::dump ();
-}
-
-ACE_Auto_Event::ACE_Auto_Event (int initial_state,
- int type,
- const char *name,
- void *arg)
- : ACE_Event (0,
- initial_state,
- type,
- ACE_TEXT_CHAR_TO_TCHAR (name),
- arg)
-{
-}
-
-#if defined (ACE_HAS_WCHAR)
-ACE_Auto_Event::ACE_Auto_Event (int initial_state,
- int type,
- const wchar_t *name,
- void *arg)
- : ACE_Event (0,
- initial_state,
- type,
- ACE_TEXT_WCHAR_TO_TCHAR (name),
- arg)
-{
-}
-#endif /* ACE_HAS_WCHAR */
-
-void
-ACE_Auto_Event::dump (void) const
-{
- ACE_Event::dump ();
-}
-
-#if defined (ACE_HAS_THREADS)
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Thread_Mutex_Guard)
-
-void
-ACE_Thread_Semaphore::dump (void) const
-{
-// ACE_TRACE ("ACE_Thread_Semaphore::dump");
-
- ACE_Semaphore::dump ();
-}
-
-ACE_Thread_Semaphore::ACE_Thread_Semaphore (u_int count,
- const ACE_TCHAR *name,
- void *arg,
- int max)
- : ACE_Semaphore (count, USYNC_THREAD, name, arg, max)
-{
-// ACE_TRACE ("ACE_Thread_Semaphore::ACE_Thread_Semaphore");
-}
-
-#if defined (ACE_USES_OBSOLETE_GUARD_CLASSES)
-void
-ACE_Thread_Mutex_Guard::dump (void) const
-{
-// ACE_TRACE ("ACE_Thread_Mutex_Guard::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */
-
-ACE_Recursive_Thread_Mutex::ACE_Recursive_Thread_Mutex (const ACE_TCHAR *name,
- ACE_mutexattr_t *arg)
- : removed_ (0)
-{
- // ACE_TRACE ("ACE_Recursive_Thread_Mutex::ACE_Recursive_Thread_Mutex");
-#if defined (ACE_HAS_FSU_PTHREADS) && ! defined (ACE_WIN32)
- // Initialize FSU pthreads package. If called more than once,
- // pthread_init does nothing and so does no harm.
- pthread_init ();
-#endif /* ACE_HAS_FSU_PTHREADS && ! ACE_WIN32 */
- if (ACE_OS::recursive_mutex_init (&this->recursive_mutex_,
- name,
- arg) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("recursive_mutex_init")));
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Recursive_Thread_Mutex)
-
-ACE_Recursive_Thread_Mutex::~ACE_Recursive_Thread_Mutex (void)
-{
- // ACE_TRACE ("ACE_Recursive_Thread_Mutex::~ACE_Recursive_Thread_Mutex");
- this->remove ();
-}
-
-int
-ACE_Recursive_Thread_Mutex::remove (void)
-{
-// ACE_TRACE ("ACE_Recursive_Thread_Mutex::remove");
- int result = 0;
- if (this->removed_ == 0)
- {
- this->removed_ = 1;
- result = ACE_OS::recursive_mutex_destroy (&this->recursive_mutex_);
- }
- return result;
-}
-
-// The counter part of the following two functions for Win32 are
-// located in file Synch.i
-ACE_thread_t
-ACE_Recursive_Thread_Mutex::get_thread_id (void)
-{
- // ACE_TRACE ("ACE_Recursive_Thread_Mutex::get_thread_id");
-#if defined (ACE_HAS_RECURSIVE_MUTEXES)
- // @@ The structure CriticalSection in Win32 doesn't hold the thread
- // handle of the thread that owns the lock. However it is still not
- // clear at this point how to translate a thread handle to its
- // corresponding thread id.
- errno = ENOTSUP;
- return ACE_OS::NULL_thread;
-#else
- ACE_thread_t owner_id;
- ACE_OS::mutex_lock (&this->recursive_mutex_.nesting_mutex_);
- owner_id = this->recursive_mutex_.owner_id_;
- ACE_OS::mutex_unlock (&this->recursive_mutex_.nesting_mutex_);
- return owner_id;
-#endif /* ACE_WIN32 */
-}
-
-int
-ACE_Recursive_Thread_Mutex::get_nesting_level (void)
-{
- // ACE_TRACE ("ACE_Recursive_Thread_Mutex::get_nesting_level");
-#if defined (ACE_HAS_WINCE) || defined (VXWORKS) || defined (ACE_PSOS)
- ACE_NOTSUP_RETURN (-1);
-#elif defined (ACE_HAS_RECURSIVE_MUTEXES)
-# if defined (ACE_WIN32)
- // This is really a Win32-ism...
- return this->recursive_mutex_.RecursionCount;
-# else
- ACE_NOTSUP_RETURN (-1);
-# endif /* ACE_HAS_RECURSIVE_MUTEXES */
-#else
- int nesting_level = 0;
- ACE_OS::mutex_lock (&this->recursive_mutex_.nesting_mutex_);
- nesting_level = this->recursive_mutex_.nesting_level_;
- ACE_OS::mutex_unlock (&this->recursive_mutex_.nesting_mutex_);
- return nesting_level;
-#endif /* !ACE_HAS_WINCE */
-}
-
-ACE_Recursive_Thread_Mutex::ACE_Recursive_Thread_Mutex (const ACE_Recursive_Thread_Mutex &)
-{
-}
-
-int
-ACE_Recursive_Thread_Mutex::acquire (void)
-{
- return ACE_OS::recursive_mutex_lock (&this->recursive_mutex_);
-}
-
-int
-ACE_Recursive_Thread_Mutex::release (void)
-{
- return ACE_OS::recursive_mutex_unlock (&this->recursive_mutex_);
-}
-
-int
-ACE_Recursive_Thread_Mutex::tryacquire (void)
-{
- return ACE_OS::recursive_mutex_trylock (&this->recursive_mutex_);
-}
-
-void
-ACE_Recursive_Thread_Mutex::dump (void) const
-{
-// ACE_TRACE ("ACE_Recursive_Thread_Mutex::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Condition_Thread_Mutex)
-
-void
-ACE_Condition_Thread_Mutex::dump (void) const
-{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
-#if defined (ACE_WIN32)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("waiters = %d\n"),
- this->cond_.waiters ()));
-#endif /* ACE_WIN32 */
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex (const ACE_Thread_Mutex &m,
- const ACE_TCHAR *name,
- void *arg)
- : mutex_ ((ACE_Thread_Mutex &) m),
- removed_ (0)
-{
-#if defined (ACE_HAS_FSU_PTHREADS)
-// Initialize FSU pthreads package.
-// If called more than once, pthread_init does nothing
-// and so does no harm.
- pthread_init ();
-#endif /* ACE_HAS_FSU_PTHREADS */
-
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex");
- if (ACE_OS::cond_init (&this->cond_,
- (short) USYNC_THREAD,
- name,
- arg) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex")));
-}
-
-ACE_Condition_Thread_Mutex::
-ACE_Condition_Thread_Mutex (const ACE_Thread_Mutex &m,
- ACE_Condition_Attributes &attributes,
- const ACE_TCHAR *name,
- void *arg)
- : mutex_ ((ACE_Thread_Mutex &) m),
- removed_ (0)
-{
-#if defined (ACE_HAS_FSU_PTHREADS)
-// Initialize FSU pthreads package.
-// If called more than once, pthread_init does nothing
-// and so does no harm.
- pthread_init ();
-#endif /* ACE_HAS_FSU_PTHREADS */
-
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex");
- if (ACE_OS::cond_init (&this->cond_, attributes.attributes_,
- name, arg) != 0)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex")));
-}
-
-ACE_Condition_Thread_Mutex::~ACE_Condition_Thread_Mutex (void)
-{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::~ACE_Condition_Thread_Mutex");
- this->remove ();
-}
-
-// Peform an "alertable" timed wait. If the argument <abstime> == 0
-// then we do a regular <cond_wait>, else we do a timed wait for up to
-// <abstime> using the <cond_timedwait> function.
-
-int
-ACE_Condition_Thread_Mutex::wait (void)
-{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::wait");
- return ACE_OS::cond_wait (&this->cond_, &this->mutex_.lock_);
-}
-
-int
-ACE_Condition_Thread_Mutex::wait (ACE_Thread_Mutex &mutex,
- const ACE_Time_Value *abstime)
-{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::wait");
- return ACE_OS::cond_timedwait (&this->cond_,
- &mutex.lock_,
- (ACE_Time_Value *) abstime);
-}
-
-int
-ACE_Condition_Thread_Mutex::wait (const ACE_Time_Value *abstime)
-{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::wait");
- return this->wait (this->mutex_, abstime);
-}
-
-int
-ACE_Condition_Thread_Mutex::signal (void)
-{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::signal");
- return ACE_OS::cond_signal (&this->cond_);
-}
-
-int
-ACE_Condition_Thread_Mutex::broadcast (void)
-{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::broadcast");
- return ACE_OS::cond_broadcast (&this->cond_);
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Sub_Barrier)
-
-void
-ACE_Sub_Barrier::dump (void) const
-{
-// ACE_TRACE ("ACE_Sub_Barrier::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->barrier_finished_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("running_threads_ = %d"), this->running_threads_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Sub_Barrier::ACE_Sub_Barrier (u_int count,
- ACE_Thread_Mutex &lock,
- const ACE_TCHAR *name,
- void *arg)
- : barrier_finished_ (lock, name, arg),
- running_threads_ (count)
-{
-// ACE_TRACE ("ACE_Sub_Barrier::ACE_Sub_Barrier");
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Barrier)
-ACE_ALLOC_HOOK_DEFINE(ACE_Thread_Barrier)
-ACE_ALLOC_HOOK_DEFINE(ACE_Process_Barrier)
-
-void
-ACE_Barrier::dump (void) const
-{
-// ACE_TRACE ("ACE_Barrier::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->lock_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("current_generation_ = %d"), this->current_generation_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncount_ = %d"), this->count_));
- this->sub_barrier_1_.dump ();
- this->sub_barrier_2_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Barrier::ACE_Barrier (u_int count,
- const ACE_TCHAR *name,
- void *arg)
- : lock_ (name, (ACE_mutexattr_t *) arg),
- current_generation_ (0),
- count_ (count),
- sub_barrier_1_ (count, lock_, name, arg),
- sub_barrier_2_ (count, lock_, name, arg)
-{
-// ACE_TRACE ("ACE_Barrier::ACE_Barrier");
- this->sub_barrier_[0] = &this->sub_barrier_1_;
- this->sub_barrier_[1] = &this->sub_barrier_2_;
-}
-
-int
-ACE_Barrier::wait (void)
-{
-// ACE_TRACE ("ACE_Barrier::wait");
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
-
- ACE_Sub_Barrier *sbp =
- this->sub_barrier_[this->current_generation_];
-
- // Check for shutdown...
- if (sbp == 0)
- return -1;
-
- if (sbp->running_threads_ == 1)
- {
- // We're the last running thread, so swap generations and tell
- // all the threads waiting on the barrier to continue on their
- // way.
-
- sbp->running_threads_ = this->count_;
- // Swap generations.
- this->current_generation_ = 1 - this->current_generation_;
- sbp->barrier_finished_.broadcast ();
- }
- else
- {
- --sbp->running_threads_;
-
- // Block until all the other threads wait().
- while (sbp->running_threads_ != this->count_)
- sbp->barrier_finished_.wait ();
- }
-
- return 0;
-}
-
-ACE_Thread_Barrier::ACE_Thread_Barrier (u_int count, const ACE_TCHAR *name)
- : ACE_Barrier (count, name)
-{
-// ACE_TRACE ("ACE_Thread_Barrier::ACE_Thread_Barrier");
-}
-
-void
-ACE_Thread_Barrier::dump (void) const
-{
-// ACE_TRACE ("ACE_Thread_Barrier::dump");
- ACE_Barrier::dump ();
-}
-
-#if 0
-ACE_Process_Barrier::ACE_Process_Barrier (u_int count, const ACE_TCHAR *name)
- : ACE_Barrier (count, USYNC_PROCESS, name)
-{
-// ACE_TRACE ("ACE_Process_Barrier::ACE_Process_Barrier");
-}
-
-void
-ACE_Process_Barrier::dump (void) const
-{
-// ACE_TRACE ("ACE_Process_Barrier::dump");
- ACE_Barrier::dump ();
-}
-
-template <class MUTEX> void
-ACE_Process_Condition<MUTEX>::dump (void) const
-{
-// ACE_TRACE ("ACE_Process_Condition<MUTEX>::dump");
-
- ACE_Condition<MUTEX>::dump ();
-}
-
-template <class MUTEX>
-ACE_Process_Condition<MUTEX>::ACE_Process_Condition (MUTEX &m,
- const ACE_TCHAR *name,
- void *arg)
- : ACE_Condition<MUTEX> (m, USYNC_PROCESS, name, arg)
-{
-// ACE_TRACE ("ACE_Process_Condition<MUTEX>::ACE_Process_Condition");
-}
-#endif /* 0 */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Thread_Mutex)
-
-void
-ACE_Thread_Mutex::dump (void) const
-{
-// ACE_TRACE ("ACE_Thread_Mutex::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Thread_Mutex::~ACE_Thread_Mutex (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex::~ACE_Thread_Mutex");
- this->remove ();
-}
-
-ACE_Thread_Mutex::ACE_Thread_Mutex (const ACE_TCHAR *name, ACE_mutexattr_t *arg)
- : removed_ (0)
-{
-// ACE_TRACE ("ACE_Thread_Mutex::ACE_Thread_Mutex");
-
- if (ACE_OS::thread_mutex_init (&this->lock_,
- USYNC_THREAD,
- name,
- arg) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Thread_Mutex::ACE_Thread_Mutex")));
-}
-
-void
-ACE_RW_Mutex::dump (void) const
-{
-// ACE_TRACE ("ACE_RW_Mutex::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_RW_Mutex::ACE_RW_Mutex (int type, const ACE_TCHAR *name, void *arg)
- : removed_ (0)
-{
-// ACE_TRACE ("ACE_RW_Mutex::ACE_RW_Mutex");
- if (ACE_OS::rwlock_init (&this->lock_, type, name, arg) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_RW_Mutex::ACE_RW_Mutex")));
-}
-
-ACE_RW_Mutex::~ACE_RW_Mutex (void)
-{
-// ACE_TRACE ("ACE_RW_Mutex::~ACE_RW_Mutex");
- this->remove ();
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_RW_Thread_Mutex)
-
-ACE_RW_Thread_Mutex::ACE_RW_Thread_Mutex (const ACE_TCHAR *name,
- void *arg)
- : ACE_RW_Mutex (USYNC_THREAD, name, arg)
-{
-// ACE_TRACE ("ACE_RW_Thread_Mutex::ACE_RW_Thread_Mutex");
-}
-
-void
-ACE_RW_Thread_Mutex::dump (void) const
-{
-// ACE_TRACE ("ACE_RW_Thread_Mutex::dump");
- ACE_RW_Mutex::dump ();
-}
-
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-int
-ACE_Condition<ACE_Recursive_Thread_Mutex>::remove (void)
-{
- return ACE_OS::cond_destroy (&this->cond_);
-}
-
-void
-ACE_Condition<ACE_Recursive_Thread_Mutex>::dump (void) const
-{
-// ACE_TRACE ("ACE_Condition<MUTEX>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- // No dump method for ACE_cond_t even in emulated mode.
- // cond_.dump ();
- this->mutex_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_Condition<ACE_Recursive_Thread_Mutex>::~ACE_Condition (void)
-{
- this->remove ();
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_Condition<ACE_Recursive_Thread_Mutex>::ACE_Condition (ACE_Recursive_Thread_Mutex &m)
- : mutex_ (m)
-{
- ACE_OS::cond_init (&this->cond_);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-int
-ACE_Condition<ACE_Recursive_Thread_Mutex>::wait (const ACE_Time_Value *abstime)
-{
- return this->wait (this->mutex_, abstime);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-int
-ACE_Condition<ACE_Recursive_Thread_Mutex>::wait (ACE_Recursive_Thread_Mutex &mutex,
- const ACE_Time_Value *abstime)
-{
- ACE_recursive_mutex_state mutex_state_holder;
- ACE_recursive_thread_mutex_t &recursive_mutex = mutex.mutex ();
-
- if (ACE_OS::recursive_mutex_cond_unlock (&recursive_mutex,
- mutex_state_holder) == -1)
- return -1;
-
- // We wait on the condition, specifying the nesting mutex. For platforms
- // with ACE_HAS_RECURSIVE_MUTEXES, this is the recursive mutex itself,
- // and is the same as recursive_mutex, above. The caller should have been
- // holding the lock on entry to this method, and it is still held.
- // For other platforms, this is the nesting mutex that guards the
- // ACE_recursive_mutex_t internals, and recursive_mutex_cond_unlock()
- // returned with the lock held, but waiters primed and waiting to be
- // released. At cond_wait below, the mutex will be released.
- // On return, it will be reacquired.
- const int result = abstime == 0
- ? ACE_OS::cond_wait (&this->cond_,
- &mutex.get_nesting_mutex ())
- : ACE_OS::cond_timedwait (&this->cond_,
- &mutex.get_nesting_mutex (),
- (ACE_Time_Value *) abstime);
- // We are holding the mutex, whether the wait succeeded or failed.
- // Stash errno (in case it failed) and then we need to reset the
- // recursive mutex state to what it was on entry to this method.
- // Resetting it may require a wait for another thread to release
- // the ACE_recursive_thread_mutex_t if this is a platform without
- // ACE_HAS_RECURSIVE_MUTEXES, and recursive_mutex_cond_relock() takes
- // care of that.
- {
- ACE_Errno_Guard error (errno);
- ACE_OS::recursive_mutex_cond_relock (&recursive_mutex,
- mutex_state_holder);
- }
-
- return result;
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-int
-ACE_Condition<ACE_Recursive_Thread_Mutex>::signal (void)
-{
- return ACE_OS::cond_signal (&this->cond_);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-int
-ACE_Condition<ACE_Recursive_Thread_Mutex>::broadcast (void)
-{
- return ACE_OS::cond_broadcast (&this->cond_);
-}
-
-//ACE_TEMPLATE_METHOD_SPECIALIZATION
-ACE_Recursive_Thread_Mutex &
-ACE_Condition<ACE_Recursive_Thread_Mutex>::mutex (void)
-{
- return this->mutex_;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-// These are only instantiated with ACE_HAS_THREADS.
-template class ACE_Guard<ACE_Thread_Mutex>;
-template class ACE_Guard<ACE_RW_Thread_Mutex>;
-template class ACE_Read_Guard<ACE_RW_Thread_Mutex>;
-template class ACE_Read_Guard<ACE_Thread_Mutex>;
-template class ACE_Write_Guard<ACE_RW_Thread_Mutex>;
-template class ACE_Write_Guard<ACE_Thread_Mutex>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-// These are only instantiated with ACE_HAS_THREADS.
-#pragma instantiate ACE_Guard<ACE_Thread_Mutex>
-#pragma instantiate ACE_Guard<ACE_RW_Thread_Mutex>
-#pragma instantiate ACE_Read_Guard<ACE_RW_Thread_Mutex>
-#pragma instantiate ACE_Read_Guard<ACE_Thread_Mutex>
-#pragma instantiate ACE_Write_Guard<ACE_RW_Thread_Mutex>
-#pragma instantiate ACE_Write_Guard<ACE_Thread_Mutex>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_HAS_THREADS */
-#endif /* ACE_SYNCH_C */
diff --git a/ace/Synch.h b/ace/Synch.h
deleted file mode 100644
index 9ffdae37683..00000000000
--- a/ace/Synch.h
+++ /dev/null
@@ -1,1864 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Synch.h
- *
- * $Id$
- *
- * Wrapper Facades for various synchronization mechanisms.
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_SYNCH_H
-#define ACE_SYNCH_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-
-/**
- * @class ACE_Lock
- *
- * @brief This is the abstract base class that contains the uniform
- * locking API that is supported by all the ACE synchronization
- * mechanisms.
- *
- * This class is typically used in conjunction with the
- * <ACE_Lock_Adapter> in order to provide a polymorphic
- * interface to the ACE synchronization mechanisms (e.g.,
- * <ACE_Mutex>, <ACE_Semaphore>, <ACE_RW_Mutex>, etc). Note that
- * the reason that all of ACE doesn't use polymorphic locks is
- * that (1) they add ~20% extra overhead for virtual function
- * calls and (2) objects with virtual functions can't be placed
- * into shared memory.
- */
-class ACE_Export ACE_Lock
-{
-public:
- /// CE needs a default ctor here.
- ACE_Lock (void);
-
- /// Noop virtual destructor
- virtual ~ACE_Lock (void);
-
- /**
- * Explicitly destroy the lock. Note that only one thread should
- * call this method since it doesn't protect against race
- * conditions.
- */
- virtual int remove (void) = 0;
-
- /// Block the thread until the lock is acquired. Returns -1 on
- /// failure.
- virtual int acquire (void) = 0;
-
- /**
- * Conditionally acquire the lock (i.e., won't block). Returns -1
- * on failure. If we "failed" because someone else already had the
- * lock, <errno> is set to <EBUSY>.
- */
- virtual int tryacquire (void) = 0;
-
- /// Release the lock. Returns -1 on failure.
- virtual int release (void) = 0;
-
- /**
- * Block until the thread acquires a read lock. If the locking
- * mechanism doesn't support read locks then this just calls
- * <acquire>. Returns -1 on failure.
- */
- virtual int acquire_read (void) = 0;
-
- /**
- * Block until the thread acquires a write lock. If the locking
- * mechanism doesn't support read locks then this just calls
- * <acquire>. Returns -1 on failure.
- */
- virtual int acquire_write (void) = 0;
-
- /**
- * Conditionally acquire a read lock. If the locking mechanism
- * doesn't support read locks then this just calls <acquire>.
- * Returns -1 on failure. If we "failed" because someone else
- * already had the lock, <errno> is set to <EBUSY>.
- */
- virtual int tryacquire_read (void) = 0;
-
- /**
- * Conditionally acquire a write lock. If the locking mechanism
- * doesn't support read locks then this just calls <acquire>.
- * Returns -1 on failure. If we "failed" because someone else
- * already had the lock, <errno> is set to <EBUSY>.
- */
- virtual int tryacquire_write (void) = 0;
-
- /**
- * Conditionally try to upgrade a lock held for read to a write lock.
- * If the locking mechanism doesn't support read locks then this just
- * calls <acquire>. Returns 0 on success, -1 on failure.
- */
- virtual int tryacquire_write_upgrade (void) = 0;
-};
-
-/**
- * @class ACE_Adaptive_Lock
- *
- * @brief An adaptive general locking class that defers the decision of
- * lock type to run time.
- *
- * This class, as ACE_Lock, provide a set of general locking APIs.
- * However, it defers our decision of what kind of lock to use
- * to the run time and delegates all locking operations to the actual
- * lock. Users must define a constructor in their subclass to
- * initialize <lock_>.
- */
-class ACE_Export ACE_Adaptive_Lock : public ACE_Lock
-{
-public:
- /// You must also override the destructor function to match with how
- /// you construct the underneath <lock_>.
- virtual ~ACE_Adaptive_Lock (void);
-
- // = Lock/unlock operations.
-
- virtual int remove (void);
- virtual int acquire (void);
- virtual int tryacquire (void);
- virtual int release (void);
- virtual int acquire_read (void);
- virtual int acquire_write (void);
- virtual int tryacquire_read (void);
- virtual int tryacquire_write (void);
- virtual int tryacquire_write_upgrade (void);
- void dump (void) const;
-
-protected:
- /**
- * Create and initialize create the actual lcok used in the class.
- * The default constructor simply set the <lock_> to 0 (null). You
- * must overwrite this method for this class to work.
- */
- ACE_Adaptive_Lock (void);
-
- ACE_Lock *lock_;
-};
-
-/**
- * @class ACE_Semaphore
- *
- * @brief Wrapper for Dijkstra style general semaphores.
- */
-class ACE_Export ACE_Semaphore
-{
-public:
- // = Initialization and termination.
- /// Initialize the semaphore, with initial value of "count".
- ACE_Semaphore (u_int count = 1, // By default make this unlocked.
- int type = USYNC_THREAD,
- const ACE_TCHAR *name = 0,
- void * = 0,
- int max = 0x7fffffff);
-
- /// Implicitly destroy the semaphore.
- ~ACE_Semaphore (void);
-
- /**
- * Explicitly destroy the semaphore. Note that only one thread
- * should call this method since it doesn't protect against race
- * conditions.
- */
- int remove (void);
-
- /// Block the thread until the semaphore count becomes
- /// greater than 0, then decrement it.
- int acquire (void);
-
- /**
- * Block the thread until the semaphore count becomes greater than 0
- * (at which point it is decremented) or until <tv> times out (in
- * which case -1 is returned and <errno> == <ETIME>). Note that <tv>
- * is assumed to be in "absolute" rather than "relative" time. The
- * value of <tv> is updated upon return to show the actual
- * (absolute) acquisition time.
- *
- * NOTE: Solaris threads do not support timed semaphores.
- * Therefore, if you're running on Solaris you might want to
- * consider using the ACE POSIX pthreads implementation instead,
- * which can be enabled by compiling ACE with
- * -DACE_HAS_PTHREADS, rather than -DACE_HAS_STHREADS or
- * -DACE_HAS_POSIX_SEM. */
- int acquire (ACE_Time_Value &tv);
-
- /**
- * If <tv> == 0 then call <acquire()> directly. Otherwise, Block
- * the thread until the semaphore count becomes greater than 0
- * (at which point it is decremented) or until <tv> times out (in
- * which case -1 is returned and <errno> == <ETIME>). Note that
- * <*tv> is assumed to be in "absolute" rather than "relative" time.
- * The value of <*tv> is updated upon return to show the actual
- * (absolute) acquisition time.
- *
- * NOTE: Solaris threads do not support timed semaphores.
- * Therefore, if you're running on Solaris you might want to
- * consider using the ACE POSIX pthreads implementation instead,
- * which can be enabled by compiling ACE with
- * -DACE_HAS_PTHREADS, rather than -DACE_HAS_STHREADS or
- * -DACE_HAS_POSIX_SEM. */
- int acquire (ACE_Time_Value *tv);
-
- /**
- * Conditionally decrement the semaphore if count is greater than 0
- * (i.e., won't block). Returns -1 on failure. If we "failed"
- * because someone else already had the lock, <errno> is set to
- * <EBUSY>.
- */
- int tryacquire (void);
-
- /// Increment the semaphore by 1, potentially unblocking a waiting
- /// thread.
- int release (void);
-
- /// Increment the semaphore by <release_count>, potentially
- /// unblocking waiting threads.
- int release (u_int release_count);
-
- /**
- * Acquire semaphore ownership. This calls <acquire> and is only
- * here to make the <ACE_Semaphore> interface consistent with the
- * other synchronization APIs.
- */
- int acquire_read (void);
-
- /**
- * Acquire semaphore ownership. This calls <acquire> and is only
- * here to make the <ACE_Semaphore> interface consistent with the
- * other synchronization APIs.
- */
- int acquire_write (void);
-
- /**
- * Conditionally acquire semaphore (i.e., won't block). This calls
- * <tryacquire> and is only here to make the <ACE_Semaphore>
- * interface consistent with the other synchronization APIs.
- * Returns -1 on failure. If we "failed" because someone else
- * already had the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_read (void);
-
- /**
- * Conditionally acquire semaphore (i.e., won't block). This calls
- * <tryacquire> and is only here to make the <ACE_Semaphore>
- * interface consistent with the other synchronization APIs.
- * Returns -1 on failure. If we "failed" because someone else
- * already had the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_write (void);
-
- /**
- * This is only here to make the <ACE_Semaphore>
- * interface consistent with the other synchronization APIs.
- * Assumes the caller has already acquired the semaphore using one of
- * the above calls, and returns 0 (success) always.
- */
- int tryacquire_write_upgrade (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /// Return the underlying lock.
- const ACE_sema_t &lock (void) const;
-
-protected:
- ACE_sema_t semaphore_;
-
- /// Keeps track of whether <remove> has been called yet to avoid
- /// multiple <remove> calls, e.g., explicitly and implicitly in the
- /// destructor. This flag isn't protected by a lock, so make sure
- /// that you don't have multiple threads simultaneously calling
- /// <remove> on the same object, which is a bad idea anyway...
- int removed_;
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_Semaphore &);
- ACE_Semaphore (const ACE_Semaphore &);
-};
-
-/**
- * @class ACE_Null_Semaphore
- *
- * @brief Implement a do nothing <ACE_Semaphore>, i.e., all the methods are
- * no ops.
- *
- * Although the methods are no-ops, the return values are different for
- * the blocking as opposed to timed acquires. The blocking version of
- * acquire() is often used to serialize access to a critical section,
- * whereas the timed version is often used to wait for another thread
- * to update some condition or change some shared state. When using an
- * ACE_Null_Semaphore, however, there's no other thread involved to
- * change a state or condition (otherwise, a null semaphore would be
- * inappropriate). Returning an error value signifies that the
- * state or condition has not been (and can't be) changed, which is
- * consistent with the behavior of the threaded case where a timeout
- * occurs before the state or condition is changed.
- */
-class ACE_Export ACE_Null_Semaphore
-{
-public:
- ACE_Null_Semaphore (u_int count = 1, // By default make this unlocked.
- int type = USYNC_THREAD,
- const ACE_TCHAR *name = 0,
- void * = 0,
- int max = 0x7fffffff);
- ~ACE_Null_Semaphore (void);
- /// Return 0.
- int remove (void);
-
- /// Return 0.
- int acquire (void);
-
- /// Return -1 with <errno> == <ETIME>.
- int acquire (ACE_Time_Value &);
-
- /// Return -1 with <errno> == <ETIME>.
- int acquire (ACE_Time_Value *);
-
- /// Return 0.
- int tryacquire (void);
-
- /// Return 0.
- int release (void);
-
- /// Return 0.
- int release (size_t);
-
- /// Return 0.
- int acquire_write (void);
-
- /// Return 0.
- int tryacquire_write (void);
-
- /// Return 0.
- int tryacquire_write_upgrade (void);
-
- /// Return 0.
- int acquire_read (void);
-
- /// Return 0.
- int tryacquire_read (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_RW_Mutex
- *
- * @brief Wrapper for readers/writer locks.
- *
- * These are most useful for applications that have many more
- * parallel readers than writers...
- */
-class ACE_Export ACE_RW_Mutex
-{
-public:
- /// Initialize a readers/writer lock.
- ACE_RW_Mutex (int type = USYNC_THREAD,
- const ACE_TCHAR *name = 0,
- void *arg = 0);
-
- /// Implicitly destroy a readers/writer lock
- ~ACE_RW_Mutex (void);
-
- /**
- * Explicitly destroy a readers/writer lock. Note that only one
- * thread should call this method since it doesn't protect against
- * race conditions.
- */
- int remove (void);
-
- /// Acquire a read lock, but block if a writer hold the lock.
- int acquire_read (void);
-
- /// Acquire a write lock, but block if any readers or a
- /// writer hold the lock.
- int acquire_write (void);
-
- /**
- * Conditionally acquire a read lock (i.e., won't block). Returns
- * -1 on failure. If we "failed" because someone else already had
- * the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_read (void);
-
- /// Conditionally acquire a write lock (i.e., won't block).
- int tryacquire_write (void);
-
- /**
- * Conditionally upgrade a read lock to a write lock. This only
- * works if there are no other readers present, in which case the
- * method returns 0. Otherwise, the method returns -1 and sets
- * <errno> to <EBUSY>. Note that the caller of this method *must*
- * already possess this lock as a read lock (but this condition is
- * not checked by the current implementation).
- */
- int tryacquire_write_upgrade (void);
-
- /**
- * Note, for interface uniformity with other synchronization
- * wrappers we include the <acquire> method. This is implemented as
- * a write-lock to safe...
- */
- int acquire (void);
-
- /**
- * Note, for interface uniformity with other synchronization
- * wrappers we include the <tryacquire> method. This is implemented
- * as a write-lock to be safe... Returns -1 on failure. If we
- * "failed" because someone else already had the lock, <errno> is
- * set to <EBUSY>.
- */
- int tryacquire (void);
-
- /// Unlock a readers/writer lock.
- int release (void);
-
- /// Return the underlying lock.
- const ACE_rwlock_t &lock (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Readers/writer lock.
- ACE_rwlock_t lock_;
-
- /// Keeps track of whether <remove> has been called yet to avoid
- /// multiple <remove> calls, e.g., explicitly and implicitly in the
- /// destructor. This flag isn't protected by a lock, so make sure
- /// that you don't have multiple threads simultaneously calling
- /// <remove> on the same object, which is a bad idea anyway...
- int removed_;
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_RW_Mutex &);
- ACE_RW_Mutex (const ACE_RW_Mutex &);
-};
-
-/**
- * @class ACE_Mutex
- *
- * @brief <ACE_Mutex> wrapper (valid in same process or across
- * processes (depending on TYPE flag)).
- */
-class ACE_Export ACE_Mutex
-{
-public:
- /// Initialize the mutex.
- ACE_Mutex (int type = USYNC_THREAD,
- const ACE_TCHAR *name = 0,
- ACE_mutexattr_t *arg = 0,
- mode_t mode = ACE_DEFAULT_FILE_PERMS);
-
- /// Implicitly destroy the mutex.
- ~ACE_Mutex (void);
-
- /**
- * Explicitly destroy the mutex. Note that only one thread should
- * call this method since it doesn't protect against race
- * conditions.
- */
- int remove (void);
-
- /// Acquire lock ownership (wait on queue if necessary).
- int acquire (void);
-
- /**
- * Block the thread until the mutex is acquired or <tv> times out,
- * in which case -1 is returned and <errno> == <ETIME>. Note that
- * <tv> is assumed to be in "absolute" rather than "relative" time.
- * The value of <tv> is updated upon return to show the actual
- * (absolute) acquisition time.
- */
- int acquire (ACE_Time_Value &tv);
-
- /**
- * If <tv> == 0 then call <acquire()> directly. Otherwise, block
- * the thread until the mutex is acquired or <tv> times out, in
- * which case -1 is returned and <errno> == <ETIME>. Note that
- * <*tv> is assumed to be in "absolute" rather than "relative" time.
- * The value of <*tv> is updated upon return to show the actual
- * (absolute) acquisition time. */
- int acquire (ACE_Time_Value *tv);
-
- /**
- * Conditionally acquire lock (i.e., don't wait on queue). Returns
- * -1 on failure. If we "failed" because someone else already had
- * the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire (void);
-
- /// Release lock and unblock a thread at head of queue.
- int release (void);
-
- /**
- * Acquire mutex ownership. This calls <acquire> and is only
- * here to make the <ACE_Mutex> interface consistent with the
- * other synchronization APIs.
- */
- int acquire_read (void);
-
- /**
- * Acquire mutex ownership. This calls <acquire> and is only
- * here to make the <ACE_Mutex> interface consistent with the
- * other synchronization APIs.
- */
- int acquire_write (void);
-
- /**
- * Conditionally acquire mutex (i.e., won't block). This calls
- * <tryacquire> and is only here to make the <ACE_Mutex> interface
- * consistent with the other synchronization APIs. Returns -1 on
- * failure. If we "failed" because someone else already had the
- * lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_read (void);
-
- /**
- * Conditionally acquire mutex (i.e., won't block). This calls
- * <tryacquire> and is only here to make the <ACE_Mutex> interface
- * consistent with the other synchronization APIs. Returns -1 on
- * failure. If we "failed" because someone else already had the
- * lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_write (void);
-
- /**
- * This is only here for consistency with the other synchronization
- * APIs and usability with Lock adapters. Assumes the caller already has
- * acquired the mutex and returns 0 in all cases.
- */
- int tryacquire_write_upgrade (void);
-
- /// Return the underlying mutex.
- const ACE_mutex_t &lock (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- // = This should be protected but some C++ compilers complain...
-public:
-#if defined (CHORUS) || defined(ACE_HAS_PTHREADS) || defined(ACE_HAS_STHREADS)
- /// This lock resides in shared memory.
- ACE_mutex_t *process_lock_;
-
- /**
- * Remember the name of the mutex if we created it so we can unlink
- * it when we go away (only the actor that initialized the memory
- * can destroy it).
- */
- const ACE_TCHAR *lockname_;
-#endif /* CHORUS || ACE_HAS_PTHREADS */
-
- /// Mutex type supported by the OS.
- ACE_mutex_t lock_;
-
- /// Keeps track of whether <remove> has been called yet to avoid
- /// multiple <remove> calls, e.g., explicitly and implicitly in the
- /// destructor. This flag isn't protected by a lock, so make sure
- /// that you don't have multiple threads simultaneously calling
- /// <remove> on the same object, which is a bad idea anyway...
- int removed_;
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_Mutex &);
- ACE_Mutex (const ACE_Mutex &);
-};
-
-/**
- * @class ACE_Null_Barrier
- *
- * @brief Implements "NULL barrier synchronization".
- */
-class ACE_Export ACE_Null_Barrier
-{
-public:
- /// Initialize the barrier to synchronize <count> threads.
- ACE_Null_Barrier (u_int,
- const char * = 0,
- void * = 0);
-
- /// Default dtor.
- ~ACE_Null_Barrier (void);
-
- /// Block the caller until all <count> threads have called <wait> and
- /// then allow all the caller threads to continue in parallel.
- int wait (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_Null_Barrier &);
- ACE_Null_Barrier (const ACE_Null_Barrier &);
-};
-
-/**
- * @class ACE_Null_Mutex
- *
- * @brief Implement a do nothing <ACE_Mutex>, i.e., all the methods are
- * no ops.
- */
-class ACE_Export ACE_Null_Mutex
-{
-public:
- ACE_Null_Mutex (const ACE_TCHAR * = 0);
- ~ACE_Null_Mutex (void);
- /// Return 0.
- int remove (void);
-
- /// Return 0.
- int acquire (void);
-
- /// Return -1 with <errno> == <ETIME>.
- int acquire (ACE_Time_Value &timeout);
-
- /// Return -1 with <errno> == <ETIME>.
- int acquire (ACE_Time_Value *timeout);
-
- /// Return 0.
- int tryacquire (void);
-
- /// Return 0.
- int release (void);
-
- /// Return 0.
- int acquire_write (void);
-
- /// Return 0.
- int tryacquire_write (void);
-
- /// Return 0.
- int tryacquire_write_upgrade (void);
-
- /// Return 0.
- int acquire_read (void);
-
- /// Return 0.
- int tryacquire_read (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- int lock_; // A dummy lock.
-};
-
-class ACE_Export ACE_Noop_Token : public ACE_Null_Mutex
-{
-public:
- /// Queueing strategy
- enum QUEUEING_STRATEGY
- {
- FIFO = -1,
- LIFO = 0
- };
-
- /// Get queueing strategy.
- int queueing_strategy (void);
-
- /// Set queueing strategy.
- void queueing_strategy (int queueing_strategy);
-
- int renew (int = 0, ACE_Time_Value * =0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_Null_Condition
- *
- * @brief Implement a do nothing <ACE_Condition> variable wrapper,
- * i.e., all methods are no ops. This class is necessary since
- * some C++ compilers are *very* lame...
- */
-class ACE_Export ACE_Null_Condition
-{
-public:
- ACE_Null_Condition (const ACE_Null_Mutex &m,
- const ACE_TCHAR * = 0,
- void * = 0);
- ~ACE_Null_Condition (void);
-
- /// Returns 0.
- int remove (void);
-
- /// Returns -1 with <errno> == <ETIME>.
- int wait (const ACE_Time_Value * = 0);
-
- /// Returns -1 with <errno> == <ETIME>.
- int wait (ACE_Null_Mutex &m,
- const ACE_Time_Value * = 0);
-
- /// Returns 0.
- int signal (void);
-
- /// Returns 0.
- int broadcast (void);
- ACE_Null_Mutex &mutex (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-protected:
- ACE_Null_Mutex &mutex_; // Reference to mutex lock.
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_Null_Condition &);
- ACE_Null_Condition (const ACE_Null_Condition &);
-};
-
-#if defined (ACE_USES_OBSOLETE_GUARD_CLASSES)
-/**
- * @class ACE_Null_Mutex_Guard
- *
- * @brief This data structure is meant to be used within a method or
- * function... It performs automatic aquisition and release of
- * an ACE_Null_Mutex.
- *
- * This class is obsolete and should be replaced by
- * ACE_Guard<ACE_Null_Mutex>.
- */
-class ACE_Export ACE_Null_Mutex_Guard
-{
-public:
- ACE_Null_Mutex_Guard (ACE_Null_Mutex &);
- ~ACE_Null_Mutex_Guard (void);
- int remove (void);
- int locked (void);
- int acquire (void);
- int tryacquire (void);
- int release (void);
- void dump (void) const;
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_Null_Mutex_Guard &);
- ACE_Null_Mutex_Guard (const ACE_Null_Mutex_Guard &);
-};
-#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */
-
-/**
- * @class ACE_TSS_Adapter
- *
- * @brief This class encapsulates a TSS object and its associated
- * C++ destructor function. It is used by the ACE_TSS...
- * methods (in Synch_T.cpp) in order to allow an extern
- * "C" cleanup routine to be used. Needed by the "frigging"
- * MVS C++ compiler.
- *
- * Objects of this class are stored in thread specific
- * storage. ts_obj_ points to the "real" object and
- * func_ is a pointer to the C++ cleanup function for ts_obj_.
- */
-class ACE_Export ACE_TSS_Adapter
-{
-public:
- /// Initialize the adapter.
- ACE_TSS_Adapter (void *object, ACE_THR_DEST f);
-
- /// Default dtor.
- ~ACE_TSS_Adapter (void);
-
- /// Perform the cleanup operation.
- void cleanup (void);
-
-//private:
-
- /// The real TS object.
- void *ts_obj_;
-
- /// The real cleanup routine for ts_obj;
- ACE_THR_DEST func_;
-};
-
-/**
- * @class ACE_Event
- *
- * @brief A wrapper around the Win32 event locking mechanism.
- *
- * Portable implementation of an Event mechanism, which is native to
- * Win32, but must be emulated on UNIX. All platforms support
- * process-scope locking support. However, only Win32 platforms
- * support global naming and system-scope locking support.
- */
-class ACE_Export ACE_Event
-{
-public:
- /// Constructor that creates event.
- ACE_Event (int manual_reset = 0,
- int initial_state = 0,
- int type = USYNC_THREAD,
- const ACE_TCHAR *name = 0,
- void *arg = 0);
-
- /// Implicitly destroy the event variable.
- ~ACE_Event (void);
-
- /**
- * Explicitly destroy the event variable. Note that only one thread
- * should call this method since it doesn't protect against race
- * conditions.
- */
- int remove (void);
-
- /// Underlying handle to event.
- ACE_event_t handle (void) const;
-
- /**
- * Set the underlying handle to event. Note that this method assumes
- * ownership of the <handle> and will close it down in <remove>. If
- * you want the <handle> to stay open when <remove> is called make
- * sure to call <dup> on the <handle> before closing it. You are
- * responsible for the closing the existing <handle> before
- * overwriting it.
- */
- void handle (ACE_event_t new_handle);
-
- /**
- * if MANUAL reset
- * sleep till the event becomes signaled
- * event remains signaled after wait() completes.
- * else AUTO reset
- * sleep till the event becomes signaled
- * event resets wait() completes.
- */
- int wait (void);
-
- /// Same as wait() above, but this one can be timed
- /// <abstime> is absolute time-of-day if if <use_absolute_time>
- /// is non-0, else it is relative time.
- int wait (const ACE_Time_Value *abstime,
- int use_absolute_time = 1);
-
- /**
- * if MANUAL reset
- * wake up all waiting threads
- * set to signaled state
- * else AUTO reset
- * if no thread is waiting, set to signaled state
- * if thread(s) are waiting, wake up one waiting thread and
- * reset event
- */
- int signal (void);
-
- /**
- * if MANUAL reset
- * wakeup all waiting threads and
- * reset event
- * else AUTO reset
- * wakeup one waiting thread (if present) and
- * reset event
- */
- int pulse (void);
-
- /// Set to nonsignaled state.
- int reset (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// The underlying handle.
- ACE_event_t handle_;
-
- /// Keeps track of whether <remove> has been called yet to avoid
- /// multiple <remove> calls, e.g., explicitly and implicitly in the
- /// destructor. This flag isn't protected by a lock, so make sure
- /// that you don't have multiple threads simultaneously calling
- /// <remove> on the same object, which is a bad idea anyway...
- int removed_;
-
-private:
- // = Prevent copying.
- ACE_Event (const ACE_Event& event);
- const ACE_Event &operator= (const ACE_Event &rhs);
-};
-
-/**
- * @class ACE_Manual_Event
- *
- * @brief Manual Events.
- *
- * Specialization of Event mechanism which wakes up all waiting
- * thread on <signal>. All platforms support process-scope locking
- * support. However, only Win32 platforms support global naming and
- * system-scope locking support.
- */
-class ACE_Export ACE_Manual_Event : public ACE_Event
-{
-public:
- /// constructor which will create manual event
- ACE_Manual_Event (int initial_state = 0,
- int type = USYNC_THREAD,
- const char *name = 0,
- void *arg = 0);
-
-#if defined (ACE_HAS_WCHAR)
- /// constructor which will create manual event (wchar_t version)
- ACE_Manual_Event (int initial_state,
- int type,
- const wchar_t *name,
- void *arg = 0);
-#endif /* ACE_HAS_WCHAR */
-
- /// Default dtor.
- ~ACE_Manual_Event (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_Auto_Event
- *
- * @brief Auto Events.
- *
- * Specialization of Event mechanism which wakes up one waiting
- * thread on <signal>. All platforms support process-scope locking
- * support. However, only Win32 platforms support global naming and
- * system-scope locking support.
- */
-class ACE_Export ACE_Auto_Event : public ACE_Event
-{
-public:
- /// constructor which will create auto event
- ACE_Auto_Event (int initial_state = 0,
- int type = USYNC_THREAD,
- const char *name = 0,
- void *arg = 0);
-
-#if defined (ACE_HAS_WCHAR)
- /// constructor which will create auto event (wchar_t version)
- ACE_Auto_Event (int initial_state,
- int type,
- const wchar_t *name,
- void *arg = 0);
-#endif /* ACE_HAS_WCHAR */
-
- /// Default dtor.
- ~ACE_Auto_Event (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-// ACE platform supports some form of threading.
-#if !defined (ACE_HAS_THREADS)
-/**
- * @class ACE_Barrier
- *
- * @brief This is a no-op to make ACE "syntactically consistent."
- */
-class ACE_Barrier
-{
-public:
- ACE_Barrier (u_int, const ACE_TCHAR * = 0, void * = 0) {}
- ~ACE_Barrier (void) {}
- int wait (void) { ACE_NOTSUP_RETURN (-1); }
- void dump (void) const {}
-};
-#else
- /**
- * @class ACE_Thread_Mutex
- *
- * @brief ACE_Thread_Mutex wrapper (only valid for threads in the same
- * process).
- *
- * This implementation is optimized for locking threads that are
- * in the same process. It maps to <CRITICAL_SECTION>s on NT
- * and <ACE_mutex_t> with <type> set to <USYNC_THREAD> on UNIX.
- * ACE_Thread_Mutex is recursive on some platforms (like
- * Win32). However, on most platforms (like Solaris) it is not
- * recursive. To be totally safe and portable, developers
- * should use <ACE_Recursive_Thread_Mutex> when they need a
- * recursive mutex.
- */
-class ACE_Export ACE_Thread_Mutex
-{
- friend class ACE_Condition_Thread_Mutex;
-public:
- /// Constructor.
- ACE_Thread_Mutex (const ACE_TCHAR *name = 0,
- ACE_mutexattr_t *attributes = 0);
-
- /// Implicitly destroy the mutex.
- ~ACE_Thread_Mutex (void);
-
- /**
- * Explicitly destroy the mutex. Note that only one thread should
- * call this method since it doesn't protect against race
- * conditions.
- */
- int remove (void);
-
- /// Acquire lock ownership (wait on queue if necessary).
- int acquire (void);
-
- /**
- * Block the thread until we acquire the mutex or until <tv> times
- * out, in which case -1 is returned with <errno> == <ETIME>. Note
- * that <tv> is assumed to be in "absolute" rather than "relative"
- * time. The value of <tv> is updated upon return to show the
- * actual (absolute) acquisition time.
- */
- int acquire (ACE_Time_Value &tv);
-
- /**
- * If <tv> == 0 the call <acquire()> directly. Otherwise, Block the
- * thread until we acquire the mutex or until <tv> times out, in
- * which case -1 is returned with <errno> == <ETIME>. Note that
- * <*tv> is assumed to be in "absolute" rather than "relative" time.
- * The value of <*tv> is updated upon return to show the actual
- * (absolute) acquisition time.
- */
- int acquire (ACE_Time_Value *tv);
-
- /**
- * Conditionally acquire lock (i.e., don't wait on queue). Returns
- * -1 on failure. If we "failed" because someone else already had
- * the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire (void);
-
- /// Release lock and unblock a thread at head of queue.
- int release (void);
-
- /**
- * Acquire mutex ownership. This calls <acquire> and is only here
- * to make the <ACE_Thread_Mutex> interface consistent with the
- * other synchronization APIs.
- */
- int acquire_read (void);
-
- /**
- * Acquire mutex ownership. This calls <acquire> and is only here
- * to make the <ACE_Thread_Mutex> interface consistent with the
- * other synchronization APIs.
- */
- int acquire_write (void);
-
- /**
- * Conditionally acquire mutex (i.e., won't block). This calls
- * <tryacquire> and is only here to make the <ACE_Thread_Mutex>
- * interface consistent with the other synchronization APIs.
- * Returns -1 on failure. If we "failed" because someone else
- * already had the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_read (void);
-
- /**
- * Conditionally acquire mutex (i.e., won't block). This calls
- * <tryacquire> and is only here to make the <ACE_Thread_Mutex>
- * interface consistent with the other synchronization APIs.
- * Returns -1 on failure. If we "failed" because someone else
- * already had the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire_write (void);
-
- /**
- * This is only here to make the <ACE_Thread_Mutex>
- * interface consistent with the other synchronization APIs.
- * Assumes the caller has already acquired the mutex using one of
- * the above calls, and returns 0 (success) always.
- */
- int tryacquire_write_upgrade (void);
-
- /// Return the underlying mutex.
- const ACE_thread_mutex_t &lock (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- // protected:
- /// Mutex type that supports single-process locking efficiently.
- ACE_thread_mutex_t lock_;
-
- /// Keeps track of whether <remove> has been called yet to avoid
- /// multiple <remove> calls, e.g., explicitly and implicitly in the
- /// destructor. This flag isn't protected by a lock, so make sure
- /// that you don't have multiple threads simultaneously calling
- /// <remove> on the same object, which is a bad idea anyway...
- int removed_;
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_Thread_Mutex &);
- ACE_Thread_Mutex (const ACE_Thread_Mutex &);
-};
-
-#if defined (ACE_USES_OBSOLETE_GUARD_CLASSES)
-/**
- * @class ACE_Thread_Mutex_Guard
- *
- * @brief This data structure is meant to be used within a method or
- * function... It performs automatic aquisition and release of
- * an <ACE_Thread_Mutex>.
- *
- * This class is obsolete and should be replaced by
- * ACE_Guard<ACE_Thread_Mutex>.
- */
-class ACE_Export ACE_Thread_Mutex_Guard
-{
-public:
- /// Implicitly and automatically acquire the lock.
- ACE_Thread_Mutex_Guard (ACE_Thread_Mutex &m, int block = 1);
-
- /// Implicitly release the lock.
- ~ACE_Thread_Mutex_Guard (void);
-
- /// 1 if locked, 0 if couldn't acquire the lock (errno will contain
- /// the reason for this).
- int locked (void);
-
- /**
- * Explicitly release the lock. Note that only one thread should
- * call this method since it doesn't protect against race
- * conditions.
- */
- int remove (void);
-
- /// Explicitly acquire the lock.
- int acquire (void);
-
- /**
- * Conditionally acquire the lock (i.e., won't block). Returns -1
- * on failure. If we "failed" because someone else already had the
- * lock, <errno> is set to <EBUSY>.
- */
- int tryacquire (void);
-
- /// Explicitly release the lock.
- int release (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Reference to the mutex.
- ACE_Thread_Mutex &lock_;
-
- /// Keeps track of whether we acquired the lock or failed.
- int owner_;
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_Thread_Mutex_Guard &);
- ACE_Thread_Mutex_Guard (const ACE_Thread_Mutex_Guard &);
-};
-#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */
-
-class ACE_Export ACE_Condition_Attributes
-{
-public:
- /// Constructor
- ACE_Condition_Attributes (int type = ACE_DEFAULT_SYNCH_TYPE);
-
- /// Destructor
- ~ACE_Condition_Attributes (void);
-
-private:
- friend class ACE_Condition_Thread_Mutex;
-
- /// The attributes
- ACE_condattr_t attributes_;
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_Condition_Attributes &);
- ACE_Condition_Attributes (const ACE_Condition_Attributes &);
-};
-
-/**
- * @class ACE_Condition_Thread_Mutex
- *
- * @brief ACE_Condition variable wrapper written using ACE_Mutexes This
- * allows threads to block until shared data changes state.
- * A condition variable enables threads to atomically block and
- * test the condition under the protection of a mutual exclu-
- * sion lock (mutex) until the condition is satisfied. That is,
- * the mutex must have been held by the thread before calling
- * wait or signal on the condition. If the condition is false,
- * a thread blocks on a condition variable and atomically
- * releases the mutex that is waiting for the condition to
- * change. If another thread changes the condition, it may wake
- * up waiting threads by signaling the associated condition
- * variable. The waiting threads, upon awakening, reacquire the
- * mutex and re-evaluate the condition.
- *
- * This should be an instantiation of ACE_Condition but problems
- * with compilers precludes this...
- */
-class ACE_Export ACE_Condition_Thread_Mutex
-{
-public:
- /// Initialize the condition variable.
- ACE_Condition_Thread_Mutex (const ACE_Thread_Mutex &m,
- const ACE_TCHAR *name = 0,
- void *arg = 0);
-
- /// Initialize the condition variable.
- ACE_Condition_Thread_Mutex (const ACE_Thread_Mutex &m,
- ACE_Condition_Attributes &attributes,
- const ACE_TCHAR *name = 0,
- void *arg = 0);
-
- /// Implicitly destroy the condition variable.
- ~ACE_Condition_Thread_Mutex (void);
-
- /**
- * Explicitly destroy the condition variable. Note that only one
- * thread should call this method since it doesn't protect against
- * race conditions.
- */
- int remove (void);
-
- /**
- * Block on condition, or until absolute time-of-day has passed. If
- * abstime == 0 use "blocking" <wait> semantics. Else, if <abstime>
- * != 0 and the call times out before the condition is signaled
- * <wait> returns -1 and sets errno to ETIME.
- */
- int wait (const ACE_Time_Value *abstime);
-
- /// Block on condition.
- int wait (void);
-
- /**
- * Block on condition or until absolute time-of-day has passed. If
- * abstime == 0 use "blocking" wait() semantics on the <mutex>
- * passed as a parameter (this is useful if you need to store the
- * <Condition> in shared memory). Else, if <abstime> != 0 and the
- * call times out before the condition is signaled <wait> returns -1
- * and sets errno to ETIME.
- */
- int wait (ACE_Thread_Mutex &mutex, const ACE_Time_Value *abstime = 0);
-
- /// Signal one waiting thread.
- int signal (void);
-
- /// Signal *all* waiting threads.
- int broadcast (void);
-
- /// Returns a reference to the underlying mutex;
- ACE_Thread_Mutex &mutex (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Condition variable.
- ACE_cond_t cond_;
-
- /// Reference to mutex lock.
- ACE_Thread_Mutex &mutex_;
-
- /// Keeps track of whether <remove> has been called yet to avoid
- /// multiple <remove> calls, e.g., explicitly and implicitly in the
- /// destructor. This flag isn't protected by a lock, so make sure
- /// that you don't have multiple threads simultaneously calling
- /// <remove> on the same object, which is a bad idea anyway...
- int removed_;
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_Condition_Thread_Mutex &);
- ACE_Condition_Thread_Mutex (const ACE_Condition_Thread_Mutex &);
-};
-
-/**
- * @class ACE_Recursive_Thread_Mutex
- *
- * @brief Implement a C++ wrapper that allows nested acquisition and
- * release of a mutex that occurs in the same thread.
- */
-class ACE_Export ACE_Recursive_Thread_Mutex
-{
-public:
- /// Initialize a recursive mutex.
- ACE_Recursive_Thread_Mutex (const ACE_TCHAR *name = 0,
- ACE_mutexattr_t *arg = 0);
-
- /// Implicitly release a recursive mutex.
- ~ACE_Recursive_Thread_Mutex (void);
-
- /**
- * Implicitly release a recursive mutex. Note that only one thread
- * should call this method since it doesn't protect against race
- * conditions.
- */
- int remove (void);
-
- /**
- * Acquire a recursive mutex (will increment the nesting level and
- * not deadmutex if the owner of the mutex calls this method more
- * than once).
- */
- int acquire (void);
-
- /**
- * Conditionally acquire a recursive mutex (i.e., won't block).
- * Returns -1 on failure. If we "failed" because someone else
- * already had the lock, <errno> is set to <EBUSY>.
- */
- int tryacquire (void);
-
- /**
- * Acquire mutex ownership. This calls <acquire> and is only
- * here to make the <ACE_Recusive_Thread_Mutex> interface consistent
- * with the other synchronization APIs.
- */
- int acquire_read (void);
-
- /**
- * Acquire mutex ownership. This calls <acquire> and is only
- * here to make the <ACE_Recusive_Thread_Mutex> interface consistent
- * with the other synchronization APIs.
- */
- int acquire_write (void);
-
- /**
- * Conditionally acquire mutex (i.e., won't block). This calls
- * <tryacquire> and is only here to make the
- * <ACE_Recusive_Thread_Mutex> interface consistent with the other
- * synchronization APIs. Returns -1 on failure. If we "failed"
- * because someone else already had the lock, <errno> is set to
- * <EBUSY>.
- */
- int tryacquire_read (void);
-
- /**
- * Conditionally acquire mutex (i.e., won't block). This calls
- * <tryacquire> and is only here to make the
- * <ACE_Recusive_Thread_Mutex> interface consistent with the other
- * synchronization APIs. Returns -1 on failure. If we "failed"
- * because someone else already had the lock, <errno> is set to
- * <EBUSY>.
- */
- int tryacquire_write (void);
-
- /**
- * This is only here to make the <ACE_Recursive_Thread_Mutex>
- * interface consistent with the other synchronization APIs.
- * Assumes the caller has already acquired the mutex using one of
- * the above calls, and returns 0 (success) always.
- */
- int tryacquire_write_upgrade (void);
-
- /**
- * Releases a recursive mutex (will not release mutex until all the
- * nesting level drops to 0, which means the mutex is no longer
- * held).
- */
- int release (void);
-
- /// Return the id of the thread that currently owns the mutex.
- ACE_thread_t get_thread_id (void);
-
- /**
- * Return the nesting level of the recursion. When a thread has
- * acquired the mutex for the first time, the nesting level == 1.
- * The nesting level is incremented every time the thread acquires
- * the mutex recursively.
- */
- int get_nesting_level (void);
-
- /// Returns a reference to the recursive mutex;
- ACE_recursive_thread_mutex_t &mutex (void);
-
- /// Returns a reference to the recursive mutex's internal mutex;
- ACE_thread_mutex_t &get_nesting_mutex (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = This method should *not* be public (they hold no locks...)
- void set_thread_id (ACE_thread_t t);
-
- /// Recursive mutex.
- ACE_recursive_thread_mutex_t recursive_mutex_;
-
- /// Keeps track of whether <remove> has been called yet to avoid
- /// multiple <remove> calls, e.g., explicitly and implicitly in the
- /// destructor. This flag isn't protected by a lock, so make sure
- /// that you don't have multiple threads simultaneously calling
- /// <remove> on the same object, which is a bad idea anyway...
- int removed_;
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_Recursive_Thread_Mutex &);
- ACE_Recursive_Thread_Mutex (const ACE_Recursive_Thread_Mutex &);
-};
-
-/**
- * @class ACE_RW_Thread_Mutex
- *
- * @brief Wrapper for readers/writer locks that exist within a process.
- */
-class ACE_Export ACE_RW_Thread_Mutex : public ACE_RW_Mutex
-{
-public:
- ACE_RW_Thread_Mutex (const ACE_TCHAR *name = 0,
- void *arg = 0);
-
- /// Default dtor.
- ~ACE_RW_Thread_Mutex (void);
-
- /**
- * Conditionally upgrade a read lock to a write lock. This only
- * works if there are no other readers present, in which case the
- * method returns 0. Otherwise, the method returns -1 and sets
- * <errno> to <EBUSY>. Note that the caller of this method *must*
- * already possess this lock as a read lock (but this condition is
- * not checked by the current implementation).
- */
- int tryacquire_write_upgrade (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_Thread_Semaphore
- *
- * @brief Wrapper for Dijkstra style general semaphores that work
- * only within one process.
- */
-class ACE_Export ACE_Thread_Semaphore : public ACE_Semaphore
-{
-public:
- /// Initialize the semaphore, with an initial value of <count>,
- /// maximum value of <max>, and unlocked by default.
- ACE_Thread_Semaphore (u_int count = 1, // By default make this unlocked.
- const ACE_TCHAR *name = 0,
- void * = 0,
- int max = 0x7FFFFFFF);
-
- /// Default dtor.
- ~ACE_Thread_Semaphore (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-struct ACE_Export ACE_Sub_Barrier
-{
- // = Initialization.
- ACE_Sub_Barrier (u_int count,
- ACE_Thread_Mutex &lock,
- const ACE_TCHAR *name = 0,
- void *arg = 0);
-
- ~ACE_Sub_Barrier (void);
-
- /// True if this generation of the barrier is done.
- ACE_Condition_Thread_Mutex barrier_finished_;
-
- /// Number of threads that are still running.
- int running_threads_;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-/**
- * @class ACE_Barrier
- *
- * @brief Implements "barrier synchronization".
- *
- * This class allows <count> number of threads to synchronize
- * their completion of (one round of) a task, which is known as
- * "barrier synchronization". After all the threads call <wait()>
- * on the barrier they are all atomically released and can begin a new
- * round.
- *
- * This implementation uses a "sub-barrier generation numbering"
- * scheme to avoid overhead and to ensure that all threads wait to
- * leave the barrier correct. This code is based on an article from
- * SunOpsis Vol. 4, No. 1 by Richard Marejka
- * (Richard.Marejka@canada.sun.com).
- */
-class ACE_Export ACE_Barrier
-{
-public:
- /// Initialize the barrier to synchronize <count> threads.
- ACE_Barrier (u_int count,
- const ACE_TCHAR *name = 0,
- void *arg = 0);
-
- /// Default dtor.
- ~ACE_Barrier (void);
-
- /// Block the caller until all <count> threads have called <wait> and
- /// then allow all the caller threads to continue in parallel.
- int wait (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Serialize access to the barrier state.
- ACE_Thread_Mutex lock_;
-
- /// Either 0 or 1, depending on whether we are the first generation
- /// of waiters or the next generation of waiters.
- int current_generation_;
-
- /// Total number of threads that can be waiting at any one time.
- int count_;
-
- /**
- * We keep two <sub_barriers>, one for the first "generation" of
- * waiters, and one for the next "generation" of waiters. This
- * efficiently solves the problem of what to do if all the first
- * generation waiters don't leave the barrier before one of the
- * threads calls wait() again (i.e., starts up the next generation
- * barrier).
- */
- ACE_Sub_Barrier sub_barrier_1_;
- ACE_Sub_Barrier sub_barrier_2_;
- ACE_Sub_Barrier *sub_barrier_[2];
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_Barrier &);
- ACE_Barrier (const ACE_Barrier &);
-};
-
-#if 0
-// The following two classes are commented out since there doesn't
-// appear to be a portable and robust means of implementing this
-// functionality across platforms. If you know of a portable and
-// robust way to implement this functionality please let us know.
-
-/**
- * @class ACE_Process_Condition
- *
- * @brief ACE_Condition variable wrapper that works across processes.
- */
-class ACE_Export ACE_Process_Condition
-{
-public:
- ACE_Process_Condition (MUTEX &m, const ACE_TCHAR *name = 0, void *arg = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-};
-#endif /* 0 */
-
-#if 0
-/**
- * @class ACE_Process_Barrier
- *
- * @brief Implements "barrier synchronization" using ACE_Process_Mutexes!
- *
- * This class is just a simple wrapper for ACE_Barrier that
- * selects the USYNC_PROCESS variant for the locks.
- */
-class ACE_Export ACE_Process_Barrier : public ACE_Barrier
-{
-public:
- /// Create a Process_Barrier, passing in the optional <name>.
- ACE_Process_Barrier (u_int count, const ACE_TCHAR *name = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-#endif /* 0 */
-
-/**
- * @class ACE_Thread_Barrier
- *
- * @brief Implements "barrier synchronization" using ACE_Thread_Mutexes!
- *
- * This class is just a simple wrapper for ACE_Barrier that
- * selects the USYNC_THREAD variant for the locks.
- */
-class ACE_Export ACE_Thread_Barrier : public ACE_Barrier
-{
-public:
- /// Create a Thread_Barrier, passing in the optional <name>.
- ACE_Thread_Barrier (u_int count, const ACE_TCHAR *name = 0);
-
- /// Default dtor.
- ~ACE_Thread_Barrier (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-#endif /* ACE_HAS_THREADS */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Synch.i"
-#endif /* __ACE_INLINE__ */
-
-// Include the templates here.
-#include "ace/Synch_T.h"
-
-template <class ACE_LOCK>
-class ACE_Guard;
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Guard<ACE_Null_Mutex>
- *
- * @brief Template specialization of <ACE_Guard> for the
- * <ACE_Null_Mutex>.
- *
- * This specialization is useful since it helps to speedup
- * performance of the "Null_Mutex" considerably.
- */
-class ACE_Export ACE_Guard<ACE_Null_Mutex>
-{
-public:
- // = Initialization and termination methods.
- ACE_Guard (ACE_Null_Mutex &) {}
- ACE_Guard (ACE_Null_Mutex &, int) {}
- ACE_Guard (ACE_Null_Mutex &, int, int) {}
-#if defined (ACE_WIN32)
- ~ACE_Guard (void) {}
-#endif /* ACE_WIN32 */
-
- int acquire (void) { return 0; }
- int tryacquire (void) { return 0; }
- int release (void) { return 0; }
- void disown (void) {}
- int locked (void) { return 1; }
- int remove (void) { return 0; }
- void dump (void) const {}
-
-private:
- // = Prevent assignment and initialization.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Guard<ACE_Null_Mutex> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Guard (const ACE_Guard<ACE_Null_Mutex> &))
-};
-
-template <class ACE_LOCK>
-class ACE_Write_Guard;
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Write_Guard<ACE_Null_Mutex>
- *
- */
-class ACE_Export ACE_Write_Guard<ACE_Null_Mutex> : public ACE_Guard<ACE_Null_Mutex>
-{
-public:
- ACE_Write_Guard (ACE_Null_Mutex &m)
- : ACE_Guard<ACE_Null_Mutex> (m) {}
- ACE_Write_Guard (ACE_Null_Mutex &m, int blocked)
- : ACE_Guard<ACE_Null_Mutex> (m, blocked) {}
-
- int acquire_write (void) { return 0; }
- int acquire (void) { return 0; }
- int tryacquire_write (void) { return 0; }
- int tryacquire (void) { return 0; }
- void dump (void) const {}
-};
-
-template <class ACE_LOCK>
-class ACE_Read_Guard;
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Read_Guard<ACE_Null_Mutex>
- *
- */
-class ACE_Export ACE_Read_Guard<ACE_Null_Mutex> : public ACE_Guard<ACE_Null_Mutex>
-{
-public:
- ACE_Read_Guard (ACE_Null_Mutex &m)
- : ACE_Guard<ACE_Null_Mutex> (m) {}
- ACE_Read_Guard (ACE_Null_Mutex &m, int blocked)
- : ACE_Guard<ACE_Null_Mutex> (m, blocked) {}
-
- int acquire_read (void) { return 0; }
- int acquire (void) { return 0; }
- int tryacquire_read (void) { return 0; }
- int tryacquire (void) { return 0; }
- void dump (void) const {}
-};
-
-#if defined (ACE_HAS_THREADS)
-
-template <class ACE_LOCK>
-class ACE_Condition;
-
-ACE_TEMPLATE_SPECIALIZATION
-/**
- * @class ACE_Condition<ACE_Recursive_Thread_Mutex>
- *
- * @brief ACE_Condition template specialization written using
- * @a ACE_Recursive_Thread_Mutex. This allows threads to block until
- * shared data changes state using recursive mutexes.
- */
-class ACE_Export ACE_Condition<ACE_Recursive_Thread_Mutex>
-{
-public:
- /// Initialize the condition variable with a recursive mutex.
- ACE_Condition (ACE_Recursive_Thread_Mutex &m);
-
- /// Implicitly destroy the condition variable.
- ~ACE_Condition (void);
-
- /**
- * Explicitly destroy the condition variable. Note that only one
- * thread should call this method since it doesn't protect against
- * race conditions.
- */
- int remove (void);
-
- /**
- * Block on condition, or until absolute time-of-day has passed. If
- * abstime == 0 use "blocking" <wait> semantics. Else, if <abstime>
- * != 0 and the call times out before the condition is signaled
- * <wait> returns -1 and sets errno to ETIME.
- */
- int wait (const ACE_Time_Value *abstime = 0);
-
- /**
- * Block on condition or until absolute time-of-day has passed. If
- * abstime == 0 use "blocking" wait() semantics on the recursive @a mutex
- * passed as a parameter (this is useful if you need to store the
- * <Condition> in shared memory). Else, if <abstime> != 0 and the
- * call times out before the condition is signaled <wait> returns -1
- * and sets errno to ETIME.
- */
- int wait (ACE_Recursive_Thread_Mutex &mutex,
- const ACE_Time_Value *abstime = 0);
-
- /// Signal one waiting thread.
- int signal (void);
-
- /// Signal *all* waiting threads.
- int broadcast (void);
-
- /// Returns a reference to the underlying mutex;
- ACE_Recursive_Thread_Mutex &mutex (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
-private:
- /// A normal (i.e., non-recursive) condition variable.
- ACE_cond_t cond_;
-
- /// Reference to the recursive mutex.
- ACE_Recursive_Thread_Mutex &mutex_;
-
- // = Prevent assignment and initialization.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Condition<ACE_Recursive_Thread_Mutex> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Condition (const ACE_Condition<ACE_Recursive_Thread_Mutex> &))
-};
-
-class ACE_Export ACE_Condition_Recursive_Thread_Mutex
- : public ACE_Condition<ACE_Recursive_Thread_Mutex>
-{
-public:
- /// Initialize the condition variable with a recursive mutex.
- ACE_Condition_Recursive_Thread_Mutex (ACE_Recursive_Thread_Mutex &m):
- ACE_Condition<ACE_Recursive_Thread_Mutex> (m) {}
-};
-#endif /* ACE_HAS_THREADS */
-
-#if defined (ACE_LEGACY_MODE)
-# include "ace/File_Lock.h"
-# include "ace/Process_Semaphore.h"
-# include "ace/Process_Mutex.h"
-# include "ace/RW_Process_Mutex.h"
-# include "ace/Test_and_Set.h"
-#endif /* ACE_LEGACY_MODE */
-
-#include "ace/post.h"
-#endif /* ACE_SYNCH_H */
diff --git a/ace/Synch.i b/ace/Synch.i
deleted file mode 100644
index 6162ff77333..00000000000
--- a/ace/Synch.i
+++ /dev/null
@@ -1,1002 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_Lock::ACE_Lock (void)
-{
-}
-
-ACE_INLINE const ACE_rwlock_t &
-ACE_RW_Mutex::lock (void) const
-{
-// ACE_TRACE ("ACE_RW_Mutex::lock");
- return this->lock_;
-}
-
-ACE_INLINE int
-ACE_RW_Mutex::remove (void)
-{
-// ACE_TRACE ("ACE_RW_Mutex::remove");
- int result = 0;
- if (this->removed_ == 0)
- {
- this->removed_ = 1;
- result = ACE_OS::rwlock_destroy (&this->lock_);
- }
- return result;
-}
-
-ACE_INLINE int
-ACE_RW_Mutex::acquire_read (void)
-{
-// ACE_TRACE ("ACE_RW_Mutex::acquire_read");
- return ACE_OS::rw_rdlock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_RW_Mutex::acquire_write (void)
-{
-// ACE_TRACE ("ACE_RW_Mutex::acquire_write");
- return ACE_OS::rw_wrlock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_RW_Mutex::acquire (void)
-{
-// ACE_TRACE ("ACE_RW_Mutex::acquire");
- return ACE_OS::rw_wrlock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_RW_Mutex::tryacquire_read (void)
-{
-// ACE_TRACE ("ACE_RW_Mutex::tryacquire_read");
- return ACE_OS::rw_tryrdlock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_RW_Mutex::tryacquire_write (void)
-{
-// ACE_TRACE ("ACE_RW_Mutex::tryacquire_write");
- return ACE_OS::rw_trywrlock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_RW_Mutex::tryacquire_write_upgrade (void)
-{
-// ACE_TRACE ("ACE_RW_Mutex::tryacquire_write_upgrade");
- return ACE_OS::rw_trywrlock_upgrade (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_RW_Mutex::tryacquire (void)
-{
-// ACE_TRACE ("ACE_RW_Mutex::tryacquire");
- return this->tryacquire_write ();
-}
-
-ACE_INLINE int
-ACE_RW_Mutex::release (void)
-{
-// ACE_TRACE ("ACE_RW_Mutex::release");
- return ACE_OS::rw_unlock (&this->lock_);
-}
-
-#if defined (ACE_HAS_THREADS)
-ACE_INLINE int
-ACE_RW_Thread_Mutex::tryacquire_write_upgrade (void)
-{
-// ACE_TRACE ("ACE_RW_Thread_Mutex::tryacquire_write_upgrade");
- return ACE_OS::rw_trywrlock_upgrade (&this->lock_);
-}
-#endif /* ACE_HAS_THREADS */
-
-ACE_INLINE int
-ACE_Mutex::acquire_read (void)
-{
-// ACE_TRACE ("ACE_Mutex::acquire_read");
-#if defined (CHORUS)
- if (this->process_lock_)
- return ACE_OS::mutex_lock (this->process_lock_);
-#endif /* CHORUS */
- return ACE_OS::mutex_lock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_Mutex::acquire_write (void)
-{
-// ACE_TRACE ("ACE_Mutex::acquire_write");
-#if defined (CHORUS)
- if (this->process_lock_)
- return ACE_OS::mutex_lock (this->process_lock_);
-#endif /* CHORUS */
- return ACE_OS::mutex_lock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_Mutex::tryacquire_read (void)
-{
-// ACE_TRACE ("ACE_Mutex::tryacquire_read");
-#if defined (CHORUS)
- if (this->process_lock_)
- return ACE_OS::mutex_trylock (this->process_lock_);
-#endif /* CHORUS */
- return ACE_OS::mutex_trylock (&this->lock_);
-}
-
-ACE_INLINE const ACE_mutex_t &
-ACE_Mutex::lock (void) const
-{
-// ACE_TRACE ("ACE_Mutex::lock");
-#if defined (CHORUS)
- if (this->process_lock_)
- return *this->process_lock_;
-#endif /* CHORUS */
- return this->lock_;
-}
-
-ACE_INLINE int
-ACE_Mutex::tryacquire_write (void)
-{
-// ACE_TRACE ("ACE_Mutex::tryacquire_write");
-#if defined (CHORUS)
- if (this->process_lock_)
- return ACE_OS::mutex_trylock (this->process_lock_);
-#endif /* CHORUS */
- return ACE_OS::mutex_trylock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_Mutex::tryacquire_write_upgrade (void)
-{
-// ACE_TRACE ("ACE_Mutex::tryacquire_write_upgrade");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Mutex::acquire (void)
-{
-// ACE_TRACE ("ACE_Mutex::acquire");
-#if defined (CHORUS)
- if (this->process_lock_)
- return ACE_OS::mutex_lock (this->process_lock_);
-#endif /* CHORUS */
- return ACE_OS::mutex_lock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_Mutex::acquire (ACE_Time_Value &tv)
-{
- // ACE_TRACE ("ACE_Mutex::acquire");
- return ACE_OS::mutex_lock (&this->lock_, tv);
-}
-
-ACE_INLINE int
-ACE_Mutex::acquire (ACE_Time_Value *tv)
-{
- // ACE_TRACE ("ACE_Mutex::acquire");
- return ACE_OS::mutex_lock (&this->lock_, tv);
-}
-
-ACE_INLINE int
-ACE_Mutex::tryacquire (void)
-{
-// ACE_TRACE ("ACE_Mutex::tryacquire");
-#if defined (CHORUS)
- if (this->process_lock_)
- return ACE_OS::mutex_trylock (this->process_lock_);
-#endif /* CHORUS */
- return ACE_OS::mutex_trylock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_Mutex::release (void)
-{
-// ACE_TRACE ("ACE_Mutex::release");
-#if defined (CHORUS)
- if (this->process_lock_)
- return ACE_OS::mutex_unlock (this->process_lock_);
-#endif /* CHORUS */
- return ACE_OS::mutex_unlock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_Mutex::remove (void)
-{
-// ACE_TRACE ("ACE_Mutex::remove");
-#if defined (CHORUS) || defined (ACE_HAS_PTHREADS) || defined (ACE_HAS_STHREADS)
- int result = 0;
- // In the case of a interprocess mutex, the owner is the first
- // process that created the shared memory object. In this case, the
- // lockname_ pointer will be non-zero (points to allocated memory
- // for the name). Owner or not, the memory needs to be unmapped
- // from the process. If we are the owner, the file used for
- // shm_open needs to be deleted as well.
- if (this->process_lock_)
- {
- if (this->removed_ == 0)
- {
- this->removed_ = 1;
-
- // Only destroy the lock if we're the ones who initialized
- // it.
- if (!this->lockname_)
- ACE_OS::munmap ((void *) this->process_lock_,
- sizeof (ACE_mutex_t));
- else
- {
- result = ACE_OS::mutex_destroy (this->process_lock_);
- ACE_OS::munmap ((void *) this->process_lock_,
- sizeof (ACE_mutex_t));
- ACE_OS::shm_unlink (this->lockname_);
- ACE_OS::free (ACE_static_cast (void *,
- ACE_const_cast (ACE_TCHAR *,
- this->lockname_)));
- }
- }
- }
- return result;
-#else /* !CHORUS */
- int result = 0;
- if (this->removed_ == 0)
- {
- this->removed_ = 1;
- result = ACE_OS::mutex_destroy (&this->lock_);
- }
- return result;
-#endif /* CHORUS */
-}
-
-ACE_INLINE const ACE_sema_t &
-ACE_Semaphore::lock (void) const
-{
-// ACE_TRACE ("ACE_Semaphore::lock");
- return this->semaphore_;
-}
-
-ACE_INLINE int
-ACE_Semaphore::remove (void)
-{
-// ACE_TRACE ("ACE_Semaphore::remove");
- int result = 0;
- if (this->removed_ == 0)
- {
- this->removed_ = 1;
- result = ACE_OS::sema_destroy (&this->semaphore_);
- }
- return result;
-}
-
-ACE_INLINE int
-ACE_Semaphore::acquire (void)
-{
-// ACE_TRACE ("ACE_Semaphore::acquire");
- return ACE_OS::sema_wait (&this->semaphore_);
-}
-
-ACE_INLINE int
-ACE_Semaphore::acquire (ACE_Time_Value &tv)
-{
-// ACE_TRACE ("ACE_Semaphore::acquire");
- return ACE_OS::sema_wait (&this->semaphore_, tv);
-}
-
-ACE_INLINE int
-ACE_Semaphore::acquire (ACE_Time_Value *tv)
-{
-// ACE_TRACE ("ACE_Semaphore::acquire");
- return ACE_OS::sema_wait (&this->semaphore_, tv);
-}
-
-ACE_INLINE int
-ACE_Semaphore::tryacquire (void)
-{
-// ACE_TRACE ("ACE_Semaphore::tryacquire");
- return ACE_OS::sema_trywait (&this->semaphore_);
-}
-
-ACE_INLINE int
-ACE_Semaphore::release (void)
-{
-// ACE_TRACE ("ACE_Semaphore::release");
- return ACE_OS::sema_post (&this->semaphore_);
-}
-
-ACE_INLINE int
-ACE_Semaphore::release (u_int release_count)
-{
-// ACE_TRACE ("ACE_Semaphore::release");
- return ACE_OS::sema_post (&this->semaphore_, release_count);
-}
-
-// Acquire semaphore ownership. This calls <acquire> and is only
-// here to make the <ACE_Semaphore> interface consistent with the
-// other synchronization APIs.
-
-ACE_INLINE int
-ACE_Semaphore::acquire_read (void)
-{
- return this->acquire ();
-}
-
-// Acquire semaphore ownership. This calls <acquire> and is only
-// here to make the <ACE_Semaphore> interface consistent with the
-// other synchronization APIs.
-
-ACE_INLINE int
-ACE_Semaphore::acquire_write (void)
-{
- return this->acquire ();
-}
-
-// Conditionally acquire semaphore (i.e., won't block). This calls
-// <tryacquire> and is only here to make the <ACE_Semaphore>
-// interface consistent with the other synchronization APIs.
-
-ACE_INLINE int
-ACE_Semaphore::tryacquire_read (void)
-{
- return this->tryacquire ();
-}
-
-// Conditionally acquire semaphore (i.e., won't block). This calls
-// <tryacquire> and is only here to make the <ACE_Semaphore>
-// interface consistent with the other synchronization APIs.
-
-ACE_INLINE int
-ACE_Semaphore::tryacquire_write (void)
-{
- return this->tryacquire ();
-}
-
-// This is only here to make the <ACE_Semaphore> interface consistent
-// with the other synchronization APIs. Assumes the caller has
-// already acquired the semaphore using one of the above calls, and
-// returns 0 (success) always.
-ACE_INLINE int
-ACE_Semaphore::tryacquire_write_upgrade (void)
-{
- return 0;
-}
-
-// Null ACE_Semaphore implementation
-
-ACE_INLINE
-ACE_Null_Semaphore::ACE_Null_Semaphore (u_int,
- int,
- const ACE_TCHAR *,
- void *,
- int)
-{
-}
-
-ACE_INLINE
-ACE_Null_Semaphore::~ACE_Null_Semaphore (void)
-{
-}
-
-ACE_INLINE int
-ACE_Null_Semaphore::remove (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Semaphore::acquire (ACE_Time_Value &)
-{
- errno = ETIME;
- return -1;
-}
-
-ACE_INLINE int
-ACE_Null_Semaphore::acquire (ACE_Time_Value *)
-{
- errno = ETIME;
- return -1;
-}
-
-ACE_INLINE int
-ACE_Null_Semaphore::acquire (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Semaphore::tryacquire (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Semaphore::release (size_t)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Semaphore::release (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Semaphore::acquire_write (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Semaphore::tryacquire_write (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Semaphore::tryacquire_write_upgrade (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Semaphore::acquire_read (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Semaphore::tryacquire_read (void)
-{
- return 0;
-}
-
-ACE_INLINE void
-ACE_Null_Semaphore::dump (void) const
-{
-}
-
-#if defined (ACE_HAS_THREADS)
-
-ACE_INLINE const ACE_thread_mutex_t &
-ACE_Thread_Mutex::lock (void) const
-{
-// ACE_TRACE ("ACE_Thread_Mutex::lock");
- return this->lock_;
-}
-
-ACE_INLINE int
-ACE_Thread_Mutex::acquire_read (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex::acquire_read");
- return ACE_OS::thread_mutex_lock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_Thread_Mutex::acquire_write (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex::acquire_write");
- return ACE_OS::thread_mutex_lock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_Thread_Mutex::tryacquire_read (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex::tryacquire_read");
- return ACE_OS::thread_mutex_trylock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_Thread_Mutex::tryacquire_write (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex::tryacquire_write");
- return ACE_OS::thread_mutex_trylock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_Thread_Mutex::tryacquire_write_upgrade (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex::tryacquire_write_upgrade");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Thread_Mutex::acquire (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex::acquire");
- return ACE_OS::thread_mutex_lock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_Thread_Mutex::acquire (ACE_Time_Value &tv)
-{
- // ACE_TRACE ("ACE_Thread_Mutex::acquire");
- return ACE_OS::thread_mutex_lock (&this->lock_, tv);
-}
-
-ACE_INLINE int
-ACE_Thread_Mutex::acquire (ACE_Time_Value *tv)
-{
- // ACE_TRACE ("ACE_Thread_Mutex::acquire");
- return ACE_OS::thread_mutex_lock (&this->lock_, tv);
-}
-
-ACE_INLINE int
-ACE_Thread_Mutex::tryacquire (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex::tryacquire");
- return ACE_OS::thread_mutex_trylock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_Thread_Mutex::release (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex::release");
- return ACE_OS::thread_mutex_unlock (&this->lock_);
-}
-
-ACE_INLINE int
-ACE_Thread_Mutex::remove (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex::remove");
- int result = 0;
- if (this->removed_ == 0)
- {
- this->removed_ = 1;
- result = ACE_OS::thread_mutex_destroy (&this->lock_);
- }
- return result;
-}
-
-#if defined (ACE_USES_OBSOLETE_GUARD_CLASSES)
-ACE_INLINE int
-ACE_Thread_Mutex_Guard::locked (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex_Guard::locked");
- return this->owner_ != -1;
-}
-
-// Explicitly acquire the lock.
-
-ACE_INLINE int
-ACE_Thread_Mutex_Guard::acquire (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex_Guard::acquire");
- return this->owner_ = this->lock_.acquire ();
-}
-
-// Conditionally acquire the lock (i.e., won't block).
-
-ACE_INLINE int
-ACE_Thread_Mutex_Guard::tryacquire (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex_Guard::tryacquire");
- return this->owner_ = this->lock_.tryacquire ();
-}
-
-// Implicitly and automatically acquire the lock.
-
-ACE_INLINE
-ACE_Thread_Mutex_Guard::ACE_Thread_Mutex_Guard (ACE_Thread_Mutex &m,
- int block)
- : lock_ (m)
-{
-// ACE_TRACE ("ACE_Thread_Mutex_Guard::ACE_Thread_Mutex_Guard");
- if (block)
- this->acquire ();
- else
- this->tryacquire ();
-}
-
-// Explicitly release the lock.
-
-ACE_INLINE int
-ACE_Thread_Mutex_Guard::release (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex_Guard::release");
- if (this->owner_ != -1)
- {
- this->owner_ = -1;
- return this->lock_.release ();
- }
- else
- return 0;
-}
-
-// Implicitly release the lock.
-
-ACE_INLINE
-ACE_Thread_Mutex_Guard::~ACE_Thread_Mutex_Guard (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex_Guard::~ACE_Thread_Mutex_Guard");
- this->release ();
-}
-
-// Explicitly release the lock.
-
-ACE_INLINE int
-ACE_Thread_Mutex_Guard::remove (void)
-{
-// ACE_TRACE ("ACE_Thread_Mutex_Guard::remove");
- this->owner_ = -1;
- return this->release ();
-}
-#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */
-
-ACE_INLINE
-ACE_Condition_Attributes::ACE_Condition_Attributes (int type)
-{
- (void) ACE_OS::condattr_init (this->attributes_, type);
-}
-
-ACE_INLINE
-ACE_Condition_Attributes::~ACE_Condition_Attributes (void)
-{
- ACE_OS::condattr_destroy (this->attributes_);
-}
-
-ACE_INLINE int
-ACE_Condition_Thread_Mutex::remove (void)
-{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::remove");
-
- // <cond_destroy> is called in a loop if the condition variable is
- // BUSY. This avoids a condition where a condition is signaled and
- // because of some timing problem, the thread that is to be signaled
- // has called the cond_wait routine after the signal call. Since
- // the condition signal is not queued in any way, deadlock occurs.
-
- int result = 0;
-
- if (this->removed_ == 0)
- {
- this->removed_ = 1;
-
- while ((result = ACE_OS::cond_destroy (&this->cond_)) == -1
- && errno == EBUSY)
- {
- ACE_OS::cond_broadcast (&this->cond_);
- ACE_OS::thr_yield ();
- }
- }
- return result;
-}
-
-ACE_INLINE ACE_Thread_Mutex &
-ACE_Condition_Thread_Mutex::mutex (void)
-{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::mutex");
- return this->mutex_;
-}
-
-ACE_INLINE ACE_recursive_thread_mutex_t &
-ACE_Recursive_Thread_Mutex::mutex (void)
-{
- return recursive_mutex_;
-}
-
-ACE_INLINE ACE_thread_mutex_t &
-ACE_Recursive_Thread_Mutex::get_nesting_mutex (void)
-{
-#if defined (ACE_HAS_RECURSIVE_MUTEXES)
- return ACE_static_cast (ACE_thread_mutex_t &,
- recursive_mutex_);
-#else
- return recursive_mutex_.nesting_mutex_;
-#endif /* ACE_HAS_RECURSIVE_MUTEXES */
-}
-
-ACE_INLINE void
-ACE_Recursive_Thread_Mutex::set_thread_id (ACE_thread_t t)
-{
-// ACE_TRACE ("ACE_Recursive_Thread_Mutex::set_thread_id");
-#if defined (ACE_HAS_RECURSIVE_MUTEXES)
- ACE_UNUSED_ARG (t);
-#else /* ! ACE_HAS_RECURSIVE_MUTEXES */
- this->recursive_mutex_.owner_id_ = t;
-#endif /* ! ACE_HAS_RECURSIVE_MUTEXES */
-}
-
-ACE_INLINE int
-ACE_Recursive_Thread_Mutex::acquire_read (void)
-{
- return this->acquire ();
-}
-
-ACE_INLINE int
-ACE_Recursive_Thread_Mutex::acquire_write (void)
-{
- return this->acquire ();
-}
-
-ACE_INLINE int
-ACE_Recursive_Thread_Mutex::tryacquire_read (void)
-{
- return this->tryacquire ();
-}
-
-ACE_INLINE int
-ACE_Recursive_Thread_Mutex::tryacquire_write (void)
-{
- return this->tryacquire ();
-}
-
-ACE_INLINE int
-ACE_Recursive_Thread_Mutex::tryacquire_write_upgrade (void)
-{
- return 0;
-}
-
-#endif /* ACE_HAS_THREADS */
-
-ACE_INLINE
-ACE_Null_Barrier::ACE_Null_Barrier (u_int,
- const char *,
- void *)
-{
-}
-
-ACE_INLINE
-ACE_Null_Barrier::~ACE_Null_Barrier (void)
-{
-}
-
-ACE_INLINE int
-ACE_Null_Barrier::wait (void)
-{
- return 0;
-}
-
-ACE_INLINE void
-ACE_Null_Barrier::dump (void) const
-{
-}
-
-ACE_INLINE
-ACE_Null_Mutex::ACE_Null_Mutex (const ACE_TCHAR *)
- : lock_ (0)
-{
-}
-
-ACE_INLINE
-ACE_Null_Mutex::~ACE_Null_Mutex (void)
-{
-}
-
-ACE_INLINE int
-ACE_Null_Mutex::remove (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex::acquire (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex::acquire (ACE_Time_Value &)
-{
- errno = ETIME;
- return -1;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex::acquire (ACE_Time_Value *)
-{
- errno = ETIME;
- return -1;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex::tryacquire (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex::release (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex::acquire_write (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex::tryacquire_write (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex::tryacquire_write_upgrade (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex::acquire_read (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex::tryacquire_read (void)
-{
- return 0;
-}
-
-ACE_INLINE void
-ACE_Null_Mutex::dump (void) const
-{
-}
-
-ACE_INLINE int
-ACE_Noop_Token::queueing_strategy (void)
-{
- return -1;
-}
-
-ACE_INLINE void
-ACE_Noop_Token::queueing_strategy (int /* queueing_strategy */)
-{
-}
-
-ACE_INLINE int
-ACE_Noop_Token::renew (int, ACE_Time_Value *)
-{
- return 0;
-}
-
-ACE_INLINE void
-ACE_Noop_Token::dump (void) const
-{
-}
-
-
-ACE_INLINE
-ACE_Null_Condition::ACE_Null_Condition (const ACE_Null_Mutex &m,
- const ACE_TCHAR *,
- void*)
- : mutex_ ((ACE_Null_Mutex &) m)
-{
-}
-
-ACE_INLINE ACE_Null_Condition::~ACE_Null_Condition (void)
-{
-}
-
-ACE_INLINE int ACE_Null_Condition::remove (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Condition::wait (const ACE_Time_Value *)
-{
- errno = ETIME;
- return -1;
-}
-
-ACE_INLINE int
-ACE_Null_Condition::wait (ACE_Null_Mutex &,
- const ACE_Time_Value *)
-{
- errno = ETIME;
- return -1;
-}
-
-ACE_INLINE int
-ACE_Null_Condition::signal (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Condition::broadcast (void)
-{
- return 0;
-}
-
-ACE_INLINE ACE_Null_Mutex &
-ACE_Null_Condition::mutex (void)
-{
- return this->mutex_;
-}
-
-ACE_INLINE void
-ACE_Null_Condition::dump (void) const
-{
-}
-
-#if defined (ACE_USES_OBSOLETE_GUARD_CLASSES)
-ACE_INLINE
-ACE_Null_Mutex_Guard::ACE_Null_Mutex_Guard (ACE_Null_Mutex &)
-{
-}
-
-ACE_INLINE
-ACE_Null_Mutex_Guard::~ACE_Null_Mutex_Guard (void)
-{
-}
-
-ACE_INLINE int
-ACE_Null_Mutex_Guard::remove (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex_Guard::locked (void)
-{
- return 1;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex_Guard::acquire (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex_Guard::tryacquire (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_Null_Mutex_Guard::release (void)
-{
- return 0;
-}
-
-ACE_INLINE void
-ACE_Null_Mutex_Guard::dump (void) const
-{
-}
-#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */
-
-ACE_INLINE
-ACE_TSS_Adapter::~ACE_TSS_Adapter (void)
-{
-}
-
-ACE_INLINE
-ACE_Manual_Event::~ACE_Manual_Event (void)
-{
-}
-
-ACE_INLINE
-ACE_Auto_Event::~ACE_Auto_Event (void)
-{
-}
-
-#if defined (ACE_HAS_THREADS)
-ACE_INLINE
-ACE_RW_Thread_Mutex::~ACE_RW_Thread_Mutex (void)
-{
-}
-
-ACE_INLINE
-ACE_Thread_Semaphore::~ACE_Thread_Semaphore (void)
-{
-}
-
-ACE_INLINE
-ACE_Sub_Barrier::~ACE_Sub_Barrier (void)
-{
-}
-
-ACE_INLINE
-ACE_Barrier::~ACE_Barrier (void)
-{
-}
-
-ACE_INLINE
-ACE_Thread_Barrier::~ACE_Thread_Barrier (void)
-{
-}
-#endif /* ACE_HAS_THREADS */
diff --git a/ace/Synch_Options.cpp b/ace/Synch_Options.cpp
deleted file mode 100644
index 0c7a1ba1951..00000000000
--- a/ace/Synch_Options.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-#include "ace/Synch_Options.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Synch_Options.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Trace.h"
-
-ACE_RCSID (ace,
- Synch_Options,
- "$Id$")
-
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Synch_Options)
-
-void
-ACE_Synch_Options::dump (void) const
-{
- ACE_TRACE ("ACE_Synch_Options::dump");
-}
-
-// Static initialization.
-// Note: these three objects require static construction and destruction.
-
-/* static */
-ACE_Synch_Options ACE_Synch_Options::defaults;
-
-/* static */
-ACE_Synch_Options ACE_Synch_Options::synch;
-
-/* static */
-ACE_Synch_Options ACE_Synch_Options::asynch (ACE_Synch_Options::USE_REACTOR);
-
-ACE_Synch_Options::ACE_Synch_Options (unsigned long options,
- const ACE_Time_Value &timeout,
- const void *arg)
-{
- // ACE_TRACE ("ACE_Synch_Options::ACE_Synch_Options");
- this->set (options, timeout, arg);
-}
-
-void
-ACE_Synch_Options::set (unsigned long options,
- const ACE_Time_Value &timeout,
- const void *arg)
-{
- // ACE_TRACE ("ACE_Synch_Options::set");
- this->options_ = options;
- this->timeout_ = (ACE_Time_Value &) timeout;
-
- // Whoa, possible dependence on static initialization here. This
- // function is called during initialization of the statics above.
- // But, ACE_Time_Value::zero is a static object. Very fortunately,
- // its bits have a value of 0.
- if (this->timeout_ != ACE_Time_Value::zero)
- ACE_SET_BITS (this->options_, ACE_Synch_Options::USE_TIMEOUT);
-
- this->arg_ = arg;
-}
-
-int
-ACE_Synch_Options::operator[] (unsigned long option) const
-{
- ACE_TRACE ("ACE_Synch_Options::operator[]");
- return (this->options_ & option) != 0;
-}
-
-void
-ACE_Synch_Options::operator= (unsigned long option)
-{
- ACE_TRACE ("ACE_Synch_Options::operator=");
- this->options_ |= option;
-}
-
-const ACE_Time_Value &
-ACE_Synch_Options::timeout (void) const
-{
- ACE_TRACE ("ACE_Synch_Options::timeout");
- return this->timeout_;
-}
-
-void
-ACE_Synch_Options::timeout (const ACE_Time_Value &tv)
-{
- ACE_TRACE ("ACE_Synch_Options::timeout");
- this->timeout_ = tv;
-}
-
-const ACE_Time_Value *
-ACE_Synch_Options::time_value (void) const
-{
- ACE_TRACE ("ACE_Synch_Options::time_value");
- return (*this)[USE_TIMEOUT] ? &this->timeout_ : 0;
-}
-
-const void *
-ACE_Synch_Options::arg (void) const
-{
- ACE_TRACE ("ACE_Synch_Options::arg");
- return this->arg_;
-}
-
-void
-ACE_Synch_Options::arg (const void *a)
-{
- ACE_TRACE ("ACE_Synch_Options::arg");
- this->arg_ = a;
-}
diff --git a/ace/Synch_Options.h b/ace/Synch_Options.h
deleted file mode 100644
index 858f0ccebe3..00000000000
--- a/ace/Synch_Options.h
+++ /dev/null
@@ -1,158 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Synch_Options.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@uci.edu>
- */
-//==========================================================================
-
-#ifndef ACE_SYNCH_OPTIONS_H
-#define ACE_SYNCH_OPTIONS_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Time_Value.h"
-
-
-/**
- * @class ACE_Synch_Options
- *
- * @brief Contains the values of options used to determine the
- * synchronous and asynchronous behavior.
- *
- * Values support the following behavior (TV == "timeout"
- * and UR == "use ACE_Reactor"):
- *
- * <CODE>
- * | Parameters | Description
- * |
- * |TV | UR |
- * |-----|----------|-------------------------------
- * | |
- * |NULL | yes | infinite timeout (using ACE_Reactor)
- * | |
- * |time | yes | try asynch transaction for
- * | | the specified time (using ACE_Reactor)
- * | |
- * |0,0 | yes | poll; try, if EWOULDBLOCK,
- * | | then return immediately
- * | | (using ACE_Reactor)
- * | |
- * |NULL | no | block forever (don't use ACE_Reactor)
- * | |
- * |time | no | do a blocking transaction
- * | | for the specified time
- * | | (don't use ACE_Reactor)
- * | |
- * |0,0 | no | poll; but do not initiate a
- * | | nonblocking transaction
- * | | (don't use ACE_Reactor)
- * </CODE>
- */
-class ACE_Export ACE_Synch_Options
-{
-public:
- /// Options flags for controlling synchronization.
- /**
- * Note that these flags can be bit-wise "or'd" together if both
- * options are desired.
- */
- enum
- {
- /// Use the Reactor.
- USE_REACTOR = 01,
- /// Interprete the Time_Value.
- USE_TIMEOUT = 02
- };
-
- // = Initialization methods.
- /// Initialize the Synch_Options based on parameters.
- ACE_Synch_Options (unsigned long options = 0,
- const ACE_Time_Value &timeout = ACE_Time_Value::zero,
- const void *arg = 0);
-
- /// Default dtor.
- ~ACE_Synch_Options (void);
-
- /// Initialize the Synch_Options based on parameters.
- void set (unsigned long options = 0,
- const ACE_Time_Value &timeout = ACE_Time_Value::zero,
- const void *arg = 0);
-
- /// Get method for determining which options are enabled.
- int operator[] (unsigned long option) const;
-
- /// Set method for enabling certain options.
- void operator= (unsigned long option);
-
- /// Returns the "magic cookie" argument.
- const void *arg (void) const;
-
- /// Set the "magic cookie" argument.
- void arg (const void *);
-
- /// Returns a reference to the <Time_Value>. This value only makes
- /// sense if (*this)[USE_TIMEOUT] is true.
- const ACE_Time_Value &timeout (void) const;
-
- /// Set the <Time_Value>.
- void timeout (const ACE_Time_Value &tv);
-
- /**
- * Returns the address of the timeout <Time_Value> if
- * (*this)[USE_TIMEOUT] is true, else 0. This should be used with
- * care, e.g., the timeout pointer should not be stored in a manner
- * that will lead to dangling pointers...
- */
- const ACE_Time_Value *time_value (void) const;
-
- // = Static data members (singletons)
-
- /// This is the default setting for options, which will block
- /// synchronously.
- static ACE_Synch_Options defaults;
-
- /// This is the default synchronous setting.
- static ACE_Synch_Options synch;
-
- /// This is the default asynchronous setting.
- static ACE_Synch_Options asynch;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Keeps track of the enabled options.
- unsigned long options_;
-
- /// Amount of time to wait for timeouts.
- ACE_Time_Value timeout_;
-
- /**
- * "Magic cookie" always passed in as an argument to the ACE_Reactor's
- * <schedule_timer> method. Used to communicate values for
- * asynchronous programming.
- */
- const void *arg_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Synch_Options.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_SYNCH_OPTIONS_H */
diff --git a/ace/Synch_Options.i b/ace/Synch_Options.i
deleted file mode 100644
index 3c16b199ac8..00000000000
--- a/ace/Synch_Options.i
+++ /dev/null
@@ -1,9 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Synch_Options.i
-
-ACE_INLINE
-ACE_Synch_Options::~ACE_Synch_Options (void)
-{
-}
diff --git a/ace/Synch_T.cpp b/ace/Synch_T.cpp
deleted file mode 100644
index 827927fa874..00000000000
--- a/ace/Synch_T.cpp
+++ /dev/null
@@ -1,892 +0,0 @@
-// $Id$
-
-#ifndef ACE_SYNCH_T_C
-#define ACE_SYNCH_T_C
-
-#include "ace/Thread.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch_T.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, Synch_T, "$Id$")
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Synch_T.i"
-#endif /* __ACE_INLINE__ */
-
-// This constructor isn't inlined, because SunPRO C++ 4.2 + patch
-// 104631-07 has trouble compiling TAO with it inline.
-template <class ACE_LOCKING_MECHANISM>
-ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::ACE_Lock_Adapter (void)
- : lock_ (0),
- delete_lock_ (1)
-{
- ACE_NEW (this->lock_,
- ACE_LOCKING_MECHANISM);
-}
-
-template <class ACE_LOCKING_MECHANISM>
-ACE_Reverse_Lock<ACE_LOCKING_MECHANISM>::~ACE_Reverse_Lock (void)
-{
-}
-// ****************************************************************
-// ACE_ALLOC_HOOK_DEFINE(ACE_Guard)
-
-template <class ACE_LOCK> void
-ACE_Guard<ACE_LOCK>::dump (void) const
-{
-// ACE_TRACE ("ACE_Guard<ACE_LOCK>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("mutex_ = %x\n"), this->lock_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("owner_ = %d\n"), this->owner_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// ACE_ALLOC_HOOK_DEFINE(ACE_Write_Guard)
-
-template <class ACE_LOCK> void
-ACE_Write_Guard<ACE_LOCK>::dump (void) const
-{
-// ACE_TRACE ("ACE_Write_Guard<ACE_LOCK>::dump");
- ACE_Guard<ACE_LOCK>::dump ();
-}
-
-// ACE_ALLOC_HOOK_DEFINE(ACE_Read_Guard)
-
-template <class ACE_LOCK> void
-ACE_Read_Guard<ACE_LOCK>::dump (void) const
-{
-// ACE_TRACE ("ACE_Read_Guard<ACE_LOCK>::dump");
- ACE_Guard<ACE_LOCK>::dump ();
-}
-
-#if defined (ACE_HAS_THREADS)
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Condition)
-
-template <class MUTEX> void
-ACE_Condition<MUTEX>::dump (void) const
-{
-// ACE_TRACE ("ACE_Condition<MUTEX>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-#if defined (CHORUS)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("condname_ = %s\n"), this->condname_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("process_cond_ = %x\n"), this->process_cond_));
-#endif /* CHORUS */
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class MUTEX>
-ACE_Thread_Condition<MUTEX>::ACE_Thread_Condition (MUTEX &m,
- const ACE_TCHAR *name,
- void *arg)
- : ACE_Condition<MUTEX> (m, USYNC_THREAD, name, arg)
-{
-// ACE_TRACE ("ACE_Thread_Condition<MUTEX>::ACE_Thread_Condition");
-}
-
-template <class MUTEX> void
-ACE_Thread_Condition<MUTEX>::dump (void) const
-{
-// ACE_TRACE ("ACE_Thread_Condition<MUTEX>::dump");
-
- ACE_Condition<MUTEX>::dump ();
-}
-
-template <class MUTEX>
-ACE_Condition<MUTEX>::ACE_Condition (MUTEX &m,
- int type,
- const ACE_TCHAR *name,
- void *arg)
- :
-#if defined (CHORUS)
- process_cond_(0),
- condname_ (0),
-#endif /* CHORUS */
- mutex_ (m)
-{
-
-#if defined(CHORUS)
- if (type == USYNC_PROCESS)
- {
- // Let's see if the shared memory entity already exists.
- ACE_HANDLE fd = ACE_OS::shm_open (name,
- O_RDWR | O_CREAT | O_EXCL,
- ACE_DEFAULT_FILE_PERMS);
- if (fd == ACE_INVALID_HANDLE)
- {
- if (errno == EEXIST)
- fd = ACE_OS::shm_open (name,
- O_RDWR | O_CREAT,
- ACE_DEFAULT_FILE_PERMS);
- else
- return;
- }
- else
- {
- // We own this shared memory object! Let's set its size.
- if (ACE_OS::ftruncate (fd,
- sizeof (ACE_mutex_t)) == -1)
- {
- ACE_OS::close (fd);
- return;
- }
- this->condname_ = ACE_OS::strdup (name);
- if (this->condname_ == 0)
- {
- ACE_OS::close (fd);
- return;
- }
- }
-
- this->process_cond_ =
- (ACE_cond_t *) ACE_OS::mmap (0,
- sizeof (ACE_cond_t),
- PROT_RDWR,
- MAP_SHARED,
- fd,
- 0);
- ACE_OS::close (fd);
- if (this->process_cond_ == MAP_FAILED)
- return;
-
- if (this->condname_
- && ACE_OS::cond_init (this->process_cond_,
- type,
- name,
- arg) != 0)
- return;
- }
- // It is ok to fall through into the <cond_init> below if the
- // USYNC_PROCESS flag is not enabled.
-#endif /* CHORUS */
-
- // ACE_TRACE ("ACE_Condition<MUTEX>::ACE_Condition");
-
- if (ACE_OS::cond_init (&this->cond_,
- (short) type,
- name,
- arg) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Condition::ACE_Condition")));
-}
-
-template <class MUTEX>
-ACE_Condition<MUTEX>::~ACE_Condition (void)
-{
- // ACE_TRACE ("ACE_Condition<MUTEX>::~ACE_Condition");
-
- if (this->remove () == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Condition::~ACE_Condition")));
-}
-
-template <class MUTEX> int
-ACE_Condition<MUTEX>::wait (void)
-{
- // ACE_TRACE ("ACE_Condition<MUTEX>::wait");
-#if defined (CHORUS)
- if (this->process_cond_ != 0)
- return ACE_OS::cond_wait (this->process_cond_,
- &this->mutex_.lock_);
-#endif /* CHORUS */
- return ACE_OS::cond_wait (&this->cond_,
- &this->mutex_.lock_);
-}
-
-template <class MUTEX> int
-ACE_Condition<MUTEX>::wait (MUTEX &mutex,
- const ACE_Time_Value *abstime)
-{
-// ACE_TRACE ("ACE_Condition<MUTEX>::wait");
- if (abstime == 0)
- return this->wait ();
- else
- {
-#if defined (CHORUS)
- if (this->process_cond_ != 0)
- return ACE_OS::cond_timedwait (this->process_cond_,
- &mutex_.lock_,
- (ACE_Time_Value *) abstime);
-#endif /* CHORUS */
- return ACE_OS::cond_timedwait (&this->cond_,
- &mutex.lock_,
- (ACE_Time_Value *) abstime);
- }
-}
-
-// Peform an "alertable" timed wait. If the argument ABSTIME == 0
-// then we do a regular cond_wait(), else we do a timed wait for up to
-// ABSTIME using the Solaris cond_timedwait() function.
-
-template <class MUTEX> int
-ACE_Condition<MUTEX>::wait (const ACE_Time_Value *abstime)
-{
-// ACE_TRACE ("ACE_Condition<MUTEX>::wait");
- return this->wait (this->mutex_, abstime);
-}
-#endif /* ACE_HAS_THREADS */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_TSS)
-
-template <class TYPE>
-ACE_TSS<TYPE>::~ACE_TSS (void)
-{
- // We can't call <ACE_OS::thr_keyfree> until *all* of the threads
- // that are using that key have done an <ACE_OS::thr_key_detach>.
- // Otherwise, we'll end up with "dangling TSS pointers."
- ACE_OS::thr_key_detach (this);
-}
-
-template <class TYPE> TYPE *
-ACE_TSS<TYPE>::operator-> () const
-{
- return this->ts_get ();
-}
-
-template <class TYPE>
-ACE_TSS<TYPE>::operator TYPE *(void) const
-{
- return this->ts_get ();
-}
-
-template <class TYPE> TYPE *
-ACE_TSS<TYPE>::make_TSS_TYPE (void) const
-{
- TYPE *temp = 0;
- ACE_NEW_RETURN (temp,
- TYPE,
- 0);
- return temp;
-}
-
-template <class TYPE> void
-ACE_TSS<TYPE>::dump (void) const
-{
-// ACE_TRACE ("ACE_TSS<TYPE>::dump");
-#if defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION))
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->keylock_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("key_ = %d\n"), this->key_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nonce_ = %d"), this->once_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-#endif /* defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)) */
-}
-
-#if defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION))
-#if defined (ACE_HAS_THR_C_DEST)
-extern "C" void ACE_TSS_C_cleanup(void *); // defined in Synch.cpp
-#endif /* ACE_HAS_THR_C_DEST */
-
-template <class TYPE> void
-ACE_TSS<TYPE>::cleanup (void *ptr)
-{
- // Cast this to the concrete TYPE * so the destructor gets called.
- delete (TYPE *) ptr;
-}
-
-template <class TYPE> int
-ACE_TSS<TYPE>::ts_init (void) const
-{
- // Insure that we are serialized!
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, (ACE_Thread_Mutex &) this->keylock_, 0);
-
- // Use the Double-Check pattern to make sure we only create the key
- // once!
- if (this->once_ == 0)
- {
- if (ACE_Thread::keycreate (ACE_const_cast (ACE_thread_key_t *, &this->key_),
-#if defined (ACE_HAS_THR_C_DEST)
- &ACE_TSS_C_cleanup,
-#else
- &ACE_TSS<TYPE>::cleanup,
-#endif /* ACE_HAS_THR_C_DEST */
- (void *) this) != 0)
- return -1; // Major problems, this should *never* happen!
- else
- {
- // This *must* come last to avoid race conditions! Note that
- // we need to "cast away const..."
- * ACE_const_cast (int*, &this->once_) = 1;
- return 0;
- }
- }
-
- return -1;
-}
-
-template <class TYPE>
-ACE_TSS<TYPE>::ACE_TSS (TYPE *ts_obj)
- : once_ (0),
- key_ (ACE_OS::NULL_key)
-{
- // If caller has passed us a non-NULL TYPE *, then we'll just use
- // this to initialize the thread-specific value. Thus, subsequent
- // calls to operator->() will return this value. This is useful
- // since it enables us to assign objects to thread-specific data
- // that have arbitrarily complex constructors!
-
- if (ts_obj != 0)
- {
- if (this->ts_init () == -1)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- // What should we do if this call fails?!
-#if defined (ACE_HAS_WINCE)
- ::MessageBox (0,
- L"ACE_Thread::keycreate() failed!",
- L"ACE_TSS::ACE_TSS",
- MB_OK);
-#else
- ACE_OS::fprintf (stderr,
- "ACE_Thread::keycreate() failed!");
-#endif /* ACE_HAS_WINCE */
- return;
- }
-
-#if defined (ACE_HAS_THR_C_DEST)
- // Encapsulate a ts_obj and it's destructor in an
- // ACE_TSS_Adapter.
- ACE_TSS_Adapter *tss_adapter;
- ACE_NEW (tss_adapter,
- ACE_TSS_Adapter ((void *) ts_obj,
- ACE_TSS<TYPE>::cleanup));
-
- // Put the adapter in thread specific storage
- if (ACE_Thread::setspecific (this->key_,
- (void *) tss_adapter) != 0)
- {
- delete tss_adapter;
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Thread::setspecific() failed!")));
- }
-#else
- if (ACE_Thread::setspecific (this->key_,
- (void *) ts_obj) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_Thread::setspecific() failed!")));
-#endif /* ACE_HAS_THR_C_DEST */
- }
-}
-
-template <class TYPE> TYPE *
-ACE_TSS<TYPE>::ts_get (void) const
-{
- if (this->once_ == 0)
- // Create and initialize thread-specific ts_obj.
- this->ts_init ();
-
- TYPE *ts_obj = 0;
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
-
- // Get the adapter from thread-specific storage
- if (ACE_Thread::getspecific (this->key_,
- (void **) &tss_adapter) == -1)
- return 0; // This should not happen!
-
- // Check to see if this is the first time in for this thread.
- if (tss_adapter == 0)
-#else
- // Get the ts_obj from thread-specific storage. Note that no locks
- // are required here...
- if (ACE_Thread::getspecific (this->key_,
- (void **) &ts_obj) == -1)
- return 0; // This should not happen!
-
- // Check to see if this is the first time in for this thread.
- if (ts_obj == 0)
-#endif /* ACE_HAS_THR_C_DEST */
- {
- // Allocate memory off the heap and store it in a pointer in
- // thread-specific storage (on the stack...).
-
- ts_obj = this->make_TSS_TYPE ();
-
- if (ts_obj == 0)
- return 0;
-
-#if defined (ACE_HAS_THR_C_DEST)
- // Encapsulate a ts_obj and it's destructor in an
- // ACE_TSS_Adapter.
- ACE_NEW_RETURN (tss_adapter,
- ACE_TSS_Adapter (ts_obj,
- ACE_TSS<TYPE>::cleanup), 0);
-
- // Put the adapter in thread specific storage
- if (ACE_Thread::setspecific (this->key_,
- (void *) tss_adapter) != 0)
- {
- delete tss_adapter;
- delete ts_obj;
- return 0; // Major problems, this should *never* happen!
- }
-#else
- // Store the dynamically allocated pointer in thread-specific
- // storage.
- if (ACE_Thread::setspecific (this->key_,
- (void *) ts_obj) != 0)
- {
- delete ts_obj;
- return 0; // Major problems, this should *never* happen!
- }
-#endif /* ACE_HAS_THR_C_DEST */
- }
-
-#if defined (ACE_HAS_THR_C_DEST)
- // Return the underlying ts object.
- return (TYPE *) tss_adapter->ts_obj_;
-#else
- return ts_obj;
-#endif /* ACE_HAS_THR_C_DEST */
-}
-
-// Get the thread-specific object for the key associated with this
-// object. Returns 0 if the ts_obj has never been initialized,
-// otherwise returns a pointer to the ts_obj.
-
-template <class TYPE> TYPE *
-ACE_TSS<TYPE>::ts_object (void) const
-{
- // Ensure that we are serialized!
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, (ACE_Thread_Mutex &) this->keylock_, 0);
-
- if (this->once_ == 0) // Return 0 if we've never been initialized.
- return 0;
-
- TYPE *ts_obj = 0;
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
-
- // Get the tss adapter from thread-specific storage
- if (ACE_Thread::getspecific (this->key_,
- (void **) &tss_adapter) == -1)
- return 0; // This should not happen!
- else if (tss_adapter != 0)
- // Extract the real TS object.
- ts_obj = (TYPE *) tss_adapter->ts_obj_;
-#else
- if (ACE_Thread::getspecific (this->key_,
- (void **) &ts_obj) == -1)
- return 0; // This should not happen!
-#endif /* ACE_HAS_THR_C_DEST */
-
- return ts_obj;
-}
-
-template <class TYPE> TYPE *
-ACE_TSS<TYPE>::ts_object (TYPE *new_ts_obj)
-{
- // Note, we shouldn't hold the keylock at this point because
- // <ts_init> does it for us and we'll end up with deadlock
- // otherwise...
- if (this->once_ == 0)
- // Create and initialize thread-specific ts_obj.
- this->ts_init ();
-
- // Ensure that we are serialized!
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->keylock_, 0);
-
- TYPE *ts_obj = 0;
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
-
- if (ACE_Thread::getspecific (this->key_,
- (void **) &tss_adapter) == -1)
- return 0; // This should not happen!
-
- if (tss_adapter != 0)
- {
- ts_obj = (TYPE *) tss_adapter->ts_obj_;
- delete tss_adapter; // don't need this anymore
- }
-
- ACE_NEW_RETURN (tss_adapter,
- ACE_TSS_Adapter ((void *) new_ts_obj,
- ACE_TSS<TYPE>::cleanup),
- 0);
-
- if (ACE_Thread::setspecific (this->key_,
- (void *) tss_adapter) == -1)
- {
- delete tss_adapter;
- return ts_obj; // This should not happen!
- }
-#else
- if (ACE_Thread::getspecific (this->key_,
- (void **) &ts_obj) == -1)
- return 0; // This should not happen!
- if (ACE_Thread::setspecific (this->key_,
- (void *) new_ts_obj) == -1)
- return ts_obj; // This should not happen!
-#endif /* ACE_HAS_THR_C_DEST */
-
- return ts_obj;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_TSS_Guard)
-
-template <class ACE_LOCK> void
-ACE_TSS_Guard<ACE_LOCK>::dump (void) const
-{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("key_ = %d"), this->key_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class ACE_LOCK> void
-ACE_TSS_Guard<ACE_LOCK>::init_key (void)
-{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::init_key");
-
- this->key_ = ACE_OS::NULL_key;
- ACE_Thread::keycreate (&this->key_,
-#if defined (ACE_HAS_THR_C_DEST)
- &ACE_TSS_C_cleanup,
-#else
- &ACE_TSS_Guard<ACE_LOCK>::cleanup,
-#endif /* ACE_HAS_THR_C_DEST */
- (void *) this);
-}
-
-template <class ACE_LOCK>
-ACE_TSS_Guard<ACE_LOCK>::ACE_TSS_Guard (void)
-{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::ACE_TSS_Guard");
- this->init_key ();
-}
-
-template <class ACE_LOCK> int
-ACE_TSS_Guard<ACE_LOCK>::release (void)
-{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::release");
-
- ACE_Guard<ACE_LOCK> *guard = 0;
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
- ACE_Thread::getspecific (this->key_,
- (void **) &tss_adapter);
- guard = (ACE_Guard<ACE_LOCK> *)tss_adapter->ts_obj_;
-#else
- ACE_Thread::getspecific (this->key_,
- (void **) &guard);
-#endif /* ACE_HAS_THR_C_DEST */
-
- return guard->release ();
-}
-
-template <class ACE_LOCK> int
-ACE_TSS_Guard<ACE_LOCK>::remove (void)
-{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::remove");
-
- ACE_Guard<ACE_LOCK> *guard = 0;
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
- ACE_Thread::getspecific (this->key_,
- (void **) &tss_adapter);
- guard = (ACE_Guard<ACE_LOCK> *) tss_adapter->ts_obj_;
-#else
- ACE_Thread::getspecific (this->key_,
- (void **) &guard);
-#endif /* ACE_HAS_THR_C_DEST */
-
- return guard->remove ();
-}
-
-template <class ACE_LOCK>
-ACE_TSS_Guard<ACE_LOCK>::~ACE_TSS_Guard (void)
-{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::~ACE_TSS_Guard");
-
- ACE_Guard<ACE_LOCK> *guard = 0;
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
- ACE_Thread::getspecific (this->key_,
- (void **) &tss_adapter);
- guard = (ACE_Guard<ACE_LOCK> *) tss_adapter->ts_obj_;
-#else
- ACE_Thread::getspecific (this->key_,
- (void **) &guard);
-#endif /* ACE_HAS_THR_C_DEST */
-
- // Make sure that this pointer is NULL when we shut down...
- ACE_Thread::setspecific (this->key_, 0);
- ACE_Thread::keyfree (this->key_);
- // Destructor releases lock.
- delete guard;
-}
-
-template <class ACE_LOCK> void
-ACE_TSS_Guard<ACE_LOCK>::cleanup (void *ptr)
-{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::cleanup");
-
- // Destructor releases lock.
- delete (ACE_Guard<ACE_LOCK> *) ptr;
-}
-
-template <class ACE_LOCK>
-ACE_TSS_Guard<ACE_LOCK>::ACE_TSS_Guard (ACE_LOCK &lock, int block)
-{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::ACE_TSS_Guard");
-
- this->init_key ();
- ACE_Guard<ACE_LOCK> *guard;
- ACE_NEW (guard,
- ACE_Guard<ACE_LOCK> (lock,
- block));
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter;
- ACE_NEW (tss_adapter,
- ACE_TSS_Adapter ((void *) guard,
- ACE_TSS_Guard<ACE_LOCK>::cleanup));
- ACE_Thread::setspecific (this->key_,
- (void *) tss_adapter);
-#else
- ACE_Thread::setspecific (this->key_,
- (void *) guard);
-#endif /* ACE_HAS_THR_C_DEST */
-}
-
-template <class ACE_LOCK> int
-ACE_TSS_Guard<ACE_LOCK>::acquire (void)
-{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::acquire");
-
- ACE_Guard<ACE_LOCK> *guard = 0;
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
- ACE_Thread::getspecific (this->key_,
- (void **) &tss_adapter);
- guard = (ACE_Guard<ACE_LOCK> *) tss_adapter->ts_obj_;
-#else
- ACE_Thread::getspecific (this->key_,
- (void **) &guard);
-#endif /* ACE_HAS_THR_C_DEST */
-
- return guard->acquire ();
-}
-
-template <class ACE_LOCK> int
-ACE_TSS_Guard<ACE_LOCK>::tryacquire (void)
-{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::tryacquire");
-
- ACE_Guard<ACE_LOCK> *guard = 0;
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
- ACE_Thread::getspecific (this->key_,
- (void **) &tss_adapter);
- guard = (ACE_Guard<ACE_LOCK> *) tss_adapter->ts_obj_;
-#else
- ACE_Thread::getspecific (this->key_,
- (void **) &guard);
-#endif /* ACE_HAS_THR_C_DEST */
-
- return guard->tryacquire ();
-}
-
-template <class ACE_LOCK>
-ACE_TSS_Write_Guard<ACE_LOCK>::ACE_TSS_Write_Guard (ACE_LOCK &lock,
- int block)
-{
-// ACE_TRACE ("ACE_TSS_Write_Guard<ACE_LOCK>::ACE_TSS_Write_Guard");
-
- this->init_key ();
- ACE_Guard<ACE_LOCK> *guard;
- ACE_NEW (guard,
- ACE_Write_Guard<ACE_LOCK> (lock,
- block));
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter;
- ACE_NEW (tss_adapter,
- ACE_TSS_Adapter ((void *) guard,
- ACE_TSS_Guard<ACE_LOCK>::cleanup));
- ACE_Thread::setspecific (this->key_,
- (void *) tss_adapter);
-#else
- ACE_Thread::setspecific (this->key_,
- (void *) guard);
-#endif /* ACE_HAS_THR_C_DEST */
-}
-
-template <class ACE_LOCK> int
-ACE_TSS_Write_Guard<ACE_LOCK>::acquire (void)
-{
-// ACE_TRACE ("ACE_TSS_Write_Guard<ACE_LOCK>::acquire");
-
- ACE_Write_Guard<ACE_LOCK> *guard = 0;
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
- ACE_Thread::getspecific (this->key_,
- (void **) &tss_adapter);
- guard = (ACE_Guard<ACE_LOCK> *) tss_adapter->ts_obj_;
-#else
- ACE_Thread::getspecific (this->key_,
- (void **) &guard);
-#endif /* ACE_HAS_THR_C_DEST */
-
- return guard->acquire_write ();
-}
-
-template <class ACE_LOCK> int
-ACE_TSS_Write_Guard<ACE_LOCK>::tryacquire (void)
-{
-// ACE_TRACE ("ACE_TSS_Write_Guard<ACE_LOCK>::tryacquire");
-
- ACE_Write_Guard<ACE_LOCK> *guard = 0;
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
- ACE_Thread::getspecific (this->key_,
- (void **) &tss_adapter);
- guard = (ACE_Guard<ACE_LOCK> *) tss_adapter->ts_obj_;
-#else
- ACE_Thread::getspecific (this->key_,
- (void **) &guard);
-#endif /* ACE_HAS_THR_C_DEST */
-
- return guard->tryacquire_write ();
-}
-
-template <class ACE_LOCK> int
-ACE_TSS_Write_Guard<ACE_LOCK>::acquire_write (void)
-{
-// ACE_TRACE ("ACE_TSS_Write_Guard<ACE_LOCK>::acquire_write");
-
- return this->acquire ();
-}
-
-template <class ACE_LOCK> int
-ACE_TSS_Write_Guard<ACE_LOCK>::tryacquire_write (void)
-{
-// ACE_TRACE ("ACE_TSS_Write_Guard<ACE_LOCK>::tryacquire_write");
-
- return this->tryacquire ();
-}
-
-template <class ACE_LOCK> void
-ACE_TSS_Write_Guard<ACE_LOCK>::dump (void) const
-{
-// ACE_TRACE ("ACE_TSS_Write_Guard<ACE_LOCK>::dump");
- ACE_TSS_Guard<ACE_LOCK>::dump ();
-}
-
-template <class ACE_LOCK>
-ACE_TSS_Read_Guard<ACE_LOCK>::ACE_TSS_Read_Guard (ACE_LOCK &lock, int block)
-{
-// ACE_TRACE ("ACE_TSS_Read_Guard<ACE_LOCK>::ACE_TSS_Read_Guard");
-
- this->init_key ();
- ACE_Guard<ACE_LOCK> *guard;
- ACE_NEW (guard,
- ACE_Read_Guard<ACE_LOCK> (lock,
- block));
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter;
- ACE_NEW (tss_adapter,
- ACE_TSS_Adapter ((void *)guard,
- ACE_TSS_Guard<ACE_LOCK>::cleanup));
- ACE_Thread::setspecific (this->key_,
- (void *) tss_adapter);
-#else
- ACE_Thread::setspecific (this->key_,
- (void *) guard);
-#endif /* ACE_HAS_THR_C_DEST */
-}
-
-template <class ACE_LOCK> int
-ACE_TSS_Read_Guard<ACE_LOCK>::acquire (void)
-{
-// ACE_TRACE ("ACE_TSS_Read_Guard<ACE_LOCK>::acquire");
-
- ACE_Read_Guard<ACE_LOCK> *guard = 0;
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
- ACE_Thread::getspecific (this->key_,
- (void **) &tss_adapter);
- guard = (ACE_Guard<ACE_LOCK> *) tss_adapter->ts_obj_;
-#else
- ACE_Thread::getspecific (this->key_,
- (void **) &guard);
-#endif /* ACE_HAS_THR_C_DEST */
-
- return guard->acquire_read ();
-}
-
-template <class ACE_LOCK> int
-ACE_TSS_Read_Guard<ACE_LOCK>::tryacquire (void)
-{
-// ACE_TRACE ("ACE_TSS_Read_Guard<ACE_LOCK>::tryacquire");
-
- ACE_Read_Guard<ACE_LOCK> *guard = 0;
-
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
- ACE_Thread::getspecific (this->key_,
- (void **) &tss_adapter);
- guard = (ACE_Guard<ACE_LOCK> *) tss_adapter->ts_obj_;
-#else
- ACE_Thread::getspecific (this->key_,
- (void **) &guard);
-#endif /* ACE_HAS_THR_C_DEST */
-
- return guard->tryacquire_read ();
-}
-
-template <class ACE_LOCK> int
-ACE_TSS_Read_Guard<ACE_LOCK>::acquire_read (void)
-{
-// ACE_TRACE ("ACE_TSS_Read_Guard<ACE_LOCK>::acquire_read");
-
- return this->acquire ();
-}
-
-template <class ACE_LOCK> int
-ACE_TSS_Read_Guard<ACE_LOCK>::tryacquire_read (void)
-{
-// ACE_TRACE ("ACE_TSS_Read_Guard<ACE_LOCK>::tryacquire_read");
-
- return this->tryacquire ();
-}
-
-template <class ACE_LOCK> void
-ACE_TSS_Read_Guard<ACE_LOCK>::dump (void) const
-{
-// ACE_TRACE ("ACE_TSS_Read_Guard<ACE_LOCK>::dump");
- ACE_TSS_Guard<ACE_LOCK>::dump ();
-}
-
-
-#endif /* defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)) */
-
-#endif /* ACE_SYNCH_T_C */
diff --git a/ace/Synch_T.h b/ace/Synch_T.h
deleted file mode 100644
index 4725c6064c6..00000000000
--- a/ace/Synch_T.h
+++ /dev/null
@@ -1,909 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Synch_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SYNCH_T_H
-#define ACE_SYNCH_T_H
-#include "ace/pre.h"
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Forward decl
-class ACE_Time_Value;
-
-/**
- * @class ACE_Lock_Adapter
- *
- * @brief This is an adapter that allows applications to transparently
- * combine the <ACE_Lock> abstract base class (which contains
- * pure virtual methods) with any of the other concrete ACE
- * synchronization classes (e.g., <ACE_Mutex>, <ACE_Semaphore>,
- * <ACE_RW_Mutex>, etc.).
- *
- * This class uses a form of the Adapter pattern.
- */
-template <class ACE_LOCKING_MECHANISM>
-class ACE_Lock_Adapter : public ACE_Lock
-{
-public:
- typedef ACE_LOCKING_MECHANISM ACE_LOCK;
-
- // = Initialization/Finalization methods.
-
- /// Constructor. All locking requests will be forwarded to <lock>.
- ACE_Lock_Adapter (ACE_LOCKING_MECHANISM &lock);
-
- /// Constructor. Since no lock is provided by the user, one will be
- /// created internally.
- ACE_Lock_Adapter (void);
-
- /// Destructor. If <lock_> was not passed in by the user, it will be
- /// deleted.
- virtual ~ACE_Lock_Adapter (void);
-
- // = Lock accessors.
- /// Block the thread until the lock is acquired.
- virtual int acquire (void);
-
- /// Conditionally acquire the lock (i.e., won't block).
- virtual int tryacquire (void);
-
- /// Release the lock.
- virtual int release (void);
-
- /**
- * Block until the thread acquires a read lock. If the locking
- * mechanism doesn't support read locks then this just calls
- * <acquire>.
- */
- virtual int acquire_read (void);
-
- /**
- * Block until the thread acquires a write lock. If the locking
- * mechanism doesn't support read locks then this just calls
- * <acquire>.
- */
- virtual int acquire_write (void);
-
- /// Conditionally acquire a read lock. If the locking mechanism
- /// doesn't support read locks then this just calls <acquire>.
- virtual int tryacquire_read (void);
-
- /// Conditionally acquire a write lock. If the locking mechanism
- /// doesn't support read locks then this just calls <acquire>.
- virtual int tryacquire_write (void);
-
- /**
- * Conditionally try to upgrade a lock held for read to a write lock.
- * If the locking mechanism doesn't support read locks then this just
- * calls <acquire>. Returns 0 on success, -1 on failure.
- */
- virtual int tryacquire_write_upgrade (void);
-
- /// Explicitly destroy the lock.
- virtual int remove (void);
-
-private:
- /// The concrete locking mechanism that all the methods delegate to.
- ACE_LOCKING_MECHANISM *lock_;
-
- /// This flag keep track of whether we are responsible for deleting
- /// the lock
- int delete_lock_;
-};
-
-/**
- * @class ACE_Acquire_Method
- *
- * @brief An enum class.
- *
- * These enums should have been inside the reverse lock class, but
- * some lame compilers cannot handle enums inside template classes.
- *
- * The METHOD_TYPE is used to indicate which acquire() method will be
- * called on the real lock when the release() method is called on the
- * reverse lock. REGULAR indicated the acquire() method, READ
- * indicates the acquire_read() method, and WRITE indicates the
- * acquire_write() method. Note that the try_*() methods are not
- * represented here because we have to make sure that the release()
- * method on the reverse lock acquires a lock on the real lock.
- **/
-class ACE_Acquire_Method
-{
-public:
- enum METHOD_TYPE
- {
- ACE_REGULAR,
- ACE_READ,
- ACE_WRITE
- };
-};
-
-/**
- * @class ACE_Reverse_Lock
- *
- * @brief A reverse (or anti) lock.
- *
- * This is an interesting adapter class that changes a lock into
- * a reverse lock, i.e., <acquire> on this class calls <release>
- * on the lock, and <release> on this class calls <acquire> on
- * the lock.
- * One motivation for this class is when we temporarily want to
- * release a lock (which we have already acquired) but then
- * reacquire it soon after. An alternative design would be to
- * add a Anti_Guard or Reverse_Guard class which would <release>
- * on construction and <acquire> destruction. However, there
- * are *many* varieties of the Guard class and this design
- * choice would lead to at least 6 new classes. One new
- * ACE_Reverse_Lock class seemed more reasonable.
- */
-template <class ACE_LOCKING_MECHANISM>
-class ACE_Reverse_Lock : public ACE_Lock
-{
-public:
-
- typedef ACE_LOCKING_MECHANISM ACE_LOCK;
-
- // = Initialization/Finalization methods.
-
- /// Constructor. All locking requests will be forwarded to <lock>.
- ACE_Reverse_Lock (ACE_LOCKING_MECHANISM &lock,
- ACE_Acquire_Method::METHOD_TYPE acquire_method = ACE_Acquire_Method::ACE_REGULAR);
-
- /// Destructor. If <lock_> was not passed in by the user, it will be
- /// deleted.
- virtual ~ACE_Reverse_Lock (void);
-
- // = Lock accessors.
- /// Release the lock.
- virtual int acquire (void);
-
- /// Release the lock.
- virtual int tryacquire (void);
-
- /// Acquire the lock.
- virtual int release (void);
-
- /// Release the lock.
- virtual int acquire_read (void);
-
- /// Release the lock.
- virtual int acquire_write (void);
-
- /// Release the lock.
- virtual int tryacquire_read (void);
-
- /// Release the lock.
- virtual int tryacquire_write (void);
-
- /// Release the lock.
- virtual int tryacquire_write_upgrade (void);
-
- /// Explicitly destroy the lock.
- virtual int remove (void);
-
-private:
- /// The concrete locking mechanism that all the methods delegate to.
- ACE_LOCKING_MECHANISM &lock_;
-
- /// This indicates what kind of acquire method will be called.
- ACE_Acquire_Method::METHOD_TYPE acquire_method_;
-};
-
-/**
- * @class ACE_TSS
- *
- * @brief Allows objects that are "physically" in thread specific
- * storage (i.e., private to a thread) to be accessed as though
- * they were "logically" global to a program.
- *
- * This class is a wrapper around the OS thread library
- * thread-specific functions. It uses the <C++ operator->> to
- * shield applications from the details of accessing
- * thread-specific storage.
- *
- * NOTE: For maximal portability, <TYPE> cannot be a built-in type,
- * but instead should be a user-defined class (some compilers will
- * allow a built-in type, others won't). See template class
- * ACE_TSS_Type_Adapter, below, for adapting built-in types to work
- * with ACE_TSS.
- */
-template <class TYPE>
-class ACE_TSS
-{
-public:
- // = Initialization and termination methods.
-
- /**
- * If caller has passed us a non-NULL ts_obj *, then we'll just use
- * this to initialize the thread-specific value (but only for the
- * calling thread). Thus, subsequent calls to <operator->> in this
- * thread will return this value. This is useful since it enables
- * us to assign objects to thread-specific data that have
- * arbitrarily complex constructors.
- */
- ACE_TSS (TYPE *ts_obj = 0);
-
- /// Deregister with thread-key administration.
- virtual ~ACE_TSS (void);
-
- // = Accessors.
-
- /**
- * Get the thread-specific object for the key associated with this
- * object. Returns 0 if the data has never been initialized,
- * otherwise returns a pointer to the data.
- */
- TYPE *ts_object (void) const;
-
- /// Set the thread-specific object for the key associated with this
- /// object.
- TYPE *ts_object (TYPE *);
-
- /// Use a "smart pointer" to get the thread-specific object
- /// associated with the <key_>.
- TYPE *operator-> () const;
-
- /// Return or create and return the calling threads TYPE object.
- operator TYPE *(void) const;
-
- /// Hook for construction parameters.
- virtual TYPE *make_TSS_TYPE (void) const;
-
- // = Utility methods.
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-protected:
- /// Actually implements the code that retrieves the object from
- /// thread-specific storage.
- TYPE *ts_get (void) const;
-
- /// Factors out common code for initializing TSS. This must NOT be
- /// called with the lock held...
- int ts_init (void) const;
-
-#if !(defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)))
- /// This implementation only works for non-threading systems...
- TYPE *type_;
-#else
- /// Avoid race conditions during initialization.
- ACE_Thread_Mutex keylock_;
-
- /// "First time in" flag.
- int once_;
-
- /// Key for the thread-specific error data.
- ACE_thread_key_t key_;
-
- /// "Destructor" that deletes internal TYPE * when thread exits.
- static void cleanup (void *ptr);
-#endif /* defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)) */
- // = Disallow copying...
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_TSS<TYPE> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_TSS (const ACE_TSS<TYPE> &))
-};
-
-/**
- * @class ACE_TSS_Type_Adapter
- *
- * @brief Adapter that allows built-in types to be used with ACE_TSS.
- *
- * Wraps a value of a built-in type, providing conversions to
- * and from the type. Example use with ACE_TSS:
- * ACE_TSS<ACE_TSS_Type_Adapter<int> > i;
- * *i = 37;
- * ACE_OS::fprintf (stderr, "%d\n", *i);
- * Unfortunately, though, some compilers have trouble with the
- * implicit type conversions. This seems to work better:
- * ACE_TSS<ACE_TSS_Type_Adapter<int> > i;
- * i->operator int & () = 37;
- * ACE_OS::fprintf (stderr, "%d\n", i->operator int ());
- */
-template <class TYPE>
-class ACE_TSS_Type_Adapter
-{
-public:
- /// Constructor. Inlined here so that it should _always_ be inlined.
- ACE_TSS_Type_Adapter (const TYPE value = 0): value_ (value) {}
-
- /// TYPE conversion. Inlined here so that it should _always_ be
- /// inlined.
- operator TYPE () const { return value_; };
-
- /// TYPE & conversion. Inlined here so that it should _always_ be
- /// inlined.
- operator TYPE &() { return value_; };
-
-private:
- /// The wrapped value.
- TYPE value_;
-};
-
-/**
- * @class ACE_Guard
- *
- * @brief This data structure is meant to be used within a method or
- * function... It performs automatic aquisition and release of
- * a parameterized synchronization object <ACE_LOCK>.
- *
- * The <ACE_LOCK> class given as an actual parameter must provide at
- * the very least the <acquire>, <tryacquire>, <release>, and
- * <remove> methods.
- */
-template <class ACE_LOCK>
-class ACE_Guard
-{
-public:
-
- // = Initialization and termination methods.
- ACE_Guard (ACE_LOCK &l);
-
- /// Implicitly and automatically acquire (or try to acquire) the
- /// lock. If <block> is non-0 then <acquire> the <ACE_LOCK>, else
- /// <tryacquire> it.
- ACE_Guard (ACE_LOCK &l, int block);
-
- /// Initialise the guard without implicitly acquiring the lock. The
- /// <become_owner> parameter indicates whether the guard should release
- /// the lock implicitly on destruction. The <block> parameter is
- /// ignored and is used here to disambiguate with the preceding
- /// constructor.
- ACE_Guard (ACE_LOCK &l, int block, int become_owner);
-
- /// Implicitly release the lock.
- ~ACE_Guard (void);
-
- // = Lock accessors.
-
- /// Explicitly acquire the lock.
- int acquire (void);
-
- /// Conditionally acquire the lock (i.e., won't block).
- int tryacquire (void);
-
- /// Explicitly release the lock, but only if it is held!
- int release (void);
-
- /// Relinquish ownership of the lock so that it is not released
- /// implicitly in the destructor.
- void disown (void);
-
- // = Utility methods.
- /// 1 if locked, 0 if couldn't acquire the lock
- /// (errno will contain the reason for this).
- int locked (void) const;
-
- /// Explicitly remove the lock.
- int remove (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-protected:
-
- /// Helper, meant for subclass only.
- ACE_Guard (ACE_LOCK *lock): lock_ (lock) {}
-
- /// Pointer to the ACE_LOCK we're guarding.
- ACE_LOCK *lock_;
-
- /// Keeps track of whether we acquired the lock or failed.
- int owner_;
-
-private:
- // = Prevent assignment and initialization.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Guard<ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Guard (const ACE_Guard<ACE_LOCK> &))
-};
-
-/**
- * @class ACE_Write_Guard
- *
- * @brief This class is similar to class <ACE_Guard>, though it
- * acquires/releases a write lock automatically (naturally, the
- * <ACE_LOCK> it is instantiated with must support the appropriate
- * API).
- */
-template <class ACE_LOCK>
-class ACE_Write_Guard : public ACE_Guard<ACE_LOCK>
-{
-public:
- // = Initialization method.
-
- /// Implicitly and automatically acquire a write lock.
- ACE_Write_Guard (ACE_LOCK &m);
-
- /// Implicitly and automatically acquire (or try to acquire) a write
- /// lock.
- ACE_Write_Guard (ACE_LOCK &m, int block);
-
- // = Lock accessors.
-
- /// Explicitly acquire the write lock.
- int acquire_write (void);
-
- /// Explicitly acquire the write lock.
- int acquire (void);
-
- /// Conditionally acquire the write lock (i.e., won't block).
- int tryacquire_write (void);
-
- /// Conditionally acquire the write lock (i.e., won't block).
- int tryacquire (void);
-
- // = Utility methods.
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-};
-
-/**
- * @class ACE_Read_Guard
- *
- * @brief This class is similar to class <ACE_Guard>, though it
- * acquires/releases a read lock automatically (naturally, the
- * <ACE_LOCK> it is instantiated with must support the appropriate
- * API).
- */
-template <class ACE_LOCK>
-class ACE_Read_Guard : public ACE_Guard<ACE_LOCK>
-{
-public:
- // = Initialization methods.
-
- /// Implicitly and automatically acquire a read lock.
- ACE_Read_Guard (ACE_LOCK& m);
-
- /// Implicitly and automatically acquire (or try to acquire) a read
- /// lock.
- ACE_Read_Guard (ACE_LOCK &m, int block);
-
- // = Lock accessors.
-
- /// Explicitly acquire the read lock.
- int acquire_read (void);
-
- /// Explicitly acquire the read lock.
- int acquire (void);
-
- /// Conditionally acquire the read lock (i.e., won't block).
- int tryacquire_read (void);
-
- /// Conditionally acquire the read lock (i.e., won't block).
- int tryacquire (void);
-
- // = Utility methods.
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-};
-
-#if !(defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)))
-
-#define ACE_TSS_Guard ACE_Guard
-#define ACE_TSS_Write_GUARD ACE_Write_Guard
-#define ACE_TSS_Read_GUARD ACE_Read_Guard
-
-#else
- /* ACE platform supports some form of threading and
- thread-specific storage. */
-
-/**
- * @class ACE_TSS_Guard
- *
- * @brief This data structure is meant to be used within a method or
- * function... It performs automatic aquisition and release of
- * a synchronization object. Moreover, it ensures that the lock
- * is released even if a thread exits via <thr_exit>!
- */
-template <class ACE_LOCK>
-class ACE_TSS_Guard
-{
-public:
- // = Initialization and termination methods.
-
- /// Implicitly and automatically acquire the thread-specific lock.
- ACE_TSS_Guard (ACE_LOCK &lock, int block = 1);
-
- /// Implicitly release the thread-specific lock.
- ~ACE_TSS_Guard (void);
-
- // = Lock accessors.
-
- /// Explicitly acquire the thread-specific lock.
- int acquire (void);
-
- /// Conditionally acquire the thread-specific lock (i.e., won't
- /// block).
- int tryacquire (void);
-
- /// Explicitly release the thread-specific lock.
- int release (void);
-
- // = Utility methods.
- /// Explicitly release the thread-specific lock.
- int remove (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-protected:
- /// Helper, meant for subclass only.
- ACE_TSS_Guard (void);
-
- /// Initialize the key.
- void init_key (void);
-
- /// Called when thread exits to clean up the lock.
- static void cleanup (void *ptr);
-
- /// Thread-specific key...
- ACE_thread_key_t key_;
-
-private:
- // = Prevent assignment and initialization.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_TSS_Guard<ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_TSS_Guard (const ACE_TSS_Guard<ACE_LOCK> &))
-};
-
-/**
- * @class ACE_TSS_Write_Guard
- *
- * @brief This class is similar to class ACE_TSS_Guard, though it
- * acquires/releases a write-lock automatically (naturally, the
- * ACE_LOCK it is instantiated with must support the appropriate
- * API).
- */
-template <class ACE_LOCK>
-class ACE_TSS_Write_Guard : public ACE_TSS_Guard<ACE_LOCK>
-{
-public:
- // = Initialization method.
-
- /// Implicitly and automatically acquire the thread-specific write lock.
- ACE_TSS_Write_Guard (ACE_LOCK &lock, int block = 1);
-
- // = Lock accessors.
-
- /// Explicitly acquire the thread-specific write lock.
- int acquire_write (void);
-
- /// Explicitly acquire the thread-specific write lock.
- int acquire (void);
-
- /// Conditionally acquire the thread-specific write lock (i.e., won't block).
- int tryacquire_write (void);
-
- /// Conditionally acquire the thread-specific write lock (i.e., won't block).
- int tryacquire (void);
-
- // = Utility methods.
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-};
-
-/**
- * @class ACE_TSS_Read_Guard
- *
- * @brief This class is similar to class <ACE_TSS_Guard>, though it
- * acquires/releases a read lock automatically (naturally, the
- * <ACE_LOCK> it is instantiated with must support the
- * appropriate API).
- */
-template <class ACE_LOCK>
-class ACE_TSS_Read_Guard : public ACE_TSS_Guard<ACE_LOCK>
-{
-public:
- // = Initialization method.
- /// Implicitly and automatically acquire the thread-specific read lock.
- ACE_TSS_Read_Guard (ACE_LOCK &lock, int block = 1);
-
- // = Lock accessors.
- /// Explicitly acquire the thread-specific read lock.
- int acquire_read (void);
-
- /// Explicitly acquire the thread-specific read lock.
- int acquire (void);
-
- /// Conditionally acquire the thread-specific read lock (i.e., won't
- /// block).
- int tryacquire_read (void);
-
- /// Conditionally acquire the thread-specific read lock (i.e., won't
- /// block).
- int tryacquire (void);
-
- // = Utility methods.
- /// Dump the state of an object.
- void dump (void) const;
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-};
-#endif /* !(defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION))) */
-
-#if defined (ACE_HAS_THREADS) /* ACE platform supports some form of threading. */
-
-/**
- * @class ACE_Condition
- *
- * @brief ACE_Condition variable wrapper, which allows threads to block
- * until shared data changes state.
- *
- * A condition variable enables threads to atomically block and
- * test the condition under the protection of a mutual exclu-
- * sion lock (mutex) until the condition is satisfied. That is,
- * the mutex must have been held by the thread before calling
- * wait or signal on the condition. If the condition is false,
- * a thread blocks on a condition variable and atomically
- * releases the mutex that is waiting for the condition to
- * change. If another thread changes the condition, it may wake
- * up waiting threads by signaling the associated condition
- * variable. The waiting threads, upon awakening, reacquire the
- * mutex and re-evaluate the condition.
- * Note, you can only parameterize <ACE_Condition> with
- * @a ACE_Thread_Mutex, @a ACE_Recursive_Thread_Mutex, or @a ACE_Null_Mutex.
- */
-template <class MUTEX>
-class ACE_Condition
-{
-public:
- // = Initialiation and termination methods.
- /// Initialize the condition variable.
- ACE_Condition (MUTEX &m, int type = USYNC_THREAD,
- const ACE_TCHAR *name = 0, void *arg = 0);
-
- /// Implicitly destroy the condition variable.
- ~ACE_Condition (void);
-
- // = Lock accessors.
- /**
- * Block on condition, or until absolute time-of-day has passed. If
- * abstime == 0 use "blocking" <wait> semantics. Else, if <abstime>
- * != 0 and the call times out before the condition is signaled
- * <wait> returns -1 and sets errno to ETIME.
- */
- int wait (const ACE_Time_Value *abstime);
-
- /// Block on condition.
- int wait (void);
-
- /**
- * Block on condition or until absolute time-of-day has passed. If
- * abstime == 0 use "blocking" wait() semantics on the <mutex>
- * passed as a parameter (this is useful if you need to store the
- * <Condition> in shared memory). Else, if <abstime> != 0 and the
- * call times out before the condition is signaled <wait> returns -1
- * and sets errno to ETIME.
- */
- int wait (MUTEX &mutex, const ACE_Time_Value *abstime = 0);
-
- /// Signal one waiting thread.
- int signal (void);
-
- /// Signal *all* waiting threads.
- int broadcast (void);
-
- // = Utility methods.
- /// Explicitly destroy the condition variable.
- int remove (void);
-
- /// Returns a reference to the underlying mutex_;
- MUTEX &mutex (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-protected:
-#if defined (CHORUS)
- /// This condition resides in shared memory.
- ACE_cond_t *process_cond_;
-
- /**
- * Remember the name of the condition if we created it so we can
- * unlink it when we go away (only the actor that initialized the
- * memory can destroy it).
- */
- const ACE_TCHAR *condname_;
-#endif /* CHORUS */
-
- /// Condition variable.
- ACE_cond_t cond_;
-
- /// Reference to mutex lock.
- MUTEX &mutex_;
-
-private:
- // = Prevent assignment and initialization.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Condition<MUTEX> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Condition (const ACE_Condition<MUTEX> &))
-};
-
-/**
- * @class ACE_Thread_Condition
- *
- * @brief ACE_Condition variable wrapper that works within processes.
- *
- * A condition variable enables threads to atomically block and
- * test the condition under the protection of a mutual exclu-
- * sion lock (mutex) until the condition is satisfied. That is,
- * the mutex must have been held by the thread before calling
- * wait or signal on the condition. If the condition is false,
- * a thread blocks on a condition variable and atomically
- * releases the mutex that is waiting for the condition to
- * change. If another thread changes the condition, it may wake
- * up waiting threads by signaling the associated condition
- * variable. The waiting threads, upon awakening, reacquire the
- * mutex and re-evaluate the condition.
- */
-template <class MUTEX>
-class ACE_Thread_Condition : public ACE_Condition<MUTEX>
-{
-public:
- // = Initialization method.
- ACE_Thread_Condition (MUTEX &m, const ACE_TCHAR *name = 0, void *arg = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-};
-
-#endif /* ACE_HAS_THREADS */
-
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-
-/**
- * @class ACE_NULL_SYNCH
- *
- * @brief Implement a do nothing Synchronization wrapper that
- * typedefs the <ACE_Condition> and <ACE_Mutex> to the Null* versions.
- */
-class ACE_Export ACE_NULL_SYNCH
-{
-public:
- typedef ACE_Null_Mutex MUTEX;
- typedef ACE_Null_Mutex NULL_MUTEX;
- typedef ACE_Null_Mutex PROCESS_MUTEX;
- typedef ACE_Null_Mutex RECURSIVE_MUTEX;
- typedef ACE_Null_Mutex RW_MUTEX;
- typedef ACE_Null_Condition CONDITION;
- typedef ACE_Null_Condition RECURSIVE_CONDITION;
- typedef ACE_Null_Semaphore SEMAPHORE;
- typedef ACE_Null_Mutex NULL_SEMAPHORE;
-};
-
-#if defined (ACE_HAS_THREADS)
-
-class ACE_Process_Mutex;
-class ACE_Condition_Recursive_Thread_Mutex;
-
-/**
- * @class ACE_MT_SYNCH
- *
- * @brief Implement a default thread safe synchronization wrapper that
- * typedefs the <ACE_Condition> and <ACE_Mutex> to the
- * <ACE_Condition> and <ACE_Mutex> versions. Note that this
- * should be a template, but SunC++ 4.0.1 complains about
- * this...
- */
-class ACE_Export ACE_MT_SYNCH
-{
-public:
- typedef ACE_Thread_Mutex MUTEX;
- typedef ACE_Null_Mutex NULL_MUTEX;
- typedef ACE_Process_Mutex PROCESS_MUTEX;
- typedef ACE_Recursive_Thread_Mutex RECURSIVE_MUTEX;
- typedef ACE_RW_Thread_Mutex RW_MUTEX;
- typedef ACE_Condition_Thread_Mutex CONDITION;
- typedef ACE_Condition_Recursive_Thread_Mutex RECURSIVE_CONDITION;
- typedef ACE_Thread_Semaphore SEMAPHORE;
- typedef ACE_Null_Semaphore NULL_SEMAPHORE;
-};
-
-#endif /* ACE_HAS_THREADS */
-
-#define ACE_SYNCH_MUTEX ACE_SYNCH::MUTEX
-#define ACE_SYNCH_NULL_MUTEX ACE_SYNCH::NULL_MUTEX
-#define ACE_SYNCH_RECURSIVE_MUTEX ACE_SYNCH::RECURSIVE_MUTEX
-#define ACE_SYNCH_RW_MUTEX ACE_SYNCH::RW_MUTEX
-#define ACE_SYNCH_CONDITION ACE_SYNCH::CONDITION
-#define ACE_SYNCH_RECURSIVE_CONDITION ACE_SYNCH::RECURSIVE_CONDITION
-#define ACE_SYNCH_NULL_SEMAPHORE ACE_SYNCH::NULL_SEMAPHORE
-#define ACE_SYNCH_SEMAPHORE ACE_SYNCH::SEMAPHORE
-
-#else /* !ACE_HAS_TEMPLATE_TYPEDEFS */
-
-#if defined (ACE_HAS_OPTIMIZED_MESSAGE_QUEUE)
-#define ACE_NULL_SYNCH ACE_Null_Mutex, ACE_Null_Condition, ACE_Null_Mutex
-#define ACE_MT_SYNCH ACE_Thread_Mutex, ACE_Condition_Thread_Mutex, ACE_Thread_Semaphore
-#else
-#define ACE_NULL_SYNCH ACE_Null_Mutex, ACE_Null_Condition
-#define ACE_MT_SYNCH ACE_Thread_Mutex, ACE_Condition_Thread_Mutex
-#endif /* ACE_HAS_OPTIMIZED_MESSAGE_QUEUE */
-
-#if defined (ACE_HAS_THREADS)
-
-#define ACE_SYNCH_MUTEX ACE_Thread_Mutex
-#define ACE_SYNCH_NULL_MUTEX ACE_Null_Mutex
-#define ACE_SYNCH_RECURSIVE_MUTEX ACE_Recursive_Thread_Mutex
-#define ACE_SYNCH_RW_MUTEX ACE_RW_Thread_Mutex
-#define ACE_SYNCH_CONDITION ACE_Condition_Thread_Mutex
-#define ACE_SYNCH_RECURSIVE_CONDITION ACE_Condition_Recursive_Thread_Mutex
-#define ACE_SYNCH_SEMAPHORE ACE_Thread_Semaphore
-#define ACE_SYNCH_NULL_SEMAPHORE ACE_Null_Semaphore
-
-#else /* ACE_HAS_THREADS */
-
-#define ACE_SYNCH_MUTEX ACE_Null_Mutex
-#define ACE_SYNCH_NULL_MUTEX ACE_Null_Mutex
-#define ACE_SYNCH_RECURSIVE_MUTEX ACE_Null_Mutex
-#define ACE_SYNCH_RW_MUTEX ACE_Null_Mutex
-#define ACE_SYNCH_CONDITION ACE_Null_Condition
-#define ACE_SYNCH_RECURSIVE_CONDITION ACE_Null_Condition
-#define ACE_SYNCH_SEMAPHORE ACE_Null_Semaphore
-#define ACE_SYNCH_NULL_SEMAPHORE ACE_Null_Mutex
-
-#endif /* ACE_HAS_THREADS */
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
-// These are available on *all* platforms
-#define ACE_SYNCH_PROCESS_SEMAPHORE ACE_Process_Semaphore
-#define ACE_SYNCH_PROCESS_MUTEX ACE_Process_Mutex
-
-#if defined (ACE_HAS_THREADS)
-#define ACE_SYNCH ACE_MT_SYNCH
-#else /* ACE_HAS_THREADS */
-#define ACE_SYNCH ACE_NULL_SYNCH
-#endif /* ACE_HAS_THREADS */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Synch_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Synch_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Synch_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_SYNCH_T_H */
diff --git a/ace/Synch_T.i b/ace/Synch_T.i
deleted file mode 100644
index 50cd0a710e9..00000000000
--- a/ace/Synch_T.i
+++ /dev/null
@@ -1,452 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/Thread.h"
-
-template <class ACE_LOCK> ACE_INLINE int
-ACE_Guard<ACE_LOCK>::acquire (void)
-{
- return this->owner_ = this->lock_->acquire ();
-}
-
-template <class ACE_LOCK> ACE_INLINE int
-ACE_Guard<ACE_LOCK>::tryacquire (void)
-{
- return this->owner_ = this->lock_->tryacquire ();
-}
-
-template <class ACE_LOCK> ACE_INLINE int
-ACE_Guard<ACE_LOCK>::release (void)
-{
- if (this->owner_ == -1)
- return -1;
- else
- {
- this->owner_ = -1;
- return this->lock_->release ();
- }
-}
-
-template <class ACE_LOCK> ACE_INLINE
-ACE_Guard<ACE_LOCK>::ACE_Guard (ACE_LOCK &l)
- : lock_ (&l),
- owner_ (0)
-{
- this->acquire ();
-}
-
-template <class ACE_LOCK> ACE_INLINE
-ACE_Guard<ACE_LOCK>::ACE_Guard (ACE_LOCK &l, int block)
- : lock_ (&l),
- owner_ (0)
-{
- if (block)
- this->acquire ();
- else
- this->tryacquire ();
-}
-
-template <class ACE_LOCK> ACE_INLINE
-ACE_Guard<ACE_LOCK>::ACE_Guard (ACE_LOCK &l, int block, int become_owner)
- : lock_ (&l),
- owner_ (become_owner == 0 ? -1 : 0)
-{
- ACE_UNUSED_ARG (block);
-}
-
-// Implicitly and automatically acquire (or try to acquire) the
-// lock.
-
-template <class ACE_LOCK> ACE_INLINE
-ACE_Guard<ACE_LOCK>::~ACE_Guard (void)
-{
- this->release ();
-}
-
-template <class ACE_LOCK> ACE_INLINE int
-ACE_Guard<ACE_LOCK>::locked (void) const
-{
- return this->owner_ != -1;
-}
-
-template <class ACE_LOCK> ACE_INLINE int
-ACE_Guard<ACE_LOCK>::remove (void)
-{
- return this->lock_->remove ();
-}
-
-template <class ACE_LOCK> ACE_INLINE void
-ACE_Guard<ACE_LOCK>::disown (void)
-{
- this->owner_ = -1;
-}
-
-template <class ACE_LOCK> ACE_INLINE
-ACE_Write_Guard<ACE_LOCK>::ACE_Write_Guard (ACE_LOCK &m)
- : ACE_Guard<ACE_LOCK> (&m)
-{
- this->acquire_write ();
-}
-
-template <class ACE_LOCK> ACE_INLINE int
-ACE_Write_Guard<ACE_LOCK>::acquire_write (void)
-{
- return this->owner_ = this->lock_->acquire_write ();
-}
-
-template <class ACE_LOCK> ACE_INLINE int
-ACE_Write_Guard<ACE_LOCK>::acquire (void)
-{
- return this->owner_ = this->lock_->acquire_write ();
-}
-
-template <class ACE_LOCK> ACE_INLINE int
-ACE_Write_Guard<ACE_LOCK>::tryacquire_write (void)
-{
- return this->owner_ = this->lock_->tryacquire_write ();
-}
-
-template <class ACE_LOCK> ACE_INLINE int
-ACE_Write_Guard<ACE_LOCK>::tryacquire (void)
-{
- return this->owner_ = this->lock_->tryacquire_write ();
-}
-
-template <class ACE_LOCK> ACE_INLINE
-ACE_Write_Guard<ACE_LOCK>::ACE_Write_Guard (ACE_LOCK &m,
- int block)
- : ACE_Guard<ACE_LOCK> (&m)
-{
- if (block)
- this->acquire_write ();
- else
- this->tryacquire_write ();
-}
-
-template <class ACE_LOCK> ACE_INLINE int
-ACE_Read_Guard<ACE_LOCK>::acquire_read (void)
-{
- return this->owner_ = this->lock_->acquire_read ();
-}
-
-template <class ACE_LOCK> ACE_INLINE int
-ACE_Read_Guard<ACE_LOCK>::acquire (void)
-{
- return this->owner_ = this->lock_->acquire_read ();
-}
-
-template <class ACE_LOCK> ACE_INLINE int
-ACE_Read_Guard<ACE_LOCK>::tryacquire_read (void)
-{
- return this->owner_ = this->lock_->tryacquire_read ();
-}
-
-template <class ACE_LOCK> ACE_INLINE int
-ACE_Read_Guard<ACE_LOCK>::tryacquire (void)
-{
- return this->owner_ = this->lock_->tryacquire_read ();
-}
-
-template <class ACE_LOCK> ACE_INLINE
-ACE_Read_Guard<ACE_LOCK>::ACE_Read_Guard (ACE_LOCK &m)
- : ACE_Guard<ACE_LOCK> (&m)
-{
- this->acquire_read ();
-}
-
-template <class ACE_LOCK> ACE_INLINE
-ACE_Read_Guard<ACE_LOCK>::ACE_Read_Guard (ACE_LOCK &m,
- int block)
- : ACE_Guard<ACE_LOCK> (&m)
-{
- if (block)
- this->acquire_read ();
- else
- this->tryacquire_read ();
-}
-
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE
-ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::ACE_Lock_Adapter (ACE_LOCKING_MECHANISM &lock)
- : lock_ (&lock),
- delete_lock_ (0)
-{
-}
-
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE
-ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::~ACE_Lock_Adapter (void)
-{
- if (this->delete_lock_)
- delete this->lock_;
-}
-
-// Explicitly destroy the lock.
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::remove (void)
-{
- return this->lock_->remove ();
-}
-
-// Block the thread until the lock is acquired.
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::acquire (void)
-{
- return this->lock_->acquire ();
-}
-
-// Conditionally acquire the lock (i.e., won't block).
-
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::tryacquire (void)
-{
- return this->lock_->tryacquire ();
-}
-
-// Release the lock.
-
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::release (void)
-{
- return this->lock_->release ();
-}
-
-// Block until the thread acquires a read lock. If the locking
-// mechanism doesn't support read locks then this just calls
-// <acquire>.
-
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::acquire_read (void)
-{
- return this->lock_->acquire_read ();
-}
-
-// Block until the thread acquires a write lock. If the locking
-// mechanism doesn't support read locks then this just calls
-// <acquire>.
-
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::acquire_write (void)
-{
- return this->lock_->acquire_write ();
-}
-
-// Conditionally acquire a read lock. If the locking mechanism
-// doesn't support read locks then this just calls <acquire>.
-
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::tryacquire_read (void)
-{
- return this->lock_->tryacquire_read ();
-}
-
-// Conditionally acquire a write lock. If the locking mechanism
-// doesn't support write locks then this just calls <acquire>.
-
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::tryacquire_write (void)
-{
- return this->lock_->tryacquire_write ();
-}
-
-// Conditionally try to upgrade a lock held for read to a write lock.
-// If the locking mechanism doesn't support read locks then this just
-// calls <acquire>. Returns 0 on success, -1 on failure.
-
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::tryacquire_write_upgrade (void)
-{
- return this->lock_->tryacquire_write_upgrade ();
-}
-
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE
-ACE_Reverse_Lock<ACE_LOCKING_MECHANISM>::ACE_Reverse_Lock (ACE_LOCKING_MECHANISM &lock,
- ACE_Acquire_Method::METHOD_TYPE acquire_method)
- : lock_ (lock),
- acquire_method_ (acquire_method)
-{
-}
-
-// Explicitly destroy the lock.
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Reverse_Lock<ACE_LOCKING_MECHANISM>::remove (void)
-{
- return this->lock_.remove ();
-}
-
-// Release the lock.
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Reverse_Lock<ACE_LOCKING_MECHANISM>::acquire (void)
-{
- return this->lock_.release ();
-}
-
-// Release the lock.
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Reverse_Lock<ACE_LOCKING_MECHANISM>::tryacquire (void)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-// Acquire the lock.
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Reverse_Lock<ACE_LOCKING_MECHANISM>::release (void)
-{
- if (this->acquire_method_ == ACE_Acquire_Method::ACE_READ)
- return this->lock_.acquire_read ();
- else if (this->acquire_method_ == ACE_Acquire_Method::ACE_WRITE)
- return this->lock_.acquire_write ();
- else
- return this->lock_.acquire ();
-}
-
-// Release the lock.
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Reverse_Lock<ACE_LOCKING_MECHANISM>::acquire_read (void)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-// Release the lock.
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Reverse_Lock<ACE_LOCKING_MECHANISM>::acquire_write (void)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-// Release the lock.
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Reverse_Lock<ACE_LOCKING_MECHANISM>::tryacquire_read (void)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-// Release the lock.
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Reverse_Lock<ACE_LOCKING_MECHANISM>::tryacquire_write (void)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-// Release the lock.
-template <class ACE_LOCKING_MECHANISM> ACE_INLINE int
-ACE_Reverse_Lock<ACE_LOCKING_MECHANISM>::tryacquire_write_upgrade (void)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-#if defined (ACE_HAS_THREADS)
-
-template<class MUTEX> ACE_INLINE int
-ACE_Condition<MUTEX>::remove (void)
-{
- // ACE_TRACE ("ACE_Condition<MUTEX>::remove");
-
- // cond_destroy() is called in a loop if the condition variable is
- // BUSY. This avoids a condition where a condition is signaled and
- // because of some timing problem, the thread that is to be signaled
- // has called the cond_wait routine after the signal call. Since
- // the condition signal is not queued in any way, deadlock occurs.
-
- int result = 0;
-
-#if defined (CHORUS)
- // Are we the owner?
- if (this->process_cond_ && this->condname_)
- {
- // Only destroy the condition if we're the ones who initialized
- // it.
- while ((result = ACE_OS::cond_destroy (this->process_cond_)) == -1
- && errno == EBUSY)
- {
- ACE_OS::cond_broadcast (this->process_cond_);
- ACE_OS::thr_yield ();
- }
- ACE_OS::munmap (this->process_cond_,
- sizeof (ACE_cond_t));
- ACE_OS::shm_unlink (this->condname_);
- ACE_OS::free (ACE_static_cast (void *,
- ACE_const_cast (ACE_TCHAR *,
- this->condname_)));
- }
- else if (this->process_cond_)
- {
- ACE_OS::munmap (this->process_cond_,
- sizeof (ACE_cond_t));
- result = 0;
- }
- else
-#endif /* CHORUS */
-
- while ((result = ACE_OS::cond_destroy (&this->cond_)) == -1
- && errno == EBUSY)
- {
- ACE_OS::cond_broadcast (&this->cond_);
- ACE_OS::thr_yield ();
- }
-
- return result;
-}
-
-template<class MUTEX> ACE_INLINE MUTEX &
-ACE_Condition<MUTEX>::mutex (void)
-{
- // ACE_TRACE ("ACE_Condition<MUTEX>::mutex");
- return this->mutex_;
-}
-
-template <class MUTEX> ACE_INLINE int
-ACE_Condition<MUTEX>::signal (void)
-{
-// ACE_TRACE ("ACE_Condition<MUTEX>::signal");
-#if defined (CHORUS)
- if (this->process_cond_ != 0)
- return ACE_OS::cond_signal (this->process_cond_);
-#endif /* CHORUS */
- return ACE_OS::cond_signal (&this->cond_);
-}
-
-template <class MUTEX> ACE_INLINE int
-ACE_Condition<MUTEX>::broadcast (void)
-{
-// ACE_TRACE ("ACE_Condition<MUTEX>::broadcast");
-#if defined (CHORUS)
- if (this->process_cond_ != 0)
- return ACE_OS::cond_broadcast (this->process_cond_);
-#endif /* CHORUS */
- return ACE_OS::cond_broadcast (&this->cond_);
-}
-
-#endif /* ACE_HAS_THREADS */
-
-#if !(defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)))
-template <class TYPE> ACE_INLINE
-ACE_TSS<TYPE>::ACE_TSS (TYPE *type)
- : type_ (type)
-{
-}
-
-template <class TYPE> ACE_INLINE int
-ACE_TSS<TYPE>::ts_init (void) const
-{
- return 0;
-}
-
-template <class TYPE> ACE_INLINE TYPE *
-ACE_TSS<TYPE>::ts_object (void) const
-{
- return this->type_;
-}
-
-template <class TYPE> ACE_INLINE TYPE *
-ACE_TSS<TYPE>::ts_object (TYPE *type)
-{
- this->type_ = type;
- return this->type_;
-}
-
-template <class TYPE> ACE_INLINE TYPE *
-ACE_TSS<TYPE>::ts_get (void) const
-{
- return this->type_;
-}
-
-#endif /* ! (defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION))) */
diff --git a/ace/System_Time.cpp b/ace/System_Time.cpp
deleted file mode 100644
index 9e2f2b69380..00000000000
--- a/ace/System_Time.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-// System_Time.cpp
-// $Id$
-
-#include "ace/System_Time.h"
-
-ACE_RCSID(ace, System_Time, "$Id$")
-
-ACE_System_Time::ACE_System_Time (const ACE_TCHAR *poolname)
- : delta_time_ (0)
-{
- ACE_TRACE ("ACE_System_Time::ACE_System_Time");
-
- // Only create a new unique filename for the memory pool file
- // if the user didn't supply one...
- if (poolname == 0)
- {
-#if defined (ACE_DEFAULT_BACKING_STORE)
- // Create a temporary file.
- ACE_OS::strcpy (this->poolname_,
- ACE_DEFAULT_BACKING_STORE);
-#else /* ACE_DEFAULT_BACKING_STORE */
- if (ACE_Lib_Find::get_temp_dir (this->poolname_,
- MAXPATHLEN - 17) == -1)
- // -17 for ace-malloc-XXXXXX
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Temporary path too long, ")
- ACE_LIB_TEXT ("defaulting to current directory\n")));
- this->poolname_[0] = 0;
- }
-
- // Add the filename to the end
- ACE_OS::strcat (this->poolname_, ACE_LIB_TEXT ("ace-malloc-XXXXXX"));
-
-#endif /* ACE_DEFAULT_BACKING_STORE */
- }
- else
- ACE_OS::strsncpy (this->poolname_,
- poolname,
- (sizeof this->poolname_ / sizeof (ACE_TCHAR)));
-
- ACE_NEW (this->shmem_,
- ALLOCATOR (this->poolname_));
-}
-
-ACE_System_Time::~ACE_System_Time (void)
-{
- ACE_TRACE ("ACE_System_Time::~ACE_System_Time");
- delete this->shmem_;
-}
-
-// Get the local system time.
-
-int
-ACE_System_Time::get_local_system_time (ACE_UINT32 &time_out)
-{
- ACE_TRACE ("ACE_System_Time::get_local_system_time");
- time_out = ACE_OS::time (0);
- return 0;
-}
-
-int
-ACE_System_Time::get_local_system_time (ACE_Time_Value &time_out)
-{
- ACE_TRACE ("ACE_System_Time::get_local_system_time");
- time_out.sec (ACE_OS::time (0));
- return 0;
-}
-
-// Get the system time of the central time server.
-
-int
-ACE_System_Time::get_master_system_time (ACE_UINT32 &time_out)
-{
- ACE_TRACE ("ACE_System_Time::get_master_system_time");
-
- if (this->delta_time_ == 0)
- {
- // Try to find it
- void * temp;
- if (this->shmem_->find (ACE_DEFAULT_TIME_SERVER_STR, temp) == -1)
- {
- // No time entry in shared memory (meaning no Clerk exists)
- // so return the local time of the host.
- return this->get_local_system_time (time_out);
- }
- else
- // Extract the delta time.
- this->delta_time_ = (long *) temp;
- }
-
- ACE_UINT32 local_time;
-
- // If delta_time is positive, it means that the system clock is
- // ahead of our local clock so add delta to the local time to get an
- // approximation of the system time. Else if delta time is negative,
- // it means that our local clock is ahead of the system clock, so
- // return the last local time stored (to avoid time conflicts).
- if (*this->delta_time_ >=0 )
- {
- this->get_local_system_time (local_time);
- time_out = local_time + (ACE_UINT32) *this->delta_time_;
- }
- else
- // Return the last local time. Note that this is stored as the
- // second field in shared memory.
- time_out = *(this->delta_time_ + 1);
- return 0;
-}
-
-int
-ACE_System_Time::get_master_system_time (ACE_Time_Value &time_out)
-{
- ACE_TRACE ("ACE_System_Time::get_master_system_time");
- ACE_UINT32 to;
- if (this->get_master_system_time (to) == -1)
- return -1;
- time_out.sec (to);
- return 0;
-}
-
-// Synchronize local system time with the central time server using
-// specified mode (currently unimplemented).
-
-int
-ACE_System_Time::sync_local_system_time (ACE_System_Time::Sync_Mode)
-{
- ACE_TRACE ("ACE_System_Time::sync_local_system_time");
- ACE_NOTSUP_RETURN (-1);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex, ACE_Control_Block>;
-template class ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex>;
-template class ACE_Allocator_Adapter<ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex> >;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex, ACE_Control_Block>
-#pragma instantiate ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex>
-#pragma instantiate ACE_Allocator_Adapter<ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex> >
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/ace/System_Time.h b/ace/System_Time.h
deleted file mode 100644
index b8755481ff3..00000000000
--- a/ace/System_Time.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- C++ -*- */
-
-
-//=============================================================================
-/**
- * @file System_Time.h
- *
- * $Id$
- *
- * @author Prashant Jain
- * @author Tim H. Harrison and Douglas C. Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_SYSTEM_TIME_H
-#define ACE_SYSTEM_TIME_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Memory_Pool.h"
-#include "ace/Malloc_T.h"
-
-/**
- * @class ACE_System_Time
- *
- * @brief Defines the timer services of the OS interface to access the
- * system time either on the local host or on the central time
- * server in the network.
- */
-class ACE_Export ACE_System_Time
-{
-public:
- /**
- * Enumeration types to specify mode of synchronization with master
- * clock. Jump will set local system time directly (thus possibly
- * producing time gaps or ambiguous local system times. Adjust will
- * smoothly slow down or speed up the local system clock to reach
- * the system time of the master clock.
- */
- enum Sync_Mode { Jump, Adjust };
-
- /// Default constructor.
- ACE_System_Time (const ACE_TCHAR *poolname = 0);
-
- /// Default destructor.
- ~ACE_System_Time (void);
-
- /// Get the local system time, i.e., the value returned by
- /// <ACE_OS::time>.
- static int get_local_system_time (ACE_UINT32 &time_out);
-
- /// Get the local system time, i.e., the value returned by
- /// <ACE_OS::time>.
- static int get_local_system_time (ACE_Time_Value &time_out);
-
- /// Get the system time of the central time server.
- int get_master_system_time (ACE_UINT32 &time_out);
-
- /// Get the system time of the central time server.
- int get_master_system_time (ACE_Time_Value &time_out);
-
- /// Synchronize local system time with the central time server using
- /// specified mode.
- int sync_local_system_time (ACE_System_Time::Sync_Mode mode);
-
-private:
- typedef ACE_Malloc <ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex> MALLOC;
- typedef ACE_Allocator_Adapter<MALLOC> ALLOCATOR;
-
- /// Our allocator (used for obtaining system time from shared memory).
- ALLOCATOR *shmem_;
-
- /// The name of the pool used by the allocator.
- ACE_TCHAR poolname_[MAXPATHLEN + 1];
-
- /// Pointer to delta time kept in shared memory.
- long *delta_time_;
-};
-
-#include "ace/post.h"
-#endif /* ACE_SYSTEM_TIME_H */
diff --git a/ace/TLI.cpp b/ace/TLI.cpp
deleted file mode 100644
index 056bc09a0a3..00000000000
--- a/ace/TLI.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-// $Id$
-
-// Defines the member functions for the base class of the ACE_TLI
-// abstraction.
-
-#include "ace/TLI.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, TLI, "$Id$")
-
-#if defined (ACE_HAS_TLI)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/TLI.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_TLI)
-
-void
-ACE_TLI::dump (void) const
-{
- ACE_TRACE ("ACE_TLI::dump");
-}
-
-ACE_TLI::ACE_TLI (void)
-{
- ACE_TRACE ("ACE_TLI::ACE_TLI");
-#if defined (ACE_HAS_SVR4_TLI)
-// Solaris 2.4 ACE_TLI option handling is broken. Thus, we must do
-// the memory allocation ourselves... Thanks to John P. Hearn
-// (jph@ccrl.nj.nec.com) for the help.
-
- this->so_opt_req.opt.maxlen = sizeof (opthdr) + sizeof (long);
- ACE_NEW (this->so_opt_req.opt.buf,
- char[this->so_opt_req.opt.maxlen]);
-
- this->so_opt_ret.opt.maxlen = sizeof (opthdr) + sizeof (long);
- ACE_NEW (this->so_opt_ret.opt.buf,
- char[this->so_opt_ret.opt.maxlen]);
-
- if (this->so_opt_ret.opt.buf == 0)
- {
- delete [] this->so_opt_req.opt.buf;
- this->so_opt_req.opt.buf = 0;
- return;
- }
-#endif /* ACE_HAS_SVR4_TLI */
-}
-
-ACE_HANDLE
-ACE_TLI::open (const char device[], int oflag, struct t_info *info)
-{
- ACE_TRACE ("ACE_TLI::open");
- if (oflag == 0)
- oflag = O_RDWR;
- this->set_handle (ACE_OS::t_open ((char *) device, oflag, info));
-
- return this->get_handle ();
-}
-
-ACE_TLI::~ACE_TLI (void)
-{
- ACE_TRACE ("ACE_TLI::~ACE_TLI");
-#if defined (ACE_HAS_SVR4_TLI)
- if (this->so_opt_req.opt.buf)
- {
- delete [] this->so_opt_req.opt.buf;
- delete [] this->so_opt_ret.opt.buf;
- this->so_opt_req.opt.buf = 0;
- this->so_opt_ret.opt.buf = 0;
- }
-#endif /* ACE_HAS_SVR4_TLI */
-}
-
-ACE_TLI::ACE_TLI (const char device[], int oflag, struct t_info *info)
-{
- ACE_TRACE ("ACE_TLI::ACE_TLI");
- if (this->open (device, oflag, info) == ACE_INVALID_HANDLE)
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_TLI::ACE_TLI")));
-}
-
-int
-ACE_TLI::get_local_addr (ACE_Addr &sa) const
-{
- ACE_TRACE ("ACE_TLI::get_local_addr");
-#if defined (ACE_HAS_SVR4_TLI)
- struct netbuf name;
-
- name.maxlen = sa.get_size ();
- name.buf = (char *) sa.get_addr ();
-
- if (ACE_OS::ioctl (this->get_handle (), TI_GETMYNAME, &name) == -1)
-/* if (ACE_OS::t_getname (this->get_handle (), &name, LOCALNAME) == -1) */
- return -1;
- else
- return 0;
-#else /* SunOS4 */
- ACE_UNUSED_ARG (sa);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SVR4_TLI */
-}
-
-int
-ACE_TLI::close (void)
-{
- ACE_TRACE ("ACE_TLI::close");
- int result = 0; // Geisler: result must be int
-
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- result = ACE_OS::t_close (this->get_handle ());
- this->set_handle (ACE_INVALID_HANDLE);
- }
- return result;
-}
-
-int
-ACE_TLI::set_option (int level, int option, void *optval, int optlen)
-{
- ACE_TRACE ("ACE_TLI::set_option");
-#if defined (ACE_HAS_SVR4_TLI)
- /* Set up options for ACE_TLI */
-
- struct opthdr *opthdr = 0; /* See <sys/socket.h> for details on this format */
-
- this->so_opt_req.flags = T_NEGOTIATE;
- this->so_opt_req.opt.len = sizeof *opthdr + OPTLEN (optlen);
-
- if (this->so_opt_req.opt.len > this->so_opt_req.opt.maxlen)
- {
-#if !defined (ACE_HAS_SET_T_ERRNO)
- t_errno = TBUFOVFLW;
-#else
- set_t_errno (TBUFOVFLW);
-#endif /* ACE_HAS_SET_T_ERRNO */
- return -1;
- }
-
- opthdr = (struct opthdr *) this->so_opt_req.opt.buf;
- opthdr->level = level;
- opthdr->name = option;
- opthdr->len = OPTLEN (optlen);
- ACE_OS::memcpy (OPTVAL (opthdr), optval, optlen);
-
- return ACE_OS::t_optmgmt (this->get_handle (), &this->so_opt_req, &this->so_opt_ret);
-#else
- ACE_UNUSED_ARG (level);
- ACE_UNUSED_ARG (option);
- ACE_UNUSED_ARG (optval);
- ACE_UNUSED_ARG (optlen);
- return -1;
-#endif /* ACE_HAS_SVR4_TLI */
-}
-
-int
-ACE_TLI::get_option (int level, int option, void *optval, int &optlen)
-{
- ACE_TRACE ("ACE_TLI::get_option");
-#if defined (ACE_HAS_SVR4_TLI)
- struct opthdr *opthdr = 0; /* See <sys/socket.h> for details on this format */
-
- this->so_opt_req.flags = T_CHECK;
- this->so_opt_ret.opt.len = sizeof *opthdr + OPTLEN (optlen);
-
- if (this->so_opt_ret.opt.len > this->so_opt_ret.opt.maxlen)
- {
-#if !defined (ACE_HAS_SET_T_ERRNO)
- t_errno = TBUFOVFLW;
-#else
- set_t_errno (TBUFOVFLW);
-#endif /* ACE_HAS_SET_T_ERRNO */
- return -1;
- }
-
- opthdr = (struct opthdr *) this->so_opt_req.opt.buf;
- opthdr->level = level;
- opthdr->name = option;
- opthdr->len = OPTLEN (optlen);
- if (ACE_OS::t_optmgmt (this->get_handle (), &this->so_opt_req, &this->so_opt_ret) == -1)
- return -1;
- else
- {
- ACE_OS::memcpy (optval, OPTVAL (opthdr), optlen);
- return 0;
- }
-#else
- ACE_UNUSED_ARG (level);
- ACE_UNUSED_ARG (option);
- ACE_UNUSED_ARG (optval);
- ACE_UNUSED_ARG (optlen);
- return -1;
-#endif /* ACE_HAS_SVR4_TLI */
-}
-
-#endif /* ACE_HAS_TLI */
diff --git a/ace/TLI.h b/ace/TLI.h
deleted file mode 100644
index 4bce35bd78a..00000000000
--- a/ace/TLI.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file TLI.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_TLI_H
-#define ACE_TLI_H
-#include "ace/pre.h"
-
-#include "ace/IPC_SAP.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Addr.h"
-
-#if defined (ACE_HAS_TLI)
-
-// There's not a universal device name for TLI devices. If the platform
-// needs something other than /dev/tcp, it needs to be set up in the config.h
-// file as ACE_TLI_TCP_DEVICE.
-#ifndef ACE_TLI_TCP_DEVICE
-#define ACE_TLI_TCP_DEVICE "/dev/tcp"
-#endif
-
-// There's not a universal device name for XTI/ATM devices. If the platform
-// needs something other than /dev/xtisvc0, it needs to be set up in the
-// config.h file as ACE_XTI_ATM_DEVICE. This may be FORE vendor specific and
-// there may be no good default.
-#ifndef ACE_XTI_ATM_DEVICE
-#define ACE_XTI_ATM_DEVICE "/dev/xtisvc0"
-#endif
-
-/**
- * @class ACE_TLI
- *
- * @brief Defines the member functions for the base class of the
- * ACE_TLI abstraction.
- */
-class ACE_Export ACE_TLI : public ACE_IPC_SAP
-{
-public:
- // = Initialization and termination methods.
- /// Initialize a TLI endpoint.
- ACE_HANDLE open (const char device[],
- int oflag = O_RDWR,
- struct t_info *info = 0);
-
- /// Close a TLI endpoint and release resources.
- int close (void);
-
- /// Set underlying protocol options.
- int set_option (int level, int option, void *optval, int optlen);
-
- /// Get underlying protocol options.
- int get_option (int level, int option, void *optval, int &optlen);
-
- // = Calls to underlying TLI operations.
- int look (void) const;
- int rcvdis (struct t_discon * = 0) const;
- int snddis (struct t_call * = 0) const;
- int sndrel (void) const;
- int rcvrel (void) const;
-
- /// Return our local endpoint address.
- int get_local_addr (ACE_Addr &) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Ensure we are an abstract class.
- /// Default constructor.
- ACE_TLI (void);
-
- /// Destructor.
- ~ACE_TLI (void);
-
- /// Initialize a TLI endpoint.
- ACE_TLI (const char device[], int oflag = O_RDWR, struct t_info *info = 0);
-
-private:
-#if defined (ACE_HAS_SVR4_TLI)
- // Insane TLI option management.
- struct t_optmgmt so_opt_req;
- struct t_optmgmt so_opt_ret;
-#endif /* ACE_HAS_SVR4_TLI */
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/TLI.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_TLI */
-#include "ace/post.h"
-#endif /* ACE_TLI_H */
diff --git a/ace/TLI.i b/ace/TLI.i
deleted file mode 100644
index 8f32186deaf..00000000000
--- a/ace/TLI.i
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// TLI.i
-
-#include "ace/TLI.h"
-
-ACE_INLINE
-int
-ACE_TLI::look (void) const
-{
- ACE_TRACE ("ACE_TLI::look");
- return ACE_OS::t_look (this->get_handle ());
-}
-
-ACE_INLINE
-int
-ACE_TLI::rcvdis (struct t_discon *discon) const
-{
- ACE_TRACE ("ACE_TLI::rcvdis");
- return ACE_OS::t_rcvdis (this->get_handle (), discon);
-}
-
-ACE_INLINE
-int
-ACE_TLI::snddis (struct t_call *call) const
-{
- ACE_TRACE ("ACE_TLI::snddis");
- return ACE_OS::t_snddis (this->get_handle (), call);
-}
-
-ACE_INLINE
-int
-ACE_TLI::rcvrel (void) const
-{
- ACE_TRACE ("ACE_TLI::rcvrel");
- return ACE_OS::t_rcvrel (this->get_handle ());
-}
-
-ACE_INLINE
-int
-ACE_TLI::sndrel (void) const
-{
- ACE_TRACE ("ACE_TLI::sndrel");
- return ACE_OS::t_sndrel (this->get_handle ());
-}
diff --git a/ace/TLI_Acceptor.cpp b/ace/TLI_Acceptor.cpp
deleted file mode 100644
index 60b63359031..00000000000
--- a/ace/TLI_Acceptor.cpp
+++ /dev/null
@@ -1,547 +0,0 @@
-// $Id$
-
-#include "ace/TLI_Acceptor.h"
-#include "ace/Log_Msg.h"
-#include "ace/ACE.h"
-
-ACE_RCSID(ace, TLI_Acceptor, "$Id$")
-
-#if defined (ACE_HAS_TLI)
-
-// Put the actual definitions of the ACE_TLI_Request and
-// ACE_TLI_Request_Queue classes here to hide them from clients...
-
-struct ACE_TLI_Request
-{
- struct t_call *callp_;
- ACE_HANDLE handle_;
- ACE_TLI_Request *next_;
-};
-
-class ACE_TLI_Request_Queue
-{
-public:
- ACE_TLI_Request_Queue (void);
-
- ACE_HANDLE open (ACE_HANDLE fd, int size);
- int close (void);
-
- int enqueue (const char device[], int restart, int rwflag);
- int dequeue (ACE_TLI_Request *&ptr);
- int remove (int sequence_number);
-
- int is_empty (void) const;
- int is_full (void) const;
-
- ACE_TLI_Request *alloc (void);
- void free (ACE_TLI_Request *node);
-
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-private:
- ACE_HANDLE handle_;
- int size_;
- int current_count_;
- ACE_TLI_Request *base_;
- ACE_TLI_Request *tail_;
- ACE_TLI_Request *free_list_;
-};
-
-ACE_ALLOC_HOOK_DEFINE(ACE_TLI_Request_Queue)
-
-void
-ACE_TLI_Request_Queue::dump (void) const
-{
- ACE_TRACE ("ACE_TLI_Request_Queue::dump");
-}
-
-int
-ACE_TLI_Request_Queue::is_empty (void) const
-{
- ACE_TRACE ("ACE_TLI_Request_Queue::is_empty");
- return this->current_count_ == 0;
-}
-
-int
-ACE_TLI_Request_Queue::is_full (void) const
-{
- ACE_TRACE ("ACE_TLI_Request_Queue::is_full");
- return this->current_count_ + 1 == this->size_; // Add 1 for the dummy.
-}
-
-// Add a node to the free list stack.
-
-void
-ACE_TLI_Request_Queue::free (ACE_TLI_Request *node)
-{
- ACE_TRACE ("ACE_TLI_Request_Queue::free");
- node->next_ = this->free_list_;
- this->free_list_ = node;
-}
-
-// Remove a node from the free list stack.
-
-ACE_TLI_Request *
-ACE_TLI_Request_Queue::alloc (void)
-{
- ACE_TRACE ("ACE_TLI_Request_Queue::alloc");
- ACE_TLI_Request *temp = this->free_list_;
- this->free_list_ = this->free_list_->next_;
- return temp;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_TLI_Acceptor)
-
-void
-ACE_TLI_Acceptor::dump (void) const
-{
- ACE_TRACE ("ACE_TLI_Acceptor::dump");
-}
-
-ACE_TLI_Acceptor::ACE_TLI_Acceptor (void)
- : queue_ (0)
-{
- ACE_TRACE ("ACE_TLI_Acceptor::ACE_TLI_Acceptor");
-}
-
-int
-ACE_TLI_Request_Queue::dequeue (ACE_TLI_Request *&ptr)
-{
- ACE_TRACE ("ACE_TLI_Request_Queue::dequeue");
- ptr = this->tail_->next_;
- this->tail_->next_ = ptr->next_;
- this->current_count_--;
- return 0;
-}
-
-// This is hideous...
-
-static ACE_HANDLE
-open_new_endpoint (ACE_HANDLE listen_handle,
- const char dev[],
- struct t_call *callp,
- int rwf,
- ACE_Addr *remote_sap = 0)
-{
- ACE_TRACE ("open_new_endpoint");
-#if defined (ACE_PSOS)
- ACE_HANDLE fd = ACE_OS::t_open ((char *) dev,
- S_IRUSR | S_IWUSR,
- 0);
-#else
- ACE_HANDLE fd = ACE_OS::t_open ((char *) dev,
- O_RDWR,
- 0);
-#endif /* ACE_PSOS */
-
- struct t_bind req, *req_p = 0;
- if (remote_sap != 0)
- {
- req.qlen = 0;
- req.addr.buf = (char *) remote_sap->get_addr ();
- req.addr.len = remote_sap->get_size ();
- req.addr.maxlen = remote_sap->get_size ();
- req_p = &req;
- }
-
- if (fd == ACE_INVALID_HANDLE
- || ACE_OS::t_bind (fd, req_p, 0) == -1)
- fd = ACE_INVALID_HANDLE;
-#if defined (I_PUSH) && !defined (ACE_HAS_FORE_ATM_XTI)
- else if (rwf != 0 && ACE_OS::ioctl (fd,
- I_PUSH,
- ACE_const_cast (char *, "tirdwr"))
- == ACE_INVALID_HANDLE)
- fd = ACE_INVALID_HANDLE;
-#endif /* I_PUSH */
-
- if (fd == ACE_INVALID_HANDLE)
- ACE_OS::t_snddis (listen_handle,
- callp);
- return fd;
-}
-
-// Close down the acceptor and release resources.
-
-int
-ACE_TLI_Request_Queue::close (void)
-{
- ACE_TRACE ("ACE_TLI_Request_Queue::close");
- int res = 0;
-
- for (int i = 0; i < this->size_; i++)
- {
- ACE_TLI_Request &item = this->base_[i];
-
- item.handle_ = ACE_INVALID_HANDLE;
- if (ACE_OS::t_free ((char *) item.callp_,
- T_CALL) != 0)
- res = -1;
- }
-
- delete [] this->base_;
- this->base_ = 0;
- return res;
-}
-
-ACE_HANDLE
-ACE_TLI_Request_Queue::open (ACE_HANDLE f, int sz)
-{
- ACE_TRACE ("ACE_TLI_Request_Queue::open");
- this->handle_ = f;
- this->size_ = sz + 1; // Add one more for the dummy node.
-
- ACE_NEW_RETURN (this->base_,
- ACE_TLI_Request[this->size_],
- ACE_INVALID_HANDLE);
-
- // Initialize the ACE_Queue and the free list.
-
- for (int i = 0; i < this->size_; i++)
- {
- ACE_TLI_Request *item = &this->base_[i];
- this->free (item);
-
- item->handle_ = ACE_INVALID_HANDLE;
- item->callp_ = (t_call *) ACE_OS::t_alloc (this->handle_,
- T_CALL,
- T_ALL);
- if (item->callp_ == 0)
- return ACE_INVALID_HANDLE;
- }
-
- this->tail_ = this->alloc ();
- this->tail_->next_ = this->tail_;
- return 0;
-}
-
-ACE_TLI_Request_Queue::ACE_TLI_Request_Queue (void)
- : size_ (0),
- current_count_ (0),
- base_ (0),
- tail_ (0),
- free_list_ (0)
-{
- ACE_TRACE ("ACE_TLI_Request_Queue::ACE_TLI_Request_Queue");
-}
-
-// Listen for a new connection request and allocate appropriate data
-// structures when one arrives.
-
-int
-ACE_TLI_Request_Queue::enqueue (const char device[],
- int restart, int rwflag)
-{
- ACE_TRACE ("ACE_TLI_Request_Queue::enqueue");
- ACE_TLI_Request *temp = this->alloc ();
- ACE_TLI_Request &req = *this->tail_;
- int res;
-
- do
- res = ACE_OS::t_listen (this->handle_, req.callp_);
- while (res == -1
- && restart
- && t_errno == TSYSERR
- && errno == EINTR);
-
- if (res != -1)
- {
- req.handle_ = open_new_endpoint (this->handle_,
- device,
- req.callp_,
- rwflag);
- if (req.handle_ != ACE_INVALID_HANDLE)
- {
- temp->next_ = this->tail_->next_;
- this->tail_->next_ = temp;
- this->tail_ = temp;
- this->current_count_++;
- return 0;
- }
- }
-
- // Something must have gone wrong, so free up allocated space.
- this->free (temp);
- return -1;
-}
-
-// Locate and remove SEQUENCE_NUMBER from the list of pending
-// connections.
-
-int
-ACE_TLI_Request_Queue::remove (int sequence_number)
-{
- ACE_TRACE ("ACE_TLI_Request_Queue::remove");
- ACE_TLI_Request *prev = this->tail_;
-
- // Put the sequence # in the dummy node to simply the search...
- prev->callp_->sequence = sequence_number;
-
- ACE_TLI_Request *temp;
-
- for (temp = this->tail_->next_;
- temp->callp_->sequence != sequence_number;
- temp = temp->next_)
- prev = temp;
-
- if (temp == this->tail_)
- // Sequence # was not found, since we're back at the dummy node!
- return -1;
- else
- {
- prev->next_ = temp->next_;
- ACE_OS::t_close (temp->handle_);
- this->current_count_--;
- this->free (temp);
- return 0;
- }
-}
-
-ACE_HANDLE
-ACE_TLI_Acceptor::open (const ACE_Addr &remote_sap,
- int reuse_addr,
- int oflag,
- struct t_info *info,
- int qlen,
- const char dev[])
-{
- ACE_TRACE ("ACE_TLI_Acceptor::open");
- ACE_HANDLE res = 0;
- int one = 1;
-
- this->disp_ = 0;
-
- ACE_ALLOCATOR_RETURN (this->device_,
- ACE_OS::strdup (dev),
- ACE_INVALID_HANDLE);
- if (this->ACE_TLI::open (dev,
- oflag,
- info) == ACE_INVALID_HANDLE)
- res = ACE_INVALID_HANDLE;
-#if !defined (ACE_HAS_FORE_ATM_XTI)
- // Reusing the address causes problems with FORE's API. The issue
- // may be that t_optmgmt isn't fully supported by FORE. t_errno is
- // TBADOPT after the t_optmgmt call so maybe options are configured
- // differently for XTI than for TLI (at least for FORE's
- // implementation - XTI is supposed to be a superset of TLI).
- else if (reuse_addr
- && this->set_option (SOL_SOCKET,
- SO_REUSEADDR,
- &one,
- sizeof one) == -1)
- res = ACE_INVALID_HANDLE;
-#endif /* ACE_HAS_FORE_ATM_XTI */
- else if ((this->disp_ =
- (struct t_discon *) ACE_OS::t_alloc (this->get_handle (),
- T_DIS,
- T_ALL)) == 0)
- res = ACE_INVALID_HANDLE;
- else
- {
- struct t_bind req;
-
-#if defined (ACE_HAS_FORE_ATM_XTI)
- // Not sure why but FORE's t_bind call won't work if t_bind.qlen
- // != 1 Adjust the backlog accordingly.
- this->backlog_ = 1;
- req.qlen = 1;
-#else
- this->backlog_ = qlen;
- req.qlen = qlen;
-#endif /* ACE_HAS_FORE_ATM_XTI */
- req.addr.maxlen = remote_sap.get_size ();
-
- if (remote_sap == ACE_Addr::sap_any)
- // Note that if addr.len == 0 then ACE_TLI selects the port
- // number.
- req.addr.len = 0;
- else
- {
- req.addr.buf = (char *) remote_sap.get_addr ();
- req.addr.len = remote_sap.get_size ();
- }
-
- res = (ACE_HANDLE) ACE_OS::t_bind (this->get_handle (),
- &req,
- 0);
- if (res != ACE_INVALID_HANDLE)
- {
- ACE_NEW_RETURN (this->queue_,
- ACE_TLI_Request_Queue,
- ACE_INVALID_HANDLE);
- res = this->queue_->open (this->get_handle (),
- this->backlog_);
- }
- }
- if (res == ACE_INVALID_HANDLE)
- this->close ();
- return this->get_handle ();
-}
-
-ACE_TLI_Acceptor::ACE_TLI_Acceptor (const ACE_Addr &remote_sap,
- int reuse_addr,
- int oflag,
- struct t_info *info,
- int back,
- const char dev[])
-{
- ACE_TRACE ("ACE_TLI_Acceptor::ACE_TLI_Acceptor");
- if (this->open (remote_sap,
- reuse_addr,
- oflag,
- info,
- back,
- dev) == ACE_INVALID_HANDLE)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_TLI_Acceptor::ACE_TLI_Acceptor")));
-}
-
-int
-ACE_TLI_Acceptor::close (void)
-{
- ACE_TRACE ("ACE_TLI_Acceptor::close");
- if (this->device_ != 0)
- {
- if (this->queue_ != 0)
- {
- this->queue_->close ();
- delete this->queue_;
- }
-
- ACE_OS::t_free ((char *) this->disp_, T_DIS);
- ACE_OS::free (ACE_MALLOC_T (this->device_));
- this->disp_ = 0;
- this->device_ = 0;
- return this->ACE_TLI::close ();
- }
- return 0;
-}
-
-// Perform the logic required to handle the arrival of asynchronous
-// events while we are trying to accept a new connection request.
-
-int
-ACE_TLI_Acceptor::handle_async_event (int restart, int rwf)
-{
- ACE_TRACE ("ACE_TLI_Acceptor::handle_async_event");
- int event = this->look ();
-
- switch (event)
- {
- case T_DISCONNECT:
- this->rcvdis (this->disp_);
- this->queue_->remove (this->disp_->sequence);
- break;
- case T_LISTEN:
- this->queue_->enqueue (this->device_,
- restart,
- rwf);
- break;
- default:
- return -1;
- }
- return 0;
-}
-
-int
-ACE_TLI_Acceptor::accept (ACE_TLI_Stream &new_tli_sap,
- ACE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle,
- int rwf,
- netbuf *udata,
- netbuf *opt)
-{
- ACE_TRACE ("ACE_TLI_Acceptor::accept");
- ACE_UNUSED_ARG (reset_new_handle);
-
- ACE_TLI_Request *req = 0;
- int res = 0;
- if (timeout != 0
- && ACE::handle_timed_accept (this->get_handle (),
- timeout,
- restart) == -1)
- return -1;
- else if (this->queue_->is_empty ())
- {
- req = this->queue_->alloc ();
-
- do
- res = ACE_OS::t_listen (this->get_handle (),
- req->callp_);
- while (res == -1
- && restart
- && errno == EINTR);
-
- if (res != -1)
- {
- req->handle_ = open_new_endpoint (this->get_handle (),
- this->device_,
- req->callp_,
- rwf
-#if defined (ACE_WIN32)
- , remote_addr
-#endif /* ACE_WIN32 */
- );
- if (req->handle_ == ACE_INVALID_HANDLE)
- res = -1;
- else
- res = 0;
- }
- }
- else
- res = this->queue_->dequeue (req);
-
- if (udata != 0)
- ACE_OS::memcpy ((void *) &req->callp_->udata,
- (void *) udata,
- sizeof *udata);
- if (opt != 0)
- ACE_OS::memcpy ((void *) &req->callp_->opt,
- (void *) opt,
- sizeof *opt);
-
- while (res != -1)
- {
- res = ACE_OS::t_accept (this->get_handle (),
- req->handle_,
- req->callp_);
- if (res != -1)
- break; // Got one!
- else if (t_errno == TLOOK)
- res = this->handle_async_event (restart, rwf);
- else if (restart && t_errno == TSYSERR && errno == EINTR)
- res = 0;
- }
-
- if (res == -1)
- {
- if (errno != EWOULDBLOCK)
- {
- new_tli_sap.set_handle (ACE_INVALID_HANDLE);
- if (req->handle_ != ACE_INVALID_HANDLE)
- ACE_OS::t_close (req->handle_);
- }
- }
- else
- {
- new_tli_sap.set_handle (req->handle_);
-
- if (remote_addr != 0)
- remote_addr->set_addr ((void *) req->callp_->addr.buf,
- req->callp_->addr.len);
- }
-
- req->handle_ = ACE_INVALID_HANDLE;
- this->queue_->free (req);
- new_tli_sap.set_rwflag (rwf);
- return new_tli_sap.get_handle () == ACE_INVALID_HANDLE ? -1 : 0;
-}
-
-#endif /* ACE_HAS_TLI */
diff --git a/ace/TLI_Acceptor.h b/ace/TLI_Acceptor.h
deleted file mode 100644
index 2112bf4535c..00000000000
--- a/ace/TLI_Acceptor.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file TLI_Acceptor.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_TLI_ACCEPTOR_H
-#define ACE_TLI_ACCEPTOR_H
-#include "ace/pre.h"
-
-#include "ace/TLI.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Time_Value.h"
-#include "ace/TLI_Stream.h"
-
-#if defined (ACE_HAS_TLI)
-
-// Forward reference...
-class ACE_TLI_Request_Queue;
-
-/**
- * @class ACE_TLI_Acceptor
- *
- * @brief Defines the member functions for ACE_TLI_Acceptor abstraction.
- *
- * This class implements the algorithm described in Steve Rago's
- * book on System V UNIX network programming. It basically
- * makes TLI look like the C++ SOCK_SAP socket wrappers with
- * respect to establishing passive-mode listener endpoints.
- */
-class ACE_Export ACE_TLI_Acceptor : public ACE_TLI
-{
-public:
- friend class ACE_Request_Queue;
-
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_TLI_Acceptor (void);
-
- /// Initiate a passive mode socket.
- ACE_TLI_Acceptor (const ACE_Addr &remote_sap,
- int reuse_addr = 0,
- int oflag = O_RDWR,
- struct t_info *info = 0,
- int backlog = ACE_DEFAULT_BACKLOG,
- const char device[] = ACE_TLI_TCP_DEVICE);
-
- /// Initiate a passive mode socket.
- ACE_HANDLE open (const ACE_Addr &remote_sap,
- int reuse_addr = 0,
- int oflag = O_RDWR,
- struct t_info *info = 0,
- int backlog = ACE_DEFAULT_BACKLOG,
- const char device[] = ACE_TLI_TCP_DEVICE);
-
- /// Close down the acceptor and release resources.
- int close (void);
-
- // = Passive connection acceptance method.
-
- /**
- * Accept a new data transfer connection. A <timeout> of 0 means
- * block forever, a <timeout> of {0, 0} means poll. <restart> == 1
- * means "restart if interrupted."
- */
- int accept (ACE_TLI_Stream &new_tli_sap,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0,
- int rwflag = 1,
- netbuf *udata = 0,
- netbuf *opt = 0);
-
- // = Meta-type info
- typedef ACE_INET_Addr PEER_ADDR;
- typedef ACE_TLI_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Network "device" we are using.
- const char *device_;
-
- /// Number of connections to queue.
- int backlog_;
-
- /// Are we using "tirdwr" mod?
- int rwflag_;
-
- /// Handle TLI accept insanity...
- int handle_async_event (int restart, int rwflag);
-
- /// Used for queueing up pending requests.
- ACE_TLI_Request_Queue *queue_;
-
- /// Used for handling disconnects
- struct t_discon *disp_;
-};
-
-#endif /* ACE_HAS_TLI */
-#include "ace/post.h"
-#endif /* ACE_TLI_ACCEPTOR_H */
diff --git a/ace/TLI_Connector.cpp b/ace/TLI_Connector.cpp
deleted file mode 100644
index 53491547734..00000000000
--- a/ace/TLI_Connector.cpp
+++ /dev/null
@@ -1,248 +0,0 @@
-// TLI_Connector.cpp
-// $Id$
-
-#include "ace/Handle_Set.h"
-#include "ace/TLI_Connector.h"
-#include "ace/ACE.h"
-
-ACE_RCSID(ace, TLI_Connector, "$Id$")
-
-#if defined (ACE_HAS_TLI)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/TLI_Connector.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_TLI_Connector)
-
-void
-ACE_TLI_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_TLI_Connector::dump");
-}
-
-ACE_TLI_Connector::ACE_TLI_Connector (void)
-{
- ACE_TRACE ("ACE_TLI_Connector::ACE_TLI_Connector");
-}
-
-// Connect the <new_stream> to the <remote_sap>, waiting up to
-// <timeout> amount of time if necessary. It's amazing how
-// complicated this is to do in TLI...
-
-int
-ACE_TLI_Connector::connect (ACE_TLI_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int /* perms */,
- const char device[],
- struct t_info *info,
- int rwf,
- struct netbuf *udata,
- struct netbuf *opt)
-{
- ACE_TRACE ("ACE_TLI_Connector::connect");
- int result = 0;
-
- // Only open a new endpoint if we don't already have a valid handle.
-
- if (new_stream.get_handle () == ACE_INVALID_HANDLE
- && new_stream.open (device, flags, info) == ACE_INVALID_HANDLE)
- return -1;
-
- if (local_sap != ACE_Addr::sap_any)
- {
- // Bind the local endpoint to a specific addr.
-
- struct t_bind *localaddr;
-
- localaddr = (struct t_bind *)
- ACE_OS::t_alloc (new_stream.get_handle (), T_BIND, T_ADDR);
-
- if (localaddr == 0)
- result = -1;
- else
- {
- int one = 1;
-#if !defined (ACE_HAS_FORE_ATM_XTI)
- // Reusing the address causes problems with FORE's API. The
- // issue may be that t_optmgmt isn't fully supported by
- // FORE. t_errno is TBADOPT after the t_optmgmt call so
- // maybe options are configured differently for XTI than for
- // TLI (at least for FORE's implementation - XTI is supposed
- // to be a superset of TLI).
- if (reuse_addr
- && new_stream.set_option (SOL_SOCKET,
- SO_REUSEADDR,
- &one,
- sizeof one) == -1)
- result = -1;
- else
-#endif /* ACE_HAS_FORE_ATM_XTI */
- {
- void *addr_buf = local_sap.get_addr ();
- localaddr->addr.len = local_sap.get_size ();
- ACE_OS::memcpy(localaddr->addr.buf,
- addr_buf,
- localaddr->addr.len);
-
- if (ACE_OS::t_bind (new_stream.get_handle (),
- localaddr,
- localaddr) == -1)
- result = -1;
-
- ACE_OS::t_free ((char *) localaddr,
- T_BIND);
- }
- }
-
- if (result == -1)
- {
- new_stream.close ();
- return -1;
- }
- }
- // Let TLI select the local endpoint addr.
- else if (ACE_OS::t_bind (new_stream.get_handle (), 0, 0) == -1)
- return -1;
-
- struct t_call *callptr = 0;
-
- callptr = (struct t_call *)
- ACE_OS::t_alloc (new_stream.get_handle (), T_CALL, T_ADDR);
-
- if (callptr == 0)
- {
- new_stream.close ();
- return -1;
- }
-
- void *addr_buf = remote_sap.get_addr ();
- callptr->addr.len = remote_sap.get_size ();
- ACE_OS::memcpy (callptr->addr.buf,
- addr_buf,
- callptr->addr.len);
- //callptr->addr.buf = (char *) remote_sap.get_addr ();
-
- if (udata != 0)
- ACE_OS::memcpy ((void *) &callptr->udata, (void *) udata, sizeof *udata);
- if (opt != 0)
- ACE_OS::memcpy ((void *) &callptr->opt, (void *) opt, sizeof *opt);
-
- // Connect to remote endpoint.
-#if defined (ACE_HAS_FORE_ATM_XTI)
- // FORE's XTI/ATM driver has problems with ioctl/fcntl calls so (at least
- // for now) always have blocking calls.
- timeout = 0;
-#endif /* ACE_HAS_FORE_ATM_XTI */
-
- if (timeout != 0) // Enable non-blocking, if required.
- {
- if (new_stream.enable (ACE_NONBLOCK) == -1)
- result = -1;
-
- // Do a non-blocking connect.
- if (ACE_OS::t_connect (new_stream.get_handle (), callptr, 0) == -1)
- {
- result = -1;
-
- // Check to see if we simply haven't connected yet on a
- // non-blocking handle or whether there's really an error.
- if (t_errno == TNODATA)
- {
- if (timeout->sec () == 0 && timeout->usec () == 0)
- errno = EWOULDBLOCK;
- else
- result = this->complete (new_stream, 0, timeout);
- }
- else if (t_errno == TLOOK && new_stream.look () == T_DISCONNECT)
- new_stream.rcvdis ();
- }
- }
- // Do a blocking connect to the server.
- else if (ACE_OS::t_connect (new_stream.get_handle (), callptr, 0) == -1)
- result = -1;
-
- if (result != -1)
- {
- new_stream.set_rwflag (rwf);
-#if defined (I_PUSH) && !defined (ACE_HAS_FORE_ATM_XTI)
- if (new_stream.get_rwflag ())
- result = ACE_OS::ioctl (new_stream.get_handle (),
- I_PUSH,
- ACE_const_cast (char *, "tirdwr"));
-#endif /* I_PUSH */
- }
- else if (!(errno == EWOULDBLOCK || errno == ETIME))
- {
- // If things have gone wrong, close down and return an error.
- new_stream.close ();
- new_stream.set_handle (ACE_INVALID_HANDLE);
- }
-
- if (ACE_OS::t_free ((char *) callptr, T_CALL) == -1)
- return -1;
- return result;
-}
-
-// Try to complete a non-blocking connection.
-
-int
-ACE_TLI_Connector::complete (ACE_TLI_Stream &new_stream,
- ACE_Addr *remote_sap,
- ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_TLI_Connector::complete");
-#if defined (ACE_WIN32)
- if (WaitForSingleObject (new_stream.get_handle(), tv->msec()) == WAIT_OBJECT_0)
- {
- if (ACE_OS::t_look (new_stream.get_handle()) == T_CONNECT)
- return t_rcvconnect (new_stream.get_handle(), 0);
- else
- return -1;
- }
- else
- return -1;
-#else
- ACE_HANDLE h = ACE::handle_timed_complete (new_stream.get_handle (),
- tv,
- 1);
- if (h == ACE_INVALID_HANDLE)
- {
- new_stream.close ();
- return -1;
- }
- else // We've successfully connected!
- {
- if (remote_sap != 0)
- {
-#if defined (ACE_HAS_SVR4_TLI)
- struct netbuf name;
-
- name.maxlen = remote_sap->get_size ();
- name.buf = (char *) remote_sap->get_addr ();
-
- if (ACE_OS::ioctl (new_stream.get_handle (),
- TI_GETPEERNAME,
- &name) == -1)
-#else /* SunOS4 */
- if (0)
-#endif /* ACE_HAS_SVR4_TLI */
- {
- new_stream.close ();
- return -1;
- }
- }
-
- // Start out with non-blocking disabled on the <new_stream>.
- new_stream.disable (ACE_NONBLOCK);
-
- return 0;
- }
-#endif /* ACE_WIN32 */
-}
-
-#endif /* ACE_HAS_TLI */
diff --git a/ace/TLI_Connector.h b/ace/TLI_Connector.h
deleted file mode 100644
index 785f109712a..00000000000
--- a/ace/TLI_Connector.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file TLI_Connector.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_TLI_CONNECTOR_H
-#define ACE_TLI_CONNECTOR_H
-#include "ace/pre.h"
-
-#include "ace/TLI_Stream.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_TLI)
-
-/**
- * @class ACE_TLI_Connector
- *
- * @brief Defines an active connection factory for the ACE_TLI C++
- * wrappers.
- */
-class ACE_Export ACE_TLI_Connector
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_TLI_Connector (void);
-
- /**
- * Actively connect and produce a <new_stream> if things go well.
- * The <remote_sap> is the address that we are trying to connect
- * with. The <timeout> is the amount of time to wait to connect.
- * If it's 0 then we block indefinitely. If *timeout == {0, 0} then
- * the connection is done using non-blocking mode. In this case, if
- * the connection can't be made immediately the value of -1 is
- * returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then
- * this is the maximum amount of time to wait before timing out. If the
- * time expires before the connection is made <errno == ETIME>. The
- * <local_sap> is the value of local address to bind to. If it's
- * the default value of <ACE_Addr::sap_any> then the user is letting
- * the OS do the binding. If <reuse_addr> == 1 then the
- * <local_addr> is reused, even if it hasn't been cleanedup yet.
- */
- ACE_TLI_Connector (ACE_TLI_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = O_RDWR,
- int perms = 0,
- const char device[] = ACE_TLI_TCP_DEVICE,
- struct t_info *info = 0,
- int rw_flag = 1,
- struct netbuf *udata = 0,
- struct netbuf *opt = 0);
-
- /**
- * Actively connect and produce a <new_stream> if things go well.
- * The <remote_sap> is the address that we are trying to connect
- * with. The <timeout> is the amount of time to wait to connect.
- * If it's 0 then we block indefinitely. If *timeout == {0, 0} then
- * the connection is done using non-blocking mode. In this case, if
- * the connection can't be made immediately the value of -1 is
- * returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then
- * this is the maximum amount of time to wait before timing out. If the
- * time expires before the connection is made <errno == ETIME>. The
- * <local_sap> is the value of local address to bind to. If it's
- * the default value of <ACE_Addr::sap_any> then the user is letting
- * the OS do the binding. If <reuse_addr> == 1 then the
- * <local_addr> is reused, even if it hasn't been cleanedup yet.
- */
- int connect (ACE_TLI_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = O_RDWR,
- int perms = 0,
- const char device[] = ACE_TLI_TCP_DEVICE,
- struct t_info *info = 0,
- int rw_flag = 1,
- struct netbuf *udata = 0,
- struct netbuf *opt = 0);
-
- /**
- * Try to complete a non-blocking connection.
- * If connection completion is successful then <new_stream> contains
- * the connected ACE_SOCK_Stream. If <remote_sap> is non-NULL then it
- * will contain the address of the connected peer.
- */
- int complete (ACE_TLI_Stream &new_stream,
- ACE_Addr *remote_sap,
- ACE_Time_Value *tv);
-
- /// Resets any event associations on this handle
- int reset_new_handle (ACE_HANDLE handle);
-
- // = Meta-type info
- typedef ACE_INET_Addr PEER_ADDR;
- typedef ACE_TLI_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/TLI_Connector.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_TLI */
-#include "ace/post.h"
-#endif /* ACE_TLI_CONNECTOR_H */
diff --git a/ace/TLI_Connector.i b/ace/TLI_Connector.i
deleted file mode 100644
index 6539e19a6cd..00000000000
--- a/ace/TLI_Connector.i
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// TLI_Connector.i
-
-ACE_INLINE
-ACE_TLI_Connector::ACE_TLI_Connector (ACE_TLI_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms,
- const char device[],
- struct t_info *info,
- int rw_flag,
- struct netbuf *udata,
- struct netbuf *opt)
-{
- ACE_TRACE ("ACE_TLI_Connector::ACE_TLI_Connector");
- if (this->connect (new_stream,
- remote_sap,
- timeout,
- local_sap,
- reuse_addr,
- flags,
- perms,
- device,
- info,
- rw_flag,
- udata,
- opt) == -1
- && timeout != 0 && !(errno == EWOULDBLOCK || errno == ETIME))
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_TLI_Stream::ACE_TLI_Stream")));
-}
-
-ACE_INLINE
-int
-ACE_TLI_Connector::reset_new_handle (ACE_HANDLE handle)
-{
- ACE_UNUSED_ARG (handle);
- // Nothing to do here since the handle is not a socket
- return 0;
-}
-
diff --git a/ace/TLI_Stream.cpp b/ace/TLI_Stream.cpp
deleted file mode 100644
index 4a216137ea5..00000000000
--- a/ace/TLI_Stream.cpp
+++ /dev/null
@@ -1,230 +0,0 @@
-// $Id$
-
-/* Defines the member functions for the base class of the ACE_TLI_Stream
- abstraction. */
-
-#include "ace/TLI_Stream.h"
-#include "ace/ACE.h"
-
-ACE_RCSID(ace, TLI_Stream, "$Id$")
-
-#if defined (ACE_HAS_TLI)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/TLI_Stream.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_TLI_Stream)
-
-void
-ACE_TLI_Stream::dump (void) const
-{
- ACE_TRACE ("ACE_TLI_Stream::dump");
-}
-
-ACE_TLI_Stream::ACE_TLI_Stream (void)
- : rwflag_ (0)
-{
- ACE_TRACE ("ACE_TLI_Stream::ACE_TLI_Stream");
-}
-
-int
-ACE_TLI_Stream::get_remote_addr (ACE_Addr &sa) const
-{
- ACE_TRACE ("ACE_TLI_Stream::get_remote_addr");
-
-#if defined (ACE_HAS_SVR4_TLI)
- struct netbuf name;
- name.maxlen = sa.get_size ();
- name.buf = (char *) sa.get_addr ();
-
- // if (ACE_OS::t_getname (this->get_handle (), &name, REMOTENAME) == -1)
- if (ACE_OS::ioctl (this->get_handle (),
- TI_GETPEERNAME,
- &name) == -1)
- return -1;
- else
- return 0;
-#else /* SunOS4 */
- ACE_UNUSED_ARG (sa);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_SVR4_TLI */
-}
-
-// Send a release and then await the release from the other side.
-
-int
-ACE_TLI_Stream::active_close (void)
-{
- ACE_TRACE ("ACE_TLI_Stream::active_close");
- char buf;
-
- if (this->sndrel () == -1)
- return -1;
- else if (this->recv (&buf, sizeof buf) == -1)
- {
- if (t_errno == TLOOK && this->look () == T_ORDREL)
- {
- if (this->rcvrel () == -1)
- return -1;
- }
- else
- return -1;
- }
-
- return this->close ();
-}
-
-// Acknowledge the release from the other side and then send the
-// release to the other side.
-
-int
-ACE_TLI_Stream::passive_close (void)
-{
- ACE_TRACE ("ACE_TLI_Stream::passive_close");
-
- if (this->rcvrel () == -1)
- return -1;
- else if (this->sndrel () == -1)
- return -1;
-
- return this->close ();
-}
-
-int
-ACE_TLI_Stream::close (void)
-{
- ACE_TRACE ("ACE_TLI_Stream::close");
-
- ACE_HANDLE fd = this->get_handle ();
-
- this->set_handle (ACE_INVALID_HANDLE);
-
-#if !defined (ACE_WIN32)
- if (this->rwflag_)
- return ACE_OS::close (fd);
- else
-#endif /* ACE_WIN32 */
- return ACE_OS::t_close (fd);
-}
-
-ssize_t
-ACE_TLI_Stream::send (const void *buf,
- size_t n,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_TLI_Stream::send");
- return ACE::send (this->get_handle (),
- buf,
- n,
- timeout);
-}
-
-ssize_t
-ACE_TLI_Stream::send (const void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_TLI_Stream::send");
- return ACE::t_snd (this->get_handle (),
- buf,
- n,
- flags,
- timeout);
-}
-
-ssize_t
-ACE_TLI_Stream::recv (void *buf,
- size_t n,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_TLI_Stream::recv");
- return ACE::recv (this->get_handle (),
- buf,
- n,
- timeout);
-}
-
-ssize_t
-ACE_TLI_Stream::recv (void *buf,
- size_t n,
- int *flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_TLI_Stream::recv");
- int f = 0;
-
- if (flags == 0)
- flags = &f;
-
- return ACE::t_rcv (this->get_handle (),
- buf,
- n,
- flags,
- timeout);
-}
-
-ssize_t
-ACE_TLI_Stream::send_n (const void *buf,
- size_t n,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_TLI_Stream::send_n");
- return ACE::send_n (this->get_handle (),
- buf,
- n,
- timeout,
- bytes_transferred);
-}
-
-ssize_t
-ACE_TLI_Stream::send_n (const void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_TLI_Stream::send_n");
-
- return ACE::t_snd_n (this->get_handle (),
- buf,
- n,
- flags,
- timeout,
- bytes_transferred);
-}
-
-ssize_t
-ACE_TLI_Stream::recv_n (void *buf,
- size_t n,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_TLI_Stream::recv_n");
- return ACE::recv_n (this->get_handle (),
- buf,
- n,
- timeout,
- bytes_transferred);
-}
-
-ssize_t
-ACE_TLI_Stream::recv_n (void *buf,
- size_t n,
- int *flags,
- const ACE_Time_Value *timeout,
- size_t *bytes_transferred) const
-{
- ACE_TRACE ("ACE_TLI_Stream::recv_n");
-
- return ACE::t_rcv_n (this->get_handle (),
- buf,
- n,
- flags,
- timeout,
- bytes_transferred);
-}
-
-#endif /* ACE_HAS_TLI */
diff --git a/ace/TLI_Stream.h b/ace/TLI_Stream.h
deleted file mode 100644
index 750ba3cedd6..00000000000
--- a/ace/TLI_Stream.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file TLI_Stream.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_TLI_STREAM_H
-#define ACE_TLI_STREAM_H
-#include "ace/pre.h"
-
-#include "ace/TLI.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/INET_Addr.h"
-
-#if defined (ACE_HAS_TLI)
-
-/**
- * @class ACE_TLI_Stream
- *
- * @brief Defines the member functions for ACE_TLI_Stream abstraction.
- */
-class ACE_Export ACE_TLI_Stream : public ACE_TLI
-{
-public:
- friend class ACE_TLI_Acceptor;
- friend class ACE_TLI_Connector;
-
- // = Initialization and termination methods.
- /// Default constructor.
- ACE_TLI_Stream (void);
-
- // = TLI-specific shutdown operations.
- /// Close down and release resources.
- int close (void);
-
- /// Send a release and then await the release from the other side.
- int active_close (void);
-
- /// Acknowledge the release from the other side and then send the
- /// release to the other side.
- int passive_close (void);
-
- /// Return address of remotely connected peer.
- int get_remote_addr (ACE_Addr &) const;
-
- // = timod bindings
- /// Send an n byte buffer to the connected socket (uses t_snd(3)).
- ssize_t send (const void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Recv an n byte buffer from the connected socket (uses t_rcv(3)).
- ssize_t recv (void *buf,
- size_t n,
- int *flags,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Send exactly n bytes to the connected socket (uses t_snd(3)).
- ssize_t send_n (const void *buf,
- size_t n,
- int flags,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Recv exactly n bytes from the connected socket (uses t_rcv(3)).
- ssize_t recv_n (void *buf,
- size_t n,
- int *flags,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- // = tirdwr bindings
- /// Send an n byte buffer to the connected socket (uses write(2)).
- ssize_t send (const void *buf,
- size_t n,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Recv an n byte buffer from the connected socket (uses read(2)).
- ssize_t recv (void *buf,
- size_t n,
- const ACE_Time_Value *timeout = 0) const;
-
- /// Send n bytes, keep trying until n are sent (uses write(2)).
- ssize_t send_n (const void *buf,
- size_t n,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- /// Recv n bytes, keep trying until n are received (uses read (2)).
- ssize_t recv_n (void *buf,
- size_t n,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0) const;
-
- // = Meta-type info
- typedef ACE_INET_Addr PEER_ADDR;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Indicates whether the tirdwr module should be pushed
- int rwflag_;
-
- /// Get rwflag
- int get_rwflag (void);
-
- /// Set rwflag
- void set_rwflag (int);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/TLI_Stream.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_TLI */
-#include "ace/post.h"
-#endif /* ACE_TLI_STREAM_H */
diff --git a/ace/TLI_Stream.i b/ace/TLI_Stream.i
deleted file mode 100644
index 89583e7fb8b..00000000000
--- a/ace/TLI_Stream.i
+++ /dev/null
@@ -1,22 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// TLI_Stream.i
-
-#include "ace/TLI_Stream.h"
-
-ACE_INLINE
-void
-ACE_TLI_Stream::set_rwflag (int value)
-{
- ACE_TRACE ("ACE_TLI_Stream::set_rwflag");
- this->rwflag_ = value;
-}
-
-ACE_INLINE
-int
-ACE_TLI_Stream::get_rwflag (void)
-{
- ACE_TRACE ("ACE_TLI_Stream::get_rwflag");
- return this->rwflag_;
-}
diff --git a/ace/TP_Reactor.cpp b/ace/TP_Reactor.cpp
deleted file mode 100644
index 8c58233a391..00000000000
--- a/ace/TP_Reactor.cpp
+++ /dev/null
@@ -1,872 +0,0 @@
-// $Id$
-
-
-#include "ace/TP_Reactor.h"
-#include "ace/Reactor.h"
-#include "ace/Thread.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/TP_Reactor.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, TP_Reactor, "$Id$")
-
-
-ACE_ALLOC_HOOK_DEFINE (ACE_TP_Reactor)
-
-int
-ACE_TP_Token_Guard::grab_token (ACE_Time_Value *max_wait_time)
-{
- ACE_TRACE ("ACE_TP_Token_Guard::grab_token");
-
- // The order of these events is very subtle, modify with care.
-
- // Try to grab the lock. If someone if already there, don't wake
- // them up, just queue up in the thread pool.
- int result = 0;
-
- if (max_wait_time)
- {
- ACE_Time_Value tv = ACE_OS::gettimeofday ();
- tv += *max_wait_time;
-
- ACE_MT (result = this->token_.acquire_read (&ACE_TP_Reactor::no_op_sleep_hook,
- 0,
- &tv));
- }
- else
- {
- ACE_MT (result = this->token_.acquire_read (&ACE_TP_Reactor::no_op_sleep_hook));
- }
-
- // Now that this thread owns the token let us make
- // Check for timeouts and errors.
- if (result == -1)
- {
- if (errno == ETIME)
- return 0;
- else
- return -1;
- }
-
- // We got the token and so let us mark ourselves as owner
- this->owner_ = 1;
-
- return result;
-}
-
-
-int
-ACE_TP_Token_Guard::acquire_token (ACE_Time_Value *max_wait_time)
-{
- ACE_TRACE ("ACE_TP_Token_Guard::acquire_token");
-
- // Try to grab the lock. If someone if already there, don't wake
- // them up, just queue up in the thread pool.
- int result = 0;
-
- if (max_wait_time)
- {
- ACE_Time_Value tv = ACE_OS::gettimeofday ();
- tv += *max_wait_time;
-
- ACE_MT (result = this->token_.acquire (0,
- 0,
- &tv));
- }
- else
- {
- ACE_MT (result = this->token_.acquire ());
- }
-
- // Now that this thread owns the token let us make
- // Check for timeouts and errors.
- if (result == -1)
- {
- if (errno == ETIME)
- return 0;
- else
- return -1;
- }
-
- // We got the token and so let us mark ourseleves as owner
- this->owner_ = 1;
-
- return result;
-}
-
-
-
-ACE_TP_Reactor::ACE_TP_Reactor (ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq,
- int mask_signals,
- int s_queue)
- : ACE_Select_Reactor (sh, tq, 0, 0, mask_signals, s_queue)
-{
- ACE_TRACE ("ACE_TP_Reactor::ACE_TP_Reactor");
- this->supress_notify_renew (1);
-}
-
-ACE_TP_Reactor::ACE_TP_Reactor (size_t size,
- int rs,
- ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq,
- int mask_signals,
- int s_queue)
- : ACE_Select_Reactor (size, rs, sh, tq, 0, 0, mask_signals, s_queue)
-{
- ACE_TRACE ("ACE_TP_Reactor::ACE_TP_Reactor");
- this->supress_notify_renew (1);
-}
-
-int
-ACE_TP_Reactor::owner (ACE_thread_t, ACE_thread_t *o_id)
-{
- ACE_TRACE ("ACE_TP_Reactor::owner");
- if (o_id)
- *o_id = ACE_Thread::self ();
-
- return 0;
-}
-
-int
-ACE_TP_Reactor::owner (ACE_thread_t *t_id)
-{
- ACE_TRACE ("ACE_TP_Reactor::owner");
- *t_id = ACE_Thread::self ();
-
- return 0;
-}
-
-int
-ACE_TP_Reactor::handle_events (ACE_Time_Value *max_wait_time)
-{
- ACE_TRACE ("ACE_TP_Reactor::handle_events");
-
- // Stash the current time -- the destructor of this object will
- // automatically compute how much time elapsed since this method was
- // called.
- ACE_Countdown_Time countdown (max_wait_time);
-
- // The order of these events is very subtle, modify with care.
-
-
- // Instantiate the token guard which will try grabbing the token for
- // this thread.
- ACE_TP_Token_Guard guard (this->token_);
-
-
- int result = guard.grab_token (max_wait_time);
-
- // If the guard is NOT the owner just return the retval
- if (!guard.is_owner ())
- return result;
-
- // After getting the lock just just for deactivation..
- if (this->deactivated_)
- return -1;
-
- // Update the countdown to reflect time waiting for the token.
- countdown.update ();
-
-
- return this->dispatch_i (max_wait_time,
- guard);
-}
-
-
-int
-ACE_TP_Reactor::remove_handler (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
-{
- int result = 0;
- // Artificial scoping for grabbing and releasing the token
- {
- ACE_TP_Token_Guard guard (this->token_);
-
- // Acquire the token
- result = guard.acquire_token ();
-
- if (!guard.is_owner ())
- return result;
-
- // Call the remove_handler_i () with a DONT_CALL mask. We dont
- // want to call the handle_close with the token held.
- result = this->remove_handler_i (eh->get_handle (),
- mask | ACE_Event_Handler::DONT_CALL);
-
- if (result == -1)
- return -1;
- }
-
- // Close down the <Event_Handler> unless we've been instructed not
- // to.
- if (result == 0 && (ACE_BIT_ENABLED (mask, ACE_Event_Handler::DONT_CALL) == 0))
- eh->handle_close (ACE_INVALID_HANDLE, mask);
-
- return 0;
-}
-
-int
-ACE_TP_Reactor::remove_handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
-
- ACE_Event_Handler *eh = 0;
- int result = 0;
- // Artificial scoping for grabbing and releasing the token
- {
- ACE_TP_Token_Guard guard (this->token_);
-
- // Acquire the token
- result = guard.acquire_token ();
-
- if (!guard.is_owner ())
- return result;
-
- size_t slot = 0;
- eh = this->handler_rep_.find (handle, &slot);
-
- if (eh == 0)
- return -1;
-
- // Call the remove_handler_i () with a DONT_CALL mask. We dont
- // want to call the handle_close with the token held.
- result = this->remove_handler_i (handle,
- mask | ACE_Event_Handler::DONT_CALL);
-
- if (result == -1)
- return -1;
- }
-
- // Close down the <Event_Handler> unless we've been instructed not
- // to.
- // @@ Note: The check for result ==0 may be redundant, but shouldnt
- // be a problem.
- if (result ==0 && (ACE_BIT_ENABLED (mask, ACE_Event_Handler::DONT_CALL) == 0))
- eh->handle_close (handle, mask);
-
- return 0;
-}
-
-
-int
-ACE_TP_Reactor::remove_handler (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask m)
-{
- // Array of <Event_Handlers> corresponding to <handles>
- ACE_Event_Handler **aeh = 0;
-
- // Allocate memory for the size of the handle set
- ACE_NEW_RETURN (aeh,
- ACE_Event_Handler *[handles.num_set ()],
- -1);
-
- size_t index = 0;
-
- // Artificial scoping for grabbing and releasing the token
- {
- ACE_TP_Token_Guard guard (this->token_);
-
- // Acquire the token
- int result = guard.acquire_token ();
-
- if (!guard.is_owner ())
- return result;
-
- ACE_HANDLE h;
-
- ACE_Handle_Set_Iterator handle_iter (handles);
-
- while ((h = handle_iter ()) != ACE_INVALID_HANDLE)
- {
- size_t slot = 0;
- ACE_Event_Handler *eh =
- this->handler_rep_.find (h, &slot);
-
- if (this->remove_handler_i (h,
- m | ACE_Event_Handler::DONT_CALL) == -1)
- {
- delete [] aeh;
- return -1;
- }
-
- aeh [index] = eh;
- index ++;
- }
- }
-
- // Close down the <Event_Handler> unless we've been instructed not
- // to.
- if (ACE_BIT_ENABLED (m, ACE_Event_Handler::DONT_CALL) == 0)
- {
- for (size_t i = 0; i < index; i++)
- aeh[i]->handle_close (ACE_INVALID_HANDLE, m);
- }
-
- delete [] aeh;
- return 0;
-}
-
-int
-ACE_TP_Reactor::remove_handler (int /*signum*/,
- ACE_Sig_Action * /*new_disp*/,
- ACE_Sig_Action * /*old_disp*/,
- int /*sigkey*/)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-int
-ACE_TP_Reactor::remove_handler (const ACE_Sig_Set & /*sigset*/)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-
-int
-ACE_TP_Reactor::dispatch_i (ACE_Time_Value *max_wait_time,
- ACE_TP_Token_Guard &guard)
-{
- int event_count =
- this->get_event_for_dispatching (max_wait_time);
-
- int result = 0;
-
- // Note: We are passing the <event_count> around, to have record of
- // how many events still need processing. May be this could be
- // useful in future.
-
- // Dispatch signals
- if (event_count == -1)
- {
- // Looks like we dont do any upcalls in dispatch signals. If at
- // a later point of time, we decide to handle signals we have to
- // release the lock before we make any upcalls.. What is here
- // now is not the right thing...
- // @@ We need to do better..
- return this->handle_signals (event_count,
- guard);
- }
-
- // If there are no signals and if we had received a proper
- // event_count then first look at dispatching timeouts. We need to
- // handle timers early since they may have higher latency
- // constraints than I/O handlers. Ideally, the order of
- // dispatching should be a strategy...
-
- // NOTE: The event count does not have the number of timers that
- // needs dispatching. But we are still passing this along. We dont
- // need to do that. In the future we *may* have the timers also
- // returned through the <event_count>. Just passing that along for
- // that day.
- result = this->handle_timer_events (event_count,
- guard);
-
- if (result > 0)
- return result;
-
-
- // Else justgo ahead fall through for further handling
-
- if (event_count > 0)
- {
- // Next dispatch the notification handlers (if there are any to
- // dispatch). These are required to handle multiple-threads that
- // are trying to update the <Reactor>.
- result = this->handle_notify_events (event_count,
- guard);
-
- if (result > 0)
- return result;
-
- // Else just fall through for further handling
- }
-
- if (event_count > 0)
- {
- // Handle socket events
- return this->handle_socket_events (event_count,
- guard);
- }
-
- return 0;
-
-}
-
-
-
-
-int
-ACE_TP_Reactor::handle_signals (int & /*event_count*/,
- ACE_TP_Token_Guard & /*guard*/)
-{
- ACE_TRACE ("ACE_TP_Reactor::handle_signals");
-
- /*
- *
- * THIS METHOD SEEMS BROKEN
- *
- *
- */
- // First check for interrupts.
- // Bail out -- we got here since <select> was interrupted.
- if (ACE_Sig_Handler::sig_pending () != 0)
- {
- ACE_Sig_Handler::sig_pending (0);
-
- // This piece of code comes from the old TP_Reactor. We did not
- // handle signals at all then. If we happen to handle signals
- // in the TP_Reactor, we should then start worryiung about this
- // - Bala 21-Aug- 01
-#if 0
- // Not sure if this should be done in the TP_Reactor
- // case... leave it out for now. -Steve Huston 22-Aug-00
-
- // If any HANDLES in the <ready_set_> are activated as a
- // result of signals they should be dispatched since
- // they may be time critical...
- active_handle_count = this->any_ready (dispatch_set);
- #else
- // active_handle_count = 0;
-#endif
-
- // Record the fact that the Reactor has dispatched a
- // handle_signal() method. We need this to return the
- // appropriate count.
- return 1;
- }
-
- return -1;
-}
-
-
-int
-ACE_TP_Reactor::handle_timer_events (int & /*event_count*/,
- ACE_TP_Token_Guard &guard)
-{
- // Get the current time
- ACE_Time_Value cur_time (this->timer_queue_->gettimeofday () +
- this->timer_queue_->timer_skew ());
-
- // Look for a node in the timer queue whose timer <= the present
- // time.
- ACE_Timer_Node_Dispatch_Info info;
-
- if (this->timer_queue_->dispatch_info (cur_time,
- info))
- {
- // Release the token before dispatching notifies...
- guard.release_token ();
-
- // call the functor
- this->timer_queue_->upcall (info.type_,
- info.act_,
- cur_time);
-
- // We have dispatched a timer
- return 1;
- }
-
- return 0;
-}
-
-
-
-int
-ACE_TP_Reactor::handle_notify_events (int & /*event_count*/,
- ACE_TP_Token_Guard &guard)
-{
- // Get the handle on which notify calls could have occured
- ACE_HANDLE notify_handle =
- this->get_notify_handle ();
-
- int result = 0;
-
- // The notify was not in the list returned by
- // wait_for_multiple_events ().
- if (notify_handle == ACE_INVALID_HANDLE)
- return result;
-
- // Now just do a read on the pipe..
- ACE_Notification_Buffer buffer;
-
- // Clear the handle of the read_mask of our <ready_set_>
- this->ready_set_.rd_mask_.clr_bit (notify_handle);
-
- // Keep reading notifies till we empty it or till we have a
- // dispatchable buffer
- while (this->notify_handler_->read_notify_pipe (notify_handle,
- buffer) > 0)
- {
- // Just figure out whether we can read any buffer that has
- // dispatchable info. If not we have just been unblocked by
- // another thread trying to update the reactor. If we get any
- // buffer that needs dispatching we will dispatch that after
- // releasing the lock
- if (this->notify_handler_->is_dispatchable (buffer) > 0)
- {
- // Release the token before dispatching notifies...
- guard.release_token ();
-
- // Dispatch the upcall for the notify
- this->notify_handler_->dispatch_notify (buffer);
-
- // We had a successful dispatch.
- result = 1;
-
- // break out of the while loop
- break;
- }
- }
-
- // If we did ssome work, then we just return 1 which will allow us
- // to get out of here. If we return 0, then we will be asked to do
- // some work ie. dispacth socket events
- return result;
-}
-
-int
-ACE_TP_Reactor::handle_socket_events (int &event_count,
- ACE_TP_Token_Guard &guard)
-{
-
- // We got the lock, lets handle some I/O events.
- ACE_EH_Dispatch_Info dispatch_info;
-
- this->get_socket_event_info (dispatch_info);
-
- // If there is any event handler that is ready to be dispatched, the
- // dispatch information is recorded in dispatch_info.
- if (!dispatch_info.dispatch ())
- {
- return 0;
- }
-
- // Suspend the handler so that other threads don't start
- // dispatching it.
- // NOTE: This check was performed in older versions of the
- // TP_Reactor. Looks like it is a waste..
- if (dispatch_info.event_handler_ != this->notify_handler_)
- this->suspend_i (dispatch_info.handle_);
-
- // Release the lock. Others threads can start waiting.
- guard.release_token ();
-
- int result = 0;
-
- // If there was an event handler ready, dispatch it.
- // Decrement the event left
- --event_count;
-
- if (this->dispatch_socket_event (dispatch_info) == 0)
- ++result; // Dispatched an event
-
- // This is to get around a problem/ which is well described in
- // 1361. This is just a work around that would help applications
- // from resuming handles at the most inopportune moment.
- int flag =
- ACE_Event_Handler::ACE_EVENT_HANDLER_NOT_RESUMED;
-
- // Acquire the token since we want to access the handler
- // repository. The call to find () does not hold a lock and hence
- // this is required.
- guard.acquire_token ();
-
- // Get the handler for the handle that we have dispatched to.
- ACE_Event_Handler *eh =
- this->handler_rep_.find (dispatch_info.handle_);
-
- // This check is required for the following reasons
- // 1. If dispatch operation returned a -1, then there is a
- // possibility that the event handler could be deleted. In such
- // cases the pointer to the event_handler that <dispatch_info>
- // holds is set to 0.
- //
- // 2. If the application did its own memory management, a return
- // value of 0 cannot be believed since the event handler could
- // be deleted by the application based on some conditions. This
- // is *bad*. But we dont have much of a choice with the existing
- // reactor setup. To get around this, we can make a check for
- // the handler registered with the repository for the handle
- // that we have and compare with the handler that we
- // posses. Yeah, I know it is like touching your nose by taking
- // your hand around your head. But that is the way it is. This
- // is a fix for [BUGID 1231]
-
- if (dispatch_info.event_handler_ != 0 &&
- eh == dispatch_info.event_handler_)
- {
- flag =
- dispatch_info.event_handler_->resume_handler ();
- }
-
- // Use resume_i () since we hold the token already.
- if (dispatch_info.handle_ != ACE_INVALID_HANDLE &&
- dispatch_info.event_handler_ != this->notify_handler_ &&
- flag == ACE_Event_Handler::ACE_REACTOR_RESUMES_HANDLER)
- this->resume_i (dispatch_info.handle_);
-
- // Let me release the token here. This is not required since the
- // destruction of the object on the stack will take care of this.
- guard.release_token ();
-
- return result;
-}
-
-int
-ACE_TP_Reactor::mask_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops)
-{
- ACE_TRACE ("ACE_TP_Reactor::mask_ops");
- ACE_MT (ACE_GUARD_RETURN (ACE_Select_Reactor_Token,
- ace_mon, this->token_, -1));
-
- int result = 0;
-
- // If it looks like the handle isn't suspended, then
- // set the ops on the wait_set_, otherwise set the suspend_set_.
-
- if (this->suspend_set_.rd_mask_.is_set (handle) == 0
- && this->suspend_set_.wr_mask_.is_set (handle) == 0
- && this->suspend_set_.ex_mask_.is_set (handle) == 0)
-
- result = this->bit_ops (handle, mask,
- this->wait_set_,
- ops);
- else
-
- result = this->bit_ops (handle, mask,
- this->suspend_set_,
- ops);
-
- return result;
-}
-
-
-
-int
-ACE_TP_Reactor::get_event_for_dispatching (ACE_Time_Value *max_wait_time)
-{
-
- // If the reactor handler state has changed, clear any remembered
- // ready bits and re-scan from the master wait_set.
- if (this->state_changed_)
- {
- this->ready_set_.rd_mask_.reset ();
- this->ready_set_.wr_mask_.reset ();
- this->ready_set_.ex_mask_.reset ();
- this->state_changed_ = 0;
- }
- else
- {
- // This is a hack... somewhere, under certain conditions (which
- // I don't understand...) the mask will have all of its bits clear,
- // yet have a size_ > 0. This is an attempt to remedy the affect,
- // without knowing why it happens.
-
- //# if !(defined (__SUNPRO_CC) && (__SUNPRO_CC > 0x500))
- // SunCC seems to be having problems with this piece of code
- // here. I am not sure why though. This works fine with other
- // compilers. As we dont seem to understand when this piece of
- // code is needed and as it creates problems for SunCC we will
- // not compile this. Most of the tests in TAO seem to be happy
- // without this in SunCC.
- this->ready_set_.rd_mask_.sync (this->ready_set_.rd_mask_.max_set ());
- this->ready_set_.wr_mask_.sync (this->ready_set_.wr_mask_.max_set ());
- this->ready_set_.ex_mask_.sync (this->ready_set_.ex_mask_.max_set ());
- //# endif /* ! __SUNPRO_CC */
-
- }
-
- return this->wait_for_multiple_events (this->ready_set_,
- max_wait_time);
-}
-
-int
-ACE_TP_Reactor::get_socket_event_info (ACE_EH_Dispatch_Info &event)
-{
- event.reset (); // Nothing to dispatch yet
-
- // Check for dispatch in write, except, read. Only catch one, but if
- // one is caught, be sure to clear the handle from each mask in case
- // there is more than one mask set for it. This would cause problems
- // if the handler is suspended for dispatching, but its set bit in
- // another part of ready_set_ kept it from being dispatched.
- int found_io = 0;
- ACE_HANDLE handle;
-
- // @@todo: We can do quite a bit of code reduction here. Let me get
- // it to work before I do this.
- {
- ACE_Handle_Set_Iterator handle_iter (this->ready_set_.wr_mask_);
-
- while (!found_io && (handle = handle_iter ()) != ACE_INVALID_HANDLE)
- {
- if (this->is_suspended_i (handle))
- continue;
-
- // Remember this info
- event.set (handle,
- this->handler_rep_.find (handle),
- ACE_Event_Handler::WRITE_MASK,
- &ACE_Event_Handler::handle_output);
-
- this->clear_handle_read_set (handle);
- found_io = 1;
- }
- }
-
- if (!found_io)
- {
- ACE_Handle_Set_Iterator handle_iter (this->ready_set_.ex_mask_);
-
- while (!found_io && (handle = handle_iter ()) != ACE_INVALID_HANDLE)
- {
- if (this->is_suspended_i (handle))
- continue;
-
- // Remember this info
- event.set (handle,
- this->handler_rep_.find (handle),
- ACE_Event_Handler::EXCEPT_MASK,
- &ACE_Event_Handler::handle_exception);
-
- this->clear_handle_read_set (handle);
-
- found_io = 1;
- }
- }
-
- if (!found_io)
- {
- ACE_Handle_Set_Iterator handle_iter (this->ready_set_.rd_mask_);
-
- while (!found_io && (handle = handle_iter ()) != ACE_INVALID_HANDLE)
- {
- if (this->is_suspended_i (handle))
- continue;
-
- // Remember this info
- event.set (handle,
- this->handler_rep_.find (handle),
- ACE_Event_Handler::READ_MASK,
- &ACE_Event_Handler::handle_input);
-
- this->clear_handle_read_set (handle);
- found_io = 1;
- }
- }
-
- return found_io;
-}
-
-
-
-// Dispatches a single event handler
-int
-ACE_TP_Reactor::dispatch_socket_event (ACE_EH_Dispatch_Info &dispatch_info)
-{
- ACE_TRACE ("ACE_TP_Reactor::dispatch_socket_event");
-
- ACE_HANDLE handle = dispatch_info.handle_;
- ACE_Event_Handler *event_handler = dispatch_info.event_handler_;
- ACE_Reactor_Mask mask = dispatch_info.mask_;
- ACE_EH_PTMF callback = dispatch_info.callback_;
-
- // Check for removed handlers.
- if (event_handler == 0)
- return -1;
-
- // Upcall. If the handler returns positive value (requesting a
- // reactor callback) don't set the ready-bit because it will be
- // ignored if the reactor state has changed. Just call back
- // as many times as the handler requests it. Other threads are off
- // handling other things.
- int status = 1;
- while (status > 0)
- status = (event_handler->*callback) (handle);
-
- // If negative, remove from Reactor
- if (status < 0)
- {
- int retval =
- this->remove_handler (handle, mask);
-
- // As the handler is no longer valid, invalidate the handle
- dispatch_info.event_handler_ = 0;
- dispatch_info.handle_ = ACE_INVALID_HANDLE;
-
- return retval;
- }
-
- // assert (status >= 0);
- return 0;
-}
-
-int
-ACE_TP_Reactor::resumable_handler (void)
-{
- return 1;
-}
-
-int
-ACE_TP_Reactor::handle_events (ACE_Time_Value &max_wait_time)
-{
- return this->handle_events (&max_wait_time);
-}
-
-int
-ACE_TP_Reactor::mask_ops (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask,
- int ops)
-{
- return this->mask_ops (eh->get_handle (), mask, ops);
-}
-
-void
-ACE_TP_Reactor::notify_handle (ACE_HANDLE,
- ACE_Reactor_Mask,
- ACE_Handle_Set &,
- ACE_Event_Handler *eh,
- ACE_EH_PTMF)
-{
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_TP_Reactor::notify_handle: ")
- ACE_LIB_TEXT ("Wrong version of notify_handle() got called \n")));
-
- ACE_ASSERT (eh == 0);
- ACE_UNUSED_ARG (eh);
-}
-
-ACE_HANDLE
-ACE_TP_Reactor::get_notify_handle (void)
-{
- // Call the notify handler to get a handle on which we would have a
- // notify waiting
- ACE_HANDLE read_handle =
- this->notify_handler_->notify_handle ();
-
- // Check whether the rd_mask has been set on that handle. If so
- // return the handle.
- if (read_handle != ACE_INVALID_HANDLE &&
- this->ready_set_.rd_mask_.is_set (read_handle))
- {
- return read_handle;
- }
- /*if (read_handle != ACE_INVALID_HANDLE)
- {
- ACE_Handle_Set_Iterator handle_iter (this->ready_set_.rd_mask_);
- ACE_HANDLE handle = ACE_INVALID_HANDLE;
-
- while ((handle = handle_iter ()) == read_handle)
- {
- return read_handle;
- }
- ACE_UNUSED_ARG (handle);
- }*/
-
- // None found..
- return ACE_INVALID_HANDLE;
-}
diff --git a/ace/TP_Reactor.h b/ace/TP_Reactor.h
deleted file mode 100644
index 2b08d87936d..00000000000
--- a/ace/TP_Reactor.h
+++ /dev/null
@@ -1,363 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file TP_Reactor.h
- *
- * $Id$
- *
- * The <ACE_TP_Reactor> (aka, Thread Pool Reactor) uses the
- * Leader/Followers pattern to demultiplex events among a pool of
- * threads. When using a thread pool reactor, an application
- * pre-spawns a _fixed_ number of threads. When these threads
- * invoke the <ACE_TP_Reactor>'s <handle_events> method, one thread
- * will become the leader and wait for an event. The other
- * follower threads will queue up waiting for their turn to become
- * the leader. When an event occurs, the leader will pick a
- * follower to become the leader and go on to handle the event.
- * The consequence of using <ACE_TP_Reactor> is the amortization of
- * the costs used to creating threads. The context switching cost
- * will also reduce. More over, the total resources used by
- * threads are bounded because there are a fixed number of threads.
- *
- *
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_TP_REACTOR_H
-#define ACE_TP_REACTOR_H
-#include "ace/pre.h"
-
-#include "ace/Select_Reactor.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_EH_Dispatch_Info
- *
- * @brief This structure contains information of the activated event
- * handler.
- */
-class ACE_Export ACE_EH_Dispatch_Info
-{
-public:
-
- ACE_EH_Dispatch_Info (void);
-
- void set (ACE_HANDLE handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- ACE_EH_PTMF callback);
-
- void reset (void);
-
- int dispatch (void) const;
-
- ACE_HANDLE handle_;
- ACE_Event_Handler *event_handler_;
- ACE_Reactor_Mask mask_;
- ACE_EH_PTMF callback_;
-
- int dispatch_;
-
-private:
- ACE_UNIMPLEMENTED_FUNC (ACE_EH_Dispatch_Info (const ACE_EH_Dispatch_Info &))
- ACE_UNIMPLEMENTED_FUNC (ACE_EH_Dispatch_Info &operator= (const ACE_EH_Dispatch_Info &))
-};
-
-
-/**
- * @class ACE_TP_Token_Guard
- *
- * @brief A helper class that helps grabbing, releasing and waiting
- * on tokens for a thread that tries calling handle_events ().
- *
- * In short, this class will be owned by one thread by creating on the
- * stack. This class gives the status of the ownership of the token
- * and manages the ownership
- */
-
-class ACE_Export ACE_TP_Token_Guard
-{
-public:
-
- /// Constructor that will grab the token for us
- ACE_TP_Token_Guard (ACE_Select_Reactor_Token &token);
-
- /// Destructor. This will release the token if it hasnt been
- /// released till this point
- ~ACE_TP_Token_Guard (void);
-
- /// Release the token ..
- void release_token (void);
-
- /// Returns whether the thread that created this object ownes the
- /// token or not.
- int is_owner (void);
-
- /// A helper method that grabs the token for us, after which the
- /// thread that owns that can do some actual work.
- /// @todo Should probably be called acquire_read_token ()
- int grab_token (ACE_Time_Value *max_wait_time = 0);
-
- /**
- * A helper method that grabs the token for us, after which the
- * thread that owns that can do some actual work. This differs from
- * grab_token () as it uses acquire () to get the token instead of
- * acquire_read ()
- */
- int acquire_token (ACE_Time_Value *max_wait_time = 0);
-
-private:
-
- /// The Select Reactor token.
- ACE_Select_Reactor_Token &token_;
-
- /// Flag that indicate whether the thread that created this object
- /// owns the token or not. A value of 0 indicates that this class
- /// hasnt got the token (and hence the thread) and a value of 1
- /// vice-versa.
- int owner_;
-
-private:
-
- ACE_UNIMPLEMENTED_FUNC (ACE_TP_Token_Guard (void))
-};
-
-/**
- * @class ACE_TP_Reactor
- *
- * @brief Specialization of Select Reactor to support thread-pool based
- * event dispatching.
- *
- * One of the short comings of the Select_Reactor in ACE is that
- * it did not support a thread pool based event dispatching
- * model, similar to the one in WFMO_Reactor. In
- * Select_Reactor, only thread can be blocked in <handle_events>
- * at any given time.
- * A new Reactor has been added to ACE that removes this
- * short-coming. TP_Reactor is a specialization of Select
- * Reactor to support thread-pool based event dispatching. This
- * Reactor takes advantage of the fact that events reported by
- * <select> are persistent if not acted upon immediately. It
- * works by remembering the event handler that just got
- * activated, releasing the internal lock (so that some other
- * thread can start waiting in the event loop) and then
- * dispatching the event handler outside the context of the
- * Reactor lock.
- * This Reactor is best suited for situations when the callbacks
- * to event handlers can take arbitrarily long and/or a number
- * of threads are available to run the event loops.
- * Note that callback code in Event Handlers
- * (e.g. Event_Handler::handle_input) does not have to be
- * modified or made thread-safe for this Reactor. This is
- * because an activated Event Handler is suspended in the
- * Reactor before the upcall is made and resumed after the
- * upcall completes. Therefore, one Event Handler cannot be
- * called by multiple threads simultaneously.
- */
-class ACE_Export ACE_TP_Reactor : public ACE_Select_Reactor
-{
-public:
-
- // = Initialization and termination methods.
-
- /// Initialize <ACE_TP_Reactor> with the default size.
- ACE_TP_Reactor (ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0,
- int mask_signals = 1,
- int s_queue = ACE_Select_Reactor_Token::FIFO);
-
- /**
- * Initialize the <ACE_TP_Reactor> to manage
- * <max_number_of_handles>. If <restart> is non-0 then the
- * <ACE_Reactor>'s <handle_events> method will be restarted
- * automatically when <EINTR> occurs. If <signal_handler> or
- * <timer_queue> are non-0 they are used as the signal handler and
- * timer queue, respectively.
- */
- ACE_TP_Reactor (size_t max_number_of_handles,
- int restart = 0,
- ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0,
- int mask_signals = 1,
- int s_queue = ACE_Select_Reactor_Token::FIFO);
-
- // = Event loop drivers.
-
- /**
- * This event loop driver that blocks for <max_wait_time> before
- * returning. It will return earlier if timer events, I/O events,
- * or signal events occur. Note that <max_wait_time> can be 0, in
- * which case this method blocks indefinitely until events occur.
- *
- * <max_wait_time> is decremented to reflect how much time this call
- * took. For instance, if a time value of 3 seconds is passed to
- * handle_events and an event occurs after 2 seconds,
- * <max_wait_time> will equal 1 second. This can be used if an
- * application wishes to handle events for some fixed amount of
- * time.
- *
- * Returns the total number of <ACE_Event_Handler>s that were
- * dispatched, 0 if the <max_wait_time> elapsed without dispatching
- * any handlers, or -1 if something goes wrong.
- */
- virtual int handle_events (ACE_Time_Value *max_wait_time = 0);
-
- virtual int handle_events (ACE_Time_Value &max_wait_time);
-
-
- /// The following two overloaded methods are necessary as we dont
- /// want the TP_Reactor to call handle_close () with the token
- /// held.
- /**
- * Removes the <mask> binding of <eh> from the Select_Reactor. If
- * there are no more bindings for this <eh> then it is removed from
- * the Select_Reactor. Note that the Select_Reactor will call
- * <ACE_Event_Handler::get_handle> to extract the underlying I/O
- * handle.
- */
- virtual int remove_handler (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask);
-
- /**
- * Removes the <mask> bind of <Event_Handler> whose handle is
- * <handle> from the Select_Reactor. If there are no more bindings
- * for this <eh> then it is removed from the Select_Reactor.
- */
- virtual int remove_handler (ACE_HANDLE handle,
- ACE_Reactor_Mask);
-
- /**
- * Removes all the <mask> bindings for handles in the <handle_set>
- * bind of <Event_Handler>. If there are no more bindings for any
- * of these handlers then they are removed from the Select_Reactor.
- */
- virtual int remove_handler (const ACE_Handle_Set &handle_set,
- ACE_Reactor_Mask);
-
- /* @todo The following methods are not supported. Support for
- * signals is not available in the TP_Reactor. These methods will be
- * supported once signal handling is supported. We have to include
- * these two methods in the TP_Reactor to keep some compilers
- * silent.
- */
- /**
- * Remove the ACE_Event_Handler currently associated with <signum>.
- * <sigkey> is ignored in this implementation since there is only
- * one instance of a signal handler. Install the new disposition
- * (if given) and return the previous disposition (if desired by the
- * caller). Returns 0 on success and -1 if <signum> is invalid.
- */
- virtual int remove_handler (int signum,
- ACE_Sig_Action *new_disp,
- ACE_Sig_Action *old_disp = 0,
- int sigkey = -1);
-
- /// Calls <remove_handler> for every signal in <sigset>.
- virtual int remove_handler (const ACE_Sig_Set &sigset);
-
- /// Does the reactor allow the application to resume the handle on
- /// its own ie. can it pass on the control of handle resumption to
- /// the application. The TP reactor has can allow applications to
- /// resume handles. So return a +ve value.
- virtual int resumable_handler (void);
-
- /// GET/SET/ADD/CLR the dispatch mask "bit" bound with the <eh> and
- /// <mask>.
- virtual int mask_ops (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask,
- int ops);
-
- /// GET/SET/ADD/CLR the dispatch mask "bit" bound with the <handle>
- /// and <mask>.
- virtual int mask_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int ops);
-
- /// Called from handle events
- static void no_op_sleep_hook (void *);
-
- // = Any thread can perform a <handle_events>, override the owner()
- // methods to avoid the overhead of setting the owner thread.
-
- /// Set the new owner of the thread and return the old owner.
- virtual int owner (ACE_thread_t n_id, ACE_thread_t *o_id = 0);
-
- /// Return the current owner of the thread.
- virtual int owner (ACE_thread_t *);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Internal methods that do the actual work.
-
-
- /// Dispatch just 1 signal, timer, notification handlers
- int dispatch_i (ACE_Time_Value *max_wait_time,
- ACE_TP_Token_Guard &guard);
-
- /// Get the event that needs dispatching.It could be either a
- /// signal, timer, notification handlers or return possibly 1 I/O
- /// handler for dispatching. In the most common use case, this would
- /// return 1 I/O handler for dispatching
- int get_event_for_dispatching (ACE_Time_Value *max_wait_time);
-
- /// Method to handle signals
- /// NOTE: It is just busted at this point in time.
- int handle_signals (int &event_count,
- ACE_TP_Token_Guard &g);
-
- /// Handle timer events
- int handle_timer_events (int &event_count,
- ACE_TP_Token_Guard &g);
-
- /// Handle notify events
- int handle_notify_events (int &event_count,
- ACE_TP_Token_Guard &g);
-
- /// handle socket events
- int handle_socket_events (int &event_count,
- ACE_TP_Token_Guard &g);
-
- /// This method shouldn't get called.
- virtual void notify_handle (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Handle_Set &,
- ACE_Event_Handler *eh,
- ACE_EH_PTMF callback);
-private:
-
- /// Get the handle of the notify pipe from the ready set if there is
- /// an event in the notify pipe.
- ACE_HANDLE get_notify_handle (void);
-
- /// Get socket event dispatch information.
- int get_socket_event_info (ACE_EH_Dispatch_Info &info);
-
- /// Notify the appropriate <callback> in the context of the <eh>
- /// associated with <handle> that a particular event has occurred.
- int dispatch_socket_event (ACE_EH_Dispatch_Info &dispatch_info);
-
- /// Clear the <handle> from the read_set
- void clear_handle_read_set (ACE_HANDLE handle);
-
-private:
- /// Deny access since member-wise won't work...
- ACE_TP_Reactor (const ACE_TP_Reactor &);
- ACE_TP_Reactor &operator = (const ACE_TP_Reactor &);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/TP_Reactor.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_TP_REACTOR_H */
diff --git a/ace/TP_Reactor.i b/ace/TP_Reactor.i
deleted file mode 100644
index bfb3f02e2dd..00000000000
--- a/ace/TP_Reactor.i
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/************************************************************************/
-// Methods for ACE_EH_Dispatch_Info
-/************************************************************************/
-
-ACE_INLINE void
-ACE_EH_Dispatch_Info::reset (void)
-{
- this->dispatch_ = 0;
-
- this->handle_ = ACE_INVALID_HANDLE;
- this->event_handler_ = 0;
- this->mask_ = ACE_Event_Handler::NULL_MASK;
- this->callback_ = 0;
-}
-
-
-ACE_INLINE
-ACE_EH_Dispatch_Info::ACE_EH_Dispatch_Info (void)
-{
- this->reset ();
-}
-
-ACE_INLINE void
-ACE_EH_Dispatch_Info::set (ACE_HANDLE handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- ACE_EH_PTMF callback)
-{
- this->dispatch_ = 1;
-
- this->handle_ = handle;
- this->event_handler_ = event_handler;
- this->mask_ = mask;
- this->callback_ = callback;
-}
-
-ACE_INLINE int
-ACE_EH_Dispatch_Info::dispatch (void) const
-{
- return this->dispatch_;
-}
-
-/************************************************************************/
-// Methods for ACE_TP_Token_Guard
-/************************************************************************/
-
-ACE_INLINE
-ACE_TP_Token_Guard::ACE_TP_Token_Guard (ACE_Select_Reactor_Token &token)
-
- :token_ (token),
- owner_ (0)
-{
-}
-
-ACE_INLINE
-ACE_TP_Token_Guard::~ACE_TP_Token_Guard (void)
-{
- if (this->owner_ == 1)
- {
- ACE_MT (this->token_.release ());
- this->owner_ = 0;
- }
-}
-
-ACE_INLINE void
-ACE_TP_Token_Guard::release_token (void)
-{
- if (this->owner_)
- {
- ACE_MT (this->token_.release ());
-
- // We are not the owner anymore..
- this->owner_ = 0;
- }
-}
-
-ACE_INLINE int
-ACE_TP_Token_Guard::is_owner (void)
-{
- return this->owner_;
-}
-
-
-/************************************************************************/
-// Methods for ACE_TP_Reactor
-/************************************************************************/
-ACE_INLINE void
-ACE_TP_Reactor::no_op_sleep_hook (void *)
-{
-}
-
-ACE_INLINE void
-ACE_TP_Reactor::clear_handle_read_set (ACE_HANDLE handle)
-{
- this->ready_set_.wr_mask_.clr_bit (handle);
- this->ready_set_.ex_mask_.clr_bit (handle);
- this->ready_set_.rd_mask_.clr_bit (handle);
-}
diff --git a/ace/TTY_IO.cpp b/ace/TTY_IO.cpp
deleted file mode 100644
index 8fd68145d38..00000000000
--- a/ace/TTY_IO.cpp
+++ /dev/null
@@ -1,515 +0,0 @@
-// $Id$
-
-#include "ace/TTY_IO.h"
-
-ACE_RCSID(ace, TTY_IO, "$Id$")
-
-ACE_TTY_IO::Serial_Params::Serial_Params (void)
-{
- ACE_OS::memset (this, 0, sizeof *this);
-}
-
-// Interface for reading/writing serial device parameters
-
-int
-ACE_TTY_IO::control (Control_Mode cmd,
- Serial_Params *arg) const
-{
-#if defined (ACE_HAS_TERM_IOCTLS)
-#if defined(TCGETS)
- struct termios devpar;
-#elif defined(TCGETA)
- struct termio devpar;
-#else
- errno = ENOSYS;
- return -1;
-#endif
- u_long c_iflag;
- u_long c_oflag;
- u_long c_cflag;
- u_long c_lflag;
- // u_long c_line;
- u_char ivmin_cc4;
- u_char ivtime_cc5;
-
- c_iflag=0;
- c_oflag=0;
- c_cflag=0;
- c_lflag=0;
- // c_line=0;
-
- // Get default device parameters.
-
-#if defined (TCGETS)
- if (this->ACE_IO_SAP::control (TCGETS, (void *) &devpar) == -1)
-#elif defined (TCGETA)
- if (this->ACE_IO_SAP::control (TCGETA, (void *) &devpar) == -1)
-#else
- errno = ENOSYS;
-#endif /* TCGETS */
- return -1;
-
- u_int newbaudrate = 0;
-
- switch (cmd)
- {
- case SETPARAMS:
- switch (arg->baudrate)
- {
-#if defined (B0)
- case 0: newbaudrate = B0; break;
-#endif /* B0 */
-#if defined (B50)
- case 50: newbaudrate = B50; break;
-#endif /* B50 */
-#if defined (B75)
- case 75: newbaudrate = B75; break;
-#endif /* B75 */
-#if defined (B110)
- case 110: newbaudrate = B110; break;
-#endif /* B110 */
-#if defined (B134)
- case 134: newbaudrate = B134; break;
-#endif /* B134 */
-#if defined (B150)
- case 150: newbaudrate = B150; break;
-#endif /* B150 */
-#if defined (B200)
- case 200: newbaudrate = B200; break;
-#endif /* B200 */
-#if defined (B300)
- case 300: newbaudrate = B300; break;
-#endif /* B300 */
-#if defined (B600)
- case 600: newbaudrate = B600; break;
-#endif /* B600 */
-#if defined (B1200)
- case 1200: newbaudrate = B1200; break;
-#endif /* B1200 */
-#if defined (B1800)
- case 1800: newbaudrate = B1800; break;
-#endif /* B1800 */
-#if defined (B2400)
- case 2400: newbaudrate = B2400; break;
-#endif /* B2400 */
-#if defined (B4800)
- case 4800: newbaudrate = B4800; break;
-#endif /* B4800 */
-#if defined (B9600)
- case 9600: newbaudrate = B9600; break;
-#endif /* B9600 */
-#if defined (B19200)
- case 19200: newbaudrate = B19200; break;
-#endif /* B19200 */
-#if defined (B38400)
- case 38400: newbaudrate = B38400; break;
-#endif /* B38400 */
-#if defined (B56000)
- case 56000: newbaudrate = B56000; break;
-#endif /* B56000 */
-#if defined (B57600)
- case 57600: newbaudrate = B57600; break;
-#endif /* B57600 */
-#if defined (B76800)
- case 76800: newbaudrate = B76800; break;
-#endif /* B76800 */
-#if defined (B115200)
- case 115200: newbaudrate = B115200; break;
-#endif /* B115200 */
-#if defined (B128000)
- case 128000: newbaudrate = B128000; break;
-#endif /* B128000 */
-#if defined (B153600)
- case 153600: newbaudrate = B153600; break;
-#endif /* B153600 */
-#if defined (B230400)
- case 230400: newbaudrate = B230400; break;
-#endif /* B230400 */
-#if defined (B307200)
- case 307200: newbaudrate = B307200; break;
-#endif /* B307200 */
-#if defined (B256000)
- case 256000: newbaudrate = B256000; break;
-#endif /* B256000 */
-#if defined (B460800)
- case 460800: newbaudrate = B460800; break;
-#endif /* B460800 */
-#if defined (B500000)
- case 500000: newbaudrate = B500000; break;
-#endif /* B500000 */
-#if defined (B576000)
- case 576000: newbaudrate = B576000; break;
-#endif /* B576000 */
-#if defined (B921600)
- case 921600: newbaudrate = B921600; break;
-#endif /* B921600 */
-#if defined (B1000000)
- case 1000000: newbaudrate = B1000000; break;
-#endif /* B1000000 */
-#if defined (B1152000)
- case 1152000: newbaudrate = B1152000; break;
-#endif /* B1152000 */
-#if defined (B1500000)
- case 1500000: newbaudrate = B1500000; break;
-#endif /* B1500000 */
-#if defined (B2000000)
- case 2000000: newbaudrate = B2000000; break;
-#endif /* B2000000 */
-#if defined (B2500000)
- case 2500000: newbaudrate = B2500000; break;
-#endif /* B2500000 */
-#if defined (B3000000)
- case 3000000: newbaudrate = B3000000; break;
-#endif /* B3000000 */
-#if defined (B3500000)
- case 3500000: newbaudrate = B3500000; break;
-#endif /* B3500000 */
-#if defined (B4000000)
- case 4000000: newbaudrate = B4000000; break;
-#endif /* B4000000 */
- default:
- return -1;
- }
-
-#if defined(ACE_USES_NEW_TERMIOS_STRUCT)
- // @@ Can you really have different input and output baud
- // rates?!
- devpar.c_ispeed = newbaudrate;
- devpar.c_ospeed = newbaudrate;
-#else
- c_cflag |= newbaudrate;
-#endif /* ACE_USES_NEW_TERMIOS_STRUCT */
-
- switch (arg->databits)
- {
- case 5:
- c_cflag |= CS5;
- break;
- case 6:
- c_cflag |= CS6;
- break;
- case 7:
- c_cflag |= CS7;
- break;
- case 8:
- c_cflag |= CS8;
- break;
- default:
- return -1;
- }
-
- switch (arg->stopbits)
- {
- case 1:
- break;
- case 2:
- c_cflag |= CSTOPB;
- break;
- default:
- return -1;
- }
- if (arg->parityenb)
- {
- c_cflag |= PARENB;
- if (ACE_OS::strcasecmp (arg->paritymode, "odd") == 0)
- c_cflag |= PARODD;
- }
-
-#if defined (CRTSCTS)
- // 6/22/00 MLS add rtsenb to if statement
- if ((arg->ctsenb)||(arg->rtsenb)) /* enable CTS/RTS protocoll */
- c_cflag |= CRTSCTS;
-#endif /* CRTSCTS */
-#if defined (NEW_RTSCTS)
- // 8/30/00 MLS add rtsenb to if statement to support new termios
- if ((arg->ctsenb)||(arg->rtsenb)) /* enable CTS/RTS protocoll */
- c_cflag |= NEW_RTSCTS;
-#endif /* CRTSCTS */
-#if defined (CREAD)
- if (arg->rcvenb) /* enable receiver */
- c_cflag |= CREAD;
-#endif /* CREAD */
-
-
-#if defined (HUPCL)
- // Cause DTR to be drop after port close MS 7/24/2000;
- c_cflag |= HUPCL;
-#endif /* HUPCL */
-
-#if defined (CLOCAL)
- // if device is not a modem set to local device MS 7/24/2000
- if(!arg->modem)
- c_cflag |= CLOCAL;
-#endif /* CLOCAL */
-
- c_oflag = 0;
- c_iflag = IGNPAR | INPCK;
- if (arg->databits < 8)
- c_iflag |= ISTRIP;
-#if defined (IGNBRK)
- // if device is not a modem set to ignore break points MS 7/24/2000
- if(!arg->modem)
- c_iflag |= IGNBRK;
-#endif /* IGNBRK */
- // 6/22/00 MLS add enable xon/xoff
-#if defined (IXON)
- if (arg->xinenb) /* enable XON/XOFF output*/
- c_iflag |= IXON;
-#endif /* IXON */
-#if defined (IXOFF)
- if (arg->xoutenb) /* enable XON/XOFF input*/
- c_iflag |= IXOFF;
-#endif /* IXOFF */
- c_lflag = 0;
-
- ivmin_cc4 = (u_char) 0;
- ivtime_cc5= (u_char) (arg->readtimeoutmsec / 100);
- devpar.c_iflag = c_iflag;
- devpar.c_oflag = c_oflag;
- devpar.c_cflag = c_cflag;
- devpar.c_lflag = c_lflag;
- devpar.c_cc[ACE_VMIN] = ivmin_cc4;
- devpar.c_cc[ACE_VTIME] = ivtime_cc5;
-
-#if defined(TIOCMGET)
- // ensure DTR is enabled
- int status;
- this->ACE_IO_SAP::control (TIOCMGET, &status);
-
- if (arg->dtrdisable)
- status &= ~TIOCM_DTR;
- else
- status |= TIOCM_DTR;
-
- this->ACE_IO_SAP::control (TIOCMSET,&status);
-#endif /* definded (TIOCMGET) */
-
-#if defined(TCSETS)
- return this->ACE_IO_SAP::control (TCSETS,
- (void *) &devpar);
-#elif defined(TCSETA)
- return this->ACE_IO_SAP::control (TCSETA,
- (void *) &devpar);
-#else
- errno = ENOSYS;
- return -1;
-#endif
- case GETPARAMS:
- return -1; // Not yet implemented.
- default:
- return -1; // Wrong cmd.
- }
-#elif defined (ACE_WIN32)
- switch (cmd)
- {
- case SETPARAMS:
- DCB dcb;
- dcb.DCBlength = sizeof dcb;
- if (!::GetCommState (this->get_handle (), &dcb))
- {
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
-/*SadreevAA
- switch (arg->baudrate)
- {
- case 300: dcb.BaudRate = CBR_300; break;
- case 600: dcb.BaudRate = CBR_600; break;
- case 1200: dcb.BaudRate = CBR_1200; break;
- case 2400: dcb.BaudRate = CBR_2400; break;
- case 4800: dcb.BaudRate = CBR_4800; break;
- case 9600: dcb.BaudRate = CBR_9600; break;
- case 19200: dcb.BaudRate = CBR_19200; break;
- case 38400: dcb.BaudRate = CBR_38400; break;
-// case 56000: dcb.BaudRate = CBR_56000; break;
- case 57600: dcb.BaudRate = CBR_57600; break;
- case 115200: dcb.BaudRate = CBR_115200; break;
-// case 128000: dcb.BaudRate = CBR_128000; break;
-// case 256000: dcb.BaudRate = CBR_256000; break;
- default: return -1;
- }
-*/
- dcb.BaudRate = arg->baudrate;
- switch (arg->databits)
- {
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- dcb.ByteSize = u_char (arg->databits);
- break;
- default:
- return -1;
- }
-
- switch (arg->stopbits)
- {
- case 1:
- dcb.StopBits = ONESTOPBIT;
- break;
- case 2:
- dcb.StopBits = TWOSTOPBITS;
- break;
- default:
- return -1;
- }
-
-
- // 6/22/00 MLS enabled extra paths for win32 parity checking.
- if (arg->parityenb)
- {
- dcb.fParity = TRUE;
- if (ACE_OS::strcasecmp (arg->paritymode, "odd") == 0)
- dcb.Parity = ODDPARITY;
- else if (ACE_OS::strcasecmp (arg->paritymode, "even") == 0)
- dcb.Parity = EVENPARITY;
- else if (ACE_OS::strcasecmp (arg->paritymode, "mark") == 0)
- dcb.Parity = MARKPARITY;
- else if (ACE_OS::strcasecmp (arg->paritymode, "space") == 0)
- dcb.Parity = SPACEPARITY;
- else
- dcb.Parity = NOPARITY;
- }
- else
- {
- dcb.fParity = FALSE;
- dcb.Parity = NOPARITY;
- }
-
- if (arg->ctsenb) // enable CTS protocol.
- dcb.fOutxCtsFlow = TRUE;
- else
- dcb.fOutxCtsFlow = FALSE;
-
- // SadreevAA
- if (arg->dsrenb) // enable DSR protocol.
- dcb.fOutxDsrFlow = TRUE;
- else
- dcb.fOutxDsrFlow = FALSE;
-
- // 6/22/00 MLS add great flexibility for win32
- // pulled rts out of ctsenb
- switch (arg->rtsenb) // enable RTS protocol.
- {
- case 1:
- dcb.fRtsControl = RTS_CONTROL_ENABLE;
- break;
- case 2:
- dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
- break;
- case 3:
- dcb.fRtsControl = RTS_CONTROL_TOGGLE;
- break;
- default:
- dcb.fRtsControl = RTS_CONTROL_DISABLE;
- }
-
- // 6/22/00 MLS add enable xon/xoff
- if (arg->xinenb) // enable XON/XOFF for reception
- dcb.fInX = TRUE; // Fixed by SadreevAA
- else
- dcb.fInX = FALSE; // Fixed by SadreevAA
-
- if (arg->xoutenb) // enable XON/XOFF for transmission
- dcb.fOutX = TRUE;
- else
- dcb.fOutX = FALSE;
-
- // always set limits unless set to -1 to use default
- // 6/22/00 MLS add xon/xoff limits
- if (arg->xonlim != -1)
- dcb.XonLim = arg->xonlim;
- if (arg->xofflim != -1)
- dcb.XoffLim = arg->xofflim;
-
- if (arg->dtrdisable)
- dcb.fDtrControl = DTR_CONTROL_DISABLE;
- else
- dcb.fDtrControl = DTR_CONTROL_ENABLE;
-
- dcb.fAbortOnError = FALSE;
- dcb.fErrorChar = FALSE;
- dcb.fNull = FALSE;
- dcb.fBinary = TRUE;
- if (!::SetCommState (this->get_handle (), &dcb))
- {
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
-
- // 2/13/97 BWF added drop out timer
- // modified time out to operate correctly with when delay
- // is requested or no delay is requestes
- COMMTIMEOUTS timeouts;
- if (!::GetCommTimeouts (this->get_handle(), &timeouts))
- {
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
-
- if (arg->readtimeoutmsec == 0)
- {
- // return immediately if no data in the input buffer
- timeouts.ReadIntervalTimeout = MAXDWORD;
- timeouts.ReadTotalTimeoutMultiplier = 0;
- timeouts.ReadTotalTimeoutConstant = 0;
- }
- else
- {
- // Wait for specified time-out for char to arrive
- // before returning.
- timeouts.ReadIntervalTimeout = MAXDWORD;
- timeouts.ReadTotalTimeoutMultiplier = MAXDWORD;
-
- // ensure specified timeout is below MAXDWORD
-
- // We don't test arg->readtimeoutmsec against MAXDWORD
- // directly to avoid a warning in the case DWORD is
- // unsigned. Ensure specified timeout is below MAXDWORD use
- // MAXDWORD as indicator for infinite timeout.
- DWORD dw = arg->readtimeoutmsec;
- if (dw < MAXDWORD)
- {
- // Wait for specified time-out for char to arrive before
- // returning.
- timeouts.ReadIntervalTimeout = MAXDWORD;
- timeouts.ReadTotalTimeoutMultiplier = MAXDWORD;
- timeouts.ReadTotalTimeoutConstant = dw;
- }
- else
- {
- // settings for infinite timeout
- timeouts.ReadIntervalTimeout = 0;
- timeouts.ReadTotalTimeoutMultiplier = 0;
- timeouts.ReadTotalTimeoutConstant = 0;
- }
- }
-
- if (!::SetCommTimeouts (this->get_handle (), &timeouts))
- {
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
-
- return 0;
-
- case GETPARAMS:
- ACE_NOTSUP_RETURN (-1); // Not yet implemented.
- default:
- return -1; // Wrong cmd.
-
- } // arg switch
-#else
- ACE_UNUSED_ARG (cmd);
- ACE_UNUSED_ARG (arg);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_TERM_IOCTLS */
-}
-
-#if defined (ACE_NEEDS_DEV_IO_CONVERSION)
-ACE_TTY_IO::operator ACE_DEV_IO &()
-{
- return (ACE_DEV_IO &) *this;
-}
-#endif /* ACE_NEEDS_DEV_IO_CONVERSION */
diff --git a/ace/TTY_IO.h b/ace/TTY_IO.h
deleted file mode 100644
index bf67457c93b..00000000000
--- a/ace/TTY_IO.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file TTY_IO.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_TTY_IO_H
-#define ACE_TTY_IO_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/DEV_IO.h"
-
-/**
- * @class ACE_TTY_IO
- *
- * @brief Class definitions for platform specific TTY features.
- *
- * This class represents an example interface for a specific
- * device (a serial line) It extends the capability of the
- * underlying DEV_IO class by adding a control method that takes
- * a special structure (Serial_Params) as argument to allow a
- * comfortable user interface (away from that annoying termios
- * structure, which is very specific to UNIX).
- */
-class ACE_Export ACE_TTY_IO : public ACE_DEV_IO
-{
-public:
- enum Control_Mode
- {
- /// Set control parameters.
- SETPARAMS,
- /// Get control parameters.
- GETPARAMS
- };
-
- struct ACE_Export Serial_Params
- {
- Serial_Params (void);
-
- // Common params
- int baudrate;
- int parityenb;
- const char *paritymode;
- int databits;
- int stopbits;
- int readtimeoutmsec;
- int ctsenb; // CTS & RTS are the same under unix
- int rtsenb; // enable & set rts mode (win32)
- int xinenb; // enable xon/xoff reception
- int xoutenb; // enable xon/xoff transmission
-
- // Posix - unix variant
- int modem;
- int rcvenb;
-
- //Win32
- int dsrenb; // SadreevAA
-
- int xonlim; // min bytes in input buffer before xon
- int xofflim; // max bytes in input buffer before xoff
-
- int dtrdisable; // Controls whether DTR is disabled or not.
- };
-
- /// Interface for reading/writing serial device parameters.
- int control (Control_Mode cmd,
- Serial_Params *arg) const;
-
-#if defined (ACE_NEEDS_DEV_IO_CONVERSION)
- /// This is necessary to pass ACE_TTY_IO as parameter to DEV_Connector.
- operator ACE_DEV_IO &();
-#endif /* ACE_NEEDS_DEV_IO_CONVERSION */
-};
-
-#endif /* ACE_TTY_IO_H */
diff --git a/ace/Task.cpp b/ace/Task.cpp
deleted file mode 100644
index 960977d84ae..00000000000
--- a/ace/Task.cpp
+++ /dev/null
@@ -1,234 +0,0 @@
-// $Id$
-
-#include "ace/Task.h"
-#include "ace/Module.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Task.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Task, "$Id$")
-
-ACE_Task_Base::~ACE_Task_Base (void)
-{
-}
-
-ACE_Task_Base::ACE_Task_Base (ACE_Thread_Manager *thr_man)
- : thr_count_ (0),
- thr_mgr_ (thr_man),
- flags_ (0),
- grp_id_ (-1)
-{
-}
-
-// Wait for all threads running in a task to exit.
-
-int
-ACE_Task_Base::wait (void)
-{
- ACE_TRACE ("ACE_Task_Base::wait");
-
- // If we don't have a thread manager, we probably were never
- // activated.
- if (this->thr_mgr () != 0)
- return this->thr_mgr ()->wait_task (this);
- else
- return 0;
-}
-
-// Suspend a task.
-int
-ACE_Task_Base::suspend (void)
-{
- ACE_TRACE ("ACE_Task_Base::suspend");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
- if (this->thr_count_ > 0)
- return this->thr_mgr_->suspend_task (this);
-
- return 0;
-}
-
-// Resume a suspended task.
-int
-ACE_Task_Base::resume (void)
-{
- ACE_TRACE ("ACE_Task_Base::resume");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
- if (this->thr_count_ > 0)
- return this->thr_mgr_->resume_task (this);
-
- return 0;
-}
-
-int
-ACE_Task_Base::activate (long flags,
- int n_threads,
- int force_active,
- long priority,
- int grp_id,
- ACE_Task_Base *task,
- ACE_hthread_t thread_handles[],
- void *stack[],
- size_t stack_size[],
- ACE_thread_t thread_ids[])
-{
- ACE_TRACE ("ACE_Task_Base::activate");
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
-
- // If the task passed in is zero, we will use <this>
- if (task == 0)
- task = this;
-
- if (this->thr_count_ > 0 && force_active == 0)
- return 1; // Already active.
- else
- {
- if (this->thr_count_ > 0 && grp_id != -1)
- // If we're joining an existing group of threads then make
- // sure to use its group id.
- grp_id = this->grp_id_;
- this->thr_count_ += n_threads;
- }
-
- // Use the ACE_Thread_Manager singleton if we're running as an
- // active object and the caller didn't supply us with a
- // Thread_Manager.
- if (this->thr_mgr_ == 0)
-# if defined (ACE_THREAD_MANAGER_LACKS_STATICS)
- this->thr_mgr_ = ACE_THREAD_MANAGER_SINGLETON::instance ();
-# else /* ! ACE_THREAD_MANAGER_LACKS_STATICS */
- this->thr_mgr_ = ACE_Thread_Manager::instance ();
-# endif /* ACE_THREAD_MANAGER_LACKS_STATICS */
-
- int grp_spawned = -1;
- if (thread_ids == 0)
- // Thread Ids were not specified
- grp_spawned =
- this->thr_mgr_->spawn_n (n_threads,
- &ACE_Task_Base::svc_run,
- (void *) this,
- flags,
- priority,
- grp_id,
- task,
- thread_handles,
- stack,
- stack_size);
- else
- // thread names were specified
- grp_spawned =
- this->thr_mgr_->spawn_n (thread_ids,
- n_threads,
- &ACE_Task_Base::svc_run,
- (void *) this,
- flags,
- priority,
- grp_id,
- stack,
- stack_size,
- thread_handles,
- task);
- if (grp_spawned == -1)
- {
- // If spawn_n fails, restore original thread count.
- this->thr_count_ -= n_threads;
- return -1;
- }
-
- if (this->grp_id_ == -1)
- this->grp_id_ = grp_spawned;
-
- return 0;
-
-#else
- {
- // Keep the compiler from complaining.
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (n_threads);
- ACE_UNUSED_ARG (force_active);
- ACE_UNUSED_ARG (priority);
- ACE_UNUSED_ARG (grp_id);
- ACE_UNUSED_ARG (task);
- ACE_UNUSED_ARG (thread_handles);
- ACE_UNUSED_ARG (stack);
- ACE_UNUSED_ARG (stack_size);
- ACE_UNUSED_ARG (thread_ids);
- ACE_NOTSUP_RETURN (-1);
- }
-#endif /* ACE_MT_SAFE */
-}
-
-void
-ACE_Task_Base::cleanup (void *object, void *)
-{
- ACE_Task_Base *t = (ACE_Task_Base *) object;
-
- // The thread count must be decremented first in case the <close>
- // hook does something crazy like "delete this".
- t->thr_count_dec ();
-
- // @@ Is it possible to pass in the exit status somehow?
- t->close ();
-}
-
-
-#if defined (ACE_HAS_SIG_C_FUNC)
-extern "C" void
-ACE_Task_Base_cleanup (void *object, void *)
-{
- ACE_Task_Base::cleanup (object, 0);
-}
-#endif /* ACE_HAS_SIG_C_FUNC */
-
-ACE_THR_FUNC_RETURN
-ACE_Task_Base::svc_run (void *args)
-{
- ACE_TRACE ("ACE_Task_Base::svc_run");
-
- ACE_Task_Base *t = (ACE_Task_Base *) args;
-
- // Register ourself with our <Thread_Manager>'s thread exit hook
- // mechanism so that our close() hook will be sure to get invoked
- // when this thread exits.
-
-#if defined ACE_HAS_SIG_C_FUNC
- t->thr_mgr ()->at_exit (t, ACE_Task_Base_cleanup, 0);
-#else
- t->thr_mgr ()->at_exit (t, ACE_Task_Base::cleanup, 0);
-#endif /* ACE_HAS_SIG_C_FUNC */
-
- // Call the Task's svc() hook method.
- int svc_status = t->svc ();
- ACE_THR_FUNC_RETURN status;
-#if (defined (__BORLANDC__) && (__BORLANDC__ < 0x570)) || defined (__MINGW32__) || (defined (_MSC_VER) && (_MSC_VER <= 1200))
- // Some compilers complain about reinterpret_cast from int to unsigned long...
- status = ACE_static_cast (ACE_THR_FUNC_RETURN, svc_status);
-#else
- status = ACE_reinterpret_cast (ACE_THR_FUNC_RETURN, svc_status);
-#endif /* (__BORLANDC__ < 0x570) || __MINGW32__ || _MSC_VER <= 1200 */
-
-// If we changed this zero change the other if in OS.cpp Thread_Adapter::invoke
-#if 1
- // Call the <Task->close> hook.
- ACE_Thread_Manager *thr_mgr_ptr = t->thr_mgr ();
-
- // This calls the Task->close () hook.
- t->cleanup (t, 0);
-
- // This prevents a second invocation of the cleanup code
- // (called later by <ACE_Thread_Manager::exit>.
- thr_mgr_ptr->at_exit (t, 0, 0);
-#endif
- return status;
-}
-
-// Forward the call to close() so that existing applications don't
-// break.
-
-int
-ACE_Task_Base::module_closed (void)
-{
- return this->close (1);
-}
diff --git a/ace/Task.h b/ace/Task.h
deleted file mode 100644
index ce0e51f2dd8..00000000000
--- a/ace/Task.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Task.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_TASK_H
-#define ACE_TASK_H
-#include "ace/pre.h"
-
-#include "ace/Service_Object.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Thread_Manager.h"
-
-/**
- * @class ACE_Task_Flags
- *
- * @brief These flags are used within the ACE_Task.
- *
- * These flags should be hidden within ACE_Task. Unfortunately, the
- * HP/UX C++ compiler can't grok this... Fortunately, there's no
- * code defined here, so we don't have to worry about multiple
- * definitions.
- */
-class ACE_Export ACE_Task_Flags
-{
-public:
- enum
- {
- /// Identifies a Task as being the "reader" in a Module.
- ACE_READER = 01,
- /// Just flush data messages in the queue.
- ACE_FLUSHDATA = 02,
- /// Flush all messages in the Queue.
- ACE_FLUSHALL = 04,
- /// Flush read queue
- ACE_FLUSHR = 010,
- /// Flush write queue
- ACE_FLUSHW = 020,
- /// Flush both queues
- ACE_FLUSHRW = 030
- };
-};
-
-/**
- * @class ACE_Task_Base
- *
- * @brief Direct base class for the ACE_Task template.
- *
- * This class factors out the non-template code in order to
- * reduce template bloat, as well as to make it possible for the
- * <ACE_Thread_Manager> to store <ACE_Task_Base> *'s
- * polymorphically.
- */
-class ACE_Export ACE_Task_Base : public ACE_Service_Object
-{
-public:
- // = Initialization and termination methods.
- /// Constructor.
- ACE_Task_Base (ACE_Thread_Manager * = 0);
-
- /// Destructor.
- virtual ~ACE_Task_Base (void);
-
- // = Initialization and termination hooks.
-
- // These methods should be overridden by subclasses if you'd like to
- // provide <Task>-specific initialization and termination behavior.
-
- /// Hook called to open a Task. <args> can be used to pass arbitrary
- /// information into <open>.
- virtual int open (void *args = 0);
-
- /**
- * Hook called from <ACE_Thread_Exit> when during thread exit and from
- * the default implementation of <module_closed>. In general, this
- * method shouldn't be called directly by an application,
- * particularly if the <Task> is running as an Active Object.
- * Instead, a special message should be passed into the <Task> via
- * the <put> method defined below, and the <svc> method should
- * interpret this as a flag to shut down the <Task>.
- */
- virtual int close (u_long flags = 0);
-
- /**
- * Hook called during <ACE_Module::close>. The default
- * implementation calls forwards the call to close(1). Please
- * notice the changed value of the default argument of <close>.
- * This allows tasks to differ between the call has been originated
- * from <ACE_Thread_Exit> or from <module_closed>. Be aware that
- * close(0) will be also called when a thread associated with the
- * ACE_Task instance exits.
- */
- virtual int module_closed (void);
-
- // = Immediate and deferred processing methods, respectively.
-
- // These methods should be overridden by subclasses if you'd like to
- // provide <Task>-specific message processing behavior.
-
- /// A hook method that can be used to pass a message to a
- /// task, where it can be processed immediately or queued for subsequent
- /// processing in the <svc> hook method.
- virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
-
- /// Run by a daemon thread to handle deferred processing.
- virtual int svc (void);
-
- // = Active object activation method.
- /**
- * Turn the task into an active object, i.e., having <n_threads> of
- * control, all running at the <priority> level (see below) with the
- * same <grp_id>, all of which invoke <Task::svc>. Returns -1 if
- * failure occurs, returns 1 if Task is already an active object and
- * <force_active> is false (i.e., do *not* create a new thread in
- * this case), and returns 0 if Task was not already an active
- * object and a thread is created successfully or thread is an
- * active object and <force_active> is true. Note that if
- * <force_active> is true and there are already threads spawned in
- * this <Task>, the <grp_id> parameter is ignored and the <grp_id>
- * of any newly activated thread(s) will inherit the existing
- * <grp_id> of the existing thread(s) in the <Task>.
- *
- * The <{flags}> are a bitwise-OR of the following:
- * = BEGIN<INDENT>
- * THR_CANCEL_DISABLE, THR_CANCEL_ENABLE, THR_CANCEL_DEFERRED,
- * THR_CANCEL_ASYNCHRONOUS, THR_BOUND, THR_NEW_LWP, THR_DETACHED,
- * THR_SUSPENDED, THR_DAEMON, THR_JOINABLE, THR_SCHED_FIFO,
- * THR_SCHED_RR, THR_SCHED_DEFAULT, THR_EXPLICIT_SCHED,
- * THR_SCOPE_SYSTEM, THR_SCOPE_PROCESS
- * = END<INDENT>
- *
- * By default, or if <{priority}> is set to
- * ACE_DEFAULT_THREAD_PRIORITY, an "appropriate" priority value for
- * the given scheduling policy (specified in <{flags}>, e.g.,
- * <THR_SCHED_DEFAULT>) is used. This value is calculated
- * dynamically, and is the median value between the minimum and
- * maximum priority values for the given policy. If an explicit
- * value is given, it is used. Note that actual priority values are
- * EXTREMEMLY implementation-dependent, and are probably best
- * avoided.
- *
- * If <thread_handles> != 0 it is assumed to be an array of <n>
- * thread_handles that will be assigned the values of the thread
- * handles being spawned. Returns -1 on failure (<errno> will
- * explain...), otherwise returns the group id of the threads.
- *
- * Assigning <task> allows you to associate the newly spawned
- * threads with an instance of ACE_Task_Base. If <task> == 0, then
- * the new threads are associated automatically with <this>
- * ACE_Task_Base. Setting the <task> argument to value other than
- * <this> makes the thread manipulating methods, such as wait(),
- * suspend(), resume(), useless. Threads spawned with user
- * specified <task> value must therefore be manipulated thru
- * ACE_Thread_Manager directly.
- *
- * If <stack> != 0 it is assumed to be an array of <n> pointers to
- * the base of the stacks to use for the threads being spawned.
- * Likewise, if <stack_size> != 0 it is assumed to be an array of
- * <n> values indicating how big each of the corresponding <stack>s
- * are. */
- virtual int activate (long flags = THR_NEW_LWP | THR_JOINABLE,
- int n_threads = 1,
- int force_active = 0,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- int grp_id = -1,
- ACE_Task_Base *task = 0,
- ACE_hthread_t thread_handles[] = 0,
- void *stack[] = 0,
- size_t stack_size[] = 0,
- ACE_thread_t thread_ids[] = 0);
-
- /**
- * Block until there are no more threads running in this task.
- * This method will not wait for either detached or daemon threads;
- * the threads must have been spawned with the @c THR_JOINABLE flag.
- * Upon successful completion, the threads have been joined, so further
- * attempts to join with any of the waited-for threads will fail.
- *
- * @retval 0 Success.
- * @retval -1 Failure (consult errno for further information).
- */
- virtual int wait (void);
-
- // = Suspend/resume a Task.
-
- // Note that these methods are not portable and should be avoided
- // since they are inherently error-prone to use. They are only here
- // for (the rare) applications that know how to use them correctly.
- /// Suspend a task.
- virtual int suspend (void);
- /// Resume a suspended task.
- virtual int resume (void);
-
- /// Get the current group id.
- int grp_id (void) const;
-
- /// Set the current group id.
- void grp_id (int);
-
- /// Get the thread manager associated with this Task.
- ACE_Thread_Manager *thr_mgr (void) const;
-
- /// Set the thread manager associated with this Task.
- void thr_mgr (ACE_Thread_Manager *);
-
- /// True if queue is a reader, else false.
- int is_reader (void) const;
-
- /// True if queue is a writer, else false.
- int is_writer (void) const;
-
- /**
- * Returns the number of threads currently running within a task.
- * If we're a passive object this value is 0, else it's greater than
- * 0.
- */
- size_t thr_count (void) const;
-
- /// Atomically decrement the thread count by 1. This should only be
- /// called by the <ACE_Thread_Exit> class destructor.
- void thr_count_dec (void);
-
- /// Routine that runs the service routine as a daemon thread.
- static ACE_THR_FUNC_RETURN svc_run (void *);
-
- /// Cleanup hook that is called when a thread exits to gracefully
- /// shutdown an <ACE_Task>.
- static void cleanup (void *object, void *params);
-
- // = Internal data (should be private...).
-// private:
-
- /**
- * Count of the number of threads running within the task. If this
- * value is greater than 0 then we're an active object and the value
- * of <thr_count_> is the number of active threads at this instant.
- * If the value == 0, then we're a passive object.
- */
- size_t thr_count_;
-
- /// Multi-threading manager.
- ACE_Thread_Manager *thr_mgr_;
-
- /// ACE_Task flags.
- u_long flags_;
-
- /// This maintains the group id of the Task.
- int grp_id_;
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- /// Protect the state of a Task during concurrent operations, but
- /// only if we're configured as MT safe...
- ACE_Thread_Mutex lock_;
-#endif /* ACE_MT_SAFE */
-
-private:
-
- // = Disallow these operations.
- ACE_Task_Base &operator= (const ACE_Task_Base &);
- ACE_Task_Base (const ACE_Task_Base &);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Task.i"
-#endif /* __ACE_INLINE__ */
-
-// Include the ACE_Task templates classes at this point.
-#include "ace/Task_T.h"
-
-#include "ace/post.h"
-#endif /* ACE_TASK_H */
diff --git a/ace/Task.i b/ace/Task.i
deleted file mode 100644
index fd9f992579b..00000000000
--- a/ace/Task.i
+++ /dev/null
@@ -1,114 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Task.i
-
-ACE_INLINE ACE_Thread_Manager *
-ACE_Task_Base::thr_mgr (void) const
-{
- ACE_TRACE ("ACE_Task_Base::thr_mgr");
- return this->thr_mgr_;
-}
-
-ACE_INLINE void
-ACE_Task_Base::thr_mgr (ACE_Thread_Manager *thr_mgr)
-{
- ACE_TRACE ("ACE_Task_Base::thr_mgr");
- this->thr_mgr_ = thr_mgr;
-}
-
-// Return the count of the current number of threads.
-ACE_INLINE size_t
-ACE_Task_Base::thr_count (void) const
-{
- ACE_TRACE ("ACE_Task_Base::thr_count");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, (ACE_Thread_Mutex &) this->lock_, 0));
-
- return this->thr_count_;
-}
-
-// Decrement the count of the active threads by 1.
-
-ACE_INLINE void
-ACE_Task_Base::thr_count_dec (void)
-{
- ACE_TRACE ("ACE_Task_Base::thr_count_dec");
- ACE_MT (ACE_GUARD (ACE_Thread_Mutex, ace_mon, this->lock_));
-
- this->thr_count_--;
-}
-
-ACE_INLINE int
-ACE_Task_Base::is_reader (void) const
-{
- ACE_TRACE ("ACE_Task_Base::is_reader");
- return (ACE_BIT_ENABLED (this->flags_, ACE_Task_Flags::ACE_READER));
-}
-
-ACE_INLINE int
-ACE_Task_Base::is_writer (void) const
-{
- ACE_TRACE ("ACE_Task_Base::is_writer");
- return (ACE_BIT_DISABLED (this->flags_, ACE_Task_Flags::ACE_READER));
-}
-
-// Default ACE_Task service routine
-
-ACE_INLINE int
-ACE_Task_Base::svc (void)
-{
- ACE_TRACE ("ACE_Task_Base::svc");
- return 0;
-}
-
-// Default ACE_Task open routine
-
-ACE_INLINE int
-ACE_Task_Base::open (void *)
-{
- ACE_TRACE ("ACE_Task_Base::open");
- return 0;
-}
-
-// Default ACE_Task close routine
-
-ACE_INLINE int
-ACE_Task_Base::close (u_long)
-{
- ACE_TRACE ("ACE_Task_Base::close");
- return 0;
-}
-
-// Default ACE_Task put routine.
-
-ACE_INLINE int
-ACE_Task_Base::put (ACE_Message_Block *, ACE_Time_Value *)
-{
- ACE_TRACE ("ACE_Task_Base::put");
- return 0;
-}
-
-// Get the current group id.
-ACE_INLINE int
-ACE_Task_Base::grp_id (void) const
-{
- ACE_TRACE ("ACE_Task_Base::grp_id");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, (ACE_Thread_Mutex &) this->lock_, -1));
- return this->grp_id_;
-}
-
-// Set the current group id.
-
-ACE_INLINE void
-ACE_Task_Base::grp_id (int id)
-{
- ACE_TRACE ("ACE_Task_Base::grp_id");
- ACE_MT (ACE_GUARD (ACE_Thread_Mutex, ace_mon, this->lock_));
-
- // Cache the group id in the task and then set it in the
- // Thread_Manager, if there is one.
- this->grp_id_ = id;
- if (this->thr_mgr ())
- this->thr_mgr ()->set_grp (this, id);
-}
-
diff --git a/ace/Task_T.cpp b/ace/Task_T.cpp
deleted file mode 100644
index 88bc3a2bfc5..00000000000
--- a/ace/Task_T.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-// Task.cpp
-// $Id$
-
-#ifndef ACE_TASK_T_C
-#define ACE_TASK_T_C
-
-#include "ace/Task_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Module.h"
-//#include "ace/Service_Config.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Task_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Task_T, "$Id$")
-
-template <ACE_SYNCH_DECL> void
-ACE_Task<ACE_SYNCH_USE>::dump (void) const
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nthr_mgr_ = %x"), this->thr_mgr_));
- this->msg_queue_->dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("delete_msg_queue_ = %d\n"), this->delete_msg_queue_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nflags = %x"), this->flags_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nmod_ = %x"), this->mod_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nnext_ = %x"), this->next_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ngrp_id_ = %d"), this->grp_id_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nthr_count_ = %d"), this->thr_count_));
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- this->lock_.dump ();
-#endif /* ACE_MT_SAFE */
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// If the user doesn't supply a ACE_Message_Queue pointer then we'll
-// allocate one dynamically. Otherwise, we'll use the one they give.
-
-template<ACE_SYNCH_DECL>
-ACE_Task<ACE_SYNCH_USE>::ACE_Task (ACE_Thread_Manager *thr_man,
- ACE_Message_Queue<ACE_SYNCH_USE> *mq)
- : ACE_Task_Base (thr_man),
- msg_queue_ (0),
- delete_msg_queue_ (0),
- mod_ (0),
- next_ (0)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::ACE_Task");
-
- if (mq == 0)
- {
- ACE_NEW (mq,
- ACE_Message_Queue<ACE_SYNCH_USE>);
- this->delete_msg_queue_ = 1;
- }
-
- this->msg_queue_ = mq;
-}
-
-template<ACE_SYNCH_DECL>
-ACE_Task<ACE_SYNCH_USE>::~ACE_Task (void)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::~ACE_Task");
- if (this->delete_msg_queue_)
- delete this->msg_queue_;
-
- // These assignments aren't strickly necessary but they help guard
- // against odd race conditions...
- this->delete_msg_queue_ = 0;
-}
-
-template<ACE_SYNCH_DECL> ACE_Task<ACE_SYNCH_USE> *
-ACE_Task<ACE_SYNCH_USE>::sibling (void)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::sibling");
- if (this->mod_ == 0)
- return 0;
- else
- return this->mod_->sibling (this);
-}
-
-template<ACE_SYNCH_DECL> const ACE_TCHAR *
-ACE_Task<ACE_SYNCH_USE>::name (void) const
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::name");
- if (this->mod_ == 0)
- return 0;
- else
- return this->mod_->name ();
-}
-
-template<ACE_SYNCH_DECL> ACE_Module<ACE_SYNCH_USE> *
-ACE_Task<ACE_SYNCH_USE>::module (void) const
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::module");
- return this->mod_;
-}
-
-#endif /* ACE_TASK_T_C */
diff --git a/ace/Task_T.h b/ace/Task_T.h
deleted file mode 100644
index 2ba9e01ca47..00000000000
--- a/ace/Task_T.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Task_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_TASK_T_H
-#define ACE_TASK_T_H
-#include "ace/pre.h"
-
-#include "ace/Message_Queue.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch_T.h"
-#include "ace/Task.h"
-
-// Forward decls...
-template <ACE_SYNCH_DECL> class ACE_Module;
-
-/**
- * @class ACE_Task
- *
- * @brief Primary interface for application message processing, as well
- * as input and output message queueing.
- *
- * This class serves as the basis for passive and active objects
- * in ACE.
- */
-template <ACE_SYNCH_DECL>
-class ACE_Task : public ACE_Task_Base
-{
-public:
- friend class ACE_Module<ACE_SYNCH_USE>;
- friend class ACE_Module_Type;
-
- // = Initialization/termination methods.
- /**
- * Initialize a Task, supplying a thread manager and a message
- * queue. If the user doesn't supply a ACE_Message_Queue pointer
- * then we'll allocate one dynamically. Otherwise, we'll use the
- * one passed as a parameter.
- */
- ACE_Task (ACE_Thread_Manager *thr_mgr = 0,
- ACE_Message_Queue<ACE_SYNCH_USE> *mq = 0);
-
- /// Destructor.
- virtual ~ACE_Task (void);
-
- /// Gets the message queue associated with this task.
- ACE_Message_Queue<ACE_SYNCH_USE> *msg_queue (void);
-
- /// Sets the message queue associated with this task.
- void msg_queue (ACE_Message_Queue<ACE_SYNCH_USE> *);
-
-public: // Should be protected:
- // = Message queue manipulation methods.
-
- // = Enqueue and dequeue methods.
-
- // For the following five method if <timeout> == 0, the caller will
- // block until action is possible, else will wait until the
- // <{absolute}> time specified in *<timeout> elapses). These calls
- // will return, however, when queue is closed, deactivated, when a
- // signal occurs, or if the time specified in timeout elapses, (in
- // which case errno = EWOULDBLOCK).
-
- /// Insert message into the message queue. Note that <timeout> uses
- /// <{absolute}> time rather than <{relative}> time.
- int putq (ACE_Message_Block *, ACE_Time_Value *timeout = 0);
-
- /**
- * Extract the first message from the queue (blocking). Note that
- * <timeout> uses <{absolute}> time rather than <{relative}> time.
- * Returns number of items in queue if the call succeeds or -1 otherwise.
- */
- int getq (ACE_Message_Block *&mb, ACE_Time_Value *timeout = 0);
-
- /// Return a message to the queue. Note that <timeout> uses
- /// <{absolute}> time rather than <{relative}> time.
- int ungetq (ACE_Message_Block *, ACE_Time_Value *timeout = 0);
-
- /**
- * Turn the message around and send it back down the Stream. Note
- * that <timeout> uses <{absolute}> time rather than <{relative}>
- * time.
- */
- int reply (ACE_Message_Block *, ACE_Time_Value *timeout = 0);
-
- /**
- * Transfer message to the adjacent ACE_Task in a ACE_Stream. Note
- * that <timeout> uses <{absolute}> time rather than <{relative}>
- * time.
- */
- int put_next (ACE_Message_Block *msg, ACE_Time_Value *timeout = 0);
-
- /// Tests whether we can enqueue a message without blocking.
- int can_put (ACE_Message_Block *);
-
- // = ACE_Task utility routines to identify names et al.
- /// Return the name of the enclosing Module if there's one associated
- /// with the Task, else returns 0.
- const ACE_TCHAR *name (void) const;
-
- // = Pointers to next ACE_Task_Base (if ACE is part of an ACE_Stream).
- /// Get next Task pointer.
- ACE_Task<ACE_SYNCH_USE> *next (void);
-
- /// Set next Task pointer.
- void next (ACE_Task<ACE_SYNCH_USE> *);
-
- /// Return the Task's sibling if there's one associated with the
- /// Task's Module, else returns 0.
- ACE_Task<ACE_SYNCH_USE> *sibling (void);
-
- /// Return the Task's Module if there is one, else returns 0.
- ACE_Module<ACE_SYNCH_USE> *module (void) const;
-
- /**
- * Flush the task's queue, i.e., free all of the enqueued
- * message blocks and releases any threads blocked on the queue.
- * Note that if this conflicts with the C++ iostream <flush>
- * function, just rewrite the iostream function as ::<flush>.
- */
- int flush (u_long flag = ACE_Task_Flags::ACE_FLUSHALL);
-
- // = Special routines corresponding to certain message types.
-
- /// Manipulate watermarks.
- void water_marks (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds, size_t);
-
- /// Queue of messages on the ACE_Task..
- ACE_Message_Queue<ACE_SYNCH_USE> *msg_queue_;
-
- /// 1 if should delete Message_Queue, 0 otherwise.
- int delete_msg_queue_;
-
- /// Back-pointer to the enclosing module.
- ACE_Module<ACE_SYNCH_USE> *mod_;
-
- /// Pointer to adjacent ACE_Task.
- ACE_Task<ACE_SYNCH_USE> *next_;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Task<ACE_SYNCH_USE> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Task (const ACE_Task<ACE_SYNCH_USE> &))
-};
-
-#if defined ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT
-template class ACE_Export ACE_Task<ACE_MT_SYNCH>;
-template class ACE_Export ACE_Task<ACE_NULL_SYNCH>;
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Task_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Task_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Task_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_TASK_T_H */
diff --git a/ace/Task_T.i b/ace/Task_T.i
deleted file mode 100644
index 1a78650279f..00000000000
--- a/ace/Task_T.i
+++ /dev/null
@@ -1,103 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Task_T.i
-
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Task<ACE_SYNCH_USE>::water_marks (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
- size_t wm_size)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::water_marks");
- if (cmd == ACE_IO_Cntl_Msg::SET_LWM)
- this->msg_queue_->low_water_mark (wm_size);
- else /* cmd == ACE_IO_Cntl_Msg::SET_HWM */
- this->msg_queue_->high_water_mark (wm_size);
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Task<ACE_SYNCH_USE>::getq (ACE_Message_Block *&mb, ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::getq");
- return this->msg_queue_->dequeue_head (mb, tv);
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Task<ACE_SYNCH_USE>::can_put (ACE_Message_Block *)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::can_put");
- assert (!"not implemented");
- return -1;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Task<ACE_SYNCH_USE>::putq (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::putq");
- return this->msg_queue_->enqueue_tail (mb, tv);
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Task<ACE_SYNCH_USE>::ungetq (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::ungetq");
- return this->msg_queue_->enqueue_head (mb, tv);
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Task<ACE_SYNCH_USE>::flush (u_long flag)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::flush");
- if (ACE_BIT_ENABLED (flag, ACE_Task_Flags::ACE_FLUSHALL))
- return this->msg_queue_ != 0 && this->msg_queue_->close ();
- else
- return -1; // Note, need to be more careful about what we free...
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Task<ACE_SYNCH_USE>::msg_queue (ACE_Message_Queue<ACE_SYNCH_USE> *mq)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::msg_queue");
- if (this->delete_msg_queue_)
- {
- delete this->msg_queue_;
- this->delete_msg_queue_ = 0;
- }
- this->msg_queue_ = mq;
-}
-
-template <ACE_SYNCH_DECL> ACE_Message_Queue<ACE_SYNCH_USE> *
-ACE_Task<ACE_SYNCH_USE>::msg_queue (void)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::msg_queue");
- return this->msg_queue_;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Task<ACE_SYNCH_USE>::reply (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::reply");
- return this->sibling ()->put_next (mb, tv);
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE ACE_Task<ACE_SYNCH_USE> *
-ACE_Task<ACE_SYNCH_USE>::next (void)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::next");
- return this->next_;
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Task<ACE_SYNCH_USE>::next (ACE_Task<ACE_SYNCH_USE> *q)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::next");
- this->next_ = q;
-}
-
-// Transfer msg to the next ACE_Task.
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Task<ACE_SYNCH_USE>::put_next (ACE_Message_Block *msg, ACE_Time_Value *tv)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::put_next");
- return this->next_ == 0 ? -1 : this->next_->put (msg, tv);
-}
diff --git a/ace/Template_Instantiations.cpp b/ace/Template_Instantiations.cpp
deleted file mode 100644
index 28f6aa318e7..00000000000
--- a/ace/Template_Instantiations.cpp
+++ /dev/null
@@ -1,356 +0,0 @@
-// $Id$
-
-// Note: this file has been created through concatenation of ALL
-// explicit template instantiations in ACE, and only those that
-// interfered with the multithreaded port of ACE to pSOS using the
-// Diab D-C++ 4.1a compiler have been wrapped with the appropriate
-// preprocesor directives for conditional compilation. If you are
-// trying to use this file, you will need to ensure that any
-// additional preprocessor directives needed are added. Also, if you
-// wish to extend this technique to instantiation pragmas, you will
-// need to modify the preprocesor directives below
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_FILE)
-
-// header files that are not already included
-#include "ace/Local_Tokens.h"
-#include "ace/Token.h"
-#include "ace/Containers.h"
-#include "ace/Obstack.h"
-#include "ace/Select_Reactor.h"
-#include "ace/Message_Queue.h"
-#include "ace/Module.h"
-#include "ace/Name_Space.h"
-#include "ace/Stream.h"
-#include "ace/Stream_Modules.h"
-#include "ace/Dynamic.h"
-#include "ace/Local_Name_Space_T.h"
-#include "ace/Filecache.h"
-#include "ace/Token_Invariants.h"
-#include "ace/Remote_Tokens.h"
-#include "ace/Singleton.h"
-#include "ace/Timer_Hash.h"
-#include "ace/Timer_Wheel_T.h"
-#include "ace/Auto_Ptr.h"
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#error ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_FILE may not be used with ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION or ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA
-#endif /* defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) */
-
-// D E P T H = 0
-// Templates with nesting depth 0 (no dependencies on
-// other templates), ordered by number of template arguments
-
-ACE_MT (template class ACE_Guard<ACE_Recursive_Thread_Mutex>);
-
-// ACE_MT (template class ACE_Guard<ACE_SELECT_REACTOR_MUTEX>);
-ACE_MT (template class ACE_Guard<ACE_Local_Mutex>);
-ACE_MT (template class ACE_Guard<ACE_Token>);
-
-ACE_MT (template class ACE_Guard<ACE_Thread_Mutex>);
-
-template class ACE_Guard<ACE_Lock>;
-template class ACE_Guard<ACE_Null_Mutex>;
-template class ACE_Guard<ACE_Process_Mutex>;
-template class ACE_Guard<ACE_RW_Process_Mutex>;
-template class ACE_Guard<ACE_RW_Thread_Mutex>;
-
-ACE_MT (template class ACE_TSS_Guard<ACE_Recursive_Thread_Mutex>);
-
-template class ACE_Array<ACE_Mutex *>;
-template class ACE_Array_Base<ACE_Mutex *>;
-template class ACE_Array<ACE_RW_Thread_Mutex *>;
-template class ACE_Array_Base<ACE_RW_Thread_Mutex *>;
-template class ACE_Array<ACE_TSS_Info>;
-template class ACE_Array_Base<ACE_TSS_Info>;
-template class ACE_Array<ACE_Thread_Mutex *>;
-template class ACE_Array_Base<ACE_Thread_Mutex *>;
-template class ACE_Array_Iterator<ACE_TSS_Info>;
-
-// ACE_PROCESS_MUTEX is defined in Malloc.h,
-// depending on whether ACE_HAS_THREADS is defined
-#if defined (ACE_HAS_MALLOC_STATS)
-template class ACE_Atomic_Op<ACE_PROCESS_MUTEX, int>;
-#endif /* ACE_HAS_MALLOC_STATS */
-
-template class ACE_Auto_Array_Ptr<struct ifreq>;
-template class ACE_Auto_Basic_Array_Ptr<struct ifreq>;
-template class ACE_Auto_Basic_Ptr<ACE_Obstack>;
-
-template class ACE_Cleanup_Adapter<ACE_Log_Msg>;
-template class ACE_Cleanup_Adapter<ACE_Mutex>;
-template class ACE_Cleanup_Adapter<ACE_Null_Mutex>;
-template class ACE_Cleanup_Adapter<ACE_Recursive_Thread_Mutex>;
-
-// ACE_SYNCH_RW_MUTEX is defined in Synch_T.h
-template class ACE_Cleanup_Adapter<ACE_SYNCH_RW_MUTEX>;
-
-template class ACE_Cleanup_Adapter<ACE_Thread_Mutex>;
-template class ACE_Double_Linked_List<ACE_Thread_Descriptor>;
-template class ACE_Double_Linked_List_Iterator_Base<ACE_Thread_Descriptor>;
-template class ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor>;
-template class ACE_Double_Linked_List_Reverse_Iterator<ACE_Thread_Descriptor>;
-// ACE_SYNCH_RECURSIVE_MUTEX is defined in Synch_T.h
-template class ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>;
-
-template class ACE_Lock_Adapter<ACE_Select_Reactor_Token>;
-
-template class ACE_Managed_Object<ACE_Mutex>;
-template class ACE_Managed_Object<ACE_Null_Mutex>;
-template class ACE_Managed_Object<ACE_Recursive_Thread_Mutex>;
-
-// ACE_SYNCH_RW_MUTEX is defined in Synch_T.h
-template class ACE_Managed_Object<ACE_SYNCH_RW_MUTEX>;
-template class ACE_Managed_Object<ACE_SYNCH_RW_MUTEX>;
-
-template class ACE_Managed_Object<ACE_Thread_Mutex>;
-
-// ACE_NULL_SYNCH is defined in Synch_T.h
-template class ACE_Message_Queue<ACE_NULL_SYNCH>;
-
-// ACE_SYNCH is defined in Synch_T.h
-template class ACE_Message_Queue<ACE_SYNCH>;
-
-// ACE_NULL_SYNCH is defined in Synch_T.h
-template class ACE_Module<ACE_NULL_SYNCH>;
-
-// ACE_SYNCH is defined in Synch_T.h
-template class ACE_Module<ACE_SYNCH>;
-
-template class ACE_Node <ACE_TPQ_Entry *>;
-template class ACE_Node<ACE_Cleanup_Info>;
-template class ACE_Node<ACE_Event_Tuple>;
-template class ACE_Node<ACE_Name_Binding>;
-template class ACE_Node<ACE_Static_Svc_Descriptor *>;
-template class ACE_Node<ACE_TSS_Ref>;
-template class ACE_Node<ACE_Thread_Descriptor*>;
-template class ACE_Node<ACE_Thread_Descriptor>;
-
-template class ACE_Node<ACE_WString>;
-
-// ACE_TCHAR is defined in OS.h
-template class ACE_Node<ACE_TCHAR *>;
-
-template class ACE_Read_Guard<ACE_Null_Mutex>;
-template class ACE_Read_Guard<ACE_RW_Process_Mutex>;
-template class ACE_Read_Guard<ACE_RW_Thread_Mutex>;
-
-// ACE_SYNCH is defined in Synch_T.h
-template class ACE_Stream<ACE_SYNCH>;
-template class ACE_Stream_Head<ACE_SYNCH>;
-template class ACE_Stream_Tail<ACE_SYNCH>;
-
-template class ACE_TSS <ACE_SOCK_Stream>;
-template class ACE_TSS <ACE_TPQ_Entry>;
-template class ACE_TSS<ACE_Dynamic>;
-template class ACE_TSS<ACE_TSS_Keys>;
-template class ACE_TSS<ACE_Thread_Exit>;
-
-// ACE_NULL_SYNCH is defined in Synch_T.h
-template class ACE_Task<ACE_NULL_SYNCH>;
-
-// ACE_SYNCH is defined in Synch_T.h
-template class ACE_Task<ACE_SYNCH>;
-
-// ACE_NULL_SYNCH is defined in Synch_T.h
-template class ACE_Thru_Task<ACE_NULL_SYNCH>;
-
-// ACE_SYNCH is defined in Synch_T.h
-template class ACE_Thru_Task<ACE_SYNCH>;
-
-template class ACE_Timer_Node_T<ACE_Event_Handler *>;
-template class ACE_Unbounded_Queue<ACE_Cleanup_Info>;
-template class ACE_Unbounded_Queue<ACE_Event_Tuple>;
-template class ACE_Unbounded_Queue<ACE_Thread_Descriptor*>;
-template class ACE_Unbounded_Queue<ACE_Thread_Descriptor>;
-
-// ACE_TCHAR is defined in OS.h
-template class ACE_Unbounded_Queue<ACE_TCHAR *>;
-
-template class ACE_Unbounded_Queue_Iterator<ACE_Cleanup_Info>;
-template class ACE_Unbounded_Queue_Iterator<ACE_Event_Tuple>;
-template class ACE_Unbounded_Queue_Iterator<ACE_Thread_Descriptor*>;
-template class ACE_Unbounded_Queue_Iterator<ACE_Thread_Descriptor>;
-
-// ACE_TCHAR is defined in OS.h
-template class ACE_Unbounded_Queue_Iterator<ACE_TCHAR *>;
-
-template class ACE_Unbounded_Set<ACE_Name_Binding>;
-template class ACE_Unbounded_Set<ACE_Static_Svc_Descriptor *>;
-template class ACE_Unbounded_Set<ACE_WString>;
-template class ACE_Unbounded_Set_Iterator<ACE_Name_Binding>;
-template class ACE_Unbounded_Set_Iterator<ACE_Static_Svc_Descriptor *>;
-template class ACE_Unbounded_Set_Iterator<ACE_WString>;
-template class ACE_Unbounded_Stack <ACE_TPQ_Entry *>;
-template class ACE_Write_Guard<ACE_Null_Mutex>;
-template class ACE_Write_Guard<ACE_RW_Process_Mutex>;
-template class ACE_Write_Guard<ACE_RW_Thread_Mutex>;
-
-// ACE_SYNCH_RW_MUTEX is defined in Synch_T.h
-template class ACE_Write_Guard<ACE_SYNCH_RW_MUTEX>;
-
-template class auto_ptr<ACE_Obstack>;
-
-// from Signal.cpp
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES)
-#define ACE_MAX_SIGNAL_HANDLERS ((size_t) 20)
-template class ACE_Fixed_Set<ACE_Event_Handler *, ACE_MAX_SIGNAL_HANDLERS>;
-template class ACE_Fixed_Set_Iterator<ACE_Event_Handler *, ACE_MAX_SIGNAL_HANDLERS>;
-#endif /* !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES) */
-
-// ACE_LOCAL_MEMORY_POOL, ACE_MMAP_MEMORY_POOL, and
-// ACE_LITE_MMAP_MEMORY_POOL are all defined in OS.h
-
-template class ACE_Local_Name_Space <ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex>;
-template class ACE_Local_Name_Space <ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex>;
-template class ACE_Malloc<ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex>;
-template class ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex>;
-template class ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex>;
-template class ACE_Malloc_T<ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex, ACE_Control_Block>;
-template class ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex, ACE_Control_Block>;
-template class ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex, ACE_Control_Block>;
-template class ACE_Allocator_Adapter<ACE_Malloc<ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> >;
-
-template class ACE_Map_Entry <ACE_Token_Name, ACE_Tokens *>;
-template class ACE_Map_Entry<ACE_Token_Name, ACE_Mutex_Invariants *>;
-template class ACE_Map_Entry<ACE_Token_Name, ACE_RWLock_Invariants *>;
-template class ACE_Map_Entry<ACE_Token_Name, ACE_Token_Proxy *>;
-template class ACE_Module<ACE_Thread_Mutex, ACE_Condition_Thread_Mutex>;
-
-// from Remote_Tokens.cpp
-template class ACE_Singleton <ACE_TSS_Connection, ACE_SYNCH_MUTEX>;
-
-template class ACE_TSS_Singleton<ACE_Dynamic, ACE_Null_Mutex>;
-
-// from Local_Name_Space.cpp
-#if (1)
-template class ACE_Hash_Map_Entry<ACE_NS_String, ACE_NS_Internal>;
-template class ACE_Hash<ACE_NS_String>;
-template class ACE_Equal_To<ACE_NS_String>;
-template class ACE_Hash_Map_Manager_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Base_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex>;
-#else
-template class ACE_Map_Entry<ACE_NS_String, ACE_NS_Internal>;
-template class ACE_Map_Manager<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex>;
-template class ACE_Map_Iterator<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex>;
-#endif
-
-// from Filecache.cpp
-#if defined (ACE_HAS_TEMPLATE_SPECIALIZATION)
-template class ACE_Hash_Map_Entry<const char *, ACE_Filecache_Object *>;
-template class ACE_Hash_Map_Manager_Ex<const char *, ACE_Filecache_Object *, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Base_Ex<const char *, ACE_Filecache_Object *, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<const char *, ACE_Filecache_Object *, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<const char *, ACE_Filecache_Object *, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>;
-#else
-template class ACE_Hash_Map_Entry<ACE_TString, ACE_Filecache_Object *>;
-template class ACE_Hash<ACE_TString>;
-template class ACE_Equal_To<ACE_TString>;
-template class ACE_Hash_Map_Manager_Ex<ACE_TString, ACE_Filecache_Object *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Base_Ex<ACE_TString, ACE_Filecache_Object *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<ACE_TString, ACE_Filecache_Object *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_TString, ACE_Filecache_Object *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex>;
-#endif /* ACE_HAS_TEMPLATE_SPECIALIZATION */
-
-template class ACE_Map_Iterator<ACE_Token_Name, ACE_Mutex_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator<ACE_Token_Name, ACE_RWLock_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator<ACE_Token_Name, ACE_Token_Proxy *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator<ACE_Token_Name, ACE_Tokens *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<ACE_Token_Name, ACE_Mutex_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<ACE_Token_Name, ACE_RWLock_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<ACE_Token_Name, ACE_Token_Proxy *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<ACE_Token_Name, ACE_Tokens *, ACE_Null_Mutex>;
-template class ACE_Map_Manager <ACE_Token_Name, ACE_Tokens *, ACE_Null_Mutex>;
-template class ACE_Map_Manager<ACE_Token_Name, ACE_Mutex_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Manager<ACE_Token_Name, ACE_RWLock_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Manager<ACE_Token_Name, ACE_Token_Proxy *, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<ACE_Token_Name, ACE_Mutex_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<ACE_Token_Name, ACE_RWLock_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<ACE_Token_Name, ACE_Token_Proxy *, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<ACE_Token_Name, ACE_Tokens *, ACE_Null_Mutex>;
-
-// D E P T H = 1
-// Templates with nesting depth 1 (dependencies on other templates 1
-// level deep), ordered by number of template arguments at top level
-
-
-// ACE_MMAP_MEMORY_POOL is defined in OS.h
-
-template class ACE_Allocator_Adapter<ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex> >;
-template class ACE_Allocator_Adapter<ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> >;
-
-template class ACE_Node<ACE_Timer_Node_T<ACE_Event_Handler *> *>;
-
-// ACE_SYNCH_NULL_MUTEX is defined in Synch_T.h
-template class ACE_Cached_Allocator<ACE_Node<ACE_Event_Tuple>, ACE_SYNCH_NULL_MUTEX>;
-
-template class ACE_Cached_Mem_Pool_Node<ACE_Node<ACE_Event_Tuple> >;
-template class ACE_Free_List<ACE_Timer_Node_T<ACE_Event_Handler *> >;
-
-// ACE_SYNCH_RECURSIVE_MUTEX is defined in Synch_T.h
-template class ACE_Timer_Heap_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Heap_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_List_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_List_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Queue_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Queue_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Wheel_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Wheel_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-
-template class ACE_Unbounded_Set<ACE_Timer_Node_T<ACE_Event_Handler *> *>;
-template class ACE_Unbounded_Set_Iterator<ACE_Timer_Node_T<ACE_Event_Handler *> *>;
-template class ACE_Locked_Free_List<ACE_Timer_Node_T<ACE_Event_Handler *>, ACE_Null_Mutex>;
-
-template class ACE_Timer_Hash_Upcall<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex>;
-
-// ACE_SYNCH_RECURSIVE_MUTEX is defined in Synch_T.h
-template class ACE_Timer_Hash_Upcall <ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Hash_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX, ACE_Hash_Timer_List>;
-template class ACE_Timer_Hash_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX, ACE_Hash_Timer_List>;
-template class ACE_Timer_Hash_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX, ACE_Hash_Timer_Heap>;
-template class ACE_Timer_Hash_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX, ACE_Hash_Timer_Heap>;
-
-// D E P T H = 2
-// Templates with nesting depth 2 (dependencies on other templates 2
-// levels deep), ordered by number of template arguments at top level
-
-template class ACE_Timer_Queue_T <ACE_Event_Handler *, ACE_Hash_Upcall, ACE_Null_Mutex>;
-
-template class ACE_Timer_Queue_Iterator_T <ACE_Event_Handler *, ACE_Hash_Upcall, ACE_Null_Mutex>;
-
-template class ACE_Timer_List_T <ACE_Event_Handler *, ACE_Hash_Upcall, ACE_Null_Mutex>;
-
-template class ACE_Timer_List_Iterator_T <ACE_Event_Handler *, ACE_Hash_Upcall, ACE_Null_Mutex>;
-
-template class ACE_Timer_Heap_T <ACE_Event_Handler *, ACE_Hash_Upcall, ACE_Null_Mutex>;
-
-template class ACE_Timer_Heap_Iterator_T <ACE_Event_Handler *, ACE_Hash_Upcall, ACE_Null_Mutex>;
-
-// ACE_MMAP_MEMORY_POOL and ACE_LITE_MMAP_MEMORY_POOL are defined in OS.h
-
-template class ACE_Name_Space_Map <ACE_Allocator_Adapter <ACE_Malloc <ACE_LITE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> > >;
-template class ACE_Name_Space_Map <ACE_Allocator_Adapter <ACE_Malloc <ACE_MMAP_MEMORY_POOL, ACE_RW_Process_Mutex> > >;
-
-template class ACE_Free_List<ACE_Cached_Mem_Pool_Node<ACE_Node<ACE_Event_Tuple> > >;
-
-// ACE_SYNCH_NULL_MUTEX is defined in Synch_T.h
-template class ACE_Locked_Free_List<ACE_Cached_Mem_Pool_Node<ACE_Node<ACE_Event_Tuple> >, ACE_SYNCH_NULL_MUTEX>;
-
-template class ACE_Timer_Heap_T<ACE_Event_Handler*, ACE_Timer_Hash_Upcall<ACE_Event_Handler*, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex>, ACE_Null_Mutex>;
-
-template class ACE_Timer_Heap_Iterator_T<ACE_Event_Handler*, ACE_Timer_Hash_Upcall<ACE_Event_Handler*, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex>, ACE_Null_Mutex>;
-
-template class ACE_Timer_List_T<ACE_Event_Handler*, ACE_Timer_Hash_Upcall<ACE_Event_Handler*, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex>, ACE_Null_Mutex>;
-
-template class ACE_Timer_List_Iterator_T<ACE_Event_Handler*, ACE_Timer_Hash_Upcall<ACE_Event_Handler*, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex>, ACE_Null_Mutex>;
-
-template class ACE_Timer_Queue_T<ACE_Event_Handler*, ACE_Timer_Hash_Upcall<ACE_Event_Handler*, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex>, ACE_Null_Mutex>;
-
-template class ACE_Timer_Queue_Iterator_T<ACE_Event_Handler*, ACE_Timer_Hash_Upcall<ACE_Event_Handler*, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex>, ACE_Null_Mutex>;
-
-
-#endif /* defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_FILE) */
diff --git a/ace/Test_and_Set.cpp b/ace/Test_and_Set.cpp
deleted file mode 100644
index 73896eb387a..00000000000
--- a/ace/Test_and_Set.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// $Id$
-
-#ifndef ACE_TEST_AND_SET_C
-#define ACE_TEST_AND_SET_C
-
-#include "ace/Test_and_Set.h"
-#include "ace/Synch_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, Test_and_Set, "$Id$")
-
-template <class ACE_LOCK, class TYPE>
-ACE_Test_and_Set<ACE_LOCK, TYPE>::ACE_Test_and_Set (TYPE initial_value)
- : is_set_ (initial_value)
-{
-}
-
-// Returns true if we are done, else false.
-template <class ACE_LOCK, class TYPE> TYPE
-ACE_Test_and_Set<ACE_LOCK, TYPE>::is_set (void) const
-{
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, (ACE_LOCK &) this->lock_, this->is_set_);
- return this->is_set_;
-}
-
-// Sets the <is_set_> status.
-template <class ACE_LOCK, class TYPE> TYPE
-ACE_Test_and_Set<ACE_LOCK, TYPE>::set (TYPE status)
-{
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, this->is_set_);
- TYPE o_status = this->is_set_;
- this->is_set_ = status;
- return o_status;
-}
-
-template <class ACE_LOCK, class TYPE> int
-ACE_Test_and_Set<ACE_LOCK, TYPE>::handle_signal (int, siginfo_t *, ucontext_t *)
-{
- // By setting this to 1, we are "signaling" to anyone calling
- // <is_set> or or <set> that the "test and set" object is in the
- // "signaled" state, i.e., it's "available" to be set back to 0.
- this->set (1);
- return 0;
-}
-
-#endif /* ACE_TEST_AND_SET_C */
diff --git a/ace/Test_and_Set.h b/ace/Test_and_Set.h
deleted file mode 100644
index 4def53af1bd..00000000000
--- a/ace/Test_and_Set.h
+++ /dev/null
@@ -1,76 +0,0 @@
-
-//=============================================================================
-/**
- * @file Test_and_Set.h
- *
- * $Id$
- *
- * @author Priyanka Gontla <pgontla@ece.uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_TEST_AND_SET_H
-#define ACE_TEST_AND_SET_H
-
-#include "ace/pre.h"
-#include "ace/Event_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class ACE_Test_and_Set
- *
- * @brief Implements the classic ``test and set'' operation.
- *
- *
- * This class keeps track of the status of <is_set_>, which can
- * be set based on various events (such as receipt of a
- * signal). This class is derived from <ACE_Event_Handler> so
- * that it can be "signaled" by a Reactor when a signal occurs.
- * We assume that <TYPE> is a data type that can be assigned the
- * value 0 or 1.
- */
-template <class ACE_LOCK, class TYPE>
-class ACE_Test_and_Set : public ACE_Event_Handler
-{
-public:
- ACE_Test_and_Set (TYPE initial_value = 0);
-
- /// Returns true if we are set, else false.
- TYPE is_set (void) const;
-
- /// Sets the <is_set_> status, returning the original value of
- /// <is_set_>.
- TYPE set (TYPE);
-
- /// Called when object is signaled by OS (either via UNIX signals or
- /// when a Win32 object becomes signaled).
- virtual int handle_signal (int signum,
- siginfo_t * = 0,
- ucontext_t * = 0);
-
-private:
- /// Keeps track of our state.
- TYPE is_set_;
-
- /// Protect the state from race conditions.
- ACE_LOCK lock_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Test_and_Set.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Test_and_Set.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Test_and_Set.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_TEST_AND_SET_H */
diff --git a/ace/Test_and_Set.i b/ace/Test_and_Set.i
deleted file mode 100644
index cfa1da318d3..00000000000
--- a/ace/Test_and_Set.i
+++ /dev/null
@@ -1 +0,0 @@
-// $Id$
diff --git a/ace/Thread.cpp b/ace/Thread.cpp
deleted file mode 100644
index 45a0dce23eb..00000000000
--- a/ace/Thread.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-// Thread.cpp
-// $Id$
-
-#include "ace/Thread.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Thread.i"
-#endif /* !defined (__ACE_INLINE__) */
-
-ACE_RCSID(ace, Thread, "$Id$")
-
-#if defined (ACE_HAS_THREADS)
-
-size_t
-ACE_Thread::spawn_n (size_t n,
- ACE_THR_FUNC func,
- void *arg,
- long flags,
- long priority,
- void *stack[],
- size_t stack_size[],
- ACE_Thread_Adapter *thread_adapter)
-{
- ACE_TRACE ("ACE_Thread::spawn_n");
- ACE_thread_t t_id;
- size_t i;
-
- for (i = 0; i < n; i++)
- // Bail out if error occurs.
- if (ACE_OS::thr_create (func,
- arg,
- flags,
- &t_id,
- 0,
- priority,
- stack == 0 ? 0 : stack[i],
- stack_size == 0 ? 0 : stack_size[i],
- thread_adapter) != 0)
- break;
-
- return i;
-}
-
-size_t
-ACE_Thread::spawn_n (ACE_thread_t thread_ids[],
- size_t n,
- ACE_THR_FUNC func,
- void *arg,
- long flags,
- long priority,
- void *stack[],
- size_t stack_size[],
- ACE_hthread_t thread_handles[],
- ACE_Thread_Adapter *thread_adapter)
-{
- ACE_TRACE ("ACE_Thread::spawn_n");
- size_t i;
-
- for (i = 0; i < n; i++)
- {
- ACE_thread_t t_id;
- ACE_hthread_t t_handle;
-
- int result =
- ACE_OS::thr_create (func,
- arg,
- flags,
- &t_id,
- &t_handle,
- priority,
- stack == 0 ? 0 : stack[i],
- stack_size == 0 ? 0 : stack_size[i],
- thread_adapter);
-
- if (result == 0)
- {
- if (thread_ids != 0)
- thread_ids[i] = t_id;
- if (thread_handles != 0)
- thread_handles[i] = t_handle;
- }
- else
- // Bail out if error occurs.
- break;
- }
-
- return i;
-}
-
-#endif /* ACE_HAS_THREADS */
diff --git a/ace/Thread.h b/ace/Thread.h
deleted file mode 100644
index 48f960da386..00000000000
--- a/ace/Thread.h
+++ /dev/null
@@ -1,248 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Thread.h
- *
- * $Id$
- *
- * @author Douglas Schmidt <schmidt@cs.wustl.edu>
- */
-//==========================================================================
-
-#ifndef ACE_THREAD_H
-#define ACE_THREAD_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-#include "ace/Thread_Adapter.h"
-
-/**
- * @class ACE_Thread
- *
- * @brief Provides a wrapper for threads.
- *
- * This class provides a common interface that is mapped onto
- * POSIX Pthreads, Solaris threads, Win32 threads, VxWorks
- * threads, or pSoS threads. Note, however, that it is
- * generally a better idea to use the <ACE_Thread_Manager>
- * programming API rather than the <ACE_Thread> API since the
- * thread manager is more powerful.
- */
-class ACE_Export ACE_Thread
-{
-public:
- /**
- * Creates a new thread having <flags> attributes and running <func>
- * with <args> (if <thread_adapter> is non-0 then <func> and <args>
- * are ignored and are obtained from <thread_adapter>). <thr_id>
- * and <t_handle> are set to the thread's ID and handle (?),
- * respectively. The thread runs at <priority> priority (see
- * below).
- *
- * The <flags> are a bitwise-OR of the following:
- * = BEGIN<INDENT>
- * THR_CANCEL_DISABLE, THR_CANCEL_ENABLE, THR_CANCEL_DEFERRED,
- * THR_CANCEL_ASYNCHRONOUS, THR_BOUND, THR_NEW_LWP, THR_DETACHED,
- * THR_SUSPENDED, THR_DAEMON, THR_JOINABLE, THR_SCHED_FIFO,
- * THR_SCHED_RR, THR_SCHED_DEFAULT, THR_EXPLICIT_SCHED,
- * THR_SCOPE_SYSTEM, THR_SCOPE_PROCESS
- * = END<INDENT>
- *
- * By default, or if <priority> is set to
- * ACE_DEFAULT_THREAD_PRIORITY, an "appropriate" priority value for
- * the given scheduling policy (specified in <flags}>, e.g.,
- * <THR_SCHED_DEFAULT>) is used. This value is calculated
- * dynamically, and is the median value between the minimum and
- * maximum priority values for the given policy. If an explicit
- * value is given, it is used. Note that actual priority values are
- * EXTREMEMLY implementation-dependent, and are probably best
- * avoided.
- *
- * Note that <thread_adapter> is always deleted when <spawn>
- * is called, so it must be allocated with global operator new.
- */
- static int spawn (ACE_THR_FUNC func,
- void *arg = 0,
- long flags = THR_NEW_LWP | THR_JOINABLE,
- ACE_thread_t *t_id = 0,
- ACE_hthread_t *t_handle = 0,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- void *stack = 0,
- size_t stack_size = 0,
- ACE_Thread_Adapter *thread_adapter = 0);
-
- /**
- * Spawn N new threads, which execute <func> with argument <arg> (if
- * <thread_adapter> is non-0 then <func> and <args> are ignored and
- * are obtained from <thread_adapter>). If <stack> != 0 it is
- * assumed to be an array of <n> pointers to the base of the stacks
- * to use for the threads being spawned. Likewise, if <stack_size>
- * != 0 it is assumed to be an array of <n> values indicating how
- * big each of the corresponding <stack>s are. Returns the number
- * of threads actually spawned (if this doesn't equal the number
- * requested then something has gone wrong and <errno> will
- * explain...).
- *
- * @see spawn()
- */
- static size_t spawn_n (size_t n,
- ACE_THR_FUNC func,
- void *arg = 0,
- long flags = THR_NEW_LWP | THR_JOINABLE,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- void *stack[] = 0,
- size_t stack_size[] = 0,
- ACE_Thread_Adapter *thread_adapter = 0);
-
- /**
- * Spawn <n> new threads, which execute <func> with argument <arg>
- * (if <thread_adapter> is non-0 then <func> and <args> are ignored
- * and are obtained from <thread_adapter>). The thread_ids of
- * successfully spawned threads will be placed into the <thread_ids>
- * buffer (which must be the same size as <n>). If <stack> != 0 it
- * is assumed to be an array of <n> pointers to the base of the
- * stacks to use for the threads being spawned. If <stack_size> !=
- * 0 it is assumed to be an array of <n> values indicating how big
- * each of the corresponding <stack>s are. If <thread_handles> != 0
- * it is assumed to be an array of <n> thread_handles that will be
- * assigned the values of the thread handles being spawned. Returns
- * the number of threads actually spawned (if this doesn't equal the
- * number requested then something has gone wrong and <errno> will
- * explain...).
- *
- * @see spawn()
- */
- static size_t spawn_n (ACE_thread_t thread_ids[],
- size_t n,
- ACE_THR_FUNC func,
- void *arg,
- long flags,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- void *stack[] = 0,
- size_t stack_size[] = 0,
- ACE_hthread_t thread_handles[] = 0,
- ACE_Thread_Adapter *thread_adapter = 0);
-
- /// Wait for one or more threads to exit and reap their exit status.
- static int join (ACE_thread_t,
- ACE_thread_t *,
- ACE_THR_FUNC_RETURN *status);
-
- /// Wait for one thread to exit and reap its exit status.
- static int join (ACE_hthread_t,
- ACE_THR_FUNC_RETURN * = 0);
-
- /// Continue the execution of a previously suspended thread.
- static int resume (ACE_hthread_t);
-
- /// Suspend the execution of a particular thread.
- static int suspend (ACE_hthread_t);
-
- /// Get the priority of a particular thread.
- static int getprio (ACE_hthread_t id, int &priority);
-
- /// Get the priority and policy of a particular thread.
- static int getprio (ACE_hthread_t id, int &priority, int &policy);
-
- /// Set the priority of a particular thread.
- static int setprio (ACE_hthread_t id, int priority, int policy = -1);
-
- /// Send a signal to the thread.
- static int kill (ACE_thread_t, int signum);
-
- /// Yield the thread to another.
- static void yield (void);
-
- /**
- * Return the unique kernel handle of the thread. Note that on
- * Win32 this is actually a pseudohandle, which cannot be shared
- * with other processes or waited on by threads. To locate the real
- * handle, please use the <ACE_Thread_Manager::thr_self> method.
- */
- static void self (ACE_hthread_t &t_handle);
-
- /// Return the unique ID of the thread.
- static ACE_thread_t self (void);
-
- /// Exit the current thread and return "status".
- /// Should _not_ be called by main thread.
- static void exit (ACE_THR_FUNC_RETURN status = 0);
-
- /// Get the LWP concurrency level of the process.
- static int getconcurrency (void);
-
- /// Set the LWP concurrency level of the process.
- static int setconcurrency (int new_level);
-
- /// Change and/or examine calling thread's signal mask.
- static int sigsetmask (int how,
- const sigset_t *sigset,
- sigset_t *osigset = 0);
-
- static int keycreate (ACE_thread_key_t *keyp,
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_THR_C_DEST destructor,
-#else
- ACE_THR_DEST destructor,
-#endif /* ACE_HAS_THR_C_DEST */
- /**
- * Allocates a <keyp> that is used to identify data that is specific
- * to each thread in the process. The key is global to all threads
- * in the process.
- */
- void * = 0);
-
- /// Free up the key so that other threads can reuse it.
- static int keyfree (ACE_thread_key_t key);
-
- /// Bind value to the thread-specific data key, <key>, for the calling
- /// thread.
- static int setspecific (ACE_thread_key_t key,
- void *value);
-
- /// Stores the current value bound to <key> for the calling thread
- /// into the location pointed to by <valuep>.
- static int getspecific (ACE_thread_key_t key,
- void **valuep);
-
- /// Disable thread cancellation.
- static int disablecancel (struct cancel_state *old_state);
-
- /// Enable thread cancellation.
- static int enablecancel (struct cancel_state *old_state,
- int flag);
-
- /// Set the cancellation state.
- static int setcancelstate (struct cancel_state &new_state,
- struct cancel_state *old_state);
-
- /**
- * Cancel a thread. Note that this method is only portable on
- * platforms, such as POSIX pthreads, that support thread
- * cancellation.
- */
- static int cancel (ACE_thread_t t_id);
-
- /// Test the cancel.
- static void testcancel (void);
-
-private:
- /// Ensure that we don't get instantiated.
- ACE_Thread (void);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Thread.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_THREAD_H */
diff --git a/ace/Thread.i b/ace/Thread.i
deleted file mode 100644
index 0a489f873b9..00000000000
--- a/ace/Thread.i
+++ /dev/null
@@ -1,279 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Thread.i
-
-// Allocates a <keyp> that is used to identify data that is specific
-// to each thread in the process. The key is global to all threads in
-// the process.
-
-ACE_INLINE int
-ACE_Thread::keycreate (ACE_thread_key_t *keyp,
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_THR_C_DEST destructor,
-#else
- ACE_THR_DEST destructor,
-#endif /* ACE_HAS_THR_C_DEST */
- void *inst)
-{
- // ACE_TRACE ("ACE_Thread::keycreate");
- return ACE_OS::thr_keycreate (keyp, destructor, inst);
-}
-
-// Free up the key so that other threads can reuse it.
-
-ACE_INLINE int
-ACE_Thread::keyfree (ACE_thread_key_t key)
-{
- ACE_TRACE ("ACE_Thread::keyfree");
- return ACE_OS::thr_keyfree (key);
-}
-
-// Bind value to the thread-specific data key, <key>, for the calling
-// thread.
-
-ACE_INLINE int
-ACE_Thread::setspecific (ACE_thread_key_t key, void *value)
-{
- // ACE_TRACE ("ACE_Thread::setspecific");
- return ACE_OS::thr_setspecific (key, value);
-}
-
-// Stores the current value bound to <key> for the calling thread
-// into the location pointed to by <valuep>.
-
-ACE_INLINE int
-ACE_Thread::getspecific (ACE_thread_key_t key, void **valuep)
-{
- // ACE_TRACE ("ACE_Thread::getspecific");
- return ACE_OS::thr_getspecific (key, valuep);
-}
-
-ACE_INLINE ACE_thread_t
-ACE_Thread::self (void)
-{
-// ACE_TRACE ("ACE_Thread::self");
- return ACE_OS::thr_self ();
-}
-
-ACE_INLINE void
-ACE_Thread::exit (ACE_THR_FUNC_RETURN status)
-{
- ACE_TRACE ("ACE_Thread::exit");
- ACE_OS::thr_exit (status);
-}
-
-ACE_INLINE void
-ACE_Thread::yield (void)
-{
- ACE_TRACE ("ACE_Thread::yield");
- ACE_OS::thr_yield ();
-}
-
-ACE_INLINE int
-ACE_Thread::spawn (ACE_THR_FUNC func,
- void *arg,
- long flags,
- ACE_thread_t *t_id,
- ACE_hthread_t *t_handle,
- long priority,
- void *thr_stack,
- size_t thr_stack_size,
- ACE_Thread_Adapter *thread_adapter)
-{
- ACE_TRACE ("ACE_Thread::spawn");
-
- return ACE_OS::thr_create (func,
- arg,
- flags,
- t_id,
- t_handle,
- priority,
- thr_stack,
- thr_stack_size,
- thread_adapter);
-}
-
-ACE_INLINE int
-ACE_Thread::resume (ACE_hthread_t t_id)
-{
- ACE_TRACE ("ACE_Thread::resume");
- return ACE_OS::thr_continue (t_id);
-}
-
-ACE_INLINE int
-ACE_Thread::suspend (ACE_hthread_t t_id)
-{
- ACE_TRACE ("ACE_Thread::suspend");
- return ACE_OS::thr_suspend (t_id);
-}
-
-ACE_INLINE int
-ACE_Thread::kill (ACE_thread_t t_id, int signum)
-{
- ACE_TRACE ("ACE_Thread::kill");
- return ACE_OS::thr_kill (t_id, signum);
-}
-
-ACE_INLINE int
-ACE_Thread::join (ACE_thread_t wait_for,
- ACE_thread_t *departed,
- ACE_THR_FUNC_RETURN *status)
-{
- ACE_TRACE ("ACE_Thread::join");
- return ACE_OS::thr_join (wait_for, departed, status);
-}
-
-ACE_INLINE int
-ACE_Thread::join (ACE_hthread_t wait_for,
- ACE_THR_FUNC_RETURN *status)
-{
- ACE_TRACE ("ACE_Thread::join");
- return ACE_OS::thr_join (wait_for, status);
-}
-
-ACE_INLINE int
-ACE_Thread::getconcurrency (void)
-{
- ACE_TRACE ("ACE_Thread::getconcurrency");
- return ACE_OS::thr_getconcurrency ();
-}
-
-ACE_INLINE int
-ACE_Thread::setconcurrency (int new_level)
-{
- ACE_TRACE ("ACE_Thread::setconcurrency");
- return ACE_OS::thr_setconcurrency (new_level);
-}
-
-ACE_INLINE int
-ACE_Thread::sigsetmask (int how,
- const sigset_t *sigset,
- sigset_t *osigset)
-{
- ACE_TRACE ("ACE_Thread::sigsetmask");
- return ACE_OS::thr_sigsetmask (how, sigset, osigset);
-}
-
-ACE_INLINE int
-ACE_Thread::disablecancel (struct cancel_state *old_state)
-{
- ACE_TRACE ("ACE_Thread::disablecancel");
- int old_cstate = 0;
- int result = ACE_OS::thr_setcancelstate (THR_CANCEL_DISABLE,
- &old_cstate);
- if (result == 0 && old_state != 0)
- {
- ACE_OS::memset (old_state,
- 0,
- sizeof (old_state));
- old_state->cancelstate = old_cstate;
- }
-
- return result;
-}
-
-ACE_INLINE int
-ACE_Thread::enablecancel (struct cancel_state *old_state,
- int flag)
-{
- ACE_TRACE ("ACE_Thread::enablecancel");
- int old_cstate = 0;
- int old_ctype = 0;
- int result;
-
- result = ACE_OS::thr_setcancelstate (THR_CANCEL_ENABLE,
- &old_cstate);
- if (result != 0)
- return result;
-
- result = ACE_OS::thr_setcanceltype (flag,
- &old_ctype);
- if (result != 0)
- return result;
-
- if (old_state != 0)
- {
- old_state->cancelstate = old_cstate;
- old_state->canceltype = old_ctype;
- }
-
- return 0;
-}
-
-ACE_INLINE int
-ACE_Thread::setcancelstate (struct cancel_state &new_state,
- struct cancel_state *old_state)
-{
- ACE_TRACE ("ACE_Thread::setcancelstate");
- int old_cstate = 0;
- int old_ctype = 0;
-
- if (new_state.cancelstate != 0
- && ACE_OS::thr_setcancelstate (new_state.cancelstate,
- &old_cstate) != 0)
- return -1;
-
- if (new_state.canceltype != 0
- && ACE_OS::thr_setcanceltype (new_state.canceltype,
- &old_ctype) != 0)
- {
- int o_cstate;
-
- ACE_OS::thr_setcancelstate (old_cstate,
- &o_cstate);
- return -1;
- }
-
- if (old_state != 0)
- {
- old_state->cancelstate = old_cstate;
- old_state->canceltype = old_ctype;
- }
-
- return 0;
-}
-
-ACE_INLINE int
-ACE_Thread::cancel (ACE_thread_t t_id)
-{
- ACE_TRACE ("ACE_Thread::cancel");
-
- return ACE_OS::thr_cancel (t_id);
-}
-
-ACE_INLINE void
-ACE_Thread::testcancel (void)
-{
- ACE_TRACE ("ACE_Thread::testcancel");
-
- ACE_OS::thr_testcancel ();
-}
-
-ACE_INLINE void
-ACE_Thread::self (ACE_hthread_t &t_id)
-{
-// ACE_TRACE ("ACE_Thread::self");
- ACE_OS::thr_self (t_id);
-}
-
-ACE_INLINE int
-ACE_Thread::getprio (ACE_hthread_t id, int &priority)
-{
- ACE_TRACE ("ACE_Thread::getprio");
- return ACE_OS::thr_getprio (id, priority);
-}
-
-ACE_INLINE int
-ACE_Thread::getprio (ACE_hthread_t id, int &priority, int &policy)
-{
- ACE_TRACE ("ACE_Thread::getprio");
- return ACE_OS::thr_getprio (id, priority, policy);
-}
-
-ACE_INLINE int
-ACE_Thread::setprio (ACE_hthread_t id, int priority, int policy)
-{
- ACE_TRACE ("ACE_Thread::setprio");
- return ACE_OS::thr_setprio (id, priority, policy);
-}
diff --git a/ace/Thread_Adapter.cpp b/ace/Thread_Adapter.cpp
deleted file mode 100644
index 0fef397baf2..00000000000
--- a/ace/Thread_Adapter.cpp
+++ /dev/null
@@ -1,248 +0,0 @@
-// $Id$
-
-#include "ace/Thread_Adapter.h"
-#include "ace/OS.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Thread_Exit.h"
-#include "ace/Thread_Hook.h"
-
-ACE_RCSID (ace,
- Thread_Adapter,
- "$Id$")
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "ace/Thread_Adapter.inl"
-#endif /* ACE_HAS_INLINED_OS_CALLS */
-
-ACE_Thread_Adapter::ACE_Thread_Adapter (ACE_THR_FUNC user_func,
- void *arg,
- ACE_THR_C_FUNC entry_point,
- ACE_Thread_Manager *tm,
- ACE_Thread_Descriptor *td
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- , ACE_SEH_EXCEPT_HANDLER selector,
- ACE_SEH_EXCEPT_HANDLER handler
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- )
- : ACE_Base_Thread_Adapter (
- user_func
- , arg
- , entry_point
- , td
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- , selector
- , handler
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- )
- , thr_mgr_ (tm)
-{
- ACE_OS_TRACE ("ACE_Thread_Adapter::ACE_Thread_Adapter");
-}
-
-ACE_Thread_Adapter::~ACE_Thread_Adapter (void)
-{
-}
-
-ACE_THR_FUNC_RETURN
-ACE_Thread_Adapter::invoke (void)
-{
- // Inherit the logging features if the parent thread has an
- // ACE_Log_Msg instance in thread-specific storage.
- this->inherit_log_msg ();
-
-#if !defined(ACE_USE_THREAD_MANAGER_ADAPTER)
- // NOTE: this preprocessor directive should match the one in above
- // ACE_Thread_Exit::instance (). With the Xavier Pthreads package,
- // the exit_hook in TSS causes a seg fault. So, this works around
- // that by creating exit_hook on the stack.
-# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)
- // Obtain our thread-specific exit hook and make sure that it knows
- // how to clean us up! Note that we never use this pointer directly
- // (it's stored in thread-specific storage), so it's ok to
- // dereference it here and only store it as a reference.
-
- // Except if it is null, then the thr_mgr() method crashes.
- // -jxh
-
- ACE_Thread_Exit *exit_hook_instance = ACE_Thread_Exit::instance ();
- ACE_Thread_Exit_Maybe exit_hook_maybe (exit_hook_instance == 0);
- ACE_Thread_Exit *exit_hook_ptr = exit_hook_instance
- ? exit_hook_instance
- : exit_hook_maybe.instance ();
- ACE_Thread_Exit &exit_hook = *exit_hook_ptr;
-
- if (this->thr_mgr () != 0)
- {
- // Keep track of the <Thread_Manager> that's associated with this
- // <exit_hook>.
- exit_hook.thr_mgr (this->thr_mgr ());
- }
-# else
- // Without TSS, create an <ACE_Thread_Exit> instance. When this
- // function returns, its destructor will be called because the
- // object goes out of scope. The drawback with this appraoch is
- // that the destructor _won't_ get called if <thr_exit> is called.
- // So, threads shouldn't exit that way. Instead, they should return
- // from <svc>.
- ACE_Thread_Exit exit_hook;
- exit_hook.thr_mgr (this->thr_mgr ());
-# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */
-
-#endif /* ! ACE_USE_THREAD_MANAGER_ADAPTER */
-
- return this->invoke_i ();
-}
-
-ACE_THR_FUNC_RETURN
-ACE_Thread_Adapter::invoke_i (void)
-{
- // Extract the arguments.
- ACE_THR_FUNC func = ACE_reinterpret_cast (ACE_THR_FUNC,
- this->user_func_);
- void *arg = this->arg_;
-
-#if defined (ACE_WIN32) && defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
- ACE_OS_Thread_Descriptor *thr_desc = this->thr_desc_;
-#endif /* ACE_WIN32 && ACE_HAS_MFC && (ACE_HAS_MFC != 0) */
-
- // Delete ourselves since we don't need <this> anymore. Make sure
- // not to access <this> anywhere below this point.
- delete this;
-
-#if defined (ACE_NEEDS_LWP_PRIO_SET)
- // On SunOS, the LWP priority needs to be set in order to get
- // preemption when running in the RT class. This is the ACE way to
- // do that . . .
- ACE_hthread_t thr_handle;
- ACE_OS::thr_self (thr_handle);
- int prio;
-
- // thr_getprio () on the current thread should never fail.
- ACE_OS::thr_getprio (thr_handle, prio);
-
- // ACE_OS::thr_setprio () has the special logic to set the LWP priority,
- // if running in the RT class.
- ACE_OS::thr_setprio (prio);
-
-#endif /* ACE_NEEDS_LWP_PRIO_SET */
-
- ACE_THR_FUNC_RETURN status = 0;
-
- ACE_SEH_TRY
- {
- ACE_SEH_TRY
- {
- ACE_Thread_Hook *hook =
- ACE_OS_Object_Manager::thread_hook ();
-
- if (hook)
- // Invoke the start hook to give the user a chance to
- // perform some initialization processing before the
- // <func> is invoked.
- status = hook->start (func, arg);
- else
- {
- // Call thread entry point.
-#if defined (ACE_PSOS)
- status = 0;
- (*func) (arg);
-#else /* ! ACE_PSOS */
- status = (*func) (arg);
-#endif /* ACE_PSOS */
- }
- }
-
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- ACE_SEH_EXCEPT (ACE_OS_Object_Manager::seh_except_selector ()(
- (void *) GetExceptionInformation ()))
- {
- ACE_OS_Object_Manager::seh_except_handler ()(0);
- }
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- }
-
- ACE_SEH_FINALLY
- {
- // If we changed this to 1, change the respective if in
- // Task::svc_run to 0.
-#if 0
- // Call the <Task->close> hook.
- if (func == ACE_reinterpret_cast (ACE_THR_FUNC_INTERNAL,
- ACE_Task_Base::svc_run))
- {
- ACE_Task_Base *task_ptr = (ACE_Task_Base *) arg;
- ACE_Thread_Manager *thr_mgr_ptr = task_ptr->thr_mgr ();
-
- // This calls the Task->close () hook.
- task_ptr->cleanup (task_ptr, 0);
-
- // This prevents a second invocation of the cleanup code
- // (called later by <ACE_Thread_Manager::exit>.
- thr_mgr_ptr->at_exit (task_ptr, 0, 0);
- }
-#endif /* 0 */
-
-#if defined (ACE_WIN32) || defined (ACE_HAS_TSS_EMULATION)
-# if defined (ACE_WIN32) && defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
- int using_afx = -1;
- if (thr_desc)
- using_afx = ACE_BIT_ENABLED (thr_desc->flags (), THR_USE_AFX);
-# endif /* ACE_WIN32 && ACE_HAS_MFC && (ACE_HAS_MFC != 0) */
- // Call TSS destructors.
- ACE_OS::cleanup_tss (0 /* not main thread */);
-
-# if defined (ACE_WIN32)
- // Exit the thread. Allow CWinThread-destructor to be invoked
- // from AfxEndThread. _endthreadex will be called from
- // AfxEndThread so don't exit the thread now if we are running
- // an MFC thread.
-# if defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
- if (using_afx != -1)
- {
- if (using_afx)
- ::AfxEndThread ((DWORD) status);
- else
- ACE_ENDTHREADEX (status);
- }
- else
- {
- // Not spawned by ACE_Thread_Manager, use the old buggy
- // version. You should seriously consider using
- // ACE_Thread_Manager to spawn threads. The following code
- // is know to cause some problem.
- CWinThread *pThread = ::AfxGetThread ();
-
- if (!pThread || pThread->m_nThreadID != ACE_OS::thr_self ())
- ACE_ENDTHREADEX (status);
- else
- ::AfxEndThread ((DWORD)status);
- }
-# else
-
- ACE_ENDTHREADEX (status);
-# endif /* ACE_HAS_MFC && ACE_HAS_MFS != 0*/
-# endif /* ACE_WIN32 */
-#endif /* ACE_WIN32 || ACE_HAS_TSS_EMULATION */
-
-#if defined (ACE_PSOS)
- // This sequence of calls is documented by ISI as the proper way to
- // clean up a pSOS task. They affect different components, so only
- // try the ones for components that are built with ACE.
-# if defined (SC_PREPC) && (SC_PREPC == YES)
- ::fclose (0); // Return pREPC+ resources
-# endif /* SC_PREPC */
-# if defined (SC_PHILE) && (SC_PHILE == YES)
- ::close_f (0); // Return pHILE+ resources
-# endif /* SC_PHILE */
-# if defined (SC_PNA) && (SC_PNA == YES)
- ::close (0); // Return pNA+ resources
-# endif /* SC_PNA */
-# if defined (SC_SC_PREPC) && (SC_PREPC == YES)
- ::free (-1); // Return pREPC+ memory
-# endif /* SC_PREPC */
- status = ::t_delete (0); // Suicide - only returns on error
-#endif /* ACE_PSOS */
- }
-
- return status;
-}
diff --git a/ace/Thread_Adapter.h b/ace/Thread_Adapter.h
deleted file mode 100644
index d5ee674a486..00000000000
--- a/ace/Thread_Adapter.h
+++ /dev/null
@@ -1,94 +0,0 @@
-
-//=============================================================================
-/**
- * @file Thread_Adapter.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_THREAD_ADAPTER_H
-#define ACE_THREAD_ADAPTER_H
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Base_Thread_Adapter.h"
-
-// Forward decl.
-class ACE_Thread_Manager;
-class ACE_Thread_Descriptor;
-
-/**
- * @class ACE_Thread_Adapter
- *
- * @brief Converts a C++ function into a function that
- * can be called from a thread creation routine
- * (e.g., pthread_create() or _beginthreadex()) that expects an
- * extern "C" entry point. This class also makes it possible to
- * transparently provide hooks to register a thread with an
- * ACE_Thread_Manager.
- *
- * This class is used in ACE_OS::thr_create(). In general, the
- * thread that creates an object of this class is different from
- * the thread that calls @c invoke() on this object. Therefore,
- * the @c invoke() method is responsible for deleting itself.
- */
-class ACE_Export ACE_Thread_Adapter : public ACE_Base_Thread_Adapter
-{
-public:
- /// Constructor.
- ACE_Thread_Adapter (ACE_THR_FUNC user_func,
- void *arg,
- ACE_THR_C_FUNC entry_point = (ACE_THR_C_FUNC) ace_thread_adapter,
- ACE_Thread_Manager *thr_mgr = 0,
- ACE_Thread_Descriptor *td = 0
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- , ACE_SEH_EXCEPT_HANDLER selector = 0,
- ACE_SEH_EXCEPT_HANDLER handler = 0
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- );
-
- /**
- * Execute the <user_func_> with the <arg>. This function deletes
- * <this>, thereby rendering the object useless after the call
- * returns.
- */
- virtual ACE_THR_FUNC_RETURN invoke (void);
-
- /// Accessor for the optional <Thread_Manager>.
- ACE_Thread_Manager *thr_mgr (void);
-
-private:
- /// Ensure that this object must be allocated on the heap.
- ~ACE_Thread_Adapter (void);
-
- /// Called by invoke, mainly here to separate the SEH stuff because
- /// SEH on Win32 doesn't compile with local vars with destructors.
- virtual ACE_THR_FUNC_RETURN invoke_i (void);
-
-private:
- /// Optional thread manager.
- ACE_Thread_Manager *thr_mgr_;
-
- /// Friend declaration to avoid compiler warning: only defines a private
- /// destructor and has no friends.
- friend class ACE_Thread_Adapter_Has_Private_Destructor;
-};
-
-# if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "ace/Thread_Adapter.inl"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#include "ace/post.h"
-#endif /* ACE_THREAD_ADAPTER_H */
diff --git a/ace/Thread_Adapter.inl b/ace/Thread_Adapter.inl
deleted file mode 100644
index 53855b300cc..00000000000
--- a/ace/Thread_Adapter.inl
+++ /dev/null
@@ -1,7 +0,0 @@
-// $Id$
-
-ACE_INLINE ACE_Thread_Manager *
-ACE_Thread_Adapter::thr_mgr (void)
-{
- return this->thr_mgr_;
-}
diff --git a/ace/Thread_Control.cpp b/ace/Thread_Control.cpp
deleted file mode 100644
index c5828d61842..00000000000
--- a/ace/Thread_Control.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-// $Id$
-
-// <HACK ON>
-#include "ace/config-all.h"
-#if defined (ACE_LEGACY_MODE)
-// This silly include breaks a cycle when compiling in backwards
-// compatibility mode
-# include "ace/Thread_Exit.h"
-#endif /* ACE_LEGACY_MODE */
-// </HACK OFF>
-
-#include "ace/Thread_Control.h"
-#include "ace/Thread_Manager.h"
-
-ACE_RCSID(ace, Thread_Control, "$Id$")
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "ace/Thread_Control.inl"
-#endif /* ACE_HAS_INLINED_OS_CALLS */
-
-void
-ACE_Thread_Control::dump (void) const
-{
- ACE_OS_TRACE ("ACE_Thread_Control::dump");
-}
-
-int
-ACE_Thread_Control::insert (ACE_Thread_Manager *tm, int insert)
-{
- ACE_OS_TRACE ("ACE_Thread_Control::insert");
-
- ACE_hthread_t t_id;
- ACE_OS::thr_self (t_id);
- this->tm_ = tm;
-
- if (insert)
- return this->tm_->insert_thr (ACE_OS::thr_self (), t_id);
- else
- return 0;
-}
-
-// Initialize the thread controller.
-
-ACE_Thread_Control::ACE_Thread_Control (ACE_Thread_Manager *t,
- int insert)
- : tm_ (t),
- status_ (0)
-{
- ACE_OS_TRACE ("ACE_Thread_Control::ACE_Thread_Control");
-
- if (this->tm_ != 0 && insert)
- {
- ACE_hthread_t t_id;
- ACE_OS::thr_self (t_id);
- this->tm_->insert_thr (ACE_OS::thr_self (), t_id);
- }
-}
-
-// Automatically kill thread on exit.
-
-ACE_Thread_Control::~ACE_Thread_Control (void)
-{
- ACE_OS_TRACE ("ACE_Thread_Control::~ACE_Thread_Control");
-
-#if defined (ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS) || defined (ACE_HAS_TSS_EMULATION) || defined (ACE_WIN32)
- this->exit (this->status_, 0);
-#else
- this->exit (this->status_, 1);
-#endif /* ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS */
-}
-
-// Exit from thread (but clean up first).
-
-ACE_THR_FUNC_RETURN
-ACE_Thread_Control::exit (ACE_THR_FUNC_RETURN exit_status, int do_thr_exit)
-{
- ACE_OS_TRACE ("ACE_Thread_Control::exit");
-
- if (this->tm_ != 0)
- return this->tm_->exit (exit_status, do_thr_exit);
- else
- {
-#if !defined (ACE_HAS_TSS_EMULATION)
- // With ACE_HAS_TSS_EMULATION, we let ACE_Thread_Adapter::invoke ()
- // exit the thread after cleaning up TSS.
- ACE_OS::thr_exit (exit_status);
-#endif /* ! ACE_HAS_TSS_EMULATION */
- return 0;
- }
-}
diff --git a/ace/Thread_Control.h b/ace/Thread_Control.h
deleted file mode 100644
index ed32db58184..00000000000
--- a/ace/Thread_Control.h
+++ /dev/null
@@ -1,101 +0,0 @@
-
-//=============================================================================
-/**
- * @file Thread_Control.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_THREAD_CONTROL_H
-#define ACE_THREAD_CONTROL_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LEGACY_MODE)
-# include "ace/OS.h"
-#endif /* ACE_LEGACY_MODE */
-
-class ACE_Thread_Manager;
-
-/**
- * @class ACE_Thread_Control
- *
- * @brief Used to keep track of a thread's activities within its entry
- * point function.
- *
- * A ACE_Thread_Manager uses this class to ensure that threads
- * it spawns automatically register and unregister themselves
- * with it.
- * This class can be stored in thread-specific storage using the
- * ACE_TSS wrapper. When a thread exits the
- * <ACE_TSS::cleanup> function deletes this object, thereby
- * ensuring that it gets removed from its associated
- * ACE_Thread_Manager.
- */
-class ACE_Export ACE_Thread_Control
-{
-public:
- /// Initialize the thread control object. If <insert> != 0, then
- /// register the thread with the Thread_Manager.
- ACE_Thread_Control (ACE_Thread_Manager *tm = 0,
- int insert = 0);
-
- /// Remove the thread from its associated <Thread_Manager> and exit
- /// the thread if <do_thr_exit> is enabled.
- ~ACE_Thread_Control (void);
-
- /// Remove this thread from its associated ACE_Thread_Manager and exit
- /// the thread if @a do_thr_exit is enabled.
- ACE_THR_FUNC_RETURN exit (ACE_THR_FUNC_RETURN status,
- int do_thr_exit);
-
- /// Store the <Thread_Manager> and use it to register ourselves for
- /// correct shutdown.
- int insert (ACE_Thread_Manager *tm, int insert = 0);
-
- /// Returns the current <Thread_Manager>.
- ACE_Thread_Manager *thr_mgr (void);
-
- /// Atomically set a new <Thread_Manager> and return the old
- /// <Thread_Manager>.
- ACE_Thread_Manager *thr_mgr (ACE_Thread_Manager *);
-
- /// Set the exit status (and return existing status).
- ACE_THR_FUNC_RETURN status (ACE_THR_FUNC_RETURN status);
-
- /// Get the current exit status.
- ACE_THR_FUNC_RETURN status (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Pointer to the thread manager for this block of code.
- ACE_Thread_Manager *tm_;
-
- /// Keeps track of the exit status for the thread.
- ACE_THR_FUNC_RETURN status_;
-};
-
-# if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "ace/Thread_Control.inl"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#include "ace/post.h"
-#endif /* ACE_THREAD_CONTROL_H */
diff --git a/ace/Thread_Control.inl b/ace/Thread_Control.inl
deleted file mode 100644
index 0c2ab504112..00000000000
--- a/ace/Thread_Control.inl
+++ /dev/null
@@ -1,42 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-// Set the exit status.
-
-ACE_INLINE ACE_THR_FUNC_RETURN
-ACE_Thread_Control::status (ACE_THR_FUNC_RETURN s)
-{
- ACE_OS_TRACE ("ACE_Thread_Control::status");
- return this->status_ = s;
-}
-
-// Get the exit status.
-
-ACE_INLINE ACE_THR_FUNC_RETURN
-ACE_Thread_Control::status (void)
-{
- ACE_OS_TRACE ("ACE_Thread_Control::status");
- return this->status_;
-}
-
-// Returns the current <Thread_Manager>.
-
-ACE_INLINE ACE_Thread_Manager *
-ACE_Thread_Control::thr_mgr (void)
-{
- ACE_OS_TRACE ("ACE_Thread_Control::thr_mgr");
- return this->tm_;
-}
-
-// Atomically set a new <Thread_Manager> and return the old
-// <Thread_Manager>.
-
-ACE_INLINE ACE_Thread_Manager *
-ACE_Thread_Control::thr_mgr (ACE_Thread_Manager *tm)
-{
- ACE_OS_TRACE ("ACE_Thread_Control::thr_mgr");
- ACE_Thread_Manager *o_tm = this->tm_;
- this->tm_ = tm;
- return o_tm;
-}
-
diff --git a/ace/Thread_Exit.cpp b/ace/Thread_Exit.cpp
deleted file mode 100644
index c3ebe0f577f..00000000000
--- a/ace/Thread_Exit.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-// $Id$
-
-#include "ace/Thread_Exit.h"
-#include "ace/Synch.h"
-#include "ace/Managed_Object.h"
-#include "ace/Thread_Manager.h"
-
-ACE_RCSID(ace, Thread_Exit, "$Id$")
-
-u_int ACE_Thread_Exit::is_constructed_ = 0;
-
-void
-ACE_Thread_Exit::cleanup (void *instance)
-{
- ACE_OS_TRACE ("ACE_Thread_Exit::cleanup");
-
- delete (ACE_TSS_TYPE (ACE_Thread_Exit) *) instance;
-
- ACE_Thread_Exit::is_constructed_ = 0;
- // All TSS objects have been destroyed. Reset this flag so
- // ACE_Thread_Exit singleton can be created again.
-}
-
-// NOTE: this preprocessor directive should match the one in
-// ACE_Task_Base::svc_run () below. This prevents the two statics
-// from being defined.
-
-ACE_Thread_Exit *
-ACE_Thread_Exit::instance (void)
-{
-#if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)
- ACE_OS_TRACE ("ACE_Thread_Exit::instance");
-
- // Determines if we were dynamically allocated.
- static ACE_TSS_TYPE (ACE_Thread_Exit) *instance_;
-
- // Implement the Double Check pattern.
-
- if (ACE_Thread_Exit::is_constructed_ == 0)
- {
- ACE_MT (ACE_Thread_Mutex *lock =
- ACE_Managed_Object<ACE_Thread_Mutex>::get_preallocated_object
- (ACE_Object_Manager::ACE_THREAD_EXIT_LOCK);
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, *lock, 0));
-
- if (ACE_Thread_Exit::is_constructed_ == 0)
- {
- ACE_NEW_RETURN (instance_,
- ACE_TSS_TYPE (ACE_Thread_Exit),
- 0);
-
- ACE_Thread_Exit::is_constructed_ = 1;
-
- ACE_Thread_Manager::set_thr_exit (instance_);
- }
- }
-
- return ACE_TSS_GET (instance_, ACE_Thread_Exit);
-#else
- return 0;
-#endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */
-}
-
-// Grab hold of the Task * so that we can close() it in the
-// destructor.
-
-ACE_Thread_Exit::ACE_Thread_Exit (void)
-{
- ACE_OS_TRACE ("ACE_Thread_Exit::ACE_Thread_Exit");
-}
-
-// Set the this pointer...
-
-void
-ACE_Thread_Exit::thr_mgr (ACE_Thread_Manager *tm)
-{
- ACE_OS_TRACE ("ACE_Thread_Exit::thr_mgr");
-
- if (tm != 0)
- this->thread_control_.insert (tm, 0);
-}
-
-// When this object is destroyed the Task is automatically closed
-// down!
-
-ACE_Thread_Exit::~ACE_Thread_Exit (void)
-{
- ACE_OS_TRACE ("ACE_Thread_Exit::~ACE_Thread_Exit");
-}
-
-ACE_Thread_Exit_Maybe::ACE_Thread_Exit_Maybe (int flag)
- : instance_ (0)
-{
- if (flag)
- {
- ACE_NEW (instance_, ACE_Thread_Exit);
- }
-}
-
-ACE_Thread_Exit_Maybe::~ACE_Thread_Exit_Maybe (void)
-{
- delete this->instance_;
-}
-
-ACE_Thread_Exit *
-ACE_Thread_Exit_Maybe::operator -> (void) const
-{
- return this->instance_;
-}
-
-ACE_Thread_Exit *
-ACE_Thread_Exit_Maybe::instance (void) const
-{
- return this->instance_;
-}
-
-#if (defined (ACE_HAS_THREADS) && \
- (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \
- defined (ACE_HAS_TSS_EMULATION)))
-
-# if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- template class ACE_TSS<ACE_Thread_Exit>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_TSS<ACE_Thread_Exit>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_HAS_THREADS && (ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION) */
diff --git a/ace/Thread_Exit.h b/ace/Thread_Exit.h
deleted file mode 100644
index c47b4f7307d..00000000000
--- a/ace/Thread_Exit.h
+++ /dev/null
@@ -1,107 +0,0 @@
-
-//=============================================================================
-/**
- * @file Thread_Exit.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_THREAD_EXIT_H
-#define ACE_THREAD_EXIT_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-#include "ace/Thread_Control.h"
-
-/**
- * @class ACE_Thread_Exit
- *
- * @brief Keep exit information for a Thread in thread specific storage.
- * so that the thread-specific exit hooks will get called no
- * matter how the thread exits (e.g., via <ACE_Thread::exit>, C++
- * or Win32 exception, "falling off the end" of the thread entry
- * point function, etc.).
- *
- * This clever little helper class is stored in thread-specific
- * storage using the <ACE_TSS> wrapper. When a thread exits the
- * <ACE_TSS::cleanup> function deletes this object, thereby
- * closing it down gracefully.
- */
-class ACE_Export ACE_Thread_Exit
-{
-public:
- /// Capture the Thread that will be cleaned up automatically.
- ACE_Thread_Exit (void);
-
- /// Set the <ACE_Thread_Manager>.
- void thr_mgr (ACE_Thread_Manager *tm);
-
- /// Destructor calls the thread-specific exit hooks when a thread
- /// exits.
- ~ACE_Thread_Exit (void);
-
- /// Singleton access point.
- static ACE_Thread_Exit *instance (void);
-
- /// Cleanup method, used by the <ACE_Object_Manager> to destroy the
- /// singleton.
- static void cleanup (void *instance);
-
-private:
- /// Automatically add/remove the thread from the
- /// <ACE_Thread_Manager>.
- ACE_Thread_Control thread_control_;
-
- /**
- * Used to detect whether we should create a new instance (or not)
- * within the instance method -- we don't trust the instance_ ptr
- * because the destructor may have run (if ACE::fini() was called).
- * See bug #526.
- * We don't follow the singleton pattern due to dependency issues.
- */
- static u_int is_constructed_;
-};
-
-/**
- * @class ACE_Thread_Exit_Maybe
- *
- * @brief A version of ACE_Thread_Exit that is created dynamically
- * under the hood if the flag is set to TRUE.
- *
- * Allows the appearance of a "smart pointer", but is not
- * always created.
- */
-class ACE_Export ACE_Thread_Exit_Maybe
-{
-public:
- /// Don't create an ACE_Thread_Exit instance by default.
- ACE_Thread_Exit_Maybe (int flag = 0);
-
- /// Destroys the underlying ACE_Thread_Exit instance if it exists.
- ~ACE_Thread_Exit_Maybe (void);
-
- /// Delegates to underlying instance.
- ACE_Thread_Exit * operator -> (void) const;
-
- /// Returns the underlying instance.
- ACE_Thread_Exit * instance (void) const;
-
-private:
-
- /// Holds the underlying instance.
- ACE_Thread_Exit *instance_;
-
-};
-
-#include "ace/post.h"
-#endif /* ACE_THREAD_EXIT_H */
diff --git a/ace/Thread_Hook.cpp b/ace/Thread_Hook.cpp
deleted file mode 100644
index 4d7a582f6c5..00000000000
--- a/ace/Thread_Hook.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-// $Id$
-
-#include "ace/Thread_Hook.h"
-#include "ace/OS.h"
-
-ACE_RCSID(ace, Thread_Hook, "$Id$")
-
-ACE_THR_FUNC_RETURN
-ACE_Thread_Hook::start (ACE_THR_FUNC func,
- void *arg)
-{
- return (func) (arg);
-}
-
-ACE_Thread_Hook *
-ACE_Thread_Hook::thread_hook (ACE_Thread_Hook *hook)
-{
- return ACE_OS_Object_Manager::thread_hook (hook);
-}
-
-ACE_Thread_Hook *
-ACE_Thread_Hook::thread_hook (void)
-{
- return ACE_OS_Object_Manager::thread_hook ();
-}
diff --git a/ace/Thread_Hook.h b/ace/Thread_Hook.h
deleted file mode 100644
index deec5544479..00000000000
--- a/ace/Thread_Hook.h
+++ /dev/null
@@ -1,56 +0,0 @@
-
-//=============================================================================
-/**
- * @file Thread_Hook.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_THREAD_HOOK_H
-#define ACE_THREAD_HOOK_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS_Export.h"
-
-/**
- * @class ACE_Thread_Hook
- *
- * @brief This class makes it possible to provide user-defined "start"
- * hooks that are called before the thread entry point function
- * is invoked.
- */
-class ACE_OS_Export ACE_Thread_Hook
-{
-
-public:
- /**
- * This method can be overridden in a subclass to customize this
- * pre-function call "hook" invocation that can perform
- * initialization processing before the thread entry point <func>
- * method is called back. The @a func and @a arg passed into the
- * start hook are the same as those passed by the application that
- * spawned the thread.
- */
- virtual ACE_THR_FUNC_RETURN start (ACE_THR_FUNC func,
- void *arg);
-
- /// sets the system wide thread hook, returns the previous thread
- /// hook or 0 if none is set.
- static ACE_Thread_Hook *thread_hook (ACE_Thread_Hook *hook);
-
- /// Returns the current system thread hook.
- static ACE_Thread_Hook *thread_hook (void);
-};
-
-#include "ace/post.h"
-#endif /* ACE_THREAD_HOOK_H */
diff --git a/ace/Thread_Manager.cpp b/ace/Thread_Manager.cpp
deleted file mode 100644
index 1df82bd00e1..00000000000
--- a/ace/Thread_Manager.cpp
+++ /dev/null
@@ -1,2273 +0,0 @@
-// $Id$
-
-#include "ace/Synch_T.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Dynamic.h"
-#include "ace/Object_Manager.h"
-#include "ace/Singleton.h"
-#include "ace/Auto_Ptr.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Thread_Manager.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Thread_Manager, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Thread_Control)
-ACE_ALLOC_HOOK_DEFINE(ACE_Thread_Manager)
-
-#if ! defined (ACE_THREAD_MANAGER_LACKS_STATICS)
-// Process-wide Thread Manager.
-ACE_Thread_Manager *ACE_Thread_Manager::thr_mgr_ = 0;
-
-// Controls whether the Thread_Manager is deleted when we shut down
-// (we can only delete it safely if we created it!)
-int ACE_Thread_Manager::delete_thr_mgr_ = 0;
-#endif /* ! defined (ACE_THREAD_MANAGER_LACKS_STATICS) */
-
-ACE_TSS_TYPE (ACE_Thread_Exit) *ACE_Thread_Manager::thr_exit_ = 0;
-
-int
-ACE_Thread_Manager::set_thr_exit (ACE_TSS_TYPE (ACE_Thread_Exit) *ptr)
-{
- if (ACE_Thread_Manager::thr_exit_ == 0)
- ACE_Thread_Manager::thr_exit_ = ptr;
- else
- return -1;
- return 0;
-}
-
-void
-ACE_Thread_Manager::dump (void)
-{
- ACE_TRACE ("ACE_Thread_Manager::dump");
- // Cast away const-ness of this in order to use its non-const lock_.
- ACE_MT (ACE_GUARD (ACE_Thread_Mutex, ace_mon,
- ((ACE_Thread_Manager *) this)->lock_));
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ngrp_id_ = %d"), this->grp_id_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncurrent_count_ = %d"), this->thr_list_.size ()));
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- iter.next ()->dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Thread_Descriptor::~ACE_Thread_Descriptor (void)
-{
- delete this->sync_;
-}
-
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
-void ACE_Thread_Descriptor::at_pop (int apply)
-
-{
- ACE_TRACE ("ACE_Thread_Descriptor::at_pop");
- // Get first at from at_exit_list
- ACE_At_Thread_Exit* at = this->at_exit_list_;
- // Remove at from at_exit list
- this->at_exit_list_ = at->next_;
- // Apply if required
- if (apply)
- {
- at->apply ();
- // Do the apply method
- at->was_applied (1);
- // Mark at has been applied to avoid double apply from
- // at destructor
- }
- // If at is not owner delete at.
- if (!at->is_owner ())
- delete at;
-}
-
-void
-ACE_Thread_Descriptor::at_push (ACE_At_Thread_Exit* cleanup, int is_owner)
-
-{
- ACE_TRACE ("ACE_Thread_Descriptor::at_push");
- cleanup->is_owner (is_owner);
- cleanup->td_ = this;
- cleanup->next_ = at_exit_list_;
- at_exit_list_ = cleanup;
-}
-
-int
-ACE_Thread_Descriptor::at_exit (ACE_At_Thread_Exit& cleanup)
-
-{
- ACE_TRACE ("ACE_Thread_Descriptor::at_exit");
- at_push (&cleanup, 1);
- return 0;
-}
-
-int
-ACE_Thread_Descriptor::at_exit (ACE_At_Thread_Exit* cleanup)
-
-{
- ACE_TRACE ("ACE_Thread_Descriptor::at_exit");
- if (cleanup==0)
- return -1;
- else
- {
- this->at_push (cleanup);
- return 0;
- }
-}
-
-void
-ACE_Thread_Descriptor::do_at_exit ()
-
-{
- ACE_TRACE ("ACE_Thread_Descriptor::do_at_exit");
- while (at_exit_list_!=0)
- this->at_pop ();
-}
-
-void
-ACE_Thread_Descriptor::terminate ()
-
-{
- ACE_TRACE ("ACE_Thread_Descriptor::terminate");
-
- if (!terminated_)
- {
- ACE_Log_Msg* log_msg = this->log_msg_;
- terminated_ = 1;
- // Run at_exit hooks
- this->do_at_exit ();
- // We must remove Thread_Descriptor from Thread_Manager list
- if (this->tm_ != 0)
- {
- int close_handle = 0;
-
-#if !defined (VXWORKS)
- // Threads created with THR_DAEMON shouldn't exist here, but
- // just to be safe, let's put it here.
-
- if (ACE_BIT_DISABLED (this->thr_state_, ACE_Thread_Manager::ACE_THR_JOINING))
- {
- if (ACE_BIT_DISABLED (this->flags_, THR_DETACHED | THR_DAEMON)
- || ACE_BIT_ENABLED (this->flags_, THR_JOINABLE))
- {
- // Mark thread as terminated.
- ACE_SET_BITS (this->thr_state_, ACE_Thread_Manager::ACE_THR_TERMINATED);
- tm_->register_as_terminated (this);
- // Must copy the information here because td will be
- // "freed" below.
- }
-#if defined (ACE_WIN32)
- else
- {
- close_handle = 1;
- }
-#endif /* ACE_WIN32 */
- }
-#endif /* ! VXWORKS */
-
- // Remove thread descriptor from the table.
- if (this->tm_ != 0)
- tm_->remove_thr (this, close_handle);
- }
-
- // Check if we need delete ACE_Log_Msg instance
- // If ACE_TSS_cleanup was not executed first log_msg == 0
- if (log_msg == 0)
- {
- // Only inform to ACE_TSS_cleanup that it must delete the log instance
- // setting ACE_LOG_MSG thr_desc to 0.
- ACE_LOG_MSG->thr_desc (0);
- }
- else
- {
- // Thread_Descriptor is the owner of the Log_Msg instance!!
- // deleted.
- this->log_msg_ = 0;
- delete log_msg;
- }
- }
-}
-
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-
-int
-ACE_Thread_Descriptor::at_exit (void *object,
- ACE_CLEANUP_FUNC cleanup_hook,
- void *param)
-{
- ACE_TRACE ("ACE_Thread_Descriptor::at_exit");
-#if defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- this->cleanup_info_.cleanup_hook_ = cleanup_hook;
- this->cleanup_info_.object_ = object;
- this->cleanup_info_.param_ = param;
-#else
- // To keep compatibility, when cleanup_hook is null really is a at_pop
- // without apply.
- if (cleanup_hook == 0)
- {
- if (this->at_exit_list_!= 0)
- this->at_pop(0);
- }
- else
- {
- ACE_At_Thread_Exit* cleanup;
- ACE_NEW_RETURN (cleanup,
- ACE_At_Thread_Exit_Func (object,
- cleanup_hook,
- param),
- -1);
- this->at_push (cleanup);
- }
-#endif /* ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
- return 0;
-}
-
-void
-ACE_Thread_Descriptor::dump (void) const
-{
- ACE_TRACE ("ACE_Thread_Descriptor::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nthr_id_ = %d"), this->thr_id_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nthr_handle_ = %d"), this->thr_handle_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ngrp_id_ = %d"), this->grp_id_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nthr_state_ = %d"), this->thr_state_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncleanup_info_.cleanup_hook_ = %x"), this->cleanup_info_.cleanup_hook_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nflags_ = %x\n"), this->flags_));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Thread_Descriptor::ACE_Thread_Descriptor (void)
-#if !defined (ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- : log_msg_ (0),
- at_exit_list_ (0),
- terminated_ (0)
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-{
- ACE_TRACE ("ACE_Thread_Descriptor::ACE_Thread_Descriptor");
- ACE_NEW (this->sync_,
- ACE_DEFAULT_THREAD_MANAGER_LOCK);
-}
-
-void
-ACE_Thread_Descriptor::acquire_release (void)
-{
- // Just try to acquire the lock then release it.
-#if defined (ACE_THREAD_MANAGER_USES_SAFE_SPAWN)
- if (ACE_BIT_DISABLED (this->thr_state_, ACE_Thread_Manager::ACE_THR_SPAWNED))
-#endif /* ACE_THREAD_MANAGER_USES_SAFE_SPAWN */
- {
- this->sync_->acquire ();
- // Acquire the lock before removing <td> from the thread table. If
- // this thread is in the table already, it should simply acquire the
- // lock easily.
-
- // Once we get the lock, we must have registered.
- ACE_ASSERT (ACE_BIT_ENABLED (this->thr_state_, ACE_Thread_Manager::ACE_THR_SPAWNED));
-
- this->sync_->release ();
- // Release the lock before putting it back to freelist.
- }
-}
-
-// The following macro simplifies subsequence code.
-#define ACE_FIND(OP,INDEX) \
- ACE_Thread_Descriptor *INDEX = OP; \
-
-ACE_Thread_Descriptor *
-ACE_Thread_Manager::thread_descriptor (ACE_thread_t thr_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::thread_descriptor");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0));
-
- ACE_FIND (this->find_thread (thr_id), ptr);
- return ptr;
-}
-
-ACE_Thread_Descriptor *
-ACE_Thread_Manager::hthread_descriptor (ACE_hthread_t thr_handle)
-{
- ACE_TRACE ("ACE_Thread_Manager::hthread_descriptor");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0));
-
- ACE_FIND (this->find_hthread (thr_handle), ptr);
- return ptr;
-}
-
-// Return the thread descriptor (indexed by ACE_hthread_t).
-
-int
-ACE_Thread_Manager::thr_self (ACE_hthread_t &self)
-{
- ACE_TRACE ("ACE_Thread_Manager::thr_self");
-
- ACE_Thread_Descriptor *desc =
- this->thread_desc_self ();
-
- if (desc == 0)
- return -1;
- else
- desc->self (self);
-
- return 0;
-}
-
-// Initialize the synchronization variables.
-
-ACE_Thread_Manager::ACE_Thread_Manager (size_t prealloc,
- size_t lwm,
- size_t inc,
- size_t hwm)
- : grp_id_ (1),
- automatic_wait_ (1)
-#if defined (ACE_HAS_THREADS)
- , zero_cond_ (lock_)
-#endif /* ACE_HAS_THREADS */
- , thread_desc_freelist_ (ACE_FREE_LIST_WITH_POOL,
- prealloc, lwm, hwm, inc)
-{
- ACE_TRACE ("ACE_Thread_Manager::ACE_Thread_Manager");
-}
-
-#if ! defined (ACE_THREAD_MANAGER_LACKS_STATICS)
-ACE_Thread_Manager *
-ACE_Thread_Manager::instance (void)
-{
- ACE_TRACE ("ACE_Thread_Manager::instance");
-
- if (ACE_Thread_Manager::thr_mgr_ == 0)
- {
- // Perform Double-Checked Locking Optimization.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
-
- if (ACE_Thread_Manager::thr_mgr_ == 0)
- {
- ACE_NEW_RETURN (ACE_Thread_Manager::thr_mgr_,
- ACE_Thread_Manager,
- 0);
- ACE_Thread_Manager::delete_thr_mgr_ = 1;
- }
- }
-
- return ACE_Thread_Manager::thr_mgr_;
-}
-
-ACE_Thread_Manager *
-ACE_Thread_Manager::instance (ACE_Thread_Manager *tm)
-{
- ACE_TRACE ("ACE_Thread_Manager::instance");
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance (), 0));
-
- ACE_Thread_Manager *t = ACE_Thread_Manager::thr_mgr_;
- // We can't safely delete it since we don't know who created it!
- ACE_Thread_Manager::delete_thr_mgr_ = 0;
-
- ACE_Thread_Manager::thr_mgr_ = tm;
- return t;
-}
-
-void
-ACE_Thread_Manager::close_singleton (void)
-{
- ACE_TRACE ("ACE_Thread_Manager::close_singleton");
-
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon,
- *ACE_Static_Object_Lock::instance ()));
-
- if (ACE_Thread_Manager::delete_thr_mgr_)
- {
- // First, we clean up the thread descriptor list.
- ACE_Thread_Manager::thr_mgr_->close ();
- delete ACE_Thread_Manager::thr_mgr_;
- ACE_Thread_Manager::thr_mgr_ = 0;
- ACE_Thread_Manager::delete_thr_mgr_ = 0;
- }
-
- ACE_Thread_Exit::cleanup (ACE_Thread_Manager::thr_exit_);
-}
-#endif /* ! defined (ACE_THREAD_MANAGER_LACKS_STATICS) */
-
-// Close up and release all resources.
-
-int
-ACE_Thread_Manager::close ()
-{
- ACE_TRACE ("ACE_Thread_Manager::close");
-
- // Clean up the thread descriptor list.
- if (this->automatic_wait_)
- this->wait (0, 1);
- else
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- this->remove_thr_all ();
- }
-
- return 0;
-}
-
-ACE_Thread_Manager::~ACE_Thread_Manager (void)
-{
- ACE_TRACE ("ACE_Thread_Manager::~ACE_Thread_Manager");
- this->close ();
-}
-
-
-// Run the entry point for thread spawned under the control of the
-// <ACE_Thread_Manager>. This must be an extern "C" to make certain
-// compilers happy...
-//
-// The interaction with <ACE_Thread_Exit> and
-// <ace_thread_manager_adapter> works like this, with
-// ACE_HAS_THREAD_SPECIFIC_STORAGE or ACE_HAS_TSS_EMULATION:
-//
-// o Every thread in the <ACE_Thread_Manager> is run with
-// <ace_thread_manager_adapter>.
-//
-// o <ace_thread_manager_adapter> retrieves the singleton
-// <ACE_Thread_Exit> instance from <ACE_Thread_Exit::instance>.
-// The singleton gets created in thread-specific storage
-// in the first call to that function. The key point is that the
-// instance is in thread-specific storage.
-//
-// o A thread can exit by various means, such as <ACE_Thread::exit>, C++
-// or Win32 exception, "falling off the end" of the thread entry
-// point function, etc.
-//
-// o If you follow this so far, now it gets really fun . . .
-// When the thread-specific storage (for the thread that
-// is being destroyed) is cleaned up, the OS threads package (or
-// the ACE emulation of thread-specific storage) will destroy any
-// objects that are in thread-specific storage. It has a list of
-// them, and just walks down the list and destroys each one.
-//
-// o That's where the ACE_Thread_Exit destructor gets called.
-
-#if defined(ACE_USE_THREAD_MANAGER_ADAPTER)
-extern "C" void *
-ace_thread_manager_adapter (void *args)
-{
-#if defined (ACE_HAS_TSS_EMULATION)
- // As early as we can in the execution of the new thread, allocate
- // its local TS storage. Allocate it on the stack, to save dynamic
- // allocation/dealloction.
- void *ts_storage[ACE_TSS_Emulation::ACE_TSS_THREAD_KEYS_MAX];
- ACE_TSS_Emulation::tss_open (ts_storage);
-#endif /* ACE_HAS_TSS_EMULATION */
-
- ACE_Thread_Adapter *thread_args = (ACE_Thread_Adapter *) args;
-
- // NOTE: this preprocessor directive should match the one in above
- // ACE_Thread_Exit::instance (). With the Xavier Pthreads package,
- // the exit_hook in TSS causes a seg fault. So, this works around
- // that by creating exit_hook on the stack.
-#if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)
- // Obtain our thread-specific exit hook and make sure that it knows
- // how to clean us up! Note that we never use this pointer directly
- // (it's stored in thread-specific storage), so it's ok to
- // dereference it here and only store it as a reference.
- ACE_Thread_Exit &exit_hook = *ACE_Thread_Exit::instance ();
-#else
- // Without TSS, create an <ACE_Thread_Exit> instance. When this
- // function returns, its destructor will be called because the
- // object goes out of scope. The drawback with this appraoch is
- // that the destructor _won't_ get called if <thr_exit> is called.
- // So, threads shouldn't exit that way. Instead, they should return
- // from <svc>.
- ACE_Thread_Exit exit_hook;
-#endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */
-
- // Keep track of the <Thread_Manager> that's associated with this
- // <exit_hook>.
- exit_hook.thr_mgr (thread_args->thr_mgr ());
-
- // Invoke the user-supplied function with the args.
- void *status = thread_args->invoke ();
-
- return status;
-}
-#endif
-
-// Call the appropriate OS routine to spawn a thread. Should *not* be
-// called with the lock_ held...
-
-int
-ACE_Thread_Manager::spawn_i (ACE_THR_FUNC func,
- void *args,
- long flags,
- ACE_thread_t *t_id,
- ACE_hthread_t *t_handle,
- long priority,
- int grp_id,
- void *stack,
- size_t stack_size,
- ACE_Task_Base *task)
-{
- // First, threads created by Thread Manager should not be daemon threads.
- // Using assertion is probably a bit too strong. However, it helps
- // finding this kind of error as early as possible. Perhaps we can replace
- // assertion by returning error.
- ACE_ASSERT (ACE_BIT_DISABLED (flags, THR_DAEMON));
-
- // Create a new thread running <func>. *Must* be called with the
- // <lock_> held...
- // Get a "new" Thread Descriptor from the freelist.
- auto_ptr<ACE_Thread_Descriptor> new_thr_desc (this->thread_desc_freelist_.remove ());
-
- // Reset thread descriptor status
- new_thr_desc->reset (this);
-
- ACE_Thread_Adapter *thread_args = 0;
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- ACE_NEW_RETURN (thread_args,
- ACE_Thread_Adapter (func,
- args,
- (ACE_THR_C_FUNC) ace_thread_adapter,
- this,
- new_thr_desc.get (),
- ACE_OS_Object_Manager::seh_except_selector(),
- ACE_OS_Object_Manager::seh_except_handler()),
- -1);
-#else
- ACE_NEW_RETURN (thread_args,
- ACE_Thread_Adapter (func,
- args,
- (ACE_THR_C_FUNC) ace_thread_adapter,
- this,
- new_thr_desc.get ()),
- -1);
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-
- ACE_TRACE ("ACE_Thread_Manager::spawn_i");
- ACE_hthread_t thr_handle;
-
-#if defined (VXWORKS)
- // On VxWorks, ACE_thread_t is char *. If t_id is 0, allocate space
- // for ACE_OS::thr_create () to store the task name. If t_id is not
- // 0, and it doesn't point to a 0 char *, then the non-zero char *
- // will be used for the task name in ACE_OS::thr_create (). If t_id
- // is not 0, but does point to a 0 char *, the t_id will be set to
- // point to the task name in the TCB in ACE_OS::thr_create ().
- if (t_id == 0)
- {
- char *thr_id;
- ACE_NEW_RETURN (thr_id,
- char[16],
- -1);
- // Mark the thread ID to show that the ACE_Thread_Manager
- // allocated it.
- thr_id[0] = ACE_THR_ID_ALLOCATED;
- thr_id[1] = '\0';
- t_id = &thr_id;
- }
-#else /* ! VXWORKS */
- ACE_thread_t thr_id;
- if (t_id == 0)
- t_id = &thr_id;
-#endif /* ! VXWORKS */
-
- new_thr_desc->sync_->acquire ();
- // Acquire the <sync_> lock to block the spawned thread from
- // removing this Thread Descriptor before it gets put into our
- // thread table.
-
- int result = ACE_Thread::spawn (func,
- args,
- flags,
- t_id,
- &thr_handle,
- priority,
- stack,
- stack_size,
- thread_args);
-
- if (result != 0)
- {
- // _Don't_ clobber errno here! result is either 0 or -1, and
- // ACE_OS::thr_create () already set errno! D. Levine 28 Mar 1997
- // errno = result;
- ACE_Errno_Guard guard (errno); // Lock release may smash errno
- new_thr_desc->sync_->release ();
- return -1;
- }
- else
- {
-#if defined (ACE_HAS_WTHREADS)
- // Have to duplicate handle if client asks for it.
- // @@ How are thread handles implemented on AIX? Do they
- // also need to be duplicated?
- if (t_handle != 0)
-# if defined (ACE_HAS_WINCE)
- *t_handle = thr_handle;
-# else /* ! ACE_HAS_WINCE */
- (void) ::DuplicateHandle (::GetCurrentProcess (),
- thr_handle,
- ::GetCurrentProcess (),
- t_handle,
- 0,
- TRUE,
- DUPLICATE_SAME_ACCESS);
-# endif /* ! ACE_HAS_WINCE */
-#elif defined (VXWORKS)
- if (t_handle != 0)
- *t_handle = thr_handle;
-#else /* ! ACE_HAS_WTHREADS && ! VXWORKS */
- ACE_UNUSED_ARG (t_handle);
-#endif /* ! ACE_HAS_WTHREADS && ! VXWORKS */
-
- // append_thr also put the <new_thr_desc> into Thread_Manager's
- // double-linked list. Only after this point, can we manipulate
- // double-linked list from a spawned thread's context.
- return this->append_thr (*t_id,
- thr_handle,
- ACE_THR_SPAWNED,
- grp_id,
- task,
- flags,
- new_thr_desc.release ());
- }
-}
-
-int
-ACE_Thread_Manager::spawn (ACE_THR_FUNC func,
- void *args,
- long flags,
- ACE_thread_t *t_id,
- ACE_hthread_t *t_handle,
- long priority,
- int grp_id,
- void *stack,
- size_t stack_size)
-{
- ACE_TRACE ("ACE_Thread_Manager::spawn");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- if (grp_id == -1)
- grp_id = this->grp_id_++; // Increment the group id.
-
- if (this->spawn_i (func, args, flags, t_id, t_handle,
- priority, grp_id, stack, stack_size) == -1)
- return -1;
-
- return grp_id;
-}
-
-// Create N new threads running FUNC.
-
-int
-ACE_Thread_Manager::spawn_n (size_t n,
- ACE_THR_FUNC func,
- void *args,
- long flags,
- long priority,
- int grp_id,
- ACE_Task_Base *task,
- ACE_hthread_t thread_handles[],
- void *stack[],
- size_t stack_size[])
-{
- ACE_TRACE ("ACE_Thread_Manager::spawn_n");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- if (grp_id == -1)
- grp_id = this->grp_id_++; // Increment the group id.
-
- for (size_t i = 0; i < n; i++)
- {
- // @@ What should happen if this fails?! e.g., should we try to
- // cancel the other threads that we've already spawned or what?
- if (this->spawn_i (func,
- args,
- flags,
- 0,
- thread_handles == 0 ? 0 : &thread_handles[i],
- priority,
- grp_id,
- stack == 0 ? 0 : stack[i],
- stack_size == 0 ? 0 : stack_size[i],
- task) == -1)
- return -1;
- }
-
- return grp_id;
-}
-
-// Create N new threads running FUNC.
-
-int
-ACE_Thread_Manager::spawn_n (ACE_thread_t thread_ids[],
- size_t n,
- ACE_THR_FUNC func,
- void *args,
- long flags,
- long priority,
- int grp_id,
- void *stack[],
- size_t stack_size[],
- ACE_hthread_t thread_handles[],
- ACE_Task_Base *task)
-{
- ACE_TRACE ("ACE_Thread_Manager::spawn_n");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- if (grp_id == -1)
- grp_id = this->grp_id_++; // Increment the group id.
-
- for (size_t i = 0; i < n; i++)
- {
- // @@ What should happen if this fails?! e.g., should we try to
- // cancel the other threads that we've already spawned or what?
- if (this->spawn_i (func,
- args,
- flags,
- thread_ids == 0 ? 0 : &thread_ids[i],
- thread_handles == 0 ? 0 : &thread_handles[i],
- priority,
- grp_id,
- stack == 0 ? 0 : stack[i],
- stack_size == 0 ? 0 : stack_size[i],
- task) == -1)
- return -1;
- }
-
- return grp_id;
-}
-
-// Append a thread into the pool (does not check for duplicates).
-// Must be called with locks held.
-
-int
-ACE_Thread_Manager::append_thr (ACE_thread_t t_id,
- ACE_hthread_t t_handle,
- ACE_UINT32 thr_state,
- int grp_id,
- ACE_Task_Base *task,
- long flags,
- ACE_Thread_Descriptor *td)
-{
- ACE_TRACE ("ACE_Thread_Manager::append_thr");
- ACE_Thread_Descriptor *thr_desc;
-
- if (td == 0)
- {
- ACE_NEW_RETURN (thr_desc,
- ACE_Thread_Descriptor,
- -1);
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- thr_desc->tm_ = this;
- // Setup the Thread_Manager.
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
- }
- else
- thr_desc = td;
-
- thr_desc->thr_id_ = t_id;
- thr_desc->thr_handle_ = t_handle;
- thr_desc->grp_id_ = grp_id;
- thr_desc->task_ = task;
- thr_desc->flags_ = flags;
-
- this->thr_list_.insert_head (thr_desc);
- ACE_SET_BITS (thr_desc->thr_state_, thr_state);
- thr_desc->sync_->release ();
-
- return 0;
-}
-
-// Return the thread descriptor (indexed by ACE_hthread_t).
-
-ACE_Thread_Descriptor *
-ACE_Thread_Manager::find_hthread (ACE_hthread_t h_id)
-{
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- if (ACE_OS::thr_cmp (iter.next ()->thr_handle_, h_id))
- return iter.next ();
-
- return 0;
-}
-
-// Locate the index in the table associated with <t_id>. Must be
-// called with the lock held.
-
-ACE_Thread_Descriptor *
-ACE_Thread_Manager::find_thread (ACE_thread_t t_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::find_thread");
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- if (ACE_OS::thr_equal (iter.next ()->thr_id_, t_id))
- return iter.next ();
- return 0;
-}
-
-// Insert a thread into the pool (checks for duplicates and doesn't
-// allow them to be inserted twice).
-
-int
-ACE_Thread_Manager::insert_thr (ACE_thread_t t_id,
- ACE_hthread_t t_handle,
- int grp_id,
- long flags)
-{
- ACE_TRACE ("ACE_Thread_Manager::insert_thr");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- // Check for duplicates and bail out if we're already registered...
-#if defined (VXWORKS)
- if (this->find_hthread (t_handle) != 0 )
- return -1;
-#else /* ! VXWORKS */
- if (this->find_thread (t_id) != 0 )
- return -1;
-#endif /* ! VXWORKS */
-
- if (grp_id == -1)
- grp_id = this->grp_id_++;
-
- if (this->append_thr (t_id,
- t_handle,
- ACE_THR_SPAWNED,
- grp_id,
- 0,
- flags) == -1)
- return -1;
-
- return grp_id;
-}
-
-// Run the registered hooks when the thread exits.
-
-void
-ACE_Thread_Manager::run_thread_exit_hooks (int i)
-{
-#if 0 // currently unused!
- ACE_TRACE ("ACE_Thread_Manager::run_thread_exit_hooks");
-
- // @@ Currently, we have just one hook. This should clearly be
- // generalized to support an arbitrary number of hooks.
-
- ACE_Thread_Descriptor *td = this->thread_desc_self ();
- if (td != 0 && td->cleanup_info.cleanup_hook_ != 0)
- {
- (*td->cleanup_info_.cleanup_hook_)
- (td->cleanup_info_.object_,
- td->cleanup_info_.param_);
-
- td->cleanup_info_.cleanup_hook_ = 0;
- }
- ACE_UNUSED_ARG (i);
-#else
- ACE_UNUSED_ARG (i);
-#endif /* 0 */
-}
-
-// Remove a thread from the pool. Must be called with locks held.
-
-void
-ACE_Thread_Manager::remove_thr (ACE_Thread_Descriptor *td,
- int close_handler)
-{
- ACE_TRACE ("ACE_Thread_Manager::remove_thr");
-
-#if defined (VXWORKS)
- ACE_thread_t tid = td->self ();
-#endif /* VXWORKS */
-
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- td->tm_ = 0;
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
- this->thr_list_.remove (td);
-
-#if defined (VXWORKS)
- // Delete the thread ID, if the ACE_Thread_Manager allocated it.
- if (tid && tid[0] == ACE_THR_ID_ALLOCATED)
- {
- delete [] tid;
- }
-#endif /* VXWORKS */
-
-#if defined (ACE_WIN32)
- if (close_handler != 0)
- ::CloseHandle (td->thr_handle_);
-#else
- ACE_UNUSED_ARG (close_handler);
-#endif /* ACE_WIN32 */
-
-#if 1
-
- this->thread_desc_freelist_.add (td);
-#else
- delete td;
-#endif /* 1 */
-
-#if defined (ACE_HAS_THREADS)
- // Tell all waiters when there are no more threads left in the pool.
- if (this->thr_list_.size () == 0)
- this->zero_cond_.broadcast ();
-#endif /* ACE_HAS_THREADS */
-}
-
-// Repeatedly call remove_thr on all table entries until there
-// is no thread left. Must be called with lock held.
-
-void
-ACE_Thread_Manager::remove_thr_all (void)
-{
- ACE_Thread_Descriptor *td;
-
- while ((td = this->thr_list_.delete_head ()) != 0)
- {
-#if defined (ACE_WIN32)
- // We need to let go handles if we want to let the threads
- // run wild.
- // @@ Do we need to close down AIX thread handles too?
- ::CloseHandle (td->thr_handle_);
-#endif /* ACE_WIN32 */
- delete td;
- }
-
-}
-
-// ------------------------------------------------------------------
-// Factor out some common behavior to simplify the following methods.
-#define ACE_THR_OP(OP,STATE) \
- int result = OP (td->thr_handle_); \
- if (result == -1) { \
- if (errno != ENOTSUP) \
- this->thr_to_be_removed_.enqueue_tail (td); \
- return -1; \
- } \
- else { \
- ACE_SET_BITS (td->thr_state_, STATE); \
- return 0; \
- }
-
-int
-ACE_Thread_Manager::join_thr (ACE_Thread_Descriptor *td, int)
-{
- ACE_TRACE ("ACE_Thread_Manager::join_thr");
- int result = ACE_Thread::join (td->thr_handle_);
- if (result != 0)
- {
- // Since the thread are being joined, we should
- // let it remove itself from the list.
-
- // this->remove_thr (td);
- errno = result;
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_Thread_Manager::suspend_thr (ACE_Thread_Descriptor *td, int)
-{
- ACE_TRACE ("ACE_Thread_Manager::suspend_thr");
-
- int result = ACE_Thread::suspend (td->thr_handle_);
- if (result == -1) {
- if (errno != ENOTSUP)
- this->thr_to_be_removed_.enqueue_tail (td);
- return -1;
- }
- else {
- ACE_SET_BITS (td->thr_state_, ACE_THR_SUSPENDED);
- return 0;
- }
-}
-
-int
-ACE_Thread_Manager::resume_thr (ACE_Thread_Descriptor *td, int)
-{
- ACE_TRACE ("ACE_Thread_Manager::resume_thr");
-
- int result = ACE_Thread::resume (td->thr_handle_);
- if (result == -1) {
- if (errno != ENOTSUP)
- this->thr_to_be_removed_.enqueue_tail (td);
- return -1;
- }
- else {
- ACE_CLR_BITS (td->thr_state_, ACE_THR_SUSPENDED);
- return 0;
- }
-}
-
-int
-ACE_Thread_Manager::cancel_thr (ACE_Thread_Descriptor *td, int async_cancel)
-{
- ACE_TRACE ("ACE_Thread_Manager::cancel_thr");
- // Must set the state first and then try to cancel the thread.
- ACE_SET_BITS (td->thr_state_, ACE_THR_CANCELLED);
-
- if (async_cancel != 0)
- // Note that this call only does something relevant if the OS
- // platform supports asynchronous thread cancellation. Otherwise,
- // it's a no-op.
- return ACE_Thread::cancel (td->thr_id_);
-
- return 0;
-}
-
-int
-ACE_Thread_Manager::kill_thr (ACE_Thread_Descriptor *td, int signum)
-{
- ACE_TRACE ("ACE_Thread_Manager::kill_thr");
-
- ACE_thread_t tid = td->thr_id_;
-#if defined (VXWORKS)
- // Skip over the ID-allocated marker, if present.
- tid += tid[0] == ACE_THR_ID_ALLOCATED ? 1 : 0;
-#endif /* VXWORKS */
-
- int result = ACE_Thread::kill (tid, signum);
-
- if (result != 0)
- {
- // Only remove a thread from us when there is a "real" error.
- if (errno != ENOTSUP)
- this->thr_to_be_removed_.enqueue_tail (td);
-
- return -1;
- }
-#if defined (CHORUS)
- else if (signum == SIGTHREADKILL)
- this->thr_to_be_removed_.enqueue_tail (td);
-#endif /* CHORUS */
-
- return 0;
-}
-
-// ------------------------------------------------------------------
-// Factor out some common behavior to simplify the following methods.
-#define ACE_EXECUTE_OP(OP, ARG) \
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1)); \
- ACE_ASSERT (this->thr_to_be_removed_.is_empty ()); \
- ACE_FIND (this->find_thread (t_id), ptr); \
- if (ptr == 0) \
- { \
- errno = ENOENT; \
- return -1; \
- } \
- int result = OP (ptr, ARG); \
- ACE_Errno_Guard error (errno); \
- while (! this->thr_to_be_removed_.is_empty ()) { \
- ACE_Thread_Descriptor *td; \
- this->thr_to_be_removed_.dequeue_head (td); \
- this->remove_thr (td, 1); \
- } \
- return result
-
-// Suspend a single thread.
-
-int
-ACE_Thread_Manager::suspend (ACE_thread_t t_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::suspend");
- ACE_EXECUTE_OP (this->suspend_thr, 0);
-}
-
-// Resume a single thread.
-
-int
-ACE_Thread_Manager::resume (ACE_thread_t t_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::resume");
- ACE_EXECUTE_OP (this->resume_thr, 0);
-}
-
-// Cancel a single thread.
-
-int
-ACE_Thread_Manager::cancel (ACE_thread_t t_id, int async_cancel)
-{
- ACE_TRACE ("ACE_Thread_Manager::cancel");
- ACE_EXECUTE_OP (this->cancel_thr, async_cancel);
-}
-
-// Send a signal to a single thread.
-
-int
-ACE_Thread_Manager::kill (ACE_thread_t t_id, int signum)
-{
- ACE_TRACE ("ACE_Thread_Manager::kill");
- ACE_EXECUTE_OP (this->kill_thr, signum);
-}
-
-int
-ACE_Thread_Manager::check_state (ACE_UINT32 state,
- ACE_thread_t id,
- int enable)
-{
- ACE_TRACE ("ACE_Thread_Manager::check_state");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- ACE_UINT32 thr_state;
-
- int self_check = ACE_OS::thr_equal (id, ACE_OS::thr_self ());
-
- // If we're checking the state of our thread, try to get the cached
- // value out of TSS to avoid lookup.
- if (self_check)
- {
- ACE_Thread_Descriptor *desc = ACE_LOG_MSG->thr_desc ();
- if (desc == 0)
- return 0; // Always return false.
- thr_state = desc->thr_state_;
- }
- else
- {
- // Not calling from self, have to look it up from the list.
- ACE_FIND (this->find_thread (id), ptr);
- if (ptr == 0)
- return 0;
- thr_state = ptr->thr_state_;
- }
- if (enable)
- return ACE_BIT_ENABLED (thr_state, state);
-
- return ACE_BIT_DISABLED (thr_state, state);
-}
-
-// Test if a single thread is suspended.
-
-int
-ACE_Thread_Manager::testsuspend (ACE_thread_t t_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::testsuspend");
- return this->check_state (ACE_THR_SUSPENDED, t_id);
-}
-
-// Test if a single thread is active (i.e., resumed).
-
-int
-ACE_Thread_Manager::testresume (ACE_thread_t t_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::testresume");
- return this->check_state (ACE_THR_SUSPENDED, t_id, 0);
-}
-
-// Test if a single thread is cancelled.
-
-int
-ACE_Thread_Manager::testcancel (ACE_thread_t t_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::testcancel");
- return this->check_state (ACE_THR_CANCELLED, t_id);
-}
-
-// Thread information query functions.
-
-int
-ACE_Thread_Manager::hthread_within (ACE_hthread_t handle)
-{
- ACE_TRACE ("ACE_Thread_Manager::hthread_within");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_monx, this->lock_, -1));
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- if (ACE_OS::thr_cmp(iter.next ()->thr_handle_, handle))
- return 1;
-
- return 0;
-}
-
-int
-ACE_Thread_Manager::thread_within (ACE_thread_t tid)
-{
- ACE_TRACE ("ACE_Thread_Manager::thread_within");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_monx, this->lock_, -1));
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- if (ACE_OS::thr_equal (iter.next ()->thr_id_, tid))
- return 1;
-
- return 0;
-}
-
-// Get group ids for a particular thread id.
-
-int
-ACE_Thread_Manager::get_grp (ACE_thread_t t_id, int &grp_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::get_grp");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- ACE_FIND (this->find_thread (t_id), ptr);
-
- if (ptr)
- grp_id = ptr->grp_id_;
- else
- return -1;
- return 0;
-}
-
-// Set group ids for a particular thread id.
-
-int
-ACE_Thread_Manager::set_grp (ACE_thread_t t_id, int grp_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::set_grp");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- ACE_FIND (this->find_thread (t_id), ptr);
- if (ptr)
- ptr->grp_id_ = grp_id;
- else
- return -1;
- return 0;
-}
-
-// Suspend a group of threads.
-
-int
-ACE_Thread_Manager::apply_grp (int grp_id,
- ACE_THR_MEMBER_FUNC func,
- int arg)
-{
- ACE_TRACE ("ACE_Thread_Manager::apply_grp");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_monx, this->lock_, -1));
- ACE_ASSERT (this->thr_to_be_removed_.is_empty ());
-
- int result = 0;
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- if (iter.next ()->grp_id_ == grp_id)
- if ((this->*func) (iter.next (), arg) == -1)
- result = -1;
-
- // Must remove threads after we have traversed the thr_list_ to
- // prevent clobber thr_list_'s integrity.
-
- if (! this->thr_to_be_removed_.is_empty ())
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
-
- for (ACE_Thread_Descriptor *td;
- this->thr_to_be_removed_.dequeue_head (td) != -1;
- )
- this->remove_thr (td, 1);
- }
-
- return result;
-}
-
-int
-ACE_Thread_Manager::suspend_grp (int grp_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::suspend_grp");
- return this->apply_grp (grp_id,
- ACE_THR_MEMBER_FUNC (&ACE_Thread_Manager::suspend_thr));
-}
-
-// Resume a group of threads.
-
-int
-ACE_Thread_Manager::resume_grp (int grp_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::resume_grp");
- return this->apply_grp (grp_id,
- ACE_THR_MEMBER_FUNC (&ACE_Thread_Manager::resume_thr));
-}
-
-// Kill a group of threads.
-
-int
-ACE_Thread_Manager::kill_grp (int grp_id, int signum)
-{
- ACE_TRACE ("ACE_Thread_Manager::kill_grp");
- return this->apply_grp (grp_id,
- ACE_THR_MEMBER_FUNC (&ACE_Thread_Manager::kill_thr), signum);
-}
-
-// Cancel a group of threads.
-
-int
-ACE_Thread_Manager::cancel_grp (int grp_id, int async_cancel)
-{
- ACE_TRACE ("ACE_Thread_Manager::cancel_grp");
- return this->apply_grp (grp_id,
- ACE_THR_MEMBER_FUNC (&ACE_Thread_Manager::cancel_thr),
- async_cancel);
-}
-
-int
-ACE_Thread_Manager::apply_all (ACE_THR_MEMBER_FUNC func, int arg)
-{
- ACE_TRACE ("ACE_Thread_Manager::apply_all");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
- ACE_ASSERT (this->thr_to_be_removed_.is_empty ());
-
- int result = 0;
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- if ((this->*func)(iter.next (), arg) == -1)
- result = -1;
-
- // Must remove threads after we have traversed the thr_list_ to
- // prevent clobber thr_list_'s integrity.
-
- if (! this->thr_to_be_removed_.is_empty ())
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
-
- for (ACE_Thread_Descriptor *td;
- this->thr_to_be_removed_.dequeue_head (td) != -1;
- )
- this->remove_thr (td, 1);
- }
-
- return result;
-}
-
-// Resume all threads that are suspended.
-
-int
-ACE_Thread_Manager::resume_all (void)
-{
- ACE_TRACE ("ACE_Thread_Manager::resume_all");
- return this->apply_all (ACE_THR_MEMBER_FUNC (&ACE_Thread_Manager::resume_thr));
-}
-
-int
-ACE_Thread_Manager::suspend_all (void)
-{
- ACE_TRACE ("ACE_Thread_Manager::suspend_all");
- return this->apply_all (ACE_THR_MEMBER_FUNC (&ACE_Thread_Manager::suspend_thr));
-}
-
-int
-ACE_Thread_Manager::kill_all (int sig)
-{
- ACE_TRACE ("ACE_Thread_Manager::kill_all");
- return this->apply_all (&ACE_Thread_Manager::kill_thr, sig);
-}
-
-int
-ACE_Thread_Manager::cancel_all (int async_cancel)
-{
- ACE_TRACE ("ACE_Thread_Manager::cancel_all");
- return this->apply_all (ACE_THR_MEMBER_FUNC (&ACE_Thread_Manager::cancel_thr),
- async_cancel);
-}
-
-int
-ACE_Thread_Manager::join (ACE_thread_t tid, ACE_THR_FUNC_RETURN *status)
-{
- ACE_TRACE ("ACE_Thread_Manager::join");
-
- ACE_Thread_Descriptor_Base tdb;
- int found = 0;
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
-#if !defined (VXWORKS)
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor_Base> biter (this->terminated_thr_list_);
- !biter.done ();
- biter.advance ())
- if (ACE_OS::thr_equal (biter.next ()->thr_id_, tid))
- {
- ACE_Thread_Descriptor_Base *tdb = biter.advance_and_remove (0);
-# if defined (_AIX)
- // The AIX xlC compiler does not match the proper function here - it
- // confuses ACE_Thread::join(ACE_thread_t, ACE_thread_t *, void **=0) and
- // ACE_Thread::join(ACE_hthread_t, void **=0). At least at 3.1.4.7 and .8.
- // The 2nd arg is ignored for pthreads anyway.
-
- // And, g++ on AIX needs the three-arg thr_join, also, to pick up the
- // proper version from the AIX libraries.
- if (ACE_Thread::join (tdb->thr_handle_,
- &tdb->thr_handle_,
- status) == -1)
-# else /* ! _AIX */
- if (ACE_Thread::join (tdb->thr_handle_, status) == -1)
-# endif /* ! _AIX */
- return -1;
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4) && defined (ACE_LACKS_SETDETACH)
- // Must explicitly detach threads. Threads without THR_DETACHED
- // were detached in ACE_OS::thr_create ().
- ::pthread_detach (&tdb->thr_handle_);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 && ACE_LACKS_SETDETACH */
-
- delete tdb;
- return 0;
- // return immediately if we've found the thread we want to join.
- }
-#endif /* !VXWORKS */
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- // If threads are created as THR_DETACHED or THR_DAEMON, we
- // can't help much.
- if (ACE_OS::thr_equal (iter.next ()->thr_id_,tid) &&
- (ACE_BIT_DISABLED (iter.next ()->flags_, THR_DETACHED | THR_DAEMON)
- || ACE_BIT_ENABLED (iter.next ()->flags_, THR_JOINABLE)))
- {
- tdb = *iter.next ();
- ACE_SET_BITS (iter.next ()->thr_state_, ACE_THR_JOINING);
- found = 1;
- break;
- }
-
- if (found == 0)
- return -1;
- // Didn't find the thread we want or the thread is not joinable.
- }
-
-# if defined (_AIX)
- // The AIX xlC compiler does not match the proper function here - it
- // confuses ACE_Thread::join(ACE_thread_t, ACE_thread_t *, void **=0) and
- // ACE_Thread::join(ACE_hthread_t, void **=0). At least at 3.1.4.7 and .8.
- // The 2nd arg is ignored for pthreads anyway.
-
- // And, g++ on AIX needs the three-arg thr_join, also, to pick up the
- // proper version from the AIX libraries.
- if (ACE_Thread::join (tdb.thr_handle_, &tdb.thr_handle_, status) == -1)
-# else /* ! _AIX */
- if (ACE_Thread::join (tdb.thr_handle_, status) == -1)
-# endif /* ! _AIX */
- return -1;
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4) && defined (ACE_LACKS_SETDETACH)
- // Must explicitly detach threads. Threads without THR_DETACHED
- // were detached in ACE_OS::thr_create ().
-
-# if defined (HPUX_10)
- // HP-UX DCE threads' pthread_detach will smash thr_id if it's just given
- // as an argument. Since the thread handle is still needed, give
- // pthread_detach a junker to scribble on.
- ACE_thread_t junker;
- cma_handle_assign(&tdb.thr_handle_, &junker);
- ::pthread_detach (&junker);
-# else
- ::pthread_detach (&tdb.thr_handle_);
- #endif /* HPUX_10 */
-# endif /* ACE_HAS_PTHREADS_DRAFT4 && ACE_LACKS_SETDETACH */
- return 0;
-}
-
-// Wait for group of threads
-
-int
-ACE_Thread_Manager::wait_grp (int grp_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::wait_grp");
-
- int copy_count = 0;
- ACE_Thread_Descriptor_Base *copy_table = 0;
-
- // We have to make sure that while we wait for these threads to
- // exit, we do not have the lock. Therefore we make a copy of all
- // interesting entries and let go of the lock.
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
-#if !defined (VXWORKS)
- ACE_NEW_RETURN (copy_table,
- ACE_Thread_Descriptor_Base [this->thr_list_.size ()
- + this->terminated_thr_list_.size ()],
- -1);
-#else
- ACE_NEW_RETURN (copy_table,
- ACE_Thread_Descriptor_Base [this->thr_list_.size ()],
- -1);
-#endif /* VXWORKS */
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- // If threads are created as THR_DETACHED or THR_DAEMON, we
- // can't help much.
- if (iter.next ()->grp_id_ == grp_id &&
- (ACE_BIT_DISABLED (iter.next ()->flags_, THR_DETACHED | THR_DAEMON)
- || ACE_BIT_ENABLED (iter.next ()->flags_, THR_JOINABLE)))
- {
- ACE_SET_BITS (iter.next ()->thr_state_, ACE_THR_JOINING);
- copy_table[copy_count++] = *iter.next ();
- }
-
-#if !defined (VXWORKS)
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor_Base> biter (this->terminated_thr_list_);
- !biter.done ();
- biter.advance ())
- // If threads are created as THR_DETACHED or THR_DAEMON, we
- // can't help much.
- if (biter.next ()->grp_id_ == grp_id)
- {
- ACE_Thread_Descriptor_Base *tdb = biter.advance_and_remove (0);
- copy_table[copy_count++] = *tdb;
- delete tdb;
- }
-#endif /* !VXWORKS */
- }
-
- // Now actually join() with all the threads in this group.
- int result = 0;
-
- for (int i = 0;
- i < copy_count && result != -1;
- i++)
- {
- if (ACE_Thread::join (copy_table[i].thr_handle_) == -1)
- result = -1;
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4) && defined (ACE_LACKS_SETDETACH)
- // Must explicitly detach threads. Threads without THR_DETACHED
- // were detached in ACE_OS::thr_create ().
- ::pthread_detach (&copy_table[i].thr_handle_);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 && ACE_LACKS_SETDETACH */
- }
-
- delete [] copy_table;
-
- return result;
-}
-
-// Must be called when thread goes out of scope to clean up its table
-// slot.
-
-ACE_THR_FUNC_RETURN
-ACE_Thread_Manager::exit (ACE_THR_FUNC_RETURN status, int do_thr_exit)
-{
- ACE_TRACE ("ACE_Thread_Manager::exit");
-#if defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- int close_handle = 0;
-#endif /* ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-
-#if defined (ACE_WIN32)
- // Remove detached thread handle.
-
- if (do_thr_exit)
- {
-#if 0
- // @@ This callback is now taken care of by TSS_Cleanup. Do we
- // need it anymore?
-
- // On Win32, if we really wants to exit from a thread, we must
- // first clean up the thread specific storage. By doing so,
- // ACE_Thread_Manager::exit will be called again with
- // do_thr_exit = 0 and cleaning up the ACE_Cleanup_Info (but not
- // exiting the thread.) After the following call returns, we
- // are safe to exit this thread.
- delete ACE_Thread_Exit::instance ();
-#endif /* 0 */
- ACE_Thread::exit (status);
- }
-#endif /* ACE_WIN32 */
-
-#if defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- ACE_Cleanup_Info cleanup_info;
-
- // Just hold onto the guard while finding this thread's id and
- // copying the exit hook.
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0));
-
- // Find the thread id, but don't use the cache. It might have been
- // deleted already.
-#if defined (VXWORKS)
- ACE_hthread_t id;
- ACE_OS::thr_self (id);
- ACE_Thread_Descriptor *td = this->find_hthread (id);
-#else /* ! VXWORKS */
- ACE_thread_t id = ACE_OS::thr_self ();
- ACE_Thread_Descriptor *td = this->find_thread (id);
-#endif /* ! VXWORKS */
-
- // Locate thread id.
- if (td != 0)
- {
- // @@ Currently, we have just one hook. This should clearly
- // be generalized to support an arbitrary number of hooks.
-
- if (td->cleanup_info_.cleanup_hook_ != 0)
- {
- // Copy the hook so that we can call it after releasing
- // the guard.
- cleanup_info = td->cleanup_info_;
- td->cleanup_info_.cleanup_hook_ = 0;
- }
-
-#if !defined (VXWORKS)
- // Threads created with THR_DAEMON shouldn't exist here, but
- // just to be safe, let's put it here.
-
- if (ACE_BIT_DISABLED (td->thr_state_, ACE_THR_JOINING))
- if (ACE_BIT_DISABLED (td->flags_, THR_DETACHED | THR_DAEMON)
- || ACE_BIT_ENABLED (td->flags_, THR_JOINABLE))
- {
- // Mark thread as terminated.
- ACE_SET_BITS (td->thr_state_, ACE_THR_TERMINATED);
- this->register_as_terminated (td);
- // Must copy the information here because td will be "freed" below.
- }
-#if defined (ACE_WIN32)
- else
- {
- close_handle = 1;
- }
-#endif /* ACE_WIN32 */
-#endif /* ! VXWORKS */
-
- // Remove thread descriptor from the table.
- this->remove_thr (td, close_handle);
- }
- // Release the guard.
- }
-
- // Call the cleanup hook.
- if (cleanup_info.cleanup_hook_ != 0)
- (*cleanup_info.cleanup_hook_) (cleanup_info.object_,
- cleanup_info.param_);
-#else /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
- // Just hold onto the guard while finding this thread's id and
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0));
-
- // Find the thread id, but don't use the cache. It might have been
- // deleted already.
-#if defined (VXWORKS)
- ACE_hthread_t id;
- ACE_OS::thr_self (id);
- ACE_Thread_Descriptor* td = this->find_hthread (id);
-#else /* ! VXWORKS */
- ACE_thread_t id = ACE_OS::thr_self ();
- ACE_Thread_Descriptor* td = this->find_thread (id);
-#endif /* ! VXWORKS */
- if (td != 0)
- {
- // @@ We call Thread_Descriptor terminate this realize the cleanup
- // process itself.
- td->terminate();
- }
- }
-
-
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-
- if (do_thr_exit)
- {
- ACE_Thread::exit (status);
- // On reasonable systems <ACE_Thread::exit> should not return.
- // However, due to horrible semantics with Win32 thread-specific
- // storage this call can return (don't ask...).
- }
-
- return 0;
-}
-
-// Wait for all the threads to exit.
-
-int
-ACE_Thread_Manager::wait (const ACE_Time_Value *timeout,
- int abandon_detached_threads)
-{
- ACE_TRACE ("ACE_Thread_Manager::wait");
-
-#if defined (ACE_HAS_THREADS)
- {
- // Just hold onto the guard while waiting.
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- if (ACE_Object_Manager::shutting_down () != 1)
- {
- // Program is not shutting down. Perform a normal wait on threads.
- if (abandon_detached_threads != 0)
- {
- ACE_ASSERT (this->thr_to_be_removed_.is_empty ());
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor>
- iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- if (ACE_BIT_ENABLED (iter.next ()->flags_,
- THR_DETACHED | THR_DAEMON)
- && ACE_BIT_DISABLED (iter.next ()->flags_, THR_JOINABLE))
- {
- this->thr_to_be_removed_.enqueue_tail (iter.next ());
- ACE_SET_BITS (iter.next ()->thr_state_, ACE_THR_JOINING);
- }
-
- if (! this->thr_to_be_removed_.is_empty ())
- {
- ACE_Thread_Descriptor *td;
- while (this->thr_to_be_removed_.dequeue_head (td) != -1)
- this->remove_thr (td, 1);
- }
- }
-
- while (this->thr_list_.size () > 0)
- if (this->zero_cond_.wait (timeout) == -1)
- return -1;
- }
- else
- // Program is shutting down, no chance to wait on threads.
- // Therefore, we'll just remove threads from the list.
- this->remove_thr_all ();
- // Release the guard, giving other threads a chance to run.
- }
-
-#if !defined (VXWORKS)
- // @@ VxWorks doesn't support thr_join (yet.) We are working
- //on our implementation. Chorus'es thr_join seems broken.
- ACE_Thread_Descriptor_Base *item;
-
-#if defined (CHORUS)
- if (ACE_Object_Manager::shutting_down () != 1)
- {
-#endif /* CHORUS */
- while ((item = this->terminated_thr_list_.delete_head ()) != 0)
- {
- if (ACE_BIT_DISABLED (item->flags_, THR_DETACHED | THR_DAEMON)
- || ACE_BIT_ENABLED (item->flags_, THR_JOINABLE))
- // Detached handles shouldn't reached here.
- ACE_Thread::join (item->thr_handle_);
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4) && defined (ACE_LACKS_SETDETACH)
- // Must explicitly detach threads. Threads without
- // THR_DETACHED were detached in ACE_OS::thr_create ().
- ::pthread_detach (&item->thr_handle_);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 && ACE_LACKS_SETDETACH */
- delete item;
- }
-#if defined (CHORUS)
- }
-#endif /* CHORUS */
-
-#endif /* ! VXWORKS */
-#else
- ACE_UNUSED_ARG (timeout);
- ACE_UNUSED_ARG (abandon_detached_threads);
-#endif /* ACE_HAS_THREADS */
-
- return 0;
-}
-
-int
-ACE_Thread_Manager::apply_task (ACE_Task_Base *task,
- ACE_THR_MEMBER_FUNC func,
- int arg)
-{
- ACE_TRACE ("ACE_Thread_Manager::apply_task");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
- ACE_ASSERT (this->thr_to_be_removed_.is_empty ());
-
- int result = 0;
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- if (iter.next ()->task_ == task
- && (this->*func) (iter.next (), arg) == -1)
- result = -1;
-
- // Must remove threads after we have traversed the thr_list_ to
- // prevent clobber thr_list_'s integrity.
-
- if (! this->thr_to_be_removed_.is_empty ())
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
-
- for (ACE_Thread_Descriptor *td;
- this->thr_to_be_removed_.dequeue_head (td) != -1;
- )
- this->remove_thr (td, 1);
- }
-
- return result;
-}
-
-// Wait for all threads to exit a task.
-
-int
-ACE_Thread_Manager::wait_task (ACE_Task_Base *task)
-{
- int copy_count = 0;
- ACE_Thread_Descriptor_Base *copy_table = 0;
-
- // We have to make sure that while we wait for these threads to
- // exit, we do not have the lock. Therefore we make a copy of all
- // interesting entries and let go of the lock.
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
-#if !defined (VXWORKS)
- ACE_NEW_RETURN (copy_table,
- ACE_Thread_Descriptor_Base [this->thr_list_.size ()
- + this->terminated_thr_list_.size ()],
- -1);
-#else
- ACE_NEW_RETURN (copy_table,
- ACE_Thread_Descriptor_Base [this->thr_list_.size ()],
- -1);
-#endif /* VXWORKS */
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- // If threads are created as THR_DETACHED or THR_DAEMON, we
- // can't wait on them here.
- if (iter.next ()->task_ == task &&
- (ACE_BIT_DISABLED (iter.next ()->flags_,
- THR_DETACHED | THR_DAEMON)
- || ACE_BIT_ENABLED (iter.next ()->flags_,
- THR_JOINABLE)))
- {
- ACE_SET_BITS (iter.next ()->thr_state_,
- ACE_THR_JOINING);
- copy_table[copy_count++] = *iter.next ();
- }
-
-#if !defined (VXWORKS)
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor_Base> titer (this->terminated_thr_list_);
- !titer.done ();
- titer.advance ())
- // If threads are created as THR_DETACHED or THR_DAEMON, we can't help much here.
- if (titer.next ()->task_ == task)
- {
- ACE_Thread_Descriptor_Base *tdb =
- titer.advance_and_remove (0);
- copy_table[copy_count++] = *tdb;
- delete tdb;
- }
-#endif /* VXWORKS */
- }
-
- // Now to do the actual work
- int result = 0;
-
- for (int i = 0;
- i < copy_count && result != -1;
- i++)
- {
- if (ACE_Thread::join (copy_table[i].thr_handle_) == -1)
- result = -1;
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4) && defined (ACE_LACKS_SETDETACH)
- // Must explicitly detach threads. Threads without THR_DETACHED
- // were detached in ACE_OS::thr_create ().
- ::pthread_detach (&copy_table[i].thr_handle_);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 && ACE_LACKS_SETDETACH */
- }
-
- delete [] copy_table;
-
- return result;
-}
-
-// Suspend a task
-
-int
-ACE_Thread_Manager::suspend_task (ACE_Task_Base *task)
-{
- ACE_TRACE ("ACE_Thread_Manager::suspend_task");
- return this->apply_task (task,
- ACE_THR_MEMBER_FUNC (&ACE_Thread_Manager::suspend_thr));
-}
-
-// Resume a task.
-int
-ACE_Thread_Manager::resume_task (ACE_Task_Base *task)
-{
- ACE_TRACE ("ACE_Thread_Manager::resume_task");
- return this->apply_task (task,
- ACE_THR_MEMBER_FUNC (&ACE_Thread_Manager::resume_thr));
-}
-
-// Kill a task.
-
-int
-ACE_Thread_Manager::kill_task (ACE_Task_Base *task, int /* signum */)
-{
- ACE_TRACE ("ACE_Thread_Manager::kill_task");
- return this->apply_task (task,
- ACE_THR_MEMBER_FUNC (&ACE_Thread_Manager::kill_thr));
-}
-
-// Cancel a task.
-int
-ACE_Thread_Manager::cancel_task (ACE_Task_Base *task,
- int async_cancel)
-{
- ACE_TRACE ("ACE_Thread_Manager::cancel_task");
- return this->apply_task (task,
- ACE_THR_MEMBER_FUNC (&ACE_Thread_Manager::cancel_thr),
- async_cancel);
-}
-
-// Locate the index in the table associated with <task> from the
-// beginning of the table up to an index. Must be called with the
-// lock held.
-
-ACE_Thread_Descriptor *
-ACE_Thread_Manager::find_task (ACE_Task_Base *task, size_t slot)
-{
- ACE_TRACE ("ACE_Thread_Manager::find_task");
-
- size_t i = 0;
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- {
- if (i >= slot)
- break;
-
- if (task == iter.next ()->task_)
- return iter.next ();
-
- i++;
- }
-
- return 0;
-}
-
-// Returns the number of ACE_Task in a group.
-
-int
-ACE_Thread_Manager::num_tasks_in_group (int grp_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::num_tasks_in_group");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- int tasks_count = 0;
- size_t i = 0;
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- {
- if (iter.next ()->grp_id_ == grp_id
- && this->find_task (iter.next ()->task_, i) == 0
- && iter.next ()->task_ != 0)
- tasks_count++;
-
- i++;
- }
- return tasks_count;
-}
-
-// Returns the number of threads in an ACE_Task.
-
-int
-ACE_Thread_Manager::num_threads_in_task (ACE_Task_Base *task)
-{
- ACE_TRACE ("ACE_Thread_Manager::num_threads_in_task");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- int threads_count = 0;
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- if (iter.next ()->task_ == task)
- threads_count++;
-
- return threads_count;
-}
-
-// Returns in task_list a list of ACE_Tasks registered with ACE_Thread_Manager.
-
-ssize_t
-ACE_Thread_Manager::task_all_list (ACE_Task_Base *task_list[],
- size_t n)
-{
- ACE_TRACE ("ACE_Thread_Manager::task_all_list");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- size_t task_list_count = 0;
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- {
- if (task_list_count >= n)
- break;
-
- ACE_Task_Base *task_p = iter.next ()->task_;
- if (0 != task_p)
- {
- // This thread has a task pointer; see if it's already in the
- // list. Don't add duplicates.
- size_t i = 0;
- for (; i < task_list_count; ++i)
- if (task_list[i] == task_p)
- break;
- if (i == task_list_count) // No match - add this one
- task_list[task_list_count++] = task_p;
- }
- }
-
- return task_list_count;
-}
-
-// Returns in thread_list a list of all thread ids
-
-ssize_t
-ACE_Thread_Manager::thread_all_list (ACE_thread_t thread_list[],
- size_t n)
-{
- ACE_TRACE ("ACE_Thread_Manager::thread_all_list");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- size_t thread_count = 0;
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- {
- if (thread_count >= n)
- break;
-
- thread_list[thread_count] = iter.next ()->thr_id_;
- thread_count ++;
- }
-
- return thread_count;
-}
-
-// Returns in task_list a list of ACE_Tasks in a group.
-
-ssize_t
-ACE_Thread_Manager::task_list (int grp_id,
- ACE_Task_Base *task_list[],
- size_t n)
-{
- ACE_TRACE ("ACE_Thread_Manager::task_list");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- ACE_Task_Base **task_list_iterator = task_list;
- size_t task_list_count = 0;
- size_t i = 0;
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- {
- if (task_list_count >= n)
- break;
-
- if (iter.next ()->grp_id_ == grp_id
- && this->find_task (iter.next ()->task_, i) == 0)
- {
- task_list_iterator[task_list_count] = iter.next ()->task_;
- task_list_count++;
- }
-
- i++;
- }
-
- return task_list_count;
-}
-
-// Returns in thread_list a list of thread ids in an ACE_Task.
-
-ssize_t
-ACE_Thread_Manager::thread_list (ACE_Task_Base *task,
- ACE_thread_t thread_list[],
- size_t n)
-{
- ACE_TRACE ("ACE_Thread_Manager::thread_list");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- size_t thread_count = 0;
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- {
- if (thread_count >= n)
- break;
-
- if (iter.next ()->task_ == task)
- {
- thread_list[thread_count] = iter.next ()->thr_id_;
- thread_count++;
- }
- }
-
- return thread_count;
-}
-
-// Returns in thread_list a list of thread handles in an ACE_Task.
-
-ssize_t
-ACE_Thread_Manager::hthread_list (ACE_Task_Base *task,
- ACE_hthread_t hthread_list[],
- size_t n)
-{
- ACE_TRACE ("ACE_Thread_Manager::hthread_list");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- size_t hthread_count = 0;
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- {
- if (hthread_count >= n)
- break;
-
- if (iter.next ()->task_ == task)
- {
- hthread_list[hthread_count] = iter.next ()->thr_handle_;
- hthread_count++;
- }
- }
-
- return hthread_count;
-}
-
-ssize_t
-ACE_Thread_Manager::thread_grp_list (int grp_id,
- ACE_thread_t thread_list[],
- size_t n)
-{
- ACE_TRACE ("ACE_Thread_Manager::thread_grp_list");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- size_t thread_count = 0;
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- {
- if (thread_count >= n)
- break;
-
- if (iter.next ()->grp_id_ == grp_id)
- {
- thread_list[thread_count] = iter.next ()->thr_id_;
- thread_count++;
- }
- }
-
- return thread_count;
-}
-
-// Returns in thread_list a list of thread handles in an ACE_Task.
-
-ssize_t
-ACE_Thread_Manager::hthread_grp_list (int grp_id,
- ACE_hthread_t hthread_list[],
- size_t n)
-{
- ACE_TRACE ("ACE_Thread_Manager::hthread_grp_list");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- size_t hthread_count = 0;
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- {
- if (hthread_count >= n)
- break;
-
- if (iter.next ()->grp_id_ == grp_id)
- {
- hthread_list[hthread_count] = iter.next ()->thr_handle_;
- hthread_count++;
- }
- }
-
- return hthread_count;
-}
-
-int
-ACE_Thread_Manager::set_grp (ACE_Task_Base *task, int grp_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::set_grp");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
- !iter.done ();
- iter.advance ())
- if (iter.next ()->task_ == task)
- iter.next ()->grp_id_ = grp_id;
-
- return 0;
-}
-
-int
-ACE_Thread_Manager::get_grp (ACE_Task_Base *task, int &grp_id)
-{
- ACE_TRACE ("ACE_Thread_Manager::get_grp");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- ACE_FIND (this->find_task (task), ptr);
- grp_id = ptr->grp_id_;
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-# if defined (ACE_THREAD_MANAGER_LACKS_STATICS)
-template class ACE_Singleton<ACE_Thread_Manager, ACE_SYNCH_MUTEX>;
-# endif /* defined (ACE_THREAD_MANAGER_LACKS_STATICS) */
-# if defined (ACE_LACKS_AUTO_PTR) \
- || !(defined (ACE_HAS_STANDARD_CPP_LIBRARY) \
- && (ACE_HAS_STANDARD_CPP_LIBRARY != 0))
-template class ACE_Auto_Basic_Ptr<ACE_Thread_Descriptor>;
-# endif /* ACE_LACKS_AUTO_PTR */
-template class auto_ptr<ACE_Thread_Descriptor>;
-template class ACE_Double_Linked_List<ACE_Thread_Descriptor_Base>;
-template class ACE_Double_Linked_List_Iterator_Base<ACE_Thread_Descriptor_Base>;
-template class ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor_Base>;
-template class ACE_Double_Linked_List<ACE_Thread_Descriptor>;
-template class ACE_Double_Linked_List_Iterator_Base<ACE_Thread_Descriptor>;
-template class ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor>;
-template class ACE_Node<ACE_Thread_Descriptor*>;
-template class ACE_Unbounded_Queue<ACE_Thread_Descriptor*>;
-template class ACE_Unbounded_Queue_Iterator<ACE_Thread_Descriptor*>;
-template class ACE_Free_List<ACE_Thread_Descriptor>;
-template class ACE_Locked_Free_List<ACE_Thread_Descriptor, ACE_DEFAULT_THREAD_MANAGER_LOCK>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# if defined (ACE_THREAD_MANAGER_LACKS_STATICS)
-# pragma instantiate ACE_Singleton<ACE_Thread_Manager, ACE_SYNCH_MUTEX>
-# endif /* defined (ACE_THREAD_MANAGER_LACKS_STATICS) */
-
-# if defined (ACE_LACKS_AUTO_PTR) \
- || !(defined (ACE_HAS_STANDARD_CPP_LIBRARY) \
- && (ACE_HAS_STANDARD_CPP_LIBRARY != 0))
-# pragma instantiate ACE_Auto_Basic_Ptr<ACE_Thread_Descriptor>
-# endif /* ACE_LACKS_AUTO_PTR */
-# pragma instantiate auto_ptr<ACE_Thread_Descriptor>
-# pragma instantiate ACE_Double_Linked_List<ACE_Thread_Descriptor_Base>
-# pragma instantiate ACE_Double_Linked_List_Iterator_Base<ACE_Thread_Descriptor_Base>
-# pragma instantiate ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor_Base>
-# pragma instantiate ACE_Double_Linked_List<ACE_Thread_Descriptor>
-# pragma instantiate ACE_Double_Linked_List_Iterator_Base<ACE_Thread_Descriptor>
-# pragma instantiate ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor>
-# pragma instantiate ACE_Node<ACE_Thread_Descriptor*>
-# pragma instantiate ACE_Unbounded_Queue<ACE_Thread_Descriptor*>
-# pragma instantiate ACE_Unbounded_Queue_Iterator<ACE_Thread_Descriptor*>
-# pragma instantiate ACE_Free_List<ACE_Thread_Descriptor>
-# pragma instantiate ACE_Locked_Free_List<ACE_Thread_Descriptor, ACE_DEFAULT_THREAD_MANAGER_LOCK>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Thread_Manager.h b/ace/Thread_Manager.h
deleted file mode 100644
index 3b1a78a0a5d..00000000000
--- a/ace/Thread_Manager.h
+++ /dev/null
@@ -1,1098 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Thread_Manager.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_THREAD_MANAGER_H
-#define ACE_THREAD_MANAGER_H
-#include "ace/pre.h"
-
-#include "ace/Thread.h"
-#include "ace/Thread_Adapter.h"
-#include "ace/Thread_Exit.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/Unbounded_Queue.h"
-#include "ace/Containers.h"
-#include "ace/Free_List.h"
-#include "ace/Singleton.h"
-#include "ace/Log_Msg.h"
-
-// The following macros control how a Thread Manager manages a pool of
-// Thread_Descriptor. Currently, the default behavior is not to
-// preallocate any thread descriptor and never (well, almost never)
-// free up any thread descriptor until the Thread Manager gets
-// destructed. Which means, once your system is stable, you rarely
-// need to pay the price of memory allocation. On a deterministic
-// system, which means, the number of threads spawned can be
-// determined before hand, you can either redefine the memory pool
-// size macros to suit your need or constructed the Thread_Manager
-// accordingly. That way, you don't pay the price of memory
-// allocation when the system is really doing its job. OTOH, on
-// system with resources constraint, you may want to lower the size of
-// ACE_DEFAULT_THREAD_MANAGER_HWM to avoid unused memory hanging
-// around.
-
-#if !defined (ACE_DEFAULT_THREAD_MANAGER_PREALLOC)
-# define ACE_DEFAULT_THREAD_MANAGER_PREALLOC 0
-#endif /* ACE_DEFAULT_THREAD_MANAGER_PREALLOC */
-
-#if !defined (ACE_DEFAULT_THREAD_MANAGER_LWM)
-# define ACE_DEFAULT_THREAD_MANAGER_LWM 1
-#endif /* ACE_DEFAULT_THREAD_MANAGER_LWM */
-
-#if !defined (ACE_DEFAULT_THREAD_MANAGER_INC)
-# define ACE_DEFAULT_THREAD_MANAGER_INC 1
-#endif /* ACE_DEFAULT_THREAD_MANAGER_INC */
-
-#if !defined (ACE_DEFAULT_THREAD_MANAGER_HWM)
-# define ACE_DEFAULT_THREAD_MANAGER_HWM ACE_DEFAULT_FREE_LIST_HWM
-// this is a big number
-#endif /* ACE_DEFAULT_THREAD_MANAGER_HWM */
-
-// This is the synchronization mechanism used to prevent a thread
-// descriptor gets removed from the Thread_Manager before it gets
-// stash into it. If you want to disable this feature (and risk of
-// corrupting the freelist,) you define the lock as ACE_Null_Mutex.
-// Usually, if you can be sure that your threads will run for an
-// extended period of time, you can safely disable the lock.
-
-#if !defined (ACE_DEFAULT_THREAD_MANAGER_LOCK)
-# define ACE_DEFAULT_THREAD_MANAGER_LOCK ACE_SYNCH_MUTEX
-#endif /* ACE_DEFAULT_THREAD_MANAGER_LOCK */
-
-// Forward declarations.
-class ACE_Task_Base;
-class ACE_Thread_Manager;
-class ACE_Thread_Descriptor;
-
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- /**
- * @class ACE_At_Thread_Exit
- *
- * @brief Contains a method to be applied when a thread is terminated.
- */
-class ACE_Export ACE_At_Thread_Exit
-{
- friend class ACE_Thread_Descriptor;
- friend class ACE_Thread_Manager;
-public:
- /// Default constructor
- ACE_At_Thread_Exit (void);
-
- /// The destructor
- virtual ~ACE_At_Thread_Exit (void);
-
- /// <At_Thread_Exit> has the ownership?
- int is_owner (void) const;
-
- /// Set the ownership of the <At_Thread_Exit>.
- int is_owner (int owner);
-
- /// This <At_Thread_Exit> was applied?
- int was_applied (void) const;
-
- /// Set applied state of <At_Thread_Exit>.
- int was_applied (int applied);
-
-protected:
- /// The next <At_Thread_Exit> hook in the list.
- ACE_At_Thread_Exit *next_;
-
- /// Do the apply if necessary
- void do_apply (void);
-
- /// The apply method.
- virtual void apply (void) = 0;
-
- /// The Thread_Descriptor where this at is registered.
- ACE_Thread_Descriptor* td_;
-
- /// The at was applied?
- int was_applied_;
-
- /// The at has the ownership of this?
- int is_owner_;
-};
-
-class ACE_Export ACE_At_Thread_Exit_Func : public ACE_At_Thread_Exit
-{
-public:
- /// Constructor
- ACE_At_Thread_Exit_Func (void *object,
- ACE_CLEANUP_FUNC func,
- void *param = 0);
-
- virtual ~ACE_At_Thread_Exit_Func (void);
-
-protected:
- /// The object to be cleanup
- void *object_;
-
- /// The cleanup func
- ACE_CLEANUP_FUNC func_;
-
- /// A param if required
- void *param_;
-
- /// The apply method
- void apply (void);
-};
-
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-
-/**
- * @class ACE_Thread_Descriptor_Base
- *
- * @brief Basic information for thread descriptors. These information
- * gets extracted out because we need it after a thread is
- * terminated.
- */
-class ACE_Export ACE_Thread_Descriptor_Base : public ACE_OS_Thread_Descriptor
-{
-
- friend class ACE_Thread_Manager;
- friend class ACE_Double_Linked_List<ACE_Thread_Descriptor_Base>;
- friend class ACE_Double_Linked_List_Iterator_Base<ACE_Thread_Descriptor_Base>;
- friend class ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor_Base>;
- friend class ACE_Double_Linked_List<ACE_Thread_Descriptor>;
- friend class ACE_Double_Linked_List_Iterator_Base<ACE_Thread_Descriptor>;
- friend class ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor>;
-public:
- ACE_Thread_Descriptor_Base (void);
- ~ACE_Thread_Descriptor_Base (void);
-
- // = We need the following operators to make Borland happy.
-
- /// Equality operator.
- int operator== (const ACE_Thread_Descriptor_Base &rhs) const;
-
- /// Inequality operator.
- int operator!= (const ACE_Thread_Descriptor_Base &rhs) const;
-
- /// Group ID.
- int grp_id (void) const;
-
- /// Current state of the thread.
- ACE_UINT32 state (void) const;
-
- /// Return the pointer to an <ACE_Task_Base> or NULL if there's no
- /// <ACE_Task_Base> associated with this thread.;
- ACE_Task_Base *task (void) const;
-
-protected:
- /// Reset this base thread descriptor.
- void reset (void);
-
- /// Unique thread ID.
- ACE_thread_t thr_id_;
-
- /// Unique handle to thread (used by Win32 and AIX).
- ACE_hthread_t thr_handle_;
-
- /// Group ID.
- int grp_id_;
-
- /// Current state of the thread.
- ACE_UINT32 thr_state_;
-
- /// Pointer to an <ACE_Task_Base> or NULL if there's no
- /// <ACE_Task_Base>.
- ACE_Task_Base *task_;
-
- /// We need these pointers to maintain the double-linked list in a
- /// thread managers.
- ACE_Thread_Descriptor_Base *next_;
- ACE_Thread_Descriptor_Base *prev_;
-};
-
-/**
- * @class ACE_Thread_Descriptor
- *
- * @brief Information for controlling threads that run under the control
- * of the <Thread_Manager>.
- */
-class ACE_Export ACE_Thread_Descriptor : public ACE_Thread_Descriptor_Base
-{
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- friend class ACE_At_Thread_Exit;
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
- friend class ACE_Thread_Manager;
- friend class ACE_Double_Linked_List<ACE_Thread_Descriptor>;
- friend class ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor>;
-public:
- // = Initialization method.
- ACE_Thread_Descriptor (void);
-
- // = Accessor methods.
- /// Unique thread id.
- ACE_thread_t self (void) const;
-
- /// Unique handle to thread (used by Win32 and AIX).
- void self (ACE_hthread_t &);
-
- /// Dump the state of an object.
- void dump (void) const;
-
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- /**
- * This cleanup function must be called only for ACE_TSS_cleanup.
- * The ACE_TSS_cleanup delegate Log_Msg instance destruction when
- * Log_Msg cleanup is called before terminate.
- */
- void log_msg_cleanup(ACE_Log_Msg* log_msg);
-
- /**
- * Register an At_Thread_Exit hook and the ownership is acquire by
- * Thread_Descriptor, this is the usual case when the AT is dynamically
- * allocated.
- */
- int at_exit (ACE_At_Thread_Exit* cleanup);
-
- /// Register an At_Thread_Exit hook and the ownership is retained for the
- /// caller. Normally used when the at_exit hook is created in stack.
- int at_exit (ACE_At_Thread_Exit& cleanup);
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-
- /**
- * Register an object (or array) for cleanup at thread termination.
- * "cleanup_hook" points to a (global, or static member) function
- * that is called for the object or array when it to be destroyed.
- * It may perform any necessary cleanup specific for that object or
- * its class. "param" is passed as the second parameter to the
- * "cleanup_hook" function; the first parameter is the object (or
- * array) to be destroyed. Returns 0 on success, non-zero on
- * failure: -1 if virtual memory is exhausted or 1 if the object (or
- * arrayt) had already been registered.
- */
- int at_exit (void *object,
- ACE_CLEANUP_FUNC cleanup_hook,
- void *param);
-
- /// Do nothing destructor to keep some compilers happy
- ~ACE_Thread_Descriptor (void);
-
- /**
- * Do nothing but to acquire the thread descriptor's lock and
- * release. This will first check if the thread is registered or
- * not. If it is already registered, there's no need to reacquire
- * the lock again. This is used mainly to get newly spawned thread
- * in synch with thread manager and prevent it from accessing its
- * thread descriptor before it gets fully built. This function is
- * only called from ACE_Log_Msg::thr_desc.
- */
- void acquire_release (void);
-
- /**
- * Set/get the <next_> pointer. These are required by the
- * ACE_Free_List. ACE_INLINE is specified here because one version
- * of g++ couldn't grok this code without it.
- */
- ACE_INLINE_FOR_GNUC void set_next (ACE_Thread_Descriptor *td);
- ACE_INLINE_FOR_GNUC ACE_Thread_Descriptor *get_next (void) const;
-
-private:
- /// Reset this thread descriptor.
- void reset (ACE_Thread_Manager *tm);
-
-#if !defined (ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- /// Pop an At_Thread_Exit from at thread termination list, apply the at
- /// if apply is true.
- void at_pop (int apply = 1);
-
- /// Push an At_Thread_Exit to at thread termination list and set the
- /// ownership of at.
- void at_push (ACE_At_Thread_Exit* cleanup,
- int is_owner = 0);
-
- /// Run the AT_Thread_Exit hooks.
- void do_at_exit (void);
-
- /// terminate realize the cleanup process to thread termination
- void terminate (void);
-
- /// Thread_Descriptor is the ownership of ACE_Log_Msg if log_msg_!=0
- /// This can occur because ACE_TSS_cleanup was executed before terminate.
- ACE_Log_Msg *log_msg_;
-
- /// The AT_Thread_Exit list
- ACE_At_Thread_Exit *at_exit_list_;
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-
- /**
- * Stores the cleanup info for a thread.
- * @@ Note, this should be generalized to be a stack of
- * <ACE_Cleanup_Info>s.
- */
- ACE_Cleanup_Info cleanup_info_;
-
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- /// Pointer to an <ACE_Thread_Manager> or NULL if there's no
- /// <ACE_Thread_Manager>.
- ACE_Thread_Manager* tm_;
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-
- /// Registration lock to prevent premature removal of thread descriptor.
- ACE_DEFAULT_THREAD_MANAGER_LOCK *sync_;
-
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- /// Keep track of termination status.
- int terminated_;
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-};
-
-// Forward declaration.
-class ACE_Thread_Control;
-
-// This typedef should be (and used to be) inside the
-// ACE_Thread_Manager declaration. But, it caused compilation
-// problems on g++/VxWorks/i960 with -g. Note that
-// ACE_Thread_Manager::THR_FUNC is only used internally in
-// ACE_Thread_Manager, so it's not useful for anyone else.
-// It also caused problems on IRIX5 with g++.
-#if defined (__GNUG__)
-typedef int (ACE_Thread_Manager::*ACE_THR_MEMBER_FUNC)(ACE_Thread_Descriptor *, int);
-#endif /* __GNUG__ */
-
-/**
- * @class ACE_Thread_Manager
- *
- * @brief Manages a pool of threads.
- *
- * This class allows operations on groups of threads atomically.
- * The default behavior of thread manager is to wait on
- * all threads under it's management when it gets destructed.
- * Therefore, remember to remove a thread from thread manager if
- * you don't want it to wait for the thread. There are also
- * function to disable this default wait-on-exit behavior.
- * However, if your program depends on turning this off to run
- * correctly, you are probably doing something wrong. Rule of
- * thumb, use ACE_Thread to manage your daemon threads.
- * Notice that if there're threads live beyond the scope of
- * <main>, you are sure to have resource leaks in your program.
- * Remember to wait on threads before exiting <main> if that
- * could happen in your programs.
- */
-class ACE_Export ACE_Thread_Manager
-{
-public:
- friend class ACE_Thread_Control;
-
- // Allow ACE_THread_Exit to register the global TSS instance object.
- friend class ACE_Thread_Exit;
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- friend class ACE_Thread_Descriptor;
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-
-#if !defined (__GNUG__)
- typedef int (ACE_Thread_Manager::*ACE_THR_MEMBER_FUNC)(ACE_Thread_Descriptor *, int);
-#endif /* !__GNUG__ */
-
- // These are the various states a thread managed by the
- // <Thread_Manager> can be in.
- enum
- {
- /// Uninitialized.
- ACE_THR_IDLE = 0x00000000,
-
- /// Created but not yet running.
- ACE_THR_SPAWNED = 0x00000001,
-
- /// Thread is active (naturally, we don't know if it's actually
- /// *running* because we aren't the scheduler...).
- ACE_THR_RUNNING = 0x00000002,
-
- /// Thread is suspended.
- ACE_THR_SUSPENDED = 0x00000004,
-
- /// Thread has been cancelled (which is an indiction that it needs to
- /// terminate...).
- ACE_THR_CANCELLED = 0x00000008,
-
- /// Thread has shutdown, but the slot in the thread manager hasn't
- /// been reclaimed yet.
- ACE_THR_TERMINATED = 0x00000010,
-
- /// Join operation has been invoked on the thread by thread manager.
- ACE_THR_JOINING = 0x10000000
- };
-
- // = Initialization and termination methods.
- /**
- * @brief Initialization and termination methods.
- *
- * Internally, ACE_Thread_Manager keeps a freelist for caching
- * resources it uses to keep track of managed threads (not the
- * threads themselves.) @a prealloc, @a lwm, @a inc, @hwm
- * determine the initial size, the low water mark, increment step,
- * and high water mark of the freelist.
- *
- * @sa ACE_Free_List
- */
- ACE_Thread_Manager (size_t preaolloc = ACE_DEFAULT_THREAD_MANAGER_PREALLOC,
- size_t lwm = ACE_DEFAULT_THREAD_MANAGER_LWM,
- size_t inc = ACE_DEFAULT_THREAD_MANAGER_INC,
- size_t hwm = ACE_DEFAULT_THREAD_MANAGER_HWM);
- virtual ~ACE_Thread_Manager (void);
-
-#if ! defined (ACE_THREAD_MANAGER_LACKS_STATICS)
- /// Get pointer to a process-wide <ACE_Thread_Manager>.
- static ACE_Thread_Manager *instance (void);
-
- /// Set pointer to a process-wide <ACE_Thread_Manager> and return
- /// existing pointer.
- static ACE_Thread_Manager *instance (ACE_Thread_Manager *);
-
- /// Delete the dynamically allocated Singleton
- static void close_singleton (void);
-#endif /* ! defined (ACE_THREAD_MANAGER_LACKS_STATICS) */
-
- /// No-op. Currently unused.
- int open (size_t size = 0);
-
- /**
- * Release all resources.
- * By default, this method will wait till all threads
- * exit. However, when called from <close_singleton>, most global resources
- * are destroyed and thus, we don't try to wait but just clean up the thread
- * descriptor list.
- */
- int close (void);
-
- // The <ACE_thread_t> * argument to each of the <spawn> family member
- // functions is interpreted and used as shown in the following
- // table. NOTE: the final option, to provide task names, is _only_
- // supported on VxWorks!
- //
- // Value of ACE_thread_t * argument Use Platforms
- // ================================ ========================== =========
- // 0 Not used. All
- // non-0 (and points to 0 char * The task name is passed All
- // on VxWorks) back in the char *.
- // non-0, points to non-0 char * The char * is used as VxWorks only
- // the task name. The
- // argument is not modified.
-
- /**
- * Create a new thread, which executes <func>.
- * Returns: on success a unique group id that can be used to control
- * other threads added to the same group. On failure, returns -1.
- */
- int spawn (ACE_THR_FUNC func,
- void *args = 0,
- long flags = THR_NEW_LWP | THR_JOINABLE,
- ACE_thread_t * = 0,
- ACE_hthread_t *t_handle = 0,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- int grp_id = -1,
- void *stack = 0,
- size_t stack_size = 0);
-
- /**
- * Spawn N new threads, which execute <func> with argument <arg>.
- * If <thread_ids> != 0 the thread_ids of successfully spawned
- * threads will be placed into the <thread_ids> buffer (which must
- * be the same size as <n>). If <stack> != 0 it is assumed to be an
- * array of <n> pointers to the base of the stacks to use for the
- * threads being spawned. If <stack_size> != 0 it is assumed to be
- * an array of <n> values indicating how big each of the
- * corresponding <stack>s are. If <thread_handles> != 0 it is
- * assumed to be an array of <n> thread_handles that will be
- * assigned the values of the thread handles being spawned.
- *
- * Threads in Thread_Manager can be manipulated in groups based on
- * <grp_id> or <task> using functions such as kill_grp() or
- * cancel_task().
- *
- * If <grp_id> is assigned, the newly spawned threads are added into
- * the group. Otherwise, the Thread_Manager assigns these <n>
- * threads with a grp_id. You should choose either assigning
- * <grp_id> everytime, or let the Thread_Manager handles it for
- * you consistently.
- *
- * The argument <task> is usually assigned by
- * <ACE_Task_Base::activate>. It associates the newly spawned
- * threads with an ACE_Task instance, which defaults to <this>.
- *
- * @retval -1 on failure (<errno> will explain...), otherwise returns the
- * group id of the threads.
- */
- int spawn_n (size_t n,
- ACE_THR_FUNC func,
- void *args = 0,
- long flags = THR_NEW_LWP | THR_JOINABLE,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- int grp_id = -1,
- ACE_Task_Base *task = 0,
- ACE_hthread_t thread_handles[] = 0,
- void *stack[] = 0,
- size_t stack_size[] = 0);
-
- /**
- * Spawn N new threads, which execute <func> with argument <arg>.
- * If <thread_ids> != 0 the thread_ids of successfully spawned
- * threads will be placed into the <thread_ids> buffer (which must
- * be the same size as <n>). If <stack> != 0 it is assumed to be an
- * array of <n> pointers to the base of the stacks to use for the
- * threads being spawned. If <stack_size> != 0 it is assumed to be
- * an array of <n> values indicating how big each of the
- * corresponding <stack>s are. If <thread_handles> != 0 it is
- * assumed to be an array of <n> thread_handles that will be
- * assigned the values of the thread handles being spawned.
- *
- * Threads in Thread_Manager can be manipulated in groups based on
- * <grp_id> or <task> using functions such as kill_grp() or
- * cancel_task().
- *
- * If <grp_id> is assigned, the newly spawned threads are added into
- * the group. Otherwise, the Thread_Manager assigns these <n>
- * threads with a grp_id. You should choose either assigning
- * <grp_id> everytime, or let the Thread_Manager handles it for
- * you consistently.
- *
- * The argument <task> is usually assigned by
- * <ACE_Task_Base::activate>. It associates the newly spawned
- * threads with an ACE_Task instance, which defaults to <this>.
- *
- * @retval -1 on failure (<errno> will explain...), otherwise returns the
- * group id of the threads.
- */
- int spawn_n (ACE_thread_t thread_ids[],
- size_t n,
- ACE_THR_FUNC func,
- void *args,
- long flags,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- int grp_id = -1,
- void *stack[] = 0,
- size_t stack_size[] = 0,
- ACE_hthread_t thread_handles[] = 0,
- ACE_Task_Base *task = 0);
-
- /**
- * Called to clean up when a thread exits.
- *
- * @param do_thread_exit If non-0 then ACE_Thread::exit is called to
- * exit the thread
- * @param status If ACE_Thread_Exit is called, this is passed as
- * the exit value of the thread.
- * Should _not_ be called by main thread.
- */
- ACE_THR_FUNC_RETURN exit (ACE_THR_FUNC_RETURN status = 0,
- int do_thread_exit = 1);
-
- /**
- * Block until there are no more threads running in the
- * <Thread_Manager> or <timeout> expires. Note that <timeout> is
- * treated as "absolute" time. Returns 0 on success and -1 on
- * failure. If <abandon_detached_threads> is set, wait will first
- * check thru its thread list for threads with THR_DETACHED or
- * THR_DAEMON flags set and remove these threads. Notice that
- * unlike other wait_* function, by default, <wait> does wait on
- * all thread spawned by this thread_manager no matter the detached
- * flags are set or not unless it is called with
- * <abandon_detached_threads> flag set.
- * NOTE that if this function is called while the ACE_Object_Manager
- * is shutting down (as a result of program rundown via ACE::fini),
- * it will not wait for any threads to complete. If you must wait for
- * threads spawned by this thread manager to complete and you are in a
- * ACE rundown situation (such as your object is being destroyed by the
- * ACE_Object_Manager) you can use wait_grp instead.
- */
- int wait (const ACE_Time_Value *timeout = 0,
- int abandon_detached_threads = 0);
-
- /// Join a thread specified by <tid>. Do not wait on a detached thread.
- int join (ACE_thread_t tid, ACE_THR_FUNC_RETURN *status = 0);
-
- /**
- * Block until there are no more threads running in a group.
- * Returns 0 on success and -1 on failure. Notice that wait_grp
- * will not wait on detached threads.
- */
- int wait_grp (int grp_id);
-
- /**
- * Return the "real" handle to the calling thread, caching it if
- * necessary in TSS to speed up subsequent lookups. This is
- * necessary since on some platforms (e.g., Win32) we can't get this
- * handle via direct method calls. Notice that you should *not*
- * close the handle passed back from this method. It is used
- * internally by Thread Manager. On the other hand, you *have to*
- * use this internal thread handle when working on Thread_Manager.
- * Return -1 if fail.
- */
- int thr_self (ACE_hthread_t &);
-
- /**
- * Return the unique ID of the thread. This is not strictly
- * necessary (because a thread can always just call
- * <ACE_Thread::self>). However, we put it here to be complete.
- */
- ACE_thread_t thr_self (void);
-
- /**
- * Returns a pointer to the current <ACE_Task_Base> we're executing
- * in if this thread is indeed running in an <ACE_Task_Base>, else
- * return 0.
- */
- ACE_Task_Base *task (void);
-
- // = Suspend methods, which isn't supported on POSIX pthreads (will not block).
- /// Suspend all threads
- int suspend_all (void);
-
- /// Suspend a single thread.
- int suspend (ACE_thread_t);
-
- /// Suspend a group of threads.
- int suspend_grp (int grp_id);
-
- /**
- * True if <t_id> is inactive (i.e., suspended), else false. Always
- * return false if <t_id> is not managed by the Thread_Manager.
- */
- int testsuspend (ACE_thread_t t_id);
-
- // = Resume methods, which isn't supported on POSIX pthreads (will not block).
- /// Resume all stopped threads
- int resume_all (void);
-
- /// Resume a single thread.
- int resume (ACE_thread_t);
-
- /// Resume a group of threads.
- int resume_grp (int grp_id);
-
- /**
- * True if <t_id> is active (i.e., resumed), else false. Always
- * return false if <t_id> is not managed by the Thread_Manager.
- */
- int testresume (ACE_thread_t t_id);
-
- // = Send signals to one or more threads without blocking.
- /**
- * Send <signum> to all stopped threads. Not supported on platforms
- * that do not have advanced signal support, such as Win32.
- * Send the <signum> to a single thread. Not supported on platforms
- * that do not have advanced signal support, such as Win32.
- * Send <signum> to a group of threads, not supported on platforms
- * that do not have advanced signal support, such as Win32.
- */
- int kill_all (int signum);
- int kill (ACE_thread_t,
- int signum);
- int kill_grp (int grp_id,
- int signum);
-
- // = Cancel methods, which provides a cooperative thread-termination mechanism (will not block).
- /**
- * Cancel's all the threads.
- */
- int cancel_all (int async_cancel = 0);
-
- /**
- * Cancel a single thread.
- */
- int cancel (ACE_thread_t, int async_cancel = 0);
-
- /**
- * Cancel a group of threads.
- */
- int cancel_grp (int grp_id, int async_cancel = 0);
-
- /**
- * True if <t_id> is cancelled, else false. Always return false if
- * <t_id> is not managed by the Thread_Manager.
- */
- int testcancel (ACE_thread_t t_id);
-
- /// Set group ids for a particular thread id.
- int set_grp (ACE_thread_t,
- int grp_id);
-
- /// Get group ids for a particular thread id.
- int get_grp (ACE_thread_t,
- int &grp_id);
-
- // = The following methods are new methods which resemble current
- // methods in <ACE_Thread Manager>. For example, the <apply_task>
- // method resembles the <apply_thr> method, and <suspend_task>
- // resembles <suspend_thr>.
-
- // = Operations on ACE_Tasks.
-
- /**
- * Block until there are no more threads running in a specified task.
- * This method will not wait for either detached or daemon threads;
- * the threads must have been spawned with the @c THR_JOINABLE flag.
- * Upon successful completion, the threads have been joined, so further
- * attempts to join with any of the waited-for threads will fail.
- *
- * @param task The ACE_Task_Base object whose threads are to waited for.
- *
- * @retval 0 Success.
- * @retval -1 Failure (consult errno for further information).
- */
- int wait_task (ACE_Task_Base *task);
-
- /**
- * Suspend all threads in an ACE_Task.
- */
- int suspend_task (ACE_Task_Base *task);
-
- /**
- * Resume all threads in an ACE_Task.
- */
- int resume_task (ACE_Task_Base *task);
-
- /**
- * Send a signal <signum> to all threads in an <ACE_Task>.
- */
- int kill_task (ACE_Task_Base *task,
- int signum);
-
- /**
- * Cancel all threads in an <ACE_Task>. If <async_cancel> is non-0,
- * then asynchronously cancel these threads if the OS platform
- * supports cancellation. Otherwise, perform a "cooperative"
- * cancellation.
- */
- int cancel_task (ACE_Task_Base *task, int async_cancel = 0);
-
- // = Collect thread handles in the thread manager. Notice that
- // the collected information is just a snapshot.
- /// Check if the thread is managed by the thread manager. Return true if
- /// the thread is found, false otherwise.
- int hthread_within (ACE_hthread_t handle);
- int thread_within (ACE_thread_t tid);
-
- /// Returns the number of <ACE_Task_Base> in a group.
- int num_tasks_in_group (int grp_id);
-
- /// Returns the number of threads in an <ACE_Task_Base>.
- int num_threads_in_task (ACE_Task_Base *task);
-
- /**
- * Returns in <task_list> a list of up to <n> <ACE_Tasks> in a
- * group. The caller must allocate the memory for <task_list>. In
- * case of an error, -1 is returned. If no requested values are
- * found, 0 is returned, otherwise correct number of retrieved
- * values are returned.
- */
- ssize_t task_list (int grp_id,
- ACE_Task_Base *task_list[],
- size_t n);
-
- /**
- * Returns in <thread_list> a list of up to <n> thread ids in an
- * <ACE_Task_Base>. The caller must allocate the memory for
- * <thread_list>. In case of an error, -1 is returned. If no
- * requested values are found, 0 is returned, otherwise correct
- * number of retrieved values are returned.
- */
- ssize_t thread_list (ACE_Task_Base *task,
- ACE_thread_t thread_list[],
- size_t n);
-
- /**
- * Returns in <hthread_list> a list of up to <n> thread handles in
- * an <ACE_Task_Base>. The caller must allocate memory for
- * <hthread_list>. In case of an error, -1 is returned. If no
- * requested values are found, 0 is returned, otherwise correct
- * number of retrieved values are returned.
- */
- ssize_t hthread_list (ACE_Task_Base *task,
- ACE_hthread_t hthread_list[],
- size_t n);
-
- /**
- * Returns in <thread_list> a list of up to <n> thread ids in a
- * group <grp_id>. The caller must allocate the memory for
- * <thread_list>. In case of an error, -1 is returned. If no
- * requested values are found, 0 is returned, otherwise correct
- * number of retrieved values are returned.
- */
- ssize_t thread_grp_list (int grp_id,
- ACE_thread_t thread_list[],
- size_t n);
-
- /**
- * Returns in <hthread_list> a list of up to <n> thread handles in
- * a group <grp_id>. The caller must allocate memory for
- * <hthread_list>.
- */
- ssize_t hthread_grp_list (int grp_id,
- ACE_hthread_t hthread_list[],
- size_t n);
-
- /**
- * Returns in <task_list> a list of up to <n> <ACE_Tasks>. The
- * caller must allocate the memory for <task_list>. In case of an
- * error, -1 is returned. If no requested values are found, 0 is
- * returned, otherwise correct number of retrieved values are
- * returned.
- */
- ssize_t task_all_list (ACE_Task_Base *task_list[],
- size_t n);
-
- /**
- * Returns in <thread_list> a list of up to <n> thread ids. The
- * caller must allocate the memory for <thread_list>. In case of an
- * error, -1 is returned. If no requested values are found, 0 is
- * returned, otherwise correct number of retrieved values are
- * returned.
- */
- ssize_t thread_all_list (ACE_thread_t thread_list[],
- size_t n);
-
- /// Set group ids for a particular task.
- int set_grp (ACE_Task_Base *task, int grp_id);
-
- /// Get group ids for a particular task.
- int get_grp (ACE_Task_Base *task, int &grp_id);
-
- /// Return a count of the current number of threads active in the
- /// <Thread_Manager>.
- size_t count_threads (void) const;
-
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- /**
- * Register an At_Thread_Exit hook and the ownership is acquire by
- * Thread_Descriptor, this is the usual case when the AT is dynamically
- * allocated.
- */
- int at_exit (ACE_At_Thread_Exit* cleanup);
-
- /// Register an At_Thread_Exit hook and the ownership is retained for the
- /// caller. Normally used when the at_exit hook is created in stack.
- int at_exit (ACE_At_Thread_Exit& cleanup);
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-
- /**
- *
- *****
- * @deprecated This function is deprecated. Please use the previous two
- * at_exit method. Notice that you should avoid mixing this method
- * with the previous two at_exit methods.
- *****
- *
- * Register an object (or array) for cleanup at
- * thread termination. "cleanup_hook" points to a (global, or
- * static member) function that is called for the object or array
- * when it to be destroyed. It may perform any necessary cleanup
- * specific for that object or its class. "param" is passed as the
- * second parameter to the "cleanup_hook" function; the first
- * parameter is the object (or array) to be destroyed.
- * "cleanup_hook", for example, may delete the object (or array).
- * If <cleanup_hook> == 0, the <object> will _NOT_ get cleanup at
- * thread exit. You can use this to cancel the previously added
- * at_exit.
- */
- int at_exit (void *object,
- ACE_CLEANUP_FUNC cleanup_hook,
- void *param);
-
- /// Access function to determine whether the Thread_Manager will
- /// wait for its thread to exit or not when being closing down.
- void wait_on_exit (int dowait);
- int wait_on_exit (void);
-
- /// Dump the state of an object.
- void dump (void);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- // = Accessors for ACE_Thread_Descriptors.
- /**
- * Get a pointer to the calling thread's own thread_descriptor.
- * This must be called from a spawn thread. This function will
- * fetch the info from TSS.
- */
- ACE_Thread_Descriptor *thread_desc_self (void);
-
- /// Return a pointer to the thread's Thread_Descriptor,
- /// 0 if fail.
- ACE_Thread_Descriptor *thread_descriptor (ACE_thread_t);
-
- /// Return a pointer to the thread's Thread_Descriptor,
- /// 0 if fail.
- ACE_Thread_Descriptor *hthread_descriptor (ACE_hthread_t);
-
- /// Create a new thread (must be called with locks held).
- virtual int spawn_i (ACE_THR_FUNC func,
- void *args,
- long flags,
- ACE_thread_t * = 0,
- ACE_hthread_t *t_handle = 0,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- int grp_id = -1,
- void *stack = 0,
- size_t stack_size = 0,
- ACE_Task_Base *task = 0);
-
- /// Run the registered hooks when the thread exits.
- void run_thread_exit_hooks (int i);
-
- /// Locate the index of the table slot occupied by <t_id>. Returns
- /// -1 if <t_id> is not in the table doesn't contain <t_id>.
- ACE_Thread_Descriptor *find_thread (ACE_thread_t t_id);
-
- /// Locate the index of the table slot occupied by <h_id>. Returns
- /// -1 if <h_id> is not in the table doesn't contain <h_id>.
- ACE_Thread_Descriptor *find_hthread (ACE_hthread_t h_id);
-
- /**
- * Locate the thread descriptor address of the list occupied by
- * <task>. Returns 0 if <task> is not in the table doesn't contain
- * <task>.
- */
- ACE_Thread_Descriptor *find_task (ACE_Task_Base *task,
- size_t slot = 0);
-
- /// Insert a thread in the table (checks for duplicates).
- int insert_thr (ACE_thread_t t_id,
- ACE_hthread_t,
- int grp_id = -1,
- long flags = 0);
-
- /// Append a thread in the table (adds at the end, growing the table
- /// if necessary).
- int append_thr (ACE_thread_t t_id, ACE_hthread_t,
- ACE_UINT32,
- int grp_id,
- ACE_Task_Base *task = 0,
- long flags = 0,
- ACE_Thread_Descriptor *td = 0);
-
- /// Remove thread from the table.
- void remove_thr (ACE_Thread_Descriptor *td,
- int close_handler);
-
- /// Remove all threads from the table.
- void remove_thr_all (void);
-
- // = The following four methods implement a simple scheme for
- // operating on a collection of threads atomically.
-
- /**
- * Efficiently check whether <thread> is in a particular <state>.
- * This call updates the TSS cache if possible to speed up
- * subsequent searches.
- */
- int check_state (ACE_UINT32 state,
- ACE_thread_t thread,
- int enable = 1);
-
- /// Apply <func> to all members of the table that match the <task>
- int apply_task (ACE_Task_Base *task,
- ACE_THR_MEMBER_FUNC,
- int = 0);
-
- /// Apply <func> to all members of the table that match the <grp_id>.
- int apply_grp (int grp_id,
- ACE_THR_MEMBER_FUNC func,
- int arg = 0);
-
- /// Apply <func> to all members of the table.
- int apply_all (ACE_THR_MEMBER_FUNC,
- int = 0);
-
- /// Join the thread described in <tda>.
- int join_thr (ACE_Thread_Descriptor *td,
- int = 0);
-
- /// Resume the thread described in <tda>.
- int resume_thr (ACE_Thread_Descriptor *td,
- int = 0);
-
- /// Suspend the thread described in <tda>.
- int suspend_thr (ACE_Thread_Descriptor *td,
- int = 0);
-
- /// Send signal <signum> to the thread described in <tda>.
- int kill_thr (ACE_Thread_Descriptor *td,
- int signum);
-
- /// Set the cancellation flag for the thread described in <tda>.
- int cancel_thr (ACE_Thread_Descriptor *td,
- int async_cancel = 0);
-
- /// Register a thread as terminated and put it into the <terminated_thr_list_>.
- int register_as_terminated (ACE_Thread_Descriptor *td);
-
- /// Setting the static ACE_TSS_TYPE (ACE_Thread_Exit) *thr_exit_ pointer.
- static int set_thr_exit (ACE_TSS_TYPE (ACE_Thread_Exit) *ptr);
-
- /**
- * Keeping a list of thread descriptors within the thread manager.
- * Double-linked list enables us to cache the entries in TSS
- * and adding/removing thread descriptor entries without
- * affecting other thread's descriptor entries.
- */
- ACE_Double_Linked_List<ACE_Thread_Descriptor> thr_list_;
-
-#if !defined (VXWORKS)
- /// Collect terminated but not yet joined thread entries.
- ACE_Double_Linked_List<ACE_Thread_Descriptor_Base> terminated_thr_list_;
-#endif /* VXWORKS */
-
- /// Collect pointers to thread descriptors of threads to be removed later.
- ACE_Unbounded_Queue<ACE_Thread_Descriptor*> thr_to_be_removed_;
-
- /// Keeps track of the next group id to assign.
- int grp_id_;
-
- /// Set if we want the Thread_Manager to wait on all threads before
- /// being closed, reset otherwise.
- int automatic_wait_;
-
- // = ACE_Thread_Mutex and condition variable for synchronizing termination.
-#if defined (ACE_HAS_THREADS)
- /// Serialize access to the <zero_cond_>.
- ACE_Thread_Mutex lock_;
-
- /// Keep track of when there are no more threads.
- ACE_Condition_Thread_Mutex zero_cond_;
-#endif /* ACE_HAS_THREADS */
-
-private:
- ACE_Locked_Free_List<ACE_Thread_Descriptor, ACE_SYNCH_MUTEX> thread_desc_freelist_;
-
-#if ! defined (ACE_THREAD_MANAGER_LACKS_STATICS)
- /// Pointer to a process-wide <ACE_Thread_Manager>.
- static ACE_Thread_Manager *thr_mgr_;
-
- /// Must delete the <thr_mgr_> if non-0.
- static int delete_thr_mgr_;
-
- /// Global ACE_TSS (ACE_Thread_Exit) object ptr.
- static ACE_TSS_TYPE (ACE_Thread_Exit) *thr_exit_;
-#endif /* ! defined (ACE_THREAD_MANAGER_LACKS_STATICS) */
-};
-
-#if defined (ACE_THREAD_MANAGER_LACKS_STATICS)
-#define ACE_THREAD_MANAGER_SINGLETON_DEFINE \
- ACE_Singleton<ACE_Thread_Manager, ACE_SYNCH_MUTEX>;
-typedef ACE_Singleton<ACE_Thread_Manager, ACE_SYNCH_MUTEX> ACE_THREAD_MANAGER_SINGLETON;
-#endif /* defined (ACE_THREAD_MANAGER_LACKS_STATICS) */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Thread_Manager.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_THREAD_MANAGER_H */
diff --git a/ace/Thread_Manager.i b/ace/Thread_Manager.i
deleted file mode 100644
index 4a49398eaab..00000000000
--- a/ace/Thread_Manager.i
+++ /dev/null
@@ -1,334 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Thread_Manager.i
-
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
-ACE_INLINE
-ACE_At_Thread_Exit::ACE_At_Thread_Exit (void)
- : next_ (0),
- td_ (0),
- was_applied_ (0),
- is_owner_ (1)
-{
-}
-
-ACE_INLINE int
-ACE_At_Thread_Exit::was_applied() const
-
-{
- return was_applied_;
-}
-
-ACE_INLINE int
-ACE_At_Thread_Exit::was_applied (int applied)
-{
- was_applied_ = applied;
- if (was_applied_)
- td_ = 0;
- return was_applied_;
-}
-
-ACE_INLINE int
-ACE_At_Thread_Exit::is_owner() const
-{
- return is_owner_;
-}
-
-ACE_INLINE int
-ACE_At_Thread_Exit::is_owner (int owner)
-{
- is_owner_ = owner;
- return is_owner_;
-}
-
-ACE_INLINE void
-ACE_At_Thread_Exit::do_apply (void)
-{
- if (!this->was_applied_ && this->is_owner_)
- td_->at_pop();
-}
-
-ACE_INLINE
-ACE_At_Thread_Exit::~ACE_At_Thread_Exit (void)
-{
- this->do_apply ();
-}
-
-ACE_INLINE
-ACE_At_Thread_Exit_Func::ACE_At_Thread_Exit_Func (void *object,
- ACE_CLEANUP_FUNC func,
- void *param)
- : object_(object),
- func_(func),
- param_(param)
-{
-}
-
-ACE_INLINE
-ACE_At_Thread_Exit_Func::~ACE_At_Thread_Exit_Func (void)
-{
- this->do_apply ();
-}
-
-ACE_INLINE void
-ACE_At_Thread_Exit_Func::apply ()
-{
- func_ (object_, param_);
-}
-#endif /* ! ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-
-ACE_INLINE
-ACE_Thread_Descriptor_Base::ACE_Thread_Descriptor_Base (void)
- : ACE_OS_Thread_Descriptor (),
- thr_id_ (ACE_OS::NULL_thread),
- thr_handle_ (ACE_OS::NULL_hthread),
- grp_id_ (0),
- thr_state_ (ACE_Thread_Manager::ACE_THR_IDLE),
- task_ (0),
- next_ (0),
- prev_ (0)
-{
-}
-
-ACE_INLINE
-ACE_Thread_Descriptor_Base::~ACE_Thread_Descriptor_Base (void)
-{
-}
-
-ACE_INLINE int
-ACE_Thread_Descriptor_Base::operator==(const ACE_Thread_Descriptor_Base &rhs) const
-{
- return ACE_OS::thr_cmp (this->thr_handle_, rhs.thr_handle_) == 0
- && ACE_OS::thr_equal (this->thr_id_, rhs.thr_id_) == 0;
-}
-
-ACE_INLINE int
-ACE_Thread_Descriptor_Base::operator!=(const ACE_Thread_Descriptor_Base &rhs) const
-{
- return !(*this == rhs);
-}
-
-ACE_INLINE ACE_Task_Base *
-ACE_Thread_Descriptor_Base::task (void) const
-{
- ACE_TRACE ("ACE_Thread_Descriptor_Base::task");
- return this->task_;
-}
-
-// Group ID.
-
-ACE_INLINE int
-ACE_Thread_Descriptor_Base::grp_id (void) const
-{
- ACE_TRACE ("ACE_Thread_Descriptor_Base::grp_id");
- return grp_id_;
-}
-
-// Current state of the thread.
-ACE_INLINE ACE_UINT32
-ACE_Thread_Descriptor_Base::state (void) const
-{
- ACE_TRACE ("ACE_Thread_Descriptor_Base::state");
- return thr_state_;
-}
-
-// Reset this base descriptor.
-ACE_INLINE void
-ACE_Thread_Descriptor_Base::reset (void)
-{
- ACE_TRACE ("ACE_Thread_Descriptor_Base::reset");
- this->thr_id_ = ACE_OS::NULL_thread;
- this->thr_handle_ = ACE_OS::NULL_hthread;
- this->grp_id_ = 0;
- this->thr_state_ = ACE_Thread_Manager::ACE_THR_IDLE;
- this->task_ = 0;
- this->flags_ = 0;
-}
-
-// Unique thread id.
-ACE_INLINE ACE_thread_t
-ACE_Thread_Descriptor::self (void) const
-{
- ACE_TRACE ("ACE_Thread_Descriptor::self");
- return this->thr_id_;
-}
-
-// Unique kernel-level thread handle.
-
-ACE_INLINE void
-ACE_Thread_Descriptor::self (ACE_hthread_t &handle)
-{
- ACE_TRACE ("ACE_Thread_Descriptor::self");
- handle = this->thr_handle_;
-}
-
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
-ACE_INLINE void
-ACE_Thread_Descriptor::log_msg_cleanup (ACE_Log_Msg* log_msg)
-
-{
- log_msg_ = log_msg;
-}
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-
-// Set the <next_> pointer
-ACE_INLINE void
-ACE_Thread_Descriptor::set_next (ACE_Thread_Descriptor *td)
-{
- ACE_TRACE ("ACE_Thread_Descriptor::set_next");
- this->next_ = td;
-}
-
-// Get the <next_> pointer
-ACE_INLINE ACE_Thread_Descriptor *
-ACE_Thread_Descriptor::get_next (void) const
-{
- ACE_TRACE ("ACE_Thread_Descriptor::get_next");
- return ACE_static_cast (ACE_Thread_Descriptor * ACE_CAST_CONST,
- this->next_);
-}
-
-// Reset this thread descriptor
-ACE_INLINE void
-ACE_Thread_Descriptor::reset (ACE_Thread_Manager *tm)
-{
- ACE_TRACE ("ACE_Thread_Descriptor::reset");
- this->ACE_Thread_Descriptor_Base::reset ();
-#if defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
- this->cleanup_info_.cleanup_hook_ = 0;
- this->cleanup_info_.object_ = 0;
- this->cleanup_info_.param_ = 0;
-#else /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
- this->at_exit_list_ = 0;
- // Start the at_exit hook list.
- this->tm_ = tm;
- // Setup the Thread_Manager.
- this->log_msg_ = 0;
- this->terminated_ = 0;
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-}
-
-ACE_INLINE ACE_Thread_Descriptor *
-ACE_Thread_Manager::thread_desc_self (void)
-{
- // This method must be called with lock held.
-
- // Try to get it from cache.
- ACE_Thread_Descriptor *desc = ACE_LOG_MSG->thr_desc ();
-
-#if 1
- // ACE_ASSERT (desc != 0);
- // Thread descriptor should always get cached.
-#else
- if (desc == 0)
- {
- ACE_thread_t id = ACE_OS::thr_self ();
-
- desc = this->find_thread (id);
-
- // Thread descriptor adapter might not have been put into the
- // list yet.
- if (desc != 0)
- // Update the TSS cache.
- ACE_LOG_MSG->thr_desc (desc);
- }
-#endif
- return desc;
-}
-
-// Return the unique ID of the thread.
-
-ACE_INLINE ACE_thread_t
-ACE_Thread_Manager::thr_self (void)
-{
- ACE_TRACE ("ACE_Thread_Manager::thr_self");
- return ACE_Thread::self ();
-}
-
-ACE_INLINE ACE_Task_Base *
-ACE_Thread_Manager::task (void)
-{
- ACE_TRACE ("ACE_Thread_Manager::task");
-
- ACE_Thread_Descriptor *td = this->thread_desc_self () ;
-
- if (td == 0)
- return 0;
- else
- return td->task ();
-}
-
-ACE_INLINE int
-ACE_Thread_Manager::open (size_t)
-{
- // Currently no-op.
- return 0;
-}
-
-#if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT)
-ACE_INLINE int
-ACE_Thread_Manager::at_exit (ACE_At_Thread_Exit* at)
-{
- ACE_Thread_Descriptor *td = this->thread_desc_self ();
- if (td == 0)
- return -1;
- else
- return td->at_exit (at);
-}
-
-ACE_INLINE int
-ACE_Thread_Manager::at_exit (ACE_At_Thread_Exit& at)
-{
- ACE_Thread_Descriptor *td = this->thread_desc_self ();
- if (td == 0)
- return -1;
- else
- return td->at_exit (at);
-}
-#endif /* !ACE_USE_ONE_SHOT_AT_THREAD_EXIT */
-
-ACE_INLINE int
-ACE_Thread_Manager::at_exit (void *object,
- ACE_CLEANUP_FUNC cleanup_hook,
- void *param)
-{
- ACE_Thread_Descriptor *td = this->thread_desc_self ();
- if (td == 0)
- return -1;
- else
- return td->at_exit (object,
- cleanup_hook,
- param);
-}
-
-ACE_INLINE void
-ACE_Thread_Manager::wait_on_exit (int do_wait)
-{
- this->automatic_wait_ = do_wait;
-}
-
-ACE_INLINE int
-ACE_Thread_Manager::wait_on_exit (void)
-{
- return this->automatic_wait_;
-}
-
-ACE_INLINE int
-ACE_Thread_Manager::register_as_terminated (ACE_Thread_Descriptor *td)
-{
-#if defined (VXWORKS)
- ACE_UNUSED_ARG (td);
-#else /* ! VXWORKS */
- ACE_Thread_Descriptor_Base *tdb;
- ACE_NEW_RETURN (tdb, ACE_Thread_Descriptor_Base (*td), -1);
- this->terminated_thr_list_.insert_tail (tdb);
-#endif /* ! VXWORKS */
- return 0;
-}
-
-ACE_INLINE size_t
-ACE_Thread_Manager::count_threads (void) const
-{
- return this->thr_list_.size ();
-}
diff --git a/ace/Time_Request_Reply.cpp b/ace/Time_Request_Reply.cpp
deleted file mode 100644
index 689099f92dc..00000000000
--- a/ace/Time_Request_Reply.cpp
+++ /dev/null
@@ -1,188 +0,0 @@
-// $Id$
-
-#include "ace/Time_Request_Reply.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, Time_Request_Reply, "$Id$")
-
-// Default "do nothing" constructor.
-
-ACE_Time_Request::ACE_Time_Request (void)
-{
- ACE_TRACE ("ACE_Time_Request::ACE_Time_Request");
-}
-
-// Create a ACE_Time_Request message.
-
-ACE_Time_Request::ACE_Time_Request (ACE_INT32 t, // Type of request.
- const ACE_UINT32 time,
- ACE_Time_Value *timeout) // Max time waiting for request.
-{
- ACE_TRACE ("ACE_Time_Request::ACE_Time_Request");
- this->msg_type (t);
-
- // If timeout is a NULL pointer, then block forever...
- if (timeout == 0)
- {
- this->transfer_.block_forever_ = 1;
- this->transfer_.sec_timeout_ = 0;
- this->transfer_.usec_timeout_ = 0;
- }
- else // Do a "timed wait."
- {
- this->block_forever (0);
- // Keep track of how long client is willing to wait.
- this->transfer_.sec_timeout_ = timeout->sec ();
- this->transfer_.usec_timeout_ = timeout->usec ();
- }
-
- // Copy time into request
- this->time_ = this->transfer_.time_ = time;
-}
-
-// Initialize length_ in order to avoid problems with byte-ordering
-void
-ACE_Time_Request::init (void)
-{
- ACE_TRACE ("ACE_Time_Request::init");
-// this->length (sizeof this->transfer_);
-}
-
-// Get the fixed size of message
-ssize_t
-ACE_Time_Request::size (void) const
-{
- ACE_TRACE ("ACE_Time_Request::size");
- return sizeof (this->transfer_);
-}
-
-// = Set/get the type of the message.
-ACE_INT32
-ACE_Time_Request::msg_type (void) const
-{
- ACE_TRACE ("ACE_Time_Request::msg_type");
- return this->transfer_.msg_type_;
-}
-
-void
-ACE_Time_Request::msg_type (ACE_INT32 t)
-{
- ACE_TRACE ("ACE_Time_Request::msg_type");
- this->transfer_.msg_type_ = t;
-}
-
-// = Set/get the blocking semantics.
-ACE_UINT32
-ACE_Time_Request::block_forever (void) const
-{
- ACE_TRACE ("ACE_Time_Request::block_forever");
- return this->transfer_.block_forever_;
-}
-
-void
-ACE_Time_Request::block_forever (ACE_UINT32 bs)
-{
- ACE_TRACE ("ACE_Time_Request::block_forever");
- this->transfer_.block_forever_ = bs;
-}
-
-// = Set/get the timeout.
-ACE_Time_Value
-ACE_Time_Request::timeout (void) const
-{
- ACE_TRACE ("ACE_Time_Request::timeout");
- return ACE_Time_Value (this->transfer_.sec_timeout_, this->transfer_.usec_timeout_);
-}
-
-void
-ACE_Time_Request::timeout (const ACE_Time_Value& timeout)
-{
- ACE_TRACE ("ACE_Time_Request::timeout");
- this->transfer_.sec_timeout_ = timeout.sec ();
- this->transfer_.usec_timeout_ = timeout.usec ();
-}
-
-// = Set/get the time
-ACE_UINT32
-ACE_Time_Request::time (void) const
-{
- ACE_TRACE ("ACE_Time_Request::time");
- return this->time_;
-}
-
-void
-ACE_Time_Request::time (ACE_UINT32 t)
-{
- ACE_TRACE ("ACE_Time_Request::time");
- this->time_ = t;
-}
-
-// Encode the transfer buffer into network byte order
-// so that it can be sent to the server.
-int
-ACE_Time_Request::encode (void *&buf)
-{
- ACE_TRACE ("ACE_Time_Request::encode");
- // Compute the length *before* doing the marshaling.
-
- buf = (void *) &this->transfer_;
- this->transfer_.block_forever_ = htonl (this->transfer_.block_forever_);
- this->transfer_.usec_timeout_ = htonl (this->transfer_.usec_timeout_);
- this->transfer_.sec_timeout_ = htonl (this->transfer_.sec_timeout_);
- this->transfer_.msg_type_ = htonl (this->transfer_.msg_type_);
- this->transfer_.time_ = htonl (this->transfer_.time_);
-
- return this->size (); // Always fixed
-}
-
-// Decode the transfer buffer into host byte byte order
-// so that it can be used by the server.
-int
-ACE_Time_Request::decode (void)
-{
- ACE_TRACE ("ACE_Time_Request::decode");
- // Decode
- this->transfer_.block_forever_ = ntohl (this->transfer_.block_forever_);
- this->transfer_.usec_timeout_ = ntohl (this->transfer_.usec_timeout_);
- this->transfer_.sec_timeout_ = ntohl (this->transfer_.sec_timeout_);
- this->transfer_.msg_type_ = ntohl (this->transfer_.msg_type_);
- this->transfer_.time_ = ntohl (this->transfer_.time_);
-
- this->time_ = this->transfer_.time_;
- return 0;
-}
-
-// Print out the current values of the ACE_Time_Request.
-
-void
-ACE_Time_Request::dump (void) const
-{
- ACE_TRACE ("ACE_Time_Request::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("*******\nlength = %d\n"),
- this->size ()));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("message-type = ")));
-
- switch (this->msg_type ())
- {
- case ACE_Time_Request::TIME_UPDATE:
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("TIME_UPDATE\n")));
- break;
- default:
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("<unknown type> = %d\n"), this->msg_type ()));
- break;
- }
-
- if (this->block_forever ())
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("blocking forever\n")));
- else
- {
-#if !defined (ACE_NLOGGING)
- ACE_Time_Value tv = this->timeout ();
-#endif /* ! ACE_NLOGGING */
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("waiting for %d secs and %d usecs\n"),
- tv.sec (), tv.usec ()));
- }
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("*******\ntime = %d\n"),
- this->time ()));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("+++++++\n")));
-}
diff --git a/ace/Time_Request_Reply.h b/ace/Time_Request_Reply.h
deleted file mode 100644
index 0314f43bb00..00000000000
--- a/ace/Time_Request_Reply.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/* -*- C++ -*- */
-//=============================================================================
-/**
- * @file Time_Request_Reply.h
- *
- * $Id$
- *
- * Define the format used to exchange messages between the
- * ACE_Time_Server and clerks.
- *
- * @author Prashant Jain
- */
-//=============================================================================
-
-
-#ifndef ACE_TIME_REQUEST_REPLY_H
-#define ACE_TIME_REQUEST_REPLY_H
-#include "ace/pre.h"
-
-#include "ace/Time_Value.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SString.h"
-
-/**
- * @class ACE_Time_Request
- *
- * @brief Message format for delivering requests to the ACE_Time Server.
- *
- * This class is implemented to minimize data copying.
- * In particular, all marshaling is done in situ...
- */
-class ACE_Export ACE_Time_Request
-{
-public:
- enum Constants
- {
- /// Request message types.
- TIME_UPDATE = 01,
-
- /// Class-specific constant values.
- MAX_TIME_LEN = MAXPATHLEN + 1
- };
-
- /// Default constructor.
- ACE_Time_Request (void);
-
- /**
- * Create a ACE_Time_Request message.
- * @param msg_type Type of request.
- * @param time Time.
- * @param timeout Max time waiting for request.
- */
- ACE_Time_Request (ACE_INT32 msg_type,
- const ACE_UINT32 time,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Initialize length_ in order to ensure correct byte ordering before a
- * request is sent.
- * @deprecated This method is a no-op.
- */
- void init (void);
-
- // Get the fixed size of message
- ssize_t size (void) const;
-
- /// Get the type of the message.
- ACE_INT32 msg_type (void) const;
-
- /// Set the type of the message.
- void msg_type (ACE_INT32);
-
- /// Get the time
- ACE_UINT32 time (void) const;
-
- // Set the time
- void time (ACE_UINT32 t);
-
- /// Get the blocking semantics.
- ACE_UINT32 block_forever (void) const;
-
- /// Set the blocking semantics.
- void block_forever (ACE_UINT32);
-
- /// Get the timeout.
- ACE_Time_Value timeout (void) const;
-
- /// Set the timeout.
- void timeout (const ACE_Time_Value& timeout);
-
- /// Encode the message before transmission.
- int encode (void *&);
-
- /// Decode message after reception.
- int decode (void);
-
- /// Print out the values of the message for debugging purposes.
- void dump (void) const;
-
-private:
- // = The 5 fields in the <Transfer> struct are transmitted to the server.
- // The remaining 2 fields are not tranferred -- they are used only on
- // the server-side to simplify lookups.
-
- struct Transfer
- {
- /// Type of the request (i.e., <TIME_UPDATE>)
- ACE_INT32 msg_type_;
-
- /// Indicates if we should block forever. If 0, then sec_timeout_
- /// and usec_timeout_ indicates how long we should wait.
- ACE_UINT32 block_forever_;
-
- /// Max seconds willing to wait for name if not blocking forever.
- ACE_UINT32 sec_timeout_;
-
- /// Max micro seconds to wait for name if not blocking forever.
- ACE_UINT32 usec_timeout_;
-
- /// The data portion contains <time_>
- ACE_UINT32 time_;
- };
-
- /// Transfer buffer.
- Transfer transfer_;
-
- /// Time
- ACE_UINT32 time_;
-};
-
-
-#include "ace/post.h"
-#endif /* ACE_TIME_REQUEST_REPLY_H */
diff --git a/ace/Time_Value.cpp b/ace/Time_Value.cpp
deleted file mode 100644
index f783c135acc..00000000000
--- a/ace/Time_Value.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-#include "ace/Time_Value.h"
-#include "ace/Basic_Types.h"
-
-
-ACE_RCSID (ace,
- Time_Value,
- "$Id$")
-
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Time_Value.inl"
-#endif /* __ACE_INLINE__ */
-
-
-// Static constant representing `zero-time'.
-// Note: this object requires static construction.
-const ACE_Time_Value ACE_Time_Value::zero;
-
-// Constant for maximum time representable. Note that this time
-// is not intended for use with select () or other calls that may
-// have *their own* implementation-specific maximum time representations.
-// Its primary use is in time computations such as those used by the
-// dynamic subpriority strategies in the ACE_Dynamic_Message_Queue class.
-// Note: this object requires static construction.
-const ACE_Time_Value ACE_Time_Value::max_time (LONG_MAX,
- ACE_ONE_SECOND_IN_USECS - 1);
-
-ACE_ALLOC_HOOK_DEFINE (ACE_Time_Value)
-
-// Increment microseconds (the only reason this is here is to allow
-// the use of ACE_Atomic_Op with ACE_Time_Value).
-
-ACE_Time_Value
-ACE_Time_Value::operator ++ (int)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::operator ++ (int)");
- ACE_Time_Value tv (*this);
- ++*this;
- return tv;
-}
-
-ACE_Time_Value &
-ACE_Time_Value::operator ++ (void)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::operator ++ (void)");
- this->usec (this->usec () + 1);
- this->normalize ();
- return *this;
-}
-
-// Decrement microseconds (the only reason this is here is / to allow
-// the use of ACE_Atomic_Op with ACE_Time_Value).
-
-ACE_Time_Value
-ACE_Time_Value::operator -- (int)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::operator -- (int)");
- ACE_Time_Value tv (*this);
- --*this;
- return tv;
-}
-
-ACE_Time_Value &
-ACE_Time_Value::operator -- (void)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::operator -- (void)");
- this->usec (this->usec () - 1);
- this->normalize ();
- return *this;
-}
-
-#if defined (ACE_WIN32)
-// Static constant to remove time skew between FILETIME and POSIX
-// time. POSIX and Win32 use different epochs (Jan. 1, 1970 v.s.
-// Jan. 1, 1601). The following constant defines the difference
-// in 100ns ticks.
-//
-// In the beginning (Jan. 1, 1601), there was no time and no computer.
-// And Bill said: "Let there be time," and there was time....
-# if defined (ACE_LACKS_LONGLONG_T)
-const ACE_U_LongLong ACE_Time_Value::FILETIME_to_timval_skew =
-ACE_U_LongLong (0xd53e8000, 0x19db1de);
-# else
-const DWORDLONG ACE_Time_Value::FILETIME_to_timval_skew =
-ACE_INT64_LITERAL (0x19db1ded53e8000);
-# endif
-
-// Initializes the ACE_Time_Value object from a Win32 FILETIME
-
-ACE_Time_Value::ACE_Time_Value (const FILETIME &file_time)
-{
- // // ACE_OS_TRACE ("ACE_Time_Value::ACE_Time_Value");
- this->set (file_time);
-}
-
-void ACE_Time_Value::set (const FILETIME &file_time)
-{
- // Initializes the ACE_Time_Value object from a Win32 FILETIME
-#if defined (ACE_LACKS_LONGLONG_T)
- ACE_U_LongLong LL_100ns(file_time.dwLowDateTime, file_time.dwHighDateTime);
- LL_100ns -= ACE_Time_Value::FILETIME_to_timval_skew;
- // Convert 100ns units to seconds;
- this->tv_.tv_sec = (long) (LL_100ns / ((double) (10000 * 1000)));
- // Convert remainder to microseconds;
- this->tv_.tv_usec = (long)((LL_100ns % ((ACE_UINT32)(10000 * 1000))) / 10);
-#else
- // Don't use a struct initializer, gcc don't like it.
- ULARGE_INTEGER _100ns;
- _100ns.LowPart = file_time.dwLowDateTime;
- _100ns.HighPart = file_time.dwHighDateTime;
-
- _100ns.QuadPart -= ACE_Time_Value::FILETIME_to_timval_skew;
-
- // Convert 100ns units to seconds;
- this->tv_.tv_sec = (long) (_100ns.QuadPart / (10000 * 1000));
- // Convert remainder to microseconds;
- this->tv_.tv_usec = (long) ((_100ns.QuadPart % (10000 * 1000)) / 10);
-#endif // ACE_LACKS_LONGLONG_T
- this->normalize ();
-}
-
-// Returns the value of the object as a Win32 FILETIME.
-
-ACE_Time_Value::operator FILETIME () const
-{
- FILETIME file_time;
- // ACE_OS_TRACE ("ACE_Time_Value::operator FILETIME");
-
-#if defined (ACE_LACKS_LONGLONG_T)
- ACE_U_LongLong LL_sec(this->tv_.tv_sec);
- ACE_U_LongLong LL_usec(this->tv_.tv_usec);
- ACE_U_LongLong LL_100ns = LL_sec * (ACE_UINT32)(10000 * 1000) +
- LL_usec * (ACE_UINT32)10 +
- ACE_Time_Value::FILETIME_to_timval_skew;
- file_time.dwLowDateTime = LL_100ns.lo();
- file_time.dwHighDateTime = LL_100ns.hi();
-#else
- ULARGE_INTEGER _100ns;
- _100ns.QuadPart = (((DWORDLONG) this->tv_.tv_sec * (10000 * 1000) +
- this->tv_.tv_usec * 10) +
- ACE_Time_Value::FILETIME_to_timval_skew);
-
- file_time.dwLowDateTime = _100ns.LowPart;
- file_time.dwHighDateTime = _100ns.HighPart;
-#endif //ACE_LACKS_LONGLONG_T
-
- return file_time;
-}
-
-#endif /* ACE_WIN32 */
-
-void
-ACE_Time_Value::dump (void) const
-{
- // ACE_OS_TRACE ("ACE_Time_Value::dump");
-#if 0
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ntv_sec_ = %d"), this->tv_.tv_sec));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ntv_usec_ = %d\n"), this->tv_.tv_usec));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-#endif /* 0 */
-}
-
-void
-ACE_Time_Value::normalize (void)
-{
- // // ACE_OS_TRACE ("ACE_Time_Value::normalize");
- // From Hans Rohnert...
-
- if (this->tv_.tv_usec >= ACE_ONE_SECOND_IN_USECS)
- {
- do
- {
- this->tv_.tv_sec++;
- this->tv_.tv_usec -= ACE_ONE_SECOND_IN_USECS;
- }
- while (this->tv_.tv_usec >= ACE_ONE_SECOND_IN_USECS);
- }
- else if (this->tv_.tv_usec <= -ACE_ONE_SECOND_IN_USECS)
- {
- do
- {
- this->tv_.tv_sec--;
- this->tv_.tv_usec += ACE_ONE_SECOND_IN_USECS;
- }
- while (this->tv_.tv_usec <= -ACE_ONE_SECOND_IN_USECS);
- }
-
- if (this->tv_.tv_sec >= 1 && this->tv_.tv_usec < 0)
- {
- this->tv_.tv_sec--;
- this->tv_.tv_usec += ACE_ONE_SECOND_IN_USECS;
- }
- else if (this->tv_.tv_sec < 0 && this->tv_.tv_usec > 0)
- {
- this->tv_.tv_sec++;
- this->tv_.tv_usec -= ACE_ONE_SECOND_IN_USECS;
- }
-}
diff --git a/ace/Time_Value.h b/ace/Time_Value.h
deleted file mode 100644
index 1a6eb495fc6..00000000000
--- a/ace/Time_Value.h
+++ /dev/null
@@ -1,330 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Time_Value.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_TIME_VALUE_H
-#define ACE_TIME_VALUE_H
-
-#include "ace/pre.h"
-
-#include "ace/OS_Export.h"
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-
-# if !defined (ACE_HAS_WINCE) && !defined (ACE_PSOS_DIAB_MIPS)
-# include /**/ <time.h>
-# if defined (__Lynx__)
-# include /**/ <st.h>
-# include /**/ <sem.h>
-# endif /* __Lynx__ */
-# endif /* ACE_HAS_WINCE ACE_PSOS_DIAB_MIPS */
-
-# if defined (ACE_LACKS_SYSTIME_H)
-// Some platforms may need to include this, but I suspect that most
-// will get it from <time.h>
-# if defined (VXWORKS)
-# include /**/ <sys/times.h>
-# else
-# include /**/ <sys/time.h>
-# endif /* VXWORKS */
-# endif /* ACE_LACKS_SYSTIME_H */
-
-// HP-UX 10.20 doesn't define timespec_t - it defined struct timespec.
-#if defined (HPUX_10)
-typedef struct timespec timespec_t;
-#endif /* HPUX_10 */
-
-// Define some helpful constants.
-// Not type-safe, and signed. For backward compatibility.
-#define ACE_ONE_SECOND_IN_MSECS 1000L
-#define ACE_ONE_SECOND_IN_USECS 1000000L
-#define ACE_ONE_SECOND_IN_NSECS 1000000000L
-
-// -------------------------------------------------------------------
-// These forward declarations are only used to circumvent a bug in
-// MSVC 6.0 compiler. They shouldn't cause any problem for other
-// compilers and they can be removed once MS release a SP that contains
-// the fix.
-class ACE_Time_Value;
-ACE_OS_Export ACE_Time_Value operator + (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2);
-
-ACE_OS_Export ACE_Time_Value operator - (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2);
-
-// This forward declaration is needed by the set() and FILETIME() functions
-#if defined (ACE_LACKS_LONGLONG_T)
-class ACE_Export ACE_U_LongLong;
-#endif /* ACE_LACKS_LONGLONG_T */
-// -------------------------------------------------------------------
-
-# if !defined (ACE_HAS_POSIX_TIME) && !defined (ACE_PSOS)
-// Definition per POSIX.
-typedef struct timespec
-{
- /// Seconds
- time_t tv_sec;
- /// Nanoseconds
- long tv_nsec;
-} timespec_t;
-# elif defined (ACE_HAS_BROKEN_POSIX_TIME)
-// OSF/1 defines struct timespec in <sys/timers.h> - Tom Marrs
-# include /**/ <sys/timers.h>
-# endif /* !ACE_HAS_POSIX_TIME */
-
-# if defined(ACE_LACKS_TIMESPEC_T)
-typedef struct timespec timespec_t;
-# endif /* ACE_LACKS_TIMESPEC_T */
-
-// -------------------------------------------------------------------
-
-/**
- * @class ACE_Time_Value
- *
- * @brief Operations on "timeval" structures, which express time in
- * seconds (secs) and microseconds (usecs).
- *
- * This class centralizes all the time related processing in
- * ACE. These time values are typically used in conjunction with OS
- * mechanisms like <select>, <poll>, or <cond_timedwait>.
- */
-class ACE_OS_Export ACE_Time_Value
-{
-public:
-
- /// Constant "0".
- static const ACE_Time_Value zero;
-
- /**
- * Constant for maximum time representable. Note that this time is
- * not intended for use with <select> or other calls that may have
- * *their own* implementation-specific maximum time representations.
- * Its primary use is in time computations such as those used by the
- * dynamic subpriority strategies in the ACE_Dynamic_Message_Queue
- * class.
- */
- static const ACE_Time_Value max_time;
-
- // = Initialization methods.
-
- /// Default Constructor.
- ACE_Time_Value (void);
-
- /// Constructor.
- ACE_Time_Value (long sec, long usec = 0);
-
- // = Methods for converting to/from various time formats.
-
- /// Construct the ACE_Time_Value from a timeval.
- ACE_Time_Value (const struct timeval &t);
-
- /// Construct the ACE_Time_Value object from a timespec_t.
- ACE_Time_Value (const timespec_t &t);
-
-# if defined (ACE_WIN32)
- /// Construct the ACE_Time_Value object from a Win32 FILETIME
- ACE_Time_Value (const FILETIME &ft);
-# endif /* ACE_WIN32 */
-
- /// Initializes the ACE_Time_Value from two longs.
- void set (long sec, long usec);
-
- /// Initializes the ACE_Time_Value from a double, which is assumed to be
- /// in second format, with any remainder treated as microseconds.
- void set (double d);
-
- /// Initializes the ACE_Time_Value from a timeval.
- void set (const timeval &t);
-
- /// Initializes the ACE_Time_Value object from a timespec_t.
- void set (const timespec_t &t);
-
-# if defined (ACE_WIN32)
- /// Initializes the ACE_Time_Value object from a Win32 FILETIME.
- void set (const FILETIME &ft);
-# endif /* ACE_WIN32 */
-
- /// Converts from ACE_Time_Value format into milli-seconds format.
- /**
- * @return Sum of second field (in milliseconds) and microsecond field
- * (in milliseconds).
- *
- * @note The semantics of this method differs from the sec() and
- * usec() methods. There is no analogous "millisecond"
- * component in an ACE_Time_Value.
- */
- long msec (void) const;
-
- /// Converts from milli-seconds format into ACE_Time_Value format.
- /**
- * @note The semantics of this method differs from the sec() and
- * usec() methods. There is no analogous "millisecond"
- * component in an ACE_Time_Value.
- */
- void msec (long);
-
- /// Returns the value of the object as a timespec_t.
- operator timespec_t () const;
-
- /// Returns the value of the object as a timeval.
- operator timeval () const;
-
- /// Returns a pointer to the object as a timeval.
- operator const timeval *() const;
-
-# if defined (ACE_WIN32)
- /// Returns the value of the object as a Win32 FILETIME.
- operator FILETIME () const;
-# endif /* ACE_WIN32 */
-
- // = The following are accessor/mutator methods.
-
- /// Get seconds.
- /**
- * @return The second field/component of this ACE_Time_Value.
- *
- * @note The semantics of this method differs from the msec()
- * method.
- */
- long sec (void) const;
-
- /// Set seconds.
- void sec (long sec);
-
- /// Get microseconds.
- /**
- * @return The microsecond field/component of this ACE_Time_Value.
- *
- * @note The semantics of this method differs from the msec()
- * method.
- */
- long usec (void) const;
-
- /// Set microseconds.
- void usec (long usec);
-
- // = The following arithmetic methods operate on ACE_Time_Value's.
-
- /// Add @a tv to this.
- ACE_Time_Value &operator += (const ACE_Time_Value &tv);
-
- /// Subtract @a tv to this.
- ACE_Time_Value &operator -= (const ACE_Time_Value &tv);
-
- /// Multiply the time value by the @a d factor, which must be >= 0.
- ACE_Time_Value &operator *= (double d);
-
- /// Increment microseconds as postfix.
- /**
- * @note The only reason this is here is to allow the use of ACE_Atomic_Op
- * with ACE_Time_Value.
- */
- ACE_Time_Value operator++ (int);
-
- /// Increment microseconds as prefix.
- /**
- * @note The only reason this is here is to allow the use of ACE_Atomic_Op
- * with ACE_Time_Value.
- */
- ACE_Time_Value &operator++ (void);
-
- /// Decrement microseconds as postfix.
- /**
- * @note The only reason this is here is to allow the use of ACE_Atomic_Op
- * with ACE_Time_Value.
- */
- ACE_Time_Value operator-- (int);
-
- /// Decrement microseconds as prefix.
- /**
- * @note The only reason this is here is to allow the use of ACE_Atomic_Op
- * with ACE_Time_Value.
- */
- ACE_Time_Value &operator-- (void);
-
- /// Adds two ACE_Time_Value objects together, returns the sum.
- friend ACE_OS_Export ACE_Time_Value operator + (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2);
-
- /// Subtracts two ACE_Time_Value objects, returns the difference.
- friend ACE_OS_Export ACE_Time_Value operator - (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2);
-
- /// True if @a tv1 < @a tv2.
- friend ACE_OS_Export int operator < (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2);
-
- /// True if @a tv1 > @a tv2.
- friend ACE_OS_Export int operator > (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2);
-
- /// True if @a tv1 <= @a tv2.
- friend ACE_OS_Export int operator <= (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2);
-
- /// True if @a tv1 >= @a tv2.
- friend ACE_OS_Export int operator >= (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2);
-
- /// True if @a tv1 == @a tv2.
- friend ACE_OS_Export int operator == (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2);
-
- /// True if @a tv1 != @a tv2.
- friend ACE_OS_Export int operator != (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2);
-
- //@{
- /// Multiplies the time value by @a d
- friend ACE_OS_Export ACE_Time_Value operator * (double d,
- const ACE_Time_Value &tv);
-
- friend ACE_OS_Export ACE_Time_Value operator * (const ACE_Time_Value &tv,
- double d);
- //@}
-
- /// Dump is a no-op.
- /**
- * The dump() method is a no-op. It's here for backwards compatibility
- * only, but does not dump anything. Invoking logging methods here
- * violates layering restrictions in ACE because this class is part
- * of the OS layer and @c ACE_Log_Msg is at a higher level.
- */
- void dump (void) const;
-
-# if defined (ACE_WIN32)
- /// Const time difference between FILETIME and POSIX time.
-# if defined (ACE_LACKS_LONGLONG_T)
- static const ACE_U_LongLong FILETIME_to_timval_skew;
-# else
- static const DWORDLONG FILETIME_to_timval_skew;
-# endif // ACE_LACKS_LONGLONG_T
-# endif /* ACE_WIN32 */
-
-private:
- /// Put the timevalue into a canonical form.
- void normalize (void);
-
- /// Store the values as a timeval.
- timeval tv_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Time_Value.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-
-#endif /* ACE_TIME_VALUE_H */
diff --git a/ace/Time_Value.inl b/ace/Time_Value.inl
deleted file mode 100644
index 7710c1e5880..00000000000
--- a/ace/Time_Value.inl
+++ /dev/null
@@ -1,329 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-
-// Returns the value of the object as a timeval.
-
-ACE_INLINE
-ACE_Time_Value::operator timeval () const
-{
- // ACE_OS_TRACE ("ACE_Time_Value::operator timeval");
- return this->tv_;
-}
-
-// Returns a pointer to the object as a timeval.
-
-ACE_INLINE
-ACE_Time_Value::operator const timeval * () const
-{
- // ACE_OS_TRACE ("ACE_Time_Value::operator const timeval *");
- return (const timeval *) &this->tv_;
-}
-
-ACE_INLINE void
-ACE_Time_Value::set (long sec, long usec)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::set");
- this->tv_.tv_sec = sec;
- this->tv_.tv_usec = usec;
- this->normalize ();
-}
-
-ACE_INLINE void
-ACE_Time_Value::set (double d)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::set");
- long l = (long) d;
- this->tv_.tv_sec = l;
- this->tv_.tv_usec = (long) ((d - (double) l) * ACE_ONE_SECOND_IN_USECS);
- this->normalize ();
-}
-
-// Initializes a timespec_t. Note that this approach loses precision
-// since it converts the nano-seconds into micro-seconds. But then
-// again, do any real systems have nano-second timer precision?!
-
-ACE_INLINE void
-ACE_Time_Value::set (const timespec_t &tv)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::set");
-#if ! defined(ACE_HAS_BROKEN_TIMESPEC_MEMBERS)
- this->tv_.tv_sec = tv.tv_sec;
- // Convert nanoseconds into microseconds.
- this->tv_.tv_usec = tv.tv_nsec / 1000;
-#else
- this->tv_.tv_sec = tv.ts_sec;
- // Convert nanoseconds into microseconds.
- this->tv_.tv_usec = tv.ts_nsec / 1000;
-#endif /* ACE_HAS_BROKEN_TIMESPEC_MEMBERS */
-
- this->normalize ();
-}
-
-ACE_INLINE void
-ACE_Time_Value::set (const timeval &tv)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::set");
- this->tv_.tv_sec = tv.tv_sec;
- this->tv_.tv_usec = tv.tv_usec;
-
- this->normalize ();
-}
-
-ACE_INLINE
-ACE_Time_Value::ACE_Time_Value (const struct timeval &tv)
- // : tv_ ()
-{
- // ACE_OS_TRACE ("ACE_Time_Value::ACE_Time_Value");
- this->set (tv);
-}
-
-ACE_INLINE
-ACE_Time_Value::ACE_Time_Value (void)
- // : tv_ ()
-{
- // ACE_OS_TRACE ("ACE_Time_Value::ACE_Time_Value");
- this->set (0, 0);
-}
-
-ACE_INLINE
-ACE_Time_Value::ACE_Time_Value (long sec, long usec)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::ACE_Time_Value");
- this->set (sec, usec);
-}
-
-// Returns number of seconds.
-
-ACE_INLINE long
-ACE_Time_Value::sec (void) const
-{
- // ACE_OS_TRACE ("ACE_Time_Value::sec");
- return this->tv_.tv_sec;
-}
-
-// Sets the number of seconds.
-
-ACE_INLINE void
-ACE_Time_Value::sec (long sec)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::sec");
- this->tv_.tv_sec = sec;
-}
-
-// Converts from Time_Value format into milli-seconds format.
-
-ACE_INLINE long
-ACE_Time_Value::msec (void) const
-{
- // ACE_OS_TRACE ("ACE_Time_Value::msec");
- return this->tv_.tv_sec * 1000 + this->tv_.tv_usec / 1000;
-}
-
-// Converts from milli-seconds format into Time_Value format.
-
-ACE_INLINE void
-ACE_Time_Value::msec (long milliseconds)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::msec");
- // Convert millisecond units to seconds;
- this->tv_.tv_sec = milliseconds / 1000;
- // Convert remainder to microseconds;
- this->tv_.tv_usec = (milliseconds - (this->tv_.tv_sec * 1000)) * 1000;
-}
-
-// Returns number of micro-seconds.
-
-ACE_INLINE long
-ACE_Time_Value::usec (void) const
-{
- // ACE_OS_TRACE ("ACE_Time_Value::usec");
- return this->tv_.tv_usec;
-}
-
-// Sets the number of micro-seconds.
-
-ACE_INLINE void
-ACE_Time_Value::usec (long usec)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::usec");
- this->tv_.tv_usec = usec;
-}
-
-ACE_INLINE ACE_Time_Value &
-ACE_Time_Value::operator *= (double d)
-{
- double time =
- ((double) this->sec ()) * ACE_ONE_SECOND_IN_USECS + this->usec ();
- time *= d;
- this->sec ((long)(time / ACE_ONE_SECOND_IN_USECS));
- this->usec (((long)time) % ACE_ONE_SECOND_IN_USECS);
- this->normalize ();
- return *this;
-}
-
-ACE_INLINE ACE_Time_Value
-operator * (double d, const ACE_Time_Value &tv)
-{
- return ACE_Time_Value (tv) *= d;
-}
-
-ACE_INLINE ACE_Time_Value
-operator * (const ACE_Time_Value &tv, double d)
-{
- return ACE_Time_Value (tv) *= d;
-}
-
-// True if tv1 > tv2.
-
-ACE_INLINE int
-operator > (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2)
-{
- // ACE_OS_TRACE ("operator >");
- if (tv1.sec () > tv2.sec ())
- return 1;
- else if (tv1.sec () == tv2.sec ()
- && tv1.usec () > tv2.usec ())
- return 1;
- else
- return 0;
-}
-
-// True if tv1 >= tv2.
-
-ACE_INLINE int
-operator >= (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2)
-{
- // ACE_OS_TRACE ("operator >=");
- if (tv1.sec () > tv2.sec ())
- return 1;
- else if (tv1.sec () == tv2.sec ()
- && tv1.usec () >= tv2.usec ())
- return 1;
- else
- return 0;
-}
-
-// Returns the value of the object as a timespec_t.
-
-ACE_INLINE
-ACE_Time_Value::operator timespec_t () const
-{
- // ACE_OS_TRACE ("ACE_Time_Value::operator timespec_t");
- timespec_t tv;
-#if ! defined(ACE_HAS_BROKEN_TIMESPEC_MEMBERS)
- tv.tv_sec = this->sec ();
- // Convert microseconds into nanoseconds.
- tv.tv_nsec = this->tv_.tv_usec * 1000;
-#else
- tv.ts_sec = this->sec ();
- // Convert microseconds into nanoseconds.
- tv.ts_nsec = this->tv_.tv_usec * 1000;
-#endif /* ACE_HAS_BROKEN_TIMESPEC_MEMBERS */
- return tv;
-}
-
-// Initializes the ACE_Time_Value object from a timespec_t.
-
-ACE_INLINE
-ACE_Time_Value::ACE_Time_Value (const timespec_t &tv)
- // : tv_ ()
-{
- // ACE_OS_TRACE ("ACE_Time_Value::ACE_Time_Value");
- this->set (tv);
-}
-
-// True if tv1 < tv2.
-
-ACE_INLINE int
-operator < (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2)
-{
- // ACE_OS_TRACE ("operator <");
- return tv2 > tv1;
-}
-
-// True if tv1 >= tv2.
-
-ACE_INLINE int
-operator <= (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2)
-{
- // ACE_OS_TRACE ("operator <=");
- return tv2 >= tv1;
-}
-
-// True if tv1 == tv2.
-
-ACE_INLINE int
-operator == (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2)
-{
- // ACE_OS_TRACE ("operator ==");
- return tv1.sec () == tv2.sec ()
- && tv1.usec () == tv2.usec ();
-}
-
-// True if tv1 != tv2.
-
-ACE_INLINE int
-operator != (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2)
-{
- // ACE_OS_TRACE ("operator !=");
- return !(tv1 == tv2);
-}
-
-// Add TV to this.
-
-ACE_INLINE ACE_Time_Value &
-ACE_Time_Value::operator+= (const ACE_Time_Value &tv)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::operator+=");
- this->sec (this->sec () + tv.sec ());
- this->usec (this->usec () + tv.usec ());
- this->normalize ();
- return *this;
-}
-
-// Subtract TV to this.
-
-ACE_INLINE ACE_Time_Value &
-ACE_Time_Value::operator-= (const ACE_Time_Value &tv)
-{
- // ACE_OS_TRACE ("ACE_Time_Value::operator-=");
- this->sec (this->sec () - tv.sec ());
- this->usec (this->usec () - tv.usec ());
- this->normalize ();
- return *this;
-}
-
-// Adds two ACE_Time_Value objects together, returns the sum.
-
-ACE_INLINE ACE_Time_Value
-operator + (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2)
-{
- // ACE_OS_TRACE ("operator +");
- ACE_Time_Value sum (tv1.sec () + tv2.sec (),
- tv1.usec () + tv2.usec ());
-
- sum.normalize ();
- return sum;
-}
-
-// Subtracts two ACE_Time_Value objects, returns the difference.
-
-ACE_INLINE ACE_Time_Value
-operator - (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2)
-{
- // ACE_OS_TRACE ("operator -");
- ACE_Time_Value delta (tv1.sec () - tv2.sec (),
- tv1.usec () - tv2.usec ());
- delta.normalize ();
- return delta;
-}
diff --git a/ace/Timeprobe.cpp b/ace/Timeprobe.cpp
deleted file mode 100644
index cdfdb116913..00000000000
--- a/ace/Timeprobe.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-
-ACE_RCSID(ace, Timeprobe, "$Id$")
-
-#if defined (ACE_COMPILE_TIMEPROBES)
-
-#include "ace/Timeprobe.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Timeprobe.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Timeprobe<ACE_TIMEPROBE_MUTEX>;
-template class ACE_Function_Timeprobe<ACE_Timeprobe<ACE_TIMEPROBE_MUTEX> >;
-template class ACE_Unbounded_Set_Iterator<ACE_Event_Descriptions>;
-template class ACE_Unbounded_Set<ACE_Event_Descriptions>;
-template class ACE_Node<ACE_Event_Descriptions>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Timeprobe<ACE_TIMEPROBE_MUTEX>
-#pragma instantiate ACE_Function_Timeprobe<ACE_Timeprobe<ACE_TIMEPROBE_MUTEX> >
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_Event_Descriptions>
-#pragma instantiate ACE_Unbounded_Set<ACE_Event_Descriptions>
-#pragma instantiate ACE_Node<ACE_Event_Descriptions>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-# if defined (ACE_TSS_TIMEPROBES)
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_TSS_Singleton<ACE_TIMEPROBE_WITH_LOCKING, ACE_SYNCH_NULL_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_TSS_Singleton<ACE_TIMEPROBE_WITH_LOCKING, ACE_SYNCH_NULL_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-# else /* ACE_TSS_TIMEPROBES */
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<ACE_TIMEPROBE_WITH_LOCKING, ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton<ACE_TIMEPROBE_WITH_LOCKING, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-# endif /* ACE_TSS_TIMEPROBES */
-
-#endif /* ACE_COMPILE_TIMEPROBES */
-
diff --git a/ace/Timeprobe.h b/ace/Timeprobe.h
deleted file mode 100644
index e45a6eb7bf2..00000000000
--- a/ace/Timeprobe.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Timeprobe.h
- *
- * $Id$
- *
- * @author Irfan Pyarali
- *
- * If users want to use time probes, the ACE_COMPILE_TIMEPROBES
- * flag must be defined when compiling ACE. This can be achieved
- * by doing one of the following:
- *
- * . Use make probe = 1, if you are using the make utility.
- *
- * . Define ACE_COMPILE_TIMEPROBES in config.h
- *
- * . Define ACE_COMPILE_TIMEPROBES in the VC project file.
- *
- * . Other regular methods will also work.
- *
- * It is not necessary to define ACE_COMPILE_TIMEPROBES when using
- * time probes, you simply need ACE_ENABLE_TIMEPROBES. You can use
- * the ACE_TIMEPROBE_* macros to program the time probes, and use
- * the ACE_ENABLE_TIMEPROBE to enable the time probes. If you
- * define ACE_ENABLE_TIMEPROBE in your code, but forget to compile
- * ACE with ACE_COMPILE_TIMEPROBES, you will end up with linker
- * errors.
- *
- * Remember that ACE_COMPILE_TIMEPROBES means that the ACE library
- * will contain code for time probes. This is only useful when
- * compiling ACE. ACE_ENABLE_TIMEPROBES means that the
- * ACE_TIMEPROBE_* macros should spring to life.
- */
-//=============================================================================
-
-#ifndef ACE_TIMEPROBE_H
-#define ACE_TIMEPROBE_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_ENABLE_TIMEPROBES)
- #if !defined (ACE_COMPILE_TIMEPROBES)
- #define ACE_COMPILE_TIMEPROBES
- #endif /* ACE_COMPILE_TIMEPROBES */
-#endif /* ACE_ENABLE_TIMEPROBES */
-
-#if defined (ACE_COMPILE_TIMEPROBES)
-
-/**
- * @class ACE_Event_Descriptions
- *
- * @brief Event Descriptions.
- */
-class ACE_Export ACE_Event_Descriptions
-{
-public:
- /// Event descriptions
- const char **descriptions_;
-
- /// Minimum id of this description set
- u_long minimum_id_;
-
- /// Comparison
- int operator== (const ACE_Event_Descriptions &rhs) const;
-};
-
-/**
- * @class ACE_timeprobe_t
- *
- * @brief Time probe record.
- */
-class ACE_Export ACE_timeprobe_t
-{
-public:
- /// Events are record as strings or numbers.
- union event
- {
- u_long event_number_;
- const char *event_description_;
- };
-
- /// Type of event.
- enum event_type
- {
- NUMBER,
- STRING
- };
-
- /// Event.
- event event_;
-
- /// Type of event.
- event_type event_type_;
-
- /// Timestamp.
- ACE_hrtime_t time_;
-
- /// Id of thread posting the time probe.
- ACE_thread_t thread_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Timeprobe.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/Synch.h"
-#include "ace/Singleton.h"
-#include "ace/Timeprobe_T.h"
-
-// If ACE_MT_TIMEPROBES is defined, use a Thread_Mutex to lock the
-// internal state of ACE_Timerprobe. This allows multiple threads to
-// use the same ACE_Timerprobe.
-# if defined (ACE_MT_TIMEPROBES)
-typedef ACE_SYNCH_MUTEX ACE_TIMEPROBE_MUTEX;
-# else /* ACE_MT_TIMEPROBES */
-typedef ACE_SYNCH_NULL_MUTEX ACE_TIMEPROBE_MUTEX;
-# endif /* ACE_MT_TIMEPROBES */
-
-typedef ACE_Timeprobe<ACE_TIMEPROBE_MUTEX>
- ACE_TIMEPROBE_WITH_LOCKING;
-
-// If ACE_TSS_TIMEPROBES is defined, store the ACE_Timeprobe singleton
-// in thread specific storage. This allows multiple threads to use
-// their own instance of ACE_Timerprobe, without interfering with each
-// other.
-# if defined (ACE_TSS_TIMEPROBES)
-# define ACE_TIMEPROBE_SINGLETON_TYPE ACE_TSS_Singleton
-# define ACE_TIMEPROBE_SINGLETON_LOCK_TYPE ACE_SYNCH_NULL_MUTEX
-# else /* ACE_TSS_TIMEPROBES */
-# define ACE_TIMEPROBE_SINGLETON_TYPE ACE_Singleton
-# define ACE_TIMEPROBE_SINGLETON_LOCK_TYPE ACE_SYNCH_MUTEX
-# endif /* ACE_TSS_TIMEPROBES */
-
-typedef ACE_TIMEPROBE_SINGLETON_TYPE<ACE_TIMEPROBE_WITH_LOCKING, ACE_TIMEPROBE_SINGLETON_LOCK_TYPE>
- ACE_TIMEPROBE_SINGLETON;
-
-ACE_SINGLETON_DECLARE (ACE_TIMEPROBE_SINGLETON_TYPE, \
- ACE_TIMEPROBE_WITH_LOCKING, \
- ACE_TIMEPROBE_SINGLETON_LOCK_TYPE);
-
-#endif /* ACE_COMPILE_TIMEPROBES */
-
-// If ACE_ENABLE_TIMEPROBES is defined, the macros below will
-// work. Otherwise, they just vanish. Using this macro, you can
-// control which files/libraries are probed.
-#if defined (ACE_ENABLE_TIMEPROBES) && defined (ACE_COMPILE_TIMEPROBES)
-
-# define ACE_TIMEPROBE_RESET ACE_TIMEPROBE_SINGLETON::instance ()->reset ()
-# define ACE_TIMEPROBE(id) ACE_TIMEPROBE_SINGLETON::instance ()->timeprobe (id)
-# define ACE_TIMEPROBE_PRINT ACE_TIMEPROBE_SINGLETON::instance ()->print_times ()
-# define ACE_TIMEPROBE_PRINT_ABSOLUTE ACE_TIMEPROBE_SINGLETON::instance ()->print_absolute_times ()
-# define ACE_TIMEPROBE_EVENT_DESCRIPTIONS(descriptions, minimum_id) static int ace_timeprobe_##descriptions##_return = ACE_TIMEPROBE_SINGLETON::instance ()->event_descriptions (descriptions, minimum_id)
-# define ACE_FUNCTION_TIMEPROBE(X) ACE_Function_Timeprobe<ACE_TIMEPROBE_WITH_LOCKING> function_timeprobe (*ACE_TIMEPROBE_SINGLETON::instance (), X)
-
-#else /* ACE_ENABLE_TIMEPROBES && ACE_COMPILE_TIMEPROBES */
-
-# define ACE_TIMEPROBE_RESET
-# define ACE_TIMEPROBE(id)
-# define ACE_TIMEPROBE_PRINT
-# define ACE_TIMEPROBE_PRINT_ABSOLUTE
-# define ACE_TIMEPROBE_EVENT_DESCRIPTIONS(descriptions, minimum_id)
-# define ACE_FUNCTION_TIMEPROBE(X)
-
-#endif /* ACE_ENABLE_TIMEPROBES && ACE_COMPILE_TIMEPROBES */
-#include "ace/post.h"
-#endif /* ACE_TIMEPROBE_H */
diff --git a/ace/Timeprobe.i b/ace/Timeprobe.i
deleted file mode 100644
index 31f022f77b4..00000000000
--- a/ace/Timeprobe.i
+++ /dev/null
@@ -1,8 +0,0 @@
-// $Id$
-
-ACE_INLINE int
-ACE_Event_Descriptions::operator== (const ACE_Event_Descriptions &rhs) const
-{
- return this->minimum_id_ == rhs.minimum_id_ &&
- this->descriptions_ == rhs.descriptions_;
-}
diff --git a/ace/Timeprobe_T.cpp b/ace/Timeprobe_T.cpp
deleted file mode 100644
index 988565ccee1..00000000000
--- a/ace/Timeprobe_T.cpp
+++ /dev/null
@@ -1,300 +0,0 @@
-// $Id$
-
-#ifndef ACE_TIMEPROBE_T_C
-#define ACE_TIMEPROBE_T_C
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, Timeprobe_T, "$Id$")
-
-#if defined (ACE_COMPILE_TIMEPROBES)
-
-#include "ace/Timeprobe.h"
-#include "ace/High_Res_Timer.h"
-
-template <class ACE_LOCK>
-ACE_Timeprobe<ACE_LOCK>::ACE_Timeprobe (u_long size)
- : timeprobes_ (0),
- lock_ (),
- max_size_ (size),
- current_size_ (0)
-{
- ACE_NEW (this->timeprobes_,
- ACE_timeprobe_t[this->max_size_]);
-
-#if defined (VXWORKS)
- if (sysProcNumGet () == 0)
- this->current_slot_vme_address_ = (u_int *) 0xDa010000;
- else
- this->current_slot_vme_address_ = (u_int *) 0xD8010000;
-#endif /* VXWORKS */
-}
-
-template <class ACE_LOCK>
-ACE_Timeprobe<ACE_LOCK>::ACE_Timeprobe (const ACE_Timeprobe<ACE_LOCK> &)
-{
- //
- // Stupid MSVC is forcing me to define this; please don't use it.
- //
-
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_NOTSUP: %s, line %d\n"), __FILE__, __LINE__));
- errno = ENOTSUP;
-}
-
-template <class ACE_LOCK>
-ACE_Timeprobe<ACE_LOCK>::~ACE_Timeprobe (void)
-{
- delete [] this->timeprobes_;
-}
-
-template <class ACE_LOCK> void
-ACE_Timeprobe<ACE_LOCK>::timeprobe (u_long event)
-{
- ACE_GUARD (ACE_LOCK, ace_mon, this->lock_);
-
- ACE_ASSERT (this->current_size_ < this->max_size_);
-
- this->timeprobes_[this->current_size_].event_.event_number_ = event;
- this->timeprobes_[this->current_size_].event_type_ = ACE_timeprobe_t::NUMBER;
- this->timeprobes_[this->current_size_].time_ = ACE_OS::gethrtime ();
- this->timeprobes_[this->current_size_].thread_ = ACE_OS::thr_self ();
-
- this->current_size_++;
-
-#if defined (VMETRO_TIME_TEST) && (VXWORKS)
- // If we are using the VMETRO board to get time samples, then write
- // to the other boards VME address.
- *this->current_slot_vme_address_ = event;
-#endif /* VMETRO_TIME_TEST && VXWORKS */
-}
-
-template <class ACE_LOCK> void
-ACE_Timeprobe<ACE_LOCK>::timeprobe (const char *event)
-{
- ACE_GUARD (ACE_LOCK, ace_mon, this->lock_);
-
- ACE_ASSERT (this->current_size_ < this->max_size_);
-
- this->timeprobes_[this->current_size_].event_.event_description_ = event;
- this->timeprobes_[this->current_size_].event_type_ = ACE_timeprobe_t::STRING;
- this->timeprobes_[this->current_size_].time_ = ACE_OS::gethrtime ();
- this->timeprobes_[this->current_size_].thread_ = ACE_OS::thr_self ();
-
- this->current_size_++;
-}
-
-template <class ACE_LOCK> void
-ACE_Timeprobe<ACE_LOCK>::reset (void)
-{
- ACE_GUARD (ACE_LOCK, ace_mon, this->lock_);
-
- this->current_size_ = 0;
-}
-
-template <class ACE_LOCK> ACE_Unbounded_Set<ACE_Event_Descriptions> &
-ACE_Timeprobe<ACE_LOCK>::event_descriptions (void)
-{
- return this->event_descriptions_;
-}
-
-template <class ACE_LOCK> ACE_Unbounded_Set<ACE_Event_Descriptions> &
-ACE_Timeprobe<ACE_LOCK>::sorted_event_descriptions (void)
-{
- return this->sorted_event_descriptions_;
-}
-
-template <class ACE_LOCK> u_int *
-ACE_Timeprobe<ACE_LOCK>::current_slot_vme_address (void)
-{
- return this->current_slot_vme_address_;
-}
-
-template <class ACE_LOCK> ACE_timeprobe_t *
-ACE_Timeprobe<ACE_LOCK>::timeprobes (void)
-{
- return this->timeprobes_;
-}
-
-template <class ACE_LOCK> ACE_LOCK &
-ACE_Timeprobe<ACE_LOCK>::lock (void)
-{
- return this->lock_;
-}
-
-template <class ACE_LOCK> u_long
-ACE_Timeprobe<ACE_LOCK>::max_size (void)
-{
- return this->max_size_;
-}
-
-template <class ACE_LOCK> u_long
-ACE_Timeprobe<ACE_LOCK>::current_size (void)
-{
- return this->current_size_;
-}
-
-template <class ACE_LOCK> int
-ACE_Timeprobe<ACE_LOCK>::event_descriptions (const char **descriptions,
- u_long minimum_id)
-{
- ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
-
- ACE_Event_Descriptions events;
- events.descriptions_ = descriptions;
- events.minimum_id_ = minimum_id;
-
- this->event_descriptions_.insert (events);
-
- return 0;
-}
-
-template <class ACE_LOCK> void
-ACE_Timeprobe<ACE_LOCK>::print_times (void)
-{
- ACE_GUARD (ACE_LOCK, ace_mon, this->lock_);
-
- // Sort the event descriptions
- this->sort_event_descriptions_i ();
-
- ACE_DEBUG ((LM_DEBUG,
- "\nACE_Timeprobe; %d timestamps were recorded:\n",
- this->current_size_));
-
- if (this->current_size_ == 0)
- return;
-
- ACE_DEBUG ((LM_DEBUG,
- "\n%-50.50s %8.8s %13.13s\n\n",
- "Event",
- "thread",
- "usec"));
-
- ACE_DEBUG ((LM_DEBUG,
- "%-50.50s %8.8x %13.13s\n",
- this->find_description_i (0),
- this->timeprobes_[0].thread_,
- "START"));
-
- ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor ();
- for (u_long i = 1; i < this->current_size_; i++)
- {
- ACE_hrtime_t time_difference =
- this->timeprobes_[i].time_ - this->timeprobes_[i-1].time_;
-
- ACE_UINT32 elapsed_time_in_micro_seconds =
- (ACE_UINT32) (time_difference / gsf);
- ACE_UINT32 remainder =
- (ACE_UINT32) (time_difference % gsf);
- // Convert to the fractional part in microseconds, with 3 digits
- // of precision (hence the 1000).
- ACE_UINT32 fractional = remainder * 1000 / gsf;
-
- ACE_DEBUG ((LM_DEBUG,
- "%-50.50s %8.8x %10u.%03.3u\n",
- this->find_description_i (i),
- this->timeprobes_[i].thread_,
- (unsigned int) elapsed_time_in_micro_seconds,
- (unsigned int) fractional));
- }
-}
-
-template <class ACE_LOCK> void
-ACE_Timeprobe<ACE_LOCK>::print_absolute_times (void)
-{
- ACE_GUARD (ACE_LOCK, ace_mon, this->lock_);
-
- // Sort the event descriptions
- this->sort_event_descriptions_i ();
-
- ACE_DEBUG ((LM_DEBUG,
- "\nACE_Timeprobe; %d timestamps were recorded:\n",
- this->current_size_));
-
- if (this->current_size_ == 0)
- return;
-
- ACE_DEBUG ((LM_DEBUG,
- "\n%-50.50s %8.8s %13.13s\n\n",
- "Event",
- "thread",
- "stamp"));
-
- for (u_long i = 0; i < this->current_size_; i++)
- {
- char buf[64];
- ACE_OS::sprintf (buf, "%llu", this->timeprobes_[i].time_);
- ACE_DEBUG ((LM_DEBUG,
- "%-50.50s %8.8x %13.13s\n",
- this->find_description_i (i),
- this->timeprobes_[i].thread_,
- buf));
- }
-}
-
-template <class ACE_LOCK> const char *
-ACE_Timeprobe<ACE_LOCK>::find_description_i (u_long i)
-{
- if (this->timeprobes_[i].event_type_ == ACE_timeprobe_t::STRING)
- return this->timeprobes_[i].event_.event_description_;
- else
- {
- EVENT_DESCRIPTIONS::iterator iterator = this->sorted_event_descriptions_.begin ();
- for (u_long j = 0;
- j < this->sorted_event_descriptions_.size () - 1;
- iterator++, j++)
- {
- EVENT_DESCRIPTIONS::iterator next_event_descriptions = iterator;
- next_event_descriptions++;
-
- if (this->timeprobes_[i].event_.event_number_ < (*next_event_descriptions).minimum_id_)
- break;
- }
- return (*iterator).descriptions_[this->timeprobes_[i].event_.event_number_ - (*iterator).minimum_id_];
- }
-}
-
-template <class ACE_LOCK> void
-ACE_Timeprobe<ACE_LOCK>::sort_event_descriptions_i (void)
-{
- size_t total_elements = this->event_descriptions_.size ();
-
- for (size_t i = 0;
- i < total_elements;
- i++)
- {
- EVENT_DESCRIPTIONS::iterator iterator = this->event_descriptions_.begin ();
- ACE_Event_Descriptions min_entry = *iterator;
-
- for (;
- iterator != this->event_descriptions_.end ();
- iterator++)
- if ((*iterator).minimum_id_ < min_entry.minimum_id_)
- min_entry = *iterator;
-
- this->sorted_event_descriptions_.insert (min_entry);
- this->event_descriptions_.remove (min_entry);
- }
-}
-
-template <class Timeprobe>
-ACE_Function_Timeprobe<Timeprobe>::ACE_Function_Timeprobe (Timeprobe &timeprobe,
- u_long event)
- : timeprobe_ (timeprobe),
- event_ (event)
-{
- this->timeprobe_.timeprobe (this->event_);
-}
-
-template <class Timeprobe>
-ACE_Function_Timeprobe<Timeprobe>::~ACE_Function_Timeprobe (void)
-{
- this->timeprobe_.timeprobe (this->event_ + 1);
-}
-
-#endif /* ACE_COMPILE_TIMEPROBES */
-#endif /* ACE_TIMEPROBE_T_C */
diff --git a/ace/Timeprobe_T.h b/ace/Timeprobe_T.h
deleted file mode 100644
index 8b4891938c2..00000000000
--- a/ace/Timeprobe_T.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Timeprobe_T.h
- *
- * $Id$
- *
- * @author Irfan Pyarali
- */
-//=============================================================================
-
-
-#ifndef ACE_TIMEPROBE_T_H
-#define ACE_TIMEPROBE_T_H
-#include "ace/pre.h"
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_COMPILE_TIMEPROBES)
-
-#include "ace/Unbounded_Set.h"
-
-/**
- * @class ACE_Timeprobe
- *
- * @brief This class is used to instrument code. This is accomplished
- * by inserting time probes at different location in the code.
- * ACE_Timeprobe then measures the time difference between two
- * time probes.
- *
- * This class provides a lightweight implementation for
- * measuring the time required to execute code between two time
- * probes. When a time probe executes, it records the time, the
- * id of the calling thread, and an event description. The
- * event description can either be an unsigned long or a string
- * (char *). If string are used, care must be taken cause only
- * pointer copies are done and the string data is *not* copied.
- * The recorded time probes can then be printed by calling
- * <print_times>. If you have used unsigned longs as event
- * descriptions in any of your time probes, you must have
- * provided an event description table that maps the unsigned
- * longs to readable strings. This map is a simple array of
- * strings, and the event number is used as the index into the
- * array when looking for the event description. If you have
- * only used strings for the event description, this map is not
- * necessary.
- * Multiple maps can also be used to chunk up the time probes.
- * Each one can be added by calling <event_descriptions>.
- * Different tables are used internally by consulting the
- * minimum_id for each table. It is up to the user to make sure
- * that multiple tables do not share the same event id range.
- */
-template <class ACE_LOCK>
-class ACE_Timeprobe
-{
-public:
-
- /// Self
- typedef ACE_Timeprobe<ACE_LOCK>
- SELF;
-
- /// We can hold multiple event description tables.
- typedef ACE_Unbounded_Set<ACE_Event_Descriptions>
- EVENT_DESCRIPTIONS;
-
- /// Create Timeprobes with <size> slots
- ACE_Timeprobe (u_long size = ACE_DEFAULT_TIMEPROBE_TABLE_SIZE);
-
- /// Destructor.
- ~ACE_Timeprobe (void);
-
- /// Record a time. <event> is used to describe this time probe.
- void timeprobe (u_long event);
-
- /// Record a time. <id> is used to describe this time probe.
- void timeprobe (const char *id);
-
- /// Record event descriptions.
- int event_descriptions (const char **descriptions,
- u_long minimum_id);
-
- /// Print the time probes.
- void print_times (void);
-
- /// Print the time probes.
- void print_absolute_times (void);
-
- /// Reset the slots. All old time probes will be lost.
- void reset (void);
-
- /// Not implemented (stupid MSVC won't let it be protected).
- ACE_Timeprobe (const ACE_Timeprobe<ACE_LOCK> &);
-
- // = (Somewhat private) Accessors
-
- /// Event Descriptions
- ACE_Unbounded_Set<ACE_Event_Descriptions> &event_descriptions (void);
-
- /// Sorted Event Descriptions.
- ACE_Unbounded_Set<ACE_Event_Descriptions> &sorted_event_descriptions (void);
-
- /// VME slot address.
- u_int *current_slot_vme_address (void);
-
- /// Find description of event \<i\>
- const char *find_description_i (u_long i);
-
- /// Sort event descriptions
- void sort_event_descriptions_i (void);
-
- /// Time probe slots
- ACE_timeprobe_t *timeprobes (void);
-
- /// Synchronization variable.
- ACE_LOCK &lock (void);
-
- /// Max size of timestamp table
- u_long max_size (void);
-
- /// Current size of timestamp table
- u_long current_size (void);
-
-protected:
-
- /// Event Descriptions
- EVENT_DESCRIPTIONS event_descriptions_;
-
- /// Sorted Event Descriptions.
- EVENT_DESCRIPTIONS sorted_event_descriptions_;
-
- /// Added sections below here to make compatible with the VMETRO
- /// board test.
- u_int *current_slot_vme_address_;
-
- /// Time probe slots
- ACE_timeprobe_t *timeprobes_;
-
- /// Synchronization variable.
- ACE_LOCK lock_;
-
- /// Max size of timestamp table
- u_long max_size_;
-
- /// Current size of timestamp table
- u_long current_size_;
-};
-
-/**
- * @class ACE_Function_Timeprobe
- *
- * @brief Auto pointer like time probes. It will record <event> on
- * construction and <event + 1> on destruction.
- */
-template <class Timeprobe>
-class ACE_Function_Timeprobe
-{
-public:
- /// Constructor.
- ACE_Function_Timeprobe (Timeprobe &timeprobe,
- u_long event);
-
- /// Destructor.
- ~ACE_Function_Timeprobe (void);
-
-protected:
- /// Reference to timeprobe.
- Timeprobe &timeprobe_;
-
- /// Event.
- u_long event_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Timeprobe_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Timeprobe_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* ACE_COMPILE_TIMEPROBES */
-#include "ace/post.h"
-#endif /* ACE_TIMEPROBE_T_H */
diff --git a/ace/Timer_Hash.cpp b/ace/Timer_Hash.cpp
deleted file mode 100644
index a37df2e2fb4..00000000000
--- a/ace/Timer_Hash.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-// $Id$
-
-// Timer_Hash.cpp
-
-#if !defined (ACE_TIMER_HASH_C)
-#define ACE_TIMER_HASH_C
-
-#include "ace/Timer_Hash.h"
-
-#if defined (ACE_HAS_BROKEN_HPUX_TEMPLATES)
-#include "ace/Timer_Hash_T.cpp"
-#endif /* ACE_HAS_BROKEN_HPUX_TEMPLATES */
-
-ACE_RCSID(ace, Timer_Hash, "$Id$")
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Free_List<ACE_Timer_Node_T<ACE_Event_Handler *> >;
-template class ACE_Locked_Free_List<ACE_Timer_Node_T<ACE_Event_Handler *>,
- ACE_Null_Mutex>;
-template class ACE_Timer_Hash_Upcall <ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX>;
-
-template class ACE_Timer_Queue_T <ACE_Event_Handler *,
- ACE_Hash_Upcall,
- ACE_Null_Mutex>;
-
-template class ACE_Timer_Queue_Iterator_T <ACE_Event_Handler *,
- ACE_Hash_Upcall,
- ACE_Null_Mutex>;
-
-template class ACE_Timer_List_T <ACE_Event_Handler *,
- ACE_Hash_Upcall,
- ACE_Null_Mutex>;
-
-template class ACE_Timer_List_Iterator_T <ACE_Event_Handler *,
- ACE_Hash_Upcall,
- ACE_Null_Mutex>;
-
-template class ACE_Timer_Heap_T <ACE_Event_Handler *,
- ACE_Hash_Upcall,
- ACE_Null_Mutex>;
-
-template class ACE_Timer_Heap_Iterator_T <ACE_Event_Handler *,
- ACE_Hash_Upcall,
- ACE_Null_Mutex>;
-
-template class ACE_Timer_Hash_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX,
- ACE_Hash_Timer_List>;
-
-template class ACE_Timer_Hash_Iterator_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX,
- ACE_Hash_Timer_List>;
-
-template class ACE_Timer_Hash_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX,
- ACE_Hash_Timer_Heap>;
-
-template class ACE_Timer_Hash_Iterator_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX,
- ACE_Hash_Timer_Heap>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Free_List<ACE_Timer_Node_T<ACE_Event_Handler *> >
-#pragma instantiate ACE_Locked_Free_List<ACE_Timer_Node_T<ACE_Event_Handler *>, \
- ACE_Null_Mutex>
-#pragma instantiate ACE_Timer_Hash_Upcall <ACE_Event_Handler *, \
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, \
- ACE_SYNCH_RECURSIVE_MUTEX>
-
-#pragma instantiate ACE_Timer_Queue_T <ACE_Event_Handler *, \
- ACE_Hash_Upcall, \
- ACE_Null_Mutex>
-
-#pragma instantiate ACE_Timer_Queue_Iterator_T <ACE_Event_Handler *, \
- ACE_Hash_Upcall, \
- ACE_Null_Mutex>
-
-#pragma instantiate ACE_Timer_List_T <ACE_Event_Handler *, \
- ACE_Hash_Upcall, \
- ACE_Null_Mutex>
-
-#pragma instantiate ACE_Timer_List_Iterator_T <ACE_Event_Handler *, \
- ACE_Hash_Upcall, \
- ACE_Null_Mutex>
-
-#pragma instantiate ACE_Timer_Heap_T <ACE_Event_Handler *, \
- ACE_Hash_Upcall, \
- ACE_Null_Mutex>
-
-#pragma instantiate ACE_Timer_Heap_Iterator_T <ACE_Event_Handler *, \
- ACE_Hash_Upcall, \
- ACE_Null_Mutex>
-
-#pragma instantiate ACE_Timer_Hash_T<ACE_Event_Handler *, \
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, \
- ACE_SYNCH_RECURSIVE_MUTEX, \
- ACE_Hash_Timer_List>
-
-#pragma instantiate ACE_Timer_Hash_Iterator_T<ACE_Event_Handler *, \
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, \
- ACE_SYNCH_RECURSIVE_MUTEX, \
- ACE_Hash_Timer_List>
-
-#pragma instantiate ACE_Timer_Hash_T<ACE_Event_Handler *, \
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, \
- ACE_SYNCH_RECURSIVE_MUTEX, \
- ACE_Hash_Timer_Heap>
-
-#pragma instantiate ACE_Timer_Hash_Iterator_T<ACE_Event_Handler *, \
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, \
- ACE_SYNCH_RECURSIVE_MUTEX, \
- ACE_Hash_Timer_Heap>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-
-#endif /* ACE_TIMER_HASH_C */
diff --git a/ace/Timer_Hash.h b/ace/Timer_Hash.h
deleted file mode 100644
index 189fbb7bace..00000000000
--- a/ace/Timer_Hash.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Timer_Hash.h
- *
- * $Id$
- *
- * @author Darrell Brunsch <brunsch@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_TIMER_HASH_H
-#define ACE_TIMER_HASH_H
-#include "ace/pre.h"
-
-#include "ace/Timer_Hash_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Timer_Heap_T.h"
-#include "ace/Timer_List_T.h"
-
-// The following typedef are here for ease of use
-
-typedef ACE_Timer_Hash_Upcall <ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX>
- ACE_Hash_Upcall;
-
-typedef ACE_Timer_List_T <ACE_Event_Handler *,
- ACE_Hash_Upcall,
- ACE_Null_Mutex>
- ACE_Hash_Timer_List;
-
-typedef ACE_Timer_Heap_T <ACE_Event_Handler *,
- ACE_Hash_Upcall,
- ACE_Null_Mutex>
- ACE_Hash_Timer_Heap;
-
-
-typedef ACE_Timer_Hash_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX,
- ACE_Hash_Timer_List>
-
- ACE_Timer_Hash;
-
-typedef ACE_Timer_Hash_Iterator_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX,
- ACE_Hash_Timer_List>
- ACE_Timer_Hash_Iterator;
-
-typedef ACE_Timer_Hash_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX,
- ACE_Hash_Timer_Heap>
- ACE_Timer_Hash_Heap;
-
-typedef ACE_Timer_Hash_Iterator_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX,
- ACE_Hash_Timer_Heap>
- ACE_Timer_Hash_Heap_Iterator;
-
-#include "ace/post.h"
-#endif /* ACE_TIMER_HASH_H */
diff --git a/ace/Timer_Hash_T.cpp b/ace/Timer_Hash_T.cpp
deleted file mode 100644
index a83a5e3acb6..00000000000
--- a/ace/Timer_Hash_T.cpp
+++ /dev/null
@@ -1,649 +0,0 @@
-// $Id$
-
-#ifndef ACE_TIMER_HASH_T_C
-#define ACE_TIMER_HASH_T_C
-
-#include "ace/Timer_Hash_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/High_Res_Timer.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace,
- Timer_Hash_T,
- "$Id$")
-
-struct Hash_Token
-{
- Hash_Token (const void *act,
- size_t pos,
- long orig_id)
- : act_ (act),
- pos_ (pos),
- orig_id_ (orig_id)
- {}
-
- const void *act_;
- size_t pos_;
- long orig_id_;
-};
-
-// Default constructor
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Hash_Upcall (void)
- : timer_hash_ (0)
-{
- // Nothing
-}
-
-// Constructor that specifies a Timer_Hash to call up to
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Hash_Upcall (ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> *timer_hash)
- : timer_hash_ (timer_hash)
-{
- // Nothing
-}
-
-// Calls up to timer_hash's upcall functor
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>::timeout (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- const void *arg,
- const ACE_Time_Value &cur_time)
-{
- ACE_UNUSED_ARG (timer_queue);
-
- Hash_Token *h = ACE_reinterpret_cast (Hash_Token *,
- ACE_const_cast (void *,
- arg));
- int result =
- this->timer_hash_->upcall_functor ().timeout (*this->timer_hash_,
- handler,
- h->act_,
- cur_time);
- delete h;
- return result;
-}
-
-
-// Calls up to timer_hash's upcall functor
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>::cancellation (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler)
-{
- ACE_UNUSED_ARG (timer_queue);
- return this->timer_hash_->upcall_functor ().cancellation (*this->timer_hash_,
- handler);
-}
-
-
-// Calls up to timer_hash's upcall functor
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>::deletion (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- const void *arg)
-{
- ACE_UNUSED_ARG (timer_queue);
-
- Hash_Token *h = ACE_reinterpret_cast (Hash_Token *,
- ACE_const_cast (void *,
- arg));
- int result =
- this->timer_hash_->upcall_functor ().deletion (*this->timer_hash_,
- handler,
- h->act_);
- delete h;
- return result;
-}
-
-
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
-ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::ACE_Timer_Hash_Iterator_T (ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET> &hash)
- : timer_hash_ (hash)
-{
- this->first ();
- // Nothing
-}
-
-// Positions the iterator at the first node in the timing hash table
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> void
-ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::first (void)
-{
- for (this->position_ = 0;
- this->position_ < this->timer_hash_.table_size_;
- this->position_++)
- {
- // Check for an empty entry
- if (!this->timer_hash_.table_[this->position_]->is_empty ())
- {
- this->iter_ = &this->timer_hash_.table_[this->position_]->iter ();
- this->iter_->first ();
- return;
- }
- }
-
- // Didn't find any
- this->iter_ = 0;
-}
-
-// Positions the iterator at the next node in the bucket or goes to the next
-// bucket
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> void
-ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::next (void)
-{
- if (this->isdone ())
- return;
-
- // If there is no more in the current bucket, go to the next
- if (this->iter_->isdone ())
- {
- for (this->position_++;
- this->position_ < this->timer_hash_.table_size_;
- this->position_++)
- {
- // Check for an empty entry
- if (!this->timer_hash_.table_[this->position_]->is_empty ())
- {
- this->iter_ = &this->timer_hash_.table_[this->position_]->iter ();
- this->iter_->first ();
- return;
- }
- }
-
- // Didn't find any.
- this->iter_ = 0;
- }
- else
- this->iter_->next ();
-}
-
-// Returns true when we are at the end (when bucket_item_ == 0)
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> int
-ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::isdone (void) const
-{
- return this->iter_ == 0;
-}
-
-// Returns the node at the current position in the sequence
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::item (void)
-{
- if (this->isdone ())
- return 0;
-
- return this->iter_->item ();
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> &
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::iter (void)
-{
- this->iterator_->first ();
- return *this->iterator_;
-}
-
-// Create an empty queue.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::ACE_Timer_Hash_T (size_t table_size,
- FUNCTOR *upcall_functor,
- ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist)
- : ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> (upcall_functor, freelist),
- size_ (0),
- table_size_ (table_size),
- table_functor_ (this),
- earliest_position_ (0)
-#if defined (ACE_WIN64)
- , pointer_base_ (0)
-#endif /* ACE_WIN64 */
-{
- ACE_TRACE ("ACE_Timer_Hash_T::ACE_Timer_Hash_T");
-
- ACE_NEW (table_,
- BUCKET *[table_size]);
-
- this->gettimeofday (ACE_OS::gettimeofday);
-
- for (size_t i = 0;
- i < table_size;
- i++)
- {
- ACE_NEW (this->table_[i],
- BUCKET (&this->table_functor_,
- this->free_list_));
- this->table_[i]->gettimeofday (ACE_OS::gettimeofday);
- }
-
- ACE_NEW (iterator_,
- HASH_ITERATOR (*this));
-}
-
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::ACE_Timer_Hash_T (FUNCTOR *upcall_functor,
- ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist)
- : ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> (upcall_functor, freelist),
- size_ (0),
- table_size_ (ACE_DEFAULT_TIMER_HASH_TABLE_SIZE),
- table_functor_ (this),
- earliest_position_ (0)
-#if defined (ACE_WIN64)
- , pointer_base_ (0)
-#endif /* ACE_WIN64 */
-{
- ACE_TRACE ("ACE_Timer_Hash_T::ACE_Timer_Hash_T");
-
- ACE_NEW (table_,
- BUCKET *[ACE_DEFAULT_TIMER_HASH_TABLE_SIZE]);
-
-
- this->gettimeofday (ACE_OS::gettimeofday);
-
- for (size_t i = 0;
- i < this->table_size_;
- i++)
- {
- ACE_NEW (this->table_[i],
- BUCKET (&this->table_functor_,
- this->free_list_));
- this->table_[i]->gettimeofday (ACE_OS::gettimeofday);
- }
-
- ACE_NEW (iterator_,
- HASH_ITERATOR (*this));
-}
-
-// Remove all remaining items in the Queue.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::~ACE_Timer_Hash_T (void)
-{
- ACE_TRACE ("ACE_Timer_Hash_T::~ACE_Timer_Hash_T");
- ACE_MT (ACE_GUARD (ACE_LOCK, ace_mon, this->mutex_));
-
- delete iterator_;
-
- for (size_t i = 0;
- i < this->table_size_;
- i++)
- delete this->table_[i];
-
- delete [] this->table_;
-}
-
-// Checks if queue is empty.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> int
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::is_empty (void) const
-{
- ACE_TRACE ("ACE_Timer_Hash_T::is_empty");
- return this->table_[this->earliest_position_]->is_empty ();
-}
-
-// Returns earliest time in a non-empty bucket
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> const ACE_Time_Value &
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::earliest_time (void) const
-{
- ACE_TRACE ("ACE_Timer_Hash_T::earliest_time");
- return this->table_[this->earliest_position_]->earliest_time ();
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> void
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::dump (void) const
-{
- ACE_TRACE ("ACE_Timer_Hash_T::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ntable_size_ = %d"), this->table_size_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nearliest_position_ = %d"), this->earliest_position_));
-
- for (size_t i = 0; i < this->table_size_; i++)
- if (!this->table_[i]->is_empty ())
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nBucket %d contains nodes"), i));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// Reschedule a periodic timer. This function must be called with the
-// mutex lock held.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> void
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::reschedule (ACE_Timer_Node_T<TYPE> *expired)
-{
- ACE_TRACE ("ACE_Timer_Hash_T::reschedule");
-
- size_t position =
- expired->get_timer_value ().sec () % this->table_size_;
-
- Hash_Token *h = ACE_reinterpret_cast (Hash_Token *,
- ACE_const_cast (void *,
- expired->get_act ()));
-
- h->orig_id_ = this->table_[position]->schedule (expired->get_type (),
- h,
- expired->get_timer_value (),
- expired->get_interval ());
-
- if (this->table_[this->earliest_position_]->is_empty ()
- || this->table_[position]->earliest_time ()
- < this->table_[this->earliest_position_]->earliest_time ())
- this->earliest_position_ = position;
-}
-
-// Insert a new handler that expires at time future_time; if interval
-// is > 0, the handler will be reinvoked periodically.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> long
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::schedule (const TYPE &type,
- const void *act,
- const ACE_Time_Value &future_time,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_Timer_Hash_T::schedule");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- size_t position =
- future_time.sec () % this->table_size_;
-
- Hash_Token *h;
-
- ACE_NEW_RETURN (h,
- Hash_Token (act,
- position,
- 0),
- -1);
-
- h->orig_id_ = this->table_[position]->schedule (type,
- h,
- future_time,
- interval);
-
- if (this->table_[this->earliest_position_]->is_empty ()
- || this->table_[position]->earliest_time ()
- < this->table_[this->earliest_position_]->earliest_time ())
- this->earliest_position_ = position;
-
- ++this->size_;
-
-#if defined (ACE_WIN64)
- // This is a Win64 hack, necessary because of the original (bad) decision
- // to use a pointer as the timer ID. This class doesn't follow the usual
- // timer expiration rules (see comments in header file) and is probably
- // not used much. The dynamic allocation of Hash_Tokens without
- // recording them anywhere is a large problem for Win64 since the
- // size of a pointer is 64 bits, but a long is 32. Since this class
- // is not much used, I'm hacking this, at least for now. If it becomes
- // an issue, I'll look at it again then.
- ptrdiff_t hi = ACE_reinterpret_cast (ptrdiff_t, h);
- if (this->pointer_base_ == 0)
- this->pointer_base_ = hi & 0xffffffff00000000;
- return ACE_reinterpret_cast (long, hi & 0xffffffff);
-#else
- return ACE_reinterpret_cast (long, h);
-#endif
-}
-
-// Locate and update the inteval on the timer_id
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> int
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::reset_interval (long timer_id,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_Timer_Hash_T::reset_interval");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- // Make sure we are getting a valid <timer_id>, not an error
- // returned by <schedule>.
- if (timer_id == -1)
- return -1;
-
-
-#if defined (ACE_WIN64)
- unsigned long timer_offset = ACE_static_cast (unsigned long, timer_id);
- Hash_Token *h = ACE_reinterpret_cast (Hash_Token *,
- (this->pointer_base_ + timer_offset));
-#else
- Hash_Token *h = ACE_reinterpret_cast (Hash_Token *,
- timer_id);
-#endif /* ACE_WIN64 */
-
- return this->table_[h->pos_]->reset_interval (h->orig_id_,
- interval);
-}
-
-// Locate and remove the single <ACE_Event_Handler> with a value of
-// <timer_id> from the correct table timer queue.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> int
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::cancel (long timer_id,
- const void **act,
- int dont_call)
-{
- ACE_TRACE ("ACE_Timer_Hash_T::cancel");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- // Make sure we are getting a valid <timer_id>, not an error
- // returned by <schedule>.
- if (timer_id == -1)
- return 0;
-
-#if defined (ACE_WIN64)
- unsigned long timer_offset = ACE_static_cast (unsigned long, timer_id);
- Hash_Token *h = ACE_reinterpret_cast (Hash_Token *,
- (this->pointer_base_ + timer_offset));
-#else
- Hash_Token *h = ACE_reinterpret_cast (Hash_Token *,
- timer_id);
-#endif /* ACE_WIN64 */
-
- int result = this->table_[h->pos_]->cancel (h->orig_id_,
- act,
- dont_call);
-
- if (h->pos_ == this->earliest_position_)
- this->find_new_earliest ();
-
- if (act != 0)
- *act = h->act_;
-
- delete h;
-
- --this->size_;
-
- return result;
-}
-
-// Locate and remove all values of <type> from the timer queue.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> int
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::cancel (const TYPE &type,
- int dont_call)
-{
- ACE_TRACE ("ACE_Timer_Hash_T::cancel");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- size_t i; // loop variable.
-
- Hash_Token **timer_ids;
-
- ACE_NEW_RETURN (timer_ids,
- Hash_Token *[this->size_],
- -1);
- size_t pos = 0;
-
- for (i = 0;
- i < this->table_size_;
- i++)
- {
- ACE_Timer_Queue_Iterator_T<TYPE,
- ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>,
- ACE_Null_Mutex> &iter =
- this->table_[i]->iter ();
-
- for (iter.first ();
- !iter.isdone ();
- iter.next ())
- if (iter.item ()->get_type () == type)
- timer_ids[pos++] =
- ACE_reinterpret_cast (Hash_Token *,
- ACE_const_cast (void *,
- iter.item ()->get_act ()));
- }
-
- if (pos > this->size_)
- return -1;
-
- for (i = 0; i < pos; i++)
- {
- this->table_[timer_ids[i]->pos_]->cancel (timer_ids[i]->orig_id_,
- 0,
- 1);
- delete timer_ids[i];
- --this->size_;
- }
-
- delete [] timer_ids;
-
- if (dont_call == 0)
- this->upcall_functor ().cancellation (*this,
- type);
- this->find_new_earliest ();
-
- return ACE_static_cast (int, pos);
-}
-
-// Removes the earliest node and finds the new earliest position
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::remove_first (void)
-{
- if (this->is_empty ())
- return 0;
-
- ACE_Timer_Node_T<TYPE> *temp =
- this->table_[this->earliest_position_]->remove_first ();
-
- this->find_new_earliest ();
-
- --this->size_;
-
- return temp;
-}
-
-// Finds a new earliest position
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> void
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::find_new_earliest (void)
-{
- for (size_t i = 0; i < this->table_size_; i++)
- if (!this->table_[i]->is_empty ())
- if (this->table_[this->earliest_position_]->is_empty ()
- || this->earliest_time () == ACE_Time_Value::zero
- || this->table_[i]->earliest_time () <= this->earliest_time ())
- this->earliest_position_ = i;
-}
-
-// Returns the earliest node without removing it
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::get_first (void)
-{
- ACE_TRACE ("ACE_Timer_Hash_T::get_first");
-
- if (this->is_empty ())
- return 0;
-
- return this->table_[this->earliest_position_]->get_first ();
-}
-
-// Dummy version of expire to get rid of warnings in Sun CC 4.2
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> int
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::expire ()
-{
- return ACE_Timer_Queue_T<TYPE,FUNCTOR,ACE_LOCK>::expire();
-}
-
-// Specialized expire for Timer Hash
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> int
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::expire (const ACE_Time_Value &cur_time)
-{
- ACE_TRACE ("ACE_Timer_Hash_T::expire");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- int number_of_timers_expired = 0;
-
- ACE_Timer_Node_T<TYPE> *expired;
-
- // Go through the table and expire anything that can be expired
-
- for (size_t i = 0;
- i < this->table_size_;
- i++)
- {
- while (!this->table_[i]->is_empty ()
- && this->table_[i]->earliest_time () <= cur_time)
- {
- expired = this->table_[i]->get_first ();
- TYPE type = expired->get_type ();
- const void *act = expired->get_act ();
- int reclaim = 1;
-
- // Check if this is an interval timer.
- if (expired->get_interval () > ACE_Time_Value::zero)
- {
- // Make sure that we skip past values that have already
- // "expired".
- do
- expired->set_timer_value (expired->get_timer_value ()
- + expired->get_interval ());
- while (expired->get_timer_value () <= cur_time);
-
- // Since this is an interval timer, we need to
- // reschedule it.
- this->reschedule (expired);
- reclaim = 0;
- }
-
- // Now remove the timer from the original table... if
- // it's a simple, non-recurring timer, it's got to be
- // removed anyway. If it was rescheduled, it's been
- // scheduled into the correct table (regardless of whether
- // it's the same one or not) already.
- this->table_[i]->cancel (expired->get_timer_id ());
-
- Hash_Token *h = ACE_reinterpret_cast (Hash_Token *,
- ACE_const_cast (void *,
- act));
- // Call the functor.
- this->upcall (type,
- h->act_,
- cur_time);
- if (reclaim)
- {
- --this->size_;
- delete h;
- }
- number_of_timers_expired++;
- }
- }
-
- return number_of_timers_expired;
-}
-
-#endif /* ACE_TIMER_HASH_T_C */
diff --git a/ace/Timer_Hash_T.h b/ace/Timer_Hash_T.h
deleted file mode 100644
index 3e0d0548427..00000000000
--- a/ace/Timer_Hash_T.h
+++ /dev/null
@@ -1,289 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Timer_Hash_T.h
- *
- * $Id$
- *
- * @author Darrell Brunsch <brunsch@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_TIMER_HASH_T_H
-#define ACE_TIMER_HASH_T_H
-#include "ace/pre.h"
-
-#include "ace/Timer_Queue_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Free_List.h"
-
-// Forward declaration.
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
-class ACE_Timer_Hash_T;
-
-/**
- * @class ACE_Timer_Hash_Upcall
- *
- * @brief Functor for Timer_Hash
- *
- * This class calls up to the Timer Hash's functor from the
- * timer queues in the hash table
- */
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-class ACE_Timer_Hash_Upcall
-{
-public:
- typedef ACE_Timer_Queue_T<ACE_Event_Handler *,
- ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>,
- ACE_Null_Mutex>
- TIMER_QUEUE;
-
- /// Default constructor (creates an invalid object, but needs to be here
- /// so timer queues using this functor can be constructed)
- ACE_Timer_Hash_Upcall (void);
-
- /// Constructor that specifies a Timer_Hash to call up to
- ACE_Timer_Hash_Upcall (ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> *timer_hash);
-
- /// This method is called when the timer expires
- int timeout (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- const void *arg,
- const ACE_Time_Value &cur_time);
-
- /// This method is called when the timer is cancelled
- int cancellation (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler);
-
- /// This method is called when the timer queue is destroyed and
- /// the timer is still contained in it
- int deletion (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- const void *arg);
-
-private:
- /// Timer Queue to do the calling up to
- ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> *timer_hash_;
-
- // = Don't allow these operations for now.
- ACE_UNIMPLEMENTED_FUNC (ACE_Timer_Hash_Upcall (const ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK> &))
-};
-
-/**
- * @class ACE_Timer_Hash_Iterator_T
- *
- * @brief Iterates over an <ACE_Timer_Hash_T>.
- *
- * This is a generic iterator that can be used to visit every
- * node of a timer queue. Be aware that it doesn't transverse
- * in the order of timeout values.
- */
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
-class ACE_Timer_Hash_Iterator_T : public ACE_Timer_Queue_Iterator_T <TYPE, FUNCTOR, ACE_LOCK>
-{
-public:
- /// Constructor.
- ACE_Timer_Hash_Iterator_T (ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET> &);
-
- /// Positions the iterator at the earliest node in the Timer Queue
- virtual void first (void);
-
- /// Positions the iterator at the next node in the Timer Queue
- virtual void next (void);
-
- /// Returns true when there are no more nodes in the sequence
- virtual int isdone (void) const;
-
- /// Returns the node at the current position in the sequence
- virtual ACE_Timer_Node_T<TYPE> *item (void);
-
-protected:
- /// Pointer to the <ACE_Timer_Hash> that we are iterating over.
- ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET> &timer_hash_;
-
- /// Current position in <timer_hash_>'s table
- size_t position_;
-
- /// Current iterator used on <position>'s bucket
- ACE_Timer_Queue_Iterator_T<TYPE, ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>, ACE_Null_Mutex> *iter_;
-};
-
-/**
- * @class ACE_Timer_Hash_T
- *
- * @brief Provides a hash table of <BUCKET>s as an implementation for
- * a timer queue.
- *
- * This implementation uses a hash table of BUCKETs. The hash
- * is based on the time_value of the event. Unlike other Timer
- * Queues, ACE_Timer_Hash does not expire events in order.
- */
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
-class ACE_Timer_Hash_T : public ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>
-{
-public:
- /// Type of iterator
- typedef ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>
- HASH_ITERATOR;
-
- /// Iterator is a friend
- friend class ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>;
-
- /// Type inherited from
- typedef ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> INHERITED;
-
- // = Initialization and termination methods.
- /**
- * Default constructor. <table_size> determines the size of the
- * hash table. <upcall_functor> is the instance of the FUNCTOR
- * to be used by the buckets. If <upcall_functor> is 0, a default
- * FUNCTOR will be created.
- */
- ACE_Timer_Hash_T (size_t table_size,
- FUNCTOR *upcall_functor = 0,
- ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist = 0);
-
- /**
- * Default constructor. <upcall_functor> is the instance of the
- * FUNCTOR to be used by the queue. If <upcall_functor> is 0, Timer
- * Hash will create a default FUNCTOR. <freelist> the freelist of
- * timer nodes. If 0, then a default freelist will be created. The default
- * size will be ACE_DEFAULT_TIMERS and there will be no preallocation.
- */
- ACE_Timer_Hash_T (FUNCTOR *upcall_functor = 0, ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist = 0);
-
- /// Destructor
- virtual ~ACE_Timer_Hash_T (void);
-
- /// True if queue is empty, else false.
- virtual int is_empty (void) const;
-
- /// Returns the time of the earlier node in the <ACE_Timer_Hash>.
- /// Must be called on a non-empty queue.
- virtual const ACE_Time_Value &earliest_time (void) const;
-
- /**
- * Schedule <type> that will expire at <future_time>,
- * which is specified in absolute time. If it expires then <act> is
- * passed in as the value to the <functor>. If <interval> is != to
- * <ACE_Time_Value::zero> then it is used to reschedule the <type>
- * automatically, using relative time to the current <gettimeofday>.
- * This method returns a <timer_id> that is a pointer to a token
- * which stores information about the event. This <timer_id> can be
- * used to cancel the timer before it expires. Returns -1 on
- * failure.
- */
- virtual long schedule (const TYPE &type,
- const void *act,
- const ACE_Time_Value &future_time,
- const ACE_Time_Value &interval = ACE_Time_Value::zero);
-
- /**
- * Resets the interval of the timer represented by <timer_id> to
- * <interval>, which is specified in relative time to the current
- * <gettimeofday>. If <interval> is equal to
- * <ACE_Time_Value::zero>, the timer will become a non-rescheduling
- * timer. Returns 0 if successful, -1 if not.
- */
- virtual int reset_interval (long timer_id,
- const ACE_Time_Value &interval);
-
- /**
- * Cancel all timer associated with <type>. If <dont_call> is 0
- * then the <functor> will be invoked. Returns number of timers
- * cancelled.
- */
- virtual int cancel (const TYPE &type,
- int dont_call_handle_close = 1);
-
- /**
- * Cancel the single timer that matches the <timer_id> value (which
- * was returned from the <schedule> method). If act is non-NULL
- * then it will be set to point to the ``magic cookie'' argument
- * passed in when the timer was registered. This makes it possible
- * to free up the memory and avoid memory leaks. If <dont_call> is
- * 0 then the <functor> will be invoked. Returns 1 if cancellation
- * succeeded and 0 if the <timer_id> wasn't found.
- */
- virtual int cancel (long timer_id,
- const void **act = 0,
- int dont_call_handle_close = 1);
-
- /**
- * Run the <functor> for all timers whose values are <=
- * <ACE_OS::gettimeofday>. Also accounts for <timer_skew>. Returns
- * the number of timers canceled.
- */
- virtual int expire (void);
-
- /**
- * Run the <functor> for all timers whose values are <= <cur_time>.
- * This does not account for <timer_skew>. Returns the number of
- * timers canceled.
- */
- virtual int expire (const ACE_Time_Value &current_time);
-
- /// Returns a pointer to this <ACE_Timer_Queue>'s iterator.
- virtual ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> &iter (void);
-
- /// Removes the earliest node from the queue and returns it
- virtual ACE_Timer_Node_T<TYPE> *remove_first (void);
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Reads the earliest node from the queue and returns it.
- virtual ACE_Timer_Node_T<TYPE> *get_first (void);
-
-private:
- /// Reschedule an "interval" <ACE_Timer_Node>.
- virtual void reschedule (ACE_Timer_Node_T<TYPE> *);
-
- /// Finds the earliest node
- void find_new_earliest (void);
-
- /// Keeps track of the size of the queue
- size_t size_;
-
- /// Table of BUCKETS
- BUCKET **table_;
-
- /// Keeps track of the size of table_
- size_t table_size_;
-
- /// Functor used for the table's timer queues
- ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK> table_functor_;
-
- /// Index to the position with the earliest entry
- size_t earliest_position_;
-
- /// Iterator used to expire timers.
- HASH_ITERATOR *iterator_;
-
-#if defined (ACE_WIN64)
- // Part of a hack... see comments in schedule().
- // This is, essentially, the upper 32 bits of a 64-bit pointer on Win64.
- ptrdiff_t pointer_base_;
-#endif
-
- // = Don't allow these operations for now.
- ACE_UNIMPLEMENTED_FUNC (ACE_Timer_Hash_T (const ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET> &))
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET> &))
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) && !defined(ACE_HAS_BROKEN_HPUX_TEMPLATES)
-#include "ace/Timer_Hash_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE && !ACE_HAS_BROKEN_HPUX_TEMPLATES */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Timer_Hash_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_TIMER_HASH_T_H */
diff --git a/ace/Timer_Heap.cpp b/ace/Timer_Heap.cpp
deleted file mode 100644
index 63e9f886bcc..00000000000
--- a/ace/Timer_Heap.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// $Id$
-
-#if !defined (ACE_TIMER_HEAP_C)
-#define ACE_TIMER_HEAP_C
-
-#include "ace/Timer_Heap.h"
-
-ACE_RCSID(ace, Timer_Heap, "$Id$")
-
-#if defined (ACE_HAS_BROKEN_HPUX_TEMPLATES)
-#include "ace/Timer_Hash.h"
-#include "ace/Timer_Heap_T.cpp"
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class
- ACE_Timer_Heap_T<
- ACE_Event_Handler*,
- ACE_Timer_Hash_Upcall<
- ACE_Event_Handler*,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>,
- ACE_Null_Mutex>,
- ACE_Null_Mutex>;
-
-template class
- ACE_Timer_Heap_Iterator_T<
- ACE_Event_Handler*,
- ACE_Timer_Hash_Upcall<
- ACE_Event_Handler*,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>,
- ACE_Null_Mutex>,
- ACE_Null_Mutex>;
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /* ACE_HAS_BROKEN_HPUX_TEMPLATES */
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Timer_Heap_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Heap_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Timer_Heap_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>
-#pragma instantiate ACE_Timer_Heap_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_TIMER_HEAP_C */
diff --git a/ace/Timer_Heap.h b/ace/Timer_Heap.h
deleted file mode 100644
index 52b211fab10..00000000000
--- a/ace/Timer_Heap.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Timer_Heap.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_TIMER_HEAP_H
-#define ACE_TIMER_HEAP_H
-#include "ace/pre.h"
-
-#include "ace/Timer_Heap_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// The following typedef are here for ease of use and backward
-// compatibility.
-
-typedef ACE_Timer_Heap_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX>
- ACE_Timer_Heap;
-
-typedef ACE_Timer_Heap_Iterator_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX>
- ACE_Timer_Heap_Iterator;
-
-#include "ace/post.h"
-#endif /* ACE_TIMER_HEAP_H */
diff --git a/ace/Timer_Heap_T.cpp b/ace/Timer_Heap_T.cpp
deleted file mode 100644
index a9aae8639fc..00000000000
--- a/ace/Timer_Heap_T.cpp
+++ /dev/null
@@ -1,787 +0,0 @@
-// $Id$
-
-#ifndef ACE_TIMER_HEAP_T_C
-#define ACE_TIMER_HEAP_T_C
-
-#include "ace/Timer_Heap_T.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, Timer_Heap_T, "$Id$")
-
-// Define some simple macros to clarify the code.
-#define ACE_HEAP_PARENT(X) (X == 0 ? 0 : (((X) - 1) / 2))
-#define ACE_HEAP_LCHILD(X) (((X)+(X))+1)
-
-// Constructor that takes in an <ACE_Timer_Heap_T> to iterate over.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Heap_Iterator_T (ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK> &heap)
- : timer_heap_ (heap)
-{
- ACE_TRACE ("ACE_Timer_Heap_Iterator_T::ACE_Timer_Heap_Iterator");
- this->first();
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_Heap_Iterator_T (void)
-{
-}
-
-// Positions the iterator at the first node in the heap array
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::first (void)
-{
- this->position_ = 0;
-}
-
-// Positions the iterator at the next node in the heap array
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::next (void)
-{
- if (this->position_ != this->timer_heap_.cur_size_)
- this->position_++;
-}
-
-// Returns true the <position_> is at the end of the heap array
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::isdone (void) const
-{
- return this->position_ == this->timer_heap_.cur_size_;
-}
-
-// Returns the node at the current position in the heap or 0 if at the end
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::item (void)
-{
- if (this->position_ != this->timer_heap_.cur_size_)
- return this->timer_heap_.heap_[this->position_];
- return 0;
-}
-
-// Constructor
-// Note that timer_ids_curr_ and timer_ids_min_free_ both start at 0.
-// Since timer IDs are assigned by first incrementing the timer_ids_curr_
-// value, the first ID assigned will be 1 (just as in the previous design).
-// When it's time to wrap, the next ID given out will be 0.
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Heap_T (size_t size,
- int preallocate,
- FUNCTOR *upcall_functor,
- ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist)
- : ACE_Timer_Queue_T<TYPE,FUNCTOR,ACE_LOCK> (upcall_functor, freelist),
- max_size_ (size),
- cur_size_ (0),
- cur_limbo_ (0),
- timer_ids_curr_ (0),
- timer_ids_min_free_ (0),
- preallocated_nodes_ (0),
- preallocated_nodes_freelist_ (0)
-{
- ACE_TRACE ("ACE_Timer_Heap_T::ACE_Timer_Heap_T");
-
- // Create the heap array.
- ACE_NEW (this->heap_,
- ACE_Timer_Node_T<TYPE> *[size]);
-
- // Create the parallel
- ACE_NEW (this->timer_ids_,
- ssize_t[size]);
-
- // Initialize the "freelist," which uses negative values to
- // distinguish freelist elements from "pointers" into the <heap_>
- // array.
- for (size_t i = 0; i < size; i++)
- this->timer_ids_[i] = -1;
-
- if (preallocate)
- {
- ACE_NEW (this->preallocated_nodes_,
- ACE_Timer_Node_T<TYPE>[size]);
-
- // Add allocated array to set of such arrays for deletion on
- // cleanup.
- this->preallocated_node_set_.insert (this->preallocated_nodes_);
-
- // Form the freelist by linking the next_ pointers together.
- for (size_t j = 1; j < size; j++)
- this->preallocated_nodes_[j - 1].set_next (&this->preallocated_nodes_[j]);
-
- // NULL-terminate the freelist.
- this->preallocated_nodes_[size - 1].set_next (0);
-
- // Assign the freelist pointer to the front of the list.
- this->preallocated_nodes_freelist_ =
- &this->preallocated_nodes_[0];
- }
-
- ACE_NEW (iterator_,
- HEAP_ITERATOR (*this));
-}
-
-// Note that timer_ids_curr_ and timer_ids_min_free_ both start at 0.
-// Since timer IDs are assigned by first incrementing the timer_ids_curr_
-// value, the first ID assigned will be 1 (just as in the previous design).
-// When it's time to wrap, the next ID given out will be 0.
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Heap_T (FUNCTOR *upcall_functor,
- ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist)
- : ACE_Timer_Queue_T<TYPE,FUNCTOR,ACE_LOCK> (upcall_functor, freelist),
- max_size_ (ACE_DEFAULT_TIMERS),
- cur_size_ (0),
- cur_limbo_ (0),
- timer_ids_curr_ (0),
- timer_ids_min_free_ (0),
- preallocated_nodes_ (0),
- preallocated_nodes_freelist_ (0)
-{
- ACE_TRACE ("ACE_Timer_Heap_T::ACE_Timer_Heap_T");
-
- // Create the heap array.
-#if defined (__IBMCPP__) && (__IBMCPP__ >= 400) && defined (_WINDOWS)
- ACE_NEW (this->heap_,
- ACE_Timer_Node_T<TYPE> *[ACE_DEFAULT_TIMERS]);
-#else
- ACE_NEW (this->heap_,
- ACE_Timer_Node_T<TYPE> *[this->max_size_]);
-#endif /* defined (__IBMCPP__) && (__IBMCPP__ >= 400) && defined (_WINDOWS) */
-
- // Create the parallel array.
- ACE_NEW (this->timer_ids_,
- ssize_t[this->max_size_]);
-
- // Initialize the "freelist," which uses negative values to
- // distinguish freelist elements from "pointers" into the <heap_>
- // array.
- for (size_t i = 0; i < this->max_size_; i++)
- this->timer_ids_[i] = -1;
-
- ACE_NEW (iterator_,
- HEAP_ITERATOR (*this));
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_Heap_T (void)
-{
- ACE_TRACE ("ACE_Timer_Heap_T::~ACE_Timer_Heap_T");
-
- delete iterator_;
-
- // Clean up all the nodes still in the queue
- for (size_t i = 0; i < this->cur_size_; i++)
- {
- this->upcall_functor ().deletion (*this,
- this->heap_[i]->get_type (),
- this->heap_[i]->get_act ());
- this->free_node (this->heap_[i]);
- }
-
- delete [] this->heap_;
- delete [] this->timer_ids_;
-
- // clean up any preallocated timer nodes
- if (preallocated_nodes_ != 0)
- {
- ACE_Unbounded_Set_Iterator<ACE_Timer_Node_T<TYPE> *>
- set_iterator (this->preallocated_node_set_);
-
- for (ACE_Timer_Node_T<TYPE> **entry = 0;
- set_iterator.next (entry) !=0;
- set_iterator.advance ())
- delete [] *entry;
- }
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::pop_freelist (void)
-{
- ACE_TRACE ("ACE_Timer_Heap_T::pop_freelist");
-
- // Scan for a free timer ID. Note that since this function is called
- // _after_ the check for a full timer heap, we are guaranteed to find
- // a free ID, even if we need to wrap around and start reusing freed IDs.
- // On entry, the curr_ index is at the previous ID given out; start
- // up where we left off last time.
- // NOTE - a timer_ids_ slot with -2 is out of the heap, but not freed.
- // It must be either freed (free_node) or rescheduled (reschedule).
- ++this->timer_ids_curr_;
- while (this->timer_ids_curr_ < this->max_size_ &&
- (this->timer_ids_[this->timer_ids_curr_] >= 0 ||
- this->timer_ids_[this->timer_ids_curr_] == -2 ))
- ++this->timer_ids_curr_;
- if (this->timer_ids_curr_ == this->max_size_)
- {
- ACE_ASSERT (this->timer_ids_min_free_ < this->max_size_);
- this->timer_ids_curr_ = this->timer_ids_min_free_;
- // We restarted the free search at min. Since min won't be
- // free anymore, and curr_ will just keep marching up the list
- // on each successive need for an ID, reset min_free_ to the
- // size of the list until an ID is freed that curr_ has already
- // gone past (see push_freelist).
- this->timer_ids_min_free_ = this->max_size_;
- }
-
- // We need to truncate this to <int> for backwards compatibility.
- int new_id = ACE_static_cast (int,
- this->timer_ids_curr_);
- return new_id;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::push_freelist (int old_id)
-{
- ACE_TRACE ("ACE_Timer_Heap_T::push_freelist");
-
- // Since this ID has already been checked by one of the public
- // functions, it's safe to cast it here.
- size_t oldid = size_t (old_id);
-
- // The freelist values in the <timer_ids_> are negative, so set the
- // freed entry back to 'free'. If this is the new lowest value free
- // timer ID that curr_ won't see on it's normal march through the list,
- // remember it.
- ACE_ASSERT (this->timer_ids_[oldid] >= 0 || this->timer_ids_[oldid] == -2);
- if (this->timer_ids_[oldid] == -2)
- --this->cur_limbo_;
- else
- --this->cur_size_;
- this->timer_ids_[oldid] = -1;
- if (oldid < this->timer_ids_min_free_ && oldid <= this->timer_ids_curr_)
- this->timer_ids_min_free_ = oldid;
- return;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::timer_id (void)
-{
- ACE_TRACE ("ACE_Timer_Heap_T::timer_id");
-
- // Return the next item off the freelist and use it as the timer id.
- return this->pop_freelist ();
-}
-
-// Checks if queue is empty.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::is_empty (void) const
-{
- ACE_TRACE ("ACE_Timer_Heap_T::is_empty");
- return this->cur_size_ == 0;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> &
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::iter (void)
-{
- this->iterator_->first ();
- return *this->iterator_;
-}
-
-// Returns earliest time in a non-empty queue.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> const ACE_Time_Value &
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::earliest_time (void) const
-{
- ACE_TRACE ("ACE_Timer_Heap_T::earliest_time");
- return this->heap_[0]->get_timer_value ();
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::dump (void) const
-{
- ACE_TRACE ("ACE_Timer_Heap_T::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nmax_size_ = %d"), this->max_size_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncur_size_ = %d"), this->cur_size_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncur_limbo_= %d"), this->cur_limbo_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nids_curr_ = %d"),
- this->timer_ids_curr_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nmin_free_ = %d"),
- this->timer_ids_min_free_));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nheap_ = \n")));
-
- for (size_t i = 0; i < this->cur_size_; i++)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("%d\n"),
- i));
- this->heap_[i]->dump ();
- }
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ntimer_ids_ = \n")));
-
- for (size_t j = 0; j < this->max_size_; j++)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("%d\t%d\n"),
- j,
- this->timer_ids_[j]));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::copy (size_t slot,
- ACE_Timer_Node_T<TYPE> *moved_node)
-{
- // Insert <moved_node> into its new location in the heap.
- this->heap_[slot] = moved_node;
-
- ACE_ASSERT (moved_node->get_timer_id () >= 0
- && moved_node->get_timer_id () < (int) this->max_size_);
-
- // Update the corresponding slot in the parallel <timer_ids_> array.
- this->timer_ids_[moved_node->get_timer_id ()] = slot;
-}
-
-// Remove the slot'th timer node from the heap, but do not reclaim its
-// timer ID or change the size of this timer heap object. The caller of
-// this function must call either free_node (to reclaim the timer ID
-// and the timer node memory, as well as decrement the size of the queue)
-// or reschedule (to reinsert the node in the heap at a new time).
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::remove (size_t slot)
-{
- ACE_Timer_Node_T<TYPE> *removed_node =
- this->heap_[slot];
-
- // NOTE - the cur_size_ is being decremented since the queue has one
- // less active timer in it. However, this ACE_Timer_Node is not being
- // freed, and there is still a place for it in timer_ids_ (the timer ID
- // is not being relinquished). The node can still be rescheduled, or
- // it can be freed via free_node.
- --this->cur_size_;
-
- // Only try to reheapify if we're not deleting the last entry.
-
- if (slot < this->cur_size_)
- {
- ACE_Timer_Node_T<TYPE> *moved_node =
- this->heap_[this->cur_size_];
-
- // Move the end node to the location being removed and update
- // the corresponding slot in the parallel <timer_ids> array.
- this->copy (slot, moved_node);
-
- // If the <moved_node->time_value_> is great than or equal its
- // parent it needs be moved down the heap.
- size_t parent = ACE_HEAP_PARENT (slot);
-
- if (moved_node->get_timer_value ()
- >= this->heap_[parent]->get_timer_value ())
- this->reheap_down (moved_node,
- slot,
- ACE_HEAP_LCHILD (slot));
- else
- this->reheap_up (moved_node,
- slot,
- parent);
- }
-
- this->timer_ids_[removed_node->get_timer_id ()] = -2;
- ++this->cur_limbo_;
- return removed_node;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::reheap_down (ACE_Timer_Node_T<TYPE> *moved_node,
- size_t slot,
- size_t child)
-{
- // Restore the heap property after a deletion.
-
- while (child < this->cur_size_)
- {
- // Choose the smaller of the two children.
- if (child + 1 < this->cur_size_
- && this->heap_[child + 1]->get_timer_value ()
- < this->heap_[child]->get_timer_value ())
- child++;
-
- // Perform a <copy> if the child has a larger timeout value than
- // the <moved_node>.
- if (this->heap_[child]->get_timer_value ()
- < moved_node->get_timer_value ())
- {
- this->copy (slot,
- this->heap_[child]);
- slot = child;
- child = ACE_HEAP_LCHILD (child);
- }
- else
- // We've found our location in the heap.
- break;
- }
-
- this->copy (slot, moved_node);
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::reheap_up (ACE_Timer_Node_T<TYPE> *moved_node,
- size_t slot,
- size_t parent)
-{
- // Restore the heap property after an insertion.
-
- while (slot > 0)
- {
- // If the parent node is greater than the <moved_node> we need
- // to copy it down.
- if (moved_node->get_timer_value ()
- < this->heap_[parent]->get_timer_value ())
- {
- this->copy (slot, this->heap_[parent]);
- slot = parent;
- parent = ACE_HEAP_PARENT (slot);
- }
- else
- break;
- }
-
- // Insert the new node into its proper resting place in the heap and
- // update the corresponding slot in the parallel <timer_ids> array.
- this->copy (slot,
- moved_node);
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::insert (ACE_Timer_Node_T<TYPE> *new_node)
-{
- if (this->cur_size_ + 2 >= this->max_size_)
- this->grow_heap ();
-
- this->reheap_up (new_node,
- this->cur_size_,
- ACE_HEAP_PARENT (this->cur_size_));
- this->cur_size_++;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::grow_heap (void)
-{
- // All the containers will double in size from max_size_
- size_t new_size = this->max_size_ * 2;
-
- // First grow the heap itself.
-
- ACE_Timer_Node_T<TYPE> **new_heap = 0;
-
-#if defined (__IBMCPP__) && (__IBMCPP__ >= 400) && defined (_WINDOWS)
- ACE_NEW (new_heap,
- ACE_Timer_Node_T<TYPE> *[1024]);
-#else
- ACE_NEW (new_heap,
- ACE_Timer_Node_T<TYPE> *[new_size]);
-#endif /* defined (__IBMCPP__) && (__IBMCPP__ >= 400) && defined (_WINDOWS) */
- ACE_OS::memcpy (new_heap,
- this->heap_,
- this->max_size_ * sizeof *new_heap);
- delete [] this->heap_;
- this->heap_ = new_heap;
-
- // Grow the array of timer ids.
-
- ssize_t *new_timer_ids = 0;
-
- ACE_NEW (new_timer_ids,
- ssize_t[new_size]);
-
- ACE_OS::memcpy (new_timer_ids,
- this->timer_ids_,
- this->max_size_ * sizeof (ssize_t));
-
- delete [] timer_ids_;
- this->timer_ids_ = new_timer_ids;
-
- // And add the new elements to the end of the "freelist".
- for (size_t i = this->max_size_; i < new_size; i++)
- this->timer_ids_[i] = -(ACE_static_cast (ssize_t, i) + 1);
-
- // Grow the preallocation array (if using preallocation)
- if (this->preallocated_nodes_ != 0)
- {
- // Create a new array with max_size elements to link in to
- // existing list.
-#if defined (__IBMCPP__) && (__IBMCPP__ >= 400) && defined (_WINDOWS)
- ACE_NEW (this->preallocated_nodes_,
- ACE_Timer_Node_T<TYPE>[88]);
-#else
- ACE_NEW (this->preallocated_nodes_,
- ACE_Timer_Node_T<TYPE>[this->max_size_]);
-#endif /* defined (__IBMCPP__) && (__IBMCPP__ >= 400) && defined (_WINDOWS) */
-
- // Add it to the set for later deletion
- this->preallocated_node_set_.insert (this->preallocated_nodes_);
-
- // Link new nodes together (as for original list).
- for (size_t k = 1; k < this->max_size_; k++)
- this->preallocated_nodes_[k - 1].set_next (&this->preallocated_nodes_[k]);
-
- // NULL-terminate the new list.
- this->preallocated_nodes_[this->max_size_ - 1].set_next (0);
-
- // Link new array to the end of the existling list.
- if (this->preallocated_nodes_freelist_ == 0)
- this->preallocated_nodes_freelist_ =
- &preallocated_nodes_[0];
- else
- {
- ACE_Timer_Node_T<TYPE> *previous =
- this->preallocated_nodes_freelist_;
-
- for (ACE_Timer_Node_T<TYPE> *current = this->preallocated_nodes_freelist_->get_next ();
- current != 0;
- current = current->get_next ())
- previous = current;
-
- previous->set_next (&this->preallocated_nodes_[0]);
- }
- }
-
- this->max_size_ = new_size;
-}
-
-// Reschedule a periodic timer. This function must be called with the
-// mutex lock held.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::reschedule (ACE_Timer_Node_T<TYPE> *expired)
-{
- ACE_TRACE ("ACE_Timer_Heap_T::reschedule");
-
- // If we are rescheduling, then the most recent call was to
- // remove_first (). That called remove () to remove the node from the
- // heap, but did not free the timer ID. The ACE_Timer_Node still has
- // its assigned ID - just needs to be inserted at the new proper
- // place, and the heap restored properly.
- if (this->timer_ids_[expired->get_timer_id ()] == -2)
- --this->cur_limbo_;
- this->insert (expired);
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::alloc_node (void)
-{
- ACE_Timer_Node_T<TYPE> *temp = 0;
-
- // Only allocate a node if we are *not* using the preallocated heap.
- if (this->preallocated_nodes_ == 0)
- ACE_NEW_RETURN (temp,
- ACE_Timer_Node_T<TYPE>,
- 0);
- else
- {
- // check to see if the heap needs to grow
- if (this->preallocated_nodes_freelist_ == 0)
- this->grow_heap ();
-
- temp = this->preallocated_nodes_freelist_;
-
- // Remove the first element from the freelist.
- this->preallocated_nodes_freelist_ =
- this->preallocated_nodes_freelist_->get_next ();
- }
- return temp;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::free_node (ACE_Timer_Node_T<TYPE> *node)
-{
-
- // Return this timer id to the freelist.
- this->push_freelist (node->get_timer_id ());
-
- // Only free up a node if we are *not* using the preallocated heap.
- if (this->preallocated_nodes_ == 0)
- delete node;
- else
- {
- node->set_next (this->preallocated_nodes_freelist_);
- this->preallocated_nodes_freelist_ = node;
- }
-}
-
-// Insert a new timer that expires at time future_time; if interval is
-// > 0, the handler will be reinvoked periodically.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> long
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::schedule (const TYPE &type,
- const void *act,
- const ACE_Time_Value &future_time,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_Timer_Heap_T::schedule");
-
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- if ((this->cur_size_ + this->cur_limbo_) < this->max_size_)
- {
- // Obtain the next unique sequence number.
- int timer_id = this->timer_id ();
-
- // Obtain the memory to the new node.
- ACE_Timer_Node_T<TYPE> *temp = 0;
-
- ACE_ALLOCATOR_RETURN (temp,
- this->alloc_node (),
- -1);
- temp->set (type,
- act,
- future_time,
- interval,
- 0,
- timer_id);
-
- this->insert (temp);
- return timer_id;
- }
- else
- return -1;
-}
-
-// Locate and remove the single timer with a value of <timer_id> from
-// the timer queue.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (long timer_id,
- const void **act,
- int dont_call)
-{
- ACE_TRACE ("ACE_Timer_Heap_T::cancel");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- // Locate the ACE_Timer_Node that corresponds to the timer_id.
-
- // Check to see if the timer_id is out of range
- if (timer_id < 0
- || (size_t) timer_id > this->max_size_)
- return 0;
-
- ssize_t timer_node_slot = this->timer_ids_[timer_id];
-
- // Check to see if timer_id is still valid.
- if (timer_node_slot < 0)
- return 0;
-
- if (timer_id != this->heap_[timer_node_slot]->get_timer_id ())
- {
- ACE_ASSERT (timer_id == this->heap_[timer_node_slot]->get_timer_id ());
- return 0;
- }
- else
- {
- ACE_Timer_Node_T<TYPE> *temp =
- this->remove (timer_node_slot);
-
- if (dont_call == 0)
- // Call the close hook.
- this->upcall_functor ().cancellation (*this,
- temp->get_type ());
-
- if (act != 0)
- *act = temp->get_act ();
-
- this->free_node (temp);
- return 1;
- }
-}
-
-// Locate and update the inteval on the timer_id
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::reset_interval (long timer_id,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_Timer_Heap_T::reset_interval");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- // Locate the ACE_Timer_Node that corresponds to the timer_id.
-
- // Check to see if the timer_id is out of range
- if (timer_id < 0
- || (size_t) timer_id > this->max_size_)
- return -1;
-
- ssize_t timer_node_slot = this->timer_ids_[timer_id];
-
- // Check to see if timer_id is still valid.
- if (timer_node_slot < 0)
- return -1;
-
- if (timer_id != this->heap_[timer_node_slot]->get_timer_id ())
- {
- ACE_ASSERT (timer_id == this->heap_[timer_node_slot]->get_timer_id ());
- return -1;
- }
- else
- {
- // Reset the timer interval
- this->heap_[timer_node_slot]->set_interval (interval);
- return 0;
- }
-}
-
-// Locate and remove all values of <type> from the timer queue.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (const TYPE &type,
- int dont_call)
-{
- ACE_TRACE ("ACE_Timer_Heap_T::cancel");
-
- int number_of_cancellations = 0;
-
- // Try to locate the ACE_Timer_Node that matches the timer_id.
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- for (size_t i = 0; i < this->cur_size_; )
- {
- if (this->heap_[i]->get_type () == type)
- {
- ACE_Timer_Node_T<TYPE> *temp = this->remove (i);
-
- number_of_cancellations++;
-
- this->free_node (temp);
- }
- else
- i++;
- }
- }
-
- if (dont_call == 0)
- this->upcall_functor ().cancellation (*this, type);
-
- return number_of_cancellations;
-}
-
-// Returns the earliest node or returns 0 if the heap is empty.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T <TYPE> *
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::remove_first (void)
-{
- ACE_TRACE ("ACE_Timer_Heap_T::remove_first");
-
- if (this->cur_size_ == 0)
- return 0;
-
- return this->remove (0);
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T <TYPE> *
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::get_first (void)
-{
- ACE_TRACE ("ACE_Timer_Heap_T::get_first");
-
- return this->cur_size_ == 0 ? 0 : this->heap_[0];
-}
-
-#endif /* ACE_TIMER_HEAP_T_C */
diff --git a/ace/Timer_Heap_T.h b/ace/Timer_Heap_T.h
deleted file mode 100644
index 73ba57dd3e2..00000000000
--- a/ace/Timer_Heap_T.h
+++ /dev/null
@@ -1,333 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Timer_Heap_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_TIMER_HEAP_T_H
-#define ACE_TIMER_HEAP_T_H
-#include "ace/pre.h"
-
-#include "ace/Timer_Queue_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Free_List.h"
-#include "ace/Unbounded_Set.h"
-
-// Forward declaration
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-class ACE_Timer_Heap_T;
-
-/**
- * @class ACE_Timer_Heap_Iterator_T
- *
- * @brief Iterates over an <ACE_Timer_Heap_T>.
- *
- * This is a generic iterator that can be used to visit every
- * node of a timer queue. Be aware that it doesn't transverse
- * in the order of timeout values.
- */
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-class ACE_Timer_Heap_Iterator_T : public ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>
-{
-public:
- /// Constructor.
- ACE_Timer_Heap_Iterator_T (ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK> &);
-
- /// Destructor.
- ~ACE_Timer_Heap_Iterator_T (void);
-
- /// Positions the iterator at the earliest node in the Timer Queue
- virtual void first (void);
-
- /// Positions the iterator at the next node in the Timer Queue
- virtual void next (void);
-
- /// Returns true when there are no more nodes in the sequence
- virtual int isdone (void) const;
-
- /// Returns the node at the current position in the sequence
- virtual ACE_Timer_Node_T<TYPE> *item (void);
-
-protected:
- /// Pointer to the <ACE_Timer_Heap> that we are iterating over.
- ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK> &timer_heap_;
-
- /// Position in the array where the iterator is at
- size_t position_;
-};
-
-/**
- * @class ACE_Timer_Heap_T
- *
- * @brief Provides a very fast and predictable timer implementation.
- *
- * This implementation uses a heap-based callout queue of
- * absolute times. Therefore, in the average and worst case,
- * scheduling, canceling, and expiring timers is O(log N) (where
- * N is the total number of timers). In addition, we can also
- * preallocate as many @c ACE_Timer_Node objects as there are slots
- * in the heap. This allows us to completely remove the need for
- * dynamic memory allocation, which is important for real-time
- * systems.
- */
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-class ACE_Timer_Heap_T : public ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>
-{
-public:
- typedef ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> HEAP_ITERATOR;
- friend class ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>;
-
- typedef ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> INHERITED;
-
- // = Initialization and termination methods.
- /**
- * The Constructor creates a heap with specified number of elements.
- * This can also take in a upcall functor and freelist (if 0, then
- * defaults will be created).
- *
- * @param size The maximum number of timers that can be
- * inserted into the new object.
- * @param preallocated Default 0, if non-0 then all the memory
- * for the @c ACE_Timer_Node objects will be pre-allocated. This saves
- * time and is more predictable (though it requires more space).
- * Otherwise, timer nodes are allocated as needed.
- * @param freelist is the freelist of timer nodes.
- * @param upcall_functor If 0 Timer Heap will create a default FUNCTOR.
- */
- ACE_Timer_Heap_T (size_t size,
- int preallocated = 0,
- FUNCTOR *upcall_functor = 0,
- ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist = 0);
-
- /**
- * Default constructor. @c upcall_functor is the instance of the
- * FUNCTOR to be used by the queue. If @c upcall_functor is 0, Timer
- * Heap will create a default FUNCTOR. @c freelist is the freelist of
- * timer nodes. If 0, then a default freelist will be created. The default
- * size will be ACE_DEFAULT_TIMERS and there will be no preallocation.
- */
- ACE_Timer_Heap_T (FUNCTOR *upcall_functor = 0,
- ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist = 0);
-
- /// Destructor.
- virtual ~ACE_Timer_Heap_T (void);
-
- /// True if heap is empty, else false.
- virtual int is_empty (void) const;
-
- /// Returns the time of the earliest node in the Timer_Queue.
- /// Must be called on a non-empty queue.
- virtual const ACE_Time_Value &earliest_time (void) const;
-
- /**
- * Schedule a timer that may optionally auto-reset.
- * Schedule <type> that will expire at <future_time>,
- * which is specified in absolute time. If it expires then <act> is
- * passed in as the value to the <functor>. If <interval> is != to
- * <ACE_Time_Value::zero> then it is used to reschedule the <type>
- * automatically, using relative time to the current <gettimeofday>.
- * This method returns a <timer_id> that uniquely identifies the the
- * <type> entry in an internal list. This <timer_id> can be used to
- * cancel the timer before it expires. The cancellation ensures
- * that <timer_ids> are unique up to values of greater than 2
- * billion timers. As long as timers don't stay around longer than
- * this there should be no problems with accidentally deleting the
- * wrong timer. Returns -1 on failure (which is guaranteed never to
- * be a valid <timer_id>).
- */
- virtual long schedule (const TYPE &type,
- const void *act,
- const ACE_Time_Value &future_time,
- const ACE_Time_Value &interval = ACE_Time_Value::zero);
-
- /**
- * Resets the interval of the timer represented by <timer_id> to
- * <interval>, which is specified in relative time to the current
- * <gettimeofday>. If <interval> is equal to
- * <ACE_Time_Value::zero>, the timer will become a non-rescheduling
- * timer. Returns 0 if successful, -1 if not.
- */
- virtual int reset_interval (long timer_id,
- const ACE_Time_Value &interval);
-
- /**
- * Cancel all timers associated with <type>. If <dont_call> is 0
- * then the <functor> will be invoked. Returns number of timers
- * cancelled.
- */
- virtual int cancel (const TYPE &type,
- int dont_call_handle_close = 1);
-
- /**
- * Cancel the single timer that matches the <timer_id> value (which
- * was returned from the <schedule> method). If act is non-NULL
- * then it will be set to point to the ``magic cookie'' argument
- * passed in when the timer was registered. This makes it possible
- * to free up the memory and avoid memory leaks. If <dont_call> is
- * 0 then the <functor> will be invoked. Returns 1 if cancellation
- * succeeded and 0 if the <timer_id> wasn't found.
- */
- virtual int cancel (long timer_id,
- const void **act = 0,
- int dont_call_handle_close = 1);
-
- /// Returns a pointer to this <ACE_Timer_Queue>'s iterator.
- virtual ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> &iter (void);
-
- /**
- * Removes the earliest node from the queue and returns it. Note that
- * the timer is removed from the heap, but is not freed, and its ID
- * is not reclaimed. The caller is responsible for calling either
- * @c reschedule() or @c free_node() after this function returns. Thus,
- * this function is for support of @c ACE_Timer_Queue::expire and
- * should not be used unadvisedly in other conditions.
- */
- ACE_Timer_Node_T <TYPE> *remove_first (void);
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Reads the earliest node from the queue and returns it.
- virtual ACE_Timer_Node_T<TYPE> *get_first (void);
-
-protected:
- /// Reschedule an "interval" <ACE_Timer_Node>.
- virtual void reschedule (ACE_Timer_Node_T<TYPE> *);
-
- /// Factory method that allocates a new node (uses operator new if
- /// we're *not* preallocating, otherwise uses an internal freelist).
- virtual ACE_Timer_Node_T<TYPE> *alloc_node (void);
-
- /**
- * Factory method that frees a previously allocated node (uses
- * operator delete if we're *not* preallocating, otherwise uses an
- * internal freelist).
- */
- virtual void free_node (ACE_Timer_Node_T<TYPE> *);
-
-private:
- /// Remove and return the <slot>th <ACE_Timer_Node> and restore the
- /// heap property.
- ACE_Timer_Node_T<TYPE> *remove (size_t slot);
-
- /// Insert @a new_node into the heap and restore the heap property.
- void insert (ACE_Timer_Node_T<TYPE> *new_node);
-
- /**
- * Doubles the size of the heap and the corresponding timer_ids array.
- * If preallocation is used, will also double the size of the
- * preallocated array of ACE_Timer_Nodes.
- */
- void grow_heap (void);
-
- /// Restore the heap property, starting at <slot>.
- void reheap_up (ACE_Timer_Node_T<TYPE> *new_node,
- size_t slot,
- size_t parent);
-
- /// Restore the heap property, starting at <slot>.
- void reheap_down (ACE_Timer_Node_T<TYPE> *moved_node,
- size_t slot,
- size_t child);
-
- /// Copy <moved_node> into the <slot> slot of <heap_> and move
- /// <slot> into the corresponding slot in the <timer_id_> array.
- void copy (size_t slot, ACE_Timer_Node_T<TYPE> *moved_node);
-
- /**
- * Returns a timer id that uniquely identifies this timer. This id
- * can be used to cancel a timer via the <cancel (int)> method. The
- * timer id returned from this method will never == -1 to avoid
- * conflicts with other failure return values.
- */
- int timer_id (void);
-
- /// Pops and returns a new timer id from the freelist.
- int pop_freelist (void);
-
- /// Pushes <old_id> onto the freelist.
- void push_freelist (int old_id);
-
- /// Maximum size of the heap.
- size_t max_size_;
-
- /// Current size of the heap.
- size_t cur_size_;
-
- /// Number of heap entries in transition (removed from the queue, but
- /// not freed) and may be rescheduled or freed.
- size_t cur_limbo_;
-
- /// Iterator used to expire timers.
- HEAP_ITERATOR *iterator_;
-
- /**
- * Current contents of the Heap, which is organized as a "heap" of
- * <ACE_Timer_Node> *'s. In this context, a heap is a "partially
- * ordered, almost complete" binary tree, which is stored in an
- * array.
- */
- ACE_Timer_Node_T<TYPE> **heap_;
-
- /**
- * An array of "pointers" that allows each <ACE_Timer_Node> in the
- * <heap_> to be located in O(1) time. Basically, <timer_id_[i]>
- * contains the slot in the <heap_> array where an <ACE_Timer_Node>
- * * with timer id \<i\> resides. Thus, the timer id passed back from
- * <schedule> is really a slot into the <timer_ids> array. The
- * <timer_ids_> array serves two purposes: negative values are
- * indications of free timer IDs, whereas positive values are
- * "pointers" into the <heap_> array for assigned timer IDs.
- */
- ssize_t *timer_ids_;
-
- /// "Pointer" to the element in the <timer_ids_> array that was
- /// last given out as a timer ID.
- size_t timer_ids_curr_;
-
- /// Index representing the lowest timer ID that has been freed. When
- /// the timer_ids_next_ value wraps around, it starts back at this
- /// point.
- size_t timer_ids_min_free_;
-
- /**
- * If this is non-0, then we preallocate <max_size_> number of
- * <ACE_Timer_Node> objects in order to reduce dynamic allocation
- * costs. In auto-growing implementation, this points to the
- * last array of nodes allocated.
- */
- ACE_Timer_Node_T<TYPE> *preallocated_nodes_;
-
- /// This points to the head of the <preallocated_nodes_> freelist,
- /// which is organized as a stack.
- ACE_Timer_Node_T<TYPE> *preallocated_nodes_freelist_;
-
- /// Set of pointers to the arrays of preallocated timer nodes.
- /// Used to delete the allocated memory when required.
- ACE_Unbounded_Set<ACE_Timer_Node_T<TYPE> *> preallocated_node_set_;
-
- // = Don't allow these operations for now.
- ACE_UNIMPLEMENTED_FUNC (ACE_Timer_Heap_T (const ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK> &))
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) && !defined(ACE_HAS_BROKEN_HPUX_TEMPLATES)
-#include "ace/Timer_Heap_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE && !ACE_HAS_BROKEN_HPUX_TEMPLATES */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Timer_Heap_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_TIMER_HEAP_T_H */
diff --git a/ace/Timer_List.cpp b/ace/Timer_List.cpp
deleted file mode 100644
index 3834178a0b0..00000000000
--- a/ace/Timer_List.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// $Id$
-
-#if !defined (ACE_TIMER_LIST_C)
-#define ACE_TIMER_LIST_C
-
-#include "ace/Timer_List.h"
-
-ACE_RCSID(ace, Timer_List, "$Id$")
-
-#if defined (ACE_HAS_BROKEN_HPUX_TEMPLATES)
-#include "ace/Timer_Hash.h"
-#include "ace/Timer_List_T.cpp"
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class
- ACE_Timer_List_T<
- ACE_Event_Handler*,
- ACE_Timer_Hash_Upcall<
- ACE_Event_Handler*,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>,
- ACE_Null_Mutex>,
- ACE_Null_Mutex>;
-
-template class
-ACE_Timer_List_Iterator_T<
- ACE_Event_Handler*,
- ACE_Timer_Hash_Upcall<
- ACE_Event_Handler*,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>,
- ACE_Null_Mutex>,
- ACE_Null_Mutex>;
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /* ACE_HAS_BROKEN_HPUX_TEMPLATES */
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Timer_List_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_List_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Timer_List_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>
-#pragma instantiate ACE_Timer_List_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-
-#endif /* ACE_TIMER_LIST_C */
diff --git a/ace/Timer_List.h b/ace/Timer_List.h
deleted file mode 100644
index a9586061307..00000000000
--- a/ace/Timer_List.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Timer_List.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_TIMER_LIST_H
-#define ACE_TIMER_LIST_H
-#include "ace/pre.h"
-
-#include "ace/Timer_List_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// The following typedef are here for ease of use and backward
-// compatibility.
-
-typedef ACE_Timer_List_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX>
- ACE_Timer_List;
-
-typedef ACE_Timer_List_Iterator_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX>
- ACE_Timer_List_Iterator;
-
-#include "ace/post.h"
-#endif /* ACE_TIMER_LIST_H */
diff --git a/ace/Timer_List_T.cpp b/ace/Timer_List_T.cpp
deleted file mode 100644
index ecf2d71544d..00000000000
--- a/ace/Timer_List_T.cpp
+++ /dev/null
@@ -1,370 +0,0 @@
-// $Id$
-
-#ifndef ACE_TIMER_LIST_T_C
-#define ACE_TIMER_LIST_T_C
-
-#include "ace/Timer_List_T.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_RCSID(ace, Timer_List_T, "$Id$")
-
-// Default Constructor
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_List_Iterator_T (List& lst)
- : list_ (lst)
-{
- this->first();
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_List_Iterator_T (void)
-{
-}
-
-// Positions the iterator at the node right after the dummy node
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::first (void)
-{
- this->current_node_ = this->list_.get_first();
-}
-
-// Positions the iterator at the next node in the Timer Queue
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::next (void)
-{
- // Make sure that if we are at the end, we don't wrap around
- if (! this->isdone())
- this->current_node_ = this->current_node_->get_next ();
- if (this->current_node_ == this->list_.head_)
- this->current_node_ = 0;
-}
-
-// Returns true when we are at <head_>
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::isdone (void) const
-{
- return this->current_node_ == 0;
-}
-
-// Returns the node at <position_> or 0 if we are at the end
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::item (void)
-{
- if (! this->isdone())
- return this->current_node_;
- return 0;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-// Return our instance of the iterator
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> &
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::iter (void)
-{
- this->iterator_->first ();
- return *this->iterator_;
-}
-
-// Create an empty list.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_List_T (FUNCTOR* uf, FreeList* fl)
- : Base(uf, fl)
- , head_ (new ACE_Timer_Node_T<TYPE>)
- , id_counter_ (0)
-{
- ACE_TRACE ("ACE_Timer_List_T::ACE_Timer_List_T");
-
- this->head_->set_next (this->head_);
- this->head_->set_prev (this->head_);
-
- ACE_NEW (iterator_, Iterator(*this));
-}
-
-
-// Checks if list is empty.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::is_empty (void) const
-{
- ACE_TRACE ("ACE_Timer_List_T::is_empty");
- return this->get_first_i() == 0;
-}
-
-
-// Returns earliest time in a non-empty list.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> const ACE_Time_Value &
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::earliest_time (void) const
-{
- ACE_TRACE ("ACE_Timer_List_T::earliest_time");
- ACE_Timer_Node_T<TYPE>* first = this->get_first_i();
- if (first != 0)
- return first->get_timer_value ();
- return ACE_Time_Value::zero;
-}
-
-
-// Remove all remaining items in the list.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_List_T (void)
-{
- ACE_TRACE ("ACE_Timer_List_T::~ACE_Timer_List_T");
- ACE_MT (ACE_GUARD (ACE_LOCK, ace_mon, this->mutex_));
-
- delete iterator_;
-
- if (! this->is_empty()) {
- for (ACE_Timer_Node_T<TYPE>* n = this->get_first(); n != this->head_;) {
- ACE_Timer_Node_T<TYPE>* next = n->get_next();
- this->upcall_functor ().deletion (*this, n->get_type(), n->get_act());
- this->free_node(n);
- n = next;
- }
- }
-
- // delete the dummy node
- delete this->head_;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::dump (void) const
-{
- ACE_TRACE ("ACE_Timer_List_T::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- int count = 0;
-
- ACE_Timer_Node_T<TYPE>* n = this->get_first_i();
- if (n != 0) {
- for (; n != this->head_; n = n->get_next()) {
- count++;
- }
- }
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nsize_ = %d"), count));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-
-// Reschedule a periodic timer. This function must be called with the
-// lock held.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::reschedule (ACE_Timer_Node_T<TYPE>* n)
-{
- ACE_TRACE ("ACE_Timer_List_T::reschedule");
- this->schedule_i(n, n->get_timer_value());
-}
-
-
-// Insert a new handler that expires at time future_time; if interval
-// is > 0, the handler will be reinvoked periodically.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> long
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::schedule (const TYPE &type,
- const void *act,
- const ACE_Time_Value &future_time,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_Timer_List_T::schedule");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- ACE_Timer_Node_T<TYPE>* n = this->alloc_node();
-
- if (n != 0)
- {
- long id = this->id_counter_++;
-
- if (id != -1) {
- n->set (type, act, future_time, interval, 0, 0, id);
- this->schedule_i (n, future_time);
- }
- return id;
- }
-
- // Failure return
- errno = ENOMEM;
- return -1;
-}
-
-/// The shared scheduling functionality between schedule() and reschedule()
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::schedule_i (ACE_Timer_Node_T<TYPE>* n,
- const ACE_Time_Value& expire)
-{
- if (this->is_empty()) {
- n->set_prev(this->head_);
- n->set_next(this->head_);
- this->head_->set_prev(n);
- this->head_->set_next(n);
- return;
- }
-
- // We always want to search backwards from the tail of the list, because
- // this minimizes the search in the extreme case when lots of timers are
- // scheduled for exactly the same time, and it also assumes that most of
- // the timers will be scheduled later than existing timers.
- ACE_Timer_Node_T<TYPE>* p = this->head_->get_prev();
- while (p != this->head_ && p->get_timer_value() > expire)
- p = p->get_prev();
-
- // insert after
- n->set_prev(p);
- n->set_next(p->get_next());
- p->get_next()->set_prev(n);
- p->set_next(n);
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Node_T<TYPE>*
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::find_node(long timer_id) const
-{
- ACE_Timer_Node_T<TYPE>* n = this->get_first_i();
- if (n == 0)
- return 0;
-
- for (; n != this->head_; n = n->get_next()) {
- if (n->get_timer_id() == timer_id) {
- return n;
- }
- }
- return 0;
-}
-
-// Locate and update the inteval on the timer_id
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::reset_interval (long timer_id,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_Timer_List_T::reset_interval");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
- ACE_Timer_Node_T<TYPE>* n = this->find_node(timer_id);
- if (n != 0) {
- n->set_interval(interval); // The interval will take effect the next time this node is expired.
- return 0;
- }
- return -1;
-}
-
-// Locate and remove the single <ACE_Event_Handler> with a value of
-// <timer_id> from the timer queue.
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (long timer_id,
- const void **act,
- int skip_close)
-{
- ACE_TRACE ("ACE_Timer_List_T::cancel");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
- ACE_Timer_Node_T<TYPE>* n = this->find_node(timer_id);
- if (n != 0) {
- if (act != 0)
- *act = n->get_act();
- this->cancel_i(n, skip_close);
- return 1;
- }
- return 0;
-}
-
-// Locate and remove all values of <handler> from the timer queue.
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (const TYPE &type, int skip_close)
-{
- ACE_TRACE ("ACE_Timer_List_T::cancel");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- int num_canceled = 0; // Note : Technically this can overflow.
-
- if (! this->is_empty()) {
-
- for (ACE_Timer_Node_T<TYPE>* n = this->get_first(); n != this->head_;)
- {
- if (n->get_type() == type) // Note: Typically Type is an ACE_Event_Handler*
- {
- ++num_canceled;
-
- ACE_Timer_Node_T<TYPE>* tmp = n;
- n = n->get_next();
- int always_skip_close = 1; // todo : Is this correct?
- this->cancel_i(tmp, always_skip_close);
- }
- else
- {
- n = n->get_next();
- }
- }
-
- }
-
- if (! skip_close) { // && num_canceled > 0) {
- this->upcall_functor().cancellation (*this, type);
- }
- return num_canceled;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::unlink (ACE_Timer_Node_T<TYPE>* n)
-{
- n->get_prev()->set_next(n->get_next());
- n->get_next()->set_prev(n->get_prev());
- n->set_prev(0);
- n->set_next(0);
-}
-
-/// Shared subset of the two cancel() methods.
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::cancel_i (ACE_Timer_Node_T<TYPE>* n, int skip_close)
-{
- this->unlink(n);
- this->free_node (n);
- if (! skip_close) {
- this->upcall_functor().cancellation (*this, n->get_type());
- }
-}
-
-// Reads the first node on the list and returns it.
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::get_first (void)
-{
- ACE_TRACE ("ACE_Timer_List_T::get_first");
- return this->get_first_i();
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::get_first_i (void) const
-{
- ACE_TRACE ("ACE_Timer_List_T::get_first_i");
- ACE_Timer_Node_T<TYPE>* first = this->head_->get_next();
- if (first != this->head_) // Note : is_empty() uses get_first()
- return first;
- return 0;
-}
-
-
-// Removes the first node on the list and returns it.
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::remove_first (void)
-{
- ACE_TRACE ("ACE_Timer_List_T::remove_first");
- ACE_Timer_Node_T<TYPE>* first = this->get_first();
- if (first != 0) {
- this->unlink(first);
- return first;
- }
- return 0;
-}
-
-#endif /* ACE_TIMER_LIST_T_C */
diff --git a/ace/Timer_List_T.h b/ace/Timer_List_T.h
deleted file mode 100644
index 0f13647e591..00000000000
--- a/ace/Timer_List_T.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Timer_List_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_TIMER_LIST_T_H
-#define ACE_TIMER_LIST_T_H
-#include "ace/pre.h"
-
-#include "ace/Timer_Queue_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Forward declaration.
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-class ACE_Timer_List_T;
-
-/**
- * @class ACE_Timer_List_Iterator_T
- *
- * @brief Iterates over an <ACE_Timer_List>.
- *
- * This is a generic iterator that can be used to visit every
- * node of a timer queue.
- */
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-class ACE_Timer_List_Iterator_T
-: public ACE_Timer_Queue_Iterator_T <TYPE, FUNCTOR, ACE_LOCK>
-{
-public:
- typedef ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK> List;
- /// Constructor.
- ACE_Timer_List_Iterator_T (List& lst);
-
- /// Destructor.
- virtual ~ACE_Timer_List_Iterator_T (void);
-
- /// Positions the iterator at the earliest node in the Timer Queue
- virtual void first (void);
-
- /// Positions the iterator at the next node in the Timer Queue
- virtual void next (void);
-
- /// Returns true when there are no more nodes in the sequence
- virtual int isdone (void) const;
-
- /// Returns the node at the current position in the sequence
- virtual ACE_Timer_Node_T<TYPE> *item (void);
-
-protected:
- /// Pointer to the <ACE_Timer_List> that we are iterating over.
- List& list_;
-
- /// Current position in the <ACE_Timer_List>
- ACE_Timer_Node_T<TYPE>* current_node_;
-};
-
-/**
- * @class ACE_Timer_List_T
- *
- * @brief Provides a simple implementation of timers.
- *
- * This implementation uses a linked list of absolute times.
- * Therefore, in the average case, scheduling and canceling
- * timers is O(N) (where N is the total number of timers) and
- * expiring timers is O(K) (where K is the total number of timers
- * that are < the current time of day).
- * More clever implementations could use a delta-list, a heap,
- * or timing wheels, etc. For instance, <ACE_Timer_Heap>
- * is a subclass of <ACE_Timer_List> that implements a
- * heap-based callout queue. For most applications, the
- * <ACE_Timer_Heap> will perform substantially faster than the
- * <ACE_Timer_List>.
- */
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-class ACE_Timer_List_T : public ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>
-{
-public:
- /// Type of iterator
- typedef ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> Iterator;
-
- /// Iterator is a friend
- friend class ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>;
-
- typedef ACE_Timer_Node_T<TYPE> Node;
- /// Type inherited from
- typedef ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> Base;
- typedef ACE_Free_List<Node> FreeList;
-
- // = Initialization and termination methods.
- /**
- * Default constructor. <upcall_functor> is the instance of the
- * FUNCTOR to be used by the list. If <upcall_functor> is 0, a
- * default FUNCTOR will be created. <freelist> the freelist of
- * timer nodes. If 0, then a default freelist will be created.
- */
- ACE_Timer_List_T (FUNCTOR* upcall_functor = 0, FreeList* freelist = 0);
-
- /// Destructor
- virtual ~ACE_Timer_List_T (void);
-
- /// True if queue is empty, else false.
- virtual int is_empty (void) const;
-
- /// Returns the time of the earlier node in the <ACE_Timer_List>.
- /// Must be called on a non-empty queue.
- virtual const ACE_Time_Value& earliest_time (void) const;
-
- /**
- * Schedule <type> that will expire at <future_time>,
- * which is specified in absolute time. If it expires then <act> is
- * passed in as the value to the <functor>. If <interval> is != to
- * <ACE_Time_Value::zero> then it is used to reschedule the <type>
- * automatically, using relative time to the current <gettimeofday>.
- * This method returns a <timer_id> that uniquely identifies the the
- * <type> entry in an internal list. This <timer_id> can be used to
- * cancel the timer before it expires. The cancellation ensures
- * that <timer_ids> are unique up to values of greater than 2
- * billion timers. As long as timers don't stay around longer than
- * this there should be no problems with accidentally deleting the
- * wrong timer. Returns -1 on failure (which is guaranteed never to
- * be a valid <timer_id>).
- */
- virtual long schedule (const TYPE& type,
- const void* act,
- const ACE_Time_Value& future_time,
- const ACE_Time_Value& interval = ACE_Time_Value::zero);
-
- /**
- * Resets the interval of the timer represented by <timer_id> to
- * <interval>, which is specified in relative time to the current
- * <gettimeofday>. If <interval> is equal to
- * <ACE_Time_Value::zero>, the timer will become a non-rescheduling
- * timer. Returns 0 if successful, -1 if not.
- */
- virtual int reset_interval (long timer_id,
- const ACE_Time_Value& interval);
-
- /**
- * Cancel all timers associated with <type>. If <dont_call> is 0
- * then the <functor> will be invoked. Returns number of timers
- * cancelled.
- */
- virtual int cancel (const TYPE& type,
- int dont_call_handle_close = 1);
-
- /**
- * Cancel the single timer that matches the <timer_id> value (which
- * was returned from the <schedule> method). If act is non-NULL
- * then it will be set to point to the ``magic cookie'' argument
- * passed in when the timer was registered. This makes it possible
- * to free up the memory and avoid memory leaks. If <dont_call> is
- * 0 then the <functor> will be invoked. Returns 1 if cancellation
- * succeeded and 0 if the <timer_id> wasn't found.
- */
- virtual int cancel (long timer_id,
- const void** act = 0,
- int dont_call_handle_close = 1);
-
- /// Returns a pointer to this <ACE_Timer_Queue>'s iterator.
- virtual ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>& iter (void);
-
- /// Removes the earliest node from the queue and returns it
- virtual ACE_Timer_Node_T<TYPE>* remove_first (void);
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Reschedule an "interval" <ACE_Timer_Node>. This should be private
- /// but for now it needs to be public for <ACE_Timer_Hash_T>
- virtual void reschedule (ACE_Timer_Node_T<TYPE> *);
-
- /// Reads the earliest node from the queue and returns it.
- virtual ACE_Timer_Node_T<TYPE>* get_first (void);
-
-private:
-
- void schedule_i(ACE_Timer_Node_T<TYPE>* n, const ACE_Time_Value& exp);
- ACE_Timer_Node_T<TYPE>* find_node(long timer_id) const;
- void cancel_i (ACE_Timer_Node_T<TYPE>* n, int skip_close);
- void unlink (ACE_Timer_Node_T<TYPE>* n);
- ACE_Timer_Node_T<TYPE>* get_first_i(void) const;
-
-private:
-
- /// Pointer to linked list of <ACE_Timer_Handles>.
- ACE_Timer_Node_T<TYPE>* head_;
-
- /// Iterator used to expire timers.
- Iterator* iterator_;
-
- /**
- * Keeps track of the timer id that uniquely identifies each timer.
- * This id can be used to cancel a timer via the <cancel(long)>
- * method.
- */
- long id_counter_;
-
- // = Don't allow these operations for now.
- ACE_UNIMPLEMENTED_FUNC (ACE_Timer_List_T (const ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK> &))
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) && !defined(ACE_HAS_BROKEN_HPUX_TEMPLATES)
-#include "ace/Timer_List_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE && !ACE_HAS_BROKEN_HPUX_TEMPLATES */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Timer_List_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_TIMER_LIST_T_H */
diff --git a/ace/Timer_Queue.cpp b/ace/Timer_Queue.cpp
deleted file mode 100644
index e883a527bdd..00000000000
--- a/ace/Timer_Queue.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-// $Id$
-
-#if !defined (ACE_TIMER_QUEUE_C)
-#define ACE_TIMER_QUEUE_C
-
-#include "ace/Containers.h"
-#include "ace/Timer_Queue.h"
-
-ACE_RCSID(ace, Timer_Queue, "$Id$")
-
-#if defined (ACE_HAS_BROKEN_HPUX_TEMPLATES)
-#include "ace/Timer_Hash.h"
-#include "ace/Timer_Queue_T.cpp"
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class
- ACE_Timer_Queue_T<
- ACE_Event_Handler*,
- ACE_Timer_Hash_Upcall<
- ACE_Event_Handler*,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>,
- ACE_Null_Mutex>,
- ACE_Null_Mutex>;
-
-template class
- ACE_Timer_Queue_Iterator_T<
- ACE_Event_Handler*,
- ACE_Timer_Hash_Upcall<
- ACE_Event_Handler*,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>,
- ACE_Null_Mutex>,
- ACE_Null_Mutex>;
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /* ACE_HAS_BROKEN_HPUX_TEMPLATES */
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Unbounded_Set<ACE_Timer_Node_T<ACE_Event_Handler *> *>;
-template class ACE_Node<ACE_Timer_Node_T<ACE_Event_Handler *> *>;
-template class ACE_Unbounded_Set_Iterator<ACE_Timer_Node_T<ACE_Event_Handler *> *>;
-template class ACE_Timer_Node_Dispatch_Info_T<ACE_Event_Handler *>;
-template class ACE_Timer_Node_T<ACE_Event_Handler *>;
-template class ACE_Timer_Queue_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Queue_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_Unbounded_Set<ACE_Timer_Node_T<ACE_Event_Handler *> *>
-#pragma instantiate ACE_Node<ACE_Timer_Node_T<ACE_Event_Handler *> *>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_Timer_Node_T<ACE_Event_Handler *> *>
-#pragma instantiate ACE_Timer_Node_Dispatch_Info_T<ACE_Event_Handler *>
-#pragma instantiate ACE_Timer_Node_T<ACE_Event_Handler *>
-#pragma instantiate ACE_Timer_Queue_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>
-#pragma instantiate ACE_Timer_Queue_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>
-#pragma instantiate ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_TIMER_QUEUE_C */
diff --git a/ace/Timer_Queue.h b/ace/Timer_Queue.h
deleted file mode 100644
index 54a0a8f1137..00000000000
--- a/ace/Timer_Queue.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Timer_Queue.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu> and
- * Irfan Pyarali <irfan@cs.wustl.edu>.
- */
-//=============================================================================
-
-#ifndef ACE_TIMER_QUEUE_H
-#define ACE_TIMER_QUEUE_H
-#include "ace/pre.h"
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Timer_Queue_T.h"
-
-// The following typedef are here for ease of use and backward
-// compatibility.
-typedef ACE_Timer_Node_Dispatch_Info_T<ACE_Event_Handler *>
- ACE_Timer_Node_Dispatch_Info;
-
-typedef ACE_Timer_Node_T<ACE_Event_Handler *>
- ACE_Timer_Node;
-
-typedef ACE_Timer_Queue_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX>
- ACE_Timer_Queue;
-
-typedef ACE_Timer_Queue_Iterator_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX>
- ACE_Timer_Queue_Iterator;
-
-#include "ace/post.h"
-#endif /* ACE_TIMER_QUEUE_H */
diff --git a/ace/Timer_Queue_Adapters.cpp b/ace/Timer_Queue_Adapters.cpp
deleted file mode 100644
index 00d5723d80a..00000000000
--- a/ace/Timer_Queue_Adapters.cpp
+++ /dev/null
@@ -1,321 +0,0 @@
-// $Id$
-
-#include "ace/Timer_Queue_Adapters.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#ifndef ACE_TIMER_QUEUE_ADAPTERS_C
-# define ACE_TIMER_QUEUE_ADAPTERS_C
-
-ACE_RCSID(ace, Timer_Queue_Adapters, "$Id$")
-
-# if !defined (__ACE_INLINE__)
-# include "ace/Timer_Queue_Adapters.i"
-# endif /* __ACE_INLINE__ */
-
-template <class TQ> TQ &
-ACE_Async_Timer_Queue_Adapter<TQ>::timer_queue (void)
-{
- return this->timer_queue_;
-}
-
-template <class TQ> int
-ACE_Async_Timer_Queue_Adapter<TQ>::cancel (long timer_id,
- const void **act)
-{
- // Block designated signals.
- ACE_Sig_Guard sg (&this->mask_);
- ACE_UNUSED_ARG (sg);
-
- return this->timer_queue_.cancel (timer_id, act);
-}
-
-template <class TQ> int
-ACE_Async_Timer_Queue_Adapter<TQ>::expire (void)
-{
- // Block designated signals.
- ACE_Sig_Guard sg (&this->mask_);
- ACE_UNUSED_ARG (sg);
-
- return this->timer_queue_.expire ();
-}
-
-template <class TQ> int
-ACE_Async_Timer_Queue_Adapter<TQ>::schedule_ualarm (void)
-{
- ACE_Time_Value tv = this->timer_queue_.earliest_time ()
- - ACE_OS::gettimeofday ();
-
- // Beware of negative times and zero times (which cause problems for
- // <ualarm>).
- if (tv < ACE_Time_Value::zero)
- tv = ACE_Time_Value (0, 1);
-
- // @@ This code should be clever enough to avoid updating the
- // <ualarm> if we haven't actually changed the earliest time.
- // Schedule a new timer.
- ACE_OS::ualarm (tv);
- return 0;
-}
-
-template <class TQ> long
-ACE_Async_Timer_Queue_Adapter<TQ>::schedule (ACE_Event_Handler *eh,
- const void *act,
- const ACE_Time_Value &future_time,
- const ACE_Time_Value &interval)
-{
- ACE_UNUSED_ARG (act);
- ACE_UNUSED_ARG (interval);
-
- // Block designated signals.
- ACE_Sig_Guard sg (&this->mask_);
- ACE_UNUSED_ARG (sg);
-
- // @@ We still need to implement interval timers...
- long tid = this->timer_queue_.schedule (eh, act, future_time);
-
- if (tid == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("schedule_timer")),
- -1);
-
- if (this->schedule_ualarm () == -1)
- return 0;
-
- return tid;
-}
-
-template <class TQ>
-ACE_Async_Timer_Queue_Adapter<TQ>::ACE_Async_Timer_Queue_Adapter (ACE_Sig_Set *mask)
- // If <mask> == 0, block *all* signals when the SIGARLM handler is
- // running, else just block those in the mask.
- : mask_ (mask)
-{
- // The following code is necessary to selectively "block" certain
- // signals when SIGALRM is running. Also, we always restart system
- // calls that are interrupted by the signals.
-
- ACE_Sig_Action sa ((ACE_SignalHandler) 0,
- this->mask_,
- SA_RESTART);
-
- if (this->sig_handler_.register_handler (SIGALRM, this, &sa) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("register_handler")));
-}
-
-// This is the signal handler function for the asynchronous timer
-// list. It gets invoked asynchronously when the SIGALRM signal
-// occurs.
-
-template <class TQ> int
-ACE_Async_Timer_Queue_Adapter<TQ>::handle_signal (int signum,
- siginfo_t *,
- ucontext_t *)
-{
- switch (signum)
- {
- case SIGALRM:
- {
- // Expire the pending timers.
-
- // @@ We need to figure out how to implement interval
- // timers...
- this->timer_queue_.expire ();
-
- // Only schedule a new timer if there is one in the list.
-
- // @@ This code should also become smarter to avoid
- // unnecessary calls to ualarm().
- if (this->timer_queue_.is_empty () == 0)
- return this->schedule_ualarm ();
- else
- return 0;
- /* NOTREACHED */
- }
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "unexpected signal %S\n",
- signum),
- -1);
- /* NOTREACHED */
- }
-}
-
-template<class TQ>
-ACE_Thread_Timer_Queue_Adapter<TQ>::ACE_Thread_Timer_Queue_Adapter (ACE_Thread_Manager *tm,
- TQ* timer_queue)
- : ACE_Task_Base (tm),
- timer_queue_(timer_queue),
- delete_timer_queue_(0),
- condition_ (mutex_),
- active_ (1), // Assume that we start in active mode.
- thr_id_ (ACE_OS::NULL_thread)
-{
- if (timer_queue_ == 0)
- {
- ACE_NEW (this->timer_queue_,
- TQ);
- this->delete_timer_queue_ = 1;
- }
-}
-
-template<class TQ>
-ACE_Thread_Timer_Queue_Adapter<TQ>::~ACE_Thread_Timer_Queue_Adapter (void)
-{
- if (this->delete_timer_queue_)
- {
- delete this->timer_queue_;
- this->timer_queue_ = 0;
- this->delete_timer_queue_ = 0;
- }
-}
-
-template<class TQ> ACE_SYNCH_RECURSIVE_MUTEX &
-ACE_Thread_Timer_Queue_Adapter<TQ>::mutex (void)
-{
- return this->mutex_;
-}
-
-template<class TQ> long
-ACE_Thread_Timer_Queue_Adapter<TQ>::schedule
- (ACE_Event_Handler* handler,
- const void *act,
- const ACE_Time_Value &future_time,
- const ACE_Time_Value &interval)
-{
- ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mutex_, -1);
-
- long result = this->timer_queue_->schedule (handler, act, future_time, interval);
- this->condition_.signal ();
- return result;
-}
-
-template<class TQ> int
-ACE_Thread_Timer_Queue_Adapter<TQ>::cancel (long timer_id,
- const void **act)
-{
- ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mutex_, -1);
-
- int result = this->timer_queue_->cancel (timer_id, act);
- condition_.signal ();
- return result;
-}
-
-template<class TQ> void
-ACE_Thread_Timer_Queue_Adapter<TQ>::deactivate (void)
-{
- ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mutex_);
-
- this->active_ = 0;
- this->condition_.signal ();
-}
-
-template<class TQ> int
-ACE_Thread_Timer_Queue_Adapter<TQ>::svc (void)
-{
- ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mutex_, -1);
-
- this->thr_id_ = ACE_Thread::self ();
-
- // Thread cancellation point, if ACE supports it.
- //
- // Note: This call generates a warning under Solaris because the header
- // file /usr/include/pthread.h redefines the routine argument. This
- // is a bug in the Solaris header files and has nothing to do with
- // ACE.
-# if !defined (ACE_LACKS_PTHREAD_CANCEL)
- ACE_PTHREAD_CLEANUP_PUSH (&this->condition_.mutex ().get_nesting_mutex ());
-# endif /* ACE_LACKS_PTHREAD_CANCEL */
-
- while (this->active_)
- {
-# if defined (ACE_HAS_DEFERRED_TIMER_COMMANDS)
- // Temporarily suspend ownership of the timer queue mutex in
- // order to dispatch deferred execution commands. These
- // commands are to be treated as executing in a context
- // "external" to the timer queue adapter, and thus must compete
- // separately for this lock.
- mutex_.release ();
- this->dispatch_commands ();
-
- // Re-acquire ownership of the timer queue mutex in order to
- // restore the "internal" timer queue adapter context
- mutex_.acquire ();
-# endif /* ACE_HAS_DEFERRED_TIMER_COMMANDS */
-
- // If the queue is empty, sleep until there is a change on it.
- if (this->timer_queue_->is_empty ())
- this->condition_.wait ();
- else
- {
- // Compute the remaining time, being careful not to sleep
- // for "negative" amounts of time.
- ACE_Time_Value tv = this->timer_queue_->earliest_time ();
-
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("waiting until %u.%3.3u secs\n"),
- // tv.sec(), tv.msec()));
- this->condition_.wait (&tv);
- }
-
- // Expire timers anyway, at worst this is a no-op.
- this->timer_queue_->expire ();
- }
-
- // Thread cancellation point, if ACE supports it.
-# if !defined (ACE_LACKS_PTHREAD_CANCEL)
- ACE_PTHREAD_CLEANUP_POP (0);
-# endif /* ACE_LACKS_PTHREAD_CANCEL */
-
- return 0;
-}
-
-# if defined (ACE_HAS_DEFERRED_TIMER_COMMANDS)
-
-// Enqueues a command object for execution just before waiting on the next
-// timer event. This allows deferred execution of commands that cannot
-// be performed in the timer event handler context, such as registering
-// or cancelling timers on platforms where the timer queue mutex is not
-// recursive.
-
-template<class TQ> int
-ACE_Thread_Timer_Queue_Adapter<TQ>::enqueue_command (ACE_Command_Base *cmd,
- COMMAND_ENQUEUE_POSITION pos)
-{
- // Serialize access to the command queue.
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, guard, this->command_mutex_, -1);
-
- if (pos == ACE_Thread_Timer_Queue_Adapter<TQ>::TAIL)
- return command_queue_.enqueue_tail (cmd);
- else
- return command_queue_.enqueue_head (cmd);
-}
-
-// Dispatches all command objects enqueued in the most recent event
-// handler context.
-
-template<class TQ> int
-ACE_Thread_Timer_Queue_Adapter<TQ>::dispatch_commands (void)
-{
- // Serialize access to the command queue.
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, guard, this->command_mutex_, -1);
-
- // loop through the enqueued commands
- ACE_Command_Base *cmd = 0;
- while (command_queue_.dequeue_head (cmd) == 0)
- if (cmd)
- {
- cmd->execute ();
- delete cmd;
- }
-
- return 0;
-}
-
-# endif /* ACE_HAS_DEFERRED_TIMER_COMMANDS */
-
-#endif /* ACE_TIMER_QUEUE_ADAPTERS_C*/
diff --git a/ace/Timer_Queue_Adapters.h b/ace/Timer_Queue_Adapters.h
deleted file mode 100644
index 83934af0c25..00000000000
--- a/ace/Timer_Queue_Adapters.h
+++ /dev/null
@@ -1,244 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Timer_Queue_Adapters.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu> and
- * Carlos O'Ryan <coryan@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_TIMER_QUEUE_ADAPTERS_H
-#define ACE_TIMER_QUEUE_ADAPTERS_H
-#include "ace/pre.h"
-
-#include "ace/Task.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Signal.h"
-
-/**
- * @class ACE_Async_Timer_Queue_Adapter
- *
- * @brief Adapts a <TQ> to be run asynchronously.
- *
- * This implementation uses the <ualarm> call, which generates
- * the SIGARLM signal that is caught by this class.
- */
-template <class TQ>
-class ACE_Async_Timer_Queue_Adapter : public ACE_Event_Handler
-{
-public:
- typedef TQ TIMER_QUEUE;
-
- /// Constructor
- /**
- * Register the SIGALRM handler. If <mask> == 0 then block all
- * signals when <SIGALRM> is run. Otherwise, just block the signals
- * indicated in <mask>.
- */
- ACE_Async_Timer_Queue_Adapter (ACE_Sig_Set *mask = 0);
-
- /// Schedule the timer according to the semantics of the
- /// <ACE_Timer_List>.
- /**
- * This timer gets dispatched via a signal, rather than by a user
- * calling expire(). Note that interval timers are not implemented
- * yet.
- */
- long schedule (ACE_Event_Handler *type,
- const void *act,
- const ACE_Time_Value &future_time,
- const ACE_Time_Value &interval = ACE_Time_Value::zero);
-
- /// Cancel the @a timer_id and pass back the @a act if an address is
- /// passed in.
- int cancel (long timer_id, const void **act = 0);
-
- /// Dispatch all timers whose values are <= <cur_time>. Returns the
- /// number of timers canceled.
- int expire (void);
-
- /// Access the underlying <TIMER_QUEUE>.
- TQ &timer_queue (void);
-
-private:
- /// Perform the logic to compute the new ualarm(2) setting.
- virtual int schedule_ualarm (void);
-
- /// Called back by <SIGALRM> handler.
- virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
-
- /// Handler for the <SIGALRM> signal, so that we can access our state
- /// without requiring any global variables.
- ACE_Sig_Handler sig_handler_;
-
- /// Implementation of the timer queue (e.g., <ACE_Timer_List>,
- /// <ACE_Timer_Heap>, etc.).
- TQ timer_queue_;
-
- /// Mask of signals to be blocked when we're servicing <SIGALRM>.
- ACE_Sig_Set mask_;
-};
-
-/**
- * @class ACE_Thread_Timer_Queue_Adapter
- *
- * @brief Adapts a Timer_Queue using a separate thread for dispatching.
- *
- * This implementation of a Timer_Queue uses a separate thread to
- * dispatch the timers. The base queue need not be thread safe,
- * this class takes all the necessary locks.
- *
- * @note This is a case where template parameters will be useful, but
- * (IMHO) the effort and portability problems discourage their
- * use.
- *
- */
-template <class TQ>
-class ACE_Thread_Timer_Queue_Adapter : public ACE_Task_Base
-{
-public:
- /// Trait for the underlying queue type.
- typedef TQ TIMER_QUEUE;
-
-# if defined (ACE_HAS_DEFERRED_TIMER_COMMANDS)
-
- /// Typedef for the position at which to enqueue a deferred
- /// execution command.
- enum COMMAND_ENQUEUE_POSITION {HEAD, TAIL};
-
-# endif /* ACE_HAS_DEFERRED_TIMER_COMMANDS */
-
- /// Creates the timer queue. Activation of the task is the user's
- /// responsibility. Optionally a pointer to a timer queue can be passed,
- /// when no pointer is passed, a TQ is dynamically created
- ACE_Thread_Timer_Queue_Adapter (ACE_Thread_Manager * = ACE_Thread_Manager::instance (),
- TQ* timer_queue = 0);
-
- /// Destructor.
- virtual ~ACE_Thread_Timer_Queue_Adapter (void);
-
- /// Schedule the timer according to the semantics of the <TQ>; wakes
- /// up the dispatching thread.
- long schedule (ACE_Event_Handler *handler,
- const void *act,
- const ACE_Time_Value &future_time,
- const ACE_Time_Value &interval = ACE_Time_Value::zero);
-
- /// Cancel the <timer_id> and return the <act> parameter if an
- /// address is passed in. Also wakes up the dispatching thread.
- int cancel (long timer_id, const void **act = 0);
-
- /// Runs the dispatching thread.
- virtual int svc (void);
-
- /// Inform the dispatching thread that it should terminate.
- virtual void deactivate (void);
-
- /// Access the locking mechanism, useful for iteration.
- ACE_SYNCH_RECURSIVE_MUTEX &mutex (void);
-
- /// @deprecated Access the implementation queue, useful for iteration.
- /// Use the method that returns a pointer instead
- TQ &timer_queue (void);
-
- /// Set a user-specified timer queue.
- int timer_queue (TQ *tq);
-
- /// Return the current <TQ>.
- TQ *timer_queue (void) const;
-
- /// Return the thread id of our active object.
- ACE_thread_t thr_id (void) const;
-
- /**
- * We override the default activate() method so that we can ensure
- * that only a single thread is ever spawned. Otherwise, too many
- * weird things can happen...
- */
- virtual int activate (long flags = THR_NEW_LWP | THR_JOINABLE,
- int n_threads = 1,
- int force_active = 0,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- int grp_id = -1,
- ACE_Task_Base *task = 0,
- ACE_hthread_t thread_handles[] = 0,
- void *stack[] = 0,
- size_t stack_size[] = 0,
- ACE_thread_t thread_names[] = 0);
-
-# if defined (ACE_HAS_DEFERRED_TIMER_COMMANDS)
-
- /**
- * Enqueues a command object for execution just before waiting on the next
- * timer event. This allows deferred execution of commands that cannot
- * be performed in the timer event handler context, such as registering
- * or cancelling timers on platforms where the timer queue mutex is not
- * recursive.
- */
- int enqueue_command (ACE_Command_Base *command_,
- COMMAND_ENQUEUE_POSITION pos = TAIL);
-
-# endif /* ACE_HAS_DEFERRED_TIMER_COMMANDS */
-
-private:
-
-# if defined (ACE_HAS_DEFERRED_TIMER_COMMANDS)
- /// Dispatches all command objects enqueued in the most
- /// recent event handler context.
- int dispatch_commands (void);
-
- /// Queue of commands for deferred execution.
- ACE_Unbounded_Queue<ACE_Command_Base *> command_queue_;
-
- /// The mutual exclusion mechanism for the command queue.
- ACE_SYNCH_MUTEX command_mutex_;
-# endif /* ACE_HAS_DEFERRED_TIMER_COMMANDS */
-
- /// The underlying Timer_Queue.
- TQ* timer_queue_;
-
- /// Keeps track of whether we should delete the timer queue (if we
- /// didn't create it, then we don't delete it).
- int delete_timer_queue_;
-
- /// The mutual exclusion mechanism that is required to use the
- /// <condition_>.
- ACE_SYNCH_RECURSIVE_MUTEX mutex_;
-
- /**
- * The dispatching thread sleeps on this condition while waiting to
- * dispatch the next timer; it is used to wake it up if there is a
- * change on the timer queue.
- */
- ACE_SYNCH_RECURSIVE_CONDITION condition_;
-
- /// When deactivate is called this variable turns to false and the
- /// dispatching thread is signalled, to terminate its main loop.
- int active_;
-
- /// Thread id of our active object task.
- ACE_thread_t thr_id_;
-};
-
-#if defined (__ACE_INLINE__)
-# include "ace/Timer_Queue_Adapters.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-# include "ace/Timer_Queue_Adapters.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-# pragma implementation ("Timer_Queue_Adapters.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_TIMER_QUEUE_ADAPTERS_H */
diff --git a/ace/Timer_Queue_Adapters.i b/ace/Timer_Queue_Adapters.i
deleted file mode 100644
index b8c4c13840d..00000000000
--- a/ace/Timer_Queue_Adapters.i
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-template<class TQ> ACE_INLINE TQ &
-ACE_Thread_Timer_Queue_Adapter<TQ>::timer_queue (void)
-{
- return *(this->timer_queue_);
-}
-
-template<class TQ> ACE_INLINE TQ *
-ACE_Thread_Timer_Queue_Adapter<TQ>::timer_queue (void) const
-{
- return this->timer_queue_;
-}
-
-template<class TQ> ACE_INLINE int
-ACE_Thread_Timer_Queue_Adapter<TQ>::timer_queue (TQ *tq)
-{
- if (this->delete_timer_queue_ != 0)
- delete this->timer_queue_;
- this->timer_queue_ = tq;
- this->delete_timer_queue_ = 0;
- return 0;
-}
-
-template<class TQ> ACE_INLINE ACE_thread_t
-ACE_Thread_Timer_Queue_Adapter<TQ>::thr_id (void) const
-{
- return this->thr_id_;
-}
-
-template<class TQ> ACE_INLINE int
-ACE_Thread_Timer_Queue_Adapter<TQ>::activate (long flags,
- int n_threads,
- int force_active,
- long priority,
- int grp_id,
- ACE_Task_Base *task,
- ACE_hthread_t thread_handles[],
- void *stack[],
- size_t stack_size[],
- ACE_thread_t thread_names[])
-{
- // Macros to avoid "warning: unused parameter" type warning.
- ACE_UNUSED_ARG (n_threads);
- ACE_UNUSED_ARG (force_active);
- ACE_UNUSED_ARG (thread_handles);
-
- // Make sure that we only allow a single thread to be spawned for
- // our adapter. Otherwise, too many weird things can happen.
- return ACE_Task_Base::activate (flags, 1, 0, priority, grp_id, task, 0,
- stack, stack_size, thread_names);
-}
diff --git a/ace/Timer_Queue_T.cpp b/ace/Timer_Queue_T.cpp
deleted file mode 100644
index e63c618c0d4..00000000000
--- a/ace/Timer_Queue_T.cpp
+++ /dev/null
@@ -1,350 +0,0 @@
-// $Id$
-
-#ifndef ACE_TIMER_QUEUE_T_C
-#define ACE_TIMER_QUEUE_T_C
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Signal.h"
-#include "ace/Timer_Queue_T.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Timer_Queue_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Timer_Queue_T, "$Id$")
-
-template <class TYPE> void
-ACE_Timer_Node_T<TYPE>::dump (void) const
-{
- ACE_TRACE ("ACE_Timer_Node_T::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nact_ = %x"), this->act_));
- this->timer_value_.dump ();
- this->interval_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nprev_ = %x"), this->prev_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nnext_ = %x"), this->next_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ntimer_id_ = %d\n"), this->timer_id_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class TYPE>
-ACE_Timer_Node_T<TYPE>::ACE_Timer_Node_T (void)
-{
- ACE_TRACE ("ACE_Timer_Node_T::ACE_Timer_Node_T");
-}
-
-template <class TYPE>
-ACE_Timer_Node_T<TYPE>::~ACE_Timer_Node_T (void)
-{
- ACE_TRACE ("ACE_Timer_Node_T::~ACE_Timer_Node_T");
-}
-
-
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Queue_Iterator_T (void)
-{
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_Queue_Iterator_T (void)
-{
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Time_Value *
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::calculate_timeout (ACE_Time_Value *max_wait_time)
-{
- ACE_TRACE ("ACE_Timer_Queue_T::calculate_timeout");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, max_wait_time));
-
- if (this->is_empty ())
- // Nothing on the Timer_Queue, so use whatever the caller gave us.
- return max_wait_time;
- else
- {
- ACE_Time_Value cur_time = this->gettimeofday ();
-
- if (this->earliest_time () > cur_time)
- {
- // The earliest item on the Timer_Queue is still in the
- // future. Therefore, use the smaller of (1) caller's wait
- // time or (2) the delta time between now and the earliest
- // time on the Timer_Queue.
-
- this->timeout_ = this->earliest_time () - cur_time;
- if (max_wait_time == 0 || *max_wait_time > timeout_)
- return &this->timeout_;
- else
- return max_wait_time;
- }
- else
- {
- // The earliest item on the Timer_Queue is now in the past.
- // Therefore, we've got to "poll" the Reactor, i.e., it must
- // just check the descriptors and then dispatch timers, etc.
- this->timeout_ = ACE_Time_Value::zero;
- return &this->timeout_;
- }
- }
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Time_Value *
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::calculate_timeout (ACE_Time_Value *max_wait_time,
- ACE_Time_Value *the_timeout)
-{
- ACE_TRACE ("ACE_Timer_Queue_T::calculate_timeout");
-
- if (the_timeout == 0)
- return 0;
-
- if (this->is_empty ())
- {
- // Nothing on the Timer_Queue, so use whatever the caller gave us.
- if (max_wait_time)
- *the_timeout = *max_wait_time;
- else
- return 0;
- }
- else
- {
- ACE_Time_Value cur_time = this->gettimeofday ();
-
- if (this->earliest_time () > cur_time)
- {
- // The earliest item on the Timer_Queue is still in the
- // future. Therefore, use the smaller of (1) caller's wait
- // time or (2) the delta time between now and the earliest
- // time on the Timer_Queue.
-
- *the_timeout = this->earliest_time () - cur_time;
- if (!(max_wait_time == 0 || *max_wait_time > *the_timeout))
- *the_timeout = *max_wait_time;
- }
- else
- {
- // The earliest item on the Timer_Queue is now in the past.
- // Therefore, we've got to "poll" the Reactor, i.e., it must
- // just check the descriptors and then dispatch timers, etc.
- *the_timeout = ACE_Time_Value::zero;
- }
- }
- return the_timeout;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::dump (void) const
-{
- ACE_TRACE ("ACE_Timer_Queue_T::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->timeout_.dump ();
- this->timer_skew_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Queue_T (FUNCTOR *upcall_functor,
- ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist)
- : gettimeofday_ (ACE_OS::gettimeofday),
- delete_upcall_functor_ (upcall_functor == 0),
- delete_free_list_ (freelist == 0),
- timer_skew_ (0, ACE_TIMER_SKEW)
-{
- ACE_TRACE ("ACE_Timer_Queue_T::ACE_Timer_Queue_T");
-
- if (!freelist)
- ACE_NEW (free_list_,
- (ACE_Locked_Free_List<ACE_Timer_Node_T<TYPE>,ACE_Null_Mutex>));
- else
- free_list_ = freelist;
-
- if (!upcall_functor)
- ACE_NEW (upcall_functor_,
- FUNCTOR);
- else
- upcall_functor_ = upcall_functor;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_Queue_T (void)
-{
- ACE_TRACE ("ACE_Timer_Queue_T::~ACE_Timer_Queue_T");
-
- // Cleanup the functor and free_list on the way out
- if (this->delete_upcall_functor_)
- delete this->upcall_functor_;
-
- if (this->delete_free_list_)
- delete this->free_list_;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::alloc_node (void)
-{
- return this->free_list_->remove ();
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::free_node (ACE_Timer_Node_T<TYPE> *node)
-{
- this->free_list_->add (node);
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_LOCK &
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::mutex (void)
-{
- return this->mutex_;
-}
-
-
-// Run the <handle_timeout> method for all Timers whose values are <=
-// <cur_time>.
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::expire (const ACE_Time_Value &cur_time)
-{
- ACE_TRACE ("ACE_Timer_Queue_T::expire");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- // Keep looping while there are timers remaining and the earliest
- // timer is <= the <cur_time> passed in to the method.
-
- if (this->is_empty ())
- return 0;
-
- int number_of_timers_expired = 0;
- int result = 0;
-
- ACE_Timer_Node_Dispatch_Info_T<TYPE> info;
-
- while ((result = this->dispatch_info_i (cur_time,
- info)) != 0)
- {
- // call the functor
- this->upcall (info.type_, info.act_, cur_time);
-
- number_of_timers_expired++;
-
- }
-
- ACE_UNUSED_ARG (result);
- return number_of_timers_expired;
-}
-
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::dispatch_info_i (const ACE_Time_Value &cur_time,
- ACE_Timer_Node_Dispatch_Info_T<TYPE> &info)
-{
- ACE_TRACE ("ACE_Timer_Queue_T::dispatch_info_i");
-
- if (this->is_empty ())
- return 0;
-
- ACE_Timer_Node_T<TYPE> *expired = 0;
-
- if (this->earliest_time () <= cur_time)
- {
- expired = this->remove_first ();
-
- // Get the dispatch info
- expired->get_dispatch_info (info);
-
- // Check if this is an interval timer.
- if (expired->get_interval () > ACE_Time_Value::zero)
- {
- // Make sure that we skip past values that have already
- // "expired".
- do
- expired->set_timer_value (expired->get_timer_value () + expired->get_interval ());
- while (expired->get_timer_value () <= cur_time);
-
- // Since this is an interval timer, we need to reschedule
- // it.
- this->reschedule (expired);
- }
- else
- {
- // Call the factory method to free up the node.
- this->free_node (expired);
- }
-
- return 1;
- }
-
- return 0;
-}
-
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::return_node (ACE_Timer_Node_T<TYPE> *node)
-{
- ACE_MT (ACE_GUARD (ACE_LOCK, ace_mon, this->mutex_));
- this->free_node (node);
-}
-
-
-template <class ACE_LOCK>
-ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::ACE_Event_Handler_Handle_Timeout_Upcall (void)
-{
-}
-
-template <class ACE_LOCK>
-ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::~ACE_Event_Handler_Handle_Timeout_Upcall (void)
-{
-}
-
-template <class ACE_LOCK> int
-ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::timeout (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- const void *act,
- const ACE_Time_Value &cur_time)
-{
- // Upcall to the <handler>s handle_timeout() method.
- if (handler->handle_timeout (cur_time, act) == -1)
- {
-#if 0
- // Commented out until we figure out how to break the coupling that results...
- if (handler->reactor ())
- // Call the reactor's cancel_timer() method to minimize locking.
- handler->reactor ()->cancel_timer (handler, 0); // 0 means "call handle_close()".
- else
-#endif
- // Upcall to the handler's handle_timeout method.
- timer_queue.cancel (handler, 0);
- }
-
- return 0;
-}
-
-template <class ACE_LOCK> int
-ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::cancellation (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler)
-{
- ACE_UNUSED_ARG (timer_queue);
-
- // Upcall to the <handler>s handle_close method
- handler->handle_close (ACE_INVALID_HANDLE,
- ACE_Event_Handler::TIMER_MASK);
- return 0;
-}
-
-template <class ACE_LOCK> int
-ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::deletion (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- const void *arg)
-{
- ACE_UNUSED_ARG (timer_queue);
- ACE_UNUSED_ARG (handler);
- ACE_UNUSED_ARG (arg);
-
- // Does nothing
-
- return 0;
-}
-
-#endif /* ACE_TIMER_QUEUE_T_C*/
diff --git a/ace/Timer_Queue_T.h b/ace/Timer_Queue_T.h
deleted file mode 100644
index 1cae4f56e8d..00000000000
--- a/ace/Timer_Queue_T.h
+++ /dev/null
@@ -1,504 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Timer_Queue_T.h
- *
- * $Id$
- *
- * @author Doug Schmidt <schmidt@cs.wustl.edu>
- * @author Irfan Pyarali <irfan@cs.wustl.edu> and
- * @author Darrell Brunsch <brunsch@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_TIMER_QUEUE_T_H
-#define ACE_TIMER_QUEUE_T_H
-#include "ace/pre.h"
-
-#include "ace/Free_List.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Test_and_Set.h"
-
-/**
- * @class ACE_Timer_Node_Dispatch_Info_T
- *
- * @brief Maintains generated dispatch information for Timer nodes.
- *
- */
-template <class TYPE>
-class ACE_Timer_Node_Dispatch_Info_T
-{
-public:
- /// The type of object held in the queue
- TYPE type_;
-
- /// Asynchronous completion token associated with the timer.
- const void *act_;
-};
-
-/**
- * @class ACE_Timer_Node_T
- *
- * @brief Maintains the state associated with a Timer entry.
- */
-template <class TYPE>
-class ACE_Timer_Node_T
-{
-public:
- /// Default constructor
- ACE_Timer_Node_T (void);
-
- /// Destructor
- ~ACE_Timer_Node_T (void);
-
- /// Useful typedef ..
- typedef ACE_Timer_Node_Dispatch_Info_T <TYPE> DISPATCH_INFO;
-
- /// Singly linked list
- void set (const TYPE &type,
- const void *a,
- const ACE_Time_Value &t,
- const ACE_Time_Value &i,
- ACE_Timer_Node_T<TYPE> *n,
- long timer_id);
-
- /// Doubly linked list version
- void set (const TYPE &type,
- const void *a,
- const ACE_Time_Value &t,
- const ACE_Time_Value &i,
- ACE_Timer_Node_T<TYPE> *p,
- ACE_Timer_Node_T<TYPE> *n,
- long timer_id);
-
- // = Accessors
-
- /// Get the type.
- TYPE &get_type (void);
-
- /// Set the type.
- void set_type (TYPE &type);
-
- /// Get the asynchronous completion token.
- const void *get_act (void);
-
- /// Set the asynchronous completion token.
- void set_act (void *act);
-
- /// Get the timer value.
- const ACE_Time_Value &get_timer_value (void) const;
-
- /// Set the timer value.
- void set_timer_value (const ACE_Time_Value &timer_value);
-
- /// Get the timer interval.
- const ACE_Time_Value &get_interval (void) const;
-
- /// Set the timer interval.
- void set_interval (const ACE_Time_Value &interval);
-
- /// Get the previous pointer.
- ACE_Timer_Node_T<TYPE> *get_prev (void);
-
- /// Set the previous pointer.
- void set_prev (ACE_Timer_Node_T<TYPE> *prev);
-
- /// Get the next pointer.
- ACE_Timer_Node_T<TYPE> *get_next (void);
-
- /// Set the next pointer.
- void set_next (ACE_Timer_Node_T<TYPE> *next);
-
- /// Get the timer_id.
- long get_timer_id (void) const;
-
- /// Set the timer_id.
- void set_timer_id (long timer_id);
-
- /// Get the dispatch info. The dispatch information is got
- /// through <info>. This form helps us in preventing allocation and
- /// deleting data along the criticl path.
- /// @@TODO: We may want to have a copying version too, so that our
- /// interface will be complete..
- void get_dispatch_info (ACE_Timer_Node_Dispatch_Info_T <TYPE> &info);
-
- /// Dump the state of an TYPE.
- void dump (void) const;
-
-private:
- /// Type of object stored in the Queue
- TYPE type_;
-
- /// Asynchronous completion token associated with the timer.
- const void *act_;
-
- /// Time until the timer expires.
- ACE_Time_Value timer_value_;
-
- /// If this is a periodic timer this holds the time until the next
- /// timeout.
- ACE_Time_Value interval_;
-
- /// Pointer to previous timer.
- ACE_Timer_Node_T<TYPE> *prev_;
-
- /// Pointer to next timer.
- ACE_Timer_Node_T<TYPE> *next_;
-
- /// Id of this timer (used to cancel timers before they expire).
- long timer_id_;
-};
-
-/**
- * @class ACE_Timer_Queue_Iterator_T
- *
- * @brief Generic interface for iterating over a subclass of
- * <ACE_Timer_Queue>.
- *
- * This is a generic iterator that can be used to visit every
- * node of a timer queue. Be aware that it isn't guaranteed
- * that the transversal will be in order of timeout values.
- */
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-class ACE_Timer_Queue_Iterator_T
-{
-public:
- // = Initialization and termination methods.
- /// Constructor.
- ACE_Timer_Queue_Iterator_T (void);
-
- /// Destructor.
- virtual ~ACE_Timer_Queue_Iterator_T (void);
-
- /// Positions the iterator at the earliest node in the Timer Queue
- virtual void first (void) = 0;
-
- /// Positions the iterator at the next node in the Timer Queue
- virtual void next (void) = 0;
-
- /// Returns true when there are no more nodes in the sequence
- virtual int isdone (void) const = 0;
-
- /// Returns the node at the current position in the sequence
- virtual ACE_Timer_Node_T<TYPE> *item (void) = 0;
-};
-
-/**
- * @class ACE_Timer_Queue_T
- *
- * @brief Provides an interface to timers.
- *
- * This is an abstract base class that provides hook for
- * implementing specialized policies such as <ACE_Timer_List>
- * and <ACE_Timer_Heap>.
- */
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-class ACE_Timer_Queue_T
-{
-public:
- /// Type of Iterator.
- typedef ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> ITERATOR;
-
- // = Initialization and termination methods.
- /**
- * Default constructor. <upcall_functor> is the instance of the
- * FUNCTOR to be used by the queue. If <upcall_functor> is 0, Timer
- * Queue will create a default FUNCTOR. <freelist> the freelist of
- * timer nodes. If 0, then a default freelist will be created.
- */
- ACE_Timer_Queue_T (FUNCTOR *upcall_functor = 0,
- ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist = 0);
-
- /// Destructor - make virtual for proper destruction of inherited
- /// classes.
- virtual ~ACE_Timer_Queue_T (void);
-
- /// True if queue is empty, else false.
- virtual int is_empty (void) const = 0;
-
- /// Returns the time of the earlier node in the Timer_Queue. Must
- /// be called on a non-empty queue.
- virtual const ACE_Time_Value &earliest_time (void) const = 0;
-
- /**
- * Schedule <type> that will expire at <future_time>,
- * which is specified in absolute time. If it expires then <act> is
- * passed in as the value to the <functor>. If <interval> is != to
- * <ACE_Time_Value::zero> then it is used to reschedule the <type>
- * automatically, using relative time to the current <gettimeofday>.
- * This method returns a <timer_id> that uniquely identifies the the
- * <type> entry in an internal list. This <timer_id> can be used to
- * cancel the timer before it expires. The cancellation ensures
- * that <timer_ids> are unique up to values of greater than 2
- * billion timers. As long as timers don't stay around longer than
- * this there should be no problems with accidentally deleting the
- * wrong timer. Returns -1 on failure (which is guaranteed never to
- * be a valid <timer_id>).
- */
- virtual long schedule (const TYPE &type,
- const void *act,
- const ACE_Time_Value &future_time,
- const ACE_Time_Value &interval = ACE_Time_Value::zero) = 0;
-
- /**
- * Resets the interval of the timer represented by <timer_id> to
- * <interval>, which is specified in relative time to the current
- * <gettimeofday>. If <interval> is equal to
- * <ACE_Time_Value::zero>, the timer will become a non-rescheduling
- * timer. Returns 0 if successful, -1 if not.
- */
- virtual int reset_interval (long timer_id,
- const ACE_Time_Value &interval) = 0;
-
- /**
- * Cancel all timer associated with <type>. If
- * <dont_call_handle_close> is 0 then the <functor> will be invoked,
- * which typically invokes the <handle_close> hook. Returns number
- * of timers cancelled.
- */
- virtual int cancel (const TYPE &type,
- int dont_call_handle_close = 1) = 0;
-
- /**
- * Cancel the single timer that matches the <timer_id> value (which
- * was returned from the <schedule> method). If act is non-NULL
- * then it will be set to point to the ``magic cookie'' argument
- * passed in when the timer was registered. This makes it possible
- * to free up the memory and avoid memory leaks. If
- * <dont_call_handle_close> is 0 then the <functor> will be invoked,
- * which typically calls the <handle_close> hook. Returns 1 if
- * cancellation succeeded and 0 if the <timer_id> wasn't found.
- */
- virtual int cancel (long timer_id,
- const void **act = 0,
- int dont_call_handle_close = 1) = 0;
-
- /**
- * Run the <functor> for all timers whose values are <= <cur_time>.
- * This does not account for <timer_skew>. Returns the number of
- * timers canceled.
- */
- virtual int expire (const ACE_Time_Value &current_time);
-
- /**
- * Get the dispatch information for a timer whose value is <= <cur_time>.
- * This does not account for <timer_skew>. Returns 1 if
- * there is a node whose value <= <cur_time> else returns a 0.
- *
- */
- int dispatch_info (const ACE_Time_Value &current_time,
- ACE_Timer_Node_Dispatch_Info_T<TYPE> &info);
-
- /**
- * Run the <functor> for all timers whose values are <=
- * <ACE_OS::gettimeofday>. Also accounts for <timer_skew>.
- *
- * Depending on the resolution of the underlying OS the system calls
- * like select()/poll() might return at time different than that is
- * specified in the timeout. Suppose the OS guarantees a resolution of t ms.
- * The timeline will look like
- *
- * A B
- * | |
- * V V
- * |-------------|-------------|-------------|-------------|
- * t t t t t
- *
- *
- * If you specify a timeout value of A, then the timeout will not occur
- * at A but at the next interval of the timer, which is later than
- * that is expected. Similarly, if your timeout value is equal to B,
- * then the timeout will occur at interval after B. Now depending upon the
- * resolution of your timeouts and the accuracy of the timeouts
- * needed for your application, you should set the value of
- * <timer_skew>. In the above case, if you want the timeout A to fire
- * no later than A, then you should specify your <timer_skew> to be
- * A % t.
- *
- * The timeout value should be specified via the macro ACE_TIMER_SKEW
- * in your config.h file. The default value is zero.
- *
- * Things get interesting if the t before the timeout value B is zero
- * i.e your timeout is less than the interval. In that case, you are
- * almost sure of not getting the desired timeout behaviour. Maybe you
- * should look for a better OS :-)
- *
- * Returns the number of timers canceled.
- */
-
- /* virtual */ int expire (void);
-
- /**
- * Returns the current time of day. This method allows different
- * implementations of the timer queue to use special high resolution
- * timers.
- */
- /* virtual */ ACE_Time_Value gettimeofday (void);
-
- /// Allows applications to control how the timer queue gets the time
- /// of day.
- void gettimeofday (ACE_Time_Value (*gettimeofday)(void));
-
- /// Determine the next event to timeout. Returns <max> if there are
- /// no pending timers or if all pending timers are longer than max.
- /// This method acquires a lock internally since it modifies internal state.
- virtual ACE_Time_Value *calculate_timeout (ACE_Time_Value *max);
-
- /**
- * Determine the next event to timeout. Returns <max> if there are
- * no pending timers or if all pending timers are longer than max.
- * <the_timeout> should be a pointer to storage for the timeout value,
- * and this value is also returned. This method does not acquire a
- * lock internally since it doesn't modify internal state. If you
- * need to call this method when the queue is being modified
- * concurrently, however, you should make sure to acquire the <mutex()>
- * externally before making the call.
- */
- virtual ACE_Time_Value *calculate_timeout (ACE_Time_Value *max,
- ACE_Time_Value *the_timeout);
-
- /// Set the timer skew for the Timer_Queue.
- void timer_skew (const ACE_Time_Value &skew);
-
- /// Get the timer skew for the Timer_Queue.
- const ACE_Time_Value &timer_skew (void) const;
-
- /// Synchronization variable used by the queue
- ACE_LOCK &mutex (void);
-
- /// Accessor to the upcall functor
- FUNCTOR &upcall_functor (void);
-
- /// Returns a pointer to this <ACE_Timer_Queue>'s iterator.
- virtual ITERATOR &iter (void) = 0;
-
- /// Removes the earliest node from the queue and returns it
- virtual ACE_Timer_Node_T<TYPE> *remove_first (void) = 0;
-
- /// Dump the state of a object.
- virtual void dump (void) const;
-
- /// Reads the earliest node from the queue and returns it.
- virtual ACE_Timer_Node_T<TYPE> *get_first (void) = 0;
-
- /// Method used to return a timer node to the queue's ownership
- /// after it is returned by a method like <remove_first>.
- virtual void return_node (ACE_Timer_Node_T<TYPE> *);
-
-
- /// This method will call the <functor> with the <type>, <act> and
- /// <cur_time>
- /* virtual */ void upcall (TYPE &type,
- const void *act,
- const ACE_Time_Value &cur_time);
-
-protected:
- /// Reschedule an "interval" <ACE_Timer_Node>.
- virtual void reschedule (ACE_Timer_Node_T<TYPE> *) = 0;
-
- /// Factory method that allocates a new node.
- virtual ACE_Timer_Node_T<TYPE> *alloc_node (void);
-
- /// Factory method that frees a previously allocated node.
- virtual void free_node (ACE_Timer_Node_T<TYPE> *);
-
- /// Non-locking version of dispatch_info ()
- int dispatch_info_i (const ACE_Time_Value &current_time,
- ACE_Timer_Node_Dispatch_Info_T<TYPE> &info);
-
- /// Synchronization variable for <ACE_Timer_Queue>.
- /// NOTE: the right name would be lock_, but HP/C++ will choke on that!
- ACE_LOCK mutex_;
-
- /// Class that implements a free list
- ACE_Free_List<ACE_Timer_Node_T<TYPE> > *free_list_;
-
- /// Pointer to function that returns the current time of day.
- ACE_Time_Value (*gettimeofday_)(void);
-
- /// Upcall functor
- FUNCTOR *upcall_functor_;
-
- /// To delete or not to delete is the question?
- int delete_upcall_functor_;
-
- /// Flag to delete only if the class created the <free_list_>
- int delete_free_list_;
-
-private:
-
- /// Returned by <calculate_timeout>.
- ACE_Time_Value timeout_;
-
- /// Adjusts for timer skew in various clocks.
- ACE_Time_Value timer_skew_;
-
- // = Don't allow these operations for now.
- ACE_UNIMPLEMENTED_FUNC (ACE_Timer_Queue_T (const ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> &))
-};
-
-/**
- * @class ACE_Event_Handler_Handle_Timeout_Upcall
- *
- * @brief Functor for Timer_Queues.
- *
- * This class implements the functor required by the Timer
- * Queue to call <handle_timeout> on ACE_Event_Handlers.
- */
-template <class ACE_LOCK>
-class ACE_Event_Handler_Handle_Timeout_Upcall
-{
-public:
- typedef ACE_Timer_Queue_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>,
- ACE_LOCK>
- TIMER_QUEUE;
-
- // = Initialization and termination methods.
- /// Constructor.
- ACE_Event_Handler_Handle_Timeout_Upcall (void);
-
- /// Destructor.
- ~ACE_Event_Handler_Handle_Timeout_Upcall (void);
-
- /// This method is called when the timer expires
- int timeout (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- const void *arg,
- const ACE_Time_Value &cur_time);
-
- /// This method is called when the timer is cancelled
- int cancellation (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler);
-
- /// This method is called when the timer queue is destroyed and
- /// the timer is still contained in it
- int deletion (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- const void *arg);
-private:
- // = Don't allow these operations for now.
- ACE_UNIMPLEMENTED_FUNC (ACE_Event_Handler_Handle_Timeout_Upcall (const ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK> &))
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Timer_Queue_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) && !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES)
-#include "ace/Timer_Queue_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE && !ACE_HAS_BROKEN_HPUX_TEMPLATES */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Timer_Queue_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_TIMER_QUEUE_T_H */
diff --git a/ace/Timer_Queue_T.i b/ace/Timer_Queue_T.i
deleted file mode 100644
index 8af63669a6f..00000000000
--- a/ace/Timer_Queue_T.i
+++ /dev/null
@@ -1,188 +0,0 @@
-// $Id$
-
-/* -*- C++ -*- */
-
-template <class TYPE> ACE_INLINE void
-ACE_Timer_Node_T<TYPE>::set (const TYPE &type,
- const void *a,
- const ACE_Time_Value &t,
- const ACE_Time_Value &i,
- ACE_Timer_Node_T<TYPE> *n,
- long timer_id)
-{
- this->type_ = type;
- this->act_ = a;
- this->timer_value_ = t;
- this->interval_ = i;
- this->next_ = n;
- this->timer_id_ = timer_id;
-}
-
-template <class TYPE> ACE_INLINE void
-ACE_Timer_Node_T<TYPE>::set (const TYPE &type,
- const void *a,
- const ACE_Time_Value &t,
- const ACE_Time_Value &i,
- ACE_Timer_Node_T<TYPE> *p,
- ACE_Timer_Node_T<TYPE> *n,
- long timer_id)
-{
- this->type_ = type;
- this->act_ = a;
- this->timer_value_ = t;
- this->interval_ = i;
- this->prev_ = p;
- this->next_ = n;
- this->timer_id_ = timer_id;
-}
-
-template <class TYPE> ACE_INLINE TYPE &
-ACE_Timer_Node_T<TYPE>::get_type (void)
-{
- return this->type_;
-}
-
-template <class TYPE> ACE_INLINE void
-ACE_Timer_Node_T<TYPE>::set_type (TYPE &type)
-{
- this->type_ = type;
-}
-
-template <class TYPE> ACE_INLINE const void *
-ACE_Timer_Node_T<TYPE>::get_act (void)
-{
- return this->act_;
-}
-
-template <class TYPE> ACE_INLINE void
-ACE_Timer_Node_T<TYPE>::set_act (void *act)
-{
- this->act_ = act;
-}
-
-template <class TYPE> ACE_INLINE const ACE_Time_Value &
-ACE_Timer_Node_T<TYPE>::get_timer_value (void) const
-{
- return this->timer_value_;
-}
-
-template <class TYPE> ACE_INLINE void
-ACE_Timer_Node_T<TYPE>::set_timer_value (const ACE_Time_Value &timer_value)
-{
- this->timer_value_ = timer_value;
-}
-
-template <class TYPE> ACE_INLINE const ACE_Time_Value &
-ACE_Timer_Node_T<TYPE>::get_interval (void) const
-{
- return this->interval_;
-}
-
-template <class TYPE> ACE_INLINE void
-ACE_Timer_Node_T<TYPE>::set_interval (const ACE_Time_Value &interval)
-{
- this->interval_ = interval;
-}
-
-template <class TYPE> ACE_INLINE ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Node_T<TYPE>::get_prev (void)
-{
- return this->prev_;
-}
-
-template <class TYPE> ACE_INLINE void
-ACE_Timer_Node_T<TYPE>::set_prev (ACE_Timer_Node_T<TYPE> *prev)
-{
- this->prev_ = prev;
-}
-
-template <class TYPE> ACE_INLINE ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Node_T<TYPE>::get_next (void)
-{
- return this->next_;
-}
-
-template <class TYPE> ACE_INLINE void
-ACE_Timer_Node_T<TYPE>::set_next (ACE_Timer_Node_T<TYPE> *next)
-{
- this->next_ = next;
-}
-
-template <class TYPE> ACE_INLINE long
-ACE_Timer_Node_T<TYPE>::get_timer_id (void) const
-{
- return this->timer_id_;
-}
-
-template <class TYPE> ACE_INLINE void
-ACE_Timer_Node_T<TYPE>::set_timer_id (long timer_id)
-{
- this->timer_id_ = timer_id;
-}
-
-template <class TYPE> ACE_INLINE void
-ACE_Timer_Node_T<TYPE>::get_dispatch_info (ACE_Timer_Node_Dispatch_Info_T<TYPE> &info)
-{
- // Yes, do a copy
- info.type_ = this->type_;
- info.act_ = this->act_;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_INLINE void
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::timer_skew (const ACE_Time_Value &skew)
-{
- timer_skew_ = skew;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_INLINE const ACE_Time_Value &
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::timer_skew (void) const
-{
- return timer_skew_;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_INLINE int
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::expire (void)
-{
- if (!this->is_empty ())
- return this->expire (this->gettimeofday () + timer_skew_);
- else
- return 0;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::dispatch_info (const ACE_Time_Value &cur_time,
- ACE_Timer_Node_Dispatch_Info_T<TYPE> &info)
-{
- ACE_TRACE ("ACE_Timer_Queue_T::dispatch_info");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, 0));
-
- return this->dispatch_info_i (cur_time, info);
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_INLINE void
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::upcall (TYPE &type,
- const void *act,
- const ACE_Time_Value &cur_time)
-{
- this->upcall_functor ().timeout (*this, type, act, cur_time);
-}
-
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_INLINE ACE_Time_Value
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::gettimeofday (void)
-{
- // Invoke gettimeofday via pointer to function.
- return this->gettimeofday_ ();
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_INLINE void
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::gettimeofday (ACE_Time_Value (*gettimeofday)(void))
-{
- this->gettimeofday_ = gettimeofday;
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_INLINE FUNCTOR &
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::upcall_functor (void)
-{
- return *this->upcall_functor_;
-}
diff --git a/ace/Timer_Wheel.cpp b/ace/Timer_Wheel.cpp
deleted file mode 100644
index de72afccb18..00000000000
--- a/ace/Timer_Wheel.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-// $Id$
-
-#if !defined (ACE_TIMER_WHEEL_C)
-#define ACE_TIMER_WHEEL_C
-
-#include "ace/Timer_Wheel.h"
-
-#if defined (ACE_HAS_BROKEN_HPUX_TEMPLATES)
-#include "ace/Timer_Wheel_T.cpp"
-#endif /* ACE_HAS_BROKEN_HPUX_TEMPLATES */
-
-ACE_RCSID(ace, Timer_Wheel, "$Id$")
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Timer_Wheel_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-template class ACE_Timer_Wheel_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Timer_Wheel_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>
-#pragma instantiate ACE_Timer_Wheel_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>, ACE_SYNCH_RECURSIVE_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-
-#endif /* ACE_TIMER_WHEEL_C */
diff --git a/ace/Timer_Wheel.h b/ace/Timer_Wheel.h
deleted file mode 100644
index 5d37d0488dc..00000000000
--- a/ace/Timer_Wheel.h
+++ /dev/null
@@ -1,39 +0,0 @@
-
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Timer_Wheel.h
- *
- * $Id$
- *
- * @author Darrell Brunsch (brunsch@cs.wustl.edu)
- */
-//=============================================================================
-
-
-#ifndef ACE_TIMER_WHEEL_H
-#define ACE_TIMER_WHEEL_H
-#include "ace/pre.h"
-
-#include "ace/Timer_Wheel_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// The following typedef are here for ease of use and backward
-// compatibility.
-
-typedef ACE_Timer_Wheel_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX>
- ACE_Timer_Wheel;
-
-typedef ACE_Timer_Wheel_Iterator_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX>
- ACE_Timer_Wheel_Iterator;
-
-#include "ace/post.h"
-#endif /* ACE_TIMER_WHEEL_H */
diff --git a/ace/Timer_Wheel_T.cpp b/ace/Timer_Wheel_T.cpp
deleted file mode 100644
index 2272210f92f..00000000000
--- a/ace/Timer_Wheel_T.cpp
+++ /dev/null
@@ -1,912 +0,0 @@
-// $Id$
-
-#ifndef ACE_TIMER_WHEEL_T_C
-#define ACE_TIMER_WHEEL_T_C
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Timer_Wheel_T.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(ace, Timer_Wheel_T, "$Id$")
-
-
-// Design/implementation notes for ACE_Timer_Wheel_T.
-//
-// Each timer queue entry is represented by a ACE_Timer_Node.
-// The timing wheel is divided into a number of "spokes"; there are
-// spoke_count_ spokes in the wheel. Each timer is hashed into one of the
-// spokes. Entries within each spoke are linked in a double-linked list
-// in order of increasing expiration. The first ACE_Timer_Node in each
-// spoke is a "dummy node" that marks the end of the list of ACE_Timer_Nodes
-// in that spoke.
-//
-// The timer ID for a scheduled timer is formed by its spoke position in
-// the wheel, and the number of timers that have been inserted in that spoke
-// since the queue was initialized. N bits of the long timer_id are used
-// to determine the spoke, and M bits are used as a counter.
-// Each time a Node is inserted into a spoke, it's counter
-// is incremented. The count is kept in the timer ID field
-// of the dummy root Node. In the event of overflow of the counter, the spoke
-// must be searched for each new id to make sure it's not already in use. To
-// prevent having to do an exhaustive search each time, we keep extra data
-// in the dummy root Node.
-/**
-* Default Constructor that sets defaults for spoke_count_ and resolution_
-* and doesn't do any preallocation.
-*
-* @param upcall_functor A pointer to a functor to use instead of the default
-* @param freelist A pointer to a freelist to use instead of the default
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Wheel_T
-(FUNCTOR* upcall_functor
- , FreeList* freelist
- )
-: Base (upcall_functor, freelist)
-, spokes_(0)
-, spoke_count_(0) // calculated in open_i
-, spoke_bits_(0)
-, res_bits_ (0)
-, earliest_spoke_ (0)
-, iterator_(0)
-, timer_count_(0)
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::ACE_Timer_Wheel_T");
- this->open_i (0,
- ACE_DEFAULT_TIMER_WHEEL_SIZE,
- ACE_DEFAULT_TIMER_WHEEL_RESOLUTION);
-}
-
-/**
-* Constructor that sets up the timing wheel and also may preallocate
-* some nodes on the free list
-*
-* @param spoke_count The number of lists in the timer wheel
-* @param resolution The time resolution in milliseconds used by the hashing function
-* @param prealloc The number of entries to prealloc in the free_list
-* @param upcall_functor A pointer to a functor to use instead of the default
-* @param freelist A pointer to a freelist to use instead of the default
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Wheel_T
- (u_int spoke_count,
- u_int resolution,
- size_t prealloc,
- FUNCTOR* upcall_functor,
- FreeList* freelist)
-: Base (upcall_functor, freelist)
-, spokes_ (0)
-, spoke_count_ (0) // calculated in open_i
-, spoke_bits_ (0)
-, res_bits_ (0)
-, earliest_spoke_ (0)
-, iterator_ (0)
-, timer_count_ (0)
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::ACE_Timer_Wheel_T");
- this->open_i (prealloc, spoke_count, resolution);
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::power2bits (int n,
- int min_bits,
- int max_bits)
-{
- int max = (1 << max_bits) - 1;
- if (n > max)
- return max_bits;
-
- // count the bits in n.
- int i = 0;
- int tmp = n;
- do
- {
- tmp >>= 1;
- ++i;
- }
- while (tmp != 0);
-
- if (i <= min_bits)
- return min_bits;
-
- // Which is nearest?
- int a = (1 << i) - n;
- int b = (1 << (i - 1)) - n;
- if (b < 0)
- b = -b;
- if (b < a)
- return i - 1;
- return i;
-}
-
-/**
-* Initialize the queue. Uses the established members for all needed
-* information.
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::open_i
- (size_t prealloc, u_int spokes, u_int res)
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::open_i");
-
- this->gettimeofday (ACE_OS::gettimeofday);
-
- // Rather than waste bits in our timer id, we might as well round up
- // the spoke count to the next power of two - 1 . (i.e 1,3,7,15,...127,etc.)
- const int MIN_SPOKE_BITS = 3; // Allow between 8 and 4096 spokes
- const int MAX_SPOKE_BITS = 12;
- const int MAX_RES_BITS = 20; // 20 is plenty, even on 64 bit platforms.
-
- this->spoke_bits_ = power2bits (spokes, MIN_SPOKE_BITS, MAX_SPOKE_BITS);
- this->res_bits_ = power2bits (res, 1, MAX_RES_BITS);
-
- this->spoke_count_ = 1 << this->spoke_bits_;
-
- this->free_list_->resize (prealloc + this->spoke_count_);
-
- this->wheel_time_.msec (1 << (this->res_bits_ + this->spoke_bits_));
-
- ACE_NEW (this->spokes_, ACE_Timer_Node_T<TYPE>* [this->spoke_count_]);
-
- // Create the root nodes. These will be treated specially
- for (u_int i = 0; i < this->spoke_count_; ++i)
- {
- ACE_Timer_Node_T<TYPE>* root = this->alloc_node ();
- root->set (0, 0, ACE_Time_Value::zero, ACE_Time_Value::zero, root, root, 0);
- this->spokes_[i] = root;
- }
-
- ACE_NEW (iterator_, Iterator (*this));
-}
-
-/// Destructor just cleans up its memory
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_Wheel_T (void)
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::~ACE_Timer_Wheel_T");
-
- delete iterator_;
-
- for (u_int i = 0; i < this->spoke_count_; ++i)
- {
- // Free all the nodes starting at the root
- ACE_Timer_Node_T<TYPE>* root = this->spokes_[i];
- for (ACE_Timer_Node_T<TYPE>* n = root->get_next (); n != root;)
- {
- ACE_Timer_Node_T<TYPE>* next = n->get_next ();
- this->upcall_functor ().deletion (*this, n->get_type (), n->get_act ());
- this->free_node (n);
- n = next;
- }
- delete root;
- }
- delete[] this->spokes_;
-}
-
-/// Searches for a node by timer_id within one spoke.
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Node_T<TYPE>*
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::find_spoke_node
- (u_int spoke, long timer_id) const
-{
- ACE_Timer_Node_T<TYPE>* root = this->spokes_[spoke];
- for (ACE_Timer_Node_T<TYPE>* n = root->get_next ();
- n != root;
- n = n->get_next ())
- {
- if (n->get_timer_id () == timer_id)
- return n;
- }
- return 0;
-}
-
-/// Searches all spokes for a node matching the specified timer_id
-/// Uses the spoke encoded in the timer_id as a starting place.
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Node_T<TYPE>*
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::find_node (long timer_id) const
-{
- if (timer_id == -1)
- return 0;
-
- // Search the spoke where timer_id was originally scheduled
- u_int spoke_mask = this->spoke_count_ - 1;
- u_int start = timer_id & spoke_mask;
- ACE_Timer_Node_T<TYPE>* n = this->find_spoke_node (start, timer_id);
- if (n != 0)
- return n;
-
- //ACE_ERROR((LM_ERROR, "Node not found in original spoke.\n"));
-
- // Search the rest of the spokes
- for (u_int i = 0; i < this->spoke_count_; ++i)
- {
- if (i != start)
- { // already searched this one
- n = this->find_spoke_node (i, timer_id);
- if (n != 0)
- return n;
- }
- }
-
- //ACE_ERROR((LM_ERROR, "Node not found.\n"));
- return 0;
-}
-
-/**
-* Check to see if the wheel is empty
-*
-* @return True if empty
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::is_empty (void) const
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::is_empty");
- return timer_count_ == 0;
-}
-
-
-/**
-* @return First (earliest) node in the wheel_'s earliest_spoke_ list
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> const ACE_Time_Value &
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::earliest_time (void) const
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::earliest_time");
- ACE_Timer_Node_T<TYPE>* n = this->get_first_i ();
- if (n != 0)
- return n->get_timer_value ();
- return ACE_Time_Value::zero;
-}
-
-/// Uses a simple hash to find which spoke to use based on when the
-/// timer is due to expire. Hopefully the 64bit int operations avoid
-/// any overflow problems.
-template <class TYPE, class FUNCTOR, class ACE_LOCK> u_int
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::calculate_spoke
- (const ACE_Time_Value& t) const
-{
- return ACE_static_cast(u_int, (t.msec () >> this->res_bits_) & (this->spoke_count_ - 1));
-}
-
-/// Generates a unique timer_id for the given spoke. It should be pretty
-/// fast until the point where the counter overflows. At that time you
-/// have to do exhaustive searches within the spoke to ensure that a particular
-/// timer id is not already in use. Some optimizations are in place so
-/// that this hopefully doesn't have to happen often.
-template <class TYPE, class FUNCTOR, class ACE_LOCK> long
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::generate_timer_id (u_int spoke)
-{
-
- int cnt_bits = sizeof (long) * 8 - this->spoke_bits_;
- long max_cnt = ((long)1 << cnt_bits) - 1;
- if (spoke == this->spoke_count_)
- --max_cnt; // Because -1 is used as a special invalid timer_id.
-
- ACE_Timer_Node_T<TYPE>* root = this->spokes_[spoke];
-
- if (root == root->get_next ())
- root->set_act(0);
-
- // We use this field to keep track of the next counter value that
- // may be in use. Of course it may have expired, so we just use
- // this field so that we know when we don't have to check for duplicates
-#if defined (ACE_WIN64)
- // The cast below is legit... we know that long is shorter than a
- // pointer, but are only using it as a 'long' storage area.
-# pragma warning(push)
-# pragma warning(disable : 4311)
-#endif /* ACE_WIN64 */
- long next_cnt = ACE_reinterpret_cast (long, root->get_act ());
-#if defined (ACE_WIN64)
-# pragma warning(pop)
-#endif /* ACE_WIN64 */
-
- // This field is used as a counter instead of a timer_id.
- long cnt = root->get_timer_id ();
-
- if (cnt >= max_cnt && root == root->get_next ())
- {
- // Special case when we overflow on an empty spoke. We can just
- // wrap the count around without searching for duplicates. We only
- // want to do this when the counter overflows, so that we return
- // unique timer_id values as often as possible.
- root->set_timer_id (1);
- return spoke;
- }
- else if (cnt >= max_cnt)
- { // overflow
- cnt = 0; // try again starting at zero
- }
- else if (next_cnt == 0 || cnt < next_cnt)
- {
- root->set_timer_id (cnt + 1);
- return (cnt << this->spoke_bits_) | spoke;
- }
-
- //ACE_ERROR((LM_ERROR, "Timer id overflow. We have to search now.\n"));
-
- // We've run out of consecutive id numbers so now we have to search
- // for a unique id.
- // We'll try increasing numbers until we find one that is not in use,
- // and we'll record the next highest number so that we can avoid this
- // search as often as possible.
- for (; cnt < max_cnt - 1; ++cnt)
- {
- long id = (cnt << this->spoke_bits_) | spoke;
- ACE_Timer_Node_T<TYPE>* n = this->find_spoke_node (spoke, id);
- if (n == 0)
- {
- root->set_timer_id (cnt + 1);
- // Now we need to find the next highest cnt in use
- next_cnt = 0;
- for (; n != root; n = n->get_next ())
- {
- long tmp = n->get_timer_id () >> this->spoke_bits_;
- if (tmp > cnt && (tmp < next_cnt || next_cnt == 0))
- next_cnt = tmp;
- }
-#if defined (ACE_WIN64)
- // The cast below is legit... we know we're storing a long in
- // a pointer, but are only using it as a 'long' storage area.
-# pragma warning(push)
-# pragma warning(disable : 4312)
-#endif /* ACE_WIN64 */
- root->set_act (ACE_reinterpret_cast (void*, next_cnt));
-#if defined (ACE_WIN64)
-# pragma warning(pop)
-#endif /* ACE_WIN64 */
- return id;
- }
- }
-
- return -1; // We did our best, but the spoke is full.
-}
-
-/**
-* Creates a ACE_Timer_Node_T based on the input parameters. Then inserts
-* the node into the wheel using reschedule (). Then returns a timer_id.
-*
-* @param type The data of the timer node
-* @param act Asynchronous Completion Token (AKA magic cookie)
-* @param future_time The time the timer is scheduled for (absolute time)
-* @param interval If not ACE_Time_Value::zero, then this is a periodic
-* timer and interval is the time period
-*
-* @return Unique identifier (can be used to cancel the timer).
-* -1 on failure.
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> long
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::schedule (
- const TYPE& type,
- const void* act,
- const ACE_Time_Value& future_time,
- const ACE_Time_Value& interval
- )
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::schedule");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- ACE_Timer_Node_T<TYPE>* n = this->alloc_node ();
-
- if (n != 0)
- {
- u_int spoke = calculate_spoke (future_time);
- long id = generate_timer_id (spoke);
-
- //ACE_ERROR((LM_ERROR, "Scheduling %x spoke:%d id:%d\n", (long) n, spoke, id));
-
- if (id != -1)
- {
- n->set (type, act, future_time, interval, 0, 0, id);
- this->schedule_i (n, spoke, future_time);
- }
- return id;
- }
-
- // Failure return
- errno = ENOMEM;
- return -1;
-}
-
-/**
-* Takes an ACE_Timer_Node and inserts it into the correct position in
-* the correct list. Also makes sure to update the earliest time.
-*
-* @param n The timer node to reschedule
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::reschedule (ACE_Timer_Node_T<TYPE>* n)
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::reschedule");
- const ACE_Time_Value& expire = n->get_timer_value ();
- u_int spoke = calculate_spoke (expire);
- this->schedule_i (n, spoke, expire);
-}
-
-/// The shared scheduling functionality between schedule() and reschedule()
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::schedule_i
- (ACE_Timer_Node_T<TYPE>* n,
- u_int spoke,
- const ACE_Time_Value& expire)
-{
- // See if we need to update the earliest time
- if (this->is_empty() || expire < this->earliest_time ())
- this->earliest_spoke_ = spoke;
-
- ACE_Timer_Node_T<TYPE>* root = this->spokes_[spoke];
- ACE_Timer_Node_T<TYPE>* last = root->get_prev ();
-
- ++timer_count_;
-
- // If the spoke is empty
- if (last == root) {
- n->set_prev (root);
- n->set_next (root);
- root->set_prev (n);
- root->set_next (n);
- return;
- }
-
- // We always want to search backwards from the tail of the list, because
- // this minimizes the search in the extreme case when lots of timers are
- // scheduled for exactly the same time
- ACE_Timer_Node_T<TYPE>* p = root->get_prev ();
- while (p != root && p->get_timer_value () > expire)
- p = p->get_prev ();
-
- // insert after
- n->set_prev (p);
- n->set_next (p->get_next ());
- p->get_next ()->set_prev (n);
- p->set_next (n);
-}
-
-
-/**
-* Find the timer node by using the id as a pointer. Then use set_interval()
-* on the node to update the interval.
-*
-* @param timer_id The timer identifier
-* @param interval The new interval
-*
-* @return 0 if successful, -1 if no.
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::reset_interval (long timer_id,
- const ACE_Time_Value &interval
- )
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::reset_interval");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
- ACE_Timer_Node_T<TYPE>* n = this->find_node (timer_id);
- if (n != 0)
- {
- // The interval will take effect the next time this node is expired.
- n->set_interval (interval);
- return 0;
- }
- return -1;
-}
-
-
-/**
-* Goes through every list in the wheel and whenever we find one with the
-* correct type value, we remove it and continue. At the end make sure
-* we reset the earliest time value in case the earliest timers were
-* removed.
-*
-* @param type The value to search for.
-* @param skip_close If this non-zero, the cancellation method of the
-* functor will not be called for each cancelled timer.
-*
-* @return Number of timers cancelled
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (const TYPE& type, int skip_close)
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::cancel");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- int num_canceled = 0; // Note : Technically this can overflow.
-
- if (!this->is_empty ())
- {
- ACE_Timer_Node_T<TYPE>* first = this->get_first ();
- ACE_Time_Value last = first->get_timer_value ();
- int recalc = 0;
-
- for (u_int i = 0; i < this->spoke_count_; ++i)
- {
- ACE_Timer_Node_T<TYPE>* root = this->spokes_[i];
- for (ACE_Timer_Node_T<TYPE>* n = root->get_next (); n != root; )
- {
- if (n->get_type () == type)
- {
- ++num_canceled;
- if (n == first)
- recalc = 1;
-
- ACE_Timer_Node_T<TYPE>* tmp = n;
- n = n->get_next ();
- int always_skip_close = 1; // todo : Is this correct?
- this->cancel_i (tmp, always_skip_close);
- }
- else
- {
- n = n->get_next ();
- }
- }
- }
-
- if (recalc)
- this->recalc_earliest (last);
- }
-
- if (!skip_close) // && num_canceled > 0)
- this->upcall_functor().cancellation (*this, type);
-
- return num_canceled;
-}
-
-
-/**
-* Cancels the single timer that is specified by the timer_id. In this
-* case the timer_id is actually a pointer to the node, so we cast it
-* to the node. This can be dangerous if the timer_id is made up
-* (or deleted twice) so we do a little sanity check. Finally we update
-* the earliest time in case the earliest timer was removed.
-*
-* @param timer_id Timer Identifier
-* @param act Asychronous Completion Token (AKA magic cookie):
-* If this is non-zero, stores the magic cookie of
-* the cancelled timer here.
-* @param skip_close If this non-zero, the cancellation method of the
-* functor will not be called.
-*
-* @return 1 for sucess and 0 if the timer_id wasn't found (or was
-* found to be invalid)
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (long timer_id,
- const void **act,
- int skip_close)
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::cancel");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
- ACE_Timer_Node_T<TYPE>* n = this->find_node (timer_id);
- if (n != 0)
- {
- ACE_Time_Value last = n->get_timer_value ();
- int recalc = (this->get_first_i () == n);
- if (act != 0)
- *act = n->get_act ();
- this->cancel_i (n, skip_close);
- if (recalc)
- this->recalc_earliest (last);
- return 1;
- }
- return 0;
-}
-
-/// Shared subset of the two cancel() methods.
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::cancel_i (ACE_Timer_Node_T<TYPE>* n, int skip_close)
-{
- //ACE_ERROR((LM_ERROR, "Canceling %x\n", (long) n));
- this->unlink (n);
- this->free_node (n);
- if (!skip_close)
- this->upcall_functor ().cancellation (*this, n->get_type ());
-}
-
-/// There are a few places where we have to figure out which timer
-/// will expire next. This method makes the assumption that spokes
-/// are always sorted, and that timers are always in the correct spoke
-/// determined from their expiration time.
-/// The last time is always passed in, even though you can often calculate
-/// it as get_first()->get_timer_value().
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::recalc_earliest
- (const ACE_Time_Value& last)
-{
- // This is possible because we use a count for is_empty()
- if (this->is_empty ())
- return;
-
- ACE_Time_Value et = ACE_Time_Value::zero;
-
- u_int spoke = this->earliest_spoke_;
-
- // We will have to go around the wheel at most one time.
- for (u_int i = 0; i < this->spoke_count_; ++i)
- {
- ACE_Timer_Node_T<TYPE>* root = this->spokes_[spoke];
- ACE_Timer_Node_T<TYPE>* n = root->get_next ();
- if (n != root)
- {
- ACE_Time_Value t = n->get_timer_value ();
- if (t < last + this->wheel_time_)
- {
- this->earliest_spoke_ = spoke;
- return;
- }
- else if (et == ACE_Time_Value::zero || t < et)
- {
- et = t;
- }
- }
- if (++spoke >= this->spoke_count_)
- spoke = 0;
- }
- //ACE_ERROR((LM_ERROR, "We had to search the whole wheel.\n"));
-}
-
-/**
-* Dumps out the size of the wheel, the resolution, and the contents
-* of the wheel.
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::dump (void) const
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\nspoke_count_ = %d"), this->spoke_count_));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\nresolution_ = %d"), 1 << this->res_bits_));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\nwheel_ = \n")));
-
- for (u_int i = 0; i < this->spoke_count_; ++i)
- {
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("%d\n"), i));
- ACE_Timer_Node_T<TYPE>* root = this->spokes_[i];
- for (ACE_Timer_Node_T<TYPE>* n = root->get_next ();
- n != root;
- n = n->get_next ())
- {
- n->dump ();
- }
- }
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-
-/**
-* Removes the earliest node and then find the new <earliest_spoke_>
-*
-* @return The earliest timer node.
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::remove_first (void)
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::remove_first");
- return remove_first_expired (ACE_Time_Value::max_time);
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::unlink (ACE_Timer_Node_T<TYPE>* n)
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::unlink");
- --timer_count_;
- n->get_prev ()->set_next (n->get_next ());
- n->get_next ()->set_prev (n->get_prev ());
- n->set_prev (0);
- n->set_next (0);
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::remove_first_expired (const ACE_Time_Value& now)
-{
- ACE_Timer_Node_T<TYPE>* n = this->get_first ();
- if (n != 0 && n->get_timer_value() <= now)
- {
- this->unlink (n);
- this->recalc_earliest (n->get_timer_value ());
- return n;
- }
- return 0;
-}
-
-/**
-* Returns the earliest node without removing it
-*
-* @return The earliest timer node.
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Node_T<TYPE>*
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::get_first (void)
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::get_first");
- return this->get_first_i ();
-}
-
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Node_T<TYPE>*
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::get_first_i (void) const
-{
- ACE_Timer_Node_T<TYPE>* root = this->spokes_[this->earliest_spoke_];
- ACE_Timer_Node_T<TYPE>* first = root->get_next ();
- if (first != root)
- return first;
- return 0;
-}
-
-
-/**
-* @return The iterator
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>&
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::iter (void)
-{
- this->iterator_->first ();
- return *this->iterator_;
-}
-
-/**
-* Dummy version of expire to get rid of warnings in Sun CC 4.2
-* Just call the expire of the base class.
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::expire ()
-{
- return ACE_Timer_Queue_T<TYPE,FUNCTOR,ACE_LOCK>::expire ();
-}
-
-/**
-* This is a specialized version of expire that is more suited for the
-* internal data representation.
-*
-* @param cur_time The time to expire timers up to.
-*
-* @return Number of timers expired
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::expire (const ACE_Time_Value& cur_time)
-{
- ACE_TRACE ("ACE_Timer_Wheel_T::expire");
- ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
-
- int expcount = 0;
- ACE_Timer_Node_T<TYPE>* n = this->remove_first_expired (cur_time);
-
- while (n != 0)
- {
- ++ expcount;
-
- //ACE_ERROR((LM_ERROR, "Expiring %x\n", (long) n));
-
- this->upcall (n->get_type (), n->get_act (), cur_time);
-
- if (n->get_interval () > ACE_Time_Value::zero)
- {
- n->set_timer_value (cur_time + n->get_interval ());
- this->reschedule (n);
- }
- else
- {
- this->free_node (n);
- }
-
- n = this->remove_first_expired (cur_time);
- }
-
- //ACE_ERROR((LM_ERROR, "Expired %d nodes\n", expcount));
-
- return expcount;
-}
-
-///////////////////////////////////////////////////////////////////////////
-// ACE_Timer_Wheel_Iterator_T
-
-/**
-* Just initializes the iterator with a ACE_Timer_Wheel_T and then calls
-* first() to initialize the rest of itself.
-*
-* @param wheel A reference for a timer queue to iterate over
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Wheel_Iterator_T<TYPE,FUNCTOR,ACE_LOCK>::ACE_Timer_Wheel_Iterator_T
-(Wheel& wheel)
-: timer_wheel_ (wheel)
-{
- this->first();
-}
-
-
-/**
-* Destructor, at this level does nothing.
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Wheel_Iterator_T<TYPE,
-FUNCTOR,
-ACE_LOCK>::~ACE_Timer_Wheel_Iterator_T (void)
-{
-}
-
-
-/**
-* Positions the iterator at the first position in the timing wheel
-* that contains something. spoke_ will be set to the spoke position of
-* this entry and current_node_ will point to the first entry in that spoke.
-*
-* If the wheel is empty, spoke_ will be equal timer_wheel_.spoke_count_ and
-* current_node_ would be 0.
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::first (void)
-{
- this->goto_next(0);
-}
-
-
-/**
-* Positions the iterator at the next node.
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::next (void)
-{
- if (this->isdone())
- return;
-
- ACE_Timer_Node_T<TYPE>* n = this->current_node_->get_next ();
- ACE_Timer_Node_T<TYPE>* root = this->timer_wheel_.spokes_[this->spoke_];
- if (n == root)
- this->goto_next (this->spoke_ + 1);
- else
- this->current_node_ = n;
-}
-
-/// Helper class for common functionality of next() and first()
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::goto_next (u_int start_spoke)
-{
- // Find the first non-empty entry.
- u_int sc = this->timer_wheel_.spoke_count_;
- for (u_int i = start_spoke; i < sc; ++i)
- {
- ACE_Timer_Node_T<TYPE>* root = this->timer_wheel_.spokes_[i];
- ACE_Timer_Node_T<TYPE>* n = root->get_next ();
- if (n != root)
- {
- this->spoke_ = i;
- this->current_node_ = n;
- return;
- }
- }
- // empty
- this->spoke_ = sc;
- this->current_node_ = 0;
-}
-
-
-/**
-* @return True when we there aren't any more items (when current_node_ == 0)
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> int
-ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::isdone (void) const
-{
- return this->current_node_ == 0;
-}
-
-
-/**
-* @return The node at the current spokeition in the sequence or 0 if the wheel
-* is empty
-*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::item (void)
-{
- return this->current_node_;
-}
-
-
-#endif /* ACE_TIMER_WHEEL_T_C */
diff --git a/ace/Timer_Wheel_T.h b/ace/Timer_Wheel_T.h
deleted file mode 100644
index 9505d918741..00000000000
--- a/ace/Timer_Wheel_T.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Timer_Wheel_T.h
- *
- * $Id$
- *
- * @author Darrell Brunsch <brunsch@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_TIMER_WHEEL_T_H
-#define ACE_TIMER_WHEEL_T_H
-#include "ace/pre.h"
-
-#include "ace/Timer_Queue_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Forward declaration
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-class ACE_Timer_Wheel_T;
-
-/**
- * @class ACE_Timer_Wheel_Iterator_T
- *
- * @brief Iterates over an <ACE_Timer_Wheel>.
- *
- * This is a generic iterator that can be used to visit every
- * node of a timer queue. Be aware that it doesn't traverse
- * in the order of timeout values.
- */
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-class ACE_Timer_Wheel_Iterator_T
- : public ACE_Timer_Queue_Iterator_T <TYPE, FUNCTOR, ACE_LOCK>
-{
-public:
- typedef ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK> Wheel;
- typedef ACE_Timer_Node_T<TYPE> Node;
-
- /// Constructor
- ACE_Timer_Wheel_Iterator_T (Wheel &);
-
- /// Destructor
- ~ACE_Timer_Wheel_Iterator_T (void);
-
- /// Positions the iterator at the earliest node in the Timer Queue
- virtual void first (void);
-
- /// Positions the iterator at the next node in the Timer Queue
- virtual void next (void);
-
- /// Returns true when there are no more nodes in the sequence
- virtual int isdone (void) const;
-
- /// Returns the node at the current position in the sequence
- virtual ACE_Timer_Node_T<TYPE>* item (void);
-
-protected:
- /// Pointer to the <ACE_Timer_List> that we are iterating over.
- Wheel& timer_wheel_;
-
- /// Current position in the timing wheel
- u_int spoke_;
-
- /// Pointer to the position in the the <pos_>th list
- ACE_Timer_Node_T<TYPE>* current_node_;
-private:
- void goto_next(u_int start_spoke);
-};
-
-/**
- * @class ACE_Timer_Wheel_T
- *
- * @brief Provides a Timing Wheel version of ACE_Timer_Queue.
- *
- * This implementation uses a hash table of ordered doubly-
- * linked lists of absolute times. The enhancements over the
- * @c ACE_Timer_List include adding a free list and the ability
- * to preallocate nodes. Timer Wheel is based on the timing
- * wheel implementation used in Adam M. Costello and
- * George Varghese's paper "Redesigning the BSD Callout and
- * Timer Facilities"
- * (http://dworkin.wustl.edu/~varghese/PAPERS/newbsd.ps.Z)
- */
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-class ACE_Timer_Wheel_T : public ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>
-{
-public:
- /// Type of iterator
- typedef ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> Iterator;
- /// Iterator is a friend
- friend class ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>;
- typedef ACE_Timer_Node_T<TYPE> Node;
- /// Type inherited from
- typedef ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> Base;
- typedef ACE_Free_List<Node> FreeList;
-
- /// Default constructor
- ACE_Timer_Wheel_T (FUNCTOR* upcall_functor = 0, FreeList* freelist = 0);
-
- /// Constructor with opportunities to set the wheelsize and resolution
- ACE_Timer_Wheel_T (u_int spoke_count,
- u_int resolution,
- size_t prealloc = 0,
- FUNCTOR* upcall_functor = 0,
- FreeList* freelist = 0);
-
- /// Destructor
- virtual ~ACE_Timer_Wheel_T (void);
-
- /// True if queue is empty, else false.
- virtual int is_empty (void) const;
-
- /// Returns the time of the earlier node in the <ACE_Timer_Wheel>.
- /// Must be called on a non-empty queue.
- virtual const ACE_Time_Value& earliest_time (void) const;
-
- /// Schedules a timer.
- virtual long schedule (const TYPE& type,
- const void* act,
- const ACE_Time_Value& future_time,
- const ACE_Time_Value& interval
- = ACE_Time_Value::zero);
-
- /// Changes the interval of a timer (and can make it periodic or non
- /// periodic by setting it to ACE_Time_Value::zero or not).
- virtual int reset_interval (long timer_id,
- const ACE_Time_Value& interval);
-
- /// Cancel all timer associated with <type>. If <dont_call> is 0
- /// then the <functor> will be invoked. Returns number of timers
- /// cancelled.
- virtual int cancel (const TYPE& type,
- int dont_call_handle_close = 1);
-
- // Cancel a timer, storing the magic cookie in act (if nonzero).
- // Calls the functor if dont_call_handle_close is 0 and returns 1
- // on success
- virtual int cancel (long timer_id,
- const void** act = 0,
- int dont_call_handle_close = 1);
-
- /// Run the <functor> for all timers whose values are <=
- /// <ACE_OS::gettimeofday>. Also accounts for <timer_skew>. Returns
- /// the number of timers canceled.
- virtual int expire (void);
-
- // Run the <functor> for all timers whose values are <= <cur_time>.
- // This does not account for <timer_skew>. Returns the number of
- // timers canceled.
- int expire (const ACE_Time_Value&);
-
- /// Returns a pointer to this <ACE_Timer_Queue_T>'s iterator.
- virtual ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>& iter (void);
-
- /// Removes the earliest node from the queue and returns it
- virtual ACE_Timer_Node_T<TYPE>* remove_first (void);
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Reads the earliest node from the queue and returns it.
- virtual ACE_Timer_Node_T<TYPE>* get_first (void);
-
-private:
- // The following are documented in the .cpp file.
- ACE_Timer_Node_T<TYPE>* get_first_i (void) const;
- ACE_Timer_Node_T<TYPE>* remove_first_expired (const ACE_Time_Value& now);
- void open_i (size_t prealloc, u_int spokes, u_int res);
- virtual void reschedule (ACE_Timer_Node_T<TYPE> *);
- ACE_Timer_Node_T<TYPE>* find_spoke_node(u_int spoke, long timer_id) const;
- ACE_Timer_Node_T<TYPE>* find_node(long timer_id) const;
- u_int calculate_spoke(const ACE_Time_Value& expire) const;
- long generate_timer_id(u_int spoke);
- void schedule_i (ACE_Timer_Node_T<TYPE>* n, u_int spoke, const ACE_Time_Value& expire);
- void cancel_i (ACE_Timer_Node_T<TYPE>* n, int skip_close);
- void unlink (ACE_Timer_Node_T<TYPE>* n);
- void recalc_earliest(const ACE_Time_Value& last);
-
-private:
- int power2bits (int n, int min_bits, int max_bits);
-
- /// Timing Wheel.
- ACE_Timer_Node_T<TYPE>** spokes_;
- /// Size of the timing wheel.
- u_int spoke_count_;
- /// Number of timer_id bits used for the spoke
- int spoke_bits_;
- /// Maximum number of timers per spoke
- u_int max_per_spoke_;
- /// Resolution (in microsoconds) of the timing wheel.
- int res_bits_;
- /// Index of the list with the earliest time
- u_int earliest_spoke_;
- /// Iterator used to expire timers.
- Iterator* iterator_;
- /// The total amount of time in one iteration of the wheel. (resolution * spoke_count)
- ACE_Time_Value wheel_time_;
- /// The total number of timers currently scheduled.
- u_int timer_count_;
-
- // = Don't allow these operations for now.
- ACE_UNIMPLEMENTED_FUNC (
- ACE_Timer_Wheel_T (const ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (
- void operator= (const ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK> &))
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES)
-#include "ace/Timer_Wheel_T.cpp"
-#endif /* !ACE_HAS_BROKEN_HPUX_TEMPLATES */
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Timer_Wheel_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_TIMER_WHEEL_T_H */
diff --git a/ace/TkReactor.cpp b/ace/TkReactor.cpp
deleted file mode 100644
index 87a496f0f3e..00000000000
--- a/ace/TkReactor.cpp
+++ /dev/null
@@ -1,439 +0,0 @@
-#include "ace/TkReactor.h"
-
-#if defined (ACE_HAS_TK)
-#include "ace/Synch_T.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SOCK_Connector.h"
-
-ACE_RCSID(ace, TkReactor, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE (ACE_TkReactor)
-
-// Must be called with lock held
-ACE_TkReactor::ACE_TkReactor (size_t size,
- int restart,
- ACE_Sig_Handler *h)
- : ACE_Select_Reactor (size, restart, h),
- ids_ (0),
- timeout_ (0)
-{
- // When the ACE_Select_Reactor is constructed it creates the notify
- // pipe and registers it with the register_handler_i() method. The
- // TkReactor overloads this method BUT because the
- // register_handler_i occurs when constructing the base class
- // ACE_Select_Reactor, the ACE_Select_Reactor register_handler_i()
- // is called not the TkReactor register_handler_i(). This means
- // that the notify pipe is registered with the ACE_Select_Reactor
- // event handling code not the TkReactor and so notfications don't
- // work. To get around this we simply close and re-opened the
- // notification handler in the constructor of the TkReactor.
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- this->notify_handler_->close ();
- this->notify_handler_->open (this, 0);
-#endif /* ACE_MT_SAFE */
-}
-
-ACE_TkReactor::~ACE_TkReactor (void)
-{
- // Delete the remaining items in the linked list.
-
- while (this->ids_)
- {
- ACE_TkReactorID *TkID = this->ids_->next_;
- delete this->ids_;
- this->ids_ = TkID;
- }
-}
-
-// This is just the <wait_for_multiple_events> from ace/Reactor.cpp
-// but we use the Tk functions to wait for an event, not <select>
-
-int
-ACE_TkReactor::wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &handle_set,
- ACE_Time_Value *max_wait_time)
-{
- ACE_TRACE ("ACE_TkReactor::wait_for_multiple_events");
- int nfound;
-
- do
- {
- max_wait_time = this->timer_queue_->calculate_timeout (max_wait_time);
-
- size_t width = this->handler_rep_.max_handlep1 ();
- handle_set.rd_mask_ = this->wait_set_.rd_mask_;
- handle_set.wr_mask_ = this->wait_set_.wr_mask_;
- handle_set.ex_mask_ = this->wait_set_.ex_mask_;
- nfound = TkWaitForMultipleEvents (width,
- handle_set,
- max_wait_time);
-
- } while (nfound == -1 && this->handle_error () > 0);
-
- if (nfound > 0)
- {
-#if !defined (ACE_WIN32)
- handle_set.rd_mask_.sync (this->handler_rep_.max_handlep1 ());
- handle_set.wr_mask_.sync (this->handler_rep_.max_handlep1 ());
- handle_set.ex_mask_.sync (this->handler_rep_.max_handlep1 ());
-#endif /* ACE_WIN32 */
- }
- return nfound; // Timed out or input available
-}
-
-void
-ACE_TkReactor::TimerCallbackProc (ClientData cd)
-{
- ACE_TkReactor *self = (ACE_TkReactor *) cd;
- self->timeout_ = 0;
-
- // Deal with any timer events
- ACE_Select_Reactor_Handle_Set handle_set;
- self->dispatch (0, handle_set);
- self->reset_timeout ();
-}
-
-/**
- * @todo the unused mask argument is probably quite useful, but we
- * ignore it, why? In fact the following comment probably
- * relates to that:
- * This could be made shorter if we know which *kind* of event
- * we were about to get. Here we use <select> to find out which
- * one might be available.
- */
-void
-ACE_TkReactor::InputCallbackProc (ClientData cd,
- int /* mask */)
-{
- ACE_TkReactor_Input_Callback *callback = (ACE_TkReactor_Input_Callback *) cd;
- ACE_TkReactor *self = callback->reactor_;
- ACE_HANDLE handle = callback->handle_;
-
- // my copy isn't const.
- ACE_Time_Value zero = ACE_Time_Value::zero;
-
- ACE_Select_Reactor_Handle_Set wait_set;
-
- // Deal with one file event.
-
- // - read which kind of event
- if (self->wait_set_.rd_mask_.is_set (handle))
- wait_set.rd_mask_.set_bit (handle);
- if (self->wait_set_.wr_mask_.is_set (handle))
- wait_set.wr_mask_.set_bit (handle);
- if (self->wait_set_.ex_mask_.is_set (handle))
- wait_set.ex_mask_.set_bit (handle);
-
- int result = ACE_OS::select (handle + 1,
- wait_set.rd_mask_,
- wait_set.wr_mask_,
- wait_set.ex_mask_, &zero);
-
- ACE_Select_Reactor_Handle_Set dispatch_set;
-
- // - Use only that one file event (removes events for other files).
- if (result > 0)
- {
- if (wait_set.rd_mask_.is_set (handle))
- dispatch_set.rd_mask_.set_bit (handle);
- if (wait_set.wr_mask_.is_set (handle))
- dispatch_set.wr_mask_.set_bit (handle);
- if (wait_set.ex_mask_.is_set (handle))
- dispatch_set.ex_mask_.set_bit (handle);
-
- self->dispatch (1, dispatch_set);
- }
-}
-
-int
-ACE_TkReactor::TkWaitForMultipleEvents (int width,
- ACE_Select_Reactor_Handle_Set &wait_set,
- ACE_Time_Value *)
-{
- // Check to make sure our handle's are all usable.
- ACE_Select_Reactor_Handle_Set temp_set = wait_set;
-
- if (ACE_OS::select (width,
- temp_set.rd_mask_,
- temp_set.wr_mask_,
- temp_set.ex_mask_,
- (ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
- return -1; // Bad file arguments...
-
- // Instead of waiting using <select>, just use the Tk mechanism to
- // wait for a single event.
-
- // Wait for something to happen.
- ::Tcl_DoOneEvent (0);
-
- // Reset the width, in case it changed during the upcalls.
- width = this->handler_rep_.max_handlep1 ();
-
- // Now actually read the result needed by the <Select_Reactor> using
- // <select>.
- return ACE_OS::select (width,
- wait_set.rd_mask_,
- wait_set.wr_mask_,
- wait_set.ex_mask_,
- (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-int
-ACE_TkReactor::register_handler_i (ACE_HANDLE handle,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_TkReactor::register_handler_i");
-
- int result = ACE_Select_Reactor::register_handler_i (handle,
- handler, mask);
- if (result == -1)
- return -1;
-
- int condition = 0;
-
-#if !defined ACE_WIN32
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK))
- ACE_SET_BITS (condition, TK_READABLE);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK))
- ACE_SET_BITS (condition, TK_WRITABLE);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
- ACE_SET_BITS (condition, TK_EXCEPTION);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK))
- ACE_SET_BITS (condition, TK_READABLE);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK)){
- ACE_SET_BITS (condition, TK_READABLE); // connected, you may write
- ACE_SET_BITS (condition, TK_WRITABLE); // connected, you have data/err
- }
-#else
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK))
- ACE_SET_BITS (condition, TK_READABLE);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK))
- ACE_SET_BITS (condition, TK_WRITABLE);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
- ACE_NOTSUP_RETURN(-1);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK))
- ACE_SET_BITS (condition, TK_READABLE);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK)){
- ACE_SET_BITS (condition, TK_READABLE); // connected, you may write
- ACE_SET_BITS (condition, TK_WRITABLE); // connected, you have data/err
- }
-#endif /* !ACE_WIN32 */
-
- if (condition != 0)
- {
- ACE_TkReactorID *TkID = this->ids_;
-
- while(TkID)
- {
- if (TkID->handle_ == handle)
- {
- ::Tk_DeleteFileHandler (TkID->handle_);
-
- ACE_TkReactor_Input_Callback *callback;
- ACE_NEW_RETURN (callback,
- ACE_TkReactor_Input_Callback,
- -1);
- callback->reactor_ = this;
- callback->handle_ = handle;
- ::Tk_CreateFileHandler ((int) handle,
- condition,
- InputCallbackProc,
- (ClientData) callback);
- return 0;
- }
- else
- TkID = TkID->next_;
- }
-
- ACE_NEW_RETURN (TkID,
- ACE_TkReactorID,
- -1);
- TkID->next_ = this->ids_;
- TkID->handle_ = handle;
- ACE_TkReactor_Input_Callback *callback;
- ACE_NEW_RETURN (callback,
- ACE_TkReactor_Input_Callback,
- -1);
- callback->reactor_ = this;
- callback->handle_ = handle;
-
- ::Tk_CreateFileHandler ((int) handle,
- condition,
- InputCallbackProc,
- (ClientData) callback);
- this->ids_ = TkID;
- }
- return 0;
-}
-
-int
-ACE_TkReactor::register_handler_i (const ACE_Handle_Set &handles,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- return ACE_Select_Reactor::register_handler_i (handles,
- handler,
- mask);
-}
-
-int
-ACE_TkReactor::remove_handler_i (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_TkReactor::remove_handler_i");
-
- // In the registration phase we registered first with
- // ACE_Select_Reactor and then with X. Now we are now doing things
- // in reverse order.
-
- // First clean up the corresponding X11Input.
- this->remove_TkFileHandler (handle);
-
- // Now let the reactor do its work.
- return ACE_Select_Reactor::remove_handler_i (handle,
- mask);
-}
-
-void
-ACE_TkReactor::remove_TkFileHandler (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_TkReactor::remove_TkFileHandler");
-
- ACE_TkReactorID *TkID = this->ids_;
-
- if (TkID)
- {
- if (TkID->handle_ == handle)
- {
- ::Tk_DeleteFileHandler (TkID->handle_);
- this->ids_ = TkID->next_;
- delete TkID;
- return;
- }
-
- ACE_TkReactorID *NextID = TkID->next_;
-
- while (NextID)
- {
- if (NextID->handle_ == handle)
- {
- ::Tk_DeleteFileHandler (NextID->handle_);
- TkID->next_ = NextID->next_;
- delete NextID;
- return;
- }
- else
- {
- TkID = NextID;
- NextID = NextID->next_;
- }
- }
- }
-}
-
-int
-ACE_TkReactor::remove_handler_i (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask mask)
-{
- return ACE_Select_Reactor::remove_handler_i (handles,
- mask);
-}
-
-// The following functions ensure that there is an Tk timeout for the
-// first timeout in the Reactor's Timer_Queue.
-
-void
-ACE_TkReactor::reset_timeout (void)
-{
- if (this->timeout_)
- ::Tk_DeleteTimerHandler (this->timeout_);
- timeout_ = 0;
-
- ACE_Time_Value *max_wait_time =
- this->timer_queue_->calculate_timeout (0);
-
- if (max_wait_time)
- timeout_ = ::Tk_CreateTimerHandler (max_wait_time->msec (),
- TimerCallbackProc,
- (ClientData) this);
-}
-
-int
-ACE_TkReactor::reset_timer_interval
- (long timer_id,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_TkReactor::reset_timer_interval");
- ACE_MT (ACE_GUARD_RETURN (ACE_Select_Reactor_Token, ace_mon, this->token_, -1));
-
- int result = ACE_Select_Reactor::timer_queue_->reset_interval
- (timer_id,
- interval);
-
- if (result == -1)
- return -1;
- else
- {
- this->reset_timeout ();
- return result;
- }
-}
-
-long
-ACE_TkReactor::schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_TkReactor::schedule_timer");
- ACE_MT (ACE_GUARD_RETURN (ACE_Select_Reactor_Token, ace_mon, this->token_, -1));
-
- long result = ACE_Select_Reactor::schedule_timer (event_handler,
- arg,
- delay,
- interval);
- if (result == -1)
- return -1;
- else
- {
- this->reset_timeout ();
- return result;
- }
-}
-
-int
-ACE_TkReactor::cancel_timer (ACE_Event_Handler *handler,
- int dont_call_handle_close)
-{
- ACE_TRACE ("ACE_TkReactor::cancel_timer");
-
- if (ACE_Select_Reactor::cancel_timer (handler,
- dont_call_handle_close) == -1)
- return -1;
- else
- {
- this->reset_timeout ();
- return 0;
- }
-}
-
-int
-ACE_TkReactor::cancel_timer (long timer_id,
- const void **arg,
- int dont_call_handle_close)
-{
- ACE_TRACE ("ACE_TkReactor::cancel_timer");
-
- if (ACE_Select_Reactor::cancel_timer (timer_id,
- arg,
- dont_call_handle_close) == -1)
- return -1;
- else
- {
- this->reset_timeout ();
- return 0;
- }
-}
-
-#endif /* ACE_HAS_TK */
diff --git a/ace/TkReactor.h b/ace/TkReactor.h
deleted file mode 100644
index 9d960ef5fb6..00000000000
--- a/ace/TkReactor.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- C++ -*- */
-//=============================================================================
-/**
- * @file TkReactor.h
- *
- * $Id$
- *
- * @author Nagarajan Surendran <naga@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_TKREACTOR_H
-#define ACE_TKREACTOR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_TK)
-
-#include "ace/Select_Reactor.h"
-#include /**/ <tk.h>
-
-/**
- * @class ACE_TkReactorID
- *
- * @brief This little class is necessary due to the way that Microsoft
- * implements sockets to be pointers rather than indices.
- */
-class ACE_Export ACE_TkReactorID
-{
-public:
- /// Underlying handle.
- ACE_HANDLE handle_;
-
- /// Pointer to next node in the linked list.
- ACE_TkReactorID *next_;
-};
-
-class ACE_TkReactor;
-
-class ACE_Export ACE_TkReactor_Input_Callback
-{
-public:
- ACE_TkReactor *reactor_;
- ACE_HANDLE handle_;
-};
-
-/**
- * @class ACE_TkReactor
- *
- * @brief An object-oriented event demultiplexor and event handler
- * dispatcher that uses the Tk functions.
- */
-class ACE_Export ACE_TkReactor : public ACE_Select_Reactor
-{
-public:
- // = Initialization and termination methods.
- ACE_TkReactor (size_t size = DEFAULT_SIZE,
- int restart = 0,
- ACE_Sig_Handler * = 0);
-
- virtual ~ACE_TkReactor (void);
-
- // = Timer operations.
- virtual long schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval);
- virtual int reset_timer_interval (long timer_id,
- const ACE_Time_Value &interval);
- virtual int cancel_timer (ACE_Event_Handler *handler,
- int dont_call_handle_close = 1);
- virtual int cancel_timer (long timer_id,
- const void **arg = 0,
- int dont_call_handle_close = 1);
-
-protected:
- // = Register timers/handles with Tk.
- /// Register a single <handler>.
- virtual int register_handler_i (ACE_HANDLE handle,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask);
-
- /// Register a set of <handlers>.
- virtual int register_handler_i (const ACE_Handle_Set &handles,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask);
-
- /// Remove the <handler> associated with this <handle>.
- virtual int remove_handler_i (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
- /// Remove a set of <handles>.
- virtual int remove_handler_i (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask);
-
- /// Removes an Tk FileHandler.
- virtual void remove_TkFileHandler (ACE_HANDLE handle);
-
- /// Wait for events to occur.
- virtual int wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &,
- ACE_Time_Value *);
-
- ///Wait for Tk events to occur.
- virtual int TkWaitForMultipleEvents (int,
- ACE_Select_Reactor_Handle_Set &,
- ACE_Time_Value *);
-
- ACE_TkReactorID *ids_;
- Tk_TimerToken timeout_;
-
-private:
- /// This method ensures there's a Tk timeout for the first timeout in
- /// the Reactor's Timer_Queue.
- void reset_timeout (void);
-
- // = Integrate with the X callback function mechanism.
- static void TimerCallbackProc (ClientData cd);
- static void InputCallbackProc (ClientData cd,int mask);
-
- /// Deny access since member-wise won't work...
- ACE_TkReactor (const ACE_TkReactor &);
- ACE_TkReactor &operator = (const ACE_TkReactor &);
-};
-
-#endif /* ACE_HAS_TK */
-#include "ace/post.h"
-#endif /* ACE_TK_REACTOR_H */
diff --git a/ace/Token.cpp b/ace/Token.cpp
deleted file mode 100644
index f15de7d1fe4..00000000000
--- a/ace/Token.cpp
+++ /dev/null
@@ -1,549 +0,0 @@
-// $Id$
-
-#include "ace/Thread.h"
-#include "ace/Token.h"
-#include "ace/Log_Msg.h"
-
-#if defined (DEBUGGING)
-#include "ace/streams.h"
-#endif /* DEBUGGING */
-
-ACE_RCSID(ace, Token, "$Id$")
-
-#if defined (ACE_HAS_THREADS)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Synch_T.h"
-#include "ace/Token.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Token)
-
-
-void
-ACE_Token::dump (void) const
-{
- ACE_TRACE ("ACE_Token::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nthread = %d"), ACE_Thread::self ()));
- // @@ Is there a portable way to do this?
- // ACE_DEBUG ((LM_DEBUG, "\nowner_ = %l", (long) this->owner_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nowner_ addr = %x"), &this->owner_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nwaiters_ = %d"), this->waiters_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nin_use_ = %d"), this->in_use_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nnesting level = %d"), this->nesting_level_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-ACE_Token::ACE_Token_Queue_Entry::ACE_Token_Queue_Entry (ACE_Thread_Mutex &m,
- ACE_thread_t t_id)
- : next_ (0),
- thread_id_ (t_id),
-#if defined (ACE_TOKEN_USES_SEMAPHORE)
- cv_ (0),
-#else
- cv_ (m),
-#endif /* ACE_TOKEN_USES_SEMAPHORE */
- runable_ (0)
-{
-#if defined (ACE_TOKEN_USES_SEMAPHORE)
- ACE_UNUSED_ARG (m);
-#endif /* ACE_TOKEN_USES_SEMAPHORE */
-
- ACE_TRACE ("ACE_Token::ACE_Token_Queue_Entry::ACE_Token_Queue_Entry");
-}
-
-ACE_Token::ACE_Token_Queue_Entry::ACE_Token_Queue_Entry (ACE_Thread_Mutex &m,
- ACE_thread_t t_id,
- ACE_Condition_Attributes &attributes)
- : next_ (0),
- thread_id_ (t_id),
-#if defined (ACE_TOKEN_USES_SEMAPHORE)
- cv_ (0),
-#else
- cv_ (m, attributes),
-#endif /* ACE_TOKEN_USES_SEMAPHORE */
- runable_ (0)
-{
-#if defined (ACE_TOKEN_USES_SEMAPHORE)
- ACE_UNUSED_ARG (m);
- ACE_UNUSED_ARG (attributes);
-#endif /* ACE_TOKEN_USES_SEMAPHORE */
-
- ACE_TRACE ("ACE_Token::ACE_Token_Queue_Entry::ACE_Token_Queue_Entry");
-}
-
-ACE_Token::ACE_Token_Queue::ACE_Token_Queue (void)
- : head_ (0),
- tail_ (0)
-{
- ACE_TRACE ("ACE_Token::ACE_Token_Queue::ACE_Token_Queue");
-}
-
-//
-// Remove an entry from the list. Must be called with locks held.
-//
-void
-ACE_Token::ACE_Token_Queue::remove_entry (ACE_Token::ACE_Token_Queue_Entry *entry)
-{
- ACE_TRACE ("ACE_Token::ACE_Token_Queue::remove_entry");
- ACE_Token_Queue_Entry *curr = 0;
- ACE_Token_Queue_Entry *prev = 0;
-
- if (this->head_ == 0)
- return;
-
- for (curr = this->head_;
- curr != 0 && curr != entry;
- curr = curr->next_)
- prev = curr;
-
- if (curr == 0)
- // Didn't find the entry...
- return;
- else if (prev == 0)
- // Delete at the head.
- this->head_ = this->head_->next_;
- else
- // Delete in the middle.
- prev->next_ = curr->next_;
-
- // We need to update the tail of the list if we've deleted the last
- // entry.
- if (curr->next_ == 0)
- this->tail_ = prev;
-}
-
-//
-// Add an entry into the list. Must be called with locks held.
-//
-void
-ACE_Token::ACE_Token_Queue::insert_entry (ACE_Token::ACE_Token_Queue_Entry &entry,
- int requeue_position)
-{
- if (this->head_ == 0)
- {
- // No other threads - just add me
- this->head_ = &entry;
- this->tail_ = &entry;
- }
- else if (requeue_position == -1)
- {
- // Insert at the end of the queue.
- this->tail_->next_ = &entry;
- this->tail_ = &entry;
- }
- else if (requeue_position == 0)
- {
- // Insert at head of queue.
- entry.next_ = this->head_;
- this->head_ = &entry;
- }
- else
- // Insert in the middle of the queue somewhere.
- {
- // Determine where our thread should go in the queue of waiters.
-
- ACE_Token::ACE_Token_Queue_Entry *insert_after = this->head_;
- while (requeue_position-- && insert_after->next_ != 0)
- insert_after = insert_after->next_;
-
- entry.next_ = insert_after->next_;
-
- if (entry.next_ == 0)
- this->tail_ = &entry;
-
- insert_after->next_ = &entry;
- }
-}
-
-ACE_Token::ACE_Token (const ACE_TCHAR *name, void *any)
- : lock_ (name, (ACE_mutexattr_t *) any),
- owner_ (ACE_OS::NULL_thread),
- in_use_ (0),
- waiters_ (0),
- nesting_level_ (0),
- attributes_ (USYNC_THREAD),
- queueing_strategy_ (FIFO)
-{
-// ACE_TRACE ("ACE_Token::ACE_Token");
-}
-
-ACE_Token::~ACE_Token (void)
-{
- ACE_TRACE ("ACE_Token::~ACE_Token");
-}
-
-int
-ACE_Token::shared_acquire (void (*sleep_hook_func)(void *),
- void *arg,
- ACE_Time_Value *timeout,
- ACE_Token_Op_Type op_type)
-{
- ACE_TRACE ("ACE_Token::shared_acquire");
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
-
-#if defined (DEBUGGING)
- this->dump ();
-#endif /* DEBUGGING */
-
- ACE_thread_t thr_id = ACE_Thread::self ();
-
- // Nobody holds the token.
- if (!this->in_use_)
- {
- // Its mine!
- this->in_use_ = op_type;
- this->owner_ = thr_id;
- return 0;
- }
-
- //
- // Someone already holds the token.
- //
-
- // Check if it is us.
- if (ACE_OS::thr_equal (thr_id, this->owner_))
- {
- this->nesting_level_++;
- return 0;
- }
-
- // Do a quick check for "polling" behavior.
- if (timeout != 0 && timeout->sec () == 0 && timeout->usec () == 0)
- {
- errno = ETIME;
- return -1;
- }
-
- //
- // We've got to sleep until we get the token.
- //
-
- // Which queue we should end up in...
- ACE_Token_Queue *queue = (op_type == ACE_Token::READ_TOKEN
- ? &this->readers_
- : &this->writers_);
-
- // Allocate queue entry on stack. This works since we don't exit
- // this method's activation record until we've got the token.
- ACE_Token::ACE_Token_Queue_Entry my_entry (this->lock_,
- thr_id,
- this->attributes_);
- queue->insert_entry (my_entry, this->queueing_strategy_);
- this->waiters_++;
-
- // Execute appropriate <sleep_hook> callback. (@@ should these
- // methods return a success/failure status, and if so, what should
- // we do with it?)
- int ret = 0;
- if (sleep_hook_func)
- {
- (*sleep_hook_func) (arg);
- ret++;
- }
- else
- {
- // Execute virtual method.
- this->sleep_hook ();
- ret++;
- }
-
- int timed_out = 0;
- int error = 0;
-
- // Sleep until we've got the token (ignore signals).
- do
- {
- int result = my_entry.wait (timeout,
- this->lock_);
-
- if (result == -1)
- {
- // Note, this should obey whatever thread-specific interrupt
- // policy is currently in place...
- if (errno == EINTR)
- continue;
-
-#if defined (DEBUGGING)
- cerr << '(' << ACE_Thread::self () << ')'
- << " acquire: "
- << (errno == ETIME ? "timed out" : "error occurred")
- << endl;
-#endif /* DEBUGGING */
-
- // We come here if a timeout occurs or some serious
- // ACE_Condition object error.
- if (errno == ETIME)
- timed_out = 1;
- else
- error = 1;
-
- // Stop the loop.
- break;
- }
- }
- while (!ACE_OS::thr_equal (thr_id, this->owner_));
-
- // Do this always and irrespective of the result of wait().
- this->waiters_--;
- queue->remove_entry (&my_entry);
-
-#if defined (DEBUGGING)
- cerr << '(' << ACE_Thread::self () << ')'
- << " acquire (UNBLOCKED)" << endl;
-#endif /* DEBUGGING */
-
- // If timeout occured
- if (timed_out)
- {
- // This thread was still selected to own the token.
- if (my_entry.runable_)
- {
- // Wakeup next waiter since this thread timed out.
- this->wakeup_next_waiter ();
- }
-
- // Return error.
- return -1;
- }
- else if (error)
- {
- // Return error.
- return -1;
- }
-
- // If this is a normal wakeup, this thread should be runnable.
- ACE_ASSERT (my_entry.runable_);
-
- return ret;
-}
-
-// By default this is a no-op.
-
-/* virtual */
-void
-ACE_Token::sleep_hook (void)
-{
- ACE_TRACE ("ACE_Token::sleep_hook");
-}
-
-int
-ACE_Token::acquire (ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Token::acquire");
- return this->shared_acquire (0, 0, timeout, ACE_Token::WRITE_TOKEN);
-}
-
-// Acquire the token, sleeping until it is obtained or until <timeout>
-// expires.
-
-int
-ACE_Token::acquire (void (*sleep_hook_func)(void *),
- void *arg,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Token::acquire");
- return this->shared_acquire (sleep_hook_func, arg, timeout, ACE_Token::WRITE_TOKEN);
-}
-
-// Try to renew the token.
-
-int
-ACE_Token::renew (int requeue_position,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Token::renew");
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
-
-#if defined (DEBUGGING)
- this->dump ();
-#endif /* DEBUGGING */
- // ACE_ASSERT (ACE_OS::thr_equal (ACE_Thread::self (), this->owner_));
-
- // Check to see if there are any waiters worth giving up the lock
- // for.
-
- // If no writers and either we are a writer or there are no readers.
- if (this->writers_.head_ == 0 &&
- (this->in_use_ == ACE_Token::WRITE_TOKEN ||
- this->readers_.head_ == 0))
- // Immediate return.
- return 0;
-
- // We've got to sleep until we get the token again.
-
- // Determine which queue should this thread go to.
- ACE_Token::ACE_Token_Queue *this_threads_queue =
- this->in_use_ == ACE_Token::READ_TOKEN ?
- &this->readers_ : &this->writers_;
-
- ACE_Token::ACE_Token_Queue_Entry my_entry (this->lock_,
- this->owner_);
-
- this_threads_queue->insert_entry (my_entry,
- // if requeue_position == 0 then we want to go next,
- // otherwise use the queueing strategy, which might also
- // happen to be 0.
- requeue_position == 0 ? 0 : this->queueing_strategy_);
- this->waiters_++;
-
- // Remember nesting level...
- int save_nesting_level_ = this->nesting_level_;
-
- // Reset state for new owner.
- this->nesting_level_ = 0;
-
- // Wakeup waiter.
- this->wakeup_next_waiter ();
-
- int timed_out = 0;
- int error = 0;
-
- // Sleep until we've got the token (ignore signals).
- do
- {
- int result = my_entry.wait (timeout,
- this->lock_);
-
- if (result == -1)
- {
- // Note, this should obey whatever thread-specific interrupt
- // policy is currently in place...
- if (errno == EINTR)
- continue;
-
-#if defined (DEBUGGING)
- cerr << '(' << ACE_Thread::self () << ')'
- << " renew: "
- << (errno == ETIME ? "timed out" : "error occurred")
- << endl;
-#endif /* DEBUGGING */
-
- // We come here if a timeout occurs or some serious
- // ACE_Condition object error.
- if (errno == ETIME)
- timed_out = 1;
- else
- error = 1;
-
- // Stop the loop.
- break;
- }
- }
- while (!ACE_OS::thr_equal (my_entry.thread_id_, this->owner_));
-
- // Do this always and irrespective of the result of wait().
- this->waiters_--;
- this_threads_queue->remove_entry (&my_entry);
-
-#if defined (DEBUGGING)
- cerr << '(' << ACE_Thread::self () << ')'
- << " acquire (UNBLOCKED)" << endl;
-#endif /* DEBUGGING */
-
- // If timeout occured
- if (timed_out)
- {
- // This thread was still selected to own the token.
- if (my_entry.runable_)
- {
- // Wakeup next waiter since this thread timed out.
- this->wakeup_next_waiter ();
- }
-
- // Return error.
- return -1;
- }
- else if (error)
- {
- // Return error.
- return -1;
- }
-
- // If this is a normal wakeup, this thread should be runnable.
- ACE_ASSERT (my_entry.runable_);
-
- // Reinstate nesting level.
- this->nesting_level_ = save_nesting_level_;
-
- return 0;
-}
-
-// Release the current holder of the token (which had
-// better be the caller's thread!).
-
-int
-ACE_Token::release (void)
-{
- ACE_TRACE ("ACE_Token::release");
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
-
- // ACE_ASSERT (ACE_OS::thr_equal (ACE_Thread::self (), this->owner_));
-
-#if defined (DEBUGGING)
- this->dump ();
-#endif /* DEBUGGING */
-
- // Nested release...
- if (this->nesting_level_ > 0)
- --this->nesting_level_;
- else
- {
- //
- // Regular release...
- //
-
- // Wakeup waiter.
- this->wakeup_next_waiter ();
- }
-
- return 0;
-}
-
-void
-ACE_Token::wakeup_next_waiter (void)
-{
- ACE_TRACE ("ACE_Token::wakeup_next_waiter");
-
- // Reset state for new owner.
- this->owner_ = ACE_OS::NULL_thread;
- this->in_use_ = 0;
-
- // Any waiters...
- if (this->writers_.head_ == 0 &&
- this->readers_.head_ == 0)
- {
- // No more waiters...
- return;
- }
-
- // Wakeup next waiter.
- ACE_Token_Queue *queue;
-
- // Writer threads get priority to run first.
- if (this->writers_.head_ != 0)
- {
- this->in_use_ = ACE_Token::WRITE_TOKEN;
- queue = &this->writers_;
- }
- else
- {
- this->in_use_ = ACE_Token::READ_TOKEN;
- queue = &this->readers_;
- }
-
- // Wake up waiter and make it runable.
- queue->head_->runable_ = 1;
- queue->head_->signal ();
-
- this->owner_ = queue->head_->thread_id_;
-}
-
-#endif /* ACE_HAS_THREADS */
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/ace/Token.h b/ace/Token.h
deleted file mode 100644
index 94b05460fd4..00000000000
--- a/ace/Token.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Token.h
- *
- * $Id$
- *
- * @author Original author
- * @author Karl-Heinz Dorn (kdorn@erlh.siemens.de)
- * @author Ported to ACE by
- * @author Douglas C. Schmidt (schmidt@cs.wustl.edu)
- */
-//=============================================================================
-
-#ifndef ACE_TOKEN_H
-#define ACE_TOKEN_H
-#include "ace/pre.h"
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_THREADS)
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || defined (VXWORKS) || defined (ACE_PSOS)
-// If platforms support semaphores with timed wait, then we use semaphores instead of c.v.
-# define ACE_TOKEN_USES_SEMAPHORE
-#endif /* (ACE_WIN32 && !ACE_HAS_WINCE) || VXWORKS || ACE_PSOS */
-
-/**
- * @class ACE_Token
- *
- * @brief Class that acquires, renews, and releases a synchronization
- * token that is serviced in strict FIFO/LIFO ordering and that also
- * supports (1) recursion and (2) readers/writer semantics.
- *
- * This class is a more general-purpose synchronization mechanism
- * than many native OS mutexes. For example, it implements
- * "recursive mutex" semantics, where a thread that owns the token
- * can reacquire it without deadlocking. If the same thread calls
- * <acquire> multiple times, however, it must call <release> an
- * equal number of times before the token is actually released.
- * Threads that are blocked awaiting the token are serviced in
- * strict FIFO/LIFO order as other threads release the token (Solaris
- * and Pthread mutexes don't strictly enforce an acquisition
- * order). There are two lists within the class. Write
- * acquires always have higher priority over read acquires. Which
- * means, if you use both write/read operations, care must be
- * taken to avoid starvation on the readers. Notice that the
- * read/write acquire operations do not have the usual semantic of
- * reader/writer locks. Only one reader can acquire the token at
- * a time (which is different from the usual reader/writer locks
- * where several readers can acquire a lock at the same time as
- * long as there is no writer waiting for the lock). We choose
- * the names to (1) borrow the semantic to give writers higher
- * priority and (2) support a common interface for all locking
- * classes in ACE.
- */
-class ACE_Export ACE_Token
-{
-public:
-
- /**
- * Available queueing strategies.
- */
- enum QUEUEING_STRATEGY
- {
- /// FIFO, First In, First Out.
- FIFO = -1,
- /// LIFO, Last In, First Out
- LIFO = 0
- };
-
- // = Initialization and termination.
-
- /// Constructor
- ACE_Token (const ACE_TCHAR *name = 0, void * = 0);
-
- /// Destructor
- virtual ~ACE_Token (void);
-
- // = Strategies
-
- /// Retrieve the current queueing strategy.
- int queueing_strategy (void);
-
- /// Set the queueing strategy.
- void queueing_strategy (int queueing_strategy);
-
- // = Synchronization operations.
-
- /**
- * Acquire the token, sleeping until it is obtained or until the
- * expiration of <timeout>, which is treated as "absolute" time. If
- * some other thread currently holds the token then <sleep_hook> is
- * called before our thread goes to sleep. This <sleep_hook> can be
- * used by the requesting thread to unblock a token-holder that is
- * sleeping, e.g., by means of writing to a pipe (the ACE
- * ACE_Reactor uses this functionality). Return values: 0 if
- * acquires without calling <sleep_hook> 1 if <sleep_hook> is
- * called. 2 if the token is signaled. -1 if failure or timeout
- * occurs (if timeout occurs errno == ETIME) If <timeout> ==
- * <&ACE_Time_Value::zero> then acquire has polling semantics (and
- * does *not* call <sleep_hook>).
- */
- int acquire (void (*sleep_hook)(void *),
- void *arg = 0,
- ACE_Time_Value *timeout = 0);
-
- /**
- * This behaves just like the previous <acquire> method, except that
- * it invokes the virtual function called <sleep_hook> that can be
- * overridden by a subclass of ACE_Token.
- */
- int acquire (ACE_Time_Value *timeout = 0);
-
- /**
- * This should be overridden by a subclass to define the appropriate
- * behavior before <acquire> goes to sleep. By default, this is a
- * no-op...
- */
- virtual void sleep_hook (void);
-
- /**
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token. If <requeue_position> ==
- * -1 and there are other threads waiting to obtain the token we are
- * queued according to the queueing strategy. If <requeue_position>
- * > -1 then it indicates how many entries to skip over before
- * inserting our thread into the list of waiters (e.g.,
- * <requeue_position> == 0 means "insert at front of the queue").
- * Renew has the rather odd semantics such that if there are other
- * waiting threads it will give up the token even if the
- * nesting_level_ > 1. I'm not sure if this is really the right
- * thing to do (since it makes it possible for shared data to be
- * changed unexpectedly) so use with caution... This method
- * maintians the original token priority. As in <acquire>, the
- * <timeout> value is an absolute time.
- */
- int renew (int requeue_position = 0,
- ACE_Time_Value *timeout = 0);
-
- /// Become interface-compliant with other lock mechanisms (implements
- /// a non-blocking <acquire>).
- int tryacquire (void);
-
- /// Shuts down the ACE_Token instance.
- int remove (void);
-
- /// Relinquish the token. If there are any waiters then the next one
- /// in line gets it.
- int release (void);
-
- /// Behave like acquire but in a lower priority. It should probably
- /// be called acquire_yield.
- int acquire_read (void);
-
- /// More sophisticate version of acquire_read.
- int acquire_read (void (*sleep_hook)(void *),
- void *arg = 0,
- ACE_Time_Value *timeout = 0);
-
- /// Just calls <acquire>.
- int acquire_write (void);
-
- /// More sophisticate version of acquire_write.
- int acquire_write (void (*sleep_hook)(void *),
- void *arg = 0,
- ACE_Time_Value *timeout = 0);
-
- /// Lower priority try_acquire.
- int tryacquire_read (void);
-
- /// Just calls <tryacquire>.
- int tryacquire_write (void);
-
- /// Assumes the caller has acquired the token and returns 0.
- int tryacquire_write_upgrade (void);
-
- // = Accessor methods.
-
- /// Return the number of threads that are currently waiting to get
- /// the token.
- int waiters (void);
-
- /// Return the id of the current thread that owns the token.
- ACE_thread_t current_owner (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /// The following structure implements a LIFO/FIFO queue of waiter threads
- /// that are asleep waiting to obtain the token.
- struct ACE_Token_Queue_Entry
- {
- /// Constructor
- ACE_Token_Queue_Entry (ACE_Thread_Mutex &m,
- ACE_thread_t t_id);
-
- /// Constructor using a pre-allocated attributes
- ACE_Token_Queue_Entry (ACE_Thread_Mutex &m,
- ACE_thread_t t_id,
- ACE_Condition_Attributes &attributes);
-
- /// Entry blocks on the token.
- int wait (ACE_Time_Value *timeout, ACE_Thread_Mutex &lock);
-
- /// Notify (unblock) the entry.
- int signal (void);
-
- /// Pointer to next waiter.
- ACE_Token_Queue_Entry *next_;
-
- /// ACE_Thread id of this waiter.
- ACE_thread_t thread_id_;
-
-#if defined (ACE_TOKEN_USES_SEMAPHORE)
- /// ACE_Semaphore object used to wake up waiter when it can run again.
- ACE_Semaphore cv_;
-#else
- /// ACE_Condition object used to wake up waiter when it can run again.
- ACE_Condition_Thread_Mutex cv_;
-#endif /* ACE_TOKEN_USES_SEMAPHORE */
-
- /// Ok to run.
- int runable_;
- };
-
-private:
- enum ACE_Token_Op_Type
- {
- READ_TOKEN = 1,
- WRITE_TOKEN
- };
-
- struct ACE_Token_Queue
- {
- /// Constructor
- ACE_Token_Queue (void);
-
- /// Remove a waiter from the queue.
- void remove_entry (ACE_Token_Queue_Entry *);
-
- /// Insert a waiter into the queue.
- void insert_entry (ACE_Token_Queue_Entry &entry,
- int requeue_position = -1);
-
- /// Head of the list of waiting threads.
- ACE_Token_Queue_Entry *head_;
-
- /// Tail of the list of waiting threads.
- ACE_Token_Queue_Entry *tail_;
- };
-
- /// Implements the <acquire> and <tryacquire> methods above.
- int shared_acquire (void (*sleep_hook_func)(void *),
- void *arg,
- ACE_Time_Value *timeout,
- ACE_Token_Op_Type op_type);
-
- /// Wake next in line for ownership.
- void wakeup_next_waiter (void);
-
- /// A queue of writer threads.
- ACE_Token_Queue writers_;
-
- /// A queue of reader threads.
- ACE_Token_Queue readers_;
-
- /// ACE_Thread_Mutex used to lock internal data structures.
- ACE_Thread_Mutex lock_;
-
- /// Current owner of the token.
- ACE_thread_t owner_;
-
- /// Some thread (i.e., <owner_>) is using the token. We need this
- /// extra variable to deal with POSIX pthreads madness...
- int in_use_;
-
- /// Number of waiters.
- int waiters_;
-
- /// Current nesting level.
- int nesting_level_;
-
- /// The attributes for the condition variables, optimizes lock time.
- ACE_Condition_Attributes attributes_;
-
- /// Queueing strategy, LIFO/FIFO.
- int queueing_strategy_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Synch_T.h"
-#include "ace/Token.i"
-#endif /* __ACE_INLINE__ */
-#else
-class ACE_Export ACE_Token
-{
-public:
- int queueing_strategy (void) { ACE_NOTSUP_RETURN (-1); }
- void queueing_strategy (int /*queueing_strategy*/) { }
- int acquire (ACE_Time_Value * = 0) { ACE_NOTSUP_RETURN (-1); }
- int tryacquire (void) { ACE_NOTSUP_RETURN (-1); }
- int remove (void) { ACE_NOTSUP_RETURN (-1); }
- int release (void) { ACE_NOTSUP_RETURN (-1); }
-};
-#endif /* ACE_HAS_THREADS */
-#include "ace/post.h"
-#endif /* ACE_TOKEN_H */
diff --git a/ace/Token.i b/ace/Token.i
deleted file mode 100644
index c7c0f2d9285..00000000000
--- a/ace/Token.i
+++ /dev/null
@@ -1,135 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Token.i
-
-ACE_INLINE int
-ACE_Token::queueing_strategy (void)
-{
- return this->queueing_strategy_;
-}
-
-ACE_INLINE void
-ACE_Token::queueing_strategy (int queueing_strategy)
-{
- this->queueing_strategy_ = queueing_strategy == -1 ? -1 : 0;
-}
-
-ACE_INLINE int
-ACE_Token::remove (void)
-{
- ACE_TRACE ("ACE_Token::remove");
- // Don't have an implementation for this yet...
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_Token::tryacquire (void)
-{
- ACE_TRACE ("ACE_Token::tryacquire");
- return this->shared_acquire
- (0, 0, (ACE_Time_Value *) &ACE_Time_Value::zero, ACE_Token::WRITE_TOKEN);
-}
-
-ACE_INLINE int
-ACE_Token::waiters (void)
-{
- ACE_TRACE ("ACE_Token::waiters");
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
-
- int ret = this->waiters_;
- return ret;
-}
-
-ACE_INLINE ACE_thread_t
-ACE_Token::current_owner (void)
-{
- ACE_TRACE ("ACE_Token::current_owner");
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, this->owner_);
-
- return this->owner_;
-}
-
-ACE_INLINE int
-ACE_Token::acquire_read (void)
-{
- ACE_TRACE ("ACE_Token::acquire_read");
- return this->shared_acquire
- (0, 0, 0, ACE_Token::READ_TOKEN);
-}
-
-ACE_INLINE int
-ACE_Token::acquire_write (void)
-{
- ACE_TRACE ("ACE_Token::acquire_write");
- return this->shared_acquire
- (0, 0, 0, ACE_Token::WRITE_TOKEN);
-}
-
-ACE_INLINE int
-ACE_Token::tryacquire_read (void)
-{
- ACE_TRACE ("ACE_Token::tryacquire_read");
- return this->shared_acquire
- (0, 0, (ACE_Time_Value *) &ACE_Time_Value::zero, ACE_Token::READ_TOKEN);
-}
-
-ACE_INLINE int
-ACE_Token::acquire_read (void (*sleep_hook_func)(void *),
- void *arg,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Token::acquire_read");
- return this->shared_acquire (sleep_hook_func, arg, timeout, ACE_Token::READ_TOKEN);
-}
-
-ACE_INLINE int
-ACE_Token::tryacquire_write (void)
-{
- ACE_TRACE ("ACE_Token::tryacquire_write");
- return this->shared_acquire
- (0, 0, (ACE_Time_Value *) &ACE_Time_Value::zero, ACE_Token::WRITE_TOKEN);
-}
-
-ACE_INLINE int
-ACE_Token::tryacquire_write_upgrade (void)
-{
- ACE_TRACE ("ACE_Token::tryacquire_write_upgrade");
- return 0;
-}
-
-ACE_INLINE int
-ACE_Token::acquire_write (void (*sleep_hook_func)(void *),
- void *arg,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_Token::acquire_write");
- return this->shared_acquire (sleep_hook_func, arg, timeout, ACE_Token::WRITE_TOKEN);
-}
-
-ACE_INLINE int
-ACE_Token::ACE_Token_Queue_Entry::wait (ACE_Time_Value *timeout, ACE_Thread_Mutex &lock)
-{
-#if defined (ACE_TOKEN_USES_SEMAPHORE)
- lock.release ();
- int retv = (timeout == 0 ?
- this->cv_.acquire () :
- this->cv_.acquire (*timeout));
- lock.acquire ();
- return retv;
-#else
- ACE_UNUSED_ARG (lock);
- return this->cv_.wait (timeout);
-#endif /* ACE_TOKEN_USES_SEMAPHORE */
-}
-
-ACE_INLINE int
-ACE_Token::ACE_Token_Queue_Entry::signal (void)
-{
- return
-#if defined (ACE_TOKEN_USES_SEMAPHORE)
- this->cv_.release ();
-#else
- this->cv_.signal ();
-#endif /* ACE_TOKEN_USES_SEMAPHORE */
-}
diff --git a/ace/Token_Collection.cpp b/ace/Token_Collection.cpp
deleted file mode 100644
index 291a0f3a450..00000000000
--- a/ace/Token_Collection.cpp
+++ /dev/null
@@ -1,304 +0,0 @@
-#include "ace/Token_Collection.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Token_Collection.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-
-ACE_RCSID (ace,
- Token_Collection,
- "$Id$")
-
-
-ACE_Token_Collection::ACE_Token_Collection (int debug,
- const ACE_TCHAR *name)
-: debug_ (debug)
-{
- ACE_TRACE ("ACE_Token_Collection::ACE_Token_Collection");
-
- if (name == 0)
- name = ACE_LIB_TEXT ("no name");
-
- ACE_OS::strsncpy (this->name_,
- ACE_const_cast (ACE_TCHAR *,
- name),
- ACE_MAXTOKENNAMELEN);
-}
-
-int
-ACE_Token_Collection::insert (ACE_Token_Proxy &new_token)
-{
- ACE_TRACE ("ACE_Token_Collection::insert");
-
- TOKEN_NAME name (new_token.name ());
-
- // Check if the new_proxy is already in the list.
- if (collection_.find (name) == 1)
- // One already exists, so fail.
- return -1;
-
- // Clone the new token.
- ACE_Token_Proxy *temp = new_token.clone ();
-
- if (collection_.bind (name, temp) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("bind failed\n")), -1);
- return 0;
-}
-
-int
-ACE_Token_Collection::extract (const ACE_TCHAR *token_name, ACE_Token_Proxy *&proxy)
-{
- ACE_TRACE ("ACE_Token_Collection::extract");
- TOKEN_NAME name (token_name);
- return collection_.unbind (token_name, proxy);
-}
-
-ACE_Token_Proxy *
-ACE_Token_Collection::is_member (const ACE_TCHAR *token_name)
-{
- ACE_TRACE ("ACE_Token_Collection::is_member");
- TOKEN_NAME name (token_name);
- ACE_Token_Proxy *temp;
- // Get the token from the collection.
- return collection_.find (name, temp) == -1 ? 0 : temp;
-}
-
-int
-ACE_Token_Collection::is_member (const ACE_Token_Proxy &token)
-{
- ACE_TRACE ("ACE_Token_Collection::is_member");
- TOKEN_NAME token_name (token.name ());
- return collection_.find (token_name) == 0;
-}
-
-int
-ACE_Token_Collection::acquire (int notify,
- void (*sleep_hook)(void *),
- ACE_Synch_Options &options)
-{
- ACE_TRACE ("ACE_Token_Collection::acquire");
-
- COLLECTION::ITERATOR iterator (collection_);
-
- for (COLLECTION::ENTRY *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- {
- if (debug_)
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("collection acquiring %s\n"),
- temp->int_id_->name ()));
- if (temp->int_id_->acquire (notify,
- sleep_hook,
- options) == -1)
- {
- // Save/restore errno.
- ACE_Errno_Guard error (errno);
- this->release ();
- ACE_RETURN (-1);
- }
- }
-
- return 0;
-}
-
-int
-ACE_Token_Collection::acquire (const ACE_TCHAR *token_name,
- int notify,
- void (*sleep_hook)(void *),
- ACE_Synch_Options &options)
-{
- ACE_TRACE ("ACE_Token_Collection::acquire");
- TOKEN_NAME name (token_name);
- ACE_Token_Proxy *temp;
- // Get the token from the collection.
- int result = collection_.find (name, temp);
- // did we find it?
- if (result == -1)
- return result;
- // perform the operation
- return temp->acquire (notify, sleep_hook, options);
-}
-
-
-int
-ACE_Token_Collection::tryacquire (const ACE_TCHAR *token_name,
- void (*sleep_hook)(void *))
-{
- ACE_TRACE ("ACE_Token_Collection::tryacquire");
- TOKEN_NAME name (token_name);
- ACE_Token_Proxy *temp;
- // Get the token from the collection.
- int result = collection_.find (name, temp);
- // did we find it?
- if (result == -1)
- return result;
-
- // perform the operation
- return temp->tryacquire (sleep_hook);
-}
-
-int
-ACE_Token_Collection::tryacquire (void (*sleep_hook)(void *))
-{
- ACE_TRACE ("ACE_Token_Collection::tryacquire");
-
- COLLECTION::ITERATOR iterator (collection_);
-
- for (COLLECTION::ENTRY *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- {
- if (debug_)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("collection acquiring %s\n"),
- temp->int_id_->name ()));
- // We will fail if _any_ token is not free.
- if (temp->int_id_->tryacquire (sleep_hook) == -1)
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_Token_Collection::renew (int requeue_position,
- ACE_Synch_Options &options)
-{
- ACE_TRACE ("ACE_Token_Collection::renew");
-
- COLLECTION::ITERATOR iterator (collection_);
-
- for (COLLECTION::ENTRY *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- {
- if (debug_)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("collection renewing %s\n"),
- temp->int_id_->name ()));
- if (temp->int_id_->renew (requeue_position, options) == -1)
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_Token_Collection::renew (const ACE_TCHAR *token_name,
- int requeue_position,
- ACE_Synch_Options &options)
-{
- ACE_TRACE ("ACE_Token_Collection::renew");
- TOKEN_NAME name (token_name);
- ACE_Token_Proxy *temp;
-
- // Get the token from the collection.
- int result = collection_.find (name, temp);
-
- // Did we find it?
- if (result == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, ACE_LIB_TEXT ("%p %s\n"),
- ACE_LIB_TEXT ("not in collection "),
- token_name), -1);
- // perform the operation
- return temp->renew (requeue_position, options);
-}
-
-int
-ACE_Token_Collection::release (ACE_Synch_Options &)
-
-{
- ACE_TRACE ("ACE_Token_Collection::release");
- COLLECTION::ITERATOR iterator (collection_);
-
- for (COLLECTION::ENTRY *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- {
- if (debug_)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("collection releasing %s\n"),
- temp->int_id_->name ()));
- temp->int_id_->release ();
- }
-
- return 0;
-}
-
-int
-ACE_Token_Collection::release (const ACE_TCHAR *token_name,
- ACE_Synch_Options &options)
-{
- ACE_TRACE ("ACE_Token_Collection::release");
- TOKEN_NAME name (token_name);
- ACE_Token_Proxy *temp;
- // get the token from the collection
- int result = collection_.find (name, temp);
- // did we find it?
- if (result != 0)
- return result;
- // perform the operation
- return temp->release (options);
-}
-
-ACE_Token_Collection::~ACE_Token_Collection (void)
-{
- ACE_TRACE ("ACE_Token_Collection::~ACE_Token_Collection");
- COLLECTION::ITERATOR iterator (collection_);
-
- for (COLLECTION::ENTRY *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- {
- delete temp->int_id_;
- // The ext_id_'s delete themselves when the array of
- // COLLECTION::ENTRYs goes away.
- }
-}
-
-
-// This method doesn't mean anything for a collection.
-ACE_Token_Proxy *
-ACE_Token_Collection::clone (void) const
-{
- ACE_TRACE ("ACE_Token_Collection::clone");
- return (ACE_Token_Proxy *) 0;
-}
-
-// This method doesn't mean anything for a collection.
-ACE_Tokens *
-ACE_Token_Collection::create_token (const ACE_TCHAR *)
-{
- ACE_TRACE ("ACE_Token_Collection::create_token");
- return (ACE_Tokens *) 0;
-}
-
-void
-ACE_Token_Collection::dump (void) const
-{
- ACE_TRACE ("ACE_Token_Collection::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Token_Collection::dump:\n")
- ACE_LIB_TEXT (" debug_ = %d\n"), debug_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("collection_\n")));
- collection_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("base:\n")));
- ACE_Token_Proxy::dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Map_Manager<ACE_Token_Name, ACE_Token_Proxy *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<ACE_Token_Name, ACE_Token_Proxy *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator<ACE_Token_Name, ACE_Token_Proxy *, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<ACE_Token_Name, ACE_Token_Proxy *, ACE_Null_Mutex>;
-template class ACE_Map_Entry<ACE_Token_Name, ACE_Token_Proxy *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Map_Manager<ACE_Token_Name, ACE_Token_Proxy *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_Token_Name, ACE_Token_Proxy *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator<ACE_Token_Name, ACE_Token_Proxy *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_Token_Name, ACE_Token_Proxy *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Entry<ACE_Token_Name, ACE_Token_Proxy *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
diff --git a/ace/Token_Collection.h b/ace/Token_Collection.h
deleted file mode 100644
index 60ecf8270e6..00000000000
--- a/ace/Token_Collection.h
+++ /dev/null
@@ -1,240 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Token_Collection.h
- *
- * $Id$
- *
- * The ACE_Token class offers methods for acquiring, renewing,
- * and releasing a synchronization token on a per-token basis. The
- * ACE_Token_Collection offers an interface for performing
- * operations on groups of tokens as a whole, or on a single token
- * within the collection.
- *
- * The atomic group operations are not yet implemented.
- *
- *
- * @author Douglas C. Schmidt (schmidt@cs.wustl.edu)
- * @author Tim Harrison (harrison@cs.wustl.edu)
- */
-//=============================================================================
-
-#ifndef ACE_TOKEN_COLLECTION_H
-#define ACE_TOKEN_COLLECTION_H
-#include "ace/pre.h"
-
-#include "ace/Map_Manager.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Local_Tokens.h"
-#include "ace/SString.h"
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-/**
- * @class ACE_Token_Collection
- *
- * @brief Allows atomic token group operations AND
- * provides a ACE_Token manager interface.
- *
- * There are two types of operations offered by
- * ACE_Token_Collection. The first is atomic operations on
- * collections of Token_Proxies. In this respect, the
- * ACE_Token_Collection can be thought of as a single token
- * consisting of multiple Token_Proxies. The second role of the
- * ACE_Token_Collection is as a ACE_Token manager.
- * ACE_Token_Collection allows individual operations on single
- * members of a collection of Token_Proxies. This provides a
- * single access point for operations on multiple tokens.
- */
-class ACE_Export ACE_Token_Collection : public ACE_Token_Proxy
-{
-
- // = BUGS
- // Although ACE_Token_Collection inherits from ACE_Token_Proxy, it
- // can not be including in a collection. This is because <clone>
- // returns zero for now.
-public:
- /**
- * <debug> print out verbose debugging messages. <name> will give a
- * name to the collection. Collections don't really need names, but
- * are sometimes useful for debugging.
- */
- ACE_Token_Collection (int debug = 0,
- const ACE_TCHAR *name = 0);
-
-// Collection Management operations
-
- int insert (ACE_Token_Proxy &token);
-
- // Insert a Token into the collection. All ACE_Token type
- // operations performed on the collection will also be performed on
- // the new_proxy until it is removed. Note that no operations
- // performed prior to the insertion will be performed. Returns: 0
- // on success, -1 on failure with <errno> == problem. If a token
- // proxy already exists in the collection with the same name, the
- // insertion will fail. Also, <token> is copied. Note that during
- // the copy, client_id's are *not* inherited. The client ID of the
- // thread using the collection will be used. Client ID's can be
- // changed explicity on each proxy using is_member.
-
- /**
- * removes the ACE_Token matching the given token_name from the
- * collection. On success, extract returns 0. On failure
- * (token_name was not in the collection,) extract returns -1. On
- * success, the state of the token found is copied into proxy.
- * The returned ACE_Token_Proxy* must be deleted by the user.
- */
- int extract (const ACE_TCHAR *token_name, ACE_Token_Proxy *&proxy);
-
- /// returns the proxy if true. 0 otherwise.
- ACE_Token_Proxy *is_member (const ACE_TCHAR *token_name);
-
- /**
- * Is the specified token in the collection?
- * 1, yes.
- * 0, no.
- */
- int is_member (const ACE_Token_Proxy &token);
-
-// = Collective operation semantics.
-
-// For acquire, renew, and release, there are two interfaces. Once
-// interface allows an operation on a single token in the
-// collection. The collective interfaces perform atomic operations
-// on the entire collection. For instance, a collective acquire
-// will perform an acquire for each and every token in the
-// collection or the operation will fail. Currently, these
-// operations are performed with no ordering heuristics. That is,
-// the Collection steps through the tokens in the order they were
-// inserted. For each one it performs the operation (acquire,
-// renew, or release).
-
- /**
- * Acquire "atomically" all resources in the collection. This is
- * only successfull if all tokens in the collection could be
- * acquired. options contains the blocking semantics, timeout
- * value, etc. Returns: 0 on success, -1 on failure with <errno> ==
- * problem. If and error or deadlock occurs for one of the tokens,
- * all the tokens will be released and the method will return -1.
- * Note that returning on detection of deadlock prevents livelock
- * between competing collections. If a collection returns after
- * detecting deadlock, it is the application's responsibility to not
- * to blindly loop on the collection::acquire operation. In other
- * words, once the collection reports deadlock, it is out of our
- * hands.
- */
- virtual int acquire (int notify = 0,
- void (*sleep_hook)(void *) = 0,
- ACE_Synch_Options &options =
- ACE_Synch_Options::defaults);
-
- /// Acquire the token corresponding to <token_name>. The other
- /// parameters are passed to <token>::acquire.
- virtual int acquire (const ACE_TCHAR *token_name,
- int notify = 0,
- void (*sleep_hook)(void *) = 0,
- ACE_Synch_Options &options =
- ACE_Synch_Options::defaults);
-
- /// Try to acquire all tokens in collection.
- virtual int tryacquire (void (*sleep_hook)(void *) = 0);
-
- /// Try to acquire <token_name>.
- virtual int tryacquire (const ACE_TCHAR *token_name,
- void (*sleep_hook)(void *) = 0);
-
- /**
- * Renews "atomically" all resources in the collection. This is
- * only successfull if all tokens in the collection could be
- * renewed. options contains the blocking semantics, timeout
- * value, etc. Returns: 0 on success, -1 on failure with <errno> ==
- * problem.
- */
- virtual int renew (int requeue_position = 0,
- ACE_Synch_Options &options =
- ACE_Synch_Options::defaults);
-
-
- /// Renew the token corresponding to <token_name>. The other
- /// parameters are passed to <token>::renew.
- virtual int renew (const ACE_TCHAR *token_name,
- int requeue_position = 0,
- ACE_Synch_Options &options =
- ACE_Synch_Options::defaults);
-
- /**
- * Releases "atomically" all resources in the collection. This is
- * only successfull if all tokens in the collection could be
- * released. options contains the blocking semantics, timeout
- * value, etc. Returns: 0 on success, -1 on failure with <errno> ==
- * problem.
- */
- virtual int release (ACE_Synch_Options &options =
- ACE_Synch_Options::defaults);
-
-
- /// Release the token corresponding to <token_name>. The other
- /// parameters are passed to <token>::release.
- virtual int release (const ACE_TCHAR *token_name,
- ACE_Synch_Options &options =
- ACE_Synch_Options::defaults);
-
- ~ACE_Token_Collection (void);
-
- /// Dump the state of the class.
- void dump (void) const;
-
- /// Return the name of the collection. Not very functionally
- /// important, but sometimes a useful debugging tool.
- virtual const ACE_TCHAR *name (void) const;
-
-protected:
-
- typedef ACE_Token_Name TOKEN_NAME;
-
- /// COLLECTION maintains a mapping from token names to ACE_Tokens*
- typedef ACE_Map_Manager<TOKEN_NAME, ACE_Token_Proxy *, ACE_Null_Mutex>
- COLLECTION;
-
- /// Allows iterations through collection_
- /**
- * @note Deprecated typedef. Use COLLECTION::ITERATOR trait
- * instead.
- */
- typedef COLLECTION::ITERATOR COLLECTION_ITERATOR;
-
- /// Allows iterations through collection_
- /**
- * @note Deprecated typedef. Use COLLECTION::ENTRY trait
- * instead.
- */
- typedef COLLECTION::ENTRY COLLECTION_ENTRY;
-
- /// COLLECTION maintains a mapping from token names to ACE_Tokens*.
- COLLECTION collection_;
-
- /// Whether to print out debug messages or not.
- int debug_;
-
- /// Name of the collection.
- ACE_TCHAR name_[ACE_MAXTOKENNAMELEN];
-
- // = I'm not sure what these mean, but they have to be defined since they're
- // pure virtual in ACE_Token_Proxy.
- virtual ACE_Token_Proxy *clone (void) const;
- virtual ACE_Tokens *create_token (const ACE_TCHAR *name);
-};
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Token_Collection.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_TOKEN_COLLECTION_H */
diff --git a/ace/Token_Collection.i b/ace/Token_Collection.i
deleted file mode 100644
index fcab4df9b09..00000000000
--- a/ace/Token_Collection.i
+++ /dev/null
@@ -1,12 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-ACE_INLINE const ACE_TCHAR *
-ACE_Token_Collection::name (void) const
-{
- return name_;
-}
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
diff --git a/ace/Token_Invariants.cpp b/ace/Token_Invariants.cpp
deleted file mode 100644
index 69f2c8fd32b..00000000000
--- a/ace/Token_Invariants.cpp
+++ /dev/null
@@ -1,371 +0,0 @@
-#include "ace/Token_Invariants.h"
-#include "ace/Object_Manager.h"
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-
-ACE_RCSID (ace,
- Token_Invariants,
- "$Id$")
-
-
-ACE_Token_Invariant_Manager *ACE_Token_Invariant_Manager::instance_ = 0;
-
-ACE_Token_Invariant_Manager *
-ACE_Token_Invariant_Manager::instance (void)
-{
- ACE_TRACE ("ACE_Token_Invariant_Manager::instance");
-
- // Perform the Double-Check pattern...
- if (instance_ == 0)
- {
- ACE_MT (ACE_TOKEN_CONST::MUTEX *lock =
- ACE_Managed_Object<ACE_TOKEN_CONST::MUTEX>::get_preallocated_object
- (ACE_Object_Manager::ACE_TOKEN_INVARIANTS_CREATION_LOCK);
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon, *lock, 0));
-
- if (instance_ == 0)
- {
- ACE_NEW_RETURN (instance_,
- ACE_Token_Invariant_Manager,
- 0);
- // Register for destruction with ACE_Object_Manager.
- ACE_Object_Manager::at_exit (instance_);
- }
- }
-
- return instance_;
-}
-
-ACE_Token_Invariant_Manager::ACE_Token_Invariant_Manager (void)
-{
- ACE_TRACE ("ACE_Token_Invariant_Manager::ACE_Token_Invariant_Manager");
-}
-
-int
-ACE_Token_Invariant_Manager::mutex_acquired (const ACE_TCHAR *token_name)
-{
- ACE_TRACE ("ACE_Token_Invariant_Manager::mutex_acquired");
-
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_, -1);
-
- ACE_Mutex_Invariants *inv = 0;
- if (this->get_mutex (token_name, inv) == -1)
- return -1;
-
- return inv->acquired ();
-}
-
-int
-ACE_Token_Invariant_Manager::acquired (const ACE_Token_Proxy *proxy)
-{
- ACE_TRACE ("ACE_Token_Invariant_Manager::acquired");
-
- // Reach into the proxy to find the token type.
- if (proxy->token_->type () == ACE_Tokens::MUTEX)
- return this->mutex_acquired (proxy->name ());
- else // ACE_Tokens::RWLOCK.
- {
- if (proxy->type () == ACE_RW_Token::READER)
- return this->reader_acquired (proxy->name ());
- else // ACE_RW_Token::WRITER.
- return this->writer_acquired (proxy->name ());
- }
-}
-
-void
-ACE_Token_Invariant_Manager::releasing (const ACE_Token_Proxy *proxy)
-{
- ACE_TRACE ("ACE_Token_Invariant_Manager::releasing");
-
- // Reach into the proxy to find the token type.
- if (proxy->token_->type () == ACE_Tokens::MUTEX)
- this->mutex_releasing (proxy->name ());
- else // ACE_Tokens::RWLOCK.
- this->rwlock_releasing (proxy->name ());
-}
-
-void
-ACE_Token_Invariant_Manager::mutex_releasing (const ACE_TCHAR *token_name)
-{
- ACE_TRACE ("ACE_Token_Invariant_Manager::mutex_releasing");
- ACE_GUARD (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_);
-
- ACE_Mutex_Invariants *inv = 0;
- if (this->get_mutex (token_name, inv) == 0)
- inv->releasing ();
-}
-
-int
-ACE_Token_Invariant_Manager::reader_acquired (const ACE_TCHAR *token_name)
-{
- ACE_TRACE ("ACE_Token_Invariant_Manager::reader_acquired");
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_, -1);
-
- ACE_RWLock_Invariants *inv = 0;
- if (this->get_rwlock (token_name, inv) == -1)
- return -1;
-
- return inv->reader_acquired ();
-}
-
-int
-ACE_Token_Invariant_Manager::writer_acquired (const ACE_TCHAR *token_name)
-{
- ACE_TRACE ("ACE_Token_Invariant_Manager::writer_acquired");
-
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_, -1);
-
- ACE_RWLock_Invariants *inv = 0;
- if (this->get_rwlock (token_name, inv) == -1)
- return -1;
-
- return inv->writer_acquired ();
-}
-
-void
-ACE_Token_Invariant_Manager::rwlock_releasing (const ACE_TCHAR *token_name)
-{
- ACE_TRACE ("ACE_Token_Invariant_Manager::rwlock_releasing");
-
- ACE_GUARD (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_);
-
- ACE_RWLock_Invariants *inv = 0;
- if (this->get_rwlock (token_name, inv) == 0)
- inv->releasing ();
-}
-
-void
-ACE_Token_Invariant_Manager::dump (void) const
-{
- ACE_TRACE ("ACE_Token_Invariant_Manager::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("mutex_collection_:\n")));
- mutex_collection_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("rwlock_collection_:\n")));
- rwlock_collection_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-
-int
-ACE_Token_Invariant_Manager::get_mutex (const ACE_TCHAR *token_name,
- ACE_Mutex_Invariants *&inv)
-{
- ACE_TRACE ("ACE_Token_Invariant_Manager::get_mutex");
- TOKEN_NAME name (token_name);
- if (mutex_collection_.find (name, inv) == -1)
- // We did not find one in the collection.
- {
- ACE_Mutex_Invariants *new_invariant;
-
- ACE_NEW_RETURN (new_invariant,
- ACE_Mutex_Invariants,
- -1);
- if (mutex_collection_.bind (name, new_invariant) == -1)
- {
- delete new_invariant;
- return -1;
- }
-
- if (mutex_collection_.find (name, inv) == -1)
- // We did not find one in the collection.
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_Token_Invariant_Manager::get_rwlock (const ACE_TCHAR *token_name,
- ACE_RWLock_Invariants *&inv)
-{
- ACE_TRACE ("ACE_Token_Invariant_Manager::get_rwlock");
- TOKEN_NAME name (token_name);
- if (rwlock_collection_.find (name, inv) == -1)
- // We did not find one in the collection.
- {
- ACE_RWLock_Invariants *new_invariant;
-
- ACE_NEW_RETURN (new_invariant,
- ACE_RWLock_Invariants,
- -1);
- if (rwlock_collection_.bind (name, new_invariant) == -1)
- return -1;
-
- if (rwlock_collection_.find (name, inv) == -1)
- // We did not find one in the collection.
- return -1;
- }
-
- return 0;
-}
-
-
-ACE_Token_Invariant_Manager::~ACE_Token_Invariant_Manager (void)
-{
- ACE_TRACE ("ACE_Token_Invariant_Manager::~ACE_Token_Invariant_Manager");
-
- MUTEX_COLLECTION::ITERATOR iterator (mutex_collection_);
-
- for (MUTEX_COLLECTION::ENTRY *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- delete temp->int_id_;
-
- RWLOCK_COLLECTION::ITERATOR iterator2 (rwlock_collection_);
-
- for (RWLOCK_COLLECTION::ENTRY *temp2 = 0;
- iterator2.next (temp2) != 0;
- iterator2.advance ())
- delete temp2->int_id_;
-}
-
-// **************************************************
-// **************************************************
-// **************************************************
-
-ACE_Mutex_Invariants::ACE_Mutex_Invariants (void)
-: owners_ (0)
-{
-}
-
-int
-ACE_Mutex_Invariants::acquired (void)
-{
- if (++owners_ > 1)
- {
- owners_ = 42;
- return 0;
- }
- else
- return 1;
-}
-
-void
-ACE_Mutex_Invariants::releasing (void)
-{
- if (owners_ == 1)
- --owners_;
-}
-
-ACE_Mutex_Invariants::ACE_Mutex_Invariants (const ACE_Mutex_Invariants &rhs)
-: owners_ (rhs.owners_)
-{
-}
-
-void
-ACE_Mutex_Invariants::operator= (const ACE_Mutex_Invariants &rhs)
-{
- owners_ = rhs.owners_;
-}
-
-void
-ACE_Mutex_Invariants::dump (void) const
-{
- ACE_TRACE ("ACE_Mutex_Invariants::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("owners_ = %d\n"), owners_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// **************************************************
-// **************************************************
-// **************************************************
-
-ACE_RWLock_Invariants::ACE_RWLock_Invariants (void)
-: writers_ (0),
- readers_ (0)
-{
-}
-
-int
-ACE_RWLock_Invariants::writer_acquired (void)
-{
- if (readers_ > 0)
- {
- writers_ = readers_ = 42;
- return 0;
- }
- else if (++writers_ > 1)
- {
- writers_ = readers_ = 42;
- return 0;
- }
- else
- return 1;
-}
-
-int
-ACE_RWLock_Invariants::reader_acquired (void)
-{
- if (writers_ > 0)
- {
- writers_ = readers_ = 42;
- return 0;
- }
- else
- {
- ++readers_;
- return 1;
- }
-}
-
-void
-ACE_RWLock_Invariants::releasing (void)
-{
- if (writers_ == 1)
- writers_ = 0;
- else if (readers_ > 0)
- --readers_;
-}
-
-ACE_RWLock_Invariants::ACE_RWLock_Invariants (const ACE_RWLock_Invariants &rhs)
-: writers_ (rhs.writers_),
- readers_ (rhs.readers_)
-{
-}
-
-void
-ACE_RWLock_Invariants::operator= (const ACE_RWLock_Invariants &rhs)
-{
- writers_ = rhs.writers_;
- readers_ = rhs.readers_;
-}
-
-void
-ACE_RWLock_Invariants::dump (void) const
-{
- ACE_TRACE ("ACE_RWLock_Invariants::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("writers_ = %d\n"),
- "readers_ = %d\n",
- writers_, readers_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Map_Manager<ACE_Token_Name, ACE_Mutex_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<ACE_Token_Name, ACE_Mutex_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator<ACE_Token_Name, ACE_Mutex_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<ACE_Token_Name, ACE_Mutex_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Entry<ACE_Token_Name, ACE_Mutex_Invariants *>;
-template class ACE_Map_Manager<ACE_Token_Name, ACE_RWLock_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<ACE_Token_Name, ACE_RWLock_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator<ACE_Token_Name, ACE_RWLock_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<ACE_Token_Name, ACE_RWLock_Invariants *, ACE_Null_Mutex>;
-template class ACE_Map_Entry<ACE_Token_Name, ACE_RWLock_Invariants *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Map_Manager<ACE_Token_Name, ACE_Mutex_Invariants *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_Token_Name, ACE_Mutex_Invariants *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator<ACE_Token_Name, ACE_Mutex_Invariants *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_Token_Name, ACE_Mutex_Invariants *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Entry<ACE_Token_Name, ACE_Mutex_Invariants *>
-#pragma instantiate ACE_Map_Manager<ACE_Token_Name, ACE_RWLock_Invariants *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_Token_Name, ACE_RWLock_Invariants *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator<ACE_Token_Name, ACE_RWLock_Invariants *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_Token_Name, ACE_RWLock_Invariants *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Entry<ACE_Token_Name, ACE_RWLock_Invariants *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
diff --git a/ace/Token_Invariants.h b/ace/Token_Invariants.h
deleted file mode 100644
index 84372a731a5..00000000000
--- a/ace/Token_Invariants.h
+++ /dev/null
@@ -1,240 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Token_Invariants.h
- *
- * $Id$
- *
- * @author Tim Harrison (harrison@cs.wustl.edu)
- *
- * Allows applications to test that invariants are always
- * satisfied. Can test mutexes and readers/writer locks. Does
- * not test recursive acquisition.
- *
- *
- */
-//=============================================================================
-
-#ifndef ACE_TOKEN_INVARIANTS_H
-#define ACE_TOKEN_INVARIANTS_H
-#include "ace/pre.h"
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Map_Manager.h"
-#include "ace/Local_Tokens.h"
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-/**
- * @class ACE_Mutex_Invariants
- *
- * @brief Mutex Invariants
- * = INVARIANTS
- * 1. Only one owner at a time.
- */
-class ACE_Export ACE_Mutex_Invariants
-{
-public:
- /// Default construction.
- ACE_Mutex_Invariants (void);
-
- /// Returns 1 on success, 0 when an invariant has been violated and
- /// -1 on error.
- int acquired (void);
-
- /// Updates internal database.
- void releasing (void);
-
- // = Map_Manager operations.
-
- /// Copy construction.
- ACE_Mutex_Invariants (const ACE_Mutex_Invariants &rhs);
-
- /// Copy.
- void operator= (const ACE_Mutex_Invariants &rhs);
-
- /// Dump the state of the class.
- void dump (void) const;
-
-private:
- /// Number of owners. This had better be 0 >= owners_ <= 1;
- int owners_;
-};
-
-/**
- * @class ACE_RWLock_Invariants
- *
- * @brief RWLock Invariants
- *
- * Preserve the following invariants:
- * -# Only one writer at a time.
- * -# If there is an owning writer, there are no owning readers.
- */
-class ACE_Export ACE_RWLock_Invariants
-{
-public:
- /// Default construction.
- ACE_RWLock_Invariants (void);
-
- /// Returns 1 on success, 0 when an invariant has been violated and
- /// -1 on error.
- int writer_acquired (void);
-
- /// Returns 1 on success, 0 when an invariant has been violated and
- /// -1 on error.
- int reader_acquired (void);
-
- /// Updates internal database.
- void releasing (void);
-
- // = Map_Manager operations.
-
- /// Copy construction.
- ACE_RWLock_Invariants (const ACE_RWLock_Invariants &rhs);
-
- /// Copy.
- void operator= (const ACE_RWLock_Invariants &rhs);
-
- /// Dump the state of the class.
- void dump (void) const;
-
-private:
- /// Number of owning writers.
- int writers_;
-
- /// Number of owning readers.
- int readers_;
-};
-
-/**
- * @class ACE_Token_Invariant_Manager
- *
- * @brief Token Invariants
- *
- * The Token Invariant Manager allows applications to test that
- * invariants are always satisfied. Currently, Token_Invariants
- * can test mutexes and readers/writer locks. Does not test
- * recursive acquisition.
- * Note that this class does not ever clean its database. Until
- * destroyed, it's size will forever increase.
- */
-class ACE_Export ACE_Token_Invariant_Manager : public ACE_Cleanup
-{
-public:
-
- /// Singleton access point.
- static ACE_Token_Invariant_Manager *instance (void);
-
- // = Polymorphic methods. Just pass in the proxy and the method
- // figures out the type of the token.
-
- /// Returns 1 on success, 0 when an invariant has been violated and
- /// -1 on error.
- int acquired (const ACE_Token_Proxy *proxy);
-
- /// Updates internal database.
- void releasing (const ACE_Token_Proxy *proxy);
-
- // = Explicit methods. These to not require actual proxies in order
- // to test a scenario.
-
- /// Returns 1 on success, 0 when an invariant has been violated and
- /// -1 on error.
- int mutex_acquired (const ACE_TCHAR *token_name);
-
- /// Updates internal database.
- void mutex_releasing (const ACE_TCHAR *token_name);
-
- /// Returns 1 on success, 0 when an invariant has been violated and
- /// -1 on error.
- int reader_acquired (const ACE_TCHAR *token_name);
-
- /// Returns 1 on success, 0 when an invariant has been violated and
- /// -1 on error.
- int writer_acquired (const ACE_TCHAR *token_name);
-
- /// Updates internal database.
- void rwlock_releasing (const ACE_TCHAR *token_name);
-
- /// Dump the state of the class.
- void dump (void) const;
-
- // = The following two method should be in the protected part of the
- // class. Bugs with certain compilers preclude this.
- /// Prevent non-singleton construction.
- ACE_Token_Invariant_Manager (void);
-
- /// Destruction.
- virtual ~ACE_Token_Invariant_Manager (void);
-
-protected:
- /// Return or create.
- int get_mutex (const ACE_TCHAR *token_name,
- ACE_Mutex_Invariants *&inv);
-
- /// Return or create.
- int get_rwlock (const ACE_TCHAR *token_name,
- ACE_RWLock_Invariants *&inv);
-
- /// ACE_Mutex_Token used to lock internal data structures.
- ACE_TOKEN_CONST::MUTEX lock_;
-
- /// This may be changed to a template type.
- typedef ACE_Token_Name TOKEN_NAME;
-
- /// COLLECTION maintains a mapping from token names to mutexes.
- typedef ACE_Map_Manager<TOKEN_NAME, ACE_Mutex_Invariants *, ACE_Null_Mutex>
- MUTEX_COLLECTION;
-
- /// Allows iterations through collection.
- /**
- * @note Deprecated typedef. Use MUTEX_COLLECTION::ITERATOR trait
- * instead.
- */
- typedef MUTEX_COLLECTION::ITERATOR MUTEX_COLLECTION_ITERATOR;
-
- /// Allows iterations through collection.
- /**
- * @note Deprecated typedef. Use MUTEX_COLLECTION::ENTRY trait
- * instead.
- */
- typedef MUTEX_COLLECTION::ENTRY MUTEX_COLLECTION_ENTRY;
-
- /// MUTEX_COLLECTION maintains a mapping from token names to mutexes.
- MUTEX_COLLECTION mutex_collection_;
-
- /// COLLECTION maintains a mapping from token names to mutexes.
- typedef ACE_Map_Manager<TOKEN_NAME, ACE_RWLock_Invariants *, ACE_Null_Mutex>
- RWLOCK_COLLECTION;
-
- /// Allows iterations through collection.
- /**
- * @note Deprecated typedef. Use RWLOCK_COLLECTION::ITERATOR trait
- * instead.
- */
- typedef RWLOCK_COLLECTION::ITERATOR RWLOCK_COLLECTION_ITERATOR;
-
- /// Allows iterations through collection.
- /**
- * @note Deprecated typedef. Use RWLOCK_COLLECTION::ENTRY trait
- * instead.
- */
- typedef RWLOCK_COLLECTION::ENTRY RWLOCK_COLLECTION_ENTRY;
-
- /// MUTEX_COLLECTION maintains a mapping from token names to mutexes.
- RWLOCK_COLLECTION rwlock_collection_;
-
- /// Singleton pointer.
- static ACE_Token_Invariant_Manager *instance_;
-};
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
-
-#include "ace/post.h"
-#endif /* ACE_TOKEN_INVARIANTS_H */
diff --git a/ace/Token_Manager.cpp b/ace/Token_Manager.cpp
deleted file mode 100644
index d14871ab52c..00000000000
--- a/ace/Token_Manager.cpp
+++ /dev/null
@@ -1,280 +0,0 @@
-#include "ace/Token_Manager.h"
-#include "ace/Object_Manager.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Token_Manager.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-ACE_RCSID (ace,
- Token_Manager,
- "$Id$")
-
-// singleton token manager
-ACE_Token_Manager *ACE_Token_Manager::token_manager_ = 0;
-
-ACE_Token_Manager::ACE_Token_Manager ()
-{
- ACE_TRACE ("ACE_Token_Manager::ACE_Token_Manager");
-}
-
-ACE_Token_Manager::~ACE_Token_Manager ()
-{
- ACE_TRACE ("ACE_Token_Manager::~ACE_Token_Manager");
-
- COLLECTION::ITERATOR iterator (collection_);
-
- for (COLLECTION::ENTRY *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- {
- // @ should I be doing an unbind here?
- delete temp->int_id_;
- // The ext_id_'s delete themselves when the array of
- // COLLECTION::ENTRYs goes away.
- }
-}
-
-ACE_Token_Manager *
-ACE_Token_Manager::instance (void)
-{
- ACE_TRACE ("ACE_Token_Manager::instance");
-
- // This first check is to avoid acquiring the mutex in the common
- // case. Double-Check pattern rules.
- if (token_manager_ == 0)
- {
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- ACE_TOKEN_CONST::MUTEX *lock =
- ACE_Managed_Object<ACE_TOKEN_CONST::MUTEX>::get_preallocated_object
- (ACE_Object_Manager::ACE_TOKEN_MANAGER_CREATION_LOCK);
- ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon, *lock, 0);
-#endif /* ACE_MT_SAFE */
-
- if (token_manager_ == 0)
- {
- ACE_NEW_RETURN (token_manager_,
- ACE_Token_Manager,
- 0);
- // Register for destruction with ACE_Object_Manager.
- ACE_Object_Manager::at_exit (token_manager_);
- }
- }
-
- return token_manager_;
-}
-
-void
-ACE_Token_Manager::get_token (ACE_Token_Proxy *proxy,
- const ACE_TCHAR *token_name)
-{
- ACE_TRACE ("ACE_Token_Manager::get_token");
- // Hmm. I think this makes sense. We perform our own locking here
- // (see safe_acquire.) We have to make sure that only one thread
- // uses the collection at a time.
-
- ACE_GUARD (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_);
-
- TOKEN_NAME name (token_name);
-
- if (collection_.find (name, proxy->token_) == -1)
- // We did not find one in the collection.
- {
- // Make one.
- proxy->token_ = proxy->create_token (token_name);
-
- // Put it in the collection.
- if (collection_.bind (name, proxy->token_) == -1)
- {
- delete proxy->token_;
- proxy->token_ = 0;
- }
- }
-
- if (proxy->token_ != 0)
- proxy->token_->inc_reference ();
-
- // We may be returning proxy->token_ == 0 if new failed, caller must
- // check.
-}
-
-// 0. check_deadlock (TOKEN)
-// 1. if TOKEN->visited (), return 0.
-// 2. mark TOKEN visited.
-// 3. get ALL_OWNERS
-// 4. if CLIENT in ALL_OWNERS, return *DEADLOCK*.
-// 5. for each OWNER in ALL_OWNERS,
-// 6. if OWNER is not waiting for a NEW_TOKEN, continue.
-// 7. else, if check_deadlock (NEW_TOKEN) == 1, return *DEADLOCK*
-// 8. return 0.
-
-int
-ACE_Token_Manager::check_deadlock (ACE_Token_Proxy *proxy)
-{
- ACE_TRACE ("ACE_Token_Manager::check_deadlock");
-
- // Start the recursive deadlock detection algorithm.
- int result = this->check_deadlock (proxy->token_, proxy);
-
- // Whether or not we detect deadlock, we have to unmark all tokens
- // for the next time.
- COLLECTION::ITERATOR iterator (collection_);
- for (COLLECTION::ENTRY *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- temp->int_id_->visit (0);
-
- return result;
-}
-
-int
-ACE_Token_Manager::check_deadlock (ACE_Tokens *token, ACE_Token_Proxy *proxy)
-{
- ACE_TRACE ("ACE_Token_Manager::check_deadlock");
-
- if (token->visited ())
- return 0;
-
- token->visit (1);
-
- ACE_Tokens::OWNER_STACK owners;
-
- int is_owner = token->owners (owners, proxy->client_id ());
-
- switch (is_owner)
- {
- case -1:
- // Error.
- return -1;
- case 1:
- // The caller is an owner, so we have a deadlock situation.
- if (debug_)
- {
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%t) Deadlock detected.\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("%s owns %s and is waiting for %s.\n"),
- proxy->client_id (),
- token->name (),
- proxy->token_->name ()));
- }
-
- return 1;
- case 0:
- default:
- // Recurse on each owner.
- while (!owners.is_empty ())
- {
- ACE_TPQ_Entry *e;
- owners.pop (e);
- // If the owner is waiting on another token, recurse.
- ACE_Tokens *twf = this->token_waiting_for (e->client_id ());
- if ((twf != 0) &&
- (this->check_deadlock (twf, proxy) == 1))
- {
- if (debug_)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("%s owns %s and is waiting for %s.\n"),
- e->client_id (),
- token->name (),
- twf->name ()));
- }
- return 1;
- }
- // else, check the next owner.
- }
-
- // We've checked all the owners and found no deadlock.
- return 0;
- }
-}
-
-
-ACE_Tokens *
-ACE_Token_Manager::token_waiting_for (const ACE_TCHAR *client_id)
-{
- COLLECTION::ITERATOR iterator (collection_);
- for (COLLECTION::ENTRY *temp = 0;
- iterator.next (temp) != 0;
- iterator.advance ())
- {
- if (temp->int_id_->is_waiting_for (client_id))
- return temp->int_id_;
- }
-
- // nothing was found, return NULL.
- return 0;
-}
-
-// Notify the token manager that a token is has been released. If
-// as a result, there is no owner of the token, the token is
-// deleted.
-void
-ACE_Token_Manager::release_token (ACE_Tokens *&token)
-{
- ACE_TRACE ("ACE_Token_Manager::release_token");
- // again, let's perform our own locking here.
-
- ACE_GUARD (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_);
-
- if (token->dec_reference () == 0)
- {
- // No one has the token, so we can delete it and remove it from
- // our collection. First, let's get it from the collection.
- TOKEN_NAME token_name (token->name ());
-
- ACE_Tokens *temp;
-
- if (collection_.unbind (token_name, temp) == -1)
- // we did not find one in the collection
- {
- errno = ENOENT;
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("Token Manager could not release %s:%d\n"),
- token->name (), token->type ()));
- // @@ bad
- }
- else
- // we found it
- {
- // sanity pointer comparison. The token referenced by the
- // proxy better be the one we found in the list.
- ACE_ASSERT (token == temp);
- delete token; // or delete temp
- // we set their token to zero. if the calling proxy is
- // still going to be used, it had better check it's token
- // value before calling a method on it!
- token = 0;
- }
- }
- // else
- // someone is still interested in the token, so keep it around.
-}
-
-void
-ACE_Token_Manager::dump (void) const
-{
- ACE_TRACE ("ACE_Token_Manager::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACE_Token_Manager::dump:\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("lock_\n")));
- lock_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("collection_\n")));
- collection_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Map_Manager <ACE_Token_Name, ACE_Tokens *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<ACE_Token_Name, ACE_Tokens *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator<ACE_Token_Name, ACE_Tokens *, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<ACE_Token_Name, ACE_Tokens *, ACE_Null_Mutex>;
-template class ACE_Map_Entry <ACE_Token_Name, ACE_Tokens *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Map_Manager <ACE_Token_Name, ACE_Tokens *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_Token_Name, ACE_Tokens *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator<ACE_Token_Name, ACE_Tokens *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_Token_Name, ACE_Tokens *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Entry <ACE_Token_Name, ACE_Tokens *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
diff --git a/ace/Token_Manager.h b/ace/Token_Manager.h
deleted file mode 100644
index 15b17624b40..00000000000
--- a/ace/Token_Manager.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Token_Manager.h
- *
- * $Id$
- *
- * @author Tim Harrison (harrison@cs.wustl.edu)
- */
-//=============================================================================
-
-#ifndef ACE_TOKEN_MANAGER_H
-#define ACE_TOKEN_MANAGER_H
-#include "ace/pre.h"
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Map_Manager.h"
-#include "ace/Local_Tokens.h"
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-class ACE_Local_Mutex;
-class ACE_Mutex_Token;
-
-/**
- * @class ACE_Token_Manager
- *
- * @brief Manages all tokens in a process space.
- *
- * Factory: Proxies use the token manager to obtain token
- * references. This allows multiple proxies to reference the same
- * logical token.
- * Deadlock detection: Tokens use the manager to check for
- * deadlock situations during acquires.
- */
-class ACE_Export ACE_Token_Manager : public ACE_Cleanup
-{
-
- // To add a new type of token (e.g. semaphore), do the following
- // steps: 1. Create a new derivation of ACE_Token. This class
- // defines the semantics of the new Token. 2. Create a
- // derivation of ACE_Token_Manager. You will only need to
- // redefine make_mutex.
-public:
- ACE_Token_Manager (void);
- virtual ~ACE_Token_Manager (void);
-
- /// Get the pointer to token manager singleton.
- static ACE_Token_Manager *instance (void);
-
- /// Set the pointer to token manager singleton.
- void instance (ACE_Token_Manager *);
-
- /**
- * The Token manager uses ACE_Token_Proxy::token_id_ to look for
- * an existing token. If none is found, the Token Manager calls
- * ACE_Token_Proxy::create_token to create a new one. When
- * finished, sets ACE_Token_Proxy::token_. <token_name> uniquely
- * id's the token name.
- */
- void get_token (ACE_Token_Proxy *, const ACE_TCHAR *token_name);
-
- /**
- * Check whether acquire will cause deadlock or not.
- * returns 1 if the acquire will _not_ cause deadlock.
- * returns 0 if the acquire _will_ cause deadlock.
- * This method ignores recursive acquisition. That is, it will not
- * report deadlock if the client holding the token requests the
- * token again. Thus, it assumes recursive mutexes.
- */
- int check_deadlock (ACE_Token_Proxy *proxy);
- int check_deadlock (ACE_Tokens *token, ACE_Token_Proxy *proxy);
-
- /// Notify the token manager that a token has been released. If as a
- /// result, there is no owner of the token, the token is deleted.
- void release_token (ACE_Tokens *&token);
-
- /**
- * This is to allow Tokens to perform atomic transactions. The
- * typical usage is to acquire this mutex, check for a safe_acquire,
- * perform some queueing (if need be) and then release the lock.
- * This is necessary since safe_acquire is implemented in terms of
- * the Token queues.
- */
- ACE_TOKEN_CONST::MUTEX &mutex (void);
-
- /// Dump the state of the class.
- void dump (void) const;
-
- /// Turn debug mode on/off.
- void debug (int d);
-
-private:
- /// Whether to print debug messages or not.
- int debug_;
-
- /// pointer to singleton token manager.
- static ACE_Token_Manager *token_manager_;
-
- /// Return the token that the given client_id is waiting for, if any
- ACE_Tokens *token_waiting_for (const ACE_TCHAR *client_id);
-
- /// ACE_Mutex_Token used to lock internal data structures.
- ACE_TOKEN_CONST::MUTEX lock_;
-
- /// This may be changed to a template type.
- typedef ACE_Token_Name TOKEN_NAME;
-
- /// COLLECTION maintains a mapping from token names to ACE_Tokens*
- typedef ACE_Map_Manager<TOKEN_NAME, ACE_Tokens *, ACE_Null_Mutex>
- COLLECTION;
-
- /// Allows iterations through collection_
- /**
- * @note Deprecated typedef. Use COLLECTION::ITERATOR trait
- * instead.
- */
- typedef COLLECTION::ITERATOR COLLECTION_ITERATOR;
-
- /// Allows iterations through collection_
- /**
- * @note Deprecated typedef. Use COLLECTION::ENTRY trait
- * instead.
- */
- typedef COLLECTION::ENTRY COLLECTION_ENTRY;
-
- /// COLLECTION maintains a mapping from token names to ACE_Tokens*.
- COLLECTION collection_;
-};
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Token_Manager.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_TOKEN_MANAGER_H */
diff --git a/ace/Token_Manager.i b/ace/Token_Manager.i
deleted file mode 100644
index 2ef2d7e1f53..00000000000
--- a/ace/Token_Manager.i
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-ACE_INLINE ACE_TOKEN_CONST::MUTEX &
-ACE_Token_Manager::mutex (void)
-{
- ACE_TRACE ("ACE_Token_Manager::mutex");
- return lock_;
-}
-
-ACE_INLINE void
-ACE_Token_Manager::debug (int d)
-{
- ACE_TRACE ("ACE_Token_Manager::debug");
- debug_ = d;
-}
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
diff --git a/ace/Token_Request_Reply.cpp b/ace/Token_Request_Reply.cpp
deleted file mode 100644
index 9fecb01e443..00000000000
--- a/ace/Token_Request_Reply.cpp
+++ /dev/null
@@ -1,178 +0,0 @@
-// $Id$
-
-#include "ace/Token_Request_Reply.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Token_Request_Reply.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-ACE_RCSID(ace, Token_Request_Reply, "$Id$")
-
-// Default "do nothing" constructor.
-
-ACE_Token_Request::ACE_Token_Request (void)
- : token_name_ (0),
- client_id_ (0)
-{
-}
-
-// Create a ACE_Token_Request message.
-
-ACE_Token_Request::ACE_Token_Request (int token_type,
- int proxy_type,
- ACE_UINT32 operation_type,
- const ACE_TCHAR token_name[],
- const ACE_TCHAR client_id[],
- const ACE_Synch_Options &options)
-{
- this->token_type (token_type);
- this->proxy_type (proxy_type);
- this->operation_type (operation_type);
- this->requeue_position (0); // to avoid Purify UMR
- this->notify (0); // to avoid Purify UMR
- transfer_.arg_ = 0; // to avoid Purify UMR
- ACE_OS::memset (transfer_.data_, 0, sizeof transfer_.data_); // to avoid Purify UMR
- this->token_name (token_name, client_id);
- this->options (options);
-}
-
-// Encode the transfer buffer into network byte order
-// so that it can be sent to the server.
-
-int
-ACE_Token_Request::encode (void *&buf)
-{
- buf = (void *) &this->transfer_;
- return this->length ();
-}
-
-// Decode the transfer buffer into host byte byte order
-// so that it can be used by the server.
-
-int
-ACE_Token_Request::decode (void)
-{
- this->token_name_ = this->transfer_.data_;
-
- options_.set (transfer_.use_timeout_ == 1 ? ACE_Synch_Options::USE_TIMEOUT : 0,
- ACE_Time_Value (transfer_.sec_, transfer_.usec_),
- (void *) transfer_.arg_);
-
- // Decode the variable-sized portion.
- int token_len = ACE_OS::strlen (this->token_name_);
-
- // Check to make sure this->tokenName_ isn't too long!
- if (token_len >= ACE_MAXTOKENNAMELEN)
- {
- errno = ENAMETOOLONG;
- return -1;
- }
- else // Skip this->tokenName_ + '\0' + ':'.
- this->client_id_ =
- &this->token_name_[(token_len + 2) * sizeof (ACE_TCHAR)];
-
- // Fixed size header
- // token_name_ plus '\0'
- // ':'
- // client_id_ plus '\0'
- size_t data_size = ACE_TOKEN_REQUEST_HEADER_SIZE
- + ACE_OS::strlen (this->token_name_) + 1
- + ACE_OS::strlen (this->client_id_) + 1
- + 1;
-
- // Make sure the message was correctly received and framed.
- return this->length () == data_size ? 0 : -1;
-}
-
-// Print out the current values of the ACE_Token_Request.
-
-void
-ACE_Token_Request::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("*******\nlength = %d\ntoken name = %s\nclient id = %s\n"),
- this->length (), this->token_name (), this->client_id ()));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("type = ")));
-
- if (this->token_type () == ACE_Tokens::MUTEX)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("MUTEX\n")));
- else // == ACE_Tokens::RWLOCK
- {
- if (this->proxy_type () == ACE_RW_Token::READER)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("RLOCK\n")));
- else // == WRITER
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("WLOCK\n")));
- }
-
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("operation = ")));
- switch (this->operation_type ())
- {
- case ACE_Token_Request::ACQUIRE:
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("ACQUIRE\n")));
- break;
- case ACE_Token_Request::RELEASE:
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("RELEASE\n")));
- break;
- case ACE_Token_Request::RENEW:
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("RENEW\n")));
- break;
- default:
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("<unknown operation type> = %d\n"), this->operation_type ()));
- break;
- }
-
- if (this->options ()[ACE_Synch_Options::USE_TIMEOUT] == 0)
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("blocking forever\n")));
- else
- {
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("waiting for %d secs and %d usecs\n"),
- this->options ().timeout ().sec (), this->options ().timeout ().usec ()));
- }
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-// ************************************************************
-// ************************************************************
-// ************************************************************
-
-// Create a ACE_Token_Reply message.
-
-ACE_Token_Reply::ACE_Token_Reply (void) // Type of reply.
-{
- this->arg (0);
- this->errnum (0);
- this->length (sizeof (Transfer));
-}
-
-// Encode the transfer buffer into network byte order
-// so that it can be sent to the client.
-
-int
-ACE_Token_Reply::encode (void *&buf)
-{
- buf = (void *) &this->transfer_;
- return this->length ();
-}
-
-// Decode the transfer buffer into host byte order
-// so that it can be used by the client.
-
-int
-ACE_Token_Reply::decode (void)
-{
- return 0;
-}
-
-// Print out current values of the ACE_Token_Reply object.
-
-void
-ACE_Token_Reply::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("*******\nlength = %d\nerrnum = %d"),
- this->length (), this->errnum ()));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("arg = %d"), this->arg ()));
-}
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
diff --git a/ace/Token_Request_Reply.h b/ace/Token_Request_Reply.h
deleted file mode 100644
index b21f4457c24..00000000000
--- a/ace/Token_Request_Reply.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Token_Request_Reply.h
- *
- * $Id$
- *
- * Define the format used to exchange messages between the
- * ACE_Token Server and its clients.
- *
- *
- * @author Douglas C. Schmidt (schmidt@cs.wustl.edu)
- * @author Tim Harrison (harrison@cs.wustl.edu)
- */
-//=============================================================================
-
-
-#ifndef ACE_TOKEN_REQUEST_REPLY_H
-#define ACE_TOKEN_REQUEST_REPLY_H
-#include "ace/pre.h"
-
-#include "ace/Local_Tokens.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Time_Value.h"
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-// Specifies the size of the fixed length portion of
-// the Transfer structure in ACE_Token_Request
-#define ACE_TOKEN_REQUEST_HEADER_SIZE 40
-
-/**
- * @class ACE_Token_Request
- *
- * @brief Message format for delivering requests to the ACE_Token Server.
- *
- * This class is implemented to minimize data copying.
- * In particular, all marshaling is done in situ...
- */
-class ACE_Export ACE_Token_Request
-{
-public:
- /// Operation types.
- enum OPERATION
- {
- /// Acquire the token.
- ACQUIRE,
- /// Release the token.
- RELEASE,
- /// Renew the token.
- RENEW,
- /// Remove the token.
- REMOVE,
- // Try to acquire the token.
- TRY_ACQUIRE
- };
-
- /// Default constructor.
- ACE_Token_Request (void);
-
- /**
- * token_type - MUTEX, RWLOCK
- * proxy_type - MUTEX, RLOCK, WLOCK (acquires mean different things)
- * operation - method
- * token_name
- * client_id
- * options - we check USE_TIMEOUT and use the arg.
- */
- ACE_Token_Request (int token_type,
- int proxy_type,
- ACE_UINT32 operation,
- const ACE_TCHAR token_name[],
- const ACE_TCHAR client_id[],
- const ACE_Synch_Options &options);
-
- /// Get the length of the encoded/decoded message.
- ACE_UINT32 length (void) const;
-
- /// Set the length of the encoded/decoded message.
- void length (ACE_UINT32);
-
- /// Get the type of proxy
- int proxy_type (void) const;
-
- /// Set the type of proxy
- void proxy_type (int proxy_type);
-
- /// Get the type of token
- int token_type (void) const;
-
- /// Set the type of token
- void token_type (int token_type);
-
- /// Get the type of the operation.
- ACE_UINT32 operation_type (void) const;
-
- /// Set the type of the operation.
- void operation_type (ACE_UINT32);
-
- /// Get the requeue position. These should be used when renew
- /// is the operation type.
- ACE_UINT32 requeue_position (void) const;
-
- /// Set the requeue position. These should be used when renew
- /// is the operation type.
- void requeue_position (ACE_UINT32);
-
- /// Get notify. These should be used when acquire is the operation type.
- ACE_UINT32 notify (void) const;
-
- /// Set notify. These should be used when acquire is the operation type.
- void notify (ACE_UINT32);
-
- // = Set/get the timeout.
- ACE_Synch_Options &options (void) const;
- void options (const ACE_Synch_Options &options);
-
- // = Set/get the name of the token and the client id. The set
- // method is combined to make it easier on us. We're copying the
- // names as a contiguous buffer.
- ACE_TCHAR *token_name (void) const;
- ACE_TCHAR *client_id (void) const;
- void token_name (const ACE_TCHAR *token_name, const ACE_TCHAR *client_id);
-
- /// Encode the message before transmission.
- int encode (void *&);
-
- /// Decode message after reception. This must be called to set the
- /// internal options.
- int decode (void);
-
- /// Print out the values of the message for debugging purposes.
- void dump (void) const;
-
-private:
- // = The 5 fields in the <Transfer> struct are transmitted to the server.
- // The remaining 2 fields are not tranferred -- they are used only on
- // the server-side to simplify lookups.
-
- struct Transfer
- {
- /// Length of entire request.
- ACE_UINT32 length_;
-
- /// Type of the request (i.e., MUTEX, RLOCK, WLOCK...
- ACE_UINT32 token_type_;
-
- /// Type of the request (i.e., MUTEX, RLOCK, WLOCK...
- ACE_UINT32 proxy_type_;
-
- /// Type of the request (i.e., <ACQUIRE>, <RELEASE>, <RENEW>, and <REMOVE>).
- ACE_UINT32 operation_type_;
-
- /// this only makes sense when operation type is renew
- ACE_UINT32 requeue_position_;
-
- /// this only makes sense when operation type is renew
- ACE_UINT32 notify_;
-
- // = ACE_Synch_Options stuff
-
- /// Indicates if we should block forever. If 1, then <secTimeout_>
- /// and <usecTimeout_> indicates how long we should wait. If 0,
- /// then we block forever.
- ACE_UINT32 use_timeout_;
-
- /// Max seconds willing to wait for token if not blocking forever.
- ACE_UINT32 sec_;
-
- /// Max micro seconds to wait for token if not blocking forever.
- ACE_UINT32 usec_;
-
- /// value returned in <Token_Reply::arg>;
- ACE_UINT32 arg_;
-
- /// The data portion contains the <tokenName_> including a 0 terminator,
- /// a ':', then the <clientId> including a 0 terminator
- ACE_TCHAR data_[ACE_MAXTOKENNAMELEN + ACE_MAXCLIENTIDLEN + 3];
- } transfer_;
-
- /// Pointer to the beginning of the token name in this->data_.
- ACE_TCHAR *token_name_;
-
- /// Pointer to the beginning of the client id in this->data_;
- ACE_TCHAR *client_id_;
-
- /// Holds arg, sec, usec, etc.
- ACE_Synch_Options options_;
-};
-
-/**
- * @class ACE_Token_Reply
- *
- * @brief Message format for delivering replies from the ACE_Token Server.
- *
- * This class is implemented to minimize data copying.
- * In particular, all marshaling is done in situ...
- */
-class ACE_Export ACE_Token_Reply
-{
-public:
- /// Default constructor.
- ACE_Token_Reply (void);
-
- /// Get the length of the encoded/decoded message.
- ACE_UINT32 length (void) const;
-
- /// Set the length of the encoded/decoded message.
- void length (ACE_UINT32);
-
- /// Get the errno of a reply.
- ACE_UINT32 errnum (void) const;
-
- /// Set the errno of a reply.
- void errnum (ACE_UINT32);
-
- /// Get the arg of a reply.
- ACE_UINT32 arg (void) const;
-
- /// Set the arg of a reply.
- void arg (ACE_UINT32);
-
- /// Encode the message before transfer.
- int encode (void *&);
-
- /// Decode a message after reception.
- int decode (void);
-
- /// Print out the values of the message for debugging purposes.
- void dump (void) const;
-
-private:
- // = The 2 fields in the <Transfer> struct are transmitted to the server.
-
- struct Transfer
- {
- /// Length of entire reply.
- ACE_UINT32 length_;
-
- /// Indicates why error occurred if <this->type_> == <FAILURE>.
- /// Typical reasons include:
- /// <EWOULDBLOCK> (if client requested a non-blocking check for the token).
- /// <ETIME> (if the client timed out after waiting for the token).
- /// <ENOLCK> (if the token lock was removed out from underneath a waiter).
- /// <EACCES> (attempt to renew a token that isn't owned by the client).
- ACE_UINT32 errno_;
-
- /// magic cookie
- ACE_UINT32 arg_;
-
- } transfer_;
-};
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Token_Request_Reply.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_TOKEN_REQUEST_REPLY_H */
diff --git a/ace/Token_Request_Reply.i b/ace/Token_Request_Reply.i
deleted file mode 100644
index e1c8ace3ad5..00000000000
--- a/ace/Token_Request_Reply.i
+++ /dev/null
@@ -1,196 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-// = Set/get the length of the encoded/decoded message.
-
-ACE_INLINE ACE_UINT32
-ACE_Token_Request::length (void) const
-{
- return ntohl (this->transfer_.length_);
-}
-
-ACE_INLINE void
-ACE_Token_Request::length (ACE_UINT32 l)
-{
- this->transfer_.length_ = htonl (l);
-}
-
-// = Set/get the type of the message.
-ACE_INLINE int
-ACE_Token_Request::token_type (void) const
-{
- return (int) ntohl (this->transfer_.token_type_);
-}
-
-ACE_INLINE void
-ACE_Token_Request::token_type (int t)
-{
- this->transfer_.token_type_ = htonl ((ACE_UINT32) t);
-}
-
-// = Set/get the type of the message.
-ACE_INLINE int
-ACE_Token_Request::proxy_type (void) const
-{
- return (int) ntohl (this->transfer_.proxy_type_);
-}
-
-ACE_INLINE void
-ACE_Token_Request::proxy_type (int t)
-{
- this->transfer_.proxy_type_ = htonl ((ACE_UINT32) t);
-}
-
-// = Set/get the type of the message.
-ACE_INLINE ACE_UINT32
-ACE_Token_Request::operation_type (void) const
-{
- return ntohl (this->transfer_.operation_type_);
-}
-
-ACE_INLINE void
-ACE_Token_Request::operation_type (ACE_UINT32 t)
-{
- this->transfer_.operation_type_ = htonl (t);
-}
-
-// = Set/get the requeue position
-ACE_INLINE ACE_UINT32
-ACE_Token_Request::requeue_position (void) const
-{
- return ntohl (this->transfer_.requeue_position_);
-}
-
-ACE_INLINE void
-ACE_Token_Request::requeue_position (ACE_UINT32 rq)
-{
- this->transfer_.requeue_position_ = htonl (rq);
-}
-
-// = Set/get the requeue position
-ACE_INLINE ACE_UINT32
-ACE_Token_Request::notify (void) const
-{
- return ntohl (this->transfer_.notify_);
-}
-
-ACE_INLINE void
-ACE_Token_Request::notify (ACE_UINT32 rq)
-{
- this->transfer_.notify_ = htonl (rq);
-}
-
-// = Set/get the blocking semantics.
-ACE_INLINE ACE_Synch_Options &
-ACE_Token_Request::options (void) const
-{
- return (ACE_Synch_Options &) options_;
-}
-
-ACE_INLINE void
-ACE_Token_Request::options (const ACE_Synch_Options &opt)
-{
- // fight the friggin const from hell
- ACE_Synch_Options *options = (ACE_Synch_Options *) &opt;
-
- transfer_.use_timeout_ = options->operator[](ACE_Synch_Options::USE_TIMEOUT);
- if (transfer_.use_timeout_ == 1)
- {
- transfer_.usec_ = options->timeout ().usec ();
- transfer_.sec_ = options->timeout ().sec ();
- }
- else
- {
- transfer_.usec_ = 0;
- transfer_.sec_ = 0;
- }
-}
-
-// = Set/get the name of the token.
-ACE_INLINE ACE_TCHAR *
-ACE_Token_Request::token_name (void) const
-{
- return token_name_;
-}
-
-ACE_INLINE void
-ACE_Token_Request::token_name (const ACE_TCHAR *token_name,
- const ACE_TCHAR *client_id)
-{
- size_t token_name_length = ACE_OS::strlen (token_name) + 1; // Add 1 for '\0'.
- size_t client_id_length = ACE_OS::strlen (client_id) + 1; // Add 1 for '\0'.
-
- // Set up pointers and copy token_name and client_id into request.
- token_name_ = this->transfer_.data_;
- client_id_ = &this->token_name_[token_name_length + 1]; // Add 1 for ':';
- client_id_[-1] = ACE_LIB_TEXT (':'); // Insert the ':' before this->clientId_.
-
- (void) ACE_OS::memcpy (this->token_name_,
- token_name,
- token_name_length * sizeof (ACE_TCHAR));
- (void) ACE_OS::memcpy (this->client_id_,
- client_id,
- client_id_length * sizeof (ACE_TCHAR));
-
- // Fixed length header size
- size_t len = ACE_TOKEN_REQUEST_HEADER_SIZE;
-
- // ... then add in the amount of the variable-sized portion.
- len += token_name_length + client_id_length + 1;
-
- this->length (len);
-}
-
-// = Set/get the id of the client.
-ACE_INLINE ACE_TCHAR *
-ACE_Token_Request::client_id (void) const
-{
- return this->client_id_;
-}
-
-// ************************************************************
-// ************************************************************
-// ************************************************************
-
-// = Set/get the length of the encoded/decoded message.
-ACE_INLINE ACE_UINT32
-ACE_Token_Reply::length (void) const
-{
- return ntohl (this->transfer_.length_);
-}
-
-ACE_INLINE void
-ACE_Token_Reply::length (ACE_UINT32 l)
-{
- this->transfer_.length_ = htonl (l);
-}
-
-// = Set/get the errno of a failed reply.
-ACE_INLINE ACE_UINT32
-ACE_Token_Reply::errnum (void) const
-{
- return ntohl (this->transfer_.errno_);
-}
-
-ACE_INLINE void
-ACE_Token_Reply::errnum (ACE_UINT32 e)
-{
- this->transfer_.errno_ = htonl (e);
-}
-
-// = Set/get the length of the encoded/decoded message.
-ACE_INLINE ACE_UINT32
-ACE_Token_Reply::arg (void) const
-{
- return ntohl (this->transfer_.arg_);
-}
-
-ACE_INLINE void
-ACE_Token_Reply::arg (ACE_UINT32 arg)
-{
- this->transfer_.arg_ = htonl (arg);
-}
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
diff --git a/ace/Trace.cpp b/ace/Trace.cpp
deleted file mode 100644
index 5a0688ee4bd..00000000000
--- a/ace/Trace.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-// $Id$
-
-
-#include "ace/Trace.h"
-
-ACE_RCSID (ace,
- Trace,
- "$Id$")
-
-// Turn off tracing for the duration of this file.
-#if defined (ACE_NTRACE)
-#undef ACE_NTRACE
-#endif /* ACE_NTRACE */
-#define ACE_NTRACE 1
-
-#include "ace/Log_Msg.h"
-#include "ace/OS.h"
-
-// = Static initialization.
-
-// Keeps track of how far to indent per trace call.
-int ACE_Trace::nesting_indent_ = ACE_Trace::DEFAULT_INDENT;
-
-// Is tracing enabled?
-int ACE_Trace::enable_tracing_ = ACE_Trace::DEFAULT_TRACING;
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Trace)
-
-void
-ACE_Trace::dump (void) const
-{
-}
-
-// Determine whether or not tracing is enabled
-
-int
-ACE_Trace::is_tracing (void)
-{
- return ACE_Trace::enable_tracing_;
-}
-
-// Enable the tracing facility.
-
-void
-ACE_Trace::start_tracing (void)
-{
- ACE_Trace::enable_tracing_ = 1;
-}
-
-// Disable the tracing facility.
-
-void
-ACE_Trace::stop_tracing (void)
-{
- ACE_Trace::enable_tracing_ = 0;
-}
-
-// Change the nesting indentation level.
-
-void
-ACE_Trace::set_nesting_indent (int indent)
-{
- ACE_Trace::nesting_indent_ = indent;
-}
-
-// Get the nesting indentation level.
-
-int
-ACE_Trace::get_nesting_indent (void)
-{
- return ACE_Trace::nesting_indent_;
-}
-
-// Perform the first part of the trace, which prints out the string N,
-// the LINE, and the ACE_FILE as the function is entered.
-
-ACE_Trace::ACE_Trace (const ACE_TCHAR *n,
- int line,
- const ACE_TCHAR *file)
-{
-#if defined (ACE_NLOGGING)
- ACE_UNUSED_ARG (line);
- ACE_UNUSED_ARG (file);
-#endif /* ACE_NLOGGING */
-
- this->name_ = n;
-
- // If ACE has not yet been initialized, don't try to trace... there's
- // too much stuff not yet initialized.
- if (ACE_Trace::enable_tracing_ && !ACE_OS_Object_Manager::starting_up ())
- {
- ACE_Log_Msg *lm = ACE_LOG_MSG;
- if (lm->tracing_enabled ()
- && lm->trace_active () == 0)
- {
- lm->trace_active (1);
- ACE_DEBUG ((LM_TRACE,
- ACE_LIB_TEXT ("%*s(%t) calling %s in file `%s' on line %d\n"),
- ACE_Trace::nesting_indent_ * lm->inc (),
- ACE_LIB_TEXT (""),
- this->name_,
- file,
- line));
- lm->trace_active (0);
- }
- }
-}
-
-// Perform the second part of the trace, which prints out the NAME as
-// the function is exited.
-
-ACE_Trace::~ACE_Trace (void)
-{
- // If ACE has not yet been initialized, don't try to trace... there's
- // too much stuff not yet initialized.
- if (ACE_Trace::enable_tracing_ && !ACE_OS_Object_Manager::starting_up ())
- {
- ACE_Log_Msg *lm = ACE_LOG_MSG;
- if (lm->tracing_enabled ()
- && lm->trace_active () == 0)
- {
- lm->trace_active (1);
- ACE_DEBUG ((LM_TRACE,
- ACE_LIB_TEXT ("%*s(%t) leaving %s\n"),
- ACE_Trace::nesting_indent_ * lm->dec (),
- ACE_LIB_TEXT (""),
- this->name_));
- lm->trace_active (0);
- }
- }
-}
diff --git a/ace/Trace.h b/ace/Trace.h
deleted file mode 100644
index b6b5429cc8a..00000000000
--- a/ace/Trace.h
+++ /dev/null
@@ -1,94 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Trace.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_TRACE_H
-#define ACE_TRACE_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Global_Macros.h"
-
-/**
- * @class ACE_Trace
- *
- * @brief A C++ trace facility that keeps track of which methods are
- * entered and exited.
- *
- * This class uses C++ constructors and destructors to automate
- * the ACE_Trace nesting. In addition, thread-specific storage
- * is used to enable multiple threads to work correctly.
- */
-class ACE_Export ACE_Trace
-{
-public:
- // = Initialization and termination methods.
-
- /// Perform the first part of the trace, which prints out the string
- /// N, the LINE, and the ACE_FILE as the function is entered.
- ACE_Trace (const ACE_TCHAR *n,
- int line = 0,
- const ACE_TCHAR *file = ACE_LIB_TEXT (""));
-
- /// Perform the second part of the trace, which prints out the NAME
- /// as the function is exited.
- ~ACE_Trace (void);
-
- // = Control the tracing level.
- /// Determine if tracing is enabled (return == 1) or not (== 0)
- static int is_tracing(void);
-
- /// Enable the tracing facility.
- static void start_tracing (void);
-
- /// Disable the tracing facility.
- static void stop_tracing (void);
-
- /// Change the nesting indentation level.
- static void set_nesting_indent (int indent);
-
- /// Get the nesting indentation level.
- static int get_nesting_indent (void);
-
- /// Dump the state of an object.
- void dump (void) const;
-
-private:
- // Keeps track of how deeply the call stack is nested (this is
- // maintained in thread-specific storage to ensure correctness in
- // multiple threads of control.
-
- /// Name of the method we are in.
- const ACE_TCHAR *name_;
-
- /// Keeps track of how far to indent per trace call.
- static int nesting_indent_;
-
- /// Is tracing enabled?
- static int enable_tracing_;
-
- /// Default values.
- enum
- {
- DEFAULT_INDENT = 3,
- DEFAULT_TRACING = 1
- };
-};
-
-#include "ace/post.h"
-
-#endif /* ACE_TRACE_H */
diff --git a/ace/Typed_SV_Message.cpp b/ace/Typed_SV_Message.cpp
deleted file mode 100644
index 6b4ae9024b0..00000000000
--- a/ace/Typed_SV_Message.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// Typed_SV_Message.cpp
-// $Id$
-
-#ifndef ACE_TYPED_SV_MESSAGE_C
-#define ACE_TYPED_SV_MESSAGE_C
-#include "ace/Typed_SV_Message.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Typed_SV_Message.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Typed_SV_Message, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Typed_SV_Message)
-
-template <class T> void
-ACE_Typed_SV_Message<T>::dump (void) const
-{
- ACE_TRACE ("ACE_Typed_SV_Message<T>::dump");
-}
-
-#endif /* ACE_TYPED_SV_MESSAGE_C */
diff --git a/ace/Typed_SV_Message.h b/ace/Typed_SV_Message.h
deleted file mode 100644
index e3973d78590..00000000000
--- a/ace/Typed_SV_Message.h
+++ /dev/null
@@ -1,105 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Typed_SV_Message.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//==========================================================================
-
-
-#ifndef ACE_TYPED_SV_MESSAGE_H
-#define ACE_TYPED_SV_MESSAGE_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS.h"
-
-/**
- * @class ACE_Typed_SV_Message
- *
- * @brief Defines the header file for the C++ wrapper for System V
- * message queues.
- */
-template <class T>
-class ACE_Typed_SV_Message
-{
-public:
- // = Initialization and termination methods.
- ACE_Typed_SV_Message (long type = 0,
- int length = sizeof (T),
- int max_size = sizeof (T));
- ACE_Typed_SV_Message (const T &data,
- long type = 0,
- int length = sizeof (T),
- int max_size = sizeof (T));
- ~ACE_Typed_SV_Message (void);
-
- /// Get the type of the message.
- long type (void) const;
-
- /// Set the type of the message.
- void type (long type);
-
- /// Get the length of the message.
- int length (void) const;
-
- /// Set the length of the message.
- void length (int l);
-
- /// Get the maximum size of the message.
- int max_size (void) const;
-
- /// Set the maximum size of the message.
- void max_size (int m);
-
- /// Get a pointer to the data in the message.
- T &data (void);
-
- /// Set a pointer to the data in the message.
- void data (const T &data);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Type of message.
- long type_;
-
- /// Length of this message.
- int length_;
-
- /// Maximum length of any message.
- int max_;
-
- /// Data stored in a message.
- T data_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Typed_SV_Message.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Typed_SV_Message.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Typed_SV_Message.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_TYPED_SV_MESSAGE_H */
diff --git a/ace/Typed_SV_Message.i b/ace/Typed_SV_Message.i
deleted file mode 100644
index 4d74a14f5dd..00000000000
--- a/ace/Typed_SV_Message.i
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Typed_SV_Message.i
-
-template <class T> ACE_INLINE
-ACE_Typed_SV_Message<T>::ACE_Typed_SV_Message (long t,
- int l,
- int m)
- : type_ (t)
-{
- ACE_TRACE ("ACE_Typed_SV_Message<T>::ACE_Typed_SV_Message");
- this->length (l);
- this->max_size (m);
-}
-
-template <class T> ACE_INLINE
-ACE_Typed_SV_Message<T>::ACE_Typed_SV_Message (const T &d,
- long t,
- int l,
- int m)
- : type_ (t),
- data_ (d)
-{
- ACE_TRACE ("ACE_Typed_SV_Message<T>::ACE_Typed_SV_Message");
- this->length (l);
- this->max_size (m);
-}
-
-template <class T> ACE_INLINE
-ACE_Typed_SV_Message<T>::~ACE_Typed_SV_Message (void)
-{
- ACE_TRACE ("ACE_Typed_SV_Message<T>::~ACE_Typed_SV_Message");
-}
-
-template <class T> ACE_INLINE long
-ACE_Typed_SV_Message<T>::type (void) const
-{
- ACE_TRACE ("ACE_Typed_SV_Message<T>::type");
- return this->type_;
-}
-
-template <class T> ACE_INLINE void
-ACE_Typed_SV_Message<T>::type (long t)
-{
- ACE_TRACE ("ACE_Typed_SV_Message<T>::type");
- this->type_ = t;
-}
-
-template <class T> ACE_INLINE int
-ACE_Typed_SV_Message<T>::length (void) const
-{
- ACE_TRACE ("ACE_Typed_SV_Message<T>::length");
- return this->length_;
-}
-
-template <class T> ACE_INLINE void
-ACE_Typed_SV_Message<T>::length (int len)
-{
- ACE_TRACE ("ACE_Typed_SV_Message<T>::length");
- this->length_ = len + (sizeof *this - (sizeof this->type_ + sizeof this->data_));
-}
-
-template <class T> ACE_INLINE int
-ACE_Typed_SV_Message<T>::max_size (void) const
-{
- ACE_TRACE ("ACE_Typed_SV_Message<T>::max_size");
- return this->max_;
-}
-
-template <class T> ACE_INLINE void
-ACE_Typed_SV_Message<T>::max_size (int m)
-{
- ACE_TRACE ("ACE_Typed_SV_Message<T>::max_size");
- this->max_ = m + (sizeof *this - (sizeof this->type_ + sizeof this->data_));
-}
-
-template <class T> T &
-ACE_Typed_SV_Message<T>::data (void)
-{
- ACE_TRACE ("ACE_Typed_SV_Message<T>::data");
- return this->data_;
-}
-
-template <class T> void
-ACE_Typed_SV_Message<T>::data (const T &d)
-{
- ACE_TRACE ("ACE_Typed_SV_Message<T>::data");
- this->data_ = d;
-}
-
diff --git a/ace/Typed_SV_Message_Queue.cpp b/ace/Typed_SV_Message_Queue.cpp
deleted file mode 100644
index 1a0a3b99943..00000000000
--- a/ace/Typed_SV_Message_Queue.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-// Typed_SV_Message_Queue.cpp
-// $Id$
-
-#ifndef ACE_TYPED_SV_MESSAGE_QUEUE_C
-#define ACE_TYPED_SV_MESSAGE_QUEUE_C
-
-#include "ace/Typed_SV_Message.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Typed_SV_Message_Queue.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Typed_SV_Message_Queue.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Typed_SV_Message_Queue, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Typed_SV_Message_Queue)
-
-template <class T> void
-ACE_Typed_SV_Message_Queue<T>::dump (void) const
-{
- ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::dump");
-}
-
-template <class T>
-ACE_Typed_SV_Message_Queue<T>::ACE_Typed_SV_Message_Queue (void)
-{
- ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::ACE_Typed_SV_Message_Queue");
-}
-
-template <class T>
-ACE_Typed_SV_Message_Queue<T>::ACE_Typed_SV_Message_Queue (key_t external_id,
- int create,
- int perms)
-{
- ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::ACE_Typed_SV_Message_Queue");
- if (this->open (external_id, create, perms) == -1)
- ACE_ERROR ((LM_ERROR,
- "ACE_Typed_SV_Message_Queue::ACE_Typed_SV_Message_Queue"));
-}
-
-template <class T>
-ACE_Typed_SV_Message_Queue<T>::~ACE_Typed_SV_Message_Queue (void)
-{
- ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::~ACE_Typed_SV_Message_Queue");
-}
-
-#endif /* ACE_TYPED_SV_MESSAGE_QUEUE_C */
diff --git a/ace/Typed_SV_Message_Queue.h b/ace/Typed_SV_Message_Queue.h
deleted file mode 100644
index 9b12b694bc5..00000000000
--- a/ace/Typed_SV_Message_Queue.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Typed_SV_Message_Queue.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_TYPED_MESSAGE_QUEUE_H
-#define ACE_TYPED_MESSAGE_QUEUE_H
-#include "ace/pre.h"
-
-#include "ace/SV_Message_Queue.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Typed_SV_Message.h"
-
-/**
- * @class ACE_Typed_SV_Message_Queue
- *
- * @brief Defines the header file for the C++ wrapper facade for typed message queues.
- */
-template <class T>
-class ACE_Typed_SV_Message_Queue
-{
-public:
- enum
- {
- ACE_CREATE = IPC_CREAT,
- ACE_OPEN = 0,
- ACE_NOWAIT = IPC_NOWAIT
- };
-
- // = Initialization and termination operations.
- ACE_Typed_SV_Message_Queue (void);
- ACE_Typed_SV_Message_Queue (key_t external_id,
- int create = ACE_OPEN,
- int perms = ACE_DEFAULT_FILE_PERMS);
- int open (key_t external_id,
- int create = ACE_OPEN,
- int perms = ACE_DEFAULT_FILE_PERMS);
- int close (void);
- int remove (void);
- ~ACE_Typed_SV_Message_Queue (void);
-
- /// Send method.
- int send (const ACE_Typed_SV_Message<T> &mb, int mflags = 0);
-
- /// Recv method.
- int recv (ACE_Typed_SV_Message<T> &mb, int mflags = 0);
-
- /// Return the id of the underlying ACE_SV_Message_Queue.
- int get_id (void) const;
-
- /// Control the underlying message queue.
- int control (int option, void *arg = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- ACE_SV_Message_Queue message_queue_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Typed_SV_Message_Queue.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Typed_SV_Message_Queue.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Typed_SV_Message_Queue.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_TYPED_MESSAGE_QUEUE_H */
diff --git a/ace/Typed_SV_Message_Queue.i b/ace/Typed_SV_Message_Queue.i
deleted file mode 100644
index afbea9c455d..00000000000
--- a/ace/Typed_SV_Message_Queue.i
+++ /dev/null
@@ -1,77 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Typed_SV_Message_Queue.i
-
-#include "ace/SV_Message_Queue.h"
-
-template <class T> ACE_INLINE int
-ACE_Typed_SV_Message_Queue<T>::open (key_t external_id,
- int create,
- int perms)
-{
- ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::open");
- return this->message_queue_.open (external_id, create, perms);
-}
-
-// What does it mean to close a message queue?!
-
-template <class T> ACE_INLINE int
-ACE_Typed_SV_Message_Queue<T>::close (void)
-{
- ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::close");
- return 1;
-}
-
-template <class T> ACE_INLINE int
-ACE_Typed_SV_Message_Queue<T>::recv (ACE_Typed_SV_Message<T> &mb,
- int mflags)
-{
- ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::recv");
-
- int length = this->message_queue_.recv (ACE_reinterpret_cast (ACE_SV_Message &,
- mb),
- mb.max_size (),
- mb.type (),
- mflags);
- if (length != -1)
- mb.length (length);
-
- return length;
-}
-
-template <class T> ACE_INLINE int
-ACE_Typed_SV_Message_Queue<T>::send (const ACE_Typed_SV_Message<T> &mb,
- int mflags)
-{
- ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::send");
- return this->message_queue_.
- send (ACE_reinterpret_cast (ACE_SV_Message &,
- ACE_const_cast (ACE_Typed_SV_Message<T> &,
- mb)),
- mb.length (),
- mflags);
-}
-
-template <class T> ACE_INLINE int
-ACE_Typed_SV_Message_Queue<T>::remove (void)
-{
- ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::remove");
-
- return this->message_queue_.remove ();
-}
-
-template <class T> ACE_INLINE int
-ACE_Typed_SV_Message_Queue<T>::control (int option,
- void *arg)
-{
- ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::control");
-
- return this->message_queue_.control (option, arg);
-}
-
-template <class T> ACE_INLINE int
-ACE_Typed_SV_Message_Queue<T>::get_id (void) const
-{
- return this->message_queue_.get_id ();
-}
diff --git a/ace/UNIX_Addr.cpp b/ace/UNIX_Addr.cpp
deleted file mode 100644
index 13bb91e1db1..00000000000
--- a/ace/UNIX_Addr.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// UNIX_Addr.cpp
-// $Id$
-
-#include "ace/UNIX_Addr.h"
-
-ACE_RCSID(ace, UNIX_Addr, "$Id$")
-
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/UNIX_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_UNIX_Addr)
-
-// Set a pointer to the address.
-void
-ACE_UNIX_Addr::set_addr (void *addr, int len)
-{
- ACE_TRACE ("ACE_UNIX_Addr::set_addr");
-
- this->ACE_Addr::base_set (AF_UNIX, len);
- ACE_OS::memcpy ((void *) &this->unix_addr_,
- (void *) addr,
- len);
-}
-
-void
-ACE_UNIX_Addr::dump (void) const
-{
-}
-
-// Do nothing constructor.
-
-ACE_UNIX_Addr::ACE_UNIX_Addr (void)
- : ACE_Addr (AF_UNIX, sizeof this->unix_addr_)
-{
- (void) ACE_OS::memset ((void *) &this->unix_addr_,
- 0,
- sizeof this->unix_addr_);
-
- this->unix_addr_.sun_family = AF_UNIX;
-}
-
-int
-ACE_UNIX_Addr::set (const ACE_UNIX_Addr &sa)
-{
- if (sa.get_type () == AF_ANY)
- (void) ACE_OS::memset ((void *) &this->unix_addr_,
- 0,
- sizeof this->unix_addr_);
- else
- ACE_OS::strcpy (this->unix_addr_.sun_path,
- sa.unix_addr_.sun_path);
-
- this->unix_addr_.sun_family = AF_UNIX;
- this->base_set (sa.get_type (), sa.get_size ());
-
- return 0;
-}
-
-// Copy constructor.
-
-ACE_UNIX_Addr::ACE_UNIX_Addr (const ACE_UNIX_Addr &sa)
- : ACE_Addr (AF_UNIX, sa.get_size ())
-{
- this->set (sa);
-}
-
-int
-ACE_UNIX_Addr::set (const sockaddr_un *un, int len)
-{
- (void) ACE_OS::memset ((void *) &this->unix_addr_, 0,
- sizeof this->unix_addr_);
- this->unix_addr_.sun_family = AF_UNIX;
- ACE_OS::strcpy (this->unix_addr_.sun_path, un->sun_path);
- this->base_set (AF_UNIX, len);
- return 0;
-}
-
-ACE_UNIX_Addr::ACE_UNIX_Addr (const sockaddr_un *un, int len)
-{
- this->set (un, len);
-}
-
-int
-ACE_UNIX_Addr::set (const char rendezvous_point[])
-{
- (void) ACE_OS::memset ((void *) &this->unix_addr_,
- 0,
- sizeof this->unix_addr_);
- this->unix_addr_.sun_family = AF_UNIX;
- size_t len = ACE_OS::strlen (rendezvous_point);
- size_t maxlen = sizeof this->unix_addr_.sun_path;
-
- (void) ACE_OS::memcpy (this->unix_addr_.sun_path,
- rendezvous_point,
- len >= maxlen ? maxlen - 1 : len);
-
- this->ACE_Addr::base_set (AF_UNIX,
- sizeof this->unix_addr_ -
- sizeof (this->unix_addr_.sun_path) +
- ACE_OS::strlen (this->unix_addr_.sun_path));
- return 0;
-}
-
-// Create a ACE_Addr from a UNIX pathname.
-
-ACE_UNIX_Addr::ACE_UNIX_Addr (const char rendezvous_point[])
-{
- this->set (rendezvous_point);
-}
-
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
diff --git a/ace/UNIX_Addr.h b/ace/UNIX_Addr.h
deleted file mode 100644
index 807a84d99f4..00000000000
--- a/ace/UNIX_Addr.h
+++ /dev/null
@@ -1,101 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file UNIX_Addr.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_UNIX_ADDR_H
-#define ACE_UNIX_ADDR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-#include "ace/Addr.h"
-#include "ace/Log_Msg.h"
-#include "ace/ACE.h"
-
-/**
- * @class ACE_UNIX_Addr
- *
- * @brief Defines the ``UNIX domain address family'' address format.
- */
-class ACE_Export ACE_UNIX_Addr : public ACE_Addr
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_UNIX_Addr (void);
-
- /// Copy constructor.
- ACE_UNIX_Addr (const ACE_UNIX_Addr &sa);
-
- /// Creates an ACE_UNIX_Addr from a string.
- ACE_UNIX_Addr (const char rendezvous_point[]);
-
- /// Creates an ACE_INET_Addr from a sockaddr_un structure.
- ACE_UNIX_Addr (const sockaddr_un *, int len);
-
- /// Creates an ACE_UNIX_Addr from another ACE_UNIX_Addr.
- int set (const ACE_UNIX_Addr &sa);
-
- /// Creates an ACE_UNIX_Addr from a string.
- int set (const char rendezvous_point[]);
-
- /// Creates an ACE_UNIX_Addr from a sockaddr_un structure.
- int set (const sockaddr_un *, int len);
-
- /// Return a pointer to the underlying network address.
- virtual void *get_addr (void) const;
-
- /// Set a pointer to the underlying network address.
- virtual void set_addr (void *addr, int len);
-
- /// Transform the current address into string format.
- virtual int addr_to_string (char addr[], size_t) const;
-
- /// Transform the string into the current addressing format.
- virtual int string_to_addr (const char addr[]);
-
- /// Compare two addresses for equality.
- int operator == (const ACE_UNIX_Addr &SAP) const;
-
- /// Compare two addresses for inequality.
- int operator != (const ACE_UNIX_Addr &SAP) const;
-
- /// Return the path name of the underlying rendezvous point.
- const char *get_path_name (void) const;
-
- /// Computes and returns hash value.
- virtual u_long hash (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Underlying socket address.
- sockaddr_un unix_addr_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/UNIX_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
-#include "ace/post.h"
-#endif /* ACE_UNIX_ADDR_H */
diff --git a/ace/UNIX_Addr.i b/ace/UNIX_Addr.i
deleted file mode 100644
index 2ef10e67556..00000000000
--- a/ace/UNIX_Addr.i
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// UNIX_Addr.i
-
-#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-
-// Return a pointer to the underlying address.
-
-ACE_INLINE void *
-ACE_UNIX_Addr::get_addr (void) const
-{
- return (void *) &this->unix_addr_;
-}
-
-// Transform the string into the current addressing format.
-
-ACE_INLINE int
-ACE_UNIX_Addr::string_to_addr (const char addr[])
-{
- ACE_OS::strsncpy (this->unix_addr_.sun_path, addr,
- sizeof this->unix_addr_.sun_path);
- return 0;
-}
-
-// Transform the current address into string format.
-
-ACE_INLINE int
-ACE_UNIX_Addr::addr_to_string (char s[], size_t len) const
-{
- ACE_OS::strsncpy (s, this->unix_addr_.sun_path, len);
- return 0;
-}
-
-// Compare two addresses for equality.
-
-ACE_INLINE int
-ACE_UNIX_Addr::operator == (const ACE_UNIX_Addr &sap) const
-{
- return ACE_OS::strncmp (this->unix_addr_.sun_path,
- sap.unix_addr_.sun_path,
- sizeof this->unix_addr_.sun_path) == 0;
-}
-
-// Compare two addresses for inequality.
-
-ACE_INLINE int
-ACE_UNIX_Addr::operator != (const ACE_UNIX_Addr &sap) const
-{
- return !((*this) == sap); // This is lazy, of course... ;-)
-}
-
-// Return the path name used for the rendezvous point.
-
-ACE_INLINE const char *
-ACE_UNIX_Addr::get_path_name (void) const
-{
- return this->unix_addr_.sun_path;
-}
-
-ACE_INLINE u_long
-ACE_UNIX_Addr::hash (void) const
-{
- return ACE::hash_pjw (this->unix_addr_.sun_path);
-}
-
-#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
diff --git a/ace/UPIPE_Acceptor.cpp b/ace/UPIPE_Acceptor.cpp
deleted file mode 100644
index 379155616f3..00000000000
--- a/ace/UPIPE_Acceptor.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-// UPIPE_Acceptor.cpp
-// $Id$
-
-#include "ace/UPIPE_Acceptor.h"
-
-ACE_RCSID(ace, UPIPE_Acceptor, "$Id$")
-
-#if defined (ACE_HAS_THREADS)
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/UPIPE_Acceptor.i"
-#endif
-
-ACE_ALLOC_HOOK_DEFINE(ACE_UPIPE_Acceptor)
-
-void
-ACE_UPIPE_Acceptor::dump (void) const
-{
- ACE_TRACE ("ACE_UPIPE_Acceptor::dump");
-}
-
-/* Do nothing routine for constructor. */
-
-ACE_UPIPE_Acceptor::ACE_UPIPE_Acceptor (void)
- : mb_ (sizeof (ACE_UPIPE_Stream *))
-{
- ACE_TRACE ("ACE_UPIPE_Acceptor::ACE_UPIPE_Acceptor");
-}
-
-ACE_UPIPE_Acceptor::~ACE_UPIPE_Acceptor (void)
-{
- ACE_TRACE ("ACE_UPIPE_Acceptor::~ACE_UPIPE_Acceptor");
-}
-
-// General purpose routine for performing server ACE_UPIPE.
-
-int
-ACE_UPIPE_Acceptor::open (const ACE_UPIPE_Addr &local_addr,
- int reuse_addr)
-{
- ACE_TRACE ("ACE_UPIPE_Acceptor::open");
- return this->ACE_SPIPE_Acceptor::open (local_addr, reuse_addr);
-}
-
-int
-ACE_UPIPE_Acceptor::close (void)
-{
- ACE_TRACE ("ACE_UPIPE_Acceptor::close");
- return this->ACE_SPIPE_Acceptor::close ();
-}
-
-// General purpose routine for accepting new connections.
-
-ACE_UPIPE_Acceptor::ACE_UPIPE_Acceptor (const ACE_UPIPE_Addr &local_addr,
- int reuse_addr)
- : mb_ (sizeof (ACE_UPIPE_Stream *))
-{
- ACE_TRACE ("ACE_UPIPE_Acceptor::ACE_UPIPE_Acceptor");
-
- if (this->open (local_addr, reuse_addr) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_UPIPE_Acceptor")));
-}
-
-int
-ACE_UPIPE_Acceptor::accept (ACE_UPIPE_Stream &new_stream,
- ACE_UPIPE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle)
-{
- ACE_TRACE ("ACE_UPIPE_Acceptor::accept");
- ACE_UNUSED_ARG (reset_new_handle);
-
- ACE_SPIPE_Stream new_io;
-
- if (this->ACE_SPIPE_Acceptor::accept (new_io, remote_addr,
- timeout, restart) == -1)
- return -1;
- else
- {
- ACE_UPIPE_Stream *remote_stream = 0;
-
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, new_stream.lock_, -1));
-
- new_stream.set_handle (new_io.get_handle ());
- new_stream.reference_count_++;
-
- // Transfer address ownership.
- new_io.get_local_addr (new_stream.local_addr_);
- new_io.get_remote_addr (new_stream.remote_addr_);
-
- // Now that we got the handle, we'll read the address of the
- // connector-side ACE_UPIPE_Stream out of the pipe and link that
- // ACE_UPIPE_Stream to our ACE_UPIPE_Stream.
-
- if (ACE_OS::read (new_stream.get_handle (),
- (char *) &remote_stream,
- sizeof remote_stream) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_UPIPE_Acceptor: %p\n"),
- ACE_LIB_TEXT ("read stream address failed")));
- else if (new_stream.stream_.link (remote_stream->stream_) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_UPIPE_Acceptor: %p\n"),
- ACE_LIB_TEXT ("link streams failed")));
- // Send a message over the new streampipe to confirm acceptance.
- else if (new_stream.send (&mb_, 0) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_UPIPE_Acceptor: %p\n"),
- ACE_LIB_TEXT ("linked stream.put failed")));
-
- // Close down the new_stream at this point in order to conserve
- // handles. Note that we don't need the SPIPE connection
- // anymore since we're now linked via the <Message_Queue>.
- new_stream.ACE_SPIPE::close ();
- return 0;
- }
-}
-
-#endif /* ACE_HAS_THREADS */
diff --git a/ace/UPIPE_Acceptor.h b/ace/UPIPE_Acceptor.h
deleted file mode 100644
index bb24251e8b2..00000000000
--- a/ace/UPIPE_Acceptor.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file UPIPE_Acceptor.h
- *
- * $Id$
- *
- * @author Gerhard Lenzer
- * @author Douglas C. Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_UPIPE_ACCEPTOR_H
-#define ACE_UPIPE_ACCEPTOR_H
-#include "ace/pre.h"
-
-#include "ace/UPIPE_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/SPIPE_Acceptor.h"
-#include "ace/Thread_Manager.h"
-
-#if defined (ACE_HAS_THREADS)
-
-/**
- * @class ACE_UPIPE_Acceptor
- *
- * @brief Defines the format and interface for the listener side of the
- * ACE_UPIPE_Stream.
- */
-class ACE_Export ACE_UPIPE_Acceptor : public ACE_SPIPE_Acceptor
-{
-public:
- // = Initialization and termination.
- /// Default constructor.
- ACE_UPIPE_Acceptor (void);
-
- /// Initialize passive endpoint.
- ACE_UPIPE_Acceptor (const ACE_UPIPE_Addr &local_sap,
- int reuse_addr = 0);
-
- /// Initialize passive endpoint.
- int open (const ACE_UPIPE_Addr &local_sap,
- int reuse_addr = 0);
-
- /// Close down and release resources.
- ~ACE_UPIPE_Acceptor (void);
-
- /// Close down and release resources.
- int close (void);
-
- /// Close down and release resources and remove the underlying SPIPE
- /// rendezvous point.
- int remove (void);
-
- // = Passive connection acceptance method.
- /**
- * Accept a new data transfer connection. A @a timeout of 0 means
- * block forever, a @a timeout of {0, 0} means poll. @a restart == 1
- * means "restart if interrupted."
- */
- int accept (ACE_UPIPE_Stream &server_stream,
- ACE_UPIPE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Manage threads.
- ACE_Thread_Manager tm;
-
- /// To confirm connection establishment.
- ACE_Message_Block mb_;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/UPIPE_Acceptor.i"
-#endif
-
-#endif /* ACE_HAS_THREADS */
-#include "ace/post.h"
-#endif /* ACE_UPIPE_ACCEPTOR_H */
diff --git a/ace/UPIPE_Acceptor.i b/ace/UPIPE_Acceptor.i
deleted file mode 100644
index d47cf593242..00000000000
--- a/ace/UPIPE_Acceptor.i
+++ /dev/null
@@ -1,11 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// UPIPE_Acceptor.i
-
-ASYS_INLINE int
-ACE_UPIPE_Acceptor::remove (void)
-{
- ACE_TRACE ("ACE_UPIPE_Acceptor::remove");
- return this->ACE_SPIPE_Acceptor::remove ();
-}
diff --git a/ace/UPIPE_Addr.h b/ace/UPIPE_Addr.h
deleted file mode 100644
index acdec342fe1..00000000000
--- a/ace/UPIPE_Addr.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- C++ -*- */
-
-
-//=============================================================================
-/**
- * @file UPIPE_Addr.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_UPIPE_ADDR_H
-#define ACE_UPIPE_ADDR_H
-#include "ace/pre.h"
-
-#include "ace/SPIPE_Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-typedef ACE_SPIPE_Addr ACE_UPIPE_Addr;
-
-#include "ace/post.h"
-#endif /* ACE_UPIPE_ADDR_H */
diff --git a/ace/UPIPE_Connector.cpp b/ace/UPIPE_Connector.cpp
deleted file mode 100644
index d2edc143a50..00000000000
--- a/ace/UPIPE_Connector.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-// UPIPE_Connector.cpp
-// $Id$
-
-#include "ace/UPIPE_Connector.h"
-
-ACE_RCSID(ace, UPIPE_Connector, "$Id$")
-
-#if defined (ACE_HAS_THREADS)
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/UPIPE_Connector.i"
-#endif
-
-ACE_ALLOC_HOOK_DEFINE(ACE_UPIPE_Connector)
-
-void
-ACE_UPIPE_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_UPIPE_Connector::dump");
-}
-
-ACE_UPIPE_Connector::ACE_UPIPE_Connector (void)
-{
- ACE_TRACE ("ACE_UPIPE_Connector::ACE_UPIPE_Connector");
-}
-
-int
-ACE_UPIPE_Connector::connect (ACE_UPIPE_Stream &new_stream,
- const ACE_UPIPE_Addr &addr,
- ACE_Time_Value *timeout,
- const ACE_Addr & /* local_sap */,
- int /* reuse_addr */,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_UPIPE_Connector::connect");
- ACE_ASSERT (new_stream.get_handle () == ACE_INVALID_HANDLE);
-
- ACE_HANDLE handle = ACE_Handle_Ops::handle_timed_open (timeout,
- addr.get_path_name (),
- flags, perms);
-
- if (handle == ACE_INVALID_HANDLE)
- return -1;
-#if !defined (ACE_WIN32)
- else if (ACE_OS::isastream (handle) != 1)
- return -1;
-#endif
- else // We're connected!
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, new_stream.lock_, -1));
-
- ACE_UPIPE_Stream *ustream = &new_stream;
-
- new_stream.set_handle (handle);
- new_stream.remote_addr_ = addr; // class copy.
- new_stream.reference_count_++;
-
- // Now send the address of our ACE_UPIPE_Stream over this pipe
- // to our corresponding ACE_UPIPE_Acceptor, so he may link the
- // two streams.
- ssize_t result = ACE_OS::write (handle,
- (const char *) &ustream,
- sizeof ustream);
- if (result == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_UPIPE_Connector %p\n"),
- ACE_LIB_TEXT ("write to pipe failed")));
-
- // Wait for confirmation of stream linking.
- ACE_Message_Block *mb_p = 0;
-
- // Our part is done, wait for server to confirm connection.
- result = new_stream.recv (mb_p, 0);
-
- // Do *not* coalesce the following two checks for result == -1.
- // They perform different checks and cannot be merged.
- if (result == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_UPIPE_Connector %p\n"),
- ACE_LIB_TEXT ("no confirmation from server")));
- else
- // Close down the new_stream at this point in order to
- // conserve handles. Note that we don't need the SPIPE
- // connection anymore since we're linked via the Message_Queue
- // now.
- new_stream.ACE_SPIPE::close ();
- return result;
- }
-}
-#endif /* ACE_HAS_THREADS */
diff --git a/ace/UPIPE_Connector.h b/ace/UPIPE_Connector.h
deleted file mode 100644
index a12e111558b..00000000000
--- a/ace/UPIPE_Connector.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file UPIPE_Connector.h
- *
- * $Id$
- *
- * @author Gerhard Lenzer and Douglas C. Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_UPIPE_CONNECTOR_H
-#define ACE_UPIPE_CONNECTOR_H
-#include "ace/pre.h"
-
-#include "ace/UPIPE_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/SPIPE_Stream.h"
-
-#if defined (ACE_HAS_THREADS)
-
-/**
- * @class ACE_UPIPE_Connector
- *
- * @brief Defines an active connection factory for the
- * ACE_UPIPE_STREAM wrappers.
- */
-class ACE_Export ACE_UPIPE_Connector
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_UPIPE_Connector (void);
-
- /**
- * Actively connect and produce a @a new_stream if things go well.
- * The @a addr is the address that we are trying to connect
- * with. The @a timeout is the amount of time to wait to connect.
- * If it's 0 then we block indefinitely. If *timeout == {0, 0} then
- * the connection is done using non-blocking mode. In this case, if
- * the connection can't be made immediately the value of -1 is
- * returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then
- * this is the maximum amount of time to wait before timing out. If the
- * time expires before the connection is made <errno == ETIME>. The
- * @a local_sap is the value of local address to bind to. If it's
- * the default value of ACE_Addr::sap_any then the user is letting
- * the OS do the binding. If @a reuse_addr == 1 then the
- * @a local_addr is reused, even if it hasn't been cleanedup yet.
- * The @a flags and @a perms arguments are passed down to the open()
- * method.
- */
- ACE_UPIPE_Connector (ACE_UPIPE_Stream &new_stream,
- const ACE_UPIPE_Addr &addr,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = O_RDWR,
- int perms = 0);
-
- /**
- * Actively connect and produce a @a new_stream if things go well.
- * The @a addr is the address that we are trying to connect
- * with. The @a timeout is the amount of time to wait to connect.
- * If it's 0 then we block indefinitely. If *timeout == {0, 0} then
- * the connection is done using non-blocking mode. In this case, if
- * the connection can't be made immediately the value of -1 is
- * returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then
- * this is the maximum amount of time to wait before timing out. If the
- * time expires before the connection is made <errno == ETIME>. The
- * @a local_sap is the value of local address to bind to. If it's
- * the default value of ACE_Addr::sap_any then the user is letting
- * the OS do the binding. If @a reuse_addr == 1 then the
- * @a local_addr is reused, even if it hasn't been cleanedup yet.
- * The @a flags and @a perms arguments are passed down to the open()
- * method.
- */
- int connect (ACE_UPIPE_Stream &new_stream,
- const ACE_UPIPE_Addr &addr,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = O_RDWR,
- int perms = 0);
-
- /// Resets any event associations on this handle
- int reset_new_handle (ACE_HANDLE handle);
-
- // = Meta-type info
- typedef ACE_UPIPE_Addr PEER_ADDR;
- typedef ACE_UPIPE_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/UPIPE_Connector.i"
-#endif
-
-#endif /* ACE_HAS_THREADS */
-#include "ace/post.h"
-#endif /* ACE_UPIPE_CONNECTOR_H */
diff --git a/ace/UPIPE_Connector.i b/ace/UPIPE_Connector.i
deleted file mode 100644
index a8a68342e77..00000000000
--- a/ace/UPIPE_Connector.i
+++ /dev/null
@@ -1,33 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// UPIPE_Connector.i
-
-// Creates a Local ACE_UPIPE.
-
-ASYS_INLINE
-ACE_UPIPE_Connector::ACE_UPIPE_Connector (ACE_UPIPE_Stream &new_stream,
- const ACE_UPIPE_Addr &addr,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms)
-{
- ACE_TRACE ("ACE_UPIPE_Connector::ACE_UPIPE_Connector");
- if (this->connect (new_stream, addr, timeout, local_sap,
- reuse_addr, flags, perms) == -1
- && timeout != 0 && !(errno == EWOULDBLOCK || errno == ETIME))
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("address %s, %p\n"),
- addr.get_path_name (),
- ACE_LIB_TEXT ("ACE_UPIPE_Connector")));
-}
-
-ASYS_INLINE int
-ACE_UPIPE_Connector::reset_new_handle (ACE_HANDLE handle)
-{
- ACE_UNUSED_ARG (handle);
- // Nothing to do here since the handle is not a socket
- return 0;
-}
diff --git a/ace/UPIPE_Stream.cpp b/ace/UPIPE_Stream.cpp
deleted file mode 100644
index c66ccde36c9..00000000000
--- a/ace/UPIPE_Stream.cpp
+++ /dev/null
@@ -1,226 +0,0 @@
-// UPIPE_Stream.cpp
-// $Id$
-
-#include "ace/UPIPE_Stream.h"
-
-ACE_RCSID(ace, UPIPE_Stream, "$Id$")
-
-#if defined (ACE_HAS_THREADS)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/UPIPE_Stream.i"
-#endif /* __ACE_INLINE__ */
-
-
-ACE_ALLOC_HOOK_DEFINE(ACE_UPIPE_Stream)
-
-ACE_UPIPE_Stream::ACE_UPIPE_Stream (void)
- : mb_last_ (0),
- reference_count_ (0)
-{
- ACE_TRACE ("ACE_UPIPE_Stream::ACE_UPIPE_STREAM");
-}
-
-ACE_UPIPE_Stream::~ACE_UPIPE_Stream (void)
-{
- if (this->mb_last_ != 0)
- {
- this->mb_last_->release ();
- this->mb_last_ = 0;
- }
-}
-
-int
-ACE_UPIPE_Stream::control (int cmd,
- void * val) const
-{
- ACE_TRACE ("ACE_UPIPE_Stream::control");
-
- return ((ACE_UPIPE_Stream *) this)->stream_.control
- ((ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds) cmd, val);
-}
-
-void
-ACE_UPIPE_Stream::dump (void) const
-{
- ACE_TRACE ("ACE_UPIPE_Stream::dump");
-}
-
-int
-ACE_UPIPE_Stream::close (void)
-{
- ACE_TRACE ("ACE_UPIPE_Stream::close");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
-
- this->reference_count_--;
-
- if (this->reference_count_ == 0)
- {
- // Since the UPIPE should have been closed earlier we won't bother
- // checking to see if closing it now fails.
-
- if (this->ACE_SPIPE::get_handle () != ACE_INVALID_HANDLE)
- this->ACE_SPIPE::close ();
-
- // Close down the ACE_stream.
- return this->stream_.close ();
- }
- return 0;
-}
-
-int
-ACE_UPIPE_Stream::get_remote_addr (ACE_UPIPE_Addr &remote_sap) const
-{
- ACE_TRACE ("ACE_UPIPE_Stream::get_remote_addr");
- remote_sap = this->remote_addr_;
- return 0;
-}
-
-int
-ACE_UPIPE_Stream::send (ACE_Message_Block *mb_p,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_UPIPE_Stream::send_msg");
- return this->stream_.put (mb_p, timeout) == -1 ? -1 : 0;
-}
-
-int ACE_UPIPE_Stream::recv (ACE_Message_Block *& mb_p,
- ACE_Time_Value *timeout)
-{
- return this->stream_.get (mb_p, timeout) == -1 ? -1 : 0;
-}
-
-// Send a buffer.
-
-ssize_t
-ACE_UPIPE_Stream::send (const char *buffer,
- size_t n,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_UPIPE_Stream::send");
-
- ACE_Message_Block *mb_p;
- ACE_NEW_RETURN (mb_p,
- ACE_Message_Block (n),
- -1);
- mb_p->copy (buffer, n);
- return
- this->stream_.put (mb_p, timeout) == -1
- ? -1
- : ACE_static_cast (ssize_t, n);
-}
-
-// Receive a buffer.
-
-ssize_t
-ACE_UPIPE_Stream::recv (char *buffer,
- size_t n,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_UPIPE_Stream::recv");
- // Index in buffer.
- size_t bytes_read = 0;
-
- while (bytes_read < n)
- if (this->mb_last_ != 0)
- {
- // We have remaining data in our last read Message_Buffer.
- size_t this_len = this->mb_last_->length ();
- if (this_len < n)
- {
- // The remaining data is not enough.
-
- ACE_OS::memcpy ((void *) &buffer[bytes_read],
- this->mb_last_->rd_ptr (),
- this_len);
- bytes_read += this_len;
- this->mb_last_ = this->mb_last_->release (); // mb_last_ now 0
- return bytes_read;
- }
- else
- {
- // The remaining data is at least enough. If there's
- // more, we'll get it the next time through.
- ACE_OS::memcpy (&buffer[bytes_read],
- this->mb_last_->rd_ptr (),
- n);
- bytes_read += n;
-
- // Advance rd_ptr.
- this->mb_last_->rd_ptr (n);
-
- if (this->mb_last_->length () == 0)
- // Now the Message_Buffer is empty.
- this->mb_last_ = this->mb_last_->release ();
- }
- }
- else
- {
- // We have to get a new Message_Buffer from our stream.
- int result = this->stream_.get (this->mb_last_, timeout);
-
- if (result == -1)
- {
- if (errno == EWOULDBLOCK && bytes_read > 0)
- // Return the number of bytes read before we timed out.
- return bytes_read;
- else
- return -1;
- }
- }
-
- return bytes_read;
-}
-
-ssize_t
-ACE_UPIPE_Stream::send_n (const char *buf,
- size_t n,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_UPIPE_Stream::send_n");
-
- size_t bytes_written;
- ssize_t len = 0;
-
- for (bytes_written = 0;
- bytes_written < n;
- bytes_written += len)
- {
- len = this->send (buf + bytes_written,
- n - bytes_written,
- timeout);
-
- if (len == -1)
- return -1;
- }
-
- return bytes_written;
-}
-
-ssize_t
-ACE_UPIPE_Stream::recv_n (char *buf,
- size_t n,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_UPIPE_Stream::recv_n");
- size_t bytes_read;
- ssize_t len = 0;
-
- for (bytes_read = 0;
- bytes_read < n;
- bytes_read += len)
- {
- len = this->recv (buf + bytes_read,
- n - bytes_read,
- timeout);
- if (len == -1)
- return -1;
- else if (len == 0)
- break;
- }
-
- return bytes_read;
-}
-
-
-#endif /* ACE_HAS_THREADS */
diff --git a/ace/UPIPE_Stream.h b/ace/UPIPE_Stream.h
deleted file mode 100644
index 5c789c85e44..00000000000
--- a/ace/UPIPE_Stream.h
+++ /dev/null
@@ -1,137 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file UPIPE_Stream.h
- *
- * $Id$
- *
- * @author Gerhard Lenzer
- * @author Douglas C. Schmidt
- */
-//=============================================================================
-
-
-#ifndef ACE_UPIPE_STREAM_H
-#define ACE_UPIPE_STREAM_H
-#include "ace/pre.h"
-
-#include "ace/Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/SPIPE.h"
-#include "ace/Message_Queue.h"
-#include "ace/UPIPE_Addr.h"
-
-#if defined (ACE_HAS_THREADS)
-
-// Use a typedef to make life easier later on.
-typedef ACE_Stream<ACE_SYNCH> MT_Stream;
-
-/**
- * @class ACE_UPIPE_Stream
- *
- * @brief Defines the method that transfer data on a UPIPE.
- */
-class ACE_Export ACE_UPIPE_Stream : public ACE_SPIPE
-{
-public:
- friend class ACE_UPIPE_Acceptor;
- friend class ACE_UPIPE_Connector;
-
- // = Initialization and Termination.
-
- ACE_UPIPE_Stream (void);
-
- virtual ~ACE_UPIPE_Stream (void);
-
- /// Shut down the UPIPE and release resources.
- int close (void);
-
- /// Return the underlying I/O handle.
- ACE_HANDLE get_handle (void) const;
-
- // = Send/recv ACE Message_Blocks.
- /// Send a message through the message queue. Returns -1 on error,
- /// else 0.
- int send (ACE_Message_Block *mb_p,
- ACE_Time_Value *timeout = 0);
-
- /// Recv a message from the message queue. Returns -1 on error, else
- /// 0.
- int recv (ACE_Message_Block *&mb_p,
- ACE_Time_Value *timeout = 0);
-
- // = Send/recv char buffers.
- /// Send a buffer of <n> bytes through the message queue. Returns -1
- /// on error, else number of bytes sent.
- ssize_t send (const char *buffer,
- size_t n,
- ACE_Time_Value *timeout = 0);
-
- /// Recv a buffer of upto <n> bytes from the message queue. Returns
- /// -1 on error, else number of bytes read.
- ssize_t recv (char *buffer,
- size_t n,
- ACE_Time_Value *timeout = 0);
-
- /// Send a buffer of exactly <n> bytes to the message queue. Returns
- /// -1 on error, else number of bytes written (which should == n).
- ssize_t send_n (const char *buffer,
- size_t n,
- ACE_Time_Value *timeout = 0);
-
- /// Recv a buffer of exactly <n> bytes from the message queue.
- /// Returns -1 on error, else the number of bytes read.
- ssize_t recv_n (char *buffer,
- size_t n,
- ACE_Time_Value *timeout = 0);
-
- /// Perform control operations on the UPIPE_Stream.
- int control (int cmd, void *val) const;
-
- /// Return the remote address we are connected to.
- int get_remote_addr (ACE_UPIPE_Addr &remote_sap) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- // = Meta-type info
- typedef ACE_UPIPE_Addr PEER_ADDR;
-
-private:
- /// To hold the last ACE_Message_Block read out of the stream. Thus
- /// allowing subsequent reads from one ACE_Message_Block
- ACE_Message_Block *mb_last_;
-
- /// Address of who we are connected to.
- ACE_UPIPE_Addr remote_addr_;
-
- /// Stream component used by the <UPIPE_Acceptor> and
- /// <UPIPE_Connector> to link together two UPIPE_Streams.
- MT_Stream stream_;
-
- /// Keep track of whether the sender and receiver have both shut
- /// down.
- int reference_count_;
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- /// Ensure that we are thread-safe.
- ACE_Thread_Mutex lock_;
-#endif /* ACE_MT_SAFE */
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/UPIPE_Stream.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_THREADS */
-#include "ace/post.h"
-#endif /*ACE_UPIPE_STREAM_H */
diff --git a/ace/UPIPE_Stream.i b/ace/UPIPE_Stream.i
deleted file mode 100644
index c2297fcffce..00000000000
--- a/ace/UPIPE_Stream.i
+++ /dev/null
@@ -1,12 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// UPIPE_Stream.i
-
-ACE_INLINE ACE_HANDLE
-ACE_UPIPE_Stream::get_handle (void) const
-{
- ACE_TRACE ("ACE_UPIPE_Stream::get_handle");
- return this->ACE_SPIPE::get_handle ();
-}
-
diff --git a/ace/Unbounded_Queue.cpp b/ace/Unbounded_Queue.cpp
deleted file mode 100644
index c5aad55fd31..00000000000
--- a/ace/Unbounded_Queue.cpp
+++ /dev/null
@@ -1,426 +0,0 @@
-// $Id$
-
-#ifndef ACE_UNBOUNDED_QUEUE_C
-#define ACE_UNBOUNDED_QUEUE_C
-
-#include "ace/Unbounded_Queue.h"
-#include "ace/Malloc_Base.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Unbounded_Queue.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Unbounded_Queue, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Unbounded_Queue)
-
-template <class T>
-ACE_Unbounded_Queue<T>::ACE_Unbounded_Queue (ACE_Allocator *alloc)
- : head_ (0),
- cur_size_ (0),
- allocator_ (alloc)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::ACE_Unbounded_Queue (void)");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- ACE_NEW_MALLOC (this->head_,
- (ACE_Node<T> *) this->allocator_->malloc (sizeof (ACE_Node<T>)),
- ACE_Node<T>);
- // Make the list circular by pointing it back to itself.
- this->head_->next_ = this->head_;
-}
-
-template <class T>
-ACE_Unbounded_Queue<T>::ACE_Unbounded_Queue (const ACE_Unbounded_Queue<T> &us)
- : head_ (0),
- cur_size_ (0),
- allocator_ (us.allocator_)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::ACE_Unbounded_Queue");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- ACE_NEW_MALLOC (this->head_,
- (ACE_Node<T> *) this->allocator_->malloc (sizeof (ACE_Node<T>)),
- ACE_Node<T>);
- this->head_->next_ = this->head_;
- this->copy_nodes (us);
-}
-
-template <class T> void
-ACE_Unbounded_Queue<T>::operator= (const ACE_Unbounded_Queue<T> &us)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::operator=");
-
- if (this != &us)
- {
- this->delete_nodes ();
- this->copy_nodes (us);
- }
-}
-
-template <class T> ACE_Unbounded_Queue_Iterator<T>
-ACE_Unbounded_Queue<T>::begin (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::begin");
- return ACE_Unbounded_Queue_Iterator<T> (*this);
-}
-
-template <class T> ACE_Unbounded_Queue_Iterator<T>
-ACE_Unbounded_Queue<T>::end (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::end");
- return ACE_Unbounded_Queue_Iterator<T> (*this, 1);
-}
-
-template <class T> void
-ACE_Unbounded_Queue<T>::dump (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nhead_ = %u"), this->head_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nhead_->next_ = %u"), this->head_->next_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncur_size_ = %d\n"), this->cur_size_));
-
- T *item = 0;
-#if !defined (ACE_NLOGGING)
- size_t count = 1;
-#endif /* ! ACE_NLOGGING */
-
- for (ACE_Unbounded_Queue_Iterator<T> iter (*(ACE_Unbounded_Queue<T> *) this);
- iter.next (item) != 0;
- iter.advance ())
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("count = %d\n"), count++));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class T> void
-ACE_Unbounded_Queue<T>::copy_nodes (const ACE_Unbounded_Queue<T> &us)
-{
- for (ACE_Node<T> *curr = us.head_->next_;
- curr != us.head_;
- curr = curr->next_)
- if (this->enqueue_tail (curr->item_) == -1)
- // @@ What's the right thing to do here?
- this->delete_nodes ();
-}
-
-template <class T> void
-ACE_Unbounded_Queue<T>::delete_nodes (void)
-{
- for (ACE_Node<T> *curr = this->head_->next_;
- // Keep looking until we've hit the dummy node.
- curr != this->head_;
- )
- {
- ACE_Node<T> *temp = curr;
- curr = curr->next_;
-
- ACE_DES_FREE_TEMPLATE (temp,
- this->allocator_->free,
- ACE_Node,
- <T>);
- this->cur_size_--;
- // @@ Doesnt make sense to have this check since
- // this will always be true.
- // ACE_ASSERT (this->cur_size_ >= 0);
- }
-
- // Reset the list to be a circular list with just a dummy node.
- this->head_->next_ = this->head_;
-}
-
-template <class T>
-ACE_Unbounded_Queue<T>::~ACE_Unbounded_Queue (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::~ACE_Unbounded_Queue (void)");
-
- this->delete_nodes ();
- ACE_DES_FREE_TEMPLATE (head_,
- this->allocator_->free,
- ACE_Node,
- <T>);
- this->head_ = 0;
-}
-
-template <class T> int
-ACE_Unbounded_Queue<T>::enqueue_head (const T &new_item)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::enqueue_head");
-
- ACE_Node<T> *temp;
-
- // Create a new node that points to the original head.
- ACE_NEW_MALLOC_RETURN (temp,
- ACE_static_cast(ACE_Node<T> *,
- this->allocator_->malloc (sizeof (ACE_Node<T>))),
- ACE_Node<T> (new_item, this->head_->next_),
- -1);
- // Link this pointer into the front of the list. Note that the
- // "real" head of the queue is <head_->next_>, whereas <head_> is
- // just a pointer to the dummy node.
- this->head_->next_ = temp;
-
- this->cur_size_++;
- return 0;
-}
-
-template <class T> int
-ACE_Unbounded_Queue<T>::enqueue_tail (const T &new_item)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::enqueue_tail");
-
- // Insert <item> into the old dummy node location. Note that this
- // isn't actually the "head" item in the queue, it's a dummy node at
- // the "tail" of the queue...
- this->head_->item_ = new_item;
-
- ACE_Node<T> *temp;
-
- // Create a new dummy node.
- ACE_NEW_MALLOC_RETURN (temp,
- ACE_static_cast(ACE_Node<T> *,
- this->allocator_->malloc (sizeof (ACE_Node<T>))),
- ACE_Node<T> (this->head_->next_),
- -1);
- // Link this dummy pointer into the list.
- this->head_->next_ = temp;
-
- // Point the head to the new dummy node.
- this->head_ = temp;
-
- this->cur_size_++;
- return 0;
-}
-
-template <class T> int
-ACE_Unbounded_Queue<T>::dequeue_head (T &item)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::dequeue_head");
-
- // Check for empty queue.
- if (this->is_empty ())
- return -1;
-
- ACE_Node<T> *temp = this->head_->next_;
-
- item = temp->item_;
- this->head_->next_ = temp->next_;
- ACE_DES_FREE_TEMPLATE (temp,
- this->allocator_->free,
- ACE_Node,
- <T>);
- --this->cur_size_;
- return 0;
-}
-
-template <class T> void
-ACE_Unbounded_Queue<T>::reset (void)
-{
- ACE_TRACE ("reset");
-
- this->delete_nodes ();
-}
-
-template <class T> int
-ACE_Unbounded_Queue<T>::get (T *&item, size_t slot) const
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::get");
-
- ACE_Node<T> *curr = this->head_->next_;
-
- size_t i;
-
- for (i = 0; i < this->cur_size_; i++)
- {
- if (i == slot)
- break;
-
- curr = curr->next_;
- }
-
- if (i < this->cur_size_)
- {
- item = &curr->item_;
- return 0;
- }
- else
- return -1;
-}
-
-template <class T> int
-ACE_Unbounded_Queue<T>::set (const T &item,
- size_t slot)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::set");
-
- ACE_Node<T> *curr = this->head_->next_;
-
- size_t i;
-
- for (i = 0;
- i < slot && i < this->cur_size_;
- i++)
- curr = curr->next_;
-
- if (i < this->cur_size_)
- {
- // We're in range, so everything's cool.
- curr->item_ = item;
- return 0;
- }
- else
- {
- // We need to expand the list.
-
- // A common case will be increasing the set size by 1.
- // Therefore, we'll optimize for this case.
- if (i == slot)
- {
- // Try to expand the size of the set by 1.
- if (this->enqueue_tail (item) == -1)
- return -1;
- else
- return 0;
- }
- else
- {
- T dummy;
-
- // We need to expand the list by multiple (dummy) items.
- for (; i < slot; i++)
- {
- // This head points to the existing dummy node, which is
- // about to be overwritten when we add the new dummy
- // node.
- curr = this->head_;
-
- // Try to expand the size of the set by 1, but don't
- // store anything in the dummy node (yet).
- if (this->enqueue_tail (dummy) == -1)
- return -1;
- }
-
- curr->item_ = item;
- return 0;
- }
- }
-}
-
-// ****************************************************************
-
-template <class T> void
-ACE_Unbounded_Queue_Const_Iterator<T>::dump (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Queue_Const_Iterator<T>::dump");
-}
-
-template <class T>
-ACE_Unbounded_Queue_Const_Iterator<T>::ACE_Unbounded_Queue_Const_Iterator (const ACE_Unbounded_Queue<T> &q, int end)
- : current_ (end == 0 ? q.head_->next_ : q.head_ ),
- queue_ (q)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue_Const_Iterator<T>::ACE_Unbounded_Queue_Const_Iterator");
-}
-
-template <class T> int
-ACE_Unbounded_Queue_Const_Iterator<T>::advance (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue_Const_Iterator<T>::advance");
- this->current_ = this->current_->next_;
- return this->current_ != this->queue_.head_;
-}
-
-template <class T> int
-ACE_Unbounded_Queue_Const_Iterator<T>::first (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue_Const_Iterator<T>::first");
- this->current_ = this->queue_.head_->next_;
- return this->current_ != this->queue_.head_;
-}
-
-template <class T> int
-ACE_Unbounded_Queue_Const_Iterator<T>::done (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Queue_Const_Iterator<T>::done");
-
- return this->current_ == this->queue_.head_;
-}
-
-template <class T> int
-ACE_Unbounded_Queue_Const_Iterator<T>::next (T *&item)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue_Const_Iterator<T>::next");
- if (this->current_ == this->queue_.head_)
- return 0;
- else
- {
- item = &this->current_->item_;
- return 1;
- }
-}
-
-// ****************************************************************
-
-template <class T> void
-ACE_Unbounded_Queue_Iterator<T>::dump (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Queue_Iterator<T>::dump");
-}
-
-template <class T>
-ACE_Unbounded_Queue_Iterator<T>::ACE_Unbounded_Queue_Iterator (ACE_Unbounded_Queue<T> &q, int end)
- : current_ (end == 0 ? q.head_->next_ : q.head_ ),
- queue_ (q)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue_Iterator<T>::ACE_Unbounded_Queue_Iterator");
-}
-
-template <class T> int
-ACE_Unbounded_Queue_Iterator<T>::advance (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue_Iterator<T>::advance");
- this->current_ = this->current_->next_;
- return this->current_ != this->queue_.head_;
-}
-
-template <class T> int
-ACE_Unbounded_Queue_Iterator<T>::first (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue_Iterator<T>::first");
- this->current_ = this->queue_.head_->next_;
- return this->current_ != this->queue_.head_;
-}
-
-template <class T> int
-ACE_Unbounded_Queue_Iterator<T>::done (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Queue_Iterator<T>::done");
-
- return this->current_ == this->queue_.head_;
-}
-
-template <class T> int
-ACE_Unbounded_Queue_Iterator<T>::next (T *&item)
-{
- // ACE_TRACE ("ACE_Unbounded_Queue_Iterator<T>::next");
- if (this->current_ == this->queue_.head_)
- return 0;
- else
- {
- item = &this->current_->item_;
- return 1;
- }
-}
-
-#endif /* ACE_UNBOUNDED_QUEUE_C */
diff --git a/ace/Unbounded_Queue.h b/ace/Unbounded_Queue.h
deleted file mode 100644
index 0c110c896dc..00000000000
--- a/ace/Unbounded_Queue.h
+++ /dev/null
@@ -1,294 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Unbounded_Queue.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_UNBOUNDED_QUEUE_H
-#define ACE_UNBOUNDED_QUEUE_H
-#include "ace/pre.h"
-
-#include "ace/Node.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// For size_t under Chorus
-#include "ace/OS_Memory.h"
-
-class ACE_Allocator;
-
-template <class T>
-class ACE_Unbounded_Queue;
-
-/**
- * @class ACE_Unbounded_Queue_Iterator
- *
- * @brief Implement an iterator over an unbounded queue.
- */
-template <class T>
-class ACE_Unbounded_Queue_Iterator
-{
-public:
- // = Initialization method.
- ACE_Unbounded_Queue_Iterator (ACE_Unbounded_Queue<T> &q, int end = 0);
-
- // = Iteration methods.
-
- /// Pass back the @a next_item that hasn't been seen in the queue.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&next_item);
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the queue have been seen, else 1.
- int advance (void);
-
- /// Move to the first element in the queue. Returns 0 if the
- /// queue is empty, else 1.
- int first (void);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Pointer to the current node in the iteration.
- ACE_Node<T> *current_;
-
- /// Pointer to the queue we're iterating over.
- ACE_Unbounded_Queue<T> &queue_;
-};
-
-/**
- * @class ACE_Unbounded_Queue_Const_Iterator
- *
- * @brief Implement an iterator over an const unbounded queue.
- */
-template <class T>
-class ACE_Unbounded_Queue_Const_Iterator
-{
-public:
- // = Initialization method.
- ACE_Unbounded_Queue_Const_Iterator (const ACE_Unbounded_Queue<T> &q, int end = 0);
-
- // = Iteration methods.
-
- /// Pass back the @a next_item that hasn't been seen in the queue.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&next_item);
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the queue have been seen, else 1.
- int advance (void);
-
- /// Move to the first element in the queue. Returns 0 if the
- /// queue is empty, else 1.
- int first (void);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Pointer to the current node in the iteration.
- ACE_Node<T> *current_;
-
- /// Pointer to the queue we're iterating over.
- const ACE_Unbounded_Queue<T> &queue_;
-};
-
-/**
- * @class ACE_Unbounded_Queue
- *
- * @brief A Queue of "infinite" length.
- *
- * This implementation of an unbounded queue uses a circular
- * linked list with a dummy node.
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure
- * Circular linked list
- * - Duplicates allowed?
- * Yes
- * - Random access allowed?
- * No
- * - Search speed
- * N/A
- * - Insert/replace speed
- * N/A
- * - Iterator still valid after change to container?
- * Yes
- * - Frees memory for removed elements?
- * Yes
- * - Items inserted by
- * Value
- * - Requirements for contained type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- *
- */
-template <class T>
-class ACE_Unbounded_Queue
-{
-public:
- friend class ACE_Unbounded_Queue_Iterator<T>;
- friend class ACE_Unbounded_Queue_Const_Iterator<T>;
-
- // Trait definition.
- typedef ACE_Unbounded_Queue_Iterator<T> ITERATOR;
- typedef ACE_Unbounded_Queue_Const_Iterator<T> CONST_ITERATOR;
-
- // = Initialization and termination methods.
- /// Construction. Use user specified allocation strategy
- /// if specified.
- /**
- * Initialize an empty queue using the strategy provided.
- */
- ACE_Unbounded_Queue (ACE_Allocator *alloc = 0);
-
- /// Copy constructor.
- /**
- * Initialize the queue to be a copy of the provided queue.
- */
- ACE_Unbounded_Queue (const ACE_Unbounded_Queue<T> &);
-
- /// Assignment operator.
- /**
- * Perform a deep copy of rhs.
- */
- void operator= (const ACE_Unbounded_Queue<T> &);
-
- /// Destructor.
- /**
- * Clean up the memory for the queue.
- */
- ~ACE_Unbounded_Queue (void);
-
- // = Check boundary conditions.
-
- /// Returns 1 if the container is empty, otherwise returns 0.
- /**
- * Constant time check to see if the queue is empty.
- */
- int is_empty (void) const;
-
- /// Returns 0.
- /**
- * The queue cannot be full, so it always returns 0.
- */
- int is_full (void) const;
-
- // = Classic queue operations.
-
- /// Adds @a new_item to the tail of the queue. Returns 0 on success,
- /// -1 on failure.
- /**
- * Insert an item at the end of the queue.
- */
- int enqueue_tail (const T &new_item);
-
- /// Adds @a new_item to the head of the queue. Returns 0 on success,
- /// -1 on failure.
- /**
- * Insert an item at the head of the queue.
- */
- int enqueue_head (const T &new_item);
-
- /// Removes and returns the first @a item on the queue. Returns 0 on
- /// success, -1 if the queue was empty.
- /**
- * Remove an item from the head of the queue.
- */
- int dequeue_head (T &item);
-
- // = Additional utility methods.
-
- /// Reset the ACE_Unbounded_Queue to be empty and release all its
- /// dynamically allocated resources.
- /**
- * Delete the queue nodes.
- */
- void reset (void);
-
- /// Get the @a slot th element in the set. Returns -1 if the element
- /// isn't in the range {0..#cur_size_ - 1}, else 0.
- /**
- * Find the item in the queue between 0 and the provided index of the
- * queue.
- */
- int get (T *&item, size_t slot = 0) const;
-
- /// Set the @a slot th element of the queue to @a item.
- /**
- * Set the @a slot th element in the set. Will pad out the set with
- * empty nodes if @a slot is beyond the range {0..#cur_size_ - 1}.
- * Returns -1 on failure, 0 if @a slot isn't initially in range, and
- * 0 otherwise.
- */
- int set (const T &item, size_t slot);
-
- /// The number of items in the queue.
- /**
- * Return the size of the queue.
- */
- size_t size (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL-styled unidirectional iterator factory.
- ACE_Unbounded_Queue_Iterator<T> begin (void);
- ACE_Unbounded_Queue_Iterator<T> end (void);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-protected:
- /// Delete all the nodes in the queue.
- void delete_nodes (void);
-
- /// Copy nodes into this queue.
- void copy_nodes (const ACE_Unbounded_Queue<T> &);
-
- /// Pointer to the dummy node in the circular linked Queue.
- ACE_Node<T> *head_;
-
- /// Current size of the queue.
- size_t cur_size_;
-
- /// Allocation Strategy of the queue.
- ACE_Allocator *allocator_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Unbounded_Queue.inl"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Unbounded_Queue.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Unbounded_Queue.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_UNBOUNDED_QUEUE_H */
diff --git a/ace/Unbounded_Queue.inl b/ace/Unbounded_Queue.inl
deleted file mode 100644
index ea552e7d3d8..00000000000
--- a/ace/Unbounded_Queue.inl
+++ /dev/null
@@ -1,21 +0,0 @@
-// $Id$
-
-template <class T> ACE_INLINE size_t
-ACE_Unbounded_Queue<T>::size (void) const
-{
- return this->cur_size_;
-}
-
-template <class T> ACE_INLINE int
-ACE_Unbounded_Queue<T>::is_empty (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::is_empty");
- return this->head_ == this->head_->next_;
-}
-
-template <class T> ACE_INLINE int
-ACE_Unbounded_Queue<T>::is_full (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Queue<T>::is_full");
- return 0; // We should implement a "node of last resort for this..."
-}
diff --git a/ace/Unbounded_Set.cpp b/ace/Unbounded_Set.cpp
deleted file mode 100644
index e1cf0708e6a..00000000000
--- a/ace/Unbounded_Set.cpp
+++ /dev/null
@@ -1,443 +0,0 @@
-// $Id$
-
-#ifndef ACE_UNBOUNDED_SET_C
-#define ACE_UNBOUNDED_SET_C
-
-#include "ace/Unbounded_Set.h"
-#include "ace/Malloc_Base.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Unbounded_Set.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Unbounded_Set, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Unbounded_Set)
-
- template <class T> size_t
-ACE_Unbounded_Set<T>::size (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Set<T>::size");
- return this->cur_size_;
-}
-
-template <class T> int
-ACE_Unbounded_Set<T>::insert_tail (const T &item)
-{
- // ACE_TRACE ("ACE_Unbounded_Set<T>::insert_tail");
- ACE_Node<T> *temp;
-
- // Insert <item> into the old dummy node location.
- this->head_->item_ = item;
-
- // Create a new dummy node.
- ACE_NEW_MALLOC_RETURN (temp,
- ACE_static_cast(ACE_Node<T>*,
- this->allocator_->malloc (sizeof (ACE_Node<T>))),
- ACE_Node<T> (this->head_->next_),
- -1);
- // Link this pointer into the list.
- this->head_->next_ = temp;
-
- // Point the head to the new dummy node.
- this->head_ = temp;
-
- this->cur_size_++;
- return 0;
-}
-
-template <class T> void
-ACE_Unbounded_Set<T>::reset (void)
-{
- ACE_TRACE ("reset");
-
- this->delete_nodes ();
-}
-
-template <class T> void
-ACE_Unbounded_Set<T>::dump (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Set<T>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nhead_ = %u"), this->head_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nhead_->next_ = %u"), this->head_->next_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncur_size_ = %d\n"), this->cur_size_));
-
- T *item = 0;
-#if !defined (ACE_NLOGGING)
- size_t count = 1;
-#endif /* ! ACE_NLOGGING */
-
- for (ACE_Unbounded_Set_Iterator<T> iter (*(ACE_Unbounded_Set<T> *) this);
- iter.next (item) != 0;
- iter.advance ())
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("count = %d\n"), count++));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class T> void
-ACE_Unbounded_Set<T>::copy_nodes (const ACE_Unbounded_Set<T> &us)
-{
- for (ACE_Node<T> *curr = us.head_->next_;
- curr != us.head_;
- curr = curr->next_)
- this->insert_tail (curr->item_);
-}
-
-template <class T> void
-ACE_Unbounded_Set<T>::delete_nodes (void)
-{
- ACE_Node<T> *curr = this->head_->next_;
-
- // Keep looking until we've hit the dummy node.
-
- while (curr != this->head_)
- {
- ACE_Node<T> *temp = curr;
- curr = curr->next_;
- ACE_DES_FREE_TEMPLATE (temp,
- this->allocator_->free,
- ACE_Node,
- <T>);
- this->cur_size_--;
- }
-
- // Reset the list to be a circular list with just a dummy node.
- this->head_->next_ = this->head_;
-}
-
-template <class T>
-ACE_Unbounded_Set<T>::~ACE_Unbounded_Set (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set<T>::~ACE_Unbounded_Set");
-
- this->delete_nodes ();
-
- // Delete the dummy node.
- ACE_DES_FREE_TEMPLATE (head_,
- this->allocator_->free,
- ACE_Node,
- <T>);
- this->head_ = 0;
-}
-
-template <class T>
-ACE_Unbounded_Set<T>::ACE_Unbounded_Set (ACE_Allocator *alloc)
- : head_ (0),
- cur_size_ (0),
- allocator_ (alloc)
-{
- // ACE_TRACE ("ACE_Unbounded_Set<T>::ACE_Unbounded_Set");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- ACE_NEW_MALLOC (this->head_,
- (ACE_Node<T>*) this->allocator_->malloc (sizeof (ACE_Node<T>)),
- ACE_Node<T>);
- // Make the list circular by pointing it back to itself.
- this->head_->next_ = this->head_;
-}
-
-template <class T>
-ACE_Unbounded_Set<T>::ACE_Unbounded_Set (const ACE_Unbounded_Set<T> &us)
- : head_ (0),
- cur_size_ (0),
- allocator_ (us.allocator_)
-{
- ACE_TRACE ("ACE_Unbounded_Set<T>::ACE_Unbounded_Set");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- ACE_NEW_MALLOC (this->head_,
- (ACE_Node<T>*) this->allocator_->malloc (sizeof (ACE_Node<T>)),
- ACE_Node<T>);
- this->head_->next_ = this->head_;
- this->copy_nodes (us);
-}
-
-template <class T> void
-ACE_Unbounded_Set<T>::operator= (const ACE_Unbounded_Set<T> &us)
-{
- ACE_TRACE ("ACE_Unbounded_Set<T>::operator=");
-
- if (this != &us)
- {
- this->delete_nodes ();
- this->copy_nodes (us);
- }
-}
-
-template <class T> int
-ACE_Unbounded_Set<T>::find (const T &item) const
-{
- // ACE_TRACE ("ACE_Unbounded_Set<T>::find");
- // Set <item> into the dummy node.
- this->head_->item_ = item;
-
- ACE_Node<T> *temp = this->head_->next_;
-
- // Keep looping until we find the item.
- while (!(temp->item_ == item))
- temp = temp->next_;
-
- // If we found the dummy node then it's not really there, otherwise,
- // it is there.
- return temp == this->head_ ? -1 : 0;
-}
-
-template <class T> int
-ACE_Unbounded_Set<T>::insert (const T &item)
-{
- // ACE_TRACE ("ACE_Unbounded_Set<T>::insert");
- if (this->find (item) == 0)
- return 1;
- else
- return this->insert_tail (item);
-}
-
-template <class T> int
-ACE_Unbounded_Set<T>::remove (const T &item)
-{
- // ACE_TRACE ("ACE_Unbounded_Set<T>::remove");
-
- // Insert the item to be founded into the dummy node.
- this->head_->item_ = item;
-
- ACE_Node<T> *curr = this->head_;
-
- while (!(curr->next_->item_ == item))
- curr = curr->next_;
-
- if (curr->next_ == this->head_)
- return -1; // Item was not found.
- else
- {
- ACE_Node<T> *temp = curr->next_;
- // Skip over the node that we're deleting.
- curr->next_ = temp->next_;
- this->cur_size_--;
- ACE_DES_FREE_TEMPLATE (temp,
- this->allocator_->free,
- ACE_Node,
- <T>);
- return 0;
- }
-}
-
-template <class T> ACE_Unbounded_Set_Iterator<T>
-ACE_Unbounded_Set<T>::begin (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set<T>::begin");
- return ACE_Unbounded_Set_Iterator<T> (*this);
-}
-
-template <class T> ACE_Unbounded_Set_Iterator<T>
-ACE_Unbounded_Set<T>::end (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set<T>::end");
- return ACE_Unbounded_Set_Iterator<T> (*this, 1);
-}
-
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Unbounded_Set_Iterator)
-
- template <class T> void
-ACE_Unbounded_Set_Iterator<T>::dump (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Iterator<T>::dump");
-}
-
-template <class T>
-ACE_Unbounded_Set_Iterator<T>::ACE_Unbounded_Set_Iterator (ACE_Unbounded_Set<T> &s, int end)
- : current_ (end == 0 ? s.head_->next_ : s.head_ ),
- set_ (&s)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Iterator<T>::ACE_Unbounded_Set_Iterator");
-}
-
-template <class T> int
-ACE_Unbounded_Set_Iterator<T>::advance (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Iterator<T>::advance");
- this->current_ = this->current_->next_;
- return this->current_ != this->set_->head_;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Iterator<T>::first (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Iterator<T>::first");
- this->current_ = this->set_->head_->next_;
- return this->current_ != this->set_->head_;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Iterator<T>::done (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Set_Iterator<T>::done");
-
- return this->current_ == this->set_->head_;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Iterator<T>::next (T *&item)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Iterator<T>::next");
- if (this->current_ == this->set_->head_)
- return 0;
- else
- {
- item = &this->current_->item_;
- return 1;
- }
-}
-
-template <class T> ACE_Unbounded_Set_Iterator<T>
-ACE_Unbounded_Set_Iterator<T>::operator++ (int)
-{
- //ACE_TRACE ("ACE_Unbounded_Set_Iterator<T>::operator++ (int)");
- ACE_Unbounded_Set_Iterator<T> retv (*this);
-
- // postfix operator
-
- this->advance ();
- return retv;
-}
-
-template <class T> ACE_Unbounded_Set_Iterator<T>&
-ACE_Unbounded_Set_Iterator<T>::operator++ (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Iterator<T>::operator++ (void)");
-
- // prefix operator
-
- this->advance ();
- return *this;
-}
-
-template <class T> T&
-ACE_Unbounded_Set_Iterator<T>::operator* (void)
-{
- //ACE_TRACE ("ACE_Unbounded_Set_Iterator<T>::operator*");
- T *retv = 0;
-
- int result = this->next (retv);
- ACE_ASSERT (result != 0);
- ACE_UNUSED_ARG (result);
-
- return *retv;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Iterator<T>::operator== (const ACE_Unbounded_Set_Iterator<T> &rhs) const
-{
- //ACE_TRACE ("ACE_Unbounded_Set_Iterator<T>::operator==");
- return (this->set_ == rhs.set_ && this->current_ == rhs.current_);
-}
-
-template <class T> int
-ACE_Unbounded_Set_Iterator<T>::operator!= (const ACE_Unbounded_Set_Iterator<T> &rhs) const
-{
- //ACE_TRACE ("ACE_Unbounded_Set_Iterator<T>::operator!=");
- return (this->set_ != rhs.set_ || this->current_ != rhs.current_);
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Unbounded_Set_Const_Iterator)
-
-template <class T> void
-ACE_Unbounded_Set_Const_Iterator<T>::dump (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Const_Iterator<T>::dump");
-}
-
-template <class T>
-ACE_Unbounded_Set_Const_Iterator<T>::ACE_Unbounded_Set_Const_Iterator (const ACE_Unbounded_Set<T> &s, int end)
- : current_ (end == 0 ? s.head_->next_ : s.head_ ),
- set_ (&s)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Const_Iterator<T>::ACE_Unbounded_Set_Const_Iterator");
-}
-
-template <class T> int
-ACE_Unbounded_Set_Const_Iterator<T>::advance (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Const_Iterator<T>::advance");
- this->current_ = this->current_->next_;
- return this->current_ != this->set_->head_;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Const_Iterator<T>::first (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Const_Iterator<T>::first");
- this->current_ = this->set_->head_->next_;
- return this->current_ != this->set_->head_;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Const_Iterator<T>::done (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Set_Const_Iterator<T>::done");
-
- return this->current_ == this->set_->head_;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Const_Iterator<T>::next (T *&item)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Const_Iterator<T>::next");
- if (this->current_ == this->set_->head_)
- return 0;
- else
- {
- item = &this->current_->item_;
- return 1;
- }
-}
-
-template <class T> ACE_Unbounded_Set_Const_Iterator<T>
-ACE_Unbounded_Set_Const_Iterator<T>::operator++ (int)
-{
- //ACE_TRACE ("ACE_Unbounded_Set_Const_Iterator<T>::operator++ (int)");
- ACE_Unbounded_Set_Const_Iterator<T> retv (*this);
-
- // postfix operator
-
- this->advance ();
- return retv;
-}
-
-template <class T> ACE_Unbounded_Set_Const_Iterator<T>&
-ACE_Unbounded_Set_Const_Iterator<T>::operator++ (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Const_Iterator<T>::operator++ (void)");
-
- // prefix operator
-
- this->advance ();
- return *this;
-}
-
-template <class T> T&
-ACE_Unbounded_Set_Const_Iterator<T>::operator* (void)
-{
- //ACE_TRACE ("ACE_Unbounded_Set_Const_Iterator<T>::operator*");
- T *retv = 0;
-
- int result = this->next (retv);
- ACE_ASSERT (result != 0);
- ACE_UNUSED_ARG (result);
-
- return *retv;
-}
-
-#endif /* ACE_UNBOUNDED_SET_C */
diff --git a/ace/Unbounded_Set.h b/ace/Unbounded_Set.h
deleted file mode 100644
index d4c882b6f5c..00000000000
--- a/ace/Unbounded_Set.h
+++ /dev/null
@@ -1,314 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Unbounded_Set.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_UNBOUNDED_SET_H
-#define ACE_UNBOUNDED_SET_H
-#include "ace/pre.h"
-
-#include "ace/Node.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_Allocator;
-
-/**
- * @class ACE_Unbounded_Set_Iterator
- *
- * @brief Implement an iterator over an unbounded set.
- */
-template <class T>
-class ACE_Unbounded_Set_Iterator
-{
-public:
- // = Initialization method.
- ACE_Unbounded_Set_Iterator (ACE_Unbounded_Set<T> &s, int end = 0);
-
- // = Iteration methods.
-
- /// Pass back the <next_item> that hasn't been seen in the Set.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&next_item);
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Move to the first element in the set. Returns 0 if the
- /// set is empty, else 1.
- int first (void);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iteration, compare, and reference functions.
-
- /// Postfix advance.
- ACE_Unbounded_Set_Iterator<T> operator++ (int);
-
- /// Prefix advance.
- ACE_Unbounded_Set_Iterator<T>& operator++ (void);
-
- /// Returns a reference to the internal element <this> is pointing to.
- T& operator* (void);
-
- /// Check if two iterators point to the same position
- int operator== (const ACE_Unbounded_Set_Iterator<T> &) const;
- int operator!= (const ACE_Unbounded_Set_Iterator<T> &) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
-
- /// Pointer to the current node in the iteration.
- ACE_Node<T> *current_;
-
- /// Pointer to the set we're iterating over.
- ACE_Unbounded_Set<T> *set_;
-};
-
-/**
- * @class ACE_Unbounded_Set_Const_Iterator
- *
- * @brief Implement an const iterator over an unbounded set.
- */
-template <class T>
-class ACE_Unbounded_Set_Const_Iterator
-{
-public:
- // = Initialization method.
- ACE_Unbounded_Set_Const_Iterator (const ACE_Unbounded_Set<T> &s, int end = 0);
-
- // = Iteration methods.
-
- /// Pass back the <next_item> that hasn't been seen in the Set.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&next_item);
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Move to the first element in the set. Returns 0 if the
- /// set is empty, else 1.
- int first (void);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iteration, compare, and reference functions.
-
- /// Postfix advance.
- ACE_Unbounded_Set_Const_Iterator<T> operator++ (int);
-
- /// Prefix advance.
- ACE_Unbounded_Set_Const_Iterator<T>& operator++ (void);
-
- /// Returns a reference to the internal element <this> is pointing to.
- T& operator* (void);
-
- /// Check if two iterators point to the same position
- int operator== (const ACE_Unbounded_Set_Const_Iterator<T> &) const;
- int operator!= (const ACE_Unbounded_Set_Const_Iterator<T> &) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
-
- /// Pointer to the current node in the iteration.
- ACE_Node<T> *current_;
-
- /// Pointer to the set we're iterating over.
- const ACE_Unbounded_Set<T> *set_;
-};
-
-/**
- * @class ACE_Unbounded_Set
- *
- * @brief Implement a simple unordered set of <T> of unbounded size.
- *
- * This implementation of an unordered set uses a circular
- * linked list with a dummy node. This implementation does not
- * allow duplicates, but it maintains FIFO ordering of insertions.
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure
- * Circular linked list
- * - Duplicates allowed?
- * No
- * - Random access allowed?
- * No
- * - Search speed
- * Linear
- * - Insert/replace speed
- * Linear
- * - Iterator still valid after change to container?
- * Yes
- * - Frees memory for removed elements?
- * Yes
- * - Items inserted by
- * Value
- * - Requirements for contained type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- * -# operator==
- *
- */
-template <class T>
-class ACE_Unbounded_Set
-{
-public:
- friend class ACE_Unbounded_Set_Iterator<T>;
- friend class ACE_Unbounded_Set_Const_Iterator<T>;
-
- // Trait definition.
- typedef ACE_Unbounded_Set_Iterator<T> ITERATOR;
- typedef ACE_Unbounded_Set_Iterator<T> iterator;
- typedef ACE_Unbounded_Set_Const_Iterator<T> CONST_ITERATOR;
- typedef ACE_Unbounded_Set_Const_Iterator<T> const_iterator;
-
- // = Initialization and termination methods.
- /// Constructor. Use user specified allocation strategy
- /// if specified.
- /**
- * Initialize an empty set using the allocation strategy of the user if
- * provided.
- */
- ACE_Unbounded_Set (ACE_Allocator *alloc = 0);
-
- /// Copy constructor.
- /**
- * Initialize this set to be an exact copy of the set provided.
- */
- ACE_Unbounded_Set (const ACE_Unbounded_Set<T> &);
-
- /// Assignment operator.
- /**
- * Perform a deep copy of the rhs into the lhs.
- */
- void operator= (const ACE_Unbounded_Set<T> &);
-
- /// Destructor.
- /**
- * Destroy the nodes of the set.
- */
- ~ACE_Unbounded_Set (void);
-
- // = Check boundary conditions.
-
- /// Returns 1 if the container is empty, otherwise returns 0.
- /**
- * Constant time is_empty check.
- */
- int is_empty (void) const;
-
- /// Returns 0.
- /**
- * Always returns 0 since the set can never fill up.
- */
- int is_full (void) const;
-
- // = Classic unordered set operations.
-
- ///Linear insertion of an item.
- /**
- * Insert <new_item> into the set (doesn't allow duplicates).
- * Returns -1 if failures occur, 1 if item is already present, else
- * 0.
- */
- int insert (const T &new_item);
-
- /// Insert <item> at the tail of the set (doesn't check for
- /// duplicates).
- /**
- * Constant time insert at the end of the set.
- */
- int insert_tail (const T &item);
-
- ///Linear remove operation.
- /**
- * Remove first occurrence of <item> from the set. Returns 0 if
- * it removes the item, -1 if it can't find the item, and -1 if a
- * failure occurs.
- */
- int remove (const T &item);
-
- /// Finds if <item> occurs in the set. Returns 0 if find succeeds,
- /// else -1.
- /**
- * Performs a linear find operation.
- */
- int find (const T &item) const;
-
- /// Size of the set.
- /**
- * Access the size of the set.
- */
- size_t size (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Reset the <ACE_Unbounded_Set> to be empty.
- /**
- * Delete the nodes of the set.
- */
- void reset (void);
-
- // = STL-styled unidirectional iterator factory.
- ACE_Unbounded_Set_Iterator<T> begin (void);
- ACE_Unbounded_Set_Iterator<T> end (void);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Delete all the nodes in the Set.
- void delete_nodes (void);
-
- /// Copy nodes into this set.
- void copy_nodes (const ACE_Unbounded_Set<T> &);
-
- /// Head of the linked list of Nodes.
- ACE_Node<T> *head_;
-
- /// Current size of the set.
- size_t cur_size_;
-
- /// Allocation strategy of the set.
- ACE_Allocator *allocator_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Unbounded_Set.inl"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Unbounded_Set.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Unbounded_Set.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_UNBOUNDED_SET_H */
diff --git a/ace/Unbounded_Set.inl b/ace/Unbounded_Set.inl
deleted file mode 100644
index 3f71cd2b498..00000000000
--- a/ace/Unbounded_Set.inl
+++ /dev/null
@@ -1,16 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-template <class T> ACE_INLINE int
-ACE_Unbounded_Set<T>::is_empty (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Set<T>::is_empty");
- return this->head_ == this->head_->next_;
-}
-
-template <class T> ACE_INLINE int
-ACE_Unbounded_Set<T>::is_full (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Set<T>::is_full");
- return 0; // We should implement a "node of last resort for this..."
-}
diff --git a/ace/Unbounded_Set_Ex.cpp b/ace/Unbounded_Set_Ex.cpp
deleted file mode 100644
index 2dedd6a5537..00000000000
--- a/ace/Unbounded_Set_Ex.cpp
+++ /dev/null
@@ -1,620 +0,0 @@
-// $Id$
-
-#ifndef ACE_UNBOUNDED_SET_EX_C
-#define ACE_UNBOUNDED_SET_EX_C
-
-#include "ace/Unbounded_Set_Ex.h"
-#include "ace/Malloc_Base.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Unbounded_Set_Ex.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Unbounded_Set_Ex, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Unbounded_Set_Ex)
-
-template <class T> size_t
-ACE_Unbounded_Set_Ex<T>::size (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::size");
- return this->cur_size_;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex<T>::insert_tail (const T &item)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::insert_tail");
- ACE_Node<T> *temp;
-
- // Insert <item> into the old dummy node location.
- this->head_->item_ = item;
-
- // Create a new dummy node.
- ACE_NEW_MALLOC_RETURN (temp,
- ACE_static_cast(ACE_Node<T>*,
- this->allocator_->malloc (sizeof (ACE_Node<T>))),
- ACE_Node<T> (this->head_->next_),
- -1);
- // Link this pointer into the list.
- this->head_->next_ = temp;
-
- // Point the head to the new dummy node.
- this->head_ = temp;
-
- this->cur_size_++;
- return 0;
-}
-
-template <class T> void
-ACE_Unbounded_Set_Ex<T>::reset (void)
-{
- ACE_TRACE ("reset");
-
- this->delete_nodes ();
-}
-
-template <class T> void
-ACE_Unbounded_Set_Ex<T>::dump (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nhead_ = %u"), this->head_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nhead_->next_ = %u"), this->head_->next_));
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\ncur_size_ = %d\n"), this->cur_size_));
-
- T *item = 0;
-#if !defined (ACE_NLOGGING)
- size_t count = 1;
-#endif /* ! ACE_NLOGGING */
-
- for (ACE_Unbounded_Set_Ex_Iterator<T> iter (*(ACE_Unbounded_Set_Ex<T> *) this);
- iter.next (item) != 0;
- iter.advance ())
- ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("count = %d\n"), count++));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-template <class T> void
-ACE_Unbounded_Set_Ex<T>::copy_nodes (const ACE_Unbounded_Set_Ex<T> &us)
-{
- for (ACE_Node<T> *curr = us.head_->next_;
- curr != us.head_;
- curr = curr->next_)
- {
- if (!curr->deleted_)
- this->insert_tail (curr->item_);
- }
-}
-
-template <class T> void
-ACE_Unbounded_Set_Ex<T>::delete_nodes (void)
-{
- ACE_Node<T> *curr = this->head_->next_;
- ACE_ASSERT (number_of_iterators_ == 0);
- // Keep looking until we've hit the dummy node.
-
- while (curr != this->head_)
- {
- ACE_Node<T> *temp = curr;
- curr = curr->next_;
- if (!temp->deleted_)
- this->cur_size_--;
- ACE_DES_FREE_TEMPLATE (temp,
- this->allocator_->free,
- ACE_Node,
- <T>);
- }
-
- // Reset the list to be a circular list with just a dummy node.
- this->head_->next_ = this->head_;
-}
-
-template <class T> void
-ACE_Unbounded_Set_Ex<T>::cleanup ()
-{
- /// curr is the address of the chaining
- ACE_Node<T> **curr = &(this->head_->next_);
- ACE_ASSERT (number_of_iterators_ == 0);
-
- // Keep looking until we've hit the dummy node.
- while (*curr != this->head_)
- {
- if ((*curr)->deleted_)
- {
- ACE_Node<T> *temp = *curr;
- *curr = (*curr)->next_; // skip the deleted, curr is still the same
- ACE_DES_FREE_TEMPLATE (temp,
- this->allocator_->free,
- ACE_Node,
- <T>);
- }
- else
- {
- curr = &((*curr)->next_);
- }
- }
-}
-
-template <class T>
-ACE_Unbounded_Set_Ex<T>::~ACE_Unbounded_Set_Ex (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::~ACE_Unbounded_Set_Ex");
-
- this->delete_nodes ();
-
- // Delete the dummy node.
- ACE_DES_FREE_TEMPLATE (head_,
- this->allocator_->free,
- ACE_Node,
- <T>);
- this->head_ = 0;
-}
-
-template <class T>
-ACE_Unbounded_Set_Ex<T>::ACE_Unbounded_Set_Ex (ACE_Allocator *alloc)
- : head_ (0),
- cur_size_ (0),
- allocator_ (alloc),
- number_of_iterators_ (0)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::ACE_Unbounded_Set_Ex");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- ACE_NEW_MALLOC (this->head_,
- (ACE_Node<T>*) this->allocator_->malloc (sizeof (ACE_Node<T>)),
- ACE_Node<T>);
- // Make the list circular by pointing it back to itself.
- this->head_->next_ = this->head_;
-}
-
-template <class T>
-ACE_Unbounded_Set_Ex<T>::ACE_Unbounded_Set_Ex (const ACE_Unbounded_Set_Ex<T> &us)
- : head_ (0),
- cur_size_ (0),
- allocator_ (us.allocator_),
- number_of_iterators_ (0)
-{
- ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::ACE_Unbounded_Set_Ex");
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- ACE_NEW_MALLOC (this->head_,
- (ACE_Node<T>*) this->allocator_->malloc (sizeof (ACE_Node<T>)),
- ACE_Node<T>);
- this->head_->next_ = this->head_;
- this->copy_nodes (us);
-}
-
-template <class T> void
-ACE_Unbounded_Set_Ex<T>::operator= (const ACE_Unbounded_Set_Ex<T> &us)
-{
- ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::operator=");
-
- if (this != &us)
- {
- this->delete_nodes ();
- this->copy_nodes (us);
- }
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex<T>::find (const T &item) const
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::find");
- // Set <item> into the dummy node.
- this->head_->item_ = item;
-
- ACE_Node<T> *temp = this->head_->next_;
-
- // Keep looping until we find the item.
- while (!(temp->item_ == item && !temp->deleted_))
- temp = temp->next_;
-
- // If we found the dummy node then it's not really there, otherwise,
- // it is there.
- return temp == this->head_ ? -1 : 0;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex<T>::insert (const T &item)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::insert");
- if (this->find (item) == 0)
- return 1;
- else
- return this->insert_tail (item);
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex<T>::remove (const T &item)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::remove");
-
- // Insert the item to be founded into the dummy node.
- this->head_->item_ = item;
- this->head_->deleted_ = false;
-
- ACE_Node<T> *curr = this->head_;
-
- while (!(curr->next_->item_ == item) || curr->next_->deleted_)
- curr = curr->next_;
-
- if (curr->next_ == this->head_)
- return -1; // Item was not found.
- else
- {
- this->cur_size_--;
- ACE_Node<T> *temp = curr->next_;
- if (number_of_iterators_>0)
- {
- temp->deleted_=true;
- }
- else
- {
- // Skip over the node that we're deleting.
- curr->next_ = temp->next_;
- ACE_DES_FREE_TEMPLATE (temp,
- this->allocator_->free,
- ACE_Node,
- <T>);
- }
- return 0;
- }
-}
-
-template <class T> ACE_Unbounded_Set_Ex_Iterator<T>
-ACE_Unbounded_Set_Ex<T>::begin (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::begin");
- return ACE_Unbounded_Set_Ex_Iterator<T> (*this);
-}
-
-template <class T> ACE_Unbounded_Set_Ex_Iterator<T>
-ACE_Unbounded_Set_Ex<T>::end (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::end");
- return ACE_Unbounded_Set_Ex_Iterator<T> (*this, 1);
-}
-
-template <class T> void
-ACE_Unbounded_Set_Ex<T>::iterator_add (void) const
-{
- number_of_iterators_++;
-}
-
-template <class T> void
-ACE_Unbounded_Set_Ex<T>::iterator_leave (void)
-{
- ACE_ASSERT (number_of_iterators_ > 0);
- number_of_iterators_--;
- if (number_of_iterators_ == 0)
- cleanup ();
-}
-
-template <class T> void
-ACE_Unbounded_Set_Ex<T>::const_iterator_leave (void) const
-{
- ACE_ASSERT (number_of_iterators_ > 0);
- number_of_iterators_--;
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Unbounded_Set_Ex_Iterator)
-
-template <class T> void
-ACE_Unbounded_Set_Ex_Iterator<T>::dump (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T>::dump");
-}
-
-template <class T>
-ACE_Unbounded_Set_Ex_Iterator<T>::ACE_Unbounded_Set_Ex_Iterator (ACE_Unbounded_Set_Ex<T> &s, int end)
- : current_ (end == 0 ? s.head_->next_ : s.head_ ), set_ (&s)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T>::ACE_Unbounded_Set_Ex_Iterator");
- // the first one may be deleted
- while (this->current_->deleted_ && this->current_ != this->set_->head_)
- this->current_ = this->current_->next_;
- registered_in_set_ = (!end && this->current_ != this->set_->head_);
- if (registered_in_set_)
- set_->iterator_add ();
-}
-
-template <class T>
-ACE_Unbounded_Set_Ex_Iterator<T>::ACE_Unbounded_Set_Ex_Iterator (const ACE_Unbounded_Set_Ex_Iterator<T> &o)
- : current_ (o.current_), set_ (o.set_),
- registered_in_set_ (o.registered_in_set_)
-{
- if (registered_in_set_)
- set_->iterator_add ();
-}
-
-template <class T> void
-ACE_Unbounded_Set_Ex_Iterator<T>::operator= (const ACE_Unbounded_Set_Ex_Iterator &o)
-{
- if (this == &o)
- return;
- if (registered_in_set_)
- set_->iterator_leave ();
- this->set_ = o.set_;
- this->current_ = o.current_;
- this->registered_in_set_ = o.registered_in_set_;
- if (registered_in_set_)
- set_->iterator_add ();
-}
-
-
-template <class T>
-ACE_Unbounded_Set_Ex_Iterator<T>::~ACE_Unbounded_Set_Ex_Iterator ()
-{
- if (registered_in_set_)
- set_->iterator_leave ();
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex_Iterator<T>::advance (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T>::advance");
- this->current_ = this->current_->next_;
- while (this->current_->deleted_ && this->current_ != this->set_->head_)
- this->current_ = this->current_->next_;
- int completed = (this->current_ == this->set_->head_);
- if (completed && registered_in_set_)
- {
- set_->iterator_leave ();
- registered_in_set_ = false;
- }
- return !completed;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex_Iterator<T>::first (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T>::first");
- this->current_ = this->set_->head_->next_;
- while (this->current_->deleted_ && this->current_ != this->set_->head_)
- this->current_ = this->current_->next_;
- int non_empty = (this->current_ != this->set_->head_);
- if (non_empty && !registered_in_set_)
- {
- registered_in_set_ = true;
- set_->iterator_add ();
- }
- return non_empty;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex_Iterator<T>::done (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T>::done");
-
- return this->current_ == this->set_->head_;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex_Iterator<T>::next (T *&item)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T>::next");
- int completed = (this->current_ == this->set_->head_);
- if (completed)
- {
- if (registered_in_set_)
- {
- set_->iterator_leave ();
- registered_in_set_ = false;
- }
- return 0;
- }
- item = &this->current_->item_;
- return 1;
-}
-
-template <class T> ACE_Unbounded_Set_Ex_Iterator<T>
-ACE_Unbounded_Set_Ex_Iterator<T>::operator++ (int)
-{
- //ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T>::operator++ (int)");
- ACE_Unbounded_Set_Ex_Iterator<T> retv (*this);
-
- // postfix operator
-
- this->advance ();
- return retv;
-}
-
-template <class T> ACE_Unbounded_Set_Ex_Iterator<T>&
-ACE_Unbounded_Set_Ex_Iterator<T>::operator++ (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T>::operator++ (void)");
-
- // prefix operator
-
- this->advance ();
- return *this;
-}
-
-template <class T> T&
-ACE_Unbounded_Set_Ex_Iterator<T>::operator* (void)
-{
- //ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T>::operator*");
- T *retv = 0;
-
- int result = this->next (retv);
- ACE_ASSERT (result != 0);
- ACE_UNUSED_ARG (result);
-
- return *retv;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex_Iterator<T>::operator== (const ACE_Unbounded_Set_Ex_Iterator<T> &rhs) const
-{
- //ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T>::operator==");
- return (this->set_ == rhs.set_ && this->current_ == rhs.current_);
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex_Iterator<T>::operator!= (const ACE_Unbounded_Set_Ex_Iterator<T> &rhs) const
-{
- //ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T>::operator!=");
- return (this->set_ != rhs.set_ || this->current_ != rhs.current_);
-}
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Unbounded_Set_Ex_Const_Iterator)
-
-template <class T> void
-ACE_Unbounded_Set_Ex_Const_Iterator<T>::dump (void) const
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex_Const_Iterator<T>::dump");
-}
-
-template <class T>
-ACE_Unbounded_Set_Ex_Const_Iterator<T>::ACE_Unbounded_Set_Ex_Const_Iterator (const ACE_Unbounded_Set_Ex<T> &s, int end)
- : current_ (end == 0 ? s.head_->next_ : s.head_ ), set_ (&s)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex_Const_Iterator<T>::ACE_Unbounded_Set_Ex_Const_Iterator");
- // the first one may be deleted
- while (this->current_->deleted_ && this->current_ != this->set_->head_)
- this->current_ = this->current_->next_;
- registered_in_set_ = (!end && this->current_ != this->set_->head_);
- if (registered_in_set_)
- set_->iterator_add ();
-}
-
-template <class T>
-ACE_Unbounded_Set_Ex_Const_Iterator<T>::ACE_Unbounded_Set_Ex_Const_Iterator
- (const ACE_Unbounded_Set_Ex_Const_Iterator<T> &o)
- : current_ (o.current_),
- set_ (o.set_),
- registered_in_set_ (o.registered_in_set_)
-{
- if (registered_in_set_)
- set_->iterator_add ();
-}
-
-template <class T>
-void ACE_Unbounded_Set_Ex_Const_Iterator<T>::operator=
- (const ACE_Unbounded_Set_Ex_Const_Iterator& o)
-{
- if (this == &o)
- return;
- if (registered_in_set_)
- set_->const_iterator_leave ();
- this->set_ = o.set_;
- this->current_ = o.current_;
- this->registered_in_set_ = o.registered_in_set_;
- if (registered_in_set_)
- set_->iterator_add ();
-}
-
-template <class T>
-ACE_Unbounded_Set_Ex_Const_Iterator<T>::~ACE_Unbounded_Set_Ex_Const_Iterator ()
-{
- if (registered_in_set_)
- set_->const_iterator_leave ();
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex_Const_Iterator<T>::advance (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex_Const_Iterator<T>::advance");
- this->current_ = this->current_->next_;
- while (this->current_->deleted_ && this->current_ != this->set_->head_)
- this->current_ = this->current_->next_;
- int completed = (this->current_ == this->set_->head_);
- if (completed && registered_in_set_)
- {
- set_->const_iterator_leave ();
- registered_in_set_ = false;
- }
- return !completed;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex_Const_Iterator<T>::first (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex_Const_Iterator<T>::first");
- this->current_ = this->set_->head_->next_;
- while (this->current_->deleted_ && this->current_ != this->set_->head_)
- this->current_ = this->current_->next_;
- int non_empty = (this->current_ != this->set_->head_);
- if (non_empty && !registered_in_set_)
- {
- registered_in_set_ = true;
- set_->iterator_add ();
- }
- return non_empty;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex_Const_Iterator<T>::done (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Set_Ex_Const_Iterator<T>::done");
-
- return this->current_ == this->set_->head_;
-}
-
-template <class T> int
-ACE_Unbounded_Set_Ex_Const_Iterator<T>::next (T *&item)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex_Const_Iterator<T>::next");
- int completed = (this->current_ == this->set_->head_);
- if (completed)
- {
- if (registered_in_set_)
- {
- set_->const_iterator_leave ();
- registered_in_set_ = false;
- }
- return 0;
- }
- item = &this->current_->item_;
- return 1;
-}
-
-template <class T> ACE_Unbounded_Set_Ex_Const_Iterator<T>
-ACE_Unbounded_Set_Ex_Const_Iterator<T>::operator++ (int)
-{
- //ACE_TRACE ("ACE_Unbounded_Set_Ex_Const_Iterator<T>::operator++ (int)");
- ACE_Unbounded_Set_Ex_Const_Iterator<T> retv (*this);
-
- // postfix operator
-
- this->advance ();
- return retv;
-}
-
-template <class T> ACE_Unbounded_Set_Ex_Const_Iterator<T>&
-ACE_Unbounded_Set_Ex_Const_Iterator<T>::operator++ (void)
-{
- // ACE_TRACE ("ACE_Unbounded_Set_Ex_Const_Iterator<T>::operator++ (void)");
-
- // prefix operator
-
- this->advance ();
- return *this;
-}
-
-template <class T> T&
-ACE_Unbounded_Set_Ex_Const_Iterator<T>::operator* (void)
-{
- //ACE_TRACE ("ACE_Unbounded_Set_Ex_Const_Iterator<T>::operator*");
- T *retv = 0;
-
- int result = this->next (retv);
- ACE_ASSERT (result != 0);
- ACE_UNUSED_ARG (result);
-
- return *retv;
-}
-
-#endif /* ACE_UNBOUNDED_SET_EX_C */
diff --git a/ace/Unbounded_Set_Ex.h b/ace/Unbounded_Set_Ex.h
deleted file mode 100644
index 29811d19a15..00000000000
--- a/ace/Unbounded_Set_Ex.h
+++ /dev/null
@@ -1,359 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Unbounded_Set_Ex.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * ACE_Unbounded_Set Extension by Rudolf Weber <rfweber@tesionmail.de>
- *
- * If iterators are working in an Unbounded_Set_Ex, the elements are not
- * deleted physically, but marked as deleted.
- * There is a bookkeeping of the iterators active in the set.
- * It is an error if a set is reset() or destructed while iterators are
- * still working on the set.
- *
- * CAUTION: Pay attention to the state of the iterators.
- * Deleting a set, or an element in a set, is only feasible
- * when no iterator is active.
- *
- */
-//=============================================================================
-
-#ifndef ACE_UNBOUNDED_SET_EX_H
-#define ACE_UNBOUNDED_SET_EX_H
-#include "ace/pre.h"
-
-#include "ace/Node.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_Allocator;
-
-/**
- * @class ACE_Unbounded_Set_Ex_Iterator
- *
- * @brief Implement an iterator over an unbounded set.
- */
-template <class T>
-class ACE_Unbounded_Set_Ex_Iterator
-{
-public:
- // = Initialization method.
- ACE_Unbounded_Set_Ex_Iterator (ACE_Unbounded_Set_Ex<T> &s, int end = 0);
- ACE_Unbounded_Set_Ex_Iterator (const ACE_Unbounded_Set_Ex_Iterator &o);
- void operator= (const ACE_Unbounded_Set_Ex_Iterator &o);
- ~ACE_Unbounded_Set_Ex_Iterator ();
-
- // = Iteration methods.
-
- /// Pass back the <next_item> that hasn't been seen in the Set.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&next_item);
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Move to the first element in the set. Returns 0 if the
- /// set is empty, else 1.
- int first (void);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iteration, compare, and reference functions.
-
- /// Postfix advance.
- ACE_Unbounded_Set_Ex_Iterator<T> operator++ (int);
-
- /// Prefix advance.
- ACE_Unbounded_Set_Ex_Iterator<T>& operator++ (void);
-
- /// Returns a reference to the internal element <this> is pointing to.
- T& operator* (void);
-
- /// Check if two iterators point to the same position
- int operator== (const ACE_Unbounded_Set_Ex_Iterator<T> &) const;
- int operator!= (const ACE_Unbounded_Set_Ex_Iterator<T> &) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
-
- /// Pointer to the current node in the iteration.
- ACE_Node<T> *current_;
-
- /// Pointer to the set we're iterating over.
- ACE_Unbounded_Set_Ex<T> *set_;
-
- // Flag that indicates whether this iterator is registered at the set.
- int registered_in_set_;
-};
-
-/**
- * @class ACE_Unbounded_Set_Ex_Const_Iterator
- *
- * @brief Implement a const iterator over an unbounded set.
- *
- * The bookkeeping operations are regarded as const. (The member
- * number_of_iterators_ in ACE_Unbounded_Set_Ex is `mutable'.)
- * Some asynchronous activity may cause a deletion under a Const_Iterator
- * so Const_Iterators are registered too.
- * However, the cleanup operation isn't const at all, thus it is not
- * called from const iterators.
- *
- */
-template <class T>
-class ACE_Unbounded_Set_Ex_Const_Iterator
-{
-public:
- // = Initialization method.
- ACE_Unbounded_Set_Ex_Const_Iterator (const ACE_Unbounded_Set_Ex<T> &s, int end = 0);
- ACE_Unbounded_Set_Ex_Const_Iterator (const ACE_Unbounded_Set_Ex_Const_Iterator& o);
- void operator= (const ACE_Unbounded_Set_Ex_Const_Iterator& o);
- ~ACE_Unbounded_Set_Ex_Const_Iterator ();
-
- // = Iteration methods.
-
- /// Pass back the <next_item> that hasn't been seen in the Set.
- /// Returns 0 when all items have been seen, else 1.
- int next (T *&next_item);
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
- /// Move to the first element in the set. Returns 0 if the
- /// set is empty, else 1.
- int first (void);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // = STL styled iteration, compare, and reference functions.
-
- /// Postfix advance.
- ACE_Unbounded_Set_Ex_Const_Iterator<T> operator++ (int);
-
- /// Prefix advance.
- ACE_Unbounded_Set_Ex_Const_Iterator<T>& operator++ (void);
-
- /// Returns a reference to the internal element <this> is pointing to.
- T& operator* (void);
-
- /// Check if two iterators point to the same position
- int operator== (const ACE_Unbounded_Set_Ex_Const_Iterator<T> &) const;
- int operator!= (const ACE_Unbounded_Set_Ex_Const_Iterator<T> &) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
-
- /// Pointer to the current node in the iteration.
- ACE_Node<T> *current_;
-
- /// Pointer to the set we're iterating over.
- const ACE_Unbounded_Set_Ex<T> *set_;
-
- // Flag that indicates whether this iterator is registered at the set.
- int registered_in_set_;
-};
-
-/**
- * @class ACE_Unbounded_Set_Ex
- *
- * @brief Implement a simple unordered set of <T> of unbounded size.
- *
- * This implementation of an unordered set uses a circular
- * linked list with a dummy node. This implementation does not
- * allow duplicates, but it maintains FIFO ordering of insertions.
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure
- * Circular linked list
- * - Duplicates allowed?
- * No
- * - Random access allowed?
- * No
- * - Search speed
- * Linear
- * - Insert/replace speed
- * Linear
- * - Iterator still valid after change to container?
- * Yes
- * - Frees memory for removed elements?
- * Yes
- * - Items inserted by
- * Value
- * - Requirements for contained type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- * -# operator==
- *
- */
-template <class T>
-class ACE_Unbounded_Set_Ex
-{
-public:
- friend class ACE_Unbounded_Set_Ex_Iterator<T>;
- friend class ACE_Unbounded_Set_Ex_Const_Iterator<T>;
-
- // Trait definition.
- typedef ACE_Unbounded_Set_Ex_Iterator<T> ITERATOR;
- typedef ACE_Unbounded_Set_Ex_Iterator<T> iterator;
- typedef ACE_Unbounded_Set_Ex_Const_Iterator<T> CONST_ITERATOR;
- typedef ACE_Unbounded_Set_Ex_Const_Iterator<T> const_iterator;
-
- // = Initialization and termination methods.
- /// Constructor. Use user specified allocation strategy
- /// if specified.
- /**
- * Initialize an empty set using the allocation strategy of the user if
- * provided.
- */
- ACE_Unbounded_Set_Ex (ACE_Allocator *alloc = 0);
-
- /// Copy constructor.
- /**
- * Initialize this set to be an exact copy of the set provided.
- */
- ACE_Unbounded_Set_Ex (const ACE_Unbounded_Set_Ex<T> &);
-
- /// Assignment operator.
- /**
- * Perform a deep copy of the rhs into the lhs.
- */
- void operator= (const ACE_Unbounded_Set_Ex<T> &);
-
- /// Destructor.
- /**
- * Destroy the nodes of the set.
- */
- ~ACE_Unbounded_Set_Ex (void);
-
- // = Check boundary conditions.
-
- /// Returns 1 if the container is empty, otherwise returns 0.
- /**
- * Constant time is_empty check.
- */
- int is_empty (void) const;
-
- /// Returns 0.
- /**
- * Always returns 0 since the set can never fill up.
- */
- int is_full (void) const;
-
- // = Classic unordered set operations.
-
- ///Linear insertion of an item.
- /**
- * Insert <new_item> into the set (doesn't allow duplicates).
- * Returns -1 if failures occur, 1 if item is already present, else
- * 0.
- */
- int insert (const T &new_item);
-
- /// Insert <item> at the tail of the set (doesn't check for
- /// duplicates).
- /**
- * Constant time insert at the end of the set.
- */
- int insert_tail (const T &item);
-
- ///Linear remove operation.
- /**
- * Remove first occurrence of <item> from the set. Returns 0 if
- * it removes the item, -1 if it can't find the item, and -1 if a
- * failure occurs.
- */
- int remove (const T &item);
-
- /// Finds if <item> occurs in the set. Returns 0 if find succeeds,
- /// else -1.
- /**
- * Performs a linear find operation.
- */
- int find (const T &item) const;
-
- /// Size of the set.
- /**
- * Access the size of the set.
- */
- size_t size (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Reset the <ACE_Unbounded_Set_Ex> to be empty.
- /**
- * Delete the nodes of the set.
- */
- void reset (void);
-
- // = STL-styled unidirectional iterator factory.
- ACE_Unbounded_Set_Ex_Iterator<T> begin (void);
- ACE_Unbounded_Set_Ex_Iterator<T> end (void);
-
- /// An Iterator has to register itself here.
- void iterator_add () const;
- /// A non-const Iterator has to unregister itself here.
- void iterator_leave ();
- /// A Const_Iterator has to unregister itself here.
- void const_iterator_leave () const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Delete all the nodes in the Set.
- void delete_nodes (void);
-
- /// Copy nodes into this set.
- void copy_nodes (const ACE_Unbounded_Set_Ex<T> &);
-
- /// Really delete all nodes marked for deletion.
- void cleanup ();
-
- /// Head of the linked list of Nodes.
- ACE_Node<T> *head_;
-
- /// Current size of the set.
- size_t cur_size_;
-
- /// Allocation strategy of the set.
- ACE_Allocator *allocator_;
-
- /// Number of iterators working on this set.
- mutable int number_of_iterators_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Unbounded_Set_Ex.inl"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Unbounded_Set_Ex.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Unbounded_Set_Ex.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* ACE_UNBOUNDED_SET_EX_H */
diff --git a/ace/Unbounded_Set_Ex.inl b/ace/Unbounded_Set_Ex.inl
deleted file mode 100644
index c6f38c7a9a0..00000000000
--- a/ace/Unbounded_Set_Ex.inl
+++ /dev/null
@@ -1,16 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-template <class T> ACE_INLINE int
-ACE_Unbounded_Set_Ex<T>::is_empty (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::is_empty");
- return this->head_ == this->head_->next_;
-}
-
-template <class T> ACE_INLINE int
-ACE_Unbounded_Set_Ex<T>::is_full (void) const
-{
- ACE_TRACE ("ACE_Unbounded_Set_Ex<T>::is_full");
- return 0; // We should implement a "node of last resort for this..."
-}
diff --git a/ace/Vector_T.cpp b/ace/Vector_T.cpp
deleted file mode 100644
index 734eab8a2fb..00000000000
--- a/ace/Vector_T.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-// $Id$
-
-#ifndef ACE_VECTOR_T_C
-#define ACE_VECTOR_T_C
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Vector_T.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Vector_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, Vector_T, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_Vector)
-
-template <class T, size_t DEFAULT_SIZE>
-void ACE_Vector<T, DEFAULT_SIZE>::resize (const size_t new_size,
- const T& t)
-{
- ACE_Array<T>::size (new_size);
- if (new_size > length_)
- for (size_t i = length_; i < new_size; ++i)
- (*this)[i]=t;
-
- curr_max_size_ = this->max_size ();
- length_ = new_size;
-}
-
-template <class T, size_t DEFAULT_SIZE>
-void ACE_Vector<T, DEFAULT_SIZE>::push_back (const T& elem)
-{
- if (length_ == curr_max_size_)
- {
- ACE_Array<T>::size (curr_max_size_ * 2);
- curr_max_size_ = this->max_size ();
- }
- ++length_;
- (*this)[length_-1] = elem;
-}
-
-template <class T, size_t DEFAULT_SIZE>
-void ACE_Vector<T, DEFAULT_SIZE>::dump (void) const
-{
-#if 0
- // Can't do this unless the vector is an object with a dump
- // function.
- for (size_t i = 0; i < this->size (); ++i)
- (*this)[i].dump ();
-#endif /* 0 */
-}
-
-#if 0
-template<class T>
-int compare(const ACE_Vector<T>& v1,
- const ACE_Vector<T>& v2,
- const size_t from_ndx,
- const size_t to_ndx)
-{
- size_t last1 = v1.size () - 1;
- size_t last2 = v2.size () - 1;
- if(last1 < from_ndx || last1 < to_ndx)
- {
- return false;
- }
- if (last2 < from_ndx || last2 < to_ndx)
- {
- return false;
- }
- if (last1 != last2)
- {
- return false;
- }
-
- // cout<<"compare() <================="<<endl;
- for (size_t i = from_ndx; i <= to_ndx; ++i)
- {
- // cout<<"V1["<<i<<"]="<<v1[i];
- // cout<<", V2["<<i<<"]="<<v2[i];
- // cout<<": NOT EQUAL == "<<(v1[i]!=v2[i])<<endl;
- if (v1[i] != v2[i])
- {
- return false;
- }
- }
- // cout<<"compare() ====================>"<<endl;
- return true;
-}
-
-template<class T>
-int partial_compare(const ACE_Vector<T>& v1,
- const ACE_Vector<T>& v2,
- const size_t from_ndx,
- const size_t to_ndx)
-{
- size_t last1 = v1.size () - 1;
- size_t last2 = v2.size () - 1;
- if (last1 < from_ndx || last1 < to_ndx)
- {
- return false;
- }
- if (last2 < from_ndx || last2 < to_ndx)
- {
- return false;
- }
- // cout<<"partial_compare() <================="<<endl;
- for (size_t i = from_ndx; i <= to_ndx; ++i)
- {
- // cout<<"V1["<<i<<"]="<<v1[i];
- // cout<<", V2["<<i<<"]="<<v2[i];
- // cout<<": NOT EQUAL == "<<(v1[i]!=v2[i])<<endl;
- if (v1[i] != v2[i])
- {
- return false;
- }
- }
- // cout<<"partial_compare() ====================>"<<endl;
- return true;
-}
-#endif
-
-#endif /* ACE_VECTOR_T_C */
diff --git a/ace/Vector_T.h b/ace/Vector_T.h
deleted file mode 100644
index 0e06a11f486..00000000000
--- a/ace/Vector_T.h
+++ /dev/null
@@ -1,244 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Vector_T.h
- *
- * $Id$
- *
- * @author Craig L. Ching <cching@mqsoftware.com>
- * @author Gonzalo Diethelm <gonzalo.diethelm@aditiva.com>
- */
-//==========================================================================
-
-#ifndef ACE_VECTOR_T_H
-#define ACE_VECTOR_T_H
-
-#include "ace/pre.h"
-
-#include "ace/Array.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/*
- * Default size for an ACE_Vector.
- */
-const size_t ACE_VECTOR_DEFAULT_SIZE = 32;
-
-/**
- * @class ACE_Vector
- *
- * @brief Defines an STL-like vector container.
- *
- * This is an STL-like template vector container, a wrapper around
- * ACE_Array. It provides at least the basic std::vector look and
- * feel: push_back(), clear(), resize(), capacity(). This template
- * class uses the copy semantic paradigm, though it is okay to use
- * reference counted smart pointers (see ACE_Ptr&lt;T&gt;) with this
- * template class.
- *
- * <b> Requirements and Performance Characteristics</b>
- * - Internal Structure
- * ACE_Array
- * - Duplicates allowed?
- * Yes
- * - Random access allowed?
- * No
- * - Search speed
- * N/A
- * - Insert/replace speed
- * Linear
- * - Iterator still valid after change to container?
- * Yes
- * - Frees memory for removed elements?
- * No
- * - Items inserted by
- * Value
- * - Requirements for contained type
- * -# Default constructor
- * -# Copy constructor
- * -# operator=
- */
-template<class T, size_t DEFAULT_SIZE = ACE_VECTOR_DEFAULT_SIZE>
-class ACE_Vector : public ACE_Array<T>
-{
-public:
- /**
- * A short name for iterator for ACE_Vector.
- */
- typedef ACE_Array_Iterator<T> Iterator;
-
-
- /**
- * General constructor.
- *
- * @param init_size Initial size of the vector with the default
- * value of DEFAULT_SIZE
- * @param alloc Pointer to an ACE allocator. If it is NULL then the
- * default ACE allocator is used
- */
- ACE_Vector (const size_t init_size = DEFAULT_SIZE,
- ACE_Allocator* alloc = 0);
-
- /**
- * Destructor.
- */
- ~ACE_Vector ();
-
- /**
- * Returns the current vector capacity, that is, the currently
- * allocated buffer size.
- *
- * @return Current buffer size of the vector
- */
- size_t capacity (void) const;
-
- /**
- * Returns the vector's dynamic size / actual current size of the
- * vector. Do not confuse it with ACE_Array::size(), which returns
- * the array's capacity. Unfortunately, ACE is not very consistent
- * with the function names.
- *
- * @return Dynamic size / actual current size of the vector.
- */
- size_t size (void) const;
-
- /**
- * Clears out the vector. It does not reallocate the vector's
- * buffer, it is just sets the vector's dynamic size to 0.
- */
- void clear (void);
-
- /**
- * Resizes the vector to the new capacity. If the vector's current
- * capacity is smaller than the size to be specified, then the
- * buffer gets reallocated. If the new capacity is less than the
- * current capacity of the vector, the buffer size stays the same.
- *
- * @param new_size New capacity of the vector
- * @param t A filler value (of the class T) for initializing the
- * elements of the vector with. By default, if this
- * parameter is not specified, the default value of the
- * class T will be used (for more detail, see the
- * initialization clause for this parameter).
- */
- void resize (const size_t new_size,
- const T& t);
-
- /**
- * Appends a new element to the vector ("push back"). If the
- * dynamic size of the vector is equal to the capacity of the vector
- * (vector is at capacity), the vector automatically doubles its
- * capacity.
- *
- * @param elem A reference to the new element to be appended. By
- * default, this parameters gets initialized with the
- * default value of the class T.
- */
- void push_back (const T& elem);
-
- /**
- * Deletes the last element from the vector ("pop back"). What this
- * function really does is decrement the dynamic size of the
- * vector. The vector's buffer does not get reallocated for
- * performance.
- */
- void pop_back (void);
-
- /**
- * This function dumps the content of the vector. TO BE MOVED out
- * of this class. It needs to be implemented as a global template
- * function that accepts a const ACE_Vector&lt;T&gt;, in order to
- * make instances of this class compile on Linux, AIX. G++ and xlC
- * have template instantiation algoriths, which are different from
- * the one in Visual C++. The algorithms try to instantiate ALL
- * methods declared in the template class, regardless of whether the
- * functions are used or not. That is, all of the classes, that are
- * used as elements in ACE_Vector's, have to have the dump() methods
- * defined in them (seems to be overkill).
- *
- * This function calls T::dump() for each element of the vector.
- */
- void dump (void) const;
-
-protected:
-
- /**
- * Dynamic size (length) of the vector.
- */
- size_t length_;
-
- /**
- * Current capacity (buffer size) of the vector.
- */
- size_t curr_max_size_;
-};
-
-#if 0
-/*
- * Not sure about including these functions, if for no other reason,
- * because they polute the global namespace!
- */
-
-/**
- * Compare two vectors in the range of [from_ndx..to_ndx]. This
- * template function requires class T to have the operator!=()
- * declared in the class. It is safe to define vectors of scalar data
- * types, like int, double, etc., including class ACE_TString.
- *
- * @param v1 The first vector (out of the two) to be compared.
- * @param v2 The Second vector (out of the two) to be compared.
- * @param from_ndx Compare vector v1 and v2, starting with the
- * "from_ndx" index .
- * @param to_ndx Compare vector v1 and v2, from "from_ndx" to
- * "to_ndx".
- * @return Returns true if v1==v2 in the specified index range,
- * returns false otherwise. Also, returns false in case if
- * v1's size is not equal to v2's size.
- */
-template<class T>
-int compare (const ACE_Vector<T>& v1,
- const ACE_Vector<T>& v2,
- const size_t from_ndx,
- const size_t to_ndx);
-
-/**
- * Does a partial comparison of two vectors in the range of
- * [from_ndx..to_ndx]. The only difference between this function and
- * the template compare&lt;T&gt; function is that this function does
- * not require v1 and v2 to be of equal size.
- *
- * @param v1 The first vector (out of the two) to be compared.
- * @param v2 The Second vector (out of the two) to be compared.
- * @param from_ndx Compare vector v1 and v2, starting with the
- * "from_ndx" index .
- * @param to_ndx Compare vector v1 and v2, from "from_ndx" to
- * "to_ndx".
- * @return Returns true if vector v1 and v2 are equal in the specified
- * index range.
- */
-
-template<class T>
-int partial_compare (const ACE_Vector<T>& v1,
- const ACE_Vector<T>& v2,
- const size_t from_ndx,
- const size_t to_ndx);
-#endif /* 0 */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Vector_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Vector_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Vector_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-
-#endif /* ACE_VECTOR_T_H */
diff --git a/ace/Vector_T.i b/ace/Vector_T.i
deleted file mode 100644
index 4d22680fd8c..00000000000
--- a/ace/Vector_T.i
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-template <class T, size_t DEFAULT_SIZE> ACE_INLINE
-ACE_Vector<T, DEFAULT_SIZE>::ACE_Vector (const size_t init_size,
- ACE_Allocator* alloc)
- : ACE_Array<T> (init_size == 0 ? DEFAULT_SIZE : init_size, alloc)
-{
- length_ = 0;
- curr_max_size_ = this->max_size ();
-}
-
-template <class T, size_t DEFAULT_SIZE> ACE_INLINE
-ACE_Vector<T, DEFAULT_SIZE>::~ACE_Vector ()
-{
-}
-
-template <class T, size_t DEFAULT_SIZE> ACE_INLINE
-size_t ACE_Vector<T, DEFAULT_SIZE>::capacity (void) const
-{
- return curr_max_size_;
-}
-
-template <class T, size_t DEFAULT_SIZE> ACE_INLINE
-size_t ACE_Vector<T, DEFAULT_SIZE>::size (void) const
-{
- return length_;
-}
-
-template <class T, size_t DEFAULT_SIZE> ACE_INLINE
-void ACE_Vector<T, DEFAULT_SIZE>::clear (void)
-{
- length_ = 0;
-}
-
-template <class T, size_t DEFAULT_SIZE> ACE_INLINE
-void ACE_Vector<T, DEFAULT_SIZE>::pop_back (void)
-{
- if (length_ > 0)
- --length_;
-}
-
diff --git a/ace/Version.h b/ace/Version.h
deleted file mode 100644
index 55fcc4dde8a..00000000000
--- a/ace/Version.h
+++ /dev/null
@@ -1,7 +0,0 @@
-// $Id$
-// This is an automatically generated file.
-
-#define ACE_MAJOR_VERSION 5
-#define ACE_MINOR_VERSION 3
-#define ACE_BETA_VERSION 1
-#define ACE_VERSION "5.3.1"
diff --git a/ace/WFMO_Reactor.cpp b/ace/WFMO_Reactor.cpp
deleted file mode 100644
index 3f55ad7a693..00000000000
--- a/ace/WFMO_Reactor.cpp
+++ /dev/null
@@ -1,2559 +0,0 @@
-// $Id$
-
-#include "ace/WFMO_Reactor.h"
-
-#if defined (ACE_WIN32)
-
-#include "ace/Handle_Set.h"
-#include "ace/Timer_Heap.h"
-#include "ace/Thread.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/WFMO_Reactor.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, WFMO_Reactor, "$Id$")
-
-#include "ace/Auto_Ptr.h"
-
-ACE_WFMO_Reactor_Handler_Repository::ACE_WFMO_Reactor_Handler_Repository (ACE_WFMO_Reactor &wfmo_reactor)
- : wfmo_reactor_ (wfmo_reactor)
-{
-}
-
-int
-ACE_WFMO_Reactor_Handler_Repository::open (size_t size)
-{
- if (size > MAXIMUM_WAIT_OBJECTS)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%d exceeds MAXIMUM_WAIT_OBJECTS (%d)\n"),
- size,
- MAXIMUM_WAIT_OBJECTS),
- -1);
-
- // Dynamic allocation
- ACE_NEW_RETURN (this->current_handles_,
- ACE_HANDLE[size],
- -1);
- ACE_NEW_RETURN (this->current_info_,
- Current_Info[size],
- -1);
- ACE_NEW_RETURN (this->current_suspended_info_,
- Suspended_Info[size],
- -1);
- ACE_NEW_RETURN (this->to_be_added_info_,
- To_Be_Added_Info[size],
- -1);
-
- // Initialization
- this->max_size_ = size;
- this->max_handlep1_ = 0;
- this->suspended_handles_ = 0;
- this->handles_to_be_added_ = 0;
- this->handles_to_be_deleted_ = 0;
- this->handles_to_be_suspended_ = 0;
- this->handles_to_be_resumed_ = 0;
-
- for (size_t i = 0; i < size; i++)
- this->current_handles_[i] = ACE_INVALID_HANDLE;
-
- return 0;
-}
-
-ACE_WFMO_Reactor_Handler_Repository::~ACE_WFMO_Reactor_Handler_Repository (void)
-{
- // Free up dynamically allocated space
- delete [] this->current_handles_;
- delete [] this->current_info_;
- delete [] this->current_suspended_info_;
- delete [] this->to_be_added_info_;
-}
-
-ACE_Reactor_Mask
-ACE_WFMO_Reactor_Handler_Repository::bit_ops (long &existing_masks,
- ACE_Reactor_Mask change_masks,
- int operation)
-{
- // Find the old reactor masks. This automatically does the work of
- // the GET_MASK operation.
-
- ACE_Reactor_Mask old_masks = ACE_Event_Handler::NULL_MASK;
-
- if (ACE_BIT_ENABLED (existing_masks, FD_READ)
- || ACE_BIT_ENABLED (existing_masks, FD_CLOSE))
- ACE_SET_BITS (old_masks, ACE_Event_Handler::READ_MASK);
-
- if (ACE_BIT_ENABLED (existing_masks, FD_WRITE))
- ACE_SET_BITS (old_masks, ACE_Event_Handler::WRITE_MASK);
-
- if (ACE_BIT_ENABLED (existing_masks, FD_OOB))
- ACE_SET_BITS (old_masks, ACE_Event_Handler::EXCEPT_MASK);
-
- if (ACE_BIT_ENABLED (existing_masks, FD_ACCEPT))
- ACE_SET_BITS (old_masks, ACE_Event_Handler::ACCEPT_MASK);
-
- if (ACE_BIT_ENABLED (existing_masks, FD_CONNECT))
- ACE_SET_BITS (old_masks, ACE_Event_Handler::CONNECT_MASK);
-
- if (ACE_BIT_ENABLED (existing_masks, FD_QOS))
- ACE_SET_BITS (old_masks, ACE_Event_Handler::QOS_MASK);
-
- if (ACE_BIT_ENABLED (existing_masks, FD_GROUP_QOS))
- ACE_SET_BITS (old_masks, ACE_Event_Handler::GROUP_QOS_MASK);
-
- switch (operation)
- {
- case ACE_Reactor::CLR_MASK:
- // For the CLR_MASK operation, clear only the specific masks.
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::READ_MASK))
- {
- ACE_CLR_BITS (existing_masks, FD_READ);
- ACE_CLR_BITS (existing_masks, FD_CLOSE);
- }
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::WRITE_MASK))
- ACE_CLR_BITS (existing_masks, FD_WRITE);
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::EXCEPT_MASK))
- ACE_CLR_BITS (existing_masks, FD_OOB);
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::ACCEPT_MASK))
- ACE_CLR_BITS (existing_masks, FD_ACCEPT);
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::CONNECT_MASK))
- ACE_CLR_BITS (existing_masks, FD_CONNECT);
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::QOS_MASK))
- ACE_CLR_BITS (existing_masks, FD_QOS);
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::GROUP_QOS_MASK))
- ACE_CLR_BITS (existing_masks, FD_GROUP_QOS);
-
- break;
-
- case ACE_Reactor::SET_MASK:
- // If the operation is a set, first reset any existing masks
-
- existing_masks = 0;
- /* FALLTHRU */
-
- case ACE_Reactor::ADD_MASK:
- // For the ADD_MASK and the SET_MASK operation, add only the
- // specific masks.
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::READ_MASK))
- {
- ACE_SET_BITS (existing_masks, FD_READ);
- ACE_SET_BITS (existing_masks, FD_CLOSE);
- }
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::WRITE_MASK))
- ACE_SET_BITS (existing_masks, FD_WRITE);
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::EXCEPT_MASK))
- ACE_SET_BITS (existing_masks, FD_OOB);
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::ACCEPT_MASK))
- ACE_SET_BITS (existing_masks, FD_ACCEPT);
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::CONNECT_MASK))
- ACE_SET_BITS (existing_masks, FD_CONNECT);
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::QOS_MASK))
- ACE_SET_BITS (existing_masks, FD_QOS);
-
- if (ACE_BIT_ENABLED (change_masks, ACE_Event_Handler::GROUP_QOS_MASK))
- ACE_SET_BITS (existing_masks, FD_GROUP_QOS);
-
- break;
-
- case ACE_Reactor::GET_MASK:
-
- // The work for this operation is done in all cases at the
- // begining of the function.
-
- ACE_UNUSED_ARG (change_masks);
-
- break;
- }
-
- return old_masks;
-}
-
-int
-ACE_WFMO_Reactor_Handler_Repository::unbind_i (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- int &changes_required)
-{
- int error = 0;
-
- // Remember this value; only if it changes do we need to wakeup
- // the other threads
- size_t original_handle_count = this->handles_to_be_deleted_;
- int result = 0;
- size_t i;
-
- // Go through all the handles looking for <handle>. Even if we find
- // it, we continue through the rest of the list since <handle> could
- // appear multiple times. All handles are checked.
-
- // First check the current entries
- for (i = 0; i < this->max_handlep1_ && error == 0; i++)
- // Since the handle can either be the event or the I/O handle,
- // we have to check both
- if ((this->current_handles_[i] == handle
- || this->current_info_[i].io_handle_ == handle)
- && // Make sure that it is not already marked for deleted
- !this->current_info_[i].delete_entry_)
- {
- result = this->remove_handler_i (i,
- mask);
- if (result == -1)
- error = 1;
- }
-
- // Then check the suspended entries
- for (i = 0; i < this->suspended_handles_ && error == 0; i++)
- // Since the handle can either be the event or the I/O handle, we
- // have to check both
- if ((this->current_suspended_info_[i].io_handle_ == handle
- || this->current_suspended_info_[i].event_handle_ == handle)
- &&
- // Make sure that it is not already marked for deleted
- !this->current_suspended_info_[i].delete_entry_)
- {
- result = this->remove_suspended_handler_i (i,
- mask);
- if (result == -1)
- error = 1;
- }
-
- // Then check the to_be_added entries
- for (i = 0; i < this->handles_to_be_added_ && error == 0; i++)
- // Since the handle can either be the event or the I/O handle,
- // we have to check both
- if ((this->to_be_added_info_[i].io_handle_ == handle
- || this->to_be_added_info_[i].event_handle_ == handle)
- &&
- // Make sure that it is not already marked for deleted
- !this->to_be_added_info_[i].delete_entry_)
- {
- result = this->remove_to_be_added_handler_i (i,
- mask);
- if (result == -1)
- error = 1;
- }
-
- // Only if the number of handlers to be deleted changes do we need
- // to wakeup the other threads
- if (original_handle_count < this->handles_to_be_deleted_)
- changes_required = 1;
-
- return error ? -1 : 0;
-}
-
-int
-ACE_WFMO_Reactor_Handler_Repository::remove_handler_i (size_t slot,
- ACE_Reactor_Mask to_be_removed_masks)
-{
- // I/O entries
- if (this->current_info_[slot].io_entry_)
- {
- // See if there are other events that the <Event_Handler> is
- // interested in
- this->bit_ops (this->current_info_[slot].network_events_,
- to_be_removed_masks,
- ACE_Reactor::CLR_MASK);
-
- // Disassociate/Reassociate the event from/with the I/O handle.
- // This will depend on the value of remaining set of network
- // events that the <event_handler> is interested in. I don't
- // think we can do anything about errors here, so I will not
- // check this.
- ::WSAEventSelect ((SOCKET) this->current_info_[slot].io_handle_,
- this->current_handles_[slot],
- this->current_info_[slot].network_events_);
- }
- // Normal event entries.
- else if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::DONT_CALL))
- // Preserve DONT_CALL
- to_be_removed_masks = ACE_Event_Handler::DONT_CALL;
- else
- // Make sure that the <to_be_removed_masks> is the NULL_MASK
- to_be_removed_masks = ACE_Event_Handler::NULL_MASK;
-
- // If this event was marked for suspension, undo the suspension flag
- // and reduce the to be suspended count.
- if (this->current_info_[slot].suspend_entry_)
- {
- // Undo suspension
- this->current_info_[slot].suspend_entry_ = 0;
- // Decrement the handle count
- this->handles_to_be_suspended_--;
- }
-
- // If there are no more events that the <Event_Handler> is
- // interested in, or this is a non-I/O entry, schedule the
- // <Event_Handler> for removal
- if (this->current_info_[slot].network_events_ == 0)
- {
- // Mark to be deleted
- this->current_info_[slot].delete_entry_ = 1;
- // Remember the mask
- this->current_info_[slot].close_masks_ = to_be_removed_masks;
- // Increment the handle count
- this->handles_to_be_deleted_++;
- }
-
- // Since it is not a complete removal, we'll call handle_close
- // for all the masks that were removed. This does not change
- // the internal state of the reactor.
- //
- // Note: this condition only applies to I/O entries
- else if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::DONT_CALL) == 0)
- {
- ACE_HANDLE handle = this->current_info_[slot].io_handle_;
- this->current_info_[slot].event_handler_->handle_close (handle,
- to_be_removed_masks);
- }
-
- return 0;
-}
-
-int
-ACE_WFMO_Reactor_Handler_Repository::remove_suspended_handler_i (size_t slot,
- ACE_Reactor_Mask to_be_removed_masks)
-{
- // I/O entries
- if (this->current_suspended_info_[slot].io_entry_)
- {
- // See if there are other events that the <Event_Handler> is
- // interested in
- this->bit_ops (this->current_suspended_info_[slot].network_events_,
- to_be_removed_masks,
- ACE_Reactor::CLR_MASK);
-
- // Disassociate/Reassociate the event from/with the I/O handle.
- // This will depend on the value of remaining set of network
- // events that the <event_handler> is interested in. I don't
- // think we can do anything about errors here, so I will not
- // check this.
- ::WSAEventSelect ((SOCKET) this->current_suspended_info_[slot].io_handle_,
- this->current_suspended_info_[slot].event_handle_,
- this->current_suspended_info_[slot].network_events_);
- }
- // Normal event entries.
- else if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::DONT_CALL))
- // Preserve DONT_CALL
- to_be_removed_masks = ACE_Event_Handler::DONT_CALL;
- else
- // Make sure that the <to_be_removed_masks> is the NULL_MASK
- to_be_removed_masks = ACE_Event_Handler::NULL_MASK;
-
- // If this event was marked for resumption, undo the resumption flag
- // and reduce the to be resumed count.
- if (this->current_suspended_info_[slot].resume_entry_)
- {
- // Undo resumption
- this->current_suspended_info_[slot].resume_entry_ = 0;
- // Decrement the handle count
- this->handles_to_be_resumed_--;
- }
-
- // If there are no more events that the <Event_Handler> is
- // interested in, or this is a non-I/O entry, schedule the
- // <Event_Handler> for removal
- if (this->current_suspended_info_[slot].network_events_ == 0)
- {
- // Mark to be deleted
- this->current_suspended_info_[slot].delete_entry_ = 1;
- // Remember the mask
- this->current_suspended_info_[slot].close_masks_ = to_be_removed_masks;
- // Increment the handle count
- this->handles_to_be_deleted_++;
- }
- // Since it is not a complete removal, we'll call handle_close for
- // all the masks that were removed. This does not change the
- // internal state of the reactor.
- //
- // Note: this condition only applies to I/O entries
- else if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::DONT_CALL) == 0)
- {
- ACE_HANDLE handle = this->current_suspended_info_[slot].io_handle_;
- this->current_suspended_info_[slot].event_handler_->handle_close (handle,
- to_be_removed_masks);
- }
-
- return 0;
-}
-
-int
-ACE_WFMO_Reactor_Handler_Repository::remove_to_be_added_handler_i (size_t slot,
- ACE_Reactor_Mask to_be_removed_masks)
-{
- // I/O entries
- if (this->to_be_added_info_[slot].io_entry_)
- {
- // See if there are other events that the <Event_Handler> is
- // interested in
- this->bit_ops (this->to_be_added_info_[slot].network_events_,
- to_be_removed_masks,
- ACE_Reactor::CLR_MASK);
-
- // Disassociate/Reassociate the event from/with the I/O handle.
- // This will depend on the value of remaining set of network
- // events that the <event_handler> is interested in. I don't
- // think we can do anything about errors here, so I will not
- // check this.
- ::WSAEventSelect ((SOCKET) this->to_be_added_info_[slot].io_handle_,
- this->to_be_added_info_[slot].event_handle_,
- this->to_be_added_info_[slot].network_events_);
- }
- // Normal event entries.
- else if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::DONT_CALL))
- // Preserve DONT_CALL
- to_be_removed_masks = ACE_Event_Handler::DONT_CALL;
- else
- // Make sure that the <to_be_removed_masks> is the NULL_MASK
- to_be_removed_masks = ACE_Event_Handler::NULL_MASK;
-
- // If this event was marked for suspension, undo the suspension flag
- // and reduce the to be suspended count.
- if (this->to_be_added_info_[slot].suspend_entry_)
- {
- // Undo suspension
- this->to_be_added_info_[slot].suspend_entry_ = 0;
- // Decrement the handle count
- this->handles_to_be_suspended_--;
- }
-
- // If there are no more events that the <Event_Handler> is
- // interested in, or this is a non-I/O entry, schedule the
- // <Event_Handler> for removal
- if (this->to_be_added_info_[slot].network_events_ == 0)
- {
- // Mark to be deleted
- this->to_be_added_info_[slot].delete_entry_ = 1;
- // Remember the mask
- this->to_be_added_info_[slot].close_masks_ = to_be_removed_masks;
- // Increment the handle count
- this->handles_to_be_deleted_++;
- }
- // Since it is not a complete removal, we'll call handle_close
- // for all the masks that were removed. This does not change
- // the internal state of the reactor.
- //
- // Note: this condition only applies to I/O entries
- else if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::DONT_CALL) == 0)
- {
- ACE_HANDLE handle = this->to_be_added_info_[slot].io_handle_;
- this->to_be_added_info_[slot].event_handler_->handle_close (handle,
- to_be_removed_masks);
- }
-
- return 0;
-}
-
-int
-ACE_WFMO_Reactor_Handler_Repository::suspend_handler_i (ACE_HANDLE handle,
- int &changes_required)
-{
- size_t i = 0;
-
- // Go through all the handles looking for <handle>. Even if we find
- // it, we continue through the rest of the list since <handle> could
- // appear multiple times. All handles are checked.
-
- // Check the current entries first.
- for (i = 0; i < this->max_handlep1_; i++)
- // Since the handle can either be the event or the I/O handle,
- // we have to check both
- if ((this->current_handles_[i] == handle ||
- this->current_info_[i].io_handle_ == handle) &&
- // Make sure that it is not already marked for suspension
- !this->current_info_[i].suspend_entry_)
- {
- // Mark to be suspended
- this->current_info_[i].suspend_entry_ = 1;
- // Increment the handle count
- this->handles_to_be_suspended_++;
- // Changes will be required
- changes_required = 1;
- }
-
- // Then check the suspended entries.
- for (i = 0; i < this->suspended_handles_; i++)
- // Since the handle can either be the event or the I/O handle,
- // we have to check both
- if ((this->current_suspended_info_[i].event_handle_ == handle ||
- this->current_suspended_info_[i].io_handle_ == handle) &&
- // Make sure that the resumption is not already undone
- this->current_suspended_info_[i].resume_entry_)
- {
- // Undo resumption
- this->current_suspended_info_[i].resume_entry_ = 0;
- // Decrement the handle count
- this->handles_to_be_resumed_--;
- // Changes will be required
- changes_required = 1;
- }
-
- // Then check the to_be_added entries.
- for (i = 0; i < this->handles_to_be_added_; i++)
- // Since the handle can either be the event or the I/O handle,
- // we have to check both
- if ((this->to_be_added_info_[i].io_handle_ == handle ||
- this->to_be_added_info_[i].event_handle_ == handle) &&
- // Make sure that it is not already marked for suspension
- !this->to_be_added_info_[i].suspend_entry_)
- {
- // Mark to be suspended
- this->to_be_added_info_[i].suspend_entry_ = 1;
- // Increment the handle count
- this->handles_to_be_suspended_++;
- // Changes will be required
- changes_required = 1;
- }
-
- return 0;
-}
-
-int
-ACE_WFMO_Reactor_Handler_Repository::resume_handler_i (ACE_HANDLE handle,
- int &changes_required)
-{
- size_t i = 0;
-
- // Go through all the handles looking for <handle>. Even if we find
- // it, we continue through the rest of the list since <handle> could
- // appear multiple times. All handles are checked.
-
- // Check the current entries first.
- for (i = 0; i < this->max_handlep1_; i++)
- // Since the handle can either be the event or the I/O handle,
- // we have to check both
- if ((this->current_handles_[i] == handle ||
- this->current_info_[i].io_handle_ == handle) &&
- // Make sure that the suspension is not already undone
- this->current_info_[i].suspend_entry_)
- {
- // Undo suspension
- this->current_info_[i].suspend_entry_ = 0;
- // Decrement the handle count
- this->handles_to_be_suspended_--;
- // Changes will be required
- changes_required = 1;
- }
-
- // Then check the suspended entries.
- for (i = 0; i < this->suspended_handles_; i++)
- // Since the handle can either be the event or the I/O handle,
- // we have to check both
- if ((this->current_suspended_info_[i].event_handle_ == handle ||
- this->current_suspended_info_[i].io_handle_ == handle) &&
- // Make sure that it is not already marked for resumption
- !this->current_suspended_info_[i].resume_entry_)
- {
- // Mark to be resumed
- this->current_suspended_info_[i].resume_entry_ = 1;
- // Increment the handle count
- this->handles_to_be_resumed_++;
- // Changes will be required
- changes_required = 1;
- }
-
- // Then check the to_be_added entries.
- for (i = 0; i < this->handles_to_be_added_; i++)
- // Since the handle can either be the event or the I/O handle,
- // we have to check both
- if ((this->to_be_added_info_[i].io_handle_ == handle ||
- this->to_be_added_info_[i].event_handle_ == handle) &&
- // Make sure that the suspension is not already undone
- this->to_be_added_info_[i].suspend_entry_)
- {
- // Undo suspension
- this->to_be_added_info_[i].suspend_entry_ = 0;
- // Decrement the handle count
- this->handles_to_be_suspended_--;
- // Changes will be required
- changes_required = 1;
- }
-
- return 0;
-}
-
-void
-ACE_WFMO_Reactor_Handler_Repository::unbind_all (void)
-{
- {
- ACE_GUARD (ACE_Process_Mutex, ace_mon, this->wfmo_reactor_.lock_);
-
- int dummy;
- size_t i;
-
- // Remove all the current handlers
- for (i = 0; i < this->max_handlep1_; i++)
- this->unbind_i (this->current_handles_[i],
- ACE_Event_Handler::ALL_EVENTS_MASK,
- dummy);
-
- // Remove all the suspended handlers
- for (i = 0; i < this->suspended_handles_; i++)
- this->unbind_i (this->current_suspended_info_[i].event_handle_,
- ACE_Event_Handler::ALL_EVENTS_MASK,
- dummy);
-
- // Remove all the to_be_added handlers
- for (i = 0; i < this->handles_to_be_added_; i++)
- this->unbind_i (this->to_be_added_info_[i].event_handle_,
- ACE_Event_Handler::ALL_EVENTS_MASK,
- dummy);
-
- }
-
- // The guard is released here
-
- // Wake up all threads in WaitForMultipleObjects so that they can
- // reconsult the handle set
- this->wfmo_reactor_.wakeup_all_threads ();
-}
-
-int
-ACE_WFMO_Reactor_Handler_Repository::bind_i (int io_entry,
- ACE_Event_Handler *event_handler,
- long network_events,
- ACE_HANDLE io_handle,
- ACE_HANDLE event_handle,
- int delete_event)
-{
- // Make sure that the <handle> is valid
- if (event_handle == ACE_INVALID_HANDLE)
- event_handle = event_handler->get_handle ();
- if (this->invalid_handle (event_handle))
- return -1;
-
- size_t current_size = this->max_handlep1_ +
- this->handles_to_be_added_ -
- this->handles_to_be_deleted_ +
- this->suspended_handles_;
-
- // Make sure that there's room in the table.
- if (current_size < this->max_size_)
- {
- // Cache this set into the <to_be_added_info_>, till we come
- // around to actually adding this to the <current_info_>
- this->to_be_added_info_[this->handles_to_be_added_].set (event_handle,
- io_entry,
- event_handler,
- io_handle,
- network_events,
- delete_event);
-
- this->handles_to_be_added_++;
-
- // Wake up all threads in WaitForMultipleObjects so that they can
- // reconsult the handle set
- this->wfmo_reactor_.wakeup_all_threads ();
- }
- else
- {
- errno = EMFILE; // File descriptor table is full (better than nothing)
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_WFMO_Reactor_Handler_Repository::make_changes_in_current_infos (void)
-{
- // Go through the entire valid array and check for all handles that
- // have been schedule for deletion
- if (this->handles_to_be_deleted_ > 0 || this->handles_to_be_suspended_ > 0)
- {
- for (size_t i = 0; i < this->max_handlep1_; i++)
- {
- // This stuff is necessary here, since we should not make
- // the upcall until all the internal data structures have
- // been updated. This is to protect against upcalls that
- // try to deregister again.
- ACE_HANDLE handle = ACE_INVALID_HANDLE;
- ACE_Reactor_Mask masks = ACE_Event_Handler::NULL_MASK;
- ACE_Event_Handler *event_handler = 0;
-
- // See if this entry is scheduled for deletion
- if (this->current_info_[i].delete_entry_)
- {
- // Calling the <handle_close> method here will ensure that we
- // will only call it once per deregistering <Event_Handler>.
- // This is essential in the case when the <Event_Handler> will
- // do something like delete itself and we have multiple
- // threads in WFMO_Reactor.
- //
- // Make sure that the DONT_CALL mask is not set
- masks = this->current_info_[i].close_masks_;
- if (ACE_BIT_ENABLED (masks, ACE_Event_Handler::DONT_CALL) == 0)
- {
- // Grab the correct handle depending on the type entry
- if (this->current_info_[i].io_entry_)
- handle = this->current_info_[i].io_handle_;
- else
- handle = this->current_handles_[i];
-
- // Event handler
- event_handler = this->current_info_[i].event_handler_;
- }
-
- // If <WFMO_Reactor> created the event, we need to clean it up
- if (this->current_info_[i].delete_event_)
- ACE_OS::event_destroy (&this->current_handles_[i]);
-
- // Reduce count by one
- this->handles_to_be_deleted_--;
- }
-
- // See if this entry is scheduled for suspension
- else if (this->current_info_[i].suspend_entry_)
- {
- this->current_suspended_info_ [this->suspended_handles_].set (this->current_handles_[i],
- this->current_info_[i]);
- // Increase number of suspended handles
- this->suspended_handles_++;
-
- // Reduce count by one
- this->handles_to_be_suspended_--;
- }
-
- // See if this entry is scheduled for deletion or suspension
- // If so we need to clean up
- if (this->current_info_[i].delete_entry_ ||
- this->current_info_[i].suspend_entry_ )
- {
- size_t last_valid_slot = this->max_handlep1_ - 1;
- // If this is the last handle in the set, no need to swap
- // places. Simply remove it.
- if (i < last_valid_slot)
- // Swap this handle with the last valid handle
- {
- // Struct copy
- this->current_info_[i] =
- this->current_info_[last_valid_slot];
- this->current_handles_[i] =
- this->current_handles_[last_valid_slot];
- }
- // Reset the info in this slot
- this->current_info_[last_valid_slot].reset ();
- this->current_handles_[last_valid_slot] = ACE_INVALID_HANDLE;
- this->max_handlep1_--;
- }
-
- // Now that all internal structures have been updated, make
- // the upcall.
- if (event_handler != 0)
- event_handler->handle_close (handle, masks);
- }
- }
-
- return 0;
-}
-
-int
-ACE_WFMO_Reactor_Handler_Repository::make_changes_in_suspension_infos (void)
-{
- // Go through the <suspended_handle> array
- if (this->handles_to_be_deleted_ > 0 || this->handles_to_be_resumed_ > 0)
- {
- for (size_t i = 0; i < this->suspended_handles_; i++)
- {
- // This stuff is necessary here, since we should not make
- // the upcall until all the internal data structures have
- // been updated. This is to protect against upcalls that
- // try to deregister again.
- ACE_HANDLE handle = ACE_INVALID_HANDLE;
- ACE_Reactor_Mask masks = ACE_Event_Handler::NULL_MASK;
- ACE_Event_Handler *event_handler = 0;
-
- // See if this entry is scheduled for deletion
- if (this->current_suspended_info_[i].delete_entry_)
- {
- // Calling the <handle_close> method here will ensure that we
- // will only call it once per deregistering <Event_Handler>.
- // This is essential in the case when the <Event_Handler> will
- // do something like delete itself and we have multiple
- // threads in WFMO_Reactor.
- //
- // Make sure that the DONT_CALL mask is not set
- masks = this->current_suspended_info_[i].close_masks_;
- if (ACE_BIT_ENABLED (masks, ACE_Event_Handler::DONT_CALL) == 0)
- {
- // Grab the correct handle depending on the type entry
- if (this->current_suspended_info_[i].io_entry_)
- handle = this->current_suspended_info_[i].io_handle_;
- else
- handle = this->current_suspended_info_[i].event_handle_;
-
- // Upcall
- event_handler = this->current_suspended_info_[i].event_handler_;
- }
-
- // If <WFMO_Reactor> created the event, we need to clean it up
- if (this->current_suspended_info_[i].delete_event_)
- ACE_OS::event_destroy (&this->current_suspended_info_[i].event_handle_);
-
- // Reduce count by one
- this->handles_to_be_deleted_--;
- }
-
- else if (this->current_suspended_info_[i].resume_entry_)
- {
- // Add to the end of the current handles set
- this->current_handles_[this->max_handlep1_] = this->current_suspended_info_[i].event_handle_;
- // Struct copy
- this->current_info_[this->max_handlep1_].set (this->current_suspended_info_[i]);
- this->max_handlep1_++;
-
- // Reduce count by one
- this->handles_to_be_resumed_--;
- }
-
- // If an entry needs to be removed, either because it
- // was deleted or resumed, remove it now before doing
- // the upcall.
- if (this->current_suspended_info_[i].resume_entry_ ||
- this->current_suspended_info_[i].delete_entry_)
- {
- size_t last_valid_slot = this->suspended_handles_ - 1;
- // Net effect is that we're removing an entry and
- // compressing the list from the end. So, if removing
- // an entry from the middle, copy the last valid one to the
- // removed slot. Reset the end and decrement the number
- // of suspended handles.
- if (i < last_valid_slot)
- // Struct copy
- this->current_suspended_info_[i] =
- this->current_suspended_info_[last_valid_slot];
- this->current_suspended_info_[last_valid_slot].reset ();
- this->suspended_handles_--;
- }
-
- // Now that all internal structures have been updated, make
- // the upcall.
- if (event_handler != 0)
- event_handler->handle_close (handle, masks);
- }
- }
-
- return 0;
-}
-
-int
-ACE_WFMO_Reactor_Handler_Repository::make_changes_in_to_be_added_infos (void)
-{
- // Go through the <to_be_added_*> arrays
- for (size_t i = 0; i < this->handles_to_be_added_; i++)
- {
- // This stuff is necessary here, since we should not make
- // the upcall until all the internal data structures have
- // been updated. This is to protect against upcalls that
- // try to deregister again.
- ACE_HANDLE handle = ACE_INVALID_HANDLE;
- ACE_Reactor_Mask masks = ACE_Event_Handler::NULL_MASK;
- ACE_Event_Handler *event_handler = 0;
-
- // See if this entry is scheduled for deletion
- if (this->to_be_added_info_[i].delete_entry_)
- {
- // Calling the <handle_close> method here will ensure that we
- // will only call it once per deregistering <Event_Handler>.
- // This is essential in the case when the <Event_Handler> will
- // do something like delete itself and we have multiple
- // threads in WFMO_Reactor.
- //
- // Make sure that the DONT_CALL mask is not set
- masks = this->to_be_added_info_[i].close_masks_;
- if (ACE_BIT_ENABLED (masks, ACE_Event_Handler::DONT_CALL) == 0)
- {
- // Grab the correct handle depending on the type entry
- if (this->to_be_added_info_[i].io_entry_)
- handle = this->to_be_added_info_[i].io_handle_;
- else
- handle = this->to_be_added_info_[i].event_handle_;
-
- // Upcall
- event_handler = this->to_be_added_info_[i].event_handler_;
- }
-
- // If <WFMO_Reactor> created the event, we need to clean it up
- if (this->to_be_added_info_[i].delete_event_)
- ACE_OS::event_destroy (&this->to_be_added_info_[i].event_handle_);
-
- // Reduce count by one
- this->handles_to_be_deleted_--;
- }
-
- // See if this entry is scheduled for suspension
- else if (this->to_be_added_info_[i].suspend_entry_)
- {
- this->current_suspended_info_ [this->suspended_handles_].set (this->to_be_added_info_[i].event_handle_,
- this->to_be_added_info_[i]);
- // Increase number of suspended handles
- this->suspended_handles_++;
-
- // Reduce count by one
- this->handles_to_be_suspended_--;
- }
-
- // If neither of the two flags are on, add to current
- else
- {
- // Add to the end of the current handles set
- this->current_handles_[this->max_handlep1_] = this->to_be_added_info_[i].event_handle_;
- // Struct copy
- this->current_info_[this->max_handlep1_].set (this->to_be_added_info_[i]);
- this->max_handlep1_++;
- }
-
- // Reset the <to_be_added_info_>
- this->to_be_added_info_[i].reset ();
-
- // Now that all internal structures have been updated, make the
- // upcall.
- if (event_handler != 0)
- event_handler->handle_close (handle, masks);
- }
-
- // Since all to be added handles have been taken care of, reset the
- // counter
- this->handles_to_be_added_ = 0;
-
- return 0;
-}
-
-void
-ACE_WFMO_Reactor_Handler_Repository::dump (void) const
-{
- size_t i = 0;
-
- ACE_TRACE ("ACE_WFMO_Reactor_Handler_Repository::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Max size = %d\n"),
- this->max_size_));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Current info table\n\n")));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\tSize = %d\n"),
- this->max_handlep1_));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\tHandles to be suspended = %d\n"),
- this->handles_to_be_suspended_));
-
- for (i = 0; i < this->max_handlep1_; i++)
- this->current_info_[i].dump (this->current_handles_[i]);
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\n")));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("To-be-added info table\n\n")));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\tSize = %d\n"),
- this->handles_to_be_added_));
-
- for (i = 0; i < this->handles_to_be_added_; i++)
- this->to_be_added_info_[i].dump ();
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\n")));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Suspended info table\n\n")));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\tSize = %d\n"),
- this->suspended_handles_));
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\tHandles to be resumed = %d\n"),
- this->handles_to_be_resumed_));
-
- for (i = 0; i < this->suspended_handles_; i++)
- this->current_suspended_info_[i].dump ();
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("\n")));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Total handles to be deleted = %d\n"),
- this->handles_to_be_deleted_));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_END_DUMP));
-}
-
-/************************************************************/
-
-int
-ACE_WFMO_Reactor::work_pending (const ACE_Time_Value &)
-{
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_WFMO_Reactor::ACE_WFMO_Reactor (ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq,
- ACE_Reactor_Notify *notify)
- : signal_handler_ (0),
- delete_signal_handler_ (0),
- timer_queue_ (0),
- delete_timer_queue_ (0),
- delete_handler_rep_ (0),
- delete_notify_handler_ (0),
- lock_adapter_ (lock_),
- handler_rep_ (*this),
- // this event is initially signaled
- ok_to_wait_ (1),
- // this event is initially unsignaled
- wakeup_all_threads_ (0),
- // this event is initially unsignaled
- waiting_to_change_state_ (0),
- active_threads_ (0),
- owner_ (ACE_Thread::self ()),
- new_owner_ (0),
- change_state_thread_ (0),
- open_for_business_ (0),
- deactivated_ (0)
-{
- if (this->open (ACE_WFMO_Reactor::DEFAULT_SIZE, 0, sh, tq, 0, notify) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("WFMO_Reactor")));
-}
-
-ACE_WFMO_Reactor::ACE_WFMO_Reactor (size_t size,
- int unused,
- ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq,
- ACE_Reactor_Notify *notify)
- : signal_handler_ (0),
- delete_signal_handler_ (0),
- timer_queue_ (0),
- delete_timer_queue_ (0),
- delete_handler_rep_ (0),
- delete_notify_handler_ (0),
- lock_adapter_ (lock_),
- handler_rep_ (*this),
- // this event is initially signaled
- ok_to_wait_ (1),
- // this event is initially unsignaled
- wakeup_all_threads_ (0),
- // this event is initially unsignaled
- waiting_to_change_state_ (0),
- active_threads_ (0),
- owner_ (ACE_Thread::self ()),
- new_owner_ (0),
- change_state_thread_ (0),
- open_for_business_ (0),
- deactivated_ (0)
-{
- ACE_UNUSED_ARG (unused);
-
- if (this->open (size, 0, sh, tq, 0, notify) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("WFMO_Reactor")));
-}
-
-int
-ACE_WFMO_Reactor::current_info (ACE_HANDLE, size_t &)
-{
- return -1;
-}
-
-int
-ACE_WFMO_Reactor::open (size_t size,
- int unused,
- ACE_Sig_Handler *sh,
- ACE_Timer_Queue *tq,
- int disable_notify_pipe,
- ACE_Reactor_Notify *notify)
-{
- ACE_UNUSED_ARG (unused);
- ACE_UNUSED_ARG (disable_notify_pipe);
-
- // This GUARD is necessary since we are updating shared state.
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- // If we are already open, return -1
- if (this->open_for_business_)
- return -1;
-
- // Timer Queue
- if (this->delete_timer_queue_)
- delete this->timer_queue_;
-
- if (tq == 0)
- {
- ACE_NEW_RETURN (this->timer_queue_,
- ACE_Timer_Heap,
- -1);
- this->delete_timer_queue_ = 1;
- }
- else
- {
- this->timer_queue_ = tq;
- this->delete_timer_queue_ = 0;
- }
-
- // Signal Handler
- if (this->delete_signal_handler_)
- delete this->signal_handler_;
-
- if (sh == 0)
- {
- ACE_NEW_RETURN (this->signal_handler_,
- ACE_Sig_Handler,
- -1);
- this->delete_signal_handler_ = 1;
- }
- else
- {
- this->signal_handler_ = sh;
- this->delete_signal_handler_ = 0;
- }
-
- // Setup the atomic wait array (used later in <handle_events>)
- this->atomic_wait_array_[0] = this->lock_.lock ().proc_mutex_;
- this->atomic_wait_array_[1] = this->ok_to_wait_.handle ();
-
- // This is to guard against reopens of WFMO_Reactor
- if (this->delete_handler_rep_)
- this->handler_rep_.~ACE_WFMO_Reactor_Handler_Repository ();
-
- // Open the handle repository. Two additional handles for internal
- // purposes
- if (this->handler_rep_.open (size + 2) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("opening handler repository")),
- -1);
- else
- this->delete_handler_rep_ = 1;
-
- this->notify_handler_ = notify;
-
- if (this->notify_handler_ == 0)
- {
- ACE_NEW_RETURN (this->notify_handler_,
- ACE_WFMO_Reactor_Notify,
- -1);
-
- if (this->notify_handler_ == 0)
- return -1;
- else
- this->delete_notify_handler_ = 1;
- }
-
- /* NOTE */
- // The order of the following two registrations is very important
-
- // Open the notification handler
- if (this->notify_handler_->open (this, this->timer_queue_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("opening notify handler ")),
- -1);
-
- // Register for <wakeup_all_threads> event
- if (this->register_handler (&this->wakeup_all_threads_handler_,
- this->wakeup_all_threads_.handle ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("registering thread wakeup handler")),
- -1);
-
- // Since we have added two handles into the handler repository,
- // update the <handler_repository_>
- if (this->handler_rep_.changes_required ())
- {
- // Make necessary changes to the handler repository
- this->handler_rep_.make_changes ();
- // Turn off <wakeup_all_threads_> since all necessary changes
- // have completed
- this->wakeup_all_threads_.reset ();
- }
-
- // We are open for business
- this->open_for_business_ = 1;
-
- return 0;
-}
-
-int
-ACE_WFMO_Reactor::set_sig_handler (ACE_Sig_Handler *signal_handler)
-{
- if (this->signal_handler_ != 0 && this->delete_signal_handler_ != 0)
- delete this->signal_handler_;
- this->signal_handler_ = signal_handler;
- this->delete_signal_handler_ = 0;
- return 0;
-}
-
-ACE_Timer_Queue *
-ACE_WFMO_Reactor::timer_queue (void) const
-{
- return this->timer_queue_;
-}
-
-int
-ACE_WFMO_Reactor::timer_queue (ACE_Timer_Queue *tq)
-{
- if (this->timer_queue_ != 0 && this->delete_timer_queue_ != 0)
- delete this->timer_queue_;
- this->timer_queue_ = tq;
- this->delete_timer_queue_ = 0;
- return 0;
-}
-
-int
-ACE_WFMO_Reactor::set_timer_queue (ACE_Timer_Queue *tq)
-{
- return this->timer_queue (tq);
-}
-
-int
-ACE_WFMO_Reactor::close (void)
-{
- // This GUARD is necessary since we are updating shared state.
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- // If we are already closed, return error
- if (!this->open_for_business_)
- return -1;
-
- // We are now closed
- this->open_for_business_ = 0;
- // This will unregister all handles
- this->handler_rep_.close ();
-
- return 0;
-}
-
-ACE_WFMO_Reactor::~ACE_WFMO_Reactor (void)
-{
- // Assumption: No threads are left in the Reactor when this method
- // is called (i.e., active_threads_ == 0)
-
- // Close down
- this->close ();
-
- // Make necessary changes to the handler repository that we caused
- // by <close>.
- this->handler_rep_.make_changes ();
-
- if (this->delete_timer_queue_)
- {
- delete this->timer_queue_;
- this->timer_queue_ = 0;
- this->delete_timer_queue_ = 0;
- }
-
- if (this->delete_signal_handler_)
- {
- delete this->signal_handler_;
- this->signal_handler_ = 0;
- this->delete_signal_handler_ = 0;
- }
-
- if (this->delete_notify_handler_)
- {
- delete this->notify_handler_;
- this->notify_handler_ = 0;
- this->delete_notify_handler_ = 0;
- }
-}
-
-int
-ACE_WFMO_Reactor::register_handler_i (ACE_HANDLE event_handle,
- ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask new_masks)
-{
- // If this is a Winsock 1 system, the underlying event assignment will
- // not work, so don't try. Winsock 1 must use ACE_Select_Reactor for
- // reacting to socket activity.
-#if !defined (ACE_HAS_WINSOCK2) || (ACE_HAS_WINSOCK2 == 0)
- ACE_UNUSED_ARG (event_handle);
- ACE_UNUSED_ARG (io_handle);
- ACE_UNUSED_ARG (event_handler);
- ACE_UNUSED_ARG (new_masks);
- ACE_NOTSUP_RETURN (-1);
-#else
-
- // Make sure that the <handle> is valid
- if (io_handle == ACE_INVALID_HANDLE)
- io_handle = event_handler->get_handle ();
-
- if (this->handler_rep_.invalid_handle (io_handle))
- {
- errno = ERROR_INVALID_HANDLE;
- return -1;
- }
-
- long new_network_events = 0;
- int delete_event = 0;
- auto_ptr <ACE_Auto_Event> event;
-
- // Look up the repository to see if the <event_handler> is already
- // there.
- ACE_Reactor_Mask old_masks;
- int found = this->handler_rep_.modify_network_events_i (io_handle,
- new_masks,
- old_masks,
- new_network_events,
- event_handle,
- delete_event,
- ACE_Reactor::ADD_MASK);
-
- // Check to see if the user passed us a valid event; If not then we
- // need to create one
- if (event_handle == ACE_INVALID_HANDLE)
- {
- // Note: don't change this since some C++ compilers have
- // <auto_ptr>s that don't work properly...
- auto_ptr<ACE_Auto_Event> tmp (new ACE_Auto_Event);
- event = tmp;
- event_handle = event->handle ();
- delete_event = 1;
- }
-
- int result = ::WSAEventSelect ((SOCKET) io_handle,
- event_handle,
- new_network_events);
- // If we had found the <Event_Handler> there is nothing more to do
- if (found)
- return result;
- else if (result != SOCKET_ERROR &&
- this->handler_rep_.bind_i (1,
- event_handler,
- new_network_events,
- io_handle,
- event_handle,
- delete_event) != -1)
- {
- // The <event_handler> was not found in the repository, add to
- // the repository.
- if (delete_event)
- {
- // Clear out the handle in the ACE_Auto_Event so that when
- // it is destroyed, the handle isn't closed out from under
- // the reactor. After setting it, running down the event
- // (via auto_ptr<> event, above) at function return will
- // cause an error because it'll try to close an invalid handle.
- // To avoid that smashing the errno value, save the errno
- // here, explicitly remove the event so the dtor won't do it
- // again, then restore errno.
- ACE_Errno_Guard guard (errno);
- event->handle (ACE_INVALID_HANDLE);
- event->remove ();
- }
- return 0;
- }
- else
- return -1;
-#endif /* ACE_HAS_PHARLAP */
-}
-
-int
-ACE_WFMO_Reactor::mask_ops_i (ACE_HANDLE io_handle,
- ACE_Reactor_Mask new_masks,
- int operation)
-{
- // Make sure that the <handle> is valid
- if (this->handler_rep_.invalid_handle (io_handle))
- return -1;
-
- long new_network_events = 0;
- int delete_event = 0;
- ACE_HANDLE event_handle = ACE_INVALID_HANDLE;
-
- // Look up the repository to see if the <Event_Handler> is already
- // there.
- ACE_Reactor_Mask old_masks;
- int found = this->handler_rep_.modify_network_events_i (io_handle,
- new_masks,
- old_masks,
- new_network_events,
- event_handle,
- delete_event,
- operation);
- if (found)
- {
- int result = ::WSAEventSelect ((SOCKET) io_handle,
- event_handle,
- new_network_events);
- if (result == 0)
- return old_masks;
- else
- return result;
- }
- else
- return -1;
-}
-
-
-
-int
-ACE_WFMO_Reactor_Handler_Repository::modify_network_events_i (ACE_HANDLE io_handle,
- ACE_Reactor_Mask new_masks,
- ACE_Reactor_Mask &old_masks,
- long &new_network_events,
- ACE_HANDLE &event_handle,
- int &delete_event,
- int operation)
-{
- long *modified_network_events = &new_network_events;
- int found = 0;
- size_t i;
-
- // First go through the current entries
- //
- // Look for all entries in the current handles for matching handle
- // (except those that have been scheduled for deletion)
- for (i = 0; i < this->max_handlep1_ && !found; i++)
- if (io_handle == this->current_info_[i].io_handle_ &&
- !this->current_info_[i].delete_entry_)
- {
- found = 1;
- modified_network_events = &this->current_info_[i].network_events_;
- delete_event = this->current_info_[i].delete_event_;
- event_handle = this->current_handles_[i];
- }
-
- // Then pass through the suspended handles
- //
- // Look for all entries in the suspended handles for matching handle
- // (except those that have been scheduled for deletion)
- for (i = 0; i < this->suspended_handles_ && !found; i++)
- if (io_handle == this->current_suspended_info_[i].io_handle_ &&
- !this->current_suspended_info_[i].delete_entry_)
- {
- found = 1;
- modified_network_events = &this->current_suspended_info_[i].network_events_;
- delete_event = this->current_suspended_info_[i].delete_event_;
- event_handle = this->current_suspended_info_[i].event_handle_;
- }
-
- // Then check the to_be_added handles
- //
- // Look for all entries in the to_be_added handles for matching
- // handle (except those that have been scheduled for deletion)
- for (i = 0; i < this->handles_to_be_added_ && !found; i++)
- if (io_handle == this->to_be_added_info_[i].io_handle_ &&
- !this->to_be_added_info_[i].delete_entry_)
- {
- found = 1;
- modified_network_events = &this->to_be_added_info_[i].network_events_;
- delete_event = this->to_be_added_info_[i].delete_event_;
- event_handle = this->to_be_added_info_[i].event_handle_;
- }
-
- old_masks = this->bit_ops (*modified_network_events,
- new_masks,
- operation);
-
- new_network_events = *modified_network_events;
-
- return found;
-}
-
-int
-ACE_WFMO_Reactor_Handler_Repository::handler (ACE_HANDLE handle,
- ACE_Reactor_Mask user_masks,
- ACE_Event_Handler **user_event_handler)
-{
- int found = 0;
- size_t i = 0;
- ACE_Event_Handler *event_handler = 0;
- long existing_masks = 0;
-
- // Look for the handle first
-
- // First go through the current entries
- //
- // Look for all entries in the current handles for matching handle
- // (except those that have been scheduled for deletion)
- for (i = 0; i < this->max_handlep1_ && !found; i++)
- if ((handle == this->current_info_[i].io_handle_ ||
- handle == this->current_handles_[i]) &&
- !this->current_info_[i].delete_entry_)
- {
- found = 1;
- event_handler = this->current_info_[i].event_handler_;
- existing_masks = this->current_info_[i].network_events_;
- }
-
- // Then pass through the suspended handles
- //
- // Look for all entries in the suspended handles for matching handle
- // (except those that have been scheduled for deletion)
- for (i = 0; i < this->suspended_handles_ && !found; i++)
- if ((handle == this->current_suspended_info_[i].io_handle_ ||
- handle == this->current_suspended_info_[i].event_handle_) &&
- !this->current_suspended_info_[i].delete_entry_)
- {
- found = 1;
- event_handler = this->current_suspended_info_[i].event_handler_;
- existing_masks = this->current_suspended_info_[i].network_events_;
- }
-
- // Then check the to_be_added handles
- //
- // Look for all entries in the to_be_added handles for matching
- // handle (except those that have been scheduled for deletion)
- for (i = 0; i < this->handles_to_be_added_ && !found; i++)
- if ((handle == this->to_be_added_info_[i].io_handle_ ||
- handle == this->to_be_added_info_[i].event_handle_) &&
- !this->to_be_added_info_[i].delete_entry_)
- {
- found = 1;
- event_handler = this->to_be_added_info_[i].event_handler_;
- existing_masks = this->to_be_added_info_[i].network_events_;
- }
-
- // If the handle is not found, return failure.
- if (!found)
- return -1;
-
- // Otherwise, make sure that the masks that the user is looking for
- // are on.
- if (found &&
- ACE_BIT_ENABLED (user_masks, ACE_Event_Handler::READ_MASK))
- if (!ACE_BIT_ENABLED (existing_masks, FD_READ)
- && !ACE_BIT_ENABLED (existing_masks, FD_CLOSE))
- found = 0;
-
- if (found &&
- ACE_BIT_ENABLED (user_masks, ACE_Event_Handler::WRITE_MASK))
- if (!ACE_BIT_ENABLED (existing_masks, FD_WRITE))
- found = 0;
-
- if (found &&
- ACE_BIT_ENABLED (user_masks, ACE_Event_Handler::EXCEPT_MASK))
- if (!ACE_BIT_ENABLED (existing_masks, FD_OOB))
- found = 0;
-
- if (found &&
- ACE_BIT_ENABLED (user_masks, ACE_Event_Handler::ACCEPT_MASK))
- if (!ACE_BIT_ENABLED (existing_masks, FD_ACCEPT))
- found = 0;
-
- if (found &&
- ACE_BIT_ENABLED (user_masks, ACE_Event_Handler::CONNECT_MASK))
- if (!ACE_BIT_ENABLED (existing_masks, FD_CONNECT))
- found = 0;
-
- if (found &&
- ACE_BIT_ENABLED (user_masks, ACE_Event_Handler::QOS_MASK))
- if (!ACE_BIT_ENABLED (existing_masks, FD_QOS))
- found = 0;
-
- if (found &&
- ACE_BIT_ENABLED (user_masks, ACE_Event_Handler::GROUP_QOS_MASK))
- if (!ACE_BIT_ENABLED (existing_masks, FD_GROUP_QOS))
- found = 0;
-
- if (found &&
- user_event_handler)
- *user_event_handler = event_handler;
-
- if (found)
- return 0;
- else
- return -1;
-}
-
-// Waits for and dispatches all events. Returns -1 on error, 0 if
-// max_wait_time expired, or the number of events that were dispatched.
-int
-ACE_WFMO_Reactor::event_handling (ACE_Time_Value *max_wait_time,
- int alertable)
-{
- ACE_TRACE ("ACE_WFMO_Reactor::event_handling");
-
- // Make sure we are not closed
- if (!this->open_for_business_ || this->deactivated_)
- return -1;
-
- // Stash the current time -- the destructor of this object will
- // automatically compute how much time elapsed since this method was
- // called.
- ACE_Countdown_Time countdown (max_wait_time);
-
- int result;
- do
- {
- // Check to see if it is ok to enter ::WaitForMultipleObjects
- // This will acquire <this->lock_> on success On failure, the
- // lock will not be acquired
- result = this->ok_to_wait (max_wait_time, alertable);
- if (result != 1)
- return result;
-
- // Increment the number of active threads
- this->active_threads_++;
-
- // Release the <lock_>
- this->lock_.release ();
-
- // Update the countdown to reflect time waiting to play with the
- // mut and event.
- countdown.update ();
-
- // Calculate timeout
- int timeout = this->calculate_timeout (max_wait_time);
-
- // Wait for event to happen
- DWORD wait_status = this->wait_for_multiple_events (timeout,
- alertable);
-
- // Upcall
- result = this->safe_dispatch (wait_status);
- if (0 == result)
- {
- // wait_for_multiple_events timed out without dispatching
- // anything. Because of rounding and conversion errors and
- // such, it could be that the wait loop timed out, but
- // the timer queue said it wasn't quite ready to expire a
- // timer. In this case, max_wait_time won't have quite been
- // reduced to 0, and we need to go around again. If max_wait_time
- // is all the way to 0, just return, as the entire time the
- // caller wanted to wait has been used up.
- countdown.update (); // Reflect time waiting for events
- if (0 == max_wait_time || max_wait_time->usec () == 0)
- break;
- }
- }
- while (result == 0);
-
- return result;
-}
-
-int
-ACE_WFMO_Reactor::ok_to_wait (ACE_Time_Value *max_wait_time,
- int alertable)
-{
- // Calculate the max time we should spend here
- //
- // Note: There is really no need to involve the <timer_queue_> here
- // because even if a timeout in the <timer_queue_> does expire we
- // will not be able to dispatch it
- int timeout = max_wait_time == 0 ? INFINITE : max_wait_time->msec ();
-
- // Atomically wait for both the <lock_> and <ok_to_wait_> event
- DWORD result = 0;
- while (1)
- {
-#if defined (ACE_HAS_PHARLAP)
- // PharLap doesn't implement WaitForMultipleObjectsEx, and doesn't
- // do async I/O, so it's not needed in this case anyway.
- result = ::WaitForMultipleObjects (sizeof this->atomic_wait_array_ / sizeof (ACE_HANDLE),
- this->atomic_wait_array_,
- TRUE,
- timeout);
-
- if (result != WAIT_IO_COMPLETION)
- break;
-
-#elif defined (ACE_HAS_WINCE)
- result = ::WaitForMultipleObjects (sizeof this->atomic_wait_array_ / sizeof (ACE_HANDLE),
- this->atomic_wait_array_,
- TRUE,
- timeout);
- break; // CE does not have WAIT_IO_COMPLETION defined.
-#else
- result = ::WaitForMultipleObjectsEx (sizeof this->atomic_wait_array_ / sizeof (ACE_HANDLE),
- this->atomic_wait_array_,
- TRUE,
- timeout,
- alertable);
-
- if (result != WAIT_IO_COMPLETION)
- break;
-
-#endif /* ACE_HAS_PHARLAP */
- }
-
- switch (result)
- {
- case WAIT_TIMEOUT:
- errno = ETIME;
- return 0;
- case WAIT_FAILED:
- case WAIT_ABANDONED_0:
- ACE_OS::set_errno_to_last_error ();
- return -1;
- default:
- break;
- }
-
- // It is ok to enter ::WaitForMultipleObjects
- return 1;
-}
-
-DWORD
-ACE_WFMO_Reactor::wait_for_multiple_events (int timeout,
- int alertable)
-{
- // Wait for any of handles_ to be active, or until timeout expires.
- // If <alertable> is enabled allow asynchronous completion of
- // ReadFile and WriteFile operations.
-
-#if defined (ACE_HAS_PHARLAP) || defined (ACE_HAS_WINCE)
- // PharLap doesn't do async I/O and doesn't implement
- // WaitForMultipleObjectsEx, so use WaitForMultipleObjects.
- ACE_UNUSED_ARG (alertable);
- return ::WaitForMultipleObjects (this->handler_rep_.max_handlep1 (),
- this->handler_rep_.handles (),
- FALSE,
- timeout);
-#else
- return ::WaitForMultipleObjectsEx (this->handler_rep_.max_handlep1 (),
- this->handler_rep_.handles (),
- FALSE,
- timeout,
- alertable);
-#endif /* ACE_HAS_PHARLAP */
-}
-
-DWORD
-ACE_WFMO_Reactor::poll_remaining_handles (DWORD slot)
-{
- return ::WaitForMultipleObjects (this->handler_rep_.max_handlep1 () - slot,
- this->handler_rep_.handles () + slot,
- FALSE,
- 0);
-}
-
-int
-ACE_WFMO_Reactor::calculate_timeout (ACE_Time_Value *max_wait_time)
-{
- ACE_Time_Value *time = 0;
- if (this->owner_ == ACE_Thread::self ())
- time = this->timer_queue_->calculate_timeout (max_wait_time);
- else
- time = max_wait_time;
-
- if (time == 0)
- return INFINITE;
- else
- return time->msec ();
-}
-
-
-int
-ACE_WFMO_Reactor::expire_timers (void)
-{
- // If "owner" thread
- if (ACE_Thread::self () == this->owner_)
- // expire all pending timers.
- return this->timer_queue_->expire ();
-
- else
- // Nothing to expire
- return 0;
-}
-
-int
-ACE_WFMO_Reactor::dispatch (DWORD wait_status)
-{
- int handlers_dispatched = 0;
-
- // Expire timers
- handlers_dispatched += this->expire_timers ();
-
- switch (wait_status)
- {
- case WAIT_FAILED: // Failure.
- ACE_OS::set_errno_to_last_error ();
- return -1;
-
- case WAIT_TIMEOUT: // Timeout.
- errno = ETIME;
- return handlers_dispatched;
-
-#ifndef ACE_HAS_WINCE
- case WAIT_IO_COMPLETION: // APC.
- return handlers_dispatched;
-#endif // ACE_HAS_WINCE
-
- default: // Dispatch.
- // We'll let dispatch worry about abandoned mutes.
- handlers_dispatched += this->dispatch_handles (wait_status);
- return handlers_dispatched;
- }
-}
-
-// Dispatches any active handles from <handles_[slot]> to
-// <handles_[max_handlep1_]>, polling through our handle set looking
-// for active handles.
-int
-ACE_WFMO_Reactor::dispatch_handles (DWORD wait_status)
-{
- // dispatch_slot is the absolute slot. Only += is used to
- // increment it.
- DWORD dispatch_slot = 0;
-
- // Cache this value, this is the absolute value.
- DWORD max_handlep1 = this->handler_rep_.max_handlep1 ();
-
- // nCount starts off at <max_handlep1>, this is a transient count of
- // handles last waited on.
- DWORD nCount = max_handlep1;
-
- for (int number_of_handlers_dispatched = 1;
- ;
- number_of_handlers_dispatched++)
- {
- int ok = (
-#if ! (defined(__BORLANDC__) && (__BORLANDC__ >= 0x0530)) \
- && !defined (ghs) \
- && !defined (__MINGW32__)
- // wait_status is unsigned in Borland, Green Hills
- // and mingw32;
- // This >= is always true, with a warning.
- wait_status >= WAIT_OBJECT_0 &&
-#endif
- wait_status <= (WAIT_OBJECT_0 + nCount));
- if (ok)
- dispatch_slot += wait_status - WAIT_OBJECT_0;
- else
- // Otherwise, a handle was abandoned.
- dispatch_slot += wait_status - WAIT_ABANDONED_0;
-
- // Dispatch handler
- if (this->dispatch_handler (dispatch_slot, max_handlep1) == -1)
- return -1;
-
- // Increment slot
- dispatch_slot++;
-
- // We're done.
- if (dispatch_slot >= max_handlep1)
- return number_of_handlers_dispatched;
-
- // Readjust nCount
- nCount = max_handlep1 - dispatch_slot;
-
- // Check the remaining handles
- wait_status = this->poll_remaining_handles (dispatch_slot);
- switch (wait_status)
- {
- case WAIT_FAILED: // Failure.
- ACE_OS::set_errno_to_last_error ();
- /* FALLTHRU */
- case WAIT_TIMEOUT:
- // There are no more handles ready, we can return.
- return number_of_handlers_dispatched;
- }
- }
-}
-
-int
-ACE_WFMO_Reactor::dispatch_handler (DWORD slot,
- DWORD max_handlep1)
-{
- // Check if there are window messages that need to be dispatched
- if (slot == max_handlep1)
- return this->dispatch_window_messages ();
-
- // Dispatch the handler if it has not been scheduled for deletion.
- // Note that this is a very week test if there are multiple threads
- // dispatching this slot as no locks are held here. Generally, you
- // do not want to do something like deleting the this pointer in
- // handle_close() if you have registered multiple times and there is
- // more than one thread in WFMO_Reactor->handle_events().
- else if (!this->handler_rep_.scheduled_for_deletion (slot))
- {
- ACE_HANDLE event_handle = *(this->handler_rep_.handles () + slot);
-
- if (this->handler_rep_.current_info ()[slot].io_entry_)
- return this->complex_dispatch_handler (slot,
- event_handle);
- else
- return this->simple_dispatch_handler (slot,
- event_handle);
- }
- else
- // The handle was scheduled for deletion, so we will skip it.
- return 0;
-}
-
-int
-ACE_WFMO_Reactor::simple_dispatch_handler (DWORD slot,
- ACE_HANDLE event_handle)
-{
- // This dispatch is used for non-I/O entires
-
- // Assign the ``signaled'' HANDLE so that callers can get it.
- // siginfo_t is an ACE - specific fabrication. Constructor exists.
- siginfo_t sig (event_handle);
-
- ACE_Event_Handler *eh =
- this->handler_rep_.current_info ()[slot].event_handler_;
-
- // Upcall
- if (eh->handle_signal (0, &sig) == -1)
- this->handler_rep_.unbind (event_handle,
- ACE_Event_Handler::NULL_MASK);
-
- return 0;
-}
-
-int
-ACE_WFMO_Reactor::complex_dispatch_handler (DWORD slot,
- ACE_HANDLE event_handle)
-{
- // This dispatch is used for I/O entires.
-
- ACE_WFMO_Reactor_Handler_Repository::Current_Info &current_info =
- this->handler_rep_.current_info ()[slot];
-
- WSANETWORKEVENTS events;
- ACE_Reactor_Mask problems = ACE_Event_Handler::NULL_MASK;
- if (::WSAEnumNetworkEvents ((SOCKET) current_info.io_handle_,
- event_handle,
- &events) == SOCKET_ERROR)
- problems = ACE_Event_Handler::ALL_EVENTS_MASK;
- else
- {
- // Prepare for upcalls. Clear the bits from <events> representing
- // events the handler is not interested in. If there are any left,
- // do the upcall(s). upcall will replace events.lNetworkEvents
- // with bits representing any functions that requested a repeat
- // callback before checking handles again. In this case, continue
- // to call back unless the handler is unregistered as a result of
- // one of the upcalls. The way this is written, the upcalls will
- // keep being done even if one or more upcalls reported problems.
- // In practice this may turn out not so good, but let's see. If any
- // problems, please notify Steve Huston <shuston@riverace.com>
- // before or after you change this code.
- events.lNetworkEvents &= current_info.network_events_;
- while (events.lNetworkEvents != 0)
- {
- // Upcall
- problems |= this->upcall (current_info.event_handler_,
- current_info.io_handle_,
- events);
- if (this->handler_rep_.scheduled_for_deletion (slot))
- break;
- }
- }
-
- if (problems != ACE_Event_Handler::NULL_MASK
- && !this->handler_rep_.scheduled_for_deletion (slot) )
- this->handler_rep_.unbind (event_handle, problems);
-
- return 0;
-}
-
-ACE_Reactor_Mask
-ACE_WFMO_Reactor::upcall (ACE_Event_Handler *event_handler,
- ACE_HANDLE io_handle,
- WSANETWORKEVENTS &events)
-{
- // This method figures out what exactly has happened to the socket
- // and then calls appropriate methods.
- ACE_Reactor_Mask problems = ACE_Event_Handler::NULL_MASK;
-
- // Go through the events and do the indicated upcalls. If the handler
- // doesn't want to be called back, clear the bit for that event.
- // At the end, set the bits back to <events> to request a repeat call.
-
- long actual_events = events.lNetworkEvents;
- int action;
-
- if (ACE_BIT_ENABLED (actual_events, FD_WRITE))
- {
- action = event_handler->handle_output (io_handle);
- if (action <= 0)
- {
- ACE_CLR_BITS (actual_events, FD_WRITE);
- if (action == -1)
- ACE_SET_BITS (problems, ACE_Event_Handler::WRITE_MASK);
- }
- }
-
- if (ACE_BIT_ENABLED (actual_events, FD_CONNECT))
- {
- if (events.iErrorCode[FD_CONNECT_BIT] == 0)
- {
- // Successful connect
- action = event_handler->handle_output (io_handle);
- if (action <= 0)
- {
- ACE_CLR_BITS (actual_events, FD_CONNECT);
- if (action == -1)
- ACE_SET_BITS (problems,
- ACE_Event_Handler::CONNECT_MASK);
- }
- }
- // Unsuccessful connect
- else
- {
- action = event_handler->handle_input (io_handle);
- if (action <= 0)
- {
- ACE_CLR_BITS (actual_events, FD_CONNECT);
- if (action == -1)
- ACE_SET_BITS (problems,
- ACE_Event_Handler::CONNECT_MASK);
- }
- }
- }
-
- if (ACE_BIT_ENABLED (actual_events, FD_OOB))
- {
- action = event_handler->handle_exception (io_handle);
- if (action <= 0)
- {
- ACE_CLR_BITS (actual_events, FD_OOB);
- if (action == -1)
- ACE_SET_BITS (problems, ACE_Event_Handler::EXCEPT_MASK);
- }
- }
-
- if (ACE_BIT_ENABLED (actual_events, FD_READ))
- {
- action = event_handler->handle_input (io_handle);
- if (action <= 0)
- {
- ACE_CLR_BITS (actual_events, FD_READ);
- if (action == -1)
- ACE_SET_BITS (problems, ACE_Event_Handler::READ_MASK);
- }
- }
-
- if (ACE_BIT_ENABLED (actual_events, FD_CLOSE)
- && ACE_BIT_DISABLED (problems, ACE_Event_Handler::READ_MASK))
- {
- action = event_handler->handle_input (io_handle);
- if (action <= 0)
- {
- ACE_CLR_BITS (actual_events, FD_CLOSE);
- if (action == -1)
- ACE_SET_BITS (problems, ACE_Event_Handler::READ_MASK);
- }
- }
-
- if (ACE_BIT_ENABLED (actual_events, FD_ACCEPT))
- {
- action = event_handler->handle_input (io_handle);
- if (action <= 0)
- {
- ACE_CLR_BITS (actual_events, FD_ACCEPT);
- if (action == -1)
- ACE_SET_BITS (problems, ACE_Event_Handler::ACCEPT_MASK);
- }
- }
-
- if (ACE_BIT_ENABLED (actual_events, FD_QOS))
- {
- action = event_handler->handle_qos (io_handle);
- if (action <= 0)
- {
- ACE_CLR_BITS (actual_events, FD_QOS);
- if (action == -1)
- ACE_SET_BITS (problems, ACE_Event_Handler::QOS_MASK);
- }
- }
-
- if (ACE_BIT_ENABLED (actual_events, FD_GROUP_QOS))
- {
- action = event_handler->handle_group_qos (io_handle);
- if (action <= 0)
- {
- ACE_CLR_BITS (actual_events, FD_GROUP_QOS);
- if (action == -1)
- ACE_SET_BITS (problems, ACE_Event_Handler::GROUP_QOS_MASK);
- }
- }
-
- events.lNetworkEvents = actual_events;
- return problems;
-}
-
-
-int
-ACE_WFMO_Reactor::update_state (void)
-{
- // This GUARD is necessary since we are updating shared state.
- ACE_GUARD_RETURN (ACE_Process_Mutex, monitor, this->lock_, -1);
-
- // Decrement active threads
- this->active_threads_--;
-
- // Check if the state of the handler repository has changed or new
- // owner has to be set
- if (this->handler_rep_.changes_required () || this->new_owner ())
- {
- if (this->change_state_thread_ == 0)
- // Try to become the thread which will be responsible for the
- // changes
- {
- this->change_state_thread_ = ACE_Thread::self ();
- // Make sure no new threads are allowed to enter
- this->ok_to_wait_.reset ();
-
- if (this->active_threads_ > 0)
- // Check for other active threads
- {
- // Wake up all other threads
- this->wakeup_all_threads_.signal ();
- // Release <lock_>
- monitor.release ();
- // Go to sleep waiting for all other threads to get done
- this->waiting_to_change_state_.wait ();
- // Re-acquire <lock_> again
- monitor.acquire ();
- }
-
- // Note that make_changes() calls into user code which can
- // request other changes. So keep looping until all
- // requested changes are completed.
- while (this->handler_rep_.changes_required ())
- // Make necessary changes to the handler repository
- this->handler_rep_.make_changes ();
- if (this->new_owner ())
- // Update the owner
- this->change_owner ();
- // Turn off <wakeup_all_threads_>
- this->wakeup_all_threads_.reset ();
- // Let everyone know that it is ok to go ahead
- this->ok_to_wait_.signal ();
- // Reset this flag
- this->change_state_thread_ = 0;
- }
- else if (this->active_threads_ == 0)
- // This thread did not get a chance to become the change
- // thread. If it is the last one out, it will wakeup the
- // change thread
- this->waiting_to_change_state_.signal ();
- }
- // This is if we were woken up explicitily by the user and there are
- // no state changes required.
- else if (this->active_threads_ == 0)
- // Turn off <wakeup_all_threads_>
- this->wakeup_all_threads_.reset ();
-
- return 0;
-}
-
-void
-ACE_WFMO_Reactor::dump (void) const
-{
- ACE_TRACE ("ACE_WFMO_Reactor::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Count of currently active threads = %d\n"),
- this->active_threads_));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("ID of owner thread = %d\n"),
- this->owner_));
-
- this->handler_rep_.dump ();
- this->signal_handler_->dump ();
- this->timer_queue_->dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-int
-ACE_WFMO_Reactor_Notify::dispatch_notifications (int & /*number_of_active_handles*/,
- ACE_Handle_Set & /*rd_mask*/)
-{
- return -1;
-}
-
-int
-ACE_WFMO_Reactor_Notify::is_dispatchable (ACE_Notification_Buffer & /*buffer*/)
-{
- return 0;
-}
-
-ACE_HANDLE
-ACE_WFMO_Reactor_Notify::notify_handle (void)
-{
- return ACE_INVALID_HANDLE;
-}
-
-int
-ACE_WFMO_Reactor_Notify::read_notify_pipe (ACE_HANDLE ,
- ACE_Notification_Buffer &)
-{
- return 0;
-}
-
-int
-ACE_WFMO_Reactor_Notify::dispatch_notify (ACE_Notification_Buffer &)
-{
- return 0;
-}
-
-int
-ACE_WFMO_Reactor_Notify::close (void)
-{
- return -1;
-}
-
-ACE_WFMO_Reactor_Notify::ACE_WFMO_Reactor_Notify (size_t max_notifies)
- : timer_queue_ (0),
- message_queue_ (max_notifies * sizeof (ACE_Notification_Buffer),
- max_notifies * sizeof (ACE_Notification_Buffer)),
- max_notify_iterations_ (-1)
-{
-}
-
-int
-ACE_WFMO_Reactor_Notify::open (ACE_Reactor_Impl *wfmo_reactor,
- ACE_Timer_Queue *timer_queue,
- int ignore_notify)
-{
- ACE_UNUSED_ARG (ignore_notify);
- timer_queue_ = timer_queue;
- return wfmo_reactor->register_handler (this);
-}
-
-ACE_HANDLE
-ACE_WFMO_Reactor_Notify::get_handle (void) const
-{
- return this->wakeup_one_thread_.handle ();
-}
-
-// Handle all pending notifications.
-
-int
-ACE_WFMO_Reactor_Notify::handle_signal (int signum,
- siginfo_t *siginfo,
- ucontext_t *)
-{
- ACE_UNUSED_ARG (signum);
-
- // Just check for sanity...
- if (siginfo->si_handle_ != this->wakeup_one_thread_.handle ())
- return -1;
-
- // This will get called when <WFMO_Reactor->wakeup_one_thread_> event
- // is signaled.
- // ACE_DEBUG ((LM_DEBUG,
- // ACE_LIB_TEXT ("(%t) waking up to handle internal notifications\n")));
-
- for (int i = 1; ; i++)
- {
- ACE_Message_Block *mb = 0;
- // Copy ACE_Time_Value::zero since dequeue_head will modify it.
- ACE_Time_Value zero_timeout (ACE_Time_Value::zero);
- if (this->message_queue_.dequeue_head (mb, &zero_timeout) == -1)
- {
- if (errno == EWOULDBLOCK)
- // We've reached the end of the processing, return
- // normally.
- return 0;
- else
- return -1; // Something weird happened...
- }
- else
- {
- ACE_Notification_Buffer *buffer =
- (ACE_Notification_Buffer *) mb->base ();
-
- // If eh == 0 then we've got major problems! Otherwise, we
- // need to dispatch the appropriate handle_* method on the
- // ACE_Event_Handler pointer we've been passed.
-
- if (buffer->eh_ != 0)
- {
- int result = 0;
-
- switch (buffer->mask_)
- {
- case ACE_Event_Handler::READ_MASK:
- case ACE_Event_Handler::ACCEPT_MASK:
- result = buffer->eh_->handle_input (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::WRITE_MASK:
- result = buffer->eh_->handle_output (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::EXCEPT_MASK:
- result = buffer->eh_->handle_exception (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::QOS_MASK:
- result = buffer->eh_->handle_qos (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::GROUP_QOS_MASK:
- result = buffer->eh_->handle_group_qos (ACE_INVALID_HANDLE);
- break;
- default:
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("invalid mask = %d\n"),
- buffer->mask_));
- break;
- }
- if (result == -1)
- buffer->eh_->handle_close (ACE_INVALID_HANDLE,
- ACE_Event_Handler::EXCEPT_MASK);
- }
-
- // Make sure to delete the memory regardless of success or
- // failure!
- mb->release ();
-
- // Bail out if we've reached the <max_notify_iterations_>.
- // Note that by default <max_notify_iterations_> is -1, so
- // we'll loop until we're done.
- if (i == this->max_notify_iterations_)
- {
- // If there are still notification in the queue, we need
- // to wake up again
- if (!this->message_queue_.is_empty ())
- this->wakeup_one_thread_.signal ();
-
- // Break the loop as we have reached max_notify_iterations_
- return 0;
- }
- }
- }
-}
-
-// Notify the WFMO_Reactor, potentially enqueueing the
-// <ACE_Event_Handler> for subsequent processing in the WFMO_Reactor
-// thread of control.
-
-int
-ACE_WFMO_Reactor_Notify::notify (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask,
- ACE_Time_Value *timeout)
-{
- if (eh != 0)
- {
- ACE_Message_Block *mb = 0;
- ACE_NEW_RETURN (mb,
- ACE_Message_Block (sizeof (ACE_Notification_Buffer)),
- -1);
-
- ACE_Notification_Buffer *buffer =
- (ACE_Notification_Buffer *) mb->base ();
- buffer->eh_ = eh;
- buffer->mask_ = mask;
-
- // Convert from relative time to absolute time by adding the
- // current time of day. This is what <ACE_Message_Queue>
- // expects.
- if (timeout != 0)
- *timeout += timer_queue_->gettimeofday ();
-
- if (this->message_queue_.enqueue_tail
- (mb, timeout) == -1)
- {
- mb->release ();
- return -1;
- }
- }
-
- return this->wakeup_one_thread_.signal ();
-}
-
-void
-ACE_WFMO_Reactor_Notify::max_notify_iterations (int iterations)
-{
- ACE_TRACE ("ACE_WFMO_Reactor_Notify::max_notify_iterations");
- // Must always be > 0 or < 0 to optimize the loop exit condition.
- if (iterations == 0)
- iterations = 1;
-
- this->max_notify_iterations_ = iterations;
-}
-
-int
-ACE_WFMO_Reactor_Notify::max_notify_iterations (void)
-{
- ACE_TRACE ("ACE_WFMO_Reactor_Notify::max_notify_iterations");
- return this->max_notify_iterations_;
-}
-
-int
-ACE_WFMO_Reactor_Notify::purge_pending_notifications (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_WFMO_Reactor_Notify::purge_pending_notifications");
-
- // Go over message queue and take out all the matching event
- // handlers. If eh == 0, purge all. Note that reactor notifies (no
- // handler specified) are never purged, as this may lose a needed
- // notify the reactor queued for itself.
-
- if (this->message_queue_.is_empty ())
- return 0;
-
- // Guard against new and/or delivered notifications while purging.
- // WARNING!!! The use of the notification queue's lock object for
- // this guard makes use of the knowledge that on Win32, the mutex
- // protecting the queue is really a CriticalSection, which is
- // recursive. This is how we can get away with locking it down here
- // and still calling member functions on the queue object.
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, monitor, this->message_queue_.lock(), -1);
-
- // first, copy all to our own local queue. Since we've locked everyone out
- // of here, there's no need to use any synchronization on this queue.
- ACE_Message_Queue<ACE_NULL_SYNCH> local_queue;
-
- size_t queue_size = this->message_queue_.message_count ();
- int number_purged = 0;
-
- size_t index;
-
- for (index = 0; index < queue_size; ++index)
- {
- ACE_Message_Block *mb;
- if (-1 == this->message_queue_.dequeue_head (mb))
- return -1; // This shouldn't happen...
-
- ACE_Notification_Buffer *buffer =
- ACE_reinterpret_cast (ACE_Notification_Buffer *, mb->base ());
-
- // If this is not a Reactor notify (it is for a particular handler),
- // and it matches the specified handler (or purging all),
- // and applying the mask would totally eliminate the notification, then
- // release it and count the number purged.
- if ((0 != buffer->eh_) &&
- (0 == eh || eh == buffer->eh_) &&
- ACE_BIT_DISABLED (buffer->mask_, ~mask)) // the existing notification mask
- // is left with nothing when
- // applying the mask
- {
- mb->release ();
- ++number_purged;
- }
- else
- {
- // To preserve it, move it to the local_queue. But first, if
- // this is not a Reactor notify (it is for a
- // particularhandler), and it matches the specified handler
- // (or purging all), then apply the mask
- if ((0 != buffer->eh_) &&
- (0 == eh || eh == buffer->eh_))
- ACE_CLR_BITS(buffer->mask_, mask);
- if (-1 == local_queue.enqueue_head (mb))
- return -1;
- }
- }
-
- if (this->message_queue_.message_count ())
- { // Should be empty!
- ACE_ASSERT (0);
- return -1;
- }
-
- // Now copy back from the local queue to the class queue, taking
- // care to preserve the original order...
- queue_size = local_queue.message_count ();
- for (index = 0; index < queue_size; ++index)
- {
- ACE_Message_Block *mb;
- if (-1 == local_queue.dequeue_head (mb))
- {
- ACE_ASSERT (0);
- return -1;
- }
-
- if (-1 == this->message_queue_.enqueue_head (mb))
- {
- ACE_ASSERT (0);
- return -1;
- }
- }
-
- return number_purged;
-}
-
-void
-ACE_WFMO_Reactor_Notify::dump (void) const
-{
- ACE_TRACE ("ACE_WFMO_Reactor_Notify::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- this->timer_queue_->dump ();
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Max. iteration: %d\n"),
- this->max_notify_iterations_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-void
-ACE_WFMO_Reactor::max_notify_iterations (int iterations)
-{
- ACE_TRACE ("ACE_WFMO_Reactor::max_notify_iterations");
- ACE_GUARD (ACE_Process_Mutex, monitor, this->lock_);
-
- // Must always be > 0 or < 0 to optimize the loop exit condition.
- this->notify_handler_->max_notify_iterations (iterations);
-}
-
-int
-ACE_WFMO_Reactor::max_notify_iterations (void)
-{
- ACE_TRACE ("ACE_WFMO_Reactor::max_notify_iterations");
- ACE_GUARD_RETURN (ACE_Process_Mutex, monitor, this->lock_, -1);
-
- return this->notify_handler_->max_notify_iterations ();
-}
-
-int
-ACE_WFMO_Reactor::purge_pending_notifications (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_WFMO_Reactor::purge_pending_notifications");
- if (this->notify_handler_ == 0)
- return 0;
- else
- return this->notify_handler_->purge_pending_notifications (eh, mask);
-}
-
-int
-ACE_WFMO_Reactor::resumable_handler (void)
-{
- ACE_TRACE ("ACE_WFMO_Reactor::resumable_handler");
- return 0;
-}
-
-
-// No-op WinSOCK2 methods to help WFMO_Reactor compile
-#if !defined (ACE_HAS_WINSOCK2) || (ACE_HAS_WINSOCK2 == 0)
-int
-WSAEventSelect (SOCKET s,
- WSAEVENT hEventObject,
- long lNetworkEvents)
-{
- ACE_UNUSED_ARG (s);
- ACE_UNUSED_ARG (hEventObject);
- ACE_UNUSED_ARG (lNetworkEvents);
-
- return -1;
-}
-
-int
-WSAEnumNetworkEvents (SOCKET s,
- WSAEVENT hEventObject,
- LPWSANETWORKEVENTS lpNetworkEvents)
-{
- ACE_UNUSED_ARG (s);
- ACE_UNUSED_ARG (hEventObject);
- ACE_UNUSED_ARG (lpNetworkEvents);
-
- return -1;
-}
-#endif /* !defined ACE_HAS_WINSOCK2 */
-
-#endif /* ACE_WIN32 */
diff --git a/ace/WFMO_Reactor.h b/ace/WFMO_Reactor.h
deleted file mode 100644
index e8c81546c09..00000000000
--- a/ace/WFMO_Reactor.h
+++ /dev/null
@@ -1,1334 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file WFMO_Reactor.h
- *
- * $Id$
- *
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- * @author Tim Harrison <harrison@cs.wustl.edu>
- * @author and Doug Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_WFMO_REACTOR_H
-#define ACE_WFMO_REACTOR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_WIN32)
-
-#include "ace/Signal.h"
-#include "ace/Timer_Queue.h"
-#include "ace/Event_Handler.h"
-#include "ace/Synch.h"
-#include "ace/Reactor_Impl.h"
-#include "ace/Message_Queue.h"
-#include "ace/Process_Mutex.h"
-
-// If we don't have WinSOCK2, we need these defined
-#if !defined (ACE_HAS_WINSOCK2) || (ACE_HAS_WINSOCK2 == 0)
-/*
- * WinSock 2 extension -- bit values and indices for FD_XXX network events
- */
-#define FD_READ_BIT 0
-#define FD_WRITE_BIT 1
-#define FD_OOB_BIT 2
-#define FD_ACCEPT_BIT 3
-#define FD_CONNECT_BIT 4
-#define FD_CLOSE_BIT 5
-#define FD_QOS_BIT 6
-#define FD_GROUP_QOS_BIT 7
-
-#define FD_QOS (1 << FD_QOS_BIT)
-#define FD_GROUP_QOS (1 << FD_GROUP_QOS_BIT)
-
-#define FD_MAX_EVENTS 8
-#define FD_ALL_EVENTS ((1 << FD_MAX_EVENTS) - 1)
-
-#define WSAEVENT HANDLE
-
-typedef struct _WSANETWORKEVENTS
-{
- long lNetworkEvents;
- int iErrorCode[FD_MAX_EVENTS];
-} WSANETWORKEVENTS, FAR * LPWSANETWORKEVENTS;
-
-int WSAEventSelect (SOCKET s,
- WSAEVENT hEventObject,
- long lNetworkEvents);
-
-int WSAEnumNetworkEvents (SOCKET s,
- WSAEVENT hEventObject,
- LPWSANETWORKEVENTS lpNetworkEvents);
-
-#endif /* !defined ACE_HAS_WINSOCK2 */
-
-// Forward decl.
-class ACE_WFMO_Reactor;
-class ACE_Handle_Set;
-
-/**
- * @class ACE_Wakeup_All_Threads_Handler
- *
- * @brief This is a helper class whose sole purpose is to handle events
- * on <ACE_WFMO_Reactor->wakeup_all_threads_>
- */
-class ACE_Export ACE_Wakeup_All_Threads_Handler : public ACE_Event_Handler
-{
-public:
- /// Called when the <ACE_WFMO_Reactor->wakeup_all_threads_>
- virtual int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0);
-};
-
-/**
- * @class ACE_WFMO_Reactor_Handler_Repository
- *
- * @brief Used to map <ACE_HANDLE>s onto the appropriate
- * <ACE_Event_Handler> * and other information.
- */
-class ACE_Export ACE_WFMO_Reactor_Handler_Repository
-{
-public:
- friend class ACE_WFMO_Reactor;
- friend class ACE_WFMO_Reactor_Test;
-
- /**
- * @class Common_Info
- *
- * @brief This struct contains the necessary information for every
- * <Event_Handler> entry. The reason the event is not in this
- * structure is because we need to pass an event array into
- * WaitForMultipleObjects and therefore keeping the events
- * seperate makes sense.
- */
- class Common_Info
- {
- public:
- /// This indicates whether this entry is for I/O or for a regular
- /// event
- int io_entry_;
-
- /// The assosiated <Event_Handler>
- ACE_Event_Handler *event_handler_;
-
- /// The I/O handle related to the <Event_Handler>. This entry is
- /// only valid if the <io_entry_> flag is true.
- ACE_HANDLE io_handle_;
-
- /**
- * This is the set of events that the <Event_Handler> is
- * interested in. This entry is only valid if the <io_entry_> flag
- * is true.
- */
- long network_events_;
-
- /**
- * This flag indicates that <WFMO_Reactor> created the event on
- * behalf of the user. Therefore we need to clean this up when the
- * <Event_Handler> removes itself from <WFMO_Reactor>. This entry
- * is only valid if the <io_entry_> flag is true.
- */
- int delete_event_;
-
- /// This is set when the entry needed to be deleted.
- int delete_entry_;
-
- /**
- * These are the masks related to <handle_close> for the
- * <Event_Handler>. This is only valid when <delete_entry_> is
- * set.
- */
- ACE_Reactor_Mask close_masks_;
-
- /// Constructor used for initializing the structure
- Common_Info (void);
-
- /// Reset the state of the structure
- void reset (void);
-
- /// Set the structure to these new values
- void set (int io_entry,
- ACE_Event_Handler *event_handler,
- ACE_HANDLE io_handle,
- long network_events,
- int delete_event,
- int delete_entry,
- ACE_Reactor_Mask close_masks);
-
- /// Set the structure to these new values
- void set (Common_Info &common_info);
-
- /// Dump the state of an object.
- void dump (void) const;
- };
-
- /**
- * @class Current_Info
- *
- * @brief This structure inherits from the common structure to add
- * information for current entries.
- */
- class Current_Info : public Common_Info
- {
- public:
- /// This is set when the entry needed to be suspended.
- int suspend_entry_;
-
- /// Default constructor
- Current_Info (void);
-
- /// Reset the state of the structure
- void reset (void);
-
- /// Set the structure to these new values
- void set (int io_entry,
- ACE_Event_Handler *event_handler,
- ACE_HANDLE io_handle,
- long network_events,
- int delete_event,
- int delete_entry = 0,
- ACE_Reactor_Mask close_masks = ACE_Event_Handler::NULL_MASK,
- int suspend_entry = 0);
-
- /// Set the structure to these new values
- void set (Common_Info &common_info,
- int suspend_entry = 0);
-
- /// Dump the state of an object.
- void dump (ACE_HANDLE event_handle) const;
- };
-
- /**
- * @class To_Be_Added_Info
- *
- * @brief This structure inherits from the common structure to add
- * information for <to_be_added> entries.
- */
- class To_Be_Added_Info : public Common_Info
- {
- public:
- /// Handle for the event
- ACE_HANDLE event_handle_;
-
- /// This is set when the entry needed to be suspended.
- int suspend_entry_;
-
- /// Default constructor
- To_Be_Added_Info (void);
-
- /// Reset the state of the structure
- void reset (void);
-
- /// Set the structure to these new values
- void set (ACE_HANDLE event_handle,
- int io_entry,
- ACE_Event_Handler *event_handler,
- ACE_HANDLE io_handle,
- long network_events,
- int delete_event,
- int delete_entry = 0,
- ACE_Reactor_Mask close_masks = ACE_Event_Handler::NULL_MASK,
- int suspend_entry = 0);
-
- /// Set the structure to these new values
- void set (ACE_HANDLE event_handle,
- Common_Info &common_info,
- int suspend_entry = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
- };
-
- /**
- * @class Suspended_Info
- *
- * @brief This structure inherits from the common structure to add
- * information for suspended entries.
- */
- class Suspended_Info : public Common_Info
- {
- public:
- /// Handle for the event
- ACE_HANDLE event_handle_;
-
- /// This is set when the entry needed to be resumed.
- int resume_entry_;
-
- /// Constructor used for initializing the structure
- Suspended_Info (void);
-
- /// Reset the state of the structure
- void reset (void);
-
- /// Set the structure to these new values
- void set (ACE_HANDLE event_handle,
- int io_entry,
- ACE_Event_Handler *event_handler,
- ACE_HANDLE io_handle,
- long network_events,
- int delete_event,
- int delete_entry = 0,
- ACE_Reactor_Mask close_masks = 0,
- int resume_entry = 0);
-
- /// Set the structure to these new values
- void set (ACE_HANDLE event_handle,
- Common_Info &common_info,
- int resume_entry = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
- };
-
- /// Constructor.
- ACE_WFMO_Reactor_Handler_Repository (ACE_WFMO_Reactor &wfmo_reactor);
-
- /// Destructor.
- virtual ~ACE_WFMO_Reactor_Handler_Repository (void);
-
- /// Initialize the repository of the approriate <size>.
- int open (size_t size);
-
- /// Close down the handler repository.
- int close (void);
-
- // = Search structure operations.
-
- /// Bind the <ACE_Event_Handler *> to the <ACE_HANDLE>. This is for
- /// the simple event entry.
- int bind (ACE_HANDLE, ACE_Event_Handler *);
-
- /// Insert I/O <Event_Handler> entry into the system. This method
- /// assumes that the lock are head *before* this method is invoked.
- int bind_i (int io_entry,
- ACE_Event_Handler *event_handler,
- long network_events,
- ACE_HANDLE io_handle,
- ACE_HANDLE event_handle,
- int delete_event);
-
- /// Remove the binding of <ACE_HANDLE> in accordance with the <mask>.
- int unbind (ACE_HANDLE,
- ACE_Reactor_Mask mask);
-
- /// Non-lock-grabbing version of <unbind>
- int unbind_i (ACE_HANDLE,
- ACE_Reactor_Mask mask,
- int &changes_required);
-
- /// Remove all bindings of <ACE_HANDLE, ACE_Event_Handler> tuples.
- void unbind_all (void);
-
- // = Sanity checking.
-
- // Check the <handle> to make sure it's a valid ACE_HANDLE
- int invalid_handle (ACE_HANDLE handle) const;
-
- // = Accessors.
- /// Maximum ACE_HANDLE value, plus 1.
- DWORD max_handlep1 (void) const;
-
- /// Pointer to the beginning of the current array of <ACE_HANDLE>
- /// *'s.
- ACE_HANDLE *handles (void) const;
-
- /// Pointer to the beginning of the current array of
- /// <ACE_Event_Handler> *'s.
- Current_Info *current_info (void) const;
-
- /// Check if changes to the handle set are required.
- virtual int changes_required (void);
-
- /// Make changes to the handle set
- virtual int make_changes (void);
-
- /// Check to see if <slot> has been scheduled for deletion
- int scheduled_for_deletion (size_t slot) const;
-
- /**
- * This method is used to calculate the network mask after a mask_op
- * request to <WFMO_Reactor>. Note that because the <Event_Handler>
- * may already be in the handler repository, we may have to find the
- * old event and the old network events
- */
- int modify_network_events_i (ACE_HANDLE io_handle,
- ACE_Reactor_Mask new_masks,
- ACE_Reactor_Mask &old_masks,
- long &new_network_events,
- ACE_HANDLE &event_handle,
- int &delete_event,
- int operation);
-
- /// This method is used to change the network mask left (if any)
- /// after a remove request to <WFMO_Reactor>
- ACE_Reactor_Mask bit_ops (long &existing_masks,
- ACE_Reactor_Mask to_be_removed_masks,
- int operation);
-
- /// Temporarily suspend entry
- int suspend_handler_i (ACE_HANDLE handle,
- int &changes_required);
-
- /// Resume suspended entry
- int resume_handler_i (ACE_HANDLE handle,
- int &changes_required);
-
- /// Deletions and suspensions in current_info_
- int make_changes_in_current_infos (void);
-
- /// Deletions and resumptions in current_suspended_info_
- int make_changes_in_suspension_infos (void);
-
- /// Deletions in to_be_added_info_, or transfers to current_info_ or
- /// current_suspended_info_ from to_be_added_info_
- int make_changes_in_to_be_added_infos (void);
-
- /// Removes the <ACE_Event_Handler> at <slot> from the table.
- int remove_handler_i (size_t slot,
- ACE_Reactor_Mask mask);
-
- /// Removes the <ACE_Event_Handler> at <slot> from the table.
- int remove_suspended_handler_i (size_t slot,
- ACE_Reactor_Mask mask);
-
- /// Removes the <ACE_Event_Handler> at <slot> from the table.
- int remove_to_be_added_handler_i (size_t slot,
- ACE_Reactor_Mask to_be_removed_masks);
-
- /**
- * Check to see if <handle> is associated with a valid Event_Handler
- * bound to <mask>. Return the <event_handler> associated with this
- * <handler> if <event_handler> != 0.
- */
- int handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Event_Handler **event_handler = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
-protected:
- /// Reference to our <WFMO_Reactor>.
- ACE_WFMO_Reactor &wfmo_reactor_;
-
- /// Maximum number of handles.
- size_t max_size_;
-
- /**
- * Array of <ACE_HANDLEs> passed to <WaitForMultipleObjects>. This
- * is not part of the structure as the handle array needs to be
- * passed directly to <WaitForMultipleObjects>.
- */
- ACE_HANDLE *current_handles_;
-
- /// Array of current entries in the table
- Current_Info *current_info_;
-
- /// A count of the number of active handles.
- DWORD max_handlep1_;
-
- /// Information for entries to be added
- To_Be_Added_Info *to_be_added_info_;
-
- /// Number of records to be added
- size_t handles_to_be_added_;
-
- /// Currently suspended handles
- Suspended_Info *current_suspended_info_;
-
- /// Number of currently suspended handles
- size_t suspended_handles_;
-
- /// Number of records to be suspended
- size_t handles_to_be_suspended_;
-
- /// Number of records to be resumed
- size_t handles_to_be_resumed_;
-
- /// Number of records to be deleted
- size_t handles_to_be_deleted_;
-
-};
-
-/**
- * @class ACE_WFMO_Reactor_Notify
- *
- * @brief Unblock the <ACE_WFMO_Reactor> from its event loop, passing
- * it an optional <ACE_Event_Handler> to dispatch.
- *
- * This implementation is necessary for cases where the
- * <ACE_WFMO_Reactor> is run in a multi-threaded program. In
- * this case, we need to be able to unblock
- * <WaitForMultipleObjects> when updates occur other than in the
- * main <ACE_WFMO_Reactor> thread. To do this, we signal an
- * auto-reset event the <ACE_WFMO_Reactor> is listening on. If
- * an <ACE_Event_Handler> and <ACE_Reactor_Mask> is passed to
- * <notify>, the appropriate <handle_*> method is dispatched.
- */
-class ACE_Export ACE_WFMO_Reactor_Notify : public ACE_Reactor_Notify
-{
-public:
- /// Constructor
- ACE_WFMO_Reactor_Notify (size_t max_notifies = 1024);
-
- /// Initialization. <timer_queue> is stored to call <gettimeofday>.
- virtual int open (ACE_Reactor_Impl *wfmo_reactor,
- ACE_Timer_Queue *timer_queue,
- int disable_notify = 0);
-
- /// No-op.
- virtual int close (void);
-
- /**
- * Special trick to unblock <WaitForMultipleObjects> when updates
- * occur. All we do is enqueue <event_handler> and <mask> onto the
- * <ACE_Message_Queue> and wakeup the <WFMO_Reactor> by signaling
- * its <ACE_Event> handle. The <ACE_Time_Value> indicates how long
- * to blocking trying to notify the <WFMO_Reactor>. If <timeout> ==
- * 0, the caller will block until action is possible, else will wait
- * until the relative time specified in <timeout> elapses).
- */
- virtual int notify (ACE_Event_Handler *event_handler = 0,
- ACE_Reactor_Mask mask = ACE_Event_Handler::EXCEPT_MASK,
- ACE_Time_Value *timeout = 0);
-
- /// No-op.
- virtual int dispatch_notifications (int &number_of_active_handles,
- ACE_Handle_Set &rd_mask);
-
- /// Returns a handle to the <ACE_Auto_Event>.
- virtual ACE_HANDLE get_handle (void) const;
-
- /// Returns the ACE_HANDLE of the notify pipe on which the reactor
- /// is listening for notifications so that other threads can unblock
- /// the <Reactor_Impl>
- virtual ACE_HANDLE notify_handle (void);
-
- /// Handle one of the notify call on the <handle>. This could be
- /// because of a thread trying to unblock the <Reactor_Impl>
- virtual int dispatch_notify (ACE_Notification_Buffer &buffer);
-
- /// Verify whether the buffer has dispatchable info or not.
- virtual int is_dispatchable (ACE_Notification_Buffer &buffer);
-
- /// Read one of the notify call on the <handle> into the
- /// <buffer>. This could be because of a thread trying to unblock
- /// the <Reactor_Impl>
- virtual int read_notify_pipe (ACE_HANDLE handle,
- ACE_Notification_Buffer &buffer);
-
- /**
- * Set the maximum number of times that the
- * <ACE_WFMO_Reactor_Notify::handle_input> method will iterate and
- * dispatch the <ACE_Event_Handlers> that are passed in via the
- * notify queue before breaking out of its
- * <ACE_Message_Queue::dequeue> loop. By default, this is set to
- * -1, which means "iterate until the queue is empty." Setting this
- * to a value like "1 or 2" will increase "fairness" (and thus
- * prevent starvation) at the expense of slightly higher dispatching
- * overhead.
- */
- void max_notify_iterations (int);
-
- /**
- * Get the maximum number of times that the
- * <ACE_WFMO_Reactor_Notify::handle_input> method will iterate and
- * dispatch the <ACE_Event_Handlers> that are passed in via the
- * notify queue before breaking out of its
- * <ACE_Message_Queue::dequeue> loop.
- */
- int max_notify_iterations (void);
-
- /**
- * Purge any notifications pending in this reactor for the specified
- * <ACE_Event_Handler> object. If <eh> == 0, all notifications for all
- * handlers are removed (but not any notifications posted just to wake up
- * the reactor itself). Returns the number of notifications purged.
- * Returns -1 on error.
- */
- virtual int purge_pending_notifications (ACE_Event_Handler *,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
-private:
- /// Pointer to the wfmo_reactor's timer queue.
- ACE_Timer_Queue *timer_queue_;
-
- /**
- * Called when the notification event waited on by
- * <ACE_WFMO_Reactor> is signaled. This dequeues all pending
- * <ACE_Event_Handlers> and dispatches them.
- */
- virtual int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0);
-
- /// An auto event is used so that we can <signal> it to wakeup one
- /// thread up (e.g., when the <notify> method is called).
- ACE_Auto_Event wakeup_one_thread_;
-
- /// Message queue that keeps track of pending <ACE_Event_Handlers>.
- /// This queue must be thread-safe because it can be called by
- /// multiple threads of control.
- ACE_Message_Queue<ACE_MT_SYNCH> message_queue_;
-
- /**
- * Keeps track of the maximum number of times that the
- * <ACE_WFMO_Reactor_Notify::handle_input> method will iterate and
- * dispatch the <ACE_Event_Handlers> that are passed in via the
- * notify queue before breaking out of its
- * <ACE_Message_Queue::dequeue> loop. By default, this is set to
- * -1, which means "iterate until the queue is empty."
- */
- int max_notify_iterations_;
-};
-
-/**
- * @class ACE_WFMO_Reactor
- *
- * @brief An object oriented event demultiplexor and event handler.
- * ACE_WFMO_Reactor is a Windows-only implementation of the ACE_Reactor
- * interface that uses the WaitForMultipleObjects() event demultiplexer.
- *
- * Like the other ACE Reactors, ACE_WFMO_Reactor can schedule timers.
- * It also reacts to signalable handles, such as events (see the documentation
- * for WaitForMultipleObjects() for a complete list of signalable handle
- * types). Therefore, I/O handles are not directly usable for registering
- * for input, output, and exception notification. The exception to this
- * is ACE_SOCK-based handles, which can be registered for input, output, and
- * exception notification just as with other platforms. See Chapter 4 in
- * C++NPv2 for complete details.
- *
- * Note that changes to the state of ACE_WFMO_Reactor are not
- * instantaneous. Most changes (registration, removal,
- * suspension, and resumption of handles, and changes in
- * ownership) are made when the ACE_WFMO_Reactor reaches a stable
- * state. Users should be careful, especially when removing
- * handlers. This is because the ACE_WFMO_Reactor will call
- * handle_close() on the handler when it is finally removed and
- * not when remove_handler() is called. If the registered handler's pointer
- * is not valid when ACE_WFMO_Reactor calls ACE_Event_Handler::handle_close(),
- * use the DONT_CALL flag with remove_handler(). Preferably, use dynamically
- * allocated event handlers and call "delete this" inside the handle_close()
- * hook method.
- */
-class ACE_Export ACE_WFMO_Reactor : public ACE_Reactor_Impl
-{
-public:
- friend class ACE_WFMO_Reactor_Handler_Repository;
- friend class ACE_WFMO_Reactor_Test;
-
- enum
- {
- /// Default size of the WFMO_Reactor's handle table.
- /**
- * Two slots will be added to the @a size parameter in the
- * constructor and open methods which will store handles used for
- * internal management purposes.
- */
- DEFAULT_SIZE = MAXIMUM_WAIT_OBJECTS - 2
- };
-
- // = Initialization and termination methods.
-
- /// Initialize ACE_WFMO_Reactor with the default size.
- ACE_WFMO_Reactor (ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0,
- ACE_Reactor_Notify * = 0);
-
- /**
- * Initialize ACE_WFMO_Reactor with the specified size.
- *
- * @param size The maximum number of handles the reactor can
- * register. The value should not exceed
- * ACE_WFMO_Reactor::DEFAULT_SIZE. Two slots will be
- * added to the @a size parameter which will store handles
- * used for internal management purposes.
- */
- ACE_WFMO_Reactor (size_t size,
- int unused = 0,
- ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0,
- ACE_Reactor_Notify * = 0);
-
- /**
- * Initialize ACE_WFMO_Reactor with the specified size.
- *
- * @param size The maximum number of handles the reactor can
- * register. The value should not exceed
- * ACE_WFMO_Reactor::DEFAULT_SIZE. Two slots will be
- * added to the @a size parameter which will store handles
- * used for internal management purposes.
- */
- virtual int open (size_t size = ACE_WFMO_Reactor::DEFAULT_SIZE,
- int restart = 0,
- ACE_Sig_Handler * = 0,
- ACE_Timer_Queue * = 0,
- int disable_notify_pipe = 0,
- ACE_Reactor_Notify * = 0);
-
- /// Returns -1 (not used in this implementation);
- virtual int current_info (ACE_HANDLE, size_t & /* size */);
-
- /// Use a user specified signal handler instead.
- virtual int set_sig_handler (ACE_Sig_Handler *signal_handler);
-
- /// @deprecated The following method is deprecated.
- /// Instead, either specify a timer queue when creating/opening the
- /// object or use the timer_queue() method.
- virtual int set_timer_queue (ACE_Timer_Queue *tq);
-
- /// Set a user-specified timer queue.
- virtual int timer_queue (ACE_Timer_Queue *tq);
-
- /// Return the current ACE_Timer_Queue.
- virtual ACE_Timer_Queue *timer_queue (void) const;
-
- /// Close down the ACE_WFMO_Reactor and release all of its resources.
- virtual int close (void);
-
- /// Close down the ACE_WFMO_Reactor and release all of its resources.
- virtual ~ACE_WFMO_Reactor (void);
-
- // = Event loop drivers.
-
- /**
- * This method is not currently implemented. We recommend that you
- * use handle_events (ACE_Time_Value::zero) to get basically the
- * same effect, i.e., it won't block the caller if there are no events.
- */
- virtual int work_pending (const ACE_Time_Value &max_wait_time = ACE_Time_Value::zero);
-
- /**
- * This event loop driver blocks for up to <max_wait_time> before
- * returning. It will return earlier if timer events, I/O events,
- * or signal events occur. Note that <max_wait_time> can be 0, in
- * which case this method blocks indefinitely until events occur.
- *
- * <max_wait_time> is decremented to reflect how much time this call
- * took. For instance, if a time value of 3 seconds is passed to
- * handle_events and an event occurs after 2 seconds,
- * <max_wait_time> will equal 1 second. This can be used if an
- * application wishes to handle events for some fixed amount of
- * time.
- *
- * <WaitForMultipleObjects> is used as the demultiplexing call
- *
- * Returns the total number of I/O and timer <ACE_Event_Handler>s
- * that were dispatched, 0 if the <max_wait_time> elapsed without
- * dispatching any handlers, or -1 if an error occurs.
- *
- * The only difference between <alertable_handle_events> and
- * <handle_events> is that in the alertable case, TRUE is passed to
- * <WaitForMultipleObjects> for the <bAlertable> option.
- */
- virtual int handle_events (ACE_Time_Value *max_wait_time = 0);
- virtual int alertable_handle_events (ACE_Time_Value *max_wait_time = 0);
-
- /**
- * This method is just like the one above, except the
- * <max_wait_time> value is a reference and can therefore never be
- * NULL.
- *
- * The only difference between <alertable_handle_events> and
- * <handle_events> is that in the alertable case, TRUE is passed to
- * <WaitForMultipleObjects> for the <bAlertable> option.
- */
- virtual int handle_events (ACE_Time_Value &max_wait_time);
- virtual int alertable_handle_events (ACE_Time_Value &max_wait_time);
-
-
- // = Event handling control.
-
- /**
- * Return the status of Reactor. If this function returns 0, the reactor is
- * actively handling events. If it returns non-zero, <handling_events> and
- * <handle_alertable_events> return -1 immediately.
- */
- virtual int deactivated (void);
-
- /**
- * Control whether the Reactor will handle any more incoming events or not.
- * If <do_stop> == 1, the Reactor will be disabled. By default, a reactor
- * is in active state and can be deactivated/reactived as wish.
- */
- virtual void deactivate (int do_stop);
-
- // = Register and remove Handlers.
-
- /**
- * Register an <ACE_Event_Handler> <event_handler>. Since no Event
- * Mask is passed through this interface, it is assumed that the
- * <handle> being passed in is an event handle and when the event
- * becomes signaled, <WFMO_Reactor> will call handle_signal on
- * <event_handler>. If <handle> == <ACE_INVALID_HANDLE> the
- * <ACE_WFMO_Reactor> will call the <get_handle> method of
- * <event_handler> to extract the underlying event handle.
- */
- virtual int register_handler (ACE_Event_Handler *event_handler,
- ACE_HANDLE event_handle = ACE_INVALID_HANDLE);
-
- /**
- * Register an <ACE_Event_Handler> <event_handle>. <mask> specifies
- * the network events that the <event_handler> is interested in. If
- * <io_handle> == <ACE_INVALID_HANDLE> the <ACE_WFMO_Reactor> will
- * call the <get_handle> method of <event_handler> to extract the
- * underlying I/O handle. If the <event_handle> ==
- * <ACE_INVALID_HANDLE>, WFMO_Reactor will create an event for
- * associating it with the I/O handle. When the <event_handle> is
- * signalled, the appropriate <handle_*> callback will be invoked on
- * the <Event_Handler>
- */
- virtual int register_handler (ACE_HANDLE event_handle,
- ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /**
- * This is a simple version of the above <register_handler> method
- * where the I/O handle is passed in and the event handle will
- * always be created by <WFMO_Reactor>
- */
- virtual int register_handler (ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /**
- * This is a simple version of the above <register_handler> method
- * where the I/O handle will always come from <get_handle> on the
- * <Event_Handler> and the event handle will always be created by
- * <WFMO_Reactor>
- */
- virtual int register_handler (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /// Register <event_handler> with all the <handles> in the
- /// <Handle_Set>.
- virtual int register_handler (const ACE_Handle_Set &handles,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /**
- * Register <new_sh> to handle the signal <signum> using the
- * <new_disp>. Returns the <old_sh> that was previously registered
- * (if any), along with the <old_disp> of the signal handler.
- */
- virtual int register_handler (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp = 0,
- ACE_Event_Handler **old_sh = 0,
- ACE_Sig_Action *old_disp = 0);
-
- /// Registers <new_sh> to handle a set of signals <sigset> using the
- /// <new_disp>.
- virtual int register_handler (const ACE_Sig_Set &sigset,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp = 0);
-
- /**
- * Removes <event_handler> from the <ACE_WFMO_Reactor>. Note that
- * the <ACE_WFMO_Reactor> will call the <get_handle> method of
- * <event_handler> to extract the underlying handle. If <mask> ==
- * <ACE_Event_Handler::DONT_CALL> then the <handle_close> method of
- * the <event_handler> is not invoked. Note that the <handle> can
- * either be the <event_handle> or the <io_handle>
- */
- virtual int remove_handler (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /**
- * Removes <handle> from the <ACE_WFMO_Reactor>. If <mask> ==
- * <ACE_Event_Handler::DONT_CALL> then the <handle_close> method of
- * the <event_handler> is not invoked. Note that the <handle> can
- * either be the <event_handle> or the <io_handle>
- *
- * For the case of I/O entries, this removes the <mask> binding of
- * <Event_Handler> whose handle is <handle> from <WFMO_Reactor>. If
- * there are no more bindings for this <event_handler> then it is
- * removed from the WFMO_Reactor. For simple event entries, mask is
- * mostly ignored and the <Event_Handler> is always removed from
- * <WFMO_Reactor>
- */
- virtual int remove_handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
- /**
- * Removes all the <mask> bindings for handles in the <handle_set>
- * bind of <Event_Handler>. If there are no more bindings for any
- * of these handles then they are removed from WFMO_Reactor.
- */
- virtual int remove_handler (const ACE_Handle_Set &handle_set,
- ACE_Reactor_Mask);
-
- /**
- * Remove the ACE_Event_Handler currently associated with <signum>.
- * <sigkey> is ignored in this implementation since there is only
- * one instance of a signal handler. Install the new disposition
- * (if given) and return the previous disposition (if desired by the
- * caller). Returns 0 on success and -1 if <signum> is invalid.
- */
- virtual int remove_handler (int signum,
- ACE_Sig_Action *new_disp,
- ACE_Sig_Action *old_disp = 0,
- int sigkey = -1);
-
- /// Calls <remove_handler> for every signal in <sigset>.
- virtual int remove_handler (const ACE_Sig_Set &sigset);
-
- // = Suspend and resume Handlers.
-
- /// Suspend <event_handler> temporarily. Use
- /// <ACE_Event_Handler::get_handle> to get the handle.
- virtual int suspend_handler (ACE_Event_Handler *event_handler);
-
- /// Suspend <handle> temporarily.
- virtual int suspend_handler (ACE_HANDLE handle);
-
- /// Suspend all <handles> in handle set temporarily.
- virtual int suspend_handler (const ACE_Handle_Set &handles);
-
- /// Suspend all <handles> temporarily.
- virtual int suspend_handlers (void);
-
- /// Resume <event_handler>. Use <ACE_Event_Handler::get_handle> to
- /// get the handle.
- virtual int resume_handler (ACE_Event_Handler *event_handler);
-
- /// Resume <handle>.
- virtual int resume_handler (ACE_HANDLE handle);
-
- /// Resume all <handles> in handle set.
- virtual int resume_handler (const ACE_Handle_Set &handles);
-
- /// Resume all <handles>.
- virtual int resume_handlers (void);
-
- /// Does the reactor allow the application to resume the handle on
- /// its own ie. can it pass on the control of handle resumption to
- /// the application. A positive value indicates that the handlers
- /// are application resumable. A value of 0 indicates otherwise.
- virtual int resumable_handler (void);
-
- /**
- * Return 1 if we any event associations were made by the reactor
- * for the handles that it waits on, 0 otherwise. Since the
- * WFMO_Reactor does use event associations, this function always
- * return 1.
- */
- virtual int uses_event_associations (void);
-
- // Timer management.
-
- /**
- * Schedule an ACE_Event_Handler that will expire after an amount
- * of time. The return value of this method, a timer_id value,
- * uniquely identifies the event_handler in the ACE_Reactor's
- * internal list of timers.
- * This timer_id value can be used to cancel the timer
- * with the cancel_timer() call.
- *
- * @see cancel_timer()
- * @see reset_timer_interval()
- *
- * @param event_handler event handler to schedule on reactor
- * @param arg argument passed to the handle_timeout() method of event_handler
- * @param delay time interval after which the timer will expire
- * @param interval time interval after which the timer will be automatically rescheduled
- * @return -1 on failure, a timer_id value on success
- */
- virtual long schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval = ACE_Time_Value::zero);
-
- /**
- * Resets the interval of the timer represented by <timer_id> to
- * <interval>, which is specified in relative time to the current
- * <gettimeofday>. If <interval> is equal to
- * <ACE_Time_Value::zero>, the timer will become a non-rescheduling
- * timer. Returns 0 if successful, -1 if not.
- */
- virtual int reset_timer_interval (long timer_id,
- const ACE_Time_Value &interval);
-
- /// Cancel all Event_Handlers that match the address of
- /// <event_handler>. Returns number of handler's cancelled.
- virtual int cancel_timer (ACE_Event_Handler *event_handler,
- int dont_call_handle_close = 1);
-
- /**
- * Cancel the single Event_Handler that matches the <timer_id> value
- * (which was returned from the schedule method). If arg is
- * non-NULL then it will be set to point to the ``magic cookie''
- * argument passed in when the Event_Handler was registered. This
- * makes it possible to free up the memory and avoid memory leaks.
- * Returns 1 if cancellation succeeded and 0 if the <timer_id>
- * wasn't found.
- */
- virtual int cancel_timer (long timer_id,
- const void **arg = 0,
- int dont_call_handle_close = 1);
-
- // = High-level Event_Handler scheduling operations
-
- /**
- * Add <masks_to_be_added> to the <event_handler>'s entry in
- * WFMO_Reactor. <event_handler> must already have been registered
- * with WFMO_Reactor.
- */
- virtual int schedule_wakeup (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask masks_to_be_added);
-
- /**
- * Add <masks_to_be_added> to the <handle>'s entry in WFMO_Reactor.
- * The Event_Handler associated with <handle> must already have been
- * registered with WFMO_Reactor.
- */
- virtual int schedule_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask masks_to_be_added);
-
- /**
- * Remove <masks_to_be_deleted> to the <handle>'s entry in
- * WFMO_Reactor. The Event_Handler associated with <handle> must
- * already have been registered with WFMO_Reactor.
- */
- virtual int cancel_wakeup (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask masks_to_be_deleted);
-
- /**
- * Remove <masks_to_be_deleted> to the <handle>'s entry in
- * WFMO_Reactor. The Event_Handler associated with <handle> must
- * already have been registered with WFMO_Reactor.
- */
- virtual int cancel_wakeup (ACE_HANDLE handle,
- ACE_Reactor_Mask masks_to_be_deleted);
-
- // = Notification methods.
-
- /**
- * Wakeup one <ACE_WFMO_Reactor> thread if it is currently blocked
- * in <WaitForMultipleObjects>. The <ACE_Time_Value> indicates how
- * long to blocking trying to notify the <WFMO_Reactor>. If
- * <timeout> == 0, the caller will block until action is possible,
- * else will wait until the relative time specified in <timeout>
- * elapses).
- */
- virtual int notify (ACE_Event_Handler * = 0,
- ACE_Reactor_Mask = ACE_Event_Handler::EXCEPT_MASK,
- ACE_Time_Value * = 0);
-
- /**
- * Set the maximum number of times that the
- * <ACE_WFMO_Reactor_Notify::handle_input> method will iterate and
- * dispatch the <ACE_Event_Handlers> that are passed in via the
- * notify queue before breaking out of its
- * <ACE_Message_Queue::dequeue> loop. By default, this is set to
- * -1, which means "iterate until the queue is empty." Setting this
- * to a value like "1 or 2" will increase "fairness" (and thus
- * prevent starvation) at the expense of slightly higher dispatching
- * overhead.
- */
- virtual void max_notify_iterations (int);
-
- /**
- * Get the maximum number of times that the
- * <ACE_WFMO_Reactor_Notify::handle_input> method will iterate and
- * dispatch the <ACE_Event_Handlers> that are passed in via the
- * notify queue before breaking out of its
- * <ACE_Message_Queue::dequeue> loop.
- */
- virtual int max_notify_iterations (void);
-
- /**
- * Purge any notifications pending in this reactor for the specified
- * <ACE_Event_Handler> object. Returns the number of notifications
- * purged. Returns -1 on error.
- */
- virtual int purge_pending_notifications (ACE_Event_Handler * = 0,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
-
- // = Assorted helper methods.
-
- /**
- * Check to see if <handle> is associated with a valid Event_Handler
- * bound to <mask>. Return the <event_handler> associated with this
- * <handler> if <event_handler> != 0.
- */
- virtual int handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Event_Handler **event_handler = 0);
-
- /**
- * Check to see if <signum> is associated with a valid Event_Handler
- * bound to a signal. Return the <event_handler> associated with
- * this <handler> if <event_handler> != 0.
- */
- virtual int handler (int signum,
- ACE_Event_Handler ** = 0);
-
- /// Returns true if WFMO_Reactor has been successfully initialized, else
- /// false.
- virtual int initialized (void);
-
- /// Returns the current size of the WFMO_Reactor's internal
- /// descriptor table.
- virtual size_t size (void) const;
-
- /// Returns a reference to the WFMO_Reactor's internal lock.
- virtual ACE_Lock &lock (void);
-
- /// Wake up all threads in WaitForMultipleObjects so that they can
- /// reconsult the handle set
- virtual void wakeup_all_threads (void);
-
- /**
- * Transfers ownership of the WFMO_Reactor to the <new_owner>. The
- * transfer will not complete until all threads are ready (just like
- * the handle set).
- */
- virtual int owner (ACE_thread_t new_owner, ACE_thread_t *old_owner = 0);
-
- /// Return the ID of the "owner" thread.
- virtual int owner (ACE_thread_t *owner);
-
- /// Get the existing restart value.
- virtual int restart (void);
-
- /// Set a new value for restart and return the original value.
- virtual int restart (int r);
-
- /// Not implemented
- virtual void requeue_position (int);
-
- /// Not implemented
- virtual int requeue_position (void);
-
- // = Low-level wait_set mask manipulation methods.
-
- /**
- * Modify <masks> of the <event_handler>'s entry in WFMO_Reactor
- * depending upon <operation>. <event_handler> must already have
- * been registered with WFMO_Reactor.
- */
- virtual int mask_ops (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask masks,
- int operation);
-
- /**
- * Modify <masks> of the <handle>'s entry in WFMO_Reactor depending
- * upon <operation>. <handle> must already have been registered
- * with WFMO_Reactor.
- */
- virtual int mask_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask masks,
- int ops);
-
- // = Low-level ready_set mask manipulation methods.
-
- /// Not implemented
- virtual int ready_ops (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- int ops);
-
- /// Not implemented
- virtual int ready_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask,
- int ops);
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
-protected:
- /// Registration workhorse
- virtual int register_handler_i (ACE_HANDLE event_handle,
- ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask);
-
- /// Event handling workhorse
- virtual int event_handling (ACE_Time_Value *max_wait_time = 0,
- int alertable = 0);
-
- /// Bit masking workhorse
- virtual int mask_ops_i (ACE_HANDLE io_handle,
- ACE_Reactor_Mask masks,
- int operation);
-
- /// Return the ID of the "owner" thread. Does not do any locking.
- virtual ACE_thread_t owner_i (void);
-
- /// Check to see if it is ok to enter <::WaitForMultipleObjects>.
- virtual int ok_to_wait (ACE_Time_Value *max_wait_time,
- int alertable);
-
- /// Wait for timer and I/O events to occur.
- virtual DWORD wait_for_multiple_events (int timeout,
- int alertable);
-
- /// Check for activity on remaining handles.
- virtual DWORD poll_remaining_handles (DWORD slot);
-
- /// Expire timers. Only the owner thread does useful stuff in this
- /// function.
- virtual int expire_timers (void);
-
- /// Dispatches the timers and I/O handlers.
- virtual int dispatch (DWORD wait_status);
-
- /// Protect against structured exceptions caused by user code when
- /// dispatching handles
- virtual int safe_dispatch (DWORD wait_status);
-
- /**
- * Dispatches any active handles from handles_[<slot>] to
- * handles_[active_handles_] using <WaitForMultipleObjects> to poll
- * through our handle set looking for active handles.
- */
- virtual int dispatch_handles (DWORD slot);
-
- /// Dispatches a single handler. Returns 0 on success, -1 if the
- /// handler was removed.
- virtual int dispatch_handler (DWORD slot,
- DWORD max_handlep1);
-
- /// Dispatches a single handler. Returns 0 on success, -1 if the
- /// handler was removed.
- virtual int simple_dispatch_handler (DWORD slot,
- ACE_HANDLE event_handle);
-
- /// Dispatches a single handler. Returns 0 on success, -1 if the
- /// handler was removed.
- virtual int complex_dispatch_handler (DWORD slot,
- ACE_HANDLE event_handle);
-
- /// Dispatches window messages. Noop for WFMO_Reactor.
- virtual int dispatch_window_messages (void);
-
- virtual ACE_Reactor_Mask upcall (ACE_Event_Handler *event_handler,
- ACE_HANDLE io_handle,
- WSANETWORKEVENTS &events);
-
- /// Used to caluculate the next timeout
- virtual int calculate_timeout (ACE_Time_Value *time);
-
- /// Update the state of the handler repository
- virtual int update_state (void);
-
- /// Check to see if we have a new owner
- virtual int new_owner (void);
-
- /// Set owner to new owner
- virtual int change_owner (void);
-
- /// Handle signals without requiring global/static variables.
- ACE_Sig_Handler *signal_handler_;
-
- /// Keeps track of whether we should delete the signal handler (if we
- /// didn't create it, then we don't delete it).
- int delete_signal_handler_;
-
- /// Defined as a pointer to allow overriding by derived classes...
- ACE_Timer_Queue *timer_queue_;
-
- /// Keeps track of whether we should delete the timer queue (if we
- /// didn't create it, then we don't delete it).
- int delete_timer_queue_;
-
- /// Keeps track of whether we should delete the handler repository
- int delete_handler_rep_;
-
- /// Used when <notify> is called.
- ACE_Reactor_Notify *notify_handler_;
-
- /// Keeps track of whether we should delete the notify handler.
- int delete_notify_handler_;
-
- /**
- * Synchronization for the ACE_WFMO_Reactor.
- *
- * A Process Mutex is used here because of two reasons:
- * (a) The implementation of ACE_Thread_Mutex uses CriticalSections
- * CriticalSections are not waitable using ::WaitForMultipleObjects
- * (b) This is really not a process mutex because it is not
- * named. No other process can use this mutex.
- */
- ACE_Process_Mutex lock_;
-
- /// Adapter used to return internal lock to outside world.
- ACE_Lock_Adapter<ACE_Process_Mutex> lock_adapter_;
-
- /// Table that maps <ACE_HANDLEs> to <ACE_Event_Handler *>'s.
- ACE_WFMO_Reactor_Handler_Repository handler_rep_;
-
- /// A manual event used to block threads from proceeding into
- /// WaitForMultipleObjects
- ACE_Manual_Event ok_to_wait_;
-
- /**
- * A manual event is used so that we can wake everyone up (e.g.,
- * when <ACE_Event_Handlers> are bounded and unbound from the
- * handler repository).
- */
- ACE_Manual_Event wakeup_all_threads_;
-
- /// Used when <wakeup_all_threads_> is signaled
- ACE_Wakeup_All_Threads_Handler wakeup_all_threads_handler_;
-
- /// The changing thread waits on this event, till all threads are not
- /// active anymore
- ACE_Auto_Event waiting_to_change_state_;
-
- /// Count of currently active threads
- size_t active_threads_;
-
- /**
- * The thread which is "owner" of the WFMO_Reactor. The owner
- * concept is used because we don't want multiple threads to try to
- * expire timers. Therefore the "owner" thread is the only one
- * allowed to expire timers. Also, the owner thread is the only
- * thread which waits on the notify handle. Note that the ownership
- * can be transferred.
- */
- ACE_thread_t owner_;
-
- /// The owner to be of the WFMO_Reactor
- ACE_thread_t new_owner_;
-
- /// This is the thread which is responsible for the changing the
- /// state of the <WFMO_Reactor> handle set
- ACE_thread_t change_state_thread_;
-
- /// This is an array of ACE_HANDLEs which keep track of the <lock_>
- /// and <ok_to_wait_> handles
- ACE_HANDLE atomic_wait_array_ [2];
-
- /// This flag is used to keep track of whether we are already closed.
- int open_for_business_;
-
- /// This flag is used to keep track of whether we are actively handling
- /// events or not.
- sig_atomic_t deactivated_;
-
-private:
- /// Deny access since member-wise won't work...
- ACE_WFMO_Reactor (const ACE_WFMO_Reactor &);
- ACE_WFMO_Reactor &operator = (const ACE_WFMO_Reactor &);
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/WFMO_Reactor.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_WIN32 */
-#include "ace/post.h"
-#endif /* ACE_WFMO_REACTOR_H */
diff --git a/ace/WFMO_Reactor.i b/ace/WFMO_Reactor.i
deleted file mode 100644
index 98c6c5d81ba..00000000000
--- a/ace/WFMO_Reactor.i
+++ /dev/null
@@ -1,1131 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/Handle_Set.h"
-#include "ace/Reactor.h"
-/************************************************************/
-
-ACE_INLINE int
-ACE_Wakeup_All_Threads_Handler::handle_signal (int signum,
- siginfo_t *siginfo,
- ucontext_t *)
-{
- ACE_UNUSED_ARG (signum);
- ACE_UNUSED_ARG (siginfo);
-
- // This will get called when <WFMO_Reactor->wakeup_all_threads_> event
- // is signaled. There is nothing to be done here.
- // ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("(%t) waking up to get updated handle set info\n")));
- return 0;
-}
-
-#if defined (ACE_WIN32)
-
-/************************************************************/
-
-ACE_INLINE
-ACE_WFMO_Reactor_Handler_Repository::Common_Info::Common_Info (void)
- : io_entry_ (0),
- event_handler_ (0),
- io_handle_ (ACE_INVALID_HANDLE),
- network_events_ (0),
- delete_event_ (0),
- delete_entry_ (0),
- close_masks_ (ACE_Event_Handler::NULL_MASK)
-{
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::Common_Info::reset (void)
-{
- this->event_handler_ = 0;
- this->io_entry_ = 0;
- this->io_handle_ = ACE_INVALID_HANDLE;
- this->network_events_ = 0;
- this->delete_event_ = 0;
- this->delete_entry_ = 0;
- this->close_masks_ = ACE_Event_Handler::NULL_MASK;
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::Common_Info::set (int io_entry,
- ACE_Event_Handler *event_handler,
- ACE_HANDLE io_handle,
- long network_events,
- int delete_event,
- int delete_entry,
- ACE_Reactor_Mask close_masks)
-{
- this->event_handler_ = event_handler;
- this->io_entry_ = io_entry;
- this->io_handle_ = io_handle;
- this->network_events_ = network_events;
- this->delete_event_ = delete_event;
- this->delete_entry_ = delete_entry;
- this->close_masks_ = close_masks;
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::Common_Info::set (Common_Info &common_info)
-{
- *this = common_info;
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::Common_Info::dump (void) const
-{
- ACE_TRACE ("ACE_WFMO_Reactor_Handler_Repository::Common_Info::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("I/O Entry = %d\n"),
- this->io_entry_));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Event Handler = %d\n"),
- this->event_handler_));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("I/O Handle = %d\n"),
- this->io_handle_));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Network Events = %d\n"),
- this->network_events_));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Delete Event = %d\n"),
- this->delete_event_));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Delete Entry = %d\n"),
- this->delete_entry_));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Close Masks = %d\n"),
- this->close_masks_));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-/************************************************************/
-
-ACE_INLINE
-ACE_WFMO_Reactor_Handler_Repository::Current_Info::Current_Info (void)
- : suspend_entry_ (0)
-{
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::Current_Info::set (int io_entry,
- ACE_Event_Handler *event_handler,
- ACE_HANDLE io_handle,
- long network_events,
- int delete_event,
- int delete_entry,
- ACE_Reactor_Mask close_masks,
- int suspend_entry)
-{
- this->suspend_entry_ = suspend_entry;
- Common_Info::set (io_entry,
- event_handler,
- io_handle,
- network_events,
- delete_event,
- delete_entry,
- close_masks);
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::Current_Info::set (Common_Info &common_info,
- int suspend_entry)
-{
- this->suspend_entry_ = suspend_entry;
- Common_Info::set (common_info);
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::Current_Info::reset (void)
-{
- this->suspend_entry_ = 0;
- Common_Info::reset ();
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::Current_Info::dump (ACE_HANDLE event_handle) const
-{
- ACE_TRACE ("ACE_WFMO_Reactor_Handler_Repository::Current_Info::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- Common_Info::dump ();
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Event Handle = %d\n"),
- event_handle));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Suspend Entry = %d\n"),
- this->suspend_entry_));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-/************************************************************/
-
-ACE_INLINE
-ACE_WFMO_Reactor_Handler_Repository::To_Be_Added_Info::To_Be_Added_Info (void)
- : event_handle_ (ACE_INVALID_HANDLE),
- suspend_entry_ (0)
-{
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::To_Be_Added_Info::set (ACE_HANDLE event_handle,
- int io_entry,
- ACE_Event_Handler *event_handler,
- ACE_HANDLE io_handle,
- long network_events,
- int delete_event,
- int delete_entry,
- ACE_Reactor_Mask close_masks,
- int suspend_entry)
-{
- this->event_handle_ = event_handle;
- this->suspend_entry_ = suspend_entry;
- Common_Info::set (io_entry,
- event_handler,
- io_handle,
- network_events,
- delete_event,
- delete_entry,
- close_masks);
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::To_Be_Added_Info::set (ACE_HANDLE event_handle,
- Common_Info &common_info,
- int suspend_entry)
-{
- this->event_handle_ = event_handle;
- this->suspend_entry_ = suspend_entry;
- Common_Info::set (common_info);
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::To_Be_Added_Info::reset (void)
-{
- this->event_handle_ = ACE_INVALID_HANDLE;
- this->suspend_entry_ = 0;
- Common_Info::reset ();
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::To_Be_Added_Info::dump (void) const
-{
- ACE_TRACE ("ACE_WFMO_Reactor_Handler_Repository::To_Be_Added_Info::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- Common_Info::dump ();
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Event Handle = %d\n"),
- this->event_handle_));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Suspend Entry = %d\n"),
- this->suspend_entry_));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-/************************************************************/
-
-ACE_INLINE
-ACE_WFMO_Reactor_Handler_Repository::Suspended_Info::Suspended_Info (void)
- : event_handle_ (ACE_INVALID_HANDLE),
- resume_entry_ (0)
-{
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::Suspended_Info::reset (void)
-{
- this->event_handle_ = ACE_INVALID_HANDLE;
- this->resume_entry_ = 0;
- Common_Info::reset ();
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::Suspended_Info::set (ACE_HANDLE event_handle,
- int io_entry,
- ACE_Event_Handler *event_handler,
- ACE_HANDLE io_handle,
- long network_events,
- int delete_event,
- int delete_entry,
- ACE_Reactor_Mask close_masks,
- int resume_entry)
-{
- this->event_handle_ = event_handle;
- this->resume_entry_ = resume_entry;
- Common_Info::set (io_entry,
- event_handler,
- io_handle,
- network_events,
- delete_event,
- delete_entry,
- close_masks);
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::Suspended_Info::set (ACE_HANDLE event_handle,
- Common_Info &common_info,
- int resume_entry)
-{
- this->event_handle_ = event_handle;
- this->resume_entry_ = resume_entry;
- Common_Info::set (common_info);
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor_Handler_Repository::Suspended_Info::dump (void) const
-{
- ACE_TRACE ("ACE_WFMO_Reactor_Handler_Repository::Suspended_Info::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- Common_Info::dump ();
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Event Handle = %d\n"),
- this->event_handle_));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_LIB_TEXT ("Resume Entry = %d\n"),
- this->resume_entry_));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-/************************************************************/
-
-ACE_INLINE int
-ACE_WFMO_Reactor_Handler_Repository::close (void)
-{
- // Let all the handlers know that the <WFMO_Reactor> is closing down
- this->unbind_all ();
-
- return 0;
-}
-
-ACE_INLINE ACE_HANDLE *
-ACE_WFMO_Reactor_Handler_Repository::handles (void) const
-{
- // This code is probably too subtle to be useful in the long run...
- // The basic idea is that all threads wait on all user handles plus
- // the <wakeup_all_threads_> handle. The owner thread additional
- // waits on the <notify_> handle. This is to ensure that only the
- // <owner_> thread get to expire timers and handle event on the
- // notify pipe.
- if (ACE_Thread::self () == this->wfmo_reactor_.owner_i ())
- return this->current_handles_;
- else
- return this->current_handles_ + 1;
-}
-
-ACE_INLINE ACE_WFMO_Reactor_Handler_Repository::Current_Info *
-ACE_WFMO_Reactor_Handler_Repository::current_info (void) const
-{
- if (ACE_Thread::self () == this->wfmo_reactor_.owner_i ())
- return this->current_info_;
- else
- return this->current_info_ + 1;
-}
-
-ACE_INLINE DWORD
-ACE_WFMO_Reactor_Handler_Repository::max_handlep1 (void) const
-{
- if (ACE_Thread::self () == this->wfmo_reactor_.owner_i ())
- return this->max_handlep1_;
- else
- return this->max_handlep1_ - 1;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor_Handler_Repository::scheduled_for_deletion (size_t slot) const
-{
- if (ACE_Thread::self () == this->wfmo_reactor_.owner_i ())
- return this->current_info_[slot].delete_entry_ == 1;
- else
- return this->current_info_[slot + 1].delete_entry_ == 1;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor_Handler_Repository::invalid_handle (ACE_HANDLE handle) const
-{
- ACE_TRACE ("ACE_WFMO_Reactor_Handler_Repository::invalid_handle");
- // It's too expensive to perform more exhaustive validity checks on
- // Win32 due to the way that they implement SOCKET HANDLEs.
- if (handle == ACE_INVALID_HANDLE)
- {
- errno = EINVAL;
- return 1;
- }
- else
- return 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor_Handler_Repository::changes_required (void)
-{
- // Check if handles have be scheduled for additions or removal
- return this->handles_to_be_added_ > 0
- || this->handles_to_be_deleted_ > 0
- || this->handles_to_be_suspended_ > 0
- || this->handles_to_be_resumed_ > 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor_Handler_Repository::make_changes (void)
-{
- // This method must ONLY be called by the
- // <WFMO_Reactor->change_state_thread_>. We therefore assume that
- // there will be no contention for this method and hence no guards
- // are neccessary.
-
- // Deletions and suspensions in current_info_
- this->make_changes_in_current_infos ();
-
- // Deletions and resumptions in current_suspended_info_
- this->make_changes_in_suspension_infos ();
-
- // Deletions in to_be_added_info_, or transfers to current_info_ or
- // current_suspended_info_ from to_be_added_info_
- this->make_changes_in_to_be_added_infos ();
-
- return 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor_Handler_Repository::unbind (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- if (this->invalid_handle (handle))
- return -1;
-
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->wfmo_reactor_.lock_, -1);
-
- int changes_required = 0;
- int result = this->unbind_i (handle,
- mask,
- changes_required);
-
- if (changes_required)
- // Wake up all threads in WaitForMultipleObjects so that they can
- // reconsult the handle set
- this->wfmo_reactor_.wakeup_all_threads ();
-
- return result;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::reset_timer_interval
- (long timer_id,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_WFMO_Reactor::reset_timer_interval");
-
- long result = this->timer_queue_->reset_interval
- (timer_id,
- interval);
-
- // Wakeup the owner thread so that it gets the latest timer values
- this->notify ();
-
- return result;
-}
-
-ACE_INLINE long
-ACE_WFMO_Reactor::schedule_timer (ACE_Event_Handler *handler,
- const void *arg,
- const ACE_Time_Value &delay_time,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_WFMO_Reactor::schedule_timer");
-
- long result = this->timer_queue_->schedule
- (handler,
- arg,
- timer_queue_->gettimeofday () + delay_time,
- interval);
-
- // Wakeup the owner thread so that it gets the latest timer values
- this->notify ();
-
- return result;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::cancel_timer (ACE_Event_Handler *handler,
- int dont_call_handle_close)
-{
- ACE_TRACE ("ACE_WFMO_Reactor::cancel_timer");
- return this->timer_queue_->cancel (handler, dont_call_handle_close);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::cancel_timer (long timer_id,
- const void **arg,
- int dont_call_handle_close)
-{
- ACE_TRACE ("ACE_WFMO_Reactor::cancel_timer");
- return this->timer_queue_->cancel (timer_id, arg, dont_call_handle_close);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::register_handler (ACE_Event_Handler *event_handler,
- ACE_HANDLE event_handle)
-{
- // This GUARD is necessary since we are updating shared state.
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- return this->handler_rep_.bind_i (0,
- event_handler,
- 0,
- ACE_INVALID_HANDLE,
- event_handle,
- 0);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::register_handler (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- // This GUARD is necessary since we are updating shared state.
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- return this->register_handler_i (ACE_INVALID_HANDLE,
- ACE_INVALID_HANDLE,
- event_handler,
- mask);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::register_handler (ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- // This GUARD is necessary since we are updating shared state.
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- return this->register_handler_i (ACE_INVALID_HANDLE,
- io_handle,
- event_handler,
- mask);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::register_handler (ACE_HANDLE event_handle,
- ACE_HANDLE io_handle,
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- // This GUARD is necessary since we are updating shared state.
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- return this->register_handler_i (event_handle,
- io_handle,
- event_handler,
- mask);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::register_handler (const ACE_Handle_Set &handles,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- // This GUARD is necessary since we are updating shared state.
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- ACE_Handle_Set_Iterator handle_iter (handles);
- ACE_HANDLE h;
-
- while ((h = handle_iter ()) != ACE_INVALID_HANDLE)
- if (this->register_handler_i (h,
- ACE_INVALID_HANDLE,
- handler,
- mask) == -1)
- return -1;
-
- return 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::schedule_wakeup (ACE_HANDLE io_handle,
- ACE_Reactor_Mask masks_to_be_added)
-{
- // This GUARD is necessary since we are updating shared state.
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- return this->mask_ops_i (io_handle,
- masks_to_be_added,
- ACE_Reactor::ADD_MASK);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::schedule_wakeup (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask masks_to_be_added)
-{
- // This GUARD is necessary since we are updating shared state.
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- return this->mask_ops_i (event_handler->get_handle (),
- masks_to_be_added,
- ACE_Reactor::ADD_MASK);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::cancel_wakeup (ACE_HANDLE io_handle,
- ACE_Reactor_Mask masks_to_be_removed)
-{
- // This GUARD is necessary since we are updating shared state.
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- return this->mask_ops_i (io_handle,
- masks_to_be_removed,
- ACE_Reactor::CLR_MASK);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::cancel_wakeup (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask masks_to_be_removed)
-{
- // This GUARD is necessary since we are updating shared state.
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- return this->mask_ops_i (event_handler->get_handle (),
- masks_to_be_removed,
- ACE_Reactor::CLR_MASK);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::remove_handler (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask)
-{
- return this->handler_rep_.unbind (event_handler->get_handle (),
- mask);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::remove_handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- return this->handler_rep_.unbind (handle,
- mask);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::remove_handler (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask mask)
-{
- ACE_Handle_Set_Iterator handle_iter (handles);
- ACE_HANDLE h;
- int changes_required = 0;
-
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- while ((h = handle_iter ()) != ACE_INVALID_HANDLE)
- if (this->handler_rep_.unbind_i (h,
- mask,
- changes_required) == -1)
- return -1;
-
- // Wake up all threads in WaitForMultipleObjects so that they can
- // reconsult the handle set
- this->wakeup_all_threads ();
-
- return 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::suspend_handler (ACE_HANDLE handle)
-{
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- int changes_required = 0;
- int result =
- this->handler_rep_.suspend_handler_i (handle,
- changes_required);
-
- if (changes_required)
- // Wake up all threads in WaitForMultipleObjects so that they can
- // reconsult the handle set
- this->wakeup_all_threads ();
-
- return result;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::suspend_handler (ACE_Event_Handler *event_handler)
-{
- return this->suspend_handler (event_handler->get_handle ());
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::suspend_handler (const ACE_Handle_Set &handles)
-{
- ACE_Handle_Set_Iterator handle_iter (handles);
- ACE_HANDLE h;
- int changes_required = 0;
-
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- while ((h = handle_iter ()) != ACE_INVALID_HANDLE)
- if (this->handler_rep_.suspend_handler_i (h,
- changes_required) == -1)
- return -1;
-
- // Wake up all threads in WaitForMultipleObjects so that they can
- // reconsult the handle set
- this->wakeup_all_threads ();
-
- return 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::suspend_handlers (void)
-{
- int error = 0;
- int result = 0;
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- // First suspend all current handles
- int changes_required = 0;
-
- for (size_t i = 0;
- i < this->handler_rep_.max_handlep1_ && error == 0;
- i++)
- {
- result =
- this->handler_rep_.suspend_handler_i (this->handler_rep_.current_handles_[i],
- changes_required);
- if (result == -1)
- error = 1;
- }
-
- if (!error)
- // Then suspend all to_be_added_handles
- for (size_t i = 0;
- i < this->handler_rep_.handles_to_be_added_;
- i++)
- this->handler_rep_.to_be_added_info_[i].suspend_entry_ = 1;
-
- // Wake up all threads in WaitForMultipleObjects so that they can
- // reconsult the handle set
- this->wakeup_all_threads ();
-
- return error ? -1 : 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::resume_handler (ACE_HANDLE handle)
-{
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- int changes_required = 0;
- int result =
- this->handler_rep_.resume_handler_i (handle,
- changes_required);
-
- if (changes_required)
- // Wake up all threads in WaitForMultipleObjects so that they can
- // reconsult the handle set
- this->wakeup_all_threads ();
-
- return result;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::resume_handler (ACE_Event_Handler *event_handler)
-{
- return this->resume_handler (event_handler->get_handle ());
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::resume_handler (const ACE_Handle_Set &handles)
-{
- ACE_Handle_Set_Iterator handle_iter (handles);
- ACE_HANDLE h;
- int changes_required = 0;
-
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- while ((h = handle_iter ()) != ACE_INVALID_HANDLE)
- if (this->handler_rep_.resume_handler_i (h,
- changes_required) == -1)
- return -1;
-
- // Wake up all threads in WaitForMultipleObjects so that they can
- // reconsult the handle set
- this->wakeup_all_threads ();
-
- return 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::resume_handlers (void)
-{
- int error = 0;
- int result = 0;
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
-
- int changes_required = 0;
- for (size_t i = 0;
- i < this->handler_rep_.suspended_handles_ && error == 0;
- i++)
- {
- result =
- this->handler_rep_.resume_handler_i (this->handler_rep_.current_suspended_info_[i].event_handle_,
- changes_required);
- if (result == -1)
- error = 1;
- }
-
- if (!error)
- // Then resume all to_be_added_handles
- for (size_t i = 0;
- i < this->handler_rep_.handles_to_be_added_;
- i++)
- this->handler_rep_.to_be_added_info_[i].suspend_entry_ = 0;
-
- // Wake up all threads in WaitForMultipleObjects so that they can
- // reconsult the handle set
- this->wakeup_all_threads ();
-
- return error ? -1 : 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::uses_event_associations (void)
-{
- // Since the WFMO_Reactor does use event associations, this function
- // always return 1.
- return 1;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::handle_events (ACE_Time_Value &how_long)
-{
- return this->event_handling (&how_long, FALSE);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::alertable_handle_events (ACE_Time_Value &how_long)
-{
- return this->event_handling (&how_long, TRUE);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::handle_events (ACE_Time_Value *how_long)
-{
- return this->event_handling (how_long, FALSE);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::alertable_handle_events (ACE_Time_Value *how_long)
-{
- return this->event_handling (how_long, TRUE);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::deactivated (void)
-{
- return this->deactivated_;
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor::deactivate (int do_stop)
-{
- this->deactivated_ = do_stop;
- this->wakeup_all_threads ();
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::owner (ACE_thread_t *t)
-{
- ACE_GUARD_RETURN (ACE_Process_Mutex, ace_mon, this->lock_, -1);
- *t = this->owner_i ();
- return 0;
-}
-
-ACE_INLINE ACE_thread_t
-ACE_WFMO_Reactor::owner_i (void)
-{
- return this->owner_;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::owner (ACE_thread_t new_owner, ACE_thread_t *old_owner)
-{
- ACE_GUARD_RETURN (ACE_Process_Mutex, monitor, this->lock_, -1);
- this->new_owner_ = new_owner;
-
- if (old_owner != 0)
- *old_owner = this->owner_i ();
-
- // Wake up all threads in WaitForMultipleObjects so that they can
- // reconsult the new owner responsibilities
- this->wakeup_all_threads ();
-
- return 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::new_owner (void)
-{
- return this->new_owner_ != ACE_thread_t (0);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::change_owner (void)
-{
- this->owner_ = this->new_owner_;
- this->new_owner_ = ACE_thread_t (0);
- return 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::safe_dispatch (DWORD wait_status)
-{
- int result = -1;
- ACE_SEH_TRY
- {
- result = this->dispatch (wait_status);
- }
- ACE_SEH_FINALLY
- {
- this->update_state ();
- }
-
- return result;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::dispatch_window_messages (void)
-{
- return 0;
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor::wakeup_all_threads (void)
-{
- this->wakeup_all_threads_.signal ();
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::notify (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- ACE_Time_Value *timeout)
-{
- return this->notify_handler_->notify (event_handler, mask, timeout);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::register_handler (int signum,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp,
- ACE_Event_Handler **old_sh,
- ACE_Sig_Action *old_disp)
-{
- return this->signal_handler_->register_handler (signum,
- new_sh, new_disp,
- old_sh, old_disp);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::register_handler (const ACE_Sig_Set &sigset,
- ACE_Event_Handler *new_sh,
- ACE_Sig_Action *new_disp)
-{
- int result = 0;
-
-#if (ACE_NSIG > 0)
- for (int s = 1; s < ACE_NSIG; s++)
- if (sigset.is_member (s)
- && this->signal_handler_->register_handler (s,
- new_sh,
- new_disp) == -1)
- result = -1;
-#else
- ACE_UNUSED_ARG (sigset);
- ACE_UNUSED_ARG (new_sh);
- ACE_UNUSED_ARG (new_disp);
-#endif /* ACE_NSIG */
-
- return result;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::remove_handler (int signum,
- ACE_Sig_Action *new_disp,
- ACE_Sig_Action *old_disp,
- int sigkey)
-{
- return this->signal_handler_->remove_handler (signum,
- new_disp,
- old_disp,
- sigkey);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::remove_handler (const ACE_Sig_Set &sigset)
-{
- int result = 0;
-
-#if (ACE_NSIG > 0)
- for (int s = 1; s < ACE_NSIG; s++)
- if (sigset.is_member (s)
- && this->signal_handler_->remove_handler (s) == -1)
- result = -1;
-#else
- ACE_UNUSED_ARG (sigset);
-#endif /* ACE_NSIG */
-
- return result;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::handler (int signum, ACE_Event_Handler **eh)
-{
- ACE_Event_Handler *handler =
- this->signal_handler_->handler (signum);
-
- if (handler == 0)
- return -1;
- else if (eh != 0)
- *eh = handler;
- return 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::mask_ops (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- int operation)
-{
- ACE_GUARD_RETURN (ACE_Process_Mutex, monitor, this->lock_, -1);
-
- return this->mask_ops_i (event_handler->get_handle (),
- mask,
- operation);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::mask_ops (ACE_HANDLE io_handle,
- ACE_Reactor_Mask mask,
- int operation)
-{
- ACE_GUARD_RETURN (ACE_Process_Mutex, monitor, this->lock_, -1);
-
- return this->mask_ops_i (io_handle,
- mask,
- operation);
-}
-
-ACE_INLINE void
-ACE_WFMO_Reactor::requeue_position (int)
-{
- // Not implemented
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::requeue_position (void)
-{
- // Don't have an implementation for this yet...
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::restart (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::restart (int)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::ready_ops (ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask,
- int ops)
-{
- // Don't have an implementation for this yet...
- ACE_UNUSED_ARG (event_handler);
- ACE_UNUSED_ARG (mask);
- ACE_UNUSED_ARG (ops);
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::ready_ops (ACE_HANDLE handle,
- ACE_Reactor_Mask,
- int ops)
-{
- // Don't have an implementation for this yet...
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (ops);
- ACE_NOTSUP_RETURN (-1);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::handler (ACE_HANDLE handle,
- ACE_Reactor_Mask mask,
- ACE_Event_Handler **event_handler)
-{
- return this->handler_rep_.handler (handle,
- mask,
- event_handler);
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor::initialized (void)
-{
- return this->open_for_business_;
-}
-
-ACE_INLINE ACE_Lock &
-ACE_WFMO_Reactor::lock (void)
-{
- return this->lock_adapter_;
-}
-
-ACE_INLINE size_t
-ACE_WFMO_Reactor::size (void) const
-{
- // Size of repository minus the 2 used for internal purposes
- return this->handler_rep_.max_size_ - 2;
-}
-#else
-ACE_INLINE int
-ACE_WFMO_Reactor_Handler_Repository::changes_required (void)
-{
- return 0;
-}
-
-ACE_INLINE int
-ACE_WFMO_Reactor_Handler_Repository::make_changes (void)
-{
- return 0;
-}
-
-ACE_INLINE
-ACE_WFMO_Reactor_Handler_Repository::~ACE_WFMO_Reactor_Handler_Repository (void)
-{
-}
-
-#endif /* ACE_WIN32 */
diff --git a/ace/WIN32_Asynch_IO.cpp b/ace/WIN32_Asynch_IO.cpp
deleted file mode 100644
index 4c02cf88324..00000000000
--- a/ace/WIN32_Asynch_IO.cpp
+++ /dev/null
@@ -1,3802 +0,0 @@
-#include "ace/WIN32_Asynch_IO.h"
-
-ACE_RCSID (ace,
- Win32_Asynch_IO,
- "$Id$")
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
-
-#include "ace/WIN32_Proactor.h"
-#include "ace/Message_Block.h"
-#include "ace/Service_Config.h"
-#include "ace/INET_Addr.h"
-#include "ace/Task_T.h"
-
-size_t
-ACE_WIN32_Asynch_Result::bytes_transferred (void) const
-{
- return this->bytes_transferred_;
-}
-
-const void *
-ACE_WIN32_Asynch_Result::act (void) const
-{
- return this->act_;
-}
-
-int
-ACE_WIN32_Asynch_Result::success (void) const
-{
- return this->success_;
-}
-
-const void *
-ACE_WIN32_Asynch_Result::completion_key (void) const
-{
- return this->completion_key_;
-}
-
-u_long
-ACE_WIN32_Asynch_Result::error (void) const
-{
- return this->error_;
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Result::event (void) const
-{
- return this->hEvent;
-}
-
-u_long
-ACE_WIN32_Asynch_Result::offset (void) const
-{
- return this->Offset;
-}
-
-u_long
-ACE_WIN32_Asynch_Result::offset_high (void) const
-{
- return this->OffsetHigh;
-}
-
-int
-ACE_WIN32_Asynch_Result::priority (void) const
-{
- ACE_NOTSUP_RETURN (0);
-}
-
-int
-ACE_WIN32_Asynch_Result::signal_number (void) const
-{
- ACE_NOTSUP_RETURN (0);
-}
-
-int
-ACE_WIN32_Asynch_Result::post_completion (ACE_Proactor_Impl *proactor)
-{
- // Get to the platform specific implementation.
- ACE_WIN32_Proactor *win32_proactor = ACE_dynamic_cast (ACE_WIN32_Proactor *,
- proactor);
-
- if (win32_proactor == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("Dynamic cast to WIN32 Proactor failed\n")),
- -1);
-
- // Post myself.
- return win32_proactor->post_completion (this);
-}
-
-void
-ACE_WIN32_Asynch_Result::set_bytes_transferred (size_t nbytes)
-{
- this->bytes_transferred_ = nbytes;
-}
-
-void
-ACE_WIN32_Asynch_Result::set_error (u_long errcode)
-{
- this->error_ = errcode;
-}
-
-ACE_WIN32_Asynch_Result::~ACE_WIN32_Asynch_Result (void)
-{
-}
-
-ACE_WIN32_Asynch_Result::ACE_WIN32_Asynch_Result (ACE_Handler &handler,
- const void* act,
- ACE_HANDLE event,
- u_long offset,
- u_long offset_high,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- OVERLAPPED (),
- handler_ (handler),
- act_ (act),
- bytes_transferred_ (0),
- success_ (0),
- completion_key_ (0),
- error_ (0)
-{
- // Set the ACE_OVERLAPPED structure
- this->Internal = 0;
- this->InternalHigh = 0;
- this->Offset = offset;
- this->OffsetHigh = offset_high;
- this->hEvent = event;
-
- ACE_UNUSED_ARG (priority);
- ACE_UNUSED_ARG (signal_number);
-}
-
-int
-ACE_WIN32_Asynch_Operation::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- this->proactor_ = proactor;
- this->handler_ = &handler;
- this->handle_ = handle;
-
- // Grab the handle from the <handler> if <handle> is invalid
- if (this->handle_ == ACE_INVALID_HANDLE)
- this->handle_ = this->handler_->handle ();
- if (this->handle_ == ACE_INVALID_HANDLE)
- return -1;
-
- // Register with the <proactor>.
- return this->win32_proactor_->register_handle (this->handle_,
- completion_key);
-}
-
-int
-ACE_WIN32_Asynch_Operation::cancel (void)
-{
-#if (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) \
- && ( (defined (_MSC_VER) && (_MSC_VER > 1020)) \
- || (defined (__BORLANDC__) && (__BORLANDC__ >= 0x530)) \
- || (defined (__MINGW32)))
- // All I/O operations that are canceled will complete with the error
- // ERROR_OPERATION_ABORTED. All completion notifications for the I/O
- // operations will occur normally.
-
- // @@ This API returns 0 on failure. So, I am returning -1 in that
- // case. Is that right? (Alex).
-
- int result = (int) ::CancelIo (this->handle_);
-
- if (result == 0)
- // Couldnt cancel the operations.
- return 2;
-
- // result is non-zero. All the operations are cancelled then.
- return 0;
-
-#else /* Not ACE_HAS_WINNT4 && ACE_HAS_WINNT4!=0 && _MSC... */
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_AIO_CALLS */
-}
-
-ACE_Proactor *
-ACE_WIN32_Asynch_Operation::proactor (void) const
-{
- return this->proactor_;
-}
-
-ACE_WIN32_Asynch_Operation::ACE_WIN32_Asynch_Operation (ACE_WIN32_Proactor *win32_proactor)
- : ACE_Asynch_Operation_Impl (),
- win32_proactor_ (win32_proactor),
- proactor_ (0),
- handler_ (0),
- handle_ (ACE_INVALID_HANDLE)
-{
-}
-
-ACE_WIN32_Asynch_Operation::~ACE_WIN32_Asynch_Operation (void)
-{
-}
-
-// ************************************************************
-
-size_t
-ACE_WIN32_Asynch_Read_Stream_Result::bytes_to_read (void) const
-{
- return this->bytes_to_read_;
-}
-
-ACE_Message_Block &
-ACE_WIN32_Asynch_Read_Stream_Result::message_block (void) const
-{
- return this->message_block_;
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Read_Stream_Result::handle (void) const
-{
- return this->handle_;
-}
-
-ACE_WIN32_Asynch_Read_Stream_Result::ACE_WIN32_Asynch_Read_Stream_Result (
- ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number,
- int scatter_enabled)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Read_Stream_Result_Impl (),
- ACE_WIN32_Asynch_Result (handler,
- act,
- event,
- 0,
- 0,
- priority,
- signal_number),
- bytes_to_read_ (bytes_to_read),
- message_block_ (message_block),
- handle_ (handle),
- scatter_enabled_ (scatter_enabled)
-{
-}
-
-void
-ACE_WIN32_Asynch_Read_Stream_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data which was returned by GetQueuedCompletionStatus
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // Appropriately move the pointers in the message block.
- if (!this->scatter_enabled ())
- this->message_block_.wr_ptr (bytes_transferred);
- else
- {
- for (ACE_Message_Block* mb = &this->message_block_;
- (mb != 0) && (bytes_transferred > 0);
- mb = mb->cont ())
- {
- size_t len_part = mb->space ();
-
- if (len_part > bytes_transferred)
- len_part = bytes_transferred;
-
- mb->wr_ptr (len_part);
-
- bytes_transferred -= len_part;
- }
- }
-
- // Create the interface result class.
- ACE_Asynch_Read_Stream::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_read_stream (result);
-}
-
-ACE_WIN32_Asynch_Read_Stream_Result::~ACE_WIN32_Asynch_Read_Stream_Result (void)
-{
-}
-
-// Base class operations. These operations are here to kill dominance
-// warnings. These methods call the base class methods.
-
-size_t
-ACE_WIN32_Asynch_Read_Stream_Result::bytes_transferred (void) const
-{
- return ACE_WIN32_Asynch_Result::bytes_transferred ();
-}
-
-const void *
-ACE_WIN32_Asynch_Read_Stream_Result::act (void) const
-{
- return ACE_WIN32_Asynch_Result::act ();
-}
-
-int
-ACE_WIN32_Asynch_Read_Stream_Result::success (void) const
-{
- return ACE_WIN32_Asynch_Result::success ();
-}
-
-const void *
-ACE_WIN32_Asynch_Read_Stream_Result::completion_key (void) const
-{
- return ACE_WIN32_Asynch_Result::completion_key ();
-}
-
-u_long
-ACE_WIN32_Asynch_Read_Stream_Result::error (void) const
-{
- return ACE_WIN32_Asynch_Result::error ();
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Read_Stream_Result::event (void) const
-{
- return ACE_WIN32_Asynch_Result::event ();
-}
-
-u_long
-ACE_WIN32_Asynch_Read_Stream_Result::offset (void) const
-{
- return ACE_WIN32_Asynch_Result::offset ();
-}
-
-u_long
-ACE_WIN32_Asynch_Read_Stream_Result::offset_high (void) const
-{
- return ACE_WIN32_Asynch_Result::offset_high ();
-}
-
-int
-ACE_WIN32_Asynch_Read_Stream_Result::priority (void) const
-{
- return ACE_WIN32_Asynch_Result::priority ();
-}
-
-int
-ACE_WIN32_Asynch_Read_Stream_Result::signal_number (void) const
-{
- return ACE_WIN32_Asynch_Result::signal_number ();
-}
-
-int
-ACE_WIN32_Asynch_Read_Stream_Result::post_completion (ACE_Proactor_Impl *proactor)
-{
- return ACE_WIN32_Asynch_Result::post_completion (proactor);
-}
-
-int
-ACE_WIN32_Asynch_Read_Stream_Result::scatter_enabled (void) const
-{
- return this->scatter_enabled_;
-}
-
-ACE_WIN32_Asynch_Read_Stream::ACE_WIN32_Asynch_Read_Stream (ACE_WIN32_Proactor *win32_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Read_Stream_Impl (),
- ACE_WIN32_Asynch_Operation (win32_proactor)
-{
-}
-
-int
-ACE_WIN32_Asynch_Read_Stream::read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number)
-{
- size_t space = message_block.space ();
- if (bytes_to_read > space)
- bytes_to_read = space;
-
- if (bytes_to_read == 0)
- {
- errno = ENOSPC;
- return -1;
- }
-
- // Create the Asynch_Result.
- ACE_WIN32_Asynch_Read_Stream_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_WIN32_Asynch_Read_Stream_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_read,
- act,
- this->win32_proactor_->get_handle (),
- priority,
- signal_number),
- -1);
-
- // Shared read
- ssize_t return_val = this->shared_read (result);
-
- // Upon errors
- if (return_val == -1)
- delete result;
-
- return return_val;
-}
-
-int
-ACE_WIN32_Asynch_Read_Stream::readv (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number)
-{
-
- iovec iov[ACE_IOV_MAX];
- int iovcnt = 0;
-
- // We should not read more than user requested,
- // but it is allowed to read less
-
- for (const ACE_Message_Block* msg = &message_block;
- msg != 0 && bytes_to_read > 0 && iovcnt < ACE_IOV_MAX;
- msg = msg->cont () , ++iovcnt )
- {
- size_t msg_space = msg->space ();
-
- // OS should correctly process zero length buffers
- // if ( msg_space == 0 )
- // ACE_ERROR_RETURN ((LM_ERROR,
- // ACE_LIB_TEXT ("ACE_WIN32_Asynch_Read_Stream::readv:")
- // ACE_LIB_TEXT ("No space in the message block\n")),
- // -1);
-
- if (msg_space > bytes_to_read)
- msg_space = bytes_to_read;
- bytes_to_read -= msg_space;
-
- // Make as many iovec as needed to fit all of msg_space.
- size_t wr_ptr_offset = 0;
- while (msg_space > 0 && iovcnt < ACE_IOV_MAX)
- {
- u_long this_chunk_length;
- if (msg_space > ULONG_MAX)
- this_chunk_length = ULONG_MAX;
- else
- this_chunk_length = ACE_static_cast (u_long, msg_space);
- // Collect the data in the iovec.
- iov[iovcnt].iov_base = msg->wr_ptr () + wr_ptr_offset;
- iov[iovcnt].iov_len = this_chunk_length;
- msg_space -= this_chunk_length;
- wr_ptr_offset += this_chunk_length;
-
- // Increment iovec counter if there's more to do.
- if (msg_space > 0)
- iovcnt++;
- }
- if (msg_space > 0) // Ran out of iovecs before msg_space exhausted
- {
- errno = ERANGE;
- return -1;
- }
- }
-
- // Re-calculate number bytes to read
- bytes_to_read = 0;
-
- for (int i = 0; i < iovcnt ; ++i)
- bytes_to_read += iov[i].iov_len;
-
- if (bytes_to_read == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_WIN32_Asynch_Read_Stream::readv:")
- ACE_LIB_TEXT ("Attempt to read 0 bytes\n")),
- -1);
-
- // Create the Asynch_Result.
- ACE_WIN32_Asynch_Read_Stream_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_WIN32_Asynch_Read_Stream_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_read,
- act,
- this->win32_proactor_->get_handle (),
- priority,
- signal_number,
- 1), // scatter read enabled
- -1);
-
- // do the scatter recv
-
- result->set_error (0); // Clear error before starting IO.
-
- DWORD bytes_recvd = 0;
- u_long flags = 0;
-
- int initiate_result = ::WSARecv (ACE_reinterpret_cast (SOCKET, result->handle ()),
- ACE_reinterpret_cast (WSABUF *, iov),
- iovcnt,
- &bytes_recvd,
- &flags,
- result,
- 0);
-
- if (0 == initiate_result)
- // Immediate success: the OVERLAPPED will still get queued.
- return 1;
-
- ACE_ASSERT (initiate_result == SOCKET_ERROR);
-
- // If initiate failed, check for a bad error.
- ACE_OS::set_errno_to_last_error ();
- switch (errno)
- {
- case ERROR_IO_PENDING:
- // The IO will complete proactively: the OVERLAPPED will still
- // get queued.
- initiate_result = 0;
- break;
-
- default:
- // Something else went wrong: the OVERLAPPED will not get
- // queued.
-
- if (ACE::debug ())
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("WSARecv")));
- }
-
- delete result;
- initiate_result = -1;
- break;
- }
-
- return initiate_result;
-}
-
-ACE_WIN32_Asynch_Read_Stream::~ACE_WIN32_Asynch_Read_Stream (void)
-{
-}
-
-int
-ACE_WIN32_Asynch_Read_Stream::shared_read (ACE_WIN32_Asynch_Read_Stream_Result *result)
-{
- // ReadFile API limits us to DWORD range.
- if (result->bytes_to_read () > MAXDWORD)
- {
- errno = ERANGE;
- return -1;
- }
- DWORD bytes_to_read = ACE_static_cast (DWORD, result->bytes_to_read ());
- u_long bytes_read;
-
- result->set_error (0); // Clear error before starting IO.
-
- // Initiate the read
- int initiate_result = ::ReadFile (result->handle (),
- result->message_block ().wr_ptr (),
- bytes_to_read,
- &bytes_read,
- result);
- if (initiate_result == 1)
- // Immediate success: the OVERLAPPED will still get queued.
- return 1;
-
- // If initiate failed, check for a bad error.
- ACE_OS::set_errno_to_last_error ();
- switch (errno)
- {
- case ERROR_IO_PENDING:
- // The IO will complete proactively: the OVERLAPPED will still
- // get queued.
- return 0;
-
- default:
- // Something else went wrong: the OVERLAPPED will not get
- // queued.
-
- if (ACE::debug ())
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ReadFile")));
- }
-
- return -1;
- }
-}
-
-// Methods belong to ACE_WIN32_Asynch_Operation base class. These
-// methods are defined here to avoid VC++ warnings. They route the
-// call to the ACE_WIN32_Asynch_Operation base class.
-
-int
-ACE_WIN32_Asynch_Read_Stream::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- return ACE_WIN32_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_WIN32_Asynch_Read_Stream::cancel (void)
-{
- return ACE_WIN32_Asynch_Operation::cancel ();
-}
-
-ACE_Proactor *
-ACE_WIN32_Asynch_Read_Stream::proactor (void) const
-{
- return ACE_WIN32_Asynch_Operation::proactor ();
-}
-
-size_t
-ACE_WIN32_Asynch_Write_Stream_Result::bytes_to_write (void) const
-{
- return this->bytes_to_write_;
-}
-
-ACE_Message_Block &
-ACE_WIN32_Asynch_Write_Stream_Result::message_block (void) const
-{
- return this->message_block_;
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Write_Stream_Result::handle (void) const
-{
- return this->handle_;
-}
-
-ACE_WIN32_Asynch_Write_Stream_Result::ACE_WIN32_Asynch_Write_Stream_Result (
- ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number,
- int gather_enabled)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Write_Stream_Result_Impl (),
- ACE_WIN32_Asynch_Result (handler, act, event, 0, 0, priority, signal_number),
- bytes_to_write_ (bytes_to_write),
- message_block_ (message_block),
- handle_ (handle),
- gather_enabled_ (gather_enabled)
-{
-}
-
-void
-ACE_WIN32_Asynch_Write_Stream_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data which was returned by <GetQueuedCompletionStatus>.
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // Appropriately move the pointers in the message block.
- if (!this->gather_enabled ())
- this->message_block_.rd_ptr (bytes_transferred);
- else
- {
- for (ACE_Message_Block* mb = &this->message_block_;
- (mb != 0) && (bytes_transferred > 0);
- mb = mb->cont ())
- {
- size_t len_part = mb->length ();
-
- if ( len_part > bytes_transferred)
- len_part = bytes_transferred;
-
- mb->rd_ptr (len_part);
-
- bytes_transferred -= len_part;
- }
- }
-
- // Create the interface result class.
- ACE_Asynch_Write_Stream::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_write_stream (result);
-}
-
-ACE_WIN32_Asynch_Write_Stream_Result::~ACE_WIN32_Asynch_Write_Stream_Result (void)
-{
-}
-
-// Base class operations. These operations are here to kill dominance
-// warnings. These methods call the base class methods.
-
-size_t
-ACE_WIN32_Asynch_Write_Stream_Result::bytes_transferred (void) const
-{
- return ACE_WIN32_Asynch_Result::bytes_transferred ();
-}
-
-const void *
-ACE_WIN32_Asynch_Write_Stream_Result::act (void) const
-{
- return ACE_WIN32_Asynch_Result::act ();
-}
-
-int
-ACE_WIN32_Asynch_Write_Stream_Result::success (void) const
-{
- return ACE_WIN32_Asynch_Result::success ();
-}
-
-const void *
-ACE_WIN32_Asynch_Write_Stream_Result::completion_key (void) const
-{
- return ACE_WIN32_Asynch_Result::completion_key ();
-}
-
-u_long
-ACE_WIN32_Asynch_Write_Stream_Result::error (void) const
-{
- return ACE_WIN32_Asynch_Result::error ();
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Write_Stream_Result::event (void) const
-{
- return ACE_WIN32_Asynch_Result::event ();
-}
-
-u_long
-ACE_WIN32_Asynch_Write_Stream_Result::offset (void) const
-{
- return ACE_WIN32_Asynch_Result::offset ();
-}
-
-u_long
-ACE_WIN32_Asynch_Write_Stream_Result::offset_high (void) const
-{
- return ACE_WIN32_Asynch_Result::offset_high ();
-}
-
-int
-ACE_WIN32_Asynch_Write_Stream_Result::priority (void) const
-{
- return ACE_WIN32_Asynch_Result::priority ();
-}
-
-int
-ACE_WIN32_Asynch_Write_Stream_Result::signal_number (void) const
-{
- return ACE_WIN32_Asynch_Result::signal_number ();
-}
-
-int
-ACE_WIN32_Asynch_Write_Stream_Result::post_completion (ACE_Proactor_Impl *proactor)
-{
- return ACE_WIN32_Asynch_Result::post_completion (proactor);
-}
-
-int
-ACE_WIN32_Asynch_Write_Stream_Result::gather_enabled (void) const
-{
- return this->gather_enabled_;
-}
-
-ACE_WIN32_Asynch_Write_Stream::ACE_WIN32_Asynch_Write_Stream (ACE_WIN32_Proactor *win32_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Write_Stream_Impl (),
- ACE_WIN32_Asynch_Operation (win32_proactor)
-{
-}
-
-int
-ACE_WIN32_Asynch_Write_Stream::write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number)
-{
- size_t len = message_block.length();
-
- if (bytes_to_write > len)
- bytes_to_write = len ;
-
- if (bytes_to_write == 0)
- ACE_ERROR_RETURN
- ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_WIN32_Asynch_Write_Stream::write:")
- ACE_LIB_TEXT ("Attempt to write 0 bytes\n")),
- -1);
-
- ACE_WIN32_Asynch_Write_Stream_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_WIN32_Asynch_Write_Stream_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_write,
- act,
- this->win32_proactor_->get_handle (),
- priority,
- signal_number),
- -1);
-
- // Shared write
- ssize_t return_val = this->shared_write (result);
-
- // Upon errors
- if (return_val == -1)
- delete result;
-
- return return_val;
-}
-
-int
-ACE_WIN32_Asynch_Write_Stream::writev (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number)
-{
- iovec iov[ACE_IOV_MAX];
- int iovcnt = 0;
-
- // We should not write more than user requested,
- // but it is allowed to write less
-
- for (const ACE_Message_Block* msg = &message_block;
- msg != 0 && bytes_to_write > 0 && iovcnt < ACE_IOV_MAX;
- msg = msg->cont () , ++iovcnt)
- {
- size_t msg_len = msg->length ();
-
- // OS should process zero length block correctly
- // if ( msg_len == 0 )
- // ACE_ERROR_RETURN ((LM_ERROR,
- // ACE_LIB_TEXT ("ACE_WIN32_Asynch_Write_Stream::writev:")
- // ACE_LIB_TEXT ("Zero-length message block\n")),
- // -1);
-
- if (msg_len > bytes_to_write)
- msg_len = bytes_to_write;
- bytes_to_write -= msg_len;
-
- // Make as many iovec as needed to fit all of msg_len.
- size_t rd_ptr_offset = 0;
- while (msg_len > 0 && iovcnt < ACE_IOV_MAX)
- {
- u_long this_chunk_length;
- if (msg_len > ULONG_MAX)
- this_chunk_length = ULONG_MAX;
- else
- this_chunk_length = ACE_static_cast (u_long, msg_len);
- // Collect the data in the iovec.
- iov[iovcnt].iov_base = msg->rd_ptr () + rd_ptr_offset;
- iov[iovcnt].iov_len = this_chunk_length;
- msg_len -= this_chunk_length;
- rd_ptr_offset += this_chunk_length;
-
- // Increment iovec counter if there's more to do.
- if (msg_len > 0)
- iovcnt++;
- }
- if (msg_len > 0) // Ran out of iovecs before msg_space exhausted
- {
- errno = ERANGE;
- return -1;
- }
- }
-
- // Re-calculate number bytes to write
- bytes_to_write = 0;
-
- for ( int i=0; i < iovcnt ; ++i )
- bytes_to_write += iov[i].iov_len;
-
- if ( bytes_to_write == 0 )
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_WIN32_Asynch_Write_Stream::writev:")
- ACE_LIB_TEXT ("Attempt to write 0 bytes\n")),
- -1);
-
-
- ACE_WIN32_Asynch_Write_Stream_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_WIN32_Asynch_Write_Stream_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_write,
- act,
- this->win32_proactor_->get_handle (),
- priority,
- signal_number,
- 1), // gather write enabled
- -1);
-
- // do the gather send
-
- u_long bytes_sent = 0;
-
- int initiate_result = ::WSASend (ACE_reinterpret_cast (SOCKET, result->handle ()),
- ACE_reinterpret_cast (WSABUF *, iov),
- iovcnt,
- &bytes_sent,
- 0, // flags
- result,
- 0);
-
- if (0 == initiate_result)
- // Immediate success: the OVERLAPPED will still get queued.
- return 1;
-
- ACE_ASSERT (initiate_result == SOCKET_ERROR);
-
- // If initiate failed, check for a bad error.
- ACE_OS::set_errno_to_last_error ();
- switch (errno)
- {
- case ERROR_IO_PENDING:
- // The IO will complete proactively: the OVERLAPPED will still
- // get queued.
- initiate_result = 0;
- break;
-
- default:
- // Something else went wrong: the OVERLAPPED will not get
- // queued.
-
- if (ACE::debug ())
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("WSASend")));
- }
-
- delete result;
- initiate_result = -1;
- break;
- }
-
- return initiate_result;
-}
-
-ACE_WIN32_Asynch_Write_Stream::~ACE_WIN32_Asynch_Write_Stream (void)
-{
-}
-
-int
-ACE_WIN32_Asynch_Write_Stream::shared_write (ACE_WIN32_Asynch_Write_Stream_Result *result)
-{
- u_long bytes_written;
- if (result->bytes_to_write () > MAXDWORD)
- {
- errno = ERANGE;
- return -1;
- }
- DWORD bytes_to_write = ACE_static_cast (DWORD, result->bytes_to_write ());
-
- result->set_error (0); // Clear error before starting IO.
-
- // Initiate the write
- int initiate_result = ::WriteFile (result->handle (),
- result->message_block ().rd_ptr (),
- bytes_to_write,
- &bytes_written,
- result);
- if (initiate_result == 1)
- // Immediate success: the OVERLAPPED will still get queued.
- return 1;
-
- // If initiate failed, check for a bad error.
- ACE_OS::set_errno_to_last_error ();
- switch (errno)
- {
- case ERROR_IO_PENDING:
- // The IO will complete proactively: the OVERLAPPED will still
- // get queued.
- return 0;
-
- default:
- // Something else went wrong: the OVERLAPPED will not get
- // queued.
-
- if (ACE::debug ())
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("WriteFile")));
- }
- return -1;
- }
-}
-
-// Methods belong to ACE_WIN32_Asynch_Operation base class. These
-// methods are defined here to avoid VC++ warnings. They route the
-// call to the ACE_WIN32_Asynch_Operation base class.
-
-int
-ACE_WIN32_Asynch_Write_Stream::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- return ACE_WIN32_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_WIN32_Asynch_Write_Stream::cancel (void)
-{
- return ACE_WIN32_Asynch_Operation::cancel ();
-}
-
-ACE_Proactor *
-ACE_WIN32_Asynch_Write_Stream::proactor (void) const
-{
- return ACE_WIN32_Asynch_Operation::proactor ();
-}
-
-ACE_WIN32_Asynch_Read_File_Result::ACE_WIN32_Asynch_Read_File_Result (
- ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number,
- int scatter_enabled)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Read_Stream_Result_Impl (),
- ACE_Asynch_Read_File_Result_Impl (),
- ACE_WIN32_Asynch_Read_Stream_Result (handler,
- handle,
- message_block,
- bytes_to_read,
- act,
- event,
- priority,
- signal_number,
- scatter_enabled)
-{
- this->Offset = offset;
- this->OffsetHigh = offset_high;
-}
-
-void
-ACE_WIN32_Asynch_Read_File_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data which was returned by GetQueuedCompletionStatus.
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // Appropriately move the pointers in the message block.
- if (!this->scatter_enabled ())
- this->message_block_.wr_ptr (bytes_transferred);
- else
- {
- static const size_t page_size = ACE_OS::getpagesize();
-
- for (ACE_Message_Block* mb = &this->message_block_;
- (mb != 0) && (bytes_transferred > 0);
- mb = mb->cont ())
- {
- // mb->space () is ought to be >= page_size.
- // this is verified in the readv method
- // ACE_ASSERT (mb->space () >= page_size);
-
- size_t len_part = page_size ;
-
- if ( len_part > bytes_transferred)
- len_part = bytes_transferred;
-
- mb->wr_ptr (len_part);
-
- bytes_transferred -= len_part;
- }
- }
-
- // Create the interface result class.
- ACE_Asynch_Read_File::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_read_file (result);
-}
-
-ACE_WIN32_Asynch_Read_File_Result::~ACE_WIN32_Asynch_Read_File_Result (void)
-{
-}
-
-// Base class operations. These operations are here to kill dominance
-// warnings. These methods call the base class methods.
-
-size_t
-ACE_WIN32_Asynch_Read_File_Result::bytes_transferred (void) const
-{
- return ACE_WIN32_Asynch_Result::bytes_transferred ();
-}
-
-const void *
-ACE_WIN32_Asynch_Read_File_Result::act (void) const
-{
- return ACE_WIN32_Asynch_Result::act ();
-}
-
-int
-ACE_WIN32_Asynch_Read_File_Result::success (void) const
-{
- return ACE_WIN32_Asynch_Result::success ();
-}
-
-const void *
-ACE_WIN32_Asynch_Read_File_Result::completion_key (void) const
-{
- return ACE_WIN32_Asynch_Result::completion_key ();
-}
-
-u_long
-ACE_WIN32_Asynch_Read_File_Result::error (void) const
-{
- return ACE_WIN32_Asynch_Result::error ();
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Read_File_Result::event (void) const
-{
- return ACE_WIN32_Asynch_Result::event ();
-}
-
-u_long
-ACE_WIN32_Asynch_Read_File_Result::offset (void) const
-{
- return ACE_WIN32_Asynch_Result::offset ();
-}
-
-u_long
-ACE_WIN32_Asynch_Read_File_Result::offset_high (void) const
-{
- return ACE_WIN32_Asynch_Result::offset_high ();
-}
-
-int
-ACE_WIN32_Asynch_Read_File_Result::priority (void) const
-{
- return ACE_WIN32_Asynch_Result::priority ();
-}
-
-int
-ACE_WIN32_Asynch_Read_File_Result::signal_number (void) const
-{
- return ACE_WIN32_Asynch_Result::signal_number ();
-}
-
-// The following methods belong to
-// ACE_WIN32_Asynch_Read_Stream_Result. They are here to avoid VC++
-// warnings. These methods route their call to the
-// ACE_WIN32_Asynch_Read_Stream_Result base class.
-
-size_t
-ACE_WIN32_Asynch_Read_File_Result::bytes_to_read (void) const
-{
- return ACE_WIN32_Asynch_Read_Stream_Result::bytes_to_read ();
-}
-
-ACE_Message_Block &
-ACE_WIN32_Asynch_Read_File_Result::message_block (void) const
-{
- return ACE_WIN32_Asynch_Read_Stream_Result::message_block ();
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Read_File_Result::handle (void) const
-{
- return ACE_WIN32_Asynch_Read_Stream_Result::handle ();
-}
-
-int
-ACE_WIN32_Asynch_Read_File_Result::post_completion (ACE_Proactor_Impl *proactor)
-{
- return ACE_WIN32_Asynch_Result::post_completion (proactor);
-}
-
-// ************************************************************
-
-ACE_WIN32_Asynch_Read_File::ACE_WIN32_Asynch_Read_File (ACE_WIN32_Proactor *win32_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Read_Stream_Impl (),
- ACE_Asynch_Read_File_Impl (),
- ACE_WIN32_Asynch_Read_Stream (win32_proactor)
-{
-}
-
-int
-ACE_WIN32_Asynch_Read_File::read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number)
-{
- size_t space = message_block.space ();
- if ( bytes_to_read > space )
- bytes_to_read = space;
-
- if ( bytes_to_read == 0 )
- ACE_ERROR_RETURN
- ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_WIN32_Asynch_Read_File::read:")
- ACE_LIB_TEXT ("Attempt to read 0 bytes or no space in the message block\n")),
- -1);
-
-
- ACE_WIN32_Asynch_Read_File_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_WIN32_Asynch_Read_File_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_read,
- act,
- offset,
- offset_high,
- this->win32_proactor_->get_handle (),
- priority,
- signal_number),
- -1);
-
- // Shared read
- ssize_t return_val = this->shared_read (result);
-
- // Upon errors
- if (return_val == -1)
- delete result;
-
- return return_val;
-}
-
-int
-ACE_WIN32_Asynch_Read_File::readv (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number)
-{
-#if ((ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
- static const size_t page_size = ACE_OS::getpagesize();
-
- FILE_SEGMENT_ELEMENT buffer_pointers[ACE_IOV_MAX + 1];
- int buffer_pointers_count = 0;
-
- // Each buffer must be at least the size of a system memory page
- // and must be aligned on a system memory page size boundary
-
- // We should not read more than user requested,
- // but it is allowed to read less
-
- size_t total_space = 0;
-
- for (const ACE_Message_Block* msg = &message_block;
- msg != 0 && buffer_pointers_count < ACE_IOV_MAX && total_space < bytes_to_read;
- msg = msg->cont(), ++buffer_pointers_count )
- {
- size_t msg_space = msg->space ();
-
- if (msg_space < page_size)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_WIN32_Asynch_Read_File::readv:")
- ACE_LIB_TEXT ("Invalid message block size\n")),
- -1);
-
- buffer_pointers[buffer_pointers_count].Buffer = msg->wr_ptr ();
- total_space += page_size;
- }
-
- // not read more than buffers space
- if (bytes_to_read > total_space)
- bytes_to_read = total_space;
-
- // ReadFileScatter API limits us to DWORD range.
- if (bytes_to_read > MAXDWORD)
- {
- errno = ERANGE;
- return -1;
- }
- DWORD dword_bytes_to_read = ACE_static_cast (DWORD, bytes_to_read);
-
- // last one should be completely 0
- buffer_pointers[buffer_pointers_count].Buffer = 0;
-
- ACE_WIN32_Asynch_Read_File_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_WIN32_Asynch_Read_File_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_read,
- act,
- offset,
- offset_high,
- this->win32_proactor_->get_handle (),
- priority,
- signal_number,
- 1), // scatter read enabled
- -1);
-
- // do the scatter read
- result->set_error (0); // Clear error before starting IO.
-
- int initiate_result = ::ReadFileScatter (result->handle (),
- buffer_pointers,
- dword_bytes_to_read,
- 0, // reserved, must be NULL
- result);
-
- if (0 != initiate_result)
- // Immediate success: the OVERLAPPED will still get queued.
- return 1;
-
- // If initiate failed, check for a bad error.
- ACE_OS::set_errno_to_last_error ();
- switch (errno)
- {
- case ERROR_IO_PENDING:
- // The IO will complete proactively: the OVERLAPPED will still
- // get queued.
- initiate_result = 0;
- break;
-
- default:
- // Something else went wrong: the OVERLAPPED will not get
- // queued.
-
- if (ACE::debug ())
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ReadFileScatter")));
- }
-
- delete result;
- initiate_result = -1;
- break;
- }
-
- return initiate_result;
-#else /*#if ( (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))*/
- ACE_NOTSUP_RETURN (-1);
-#endif /*#if ( (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))*/
-}
-
-
-ACE_WIN32_Asynch_Read_File::~ACE_WIN32_Asynch_Read_File (void)
-{
-}
-
-int
-ACE_WIN32_Asynch_Read_File::read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number)
-{
- return ACE_WIN32_Asynch_Read_Stream::read (message_block,
- bytes_to_read,
- act,
- priority,
- signal_number);
-}
-
-int
-ACE_WIN32_Asynch_Read_File::readv (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number)
-{
- return ACE_WIN32_Asynch_Read_Stream::readv (message_block,
- bytes_to_read,
- act,
- priority,
- signal_number);
-}
-
-// Methods belong to ACE_WIN32_Asynch_Operation base class. These
-// methods are defined here to avoid VC++ warnings. They route the
-// call to the ACE_WIN32_Asynch_Operation base class.
-
-int
-ACE_WIN32_Asynch_Read_File::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- return ACE_WIN32_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_WIN32_Asynch_Read_File::cancel (void)
-{
- return ACE_WIN32_Asynch_Operation::cancel ();
-}
-
-ACE_Proactor *
-ACE_WIN32_Asynch_Read_File::proactor (void) const
-{
- return ACE_WIN32_Asynch_Operation::proactor ();
-}
-
-ACE_WIN32_Asynch_Write_File_Result::ACE_WIN32_Asynch_Write_File_Result (
- ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number,
- int gather_enabled)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Write_Stream_Result_Impl (),
- ACE_Asynch_Write_File_Result_Impl (),
- ACE_WIN32_Asynch_Write_Stream_Result (handler,
- handle,
- message_block,
- bytes_to_write,
- act,
- event,
- priority,
- signal_number,
- gather_enabled)
-{
- this->Offset = offset;
- this->OffsetHigh = offset_high;
-}
-
-void
-ACE_WIN32_Asynch_Write_File_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data which was returned by GetQueuedCompletionStatus
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // Appropriately move the pointers in the message block.
- if (!this->gather_enabled ())
- this->message_block_.rd_ptr (bytes_transferred);
- else
- {
- static const size_t page_size = ACE_OS::getpagesize();
-
- for (ACE_Message_Block* mb = &this->message_block_;
- (mb != 0) && (bytes_transferred > 0);
- mb = mb->cont ())
- {
- // mb->length () is ought to be >= page_size.
- // this is verified in the writev method
- // ACE_ASSERT (mb->length () >= page_size);
-
- size_t len_part = page_size;
-
- if ( len_part > bytes_transferred)
- len_part = bytes_transferred;
-
- mb->rd_ptr (len_part);
-
- bytes_transferred -= len_part;
- }
-
- }
-
- // Create the interface result class.
- ACE_Asynch_Write_File::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_write_file (result);
-}
-
-ACE_WIN32_Asynch_Write_File_Result::~ACE_WIN32_Asynch_Write_File_Result (void)
-{
-}
-
-// Base class operations. These operations are here to kill dominance
-// warnings. These methods call the base class methods.
-
-size_t
-ACE_WIN32_Asynch_Write_File_Result::bytes_transferred (void) const
-{
- return ACE_WIN32_Asynch_Result::bytes_transferred ();
-}
-
-const void *
-ACE_WIN32_Asynch_Write_File_Result::act (void) const
-{
- return ACE_WIN32_Asynch_Result::act ();
-}
-
-int
-ACE_WIN32_Asynch_Write_File_Result::success (void) const
-{
- return ACE_WIN32_Asynch_Result::success ();
-}
-
-const void *
-ACE_WIN32_Asynch_Write_File_Result::completion_key (void) const
-{
- return ACE_WIN32_Asynch_Result::completion_key ();
-}
-
-u_long
-ACE_WIN32_Asynch_Write_File_Result::error (void) const
-{
- return ACE_WIN32_Asynch_Result::error ();
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Write_File_Result::event (void) const
-{
- return ACE_WIN32_Asynch_Result::event ();
-}
-
-u_long
-ACE_WIN32_Asynch_Write_File_Result::offset (void) const
-{
- return ACE_WIN32_Asynch_Result::offset ();
-}
-
-u_long
-ACE_WIN32_Asynch_Write_File_Result::offset_high (void) const
-{
- return ACE_WIN32_Asynch_Result::offset_high ();
-}
-
-int
-ACE_WIN32_Asynch_Write_File_Result::priority (void) const
-{
- return ACE_WIN32_Asynch_Result::priority ();
-}
-
-int
-ACE_WIN32_Asynch_Write_File_Result::signal_number (void) const
-{
- return ACE_WIN32_Asynch_Result::signal_number ();
-}
-
-// The following methods belong to
-// ACE_WIN32_Asynch_Write_Stream_Result. They are here to avoid VC++
-// warnings. These methods route their call to the
-// ACE_WIN32_Asynch_Write_Stream_Result base class.
-
-size_t
-ACE_WIN32_Asynch_Write_File_Result::bytes_to_write (void) const
-{
- return ACE_WIN32_Asynch_Write_Stream_Result::bytes_to_write ();
-}
-
-ACE_Message_Block &
-ACE_WIN32_Asynch_Write_File_Result::message_block (void) const
-{
- return ACE_WIN32_Asynch_Write_Stream_Result::message_block ();
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Write_File_Result::handle (void) const
-{
- return ACE_WIN32_Asynch_Write_Stream_Result::handle ();
-}
-
-int
-ACE_WIN32_Asynch_Write_File_Result::post_completion (ACE_Proactor_Impl *proactor)
-{
- return ACE_WIN32_Asynch_Result::post_completion (proactor);
-}
-
-ACE_WIN32_Asynch_Write_File::ACE_WIN32_Asynch_Write_File (ACE_WIN32_Proactor *win32_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Write_Stream_Impl (),
- ACE_Asynch_Write_File_Impl (),
- ACE_WIN32_Asynch_Write_Stream (win32_proactor)
-{
-}
-
-int
-ACE_WIN32_Asynch_Write_File::write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number)
-{
- size_t len = message_block.length ();
- if ( bytes_to_write > len )
- bytes_to_write = len;
-
- if ( bytes_to_write == 0 )
- ACE_ERROR_RETURN
- ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_WIN32_Asynch_Write_File::write:")
- ACE_LIB_TEXT ("Attempt to read 0 bytes\n")),
- -1);
-
- ACE_WIN32_Asynch_Write_File_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_WIN32_Asynch_Write_File_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_write,
- act,
- offset,
- offset_high,
- this->win32_proactor_->get_handle (),
- priority,
- signal_number),
- -1);
-
- // Shared write
- ssize_t return_val = this->shared_write (result);
-
- // Upon errors
- if (return_val == -1)
- delete result;
-
- return return_val;
-}
-
-int
-ACE_WIN32_Asynch_Write_File::writev (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number)
-{
-#if ((ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
- static const size_t page_size = ACE_OS::getpagesize();
-
- FILE_SEGMENT_ELEMENT buffer_pointers[ACE_IOV_MAX + 1];
- int buffer_pointers_count = 0;
-
- // Each buffer must be at least the size of a system memory page
- // and must be aligned on a system memory page size boundary
-
- // We should not read more than user requested,
- // but it is allowed to read less
-
- size_t total_len = 0;
-
- for (const ACE_Message_Block* msg = &message_block;
- msg != 0 && buffer_pointers_count < ACE_IOV_MAX && total_len < bytes_to_write;
- msg = msg->cont (), ++buffer_pointers_count )
- {
- size_t msg_len = msg->length ();
-
- // Don't allow writing less than page_size, unless
- // the size of the message block is big enough (so we don't write from
- // memory which does not belong to the message block), and the message
- // block is the last in the chain.
- if (msg_len < page_size &&
- (msg->size () - (msg->rd_ptr () - msg->base ()) < page_size || // message block too small
- bytes_to_write - total_len > page_size ))// NOT last chunk
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_WIN32_Asynch_Write_File::writev:")
- ACE_LIB_TEXT ("Invalid message block length\n")),
- -1);
-
- buffer_pointers[buffer_pointers_count].Buffer = msg->rd_ptr ();
- total_len += page_size;
- }
-
- // not write more than we have in buffers
- if (bytes_to_write > total_len)
- bytes_to_write = total_len;
- // WriteFileGather API limits us to DWORD range.
- if (bytes_to_write > MAXDWORD)
- {
- errno = ERANGE;
- return -1;
- }
- DWORD dword_bytes_to_write = ACE_static_cast (DWORD, bytes_to_write);
-
- // last one should be completely 0
- buffer_pointers[buffer_pointers_count].Buffer = 0;
-
- ACE_WIN32_Asynch_Write_File_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_WIN32_Asynch_Write_File_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_write,
- act,
- offset,
- offset_high,
- this->win32_proactor_->get_handle (),
- priority,
- signal_number,
- 1), // gather write enabled
- -1);
-
- result->set_error(0);
-
- // do the gather write
- int initiate_result = ::WriteFileGather (result->handle (),
- buffer_pointers,
- dword_bytes_to_write,
- 0, // reserved, must be NULL
- result);
-
- if (0 != initiate_result)
- // Immediate success: the OVERLAPPED will still get queued.
- return 1;
-
- // If initiate failed, check for a bad error.
- ACE_OS::set_errno_to_last_error ();
- switch (errno)
- {
- case ERROR_IO_PENDING:
- // The IO will complete proactively: the OVERLAPPED will still
- // get queued.
- initiate_result = 0;
- break;
-
- default:
- // Something else went wrong: the OVERLAPPED will not get
- // queued.
-
- if (ACE::debug ())
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("WriteFileGather")));
- }
-
- delete result;
- initiate_result = -1;
- break;
- }
-
- return initiate_result;
-#else /*#if ((ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))*/
-
- ACE_NOTSUP_RETURN (-1);
-
-#endif /* */
-}
-
-
-ACE_WIN32_Asynch_Write_File::~ACE_WIN32_Asynch_Write_File (void)
-{
-}
-
-int
-ACE_WIN32_Asynch_Write_File::write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number)
-{
- return ACE_WIN32_Asynch_Write_Stream::write (message_block,
- bytes_to_write,
- act,
- priority,
- signal_number);
-}
-
-int
-ACE_WIN32_Asynch_Write_File::writev (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number)
-{
- return ACE_WIN32_Asynch_Write_Stream::writev (message_block,
- bytes_to_write,
- act,
- priority,
- signal_number);
-}
-
-// Methods belong to ACE_WIN32_Asynch_Operation base class. These
-// methods are defined here to avoid VC++ warnings. They route the
-// call to the ACE_WIN32_Asynch_Operation base class.
-
-int
-ACE_WIN32_Asynch_Write_File::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- return ACE_WIN32_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_WIN32_Asynch_Write_File::cancel (void)
-{
- return ACE_WIN32_Asynch_Operation::cancel ();
-}
-
-ACE_Proactor *
-ACE_WIN32_Asynch_Write_File::proactor (void) const
-{
- return ACE_WIN32_Asynch_Operation::proactor ();
-}
-
-size_t
-ACE_WIN32_Asynch_Accept_Result::bytes_to_read (void) const
-{
- return this->bytes_to_read_;
-}
-
-ACE_Message_Block &
-ACE_WIN32_Asynch_Accept_Result::message_block (void) const
-{
- return this->message_block_;
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Accept_Result::listen_handle (void) const
-{
- return this->listen_handle_;
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Accept_Result::accept_handle (void) const
-{
- return this->accept_handle_;
-}
-
-ACE_WIN32_Asynch_Accept_Result::ACE_WIN32_Asynch_Accept_Result (
- ACE_Handler &handler,
- ACE_HANDLE listen_handle,
- ACE_HANDLE accept_handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Accept_Result_Impl (),
- ACE_WIN32_Asynch_Result (handler,
- act,
- event,
- 0,
- 0,
- priority,
- signal_number),
- bytes_to_read_ (bytes_to_read),
- message_block_ (message_block),
- listen_handle_ (listen_handle),
- accept_handle_ (accept_handle)
-{
-}
-
-void
-ACE_WIN32_Asynch_Accept_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data which was returned by GetQueuedCompletionStatus
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // Appropriately move the pointers in the message block.
- this->message_block_.wr_ptr (bytes_transferred);
-
- // Create the interface result class.
- ACE_Asynch_Accept::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_accept (result);
-}
-
-ACE_WIN32_Asynch_Accept_Result::~ACE_WIN32_Asynch_Accept_Result (void)
-{
-}
-
-// Base class operations. These operations are here to kill dominance
-// warnings. These methods call the base class methods.
-
-size_t
-ACE_WIN32_Asynch_Accept_Result::bytes_transferred (void) const
-{
- return ACE_WIN32_Asynch_Result::bytes_transferred ();
-}
-
-const void *
-ACE_WIN32_Asynch_Accept_Result::act (void) const
-{
- return ACE_WIN32_Asynch_Result::act ();
-}
-
-int
-ACE_WIN32_Asynch_Accept_Result::success (void) const
-{
- return ACE_WIN32_Asynch_Result::success ();
-}
-
-const void *
-ACE_WIN32_Asynch_Accept_Result::completion_key (void) const
-{
- return ACE_WIN32_Asynch_Result::completion_key ();
-}
-
-u_long
-ACE_WIN32_Asynch_Accept_Result::error (void) const
-{
- return ACE_WIN32_Asynch_Result::error ();
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Accept_Result::event (void) const
-{
- return ACE_WIN32_Asynch_Result::event ();
-}
-
-u_long
-ACE_WIN32_Asynch_Accept_Result::offset (void) const
-{
- return ACE_WIN32_Asynch_Result::offset ();
-}
-
-u_long
-ACE_WIN32_Asynch_Accept_Result::offset_high (void) const
-{
- return ACE_WIN32_Asynch_Result::offset_high ();
-}
-
-int
-ACE_WIN32_Asynch_Accept_Result::priority (void) const
-{
- return ACE_WIN32_Asynch_Result::priority ();
-}
-
-int
-ACE_WIN32_Asynch_Accept_Result::signal_number (void) const
-{
- return ACE_WIN32_Asynch_Result::signal_number ();
-}
-
-int
-ACE_WIN32_Asynch_Accept_Result::post_completion (ACE_Proactor_Impl *proactor)
-{
- return ACE_WIN32_Asynch_Result::post_completion (proactor);
-}
-
-ACE_WIN32_Asynch_Accept::ACE_WIN32_Asynch_Accept (ACE_WIN32_Proactor *win32_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Accept_Impl (),
- ACE_WIN32_Asynch_Operation (win32_proactor)
-{
-}
-
-int
-ACE_WIN32_Asynch_Accept::accept (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- ACE_HANDLE accept_handle,
- const void *act,
- int priority,
- int signal_number)
-{
-#if (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) || (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0))
- // Sanity check: make sure that enough space has been allocated by
- // the caller.
- size_t address_size = sizeof (sockaddr_in) + sizeof (sockaddr);
- size_t space_in_use = message_block.wr_ptr () - message_block.base ();
- size_t total_size = message_block.size ();
- size_t available_space = total_size - space_in_use;
- size_t space_needed = bytes_to_read + 2 * address_size;
- if (available_space < space_needed)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("Buffer too small\n")), -1);
-
- // WIN Specific.
-
- // AcceptEx API limits us to DWORD range.
- if (bytes_to_read > MAXDWORD)
- {
- errno = ERANGE;
- return -1;
- }
- DWORD dword_bytes_to_read = ACE_static_cast (DWORD, bytes_to_read);
-
- int close_accept_handle = 0;
- // If the <accept_handle> is invalid, we will create a new socket.
- if (accept_handle == ACE_INVALID_HANDLE)
- {
- accept_handle = ACE_OS::socket (PF_INET,
- SOCK_STREAM,
- 0);
- if (accept_handle == ACE_INVALID_HANDLE)
- {
- if (ACE::debug ())
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_OS::socket")));
- }
- return -1;
- }
- else
- // Remember to close the socket down if failures occur.
- close_accept_handle = 1;
- }
-
- // Common code for both WIN and POSIX.
- ACE_WIN32_Asynch_Accept_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_WIN32_Asynch_Accept_Result (*this->handler_,
- this->handle_,
- accept_handle,
- message_block,
- bytes_to_read,
- act,
- this->win32_proactor_->get_handle (),
- priority,
- signal_number),
- -1);
-
- u_long bytes_read;
-
- // Initiate the accept.
- int initiate_result = ::AcceptEx ((SOCKET) result->listen_handle (),
- (SOCKET) result->accept_handle (),
- result->message_block ().wr_ptr (),
- dword_bytes_to_read,
- ACE_static_cast (DWORD, address_size),
- ACE_static_cast (DWORD, address_size),
- &bytes_read,
- result);
- if (initiate_result == 1)
- // Immediate success: the OVERLAPPED will still get queued.
- return 1;
-
- // If initiate failed, check for a bad error.
- ACE_OS::set_errno_to_last_error ();
- switch (errno)
- {
- case ERROR_IO_PENDING:
- // The IO will complete proactively: the OVERLAPPED will still
- // get queued.
- return 0;
-
- default:
- // Something else went wrong: the OVERLAPPED will not get
- // queued.
-
- if (close_accept_handle == 1)
- // Close the newly created socket
- ACE_OS::closesocket (accept_handle);
-
- // Cleanup dynamically allocated Asynch_Result.
- delete result;
-
- if (ACE::debug ())
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ReadFile")));
- }
- return -1;
- }
-#else /* ACE_HAS_WINNT4 .......|| ACE_HAS_AIO_CALLS */
- ACE_UNUSED_ARG (message_block);
- ACE_UNUSED_ARG (bytes_to_read);
- ACE_UNUSED_ARG (accept_handle);
- ACE_UNUSED_ARG (act);
- ACE_UNUSED_ARG (priority);
- ACE_UNUSED_ARG (signal_number);
- ACE_NOTSUP_RETURN (-1);
-#endif /* (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) || (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) || (defined (ACE_HAS_AIO_CALLS) */
-}
-
-ACE_WIN32_Asynch_Accept::~ACE_WIN32_Asynch_Accept (void)
-{
-}
-
-// Methods belong to ACE_WIN32_Asynch_Operation base class. These
-// methods are defined here to avoid VC++ warnings. They route the
-// call to the ACE_WIN32_Asynch_Operation base class.
-
-int
-ACE_WIN32_Asynch_Accept::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- return ACE_WIN32_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_WIN32_Asynch_Accept::cancel (void)
-{
- return ACE_WIN32_Asynch_Operation::cancel ();
-}
-
-ACE_Proactor *
-ACE_WIN32_Asynch_Accept::proactor (void) const
-{
- return ACE_WIN32_Asynch_Operation::proactor ();
-}
-
-// *********************************************************************
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Connect_Result::connect_handle (void) const
-{
- return this->connect_handle_;
-}
-
-void ACE_WIN32_Asynch_Connect_Result::connect_handle ( ACE_HANDLE handle )
-{
- this->connect_handle_ = handle;
-}
-
-
-ACE_WIN32_Asynch_Connect_Result::ACE_WIN32_Asynch_Connect_Result
- (ACE_Handler &handler,
- ACE_HANDLE connect_handle,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Connect_Result_Impl (),
- ACE_WIN32_Asynch_Result (handler, act, event, 0, 0, priority, signal_number),
- connect_handle_ ( connect_handle )
-{
- ;
-}
-
-void
-ACE_WIN32_Asynch_Connect_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data.
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // Create the interface result class.
- ACE_Asynch_Connect::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_connect (result);
-}
-
-ACE_WIN32_Asynch_Connect_Result::~ACE_WIN32_Asynch_Connect_Result (void)
-{
-}
-
-// Base class operations. These operations are here to kill dominance
-// warnings. These methods call the base class methods.
-
-size_t
-ACE_WIN32_Asynch_Connect_Result::bytes_transferred (void) const
-{
- return ACE_WIN32_Asynch_Result::bytes_transferred ();
-}
-
-const void *
-ACE_WIN32_Asynch_Connect_Result::act (void) const
-{
- return ACE_WIN32_Asynch_Result::act ();
-}
-
-int
-ACE_WIN32_Asynch_Connect_Result::success (void) const
-{
- return ACE_WIN32_Asynch_Result::success ();
-}
-
-const void *
-ACE_WIN32_Asynch_Connect_Result::completion_key (void) const
-{
- return ACE_WIN32_Asynch_Result::completion_key ();
-}
-
-u_long
-ACE_WIN32_Asynch_Connect_Result::error (void) const
-{
- return ACE_WIN32_Asynch_Result::error ();
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Connect_Result::event (void) const
-{
- return ACE_WIN32_Asynch_Result::event ();
-}
-
-u_long
-ACE_WIN32_Asynch_Connect_Result::offset (void) const
-{
- return ACE_WIN32_Asynch_Result::offset ();
-}
-
-u_long
-ACE_WIN32_Asynch_Connect_Result::offset_high (void) const
-{
- return ACE_WIN32_Asynch_Result::offset_high ();
-}
-
-int
-ACE_WIN32_Asynch_Connect_Result::priority (void) const
-{
- return ACE_WIN32_Asynch_Result::priority ();
-}
-
-int
-ACE_WIN32_Asynch_Connect_Result::signal_number (void) const
-{
- return ACE_WIN32_Asynch_Result::signal_number ();
-}
-
-int
-ACE_WIN32_Asynch_Connect_Result::post_completion (ACE_Proactor_Impl *proactor)
-{
- return ACE_WIN32_Asynch_Result::post_completion (proactor);
-}
-
-// *********************************************************************
-
-ACE_WIN32_Asynch_Connect::ACE_WIN32_Asynch_Connect (ACE_WIN32_Proactor * win32_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Connect_Impl (),
- ACE_WIN32_Asynch_Operation (win32_proactor),
- flg_open_ (0),
- task_lock_count_ (0)
-{
-}
-
-ACE_WIN32_Asynch_Connect::~ACE_WIN32_Asynch_Connect (void)
-{
- this->close ();
- this->reactor (0); // to avoid purge_pending_notifications
-}
-
-ACE_Proactor *
-ACE_WIN32_Asynch_Connect::proactor (void) const
-{
- return ACE_WIN32_Asynch_Operation::proactor ();
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Connect::get_handle (void) const
-{
-
- ACE_ASSERT (0);
- return ACE_INVALID_HANDLE;
-}
-
-void
-ACE_WIN32_Asynch_Connect::set_handle (ACE_HANDLE)
-{
- ACE_ASSERT (0) ;
-}
-
-int
-ACE_WIN32_Asynch_Connect::open (ACE_Handler &handler,
- ACE_HANDLE,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- ACE_TRACE (ACE_LIB_TEXT ("ACE_WIN32_Asynch_Connect::open\n"));
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- // if we are already opened,
- // we could not create a new handler without closing the previous
- if (this->flg_open_ != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_WIN32_Asynch_Connect::open:")
- ACE_LIB_TEXT ("connector already open \n")),
- -1);
-
- //int result =
- ACE_WIN32_Asynch_Operation::open (handler,
- ACE_INVALID_HANDLE,
- completion_key,
- proactor);
-
- // Ignore result as we pass ACE_INVALID_HANDLE
- //if (result == -1)
- // return result;
-
- this->flg_open_ = 1;
-
- return 0;
-}
-
-int
-ACE_WIN32_Asynch_Connect::connect (ACE_HANDLE connect_handle,
- const ACE_Addr & remote_sap,
- const ACE_Addr & local_sap,
- int reuse_addr,
- const void *act,
- int priority,
- int signal_number)
-{
- ACE_TRACE (ACE_LIB_TEXT ("ACE_WIN32_Asynch_Connect::connect\n"));
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- if (this->flg_open_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_WIN32_Asynch_Connect::connect")
- ACE_LIB_TEXT ("connector was not opened before\n")),
- -1);
-
- // Common code for both WIN and WIN32.
- // Create future Asynch_Connect_Result
- ACE_WIN32_Asynch_Connect_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_WIN32_Asynch_Connect_Result (*this->handler_,
- connect_handle,
- act,
- this->win32_proactor_->get_handle (),
- priority,
- signal_number),
- -1);
-
- int rc = connect_i (result,
- remote_sap,
- local_sap,
- reuse_addr);
-
- // update handle
- connect_handle = result->connect_handle ();
-
- if (rc != 0)
- return post_result (result, 1);
-
- // Enqueue result we will wait for completion
-
- if (this->result_map_.bind (connect_handle, result) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_WIN32_Asynch_Connect::connect:")
- ACE_LIB_TEXT ("result map binding failed\n")));
- result->set_error (EFAULT);
- return post_result (result, 1);
- }
-
- this->task_lock_count_++;
- }
-
- ACE_Asynch_Pseudo_Task & task =
- this->win32_proactor_->get_asynch_pseudo_task ();
-
- int rc_task = task.register_io_handler (connect_handle,
- this,
- ACE_Event_Handler::CONNECT_MASK,
- 0); // not to suspend after register
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- this->task_lock_count_--;
-
- int post_enable = 1;
-
- if (rc_task == -2 && task_lock_count_ == 0) // task is closing
- {
- post_enable = 0;
- task.unlock_finish ();
- }
-
- if (rc_task < 0)
- {
- ACE_WIN32_Asynch_Connect_Result *result = 0;
-
- this->result_map_.unbind (connect_handle, result);
-
- if (result != 0)
- {
- result->set_error (EFAULT);
-
- return post_result (result, post_enable);
- }
- }
- }
-
- return 0;
-}
-
-int ACE_WIN32_Asynch_Connect::post_result (ACE_WIN32_Asynch_Connect_Result * result,
- int post_enable)
-{
- if (this->flg_open_ != 0 && post_enable != 0)
- {
- if (this->win32_proactor_ ->post_completion (result) == 0)
- return 0;
-
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("Error:(%P | %t):%p\n"),
- ACE_LIB_TEXT ("ACE_WIN32_Asynch_Connect::post_result: ")
- ACE_LIB_TEXT (" <post_completion> failed")));
- }
-
- ACE_HANDLE handle = result->connect_handle ();
-
- if (handle != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (handle);
-
- delete result;
-
- return -1;
-}
-
-//@@ New method connect_i
-// return code :
-// -1 errors before attempt to connect
-// 0 connect started
-// 1 connect finished ( may be unsuccessfully)
-
-int
-ACE_WIN32_Asynch_Connect::connect_i (ACE_WIN32_Asynch_Connect_Result *result,
- const ACE_Addr & remote_sap,
- const ACE_Addr & local_sap,
- int reuse_addr)
-{
- result->set_bytes_transferred (0);
-
- ACE_HANDLE handle = result->connect_handle ();
-
- if (handle == ACE_INVALID_HANDLE)
- {
- int protocol_family = remote_sap.get_type ();
-
- handle = ACE_OS::socket (protocol_family,
- SOCK_STREAM,
- 0);
-
- // save it
- result->connect_handle (handle);
-
- if (handle == ACE_INVALID_HANDLE)
- {
- result->set_error (errno);
-
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_WIN32_Asynch_Connect::connect_i: ")
- ACE_LIB_TEXT (" ACE_OS::socket failed\n")),
- -1);
- }
-
- // Reuse the address
- int one = 1;
- if (protocol_family != PF_UNIX &&
- reuse_addr != 0 &&
- ACE_OS::setsockopt (handle,
- SOL_SOCKET,
- SO_REUSEADDR,
- (const char*) &one,
- sizeof one) == -1)
- {
- result->set_error (errno);
-
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_WIN32_Asynch_Connect::connect_i: ")
- ACE_LIB_TEXT (" ACE_OS::setsockopt failed\n")),
- -1);
- }
- }
-
- if (local_sap != ACE_Addr::sap_any)
- {
- sockaddr * laddr = ACE_reinterpret_cast (sockaddr *,
- local_sap.get_addr ());
- int size = local_sap.get_size ();
-
- if (ACE_OS::bind (handle, laddr, size) == -1)
- {
- result->set_error (errno);
-
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_WIN32_Asynch_Connect::connect_i: ")
- ACE_LIB_TEXT (" ACE_OS::bind failed\n")),
- -1);
- }
- }
-
- // set non blocking mode
-
- if (ACE::set_flags (handle, ACE_NONBLOCK) != 0)
- {
- result->set_error (errno);
-
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("%N:%l:ACE_WIN32_Asynch_Connect::connect_i: ")
- ACE_LIB_TEXT (" ACE::set_flags failed\n")),
- -1);
- }
-
- for (;;)
- {
- int rc = ACE_OS::connect (handle,
- ACE_reinterpret_cast (sockaddr *,
- remote_sap.get_addr ()),
- remote_sap.get_size ());
-
- if (rc < 0) // failure
- {
- if (errno == EWOULDBLOCK || errno == EINPROGRESS)
- return 0; // connect started
-
- if (errno == EINTR)
- continue;
-
- result->set_error (errno);
- }
- return 1 ; // connect finished
- }
-
- ACE_NOTREACHED (return 0);
-}
-
-
-//@@ New method cancel_uncompleted
-// It performs cancellation of all pending requests
-//
-// Parameter flg_notify can be
-// 0 - don't send notifications about canceled accepts
-// !0 - notify user about canceled accepts
-// according WIN32 standards we should receive notifications
-// on canceled AIO requests
-//
-// Return value : number of cancelled requests
-//
-
-int
-ACE_WIN32_Asynch_Connect::cancel_uncompleted (int flg_notify, ACE_Handle_Set & set)
-{
- ACE_TRACE (ACE_LIB_TEXT ("ACE_WIN32_Asynch_Connect::cancel_uncompleted\n"));
-
- int retval = 0;
-
- MAP_MANAGER::ITERATOR iter (result_map_);
-
- MAP_MANAGER::ENTRY * me = 0;
-
- set.reset ();
-
- for (; iter.next (me) != 0; retval++, iter.advance ())
- {
- ACE_HANDLE handle = me->ext_id_;
- ACE_WIN32_Asynch_Connect_Result* result = me->int_id_ ;
-
- set.set_bit (handle);
-
- result->set_bytes_transferred (0);
- result->set_error (ERROR_OPERATION_ABORTED);
- this->post_result (result, flg_notify);
- }
-
- result_map_.unbind_all ();
-
- return retval;
-}
-
-int
-ACE_WIN32_Asynch_Connect::cancel (void)
-{
- ACE_TRACE (ACE_LIB_TEXT ("ACE_WIN32_Asynch_Connect::cancel\n"));
-
- //We are not really ACE_WIN32_Asynch_Operation
- //so we could not call ::aiocancel ()
- // or just write
- //return ACE_WIN32_Asynch_Operation::cancel ();
- //We delegate real cancelation to cancel_uncompleted (1)
-
- int rc = -1 ; // ERRORS
-
- ACE_Handle_Set set;
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- int num_cancelled = cancel_uncompleted (flg_open_, set);
-
- if (num_cancelled == 0)
- rc = 1; // AIO_ALLDONE
- else if (num_cancelled > 0)
- rc = 0; // AIO_CANCELED
-
- if (this->flg_open_ == 0)
- return rc;
-
- this->task_lock_count_++;
- }
-
- ACE_Asynch_Pseudo_Task & task =
- this->win32_proactor_->get_asynch_pseudo_task ();
-
- int rc_task = task.remove_io_handler (set);
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- this->task_lock_count_--;
-
- if (rc_task == -2 && task_lock_count_ == 0) // task is closing
- task.unlock_finish ();
- }
-
- return rc;
-}
-
-int
-ACE_WIN32_Asynch_Connect::close (void)
-{
- ACE_TRACE (ACE_LIB_TEXT ("ACE_WIN32_Asynch_Connect::close\n"));
-
- ACE_Handle_Set set;
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- int num_cancelled = cancel_uncompleted (flg_open_, set);
-
- if (num_cancelled == 0 || this->flg_open_ == 0)
- {
- this->flg_open_ = 0;
- return 0;
- }
-
- this->task_lock_count_++;
- }
-
- ACE_Asynch_Pseudo_Task & task =
- this->win32_proactor_->get_asynch_pseudo_task ();
-
- int rc_task = task.remove_io_handler (set);
-
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1));
-
- this->task_lock_count_--;
-
- if (rc_task == -2 && task_lock_count_ == 0) // task is closing
- task.unlock_finish ();
-
- this->flg_open_ = 0;
- }
-
- return 0;
-}
-
-int
-ACE_WIN32_Asynch_Connect::handle_exception (ACE_HANDLE fd)
-{
- ACE_TRACE (ACE_LIB_TEXT ("ACE_WIN32_Asynch_Connect::handle_exception\n"));
- return handle_output (fd);
-}
-
-int
-ACE_WIN32_Asynch_Connect::handle_input (ACE_HANDLE fd)
-{
- ACE_TRACE (ACE_LIB_TEXT ("ACE_WIN32_Asynch_Connect::handle_input\n"));
- return handle_output (fd);
-}
-
-int
-ACE_WIN32_Asynch_Connect::handle_output (ACE_HANDLE fd)
-{
- ACE_TRACE (ACE_LIB_TEXT ("ACE_WIN32_Asynch_Connect::handle_output\n"));
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, 0));
-
- ACE_WIN32_Asynch_Connect_Result* result = 0;
-
- if (this->result_map_.unbind (fd, result) != 0) // not found
- return -1;
-
- int sockerror = 0 ;
- int lsockerror = sizeof sockerror;
-
- ACE_OS::getsockopt (fd,
- SOL_SOCKET,
- SO_ERROR,
- (char*) & sockerror,
- & lsockerror);
-
- result->set_bytes_transferred (0);
- result->set_error (sockerror);
- this->post_result (result, this->flg_open_);
-
- //ACE_Asynch_Pseudo_Task & task =
- // this->win32_proactor_->get_asynch_pseudo_task();
-
- // remove_io_handler() contains flag DONT_CALL
- //task.remove_io_handler ( fd );
-
- //return 0;
- return -1;
-}
-
-
-int
-ACE_WIN32_Asynch_Connect::handle_close (ACE_HANDLE fd, ACE_Reactor_Mask)
-{
- ACE_TRACE(ACE_LIB_TEXT ("ACE_WIN32_Asynch_Connect::handle_close\n"));
-
- ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, 0));
-
- ACE_Asynch_Pseudo_Task & task =
- this->win32_proactor_->get_asynch_pseudo_task ();
-
- if (task.is_active () == 0) // task is closing
- {
- if (this->flg_open_ != 0) // we are open
- {
- this->flg_open_ = 0;
-
- // it means other thread is waiting for reactor token_
- if (this->task_lock_count_ > 0)
- task.lock_finish ();
- }
-
- ACE_Handle_Set set;
- this->cancel_uncompleted (0, set);
-
- return 0;
- }
-
- // remove_io_handler() contains flag DONT_CALL
- // so it is save
- task.remove_io_handler (fd);
-
- ACE_WIN32_Asynch_Connect_Result* result = 0;
-
- if (this->result_map_.unbind (fd, result) != 0) // not found
- return -1;
-
- result->set_bytes_transferred (0);
- result->set_error (ERROR_OPERATION_ABORTED);
- this->post_result (result, this->flg_open_);
-
- return 0;
-}
-
-// *********************************************************************
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Transmit_File_Result::socket (void) const
-{
- return this->socket_;
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Transmit_File_Result::file (void) const
-{
- return this->file_;
-}
-
-ACE_Asynch_Transmit_File::Header_And_Trailer *
-ACE_WIN32_Asynch_Transmit_File_Result::header_and_trailer (void) const
-{
- return this->header_and_trailer_;
-}
-
-size_t
-ACE_WIN32_Asynch_Transmit_File_Result::bytes_to_write (void) const
-{
- return this->bytes_to_write_;
-}
-
-size_t
-ACE_WIN32_Asynch_Transmit_File_Result::bytes_per_send (void) const
-{
- return this->bytes_per_send_;
-}
-
-u_long
-ACE_WIN32_Asynch_Transmit_File_Result::flags (void) const
-{
- return this->flags_;
-}
-
-ACE_WIN32_Asynch_Transmit_File_Result::ACE_WIN32_Asynch_Transmit_File_Result (
- ACE_Handler &handler,
- ACE_HANDLE socket,
- ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Transmit_File_Result_Impl (),
- ACE_WIN32_Asynch_Result (handler,
- act,
- event,
- offset,
- offset_high,
- priority,
- signal_number),
- socket_ (socket),
- file_ (file),
- header_and_trailer_ (header_and_trailer),
- bytes_to_write_ (bytes_to_write),
- bytes_per_send_ (bytes_per_send),
- flags_ (flags)
-{
-}
-
-void
-ACE_WIN32_Asynch_Transmit_File_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data which was returned by GetQueuedCompletionStatus
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // We will not do this because (a) the header and trailer blocks may
- // be the same message_blocks and (b) in cases of failures we have
- // no idea how much of what (header, data, trailer) was sent.
- /*
- if (this->success_ && this->header_and_trailer_ != 0)
- {
- ACE_Message_Block *header = this->header_and_trailer_->header ();
- if (header != 0)
- header->rd_ptr (this->header_and_trailer_->header_bytes ());
-
- ACE_Message_Block *trailer = this->header_and_trailer_->trailer ();
- if (trailer != 0)
- trailer->rd_ptr (this->header_and_trailer_->trailer_bytes ());
- }
- */
-
- // Create the interface result class.
- ACE_Asynch_Transmit_File::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_transmit_file (result);
-}
-
-ACE_WIN32_Asynch_Transmit_File_Result::~ACE_WIN32_Asynch_Transmit_File_Result (void)
-{
-}
-
-// Base class operations. These operations are here to kill dominance
-// warnings. These methods call the base class methods.
-
-size_t
-ACE_WIN32_Asynch_Transmit_File_Result::bytes_transferred (void) const
-{
- return ACE_WIN32_Asynch_Result::bytes_transferred ();
-}
-
-const void *
-ACE_WIN32_Asynch_Transmit_File_Result::act (void) const
-{
- return ACE_WIN32_Asynch_Result::act ();
-}
-
-int
-ACE_WIN32_Asynch_Transmit_File_Result::success (void) const
-{
- return ACE_WIN32_Asynch_Result::success ();
-}
-
-const void *
-ACE_WIN32_Asynch_Transmit_File_Result::completion_key (void) const
-{
- return ACE_WIN32_Asynch_Result::completion_key ();
-}
-
-u_long
-ACE_WIN32_Asynch_Transmit_File_Result::error (void) const
-{
- return ACE_WIN32_Asynch_Result::error ();
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Transmit_File_Result::event (void) const
-{
- return ACE_WIN32_Asynch_Result::event ();
-}
-
-u_long
-ACE_WIN32_Asynch_Transmit_File_Result::offset (void) const
-{
- return ACE_WIN32_Asynch_Result::offset ();
-}
-
-u_long
-ACE_WIN32_Asynch_Transmit_File_Result::offset_high (void) const
-{
- return ACE_WIN32_Asynch_Result::offset_high ();
-}
-
-int
-ACE_WIN32_Asynch_Transmit_File_Result::priority (void) const
-{
- return ACE_WIN32_Asynch_Result::priority ();
-}
-
-int
-ACE_WIN32_Asynch_Transmit_File_Result::signal_number (void) const
-{
- return ACE_WIN32_Asynch_Result::signal_number ();
-}
-
-int
-ACE_WIN32_Asynch_Transmit_File_Result::post_completion (ACE_Proactor_Impl *proactor)
-{
- return ACE_WIN32_Asynch_Result::post_completion (proactor);
-}
-
-ACE_WIN32_Asynch_Transmit_File::ACE_WIN32_Asynch_Transmit_File (ACE_WIN32_Proactor *win32_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Transmit_File_Impl (),
- ACE_WIN32_Asynch_Operation (win32_proactor)
-{
-}
-
-int
-ACE_WIN32_Asynch_Transmit_File::transmit_file (ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- int priority,
- int signal_number)
-{
-#if (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) || (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0))
-
- // TransmitFile API limits us to DWORD range.
- if (bytes_to_write > MAXDWORD || bytes_per_send > MAXDWORD)
- {
- errno = ERANGE;
- return -1;
- }
- DWORD dword_bytes_to_write = ACE_static_cast (DWORD, bytes_to_write);
- DWORD dword_bytes_per_send = ACE_static_cast (DWORD, bytes_per_send);
-
- ACE_WIN32_Asynch_Transmit_File_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_WIN32_Asynch_Transmit_File_Result (*this->handler_,
- this->handle_,
- file,
- header_and_trailer,
- bytes_to_write,
- offset,
- offset_high,
- bytes_per_send,
- flags,
- act,
- this->win32_proactor_->get_handle (),
- priority,
- signal_number),
- -1);
-
- ACE_LPTRANSMIT_FILE_BUFFERS transmit_buffers = 0;
- if (result->header_and_trailer () != 0)
- transmit_buffers = result->header_and_trailer ()->transmit_buffers ();
-
- // Initiate the transmit file
- int initiate_result = ::TransmitFile ((SOCKET) result->socket (),
- result->file (),
- dword_bytes_to_write,
- dword_bytes_per_send,
- result,
- transmit_buffers,
- result->flags ());
- if (initiate_result == 1)
- // Immediate success: the OVERLAPPED will still get queued.
- return 1;
-
- // If initiate failed, check for a bad error.
- ACE_OS::set_errno_to_last_error ();
- switch (errno)
- {
- case ERROR_IO_PENDING:
- // The IO will complete proactively: the OVERLAPPED will still
- // get queued.
- return 0;
-
- default:
- // Something else went wrong: the OVERLAPPED will not get
- // queued.
-
- // Cleanup dynamically allocated Asynch_Result
- delete result;
-
- if (ACE::debug ())
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("TransmitFile")));
- }
- return -1;
- }
-#else /* (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) || (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) */
- ACE_UNUSED_ARG (file);
- ACE_UNUSED_ARG (header_and_trailer);
- ACE_UNUSED_ARG (bytes_to_write);
- ACE_UNUSED_ARG (offset);
- ACE_UNUSED_ARG (offset_high);
- ACE_UNUSED_ARG (bytes_per_send);
- ACE_UNUSED_ARG (flags);
- ACE_UNUSED_ARG (act);
- ACE_UNUSED_ARG (priority);
- ACE_UNUSED_ARG (signal_number);
- ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_AIO_CALLS */
-}
-
-ACE_WIN32_Asynch_Transmit_File::~ACE_WIN32_Asynch_Transmit_File (void)
-{
-}
-
-// Methods belong to ACE_WIN32_Asynch_Operation base class. These
-// methods are defined here to avoid VC++ warnings. They route the
-// call to the ACE_WIN32_Asynch_Operation base class.
-
-int
-ACE_WIN32_Asynch_Transmit_File::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- return ACE_WIN32_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_WIN32_Asynch_Transmit_File::cancel (void)
-{
- return ACE_WIN32_Asynch_Operation::cancel ();
-}
-
-ACE_Proactor *
-ACE_WIN32_Asynch_Transmit_File::proactor (void) const
-{
- return ACE_WIN32_Asynch_Operation::proactor ();
-}
-
-size_t
-ACE_WIN32_Asynch_Read_Dgram_Result::bytes_to_read (void) const
-{
- return this->bytes_to_read_;
-}
-
-ACE_Message_Block*
-ACE_WIN32_Asynch_Read_Dgram_Result::message_block (void) const
-{
- return this->message_block_;
-}
-
-
-int
-ACE_WIN32_Asynch_Read_Dgram_Result::remote_address (ACE_Addr& addr) const
-{
- int retVal = -1; // failure
-
- // make sure the addresses are of the same type
- if (addr.get_type () == this->remote_address_->get_type ())
- { // copy the remote_address_ into addr
- addr.set_addr (this->remote_address_->get_addr (),
- this->remote_address_->get_size ());
- retVal = 0; // success
- }
-
- return retVal;
-}
-
-sockaddr *
-ACE_WIN32_Asynch_Read_Dgram_Result::saddr () const
-{
- return (sockaddr *) this->remote_address_->get_addr ();
-}
-
-
-int
-ACE_WIN32_Asynch_Read_Dgram_Result::flags (void) const
-{
- return this->flags_;
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Read_Dgram_Result::handle (void) const
-{
- return this->handle_;
-}
-
-size_t
-ACE_WIN32_Asynch_Read_Dgram_Result::bytes_transferred (void) const
-{
- return ACE_WIN32_Asynch_Result::bytes_transferred ();
-}
-
-const void *
-ACE_WIN32_Asynch_Read_Dgram_Result::act (void) const
-{
- return ACE_WIN32_Asynch_Result::act ();
-}
-
-int
-ACE_WIN32_Asynch_Read_Dgram_Result::success (void) const
-{
- return ACE_WIN32_Asynch_Result::success ();
-}
-
-const void *
-ACE_WIN32_Asynch_Read_Dgram_Result::completion_key (void) const
-{
- return ACE_WIN32_Asynch_Result::completion_key ();
-}
-
-u_long
-ACE_WIN32_Asynch_Read_Dgram_Result::error (void) const
-{
- return ACE_WIN32_Asynch_Result::error ();
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Read_Dgram_Result::event (void) const
-{
- return ACE_WIN32_Asynch_Result::event ();
-}
-
-u_long
-ACE_WIN32_Asynch_Read_Dgram_Result::offset (void) const
-{
- return ACE_WIN32_Asynch_Result::offset ();
-}
-
-u_long
-ACE_WIN32_Asynch_Read_Dgram_Result::offset_high (void) const
-{
- return ACE_WIN32_Asynch_Result::offset_high ();
-}
-
-int
-ACE_WIN32_Asynch_Read_Dgram_Result::priority (void) const
-{
- return ACE_WIN32_Asynch_Result::priority ();
-}
-
-int
-ACE_WIN32_Asynch_Read_Dgram_Result::signal_number (void) const
-{
- return ACE_WIN32_Asynch_Result::signal_number ();
-}
-
-int
-ACE_WIN32_Asynch_Read_Dgram_Result::post_completion (ACE_Proactor_Impl *proactor)
-{
- return ACE_WIN32_Asynch_Result::post_completion (proactor);
-}
-
-ACE_WIN32_Asynch_Read_Dgram_Result::ACE_WIN32_Asynch_Read_Dgram_Result (
- ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_read,
- int flags,
- int protocol_family,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Read_Dgram_Result_Impl(),
- ACE_WIN32_Asynch_Result (handler, act, event, 0, 0, priority, signal_number),
- bytes_to_read_ (bytes_to_read),
- message_block_ (message_block),
- remote_address_ (0),
- addr_len_ (0),
- flags_ (flags),
- handle_ (handle)
-{
- ACE_ASSERT (protocol_family == PF_INET); // only supporting INET addresses
-
- ACE_NEW (remote_address_, ACE_INET_Addr);
- addr_len_ = remote_address_->get_size ();
-
- ACE_UNUSED_ARG (protocol_family);
-}
-
-void
-ACE_WIN32_Asynch_Read_Dgram_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data which was returned by GetQueuedCompletionStatus
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // Appropriately move the pointers in the message block.
- for (ACE_Message_Block* mb = this->message_block_;
- (mb != 0) && (bytes_transferred > 0);
- mb = mb->cont ())
- {
- size_t len_part = mb->space ();
-
- if ( len_part > bytes_transferred)
- len_part = bytes_transferred;
-
- mb->wr_ptr (len_part);
-
- bytes_transferred -= len_part;
- }
-
- // Adjust the address length
- this->remote_address_->set_size (this->addr_len_);
-
- // Create the interface result class.
- ACE_Asynch_Read_Dgram::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_read_dgram (result);
-}
-
-ACE_WIN32_Asynch_Read_Dgram_Result::~ACE_WIN32_Asynch_Read_Dgram_Result (void)
-{
- delete this->remote_address_;
-}
-
-//***************************************************************************
-
-ACE_WIN32_Asynch_Read_Dgram::~ACE_WIN32_Asynch_Read_Dgram (void)
-{
-}
-
-ssize_t
-ACE_WIN32_Asynch_Read_Dgram::recv (ACE_Message_Block *message_block,
- size_t & number_of_bytes_recvd,
- int flags,
- int protocol_family,
- const void *act,
- int priority,
- int signal_number)
-{
- number_of_bytes_recvd = 0;
-
- size_t bytes_to_read = 0;
-
- iovec iov[ACE_IOV_MAX];
- int iovcnt = 0;
-
- for (const ACE_Message_Block* msg = message_block;
- msg != 0 && iovcnt < ACE_IOV_MAX;
- msg = msg->cont () , ++iovcnt )
- {
- size_t msg_space = msg->space ();
-
- // OS should correctly process zero length buffers
- // if ( msg_space == 0 )
- // ACE_ERROR_RETURN ((LM_ERROR,
- // ACE_LIB_TEXT ("ACE_WIN32_Asynch_Read_Dgram::recv:")
- // ACE_LIB_TEXT ("No space in the message block\n")),
- // -1);
-
- bytes_to_read += msg_space;
-
- // Make as many iovec as needed to fit all of msg_len.
- size_t wr_ptr_offset = 0;
- while (msg_space > 0 && iovcnt < ACE_IOV_MAX)
- {
- u_long this_chunk_length;
- if (msg_space > ULONG_MAX)
- this_chunk_length = ULONG_MAX;
- else
- this_chunk_length = ACE_static_cast (u_long, msg_space);
- // Collect the data in the iovec.
- iov[iovcnt].iov_base = msg->wr_ptr () + wr_ptr_offset;
- iov[iovcnt].iov_len = this_chunk_length;
- msg_space -= this_chunk_length;
- wr_ptr_offset += this_chunk_length;
-
- // Increment iovec counter if there's more to do.
- if (msg_space > 0)
- iovcnt++;
- }
- if (msg_space > 0) // Ran out of iovecs before msg_space exhausted
- {
- errno = ERANGE;
- return -1;
- }
- }
-
- if (bytes_to_read == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_WIN32_Asynch_Read_Dgram::recv:")
- ACE_LIB_TEXT ("Attempt to read 0 bytes\n")),
- -1);
-
- // Create the Asynch_Result.
- ACE_WIN32_Asynch_Read_Dgram_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_WIN32_Asynch_Read_Dgram_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_read,
- flags,
- protocol_family,
- act,
- this->win32_proactor_->get_handle (),
- priority,
- signal_number),
- -1);
-
- // do the scatter/gather recv
- int initiate_result = ACE_OS::recvfrom (result->handle (),
- iov,
- iovcnt,
- number_of_bytes_recvd,
- result->flags_,
- result->saddr (),
- &(result->addr_len_),
- result,
- 0);
- if (initiate_result == SOCKET_ERROR)
- {
- // If initiate failed, check for a bad error.
- ACE_OS::set_errno_to_last_error ();
- switch (errno)
- {
- case ERROR_IO_PENDING:
- // The IO will complete proactively: the OVERLAPPED will still
- // get queued.
- initiate_result = 0;
- break;
-
- default:
- // Something else went wrong: the OVERLAPPED will not get
- // queued.
-
- if (ACE::debug ())
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("WSARecvFrom")));
- }
-
- delete result;
- initiate_result = -1;
- break;
- }
-
- }
- else
- {
- // Immediate success: the OVERLAPPED will still get queued.
- // number_of_bytes_recvd contains the number of bytes recvd
- // addr contains the peer address
- // flags was updated
-
- // number_of_bytes_recvd = bytes_recvd;
- initiate_result = 1;
- }
-
- return initiate_result;
-}
-
-int
-ACE_WIN32_Asynch_Read_Dgram::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- return ACE_WIN32_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_WIN32_Asynch_Read_Dgram::cancel (void)
-{
- return ACE_WIN32_Asynch_Operation::cancel ();
-}
-
-ACE_Proactor *
-ACE_WIN32_Asynch_Read_Dgram::proactor (void) const
-{
- return ACE_WIN32_Asynch_Operation::proactor ();
-}
-
-ACE_WIN32_Asynch_Read_Dgram::ACE_WIN32_Asynch_Read_Dgram (ACE_WIN32_Proactor *win32_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Read_Dgram_Impl (),
- ACE_WIN32_Asynch_Operation (win32_proactor)
-{
-}
-
-//***********************************************
-
-size_t
-ACE_WIN32_Asynch_Write_Dgram_Result::bytes_to_write (void) const
-{
- return this->bytes_to_write_;
-}
-
-ACE_Message_Block*
-ACE_WIN32_Asynch_Write_Dgram_Result::message_block () const
-{
- return this->message_block_;
-}
-
-int
-ACE_WIN32_Asynch_Write_Dgram_Result::flags (void) const
-{
- return this->flags_;
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Write_Dgram_Result::handle (void) const
-{
- return this->handle_;
-}
-
-size_t
-ACE_WIN32_Asynch_Write_Dgram_Result::bytes_transferred (void) const
-{
- return ACE_WIN32_Asynch_Result::bytes_transferred ();
-}
-
-const void *
-ACE_WIN32_Asynch_Write_Dgram_Result::act (void) const
-{
- return ACE_WIN32_Asynch_Result::act ();
-}
-
-int
-ACE_WIN32_Asynch_Write_Dgram_Result::success (void) const
-{
- return ACE_WIN32_Asynch_Result::success ();
-}
-
-const void *
-ACE_WIN32_Asynch_Write_Dgram_Result::completion_key (void) const
-{
- return ACE_WIN32_Asynch_Result::completion_key ();
-}
-
-u_long
-ACE_WIN32_Asynch_Write_Dgram_Result::error (void) const
-{
- return ACE_WIN32_Asynch_Result::error ();
-}
-
-ACE_HANDLE
-ACE_WIN32_Asynch_Write_Dgram_Result::event (void) const
-{
- return ACE_WIN32_Asynch_Result::event ();
-}
-
-u_long
-ACE_WIN32_Asynch_Write_Dgram_Result::offset (void) const
-{
- return ACE_WIN32_Asynch_Result::offset ();
-}
-
-u_long
-ACE_WIN32_Asynch_Write_Dgram_Result::offset_high (void) const
-{
- return ACE_WIN32_Asynch_Result::offset_high ();
-}
-
-int
-ACE_WIN32_Asynch_Write_Dgram_Result::priority (void) const
-{
- return ACE_WIN32_Asynch_Result::priority ();
-}
-
-int
-ACE_WIN32_Asynch_Write_Dgram_Result::signal_number (void) const
-{
- return ACE_WIN32_Asynch_Result::signal_number ();
-}
-
-int
-ACE_WIN32_Asynch_Write_Dgram_Result::post_completion (ACE_Proactor_Impl *proactor)
-{
- return ACE_WIN32_Asynch_Result::post_completion (proactor);
-}
-
-ACE_WIN32_Asynch_Write_Dgram_Result::ACE_WIN32_Asynch_Write_Dgram_Result (
- ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_write,
- int flags,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- ACE_Asynch_Write_Dgram_Result_Impl(),
- ACE_WIN32_Asynch_Result (handler,
- act,
- event,
- 0,
- 0,
- priority,
- signal_number),
- bytes_to_write_ (bytes_to_write),
- message_block_ (message_block),
- flags_ (flags),
- handle_ (handle)
-{
-}
-
-void
-ACE_WIN32_Asynch_Write_Dgram_Result::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- // Copy the data which was returned by GetQueuedCompletionStatus
- this->bytes_transferred_ = bytes_transferred;
- this->success_ = success;
- this->completion_key_ = completion_key;
- this->error_ = error;
-
- // Appropriately move the pointers in the message block.
- for (ACE_Message_Block* mb = this->message_block_;
- (mb != 0) && (bytes_transferred > 0);
- mb = mb->cont ())
- {
- size_t len_part = mb->length ();
-
- if ( len_part > bytes_transferred)
- len_part = bytes_transferred;
-
- mb->rd_ptr (len_part);
-
- bytes_transferred -= len_part;
- }
-
- // Create the interface result class.
- ACE_Asynch_Write_Dgram::Result result (this);
-
- // Call the application handler.
- this->handler_.handle_write_dgram (result);
-}
-
-ACE_WIN32_Asynch_Write_Dgram_Result::~ACE_WIN32_Asynch_Write_Dgram_Result (void)
-{
-}
-
-
-//***********************************************
-
-ACE_WIN32_Asynch_Write_Dgram::~ACE_WIN32_Asynch_Write_Dgram (void)
-{
-}
-
-ssize_t
-ACE_WIN32_Asynch_Write_Dgram::send (ACE_Message_Block *message_block,
- size_t &number_of_bytes_sent,
- int flags,
- const ACE_Addr &addr,
- const void *act,
- int priority,
- int signal_number)
-{
- number_of_bytes_sent = 0;
-
- size_t bytes_to_write = 0;
-
- iovec iov[ACE_IOV_MAX];
- int iovcnt = 0;
-
- for (const ACE_Message_Block* msg = message_block;
- msg != 0 && iovcnt < ACE_IOV_MAX;
- msg = msg->cont () , ++iovcnt )
- {
- size_t msg_len = msg->length ();
-
- // OS should process zero length block correctly
- // if ( msg_len == 0 )
- // ACE_ERROR_RETURN ((LM_ERROR,
- // ACE_LIB_TEXT ("ACE_WIN32_Asynch_Write_Dgram::send:")
- // ACE_LIB_TEXT ("Zero-length message block\n")),
- // -1);
-
- bytes_to_write += msg_len;
-
- // Make as many iovec as needed to fit all of msg_len.
- size_t rd_ptr_offset = 0;
- while (msg_len > 0 && iovcnt < ACE_IOV_MAX)
- {
- u_long this_chunk_length;
- if (msg_len > ULONG_MAX)
- this_chunk_length = ULONG_MAX;
- else
- this_chunk_length = ACE_static_cast (u_long, msg_len);
- // Collect the data in the iovec.
- iov[iovcnt].iov_base = msg->rd_ptr () + rd_ptr_offset;
- iov[iovcnt].iov_len = this_chunk_length;
- msg_len -= this_chunk_length;
- rd_ptr_offset += this_chunk_length;
-
- // Increment iovec counter if there's more to do.
- if (msg_len > 0)
- iovcnt++;
- }
- if (msg_len > 0) // Ran out of iovecs before msg_space exhausted
- {
- errno = ERANGE;
- return -1;
- }
- }
-
- if ( bytes_to_write == 0 )
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_LIB_TEXT ("ACE_WIN32_Asynch_Write_Dgram::send:")
- ACE_LIB_TEXT ("Attempt to write 0 bytes\n")),
- -1);
-
- // Create the Asynch_Result.
- ACE_WIN32_Asynch_Write_Dgram_Result *result = 0;
- ACE_NEW_RETURN (result,
- ACE_WIN32_Asynch_Write_Dgram_Result (*this->handler_,
- this->handle_,
- message_block,
- bytes_to_write,
- flags,
- act,
- this->win32_proactor_->get_handle (),
- priority,
- signal_number),
- -1);
-
- // do the scatter/gather send
-
- int initiate_result = ACE_OS::sendto (result->handle (),
- iov,
- iovcnt,
- number_of_bytes_sent,
- result->flags_,
- (sockaddr *) addr.get_addr (),
- addr.get_size(),
- result,
- 0);
-
-
- if (initiate_result == SOCKET_ERROR)
- {
- // If initiate failed, check for a bad error.
- ACE_OS::set_errno_to_last_error ();
- switch (errno)
- {
- case ERROR_IO_PENDING:
- // The IO will complete proactively: the OVERLAPPED will still
- // get queued.
- initiate_result = 0;
- break;
-
- default:
- // Something else went wrong: the OVERLAPPED will not get
- // queued.
-
- if (ACE::debug ())
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("WSASendTo")));
- }
-
- delete result;
- initiate_result = -1;
- break;
- }
-
- }
- else
- {
- // Immediate success: the OVERLAPPED will still get queued.
- // number_of_bytes_recvd contains the number of bytes recvd
- // addr contains the peer address
- // flags was updated
-
- // number_of_bytes_sent = bytes_sent;
- initiate_result = 1;
- }
-
- return initiate_result;
-}
-
-int
-ACE_WIN32_Asynch_Write_Dgram::open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor)
-{
- return ACE_WIN32_Asynch_Operation::open (handler,
- handle,
- completion_key,
- proactor);
-}
-
-int
-ACE_WIN32_Asynch_Write_Dgram::cancel (void)
-{
- return ACE_WIN32_Asynch_Operation::cancel ();
-}
-
-ACE_Proactor *
-ACE_WIN32_Asynch_Write_Dgram::proactor (void) const
-{
- return ACE_WIN32_Asynch_Operation::proactor ();
-}
-
-ACE_WIN32_Asynch_Write_Dgram::ACE_WIN32_Asynch_Write_Dgram (ACE_WIN32_Proactor *win32_proactor)
- : ACE_Asynch_Operation_Impl (),
- ACE_Asynch_Write_Dgram_Impl (),
- ACE_WIN32_Asynch_Operation (win32_proactor)
-{
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Map_Entry<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *>;
-template class ACE_Map_Manager<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Map_Iterator_Base<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Map_Const_Iterator_Base<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Map_Iterator<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Map_Const_Iterator<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_Map_Entry<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *>
-#pragma instantiate ACE_Map_Manager<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Map_Const_Iterator_Base<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Map_Iterator<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Map_Const_Iterator<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_WIN32 || ACE_HAS_WINCE */
diff --git a/ace/WIN32_Asynch_IO.h b/ace/WIN32_Asynch_IO.h
deleted file mode 100644
index cbed064d077..00000000000
--- a/ace/WIN32_Asynch_IO.h
+++ /dev/null
@@ -1,1945 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file WIN32_Asynch_IO.h
- *
- * $Id$
- *
- *
- * These classes only works on Win32 platforms.
- *
- * The implementation of ACE_Asynch_Transmit_File,
- * ACE_Asynch_Accept, and ACE_Asynch_Connect are only supported if
- * ACE_HAS_WINSOCK2 is defined or you are on WinNT 4.0 or higher.
- *
- *
- * @author Irfan Pyarali <irfan@cs.wustl.edu>
- * @author Tim Harrison <harrison@cs.wustl.edu>
- * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
- * @author Roger Tragin <r.tragin@computer.org>
- * @author Alexander Libman <alibman@ihug.com.au>
- */
-//=============================================================================
-
-#ifndef ACE_WIN32_ASYNCH_IO_H
-#define ACE_WIN32_ASYNCH_IO_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
-
-#include "ace/OS.h"
-#include "ace/Asynch_IO_Impl.h"
-#include "ace/Addr.h"
-#include "ace/Event_Handler.h"
-
-#include "ace/Map_Manager.h"
-
-// Forward declaration
-class ACE_WIN32_Proactor;
-
-/**
- * @class ACE_WIN32_Asynch_Result
- *
- * @brief An abstract class which adds information to the OVERLAPPED
- * structure to make it more useful.
- *
- * An abstract base class from which you can obtain some basic
- * information like the number of bytes transferred, the ACT
- * associated with the asynchronous operation, indication of
- * success or failure, etc. Subclasses may want to store more
- * information that is particular to the asynchronous operation
- * it represents.
- */
-class ACE_Export ACE_WIN32_Asynch_Result : public virtual ACE_Asynch_Result_Impl,
- public OVERLAPPED
-{
- /// Factory class has special permissions.
- friend class ACE_WIN32_Asynch_Accept;
-
- /// Proactor class has special permission.
- friend class ACE_WIN32_Proactor;
-
-public:
- /// Number of bytes transferred by the operation.
- size_t bytes_transferred (void) const;
-
- /// ACT associated with the operation.
- const void *act (void) const;
-
- /// Did the operation succeed?
- int success (void) const;
-
- /**
- * This returns the ACT associated with the handle when it was
- * registered with the I/O completion port. This ACT is not the
- * same as the ACT associated with the asynchronous operation.
- */
- const void *completion_key (void) const;
-
- /// Error value if the operation fail.
- u_long error (void) const;
-
- /// Event associated with the OVERLAPPED structure.
- ACE_HANDLE event (void) const;
-
- /// This really make sense only when doing file I/O.
- u_long offset (void) const;
-
- /// Offset_high associated with the OVERLAPPED structure.
- u_long offset_high (void) const;
-
- /// The priority of the asynchronous operation. Currently, this is
- /// not supported on Win32.
- int priority (void) const;
-
- /// Returns 0.
- int signal_number (void) const;
-
- /// Post <this> to the Proactor's completion port.
- int post_completion (ACE_Proactor_Impl *proactor);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Result (void);
-
- /// Simulate error value to use in the post_completion ()
- void set_error (u_long errcode);
-
- /// Simulate value to use in the post_completion ()
- void set_bytes_transferred (size_t nbytes);
-
-protected:
- /// Constructor.
- ACE_WIN32_Asynch_Result (ACE_Handler &handler,
- const void* act,
- ACE_HANDLE event,
- u_long offset,
- u_long offset_high,
- int priority,
- int signal_number = 0);
-
- /// Handler that will be called back.
- ACE_Handler &handler_;
-
- /// ACT for this operation.
- const void *act_;
-
- /// Bytes transferred by this operation.
- size_t bytes_transferred_;
-
- /// Success indicator.
- int success_;
-
- /// ACT associated with handle.
- const void *completion_key_;
-
- /// Error if operation failed.
- u_long error_;
-};
-
-/**
- * @class ACE_WIN32_Asynch_Operation
- *
- * @brief This class abstracts out the common things needed for
- * implementing Asynch_Operation for WIN32 platform.
- *
- */
-class ACE_Export ACE_WIN32_Asynch_Operation : public virtual ACE_Asynch_Operation_Impl
-{
-public:
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor);
-
- /**
- * This cancels all pending accepts operations that were issued by
- * the calling thread. The function does not cancel asynchronous
- * operations issued by other threads.
- */
- int cancel (void);
-
- // = Access methods.
-
- /// Return the underlying proactor.
- ACE_Proactor* proactor (void) const;
-
-protected:
- /// Constructor.
- ACE_WIN32_Asynch_Operation (ACE_WIN32_Proactor *win32_proactor);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Operation (void);
-
- /// Win32 Proactor.
- ACE_WIN32_Proactor *win32_proactor_;
-
- /// Proactor that this asynch IO is registered with.
- ACE_Proactor *proactor_;
-
- /// Handler that will receive the callback.
- ACE_Handler *handler_;
-
- /// I/O handle used for reading.
- ACE_HANDLE handle_;
-};
-
-/**
- * @class ACE_WIN32_Asynch_Read_Stream_Result
- *
- * @brief This class provides concrete implementation for
- * ACE_Asynch_Read_Stream::Result class.
- */
-class ACE_Export ACE_WIN32_Asynch_Read_Stream_Result : public virtual ACE_Asynch_Read_Stream_Result_Impl,
- public ACE_WIN32_Asynch_Result
-{
- /// Factory class will have special permissions.
- friend class ACE_WIN32_Asynch_Read_Stream;
-
- /// Proactor class has special permission.
- friend class ACE_WIN32_Proactor;
-
-public:
- /// The number of bytes which were requested at the start of the
- /// asynchronous read.
- size_t bytes_to_read (void) const;
-
- /// Message block which contains the read data.
- ACE_Message_Block &message_block (void) const;
-
- /// I/O handle used for reading.
- ACE_HANDLE handle (void) const;
-
- // Base class operations. These operations are here to kill
- // dominance warnings. These methods call the base class methods.
-
- /// Number of bytes transferred by the operation.
- size_t bytes_transferred (void) const;
-
- /// ACT associated with the operation.
- const void *act (void) const;
-
- /// Did the operation succeed?
- int success (void) const;
-
- /**
- * This returns the ACT associated with the handle when it was
- * registered with the I/O completion port. This ACT is not the
- * same as the ACT associated with the asynchronous operation.
- */
- const void *completion_key (void) const;
-
- /// Error value if the operation fail.
- u_long error (void) const;
-
- /// Event associated with the OVERLAPPED structure.
- ACE_HANDLE event (void) const;
-
- /// This really make sense only when doing file I/O.
- u_long offset (void) const;
-
- /// Offset_high associated with the OVERLAPPED structure.
- u_long offset_high (void) const;
-
- /// The priority of the asynchronous operation. Currently, this is
- /// not supported on Win32.
- int priority (void) const;
-
- /// No-op. Returns 0.
- int signal_number (void) const;
-
- /// Post <this> to the Proactor's completion port.
- int post_completion (ACE_Proactor_Impl *proactor);
-
- /// Accessor for the scatter read flag
- int scatter_enabled (void) const;
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Read_Stream factory.
- ACE_WIN32_Asynch_Read_Stream_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0,
- int scatter_enabled = 0);
-
- /// Proactor will call this method when the read completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Read_Stream_Result (void);
-
- /// Bytes requested when the asynchronous read was initiated.
- size_t bytes_to_read_;
-
- /// Message block for reading the data into.
- ACE_Message_Block &message_block_;
-
- /// I/O handle used for reading.
- ACE_HANDLE handle_;
-
- /// Flag for scatter read
- int scatter_enabled_;
-};
-
-/**
- * @class ACE_WIN32_Asynch_Read_Stream
- *
- * @brief This class is a factory for starting off asynchronous reads
- * on a stream.
- *
- * Once <open> is called, multiple asynchronous <read>s can
- * started using this class. An ACE_Asynch_Read_Stream::Result
- * will be passed back to the <handler> when the asynchronous
- * reads completes through the <ACE_Handler::handle_read_stream>
- * callback.
- */
-class ACE_Export ACE_WIN32_Asynch_Read_Stream : public virtual ACE_Asynch_Read_Stream_Impl,
- public ACE_WIN32_Asynch_Operation
-{
-
-public:
- /// Constructor.
- ACE_WIN32_Asynch_Read_Stream (ACE_WIN32_Proactor *win32_proactor);
-
- /// This starts off an asynchronous read. Upto <bytes_to_read> will
- /// be read and stored in the <message_block>.
- int read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /**
- * Same as above but with scatter support, through chaining of composite
- * message blocks using the continuation field.
- */
- int readv (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Read_Stream (void);
-
- // Methods belong to ACE_WIN32_Asynch_Operation base class. These
- // methods are defined here to avoid VC++ warnings. They route the
- // call to the ACE_WIN32_Asynch_Operation base class.
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor);
-
- /**
- * This cancels all pending accepts operations that were issued by
- * the calling thread. The function does not cancel asynchronous
- * operations issued by other threads.
- */
- int cancel (void);
-
- /// Return the underlying proactor.
- ACE_Proactor* proactor (void) const;
-
-protected:
- /// This is the method which does the real work and is there so that
- /// the ACE_Asynch_Read_File class can use it too.
- int shared_read (ACE_WIN32_Asynch_Read_Stream_Result *result);
-};
-
-/**
- * @class ACE_WIN32_Asynch_Write_Stream_Result
- *
- * @brief This class provides concrete implementation for
- * ACE_Asynch_Write_Stream::Result class.
- */
-class ACE_Export ACE_WIN32_Asynch_Write_Stream_Result : public virtual ACE_Asynch_Write_Stream_Result_Impl,
- public ACE_WIN32_Asynch_Result
-{
- /// Factory class willl have special permissions.
- friend class ACE_WIN32_Asynch_Write_Stream;
-
- /// Proactor class has special permission.
- friend class ACE_WIN32_Proactor;
-
-public:
- /// The number of bytes which were requested at the start of the
- /// asynchronous write.
- size_t bytes_to_write (void) const;
-
- /// Message block that contains the data to be written.
- ACE_Message_Block &message_block (void) const;
-
- /// I/O handle used for writing.
- ACE_HANDLE handle (void) const;
-
- // = Base class operations. These operations are here to kill some
- // warnings. These methods call the base class methods.
-
- /// Number of bytes transferred by the operation.
- size_t bytes_transferred (void) const;
-
- /// ACT associated with the operation.
- const void *act (void) const;
-
- /// Did the operation succeed?
- int success (void) const;
-
- /**
- * This returns the ACT associated with the handle when it was
- * registered with the I/O completion port. This ACT is not the
- * same as the ACT associated with the asynchronous operation.
- */
- const void *completion_key (void) const;
-
- /// Error value if the operation fail.
- u_long error (void) const;
-
- /// Event associated with the OVERLAPPED structure.
- ACE_HANDLE event (void) const;
-
- /// This really make sense only when doing file I/O.
- u_long offset (void) const;
-
- /// Offset_high associated with the OVERLAPPED structure.
- u_long offset_high (void) const;
-
- /// The priority of the asynchronous operation. Currently, this is
- /// not supported on Win32.
- int priority (void) const;
-
- /// No-op. Returns 0.
- int signal_number (void) const;
-
- /// Post <this> to the Proactor's completion port.
- int post_completion (ACE_Proactor_Impl *proactor);
-
- /// Accessor for the gather write flag
- int gather_enabled (void) const;
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Write_Stream factory.
- ACE_WIN32_Asynch_Write_Stream_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0,
- int gather_enabled = 0);
-
- /// ACE_Proactor will call this method when the write completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Write_Stream_Result (void);
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous write.
- size_t bytes_to_write_;
-
- /// Message block that contains the data to be written.
- ACE_Message_Block &message_block_;
-
- /// I/O handle used for writing.
- ACE_HANDLE handle_;
-
- /// Flag for gather write
- int gather_enabled_;
-};
-
-/**
- * @class ACE_WIN32_Asynch_Write_Stream
- *
- * @brief This class is a factory for starting off asynchronous writes
- * on a stream.
- *
- *
- * Once <open> is called, multiple asynchronous <writes>s can
- * started using this class. A ACE_Asynch_Write_Stream::Result
- * will be passed back to the <handler> when the asynchronous
- * write completes through the
- * <ACE_Handler::handle_write_stream> callback.
- */
-class ACE_Export ACE_WIN32_Asynch_Write_Stream : public virtual ACE_Asynch_Write_Stream_Impl,
- public ACE_WIN32_Asynch_Operation
-{
-public:
- /// Constructor.
- ACE_WIN32_Asynch_Write_Stream (ACE_WIN32_Proactor *win32_proactor);
-
- /// This starts off an asynchronous write. Upto <bytes_to_write>
- /// will be written from the <message_block>.
- int write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /**
- * Same as above but with gather support, through chaining of composite
- * message blocks using the continuation field.
- */
- int writev (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Write_Stream (void);
-
- // = Methods belonging to <ACE_WIN32_Asynch_Operation> base class.
-
- // These methods are defined here to avoid VC++ warnings. They route
- // the call to the <ACE_WIN32_Asynch_Operation> base class.
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor);
-
- /**
- * This cancels all pending accepts operations that were issued by
- * the calling thread. The function does not cancel asynchronous
- * operations issued by other threads.
- */
- int cancel (void);
-
- /// Return the underlying proactor.
- ACE_Proactor* proactor (void) const;
-
-protected:
- /// This is the method which does the real work and is there so that
- /// the ACE_Asynch_Write_File class can use it too.
- int shared_write (ACE_WIN32_Asynch_Write_Stream_Result *result);
-};
-
-/**
- * @class ACE_WIN32_Asynch_Read_File_Result
- *
- * @brief This class provides concrete implementation for
- * ACE_Asynch_Read_File::Result class.
- */
-class ACE_Export ACE_WIN32_Asynch_Read_File_Result : public virtual ACE_Asynch_Read_File_Result_Impl,
- public ACE_WIN32_Asynch_Read_Stream_Result
-{
- /// Factory class will have special permissions.
- friend class ACE_WIN32_Asynch_Read_File;
-
- /// Proactor class has special permission.
- friend class ACE_WIN32_Proactor;
-
-public:
- // = These methods belong to ACE_WIN32_Asynch_Result class base
- // class. These operations are here to kill some warnings. These
- // methods call the base class methods.
-
- /// Number of bytes transferred by the operation.
- size_t bytes_transferred (void) const;
-
- /// ACT associated with the operation.
- const void *act (void) const;
-
- /// Did the operation succeed?
- int success (void) const;
-
- /**
- * This returns the ACT associated with the handle when it was
- * registered with the I/O completion port. This ACT is not the
- * same as the ACT associated with the asynchronous operation.
- */
- const void *completion_key (void) const;
-
- /// Error value if the operation fail.
- u_long error (void) const;
-
- /// Event associated with the OVERLAPPED structure.
- ACE_HANDLE event (void) const;
-
- /// This really make sense only when doing file I/O.
- u_long offset (void) const;
-
- /// Offset_high associated with the OVERLAPPED structure.
- u_long offset_high (void) const;
-
- /// The priority of the asynchronous operation. Currently, this is
- /// not supported on Win32.
- int priority (void) const;
-
- /// No-op. Returns 0.
- int signal_number (void) const;
-
- // The following methods belong to
- // ACE_WIN32_Asynch_Read_Stream_Result. They are here to avoid VC++
- // dominance warnings. These methods route their call to the
- // ACE_WIN32_Asynch_Read_Stream_Result base class.
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous read.
- size_t bytes_to_read (void) const;
-
- /// Message block which contains the read data.
- ACE_Message_Block &message_block (void) const;
-
- /// I/O handle used for reading.
- ACE_HANDLE handle (void) const;
-
- /// Post <this> to the Proactor's completion port.
- int post_completion (ACE_Proactor_Impl *proactor);
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Read_File factory.
- ACE_WIN32_Asynch_Read_File_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0,
- int scatter_enabled = 0);
-
- /// ACE_Proactor will call this method when the read completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Read_File_Result (void);
-};
-
-/**
- * @class ACE_WIN32_Asynch_Read_File
- *
- * @brief This class is a factory for starting off asynchronous reads
- * on a file.
- *
- * Once <open> is called, multiple asynchronous <read>s can
- * started using this class. A ACE_Asynch_Read_File::Result
- * will be passed back to the <handler> when the asynchronous
- * reads completes through the <ACE_Handler::handle_read_file>
- * callback.
- *
- * This class differs slightly from ACE_Asynch_Read_Stream as it
- * allows the user to specify an offset for the read.
- */
-class ACE_Export ACE_WIN32_Asynch_Read_File : public virtual ACE_Asynch_Read_File_Impl,
- public ACE_WIN32_Asynch_Read_Stream
-{
-
-public:
- /// Constructor.
- ACE_WIN32_Asynch_Read_File (ACE_WIN32_Proactor *win32_proactor);
-
- /**
- * This starts off an asynchronous read. Upto <bytes_to_read> will
- * be read and stored in the <message_block>. The read will start
- * at <offset> from the beginning of the file.
- */
- int read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /**
- * Same as above but with scatter support, through chaining of
- * composite message blocks using the continuation field.
- * NOTE: Each data block payload must be at least the size of a
- * system memory page and must be aligned on a system memory page
- * size boundary
- */
- int readv (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number = 0);
-
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Read_File (void);
-
- // = Methods belong to ACE_WIN32_Asynch_Operation base class. These
- // methods are defined here to avoid VC++ warnings. They route the
- // call to the ACE_WIN32_Asynch_Operation base class.
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor);
-
- /**
- * This cancels all pending accepts operations that were issued by
- * the calling thread. The function does not cancel asynchronous
- * operations issued by other threads.
- */
- int cancel (void);
-
- /// Return the underlying proactor.
- ACE_Proactor* proactor (void) const;
-
-private:
- /**
- * This method belongs to ACE_WIN32_Asynch_Read_Stream. It is here
- * to avoid the compiler warnings. We forward this call to the
- * ACE_WIN32_Asynch_Read_Stream class.
- */
- int read (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /**
- * Same as above but with scatter support, through chaining of composite
- * message blocks using the continuation field.
- */
- int readv (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void *act,
- int priority,
- int signal_number = 0);
-};
-
-/**
- * @class ACE_WIN32_Asynch_Write_File_Result
- *
- * @brief This class provides implementation for
- * ACE_Asynch_Write_File_Result for WIN32 platforms.
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous write.
- *
- * This class differs slightly from
- * ACE_Asynch_Write_Stream::Result as it calls back
- * <ACE_Handler::handle_write_file> on the <handler> instead
- * of <ACE_Handler::handle_write_stream>. No additional state
- * is required by this class as ACE_Asynch_Result can store
- * the <offset>.
- */
-class ACE_Export ACE_WIN32_Asynch_Write_File_Result : public virtual ACE_Asynch_Write_File_Result_Impl,
- public ACE_WIN32_Asynch_Write_Stream_Result
-{
- /// Factory class will have special permission.
- friend class ACE_WIN32_Asynch_Write_File;
-
- /// Proactor class has special permission.
- friend class ACE_WIN32_Proactor;
-
-public:
- // = Base class operations. These operations are here to kill some
- // warnings. These methods call the base class methods.
-
- /// Number of bytes transferred by the operation.
- size_t bytes_transferred (void) const;
-
- /// ACT associated with the operation.
- const void *act (void) const;
-
- /// Did the operation succeed?
- int success (void) const;
-
- /**
- * This returns the ACT associated with the handle when it was
- * registered with the I/O completion port. This ACT is not the
- * same as the ACT associated with the asynchronous operation.
- */
- const void *completion_key (void) const;
-
- /// Error value if the operation fail.
- u_long error (void) const;
-
- /// Event associated with the OVERLAPPED structure.
- ACE_HANDLE event (void) const;
-
- /// This really make sense only when doing file I/O.
- u_long offset (void) const;
-
- /// Offset_high associated with the OVERLAPPED structure.
- u_long offset_high (void) const;
-
- /// The priority of the asynchronous operation. Currently, this is
- /// not supported on Win32.
- int priority (void) const;
-
- /// No-op. Returns 0.
- int signal_number (void) const;
-
- // The following methods belong to
- // ACE_WIN32_Asynch_Read_Stream_Result. They are here to avoid VC++
- // warnings. These methods route their call to the
- // ACE_WIN32_Asynch_Read_Stream_Result base class.
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous write.
- size_t bytes_to_write (void) const;
-
- /// Message block that contains the data to be written.
- ACE_Message_Block &message_block (void) const;
-
- /// I/O handle used for writing.
- ACE_HANDLE handle (void) const;
-
- /// Post <this> to the Proactor's completion port.
- int post_completion (ACE_Proactor_Impl *proactor);
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Write_File factory.
- ACE_WIN32_Asynch_Write_File_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0,
- int gather_enabled = 0);
-
- /// ACE_Proactor will call this method when the write completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Write_File_Result (void);
-};
-
-/**
- * @class ACE_WIN32_Asynch_Write_File
- *
- * @brief This class is a factory for starting off asynchronous writes
- * on a file.
- *
- * Once <open> is called, multiple asynchronous <write>s can be
- * started using this class. A ACE_Asynch_Write_File::Result
- * will be passed back to the <handler> when the asynchronous
- * writes completes through the <ACE_Handler::handle_write_file>
- * callback.
- */
-class ACE_Export ACE_WIN32_Asynch_Write_File : public virtual ACE_Asynch_Write_File_Impl,
- public ACE_WIN32_Asynch_Write_Stream
-{
-public:
- /// Constructor.
- ACE_WIN32_Asynch_Write_File (ACE_WIN32_Proactor *win32_proactor);
-
- /**
- * This starts off an asynchronous write. Upto <bytes_to_write>
- * will be write and stored in the <message_block>. The write will
- * start at <offset> from the beginning of the file.
- */
- int write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /**
- * Same as above but with gather support, through chaining of
- * composite message blocks using the continuation field.
- * NOTE: Each data block payload must be at least the size of a
- * system memory page and must be aligned on a system memory page
- * size boundary
- */
- int writev (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /// Destrcutor.
- virtual ~ACE_WIN32_Asynch_Write_File (void);
-
- // = Methods belong to ACE_WIN32_Asynch_Operation base class. These
- // methods are defined here to avoid VC++ warnings. They route the
- // call to the ACE_WIN32_Asynch_Operation base class.
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor);
-
- /**
- * This cancels all pending accepts operations that were issued by
- * the calling thread. The function does not cancel asynchronous
- * operations issued by other threads.
- */
- int cancel (void);
-
- /// Return the underlying proactor.
- ACE_Proactor* proactor (void) const;
-
-private:
- /**
- * This method belongs to ACE_WIN32_Asynch_Write_Stream. It is here
- * to avoid compiler warnings. This method is forwarded to the
- * ACE_WIN32_Asynch_Write_Stream class.
- */
- int write (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /**
- * Same as above but with gather support, through chaining of composite
- * message blocks using the continuation field.
- */
- int writev (ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void *act,
- int priority,
- int signal_number = 0);
-};
-
-/**
- * @class ACE_WIN32_Asynch_Accept_Result
- *
- * @brief This class implements ACE_Asynch_Accept::Result for WIN32
- * platform.
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous accept.
- */
-class ACE_Export ACE_WIN32_Asynch_Accept_Result : public virtual ACE_Asynch_Accept_Result_Impl,
- public ACE_WIN32_Asynch_Result
-{
- /// Factory will have special permission.
- friend class ACE_WIN32_Asynch_Accept;
-
- /// Proactor class has special permission.
- friend class ACE_WIN32_Proactor;
-
-public:
- /// The number of bytes which were requested at the start of the
- /// asynchronous accept.
- size_t bytes_to_read (void) const;
-
- /// Message block which contains the read data.
- ACE_Message_Block &message_block (void) const;
-
- /// I/O handle used for accepting new connections.
- ACE_HANDLE listen_handle (void) const;
-
- /// I/O handle for the new connection.
- ACE_HANDLE accept_handle (void) const;
-
- // = Base class operations. These operations are here to kill some
- // warnings. These methods call the base class methods.
-
- /// Number of bytes transferred by the operation.
- size_t bytes_transferred (void) const;
-
- /// ACT associated with the operation.
- const void *act (void) const;
-
- /// Did the operation succeed?
- int success (void) const;
-
- /**
- * This returns the ACT associated with the handle when it was
- * registered with the I/O completion port. This ACT is not the
- * same as the ACT associated with the asynchronous operation.
- */
- const void *completion_key (void) const;
-
- /// Error value if the operation fail.
- u_long error (void) const;
-
- /// Event associated with the OVERLAPPED structure.
- ACE_HANDLE event (void) const;
-
- /// This really make sense only when doing file I/O.
- u_long offset (void) const;
-
- /// Offset_high associated with the OVERLAPPED structure.
- u_long offset_high (void) const;
-
- /// The priority of the asynchronous operation. Currently, this is
- /// not supported on Win32.
- int priority (void) const;
-
- /// No-op. Returns 0.
- int signal_number (void) const;
-
- /// Post <this> to the Proactor's completion port.
- int post_completion (ACE_Proactor_Impl *proactor);
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Accept factory.
- ACE_WIN32_Asynch_Accept_Result (ACE_Handler &handler,
- ACE_HANDLE listen_handle,
- ACE_HANDLE accept_handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
- /// ACE_Proactor will call this method when the accept completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Accept_Result (void);
-
- /// Bytes requested when the asynchronous read was initiated.
- size_t bytes_to_read_;
-
- /// Message block for reading the data into.
- ACE_Message_Block &message_block_;
-
- /// I/O handle used for accepting new connections.
- ACE_HANDLE listen_handle_;
-
- /// I/O handle for the new connection.
- ACE_HANDLE accept_handle_;
-};
-
-/**
- * @class ACE_WIN32_Asynch_Accept
- *
- * @brief This class is a factory for starting off asynchronous accepts
- * on a listen handle.
- *
- * Once <open> is called, multiple asynchronous <accept>s can
- * started using this class. A ACE_Asynch_Accept::Result will
- * be passed back to the <handler> when the asynchronous accept
- * completes through the <ACE_Handler::handle_accept>
- * callback.
- */
-class ACE_Export ACE_WIN32_Asynch_Accept : public virtual ACE_Asynch_Accept_Impl,
- public ACE_WIN32_Asynch_Operation
-{
-public:
- /// Constructor.
- ACE_WIN32_Asynch_Accept (ACE_WIN32_Proactor *win32_proactor);
-
- /**
- * This starts off an asynchronous accept. The asynchronous accept
- * call also allows any initial data to be returned to the
- * <handler>. Upto <bytes_to_read> will be read and stored in the
- * <message_block>. The <accept_handle> will be used for the
- * <accept> call. If (<accept_handle> == INVALID_HANDLE), a new
- * handle will be created.
- *
- * <message_block> must be specified. This is because the address of
- * the new connection is placed at the end of this buffer.
- */
- int accept (ACE_Message_Block &message_block,
- size_t bytes_to_read,
- ACE_HANDLE accept_handle,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /// Destructor.
- ~ACE_WIN32_Asynch_Accept (void);
-
- // Methods belong to ACE_WIN32_Asynch_Operation base class. These
- // methods are defined here to avoid VC++ warnings. They route the
- // call to the ACE_WIN32_Asynch_Operation base class.
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor);
-
- /**
- * This cancels all pending accepts operations that were issued by
- * the calling thread. The function does not cancel asynchronous
- * operations issued by other threads.
- */
- int cancel (void);
-
- /// Return the underlying proactor.
- ACE_Proactor* proactor (void) const;
-};
-
-/**
- * @class ACE_WIN32_Asynch_Connect_Result
- *
- * @brief This is that class which will be passed back to the
- * completion handler when the asynchronous connect completes.
- *
- * This class has all the information necessary for the
- * completion handler to uniquiely identify the completion of the
- * asynchronous connect.
- */
-class ACE_Export ACE_WIN32_Asynch_Connect_Result : public virtual ACE_Asynch_Connect_Result_Impl,
- public ACE_WIN32_Asynch_Result
-{
- /// Factory classes will have special permissions.
- friend class ACE_WIN32_Asynch_Connect;
-
- /// The Proactor constructs the Result class for faking results.
- friend class ACE_WIN32_Proactor;
-
-public:
-
- /// I/O handle for the connection.
- ACE_HANDLE connect_handle (void) const;
-
- // = Base class operations. These operations are here to kill some
- // warnings. These methods call the base class methods.
-
- /// Number of bytes transferred by the operation.
- size_t bytes_transferred (void) const;
-
- /// ACT associated with the operation.
- const void *act (void) const;
-
- /// Did the operation succeed?
- int success (void) const;
-
- /**
- * Returns the ACT associated with the handle when it was
- * registered with the I/O completion port. This ACT is not the
- * same as the ACT associated with the asynchronous operation.
- */
- const void *completion_key (void) const;
-
- /// Error value if the operation fail.
- u_long error (void) const;
-
- /// Event associated with the OVERLAPPED structure.
- ACE_HANDLE event (void) const;
-
- /// This really make sense only when doing file I/O.
- u_long offset (void) const;
-
- /// Offset_high associated with the OVERLAPPED structure.
- u_long offset_high (void) const;
-
- /// The priority of the asynchronous operation. Currently, this is
- /// not supported on Win32.
- int priority (void) const;
-
- /// No-op. Returns 0.
- int signal_number (void) const;
-
- /// Post this object to the Proactor's completion port.
- int post_completion (ACE_Proactor_Impl *proactor);
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Connect factory.
- ACE_WIN32_Asynch_Connect_Result (ACE_Handler &handler,
- ACE_HANDLE connect_handle,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number);
-
- /// ACE_Proactor will call this method when the accept completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Connect_Result (void);
-
- /// Set the I/O handle for the new connection.
- void connect_handle (ACE_HANDLE handle);
-
- ACE_HANDLE connect_handle_;
-};
-
-
-/**
- * @class ACE_WIN32_Asynch_Connect
- */
-class ACE_Export ACE_WIN32_Asynch_Connect :
- public virtual ACE_Asynch_Connect_Impl,
- public ACE_WIN32_Asynch_Operation,
- public ACE_Event_Handler
-{
-public:
-
- /// Constructor.
- ACE_WIN32_Asynch_Connect (ACE_WIN32_Proactor * win32_proactor);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Connect (void);
-
- /**
- * This open belongs to ACE_WIN32_Asynch_Operation. We forward
- * this call to that method. We have put this here to avoid the
- * compiler warnings.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor = 0);
-
- /**
- * Start an asynchronous connect.
- *
- * @param connect_handle Handle to use for the connect. If the value
- * ACE_INVALID_HANDLE, a new handle will be created.
- *
- * @retval 0 Success
- * @retval -1 Error
- */
- int connect (ACE_HANDLE connect_handle,
- const ACE_Addr &remote_sap,
- const ACE_Addr &local_sap,
- int reuse_addr,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /**
- * Cancel all pending pseudo-asynchronus requests
- * Behavior as usual AIO request
- */
- int cancel (void);
-
- /**
- * Close performs cancellation of all pending requests
- * and close the connect handle
- */
- int close (void);
-
- /// Virtual from ACE_Event_Handler
- ACE_HANDLE get_handle (void) const;
-
- /// Virtual from ACE_Event_Handler
- void set_handle (ACE_HANDLE handle);
-
- /// Virtual from ACE_Event_Handler
- int handle_input ( ACE_HANDLE handle);
- int handle_output ( ACE_HANDLE handle);
- int handle_exception ( ACE_HANDLE handle);
-
- /// Virtual from ACE_Event_Handler
- int handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask) ;
-
- // = Methods belong to ACE_WIN32_Asynch_Operation base class. These
- // methods are defined here to avoid dominace warnings. They route
- // the call to the ACE_WIN32_Asynch_Operation base class.
- /// Return the underlying proactor.
- ACE_Proactor* proactor (void) const;
-
-private:
- int connect_i (ACE_WIN32_Asynch_Connect_Result *result,
- const ACE_Addr &remote_sap,
- const ACE_Addr &local_sap,
- int reuse_addr);
-
- int post_result (ACE_WIN32_Asynch_Connect_Result *result, int flg_post);
-
- /// Cancel uncompleted connect operations.
- /**
- * @param flg_notify Indicates whether or not to send notification about
- * canceled connect operations. If 0, don't send
- * notifications. If 1, notify user about canceled
- * connects.
- * According WIN32 standards we should receive
- * notifications on canceled AIO requests.
- *
- * @param set Receives the set of I/O handles on which asynchronous
- * connect requests were canceled as a result of this
- * method. The contents of @a set are completely
- * replaced.
- */
- int cancel_uncompleted (int flg_notify, ACE_Handle_Set & set);
-
- /// 1 - Connect is registered in ACE_Asynch_Pseudo_Task
- /// 0 - Aceept is deregisted in ACE_Asynch_Pseudo_Task
- int flg_open_ ;
-
- /// To prevent ACE_Asynch_Pseudo_Task from deletion
- /// while we make a call to the ACE_Asynch_Pseudo_Task
- /// This is extra cost !!!
- /// we could avoid them if all applications will follow the rule:
- /// Proactor should be deleted only after deletion all
- /// AsynchOperation objects connected with it
- int task_lock_count_;
-
- typedef ACE_Map_Manager<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
- MAP_MANAGER;
-
- // (Two) Deprecated typedefs. Use appropriate MAP_MANAGER traits
- // instead.
- typedef MAP_MANAGER::ITERATOR MAP_ITERATOR;
- typedef MAP_MANAGER::ENTRY MAP_ENTRY;
-
- /// Map of Result pointers that correspond to all the <accept>'s
- /// pending.
- MAP_MANAGER result_map_;
-
- /// The lock to protect the result queue which is shared. The queue
- /// is updated by main thread in the register function call and
- /// through the auxillary thread in the deregister fun. So let us
- /// mutex it.
- ACE_SYNCH_MUTEX lock_;
-};
-
-/**
- * @class ACE_WIN32_Asynch_Transmit_File_Result
- *
- *
- * @brief This class implements ACE_Asynch_Transmit_File::Result for
- * WIN32 platforms.
- *
- * This class has all the information necessary for the
- * <handler> to uniquiely identify the completion of the
- * asynchronous transmit file.
- */
-class ACE_Export ACE_WIN32_Asynch_Transmit_File_Result : public virtual ACE_Asynch_Transmit_File_Result_Impl,
- public ACE_WIN32_Asynch_Result
-{
- /// Factory class will have special permission.
- friend class ACE_WIN32_Asynch_Transmit_File;
-
- /// Proactor class has special permission.
- friend class ACE_WIN32_Proactor;
-
-public:
- /// Socket used for transmitting the file.
- ACE_HANDLE socket (void) const;
-
- /// File from which the data is read.
- ACE_HANDLE file (void) const;
-
- /// Header and trailer data associated with this transmit file.
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer (void) const;
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous transmit file.
- size_t bytes_to_write (void) const;
-
- /// Number of bytes per send requested at the start of the transmit
- /// file.
- size_t bytes_per_send (void) const;
-
- /// Flags which were passed into transmit file.
- u_long flags (void) const;
-
- // Base class operations. These operations are here to kill some
- // warnings. These methods call the base class methods.
-
- /// Number of bytes transferred by the operation.
- size_t bytes_transferred (void) const;
-
- /// ACT associated with the operation.
- const void *act (void) const;
-
- /// Did the operation succeed?
- int success (void) const;
-
- /**
- * This returns the ACT associated with the handle when it was
- * registered with the I/O completion port. This ACT is not the
- * same as the ACT associated with the asynchronous operation.
- */
- const void *completion_key (void) const;
-
- /// Error value if the operation fail.
- u_long error (void) const;
-
- /// Event associated with the OVERLAPPED structure.
- ACE_HANDLE event (void) const;
-
- /// This really make sense only when doing file I/O.
- u_long offset (void) const;
-
- /// Offset_high associated with the OVERLAPPED structure.
- u_long offset_high (void) const;
-
- /// The priority of the asynchronous operation. Currently, this is
- /// not supported on Win32.
- int priority (void) const;
-
- /// No-op. Returns 0.
- int signal_number (void) const;
-
- /// Post <this> to the Proactor's completion port.
- int post_completion (ACE_Proactor_Impl *proactor);
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Transmit_File factory.
- ACE_WIN32_Asynch_Transmit_File_Result (ACE_Handler &handler,
- ACE_HANDLE socket,
- ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
- /// Proactor will call this method when the write completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Transmit_File_Result (void);
-
- /// Network I/O handle.
- ACE_HANDLE socket_;
-
- /// File I/O handle.
- ACE_HANDLE file_;
-
- /// Header and trailer data associated with this transmit file.
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer_;
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous transmit file.
- size_t bytes_to_write_;
-
- /// Number of bytes per send requested at the start of the transmit
- /// file.
- size_t bytes_per_send_;
-
- /// Flags which were passed into transmit file.
- u_long flags_;
-};
-
-/**
- * @class ACE_WIN32_Asynch_Transmit_File
- *
- * @brief This class is a factory for starting off asynchronous
- * transmit files on a stream.
- *
- * Once <open> is called, multiple asynchronous <transmit_file>s
- * can started using this class. A
- * ACE_Asynch_Transmit_File::Result will be passed back to the
- * <handler> when the asynchronous transmit file completes
- * through the <ACE_Handler::handle_transmit_file> callback.
- *
- * The transmit_file function transmits file data over a
- * connected network connection. The function uses the operating
- * system's cache manager to retrieve the file data. This
- * function provides high-performance file data transfer over
- * network connections. This function would be of great use in
- * a Web Server, Image Server, etc.
- */
-class ACE_Export ACE_WIN32_Asynch_Transmit_File : public virtual ACE_Asynch_Transmit_File_Impl,
- public ACE_WIN32_Asynch_Operation
-{
-public:
- /// Constructor.
- ACE_WIN32_Asynch_Transmit_File (ACE_WIN32_Proactor *win32_proactor);
-
- /**
- * This starts off an asynchronous transmit file. The <file> is a
- * handle to an open file. <header_and_trailer> is a pointer to a
- * data structure that contains pointers to data to send before and
- * after the file data is sent. Set this parameter to 0 if you only
- * want to transmit the file data. Upto <bytes_to_write> will be
- * written to the <socket>. If you want to send the entire file,
- * let <bytes_to_write> = 0. <bytes_per_send> is the size of each
- * block of data sent per send operation. Please read the Win32
- * documentation on what the flags should be.
- */
- int transmit_file (ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- int priority,
- int signal_number = 0);
-
- /// Destructor.
- ~ACE_WIN32_Asynch_Transmit_File (void);
-
- // Methods belong to ACE_WIN32_Asynch_Operation base class. These
- // methods are defined here to avoid VC++ warnings. They route the
- // call to the ACE_WIN32_Asynch_Operation base class.
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor);
-
- /**
- * This cancels all pending accepts operations that were issued by
- * the calling thread. The function does not cancel asynchronous
- * operations issued by other threads.
- */
- int cancel (void);
-
- /// Return the underlying proactor.
- ACE_Proactor* proactor (void) const;
-};
-
-/**
- * @class ACE_WIN32_Asynch_Read_Dgram_Result
- *
- * @brief This class provides concrete implementation for
- * ACE_Asynch_Read_Dgram::Result class.
- */
-class ACE_Export ACE_WIN32_Asynch_Read_Dgram_Result : public virtual ACE_Asynch_Read_Dgram_Result_Impl,
- public ACE_WIN32_Asynch_Result
-{
- /// Factory class will have special permissions.
- friend class ACE_WIN32_Asynch_Read_Dgram;
-
- /// Proactor class has special permission.
- friend class ACE_WIN32_Proactor;
-
-public:
- /// The number of bytes which were requested at the start of the
- /// asynchronous read.
- size_t bytes_to_read (void) const;
-
- /// Message block which contains the read data
- ACE_Message_Block *message_block (void) const;
-
- /// The address of where the packet came from
- int remote_address (ACE_Addr& addr) const;
-
- sockaddr *saddr () const;
-
- /// The flags used in the read
- int flags (void) const;
-
- /// I/O handle used for reading.
- ACE_HANDLE handle (void) const;
-
- // Base class operations. These operations are here to kill
- // dominance warnings. These methods call the base class methods.
-
- /// Number of bytes transferred by the operation.
- size_t bytes_transferred (void) const;
-
- /// ACT associated with the operation.
- const void *act (void) const;
-
- /// Did the operation succeed?
- int success (void) const;
-
- /**
- * This returns the ACT associated with the handle when it was
- * registered with the I/O completion port. This ACT is not the
- * same as the ACT associated with the asynchronous operation.
- */
- const void *completion_key (void) const;
-
- /// Error value if the operation fail.
- u_long error (void) const;
-
- /// Event associated with the OVERLAPPED structure.
- ACE_HANDLE event (void) const;
-
- /// This really make sense only when doing file I/O.
- u_long offset (void) const;
-
- /// Offset_high associated with the OVERLAPPED structure.
- u_long offset_high (void) const;
-
- /// The priority of the asynchronous operation. Currently, this is
- /// not supported on Win32.
- int priority (void) const;
-
- /// No-op. Returns 0.
- int signal_number (void) const;
-
- /// Post <this> to the Proactor's completion port.
- int post_completion (ACE_Proactor_Impl *proactor);
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Read_Dgram factory.
- ACE_WIN32_Asynch_Read_Dgram_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_read,
- int flags,
- int protocol_family,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
- /// Proactor will call this method when the read completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Read_Dgram_Result (void);
-
- /// Bytes requested when the asynchronous read was initiated.
- size_t bytes_to_read_;
-
- /// Message block for reading the data into.
- ACE_Message_Block *message_block_;
-
- /// The address of where the packet came from
- ACE_Addr *remote_address_;
-
- int addr_len_;
-
- /// The flags used in the read
- int flags_;
-
- /// I/O handle used for reading.
- ACE_HANDLE handle_;
-};
-
-/**
- * @class ACE_WIN32_Asynch_Read_Dgram
- *
- * @brief This class is a factory for starting off asynchronous reads
- * on a UDP socket.
- *
- * Once <open> is called, multiple asynchronous <read>s can be
- * started using this class. An ACE_Asynch_Read_Dgram::Result
- * will be passed back to the <handler> when the asynchronous
- * reads completes through the <ACE_Handler::handle_read_stream>
- * callback.
- *
- */
-class ACE_Export ACE_WIN32_Asynch_Read_Dgram : public virtual ACE_Asynch_Read_Dgram_Impl,
- public ACE_WIN32_Asynch_Operation
-{
-public:
- /// Constructor.
- ACE_WIN32_Asynch_Read_Dgram (ACE_WIN32_Proactor *win32_proactor);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Read_Dgram (void);
-
- /** This starts off an asynchronous read. Upto
- * <message_block->total_size()> will be read and stored in the
- * <message_block>. <message_block>'s <wr_ptr> will be updated to reflect
- * the added bytes if the read operation is successfully completed.
- * Return code of 1 means immediate success and <number_of_bytes_recvd>
- * will contain number of bytes read. The <ACE_Handler::handle_read_dgram>
- * method will still be called. Return code of 0 means the IO will
- * complete proactively. Return code of -1 means there was an error, use
- * errno to get the error code.
- *
- * Scatter/gather is supported on WIN32 by using the <message_block->cont()>
- * method. Up to ACE_IOV_MAX <message_block>'s are supported. Upto
- * <message_block->size()> bytes will be read into each <message block> for
- * a total of <message_block->total_size()> bytes. All <message_block>'s
- * <wr_ptr>'s will be updated to reflect the added bytes for each
- * <message_block>
- */
- virtual ssize_t recv (ACE_Message_Block *message_block,
- size_t &number_of_bytes_recvd,
- int flags,
- int protocol_family,
- const void *act,
- int priority,
- int signal_number);
-
- // Methods belong to ACE_WIN32_Asynch_Operation base class. These
- // methods are defined here to avoid VC++ warnings. They route the
- // call to the ACE_WIN32_Asynch_Operation base class.
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor);
-
- /**
- * This cancels all pending accepts operations that were issued by
- * the calling thread. The function does not cancel asynchronous
- * operations issued by other threads.
- */
- int cancel (void);
-
- /// Return the underlying proactor.
- ACE_Proactor* proactor (void) const;
-
-protected:
- /// Do-nothing constructor.
- ACE_WIN32_Asynch_Read_Dgram (void);
-};
-
-/**
- * @class ACE_WIN32_Asynch_Write_Dgram_Result
- *
- * @brief This class provides concrete implementation for
- * ACE_Asynch_Write_Dgram::Result class.
- */
-class ACE_Export ACE_WIN32_Asynch_Write_Dgram_Result : public virtual ACE_Asynch_Write_Dgram_Result_Impl,
- public ACE_WIN32_Asynch_Result
-{
- /// Factory class willl have special permissions.
- friend class ACE_WIN32_Asynch_Write_Dgram;
-
- /// Proactor class has special permission.
- friend class ACE_WIN32_Proactor;
-
-public:
- /// The number of bytes which were requested at the start of the
- /// asynchronous write.
- size_t bytes_to_write (void) const;
-
- /// Message block which contains the sent data
- ACE_Message_Block *message_block (void) const;
-
- /// The flags using in the write
- int flags (void) const;
-
- /// I/O handle used for writing.
- ACE_HANDLE handle (void) const;
-
- // = Base class operations. These operations are here to kill some
- // warnings. These methods call the base class methods.
-
- /// Number of bytes transferred by the operation.
- size_t bytes_transferred (void) const;
-
- /// ACT associated with the operation.
- const void *act (void) const;
-
- /// Did the operation succeed?
- int success (void) const;
-
- /**
- * This returns the ACT associated with the handle when it was
- * registered with the I/O completion port. This ACT is not the
- * same as the ACT associated with the asynchronous operation.
- */
- const void *completion_key (void) const;
-
- /// Error value if the operation fail.
- u_long error (void) const;
-
- /// Event associated with the OVERLAPPED structure.
- ACE_HANDLE event (void) const;
-
- /// This really make sense only when doing file I/O.
- u_long offset (void) const;
-
- /// Offset_high associated with the OVERLAPPED structure.
- u_long offset_high (void) const;
-
- /// The priority of the asynchronous operation. Currently, this is
- /// not supported on Win32.
- int priority (void) const;
-
- /// No-op. Returns 0.
- int signal_number (void) const;
-
- /// Post <this> to the Proactor's completion port.
- int post_completion (ACE_Proactor_Impl *proactor);
-
-protected:
- /// Constructor is protected since creation is limited to
- /// ACE_Asynch_Write_Stream factory.
- ACE_WIN32_Asynch_Write_Dgram_Result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_write,
- int flags,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
- /// ACE_Proactor will call this method when the write completes.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Write_Dgram_Result (void);
-
- /// The number of bytes which were requested at the start of the
- /// asynchronous write.
- size_t bytes_to_write_;
-
- /// Message block used for the send.
- ACE_Message_Block *message_block_;
-
- /// The flags using in the write
- int flags_;
-
- /// I/O handle used for writing.
- ACE_HANDLE handle_;
-};
-
-/**
- * @class ACE_WIN32_Asynch_Write_Dgram
- *
- * @brief This class is a factory for starting off asynchronous writes
- * on a UDP socket.
- *
- *
- * Once <open> is called, multiple asynchronous <writes>s can
- * started using this class. A ACE_Asynch_Write_Stream::Result
- * will be passed back to the <handler> when the asynchronous
- * write completes through the
- * <ACE_Handler::handle_write_stream> callback.
- */
-class ACE_Export ACE_WIN32_Asynch_Write_Dgram : public virtual ACE_Asynch_Write_Dgram_Impl,
- public ACE_WIN32_Asynch_Operation
-{
-public:
- /// Constructor.
- ACE_WIN32_Asynch_Write_Dgram (ACE_WIN32_Proactor *win32_proactor);
-
- /// Destructor.
- virtual ~ACE_WIN32_Asynch_Write_Dgram (void);
-
- /** This starts off an asynchronous send. Upto
- * <message_block->total_length()> will be sent. <message_block>'s
- * <rd_ptr> will be updated to reflect the sent bytes if the send operation
- * is successfully completed.
- * Return code of 1 means immediate success and <number_of_bytes_sent>
- * is updated to number of bytes sent. The <ACE_Handler::handle_write_dgram>
- * method will still be called. Return code of 0 means the IO will
- * complete proactively. Return code of -1 means there was an error, use
- * errno to get the error code.
- *
- * Scatter/gather is supported on WIN32 by using the <message_block->cont()>
- * method. Up to ACE_IOV_MAX <message_block>'s are supported. Upto
- * <message_block->length()> bytes will be sent from each <message block>
- * for a total of <message_block->total_length()> bytes. All
- * <message_block>'s <rd_ptr>'s will be updated to reflect the bytes sent
- * from each <message_block>.
- */
- virtual ssize_t send (ACE_Message_Block *message_block,
- size_t &number_of_bytes_sent,
- int flags,
- const ACE_Addr &addr,
- const void *act,
- int priority,
- int signal_number);
-
- // = Methods belonging to <ACE_WIN32_Asynch_Operation> base class.
-
- // These methods are defined here to avoid VC++ warnings. They route
- // the call to the <ACE_WIN32_Asynch_Operation> base class.
-
- /**
- * Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the <handler> to get the
- * correct handle.
- */
- int open (ACE_Handler &handler,
- ACE_HANDLE handle,
- const void *completion_key,
- ACE_Proactor *proactor);
-
- /**
- * This cancels all pending accepts operations that were issued by
- * the calling thread. The function does not cancel asynchronous
- * operations issued by other threads.
- */
- int cancel (void);
-
- /// Return the underlying proactor.
- ACE_Proactor* proactor (void) const;
-
-protected:
- /// Do-nothing constructor.
- ACE_WIN32_Asynch_Write_Dgram (void);
-};
-
-#endif /* ACE_WIN32 && !ACE_HAS_WINCE */
-#include "ace/post.h"
-#endif /* ACE_WIN32_ASYNCH_IO_H */
diff --git a/ace/WIN32_Proactor.cpp b/ace/WIN32_Proactor.cpp
deleted file mode 100644
index dfbbe4fd025..00000000000
--- a/ace/WIN32_Proactor.cpp
+++ /dev/null
@@ -1,803 +0,0 @@
-// $Id$
-
-// ACE_RCSID(ace, Proactor, "$Id$")
-
-#include "ace/WIN32_Proactor.h"
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
-// WIN implemenatation of the Proactor.
-
-#include "ace/Log_Msg.h"
-#include "ace/Object_Manager.h"
-
-/**
- * @class ACE_WIN32_Wakeup_Completion
- *
- * This is result object is used by the <end_event_loop> of the
- * ACE_Proactor interface to wake up all the threads blocking
- * for completions.
- */
-class ACE_Export ACE_WIN32_Wakeup_Completion : public ACE_WIN32_Asynch_Result
-{
-
-public:
- /// Constructor.
- ACE_WIN32_Wakeup_Completion (ACE_Handler &handler,
- const void *act = 0,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = ACE_SIGRTMIN);
-
- /// Destructor.
- virtual ~ACE_WIN32_Wakeup_Completion (void);
-
- /// This method calls the <handler>'s <handle_wakeup> method.
- virtual void complete (size_t bytes_transferred = 0,
- int success = 1,
- const void *completion_key = 0,
- u_long error = 0);
-};
-
-ACE_WIN32_Proactor::ACE_WIN32_Proactor (size_t number_of_threads,
- int used_with_reactor_event_loop)
- : completion_port_ (0),
- // This *MUST* be 0, *NOT* ACE_INVALID_HANDLE !!!
- number_of_threads_ (ACE_static_cast (DWORD, number_of_threads)),
- used_with_reactor_event_loop_ (used_with_reactor_event_loop)
-{
- // Create the completion port.
- this->completion_port_ = ::CreateIoCompletionPort (INVALID_HANDLE_VALUE,
- 0,
- 0,
- this->number_of_threads_);
- if (this->completion_port_ == 0)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("CreateIoCompletionPort")));
-
- this->get_asynch_pseudo_task ().start ();
-}
-
-ACE_WIN32_Proactor::~ACE_WIN32_Proactor (void)
-{
- this->get_asynch_pseudo_task ().stop ();
-
- this->close ();
-}
-
-ACE_Asynch_Pseudo_Task &
-ACE_WIN32_Proactor::get_asynch_pseudo_task ()
-{
- return this->pseudo_task_;
-}
-
-int
-ACE_WIN32_Proactor::close (void)
-{
- // Close the completion port
- if (this->completion_port_ != 0)
- {
- // To avoid memory leaks we should delete all results from queue.
-
- for (;;)
- {
- ACE_OVERLAPPED *overlapped = 0;
- u_long bytes_transferred = 0;
-#if defined (ACE_WIN64)
- ULONG_PTR completion_key = 0;
-#else
- ULONG completion_key = 0;
-#endif /* ACE_WIN64 */
-
- // Get the next asynchronous operation that completes
- BOOL res = ::GetQueuedCompletionStatus
- (this->completion_port_,
- &bytes_transferred,
- &completion_key,
- &overlapped,
- 0); // poll
-
- if (overlapped == 0 || res == FALSE)
- break;
-
- ACE_WIN32_Asynch_Result *asynch_result =
- (ACE_WIN32_Asynch_Result *) overlapped;
-
- delete asynch_result;
- }
-
- int result = ACE_OS::close (this->completion_port_);
- this->completion_port_ = 0;
- return result;
- }
-
- return 0;
-}
-
-int
-ACE_WIN32_Proactor::register_handle (ACE_HANDLE handle,
- const void *completion_key)
-{
-#if defined (ACE_WIN64)
- ULONG_PTR comp_key (ACE_static_cast (ULONG_PTR, completion_key));
-#else
- ULONG comp_key (ACE_reinterpret_cast (ULONG, completion_key));
-#endif /* ACE_WIN64 */
-
- // No locking is needed here as no state changes.
- ACE_HANDLE cp = ::CreateIoCompletionPort (handle,
- this->completion_port_,
- comp_key,
- this->number_of_threads_);
- if (cp == 0)
- {
- ACE_OS::set_errno_to_last_error ();
- // If errno == ERROR_INVALID_PARAMETER, then this handle was
- // already registered.
- if (errno != ERROR_INVALID_PARAMETER)
- {
- if (ACE::debug ())
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("CreateIoCompletionPort")));
- }
- return -1;
- }
- }
- return 0;
-}
-
-ACE_Asynch_Read_Stream_Impl *
-ACE_WIN32_Proactor::create_asynch_read_stream (void)
-{
- ACE_Asynch_Read_Stream_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Read_Stream (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Write_Stream_Impl *
-ACE_WIN32_Proactor::create_asynch_write_stream (void)
-{
- ACE_Asynch_Write_Stream_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Write_Stream (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Read_Dgram_Impl *
-ACE_WIN32_Proactor::create_asynch_read_dgram (void)
-{
- ACE_Asynch_Read_Dgram_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Read_Dgram (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Write_Dgram_Impl *
-ACE_WIN32_Proactor::create_asynch_write_dgram (void)
-{
- ACE_Asynch_Write_Dgram_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Write_Dgram (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Read_File_Impl *
-ACE_WIN32_Proactor::create_asynch_read_file (void)
-{
- ACE_Asynch_Read_File_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Read_File (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Write_File_Impl *
-ACE_WIN32_Proactor::create_asynch_write_file (void)
-{
- ACE_Asynch_Write_File_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Write_File (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Accept_Impl *
-ACE_WIN32_Proactor::create_asynch_accept (void)
-{
- ACE_Asynch_Accept_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Accept (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Connect_Impl *
-ACE_WIN32_Proactor::create_asynch_connect (void)
-{
- ACE_Asynch_Connect_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Connect (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Transmit_File_Impl *
-ACE_WIN32_Proactor::create_asynch_transmit_file (void)
-{
- ACE_Asynch_Transmit_File_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Transmit_File (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Read_Stream_Result_Impl *
-ACE_WIN32_Proactor::create_asynch_read_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Read_Stream_Result_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Read_Stream_Result (handler,
- handle,
- message_block,
- bytes_to_read,
- act,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Write_Stream_Result_Impl *
-ACE_WIN32_Proactor::create_asynch_write_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Write_Stream_Result_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Write_Stream_Result (handler,
- handle,
- message_block,
- bytes_to_write,
- act,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Read_File_Result_Impl *
-ACE_WIN32_Proactor::create_asynch_read_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Read_File_Result_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Read_File_Result (handler,
- handle,
- message_block,
- bytes_to_read,
- act,
- offset,
- offset_high,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Write_File_Result_Impl *
-ACE_WIN32_Proactor::create_asynch_write_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Write_File_Result_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Write_File_Result (handler,
- handle,
- message_block,
- bytes_to_write,
- act,
- offset,
- offset_high,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Read_Dgram_Result_Impl *
-ACE_WIN32_Proactor::create_asynch_read_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_read,
- int flags,
- int protocol_family,
- const void* act,
- ACE_HANDLE event ,
- int priority ,
- int signal_number)
-{
- ACE_Asynch_Read_Dgram_Result_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Read_Dgram_Result (handler,
- handle,
- message_block,
- bytes_to_read,
- flags,
- protocol_family,
- act,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Write_Dgram_Result_Impl *
-ACE_WIN32_Proactor::create_asynch_write_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_read,
- int flags,
- const void* act,
- ACE_HANDLE event ,
- int priority ,
- int signal_number)
-{
- ACE_Asynch_Write_Dgram_Result_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Write_Dgram_Result(handler,
- handle,
- message_block,
- bytes_to_read,
- flags,
- act,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Accept_Result_Impl *
-ACE_WIN32_Proactor::create_asynch_accept_result (ACE_Handler &handler,
- ACE_HANDLE listen_handle,
- ACE_HANDLE accept_handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Accept_Result_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Accept_Result (handler,
- listen_handle,
- accept_handle,
- message_block,
- bytes_to_read,
- act,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Connect_Result_Impl *
-ACE_WIN32_Proactor::create_asynch_connect_result (ACE_Handler & handler,
- ACE_HANDLE connect_handle,
- const void *act,
- ACE_HANDLE event,
- int priority ,
- int signal_number)
-{
- ACE_Asynch_Connect_Result_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Connect_Result (handler,
- connect_handle,
- act,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Transmit_File_Result_Impl *
-ACE_WIN32_Proactor::create_asynch_transmit_file_result (ACE_Handler &handler,
- ACE_HANDLE socket,
- ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Transmit_File_Result_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Transmit_File_Result (handler,
- socket,
- file,
- header_and_trailer,
- bytes_to_write,
- offset,
- offset_high,
- bytes_per_send,
- flags,
- act,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Result_Impl *
-ACE_WIN32_Proactor::create_asynch_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &tv,
- ACE_HANDLE event,
- int priority,
- int signal_number)
-{
- ACE_Asynch_Result_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_WIN32_Asynch_Timer (handler,
- act,
- tv,
- event,
- priority,
- signal_number),
- 0);
- return implementation;
-}
-
-int
-ACE_WIN32_Proactor::handle_signal (int, siginfo_t *, ucontext_t *)
-{
- // Perform a non-blocking "poll" for all the I/O events that have
- // completed in the I/O completion queue.
-
- int result = 0;
-
- for (ACE_Time_Value timeout (0, 0);
- ;
- )
- {
- result = this->handle_events (timeout);
-
- if (result != 1)
- break;
- }
-
- // If our handle_events failed, we'll report a failure to the
- // Reactor.
- return result == -1 ? -1 : 0;
-}
-
-int
-ACE_WIN32_Proactor::handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask close_mask)
-{
- ACE_UNUSED_ARG (close_mask);
- ACE_UNUSED_ARG (handle);
-
- return this->close ();
-}
-
-ACE_HANDLE
-ACE_WIN32_Proactor::get_handle (void) const
-{
- if (this->used_with_reactor_event_loop_)
- return this->event_.handle ();
- else
- return 0;
-}
-
-int
-ACE_WIN32_Proactor::handle_events (ACE_Time_Value &wait_time)
-{
- // Decrement <wait_time> with the amount of time spent in the method
- ACE_Countdown_Time countdown (&wait_time);
- return this->handle_events (wait_time.msec ());
-}
-
-int
-ACE_WIN32_Proactor::handle_events (void)
-{
- return this->handle_events (ACE_INFINITE);
-}
-
-int
-ACE_WIN32_Proactor::handle_events (unsigned long milli_seconds)
-{
- ACE_OVERLAPPED *overlapped = 0;
- u_long bytes_transferred = 0;
-#if defined (ACE_WIN64)
- ULONG_PTR completion_key = 0;
-#else
- ULONG completion_key = 0;
-#endif /* ACE_WIN64 */
-
- // Get the next asynchronous operation that completes
- BOOL result = ::GetQueuedCompletionStatus (this->completion_port_,
- &bytes_transferred,
- &completion_key,
- &overlapped,
- milli_seconds);
- if (result == FALSE && overlapped == 0)
- {
- ACE_OS::set_errno_to_last_error ();
-
- switch (errno)
- {
- case WAIT_TIMEOUT:
- errno = ETIME;
- return 0;
-
- case ERROR_SUCCESS:
- // Calling GetQueuedCompletionStatus with timeout value 0
- // returns FALSE with extended errno "ERROR_SUCCESS" errno =
- // ETIME; ?? I don't know if this has to be done !!
- return 0;
-
- default:
- if (ACE::debug ())
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("GetQueuedCompletionStatus")));
- return -1;
- }
- }
- else
- {
- // Narrow the result.
- ACE_WIN32_Asynch_Result *asynch_result = (ACE_WIN32_Asynch_Result *) overlapped;
-
- // If errors happen, grab the error.
- if (result == FALSE)
- ACE_OS::set_errno_to_last_error ();
- else
- errno = 0;
-
- u_long result_err = asynch_result->error ();
-
- // if "result_err" is 0 than
- // It is normal OS/WIN32 AIO completion.
- // We have cleared asynch_result->error_
- // during shared_read/shared_write.
- // The real error code is already stored in "errno",
- // so copy "errno" value to the "result_err"
- // and pass this "result_err" code
- // to the application_specific_code ()
- // else
- // "result_err" non zero
- // it means we have "post_completed" result
- // so pass this "result_err" code
- // to the application_specific_code ()
-
- if ( result_err == 0 )
- result_err = errno ;
-
- this->application_specific_code (asynch_result,
- ACE_static_cast (size_t,
- bytes_transferred),
- (void *) completion_key,
- result_err);
- }
- return 1;
-}
-
-void
-ACE_WIN32_Proactor::application_specific_code (ACE_WIN32_Asynch_Result *asynch_result,
- size_t bytes_transferred,
- const void *completion_key,
- u_long error)
-{
- ACE_SEH_TRY
- {
- // Call completion hook
- asynch_result->complete (bytes_transferred,
- error ? 0 : 1,
- (void *) completion_key,
- error);
- }
- ACE_SEH_FINALLY
- {
- // This is crucial to prevent memory leaks
- delete asynch_result;
- }
-}
-
-int
-ACE_WIN32_Proactor::post_completion (ACE_WIN32_Asynch_Result *result)
-{
- // Grab the event associated with the Proactor
- HANDLE handle = this->get_handle ();
-
- // If Proactor event is valid, signal it
- if (handle != ACE_INVALID_HANDLE &&
- handle != 0)
- ACE_OS::event_signal (&handle);
-
- // pass
- // bytes_transferred
- // completion_key
- // to the ::PostQueuedCompletionStatus()
- // error will be extracted later in handle_events()
-
- DWORD bytes_transferred = 0;
- const void * completion_key = 0 ;
-
- if ( result != 0 )
- {
- // This cast is ok since the original API calls restricted the transfer
- // counts to DWORD range.
- bytes_transferred = ACE_static_cast (DWORD,
- result->bytes_transferred ());
- completion_key = result->completion_key();
- }
-#if defined (ACE_WIN64)
- ULONG_PTR comp_key (ACE_static_cast (ULONG_PTR, completion_key));
-#else
- ULONG comp_key (ACE_reinterpret_cast (ULONG, completion_key));
-#endif /* ACE_WIN64 */
-
- // Post a completion
- if (::PostQueuedCompletionStatus (this->completion_port_, // completion port
- bytes_transferred, // xfer count
- comp_key, // completion key
- result // overlapped
- ) == FALSE)
- {
- delete result;
-
- if (ACE::debug ())
- {
- ACE_DEBUG ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("PostQueuedCompletionStatus failed")));
- }
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_WIN32_Proactor::post_wakeup_completions (int how_many)
-{
- ACE_WIN32_Wakeup_Completion *wakeup_completion = 0;
-
- for (ssize_t ci = 0; ci < how_many; ci++)
- {
- ACE_NEW_RETURN (wakeup_completion,
- ACE_WIN32_Wakeup_Completion (this->wakeup_handler_),
- -1);
-
- if (wakeup_completion->post_completion (this) == -1)
- return -1;
- }
-
- return 0;
-}
-
-int
-ACE_WIN32_Proactor::wake_up_dispatch_threads (void)
-{
- return 0;
-}
-
-int
-ACE_WIN32_Proactor::close_dispatch_threads (int)
-{
- return 0;
-}
-
-size_t
-ACE_WIN32_Proactor::number_of_threads (void) const
-{
- return ACE_static_cast (size_t, this->number_of_threads_);
-}
-
-void
-ACE_WIN32_Proactor::number_of_threads (size_t threads)
-{
- this->number_of_threads_ = ACE_static_cast (DWORD, threads);
-}
-
-ACE_WIN32_Asynch_Timer::ACE_WIN32_Asynch_Timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &tv,
- ACE_HANDLE event,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- ACE_WIN32_Asynch_Result (handler, act, event, 0, 0, priority,
- signal_number),
- time_ (tv)
-{
-}
-
-void
-ACE_WIN32_Asynch_Timer::complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error)
-{
- ACE_UNUSED_ARG (error);
- ACE_UNUSED_ARG (completion_key);
- ACE_UNUSED_ARG (success);
- ACE_UNUSED_ARG (bytes_transferred);
-
- this->handler_.handle_time_out (this->time_, this->act ());
-}
-
-ACE_WIN32_Wakeup_Completion::ACE_WIN32_Wakeup_Completion (ACE_Handler &handler,
- const void *act,
- ACE_HANDLE event,
- int priority,
- int signal_number)
- : ACE_Asynch_Result_Impl (),
- ACE_WIN32_Asynch_Result (handler, act, event, 0, 0, priority, signal_number)
-{
-}
-
-ACE_WIN32_Wakeup_Completion::~ACE_WIN32_Wakeup_Completion (void)
-{
-}
-
-void
-ACE_WIN32_Wakeup_Completion::complete (size_t /* bytes_transferred */,
- int /* success */,
- const void * /* completion_key */,
- u_long /* error */)
-{
- this->handler_.handle_wakeup ();
-}
-
-#endif /* ACE_WIN32 */
diff --git a/ace/WIN32_Proactor.h b/ace/WIN32_Proactor.h
deleted file mode 100644
index 6d83b0cc341..00000000000
--- a/ace/WIN32_Proactor.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file WIN32_Proactor.h
- *
- * $Id$
- *
- * @author Irfan Pyarali (irfan@cs.wustl.edu)
- * @author Tim Harrison (harrison@cs.wustl.edu)
- * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
- * @author Roger Tragin <r.tragin@computer.org>
- * @author Alexander Libman <alibman@ihug.com.au>
- */
-//=============================================================================
-
-#ifndef ACE_WIN32_PROACTOR_H
-#define ACE_WIN32_PROACTOR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
-// WIN32 implementation of the Proactor.
-
-#include "ace/OS.h"
-#include "ace/WIN32_Asynch_IO.h"
-#include "ace/Event_Handler.h"
-
-#include "ace/Proactor_Impl.h"
-#include "ace/Asynch_Pseudo_Task.h"
-
-// Forward declarations.
-class ACE_WIN32_Asynch_Result;
-class ACE_WIN32_Proactor_Timer_Handler;
-
-/**
- * @class ACE_WIN32_Proactor
- *
- * @brief A manager for asynchronous event demultiplexing on Win32.
- *
- * See the Proactor pattern description at
- * http://www.cs.wustl.edu/~schmidt/PDF/proactor.pdf for more
- * details.
- */
-class ACE_Export ACE_WIN32_Proactor : public ACE_Proactor_Impl
-{
- friend class ACE_WIN32_Asynch_Connect;
-
-public:
- /// A do nothing constructor.
- ACE_WIN32_Proactor (size_t number_of_threads = 0,
- int used_with_reactor_event_loop = 0);
-
- /// Virtual destruction.
- virtual ~ACE_WIN32_Proactor (void);
-
- /// Close the IO completion port.
- virtual int close (void);
-
- /// This method adds the <handle> to the I/O completion port. This
- /// function is a no-op function for Unix systems.
- virtual int register_handle (ACE_HANDLE handle,
- const void *completion_key);
-
- /**
- * Dispatch a single set of events. If <wait_time> elapses before
- * any events occur, return 0. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (ACE_Time_Value &wait_time);
-
- /**
- * Block indefinitely until at least one event is dispatched.
- * Dispatch a single set of events. If <wait_time> elapses before
- * any events occur, return 0. Return 1 on success i.e., when a
- * completion is dispatched, non-zero (-1) on errors and errno is
- * set accordingly.
- */
- virtual int handle_events (void);
-
- /**
- * Post a result to the completion port of the Proactor. If errors
- * occur, the result will be deleted by this method. If successful,
- * the result will be deleted by the Proactor when the result is
- * removed from the completion port. Therefore, the result should
- * have been dynamically allocated and should be orphaned by the
- * user once this method is called.
- */
- virtual int post_completion (ACE_WIN32_Asynch_Result *result);
-
- /// Add wakeup dispatch threads (reinit).
- int wake_up_dispatch_threads (void);
-
- /// Close all dispatch threads.
- int close_dispatch_threads (int wait);
-
- /// Get number of thread used as a parameter to CreatIoCompletionPort.
- size_t number_of_threads (void) const;
-
- /// Set number of thread used as a parameter to CreatIoCompletionPort.
- void number_of_threads (size_t threads);
-
- /// Get the event handle.
- virtual ACE_HANDLE get_handle (void) const;
-
- virtual ACE_Asynch_Read_Stream_Impl *create_asynch_read_stream (void);
- virtual ACE_Asynch_Write_Stream_Impl *create_asynch_write_stream (void);
- virtual ACE_Asynch_Read_File_Impl *create_asynch_read_file (void);
- virtual ACE_Asynch_Write_File_Impl *create_asynch_write_file (void);
- virtual ACE_Asynch_Read_Dgram_Impl *create_asynch_read_dgram (void);
- virtual ACE_Asynch_Write_Dgram_Impl *create_asynch_write_dgram (void);
- virtual ACE_Asynch_Accept_Impl *create_asynch_accept (void);
- virtual ACE_Asynch_Connect_Impl *create_asynch_connect (void);
- virtual ACE_Asynch_Transmit_File_Impl *create_asynch_transmit_file (void);
-
- // Methods used to create Asynch_IO_Result objects. We create the right
- // objects here in these methods.
-
- virtual ACE_Asynch_Read_Stream_Result_Impl *create_asynch_read_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
- virtual ACE_Asynch_Write_Stream_Result_Impl *create_asynch_write_stream_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
- virtual ACE_Asynch_Read_File_Result_Impl *create_asynch_read_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
- virtual ACE_Asynch_Write_File_Result_Impl *create_asynch_write_file_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_write,
- const void* act,
- u_long offset,
- u_long offset_high,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
- /// Create the correct implementation class for ACE_Asynch_Read_Dgram::Result.
- virtual ACE_Asynch_Read_Dgram_Result_Impl *create_asynch_read_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_read,
- int flags,
- int protocol_family,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
- /// Create the correct implementation class for ACE_Asynch_Write_Dgram::Result.
- virtual ACE_Asynch_Write_Dgram_Result_Impl *create_asynch_write_dgram_result (ACE_Handler &handler,
- ACE_HANDLE handle,
- ACE_Message_Block *message_block,
- size_t bytes_to_write,
- int flags,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
- virtual ACE_Asynch_Accept_Result_Impl *create_asynch_accept_result (ACE_Handler &handler,
- ACE_HANDLE listen_handle,
- ACE_HANDLE accept_handle,
- ACE_Message_Block &message_block,
- size_t bytes_to_read,
- const void* act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
- virtual ACE_Asynch_Connect_Result_Impl *create_asynch_connect_result (ACE_Handler & handler,
- ACE_HANDLE connect_handle,
- const void *act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
-
- virtual ACE_Asynch_Transmit_File_Result_Impl *create_asynch_transmit_file_result (ACE_Handler &handler,
- ACE_HANDLE socket,
- ACE_HANDLE file,
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
- size_t bytes_to_write,
- u_long offset,
- u_long offset_high,
- size_t bytes_per_send,
- u_long flags,
- const void *act,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
- /// Create a timer result object which can be used with the Timer
- /// mechanism of the Proactor.
- virtual ACE_Asynch_Result_Impl *create_asynch_timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &tv,
- ACE_HANDLE event,
- int priority,
- int signal_number = 0);
-
-protected:
- /// Task to process pseudo-asynchronous operations
- ACE_Asynch_Pseudo_Task & get_asynch_pseudo_task (void);
-
- /// Called when object is signaled by OS (either via UNIX signals or
- /// when a Win32 object becomes signaled).
- virtual int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0);
-
- /// Called when object is removed from the ACE_Reactor.
- virtual int handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask close_mask);
-
- /**
- * Dispatch a single set of events. If <milli_seconds> elapses
- * before any events occur, return 0. Return 1 if a completion is
- * dispatched. Return -1 on errors.
- */
- virtual int handle_events (unsigned long milli_seconds);
-
- /// Protect against structured exceptions caused by user code when
- /// dispatching handles.
- void application_specific_code (ACE_WIN32_Asynch_Result *asynch_result,
- size_t bytes_transferred,
- const void *completion_key,
- u_long error);
-
- /**
- * Post <how_many> completions to the completion port so that all
- * threads can wake up. This is used in conjunction with the
- * <run_event_loop>.
- */
- virtual int post_wakeup_completions (int how_many);
-
- /// Handle for the completion port. Unix doesnt have completion
- /// ports.
- ACE_HANDLE completion_port_;
-
- /// This number is passed to the <CreatIOCompletionPort> system
- /// call.
- DWORD number_of_threads_;
-
- /// This event is used in conjunction with Reactor when we try to
- /// integrate the event loops of Reactor and the Proactor.
- ACE_Auto_Event event_;
-
- /// Flag that indicates whether we are used in conjunction with
- /// Reactor.
- int used_with_reactor_event_loop_;
-
- /// Handler to handle the wakeups. This works in conjunction with the
- /// <ACE_Proactor::run_event_loop>.
- ACE_Handler wakeup_handler_;
-
- /// Pseudo-task for asynch connect ( NT/2000)
- /// In future should removed in XP with ConnectEx support
- ACE_Asynch_Pseudo_Task pseudo_task_;
-};
-
-/**
- * @class ACE_WIN32_Asynch_Timer
- *
- * @brief This class is posted to the completion port when a timer
- * expires. When the complete method of this object is
- * called, the <handler>'s handle_timeout method will be
- * called.
- */
-class ACE_Export ACE_WIN32_Asynch_Timer : public ACE_WIN32_Asynch_Result
-{
-
- /// The factory method for this class is with the POSIX_Proactor
- /// class.
- friend class ACE_WIN32_Proactor;
-
-protected:
- /// Constructor.
- ACE_WIN32_Asynch_Timer (ACE_Handler &handler,
- const void *act,
- const ACE_Time_Value &tv,
- ACE_HANDLE event = ACE_INVALID_HANDLE,
- int priority = 0,
- int signal_number = 0);
-
- /// This method calls the <handler>'s handle_timeout method.
- virtual void complete (size_t bytes_transferred,
- int success,
- const void *completion_key,
- u_long error = 0);
-
- /// Time value requested by caller
- ACE_Time_Value time_;
-};
-
-#endif /* ACE_WIN32 */
-#include "ace/post.h"
-#endif /* ACE_PROACTOR_H */
diff --git a/ace/XML_Svc_Conf.cpp b/ace/XML_Svc_Conf.cpp
deleted file mode 100644
index 76300b641d7..00000000000
--- a/ace/XML_Svc_Conf.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// $Id$
-
-#include "ace/XML_Svc_Conf.h"
-
-#if (ACE_USES_CLASSIC_SVC_CONF == 0)
-ACE_XML_Svc_Conf::~ACE_XML_Svc_Conf (void)
-{
-}
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 0 */
diff --git a/ace/XML_Svc_Conf.h b/ace/XML_Svc_Conf.h
deleted file mode 100644
index 0146b2eb839..00000000000
--- a/ace/XML_Svc_Conf.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file XML_Svc_Conf.h
- *
- * $Id$
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_XML_SVC_CONF_H
-#define ACE_XML_SVC_CONF_H
-
-#include "ace/pre.h"
-
-#include "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if (ACE_USES_CLASSIC_SVC_CONF==0)
-/**
- * @class ACE_XML_Svc_Conf
- *
- * @brief This abstract class defines the common operations
- * ACE_Service_Config expects when using the XML Service Config Parser.
- *
- * When implementing a concret XML_Svc_Conf class, be sure to overload
- * the new/delete function so the dynamically created concret XML_Svc_Conf
- * instance can be deleted from the original heap in the DLL/SO. The
- * concret XML_Svc_Conf implementation will be put into a DLL/SO that
- * ACE applications can link to dynamically using the ACE_DLL class.
- * This DLL should include an operation as follow:
- *
- * extern "C" ACE_XML_Svc_Conf_Parser * _ACEXML_create_XML_Svc_Conf_Object (void);
- *
- *
- */
-
-class ACE_Export ACE_XML_Svc_Conf
-{
-public:
- typedef ACE_XML_Svc_Conf *(*Factory)(void);
-
- virtual ~ACE_XML_Svc_Conf (void) = 0;
-
- virtual int parse_file (const ACE_TCHAR file[]) = 0;
-
- virtual int parse_string (const ACE_TCHAR str[]) = 0;
-};
-#endif /* ACE_USES_CLASSIC_SVC_CONF == 0 */
-
-#include "ace/post.h"
-
-#endif /* ACE_XML_SVC_CONF_H */
diff --git a/ace/XTI_ATM_Mcast.cpp b/ace/XTI_ATM_Mcast.cpp
deleted file mode 100644
index 0892672635e..00000000000
--- a/ace/XTI_ATM_Mcast.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-// XTI_ATM_Mcast.cpp
-// $Id$
-
-#include "ace/XTI_ATM_Mcast.h"
-
-ACE_RCSID(ace, XTI_ATM_Mcast, "$Id$")
-
-#if defined (ACE_HAS_XTI_ATM)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/XTI_ATM_Mcast.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_XTI_ATM_Mcast)
-
-void
-ACE_XTI_ATM_Mcast::dump (void) const
-{
- ACE_TRACE ("ACE_XTI_ATM_Mcast::dump");
-}
-
-ACE_XTI_ATM_Mcast::ACE_XTI_ATM_Mcast (void)
-{
- ACE_TRACE ("ACE_XTI_ATM_Mcast::ACE_XTI_ATM_Mcast");
-}
-
-// Add a leaf to the current connection (i.e., multicast).
-
-int
-ACE_XTI_ATM_Mcast::add_leaf (ACE_TLI_Stream &current_stream,
- const ACE_Addr &remote_sap,
- ACE_INT32 leaf_id,
- ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_XTI_ATM_Mcast::add_leaf");
-
- struct netbuf call_req;
- memset(&call_req, 0, sizeof(call_req));
- call_req.len = remote_sap.get_size ();
- call_req.buf = (char *)remote_sap.get_addr ();
-
- if (::t_addleaf(current_stream.get_handle(),
- leaf_id,
- &call_req) < 0)
- {
- // Check for asynchronous event
- if (t_errno == TLOOK)
- {
- int event;
- event = ACE_OS::t_look(current_stream.get_handle());
- if (event != TNODATA && event != T_DATA)
- return -1;
- else
- // If this doesn't work for asynchronous calls we need to call
- // the XTI/ATM t_rcvleafchange() function to check for t_addleaf
- // completion.
- return complete (current_stream, 0, timeout);
- }
- else
- return -1;
- }
-
- return 0;
-}
-
-#endif /* ACE_HAS_XTI_ATM */
diff --git a/ace/XTI_ATM_Mcast.h b/ace/XTI_ATM_Mcast.h
deleted file mode 100644
index 5c3e8821f81..00000000000
--- a/ace/XTI_ATM_Mcast.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file XTI_ATM_Mcast.h
- *
- * $Id$
- *
- * @author Joe Hoffert
- */
-//=============================================================================
-
-
-#ifndef ACE_XTI_ATM_MCAST_H
-#define ACE_XTI_ATM_MCAST_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_XTI_ATM)
-
-#include "ace/TLI_Connector.h"
-#include "ace/ATM_Addr.h"
-
-/**
- * @class ACE_XTI_ATM_Mcast
- *
- * @brief Defines an active connection factory for the ACE_TLI C++
- * wrappers to support XTI/ATM multicast.
- */
-class ACE_Export ACE_XTI_ATM_Mcast : public ACE_TLI_Connector
-{
-public:
- // = Initialization methods.
- /// Default constructor.
- ACE_XTI_ATM_Mcast (void);
-
- /**
- * Actively connect and produce a <new_stream> if things go well.
- * The <remote_sap> is the address that we are trying to connect
- * with. The <timeout> is the amount of time to wait to connect.
- * If it's 0 then we block indefinitely. If *timeout == {0, 0} then
- * the connection is done using non-blocking mode. In this case, if
- * the connection can't be made immediately the value of -1 is
- * returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then
- * this is the amount of time to wait before timing out. If the
- * time expires before the connection is made <errno == ETIME>. The
- * <local_sap> is the value of local address to bind to. If it's
- * the default value of <ACE_Addr::sap_any> then the user is letting
- * the OS do the binding. If <reuse_addr> == 1 then the
- * <local_addr> is reused, even if it hasn't been cleanedup yet.
- */
- ACE_XTI_ATM_Mcast (ACE_TLI_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = O_RDWR,
- int perms = 0,
- const char device[] = ACE_XTI_ATM_DEVICE,
- struct t_info *info = 0,
- int rw_flag = 1,
- struct netbuf *udata = 0,
- struct netbuf *opt = 0);
-
- /**
- * Actively connect and produce a <new_stream> if things go well.
- * The <remote_sap> is the address that we are trying to connect
- * with. The <timeout> is the amount of time to wait to connect.
- * If it's 0 then we block indefinitely. If *timeout == {0, 0} then
- * the connection is done using non-blocking mode. In this case, if
- * the connection can't be made immediately the value of -1 is
- * returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then
- * this is the amount of time to wait before timing out. If the
- * time expires before the connection is made <errno == ETIME>. The
- * <local_sap> is the value of local address to bind to. If it's
- * the default value of <ACE_Addr::sap_any> then the user is letting
- * the OS do the binding. If <reuse_addr> == 1 then the
- * <local_addr> is reused, even if it hasn't been cleanedup yet.
- */
- int connect (ACE_TLI_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = O_RDWR,
- int perms = 0,
- const char device[] = ACE_XTI_ATM_DEVICE,
- struct t_info *info = 0,
- int rw_flag = 1,
- struct netbuf *udata = 0,
- struct netbuf *opt = 0);
-
- /**
- * Actively add a leaf to the currently connected stream (i.e.,
- * multicast). The <remote_sap> is the address of the leaf that we
- * are trying to add. The <timeout> is the amount of time to wait to
- * connect. If it's 0 then we block indefinitely. If *timeout ==
- * {0, 0} then the connection is done using non-blocking mode. In
- * this case, if the connection can't be made immediately the value
- * of -1 is returned with <errno == EWOULDBLOCK>. If *timeout >
- * {0, 0} then this is the amount of time to wait before timing out.
- * If the time expires before the connection is made <errno == ETIME>.
- */
- int add_leaf (ACE_TLI_Stream &current_stream,
- const ACE_Addr &remote_sap,
- ACE_INT32 leaf_id,
- ACE_Time_Value *timeout = 0);
-
- // = Meta-type info
- typedef ACE_ATM_Addr PEER_ADDR;
- typedef ACE_TLI_Stream PEER_STREAM;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/XTI_ATM_Mcast.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_XTI_ATM */
-#include "ace/post.h"
-#endif /* ACE_XTI_ATM_MCAST_H */
diff --git a/ace/XTI_ATM_Mcast.i b/ace/XTI_ATM_Mcast.i
deleted file mode 100644
index 895f37f30ff..00000000000
--- a/ace/XTI_ATM_Mcast.i
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// XTI_ATM_Mcast.i
-
-ACE_INLINE
-ACE_XTI_ATM_Mcast::ACE_XTI_ATM_Mcast (ACE_TLI_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms,
- const char device[],
- struct t_info *info,
- int rw_flag,
- struct netbuf *udata,
- struct netbuf *opt)
-{
- ACE_TRACE ("ACE_XTI_ATM_Mcast::ACE_XTI_ATM_Mcast");
- if (this->connect (new_stream, remote_sap, timeout, local_sap, reuse_addr,
- flags, perms, device,
- info, rw_flag,
- udata, opt) == ACE_INVALID_HANDLE
- && timeout != 0 && !(errno == EWOULDBLOCK || errno == ETIME))
- ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), ACE_LIB_TEXT ("ACE_TLI_Stream::ACE_TLI_Stream")));
-}
-
-// Connect the <new_stream> to the <remote_sap>, waiting up to
-// <timeout> amount of time if necessary. This is simple a pass-
-// through function to ACE_TLI_Connector::connect(). It is over-
-// ridden to change the default device from TCP to XTI/ATM.
-
-ACE_INLINE
-int
-ACE_XTI_ATM_Mcast::connect (ACE_TLI_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms,
- const char device[],
- struct t_info *info,
- int rw_flag,
- struct netbuf *udata,
- struct netbuf *opt)
-{
- ACE_TRACE ("ACE_XTI_ATM_Mcast::connect");
- return ACE_TLI_Connector::connect(new_stream,
- remote_sap,
- timeout,
- local_sap,
- reuse_addr,
- flags,
- perms,
- device,
- info,
- rw_flag,
- udata,
- opt);
-}
diff --git a/ace/XtReactor.cpp b/ace/XtReactor.cpp
deleted file mode 100644
index 5a38e73ce34..00000000000
--- a/ace/XtReactor.cpp
+++ /dev/null
@@ -1,450 +0,0 @@
-// $Id$
-
-#include "ace/XtReactor.h"
-#if defined (ACE_HAS_XT)
-
-#include "ace/Synch_T.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SOCK_Connector.h"
-
-ACE_RCSID(ace, XtReactor, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE (ACE_XtReactor)
-
-// Must be called with lock held
-ACE_XtReactor::ACE_XtReactor (XtAppContext context,
- size_t size,
- int restart,
- ACE_Sig_Handler *h)
- : ACE_Select_Reactor (size, restart, h),
- context_ (context),
- ids_ (0),
- timeout_ (0)
-{
- // When the ACE_Select_Reactor is constructed it creates the notify
- // pipe and registers it with the register_handler_i() method. The
- // XtReactor overloads this method BUT because the
- // register_handler_i occurs when constructing the base class
- // ACE_Select_Reactor, the ACE_Select_Reactor register_handler_i()
- // is called not the XtReactor register_handler_i(). This means
- // that the notify pipe is registered with the ACE_Select_Reactor
- // event handling code not the XtReactor and so notfications don't
- // work. To get around this we simply close and re-opened the
- // notification handler in the constructor of the XtReactor.
-
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- this->notify_handler_->close ();
- this->notify_handler_->open (this, 0);
-#endif /* ACE_MT_SAFE */
-}
-
-ACE_XtReactor::~ACE_XtReactor (void)
-{
- // Delete the remaining items in the linked list.
-
- while (this->ids_)
- {
- ACE_XtReactorID *XtID = this->ids_->next_;
- delete this->ids_;
- this->ids_ = XtID;
- }
-}
-
-// This is just the <wait_for_multiple_events> from ace/Reactor.cpp
-// but we use the Xt functions to wait for an event, not <select>
-
-int
-ACE_XtReactor::wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &handle_set,
- ACE_Time_Value *max_wait_time)
-{
- ACE_TRACE ("ACE_XtReactor::wait_for_multiple_events");
- int nfound;
-
- do
- {
- max_wait_time = this->timer_queue_->calculate_timeout (max_wait_time);
-
- size_t width = this->handler_rep_.max_handlep1 ();
- handle_set.rd_mask_ = this->wait_set_.rd_mask_;
- handle_set.wr_mask_ = this->wait_set_.wr_mask_;
- handle_set.ex_mask_ = this->wait_set_.ex_mask_;
- nfound = XtWaitForMultipleEvents (width,
- handle_set,
- max_wait_time);
-
- } while (nfound == -1 && this->handle_error () > 0);
-
- if (nfound > 0)
- {
-#if !defined (ACE_WIN32)
- handle_set.rd_mask_.sync (this->handler_rep_.max_handlep1 ());
- handle_set.wr_mask_.sync (this->handler_rep_.max_handlep1 ());
- handle_set.ex_mask_.sync (this->handler_rep_.max_handlep1 ());
-#endif /* ACE_WIN32 */
- }
- return nfound; // Timed out or input available
-}
-
-void
-ACE_XtReactor::TimerCallbackProc (XtPointer closure, XtIntervalId * /* id */)
-{
- ACE_XtReactor *self = (ACE_XtReactor *) closure;
- self->timeout_ = 0;
-
- // Deal with any timer events
- ACE_Select_Reactor_Handle_Set handle_set;
- self->dispatch (0, handle_set);
- self->reset_timeout ();
-}
-
-// This could be made shorter if we know which *kind* of event we were
-// about to get. Here we use <select> to find out which one might be
-// available.
-
-void
-ACE_XtReactor::InputCallbackProc (XtPointer closure,
- int *source,
- XtInputId *)
-{
- ACE_XtReactor *self = (ACE_XtReactor *) closure;
- ACE_HANDLE handle = (ACE_HANDLE) *source;
-
- // my copy isn't const.
- ACE_Time_Value zero = ACE_Time_Value::zero;
-
- ACE_Select_Reactor_Handle_Set wait_set;
-
- // Deal with one file event.
-
- // - read which kind of event
- if (self->wait_set_.rd_mask_.is_set (handle))
- wait_set.rd_mask_.set_bit (handle);
- if (self->wait_set_.wr_mask_.is_set (handle))
- wait_set.wr_mask_.set_bit (handle);
- if (self->wait_set_.ex_mask_.is_set (handle))
- wait_set.ex_mask_.set_bit (handle);
-
- int result = ACE_OS::select (*source + 1,
- wait_set.rd_mask_,
- wait_set.wr_mask_,
- wait_set.ex_mask_, &zero);
-
- ACE_Select_Reactor_Handle_Set dispatch_set;
-
- // - Use only that one file event (removes events for other files).
- if (result > 0)
- {
- if (wait_set.rd_mask_.is_set (handle))
- dispatch_set.rd_mask_.set_bit (handle);
- if (wait_set.wr_mask_.is_set (handle))
- dispatch_set.wr_mask_.set_bit (handle);
- if (wait_set.ex_mask_.is_set (handle))
- dispatch_set.ex_mask_.set_bit (handle);
-
- self->dispatch (1, dispatch_set);
- }
-}
-
-int
-ACE_XtReactor::XtWaitForMultipleEvents (int width,
- ACE_Select_Reactor_Handle_Set &wait_set,
- ACE_Time_Value *)
-{
- // Make sure we have a valid context
- ACE_ASSERT (this->context_ != 0);
-
- // Check to make sure our handle's are all usable.
- ACE_Select_Reactor_Handle_Set temp_set = wait_set;
-
- if (ACE_OS::select (width,
- temp_set.rd_mask_,
- temp_set.wr_mask_,
- temp_set.ex_mask_,
- (ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
- return -1; // Bad file arguments...
-
- // Instead of waiting using <select>, just use the Xt mechanism to
- // wait for a single event.
-
- // Wait for something to happen.
- ::XtAppProcessEvent (this->context_, XtIMAll);
-
- // Reset the width, in case it changed during the upcalls.
- width = this->handler_rep_.max_handlep1 ();
-
- // Now actually read the result needed by the <Select_Reactor> using
- // <select>.
- return ACE_OS::select (width,
- wait_set.rd_mask_,
- wait_set.wr_mask_,
- wait_set.ex_mask_,
- (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-XtAppContext
-ACE_XtReactor::context (void) const
-{
- return this->context_;
-}
-
-void
-ACE_XtReactor::context (XtAppContext context)
-{
- this->context_ = context;
-}
-
-int
-ACE_XtReactor::register_handler_i (ACE_HANDLE handle,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_XtReactor::register_handler_i");
-
- // Make sure we have a valid context
- ACE_ASSERT (this->context_ != 0);
-
- int result = ACE_Select_Reactor::register_handler_i (handle,
- handler, mask);
- if (result == -1)
- return -1;
-
- int condition = 0;
-
-#if !defined ACE_WIN32
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK))
- ACE_SET_BITS (condition, XtInputReadMask);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK))
- ACE_SET_BITS (condition, XtInputWriteMask);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
- ACE_SET_BITS (condition, XtInputExceptMask);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK))
- ACE_SET_BITS (condition, XtInputReadMask);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK)){
- ACE_SET_BITS (condition, XtInputWriteMask); // connected, you may write
- ACE_SET_BITS (condition, XtInputReadMask); // connected, you have data/err
- }
-#else
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK))
- ACE_SET_BITS (condition, XtInputReadWinsock);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK))
- ACE_SET_BITS (condition, XtInputWriteWinsock);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
- ACE_NOTSUP_RETURN(-1);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK))
- ACE_SET_BITS (condition, XtInputReadWinsock);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK)){
- ACE_SET_BITS (condition, XtInputWriteWinsock); // connected, you may write
- ACE_SET_BITS (condition, XtInputReadWinsock); // connected, you have data/err
- }
-#endif /* !ACE_WIN32 */
-
- if (condition != 0)
- {
- ACE_XtReactorID *XtID = this->ids_;
-
- while(XtID)
- {
- if (XtID->handle_ == handle)
- {
- ::XtRemoveInput (XtID->id_);
-
- XtID->id_ = ::XtAppAddInput (this->context_,
- (int) handle,
- (XtPointer) condition,
- InputCallbackProc,
- (XtPointer) this);
- return 0;
- }
- else
- XtID = XtID->next_;
- }
-
- ACE_NEW_RETURN (XtID,
- ACE_XtReactorID,
- -1);
- XtID->next_ = this->ids_;
- XtID->handle_ = handle;
- XtID->id_ = ::XtAppAddInput (this->context_,
- (int) handle,
- (XtPointer) condition,
- InputCallbackProc,
- (XtPointer) this);
- this->ids_ = XtID;
- }
- return 0;
-}
-
-int
-ACE_XtReactor::register_handler_i (const ACE_Handle_Set &handles,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
-{
- return ACE_Select_Reactor::register_handler_i (handles,
- handler,
- mask);
-}
-
-int
-ACE_XtReactor::remove_handler_i (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_XtReactor::remove_handler_i");
-
- // In the registration phase we registered first with
- // ACE_Select_Reactor and then with X. Now we are now doing things
- // in reverse order.
-
- // First clean up the corresponding X11Input.
- this->remove_XtInput (handle);
-
- // Now let the reactor do its work.
- return ACE_Select_Reactor::remove_handler_i (handle,
- mask);
-}
-
-void
-ACE_XtReactor::remove_XtInput (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_XtReactor::remove_XtInput");
-
- ACE_XtReactorID *XtID = this->ids_;
-
- if (XtID)
- {
- if (XtID->handle_ == handle)
- {
- ::XtRemoveInput (XtID->id_);
- this->ids_ = XtID->next_;
- delete XtID;
- return;
- }
-
- ACE_XtReactorID *NextID = XtID->next_;
-
- while (NextID)
- {
- if (NextID->handle_ == handle)
- {
- ::XtRemoveInput(NextID->id_);
- XtID->next_ = NextID->next_;
- delete NextID;
- return;
- }
- else
- {
- XtID = NextID;
- NextID = NextID->next_;
- }
- }
- }
-}
-
-int
-ACE_XtReactor::remove_handler_i (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask mask)
-{
- return ACE_Select_Reactor::remove_handler_i (handles,
- mask);
-}
-
-// The following functions ensure that there is an Xt timeout for the
-// first timeout in the Reactor's Timer_Queue.
-
-void
-ACE_XtReactor::reset_timeout (void)
-{
- // Make sure we have a valid context
- ACE_ASSERT (this->context_ != 0);
-
- if (timeout_)
- ::XtRemoveTimeOut (timeout_);
- timeout_ = 0;
-
- ACE_Time_Value *max_wait_time =
- this->timer_queue_->calculate_timeout (0);
-
- if (max_wait_time)
- timeout_ = ::XtAppAddTimeOut (this->context_,
- max_wait_time->msec (),
- TimerCallbackProc,
- (XtPointer) this);
-}
-
-int
-ACE_XtReactor::reset_timer_interval
- (long timer_id,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_XtReactor::reset_timer_interval");
- ACE_MT (ACE_GUARD_RETURN (ACE_Select_Reactor_Token, ace_mon, this->token_, -1));
-
- int result = ACE_Select_Reactor::timer_queue_->reset_interval
- (timer_id,
- interval);
-
- if (result == -1)
- return -1;
- else
- {
- this->reset_timeout ();
- return result;
- }
-}
-
-long
-ACE_XtReactor::schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval)
-{
- ACE_TRACE ("ACE_XtReactor::schedule_timer");
- ACE_MT (ACE_GUARD_RETURN (ACE_Select_Reactor_Token, ace_mon, this->token_, -1));
-
- long result = ACE_Select_Reactor::schedule_timer (event_handler,
- arg,
- delay,
- interval);
- if (result == -1)
- return -1;
- else
- {
- this->reset_timeout ();
- return result;
- }
-}
-
-int
-ACE_XtReactor::cancel_timer (ACE_Event_Handler *handler,
- int dont_call_handle_close)
-{
- ACE_TRACE ("ACE_XtReactor::cancel_timer");
-
- if (ACE_Select_Reactor::cancel_timer (handler,
- dont_call_handle_close) == -1)
- return -1;
- else
- {
- this->reset_timeout ();
- return 0;
- }
-}
-
-int
-ACE_XtReactor::cancel_timer (long timer_id,
- const void **arg,
- int dont_call_handle_close)
-{
- ACE_TRACE ("ACE_XtReactor::cancel_timer");
-
- if (ACE_Select_Reactor::cancel_timer (timer_id,
- arg,
- dont_call_handle_close) == -1)
- return -1;
- else
- {
- this->reset_timeout ();
- return 0;
- }
-}
-
-#endif /* ACE_HAS_XT */
diff --git a/ace/XtReactor.h b/ace/XtReactor.h
deleted file mode 100644
index 62a22c44f8b..00000000000
--- a/ace/XtReactor.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file XtReactor.h
- *
- * $Id$
- *
- * @author Eric C. Newton's <ecn@clark.net>
- * @author Kirill Rybaltchenko <Kirill.Rybaltchenko@cern.ch>
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_XTREACTOR_H
-#define ACE_XTREACTOR_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_XT)
-
-#include "ace/Select_Reactor.h"
-
-//#define String XtString
-#include /**/ <X11/Intrinsic.h>
-//#undef String
-
-/**
- * @class ACE_XtReactorID
- *
- * @brief This little class is necessary due to the way that Microsoft
- * implements sockets to be pointers rather than indices.
- */
-class ACE_Export ACE_XtReactorID
-{
-public:
- /// Magic cookie.
- XtInputId id_;
-
- /// Underlying handle.
- ACE_HANDLE handle_;
-
- /// Pointer to next node in the linked list.
- ACE_XtReactorID *next_;
-};
-
-/**
- * @class ACE_XtReactor
- *
- * @brief An object-oriented event demultiplexor and event handler
- * dispatcher that uses the X Toolkit functions.
- */
-class ACE_Export ACE_XtReactor : public ACE_Select_Reactor
-{
-public:
- // = Initialization and termination methods.
- ACE_XtReactor (XtAppContext context = 0,
- size_t size = DEFAULT_SIZE,
- int restart = 0,
- ACE_Sig_Handler * = 0);
- virtual ~ACE_XtReactor (void);
-
- XtAppContext context (void) const;
- void context (XtAppContext);
-
- // = Timer operations.
- virtual long schedule_timer (ACE_Event_Handler *event_handler,
- const void *arg,
- const ACE_Time_Value &delay,
- const ACE_Time_Value &interval);
- virtual int reset_timer_interval (long timer_id,
- const ACE_Time_Value &interval);
- virtual int cancel_timer (ACE_Event_Handler *handler,
- int dont_call_handle_close = 1);
-
- virtual int cancel_timer (long timer_id,
- const void **arg = 0,
- int dont_call_handle_close = 1);
-
-protected:
- // = Register timers/handles with Xt.
- /// Register a single <handler>.
- virtual int register_handler_i (ACE_HANDLE handle,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask);
-
- /// Register a set of <handlers>.
- virtual int register_handler_i (const ACE_Handle_Set &handles,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask);
-
- /// Remove the <handler> associated with this <handle>.
- virtual int remove_handler_i (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
- /// Remove a set of <handles>.
- virtual int remove_handler_i (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask);
-
- /// Removes an Xt handle.
- virtual void remove_XtInput (ACE_HANDLE handle);
-
- /// Wait for events to occur.
- virtual int wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &,
- ACE_Time_Value *);
-
- ///Wait for Xt events to occur.
- virtual int XtWaitForMultipleEvents (int,
- ACE_Select_Reactor_Handle_Set &,
- ACE_Time_Value *);
-
- XtAppContext context_;
- ACE_XtReactorID *ids_;
- XtIntervalId timeout_;
-
-private:
- /// This method ensures there's an Xt timeout for the first timeout
- /// in the Reactor's Timer_Queue.
- void reset_timeout (void);
-
- // = Integrate with the X callback function mechanism.
- static void TimerCallbackProc (XtPointer closure, XtIntervalId *id);
- static void InputCallbackProc (XtPointer closure, int* source, XtInputId *id);
-
- /// Deny access since member-wise won't work...
- ACE_XtReactor (const ACE_XtReactor &);
- ACE_XtReactor &operator = (const ACE_XtReactor &);
-};
-#endif /* ACE_HAS_XT */
-
-#include "ace/post.h"
-#endif /* ACE_XTREACTOR_H */
diff --git a/ace/ace-dll.icc b/ace/ace-dll.icc
deleted file mode 100644
index 40af7b1f046..00000000000
--- a/ace/ace-dll.icc
+++ /dev/null
@@ -1,523 +0,0 @@
-// $Id$
-//
-// Configuration file to build ACE shared library (aka DLL) on both Win32
-// and AIX using Visual Age C++ 4 (or later)
-
-if $__TOS_WIN__ {
- option PlatformOptions =
- define ("ACE_HAS_DLL","0"),
- define ("ACE_HAS_WINSOCK2","1"),
- define ("ACE_HAS_WCHAR_TYPEDEFS_CHAR","1"),
- define ("_stricmp", "stricmp"),
- define ("_strnicmp", "strnicmp"),
- define ("_O_TEMPORARY", 0x08),
- define ("_O_CREAT", "O_CREAT"),
- define ("_O_TRUNC", "O_TRUNC"),
- define ("_O_EXCL", "O_EXCL"),
- define ("WIN32","1"),
- define ("_WINDOWS","1"),
- define ("_INTEGRAL_MAX_BITS", 64)
- TargetType = "dll"
- TargetName = "aced.dll"
-}
-if $__TOS_AIX__ {
- option PlatformOptions =
- defaults(xlC_r),
- gen(check,bounds,no),
- link(typecheck,yes),
- opt(level, 0), // for debugging
- gen(enumsize, small),
- report (level,W),
- report (disable, "1540-1612"),
- report (disable, "1540-1613")
- TargetType = "shr"
- TargetName = "shr.o"
- run after sources("shr.o") targets ("libACE.a") "ar -r -u libACE.a shr.o", "rm -rf shr.o"
- run cleanup "rm -rf libACE.a shr.o"
-}
-
-option
- PlatformOptions,
- link(exportAll),
- link(linkwithsharedlib),
- link(linkWithMultiThreadLib,yes),
- incl(searchpath, "..")
- {
- target type ( TargetType ) TargetName
- {
- option macros(global)
- {
- source type(hpp) 'wchar.h'
- source type(hpp) 'wcstr.h'
- if $__TOS_WIN__ {
- source type(hpp)
- 'config-win32-common.h',
- 'config-win32-visualage.h',
- 'config-visualage.h',
- 'config-win32.h'
- }
-
- source type(hpp)
- 'Acceptor.h',
- 'ACE.h',
- 'Activation_Queue.h',
- 'Active_Map_Manager.h',
- 'Active_Map_Manager_T.h',
- 'Addr.h',
- 'ARGV.h',
- 'Arg_Shifter.h',
- 'Array.h',
- 'Asynch_Acceptor.h',
- 'Asynch_IO.h',
- 'Asynch_IO_Impl.h',
- 'ATM_Addr.h',
- 'Auto_Ptr.h',
- 'Base_Thread_Adapter.h',
- 'Based_Pointer_Repository.h',
- 'Basic_Stats.h',
- 'Basic_Types.h',
- 'Cached_Connect_Strategy_T.h',
- 'Cache_Map_Manager_T.h',
- 'Caching_Strategies_T.h',
- 'Caching_Utility_T.h',
- 'Capabilities.h',
- 'CDR_Base.h',
- 'CDR_Stream.h',
- 'Cleanup_Strategies_T.h',
- 'Codeset_IBM1047.h',
- 'Codeset_Registry.h',
- 'config.h',
- 'Connector.h',
- 'Containers.h',
- 'Containers_T.h',
- 'CORBA_macros.h',
- 'Date_Time.h',
- 'DEV.h',
- 'DEV_Addr.h',
- 'DEV_Connector.h',
- 'DEV_IO.h',
- 'Dirent.h',
- 'DLL.h',
- 'Dump.h',
- 'Dump_T.h',
- 'Dynamic.h',
- 'Dynamic_Service.h',
- 'Env_Value_T.h',
- 'Event_Handler.h',
- 'Event_Handler_T.h',
- 'FIFO.h',
- 'FIFO_Recv.h',
- 'FIFO_Recv_Msg.h',
- 'FIFO_Send.h',
- 'FIFO_Send_Msg.h',
- 'FILE.h',
- 'Filecache.h',
- 'FILE_Addr.h',
- 'FILE_Connector.h',
- 'FILE_IO.h',
- 'Flag_Manip.h',
- 'FlReactor.h',
- 'Free_List.h',
- 'Functor.h',
- 'Functor_T.h',
- 'Future.h',
- 'Future_Set.h',
- 'Get_Opt.h',
- 'Handle_Gobbler.h',
- 'Handle_Ops.h',
- 'Handle_Set.h',
- 'Hash_Cache_Map_Manager_T.h',
- 'Hash_Map_Manager.h',
- 'Hash_Map_Manager_T.h',
- 'Hash_Map_With_Allocator_T.h',
- 'High_Res_Timer.h',
- 'config-all.h',
- 'INET_Addr.h',
- 'Init_ACE.h',
- 'iosfwd.h',
- 'IOStream.h',
- 'IOStream_T.h',
- 'IO_Cntl_Msg.h',
- 'IO_SAP.h',
- 'IPC_SAP.h',
- 'Lib_Find.h',
- 'Local_Name_Space.h',
- 'Local_Name_Space_T.h',
- 'Local_Tokens.h',
- 'LOCK_SOCK_Acceptor.h',
- 'Log_Msg.h',
- 'Log_Msg_Backend.h',
- 'Log_Msg_IPC.h',
- 'Log_Priority.h',
- 'Log_Record.h',
- 'LSOCK.h',
- 'LSOCK_Acceptor.h',
- 'LSOCK_CODgram.h',
- 'LSOCK_Connector.h',
- 'LSOCK_Dgram.h',
- 'LSOCK_Stream.h',
- 'Malloc.h',
- 'Malloc_Allocator.h',
- 'Malloc_Base.h',
- 'Malloc_T.h',
- 'Managed_Object.h',
- 'Map.h',
- 'Map_Manager.h',
- 'Map_T.h',
- 'Memory_Pool.h',
- 'Mem_Map.h',
- 'Message_Block.h',
- 'Message_Block_T.h',
- 'Message_Queue.h',
- 'Message_Queue_T.h',
- 'Method_Object.h',
- 'Method_Request.h',
- 'Module.h',
- 'Msg_WFMO_Reactor.h',
- 'Name_Proxy.h',
- 'Name_Request_Reply.h',
- 'Name_Space.h',
- 'Naming_Context.h',
- 'NT_Service.h',
- 'Object_Manager.h',
- 'Obstack.h',
- 'OS.h',
- 'OS_Dirent.h',
- 'OS_Errno.h',
- 'OS_Log_Msg_Attributes.h',
- 'OS_Memory.h',
- 'OS_String.h',
- 'OS_Thread_Adapter.h',
- 'OS_TLI.h',
- 'PI_Malloc.h',
- 'POSIX_Asynch_IO.h',
- 'POSIX_Proactor.h',
- 'Pair.h',
- 'Pair_T.h',
- 'Parse_Node.h',
- 'Pipe.h',
- 'Priority_Reactor.h',
- 'Proactor.h',
- 'Proactor_Impl.h',
- 'Process.h',
- 'Process_Manager.h',
- 'Profile_Timer.h',
- 'RB_Tree.h',
- 'Reactor.h',
- 'Reactor_Impl.h',
- 'Read_Buffer.h',
- 'Registry.h',
- 'Registry_Name_Space.h',
- 'Remote_Name_Space.h',
- 'Remote_Tokens.h',
- 'Sched_Params.h',
- 'Select_Reactor.h',
- 'Select_Reactor_Base.h',
- 'Select_Reactor_T.h',
- 'Service_Config.h',
- 'Service_Manager.h',
- 'Service_Object.h',
- 'Service_Repository.h',
- 'Service_Types.h',
- 'Shared_Memory.h',
- 'Shared_Memory_MM.h',
- 'Shared_Memory_SV.h',
- 'Shared_Object.h',
- 'Signal.h',
- 'Singleton.h',
- 'SOCK.h',
- 'SOCK_Acceptor.h',
- 'SOCK_CODgram.h',
- 'SOCK_Connector.h',
- 'SOCK_Dgram.h',
- 'SOCK_Dgram_Bcast.h',
- 'SOCK_Dgram_Mcast.h',
- 'SOCK_IO.h',
- 'SOCK_Stream.h',
- 'Sock_Connect.h',
- 'SPIPE.h',
- 'SPIPE_Acceptor.h',
- 'SPIPE_Addr.h',
- 'SPIPE_Connector.h',
- 'SPIPE_Stream.h',
- 'String_Base_Const.h',
- 'String_Base.h',
- 'SString.h',
- 'Stats.h',
- 'Strategies.h',
- 'Strategies_T.h',
- 'Stream.h',
- 'streams.h',
- 'Stream_Modules.h',
- 'Svc_Conf.h',
- 'Svc_Conf_Tokens.h',
- 'Svc_Handler.h',
- 'SV_Message.h',
- 'SV_Message_Queue.h',
- 'SV_Semaphore_Complex.h',
- 'SV_Semaphore_Simple.h',
- 'SV_Shared_Memory.h',
- 'Synch.h',
- 'Process_Semaphore.h',
- 'Process_Mutex.h',
- 'RW_Process_Mutex.h',
- 'File_Lock.h',
- 'Synch_Options.h',
- 'Synch_T.h',
- 'System_Time.h',
- 'Task.h',
- 'Task_T.h',
- 'Thread.h',
- 'Thread_Adapter.h',
- 'Thread_Control.h',
- 'Thread_Exit.h',
- 'Thread_Manager.h',
- 'Timeprobe.h',
- 'Timeprobe_T.h',
- 'Timer_Hash.h',
- 'Timer_Hash_T.h',
- 'Timer_Heap.h',
- 'Timer_Heap_T.h',
- 'Timer_List.h',
- 'Timer_List_T.h',
- 'Timer_Queue.h',
- 'Timer_Queue_Adapters.h',
- 'Timer_Queue_T.h',
- 'Timer_Wheel.h',
- 'Timer_Wheel_T.h',
- 'Time_Request_Reply.h',
- 'Time_Value.h',
- 'TkReactor.h',
- 'TLI.h',
- 'TLI_Acceptor.h',
- 'TLI_Connector.h',
- 'TLI_Stream.h',
- 'Token.h',
- 'Token_Collection.h',
- 'Token_Invariants.h',
- 'Token_Manager.h',
- 'Token_Request_Reply.h',
- 'TP_Reactor.h',
- 'Trace.h',
- 'TTY_IO.h',
- 'Typed_SV_Message.h',
- 'Typed_SV_Message_Queue.h',
- 'UNIX_Addr.h',
- 'UPIPE_Acceptor.h',
- 'UPIPE_Addr.h',
- 'UPIPE_Connector.h',
- 'UPIPE_Stream.h',
- 'Version.h',
- 'WFMO_Reactor.h',
- 'WIN32_Asynch_IO.h',
- 'WIN32_Proactor.h',
- 'XtReactor.h'
- }
- source type(cpp) "Log_Msg.cpp"
- source type(cpp) "ACE.cpp"
- source type(cpp) "Activation_Queue.cpp"
- source type(cpp) "Active_Map_Manager.cpp"
- source type(cpp) "Addr.cpp"
- source type(cpp) "Arg_Shifter.cpp"
- source type(cpp) "ARGV.cpp"
- source type(cpp) "Asynch_IO.cpp"
- source type(cpp) "Asynch_IO_Impl.cpp"
- source type(cpp) "Base_Thread_Adapter.cpp"
- source type(cpp) "Based_Pointer_Repository.cpp"
- source type(cpp) "Basic_Stats.cpp"
- source type(cpp) "Basic_Types.cpp"
- source type(cpp) "Capabilities.cpp"
- source type(cpp) "CDR_Base.cpp"
- source type(cpp) "CDR_Stream.cpp"
- source type(cpp) "Codeset_Registry.cpp"
- source type(cpp) "Codeset_Registry_db.cpp"
- source type(cpp) "Configuration.cpp"
- source type(cpp) "Containers.cpp"
- source type(cpp) "Date_Time.cpp"
- source type(cpp) "DEV.cpp"
- source type(cpp) "DEV_Addr.cpp"
- source type(cpp) "DEV_Connector.cpp"
- source type(cpp) "DEV_IO.cpp"
- source type(cpp) "Dirent.cpp"
- source type(cpp) "DLL.cpp"
- source type(cpp) "Dump.cpp"
- source type(cpp) "Dynamic.cpp"
- source type(cpp) "Dynamic_Service.cpp"
- source type(cpp) "Event_Handler.cpp"
- source type(cpp) "FIFO.cpp"
- source type(cpp) "FIFO_Recv.cpp"
- source type(cpp) "FIFO_Recv_Msg.cpp"
- source type(cpp) "FIFO_Send.cpp"
- source type(cpp) "FIFO_Send_Msg.cpp"
- source type(cpp) "FILE.cpp"
- source type(cpp) "FILE_Addr.cpp"
- source type(cpp) "FILE_Connector.cpp"
- source type(cpp) "FILE_IO.cpp"
- source type(cpp) "Filecache.cpp"
- source type(cpp) "Flag_Manip.cpp"
- source type(cpp) "Functor.cpp"
- source type(cpp) "Future.cpp"
- source type(cpp) "Get_Opt.cpp"
- source type(cpp) "Handle_Ops.cpp"
- source type(cpp) "Handle_Set.cpp"
- source type(cpp) "Hash_Map_Manager.cpp"
- source type(cpp) "High_Res_Timer.cpp"
- source type(cpp) "INET_Addr.cpp"
- source type(cpp) "Init_ACE.cpp"
- source type(cpp) "IO_Cntl_Msg.cpp"
- source type(cpp) "IO_SAP.cpp"
- source type(cpp) "IOStream.cpp"
- source type(cpp) "IPC_SAP.cpp"
- source type(cpp) "Lib_Find.cpp"
- source type(cpp) "Local_Name_Space.cpp"
- source type(cpp) "Local_Tokens.cpp"
- source type(cpp) "Log_Msg_Backend.cpp"
- source type(cpp) "Log_Msg_IPC.cpp"
- source type(cpp) "Log_Record.cpp"
- source type(cpp) "LSOCK.cpp"
- source type(cpp) "LSOCK_Acceptor.cpp"
- source type(cpp) "LSOCK_CODgram.cpp"
- source type(cpp) "LSOCK_Connector.cpp"
- source type(cpp) "LSOCK_Dgram.cpp"
- source type(cpp) "LSOCK_Stream.cpp"
- source type(cpp) "Malloc.cpp"
- source type(cpp) "Malloc_Allocator.cpp"
- source type(cpp) "Map.cpp"
- source type(cpp) "Mem_Map.cpp"
- source type(cpp) "Memory_Pool.cpp"
- source type(cpp) "Message_Block.cpp"
- source type(cpp) "Message_Queue.cpp"
- source type(cpp) "Method_Request.cpp"
- source type(cpp) "Msg_WFMO_Reactor.cpp"
- source type(cpp) "Name_Proxy.cpp"
- source type(cpp) "Name_Request_Reply.cpp"
- source type(cpp) "Name_Space.cpp"
- source type(cpp) "Naming_Context.cpp"
- source type(cpp) "NT_Service.cpp"
- source type(cpp) "Object_Manager.cpp"
- source type(cpp) "Obstack.cpp"
- source type(cpp) "OS.cpp"
- source type(cpp) "OS_Dirent.cpp"
- source type(cpp) "OS_Errno.cpp"
- source type(cpp) "OS_Log_Msg_Attributes.cpp"
- source type(cpp) "OS_Memory.cpp"
- source type(cpp) "OS_String.cpp"
- source type(cpp) "OS_Thread_Adapter.cpp"
- source type(cpp) "OS_TLI.cpp"
- source type(cpp) "PI_Malloc.cpp"
- source type(cpp) "Pair.cpp"
- source type(cpp) "Parse_Node.cpp"
- source type(cpp) "Pipe.cpp"
- source type(cpp) "Priority_Reactor.cpp"
- source type(cpp) "Proactor.cpp"
- source type(cpp) "Process.cpp"
- source type(cpp) "Process_Manager.cpp"
- source type(cpp) "Profile_Timer.cpp"
- source type(cpp) "RB_Tree.cpp"
- source type(cpp) "Reactor.cpp"
- source type(cpp) "Read_Buffer.cpp"
- source type(cpp) "Registry.cpp"
- source type(cpp) "Registry_Name_Space.cpp"
- source type(cpp) "Remote_Name_Space.cpp"
- source type(cpp) "Remote_Tokens.cpp"
- source type(cpp) "Sched_Params.cpp"
- source type(cpp) "Select_Reactor.cpp"
- source type(cpp) "Select_Reactor_Base.cpp"
- source type(cpp) "Service_Config.cpp"
- source type(cpp) "Service_Manager.cpp"
- source type(cpp) "Service_Object.cpp"
- source type(cpp) "Service_Repository.cpp"
- source type(cpp) "Service_Types.cpp"
- source type(cpp) "Shared_Memory.cpp"
- source type(cpp) "Shared_Memory_MM.cpp"
- source type(cpp) "Shared_Memory_SV.cpp"
- source type(cpp) "Shared_Object.cpp"
- source type(cpp) "Signal.cpp"
- source type(cpp) "SOCK.cpp"
- source type(cpp) "SOCK_Acceptor.cpp"
- source type(cpp) "SOCK_CODgram.cpp"
- source type(cpp) "SOCK_Connector.cpp"
- source type(cpp) "SOCK_Dgram.cpp"
- source type(cpp) "SOCK_Dgram_Bcast.cpp"
- source type(cpp) "SOCK_Dgram_Mcast.cpp"
- source type(cpp) "SOCK_IO.cpp"
- source type(cpp) "SOCK_Stream.cpp"
- source type(cpp) "Sock_Connect.cpp"
- source type(cpp) "SPIPE.cpp"
- source type(cpp) "SPIPE_Acceptor.cpp"
- source type(cpp) "SPIPE_Addr.cpp"
- source type(cpp) "SPIPE_Connector.cpp"
- source type(cpp) "SPIPE_Stream.cpp"
- source type(cpp) "String_Base_Const.cpp"
- source type(cpp) "SString.cpp"
- source type(cpp) "Stats.cpp"
- source type(cpp) "Strategies.cpp"
- source type(cpp) "SV_Message.cpp"
- source type(cpp) "SV_Message_Queue.cpp"
- source type(cpp) "SV_Semaphore_Complex.cpp"
- source type(cpp) "SV_Semaphore_Simple.cpp"
- source type(cpp) "SV_Shared_Memory.cpp"
- source type(cpp) "Svc_Conf_l.cpp"
- source type(cpp) "Svc_Conf_y.cpp"
- source type(cpp) "Synch.cpp"
- source type(cpp) "Process_Semaphore.cpp"
- source type(cpp) "Process_Mutex.cpp"
- source type(cpp) "RW_Process_Mutex.cpp"
- source type(cpp) "File_Lock.cpp"
- source type(cpp) "Synch_Options.cpp"
- source type(cpp) "System_Time.cpp"
- source type(cpp) "Task.cpp"
- source type(cpp) "Thread.cpp"
- source type(cpp) "Thread_Adapter.cpp"
- source type(cpp) "Thread_Control.cpp"
- source type(cpp) "Thread_Exit.cpp"
- source type(cpp) "Thread_Manager.cpp"
- source type(cpp) "Time_Request_Reply.cpp"
- source type(cpp) "Timeprobe.cpp"
- source type(cpp) "Timer_Hash.cpp"
- source type(cpp) "Timer_Heap.cpp"
- source type(cpp) "Timer_List.cpp"
- source type(cpp) "Timer_Queue.cpp"
- source type(cpp) "Timer_Queue_Adapters.cpp"
- source type(cpp) "Timer_Wheel.cpp"
- source type(cpp) "TLI.cpp"
- source type(cpp) "TLI_Acceptor.cpp"
- source type(cpp) "TLI_Connector.cpp"
- source type(cpp) "TLI_Stream.cpp"
- source type(cpp) "Token.cpp"
- source type(cpp) "Token_Collection.cpp"
- source type(cpp) "Token_Invariants.cpp"
- source type(cpp) "Token_Manager.cpp"
- source type(cpp) "Token_Request_Reply.cpp"
- source type(cpp) "TP_Reactor.cpp"
- source type(cpp) "Trace.cpp"
- source type(cpp) "TTY_IO.cpp"
- source type(cpp) "Typed_SV_Message.cpp"
- source type(cpp) "Typed_SV_Message_Queue.cpp"
- source type(cpp) "UNIX_Addr.cpp"
- source type(cpp) "UPIPE_Acceptor.cpp"
- source type(cpp) "UPIPE_Connector.cpp"
- source type(cpp) "UPIPE_Stream.cpp"
- source type(cpp) "WFMO_Reactor.cpp"
- source type(cpp) "WIN32_Asynch_IO.cpp"
- source type(cpp) "WIN32_Proactor.cpp"
- source type(cpp) "XtReactor.cpp"
-
- // Libraries needed during linking
- if $__TOS_WIN__ {
- source type (lib) "advapi32.lib"
- source type (lib) "user32.lib"
- source type (lib) "ws2_32.lib"
- source type (lib) "wsock32.lib"
- source type (lib) "mswsock.lib"
- }
- if $__TOS_AIX__ {
- source type (lib) "libtli_r.a"
- source type (lib) "libpthreads.a"
- source type (lib) "libc_r.a"
- source type (lib) "libdl.a"
- // Imports
- source type (imp) "pse.exp"
- }
- }
-}
diff --git a/ace/ace-lib.icc b/ace/ace-lib.icc
deleted file mode 100644
index 8c92312ba8b..00000000000
--- a/ace/ace-lib.icc
+++ /dev/null
@@ -1,284 +0,0 @@
-if $__TOS_WIN__ {
- option PlatformOptions = define ("ACE_HAS_WINSOCK2","1"),
- define ("WIN32","1"),
- define ("_WINDOWS","1")
- TARG = "aced.lib"
-}
-if $__TOS_AIX__ {
- option PlatformOptions = null
- TARG = "libACE.a"
-}
-
-option
- PlatformOptions,
- incl(searchPath,'..'),
- define ("__ACE_INLINE__","0"),
- define("ACE_HAS_DLL","0"),
- link(exportAll),
- link(linkwithsharedlib),
- link(linkWithMultiThreadLib,yes)
- {
- target type (lib) TARG
- {
- option macros(global)
- {
- source type(cpp) "OS.h"
- }
- source type(cpp) "Log_Msg.cpp"
- source type(cpp) "ACE.cpp"
- source type(cpp) "Activation_Queue.cpp"
- source type(cpp) "Active_Map_Manager.cpp"
- source type(cpp) "Addr.cpp"
- source type(cpp) "Arg_Shifter.cpp"
- source type(cpp) "ARGV.cpp"
- source type(cpp) "Asynch_IO.cpp"
- source type(cpp) "Asynch_IO_Impl.cpp"
- source type(cpp) "Basic_Types.cpp"
- source type(cpp) "CDR_Base.cpp"
- source type(cpp) "CDR_Stream.cpp"
- source type(cpp) "Codeset_Registry.cpp"
- source type(cpp) "Codeset_Registry_db.cpp"
- source type(cpp) "Containers.cpp"
- source type(cpp) "Date_Time.cpp"
- source type(cpp) "DEV.cpp"
- source type(cpp) "DEV_Addr.cpp"
- source type(cpp) "DEV_Connector.cpp"
- source type(cpp) "DEV_IO.cpp"
- source type(cpp) "Dirent.cpp"
- source type(cpp) "DLL.cpp"
- source type(cpp) "Dump.cpp"
- source type(cpp) "Dynamic.cpp"
- source type(cpp) "Dynamic_Service.cpp"
- source type(cpp) "Event_Handler.cpp"
- source type(cpp) "Event_Handler_T.cpp"
- source type(cpp) "FIFO.cpp"
- source type(cpp) "FIFO_Recv.cpp"
- source type(cpp) "FIFO_Recv_Msg.cpp"
- source type(cpp) "FIFO_Send.cpp"
- source type(cpp) "FIFO_Send_Msg.cpp"
- source type(cpp) "FILE.cpp"
- source type(cpp) "FILE_Addr.cpp"
- source type(cpp) "FILE_Connector.cpp"
- source type(cpp) "FILE_IO.cpp"
- source type(cpp) "Filecache.cpp"
- source type(cpp) "Functor.cpp"
- source type(cpp) "Future.cpp"
- source type(cpp) "Get_Opt.cpp"
- source type(cpp) "Handle_Set.cpp"
- source type(cpp) "Hash_Map_Manager.cpp"
- source type(cpp) "High_Res_Timer.cpp"
- source type(cpp) "INET_Addr.cpp"
- source type(cpp) "IO_Cntl_Msg.cpp"
- source type(cpp) "IO_SAP.cpp"
- source type(cpp) "IOStream.cpp"
- source type(cpp) "IPC_SAP.cpp"
- source type(cpp) "Local_Name_Space.cpp"
- source type(cpp) "Local_Tokens.cpp"
- source type(cpp) "Log_Record.cpp"
- source type(cpp) "LSOCK.cpp"
- source type(cpp) "LSOCK_Acceptor.cpp"
- source type(cpp) "LSOCK_CODgram.cpp"
- source type(cpp) "LSOCK_Connector.cpp"
- source type(cpp) "LSOCK_Dgram.cpp"
- source type(cpp) "LSOCK_Stream.cpp"
- source type(cpp) "Malloc.cpp"
- source type(cpp) "Map.cpp"
- source type(cpp) "Mem_Map.cpp"
- source type(cpp) "Memory_Pool.cpp"
- source type(cpp) "Message_Block.cpp"
- source type(cpp) "Message_Queue.cpp"
- source type(cpp) "Method_Request.cpp"
- source type(cpp) "Msg_WFMO_Reactor.cpp"
- source type(cpp) "Multiplexor.cpp"
- source type(cpp) "Name_Proxy.cpp"
- source type(cpp) "Name_Request_Reply.cpp"
- source type(cpp) "Name_Space.cpp"
- source type(cpp) "Naming_Context.cpp"
- source type(cpp) "NT_Service.cpp"
- source type(cpp) "Object_Manager.cpp"
- source type(cpp) "Obstack.cpp"
- source type(cpp) "OS.cpp"
- source type(cpp) "OS_Dirent.cpp"
- source type(cpp) "OS_Errno.cpp"
- source type(cpp) "OS_Memory.cpp"
- source type(cpp) "OS_String.cpp"
- source type(cpp) "OS_TLI.cpp"
- source type(cpp) "Pair.cpp"
- source type(cpp) "Parse_Node.cpp"
- source type(cpp) "Pipe.cpp"
- source type(cpp) "Priority_Reactor.cpp"
- source type(cpp) "Proactor.cpp"
- source type(cpp) "Process.cpp"
- source type(cpp) "Process_Manager.cpp"
- source type(cpp) "Profile_Timer.cpp"
- source type(cpp) "RB_Tree.cpp"
- source type(cpp) "Reactor.cpp"
- source type(cpp) "Read_Buffer.cpp"
- source type(cpp) "Registry.cpp"
- source type(cpp) "Registry_Name_Space.cpp"
- source type(cpp) "Remote_Name_Space.cpp"
- source type(cpp) "Remote_Tokens.cpp"
- source type(cpp) "Sched_Params.cpp"
- source type(cpp) "Select_Reactor.cpp"
- source type(cpp) "Select_Reactor_Base.cpp"
- source type(cpp) "Service_Config.cpp"
- source type(cpp) "Service_Manager.cpp"
- source type(cpp) "Service_Object.cpp"
- source type(cpp) "Service_Repository.cpp"
- source type(cpp) "Service_Types.cpp"
- source type(cpp) "Shared_Memory.cpp"
- source type(cpp) "Shared_Memory_MM.cpp"
- source type(cpp) "Shared_Memory_SV.cpp"
- source type(cpp) "Shared_Object.cpp"
- source type(cpp) "Signal.cpp"
- source type(cpp) "SOCK.cpp"
- source type(cpp) "SOCK_Acceptor.cpp"
- source type(cpp) "SOCK_CODgram.cpp"
- source type(cpp) "SOCK_Connector.cpp"
- source type(cpp) "SOCK_Dgram.cpp"
- source type(cpp) "SOCK_Dgram_Bcast.cpp"
- source type(cpp) "SOCK_Dgram_Mcast.cpp"
- source type(cpp) "SOCK_IO.cpp"
- source type(cpp) "SOCK_Stream.cpp"
- source type(cpp) "SPIPE.cpp"
- source type(cpp) "SPIPE_Acceptor.cpp"
- source type(cpp) "SPIPE_Addr.cpp"
- source type(cpp) "SPIPE_Connector.cpp"
- source type(cpp) "SPIPE_Stream.cpp"
- source type(cpp) "String_Base_Const.cpp"
- source type(cpp) "SString.cpp"
- source type(cpp) "Stats.cpp"
- source type(cpp) "Strategies.cpp"
- source type(cpp) "SV_Message.cpp"
- source type(cpp) "SV_Message_Queue.cpp"
- source type(cpp) "SV_Semaphore_Complex.cpp"
- source type(cpp) "SV_Semaphore_Simple.cpp"
- source type(cpp) "SV_Shared_Memory.cpp"
- source type(cpp) "Svc_Conf_l.cpp"
- source type(cpp) "Svc_Conf_y.cpp"
- source type(cpp) "Svc_Handler.cpp"
- source type(cpp) "Synch.cpp"
- source type(cpp) "Process_Semaphore.cpp"
- source type(cpp) "Process_Mutex.cpp"
- source type(cpp) "RW_Process_Mutex.cpp"
- source type(cpp) "File_Lock.cpp"
- source type(cpp) "Synch_Options.cpp"
- source type(cpp) "System_Time.cpp"
- source type(cpp) "Task.cpp"
- source type(cpp) "Thread.cpp"
- source type(cpp) "Base_Thread_Adapter.cpp"
- source type(cpp) "OS_Thread_Adapter.cpp"
- source type(cpp) "Thread_Adapter.cpp"
- source type(cpp) "Thread_Manager.cpp"
- source type(cpp) "Time_Request_Reply.cpp"
- source type(cpp) "Timeprobe.cpp"
- source type(cpp) "Timer_Hash.cpp"
- source type(cpp) "Timer_Heap.cpp"
- source type(cpp) "Timer_List.cpp"
- source type(cpp) "Timer_Queue.cpp"
- source type(cpp) "Timer_Queue_Adapters.cpp"
- source type(cpp) "Timer_Wheel.cpp"
- source type(cpp) "TLI.cpp"
- source type(cpp) "TLI_Acceptor.cpp"
- source type(cpp) "TLI_Connector.cpp"
- source type(cpp) "TLI_Stream.cpp"
- source type(cpp) "Token.cpp"
- source type(cpp) "Token_Collection.cpp"
- source type(cpp) "Token_Invariants.cpp"
- source type(cpp) "Token_Manager.cpp"
- source type(cpp) "Token_Request_Reply.cpp"
- source type(cpp) "TP_Reactor.cpp"
- source type(cpp) "Trace.cpp"
- source type(cpp) "TTY_IO.cpp"
- source type(cpp) "Typed_SV_Message.cpp"
- source type(cpp) "Typed_SV_Message_Queue.cpp"
- source type(cpp) "UNIX_Addr.cpp"
- source type(cpp) "UPIPE_Acceptor.cpp"
- source type(cpp) "UPIPE_Connector.cpp"
- source type(cpp) "UPIPE_Stream.cpp"
- source type(cpp) "WFMO_Reactor.cpp"
- source type(cpp) "WIN32_Asynch_IO.cpp"
- source type(cpp) "WIN32_Proactor.cpp"
- source type(cpp) "XtReactor.cpp"
- source type(cpp) "Active_Map_Manager_T.cpp"
- source type(cpp) "Containers_T.cpp"
- source type(cpp) "Dump_T.cpp"
- source type(cpp) "Env_Value_T.cpp"
- source type(cpp) "Event_Handler_T.cpp"
- source type(cpp) "Functor_T.cpp"
- source type(cpp) "Hash_Map_Manager_T.cpp"
- source type(cpp) "IOStream_T.cpp"
- source type(cpp) "Local_Name_Space_T.cpp"
- source type(cpp) "Malloc_T.cpp"
- source type(cpp) "Map_T.cpp"
- source type(cpp) "Message_Block_T.cpp"
- source type(cpp) "Message_Queue_T.cpp"
- source type(cpp) "Pair_T.cpp"
- source type(cpp) "Select_Reactor_T.cpp"
- source type(cpp) "Strategies_T.cpp"
- source type(cpp) "Synch_T.cpp"
- source type(cpp) "Task_T.cpp"
- source type(cpp) "Timeprobe_T.cpp"
- source type(cpp) "Timer_Hash_T.cpp"
- source type(cpp) "Timer_Heap_T.cpp"
- source type(cpp) "Timer_List_T.cpp"
- source type(cpp) "Timer_Queue_T.cpp"
- source type(cpp) "Timer_Wheel_T.cpp"
- // Template implementation files (#pragma implementation)
- source type (cpp) "Acceptor.cpp"
- source type (cpp) "Active_Map_Manager_T.cpp"
- source type (cpp) "Containers.cpp"
- source type (cpp) "Asynch_Acceptor.cpp"
- source type (cpp) "Auto_Ptr.cpp"
- source type (cpp) "Containers_T.cpp"
- source type (cpp) "Dump_T.cpp"
- source type (cpp) "Env_Value_T.cpp"
- source type (cpp) "Event_Handler_T.cpp"
- source type (cpp) "Free_List.cpp"
- source type (cpp) "Functor_T.cpp"
- source type (cpp) "Future.cpp"
- source type (cpp) "Hash_Map_Manager_T.cpp"
- source type (cpp) "IOStream_T.cpp"
- source type (cpp) "LOCK_SOCK_Acceptor.cpp"
- source type (cpp) "Local_Name_Space_T.cpp"
- source type (cpp) "Malloc_T.cpp"
- source type (cpp) "Managed_Object.cpp"
- source type (cpp) "Map_Manager.cpp"
- source type (cpp) "Map_T.cpp"
- source type (cpp) "Message_Block_T.cpp"
- source type (cpp) "Message_Queue_T.cpp"
- source type (cpp) "Module.cpp"
- source type (cpp) "Pair_T.cpp"
- source type (cpp) "RB_Tree.cpp"
- source type (cpp) "Select_Reactor_T.cpp"
- source type (cpp) "Singleton.cpp"
- source type (cpp) "Strategies_T.cpp"
- source type (cpp) "Stream.cpp"
- source type (cpp) "Stream_Modules.cpp"
- source type (cpp) "Svc_Handler.cpp"
- source type (cpp) "Synch_T.cpp"
- source type (cpp) "Task_T.cpp"
- source type (cpp) "Timeprobe_T.cpp"
- source type (cpp) "Timer_Hash_T.cpp"
- source type (cpp) "Timer_Heap_T.cpp"
- source type (cpp) "Timer_List_T.cpp"
- source type (cpp) "Timer_Queue_T.cpp"
- source type (cpp) "Timer_Wheel_T.cpp"
- source type (cpp) "Typed_SV_Message.cpp"
- source type (cpp) "Typed_SV_Message_Queue.cpp"
-
- // Libraries needed during linking
- if $__TOS_WIN__ {
- source type (lib) "advapi32.lib"
- source type (lib) "user32.lib"
- source type (lib) "ws2_32.lib"
- source type (lib) "wsock32.lib"
- source type (lib) "mswsock.lib"
- }
- if $__TOS_AIX__ {
- source type (lib) "libtli_r.a"
- source type (lib) "libpthreads.a"
- source type (lib) "libc_r.a"
- }
- }
-}
diff --git a/ace/ace.dsw b/ace/ace.dsw
deleted file mode 100644
index 9ae12b376b0..00000000000
--- a/ace/ace.dsw
+++ /dev/null
@@ -1,41 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "ACE dynamic library"=.\ace_dll.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "ACE static library"=.\ace_lib.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/ace/ace.icc b/ace/ace.icc
deleted file mode 100755
index cf99f67fddd..00000000000
--- a/ace/ace.icc
+++ /dev/null
@@ -1,654 +0,0 @@
-// $Id$
-//
-// Configuration file to build ACE shared library on AIX using
-// Visual Age C++ 5 (or later).
-
-include "ace_vacpp_options.icc"
-
-group OS_FILES =
- "Basic_Types.cpp",
- "Time_Value.cpp",
- "OS.cpp",
- "OS_Dirent.cpp",
- "OS_Memory.cpp",
- "OS_QoS.cpp",
- "OS_String.cpp",
- "OS_TLI.cpp",
- "OS_Errno.cpp",
- "Base_Thread_Adapter.cpp",
- "OS_Thread_Adapter.cpp",
- "OS_Log_Msg_Attributes.cpp",
- "Thread_Hook.cpp",
- "Sched_Params.cpp",
- "Handle_Set.cpp",
- "Copy_Disabled.cpp"
-
-group OS_INCLUDES =
- "Basic_Types.h",
- "Time_Value.h",
- "OS.h",
- "OS_Dirent.h",
- "OS_Memory.h",
- "OS_QoS.h",
- "OS_String.h",
- "OS_TLI.h",
- "OS_Errno.h",
- "Base_Thread_Adapter.h",
- "OS_Thread_Adapter.h",
- "OS_Log_Msg_Attributes.h",
- "Thread_Hook.h",
- "Sched_Params.h",
- "Handle_Set.h",
- "Copy_Disabled.h"
-
-group UTILS_FILES =
- "ACE.cpp",
- "Active_Map_Manager.cpp",
- "Arg_Shifter.cpp",
- "ARGV.cpp",
- "Argv_Type_Converter.cpp",
- "Capabilities.cpp",
- "Containers.cpp",
- "Configuration.cpp",
- "Configuration_Import_Export.cpp",
- "Dirent.cpp",
- "Dirent_Selector.cpp",
- "Dynamic.cpp",
- "Flag_Manip.cpp",
- "Framework_Component.cpp",
- "Functor.cpp",
- "Get_Opt.cpp",
- "Hash_Map_Manager.cpp",
- "Connection_Recycling_Strategy.cpp",
- "Hashable.cpp",
- "Notification_Strategy.cpp",
- "Recyclable.cpp",
- "Refcountable.cpp",
- "Handle_Ops.cpp",
- "Init_ACE.cpp",
- "Lib_Find.cpp",
- "Message_Block.cpp",
- "Method_Request.cpp",
- "Object_Manager.cpp",
- "Registry.cpp",
- "String_Base_Const.cpp",
- "SString.cpp",
- "Stats.cpp",
- "Sample_History.cpp"
-// #### NOTE: see below for Filecache.
-
-group UTILS_INCLUDES =
- "ACE.h",
- "Active_Map_Manager.h",
- "Arg_Shifter.h",
- "ARGV.h",
- "Argv_Type_Converter.h",
- "Capabilities.h",
- "Containers.h",
- "Configuration.h",
- "Configuration_Import_Export.h",
- "Dirent.h",
- "Dirent_Selector.h",
- "Dynamic.h",
- "Flag_Manip.h",
- "Framework_Component.h",
- "Functor.h",
- "Get_Opt.h",
- "Hash_Map_Manager.h",
- "Connection_Recycling_Strategy.h",
- "Hashable.h",
- "Notification_Strategy.h",
- "Recyclable.h",
- "Refcountable.h",
- "Handle_Ops.h",
- "Init_ACE.h",
- "Lib_Find.h",
- "Message_Block.h",
- "Method_Request.h",
- "Object_Manager.h",
- "Registry.h",
- "String_Base_Const.h",
- "SString.h",
- "Stats.h",
- "Sample_History.h"
-// #### NOTE: see below for Filecache.
-
-group LOGGING_FILES =
- "Dump.cpp",
- "Log_Msg.cpp",
- "Log_Msg_Callback.cpp",
- "Log_Msg_Backend.cpp",
- "Log_Msg_IPC.cpp",
- "Log_Msg_NT_Event_Log.cpp",
- "Log_Msg_UNIX_Syslog.cpp",
- "Log_Record.cpp",
- "Logging_Strategy.cpp",
- "Trace.cpp"
-
-group LOGGING_INCLUDES =
- "Dump.h",
- "Log_Msg.h",
- "Log_Msg_Callback.h",
- "Log_Msg_Backend.h",
- "Log_Msg_IPC.h",
- "Log_Msg_NT_Event_Log.h",
- "Log_Msg_UNIX_Syslog.h",
- "Log_Record.h",
- "Logging_Strategy.h",
- "Trace.h"
-
-group THREADS_FILES =
- "Activation_Queue.cpp",
- "Atomic_Op.cpp",
- "Process.cpp",
- "Process_Manager.cpp",
- "Synch.cpp",
- "Synch_Options.cpp",
- "Process_Semaphore.cpp",
- "Process_Mutex.cpp",
- "RW_Process_Mutex.cpp",
- "File_Lock.cpp",
- "Thread.cpp",
- "Thread_Manager.cpp",
- "Thread_Adapter.cpp",
- "Thread_Exit.cpp",
- "Thread_Control.cpp",
- "Token.cpp"
-
-group THREADS_INCLUDES =
- "Activation_Queue.h",
- "Atomic_Op.h",
- "Process.h",
- "Process_Manager.h",
- "Synch.h",
- "Synch_Options.h",
- "Process_Semaphore.h",
- "Process_Mutex.h",
- "RW_Process_Mutex.h",
- "File_Lock.h",
- "Thread.h",
- "Thread_Manager.h",
- "Thread_Adapter.h",
- "Thread_Exit.h",
- "Thread_Control.h",
- "Token.h"
-
-group DEMUX_FILES =
- "Event_Handler.cpp",
- "FlReactor.cpp",
- "Msg_WFMO_Reactor.cpp",
- "POSIX_Proactor.cpp",
- "POSIX_CB_Proactor.cpp",
- "WIN32_Proactor.cpp",
- "Priority_Reactor.cpp",
- "Proactor.cpp",
- "Reactor.cpp",
- "Select_Reactor.cpp",
- "Select_Reactor_Base.cpp",
- "SUN_Proactor.cpp",
- "Dev_Poll_Reactor.cpp",
- "TP_Reactor.cpp",
- "TkReactor.cpp",
- "WFMO_Reactor.cpp",
- "XtReactor.cpp",
- "QtReactor.cpp"
-
-group DEMUX_INCLUDES =
- "Event_Handler.h",
- "FlReactor.h",
- "Msg_WFMO_Reactor.h",
- "POSIX_Proactor.h",
- "POSIX_CB_Proactor.h",
- "WIN32_Proactor.h",
- "Priority_Reactor.h",
- "Proactor.h",
- "Reactor.h",
- "Select_Reactor.h",
- "Select_Reactor_Base.h",
- "SUN_Proactor.h",
- "Dev_Poll_Reactor.h",
- "TP_Reactor.h",
- "TkReactor.h",
- "WFMO_Reactor.h",
- "XtReactor.h",
- "QtReactor.h"
-
-group CONNECTION_FILES =
- "Asynch_IO.cpp",
- "Asynch_IO_Impl.cpp",
- "Asynch_Pseudo_Task.cpp",
- "POSIX_Asynch_IO.cpp",
- "WIN32_Asynch_IO.cpp"
-
-group CONNECTION_INCLUDES =
- "Asynch_IO.h",
- "Asynch_IO_Impl.h",
- "Asynch_Pseudo_Task.h",
- "POSIX_Asynch_IO.h",
- "WIN32_Asynch_IO.h"
-
-group SOCKETS_FILES =
- "Addr.cpp",
- "INET_Addr.cpp",
- "IPC_SAP.cpp",
- "LSOCK.cpp",
- "LSOCK_Acceptor.cpp",
- "LSOCK_CODgram.cpp",
- "LSOCK_Connector.cpp",
- "LSOCK_Dgram.cpp",
- "LSOCK_Stream.cpp",
- "SOCK.cpp",
- "SOCK_Acceptor.cpp",
- "SOCK_CODgram.cpp",
- "Sock_Connect.cpp",
- "SOCK_Connector.cpp",
- "SOCK_Dgram.cpp",
- "SOCK_Dgram_Bcast.cpp",
- "SOCK_Dgram_Mcast.cpp",
- "SOCK_IO.cpp",
- "SOCK_Stream.cpp"
-
-group SOCKETS_INCLUDES =
- "Addr.h",
- "INET_Addr.h",
- "IPC_SAP.h",
- "LSOCK.h",
- "LSOCK_Acceptor.h",
- "LSOCK_CODgram.h",
- "LSOCK_Connector.h",
- "LSOCK_Dgram.h",
- "LSOCK_Stream.h",
- "SOCK.h",
- "SOCK_Acceptor.h",
- "SOCK_CODgram.h",
- "Sock_Connect.h",
- "SOCK_Connector.h",
- "SOCK_Dgram.h",
- "SOCK_Dgram_Bcast.h",
- "SOCK_Dgram_Mcast.h",
- "SOCK_IO.h",
- "SOCK_Stream.h"
-
-group IPC_FILES =
- "ATM_Addr.cpp",
- "ATM_Acceptor.cpp",
- "ATM_Connector.cpp",
- "ATM_Params.cpp",
- "ATM_QoS.cpp",
- "ATM_Stream.cpp",
- "XTI_ATM_Mcast.cpp",
- "DEV.cpp",
- "DEV_Addr.cpp",
- "DEV_Connector.cpp",
- "DEV_IO.cpp",
- "FIFO.cpp",
- "FIFO_Recv.cpp",
- "FIFO_Recv_Msg.cpp",
- "FIFO_Send.cpp",
- "FIFO_Send_Msg.cpp",
- "FILE_Addr.cpp",
- "FILE.cpp",
- "FILE_Connector.cpp",
- "FILE_IO.cpp",
- "IO_SAP.cpp",
- "IOStream.cpp",
- "Pipe.cpp",
- "Signal.cpp",
- "SPIPE_Addr.cpp",
- "SPIPE.cpp",
- "SPIPE_Acceptor.cpp",
- "SPIPE_Connector.cpp",
- "SPIPE_Stream.cpp",
- "SV_Message.cpp",
- "SV_Message_Queue.cpp",
- "SV_Semaphore_Complex.cpp",
- "SV_Semaphore_Simple.cpp",
- "SV_Shared_Memory.cpp",
- "TLI.cpp",
- "TLI_Acceptor.cpp",
- "TLI_Connector.cpp",
- "TLI_Stream.cpp",
- "TTY_IO.cpp",
- "UNIX_Addr.cpp",
- "UPIPE_Acceptor.cpp",
- "UPIPE_Connector.cpp",
- "UPIPE_Stream.cpp",
- "MEM_Acceptor.cpp",
- "MEM_Addr.cpp",
- "MEM_Connector.cpp",
- "MEM_IO.cpp",
- "MEM_SAP.cpp",
- "MEM_Stream.cpp"
-
-group IPC_INCLUDES =
- "ATM_Addr.h",
- "ATM_Acceptor.h",
- "ATM_Connector.h",
- "ATM_Params.h",
- "ATM_QoS.h",
- "ATM_Stream.h",
- "XTI_ATM_Mcast.h",
- "DEV.h",
- "DEV_Addr.h",
- "DEV_Connector.h",
- "DEV_IO.h",
- "FIFO.h",
- "FIFO_Recv.h",
- "FIFO_Recv_Msg.h",
- "FIFO_Send.h",
- "FIFO_Send_Msg.h",
- "FILE_Addr.h",
- "FILE.h",
- "FILE_Connector.h",
- "FILE_IO.h",
- "IO_SAP.h",
- "IOStream.h",
- "Pipe.h",
- "Signal.h",
- "SPIPE_Addr.h",
- "SPIPE.h",
- "SPIPE_Acceptor.h",
- "SPIPE_Connector.h",
- "SPIPE_Stream.h",
- "SV_Message.h",
- "SV_Message_Queue.h",
- "SV_Semaphore_Complex.h",
- "SV_Semaphore_Simple.h",
- "SV_Shared_Memory.h",
- "TLI.h",
- "TLI_Acceptor.h",
- "TLI_Connector.h",
- "TLI_Stream.h",
- "TTY_IO.h",
- "UNIX_Addr.h",
- "UPIPE_Acceptor.h",
- "UPIPE_Connector.h",
- "UPIPE_Stream.h",
- "MEM_Acceptor.h",
- "MEM_Addr.h",
- "MEM_Connector.h",
- "MEM_IO.h",
- "MEM_SAP.h",
- "MEM_Stream.h"
-
-group SVCCONF_FILES =
- "DLL.cpp",
- "DLL_Manager.cpp",
- "Dynamic_Service_Base.cpp",
- "Parse_Node.cpp",
- "Service_Config.cpp",
- "Service_Manager.cpp",
- "Service_Object.cpp",
- "Service_Repository.cpp",
- "Service_Types.cpp",
- "Service_Templates.cpp",
- "Shared_Object.cpp",
- "XML_Svc_Conf.cpp",
- "Svc_Conf_l.cpp",
- "Svc_Conf_y.cpp",
- "Svc_Conf_Lexer_Guard.cpp"
-
-group SVCCONF_INCLUDES =
- "DLL.h",
- "DLL_Manager.h",
- "Dynamic_Service_Base.h",
- "Parse_Node.h",
- "Service_Config.h",
- "Service_Manager.h",
- "Service_Object.h",
- "Service_Repository.h",
- "Service_Types.h",
- "Service_Templates.h",
- "Shared_Object.h",
- "Svc_Conf.h",
- "XML_Svc_Conf.h"
-
-group STREAMS_FILES =
- "CDR_Base.cpp",
- "CDR_Stream.cpp",
- "Codeset_IBM1047.cpp",
- "Codeset_Registry.cpp",
- "Codeset_Registry_db.cpp",
- "Message_Queue.cpp",
- "Reactor_Notification_Strategy.cpp",
- "Task.cpp"
-
-group STREAMS_INCLUDES =
- "CDR_Base.h",
- "CDR_Stream.h",
- "Codeset_IBM1047.h",
- "Message_Queue.h",
- "Reactor_Notification_Strategy.h",
- "Task.h"
-
-group MEMORY_FILES =
- "Based_Pointer_Repository.cpp",
- "Malloc.cpp",
- "PI_Malloc.cpp",
- "Malloc_Allocator.cpp",
- "Malloc_Instantiations.cpp",
- "Mem_Map.cpp",
- "Memory_Pool.cpp",
- "Obchunk.cpp",
- "Obstack.cpp",
- "Read_Buffer.cpp",
- "Shared_Memory.cpp",
- "Shared_Memory_MM.cpp",
- "Shared_Memory_SV.cpp"
-
-group MEMORY_INCLUDES =
- "Based_Pointer_Repository.h",
- "Malloc.h",
- "PI_Malloc.h",
- "Malloc_Allocator.h",
- "Mem_Map.h",
- "Memory_Pool.h",
- "Obchunk.h",
- "Obstack.h",
- "Read_Buffer.h",
- "Shared_Memory.h",
- "Shared_Memory_MM.h",
- "Shared_Memory_SV.h"
-
-group TIMER_FILES =
- "Basic_Stats.cpp",
- "High_Res_Timer.cpp",
- "Profile_Timer.cpp",
- "System_Time.cpp",
- "Time_Request_Reply.cpp",
- "Timeprobe.cpp",
- "Timer_Hash.cpp",
- "Timer_Heap.cpp",
- "Timer_List.cpp",
- "Timer_Queue.cpp",
- "Timer_Wheel.cpp"
-
-group TIMER_INCLUDES =
- "Basic_Stats.h",
- "High_Res_Timer.h",
- "Profile_Timer.h",
- "System_Time.h",
- "Time_Request_Reply.h",
- "Timeprobe.h",
- "Timer_Hash.h",
- "Timer_Heap.h",
- "Timer_List.h",
- "Timer_Queue.h",
- "Timer_Wheel.h"
-
-group TOKEN_FILES =
- "Local_Tokens.cpp",
- "Remote_Tokens.cpp",
- "Token_Collection.cpp",
- "Token_Invariants.cpp",
- "Token_Manager.cpp",
- "Token_Request_Reply.cpp"
-
-group TOKEN_INCLUDES =
- "Local_Tokens.h",
- "Remote_Tokens.h",
- "Token_Collection.h",
- "Token_Invariants.h",
- "Token_Manager.h",
- "Token_Request_Reply.h"
-
-group CODECS_FILES =
- "Codecs.cpp"
-
-group CODECS_INCLUDES =
- "Codecs.h"
-
-group OTHER_FILES =
- "Local_Name_Space.cpp",
- "Name_Proxy.cpp",
- "Name_Request_Reply.cpp",
- "Name_Space.cpp",
- "Naming_Context.cpp",
- "Registry_Name_Space.cpp",
- "Remote_Name_Space.cpp"
-
-group OTHER_INCLUDES =
- "Local_Name_Space.h",
- "Name_Proxy.h",
- "Name_Request_Reply.h",
- "Name_Space.h",
- "Naming_Context.h",
- "Registry_Name_Space.h",
- "Remote_Name_Space.h"
-
-group TEMPLATE_FILES =
- "Acceptor.cpp",
- "Active_Map_Manager_T.cpp",
- "Array_Base.cpp",
- "Node.cpp",
- "Unbounded_Set.cpp",
- "Unbounded_Queue.cpp",
- "Asynch_Acceptor.cpp",
- "Asynch_Connector.cpp",
- "Atomic_Op_T.cpp",
- "Auto_IncDec_T.cpp",
- "Auto_Ptr.cpp",
- "Based_Pointer_T.cpp",
- "Connector.cpp",
- "Containers_T.cpp",
- "Cache_Map_Manager_T.cpp",
- "Cached_Connect_Strategy_T.cpp",
- "Caching_Strategies_T.cpp",
- "Caching_Utility_T.cpp",
- "Cleanup_Strategies_T.cpp",
- "Dump_T.cpp",
- "Dynamic_Service.cpp",
- "Env_Value_T.cpp",
- "Event_Handler_T.cpp",
- "Framework_Component_T.cpp",
- "Free_List.cpp",
- "Functor_T.cpp",
- "Future.cpp",
- "Future_Set.cpp",
- "Hash_Map_Manager_T.cpp",
- "Hash_Map_With_Allocator_T.cpp",
- "Hash_Cache_Map_Manager_T.cpp",
- "IOStream_T.cpp",
- "Intrusive_List.cpp",
- "Intrusive_List_Node.cpp",
- "LOCK_SOCK_Acceptor.cpp",
- "Local_Name_Space_T.cpp",
- "Malloc_T.cpp",
- "Managed_Object.cpp",
- "Map_Manager.cpp",
- "Map_T.cpp",
- "Message_Block_T.cpp",
- "Message_Queue_T.cpp",
- "Module.cpp",
- "Obstack_T.cpp",
- "Pair_T.cpp",
- "RB_Tree.cpp",
- "Select_Reactor_T.cpp",
- "Singleton.cpp",
- "Strategies_T.cpp",
- "Stream.cpp",
- "Stream_Modules.cpp",
- "String_Base.cpp",
- "Svc_Handler.cpp",
- "Synch_T.cpp",
- "Task_T.cpp",
- "Template_Instantiations.cpp",
- "Test_and_Set.cpp",
- "Timeprobe_T.cpp",
- "Timer_Hash_T.cpp",
- "Timer_Heap_T.cpp",
- "Timer_List_T.cpp",
- "Timer_Queue_Adapters.cpp",
- "Timer_Queue_T.cpp",
- "Timer_Wheel_T.cpp",
- "Typed_SV_Message.cpp",
- "Typed_SV_Message_Queue.cpp",
- "Vector_T.cpp"
-
-option
- PlatformOptions,
- link(exportAll),
- link(linkwithsharedlib),
- link(linkWithMultiThreadLib,yes),
- incl(searchpath, "..")
- {
- target type ( shr ) "shr.o"
- {
- run after sources("shr.o") targets ("libACE.a") "ar -r -u libACE.a shr.o", "rm -rf shr.o"
- run cleanup "rm -rf libACE.a shr.o"
-
- option macros(global)
- {
- source type(hpp) "wchar.h"
- source type(hpp) "wcstr.h"
- source type(hpp)
- OS_INCLUDES,
- UTILS_INCLUDES,
- LOGGING_INCLUDES,
- THREADS_INCLUDES,
- DEMUX_INCLUDES,
- CONNECTION_INCLUDES,
- SOCKETS_INCLUDES,
- IPC_INCLUDES,
- SVCCONF_INCLUDES,
- STREAMS_INCLUDES,
- MEMORY_INCLUDES,
- TIMER_INCLUDES,
- TOKEN_INCLUDES,
- CODECS_INCLUDES,
- OTHER_INCLUDES,
- "config.h",
- "config-aix-4.x.h",
- "config-all.h",
- "iosfwd.h",
- "streams.h",
- "Version.h"
- }
- source type(cpp)
- OS_FILES,
- UTILS_FILES,
- LOGGING_FILES,
- THREADS_FILES,
- DEMUX_FILES,
- CONNECTION_FILES,
- SOCKETS_FILES,
- IPC_FILES,
- SVCCONF_FILES,
- STREAMS_FILES,
- MEMORY_FILES,
- TIMER_FILES,
- TOKEN_FILES,
- CODECS_FILES,
- OTHER_FILES
- if ($__IBMCPP__ >= 500) {
- source type(cpp) TEMPLATE_FILES
- }
- source type (lib) "libtli_r.a"
- source type (lib) "libpthreads.a"
- source type (lib) "libc_r.a"
- source type (lib) "libdl.a"
- // Imports
- source type (imp) "pse.exp"
- }
- }
-
diff --git a/ace/ace.icp b/ace/ace.icp
deleted file mode 100644
index f0f4006aa26..00000000000
--- a/ace/ace.icp
+++ /dev/null
@@ -1,7 +0,0 @@
-// $Id$
-//
-// Visual Age C++ 5 project file for building libACE.
-
-subproject ace icc "ace.icc", ics "ace.ics"
-{
-}
diff --git a/ace/ace.mpc b/ace/ace.mpc
deleted file mode 100644
index 99c65e535e2..00000000000
--- a/ace/ace.mpc
+++ /dev/null
@@ -1,395 +0,0 @@
-project : acelib, core {
- sharedname = ACE
- install =
- defaultlibs =
- dllflags = ACE_BUILD_DLL ACE_OS_BUILD_DLL
- include_dir = ace
-
- Source_Files(ACE_COMPONENTS) {
- OS {
- Basic_Types.cpp
- Time_Value.cpp
- OS.cpp
- OS_Dirent.cpp
- OS_Memory.cpp
- OS_QoS.cpp
- OS_String.cpp
- OS_TLI.cpp
- OS_Errno.cpp
- Base_Thread_Adapter.cpp
- OS_Thread_Adapter.cpp
- OS_Log_Msg_Attributes.cpp
- Thread_Hook.cpp
- Sched_Params.cpp
- Handle_Set.cpp
- Copy_Disabled.cpp
- Date_Time.cpp
- gethrtime.cpp
- }
-
- Utils {
- ACE.cpp
- Active_Map_Manager.cpp
- Arg_Shifter.cpp
- ARGV.cpp
- Argv_Type_Converter.cpp
- Capabilities.cpp
- Containers.cpp
- Configuration.cpp
- Configuration_Import_Export.cpp
- Dirent.cpp
- Dirent_Selector.cpp
- Dynamic.cpp
- Flag_Manip.cpp
- Framework_Component.cpp
- Functor.cpp
- Get_Opt.cpp
- Hash_Map_Manager.cpp
- Connection_Recycling_Strategy.cpp
- Hashable.cpp
- Notification_Strategy.cpp
- Recyclable.cpp
- Refcountable.cpp
- Handle_Ops.cpp
- Init_ACE.cpp
- Lib_Find.cpp
- Message_Block.cpp
- Method_Request.cpp
- Object_Manager.cpp
- Registry.cpp
- String_Base_Const.cpp
- SString.cpp
- Stats.cpp
- Sample_History.cpp
- }
-
- Filecache {
- Filecache.cpp
- }
-
- Logging {
- Dump.cpp
- Log_Msg.cpp
- Log_Msg_Callback.cpp
- Log_Msg_Backend.cpp
- Log_Msg_IPC.cpp
- Log_Msg_NT_Event_Log.cpp
- Log_Msg_UNIX_Syslog.cpp
- Log_Record.cpp
- Logging_Strategy.cpp
- Trace.cpp
- }
-
- Threads {
- Activation_Queue.cpp
- Atomic_Op.cpp
- Process.cpp
- Process_Manager.cpp
- Synch.cpp
- Synch_Options.cpp
- Process_Semaphore.cpp
- Process_Mutex.cpp
- RW_Process_Mutex.cpp
- File_Lock.cpp
- Thread.cpp
- Thread_Manager.cpp
- Thread_Adapter.cpp
- Thread_Exit.cpp
- Thread_Control.cpp
- Token.cpp
- }
-
- Demux {
- Event_Handler.cpp
- FlReactor.cpp
- Msg_WFMO_Reactor.cpp
- POSIX_Proactor.cpp
- POSIX_CB_Proactor.cpp
- WIN32_Proactor.cpp
- Priority_Reactor.cpp
- Proactor.cpp
- Reactor.cpp
- Select_Reactor.cpp
- Select_Reactor_Base.cpp
- SUN_Proactor.cpp
- Dev_Poll_Reactor.cpp
- TP_Reactor.cpp
- TkReactor.cpp
- WFMO_Reactor.cpp
- XtReactor.cpp
- QtReactor.cpp
- }
-
- Connection {
- Asynch_IO.cpp
- Asynch_IO_Impl.cpp
- Asynch_Pseudo_Task.cpp
- POSIX_Asynch_IO.cpp
- WIN32_Asynch_IO.cpp
- }
-
- Sockets {
- Addr.cpp
- INET_Addr.cpp
- IPC_SAP.cpp
- LSOCK.cpp
- LSOCK_Acceptor.cpp
- LSOCK_CODgram.cpp
- LSOCK_Connector.cpp
- LSOCK_Dgram.cpp
- LSOCK_Stream.cpp
- SOCK.cpp
- SOCK_Acceptor.cpp
- SOCK_CODgram.cpp
- Sock_Connect.cpp
- SOCK_Connector.cpp
- SOCK_Dgram.cpp
- SOCK_Dgram_Bcast.cpp
- SOCK_Dgram_Mcast.cpp
- SOCK_IO.cpp
- SOCK_Stream.cpp
- }
-
- IPC {
- ATM_Addr.cpp
- ATM_Acceptor.cpp
- ATM_Connector.cpp
- ATM_Params.cpp
- ATM_QoS.cpp
- ATM_Stream.cpp
- XTI_ATM_Mcast.cpp
- DEV.cpp
- DEV_Addr.cpp
- DEV_Connector.cpp
- DEV_IO.cpp
- FIFO.cpp
- FIFO_Recv.cpp
- FIFO_Recv_Msg.cpp
- FIFO_Send.cpp
- FIFO_Send_Msg.cpp
- FILE_Addr.cpp
- FILE.cpp
- FILE_Connector.cpp
- FILE_IO.cpp
- IO_SAP.cpp
- IOStream.cpp
- Pipe.cpp
- Signal.cpp
- SPIPE_Addr.cpp
- SPIPE.cpp
- SPIPE_Acceptor.cpp
- SPIPE_Connector.cpp
- SPIPE_Stream.cpp
- SV_Message.cpp
- SV_Message_Queue.cpp
- SV_Semaphore_Complex.cpp
- SV_Semaphore_Simple.cpp
- SV_Shared_Memory.cpp
- TLI.cpp
- TLI_Acceptor.cpp
- TLI_Connector.cpp
- TLI_Stream.cpp
- TTY_IO.cpp
- UNIX_Addr.cpp
- UPIPE_Acceptor.cpp
- UPIPE_Connector.cpp
- UPIPE_Stream.cpp
- MEM_Acceptor.cpp
- MEM_Addr.cpp
- MEM_Connector.cpp
- MEM_IO.cpp
- MEM_SAP.cpp
- MEM_Stream.cpp
- }
-
- Svcconf {
- DLL.cpp
- DLL_Manager.cpp
- Dynamic_Service_Base.cpp
- Parse_Node.cpp
- Service_Config.cpp
- Service_Manager.cpp
- Service_Object.cpp
- Service_Repository.cpp
- Service_Types.cpp
- Service_Templates.cpp
- Shared_Object.cpp
- Svc_Conf_l.cpp
- Svc_Conf_y.cpp
- Svc_Conf_Lexer_Guard.cpp
- XML_Svc_Conf.cpp
- }
-
- Streams {
- CDR_Base.cpp
- CDR_Stream.cpp
- Codeset_IBM1047.cpp
- Codeset_Registry.cpp
- Codeset_Registry_db.cpp
- Message_Queue.cpp
- Reactor_Notification_Strategy.cpp
- Task.cpp
- }
-
- Memory {
- Based_Pointer_Repository.cpp
- Malloc.cpp
- PI_Malloc.cpp
- Malloc_Allocator.cpp
- Malloc_Instantiations.cpp
- Mem_Map.cpp
- Memory_Pool.cpp
- Obchunk.cpp
- Obstack.cpp
- Read_Buffer.cpp
- Shared_Memory.cpp
- Shared_Memory_MM.cpp
- Shared_Memory_SV.cpp
- }
-
- Timer {
- Basic_Stats.cpp
- High_Res_Timer.cpp
- Profile_Timer.cpp
- System_Time.cpp
- Time_Request_Reply.cpp
- Timeprobe.cpp
- Timer_Hash.cpp
- Timer_Heap.cpp
- Timer_List.cpp
- Timer_Queue.cpp
- Timer_Wheel.cpp
- }
-
- Token {
- Local_Tokens.cpp
- Remote_Tokens.cpp
- Token_Collection.cpp
- Token_Invariants.cpp
- Token_Manager.cpp
- Token_Request_Reply.cpp
- }
-
- Codecs {
- Codecs.cpp
- }
-
- Other {
- Local_Name_Space.cpp
- Name_Proxy.cpp
- Name_Request_Reply.cpp
- Name_Space.cpp
- Naming_Context.cpp
- Registry_Name_Space.cpp
- Remote_Name_Space.cpp
- NT_Service.cpp
- }
- }
-
- Template_Files {
- default {
- Acceptor.cpp
- Active_Map_Manager_T.cpp
- Array_Base.cpp
- Atomic_Op_T.cpp
- Node.cpp
- Unbounded_Set.cpp
- Unbounded_Queue.cpp
- Asynch_Acceptor.cpp
- Asynch_Connector.cpp
- Auto_IncDec_T.cpp
- Auto_Ptr.cpp
- Based_Pointer_T.cpp
- Connector.cpp
- Containers_T.cpp
- Cache_Map_Manager_T.cpp
- Cached_Connect_Strategy_T.cpp
- Caching_Strategies_T.cpp
- Caching_Utility_T.cpp
- Cleanup_Strategies_T.cpp
- Dump_T.cpp
- Dynamic_Service.cpp
- Env_Value_T.cpp
- Event_Handler_T.cpp
- Framework_Component_T.cpp
- Free_List.cpp
- Functor_T.cpp
- Future.cpp
- Future_Set.cpp
- Hash_Map_Manager_T.cpp
- Hash_Map_With_Allocator_T.cpp
- Hash_Cache_Map_Manager_T.cpp
- IOStream_T.cpp
- Intrusive_List.cpp
- Intrusive_List_Node.cpp
- LOCK_SOCK_Acceptor.cpp
- Local_Name_Space_T.cpp
- Malloc_T.cpp
- Managed_Object.cpp
- Map_Manager.cpp
- Map_T.cpp
- Message_Block_T.cpp
- Message_Queue_T.cpp
- Module.cpp
- Obstack_T.cpp
- Pair_T.cpp
- Refcounted_Auto_Ptr.cpp
- RB_Tree.cpp
- Select_Reactor_T.cpp
- Singleton.cpp
- Strategies_T.cpp
- Stream.cpp
- Stream_Modules.cpp
- String_Base.cpp
- Svc_Handler.cpp
- Synch_T.cpp
- Task_T.cpp
- Template_Instantiations.cpp
- Test_and_Set.cpp
- Timeprobe_T.cpp
- Timer_Hash_T.cpp
- Timer_Heap_T.cpp
- Timer_List_T.cpp
- Timer_Queue_Adapters.cpp
- Timer_Queue_T.cpp
- Timer_Wheel_T.cpp
- Typed_SV_Message.cpp
- Typed_SV_Message_Queue.cpp
- Vector_T.cpp
- }
- }
-
- Inline_Files {
- ace_wchar.inl
- }
-
- Header_Files {
- ACE_Export.h
- ace_wchar.h
- config-all.h
- config-win32-common.h
- config-win32-msvc.h
- config-win32.h
- config.h
- Default_Constants.h
- Global_Macros.h
- Log_Priority.h
- Malloc_Base.h
- Min_Max.h
- OS_Export.h
- post.h
- pre.h
- Proactor_Impl.h
- Reactor_Impl.h
- streams.h
- Svc_Conf.h
- Svc_Conf_Tokens.h
- UPIPE_Addr.h
- Version.h
- }
-
- Documentation_Files {
- README
- ../VERSION
- }
-}
diff --git a/ace/ace.mwc b/ace/ace.mwc
deleted file mode 100644
index 7f374d21c96..00000000000
--- a/ace/ace.mwc
+++ /dev/null
@@ -1,4 +0,0 @@
-workspace {
- ace.mpc
- RMCast/rmcast.mpc
-}
diff --git a/ace/ace.rc b/ace/ace.rc
deleted file mode 100644
index 54792491900..00000000000
--- a/ace/ace.rc
+++ /dev/null
@@ -1,38 +0,0 @@
-#include "Version.h"
-
-1 VERSIONINFO
- FILEVERSION ACE_MAJOR_VERSION,ACE_MINOR_VERSION,ACE_BETA_VERSION,0
- PRODUCTVERSION ACE_MAJOR_VERSION,ACE_MINOR_VERSION,ACE_BETA_VERSION,0
- FILEFLAGSMASK 0x3fL
- FILEFLAGS 0x0L
- FILEOS 0x4L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904B0"
- BEGIN
- VALUE "FileDescription", "ACE\0"
- VALUE "FileVersion", ACE_VERSION "\0"
- VALUE "InternalName", "ACEDLL\0"
- VALUE "LegalCopyright", "\0"
- VALUE "LegalTrademarks", "\0"
- VALUE "OriginalFilename", "ACE.DLL\0"
- VALUE "ProductName", "ACE\0"
- VALUE "ProductVersion", ACE_VERSION "\0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
-/*
- * The following resource is used by the ACE logger to write messages
- * to the NT event log. If you are statically linking to the ACE
- * library, and you wish to use the NT event log, you should copy this
- * message table to your application's resource script.
- */
-1 MESSAGETABLE ace_message_table.bin
diff --git a/ace/ace_ce_dll.cfg b/ace/ace_ce_dll.cfg
deleted file mode 100644
index 80c479b3205..00000000000
--- a/ace/ace_ce_dll.cfg
+++ /dev/null
@@ -1 +0,0 @@
-WCE_CFG=WCE200; \ No newline at end of file
diff --git a/ace/ace_dll.dsp b/ace/ace_dll.dsp
deleted file mode 100644
index 176d632c23f..00000000000
--- a/ace/ace_dll.dsp
+++ /dev/null
@@ -1,3444 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ACE DLL" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=ACE DLL - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "ace_dll.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "ace_dll.mak" CFG="ACE DLL - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ACE DLL - Win32 MFC Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "ACE DLL - Win32 MFC Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "ACE DLL - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "ACE DLL - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath "Desktop"
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "ACE DLL - Win32 MFC Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "ACE_DLL___Win32_MFC_Release"
-# PROP BASE Intermediate_Dir "ACE_DLL___Win32_MFC_Release"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "DLL\MFC_Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /GX /O2 /Ob2 /I "../" /D ACE_HAS_DLL=1 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /Ob2 /I "../" /I "../PACE" /D "NDEBUG" /D ACE_HAS_MFC=1 /D ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER=1 /D "WIN32" /D "_WINDOWS" /D "ACE_BUILD_DLL" /D "ACE_OS_BUILD_DLL" /FD /c
-# SUBTRACT CPP /Fr /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo /o".\ace.bsc"
-# ADD BSC32 /nologo /o".\ace.bsc"
-LINK32=link.exe
-# ADD BASE LINK32 advapi32.lib user32.lib /nologo /subsystem:windows /dll /pdb:".\ace-r.pdb" /machine:I386 /out:"..\bin\ace.dll"
-# SUBTRACT BASE LINK32 /pdb:none
-# ADD LINK32 advapi32.lib user32.lib /nologo /subsystem:windows /dll /pdb:".\acemfc.pdb" /map /debug /machine:I386 /out:"..\bin\acemfc.dll"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win32 MFC Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "ACE_DLL___Win32_MFC_Debug"
-# PROP BASE Intermediate_Dir "ACE_DLL___Win32_MFC_Debug"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "DLL\MFC_Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /Gy /I "../" /D ACE_HAS_DLL=1 /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /FD /c
-# SUBTRACT BASE CPP /YX /Yc /Yu
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /Gy /I "../" /I "../PACE" /D "_DEBUG" /D ACE_HAS_MFC=1 /D ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER=1 /D "WIN32" /D "_WINDOWS" /D "ACE_BUILD_DLL" /D "ACE_OS_BUILD_DLL" /FD /c
-# SUBTRACT CPP /YX /Yc /Yu
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo /o".\ace.bsc"
-# ADD BSC32 /nologo /o".\ace.bsc"
-LINK32=link.exe
-# ADD BASE LINK32 advapi32.lib user32.lib /nologo /subsystem:windows /dll /pdb:".\ace.pdb" /debug /machine:I386 /out:"..\bin\aced.dll" /pdbtype:sept
-# SUBTRACT BASE LINK32 /pdb:none
-# ADD LINK32 advapi32.lib user32.lib /nologo /subsystem:windows /dll /pdb:".\acemfcd.pdb" /debug /machine:I386 /out:"..\bin\acemfcd.dll"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\DLL\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /Ob2 /I "../" /I "../PACE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "ACE_BUILD_DLL" /D "ACE_OS_BUILD_DLL" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD BASE RSC /l 0x407 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo /o".\ace.bsc"
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 advapi32.lib user32.lib /nologo /subsystem:windows /dll /pdb:".\ace.pdb" /map /debug /machine:I386 /out:"..\bin\ace.dll"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ".\DLL\Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\DLL\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /Gy /I "../" /I "../PACE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "ACE_BUILD_DLL" /D "ACE_OS_BUILD_DLL" /FD /c
-# SUBTRACT CPP /Fr /YX /Yc /Yu
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD BASE RSC /l 0x407 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo /o".\ace.bsc"
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 advapi32.lib user32.lib /nologo /subsystem:windows /dll /pdb:".\aced.pdb" /debug /machine:I386 /out:"..\bin\aced.dll"
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "ACE DLL - Win32 MFC Release"
-# Name "ACE DLL - Win32 MFC Debug"
-# Name "ACE DLL - Win32 Release"
-# Name "ACE DLL - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp"
-# Begin Source File
-
-SOURCE=.\ACE.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Activation_Queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Active_Map_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Arg_Shifter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ARGV.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Argv_Type_Converter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_IO_Impl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Pseudo_Task.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Params.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_QoS.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Atomic_Op.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Base_Thread_Adapter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Based_Pointer_Repository.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Basic_Stats.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Basic_Types.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Capabilities.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\CDR_Base.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\CDR_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Codecs.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Codeset_Registry.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Codeset_Registry_db.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Configuration.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Configuration_Import_Export.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connection_Recycling_Strategy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Containers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Copy_Disabled.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Date_Time.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dirent.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dirent_Selector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\DLL.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\DLL_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dump.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic_Service.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic_Service_Base.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Recv.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Recv_Msg.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Send.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Send_Msg.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\File_Lock.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Filecache.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Flag_Manip.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Framework_Component.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Functor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Get_Opt.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Handle_Ops.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Handle_Set.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hashable.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\High_Res_Timer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\INET_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Init_ACE.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_Cntl_Msg.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_SAP.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IOStream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IPC_SAP.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Lib_Find.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Name_Space.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Tokens.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_Backend.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_Callback.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_IPC.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_NT_Event_Log.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_UNIX_Syslog.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Record.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Strategy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_CODgram.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Dgram.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_Allocator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_Instantiations.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Mem_Map.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_SAP.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Memory_Pool.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Block.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Method_Request.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Msg_WFMO_Reactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Multiplexor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Proxy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Request_Reply.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Space.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Naming_Context.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Notification_Strategy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\NT_Service.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obchunk.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Object_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obstack.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Dirent.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Errno.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Log_Msg_Attributes.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Memory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_QoS.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_String.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Thread_Adapter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_TLI.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pair.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Node.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\PI_Malloc.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipe.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\POSIX_Asynch_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\POSIX_Proactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Priority_Reactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Proactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Mutex.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Semaphore.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Profile_Timer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor_Notification_Strategy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Read_Buffer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Recyclable.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Refcountable.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Registry.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Registry_Name_Space.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Remote_Name_Space.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Remote_Tokens.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RW_Process_Mutex.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sample_History.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sched_Params.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor_Base.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Config.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Object.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Repository.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Templates.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Types.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory_MM.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory_SV.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Object.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Signal.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_CODgram.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sock_Connect.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Bcast.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SString.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stats.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\String_Base_Const.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Message.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Message_Queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Semaphore_Complex.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Semaphore_Simple.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Shared_Memory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Conf_l.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Conf_Lexer_Guard.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Conf_y.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch_Options.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\System_Time.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Template_Instantiations.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Adapter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Control.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Exit.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Hook.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Time_Request_Reply.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Time_Value.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timeprobe.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Hash.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Heap.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_List.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue_Adapters.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Wheel.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Collection.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Invariants.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Request_Reply.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TP_Reactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Trace.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TTY_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Typed_SV_Message.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Typed_SV_Message_Queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\UNIX_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\WFMO_Reactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\WIN32_Asynch_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\WIN32_Proactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\XML_Svc_Conf.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\XtReactor.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h"
-# Begin Source File
-
-SOURCE=.\Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ACE.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ACE_export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ace_wchar.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Activation_Queue.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Active_Map_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Active_Map_Manager_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Arg_Shifter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ARGV.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Argv_Type_Converter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_IO_Impl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Pseudo_Task.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Params.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_QoS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Atomic_Op.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Auto_Ptr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Base_Thread_Adapter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Based_Pointer_Repository.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Based_Pointer_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Basic_Stats.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Basic_Types.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Bound_Ptr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Map_Manager_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cached_Connect_Strategy_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Caching_Strategies_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Caching_Utility_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Capabilities.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\CDR_Base.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\CDR_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cleanup_Strategies_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Codecs.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Codeset_Registry.h
-# End Source File
-# Begin Source File
-
-SOURCE=".\config-all.h"
-# End Source File
-# Begin Source File
-
-SOURCE=".\config-all.h"
-# End Source File
-# Begin Source File
-
-SOURCE=".\config-win32-common.h"
-# End Source File
-# Begin Source File
-
-SOURCE=".\config-win32-msvc.h"
-# End Source File
-# Begin Source File
-
-SOURCE=".\config-win32.h"
-# End Source File
-# Begin Source File
-
-SOURCE=.\config.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Configuration.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Configuration_Import_Export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connection_Recycling_Strategy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Containers.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Containers_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Copy_Disabled.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Date_Time.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Default_Constants.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dirent.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dirent_Selector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\DLL.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\DLL_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dump.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dump_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic_Service.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic_Service_Base.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Handler_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Recv.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Recv_Msg.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Send.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Send_Msg.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\File_Lock.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Filecache.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Flag_Manip.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Framework_Component.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Free_List.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Functor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Functor_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Future.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Get_Opt.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Global_Macros.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Handle_Ops.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Handle_Set.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Cache_Map_Manager_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager_rt.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_With_Allocator_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hashable.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\High_Res_Timer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\INET_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Init_ACE.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_Cntl_Msg.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_SAP.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IOStream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IOStream_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IPC_SAP.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Lib_Find.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Name_Space.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Name_Space_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Tokens.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_Backend.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_Callback.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_IPC.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_NT_Event_Log.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_UNIX_Syslog.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Priority.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Record.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Strategy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_CODgram.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Dgram.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_Allocator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_Base.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Managed_Object.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Mem_Map.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_SAP.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Memory_Pool.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Block.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Block_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Queue.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Queue_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Method_Request.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Min_Max.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Module.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Msg_WFMO_Reactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Multiplexor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Proxy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Request_Reply.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Space.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Naming_Context.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Notification_Strategy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\NT_Service.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obchunk.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Object_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obstack.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obstack_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Dirent.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Errno.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Log_Msg_Attributes.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Memory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_QoS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_String.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Thread_Adapter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_TLI.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pair.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pair_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Node.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\PI_Malloc.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipe.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\POSIX_Asynch_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\POSIX_Proactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\post.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\pre.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Priority_Reactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Proactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Proactor_Impl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Mutex.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Semaphore.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Profile_Timer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Decorator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Impl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RB_Tree.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor_Impl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor_Notification_Strategy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Read_Buffer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Recyclable.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Refcountable.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Refcounted_Auto_Ptr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Registry.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Registry_Name_Space.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Remote_Name_Space.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Remote_Tokens.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RW_Process_Mutex.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sample_History.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sched_Params.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor_Base.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Config.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Object.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Repository.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Templates.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Types.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory_MM.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory_SV.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Object.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Signal.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Singleton.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_CODgram.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sock_Connect.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Bcast.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast_QoS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SString.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stats.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Strategies_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stream_Modules.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\streams.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\String_Base.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\String_Base_Const.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Message.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Message_Queue.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Semaphore_Complex.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Semaphore_Simple.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Shared_Memory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Conf.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Conf_Lexer_Guard.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Conf_Tokens.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\svc_export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch_Options.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\System_Time.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Test_and_Set.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Adapter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Control.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Exit.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Hook.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Time_Request_Reply.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Time_Value.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timeprobe.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Hash.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Hash_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Heap.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Heap_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_List.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_List_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue_Adapters.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Wheel.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Wheel_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Collection.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Invariants.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Request_Reply.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TP_Reactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Trace.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TTY_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Typed_SV_Message.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Typed_SV_Message_Queue.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Unbounded_Queue.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\UNIX_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Version.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\WFMO_Reactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\WIN32_Asynch_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\WIN32_Proactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\XML_Svc_Conf.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\XtReactor.h
-# End Source File
-# End Group
-# Begin Group "Inline Files"
-
-# PROP Default_Filter "i;inl"
-# Begin Source File
-
-SOURCE=.\Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ACE.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Activation_Queue.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Active_Map_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Active_Map_Manager_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ARGV.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Argv_Type_Converter.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_IO.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_IO_Impl.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Params.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_QoS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Atomic_Op.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Auto_Ptr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Base_Thread_Adapter.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Based_Pointer_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Basic_Stats.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Basic_Types.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Bound_Ptr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Map_Manager_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cached_Connect_Strategy_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Caching_Strategies_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Caching_Strategy_Utility_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Capabilities.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\CDR_Base.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\CDR_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cleanup_Strategies_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Codeset_Registry.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Containers.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Containers_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Date_Time.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_IO.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dirent.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dirent_Selector.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Handler.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Recv.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Recv_Msg.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Send.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Send_Msg.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_IO.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\File_Lock.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Flag_Manip.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Framework_Component.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Free_List.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Functor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Functor_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Get_Opt.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Handle_Ops.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Handle_Set.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Cache_Map_Manager_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager_rt.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_With_Allocator_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hashable.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\High_Res_Timer.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\INET_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Init_ACE.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_SAP.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\IOStream_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\IPC_SAP.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Lib_Find.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Tokens.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Record.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_CODgram.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Dgram.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_Allocator.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Managed_Object.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_IO.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Mem_Map.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_SAP.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Memory_Pool.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Block.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Block_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Queue.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Queue_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Module.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Msg_WFMO_Reactor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Multiplexor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Notification_Strategy.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\NT_Service.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Object_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obstack_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Dirent.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Errno.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Log_Msg_Attributes.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Memory.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_String.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Thread_Adapter.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_TLI.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pair_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Node.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\PI_Malloc.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipe.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\POSIX_Asynch_IO.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\POSIX_Proactor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Priority_Reactor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Proactor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Mutex.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Semaphore.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Profile_Timer.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Impl.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RB_Tree.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor_Notification_Strategy.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\ReactorEx.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Read_Buffer.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Recyclable.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Refcountable.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Refcounted_Auto_Ptr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Remote_Tokens.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RW_Process_Mutex.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sample_History.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sched_Params.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor_Base.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Config.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Object.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Repository.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Types.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory_MM.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory_SV.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Object.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Signal.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Singleton.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_CODgram.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sock_Connect.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Bcast.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast_QoS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_IO.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SString.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stats.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Strategies_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stream_Modules.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\String_Base.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Message.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Message_Queue.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Semaphore_Complex.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Semaphore_Simple.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Shared_Memory.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch_Options.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Test_and_Set.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Adapter.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Control.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Time_Value.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue_Adapters.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Collection.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Invariants.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Request_Reply.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\TP_Reactor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Trace.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Typed_SV_Message.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Typed_SV_Message_Queue.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\UNIX_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\WFMO_Reactor.i
-# End Source File
-# End Group
-# Begin Group "Template Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\Acceptor.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Active_Map_Manager_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Acceptor.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Auto_Ptr.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Based_Pointer_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Map_Manager_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cached_Connect_Strategy_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Caching_Strategies_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Caching_Utility_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cleanup_Strategies_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connector.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Containers_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dump_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Handler_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Framework_Component_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Free_List.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Functor_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Future.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Cache_Map_Manager_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_With_Allocator_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\IOStream_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Name_Space_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Managed_Object.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map_Manager.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Block_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Queue_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Module.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obstack_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pair_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\RB_Tree.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Singleton.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Strategies_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stream.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stream_Modules.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\String_Base.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Test_and_Set.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Hash_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Heap_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_List_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Wheel_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# End Group
-# Begin Group "Documentation"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\Readme
-# End Source File
-# Begin Source File
-
-SOURCE=..\Version
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=.\ace.rc
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/ace/ace_dll64.mak b/ace/ace_dll64.mak
deleted file mode 100644
index c629da7b67a..00000000000
--- a/ace/ace_dll64.mak
+++ /dev/null
@@ -1,3456 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on ace_dll.dsp
-!IF "$(CFG)" == ""
-CFG=ACE DLL - Win64 Debug
-!MESSAGE No configuration specified. Defaulting to ACE DLL - Win64 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "ACE DLL - Win64 MFC Release" && "$(CFG)" != "ACE DLL - Win64 MFC Debug" && "$(CFG)" != "ACE DLL - Win64 Release" && "$(CFG)" != "ACE DLL - Win64 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "ace_dll.mak" CFG="ACE DLL - Win64 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ACE DLL - Win64 MFC Release" (based on "Win64 (x86) Dynamic-Link Library")
-!MESSAGE "ACE DLL - Win64 MFC Debug" (based on "Win64 (x86) Dynamic-Link Library")
-!MESSAGE "ACE DLL - Win64 Release" (based on "Win64 (x86) Dynamic-Link Library")
-!MESSAGE "ACE DLL - Win64 Debug" (based on "Win64 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "ACE DLL - Win64 MFC Release"
-
-OUTDIR=.
-INTDIR=.\DLL\MFC_Release
-
-ALL : "..\bin\acemfc.dll"
-
-
-CLEAN :
- -@erase "$(INTDIR)\ACE.obj"
- -@erase "$(INTDIR)\ace.res"
- -@erase "$(INTDIR)\Activation_Queue.obj"
- -@erase "$(INTDIR)\Active_Map_Manager.obj"
- -@erase "$(INTDIR)\Addr.obj"
- -@erase "$(INTDIR)\Arg_Shifter.obj"
- -@erase "$(INTDIR)\ARGV.obj"
- -@erase "$(INTDIR)\Argv_Type_Converter.obj"
- -@erase "$(INTDIR)\Asynch_Connector.obj"
- -@erase "$(INTDIR)\Asynch_IO.obj"
- -@erase "$(INTDIR)\Asynch_IO_Impl.obj"
- -@erase "$(INTDIR)\Asynch_Pseudo_Task.obj"
- -@erase "$(INTDIR)\ATM_Acceptor.obj"
- -@erase "$(INTDIR)\ATM_Addr.obj"
- -@erase "$(INTDIR)\ATM_Connector.obj"
- -@erase "$(INTDIR)\ATM_Params.obj"
- -@erase "$(INTDIR)\ATM_QoS.obj"
- -@erase "$(INTDIR)\ATM_Stream.obj"
- -@erase "$(INTDIR)\Atomic_Op.obj"
- -@erase "$(INTDIR)\Base_Thread_Adapter.obj"
- -@erase "$(INTDIR)\Based_Pointer_Repository.obj"
- -@erase "$(INTDIR)\Basic_Stats.obj"
- -@erase "$(INTDIR)\Basic_Types.obj"
- -@erase "$(INTDIR)\Capabilities.obj"
- -@erase "$(INTDIR)\CDR_Base.obj"
- -@erase "$(INTDIR)\CDR_Stream.obj"
- -@erase "$(INTDIR)\Codecs.obj"
- -@erase "$(INTDIR)\Codeset_Registry.obj"
- -@erase "$(INTDIR)\Codeset_Registry_db.obj"
- -@erase "$(INTDIR)\Configuration.obj"
- -@erase "$(INTDIR)\Configuration_Import_Export.obj"
- -@erase "$(INTDIR)\Connection_Recycling_Strategy.obj"
- -@erase "$(INTDIR)\Containers.obj"
- -@erase "$(INTDIR)\Copy_Disabled.obj"
- -@erase "$(INTDIR)\Date_Time.obj"
- -@erase "$(INTDIR)\DEV.obj"
- -@erase "$(INTDIR)\DEV_Addr.obj"
- -@erase "$(INTDIR)\DEV_Connector.obj"
- -@erase "$(INTDIR)\DEV_IO.obj"
- -@erase "$(INTDIR)\Dirent.obj"
- -@erase "$(INTDIR)\Dirent_Selector.obj"
- -@erase "$(INTDIR)\DLL.obj"
- -@erase "$(INTDIR)\DLL_Manager.obj"
- -@erase "$(INTDIR)\Dump.obj"
- -@erase "$(INTDIR)\Dynamic.obj"
- -@erase "$(INTDIR)\Dynamic_Service.obj"
- -@erase "$(INTDIR)\Dynamic_Service_Base.obj"
- -@erase "$(INTDIR)\Event_Handler.obj"
- -@erase "$(INTDIR)\Event_Handler_T.obj"
- -@erase "$(INTDIR)\FIFO.obj"
- -@erase "$(INTDIR)\FIFO_Recv.obj"
- -@erase "$(INTDIR)\FIFO_Recv_Msg.obj"
- -@erase "$(INTDIR)\FIFO_Send.obj"
- -@erase "$(INTDIR)\FIFO_Send_Msg.obj"
- -@erase "$(INTDIR)\FILE.obj"
- -@erase "$(INTDIR)\FILE_Addr.obj"
- -@erase "$(INTDIR)\FILE_Connector.obj"
- -@erase "$(INTDIR)\FILE_IO.obj"
- -@erase "$(INTDIR)\File_Lock.obj"
- -@erase "$(INTDIR)\Filecache.obj"
- -@erase "$(INTDIR)\Flag_Manip.obj"
- -@erase "$(INTDIR)\Framework_Component.obj"
- -@erase "$(INTDIR)\Framework_Component_T.obj"
- -@erase "$(INTDIR)\Functor.obj"
- -@erase "$(INTDIR)\Get_Opt.obj"
- -@erase "$(INTDIR)\Handle_Ops.obj"
- -@erase "$(INTDIR)\Handle_Set.obj"
- -@erase "$(INTDIR)\Hash_Map_Manager.obj"
- -@erase "$(INTDIR)\Hashable.obj"
- -@erase "$(INTDIR)\High_Res_Timer.obj"
- -@erase "$(INTDIR)\INET_Addr.obj"
- -@erase "$(INTDIR)\Init_ACE.obj"
- -@erase "$(INTDIR)\IO_Cntl_Msg.obj"
- -@erase "$(INTDIR)\IO_SAP.obj"
- -@erase "$(INTDIR)\IOStream.obj"
- -@erase "$(INTDIR)\IPC_SAP.obj"
- -@erase "$(INTDIR)\Lib_Find.obj"
- -@erase "$(INTDIR)\Local_Name_Space.obj"
- -@erase "$(INTDIR)\Local_Tokens.obj"
- -@erase "$(INTDIR)\Log_Msg.obj"
- -@erase "$(INTDIR)\Log_Msg_Backend.obj"
- -@erase "$(INTDIR)\Log_Msg_Callback.obj"
- -@erase "$(INTDIR)\Log_Msg_IPC.obj"
- -@erase "$(INTDIR)\Log_Msg_NT_Event_Log.obj"
- -@erase "$(INTDIR)\Log_Msg_UNIX_Syslog.obj"
- -@erase "$(INTDIR)\Log_Record.obj"
- -@erase "$(INTDIR)\Logging_Strategy.obj"
- -@erase "$(INTDIR)\LSOCK.obj"
- -@erase "$(INTDIR)\LSOCK_Acceptor.obj"
- -@erase "$(INTDIR)\LSOCK_CODgram.obj"
- -@erase "$(INTDIR)\LSOCK_Connector.obj"
- -@erase "$(INTDIR)\LSOCK_Dgram.obj"
- -@erase "$(INTDIR)\LSOCK_Stream.obj"
- -@erase "$(INTDIR)\Malloc.obj"
- -@erase "$(INTDIR)\Malloc_Allocator.obj"
- -@erase "$(INTDIR)\Malloc_Instantiations.obj"
- -@erase "$(INTDIR)\Map.obj"
- -@erase "$(INTDIR)\MEM_Acceptor.obj"
- -@erase "$(INTDIR)\MEM_Addr.obj"
- -@erase "$(INTDIR)\MEM_Connector.obj"
- -@erase "$(INTDIR)\MEM_IO.obj"
- -@erase "$(INTDIR)\Mem_Map.obj"
- -@erase "$(INTDIR)\MEM_SAP.obj"
- -@erase "$(INTDIR)\MEM_Stream.obj"
- -@erase "$(INTDIR)\Memory_Pool.obj"
- -@erase "$(INTDIR)\Message_Block.obj"
- -@erase "$(INTDIR)\Message_Queue.obj"
- -@erase "$(INTDIR)\Method_Request.obj"
- -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj"
- -@erase "$(INTDIR)\Multiplexor.obj"
- -@erase "$(INTDIR)\Name_Proxy.obj"
- -@erase "$(INTDIR)\Name_Request_Reply.obj"
- -@erase "$(INTDIR)\Name_Space.obj"
- -@erase "$(INTDIR)\Naming_Context.obj"
- -@erase "$(INTDIR)\Notification_Strategy.obj"
- -@erase "$(INTDIR)\NT_Service.obj"
- -@erase "$(INTDIR)\Obchunk.obj"
- -@erase "$(INTDIR)\Object_Manager.obj"
- -@erase "$(INTDIR)\Obstack.obj"
- -@erase "$(INTDIR)\OS.obj"
- -@erase "$(INTDIR)\OS_Dirent.obj"
- -@erase "$(INTDIR)\OS_Errno.obj"
- -@erase "$(INTDIR)\OS_Log_Msg_Attributes.obj"
- -@erase "$(INTDIR)\OS_Memory.obj"
- -@erase "$(INTDIR)\OS_QoS.obj"
- -@erase "$(INTDIR)\OS_String.obj"
- -@erase "$(INTDIR)\OS_Thread_Adapter.obj"
- -@erase "$(INTDIR)\OS_TLI.obj"
- -@erase "$(INTDIR)\Pair.obj"
- -@erase "$(INTDIR)\Parse_Node.obj"
- -@erase "$(INTDIR)\PI_Malloc.obj"
- -@erase "$(INTDIR)\Pipe.obj"
- -@erase "$(INTDIR)\POSIX_Asynch_IO.obj"
- -@erase "$(INTDIR)\POSIX_Proactor.obj"
- -@erase "$(INTDIR)\Priority_Reactor.obj"
- -@erase "$(INTDIR)\Proactor.obj"
- -@erase "$(INTDIR)\Process.obj"
- -@erase "$(INTDIR)\Process_Manager.obj"
- -@erase "$(INTDIR)\Process_Mutex.obj"
- -@erase "$(INTDIR)\Process_Semaphore.obj"
- -@erase "$(INTDIR)\Profile_Timer.obj"
- -@erase "$(INTDIR)\Reactor.obj"
- -@erase "$(INTDIR)\Reactor_Notification_Strategy.obj"
- -@erase "$(INTDIR)\Read_Buffer.obj"
- -@erase "$(INTDIR)\Recyclable.obj"
- -@erase "$(INTDIR)\Refcountable.obj"
- -@erase "$(INTDIR)\Registry.obj"
- -@erase "$(INTDIR)\Registry_Name_Space.obj"
- -@erase "$(INTDIR)\Remote_Name_Space.obj"
- -@erase "$(INTDIR)\Remote_Tokens.obj"
- -@erase "$(INTDIR)\RW_Process_Mutex.obj"
- -@erase "$(INTDIR)\Sample_History.obj"
- -@erase "$(INTDIR)\Sched_Params.obj"
- -@erase "$(INTDIR)\Select_Reactor.obj"
- -@erase "$(INTDIR)\Select_Reactor_Base.obj"
- -@erase "$(INTDIR)\Service_Config.obj"
- -@erase "$(INTDIR)\Service_Manager.obj"
- -@erase "$(INTDIR)\Service_Object.obj"
- -@erase "$(INTDIR)\Service_Repository.obj"
- -@erase "$(INTDIR)\Service_Templates.obj"
- -@erase "$(INTDIR)\Service_Types.obj"
- -@erase "$(INTDIR)\Shared_Memory.obj"
- -@erase "$(INTDIR)\Shared_Memory_MM.obj"
- -@erase "$(INTDIR)\Shared_Memory_SV.obj"
- -@erase "$(INTDIR)\Shared_Object.obj"
- -@erase "$(INTDIR)\Signal.obj"
- -@erase "$(INTDIR)\SOCK.obj"
- -@erase "$(INTDIR)\SOCK_Acceptor.obj"
- -@erase "$(INTDIR)\SOCK_CODgram.obj"
- -@erase "$(INTDIR)\Sock_Connect.obj"
- -@erase "$(INTDIR)\SOCK_Connector.obj"
- -@erase "$(INTDIR)\SOCK_Dgram.obj"
- -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj"
- -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj"
- -@erase "$(INTDIR)\SOCK_IO.obj"
- -@erase "$(INTDIR)\SOCK_Stream.obj"
- -@erase "$(INTDIR)\SPIPE.obj"
- -@erase "$(INTDIR)\SPIPE_Acceptor.obj"
- -@erase "$(INTDIR)\SPIPE_Addr.obj"
- -@erase "$(INTDIR)\SPIPE_Connector.obj"
- -@erase "$(INTDIR)\SPIPE_Stream.obj"
- -@erase "$(INTDIR)\SString.obj"
- -@erase "$(INTDIR)\Stats.obj"
- -@erase "$(INTDIR)\String_Base_Const.obj"
- -@erase "$(INTDIR)\SV_Message.obj"
- -@erase "$(INTDIR)\SV_Message_Queue.obj"
- -@erase "$(INTDIR)\SV_Semaphore_Complex.obj"
- -@erase "$(INTDIR)\SV_Semaphore_Simple.obj"
- -@erase "$(INTDIR)\SV_Shared_Memory.obj"
- -@erase "$(INTDIR)\Svc_Conf_l.obj"
- -@erase "$(INTDIR)\Svc_Conf_Lexer_Guard.obj"
- -@erase "$(INTDIR)\Svc_Conf_y.obj"
- -@erase "$(INTDIR)\Svc_Handler.obj"
- -@erase "$(INTDIR)\Synch.obj"
- -@erase "$(INTDIR)\Synch_Options.obj"
- -@erase "$(INTDIR)\System_Time.obj"
- -@erase "$(INTDIR)\Task.obj"
- -@erase "$(INTDIR)\Template_Instantiations.obj"
- -@erase "$(INTDIR)\Thread.obj"
- -@erase "$(INTDIR)\Thread_Adapter.obj"
- -@erase "$(INTDIR)\Thread_Control.obj"
- -@erase "$(INTDIR)\Thread_Exit.obj"
- -@erase "$(INTDIR)\Thread_Hook.obj"
- -@erase "$(INTDIR)\Thread_Manager.obj"
- -@erase "$(INTDIR)\Time_Request_Reply.obj"
- -@erase "$(INTDIR)\Time_Value.obj"
- -@erase "$(INTDIR)\Timeprobe.obj"
- -@erase "$(INTDIR)\Timer_Hash.obj"
- -@erase "$(INTDIR)\Timer_Heap.obj"
- -@erase "$(INTDIR)\Timer_List.obj"
- -@erase "$(INTDIR)\Timer_Queue.obj"
- -@erase "$(INTDIR)\Timer_Queue_Adapters.obj"
- -@erase "$(INTDIR)\Timer_Wheel.obj"
- -@erase "$(INTDIR)\TLI.obj"
- -@erase "$(INTDIR)\TLI_Acceptor.obj"
- -@erase "$(INTDIR)\TLI_Connector.obj"
- -@erase "$(INTDIR)\TLI_Stream.obj"
- -@erase "$(INTDIR)\Token.obj"
- -@erase "$(INTDIR)\Token_Collection.obj"
- -@erase "$(INTDIR)\Token_Invariants.obj"
- -@erase "$(INTDIR)\Token_Manager.obj"
- -@erase "$(INTDIR)\Token_Request_Reply.obj"
- -@erase "$(INTDIR)\TP_Reactor.obj"
- -@erase "$(INTDIR)\Trace.obj"
- -@erase "$(INTDIR)\TTY_IO.obj"
- -@erase "$(INTDIR)\Typed_SV_Message.obj"
- -@erase "$(INTDIR)\Typed_SV_Message_Queue.obj"
- -@erase "$(INTDIR)\UNIX_Addr.obj"
- -@erase "$(INTDIR)\UPIPE_Acceptor.obj"
- -@erase "$(INTDIR)\UPIPE_Connector.obj"
- -@erase "$(INTDIR)\UPIPE_Stream.obj"
- -@erase "$(INTDIR)\vc60.idb"
- -@erase "$(INTDIR)\vc60.pdb"
- -@erase "$(INTDIR)\WFMO_Reactor.obj"
- -@erase "$(INTDIR)\WIN32_Asynch_IO.obj"
- -@erase "$(INTDIR)\WIN32_Proactor.obj"
- -@erase "$(INTDIR)\XML_Svc_Conf.obj"
- -@erase "$(INTDIR)\XtReactor.obj"
- -@erase "$(OUTDIR)\acemfc.exp"
- -@erase "$(OUTDIR)\acemfc.lib"
- -@erase "$(OUTDIR)\acemfc.pdb"
- -@erase "$(OUTDIR)\DLL\MFC_Release\acemfc.map"
- -@erase "..\bin\acemfc.dll"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Wp64 /GX /Zi /O2 /Ob2 /I "../" /D "NDEBUG" /D ACE_HAS_MFC=1 /D ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER=1 /D "WIN32" /D "_WINDOWS" /D "ACE_BUILD_DLL" /D "ACE_OS_BUILD_DLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
-RSC=rc.exe
-RSC_PROJ=/l 0x409 /fo"$(INTDIR)\ace.res" /d "NDEBUG"
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\ace.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=advapi32.lib user32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\acemfc.pdb" /map:"$(INTDIR)\acemfc.map" /debug /machine:IA64 /out:"..\bin\acemfc.dll" /implib:"$(OUTDIR)\acemfc.lib"
-LINK32_OBJS= \
- "$(INTDIR)\ACE.obj" \
- "$(INTDIR)\Activation_Queue.obj" \
- "$(INTDIR)\Active_Map_Manager.obj" \
- "$(INTDIR)\Addr.obj" \
- "$(INTDIR)\Arg_Shifter.obj" \
- "$(INTDIR)\ARGV.obj" \
- "$(INTDIR)\Argv_Type_Converter.obj" \
- "$(INTDIR)\Asynch_Connector.obj" \
- "$(INTDIR)\Asynch_IO.obj" \
- "$(INTDIR)\Asynch_IO_Impl.obj" \
- "$(INTDIR)\Asynch_Pseudo_Task.obj" \
- "$(INTDIR)\ATM_Acceptor.obj" \
- "$(INTDIR)\ATM_Addr.obj" \
- "$(INTDIR)\ATM_Connector.obj" \
- "$(INTDIR)\ATM_Params.obj" \
- "$(INTDIR)\ATM_QoS.obj" \
- "$(INTDIR)\ATM_Stream.obj" \
- "$(INTDIR)\Base_Thread_Adapter.obj" \
- "$(INTDIR)\Based_Pointer_Repository.obj" \
- "$(INTDIR)\Basic_Stats.obj" \
- "$(INTDIR)\Basic_Types.obj" \
- "$(INTDIR)\Capabilities.obj" \
- "$(INTDIR)\CDR_Base.obj" \
- "$(INTDIR)\CDR_Stream.obj" \
- "$(INTDIR)\Codecs.obj" \
- "$(INTDIR)\Codeset_Registry.obj"
- "$(INTDIR)\Codeset_Registry_db.obj"
- "$(INTDIR)\Configuration.obj" \
- "$(INTDIR)\Configuration_Import_Export.obj" \
- "$(INTDIR)\Connection_Recycling_Strategy.obj" \
- "$(INTDIR)\Containers.obj" \
- "$(INTDIR)\Copy_Disabled.obj" \
- "$(INTDIR)\Date_Time.obj" \
- "$(INTDIR)\DEV.obj" \
- "$(INTDIR)\DEV_Addr.obj" \
- "$(INTDIR)\DEV_Connector.obj" \
- "$(INTDIR)\DEV_IO.obj" \
- "$(INTDIR)\Dirent.obj" \
- "$(INTDIR)\Dirent_Selector.obj" \
- "$(INTDIR)\DLL.obj" \
- "$(INTDIR)\DLL_Manager.obj" \
- "$(INTDIR)\Dump.obj" \
- "$(INTDIR)\Dynamic.obj" \
- "$(INTDIR)\Dynamic_Service.obj" \
- "$(INTDIR)\Dynamic_Service_Base.obj" \
- "$(INTDIR)\Event_Handler.obj" \
- "$(INTDIR)\Event_Handler_T.obj" \
- "$(INTDIR)\FIFO.obj" \
- "$(INTDIR)\FIFO_Recv.obj" \
- "$(INTDIR)\FIFO_Recv_Msg.obj" \
- "$(INTDIR)\FIFO_Send.obj" \
- "$(INTDIR)\FIFO_Send_Msg.obj" \
- "$(INTDIR)\FILE.obj" \
- "$(INTDIR)\FILE_Addr.obj" \
- "$(INTDIR)\FILE_Connector.obj" \
- "$(INTDIR)\FILE_IO.obj" \
- "$(INTDIR)\File_Lock.obj" \
- "$(INTDIR)\Filecache.obj" \
- "$(INTDIR)\Flag_Manip.obj" \
- "$(INTDIR)\Framework_Component.obj" \
- "$(INTDIR)\Functor.obj" \
- "$(INTDIR)\Get_Opt.obj" \
- "$(INTDIR)\Handle_Ops.obj" \
- "$(INTDIR)\Handle_Set.obj" \
- "$(INTDIR)\Hash_Map_Manager.obj" \
- "$(INTDIR)\Hashable.obj" \
- "$(INTDIR)\High_Res_Timer.obj" \
- "$(INTDIR)\INET_Addr.obj" \
- "$(INTDIR)\Init_ACE.obj" \
- "$(INTDIR)\IO_Cntl_Msg.obj" \
- "$(INTDIR)\IO_SAP.obj" \
- "$(INTDIR)\IOStream.obj" \
- "$(INTDIR)\IPC_SAP.obj" \
- "$(INTDIR)\Lib_Find.obj" \
- "$(INTDIR)\Local_Name_Space.obj" \
- "$(INTDIR)\Local_Tokens.obj" \
- "$(INTDIR)\Log_Msg.obj" \
- "$(INTDIR)\Log_Msg_Backend.obj" \
- "$(INTDIR)\Log_Msg_Callback.obj" \
- "$(INTDIR)\Log_Msg_IPC.obj" \
- "$(INTDIR)\Log_Msg_NT_Event_Log.obj" \
- "$(INTDIR)\Log_Msg_UNIX_Syslog.obj" \
- "$(INTDIR)\Log_Record.obj" \
- "$(INTDIR)\Logging_Strategy.obj" \
- "$(INTDIR)\LSOCK.obj" \
- "$(INTDIR)\LSOCK_Acceptor.obj" \
- "$(INTDIR)\LSOCK_CODgram.obj" \
- "$(INTDIR)\LSOCK_Connector.obj" \
- "$(INTDIR)\LSOCK_Dgram.obj" \
- "$(INTDIR)\LSOCK_Stream.obj" \
- "$(INTDIR)\Malloc.obj" \
- "$(INTDIR)\Malloc_Allocator.obj" \
- "$(INTDIR)\Malloc_Instantiations.obj" \
- "$(INTDIR)\Map.obj" \
- "$(INTDIR)\MEM_Acceptor.obj" \
- "$(INTDIR)\MEM_Addr.obj" \
- "$(INTDIR)\MEM_Connector.obj" \
- "$(INTDIR)\MEM_IO.obj" \
- "$(INTDIR)\Mem_Map.obj" \
- "$(INTDIR)\MEM_SAP.obj" \
- "$(INTDIR)\MEM_Stream.obj" \
- "$(INTDIR)\Memory_Pool.obj" \
- "$(INTDIR)\Message_Block.obj" \
- "$(INTDIR)\Message_Queue.obj" \
- "$(INTDIR)\Method_Request.obj" \
- "$(INTDIR)\Msg_WFMO_Reactor.obj" \
- "$(INTDIR)\Multiplexor.obj" \
- "$(INTDIR)\Name_Proxy.obj" \
- "$(INTDIR)\Name_Request_Reply.obj" \
- "$(INTDIR)\Name_Space.obj" \
- "$(INTDIR)\Naming_Context.obj" \
- "$(INTDIR)\Notification_Strategy.obj" \
- "$(INTDIR)\NT_Service.obj" \
- "$(INTDIR)\Obchunk.obj" \
- "$(INTDIR)\Object_Manager.obj" \
- "$(INTDIR)\Obstack.obj" \
- "$(INTDIR)\OS.obj" \
- "$(INTDIR)\OS_Dirent.obj" \
- "$(INTDIR)\OS_Errno.obj" \
- "$(INTDIR)\OS_Log_Msg_Attributes.obj" \
- "$(INTDIR)\OS_Memory.obj" \
- "$(INTDIR)\OS_QoS.obj" \
- "$(INTDIR)\OS_String.obj" \
- "$(INTDIR)\OS_Thread_Adapter.obj" \
- "$(INTDIR)\OS_TLI.obj" \
- "$(INTDIR)\Pair.obj" \
- "$(INTDIR)\Parse_Node.obj" \
- "$(INTDIR)\PI_Malloc.obj" \
- "$(INTDIR)\Pipe.obj" \
- "$(INTDIR)\POSIX_Asynch_IO.obj" \
- "$(INTDIR)\POSIX_Proactor.obj" \
- "$(INTDIR)\Priority_Reactor.obj" \
- "$(INTDIR)\Proactor.obj" \
- "$(INTDIR)\Process.obj" \
- "$(INTDIR)\Process_Manager.obj" \
- "$(INTDIR)\Process_Mutex.obj" \
- "$(INTDIR)\Process_Semaphore.obj" \
- "$(INTDIR)\Profile_Timer.obj" \
- "$(INTDIR)\Reactor.obj" \
- "$(INTDIR)\Reactor_Notification_Strategy.obj" \
- "$(INTDIR)\Read_Buffer.obj" \
- "$(INTDIR)\Recyclable.obj" \
- "$(INTDIR)\Refcountable.obj" \
- "$(INTDIR)\Registry.obj" \
- "$(INTDIR)\Registry_Name_Space.obj" \
- "$(INTDIR)\Remote_Name_Space.obj" \
- "$(INTDIR)\Remote_Tokens.obj" \
- "$(INTDIR)\RW_Process_Mutex.obj" \
- "$(INTDIR)\Sample_History.obj" \
- "$(INTDIR)\Sched_Params.obj" \
- "$(INTDIR)\Select_Reactor.obj" \
- "$(INTDIR)\Select_Reactor_Base.obj" \
- "$(INTDIR)\Service_Config.obj" \
- "$(INTDIR)\Service_Manager.obj" \
- "$(INTDIR)\Service_Object.obj" \
- "$(INTDIR)\Service_Repository.obj" \
- "$(INTDIR)\Service_Templates.obj" \
- "$(INTDIR)\Service_Types.obj" \
- "$(INTDIR)\Shared_Memory.obj" \
- "$(INTDIR)\Shared_Memory_MM.obj" \
- "$(INTDIR)\Shared_Memory_SV.obj" \
- "$(INTDIR)\Shared_Object.obj" \
- "$(INTDIR)\Signal.obj" \
- "$(INTDIR)\SOCK.obj" \
- "$(INTDIR)\SOCK_Acceptor.obj" \
- "$(INTDIR)\SOCK_CODgram.obj" \
- "$(INTDIR)\Sock_Connect.obj" \
- "$(INTDIR)\SOCK_Connector.obj" \
- "$(INTDIR)\SOCK_Dgram.obj" \
- "$(INTDIR)\SOCK_Dgram_Bcast.obj" \
- "$(INTDIR)\SOCK_Dgram_Mcast.obj" \
- "$(INTDIR)\SOCK_IO.obj" \
- "$(INTDIR)\SOCK_Stream.obj" \
- "$(INTDIR)\SPIPE.obj" \
- "$(INTDIR)\SPIPE_Acceptor.obj" \
- "$(INTDIR)\SPIPE_Addr.obj" \
- "$(INTDIR)\SPIPE_Connector.obj" \
- "$(INTDIR)\SPIPE_Stream.obj" \
- "$(INTDIR)\SString.obj" \
- "$(INTDIR)\Stats.obj" \
- "$(INTDIR)\String_Base_Const.obj" \
- "$(INTDIR)\SV_Message.obj" \
- "$(INTDIR)\SV_Message_Queue.obj" \
- "$(INTDIR)\SV_Semaphore_Complex.obj" \
- "$(INTDIR)\SV_Semaphore_Simple.obj" \
- "$(INTDIR)\SV_Shared_Memory.obj" \
- "$(INTDIR)\Svc_Conf_l.obj" \
- "$(INTDIR)\Svc_Conf_Lexer_Guard.obj" \
- "$(INTDIR)\Svc_Conf_y.obj" \
- "$(INTDIR)\Svc_Handler.obj" \
- "$(INTDIR)\Synch.obj" \
- "$(INTDIR)\Synch_Options.obj" \
- "$(INTDIR)\System_Time.obj" \
- "$(INTDIR)\Task.obj" \
- "$(INTDIR)\Template_Instantiations.obj" \
- "$(INTDIR)\Thread.obj" \
- "$(INTDIR)\Thread_Adapter.obj" \
- "$(INTDIR)\Thread_Control.obj" \
- "$(INTDIR)\Thread_Exit.obj" \
- "$(INTDIR)\Thread_Hook.obj" \
- "$(INTDIR)\Thread_Manager.obj" \
- "$(INTDIR)\Time_Request_Reply.obj" \
- "$(INTDIR)\Time_Value.obj" \
- "$(INTDIR)\Timeprobe.obj" \
- "$(INTDIR)\Timer_Hash.obj" \
- "$(INTDIR)\Timer_Heap.obj" \
- "$(INTDIR)\Timer_List.obj" \
- "$(INTDIR)\Timer_Queue.obj" \
- "$(INTDIR)\Timer_Queue_Adapters.obj" \
- "$(INTDIR)\Timer_Wheel.obj" \
- "$(INTDIR)\TLI.obj" \
- "$(INTDIR)\TLI_Acceptor.obj" \
- "$(INTDIR)\TLI_Connector.obj" \
- "$(INTDIR)\TLI_Stream.obj" \
- "$(INTDIR)\Token.obj" \
- "$(INTDIR)\Token_Collection.obj" \
- "$(INTDIR)\Token_Invariants.obj" \
- "$(INTDIR)\Token_Manager.obj" \
- "$(INTDIR)\Token_Request_Reply.obj" \
- "$(INTDIR)\TP_Reactor.obj" \
- "$(INTDIR)\Trace.obj" \
- "$(INTDIR)\TTY_IO.obj" \
- "$(INTDIR)\Typed_SV_Message.obj" \
- "$(INTDIR)\Typed_SV_Message_Queue.obj" \
- "$(INTDIR)\UNIX_Addr.obj" \
- "$(INTDIR)\UPIPE_Acceptor.obj" \
- "$(INTDIR)\UPIPE_Connector.obj" \
- "$(INTDIR)\UPIPE_Stream.obj" \
- "$(INTDIR)\WFMO_Reactor.obj" \
- "$(INTDIR)\WIN32_Asynch_IO.obj" \
- "$(INTDIR)\WIN32_Proactor.obj" \
- "$(INTDIR)\XML_Svc_Conf.obj" \
- "$(INTDIR)\XtReactor.obj" \
- "$(INTDIR)\Atomic_Op.obj" \
- "$(INTDIR)\Framework_Component_T.obj" \
- "$(INTDIR)\ace.res"
-
-"..\bin\acemfc.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win64 MFC Debug"
-
-OUTDIR=.
-INTDIR=.\DLL\MFC_Debug
-
-ALL : "..\bin\acemfcd.dll"
-
-
-CLEAN :
- -@erase "$(INTDIR)\ACE.obj"
- -@erase "$(INTDIR)\ace.res"
- -@erase "$(INTDIR)\Activation_Queue.obj"
- -@erase "$(INTDIR)\Active_Map_Manager.obj"
- -@erase "$(INTDIR)\Addr.obj"
- -@erase "$(INTDIR)\Arg_Shifter.obj"
- -@erase "$(INTDIR)\ARGV.obj"
- -@erase "$(INTDIR)\Argv_Type_Converter.obj"
- -@erase "$(INTDIR)\Asynch_Connector.obj"
- -@erase "$(INTDIR)\Asynch_IO.obj"
- -@erase "$(INTDIR)\Asynch_IO_Impl.obj"
- -@erase "$(INTDIR)\Asynch_Pseudo_Task.obj"
- -@erase "$(INTDIR)\ATM_Acceptor.obj"
- -@erase "$(INTDIR)\ATM_Addr.obj"
- -@erase "$(INTDIR)\ATM_Connector.obj"
- -@erase "$(INTDIR)\ATM_Params.obj"
- -@erase "$(INTDIR)\ATM_QoS.obj"
- -@erase "$(INTDIR)\ATM_Stream.obj"
- -@erase "$(INTDIR)\Atomic_Op.obj"
- -@erase "$(INTDIR)\Base_Thread_Adapter.obj"
- -@erase "$(INTDIR)\Based_Pointer_Repository.obj"
- -@erase "$(INTDIR)\Basic_Stats.obj"
- -@erase "$(INTDIR)\Basic_Types.obj"
- -@erase "$(INTDIR)\Capabilities.obj"
- -@erase "$(INTDIR)\CDR_Base.obj"
- -@erase "$(INTDIR)\CDR_Stream.obj"
- -@erase "$(INTDIR)\Codecs.obj"
- -@erase "$(INTDIR)\Codeset_Registry.obj"
- -@erase "$(INTDIR)\Codeset_Registry_db.obj"
- -@erase "$(INTDIR)\Configuration.obj"
- -@erase "$(INTDIR)\Configuration_Import_Export.obj"
- -@erase "$(INTDIR)\Connection_Recycling_Strategy.obj"
- -@erase "$(INTDIR)\Containers.obj"
- -@erase "$(INTDIR)\Copy_Disabled.obj"
- -@erase "$(INTDIR)\Date_Time.obj"
- -@erase "$(INTDIR)\DEV.obj"
- -@erase "$(INTDIR)\DEV_Addr.obj"
- -@erase "$(INTDIR)\DEV_Connector.obj"
- -@erase "$(INTDIR)\DEV_IO.obj"
- -@erase "$(INTDIR)\Dirent.obj"
- -@erase "$(INTDIR)\Dirent_Selector.obj"
- -@erase "$(INTDIR)\DLL.obj"
- -@erase "$(INTDIR)\DLL_Manager.obj"
- -@erase "$(INTDIR)\Dump.obj"
- -@erase "$(INTDIR)\Dynamic.obj"
- -@erase "$(INTDIR)\Dynamic_Service.obj"
- -@erase "$(INTDIR)\Dynamic_Service_Base.obj"
- -@erase "$(INTDIR)\Event_Handler.obj"
- -@erase "$(INTDIR)\Event_Handler_T.obj"
- -@erase "$(INTDIR)\FIFO.obj"
- -@erase "$(INTDIR)\FIFO_Recv.obj"
- -@erase "$(INTDIR)\FIFO_Recv_Msg.obj"
- -@erase "$(INTDIR)\FIFO_Send.obj"
- -@erase "$(INTDIR)\FIFO_Send_Msg.obj"
- -@erase "$(INTDIR)\FILE.obj"
- -@erase "$(INTDIR)\FILE_Addr.obj"
- -@erase "$(INTDIR)\FILE_Connector.obj"
- -@erase "$(INTDIR)\FILE_IO.obj"
- -@erase "$(INTDIR)\File_Lock.obj"
- -@erase "$(INTDIR)\Filecache.obj"
- -@erase "$(INTDIR)\Flag_Manip.obj"
- -@erase "$(INTDIR)\Framework_Component.obj"
- -@erase "$(INTDIR)\Framework_Component_T.obj"
- -@erase "$(INTDIR)\Functor.obj"
- -@erase "$(INTDIR)\Get_Opt.obj"
- -@erase "$(INTDIR)\Handle_Ops.obj"
- -@erase "$(INTDIR)\Handle_Set.obj"
- -@erase "$(INTDIR)\Hash_Map_Manager.obj"
- -@erase "$(INTDIR)\Hashable.obj"
- -@erase "$(INTDIR)\High_Res_Timer.obj"
- -@erase "$(INTDIR)\INET_Addr.obj"
- -@erase "$(INTDIR)\Init_ACE.obj"
- -@erase "$(INTDIR)\IO_Cntl_Msg.obj"
- -@erase "$(INTDIR)\IO_SAP.obj"
- -@erase "$(INTDIR)\IOStream.obj"
- -@erase "$(INTDIR)\IPC_SAP.obj"
- -@erase "$(INTDIR)\Lib_Find.obj"
- -@erase "$(INTDIR)\Local_Name_Space.obj"
- -@erase "$(INTDIR)\Local_Tokens.obj"
- -@erase "$(INTDIR)\Log_Msg.obj"
- -@erase "$(INTDIR)\Log_Msg_Backend.obj"
- -@erase "$(INTDIR)\Log_Msg_Callback.obj"
- -@erase "$(INTDIR)\Log_Msg_IPC.obj"
- -@erase "$(INTDIR)\Log_Msg_NT_Event_Log.obj"
- -@erase "$(INTDIR)\Log_Msg_UNIX_Syslog.obj"
- -@erase "$(INTDIR)\Log_Record.obj"
- -@erase "$(INTDIR)\Logging_Strategy.obj"
- -@erase "$(INTDIR)\LSOCK.obj"
- -@erase "$(INTDIR)\LSOCK_Acceptor.obj"
- -@erase "$(INTDIR)\LSOCK_CODgram.obj"
- -@erase "$(INTDIR)\LSOCK_Connector.obj"
- -@erase "$(INTDIR)\LSOCK_Dgram.obj"
- -@erase "$(INTDIR)\LSOCK_Stream.obj"
- -@erase "$(INTDIR)\Malloc.obj"
- -@erase "$(INTDIR)\Malloc_Allocator.obj"
- -@erase "$(INTDIR)\Malloc_Instantiations.obj"
- -@erase "$(INTDIR)\Map.obj"
- -@erase "$(INTDIR)\MEM_Acceptor.obj"
- -@erase "$(INTDIR)\MEM_Addr.obj"
- -@erase "$(INTDIR)\MEM_Connector.obj"
- -@erase "$(INTDIR)\MEM_IO.obj"
- -@erase "$(INTDIR)\Mem_Map.obj"
- -@erase "$(INTDIR)\MEM_SAP.obj"
- -@erase "$(INTDIR)\MEM_Stream.obj"
- -@erase "$(INTDIR)\Memory_Pool.obj"
- -@erase "$(INTDIR)\Message_Block.obj"
- -@erase "$(INTDIR)\Message_Queue.obj"
- -@erase "$(INTDIR)\Method_Request.obj"
- -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj"
- -@erase "$(INTDIR)\Multiplexor.obj"
- -@erase "$(INTDIR)\Name_Proxy.obj"
- -@erase "$(INTDIR)\Name_Request_Reply.obj"
- -@erase "$(INTDIR)\Name_Space.obj"
- -@erase "$(INTDIR)\Naming_Context.obj"
- -@erase "$(INTDIR)\Notification_Strategy.obj"
- -@erase "$(INTDIR)\NT_Service.obj"
- -@erase "$(INTDIR)\Obchunk.obj"
- -@erase "$(INTDIR)\Object_Manager.obj"
- -@erase "$(INTDIR)\Obstack.obj"
- -@erase "$(INTDIR)\OS.obj"
- -@erase "$(INTDIR)\OS_Dirent.obj"
- -@erase "$(INTDIR)\OS_Errno.obj"
- -@erase "$(INTDIR)\OS_Log_Msg_Attributes.obj"
- -@erase "$(INTDIR)\OS_Memory.obj"
- -@erase "$(INTDIR)\OS_QoS.obj"
- -@erase "$(INTDIR)\OS_String.obj"
- -@erase "$(INTDIR)\OS_Thread_Adapter.obj"
- -@erase "$(INTDIR)\OS_TLI.obj"
- -@erase "$(INTDIR)\Pair.obj"
- -@erase "$(INTDIR)\Parse_Node.obj"
- -@erase "$(INTDIR)\PI_Malloc.obj"
- -@erase "$(INTDIR)\Pipe.obj"
- -@erase "$(INTDIR)\POSIX_Asynch_IO.obj"
- -@erase "$(INTDIR)\POSIX_Proactor.obj"
- -@erase "$(INTDIR)\Priority_Reactor.obj"
- -@erase "$(INTDIR)\Proactor.obj"
- -@erase "$(INTDIR)\Process.obj"
- -@erase "$(INTDIR)\Process_Manager.obj"
- -@erase "$(INTDIR)\Process_Mutex.obj"
- -@erase "$(INTDIR)\Process_Semaphore.obj"
- -@erase "$(INTDIR)\Profile_Timer.obj"
- -@erase "$(INTDIR)\Reactor.obj"
- -@erase "$(INTDIR)\Reactor_Notification_Strategy.obj"
- -@erase "$(INTDIR)\Read_Buffer.obj"
- -@erase "$(INTDIR)\Recyclable.obj"
- -@erase "$(INTDIR)\Refcountable.obj"
- -@erase "$(INTDIR)\Registry.obj"
- -@erase "$(INTDIR)\Registry_Name_Space.obj"
- -@erase "$(INTDIR)\Remote_Name_Space.obj"
- -@erase "$(INTDIR)\Remote_Tokens.obj"
- -@erase "$(INTDIR)\RW_Process_Mutex.obj"
- -@erase "$(INTDIR)\Sample_History.obj"
- -@erase "$(INTDIR)\Sched_Params.obj"
- -@erase "$(INTDIR)\Select_Reactor.obj"
- -@erase "$(INTDIR)\Select_Reactor_Base.obj"
- -@erase "$(INTDIR)\Service_Config.obj"
- -@erase "$(INTDIR)\Service_Manager.obj"
- -@erase "$(INTDIR)\Service_Object.obj"
- -@erase "$(INTDIR)\Service_Repository.obj"
- -@erase "$(INTDIR)\Service_Templates.obj"
- -@erase "$(INTDIR)\Service_Types.obj"
- -@erase "$(INTDIR)\Shared_Memory.obj"
- -@erase "$(INTDIR)\Shared_Memory_MM.obj"
- -@erase "$(INTDIR)\Shared_Memory_SV.obj"
- -@erase "$(INTDIR)\Shared_Object.obj"
- -@erase "$(INTDIR)\Signal.obj"
- -@erase "$(INTDIR)\SOCK.obj"
- -@erase "$(INTDIR)\SOCK_Acceptor.obj"
- -@erase "$(INTDIR)\SOCK_CODgram.obj"
- -@erase "$(INTDIR)\Sock_Connect.obj"
- -@erase "$(INTDIR)\SOCK_Connector.obj"
- -@erase "$(INTDIR)\SOCK_Dgram.obj"
- -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj"
- -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj"
- -@erase "$(INTDIR)\SOCK_IO.obj"
- -@erase "$(INTDIR)\SOCK_Stream.obj"
- -@erase "$(INTDIR)\SPIPE.obj"
- -@erase "$(INTDIR)\SPIPE_Acceptor.obj"
- -@erase "$(INTDIR)\SPIPE_Addr.obj"
- -@erase "$(INTDIR)\SPIPE_Connector.obj"
- -@erase "$(INTDIR)\SPIPE_Stream.obj"
- -@erase "$(INTDIR)\SString.obj"
- -@erase "$(INTDIR)\Stats.obj"
- -@erase "$(INTDIR)\String_Base_Const.obj"
- -@erase "$(INTDIR)\SV_Message.obj"
- -@erase "$(INTDIR)\SV_Message_Queue.obj"
- -@erase "$(INTDIR)\SV_Semaphore_Complex.obj"
- -@erase "$(INTDIR)\SV_Semaphore_Simple.obj"
- -@erase "$(INTDIR)\SV_Shared_Memory.obj"
- -@erase "$(INTDIR)\Svc_Conf_l.obj"
- -@erase "$(INTDIR)\Svc_Conf_Lexer_Guard.obj"
- -@erase "$(INTDIR)\Svc_Conf_y.obj"
- -@erase "$(INTDIR)\Svc_Handler.obj"
- -@erase "$(INTDIR)\Synch.obj"
- -@erase "$(INTDIR)\Synch_Options.obj"
- -@erase "$(INTDIR)\System_Time.obj"
- -@erase "$(INTDIR)\Task.obj"
- -@erase "$(INTDIR)\Template_Instantiations.obj"
- -@erase "$(INTDIR)\Thread.obj"
- -@erase "$(INTDIR)\Thread_Adapter.obj"
- -@erase "$(INTDIR)\Thread_Control.obj"
- -@erase "$(INTDIR)\Thread_Exit.obj"
- -@erase "$(INTDIR)\Thread_Hook.obj"
- -@erase "$(INTDIR)\Thread_Manager.obj"
- -@erase "$(INTDIR)\Time_Request_Reply.obj"
- -@erase "$(INTDIR)\Time_Value.obj"
- -@erase "$(INTDIR)\Timeprobe.obj"
- -@erase "$(INTDIR)\Timer_Hash.obj"
- -@erase "$(INTDIR)\Timer_Heap.obj"
- -@erase "$(INTDIR)\Timer_List.obj"
- -@erase "$(INTDIR)\Timer_Queue.obj"
- -@erase "$(INTDIR)\Timer_Queue_Adapters.obj"
- -@erase "$(INTDIR)\Timer_Wheel.obj"
- -@erase "$(INTDIR)\TLI.obj"
- -@erase "$(INTDIR)\TLI_Acceptor.obj"
- -@erase "$(INTDIR)\TLI_Connector.obj"
- -@erase "$(INTDIR)\TLI_Stream.obj"
- -@erase "$(INTDIR)\Token.obj"
- -@erase "$(INTDIR)\Token_Collection.obj"
- -@erase "$(INTDIR)\Token_Invariants.obj"
- -@erase "$(INTDIR)\Token_Manager.obj"
- -@erase "$(INTDIR)\Token_Request_Reply.obj"
- -@erase "$(INTDIR)\TP_Reactor.obj"
- -@erase "$(INTDIR)\Trace.obj"
- -@erase "$(INTDIR)\TTY_IO.obj"
- -@erase "$(INTDIR)\Typed_SV_Message.obj"
- -@erase "$(INTDIR)\Typed_SV_Message_Queue.obj"
- -@erase "$(INTDIR)\UNIX_Addr.obj"
- -@erase "$(INTDIR)\UPIPE_Acceptor.obj"
- -@erase "$(INTDIR)\UPIPE_Connector.obj"
- -@erase "$(INTDIR)\UPIPE_Stream.obj"
- -@erase "$(INTDIR)\vc60.idb"
- -@erase "$(INTDIR)\vc60.pdb"
- -@erase "$(INTDIR)\WFMO_Reactor.obj"
- -@erase "$(INTDIR)\WIN32_Asynch_IO.obj"
- -@erase "$(INTDIR)\WIN32_Proactor.obj"
- -@erase "$(INTDIR)\XML_Svc_Conf.obj"
- -@erase "$(INTDIR)\XtReactor.obj"
- -@erase "$(OUTDIR)\acemfcd.exp"
- -@erase "$(OUTDIR)\acemfcd.lib"
- -@erase "$(OUTDIR)\acemfcd.pdb"
- -@erase "..\bin\acemfcd.dll"
- -@erase "..\bin\acemfcd.ilk"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /Wp64 /Gm /GX /Zi /Od /Gy /I "../" /D "_DEBUG" /D ACE_HAS_MFC=1 /D ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER=1 /D "WIN32" /D "_WINDOWS" /D "ACE_BUILD_DLL" /D "ACE_OS_BUILD_DLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
-RSC=rc.exe
-RSC_PROJ=/l 0x409 /fo"$(INTDIR)\ace.res" /d "_DEBUG"
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\ace.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=advapi32.lib user32.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"$(OUTDIR)\acemfcd.pdb" /debug /machine:IA64 /out:"..\bin\acemfcd.dll" /implib:"$(OUTDIR)\acemfcd.lib"
-LINK32_OBJS= \
- "$(INTDIR)\ACE.obj" \
- "$(INTDIR)\Activation_Queue.obj" \
- "$(INTDIR)\Active_Map_Manager.obj" \
- "$(INTDIR)\Addr.obj" \
- "$(INTDIR)\Arg_Shifter.obj" \
- "$(INTDIR)\ARGV.obj" \
- "$(INTDIR)\Argv_Type_Converter.obj" \
- "$(INTDIR)\Asynch_Connector.obj" \
- "$(INTDIR)\Asynch_IO.obj" \
- "$(INTDIR)\Asynch_IO_Impl.obj" \
- "$(INTDIR)\Asynch_Pseudo_Task.obj" \
- "$(INTDIR)\ATM_Acceptor.obj" \
- "$(INTDIR)\ATM_Addr.obj" \
- "$(INTDIR)\ATM_Connector.obj" \
- "$(INTDIR)\ATM_Params.obj" \
- "$(INTDIR)\ATM_QoS.obj" \
- "$(INTDIR)\ATM_Stream.obj" \
- "$(INTDIR)\Base_Thread_Adapter.obj" \
- "$(INTDIR)\Based_Pointer_Repository.obj" \
- "$(INTDIR)\Basic_Stats.obj" \
- "$(INTDIR)\Basic_Types.obj" \
- "$(INTDIR)\Capabilities.obj" \
- "$(INTDIR)\CDR_Base.obj" \
- "$(INTDIR)\CDR_Stream.obj" \
- "$(INTDIR)\Codecs.obj" \
- "$(INTDIR)\Codeset_Registry.obj"
- "$(INTDIR)\Codeset_Registry_db.obj"
- "$(INTDIR)\Configuration.obj" \
- "$(INTDIR)\Configuration_Import_Export.obj" \
- "$(INTDIR)\Connection_Recycling_Strategy.obj" \
- "$(INTDIR)\Containers.obj" \
- "$(INTDIR)\Copy_Disabled.obj" \
- "$(INTDIR)\Date_Time.obj" \
- "$(INTDIR)\DEV.obj" \
- "$(INTDIR)\DEV_Addr.obj" \
- "$(INTDIR)\DEV_Connector.obj" \
- "$(INTDIR)\DEV_IO.obj" \
- "$(INTDIR)\Dirent.obj" \
- "$(INTDIR)\Dirent_Selector.obj" \
- "$(INTDIR)\DLL.obj" \
- "$(INTDIR)\DLL_Manager.obj" \
- "$(INTDIR)\Dump.obj" \
- "$(INTDIR)\Dynamic.obj" \
- "$(INTDIR)\Dynamic_Service.obj" \
- "$(INTDIR)\Dynamic_Service_Base.obj" \
- "$(INTDIR)\Event_Handler.obj" \
- "$(INTDIR)\Event_Handler_T.obj" \
- "$(INTDIR)\FIFO.obj" \
- "$(INTDIR)\FIFO_Recv.obj" \
- "$(INTDIR)\FIFO_Recv_Msg.obj" \
- "$(INTDIR)\FIFO_Send.obj" \
- "$(INTDIR)\FIFO_Send_Msg.obj" \
- "$(INTDIR)\FILE.obj" \
- "$(INTDIR)\FILE_Addr.obj" \
- "$(INTDIR)\FILE_Connector.obj" \
- "$(INTDIR)\FILE_IO.obj" \
- "$(INTDIR)\File_Lock.obj" \
- "$(INTDIR)\Filecache.obj" \
- "$(INTDIR)\Flag_Manip.obj" \
- "$(INTDIR)\Framework_Component.obj" \
- "$(INTDIR)\Functor.obj" \
- "$(INTDIR)\Get_Opt.obj" \
- "$(INTDIR)\Handle_Ops.obj" \
- "$(INTDIR)\Handle_Set.obj" \
- "$(INTDIR)\Hash_Map_Manager.obj" \
- "$(INTDIR)\Hashable.obj" \
- "$(INTDIR)\High_Res_Timer.obj" \
- "$(INTDIR)\INET_Addr.obj" \
- "$(INTDIR)\Init_ACE.obj" \
- "$(INTDIR)\IO_Cntl_Msg.obj" \
- "$(INTDIR)\IO_SAP.obj" \
- "$(INTDIR)\IOStream.obj" \
- "$(INTDIR)\IPC_SAP.obj" \
- "$(INTDIR)\Lib_Find.obj" \
- "$(INTDIR)\Local_Name_Space.obj" \
- "$(INTDIR)\Local_Tokens.obj" \
- "$(INTDIR)\Log_Msg.obj" \
- "$(INTDIR)\Log_Msg_Backend.obj" \
- "$(INTDIR)\Log_Msg_Callback.obj" \
- "$(INTDIR)\Log_Msg_IPC.obj" \
- "$(INTDIR)\Log_Msg_NT_Event_Log.obj" \
- "$(INTDIR)\Log_Msg_UNIX_Syslog.obj" \
- "$(INTDIR)\Log_Record.obj" \
- "$(INTDIR)\Logging_Strategy.obj" \
- "$(INTDIR)\LSOCK.obj" \
- "$(INTDIR)\LSOCK_Acceptor.obj" \
- "$(INTDIR)\LSOCK_CODgram.obj" \
- "$(INTDIR)\LSOCK_Connector.obj" \
- "$(INTDIR)\LSOCK_Dgram.obj" \
- "$(INTDIR)\LSOCK_Stream.obj" \
- "$(INTDIR)\Malloc.obj" \
- "$(INTDIR)\Malloc_Allocator.obj" \
- "$(INTDIR)\Malloc_Instantiations.obj" \
- "$(INTDIR)\Map.obj" \
- "$(INTDIR)\MEM_Acceptor.obj" \
- "$(INTDIR)\MEM_Addr.obj" \
- "$(INTDIR)\MEM_Connector.obj" \
- "$(INTDIR)\MEM_IO.obj" \
- "$(INTDIR)\Mem_Map.obj" \
- "$(INTDIR)\MEM_SAP.obj" \
- "$(INTDIR)\MEM_Stream.obj" \
- "$(INTDIR)\Memory_Pool.obj" \
- "$(INTDIR)\Message_Block.obj" \
- "$(INTDIR)\Message_Queue.obj" \
- "$(INTDIR)\Method_Request.obj" \
- "$(INTDIR)\Msg_WFMO_Reactor.obj" \
- "$(INTDIR)\Multiplexor.obj" \
- "$(INTDIR)\Name_Proxy.obj" \
- "$(INTDIR)\Name_Request_Reply.obj" \
- "$(INTDIR)\Name_Space.obj" \
- "$(INTDIR)\Naming_Context.obj" \
- "$(INTDIR)\Notification_Strategy.obj" \
- "$(INTDIR)\NT_Service.obj" \
- "$(INTDIR)\Obchunk.obj" \
- "$(INTDIR)\Object_Manager.obj" \
- "$(INTDIR)\Obstack.obj" \
- "$(INTDIR)\OS.obj" \
- "$(INTDIR)\OS_Dirent.obj" \
- "$(INTDIR)\OS_Errno.obj" \
- "$(INTDIR)\OS_Log_Msg_Attributes.obj" \
- "$(INTDIR)\OS_Memory.obj" \
- "$(INTDIR)\OS_QoS.obj" \
- "$(INTDIR)\OS_String.obj" \
- "$(INTDIR)\OS_Thread_Adapter.obj" \
- "$(INTDIR)\OS_TLI.obj" \
- "$(INTDIR)\Pair.obj" \
- "$(INTDIR)\Parse_Node.obj" \
- "$(INTDIR)\PI_Malloc.obj" \
- "$(INTDIR)\Pipe.obj" \
- "$(INTDIR)\POSIX_Asynch_IO.obj" \
- "$(INTDIR)\POSIX_Proactor.obj" \
- "$(INTDIR)\Priority_Reactor.obj" \
- "$(INTDIR)\Proactor.obj" \
- "$(INTDIR)\Process.obj" \
- "$(INTDIR)\Process_Manager.obj" \
- "$(INTDIR)\Process_Mutex.obj" \
- "$(INTDIR)\Process_Semaphore.obj" \
- "$(INTDIR)\Profile_Timer.obj" \
- "$(INTDIR)\Reactor.obj" \
- "$(INTDIR)\Reactor_Notification_Strategy.obj" \
- "$(INTDIR)\Read_Buffer.obj" \
- "$(INTDIR)\Recyclable.obj" \
- "$(INTDIR)\Refcountable.obj" \
- "$(INTDIR)\Registry.obj" \
- "$(INTDIR)\Registry_Name_Space.obj" \
- "$(INTDIR)\Remote_Name_Space.obj" \
- "$(INTDIR)\Remote_Tokens.obj" \
- "$(INTDIR)\RW_Process_Mutex.obj" \
- "$(INTDIR)\Sample_History.obj" \
- "$(INTDIR)\Sched_Params.obj" \
- "$(INTDIR)\Select_Reactor.obj" \
- "$(INTDIR)\Select_Reactor_Base.obj" \
- "$(INTDIR)\Service_Config.obj" \
- "$(INTDIR)\Service_Manager.obj" \
- "$(INTDIR)\Service_Object.obj" \
- "$(INTDIR)\Service_Repository.obj" \
- "$(INTDIR)\Service_Templates.obj" \
- "$(INTDIR)\Service_Types.obj" \
- "$(INTDIR)\Shared_Memory.obj" \
- "$(INTDIR)\Shared_Memory_MM.obj" \
- "$(INTDIR)\Shared_Memory_SV.obj" \
- "$(INTDIR)\Shared_Object.obj" \
- "$(INTDIR)\Signal.obj" \
- "$(INTDIR)\SOCK.obj" \
- "$(INTDIR)\SOCK_Acceptor.obj" \
- "$(INTDIR)\SOCK_CODgram.obj" \
- "$(INTDIR)\Sock_Connect.obj" \
- "$(INTDIR)\SOCK_Connector.obj" \
- "$(INTDIR)\SOCK_Dgram.obj" \
- "$(INTDIR)\SOCK_Dgram_Bcast.obj" \
- "$(INTDIR)\SOCK_Dgram_Mcast.obj" \
- "$(INTDIR)\SOCK_IO.obj" \
- "$(INTDIR)\SOCK_Stream.obj" \
- "$(INTDIR)\SPIPE.obj" \
- "$(INTDIR)\SPIPE_Acceptor.obj" \
- "$(INTDIR)\SPIPE_Addr.obj" \
- "$(INTDIR)\SPIPE_Connector.obj" \
- "$(INTDIR)\SPIPE_Stream.obj" \
- "$(INTDIR)\SString.obj" \
- "$(INTDIR)\Stats.obj" \
- "$(INTDIR)\String_Base_Const.obj" \
- "$(INTDIR)\SV_Message.obj" \
- "$(INTDIR)\SV_Message_Queue.obj" \
- "$(INTDIR)\SV_Semaphore_Complex.obj" \
- "$(INTDIR)\SV_Semaphore_Simple.obj" \
- "$(INTDIR)\SV_Shared_Memory.obj" \
- "$(INTDIR)\Svc_Conf_l.obj" \
- "$(INTDIR)\Svc_Conf_Lexer_Guard.obj" \
- "$(INTDIR)\Svc_Conf_y.obj" \
- "$(INTDIR)\Svc_Handler.obj" \
- "$(INTDIR)\Synch.obj" \
- "$(INTDIR)\Synch_Options.obj" \
- "$(INTDIR)\System_Time.obj" \
- "$(INTDIR)\Task.obj" \
- "$(INTDIR)\Template_Instantiations.obj" \
- "$(INTDIR)\Thread.obj" \
- "$(INTDIR)\Thread_Adapter.obj" \
- "$(INTDIR)\Thread_Control.obj" \
- "$(INTDIR)\Thread_Exit.obj" \
- "$(INTDIR)\Thread_Hook.obj" \
- "$(INTDIR)\Thread_Manager.obj" \
- "$(INTDIR)\Time_Request_Reply.obj" \
- "$(INTDIR)\Time_Value.obj" \
- "$(INTDIR)\Timeprobe.obj" \
- "$(INTDIR)\Timer_Hash.obj" \
- "$(INTDIR)\Timer_Heap.obj" \
- "$(INTDIR)\Timer_List.obj" \
- "$(INTDIR)\Timer_Queue.obj" \
- "$(INTDIR)\Timer_Queue_Adapters.obj" \
- "$(INTDIR)\Timer_Wheel.obj" \
- "$(INTDIR)\TLI.obj" \
- "$(INTDIR)\TLI_Acceptor.obj" \
- "$(INTDIR)\TLI_Connector.obj" \
- "$(INTDIR)\TLI_Stream.obj" \
- "$(INTDIR)\Token.obj" \
- "$(INTDIR)\Token_Collection.obj" \
- "$(INTDIR)\Token_Invariants.obj" \
- "$(INTDIR)\Token_Manager.obj" \
- "$(INTDIR)\Token_Request_Reply.obj" \
- "$(INTDIR)\TP_Reactor.obj" \
- "$(INTDIR)\Trace.obj" \
- "$(INTDIR)\TTY_IO.obj" \
- "$(INTDIR)\Typed_SV_Message.obj" \
- "$(INTDIR)\Typed_SV_Message_Queue.obj" \
- "$(INTDIR)\UNIX_Addr.obj" \
- "$(INTDIR)\UPIPE_Acceptor.obj" \
- "$(INTDIR)\UPIPE_Connector.obj" \
- "$(INTDIR)\UPIPE_Stream.obj" \
- "$(INTDIR)\WFMO_Reactor.obj" \
- "$(INTDIR)\WIN32_Asynch_IO.obj" \
- "$(INTDIR)\WIN32_Proactor.obj" \
- "$(INTDIR)\XML_Svc_Conf.obj" \
- "$(INTDIR)\XtReactor.obj" \
- "$(INTDIR)\Atomic_Op.obj" \
- "$(INTDIR)\Framework_Component_T.obj" \
- "$(INTDIR)\ace.res"
-
-"..\bin\acemfcd.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win64 Release"
-
-OUTDIR=.
-INTDIR=.\DLL\Release
-
-ALL : "..\bin\ace.dll"
-
-
-CLEAN :
- -@erase "$(INTDIR)\ACE.obj"
- -@erase "$(INTDIR)\ace.res"
- -@erase "$(INTDIR)\Activation_Queue.obj"
- -@erase "$(INTDIR)\Active_Map_Manager.obj"
- -@erase "$(INTDIR)\Addr.obj"
- -@erase "$(INTDIR)\Arg_Shifter.obj"
- -@erase "$(INTDIR)\ARGV.obj"
- -@erase "$(INTDIR)\Argv_Type_Converter.obj"
- -@erase "$(INTDIR)\Asynch_Connector.obj"
- -@erase "$(INTDIR)\Asynch_IO.obj"
- -@erase "$(INTDIR)\Asynch_IO_Impl.obj"
- -@erase "$(INTDIR)\Asynch_Pseudo_Task.obj"
- -@erase "$(INTDIR)\ATM_Acceptor.obj"
- -@erase "$(INTDIR)\ATM_Addr.obj"
- -@erase "$(INTDIR)\ATM_Connector.obj"
- -@erase "$(INTDIR)\ATM_Params.obj"
- -@erase "$(INTDIR)\ATM_QoS.obj"
- -@erase "$(INTDIR)\ATM_Stream.obj"
- -@erase "$(INTDIR)\Atomic_Op.obj"
- -@erase "$(INTDIR)\Base_Thread_Adapter.obj"
- -@erase "$(INTDIR)\Based_Pointer_Repository.obj"
- -@erase "$(INTDIR)\Basic_Stats.obj"
- -@erase "$(INTDIR)\Basic_Types.obj"
- -@erase "$(INTDIR)\Capabilities.obj"
- -@erase "$(INTDIR)\CDR_Base.obj"
- -@erase "$(INTDIR)\CDR_Stream.obj"
- -@erase "$(INTDIR)\Codecs.obj"
- -@erase "$(INTDIR)\Codeset_Registry.obj"
- -@erase "$(INTDIR)\Codeset_Registry_db.obj"
- -@erase "$(INTDIR)\Configuration.obj"
- -@erase "$(INTDIR)\Configuration_Import_Export.obj"
- -@erase "$(INTDIR)\Connection_Recycling_Strategy.obj"
- -@erase "$(INTDIR)\Containers.obj"
- -@erase "$(INTDIR)\Copy_Disabled.obj"
- -@erase "$(INTDIR)\Date_Time.obj"
- -@erase "$(INTDIR)\DEV.obj"
- -@erase "$(INTDIR)\DEV_Addr.obj"
- -@erase "$(INTDIR)\DEV_Connector.obj"
- -@erase "$(INTDIR)\DEV_IO.obj"
- -@erase "$(INTDIR)\Dirent.obj"
- -@erase "$(INTDIR)\Dirent_Selector.obj"
- -@erase "$(INTDIR)\DLL.obj"
- -@erase "$(INTDIR)\DLL_Manager.obj"
- -@erase "$(INTDIR)\Dump.obj"
- -@erase "$(INTDIR)\Dynamic.obj"
- -@erase "$(INTDIR)\Dynamic_Service.obj"
- -@erase "$(INTDIR)\Dynamic_Service_Base.obj"
- -@erase "$(INTDIR)\Event_Handler.obj"
- -@erase "$(INTDIR)\Event_Handler_T.obj"
- -@erase "$(INTDIR)\FIFO.obj"
- -@erase "$(INTDIR)\FIFO_Recv.obj"
- -@erase "$(INTDIR)\FIFO_Recv_Msg.obj"
- -@erase "$(INTDIR)\FIFO_Send.obj"
- -@erase "$(INTDIR)\FIFO_Send_Msg.obj"
- -@erase "$(INTDIR)\FILE.obj"
- -@erase "$(INTDIR)\FILE_Addr.obj"
- -@erase "$(INTDIR)\FILE_Connector.obj"
- -@erase "$(INTDIR)\FILE_IO.obj"
- -@erase "$(INTDIR)\File_Lock.obj"
- -@erase "$(INTDIR)\Filecache.obj"
- -@erase "$(INTDIR)\Flag_Manip.obj"
- -@erase "$(INTDIR)\Framework_Component.obj"
- -@erase "$(INTDIR)\Framework_Component_T.obj"
- -@erase "$(INTDIR)\Functor.obj"
- -@erase "$(INTDIR)\Get_Opt.obj"
- -@erase "$(INTDIR)\Handle_Ops.obj"
- -@erase "$(INTDIR)\Handle_Set.obj"
- -@erase "$(INTDIR)\Hash_Map_Manager.obj"
- -@erase "$(INTDIR)\Hashable.obj"
- -@erase "$(INTDIR)\High_Res_Timer.obj"
- -@erase "$(INTDIR)\INET_Addr.obj"
- -@erase "$(INTDIR)\Init_ACE.obj"
- -@erase "$(INTDIR)\IO_Cntl_Msg.obj"
- -@erase "$(INTDIR)\IO_SAP.obj"
- -@erase "$(INTDIR)\IOStream.obj"
- -@erase "$(INTDIR)\IPC_SAP.obj"
- -@erase "$(INTDIR)\Lib_Find.obj"
- -@erase "$(INTDIR)\Local_Name_Space.obj"
- -@erase "$(INTDIR)\Local_Tokens.obj"
- -@erase "$(INTDIR)\Log_Msg.obj"
- -@erase "$(INTDIR)\Log_Msg_Backend.obj"
- -@erase "$(INTDIR)\Log_Msg_Callback.obj"
- -@erase "$(INTDIR)\Log_Msg_IPC.obj"
- -@erase "$(INTDIR)\Log_Msg_NT_Event_Log.obj"
- -@erase "$(INTDIR)\Log_Msg_UNIX_Syslog.obj"
- -@erase "$(INTDIR)\Log_Record.obj"
- -@erase "$(INTDIR)\Logging_Strategy.obj"
- -@erase "$(INTDIR)\LSOCK.obj"
- -@erase "$(INTDIR)\LSOCK_Acceptor.obj"
- -@erase "$(INTDIR)\LSOCK_CODgram.obj"
- -@erase "$(INTDIR)\LSOCK_Connector.obj"
- -@erase "$(INTDIR)\LSOCK_Dgram.obj"
- -@erase "$(INTDIR)\LSOCK_Stream.obj"
- -@erase "$(INTDIR)\Malloc.obj"
- -@erase "$(INTDIR)\Malloc_Allocator.obj"
- -@erase "$(INTDIR)\Malloc_Instantiations.obj"
- -@erase "$(INTDIR)\Map.obj"
- -@erase "$(INTDIR)\MEM_Acceptor.obj"
- -@erase "$(INTDIR)\MEM_Addr.obj"
- -@erase "$(INTDIR)\MEM_Connector.obj"
- -@erase "$(INTDIR)\MEM_IO.obj"
- -@erase "$(INTDIR)\Mem_Map.obj"
- -@erase "$(INTDIR)\MEM_SAP.obj"
- -@erase "$(INTDIR)\MEM_Stream.obj"
- -@erase "$(INTDIR)\Memory_Pool.obj"
- -@erase "$(INTDIR)\Message_Block.obj"
- -@erase "$(INTDIR)\Message_Queue.obj"
- -@erase "$(INTDIR)\Method_Request.obj"
- -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj"
- -@erase "$(INTDIR)\Multiplexor.obj"
- -@erase "$(INTDIR)\Name_Proxy.obj"
- -@erase "$(INTDIR)\Name_Request_Reply.obj"
- -@erase "$(INTDIR)\Name_Space.obj"
- -@erase "$(INTDIR)\Naming_Context.obj"
- -@erase "$(INTDIR)\Notification_Strategy.obj"
- -@erase "$(INTDIR)\NT_Service.obj"
- -@erase "$(INTDIR)\Obchunk.obj"
- -@erase "$(INTDIR)\Object_Manager.obj"
- -@erase "$(INTDIR)\Obstack.obj"
- -@erase "$(INTDIR)\OS.obj"
- -@erase "$(INTDIR)\OS_Dirent.obj"
- -@erase "$(INTDIR)\OS_Errno.obj"
- -@erase "$(INTDIR)\OS_Log_Msg_Attributes.obj"
- -@erase "$(INTDIR)\OS_Memory.obj"
- -@erase "$(INTDIR)\OS_QoS.obj"
- -@erase "$(INTDIR)\OS_String.obj"
- -@erase "$(INTDIR)\OS_Thread_Adapter.obj"
- -@erase "$(INTDIR)\OS_TLI.obj"
- -@erase "$(INTDIR)\Pair.obj"
- -@erase "$(INTDIR)\Parse_Node.obj"
- -@erase "$(INTDIR)\PI_Malloc.obj"
- -@erase "$(INTDIR)\Pipe.obj"
- -@erase "$(INTDIR)\POSIX_Asynch_IO.obj"
- -@erase "$(INTDIR)\POSIX_Proactor.obj"
- -@erase "$(INTDIR)\Priority_Reactor.obj"
- -@erase "$(INTDIR)\Proactor.obj"
- -@erase "$(INTDIR)\Process.obj"
- -@erase "$(INTDIR)\Process_Manager.obj"
- -@erase "$(INTDIR)\Process_Mutex.obj"
- -@erase "$(INTDIR)\Process_Semaphore.obj"
- -@erase "$(INTDIR)\Profile_Timer.obj"
- -@erase "$(INTDIR)\Reactor.obj"
- -@erase "$(INTDIR)\Reactor_Notification_Strategy.obj"
- -@erase "$(INTDIR)\Read_Buffer.obj"
- -@erase "$(INTDIR)\Recyclable.obj"
- -@erase "$(INTDIR)\Refcountable.obj"
- -@erase "$(INTDIR)\Registry.obj"
- -@erase "$(INTDIR)\Registry_Name_Space.obj"
- -@erase "$(INTDIR)\Remote_Name_Space.obj"
- -@erase "$(INTDIR)\Remote_Tokens.obj"
- -@erase "$(INTDIR)\RW_Process_Mutex.obj"
- -@erase "$(INTDIR)\Sample_History.obj"
- -@erase "$(INTDIR)\Sched_Params.obj"
- -@erase "$(INTDIR)\Select_Reactor.obj"
- -@erase "$(INTDIR)\Select_Reactor_Base.obj"
- -@erase "$(INTDIR)\Service_Config.obj"
- -@erase "$(INTDIR)\Service_Manager.obj"
- -@erase "$(INTDIR)\Service_Object.obj"
- -@erase "$(INTDIR)\Service_Repository.obj"
- -@erase "$(INTDIR)\Service_Templates.obj"
- -@erase "$(INTDIR)\Service_Types.obj"
- -@erase "$(INTDIR)\Shared_Memory.obj"
- -@erase "$(INTDIR)\Shared_Memory_MM.obj"
- -@erase "$(INTDIR)\Shared_Memory_SV.obj"
- -@erase "$(INTDIR)\Shared_Object.obj"
- -@erase "$(INTDIR)\Signal.obj"
- -@erase "$(INTDIR)\SOCK.obj"
- -@erase "$(INTDIR)\SOCK_Acceptor.obj"
- -@erase "$(INTDIR)\SOCK_CODgram.obj"
- -@erase "$(INTDIR)\Sock_Connect.obj"
- -@erase "$(INTDIR)\SOCK_Connector.obj"
- -@erase "$(INTDIR)\SOCK_Dgram.obj"
- -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj"
- -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj"
- -@erase "$(INTDIR)\SOCK_IO.obj"
- -@erase "$(INTDIR)\SOCK_Stream.obj"
- -@erase "$(INTDIR)\SPIPE.obj"
- -@erase "$(INTDIR)\SPIPE_Acceptor.obj"
- -@erase "$(INTDIR)\SPIPE_Addr.obj"
- -@erase "$(INTDIR)\SPIPE_Connector.obj"
- -@erase "$(INTDIR)\SPIPE_Stream.obj"
- -@erase "$(INTDIR)\SString.obj"
- -@erase "$(INTDIR)\Stats.obj"
- -@erase "$(INTDIR)\String_Base_Const.obj"
- -@erase "$(INTDIR)\SV_Message.obj"
- -@erase "$(INTDIR)\SV_Message_Queue.obj"
- -@erase "$(INTDIR)\SV_Semaphore_Complex.obj"
- -@erase "$(INTDIR)\SV_Semaphore_Simple.obj"
- -@erase "$(INTDIR)\SV_Shared_Memory.obj"
- -@erase "$(INTDIR)\Svc_Conf_l.obj"
- -@erase "$(INTDIR)\Svc_Conf_Lexer_Guard.obj"
- -@erase "$(INTDIR)\Svc_Conf_y.obj"
- -@erase "$(INTDIR)\Svc_Handler.obj"
- -@erase "$(INTDIR)\Synch.obj"
- -@erase "$(INTDIR)\Synch_Options.obj"
- -@erase "$(INTDIR)\System_Time.obj"
- -@erase "$(INTDIR)\Task.obj"
- -@erase "$(INTDIR)\Template_Instantiations.obj"
- -@erase "$(INTDIR)\Thread.obj"
- -@erase "$(INTDIR)\Thread_Adapter.obj"
- -@erase "$(INTDIR)\Thread_Control.obj"
- -@erase "$(INTDIR)\Thread_Exit.obj"
- -@erase "$(INTDIR)\Thread_Hook.obj"
- -@erase "$(INTDIR)\Thread_Manager.obj"
- -@erase "$(INTDIR)\Time_Request_Reply.obj"
- -@erase "$(INTDIR)\Time_Value.obj"
- -@erase "$(INTDIR)\Timeprobe.obj"
- -@erase "$(INTDIR)\Timer_Hash.obj"
- -@erase "$(INTDIR)\Timer_Heap.obj"
- -@erase "$(INTDIR)\Timer_List.obj"
- -@erase "$(INTDIR)\Timer_Queue.obj"
- -@erase "$(INTDIR)\Timer_Queue_Adapters.obj"
- -@erase "$(INTDIR)\Timer_Wheel.obj"
- -@erase "$(INTDIR)\TLI.obj"
- -@erase "$(INTDIR)\TLI_Acceptor.obj"
- -@erase "$(INTDIR)\TLI_Connector.obj"
- -@erase "$(INTDIR)\TLI_Stream.obj"
- -@erase "$(INTDIR)\Token.obj"
- -@erase "$(INTDIR)\Token_Collection.obj"
- -@erase "$(INTDIR)\Token_Invariants.obj"
- -@erase "$(INTDIR)\Token_Manager.obj"
- -@erase "$(INTDIR)\Token_Request_Reply.obj"
- -@erase "$(INTDIR)\TP_Reactor.obj"
- -@erase "$(INTDIR)\Trace.obj"
- -@erase "$(INTDIR)\TTY_IO.obj"
- -@erase "$(INTDIR)\Typed_SV_Message.obj"
- -@erase "$(INTDIR)\Typed_SV_Message_Queue.obj"
- -@erase "$(INTDIR)\UNIX_Addr.obj"
- -@erase "$(INTDIR)\UPIPE_Acceptor.obj"
- -@erase "$(INTDIR)\UPIPE_Connector.obj"
- -@erase "$(INTDIR)\UPIPE_Stream.obj"
- -@erase "$(INTDIR)\vc60.idb"
- -@erase "$(INTDIR)\vc60.pdb"
- -@erase "$(INTDIR)\WFMO_Reactor.obj"
- -@erase "$(INTDIR)\WIN32_Asynch_IO.obj"
- -@erase "$(INTDIR)\WIN32_Proactor.obj"
- -@erase "$(INTDIR)\XML_Svc_Conf.obj"
- -@erase "$(INTDIR)\XtReactor.obj"
- -@erase "$(OUTDIR)\ace.exp"
- -@erase "$(OUTDIR)\ace.lib"
- -@erase "$(OUTDIR)\ace.pdb"
- -@erase "$(OUTDIR)\DLL\Release\ace.map"
- -@erase "..\bin\ace.dll"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Wp64 /GX /Zi /O2 /Ob2 /I "../" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "ACE_BUILD_DLL" /D "ACE_OS_BUILD_DLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
-RSC=rc.exe
-RSC_PROJ=/l 0x409 /fo"$(INTDIR)\ace.res" /d "NDEBUG"
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\ace.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=advapi32.lib user32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\ace.pdb" /map:"$(INTDIR)\ace.map" /debug /machine:IA64 /out:"..\bin\ace.dll" /implib:"$(OUTDIR)\ace.lib"
-LINK32_OBJS= \
- "$(INTDIR)\ACE.obj" \
- "$(INTDIR)\Activation_Queue.obj" \
- "$(INTDIR)\Active_Map_Manager.obj" \
- "$(INTDIR)\Addr.obj" \
- "$(INTDIR)\Arg_Shifter.obj" \
- "$(INTDIR)\ARGV.obj" \
- "$(INTDIR)\Argv_Type_Converter.obj" \
- "$(INTDIR)\Asynch_Connector.obj" \
- "$(INTDIR)\Asynch_IO.obj" \
- "$(INTDIR)\Asynch_IO_Impl.obj" \
- "$(INTDIR)\Asynch_Pseudo_Task.obj" \
- "$(INTDIR)\ATM_Acceptor.obj" \
- "$(INTDIR)\ATM_Addr.obj" \
- "$(INTDIR)\ATM_Connector.obj" \
- "$(INTDIR)\ATM_Params.obj" \
- "$(INTDIR)\ATM_QoS.obj" \
- "$(INTDIR)\ATM_Stream.obj" \
- "$(INTDIR)\Base_Thread_Adapter.obj" \
- "$(INTDIR)\Based_Pointer_Repository.obj" \
- "$(INTDIR)\Basic_Stats.obj" \
- "$(INTDIR)\Basic_Types.obj" \
- "$(INTDIR)\Capabilities.obj" \
- "$(INTDIR)\CDR_Base.obj" \
- "$(INTDIR)\CDR_Stream.obj" \
- "$(INTDIR)\Codecs.obj" \
- "$(INTDIR)\Codeset_Registry.obj"
- "$(INTDIR)\Codeset_Registry_db.obj"
- "$(INTDIR)\Configuration.obj" \
- "$(INTDIR)\Configuration_Import_Export.obj" \
- "$(INTDIR)\Connection_Recycling_Strategy.obj" \
- "$(INTDIR)\Containers.obj" \
- "$(INTDIR)\Copy_Disabled.obj" \
- "$(INTDIR)\Date_Time.obj" \
- "$(INTDIR)\DEV.obj" \
- "$(INTDIR)\DEV_Addr.obj" \
- "$(INTDIR)\DEV_Connector.obj" \
- "$(INTDIR)\DEV_IO.obj" \
- "$(INTDIR)\Dirent.obj" \
- "$(INTDIR)\Dirent_Selector.obj" \
- "$(INTDIR)\DLL.obj" \
- "$(INTDIR)\DLL_Manager.obj" \
- "$(INTDIR)\Dump.obj" \
- "$(INTDIR)\Dynamic.obj" \
- "$(INTDIR)\Dynamic_Service.obj" \
- "$(INTDIR)\Dynamic_Service_Base.obj" \
- "$(INTDIR)\Event_Handler.obj" \
- "$(INTDIR)\Event_Handler_T.obj" \
- "$(INTDIR)\FIFO.obj" \
- "$(INTDIR)\FIFO_Recv.obj" \
- "$(INTDIR)\FIFO_Recv_Msg.obj" \
- "$(INTDIR)\FIFO_Send.obj" \
- "$(INTDIR)\FIFO_Send_Msg.obj" \
- "$(INTDIR)\FILE.obj" \
- "$(INTDIR)\FILE_Addr.obj" \
- "$(INTDIR)\FILE_Connector.obj" \
- "$(INTDIR)\FILE_IO.obj" \
- "$(INTDIR)\File_Lock.obj" \
- "$(INTDIR)\Filecache.obj" \
- "$(INTDIR)\Flag_Manip.obj" \
- "$(INTDIR)\Framework_Component.obj" \
- "$(INTDIR)\Functor.obj" \
- "$(INTDIR)\Get_Opt.obj" \
- "$(INTDIR)\Handle_Ops.obj" \
- "$(INTDIR)\Handle_Set.obj" \
- "$(INTDIR)\Hash_Map_Manager.obj" \
- "$(INTDIR)\Hashable.obj" \
- "$(INTDIR)\High_Res_Timer.obj" \
- "$(INTDIR)\INET_Addr.obj" \
- "$(INTDIR)\Init_ACE.obj" \
- "$(INTDIR)\IO_Cntl_Msg.obj" \
- "$(INTDIR)\IO_SAP.obj" \
- "$(INTDIR)\IOStream.obj" \
- "$(INTDIR)\IPC_SAP.obj" \
- "$(INTDIR)\Lib_Find.obj" \
- "$(INTDIR)\Local_Name_Space.obj" \
- "$(INTDIR)\Local_Tokens.obj" \
- "$(INTDIR)\Log_Msg.obj" \
- "$(INTDIR)\Log_Msg_Backend.obj" \
- "$(INTDIR)\Log_Msg_Callback.obj" \
- "$(INTDIR)\Log_Msg_IPC.obj" \
- "$(INTDIR)\Log_Msg_NT_Event_Log.obj" \
- "$(INTDIR)\Log_Msg_UNIX_Syslog.obj" \
- "$(INTDIR)\Log_Record.obj" \
- "$(INTDIR)\Logging_Strategy.obj" \
- "$(INTDIR)\LSOCK.obj" \
- "$(INTDIR)\LSOCK_Acceptor.obj" \
- "$(INTDIR)\LSOCK_CODgram.obj" \
- "$(INTDIR)\LSOCK_Connector.obj" \
- "$(INTDIR)\LSOCK_Dgram.obj" \
- "$(INTDIR)\LSOCK_Stream.obj" \
- "$(INTDIR)\Malloc.obj" \
- "$(INTDIR)\Malloc_Allocator.obj" \
- "$(INTDIR)\Malloc_Instantiations.obj" \
- "$(INTDIR)\Map.obj" \
- "$(INTDIR)\MEM_Acceptor.obj" \
- "$(INTDIR)\MEM_Addr.obj" \
- "$(INTDIR)\MEM_Connector.obj" \
- "$(INTDIR)\MEM_IO.obj" \
- "$(INTDIR)\Mem_Map.obj" \
- "$(INTDIR)\MEM_SAP.obj" \
- "$(INTDIR)\MEM_Stream.obj" \
- "$(INTDIR)\Memory_Pool.obj" \
- "$(INTDIR)\Message_Block.obj" \
- "$(INTDIR)\Message_Queue.obj" \
- "$(INTDIR)\Method_Request.obj" \
- "$(INTDIR)\Msg_WFMO_Reactor.obj" \
- "$(INTDIR)\Multiplexor.obj" \
- "$(INTDIR)\Name_Proxy.obj" \
- "$(INTDIR)\Name_Request_Reply.obj" \
- "$(INTDIR)\Name_Space.obj" \
- "$(INTDIR)\Naming_Context.obj" \
- "$(INTDIR)\Notification_Strategy.obj" \
- "$(INTDIR)\NT_Service.obj" \
- "$(INTDIR)\Obchunk.obj" \
- "$(INTDIR)\Object_Manager.obj" \
- "$(INTDIR)\Obstack.obj" \
- "$(INTDIR)\OS.obj" \
- "$(INTDIR)\OS_Dirent.obj" \
- "$(INTDIR)\OS_Errno.obj" \
- "$(INTDIR)\OS_Log_Msg_Attributes.obj" \
- "$(INTDIR)\OS_Memory.obj" \
- "$(INTDIR)\OS_QoS.obj" \
- "$(INTDIR)\OS_String.obj" \
- "$(INTDIR)\OS_Thread_Adapter.obj" \
- "$(INTDIR)\OS_TLI.obj" \
- "$(INTDIR)\Pair.obj" \
- "$(INTDIR)\Parse_Node.obj" \
- "$(INTDIR)\PI_Malloc.obj" \
- "$(INTDIR)\Pipe.obj" \
- "$(INTDIR)\POSIX_Asynch_IO.obj" \
- "$(INTDIR)\POSIX_Proactor.obj" \
- "$(INTDIR)\Priority_Reactor.obj" \
- "$(INTDIR)\Proactor.obj" \
- "$(INTDIR)\Process.obj" \
- "$(INTDIR)\Process_Manager.obj" \
- "$(INTDIR)\Process_Mutex.obj" \
- "$(INTDIR)\Process_Semaphore.obj" \
- "$(INTDIR)\Profile_Timer.obj" \
- "$(INTDIR)\Reactor.obj" \
- "$(INTDIR)\Reactor_Notification_Strategy.obj" \
- "$(INTDIR)\Read_Buffer.obj" \
- "$(INTDIR)\Recyclable.obj" \
- "$(INTDIR)\Refcountable.obj" \
- "$(INTDIR)\Registry.obj" \
- "$(INTDIR)\Registry_Name_Space.obj" \
- "$(INTDIR)\Remote_Name_Space.obj" \
- "$(INTDIR)\Remote_Tokens.obj" \
- "$(INTDIR)\RW_Process_Mutex.obj" \
- "$(INTDIR)\Sample_History.obj" \
- "$(INTDIR)\Sched_Params.obj" \
- "$(INTDIR)\Select_Reactor.obj" \
- "$(INTDIR)\Select_Reactor_Base.obj" \
- "$(INTDIR)\Service_Config.obj" \
- "$(INTDIR)\Service_Manager.obj" \
- "$(INTDIR)\Service_Object.obj" \
- "$(INTDIR)\Service_Repository.obj" \
- "$(INTDIR)\Service_Templates.obj" \
- "$(INTDIR)\Service_Types.obj" \
- "$(INTDIR)\Shared_Memory.obj" \
- "$(INTDIR)\Shared_Memory_MM.obj" \
- "$(INTDIR)\Shared_Memory_SV.obj" \
- "$(INTDIR)\Shared_Object.obj" \
- "$(INTDIR)\Signal.obj" \
- "$(INTDIR)\SOCK.obj" \
- "$(INTDIR)\SOCK_Acceptor.obj" \
- "$(INTDIR)\SOCK_CODgram.obj" \
- "$(INTDIR)\Sock_Connect.obj" \
- "$(INTDIR)\SOCK_Connector.obj" \
- "$(INTDIR)\SOCK_Dgram.obj" \
- "$(INTDIR)\SOCK_Dgram_Bcast.obj" \
- "$(INTDIR)\SOCK_Dgram_Mcast.obj" \
- "$(INTDIR)\SOCK_IO.obj" \
- "$(INTDIR)\SOCK_Stream.obj" \
- "$(INTDIR)\SPIPE.obj" \
- "$(INTDIR)\SPIPE_Acceptor.obj" \
- "$(INTDIR)\SPIPE_Addr.obj" \
- "$(INTDIR)\SPIPE_Connector.obj" \
- "$(INTDIR)\SPIPE_Stream.obj" \
- "$(INTDIR)\SString.obj" \
- "$(INTDIR)\Stats.obj" \
- "$(INTDIR)\String_Base_Const.obj" \
- "$(INTDIR)\SV_Message.obj" \
- "$(INTDIR)\SV_Message_Queue.obj" \
- "$(INTDIR)\SV_Semaphore_Complex.obj" \
- "$(INTDIR)\SV_Semaphore_Simple.obj" \
- "$(INTDIR)\SV_Shared_Memory.obj" \
- "$(INTDIR)\Svc_Conf_l.obj" \
- "$(INTDIR)\Svc_Conf_Lexer_Guard.obj" \
- "$(INTDIR)\Svc_Conf_y.obj" \
- "$(INTDIR)\Svc_Handler.obj" \
- "$(INTDIR)\Synch.obj" \
- "$(INTDIR)\Synch_Options.obj" \
- "$(INTDIR)\System_Time.obj" \
- "$(INTDIR)\Task.obj" \
- "$(INTDIR)\Template_Instantiations.obj" \
- "$(INTDIR)\Thread.obj" \
- "$(INTDIR)\Thread_Adapter.obj" \
- "$(INTDIR)\Thread_Control.obj" \
- "$(INTDIR)\Thread_Exit.obj" \
- "$(INTDIR)\Thread_Hook.obj" \
- "$(INTDIR)\Thread_Manager.obj" \
- "$(INTDIR)\Time_Request_Reply.obj" \
- "$(INTDIR)\Time_Value.obj" \
- "$(INTDIR)\Timeprobe.obj" \
- "$(INTDIR)\Timer_Hash.obj" \
- "$(INTDIR)\Timer_Heap.obj" \
- "$(INTDIR)\Timer_List.obj" \
- "$(INTDIR)\Timer_Queue.obj" \
- "$(INTDIR)\Timer_Queue_Adapters.obj" \
- "$(INTDIR)\Timer_Wheel.obj" \
- "$(INTDIR)\TLI.obj" \
- "$(INTDIR)\TLI_Acceptor.obj" \
- "$(INTDIR)\TLI_Connector.obj" \
- "$(INTDIR)\TLI_Stream.obj" \
- "$(INTDIR)\Token.obj" \
- "$(INTDIR)\Token_Collection.obj" \
- "$(INTDIR)\Token_Invariants.obj" \
- "$(INTDIR)\Token_Manager.obj" \
- "$(INTDIR)\Token_Request_Reply.obj" \
- "$(INTDIR)\TP_Reactor.obj" \
- "$(INTDIR)\Trace.obj" \
- "$(INTDIR)\TTY_IO.obj" \
- "$(INTDIR)\Typed_SV_Message.obj" \
- "$(INTDIR)\Typed_SV_Message_Queue.obj" \
- "$(INTDIR)\UNIX_Addr.obj" \
- "$(INTDIR)\UPIPE_Acceptor.obj" \
- "$(INTDIR)\UPIPE_Connector.obj" \
- "$(INTDIR)\UPIPE_Stream.obj" \
- "$(INTDIR)\WFMO_Reactor.obj" \
- "$(INTDIR)\WIN32_Asynch_IO.obj" \
- "$(INTDIR)\WIN32_Proactor.obj" \
- "$(INTDIR)\XML_Svc_Conf.obj" \
- "$(INTDIR)\XtReactor.obj" \
- "$(INTDIR)\Atomic_Op.obj" \
- "$(INTDIR)\Framework_Component_T.obj" \
- "$(INTDIR)\ace.res"
-
-"..\bin\ace.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win64 Debug"
-
-OUTDIR=.
-INTDIR=.\DLL\Debug
-
-ALL : "..\bin\aced.dll"
-
-
-CLEAN :
- -@erase "$(INTDIR)\ACE.obj"
- -@erase "$(INTDIR)\ace.res"
- -@erase "$(INTDIR)\Activation_Queue.obj"
- -@erase "$(INTDIR)\Active_Map_Manager.obj"
- -@erase "$(INTDIR)\Addr.obj"
- -@erase "$(INTDIR)\Arg_Shifter.obj"
- -@erase "$(INTDIR)\ARGV.obj"
- -@erase "$(INTDIR)\Argv_Type_Converter.obj"
- -@erase "$(INTDIR)\Asynch_Connector.obj"
- -@erase "$(INTDIR)\Asynch_IO.obj"
- -@erase "$(INTDIR)\Asynch_IO_Impl.obj"
- -@erase "$(INTDIR)\Asynch_Pseudo_Task.obj"
- -@erase "$(INTDIR)\Atomic_Op.obj"
- -@erase "$(INTDIR)\ATM_Acceptor.obj"
- -@erase "$(INTDIR)\ATM_Addr.obj"
- -@erase "$(INTDIR)\ATM_Connector.obj"
- -@erase "$(INTDIR)\ATM_Params.obj"
- -@erase "$(INTDIR)\ATM_QoS.obj"
- -@erase "$(INTDIR)\ATM_Stream.obj"
- -@erase "$(INTDIR)\Base_Thread_Adapter.obj"
- -@erase "$(INTDIR)\Based_Pointer_Repository.obj"
- -@erase "$(INTDIR)\Basic_Stats.obj"
- -@erase "$(INTDIR)\Basic_Types.obj"
- -@erase "$(INTDIR)\Capabilities.obj"
- -@erase "$(INTDIR)\CDR_Base.obj"
- -@erase "$(INTDIR)\CDR_Stream.obj"
- -@erase "$(INTDIR)\Codecs.obj"
- -@erase "$(INTDIR)\Codeset_Registry.obj"
- -@erase "$(INTDIR)\Codeset_Registry_db.obj"
- -@erase "$(INTDIR)\Configuration.obj"
- -@erase "$(INTDIR)\Configuration_Import_Export.obj"
- -@erase "$(INTDIR)\Connection_Recycling_Strategy.obj"
- -@erase "$(INTDIR)\Containers.obj"
- -@erase "$(INTDIR)\Copy_Disabled.obj"
- -@erase "$(INTDIR)\Date_Time.obj"
- -@erase "$(INTDIR)\DEV.obj"
- -@erase "$(INTDIR)\DEV_Addr.obj"
- -@erase "$(INTDIR)\DEV_Connector.obj"
- -@erase "$(INTDIR)\DEV_IO.obj"
- -@erase "$(INTDIR)\Dirent.obj"
- -@erase "$(INTDIR)\Dirent_Selector.obj"
- -@erase "$(INTDIR)\DLL.obj"
- -@erase "$(INTDIR)\DLL_Manager.obj"
- -@erase "$(INTDIR)\Dump.obj"
- -@erase "$(INTDIR)\Dynamic.obj"
- -@erase "$(INTDIR)\Dynamic_Service.obj"
- -@erase "$(INTDIR)\Dynamic_Service_Base.obj"
- -@erase "$(INTDIR)\Event_Handler.obj"
- -@erase "$(INTDIR)\Event_Handler_T.obj"
- -@erase "$(INTDIR)\FIFO.obj"
- -@erase "$(INTDIR)\FIFO_Recv.obj"
- -@erase "$(INTDIR)\FIFO_Recv_Msg.obj"
- -@erase "$(INTDIR)\FIFO_Send.obj"
- -@erase "$(INTDIR)\FIFO_Send_Msg.obj"
- -@erase "$(INTDIR)\FILE.obj"
- -@erase "$(INTDIR)\FILE_Addr.obj"
- -@erase "$(INTDIR)\FILE_Connector.obj"
- -@erase "$(INTDIR)\FILE_IO.obj"
- -@erase "$(INTDIR)\File_Lock.obj"
- -@erase "$(INTDIR)\Filecache.obj"
- -@erase "$(INTDIR)\Flag_Manip.obj"
- -@erase "$(INTDIR)\Framework_Component.obj"
- -@erase "$(INTDIR)\Functor.obj"
- -@erase "$(INTDIR)\Get_Opt.obj"
- -@erase "$(INTDIR)\Handle_Ops.obj"
- -@erase "$(INTDIR)\Handle_Set.obj"
- -@erase "$(INTDIR)\Hash_Map_Manager.obj"
- -@erase "$(INTDIR)\Hashable.obj"
- -@erase "$(INTDIR)\High_Res_Timer.obj"
- -@erase "$(INTDIR)\INET_Addr.obj"
- -@erase "$(INTDIR)\Init_ACE.obj"
- -@erase "$(INTDIR)\IO_Cntl_Msg.obj"
- -@erase "$(INTDIR)\IO_SAP.obj"
- -@erase "$(INTDIR)\IOStream.obj"
- -@erase "$(INTDIR)\IPC_SAP.obj"
- -@erase "$(INTDIR)\Lib_Find.obj"
- -@erase "$(INTDIR)\Local_Name_Space.obj"
- -@erase "$(INTDIR)\Local_Tokens.obj"
- -@erase "$(INTDIR)\Log_Msg.obj"
- -@erase "$(INTDIR)\Log_Msg_Backend.obj"
- -@erase "$(INTDIR)\Log_Msg_Callback.obj"
- -@erase "$(INTDIR)\Log_Msg_IPC.obj"
- -@erase "$(INTDIR)\Log_Msg_NT_Event_Log.obj"
- -@erase "$(INTDIR)\Log_Msg_UNIX_Syslog.obj"
- -@erase "$(INTDIR)\Log_Record.obj"
- -@erase "$(INTDIR)\Logging_Strategy.obj"
- -@erase "$(INTDIR)\LSOCK.obj"
- -@erase "$(INTDIR)\LSOCK_Acceptor.obj"
- -@erase "$(INTDIR)\LSOCK_CODgram.obj"
- -@erase "$(INTDIR)\LSOCK_Connector.obj"
- -@erase "$(INTDIR)\LSOCK_Dgram.obj"
- -@erase "$(INTDIR)\LSOCK_Stream.obj"
- -@erase "$(INTDIR)\Malloc.obj"
- -@erase "$(INTDIR)\Malloc_Allocator.obj"
- -@erase "$(INTDIR)\Malloc_Instantiations.obj"
- -@erase "$(INTDIR)\Map.obj"
- -@erase "$(INTDIR)\MEM_Acceptor.obj"
- -@erase "$(INTDIR)\MEM_Addr.obj"
- -@erase "$(INTDIR)\MEM_Connector.obj"
- -@erase "$(INTDIR)\MEM_IO.obj"
- -@erase "$(INTDIR)\Mem_Map.obj"
- -@erase "$(INTDIR)\MEM_SAP.obj"
- -@erase "$(INTDIR)\MEM_Stream.obj"
- -@erase "$(INTDIR)\Memory_Pool.obj"
- -@erase "$(INTDIR)\Message_Block.obj"
- -@erase "$(INTDIR)\Message_Queue.obj"
- -@erase "$(INTDIR)\Method_Request.obj"
- -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj"
- -@erase "$(INTDIR)\Multiplexor.obj"
- -@erase "$(INTDIR)\Name_Proxy.obj"
- -@erase "$(INTDIR)\Name_Request_Reply.obj"
- -@erase "$(INTDIR)\Name_Space.obj"
- -@erase "$(INTDIR)\Naming_Context.obj"
- -@erase "$(INTDIR)\Notification_Strategy.obj"
- -@erase "$(INTDIR)\NT_Service.obj"
- -@erase "$(INTDIR)\Obchunk.obj"
- -@erase "$(INTDIR)\Object_Manager.obj"
- -@erase "$(INTDIR)\Obstack.obj"
- -@erase "$(INTDIR)\OS.obj"
- -@erase "$(INTDIR)\OS_Dirent.obj"
- -@erase "$(INTDIR)\OS_Errno.obj"
- -@erase "$(INTDIR)\OS_Log_Msg_Attributes.obj"
- -@erase "$(INTDIR)\OS_Memory.obj"
- -@erase "$(INTDIR)\OS_QoS.obj"
- -@erase "$(INTDIR)\OS_String.obj"
- -@erase "$(INTDIR)\OS_Thread_Adapter.obj"
- -@erase "$(INTDIR)\OS_TLI.obj"
- -@erase "$(INTDIR)\Pair.obj"
- -@erase "$(INTDIR)\Parse_Node.obj"
- -@erase "$(INTDIR)\PI_Malloc.obj"
- -@erase "$(INTDIR)\Pipe.obj"
- -@erase "$(INTDIR)\POSIX_Asynch_IO.obj"
- -@erase "$(INTDIR)\POSIX_Proactor.obj"
- -@erase "$(INTDIR)\Priority_Reactor.obj"
- -@erase "$(INTDIR)\Proactor.obj"
- -@erase "$(INTDIR)\Process.obj"
- -@erase "$(INTDIR)\Process_Manager.obj"
- -@erase "$(INTDIR)\Process_Mutex.obj"
- -@erase "$(INTDIR)\Process_Semaphore.obj"
- -@erase "$(INTDIR)\Profile_Timer.obj"
- -@erase "$(INTDIR)\Reactor.obj"
- -@erase "$(INTDIR)\Reactor_Notification_Strategy.obj"
- -@erase "$(INTDIR)\Read_Buffer.obj"
- -@erase "$(INTDIR)\Recyclable.obj"
- -@erase "$(INTDIR)\Refcountable.obj"
- -@erase "$(INTDIR)\Registry.obj"
- -@erase "$(INTDIR)\Registry_Name_Space.obj"
- -@erase "$(INTDIR)\Remote_Name_Space.obj"
- -@erase "$(INTDIR)\Remote_Tokens.obj"
- -@erase "$(INTDIR)\RW_Process_Mutex.obj"
- -@erase "$(INTDIR)\Sample_History.obj"
- -@erase "$(INTDIR)\Sched_Params.obj"
- -@erase "$(INTDIR)\Select_Reactor.obj"
- -@erase "$(INTDIR)\Select_Reactor_Base.obj"
- -@erase "$(INTDIR)\Service_Config.obj"
- -@erase "$(INTDIR)\Service_Manager.obj"
- -@erase "$(INTDIR)\Service_Object.obj"
- -@erase "$(INTDIR)\Service_Repository.obj"
- -@erase "$(INTDIR)\Service_Templates.obj"
- -@erase "$(INTDIR)\Service_Types.obj"
- -@erase "$(INTDIR)\Shared_Memory.obj"
- -@erase "$(INTDIR)\Shared_Memory_MM.obj"
- -@erase "$(INTDIR)\Shared_Memory_SV.obj"
- -@erase "$(INTDIR)\Shared_Object.obj"
- -@erase "$(INTDIR)\Signal.obj"
- -@erase "$(INTDIR)\SOCK.obj"
- -@erase "$(INTDIR)\SOCK_Acceptor.obj"
- -@erase "$(INTDIR)\SOCK_CODgram.obj"
- -@erase "$(INTDIR)\Sock_Connect.obj"
- -@erase "$(INTDIR)\SOCK_Connector.obj"
- -@erase "$(INTDIR)\SOCK_Dgram.obj"
- -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj"
- -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj"
- -@erase "$(INTDIR)\SOCK_IO.obj"
- -@erase "$(INTDIR)\SOCK_Stream.obj"
- -@erase "$(INTDIR)\SPIPE.obj"
- -@erase "$(INTDIR)\SPIPE_Acceptor.obj"
- -@erase "$(INTDIR)\SPIPE_Addr.obj"
- -@erase "$(INTDIR)\SPIPE_Connector.obj"
- -@erase "$(INTDIR)\SPIPE_Stream.obj"
- -@erase "$(INTDIR)\SString.obj"
- -@erase "$(INTDIR)\Stats.obj"
- -@erase "$(INTDIR)\String_Base_Const.obj"
- -@erase "$(INTDIR)\SV_Message.obj"
- -@erase "$(INTDIR)\SV_Message_Queue.obj"
- -@erase "$(INTDIR)\SV_Semaphore_Complex.obj"
- -@erase "$(INTDIR)\SV_Semaphore_Simple.obj"
- -@erase "$(INTDIR)\SV_Shared_Memory.obj"
- -@erase "$(INTDIR)\Svc_Conf_l.obj"
- -@erase "$(INTDIR)\Svc_Conf_Lexer_Guard.obj"
- -@erase "$(INTDIR)\Svc_Conf_y.obj"
- -@erase "$(INTDIR)\Svc_Handler.obj"
- -@erase "$(INTDIR)\Synch.obj"
- -@erase "$(INTDIR)\Synch_Options.obj"
- -@erase "$(INTDIR)\System_Time.obj"
- -@erase "$(INTDIR)\Task.obj"
- -@erase "$(INTDIR)\Template_Instantiations.obj"
- -@erase "$(INTDIR)\Thread.obj"
- -@erase "$(INTDIR)\Thread_Adapter.obj"
- -@erase "$(INTDIR)\Thread_Control.obj"
- -@erase "$(INTDIR)\Thread_Exit.obj"
- -@erase "$(INTDIR)\Thread_Hook.obj"
- -@erase "$(INTDIR)\Thread_Manager.obj"
- -@erase "$(INTDIR)\Time_Request_Reply.obj"
- -@erase "$(INTDIR)\Time_Value.obj"
- -@erase "$(INTDIR)\Timeprobe.obj"
- -@erase "$(INTDIR)\Timer_Hash.obj"
- -@erase "$(INTDIR)\Timer_Heap.obj"
- -@erase "$(INTDIR)\Timer_List.obj"
- -@erase "$(INTDIR)\Timer_Queue.obj"
- -@erase "$(INTDIR)\Timer_Queue_Adapters.obj"
- -@erase "$(INTDIR)\Timer_Wheel.obj"
- -@erase "$(INTDIR)\TLI.obj"
- -@erase "$(INTDIR)\TLI_Acceptor.obj"
- -@erase "$(INTDIR)\TLI_Connector.obj"
- -@erase "$(INTDIR)\TLI_Stream.obj"
- -@erase "$(INTDIR)\Token.obj"
- -@erase "$(INTDIR)\Token_Collection.obj"
- -@erase "$(INTDIR)\Token_Invariants.obj"
- -@erase "$(INTDIR)\Token_Manager.obj"
- -@erase "$(INTDIR)\Token_Request_Reply.obj"
- -@erase "$(INTDIR)\TP_Reactor.obj"
- -@erase "$(INTDIR)\Trace.obj"
- -@erase "$(INTDIR)\TTY_IO.obj"
- -@erase "$(INTDIR)\Typed_SV_Message.obj"
- -@erase "$(INTDIR)\Typed_SV_Message_Queue.obj"
- -@erase "$(INTDIR)\UNIX_Addr.obj"
- -@erase "$(INTDIR)\UPIPE_Acceptor.obj"
- -@erase "$(INTDIR)\UPIPE_Connector.obj"
- -@erase "$(INTDIR)\UPIPE_Stream.obj"
- -@erase "$(INTDIR)\vc60.idb"
- -@erase "$(INTDIR)\vc60.pdb"
- -@erase "$(INTDIR)\WFMO_Reactor.obj"
- -@erase "$(INTDIR)\WIN32_Asynch_IO.obj"
- -@erase "$(INTDIR)\WIN32_Proactor.obj"
- -@erase "$(INTDIR)\XML_Svc_Conf.obj"
- -@erase "$(INTDIR)\XtReactor.obj"
- -@erase "$(OUTDIR)\aced.exp"
- -@erase "$(OUTDIR)\aced.lib"
- -@erase "$(OUTDIR)\aced.pdb"
- -@erase "..\bin\aced.dll"
- -@erase "..\bin\aced.ilk"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /Wp64 /Gm /GX /Zi /Od /Gy /I "../" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "ACE_BUILD_DLL" /D "ACE_OS_BUILD_DLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
-RSC=rc.exe
-RSC_PROJ=/l 0x409 /fo"$(INTDIR)\ace.res" /d "_DEBUG"
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\ace.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=advapi32.lib user32.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"$(OUTDIR)\aced.pdb" /debug /machine:IA64 /out:"..\bin\aced.dll" /implib:"$(OUTDIR)\aced.lib"
-LINK32_OBJS= \
- "$(INTDIR)\ACE.obj" \
- "$(INTDIR)\Activation_Queue.obj" \
- "$(INTDIR)\Active_Map_Manager.obj" \
- "$(INTDIR)\Addr.obj" \
- "$(INTDIR)\Arg_Shifter.obj" \
- "$(INTDIR)\ARGV.obj" \
- "$(INTDIR)\Argv_Type_Converter.obj" \
- "$(INTDIR)\Asynch_Connector.obj" \
- "$(INTDIR)\Asynch_IO.obj" \
- "$(INTDIR)\Asynch_IO_Impl.obj" \
- "$(INTDIR)\Asynch_Pseudo_Task.obj" \
- "$(INTDIR)\Atomic_Op.obj" \
- "$(INTDIR)\ATM_Acceptor.obj" \
- "$(INTDIR)\ATM_Addr.obj" \
- "$(INTDIR)\ATM_Connector.obj" \
- "$(INTDIR)\ATM_Params.obj" \
- "$(INTDIR)\ATM_QoS.obj" \
- "$(INTDIR)\ATM_Stream.obj" \
- "$(INTDIR)\Base_Thread_Adapter.obj" \
- "$(INTDIR)\Based_Pointer_Repository.obj" \
- "$(INTDIR)\Basic_Stats.obj" \
- "$(INTDIR)\Basic_Types.obj" \
- "$(INTDIR)\Capabilities.obj" \
- "$(INTDIR)\CDR_Base.obj" \
- "$(INTDIR)\CDR_Stream.obj" \
- "$(INTDIR)\Codecs.obj" \
- "$(INTDIR)\Codeset_Registry.obj"
- "$(INTDIR)\Codeset_Registry_db.obj"
- "$(INTDIR)\Configuration.obj" \
- "$(INTDIR)\Configuration_Import_Export.obj" \
- "$(INTDIR)\Connection_Recycling_Strategy.obj" \
- "$(INTDIR)\Containers.obj" \
- "$(INTDIR)\Copy_Disabled.obj" \
- "$(INTDIR)\Date_Time.obj" \
- "$(INTDIR)\DEV.obj" \
- "$(INTDIR)\DEV_Addr.obj" \
- "$(INTDIR)\DEV_Connector.obj" \
- "$(INTDIR)\DEV_IO.obj" \
- "$(INTDIR)\Dirent.obj" \
- "$(INTDIR)\Dirent_Selector.obj" \
- "$(INTDIR)\DLL.obj" \
- "$(INTDIR)\DLL_Manager.obj" \
- "$(INTDIR)\Dump.obj" \
- "$(INTDIR)\Dynamic.obj" \
- "$(INTDIR)\Dynamic_Service.obj" \
- "$(INTDIR)\Dynamic_Service_Base.obj" \
- "$(INTDIR)\Event_Handler.obj" \
- "$(INTDIR)\Event_Handler_T.obj" \
- "$(INTDIR)\FIFO.obj" \
- "$(INTDIR)\FIFO_Recv.obj" \
- "$(INTDIR)\FIFO_Recv_Msg.obj" \
- "$(INTDIR)\FIFO_Send.obj" \
- "$(INTDIR)\FIFO_Send_Msg.obj" \
- "$(INTDIR)\FILE.obj" \
- "$(INTDIR)\FILE_Addr.obj" \
- "$(INTDIR)\FILE_Connector.obj" \
- "$(INTDIR)\FILE_IO.obj" \
- "$(INTDIR)\File_Lock.obj" \
- "$(INTDIR)\Filecache.obj" \
- "$(INTDIR)\Flag_Manip.obj" \
- "$(INTDIR)\Framework_Component.obj" \
- "$(INTDIR)\Functor.obj" \
- "$(INTDIR)\Get_Opt.obj" \
- "$(INTDIR)\Handle_Ops.obj" \
- "$(INTDIR)\Handle_Set.obj" \
- "$(INTDIR)\Hash_Map_Manager.obj" \
- "$(INTDIR)\Hashable.obj" \
- "$(INTDIR)\High_Res_Timer.obj" \
- "$(INTDIR)\INET_Addr.obj" \
- "$(INTDIR)\Init_ACE.obj" \
- "$(INTDIR)\IO_Cntl_Msg.obj" \
- "$(INTDIR)\IO_SAP.obj" \
- "$(INTDIR)\IOStream.obj" \
- "$(INTDIR)\IPC_SAP.obj" \
- "$(INTDIR)\Lib_Find.obj" \
- "$(INTDIR)\Local_Name_Space.obj" \
- "$(INTDIR)\Local_Tokens.obj" \
- "$(INTDIR)\Log_Msg.obj" \
- "$(INTDIR)\Log_Msg_Backend.obj" \
- "$(INTDIR)\Log_Msg_Callback.obj" \
- "$(INTDIR)\Log_Msg_IPC.obj" \
- "$(INTDIR)\Log_Msg_NT_Event_Log.obj" \
- "$(INTDIR)\Log_Msg_UNIX_Syslog.obj" \
- "$(INTDIR)\Log_Record.obj" \
- "$(INTDIR)\Logging_Strategy.obj" \
- "$(INTDIR)\LSOCK.obj" \
- "$(INTDIR)\LSOCK_Acceptor.obj" \
- "$(INTDIR)\LSOCK_CODgram.obj" \
- "$(INTDIR)\LSOCK_Connector.obj" \
- "$(INTDIR)\LSOCK_Dgram.obj" \
- "$(INTDIR)\LSOCK_Stream.obj" \
- "$(INTDIR)\Malloc.obj" \
- "$(INTDIR)\Malloc_Allocator.obj" \
- "$(INTDIR)\Malloc_Instantiations.obj" \
- "$(INTDIR)\Map.obj" \
- "$(INTDIR)\MEM_Acceptor.obj" \
- "$(INTDIR)\MEM_Addr.obj" \
- "$(INTDIR)\MEM_Connector.obj" \
- "$(INTDIR)\MEM_IO.obj" \
- "$(INTDIR)\Mem_Map.obj" \
- "$(INTDIR)\MEM_SAP.obj" \
- "$(INTDIR)\MEM_Stream.obj" \
- "$(INTDIR)\Memory_Pool.obj" \
- "$(INTDIR)\Message_Block.obj" \
- "$(INTDIR)\Message_Queue.obj" \
- "$(INTDIR)\Method_Request.obj" \
- "$(INTDIR)\Msg_WFMO_Reactor.obj" \
- "$(INTDIR)\Multiplexor.obj" \
- "$(INTDIR)\Name_Proxy.obj" \
- "$(INTDIR)\Name_Request_Reply.obj" \
- "$(INTDIR)\Name_Space.obj" \
- "$(INTDIR)\Naming_Context.obj" \
- "$(INTDIR)\Notification_Strategy.obj" \
- "$(INTDIR)\NT_Service.obj" \
- "$(INTDIR)\Obchunk.obj" \
- "$(INTDIR)\Object_Manager.obj" \
- "$(INTDIR)\Obstack.obj" \
- "$(INTDIR)\OS.obj" \
- "$(INTDIR)\OS_Dirent.obj" \
- "$(INTDIR)\OS_Errno.obj" \
- "$(INTDIR)\OS_Log_Msg_Attributes.obj" \
- "$(INTDIR)\OS_Memory.obj" \
- "$(INTDIR)\OS_QoS.obj" \
- "$(INTDIR)\OS_String.obj" \
- "$(INTDIR)\OS_Thread_Adapter.obj" \
- "$(INTDIR)\OS_TLI.obj" \
- "$(INTDIR)\Pair.obj" \
- "$(INTDIR)\Parse_Node.obj" \
- "$(INTDIR)\PI_Malloc.obj" \
- "$(INTDIR)\Pipe.obj" \
- "$(INTDIR)\POSIX_Asynch_IO.obj" \
- "$(INTDIR)\POSIX_Proactor.obj" \
- "$(INTDIR)\Priority_Reactor.obj" \
- "$(INTDIR)\Proactor.obj" \
- "$(INTDIR)\Process.obj" \
- "$(INTDIR)\Process_Manager.obj" \
- "$(INTDIR)\Process_Mutex.obj" \
- "$(INTDIR)\Process_Semaphore.obj" \
- "$(INTDIR)\Profile_Timer.obj" \
- "$(INTDIR)\Reactor.obj" \
- "$(INTDIR)\Reactor_Notification_Strategy.obj" \
- "$(INTDIR)\Read_Buffer.obj" \
- "$(INTDIR)\Recyclable.obj" \
- "$(INTDIR)\Refcountable.obj" \
- "$(INTDIR)\Registry.obj" \
- "$(INTDIR)\Registry_Name_Space.obj" \
- "$(INTDIR)\Remote_Name_Space.obj" \
- "$(INTDIR)\Remote_Tokens.obj" \
- "$(INTDIR)\RW_Process_Mutex.obj" \
- "$(INTDIR)\Sample_History.obj" \
- "$(INTDIR)\Sched_Params.obj" \
- "$(INTDIR)\Select_Reactor.obj" \
- "$(INTDIR)\Select_Reactor_Base.obj" \
- "$(INTDIR)\Service_Config.obj" \
- "$(INTDIR)\Service_Manager.obj" \
- "$(INTDIR)\Service_Object.obj" \
- "$(INTDIR)\Service_Repository.obj" \
- "$(INTDIR)\Service_Templates.obj" \
- "$(INTDIR)\Service_Types.obj" \
- "$(INTDIR)\Shared_Memory.obj" \
- "$(INTDIR)\Shared_Memory_MM.obj" \
- "$(INTDIR)\Shared_Memory_SV.obj" \
- "$(INTDIR)\Shared_Object.obj" \
- "$(INTDIR)\Signal.obj" \
- "$(INTDIR)\SOCK.obj" \
- "$(INTDIR)\SOCK_Acceptor.obj" \
- "$(INTDIR)\SOCK_CODgram.obj" \
- "$(INTDIR)\Sock_Connect.obj" \
- "$(INTDIR)\SOCK_Connector.obj" \
- "$(INTDIR)\SOCK_Dgram.obj" \
- "$(INTDIR)\SOCK_Dgram_Bcast.obj" \
- "$(INTDIR)\SOCK_Dgram_Mcast.obj" \
- "$(INTDIR)\SOCK_IO.obj" \
- "$(INTDIR)\SOCK_Stream.obj" \
- "$(INTDIR)\SPIPE.obj" \
- "$(INTDIR)\SPIPE_Acceptor.obj" \
- "$(INTDIR)\SPIPE_Addr.obj" \
- "$(INTDIR)\SPIPE_Connector.obj" \
- "$(INTDIR)\SPIPE_Stream.obj" \
- "$(INTDIR)\SString.obj" \
- "$(INTDIR)\Stats.obj" \
- "$(INTDIR)\String_Base_Const.obj" \
- "$(INTDIR)\SV_Message.obj" \
- "$(INTDIR)\SV_Message_Queue.obj" \
- "$(INTDIR)\SV_Semaphore_Complex.obj" \
- "$(INTDIR)\SV_Semaphore_Simple.obj" \
- "$(INTDIR)\SV_Shared_Memory.obj" \
- "$(INTDIR)\Svc_Conf_l.obj" \
- "$(INTDIR)\Svc_Conf_Lexer_Guard.obj" \
- "$(INTDIR)\Svc_Conf_y.obj" \
- "$(INTDIR)\Svc_Handler.obj" \
- "$(INTDIR)\Synch.obj" \
- "$(INTDIR)\Synch_Options.obj" \
- "$(INTDIR)\System_Time.obj" \
- "$(INTDIR)\Task.obj" \
- "$(INTDIR)\Template_Instantiations.obj" \
- "$(INTDIR)\Thread.obj" \
- "$(INTDIR)\Thread_Adapter.obj" \
- "$(INTDIR)\Thread_Control.obj" \
- "$(INTDIR)\Thread_Exit.obj" \
- "$(INTDIR)\Thread_Hook.obj" \
- "$(INTDIR)\Thread_Manager.obj" \
- "$(INTDIR)\Time_Request_Reply.obj" \
- "$(INTDIR)\Time_Value.obj" \
- "$(INTDIR)\Timeprobe.obj" \
- "$(INTDIR)\Timer_Hash.obj" \
- "$(INTDIR)\Timer_Heap.obj" \
- "$(INTDIR)\Timer_List.obj" \
- "$(INTDIR)\Timer_Queue.obj" \
- "$(INTDIR)\Timer_Queue_Adapters.obj" \
- "$(INTDIR)\Timer_Wheel.obj" \
- "$(INTDIR)\TLI.obj" \
- "$(INTDIR)\TLI_Acceptor.obj" \
- "$(INTDIR)\TLI_Connector.obj" \
- "$(INTDIR)\TLI_Stream.obj" \
- "$(INTDIR)\Token.obj" \
- "$(INTDIR)\Token_Collection.obj" \
- "$(INTDIR)\Token_Invariants.obj" \
- "$(INTDIR)\Token_Manager.obj" \
- "$(INTDIR)\Token_Request_Reply.obj" \
- "$(INTDIR)\TP_Reactor.obj" \
- "$(INTDIR)\Trace.obj" \
- "$(INTDIR)\TTY_IO.obj" \
- "$(INTDIR)\Typed_SV_Message.obj" \
- "$(INTDIR)\Typed_SV_Message_Queue.obj" \
- "$(INTDIR)\UNIX_Addr.obj" \
- "$(INTDIR)\UPIPE_Acceptor.obj" \
- "$(INTDIR)\UPIPE_Connector.obj" \
- "$(INTDIR)\UPIPE_Stream.obj" \
- "$(INTDIR)\WFMO_Reactor.obj" \
- "$(INTDIR)\WIN32_Asynch_IO.obj" \
- "$(INTDIR)\WIN32_Proactor.obj" \
- "$(INTDIR)\XML_Svc_Conf.obj" \
- "$(INTDIR)\XtReactor.obj" \
- "$(INTDIR)\ace.res"
-
-"..\bin\aced.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("ace_dll.dep")
-!INCLUDE "ace_dll.dep"
-!ELSE
-!MESSAGE Warning: cannot find "ace_dll.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "ACE DLL - Win64 MFC Release" || "$(CFG)" == "ACE DLL - Win64 MFC Debug" || "$(CFG)" == "ACE DLL - Win64 Release" || "$(CFG)" == "ACE DLL - Win64 Debug"
-SOURCE=.\ACE.cpp
-
-"$(INTDIR)\ACE.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Activation_Queue.cpp
-
-"$(INTDIR)\Activation_Queue.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Active_Map_Manager.cpp
-
-"$(INTDIR)\Active_Map_Manager.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Addr.cpp
-
-"$(INTDIR)\Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Arg_Shifter.cpp
-
-"$(INTDIR)\Arg_Shifter.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\ARGV.cpp
-
-"$(INTDIR)\ARGV.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Argv_Type_Converter.cpp
-
-"$(INTDIR)\Argv_Type_Converter.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Asynch_Connector.cpp
-
-"$(INTDIR)\Asynch_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Asynch_IO.cpp
-
-"$(INTDIR)\Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Asynch_IO_Impl.cpp
-
-"$(INTDIR)\Asynch_IO_Impl.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Asynch_Pseudo_Task.cpp
-
-"$(INTDIR)\Asynch_Pseudo_Task.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Atomic_Op.cpp
-
-"$(INTDIR)\Atomic_Op.obj" : $(SOURCE) "$(INTDIR)" ".\Atomic_Op.cpp"
-
-
-SOURCE=.\ATM_Acceptor.cpp
-
-"$(INTDIR)\ATM_Acceptor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\ATM_Addr.cpp
-
-"$(INTDIR)\ATM_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\ATM_Connector.cpp
-
-"$(INTDIR)\ATM_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\ATM_Params.cpp
-
-"$(INTDIR)\ATM_Params.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\ATM_QoS.cpp
-
-"$(INTDIR)\ATM_QoS.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\ATM_Stream.cpp
-
-"$(INTDIR)\ATM_Stream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Base_Thread_Adapter.cpp
-
-"$(INTDIR)\Base_Thread_Adapter.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Based_Pointer_Repository.cpp
-
-"$(INTDIR)\Based_Pointer_Repository.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Basic_Stats.cpp
-
-"$(INTDIR)\Basic_Stats.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Basic_Types.cpp
-
-"$(INTDIR)\Basic_Types.obj" : $(SOURCE) "$(INTDIR)" ".\Template_Instantiations.cpp" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Capabilities.cpp
-
-"$(INTDIR)\Capabilities.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\CDR_Base.cpp
-
-"$(INTDIR)\CDR_Base.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\CDR_Stream.cpp
-
-"$(INTDIR)\CDR_Stream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Codecs.cpp
-
-"$(INTDIR)\Codecs.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Codeset_Registry.cpp
-
-"$(INTDIR)\Codeset_Registry.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Codeset_Registry_db.cpp
-
-"$(INTDIR)\Codeset_Registry_db.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Configuration.cpp
-
-"$(INTDIR)\Configuration.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Configuration_Import_Export.cpp
-
-"$(INTDIR)\Configuration_Import_Export.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Connection_Recycling_Strategy.cpp
-
-"$(INTDIR)\Connection_Recycling_Strategy.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Containers.cpp
-
-"$(INTDIR)\Containers.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Copy_Disabled.cpp
-
-"$(INTDIR)\Copy_Disabled.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Date_Time.cpp
-
-"$(INTDIR)\Date_Time.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\DEV.cpp
-
-"$(INTDIR)\DEV.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\DEV_Addr.cpp
-
-"$(INTDIR)\DEV_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\DEV_Connector.cpp
-
-"$(INTDIR)\DEV_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\DEV_IO.cpp
-
-"$(INTDIR)\DEV_IO.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Dirent.cpp
-
-"$(INTDIR)\Dirent.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Dirent_Selector.cpp
-
-"$(INTDIR)\Dirent_Selector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\DLL.cpp
-
-"$(INTDIR)\DLL.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\DLL_Manager.cpp
-
-"$(INTDIR)\DLL_Manager.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Dump.cpp
-
-"$(INTDIR)\Dump.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Dynamic.cpp
-
-"$(INTDIR)\Dynamic.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Dynamic_Service.cpp
-
-"$(INTDIR)\Dynamic_Service.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Dynamic_Service_Base.cpp
-
-"$(INTDIR)\Dynamic_Service_Base.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Event_Handler.cpp
-
-"$(INTDIR)\Event_Handler.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Event_Handler_T.cpp
-
-"$(INTDIR)\Event_Handler_T.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FIFO.cpp
-
-"$(INTDIR)\FIFO.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FIFO_Recv.cpp
-
-"$(INTDIR)\FIFO_Recv.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FIFO_Recv_Msg.cpp
-
-"$(INTDIR)\FIFO_Recv_Msg.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FIFO_Send.cpp
-
-"$(INTDIR)\FIFO_Send.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FIFO_Send_Msg.cpp
-
-"$(INTDIR)\FIFO_Send_Msg.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FILE.cpp
-
-"$(INTDIR)\FILE.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FILE_Addr.cpp
-
-"$(INTDIR)\FILE_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FILE_Connector.cpp
-
-"$(INTDIR)\FILE_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FILE_IO.cpp
-
-"$(INTDIR)\FILE_IO.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\File_Lock.cpp
-
-"$(INTDIR)\File_Lock.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Filecache.cpp
-
-"$(INTDIR)\Filecache.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Flag_Manip.cpp
-
-"$(INTDIR)\Flag_Manip.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Framework_Component.cpp
-
-"$(INTDIR)\Framework_Component.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Functor.cpp
-
-"$(INTDIR)\Functor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Get_Opt.cpp
-
-"$(INTDIR)\Get_Opt.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Handle_Ops.cpp
-
-"$(INTDIR)\Handle_Ops.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Handle_Set.cpp
-
-"$(INTDIR)\Handle_Set.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Hash_Map_Manager.cpp
-
-"$(INTDIR)\Hash_Map_Manager.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Hashable.cpp
-
-"$(INTDIR)\Hashable.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\High_Res_Timer.cpp
-
-"$(INTDIR)\High_Res_Timer.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\INET_Addr.cpp
-
-"$(INTDIR)\INET_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Init_ACE.cpp
-
-"$(INTDIR)\Init_ACE.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\IO_Cntl_Msg.cpp
-
-"$(INTDIR)\IO_Cntl_Msg.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\IO_SAP.cpp
-
-"$(INTDIR)\IO_SAP.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\IOStream.cpp
-
-"$(INTDIR)\IOStream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\IPC_SAP.cpp
-
-"$(INTDIR)\IPC_SAP.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Lib_Find.cpp
-
-"$(INTDIR)\Lib_Find.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Local_Name_Space.cpp
-
-"$(INTDIR)\Local_Name_Space.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Local_Tokens.cpp
-
-"$(INTDIR)\Local_Tokens.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Log_Msg.cpp
-
-"$(INTDIR)\Log_Msg.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Log_Msg_Backend.cpp
-
-"$(INTDIR)\Log_Msg_Backend.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Log_Msg_Callback.cpp
-
-"$(INTDIR)\Log_Msg_Callback.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Log_Msg_IPC.cpp
-
-"$(INTDIR)\Log_Msg_IPC.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Log_Msg_NT_Event_Log.cpp
-
-"$(INTDIR)\Log_Msg_NT_Event_Log.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Log_Msg_UNIX_Syslog.cpp
-
-"$(INTDIR)\Log_Msg_UNIX_Syslog.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Log_Record.cpp
-
-"$(INTDIR)\Log_Record.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Logging_Strategy.cpp
-
-"$(INTDIR)\Logging_Strategy.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\LSOCK.cpp
-
-"$(INTDIR)\LSOCK.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\LSOCK_Acceptor.cpp
-
-"$(INTDIR)\LSOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\LSOCK_CODgram.cpp
-
-"$(INTDIR)\LSOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\LSOCK_Connector.cpp
-
-"$(INTDIR)\LSOCK_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\LSOCK_Dgram.cpp
-
-"$(INTDIR)\LSOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\LSOCK_Stream.cpp
-
-"$(INTDIR)\LSOCK_Stream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Malloc.cpp
-
-"$(INTDIR)\Malloc.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Malloc_Allocator.cpp
-
-"$(INTDIR)\Malloc_Allocator.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Malloc_Instantiations.cpp
-
-"$(INTDIR)\Malloc_Instantiations.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Map.cpp
-
-"$(INTDIR)\Map.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\MEM_Acceptor.cpp
-
-"$(INTDIR)\MEM_Acceptor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\MEM_Addr.cpp
-
-"$(INTDIR)\MEM_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\MEM_Connector.cpp
-
-"$(INTDIR)\MEM_Connector.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\MEM_IO.cpp
-
-"$(INTDIR)\MEM_IO.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Mem_Map.cpp
-
-"$(INTDIR)\Mem_Map.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\MEM_SAP.cpp
-
-"$(INTDIR)\MEM_SAP.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\MEM_Stream.cpp
-
-"$(INTDIR)\MEM_Stream.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Memory_Pool.cpp
-
-"$(INTDIR)\Memory_Pool.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Message_Block.cpp
-
-"$(INTDIR)\Message_Block.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Message_Queue.cpp
-
-"$(INTDIR)\Message_Queue.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Method_Request.cpp
-
-"$(INTDIR)\Method_Request.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Msg_WFMO_Reactor.cpp
-
-"$(INTDIR)\Msg_WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Multiplexor.cpp
-
-"$(INTDIR)\Multiplexor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Name_Proxy.cpp
-
-"$(INTDIR)\Name_Proxy.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Name_Request_Reply.cpp
-
-"$(INTDIR)\Name_Request_Reply.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Name_Space.cpp
-
-"$(INTDIR)\Name_Space.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Naming_Context.cpp
-
-"$(INTDIR)\Naming_Context.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Notification_Strategy.cpp
-
-"$(INTDIR)\Notification_Strategy.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\NT_Service.cpp
-
-"$(INTDIR)\NT_Service.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Obchunk.cpp
-
-"$(INTDIR)\Obchunk.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Object_Manager.cpp
-
-"$(INTDIR)\Object_Manager.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Obstack.cpp
-
-"$(INTDIR)\Obstack.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS.cpp
-
-"$(INTDIR)\OS.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_Dirent.cpp
-
-"$(INTDIR)\OS_Dirent.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_Errno.cpp
-
-"$(INTDIR)\OS_Errno.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_Log_Msg_Attributes.cpp
-
-"$(INTDIR)\OS_Log_Msg_Attributes.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_Memory.cpp
-
-"$(INTDIR)\OS_Memory.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_QoS.cpp
-
-"$(INTDIR)\OS_QoS.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_String.cpp
-
-"$(INTDIR)\OS_String.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_Thread_Adapter.cpp
-
-"$(INTDIR)\OS_Thread_Adapter.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_TLI.cpp
-
-"$(INTDIR)\OS_TLI.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Pair.cpp
-
-"$(INTDIR)\Pair.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Parse_Node.cpp
-
-"$(INTDIR)\Parse_Node.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\PI_Malloc.cpp
-
-"$(INTDIR)\PI_Malloc.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Pipe.cpp
-
-"$(INTDIR)\Pipe.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\POSIX_Asynch_IO.cpp
-
-"$(INTDIR)\POSIX_Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\POSIX_Proactor.cpp
-
-"$(INTDIR)\POSIX_Proactor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Priority_Reactor.cpp
-
-"$(INTDIR)\Priority_Reactor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Proactor.cpp
-
-"$(INTDIR)\Proactor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Process.cpp
-
-"$(INTDIR)\Process.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Process_Manager.cpp
-
-"$(INTDIR)\Process_Manager.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Process_Mutex.cpp
-
-"$(INTDIR)\Process_Mutex.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Process_Semaphore.cpp
-
-"$(INTDIR)\Process_Semaphore.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Profile_Timer.cpp
-
-"$(INTDIR)\Profile_Timer.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Reactor.cpp
-
-"$(INTDIR)\Reactor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Reactor_Notification_Strategy.cpp
-
-"$(INTDIR)\Reactor_Notification_Strategy.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Read_Buffer.cpp
-
-"$(INTDIR)\Read_Buffer.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Recyclable.cpp
-
-"$(INTDIR)\Recyclable.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Refcountable.cpp
-
-"$(INTDIR)\Refcountable.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Registry.cpp
-
-"$(INTDIR)\Registry.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Registry_Name_Space.cpp
-
-"$(INTDIR)\Registry_Name_Space.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Remote_Name_Space.cpp
-
-"$(INTDIR)\Remote_Name_Space.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Remote_Tokens.cpp
-
-"$(INTDIR)\Remote_Tokens.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\RW_Process_Mutex.cpp
-
-"$(INTDIR)\RW_Process_Mutex.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Sample_History.cpp
-
-"$(INTDIR)\Sample_History.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Sched_Params.cpp
-
-"$(INTDIR)\Sched_Params.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Select_Reactor.cpp
-
-"$(INTDIR)\Select_Reactor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Select_Reactor_Base.cpp
-
-"$(INTDIR)\Select_Reactor_Base.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Service_Config.cpp
-
-"$(INTDIR)\Service_Config.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Service_Manager.cpp
-
-"$(INTDIR)\Service_Manager.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Service_Object.cpp
-
-"$(INTDIR)\Service_Object.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Service_Repository.cpp
-
-"$(INTDIR)\Service_Repository.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Service_Templates.cpp
-
-"$(INTDIR)\Service_Templates.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Service_Types.cpp
-
-"$(INTDIR)\Service_Types.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Shared_Memory.cpp
-
-"$(INTDIR)\Shared_Memory.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Shared_Memory_MM.cpp
-
-"$(INTDIR)\Shared_Memory_MM.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Shared_Memory_SV.cpp
-
-"$(INTDIR)\Shared_Memory_SV.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Shared_Object.cpp
-
-"$(INTDIR)\Shared_Object.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Signal.cpp
-
-"$(INTDIR)\Signal.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK.cpp
-
-"$(INTDIR)\SOCK.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_Acceptor.cpp
-
-"$(INTDIR)\SOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_CODgram.cpp
-
-"$(INTDIR)\SOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Sock_Connect.cpp
-
-"$(INTDIR)\Sock_Connect.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_Connector.cpp
-
-"$(INTDIR)\SOCK_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_Dgram.cpp
-
-"$(INTDIR)\SOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_Dgram_Bcast.cpp
-
-"$(INTDIR)\SOCK_Dgram_Bcast.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_Dgram_Mcast.cpp
-
-"$(INTDIR)\SOCK_Dgram_Mcast.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_IO.cpp
-
-"$(INTDIR)\SOCK_IO.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_Stream.cpp
-
-"$(INTDIR)\SOCK_Stream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SPIPE.cpp
-
-"$(INTDIR)\SPIPE.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SPIPE_Acceptor.cpp
-
-"$(INTDIR)\SPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SPIPE_Addr.cpp
-
-"$(INTDIR)\SPIPE_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SPIPE_Connector.cpp
-
-"$(INTDIR)\SPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SPIPE_Stream.cpp
-
-"$(INTDIR)\SPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SString.cpp
-
-"$(INTDIR)\SString.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Stats.cpp
-
-"$(INTDIR)\Stats.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\String_Base_Const.cpp
-
-"$(INTDIR)\String_Base_Const.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SV_Message.cpp
-
-"$(INTDIR)\SV_Message.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SV_Message_Queue.cpp
-
-"$(INTDIR)\SV_Message_Queue.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SV_Semaphore_Complex.cpp
-
-"$(INTDIR)\SV_Semaphore_Complex.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SV_Semaphore_Simple.cpp
-
-"$(INTDIR)\SV_Semaphore_Simple.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SV_Shared_Memory.cpp
-
-"$(INTDIR)\SV_Shared_Memory.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Svc_Conf_l.cpp
-
-"$(INTDIR)\Svc_Conf_l.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Svc_Conf_Lexer_Guard.cpp
-
-"$(INTDIR)\Svc_Conf_Lexer_Guard.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Svc_Conf_y.cpp
-
-"$(INTDIR)\Svc_Conf_y.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Svc_Handler.cpp
-
-"$(INTDIR)\Svc_Handler.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Synch.cpp
-
-"$(INTDIR)\Synch.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Synch_Options.cpp
-
-"$(INTDIR)\Synch_Options.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\System_Time.cpp
-
-"$(INTDIR)\System_Time.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Task.cpp
-
-"$(INTDIR)\Task.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Template_Instantiations.cpp
-
-"$(INTDIR)\Template_Instantiations.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Thread.cpp
-
-"$(INTDIR)\Thread.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Thread_Adapter.cpp
-
-"$(INTDIR)\Thread_Adapter.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Thread_Control.cpp
-
-"$(INTDIR)\Thread_Control.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Thread_Exit.cpp
-
-"$(INTDIR)\Thread_Exit.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Thread_Hook.cpp
-
-"$(INTDIR)\Thread_Hook.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Thread_Manager.cpp
-
-"$(INTDIR)\Thread_Manager.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Time_Request_Reply.cpp
-
-"$(INTDIR)\Time_Request_Reply.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Time_Value.cpp
-
-"$(INTDIR)\Time_Value.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Timeprobe.cpp
-
-"$(INTDIR)\Timeprobe.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Timer_Hash.cpp
-
-"$(INTDIR)\Timer_Hash.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Timer_Heap.cpp
-
-"$(INTDIR)\Timer_Heap.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Timer_List.cpp
-
-"$(INTDIR)\Timer_List.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Timer_Queue.cpp
-
-"$(INTDIR)\Timer_Queue.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Timer_Queue_Adapters.cpp
-
-"$(INTDIR)\Timer_Queue_Adapters.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Timer_Wheel.cpp
-
-"$(INTDIR)\Timer_Wheel.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\TLI.cpp
-
-"$(INTDIR)\TLI.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\TLI_Acceptor.cpp
-
-"$(INTDIR)\TLI_Acceptor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\TLI_Connector.cpp
-
-"$(INTDIR)\TLI_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\TLI_Stream.cpp
-
-"$(INTDIR)\TLI_Stream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Token.cpp
-
-"$(INTDIR)\Token.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Token_Collection.cpp
-
-"$(INTDIR)\Token_Collection.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Token_Invariants.cpp
-
-"$(INTDIR)\Token_Invariants.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Token_Manager.cpp
-
-"$(INTDIR)\Token_Manager.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Token_Request_Reply.cpp
-
-"$(INTDIR)\Token_Request_Reply.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\TP_Reactor.cpp
-
-"$(INTDIR)\TP_Reactor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Trace.cpp
-
-"$(INTDIR)\Trace.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\TTY_IO.cpp
-
-"$(INTDIR)\TTY_IO.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Typed_SV_Message.cpp
-
-"$(INTDIR)\Typed_SV_Message.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Typed_SV_Message_Queue.cpp
-
-"$(INTDIR)\Typed_SV_Message_Queue.obj" : $(SOURCE) "$(INTDIR)" ".\Typed_SV_Message.cpp"
-
-
-SOURCE=.\UNIX_Addr.cpp
-
-"$(INTDIR)\UNIX_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\UPIPE_Acceptor.cpp
-
-"$(INTDIR)\UPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\UPIPE_Connector.cpp
-
-"$(INTDIR)\UPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\UPIPE_Stream.cpp
-
-"$(INTDIR)\UPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\WFMO_Reactor.cpp
-
-"$(INTDIR)\WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\WIN32_Asynch_IO.cpp
-
-"$(INTDIR)\WIN32_Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\WIN32_Proactor.cpp
-
-"$(INTDIR)\WIN32_Proactor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\XML_Svc_Conf.cpp
-
-"$(INTDIR)\XML_Svc_Conf.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\XtReactor.cpp
-
-"$(INTDIR)\XtReactor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Acceptor.cpp
-SOURCE=.\Active_Map_Manager_T.cpp
-SOURCE=.\Asynch_Acceptor.cpp
-SOURCE=.\Auto_Ptr.cpp
-SOURCE=.\Based_Pointer_T.cpp
-SOURCE=.\Cache_Map_Manager_T.cpp
-SOURCE=.\Cached_Connect_Strategy_T.cpp
-SOURCE=.\Caching_Strategies_T.cpp
-SOURCE=.\Caching_Utility_T.cpp
-SOURCE=.\Cleanup_Strategies_T.cpp
-SOURCE=.\Connector.cpp
-SOURCE=.\Containers_T.cpp
-SOURCE=.\Dump_T.cpp
-SOURCE=.\Framework_Component_T.cpp
-
-!IF "$(CFG)" == "ACE DLL - Win64 MFC Release"
-
-
-"$(INTDIR)\Framework_Component_T.obj" : $(SOURCE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win64 MFC Debug"
-
-
-"$(INTDIR)\Framework_Component_T.obj" : $(SOURCE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win64 Release"
-
-
-"$(INTDIR)\Framework_Component_T.obj" : $(SOURCE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win64 Debug"
-
-!ENDIF
-
-SOURCE=.\Free_List.cpp
-SOURCE=.\Functor_T.cpp
-SOURCE=.\Future.cpp
-SOURCE=.\Hash_Cache_Map_Manager_T.cpp
-SOURCE=.\Hash_Map_Manager_T.cpp
-SOURCE=.\Hash_Map_With_Allocator_T.cpp
-SOURCE=.\IOStream_T.cpp
-SOURCE=.\Local_Name_Space_T.cpp
-SOURCE=.\Malloc_T.cpp
-SOURCE=.\Managed_Object.cpp
-SOURCE=.\Map_Manager.cpp
-SOURCE=.\Map_T.cpp
-SOURCE=.\Message_Block_T.cpp
-SOURCE=.\Message_Queue_T.cpp
-SOURCE=.\Module.cpp
-SOURCE=.\Obstack_T.cpp
-SOURCE=.\Pair_T.cpp
-SOURCE=.\RB_Tree.cpp
-SOURCE=.\Select_Reactor_T.cpp
-SOURCE=.\Singleton.cpp
-SOURCE=.\Strategies_T.cpp
-SOURCE=.\Stream.cpp
-SOURCE=.\Stream_Modules.cpp
-SOURCE=.\String_Base.cpp
-SOURCE=.\Synch_T.cpp
-SOURCE=.\Task_T.cpp
-SOURCE=.\Test_and_Set.cpp
-SOURCE=.\Timer_Hash_T.cpp
-SOURCE=.\Timer_Heap_T.cpp
-SOURCE=.\Timer_List_T.cpp
-SOURCE=.\Timer_Queue_T.cpp
-SOURCE=.\Timer_Wheel_T.cpp
-SOURCE=.\ace.rc
-
-"$(INTDIR)\ace.res" : $(SOURCE) "$(INTDIR)"
- $(RSC) $(RSC_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/ace/ace_lib.dsp b/ace/ace_lib.dsp
deleted file mode 100644
index 18ea03662f6..00000000000
--- a/ace/ace_lib.dsp
+++ /dev/null
@@ -1,3427 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ACE LIB" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=ACE LIB - Win32 Static Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "ace_lib.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "ace_lib.mak" CFG="ACE LIB - Win32 Static Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ACE LIB - Win32 Pharlap ETS Static Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "ACE LIB - Win32 Pharlap ETS Static Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE "ACE LIB - Win32 Static Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "ACE LIB - Win32 Static Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath "Desktop"
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "ACE LIB - Win32 Pharlap ETS Static Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "ACE_LIB___Win32_PharLap_ETS_Release"
-# PROP BASE Intermediate_Dir "ACE_LIB___Win32_PharLap_ETS_Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\LIB\Release"
-# PROP Target_Dir ""
-MTL=midl.exe
-LINK32=link.exe -lib
-# ADD BASE CPP /nologo /MD /W3 /GX /O1 /I "../" /D ACE_HAS_DLL=0 /D "ACE_NO_INLINE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MT /W3 /GX /O1 /I "../" /I "../PACE" /D ACE_OS_HAS_DLL=0 /D ACE_HAS_DLL=0 /D "ACE_NO_INLINE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409
-# ADD RSC /l 0x409
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo /o".\ace.bsc"
-# ADD BSC32 /nologo /o".\ace.bsc"
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:".\aces.lib"
-# ADD LIB32 /nologo /out:".\aces.lib"
-
-!ELSEIF "$(CFG)" == "ACE LIB - Win32 Pharlap ETS Static Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "ACE_LIB___Win32_PharLap_ETS_Debug"
-# PROP BASE Intermediate_Dir "ACE_LIB___Win32_PharLap_ETS_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\LIB\Debug"
-# PROP Target_Dir ""
-MTL=midl.exe
-LINK32=link.exe -lib
-# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /Gy /I "../" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=0 /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MTd /W3 /GX /Z7 /Od /Gy /I "../" /I "../PACE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=0 /D ACE_OS_HAS_DLL=0 /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409
-# ADD RSC /l 0x409
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo /o".\ace.bsc"
-# ADD BSC32 /nologo /o".\ace.bsc"
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:".\acesd.lib"
-# ADD LIB32 /nologo /out:".\acesd.lib"
-
-!ELSEIF "$(CFG)" == "ACE LIB - Win32 Static Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\LIB\Release"
-# PROP Target_Dir ""
-MTL=midl.exe
-LINK32=link.exe -lib
-# ADD BASE CPP /nologo /G5 /MT /W3 /GX /O1 /I "../" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=0 /D "ACE_NO_INLINE" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O1 /I "../" /I "../PACE" /D "_WINDOWS" /D "NDEBUG" /D "ACE_AS_STATIC_LIBS" /D "WIN32" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409
-# ADD RSC /l 0x409
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo /o"ace.bsc"
-# ADD BSC32 /nologo /o".\ace.bsc"
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:".\libace-r.lib"
-# ADD LIB32 /nologo /out:".\aces.lib"
-
-!ELSEIF "$(CFG)" == "ACE LIB - Win32 Static Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\LIB\Debug"
-# PROP Target_Dir ""
-MTL=midl.exe
-LINK32=link.exe -lib
-# ADD BASE CPP /nologo /G5 /MTd /W3 /Gm /GX /Zi /Od /Gy /I "../" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=0 /D "ACE_NO_INLINE" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /Gy /I "../" /I "../PACE" /D "_WINDOWS" /D "_DEBUG" /D "ACE_AS_STATIC_LIBS" /D "WIN32" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409
-# ADD RSC /l 0x409
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo /o"ace.bsc"
-# ADD BSC32 /nologo /o".\ace.bsc"
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:".\libace.lib"
-# ADD LIB32 /nologo /out:".\acesd.lib"
-
-!ENDIF
-
-# Begin Target
-
-# Name "ACE LIB - Win32 Pharlap ETS Static Release"
-# Name "ACE LIB - Win32 Pharlap ETS Static Debug"
-# Name "ACE LIB - Win32 Static Release"
-# Name "ACE LIB - Win32 Static Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp"
-# Begin Source File
-
-SOURCE=.\ACE.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Activation_Queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Active_Map_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Arg_Shifter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ARGV.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Argv_Type_Converter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_IO_Impl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Pseudo_Task.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Params.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_QoS.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Atomic_Op.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Base_Thread_Adapter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Based_Pointer_Repository.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Basic_Stats.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Basic_Types.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Capabilities.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\CDR_Base.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\CDR_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Codecs.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Codeset_Registry.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Codeset_Registry_db.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Configuration.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Configuration_Import_Export.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connection_Recycling_Strategy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Containers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Copy_Disabled.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Date_Time.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dirent.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dirent_Selector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\DLL.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\DLL_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dump.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic_Service.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic_Service_Base.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic_Service_Base.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Recv.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Recv_Msg.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Send.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Send_Msg.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\File_Lock.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Filecache.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Flag_Manip.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Framework_Component.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Functor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Get_Opt.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Handle_Ops.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Handle_Set.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hashable.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\High_Res_Timer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\INET_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Init_ACE.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_Cntl_Msg.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_SAP.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IOStream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IPC_SAP.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Lib_Find.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Name_Space.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Tokens.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_Backend.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_Callback.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_IPC.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_NT_Event_Log.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_UNIX_Syslog.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Record.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Strategy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_CODgram.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Dgram.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_Allocator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_Instantiations.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Mem_Map.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_SAP.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Memory_Pool.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Block.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Method_Request.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Msg_WFMO_Reactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Multiplexor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Proxy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Request_Reply.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Space.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Naming_Context.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Notification_Strategy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\NT_Service.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obchunk.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Object_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obstack.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Dirent.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Errno.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Log_Msg_Attributes.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Memory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_QoS.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_String.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Thread_Adapter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_TLI.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pair.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Node.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\PI_Malloc.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipe.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\POSIX_Asynch_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\POSIX_Proactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Priority_Reactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Proactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Mutex.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Semaphore.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Profile_Timer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor_Notification_Strategy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Read_Buffer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Recyclable.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Refcountable.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Registry.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Registry_Name_Space.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Remote_Name_Space.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Remote_Tokens.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RW_Process_Mutex.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sample_History.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sched_Params.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor_Base.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Config.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Object.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Repository.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Templates.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Types.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory_MM.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory_SV.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Object.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Signal.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_CODgram.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sock_Connect.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Bcast.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SString.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stats.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\String_Base_Const.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Message.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Message_Queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Semaphore_Complex.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Semaphore_Simple.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Shared_Memory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Conf_l.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Conf_Lexer_Guard.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Conf_y.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch_Options.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\System_Time.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Template_Instantiations.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Adapter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Control.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Exit.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Hook.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Time_Request_Reply.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Time_Value.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timeprobe.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Hash.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Heap.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_List.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue_Adapters.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Wheel.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Collection.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Invariants.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Request_Reply.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TP_Reactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Trace.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TTY_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Typed_SV_Message.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Typed_SV_Message_Queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\UNIX_Addr.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\WFMO_Reactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\WIN32_Asynch_IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\WIN32_Proactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\XML_Svc_Conf.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\XtReactor.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h"
-# Begin Source File
-
-SOURCE=.\Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ACE.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ACE_export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ace_wchar.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Activation_Queue.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Active_Map_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Active_Map_Manager_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Arg_Shifter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ARGV.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Argv_Type_Converter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_IO_Impl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Pseudo_Task.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Params.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_QoS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Atomic_Op.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Auto_Ptr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Base_Pointer_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Base_Thread_Adapter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Based_Pointer_Repository.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Based_Pointer_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Basic_Stats.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Basic_Types.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Bound_Ptr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Map_Manager_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cached_Connect_Strategy_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Caching_Strategies_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Caching_Strategy_Utility_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Capabilities.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\CDR_Base.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\CDR_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cleanup_Strategies_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Codecs.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Codeset_Registry.h
-# End Source File
-# Begin Source File
-
-SOURCE=".\config-all.h"
-# End Source File
-# Begin Source File
-
-SOURCE=".\config-all.h"
-# End Source File
-# Begin Source File
-
-SOURCE=".\config-win32-common.h"
-# End Source File
-# Begin Source File
-
-SOURCE=".\config-win32-msvc.h"
-# End Source File
-# Begin Source File
-
-SOURCE=".\config-win32.h"
-# End Source File
-# Begin Source File
-
-SOURCE=.\config.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Configuration.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Configuration_Import_Export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connection_Recycling_Strategy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Containers.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Containers_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Copy_Disabled.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Date_Time.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Default_Constants.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dirent.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dirent_Selector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\DLL.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\DLL_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dump.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dump_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic_Service.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Handler_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Recv.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Recv_Msg.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Send.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Send_Msg.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\File_Lock.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Filecache.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Flag_Manip.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Framework_Component.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Free_List.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Functor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Functor_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Future.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Get_Opt.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Global_Macros.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Handle_Ops.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Handle_Set.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Cache_Map_Manager_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_With_Allocator_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hashable.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\High_Res_Timer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\INET_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Init_ACE.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_Cntl_Msg.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_SAP.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IOStream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IOStream_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IPC_SAP.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Lib_Find.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Name_Space.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Name_Space_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Tokens.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_Backend.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_Callback.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_IPC.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_NT_Event_Log.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Msg_UNIX_Syslog.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Priority.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Record.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Strategy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_CODgram.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Dgram.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_Allocator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_Base.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Managed_Object.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Mem_Map.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_SAP.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Memory_Pool.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Block.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Block_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Queue.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Queue_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Method_Request.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Min_Max.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Module.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Msg_WFMO_Reactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Multiplexor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Proxy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Request_Reply.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Space.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Naming_Context.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Notification_Strategy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\NT_Service.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obchunk.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Object_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obstack.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obstack_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Dirent.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Errno.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Log_Msg_Attributes.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Memory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_QoS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_String.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Thread_Adapter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_TLI.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pair.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pair_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Node.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\PI_Malloc.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipe.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\POSIX_Asynch_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\POSIX_Proactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\post.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\pre.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Priority_Reactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Proactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Proactor_Impl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Mutex.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Semaphore.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Profile_Timer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Impl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RB_Tree.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor_Impl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor_Notification_Strategy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ReactorEx.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Read_Buffer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Recyclable.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Refcountable.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Refcounted_Auto_Ptr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Registry.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Registry_Name_Space.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Remote_Name_Space.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Remote_Tokens.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RW_Process_Mutex.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sample_History.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sched_Params.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor_Base.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Config.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Object.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Repository.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Templates.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Types.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory_MM.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory_SV.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Object.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Signal.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Singleton.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_CODgram.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sock_Connect.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Bcast.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast_QoS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SString.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stats.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\stdcpp.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Strategies_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stream_Modules.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\streams.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\String_Base.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\String_Base_Const.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Message.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Message_Queue.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Semaphore_Complex.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Semaphore_Simple.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Shared_Memory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Conf.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Conf_Lexer_Guard.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Conf_Tokens.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\svc_export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Svc_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch_Options.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\System_Time.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Test_and_Set.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Adapter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Control.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Exit.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Hook.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Time_Request_Reply.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Time_Value.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timeprobe.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Hash.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Hash_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Heap.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Heap_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_List.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_List_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue_Adapters.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Wheel.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Wheel_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Collection.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Invariants.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Request_Reply.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TP_Reactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Trace.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TTY_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Typed_SV_Message.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Typed_SV_Message_Queue.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\UNIX_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Version.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\WFMO_Reactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\WIN32_Asynch_IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\WIN32_Proactor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\XML_Svc_Conf.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\XtReactor.h
-# End Source File
-# End Group
-# Begin Group "Inline Files"
-
-# PROP Default_Filter "i;inl"
-# Begin Source File
-
-SOURCE=.\Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ACE.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Activation_Queue.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Active_Map_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Active_Map_Manager_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ARGV.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Argv_Type_Converter.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_IO.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_IO_Impl.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Params.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_QoS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\ATM_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Atomic_Op.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Auto_Ptr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Base_Thread_Adapter.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Based_Pointer_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Basic_Stats.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Basic_Types.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Bound_Ptr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Map_Manager_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cached_Connect_Strategy_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Caching_Strategies_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Caching_Strategy_Utility_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Capabilities.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\CDR_Base.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\CDR_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cleanup_Strategies_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Codeset_Registry.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Configuration.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Containers.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Containers_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Date_Time.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\DEV_IO.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dirent.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dirent_Selector.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dynamic.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Handler.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Recv.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Recv_Msg.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Send.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FIFO_Send_Msg.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE_IO.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\File_Lock.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Flag_Manip.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Framework_Component.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Free_List.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Functor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Functor_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Get_Opt.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Handle_Ops.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Handle_Set.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Cache_Map_Manager_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_With_Allocator_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hashable.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\High_Res_Timer.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\INET_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Init_ACE.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_SAP.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\IOStream_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\IPC_SAP.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Lib_Find.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Tokens.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Log_Record.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_CODgram.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Dgram.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\LSOCK_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_Allocator.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Managed_Object.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_IO.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Mem_Map.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_SAP.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\MEM_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Memory_Pool.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Block.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Block_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Queue.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Queue_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Module.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Msg_WFMO_Reactor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Multiplexor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Notification_Strategy.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\NT_Service.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Object_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obstack.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obstack_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Dirent.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Errno.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Log_Msg_Attributes.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Memory.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_String.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_Thread_Adapter.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS_TLI.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pair_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Node.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\PI_Malloc.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipe.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Priority_Reactor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Proactor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Mutex.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Semaphore.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Profile_Timer.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\QoS_Session_Impl.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RB_Tree.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor_Notification_Strategy.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\ReactorEx.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Read_Buffer.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Recyclable.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Refcountable.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Refcounted_Auto_Ptr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Remote_Tokens.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RW_Process_Mutex.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sample_History.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sched_Params.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor_Base.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Config.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Object.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Repository.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Service_Types.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory_MM.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Memory_SV.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Shared_Object.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Signal.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Singleton.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_CODgram.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sock_Connect.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Bcast.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Dgram_Mcast_QoS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_IO.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCK_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SPIPE_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SString.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stats.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Strategies_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stream_Modules.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\String_Base.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Message.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Message_Queue.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Semaphore_Complex.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Semaphore_Simple.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SV_Shared_Memory.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch_Options.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Test_and_Set.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Adapter.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Control.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Time_Value.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue_Adapters.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\TLI_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Collection.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Invariants.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Manager.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Request_Reply.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\TP_Reactor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Trace.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Typed_SV_Message.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Typed_SV_Message_Queue.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\UNIX_Addr.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Connector.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\UPIPE_Stream.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\WFMO_Reactor.i
-# End Source File
-# End Group
-# Begin Group "Template Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\Acceptor.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Active_Map_Manager_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Acceptor.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Auto_Ptr.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Based_Pointer_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Map_Manager_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cached_Connect_Strategy_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Caching_Strategies_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Caching_Utility_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cleanup_Strategies_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connector.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Containers_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Dump_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Handler_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Framework_Component_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Free_List.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Functor_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Future.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Cache_Map_Manager_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_Manager_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Map_With_Allocator_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\IOStream_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Local_Name_Space_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Malloc_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Managed_Object.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map_Manager.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Map_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Block_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Message_Queue_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Module.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Obstack_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pair_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\RB_Tree.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Select_Reactor_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Singleton.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Strategies_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stream.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stream_Modules.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\String_Base.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Synch_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Test_and_Set.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Hash_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Heap_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_List_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Queue_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Timer_Wheel_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# End Group
-# Begin Group "Documentation"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\Readme
-# End Source File
-# Begin Source File
-
-SOURCE=..\Version
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=.\ace.rc
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/ace/ace_lib64.mak b/ace/ace_lib64.mak
deleted file mode 100644
index 53aafa60801..00000000000
--- a/ace/ace_lib64.mak
+++ /dev/null
@@ -1,2361 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on ace_lib.dsp
-!IF "$(CFG)" == ""
-CFG=ACE LIB - Win64 Static Debug
-!MESSAGE No configuration specified. Defaulting to ACE LIB - Win64 Static Debug.
-!ENDIF
-
-!IF "$(CFG)" != "ACE LIB - Win64 Static Release" && "$(CFG)" != "ACE LIB - Win64 Static Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "ace_lib.mak" CFG="ACE LIB - Win64 Static Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ACE LIB - Win64 Static Release" (based on "Win64 (x86) Static Library")
-!MESSAGE "ACE LIB - Win64 Static Debug" (based on "Win64 (x86) Static Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "ACE LIB - Win64 Static Release"
-
-OUTDIR=.
-INTDIR=.\LIB\Release
-# Begin Custom Macros
-OutDir=.
-# End Custom Macros
-
-ALL : "$(OUTDIR)\aces.lib"
-
-
-CLEAN :
- -@erase "$(INTDIR)\ACE.obj"
- -@erase "$(INTDIR)\ace.res"
- -@erase "$(INTDIR)\Activation_Queue.obj"
- -@erase "$(INTDIR)\Active_Map_Manager.obj"
- -@erase "$(INTDIR)\Addr.obj"
- -@erase "$(INTDIR)\Arg_Shifter.obj"
- -@erase "$(INTDIR)\ARGV.obj"
- -@erase "$(INTDIR)\Argv_Type_Converter.obj"
- -@erase "$(INTDIR)\Asynch_Connector.obj"
- -@erase "$(INTDIR)\Asynch_IO.obj"
- -@erase "$(INTDIR)\Asynch_IO_Impl.obj"
- -@erase "$(INTDIR)\Asynch_Pseudo_Task.obj"
- -@erase "$(INTDIR)\ATM_Acceptor.obj"
- -@erase "$(INTDIR)\ATM_Addr.obj"
- -@erase "$(INTDIR)\ATM_Connector.obj"
- -@erase "$(INTDIR)\ATM_Params.obj"
- -@erase "$(INTDIR)\ATM_QoS.obj"
- -@erase "$(INTDIR)\ATM_Stream.obj"
- -@erase "$(INTDIR)\Atomic_Op.obj"
- -@erase "$(INTDIR)\Base_Thread_Adapter.obj"
- -@erase "$(INTDIR)\Based_Pointer_Repository.obj"
- -@erase "$(INTDIR)\Basic_Stats.obj"
- -@erase "$(INTDIR)\Basic_Types.obj"
- -@erase "$(INTDIR)\Capabilities.obj"
- -@erase "$(INTDIR)\CDR_Base.obj"
- -@erase "$(INTDIR)\CDR_Stream.obj"
- -@erase "$(INTDIR)\Codecs.obj"
- -@erase "$(INTDIR)\Codeset_Registry.obj"
- -@erase "$(INTDIR)\Codeset_Registry_db.obj"
- -@erase "$(INTDIR)\Configuration.obj"
- -@erase "$(INTDIR)\Configuration_Import_Export.obj"
- -@erase "$(INTDIR)\Connection_Recycling_Strategy.obj"
- -@erase "$(INTDIR)\Containers.obj"
- -@erase "$(INTDIR)\Copy_Disabled.obj"
- -@erase "$(INTDIR)\Date_Time.obj"
- -@erase "$(INTDIR)\DEV.obj"
- -@erase "$(INTDIR)\DEV_Addr.obj"
- -@erase "$(INTDIR)\DEV_Connector.obj"
- -@erase "$(INTDIR)\DEV_IO.obj"
- -@erase "$(INTDIR)\Dirent.obj"
- -@erase "$(INTDIR)\Dirent_Selector.obj"
- -@erase "$(INTDIR)\DLL.obj"
- -@erase "$(INTDIR)\DLL_Manager.obj"
- -@erase "$(INTDIR)\Dump.obj"
- -@erase "$(INTDIR)\Dynamic.obj"
- -@erase "$(INTDIR)\Dynamic_Service.obj"
- -@erase "$(INTDIR)\Dynamic_Service_Base.obj"
- -@erase "$(INTDIR)\Event_Handler.obj"
- -@erase "$(INTDIR)\Event_Handler_T.obj"
- -@erase "$(INTDIR)\FIFO.obj"
- -@erase "$(INTDIR)\FIFO_Recv.obj"
- -@erase "$(INTDIR)\FIFO_Recv_Msg.obj"
- -@erase "$(INTDIR)\FIFO_Send.obj"
- -@erase "$(INTDIR)\FIFO_Send_Msg.obj"
- -@erase "$(INTDIR)\FILE.obj"
- -@erase "$(INTDIR)\FILE_Addr.obj"
- -@erase "$(INTDIR)\FILE_Connector.obj"
- -@erase "$(INTDIR)\FILE_IO.obj"
- -@erase "$(INTDIR)\File_Lock.obj"
- -@erase "$(INTDIR)\Filecache.obj"
- -@erase "$(INTDIR)\Flag_Manip.obj"
- -@erase "$(INTDIR)\Framework_Component.obj"
- -@erase "$(INTDIR)\Framework_Component_T.obj"
- -@erase "$(INTDIR)\Functor.obj"
- -@erase "$(INTDIR)\Get_Opt.obj"
- -@erase "$(INTDIR)\Handle_Ops.obj"
- -@erase "$(INTDIR)\Handle_Set.obj"
- -@erase "$(INTDIR)\Hash_Map_Manager.obj"
- -@erase "$(INTDIR)\Hashable.obj"
- -@erase "$(INTDIR)\High_Res_Timer.obj"
- -@erase "$(INTDIR)\INET_Addr.obj"
- -@erase "$(INTDIR)\Init_ACE.obj"
- -@erase "$(INTDIR)\IO_Cntl_Msg.obj"
- -@erase "$(INTDIR)\IO_SAP.obj"
- -@erase "$(INTDIR)\IOStream.obj"
- -@erase "$(INTDIR)\IPC_SAP.obj"
- -@erase "$(INTDIR)\Lib_Find.obj"
- -@erase "$(INTDIR)\Local_Name_Space.obj"
- -@erase "$(INTDIR)\Local_Tokens.obj"
- -@erase "$(INTDIR)\Log_Msg.obj"
- -@erase "$(INTDIR)\Log_Msg_Backend.obj"
- -@erase "$(INTDIR)\Log_Msg_Callback.obj"
- -@erase "$(INTDIR)\Log_Msg_IPC.obj"
- -@erase "$(INTDIR)\Log_Msg_NT_Event_Log.obj"
- -@erase "$(INTDIR)\Log_Msg_UNIX_Syslog.obj"
- -@erase "$(INTDIR)\Log_Record.obj"
- -@erase "$(INTDIR)\Logging_Strategy.obj"
- -@erase "$(INTDIR)\LSOCK.obj"
- -@erase "$(INTDIR)\LSOCK_Acceptor.obj"
- -@erase "$(INTDIR)\LSOCK_CODgram.obj"
- -@erase "$(INTDIR)\LSOCK_Connector.obj"
- -@erase "$(INTDIR)\LSOCK_Dgram.obj"
- -@erase "$(INTDIR)\LSOCK_Stream.obj"
- -@erase "$(INTDIR)\Malloc.obj"
- -@erase "$(INTDIR)\Malloc_Allocator.obj"
- -@erase "$(INTDIR)\Malloc_Instantiations.obj"
- -@erase "$(INTDIR)\Map.obj"
- -@erase "$(INTDIR)\MEM_Acceptor.obj"
- -@erase "$(INTDIR)\MEM_Addr.obj"
- -@erase "$(INTDIR)\MEM_Connector.obj"
- -@erase "$(INTDIR)\MEM_IO.obj"
- -@erase "$(INTDIR)\Mem_Map.obj"
- -@erase "$(INTDIR)\MEM_SAP.obj"
- -@erase "$(INTDIR)\MEM_Stream.obj"
- -@erase "$(INTDIR)\Memory_Pool.obj"
- -@erase "$(INTDIR)\Message_Block.obj"
- -@erase "$(INTDIR)\Message_Queue.obj"
- -@erase "$(INTDIR)\Method_Request.obj"
- -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj"
- -@erase "$(INTDIR)\Multiplexor.obj"
- -@erase "$(INTDIR)\Name_Proxy.obj"
- -@erase "$(INTDIR)\Name_Request_Reply.obj"
- -@erase "$(INTDIR)\Name_Space.obj"
- -@erase "$(INTDIR)\Naming_Context.obj"
- -@erase "$(INTDIR)\Notification_Strategy.obj"
- -@erase "$(INTDIR)\NT_Service.obj"
- -@erase "$(INTDIR)\Obchunk.obj"
- -@erase "$(INTDIR)\Object_Manager.obj"
- -@erase "$(INTDIR)\Obstack.obj"
- -@erase "$(INTDIR)\OS.obj"
- -@erase "$(INTDIR)\OS_Dirent.obj"
- -@erase "$(INTDIR)\OS_Errno.obj"
- -@erase "$(INTDIR)\OS_Log_Msg_Attributes.obj"
- -@erase "$(INTDIR)\OS_Memory.obj"
- -@erase "$(INTDIR)\OS_QoS.obj"
- -@erase "$(INTDIR)\OS_String.obj"
- -@erase "$(INTDIR)\OS_Thread_Adapter.obj"
- -@erase "$(INTDIR)\OS_TLI.obj"
- -@erase "$(INTDIR)\Pair.obj"
- -@erase "$(INTDIR)\Parse_Node.obj"
- -@erase "$(INTDIR)\PI_Malloc.obj"
- -@erase "$(INTDIR)\Pipe.obj"
- -@erase "$(INTDIR)\POSIX_Asynch_IO.obj"
- -@erase "$(INTDIR)\POSIX_Proactor.obj"
- -@erase "$(INTDIR)\Priority_Reactor.obj"
- -@erase "$(INTDIR)\Proactor.obj"
- -@erase "$(INTDIR)\Process.obj"
- -@erase "$(INTDIR)\Process_Manager.obj"
- -@erase "$(INTDIR)\Process_Mutex.obj"
- -@erase "$(INTDIR)\Process_Semaphore.obj"
- -@erase "$(INTDIR)\Profile_Timer.obj"
- -@erase "$(INTDIR)\Reactor.obj"
- -@erase "$(INTDIR)\Reactor_Notification_Strategy.obj"
- -@erase "$(INTDIR)\Read_Buffer.obj"
- -@erase "$(INTDIR)\Recyclable.obj"
- -@erase "$(INTDIR)\Refcountable.obj"
- -@erase "$(INTDIR)\Registry.obj"
- -@erase "$(INTDIR)\Registry_Name_Space.obj"
- -@erase "$(INTDIR)\Remote_Name_Space.obj"
- -@erase "$(INTDIR)\Remote_Tokens.obj"
- -@erase "$(INTDIR)\RW_Process_Mutex.obj"
- -@erase "$(INTDIR)\Sample_History.obj"
- -@erase "$(INTDIR)\Sched_Params.obj"
- -@erase "$(INTDIR)\Select_Reactor.obj"
- -@erase "$(INTDIR)\Select_Reactor_Base.obj"
- -@erase "$(INTDIR)\Service_Config.obj"
- -@erase "$(INTDIR)\Service_Manager.obj"
- -@erase "$(INTDIR)\Service_Object.obj"
- -@erase "$(INTDIR)\Service_Repository.obj"
- -@erase "$(INTDIR)\Service_Templates.obj"
- -@erase "$(INTDIR)\Service_Types.obj"
- -@erase "$(INTDIR)\Shared_Memory.obj"
- -@erase "$(INTDIR)\Shared_Memory_MM.obj"
- -@erase "$(INTDIR)\Shared_Memory_SV.obj"
- -@erase "$(INTDIR)\Shared_Object.obj"
- -@erase "$(INTDIR)\Signal.obj"
- -@erase "$(INTDIR)\SOCK.obj"
- -@erase "$(INTDIR)\SOCK_Acceptor.obj"
- -@erase "$(INTDIR)\SOCK_CODgram.obj"
- -@erase "$(INTDIR)\Sock_Connect.obj"
- -@erase "$(INTDIR)\SOCK_Connector.obj"
- -@erase "$(INTDIR)\SOCK_Dgram.obj"
- -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj"
- -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj"
- -@erase "$(INTDIR)\SOCK_IO.obj"
- -@erase "$(INTDIR)\SOCK_Stream.obj"
- -@erase "$(INTDIR)\SPIPE.obj"
- -@erase "$(INTDIR)\SPIPE_Acceptor.obj"
- -@erase "$(INTDIR)\SPIPE_Addr.obj"
- -@erase "$(INTDIR)\SPIPE_Connector.obj"
- -@erase "$(INTDIR)\SPIPE_Stream.obj"
- -@erase "$(INTDIR)\SString.obj"
- -@erase "$(INTDIR)\Stats.obj"
- -@erase "$(INTDIR)\String_Base_Const.obj"
- -@erase "$(INTDIR)\SV_Message.obj"
- -@erase "$(INTDIR)\SV_Message_Queue.obj"
- -@erase "$(INTDIR)\SV_Semaphore_Complex.obj"
- -@erase "$(INTDIR)\SV_Semaphore_Simple.obj"
- -@erase "$(INTDIR)\SV_Shared_Memory.obj"
- -@erase "$(INTDIR)\Svc_Conf_l.obj"
- -@erase "$(INTDIR)\Svc_Conf_Lexer_Guard.obj"
- -@erase "$(INTDIR)\Svc_Conf_y.obj"
- -@erase "$(INTDIR)\Svc_Handler.obj"
- -@erase "$(INTDIR)\Synch.obj"
- -@erase "$(INTDIR)\Synch_Options.obj"
- -@erase "$(INTDIR)\System_Time.obj"
- -@erase "$(INTDIR)\Task.obj"
- -@erase "$(INTDIR)\Template_Instantiations.obj"
- -@erase "$(INTDIR)\Thread.obj"
- -@erase "$(INTDIR)\Thread_Adapter.obj"
- -@erase "$(INTDIR)\Thread_Control.obj"
- -@erase "$(INTDIR)\Thread_Exit.obj"
- -@erase "$(INTDIR)\Thread_Hook.obj"
- -@erase "$(INTDIR)\Thread_Manager.obj"
- -@erase "$(INTDIR)\Time_Request_Reply.obj"
- -@erase "$(INTDIR)\Time_Value.obj"
- -@erase "$(INTDIR)\Timeprobe.obj"
- -@erase "$(INTDIR)\Timer_Hash.obj"
- -@erase "$(INTDIR)\Timer_Heap.obj"
- -@erase "$(INTDIR)\Timer_List.obj"
- -@erase "$(INTDIR)\Timer_Queue.obj"
- -@erase "$(INTDIR)\Timer_Queue_Adapters.obj"
- -@erase "$(INTDIR)\Timer_Wheel.obj"
- -@erase "$(INTDIR)\TLI.obj"
- -@erase "$(INTDIR)\TLI_Acceptor.obj"
- -@erase "$(INTDIR)\TLI_Connector.obj"
- -@erase "$(INTDIR)\TLI_Stream.obj"
- -@erase "$(INTDIR)\Token.obj"
- -@erase "$(INTDIR)\Token_Collection.obj"
- -@erase "$(INTDIR)\Token_Invariants.obj"
- -@erase "$(INTDIR)\Token_Manager.obj"
- -@erase "$(INTDIR)\Token_Request_Reply.obj"
- -@erase "$(INTDIR)\TP_Reactor.obj"
- -@erase "$(INTDIR)\Trace.obj"
- -@erase "$(INTDIR)\TTY_IO.obj"
- -@erase "$(INTDIR)\Typed_SV_Message.obj"
- -@erase "$(INTDIR)\Typed_SV_Message_Queue.obj"
- -@erase "$(INTDIR)\UNIX_Addr.obj"
- -@erase "$(INTDIR)\UPIPE_Acceptor.obj"
- -@erase "$(INTDIR)\UPIPE_Connector.obj"
- -@erase "$(INTDIR)\UPIPE_Stream.obj"
- -@erase "$(INTDIR)\vc60.idb"
- -@erase "$(INTDIR)\vc60.pdb"
- -@erase "$(INTDIR)\WFMO_Reactor.obj"
- -@erase "$(INTDIR)\WIN32_Asynch_IO.obj"
- -@erase "$(INTDIR)\WIN32_Proactor.obj"
- -@erase "$(INTDIR)\XML_Svc_Conf.obj"
- -@erase "$(INTDIR)\XtReactor.obj"
- -@erase "$(OUTDIR)\aces.lib"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-LINK32=link.exe -lib
-MTL=midl.exe
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Wp64 /GX /Zi /O1 /I "../" /D "_WINDOWS" /D "NDEBUG" /D "ACE_AS_STATIC_LIBS" /D "WIN32" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-RSC=rc.exe
-RSC_PROJ=/l 0x409 /fo"$(INTDIR)\ace.res"
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\ace.bsc"
-BSC32_SBRS= \
-
-LIB32=link.exe -lib
-LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aces.lib"
-LIB32_OBJS= \
- "$(INTDIR)\ACE.obj" \
- "$(INTDIR)\Activation_Queue.obj" \
- "$(INTDIR)\Active_Map_Manager.obj" \
- "$(INTDIR)\Addr.obj" \
- "$(INTDIR)\Arg_Shifter.obj" \
- "$(INTDIR)\ARGV.obj" \
- "$(INTDIR)\Argv_Type_Converter.obj" \
- "$(INTDIR)\Asynch_Connector.obj" \
- "$(INTDIR)\Asynch_IO.obj" \
- "$(INTDIR)\Asynch_IO_Impl.obj" \
- "$(INTDIR)\Asynch_Pseudo_Task.obj" \
- "$(INTDIR)\ATM_Acceptor.obj" \
- "$(INTDIR)\ATM_Addr.obj" \
- "$(INTDIR)\ATM_Connector.obj" \
- "$(INTDIR)\ATM_Params.obj" \
- "$(INTDIR)\ATM_QoS.obj" \
- "$(INTDIR)\ATM_Stream.obj" \
- "$(INTDIR)\Base_Thread_Adapter.obj" \
- "$(INTDIR)\Based_Pointer_Repository.obj" \
- "$(INTDIR)\Basic_Stats.obj" \
- "$(INTDIR)\Basic_Types.obj" \
- "$(INTDIR)\Capabilities.obj" \
- "$(INTDIR)\CDR_Base.obj" \
- "$(INTDIR)\CDR_Stream.obj" \
- "$(INTDIR)\Codecs.obj" \
- "$(INTDIR)\Codeset_Registry.obj"
- "$(INTDIR)\Codeset_Registry_db.obj"
- "$(INTDIR)\Configuration.obj" \
- "$(INTDIR)\Configuration_Import_Export.obj" \
- "$(INTDIR)\Connection_Recycling_Strategy.obj" \
- "$(INTDIR)\Containers.obj" \
- "$(INTDIR)\Copy_Disabled.obj" \
- "$(INTDIR)\Date_Time.obj" \
- "$(INTDIR)\DEV.obj" \
- "$(INTDIR)\DEV_Addr.obj" \
- "$(INTDIR)\DEV_Connector.obj" \
- "$(INTDIR)\DEV_IO.obj" \
- "$(INTDIR)\Dirent.obj" \
- "$(INTDIR)\Dirent_Selector.obj" \
- "$(INTDIR)\DLL.obj" \
- "$(INTDIR)\DLL_Manager.obj" \
- "$(INTDIR)\Dump.obj" \
- "$(INTDIR)\Dynamic.obj" \
- "$(INTDIR)\Dynamic_Service.obj" \
- "$(INTDIR)\Dynamic_Service_Base.obj" \
- "$(INTDIR)\Event_Handler.obj" \
- "$(INTDIR)\Event_Handler_T.obj" \
- "$(INTDIR)\FIFO.obj" \
- "$(INTDIR)\FIFO_Recv.obj" \
- "$(INTDIR)\FIFO_Recv_Msg.obj" \
- "$(INTDIR)\FIFO_Send.obj" \
- "$(INTDIR)\FIFO_Send_Msg.obj" \
- "$(INTDIR)\FILE.obj" \
- "$(INTDIR)\FILE_Addr.obj" \
- "$(INTDIR)\FILE_Connector.obj" \
- "$(INTDIR)\FILE_IO.obj" \
- "$(INTDIR)\File_Lock.obj" \
- "$(INTDIR)\Filecache.obj" \
- "$(INTDIR)\Flag_Manip.obj" \
- "$(INTDIR)\Framework_Component.obj" \
- "$(INTDIR)\Functor.obj" \
- "$(INTDIR)\Get_Opt.obj" \
- "$(INTDIR)\Handle_Ops.obj" \
- "$(INTDIR)\Handle_Set.obj" \
- "$(INTDIR)\Hash_Map_Manager.obj" \
- "$(INTDIR)\Hashable.obj" \
- "$(INTDIR)\High_Res_Timer.obj" \
- "$(INTDIR)\INET_Addr.obj" \
- "$(INTDIR)\Init_ACE.obj" \
- "$(INTDIR)\IO_Cntl_Msg.obj" \
- "$(INTDIR)\IO_SAP.obj" \
- "$(INTDIR)\IOStream.obj" \
- "$(INTDIR)\IPC_SAP.obj" \
- "$(INTDIR)\Lib_Find.obj" \
- "$(INTDIR)\Local_Name_Space.obj" \
- "$(INTDIR)\Local_Tokens.obj" \
- "$(INTDIR)\Log_Msg.obj" \
- "$(INTDIR)\Log_Msg_Backend.obj" \
- "$(INTDIR)\Log_Msg_Callback.obj" \
- "$(INTDIR)\Log_Msg_IPC.obj" \
- "$(INTDIR)\Log_Msg_NT_Event_Log.obj" \
- "$(INTDIR)\Log_Msg_UNIX_Syslog.obj" \
- "$(INTDIR)\Log_Record.obj" \
- "$(INTDIR)\Logging_Strategy.obj" \
- "$(INTDIR)\LSOCK.obj" \
- "$(INTDIR)\LSOCK_Acceptor.obj" \
- "$(INTDIR)\LSOCK_CODgram.obj" \
- "$(INTDIR)\LSOCK_Connector.obj" \
- "$(INTDIR)\LSOCK_Dgram.obj" \
- "$(INTDIR)\LSOCK_Stream.obj" \
- "$(INTDIR)\Malloc.obj" \
- "$(INTDIR)\Malloc_Allocator.obj" \
- "$(INTDIR)\Malloc_Instantiations.obj" \
- "$(INTDIR)\Map.obj" \
- "$(INTDIR)\MEM_Acceptor.obj" \
- "$(INTDIR)\MEM_Addr.obj" \
- "$(INTDIR)\MEM_Connector.obj" \
- "$(INTDIR)\MEM_IO.obj" \
- "$(INTDIR)\Mem_Map.obj" \
- "$(INTDIR)\MEM_SAP.obj" \
- "$(INTDIR)\MEM_Stream.obj" \
- "$(INTDIR)\Memory_Pool.obj" \
- "$(INTDIR)\Message_Block.obj" \
- "$(INTDIR)\Message_Queue.obj" \
- "$(INTDIR)\Method_Request.obj" \
- "$(INTDIR)\Msg_WFMO_Reactor.obj" \
- "$(INTDIR)\Multiplexor.obj" \
- "$(INTDIR)\Name_Proxy.obj" \
- "$(INTDIR)\Name_Request_Reply.obj" \
- "$(INTDIR)\Name_Space.obj" \
- "$(INTDIR)\Naming_Context.obj" \
- "$(INTDIR)\Notification_Strategy.obj" \
- "$(INTDIR)\NT_Service.obj" \
- "$(INTDIR)\Obchunk.obj" \
- "$(INTDIR)\Object_Manager.obj" \
- "$(INTDIR)\Obstack.obj" \
- "$(INTDIR)\OS.obj" \
- "$(INTDIR)\OS_Dirent.obj" \
- "$(INTDIR)\OS_Errno.obj" \
- "$(INTDIR)\OS_Log_Msg_Attributes.obj" \
- "$(INTDIR)\OS_Memory.obj" \
- "$(INTDIR)\OS_QoS.obj" \
- "$(INTDIR)\OS_String.obj" \
- "$(INTDIR)\OS_Thread_Adapter.obj" \
- "$(INTDIR)\OS_TLI.obj" \
- "$(INTDIR)\Pair.obj" \
- "$(INTDIR)\Parse_Node.obj" \
- "$(INTDIR)\PI_Malloc.obj" \
- "$(INTDIR)\Pipe.obj" \
- "$(INTDIR)\POSIX_Asynch_IO.obj" \
- "$(INTDIR)\POSIX_Proactor.obj" \
- "$(INTDIR)\Priority_Reactor.obj" \
- "$(INTDIR)\Proactor.obj" \
- "$(INTDIR)\Process.obj" \
- "$(INTDIR)\Process_Manager.obj" \
- "$(INTDIR)\Process_Mutex.obj" \
- "$(INTDIR)\Process_Semaphore.obj" \
- "$(INTDIR)\Profile_Timer.obj" \
- "$(INTDIR)\Reactor.obj" \
- "$(INTDIR)\Reactor_Notification_Strategy.obj" \
- "$(INTDIR)\Read_Buffer.obj" \
- "$(INTDIR)\Recyclable.obj" \
- "$(INTDIR)\Refcountable.obj" \
- "$(INTDIR)\Registry.obj" \
- "$(INTDIR)\Registry_Name_Space.obj" \
- "$(INTDIR)\Remote_Name_Space.obj" \
- "$(INTDIR)\Remote_Tokens.obj" \
- "$(INTDIR)\RW_Process_Mutex.obj" \
- "$(INTDIR)\Sample_History.obj" \
- "$(INTDIR)\Sched_Params.obj" \
- "$(INTDIR)\Select_Reactor.obj" \
- "$(INTDIR)\Select_Reactor_Base.obj" \
- "$(INTDIR)\Service_Config.obj" \
- "$(INTDIR)\Service_Manager.obj" \
- "$(INTDIR)\Service_Object.obj" \
- "$(INTDIR)\Service_Repository.obj" \
- "$(INTDIR)\Service_Templates.obj" \
- "$(INTDIR)\Service_Types.obj" \
- "$(INTDIR)\Shared_Memory.obj" \
- "$(INTDIR)\Shared_Memory_MM.obj" \
- "$(INTDIR)\Shared_Memory_SV.obj" \
- "$(INTDIR)\Shared_Object.obj" \
- "$(INTDIR)\Signal.obj" \
- "$(INTDIR)\SOCK.obj" \
- "$(INTDIR)\SOCK_Acceptor.obj" \
- "$(INTDIR)\SOCK_CODgram.obj" \
- "$(INTDIR)\Sock_Connect.obj" \
- "$(INTDIR)\SOCK_Connector.obj" \
- "$(INTDIR)\SOCK_Dgram.obj" \
- "$(INTDIR)\SOCK_Dgram_Bcast.obj" \
- "$(INTDIR)\SOCK_Dgram_Mcast.obj" \
- "$(INTDIR)\SOCK_IO.obj" \
- "$(INTDIR)\SOCK_Stream.obj" \
- "$(INTDIR)\SPIPE.obj" \
- "$(INTDIR)\SPIPE_Acceptor.obj" \
- "$(INTDIR)\SPIPE_Addr.obj" \
- "$(INTDIR)\SPIPE_Connector.obj" \
- "$(INTDIR)\SPIPE_Stream.obj" \
- "$(INTDIR)\SString.obj" \
- "$(INTDIR)\Stats.obj" \
- "$(INTDIR)\String_Base_Const.obj" \
- "$(INTDIR)\SV_Message.obj" \
- "$(INTDIR)\SV_Message_Queue.obj" \
- "$(INTDIR)\SV_Semaphore_Complex.obj" \
- "$(INTDIR)\SV_Semaphore_Simple.obj" \
- "$(INTDIR)\SV_Shared_Memory.obj" \
- "$(INTDIR)\Svc_Conf_l.obj" \
- "$(INTDIR)\Svc_Conf_Lexer_Guard.obj" \
- "$(INTDIR)\Svc_Conf_y.obj" \
- "$(INTDIR)\Svc_Handler.obj" \
- "$(INTDIR)\Synch.obj" \
- "$(INTDIR)\Synch_Options.obj" \
- "$(INTDIR)\System_Time.obj" \
- "$(INTDIR)\Task.obj" \
- "$(INTDIR)\Template_Instantiations.obj" \
- "$(INTDIR)\Thread.obj" \
- "$(INTDIR)\Thread_Adapter.obj" \
- "$(INTDIR)\Thread_Control.obj" \
- "$(INTDIR)\Thread_Exit.obj" \
- "$(INTDIR)\Thread_Hook.obj" \
- "$(INTDIR)\Thread_Manager.obj" \
- "$(INTDIR)\Time_Request_Reply.obj" \
- "$(INTDIR)\Time_Value.obj" \
- "$(INTDIR)\Timeprobe.obj" \
- "$(INTDIR)\Timer_Hash.obj" \
- "$(INTDIR)\Timer_Heap.obj" \
- "$(INTDIR)\Timer_List.obj" \
- "$(INTDIR)\Timer_Queue.obj" \
- "$(INTDIR)\Timer_Queue_Adapters.obj" \
- "$(INTDIR)\Timer_Wheel.obj" \
- "$(INTDIR)\TLI.obj" \
- "$(INTDIR)\TLI_Acceptor.obj" \
- "$(INTDIR)\TLI_Connector.obj" \
- "$(INTDIR)\TLI_Stream.obj" \
- "$(INTDIR)\Token.obj" \
- "$(INTDIR)\Token_Collection.obj" \
- "$(INTDIR)\Token_Invariants.obj" \
- "$(INTDIR)\Token_Manager.obj" \
- "$(INTDIR)\Token_Request_Reply.obj" \
- "$(INTDIR)\TP_Reactor.obj" \
- "$(INTDIR)\Trace.obj" \
- "$(INTDIR)\TTY_IO.obj" \
- "$(INTDIR)\Typed_SV_Message.obj" \
- "$(INTDIR)\Typed_SV_Message_Queue.obj" \
- "$(INTDIR)\UNIX_Addr.obj" \
- "$(INTDIR)\UPIPE_Acceptor.obj" \
- "$(INTDIR)\UPIPE_Connector.obj" \
- "$(INTDIR)\UPIPE_Stream.obj" \
- "$(INTDIR)\WFMO_Reactor.obj" \
- "$(INTDIR)\WIN32_Asynch_IO.obj" \
- "$(INTDIR)\WIN32_Proactor.obj" \
- "$(INTDIR)\XML_Svc_Conf.obj" \
- "$(INTDIR)\XtReactor.obj" \
- "$(INTDIR)\Atomic_Op.obj" \
- "$(INTDIR)\Framework_Component_T.obj" \
- "$(INTDIR)\ace.res"
-
-"$(OUTDIR)\aces.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
- $(LIB32) @<<
- $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "ACE LIB - Win64 Static Debug"
-
-OUTDIR=.
-INTDIR=.\LIB\Debug
-# Begin Custom Macros
-OutDir=.
-# End Custom Macros
-
-ALL : "$(OUTDIR)\acesd.lib"
-
-
-CLEAN :
- -@erase "$(INTDIR)\ACE.obj"
- -@erase "$(INTDIR)\ace.res"
- -@erase "$(INTDIR)\Activation_Queue.obj"
- -@erase "$(INTDIR)\Active_Map_Manager.obj"
- -@erase "$(INTDIR)\Addr.obj"
- -@erase "$(INTDIR)\Arg_Shifter.obj"
- -@erase "$(INTDIR)\ARGV.obj"
- -@erase "$(INTDIR)\Argv_Type_Converter.obj"
- -@erase "$(INTDIR)\Asynch_Connector.obj"
- -@erase "$(INTDIR)\Asynch_IO.obj"
- -@erase "$(INTDIR)\Asynch_IO_Impl.obj"
- -@erase "$(INTDIR)\Asynch_Pseudo_Task.obj"
- -@erase "$(INTDIR)\ATM_Acceptor.obj"
- -@erase "$(INTDIR)\ATM_Addr.obj"
- -@erase "$(INTDIR)\ATM_Connector.obj"
- -@erase "$(INTDIR)\ATM_Params.obj"
- -@erase "$(INTDIR)\ATM_QoS.obj"
- -@erase "$(INTDIR)\ATM_Stream.obj"
- -@erase "$(INTDIR)\Base_Thread_Adapter.obj"
- -@erase "$(INTDIR)\Based_Pointer_Repository.obj"
- -@erase "$(INTDIR)\Basic_Stats.obj"
- -@erase "$(INTDIR)\Basic_Types.obj"
- -@erase "$(INTDIR)\Capabilities.obj"
- -@erase "$(INTDIR)\CDR_Base.obj"
- -@erase "$(INTDIR)\CDR_Stream.obj"
- -@erase "$(INTDIR)\Codecs.obj"
- -@erase "$(INTDIR)\Codeset_Registry.obj"
- -@erase "$(INTDIR)\Codeset_Registry_db.obj"
- -@erase "$(INTDIR)\Configuration.obj"
- -@erase "$(INTDIR)\Configuration_Import_Export.obj"
- -@erase "$(INTDIR)\Connection_Recycling_Strategy.obj"
- -@erase "$(INTDIR)\Containers.obj"
- -@erase "$(INTDIR)\Copy_Disabled.obj"
- -@erase "$(INTDIR)\Date_Time.obj"
- -@erase "$(INTDIR)\DEV.obj"
- -@erase "$(INTDIR)\DEV_Addr.obj"
- -@erase "$(INTDIR)\DEV_Connector.obj"
- -@erase "$(INTDIR)\DEV_IO.obj"
- -@erase "$(INTDIR)\Dirent.obj"
- -@erase "$(INTDIR)\Dirent_Selector.obj"
- -@erase "$(INTDIR)\DLL.obj"
- -@erase "$(INTDIR)\DLL_Manager.obj"
- -@erase "$(INTDIR)\Dump.obj"
- -@erase "$(INTDIR)\Dynamic.obj"
- -@erase "$(INTDIR)\Dynamic_Service.obj"
- -@erase "$(INTDIR)\Dynamic_Service_Base.obj"
- -@erase "$(INTDIR)\Event_Handler.obj"
- -@erase "$(INTDIR)\Event_Handler_T.obj"
- -@erase "$(INTDIR)\FIFO.obj"
- -@erase "$(INTDIR)\FIFO_Recv.obj"
- -@erase "$(INTDIR)\FIFO_Recv_Msg.obj"
- -@erase "$(INTDIR)\FIFO_Send.obj"
- -@erase "$(INTDIR)\FIFO_Send_Msg.obj"
- -@erase "$(INTDIR)\FILE.obj"
- -@erase "$(INTDIR)\FILE_Addr.obj"
- -@erase "$(INTDIR)\FILE_Connector.obj"
- -@erase "$(INTDIR)\FILE_IO.obj"
- -@erase "$(INTDIR)\File_Lock.obj"
- -@erase "$(INTDIR)\Filecache.obj"
- -@erase "$(INTDIR)\Flag_Manip.obj"
- -@erase "$(INTDIR)\Framework_Component.obj"
- -@erase "$(INTDIR)\Functor.obj"
- -@erase "$(INTDIR)\Get_Opt.obj"
- -@erase "$(INTDIR)\Handle_Ops.obj"
- -@erase "$(INTDIR)\Handle_Set.obj"
- -@erase "$(INTDIR)\Hash_Map_Manager.obj"
- -@erase "$(INTDIR)\Hashable.obj"
- -@erase "$(INTDIR)\High_Res_Timer.obj"
- -@erase "$(INTDIR)\INET_Addr.obj"
- -@erase "$(INTDIR)\Init_ACE.obj"
- -@erase "$(INTDIR)\IO_Cntl_Msg.obj"
- -@erase "$(INTDIR)\IO_SAP.obj"
- -@erase "$(INTDIR)\IOStream.obj"
- -@erase "$(INTDIR)\IPC_SAP.obj"
- -@erase "$(INTDIR)\Lib_Find.obj"
- -@erase "$(INTDIR)\Local_Name_Space.obj"
- -@erase "$(INTDIR)\Local_Tokens.obj"
- -@erase "$(INTDIR)\Log_Msg.obj"
- -@erase "$(INTDIR)\Log_Msg_Backend.obj"
- -@erase "$(INTDIR)\Log_Msg_Callback.obj"
- -@erase "$(INTDIR)\Log_Msg_IPC.obj"
- -@erase "$(INTDIR)\Log_Msg_NT_Event_Log.obj"
- -@erase "$(INTDIR)\Log_Msg_UNIX_Syslog.obj"
- -@erase "$(INTDIR)\Log_Record.obj"
- -@erase "$(INTDIR)\Logging_Strategy.obj"
- -@erase "$(INTDIR)\LSOCK.obj"
- -@erase "$(INTDIR)\LSOCK_Acceptor.obj"
- -@erase "$(INTDIR)\LSOCK_CODgram.obj"
- -@erase "$(INTDIR)\LSOCK_Connector.obj"
- -@erase "$(INTDIR)\LSOCK_Dgram.obj"
- -@erase "$(INTDIR)\LSOCK_Stream.obj"
- -@erase "$(INTDIR)\Malloc.obj"
- -@erase "$(INTDIR)\Malloc_Allocator.obj"
- -@erase "$(INTDIR)\Malloc_Instantiations.obj"
- -@erase "$(INTDIR)\Map.obj"
- -@erase "$(INTDIR)\MEM_Acceptor.obj"
- -@erase "$(INTDIR)\MEM_Addr.obj"
- -@erase "$(INTDIR)\MEM_Connector.obj"
- -@erase "$(INTDIR)\MEM_IO.obj"
- -@erase "$(INTDIR)\Mem_Map.obj"
- -@erase "$(INTDIR)\MEM_SAP.obj"
- -@erase "$(INTDIR)\MEM_Stream.obj"
- -@erase "$(INTDIR)\Memory_Pool.obj"
- -@erase "$(INTDIR)\Message_Block.obj"
- -@erase "$(INTDIR)\Message_Queue.obj"
- -@erase "$(INTDIR)\Method_Request.obj"
- -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj"
- -@erase "$(INTDIR)\Multiplexor.obj"
- -@erase "$(INTDIR)\Name_Proxy.obj"
- -@erase "$(INTDIR)\Name_Request_Reply.obj"
- -@erase "$(INTDIR)\Name_Space.obj"
- -@erase "$(INTDIR)\Naming_Context.obj"
- -@erase "$(INTDIR)\Notification_Strategy.obj"
- -@erase "$(INTDIR)\NT_Service.obj"
- -@erase "$(INTDIR)\Obchunk.obj"
- -@erase "$(INTDIR)\Object_Manager.obj"
- -@erase "$(INTDIR)\Obstack.obj"
- -@erase "$(INTDIR)\OS.obj"
- -@erase "$(INTDIR)\OS_Dirent.obj"
- -@erase "$(INTDIR)\OS_Errno.obj"
- -@erase "$(INTDIR)\OS_Log_Msg_Attributes.obj"
- -@erase "$(INTDIR)\OS_Memory.obj"
- -@erase "$(INTDIR)\OS_QoS.obj"
- -@erase "$(INTDIR)\OS_String.obj"
- -@erase "$(INTDIR)\OS_Thread_Adapter.obj"
- -@erase "$(INTDIR)\OS_TLI.obj"
- -@erase "$(INTDIR)\Pair.obj"
- -@erase "$(INTDIR)\Parse_Node.obj"
- -@erase "$(INTDIR)\PI_Malloc.obj"
- -@erase "$(INTDIR)\Pipe.obj"
- -@erase "$(INTDIR)\POSIX_Asynch_IO.obj"
- -@erase "$(INTDIR)\POSIX_Proactor.obj"
- -@erase "$(INTDIR)\Priority_Reactor.obj"
- -@erase "$(INTDIR)\Proactor.obj"
- -@erase "$(INTDIR)\Process.obj"
- -@erase "$(INTDIR)\Process_Manager.obj"
- -@erase "$(INTDIR)\Process_Mutex.obj"
- -@erase "$(INTDIR)\Process_Semaphore.obj"
- -@erase "$(INTDIR)\Profile_Timer.obj"
- -@erase "$(INTDIR)\Reactor.obj"
- -@erase "$(INTDIR)\Reactor_Notification_Strategy.obj"
- -@erase "$(INTDIR)\Read_Buffer.obj"
- -@erase "$(INTDIR)\Recyclable.obj"
- -@erase "$(INTDIR)\Refcountable.obj"
- -@erase "$(INTDIR)\Registry.obj"
- -@erase "$(INTDIR)\Registry_Name_Space.obj"
- -@erase "$(INTDIR)\Remote_Name_Space.obj"
- -@erase "$(INTDIR)\Remote_Tokens.obj"
- -@erase "$(INTDIR)\RW_Process_Mutex.obj"
- -@erase "$(INTDIR)\Sample_History.obj"
- -@erase "$(INTDIR)\Sched_Params.obj"
- -@erase "$(INTDIR)\Select_Reactor.obj"
- -@erase "$(INTDIR)\Select_Reactor_Base.obj"
- -@erase "$(INTDIR)\Service_Config.obj"
- -@erase "$(INTDIR)\Service_Manager.obj"
- -@erase "$(INTDIR)\Service_Object.obj"
- -@erase "$(INTDIR)\Service_Repository.obj"
- -@erase "$(INTDIR)\Service_Templates.obj"
- -@erase "$(INTDIR)\Service_Types.obj"
- -@erase "$(INTDIR)\Shared_Memory.obj"
- -@erase "$(INTDIR)\Shared_Memory_MM.obj"
- -@erase "$(INTDIR)\Shared_Memory_SV.obj"
- -@erase "$(INTDIR)\Shared_Object.obj"
- -@erase "$(INTDIR)\Signal.obj"
- -@erase "$(INTDIR)\SOCK.obj"
- -@erase "$(INTDIR)\SOCK_Acceptor.obj"
- -@erase "$(INTDIR)\SOCK_CODgram.obj"
- -@erase "$(INTDIR)\Sock_Connect.obj"
- -@erase "$(INTDIR)\SOCK_Connector.obj"
- -@erase "$(INTDIR)\SOCK_Dgram.obj"
- -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj"
- -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj"
- -@erase "$(INTDIR)\SOCK_IO.obj"
- -@erase "$(INTDIR)\SOCK_Stream.obj"
- -@erase "$(INTDIR)\SPIPE.obj"
- -@erase "$(INTDIR)\SPIPE_Acceptor.obj"
- -@erase "$(INTDIR)\SPIPE_Addr.obj"
- -@erase "$(INTDIR)\SPIPE_Connector.obj"
- -@erase "$(INTDIR)\SPIPE_Stream.obj"
- -@erase "$(INTDIR)\SString.obj"
- -@erase "$(INTDIR)\Stats.obj"
- -@erase "$(INTDIR)\String_Base_Const.obj"
- -@erase "$(INTDIR)\SV_Message.obj"
- -@erase "$(INTDIR)\SV_Message_Queue.obj"
- -@erase "$(INTDIR)\SV_Semaphore_Complex.obj"
- -@erase "$(INTDIR)\SV_Semaphore_Simple.obj"
- -@erase "$(INTDIR)\SV_Shared_Memory.obj"
- -@erase "$(INTDIR)\Svc_Conf_l.obj"
- -@erase "$(INTDIR)\Svc_Conf_Lexer_Guard.obj"
- -@erase "$(INTDIR)\Svc_Conf_y.obj"
- -@erase "$(INTDIR)\Svc_Handler.obj"
- -@erase "$(INTDIR)\Synch.obj"
- -@erase "$(INTDIR)\Synch_Options.obj"
- -@erase "$(INTDIR)\System_Time.obj"
- -@erase "$(INTDIR)\Task.obj"
- -@erase "$(INTDIR)\Template_Instantiations.obj"
- -@erase "$(INTDIR)\Thread.obj"
- -@erase "$(INTDIR)\Thread_Adapter.obj"
- -@erase "$(INTDIR)\Thread_Control.obj"
- -@erase "$(INTDIR)\Thread_Exit.obj"
- -@erase "$(INTDIR)\Thread_Hook.obj"
- -@erase "$(INTDIR)\Thread_Manager.obj"
- -@erase "$(INTDIR)\Time_Request_Reply.obj"
- -@erase "$(INTDIR)\Time_Value.obj"
- -@erase "$(INTDIR)\Timeprobe.obj"
- -@erase "$(INTDIR)\Timer_Hash.obj"
- -@erase "$(INTDIR)\Timer_Heap.obj"
- -@erase "$(INTDIR)\Timer_List.obj"
- -@erase "$(INTDIR)\Timer_Queue.obj"
- -@erase "$(INTDIR)\Timer_Queue_Adapters.obj"
- -@erase "$(INTDIR)\Timer_Wheel.obj"
- -@erase "$(INTDIR)\TLI.obj"
- -@erase "$(INTDIR)\TLI_Acceptor.obj"
- -@erase "$(INTDIR)\TLI_Connector.obj"
- -@erase "$(INTDIR)\TLI_Stream.obj"
- -@erase "$(INTDIR)\Token.obj"
- -@erase "$(INTDIR)\Token_Collection.obj"
- -@erase "$(INTDIR)\Token_Invariants.obj"
- -@erase "$(INTDIR)\Token_Manager.obj"
- -@erase "$(INTDIR)\Token_Request_Reply.obj"
- -@erase "$(INTDIR)\TP_Reactor.obj"
- -@erase "$(INTDIR)\Trace.obj"
- -@erase "$(INTDIR)\TTY_IO.obj"
- -@erase "$(INTDIR)\Typed_SV_Message.obj"
- -@erase "$(INTDIR)\Typed_SV_Message_Queue.obj"
- -@erase "$(INTDIR)\UNIX_Addr.obj"
- -@erase "$(INTDIR)\UPIPE_Acceptor.obj"
- -@erase "$(INTDIR)\UPIPE_Connector.obj"
- -@erase "$(INTDIR)\UPIPE_Stream.obj"
- -@erase "$(INTDIR)\vc60.idb"
- -@erase "$(INTDIR)\vc60.pdb"
- -@erase "$(INTDIR)\WFMO_Reactor.obj"
- -@erase "$(INTDIR)\WIN32_Asynch_IO.obj"
- -@erase "$(INTDIR)\WIN32_Proactor.obj"
- -@erase "$(INTDIR)\XML_Svc_Conf.obj"
- -@erase "$(INTDIR)\XtReactor.obj"
- -@erase "$(OUTDIR)\acesd.lib"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-LINK32=link.exe -lib
-MTL=midl.exe
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /Wp64 /Gm /GX /Zi /Od /Gy /I "../" /D "_WINDOWS" /D "_DEBUG" /D "ACE_AS_STATIC_LIBS" /D "WIN32" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-RSC=rc.exe
-RSC_PROJ=/l 0x409 /fo"$(INTDIR)\ace.res"
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\ace.bsc"
-BSC32_SBRS= \
-
-LIB32=link.exe -lib
-LIB32_FLAGS=/nologo /out:"$(OUTDIR)\acesd.lib"
-LIB32_OBJS= \
- "$(INTDIR)\ACE.obj" \
- "$(INTDIR)\Activation_Queue.obj" \
- "$(INTDIR)\Active_Map_Manager.obj" \
- "$(INTDIR)\Addr.obj" \
- "$(INTDIR)\Arg_Shifter.obj" \
- "$(INTDIR)\ARGV.obj" \
- "$(INTDIR)\Argv_Type_Converter.obj" \
- "$(INTDIR)\Asynch_Connector.obj" \
- "$(INTDIR)\Asynch_IO.obj" \
- "$(INTDIR)\Asynch_IO_Impl.obj" \
- "$(INTDIR)\Asynch_Pseudo_Task.obj" \
- "$(INTDIR)\ATM_Acceptor.obj" \
- "$(INTDIR)\ATM_Addr.obj" \
- "$(INTDIR)\ATM_Connector.obj" \
- "$(INTDIR)\ATM_Params.obj" \
- "$(INTDIR)\ATM_QoS.obj" \
- "$(INTDIR)\ATM_Stream.obj" \
- "$(INTDIR)\Base_Thread_Adapter.obj" \
- "$(INTDIR)\Based_Pointer_Repository.obj" \
- "$(INTDIR)\Basic_Stats.obj" \
- "$(INTDIR)\Basic_Types.obj" \
- "$(INTDIR)\Capabilities.obj" \
- "$(INTDIR)\CDR_Base.obj" \
- "$(INTDIR)\CDR_Stream.obj" \
- "$(INTDIR)\Codecs.obj" \
- "$(INTDIR)\Codeset_Registry.obj"
- "$(INTDIR)\Codeset_Registry_db.obj"
- "$(INTDIR)\Configuration.obj" \
- "$(INTDIR)\Configuration_Import_Export.obj" \
- "$(INTDIR)\Connection_Recycling_Strategy.obj" \
- "$(INTDIR)\Containers.obj" \
- "$(INTDIR)\Copy_Disabled.obj" \
- "$(INTDIR)\Date_Time.obj" \
- "$(INTDIR)\DEV.obj" \
- "$(INTDIR)\DEV_Addr.obj" \
- "$(INTDIR)\DEV_Connector.obj" \
- "$(INTDIR)\DEV_IO.obj" \
- "$(INTDIR)\Dirent.obj" \
- "$(INTDIR)\Dirent_Selector.obj" \
- "$(INTDIR)\DLL.obj" \
- "$(INTDIR)\DLL_Manager.obj" \
- "$(INTDIR)\Dump.obj" \
- "$(INTDIR)\Dynamic.obj" \
- "$(INTDIR)\Dynamic_Service.obj" \
- "$(INTDIR)\Dynamic_Service_Base.obj" \
- "$(INTDIR)\Event_Handler.obj" \
- "$(INTDIR)\Event_Handler_T.obj" \
- "$(INTDIR)\FIFO.obj" \
- "$(INTDIR)\FIFO_Recv.obj" \
- "$(INTDIR)\FIFO_Recv_Msg.obj" \
- "$(INTDIR)\FIFO_Send.obj" \
- "$(INTDIR)\FIFO_Send_Msg.obj" \
- "$(INTDIR)\FILE.obj" \
- "$(INTDIR)\FILE_Addr.obj" \
- "$(INTDIR)\FILE_Connector.obj" \
- "$(INTDIR)\FILE_IO.obj" \
- "$(INTDIR)\File_Lock.obj" \
- "$(INTDIR)\Filecache.obj" \
- "$(INTDIR)\Flag_Manip.obj" \
- "$(INTDIR)\Framework_Component.obj" \
- "$(INTDIR)\Functor.obj" \
- "$(INTDIR)\Get_Opt.obj" \
- "$(INTDIR)\Handle_Ops.obj" \
- "$(INTDIR)\Handle_Set.obj" \
- "$(INTDIR)\Hash_Map_Manager.obj" \
- "$(INTDIR)\Hashable.obj" \
- "$(INTDIR)\High_Res_Timer.obj" \
- "$(INTDIR)\INET_Addr.obj" \
- "$(INTDIR)\Init_ACE.obj" \
- "$(INTDIR)\IO_Cntl_Msg.obj" \
- "$(INTDIR)\IO_SAP.obj" \
- "$(INTDIR)\IOStream.obj" \
- "$(INTDIR)\IPC_SAP.obj" \
- "$(INTDIR)\Lib_Find.obj" \
- "$(INTDIR)\Local_Name_Space.obj" \
- "$(INTDIR)\Local_Tokens.obj" \
- "$(INTDIR)\Log_Msg.obj" \
- "$(INTDIR)\Log_Msg_Backend.obj" \
- "$(INTDIR)\Log_Msg_Callback.obj" \
- "$(INTDIR)\Log_Msg_IPC.obj" \
- "$(INTDIR)\Log_Msg_NT_Event_Log.obj" \
- "$(INTDIR)\Log_Msg_UNIX_Syslog.obj" \
- "$(INTDIR)\Log_Record.obj" \
- "$(INTDIR)\Logging_Strategy.obj" \
- "$(INTDIR)\LSOCK.obj" \
- "$(INTDIR)\LSOCK_Acceptor.obj" \
- "$(INTDIR)\LSOCK_CODgram.obj" \
- "$(INTDIR)\LSOCK_Connector.obj" \
- "$(INTDIR)\LSOCK_Dgram.obj" \
- "$(INTDIR)\LSOCK_Stream.obj" \
- "$(INTDIR)\Malloc.obj" \
- "$(INTDIR)\Malloc_Allocator.obj" \
- "$(INTDIR)\Malloc_Instantiations.obj" \
- "$(INTDIR)\Map.obj" \
- "$(INTDIR)\MEM_Acceptor.obj" \
- "$(INTDIR)\MEM_Addr.obj" \
- "$(INTDIR)\MEM_Connector.obj" \
- "$(INTDIR)\MEM_IO.obj" \
- "$(INTDIR)\Mem_Map.obj" \
- "$(INTDIR)\MEM_SAP.obj" \
- "$(INTDIR)\MEM_Stream.obj" \
- "$(INTDIR)\Memory_Pool.obj" \
- "$(INTDIR)\Message_Block.obj" \
- "$(INTDIR)\Message_Queue.obj" \
- "$(INTDIR)\Method_Request.obj" \
- "$(INTDIR)\Msg_WFMO_Reactor.obj" \
- "$(INTDIR)\Multiplexor.obj" \
- "$(INTDIR)\Name_Proxy.obj" \
- "$(INTDIR)\Name_Request_Reply.obj" \
- "$(INTDIR)\Name_Space.obj" \
- "$(INTDIR)\Naming_Context.obj" \
- "$(INTDIR)\Notification_Strategy.obj" \
- "$(INTDIR)\NT_Service.obj" \
- "$(INTDIR)\Obchunk.obj" \
- "$(INTDIR)\Object_Manager.obj" \
- "$(INTDIR)\Obstack.obj" \
- "$(INTDIR)\OS.obj" \
- "$(INTDIR)\OS_Dirent.obj" \
- "$(INTDIR)\OS_Errno.obj" \
- "$(INTDIR)\OS_Log_Msg_Attributes.obj" \
- "$(INTDIR)\OS_Memory.obj" \
- "$(INTDIR)\OS_QoS.obj" \
- "$(INTDIR)\OS_String.obj" \
- "$(INTDIR)\OS_Thread_Adapter.obj" \
- "$(INTDIR)\OS_TLI.obj" \
- "$(INTDIR)\Pair.obj" \
- "$(INTDIR)\Parse_Node.obj" \
- "$(INTDIR)\PI_Malloc.obj" \
- "$(INTDIR)\Pipe.obj" \
- "$(INTDIR)\POSIX_Asynch_IO.obj" \
- "$(INTDIR)\POSIX_Proactor.obj" \
- "$(INTDIR)\Priority_Reactor.obj" \
- "$(INTDIR)\Proactor.obj" \
- "$(INTDIR)\Process.obj" \
- "$(INTDIR)\Process_Manager.obj" \
- "$(INTDIR)\Process_Mutex.obj" \
- "$(INTDIR)\Process_Semaphore.obj" \
- "$(INTDIR)\Profile_Timer.obj" \
- "$(INTDIR)\Reactor.obj" \
- "$(INTDIR)\Reactor_Notification_Strategy.obj" \
- "$(INTDIR)\Read_Buffer.obj" \
- "$(INTDIR)\Recyclable.obj" \
- "$(INTDIR)\Refcountable.obj" \
- "$(INTDIR)\Registry.obj" \
- "$(INTDIR)\Registry_Name_Space.obj" \
- "$(INTDIR)\Remote_Name_Space.obj" \
- "$(INTDIR)\Remote_Tokens.obj" \
- "$(INTDIR)\RW_Process_Mutex.obj" \
- "$(INTDIR)\Sample_History.obj" \
- "$(INTDIR)\Sched_Params.obj" \
- "$(INTDIR)\Select_Reactor.obj" \
- "$(INTDIR)\Select_Reactor_Base.obj" \
- "$(INTDIR)\Service_Config.obj" \
- "$(INTDIR)\Service_Manager.obj" \
- "$(INTDIR)\Service_Object.obj" \
- "$(INTDIR)\Service_Repository.obj" \
- "$(INTDIR)\Service_Templates.obj" \
- "$(INTDIR)\Service_Types.obj" \
- "$(INTDIR)\Shared_Memory.obj" \
- "$(INTDIR)\Shared_Memory_MM.obj" \
- "$(INTDIR)\Shared_Memory_SV.obj" \
- "$(INTDIR)\Shared_Object.obj" \
- "$(INTDIR)\Signal.obj" \
- "$(INTDIR)\SOCK.obj" \
- "$(INTDIR)\SOCK_Acceptor.obj" \
- "$(INTDIR)\SOCK_CODgram.obj" \
- "$(INTDIR)\Sock_Connect.obj" \
- "$(INTDIR)\SOCK_Connector.obj" \
- "$(INTDIR)\SOCK_Dgram.obj" \
- "$(INTDIR)\SOCK_Dgram_Bcast.obj" \
- "$(INTDIR)\SOCK_Dgram_Mcast.obj" \
- "$(INTDIR)\SOCK_IO.obj" \
- "$(INTDIR)\SOCK_Stream.obj" \
- "$(INTDIR)\SPIPE.obj" \
- "$(INTDIR)\SPIPE_Acceptor.obj" \
- "$(INTDIR)\SPIPE_Addr.obj" \
- "$(INTDIR)\SPIPE_Connector.obj" \
- "$(INTDIR)\SPIPE_Stream.obj" \
- "$(INTDIR)\SString.obj" \
- "$(INTDIR)\Stats.obj" \
- "$(INTDIR)\String_Base_Const.obj" \
- "$(INTDIR)\SV_Message.obj" \
- "$(INTDIR)\SV_Message_Queue.obj" \
- "$(INTDIR)\SV_Semaphore_Complex.obj" \
- "$(INTDIR)\SV_Semaphore_Simple.obj" \
- "$(INTDIR)\SV_Shared_Memory.obj" \
- "$(INTDIR)\Svc_Conf_l.obj" \
- "$(INTDIR)\Svc_Conf_Lexer_Guard.obj" \
- "$(INTDIR)\Svc_Conf_y.obj" \
- "$(INTDIR)\Svc_Handler.obj" \
- "$(INTDIR)\Synch.obj" \
- "$(INTDIR)\Synch_Options.obj" \
- "$(INTDIR)\System_Time.obj" \
- "$(INTDIR)\Task.obj" \
- "$(INTDIR)\Template_Instantiations.obj" \
- "$(INTDIR)\Thread.obj" \
- "$(INTDIR)\Thread_Adapter.obj" \
- "$(INTDIR)\Thread_Control.obj" \
- "$(INTDIR)\Thread_Exit.obj" \
- "$(INTDIR)\Thread_Hook.obj" \
- "$(INTDIR)\Thread_Manager.obj" \
- "$(INTDIR)\Time_Request_Reply.obj" \
- "$(INTDIR)\Time_Value.obj" \
- "$(INTDIR)\Timeprobe.obj" \
- "$(INTDIR)\Timer_Hash.obj" \
- "$(INTDIR)\Timer_Heap.obj" \
- "$(INTDIR)\Timer_List.obj" \
- "$(INTDIR)\Timer_Queue.obj" \
- "$(INTDIR)\Timer_Queue_Adapters.obj" \
- "$(INTDIR)\Timer_Wheel.obj" \
- "$(INTDIR)\TLI.obj" \
- "$(INTDIR)\TLI_Acceptor.obj" \
- "$(INTDIR)\TLI_Connector.obj" \
- "$(INTDIR)\TLI_Stream.obj" \
- "$(INTDIR)\Token.obj" \
- "$(INTDIR)\Token_Collection.obj" \
- "$(INTDIR)\Token_Invariants.obj" \
- "$(INTDIR)\Token_Manager.obj" \
- "$(INTDIR)\Token_Request_Reply.obj" \
- "$(INTDIR)\TP_Reactor.obj" \
- "$(INTDIR)\Trace.obj" \
- "$(INTDIR)\TTY_IO.obj" \
- "$(INTDIR)\Typed_SV_Message.obj" \
- "$(INTDIR)\Typed_SV_Message_Queue.obj" \
- "$(INTDIR)\UNIX_Addr.obj" \
- "$(INTDIR)\UPIPE_Acceptor.obj" \
- "$(INTDIR)\UPIPE_Connector.obj" \
- "$(INTDIR)\UPIPE_Stream.obj" \
- "$(INTDIR)\WFMO_Reactor.obj" \
- "$(INTDIR)\WIN32_Asynch_IO.obj" \
- "$(INTDIR)\WIN32_Proactor.obj" \
- "$(INTDIR)\XML_Svc_Conf.obj" \
- "$(INTDIR)\XtReactor.obj" \
- "$(INTDIR)\ace.res"
-
-"$(OUTDIR)\acesd.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
- $(LIB32) @<<
- $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("ace_lib.dep")
-!INCLUDE "ace_lib.dep"
-!ELSE
-!MESSAGE Warning: cannot find "ace_lib.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "ACE LIB - Win64 Static Release" || "$(CFG)" == "ACE LIB - Win64 Static Debug"
-SOURCE=.\ACE.cpp
-
-"$(INTDIR)\ACE.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Activation_Queue.cpp
-
-"$(INTDIR)\Activation_Queue.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Active_Map_Manager.cpp
-
-"$(INTDIR)\Active_Map_Manager.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Addr.cpp
-
-"$(INTDIR)\Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Arg_Shifter.cpp
-
-"$(INTDIR)\Arg_Shifter.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\ARGV.cpp
-
-"$(INTDIR)\ARGV.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Argv_Type_Converter.cpp
-
-"$(INTDIR)\Argv_Type_Converter.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Asynch_Connector.cpp
-
-"$(INTDIR)\Asynch_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Asynch_IO.cpp
-
-"$(INTDIR)\Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Asynch_IO_Impl.cpp
-
-"$(INTDIR)\Asynch_IO_Impl.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Asynch_Pseudo_Task.cpp
-
-"$(INTDIR)\Asynch_Pseudo_Task.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\ATM_Acceptor.cpp
-
-"$(INTDIR)\ATM_Acceptor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\ATM_Addr.cpp
-
-"$(INTDIR)\ATM_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\ATM_Connector.cpp
-
-"$(INTDIR)\ATM_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\ATM_Params.cpp
-
-"$(INTDIR)\ATM_Params.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\ATM_QoS.cpp
-
-"$(INTDIR)\ATM_QoS.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\ATM_Stream.cpp
-
-"$(INTDIR)\ATM_Stream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Base_Thread_Adapter.cpp
-
-"$(INTDIR)\Base_Thread_Adapter.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Based_Pointer_Repository.cpp
-
-"$(INTDIR)\Based_Pointer_Repository.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Basic_Stats.cpp
-
-"$(INTDIR)\Basic_Stats.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Basic_Types.cpp
-
-"$(INTDIR)\Basic_Types.obj" : $(SOURCE) "$(INTDIR)" ".\Template_Instantiations.cpp" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Capabilities.cpp
-
-"$(INTDIR)\Capabilities.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\CDR_Base.cpp
-
-"$(INTDIR)\CDR_Base.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\CDR_Stream.cpp
-
-"$(INTDIR)\CDR_Stream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Codecs.cpp
-
-"$(INTDIR)\Codecs.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Codeset_Registry.cpp
-
-"$(INTDIR)\Codeset_Registry.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Codeset_Registry_db.cpp
-
-"$(INTDIR)\Codeset_Registry_db.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Configuration.cpp
-
-"$(INTDIR)\Configuration.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Configuration_Import_Export.cpp
-
-"$(INTDIR)\Configuration_Import_Export.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Connection_Recycling_Strategy.cpp
-
-"$(INTDIR)\Connection_Recycling_Strategy.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Containers.cpp
-
-"$(INTDIR)\Containers.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Copy_Disabled.cpp
-
-"$(INTDIR)\Copy_Disabled.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Date_Time.cpp
-
-"$(INTDIR)\Date_Time.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\DEV.cpp
-
-"$(INTDIR)\DEV.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\DEV_Addr.cpp
-
-"$(INTDIR)\DEV_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\DEV_Connector.cpp
-
-"$(INTDIR)\DEV_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\DEV_IO.cpp
-
-"$(INTDIR)\DEV_IO.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Dirent.cpp
-
-"$(INTDIR)\Dirent.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Dirent_Selector.cpp
-
-"$(INTDIR)\Dirent_Selector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\DLL.cpp
-
-"$(INTDIR)\DLL.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\DLL_Manager.cpp
-
-"$(INTDIR)\DLL_Manager.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Dump.cpp
-
-"$(INTDIR)\Dump.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Dynamic.cpp
-
-"$(INTDIR)\Dynamic.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Dynamic_Service.cpp
-
-"$(INTDIR)\Dynamic_Service.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Dynamic_Service_Base.cpp
-
-"$(INTDIR)\Dynamic_Service_Base.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Event_Handler.cpp
-
-"$(INTDIR)\Event_Handler.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Event_Handler_T.cpp
-
-"$(INTDIR)\Event_Handler_T.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FIFO.cpp
-
-"$(INTDIR)\FIFO.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FIFO_Recv.cpp
-
-"$(INTDIR)\FIFO_Recv.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FIFO_Recv_Msg.cpp
-
-"$(INTDIR)\FIFO_Recv_Msg.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FIFO_Send.cpp
-
-"$(INTDIR)\FIFO_Send.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FIFO_Send_Msg.cpp
-
-"$(INTDIR)\FIFO_Send_Msg.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FILE.cpp
-
-"$(INTDIR)\FILE.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FILE_Addr.cpp
-
-"$(INTDIR)\FILE_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FILE_Connector.cpp
-
-"$(INTDIR)\FILE_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\FILE_IO.cpp
-
-"$(INTDIR)\FILE_IO.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\File_Lock.cpp
-
-"$(INTDIR)\File_Lock.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Filecache.cpp
-
-"$(INTDIR)\Filecache.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Flag_Manip.cpp
-
-"$(INTDIR)\Flag_Manip.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Framework_Component.cpp
-
-"$(INTDIR)\Framework_Component.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Functor.cpp
-
-"$(INTDIR)\Functor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Get_Opt.cpp
-
-"$(INTDIR)\Get_Opt.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Handle_Ops.cpp
-
-"$(INTDIR)\Handle_Ops.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Handle_Set.cpp
-
-"$(INTDIR)\Handle_Set.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Hash_Map_Manager.cpp
-
-"$(INTDIR)\Hash_Map_Manager.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Hashable.cpp
-
-"$(INTDIR)\Hashable.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\High_Res_Timer.cpp
-
-"$(INTDIR)\High_Res_Timer.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\INET_Addr.cpp
-
-"$(INTDIR)\INET_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Init_ACE.cpp
-
-"$(INTDIR)\Init_ACE.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\IO_Cntl_Msg.cpp
-
-"$(INTDIR)\IO_Cntl_Msg.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\IO_SAP.cpp
-
-"$(INTDIR)\IO_SAP.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\IOStream.cpp
-
-"$(INTDIR)\IOStream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\IPC_SAP.cpp
-
-"$(INTDIR)\IPC_SAP.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Lib_Find.cpp
-
-"$(INTDIR)\Lib_Find.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Local_Name_Space.cpp
-
-"$(INTDIR)\Local_Name_Space.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Local_Tokens.cpp
-
-"$(INTDIR)\Local_Tokens.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Log_Msg.cpp
-
-"$(INTDIR)\Log_Msg.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Log_Msg_Backend.cpp
-
-"$(INTDIR)\Log_Msg_Backend.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Log_Msg_Callback.cpp
-
-"$(INTDIR)\Log_Msg_Callback.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Log_Msg_IPC.cpp
-
-"$(INTDIR)\Log_Msg_IPC.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Log_Msg_NT_Event_Log.cpp
-
-"$(INTDIR)\Log_Msg_NT_Event_Log.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Log_Msg_UNIX_Syslog.cpp
-
-"$(INTDIR)\Log_Msg_UNIX_Syslog.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Log_Record.cpp
-
-"$(INTDIR)\Log_Record.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Logging_Strategy.cpp
-
-"$(INTDIR)\Logging_Strategy.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\LSOCK.cpp
-
-"$(INTDIR)\LSOCK.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\LSOCK_Acceptor.cpp
-
-"$(INTDIR)\LSOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\LSOCK_CODgram.cpp
-
-"$(INTDIR)\LSOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\LSOCK_Connector.cpp
-
-"$(INTDIR)\LSOCK_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\LSOCK_Dgram.cpp
-
-"$(INTDIR)\LSOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\LSOCK_Stream.cpp
-
-"$(INTDIR)\LSOCK_Stream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Malloc.cpp
-
-"$(INTDIR)\Malloc.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Malloc_Allocator.cpp
-
-"$(INTDIR)\Malloc_Allocator.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Malloc_Instantiations.cpp
-
-"$(INTDIR)\Malloc_Instantiations.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Map.cpp
-
-"$(INTDIR)\Map.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\MEM_Acceptor.cpp
-
-"$(INTDIR)\MEM_Acceptor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\MEM_Addr.cpp
-
-"$(INTDIR)\MEM_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\MEM_Connector.cpp
-
-"$(INTDIR)\MEM_Connector.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\MEM_IO.cpp
-
-"$(INTDIR)\MEM_IO.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Mem_Map.cpp
-
-"$(INTDIR)\Mem_Map.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\MEM_SAP.cpp
-
-"$(INTDIR)\MEM_SAP.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\MEM_Stream.cpp
-
-"$(INTDIR)\MEM_Stream.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Memory_Pool.cpp
-
-"$(INTDIR)\Memory_Pool.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Message_Block.cpp
-
-"$(INTDIR)\Message_Block.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Message_Queue.cpp
-
-"$(INTDIR)\Message_Queue.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Method_Request.cpp
-
-"$(INTDIR)\Method_Request.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Msg_WFMO_Reactor.cpp
-
-"$(INTDIR)\Msg_WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Multiplexor.cpp
-
-"$(INTDIR)\Multiplexor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Name_Proxy.cpp
-
-"$(INTDIR)\Name_Proxy.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Name_Request_Reply.cpp
-
-"$(INTDIR)\Name_Request_Reply.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Name_Space.cpp
-
-"$(INTDIR)\Name_Space.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Naming_Context.cpp
-
-"$(INTDIR)\Naming_Context.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Notification_Strategy.cpp
-
-"$(INTDIR)\Notification_Strategy.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\NT_Service.cpp
-
-"$(INTDIR)\NT_Service.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Obchunk.cpp
-
-"$(INTDIR)\Obchunk.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Object_Manager.cpp
-
-"$(INTDIR)\Object_Manager.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Obstack.cpp
-
-"$(INTDIR)\Obstack.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS.cpp
-
-"$(INTDIR)\OS.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_Dirent.cpp
-
-"$(INTDIR)\OS_Dirent.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_Errno.cpp
-
-"$(INTDIR)\OS_Errno.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_Log_Msg_Attributes.cpp
-
-"$(INTDIR)\OS_Log_Msg_Attributes.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_Memory.cpp
-
-"$(INTDIR)\OS_Memory.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_QoS.cpp
-
-"$(INTDIR)\OS_QoS.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_String.cpp
-
-"$(INTDIR)\OS_String.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_Thread_Adapter.cpp
-
-"$(INTDIR)\OS_Thread_Adapter.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\OS_TLI.cpp
-
-"$(INTDIR)\OS_TLI.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Pair.cpp
-
-"$(INTDIR)\Pair.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Parse_Node.cpp
-
-"$(INTDIR)\Parse_Node.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\PI_Malloc.cpp
-
-"$(INTDIR)\PI_Malloc.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Pipe.cpp
-
-"$(INTDIR)\Pipe.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\POSIX_Asynch_IO.cpp
-
-"$(INTDIR)\POSIX_Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\POSIX_Proactor.cpp
-
-"$(INTDIR)\POSIX_Proactor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Priority_Reactor.cpp
-
-"$(INTDIR)\Priority_Reactor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Proactor.cpp
-
-"$(INTDIR)\Proactor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Process.cpp
-
-"$(INTDIR)\Process.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Process_Manager.cpp
-
-"$(INTDIR)\Process_Manager.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Process_Mutex.cpp
-
-"$(INTDIR)\Process_Mutex.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Process_Semaphore.cpp
-
-"$(INTDIR)\Process_Semaphore.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Profile_Timer.cpp
-
-"$(INTDIR)\Profile_Timer.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Reactor.cpp
-
-"$(INTDIR)\Reactor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Reactor_Notification_Strategy.cpp
-
-"$(INTDIR)\Reactor_Notification_Strategy.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Read_Buffer.cpp
-
-"$(INTDIR)\Read_Buffer.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Recyclable.cpp
-
-"$(INTDIR)\Recyclable.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Refcountable.cpp
-
-"$(INTDIR)\Refcountable.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Registry.cpp
-
-"$(INTDIR)\Registry.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Registry_Name_Space.cpp
-
-"$(INTDIR)\Registry_Name_Space.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Remote_Name_Space.cpp
-
-"$(INTDIR)\Remote_Name_Space.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Remote_Tokens.cpp
-
-"$(INTDIR)\Remote_Tokens.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\RW_Process_Mutex.cpp
-
-"$(INTDIR)\RW_Process_Mutex.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Sample_History.cpp
-
-"$(INTDIR)\Sample_History.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Sched_Params.cpp
-
-"$(INTDIR)\Sched_Params.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Select_Reactor.cpp
-
-"$(INTDIR)\Select_Reactor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Select_Reactor_Base.cpp
-
-"$(INTDIR)\Select_Reactor_Base.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Service_Config.cpp
-
-"$(INTDIR)\Service_Config.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Service_Manager.cpp
-
-"$(INTDIR)\Service_Manager.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Service_Object.cpp
-
-"$(INTDIR)\Service_Object.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Service_Repository.cpp
-
-"$(INTDIR)\Service_Repository.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Service_Templates.cpp
-
-"$(INTDIR)\Service_Templates.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Service_Types.cpp
-
-"$(INTDIR)\Service_Types.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Shared_Memory.cpp
-
-"$(INTDIR)\Shared_Memory.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Shared_Memory_MM.cpp
-
-"$(INTDIR)\Shared_Memory_MM.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Shared_Memory_SV.cpp
-
-"$(INTDIR)\Shared_Memory_SV.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Shared_Object.cpp
-
-"$(INTDIR)\Shared_Object.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Signal.cpp
-
-"$(INTDIR)\Signal.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK.cpp
-
-"$(INTDIR)\SOCK.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_Acceptor.cpp
-
-"$(INTDIR)\SOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_CODgram.cpp
-
-"$(INTDIR)\SOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Sock_Connect.cpp
-
-"$(INTDIR)\Sock_Connect.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_Connector.cpp
-
-"$(INTDIR)\SOCK_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_Dgram.cpp
-
-"$(INTDIR)\SOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_Dgram_Bcast.cpp
-
-"$(INTDIR)\SOCK_Dgram_Bcast.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_Dgram_Mcast.cpp
-
-"$(INTDIR)\SOCK_Dgram_Mcast.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_IO.cpp
-
-"$(INTDIR)\SOCK_IO.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SOCK_Stream.cpp
-
-"$(INTDIR)\SOCK_Stream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SPIPE.cpp
-
-"$(INTDIR)\SPIPE.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SPIPE_Acceptor.cpp
-
-"$(INTDIR)\SPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SPIPE_Addr.cpp
-
-"$(INTDIR)\SPIPE_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SPIPE_Connector.cpp
-
-"$(INTDIR)\SPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SPIPE_Stream.cpp
-
-"$(INTDIR)\SPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SString.cpp
-
-"$(INTDIR)\SString.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Stats.cpp
-
-"$(INTDIR)\Stats.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\String_Base_Const.cpp
-
-"$(INTDIR)\String_Base_Const.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SV_Message.cpp
-
-"$(INTDIR)\SV_Message.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SV_Message_Queue.cpp
-
-"$(INTDIR)\SV_Message_Queue.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SV_Semaphore_Complex.cpp
-
-"$(INTDIR)\SV_Semaphore_Complex.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SV_Semaphore_Simple.cpp
-
-"$(INTDIR)\SV_Semaphore_Simple.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\SV_Shared_Memory.cpp
-
-"$(INTDIR)\SV_Shared_Memory.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Svc_Conf_l.cpp
-
-"$(INTDIR)\Svc_Conf_l.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Svc_Conf_Lexer_Guard.cpp
-
-"$(INTDIR)\Svc_Conf_Lexer_Guard.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Svc_Conf_y.cpp
-
-"$(INTDIR)\Svc_Conf_y.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Svc_Handler.cpp
-
-"$(INTDIR)\Svc_Handler.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Synch.cpp
-
-"$(INTDIR)\Synch.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Synch_Options.cpp
-
-"$(INTDIR)\Synch_Options.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\System_Time.cpp
-
-"$(INTDIR)\System_Time.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Task.cpp
-
-"$(INTDIR)\Task.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Template_Instantiations.cpp
-
-"$(INTDIR)\Template_Instantiations.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Thread.cpp
-
-"$(INTDIR)\Thread.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Thread_Adapter.cpp
-
-"$(INTDIR)\Thread_Adapter.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Thread_Control.cpp
-
-"$(INTDIR)\Thread_Control.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Thread_Exit.cpp
-
-"$(INTDIR)\Thread_Exit.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Thread_Hook.cpp
-
-"$(INTDIR)\Thread_Hook.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Thread_Manager.cpp
-
-"$(INTDIR)\Thread_Manager.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Time_Request_Reply.cpp
-
-"$(INTDIR)\Time_Request_Reply.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Time_Value.cpp
-
-"$(INTDIR)\Time_Value.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Timeprobe.cpp
-
-"$(INTDIR)\Timeprobe.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Timer_Hash.cpp
-
-"$(INTDIR)\Timer_Hash.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Timer_Heap.cpp
-
-"$(INTDIR)\Timer_Heap.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Timer_List.cpp
-
-"$(INTDIR)\Timer_List.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Timer_Queue.cpp
-
-"$(INTDIR)\Timer_Queue.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Timer_Queue_Adapters.cpp
-
-"$(INTDIR)\Timer_Queue_Adapters.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\Timer_Wheel.cpp
-
-"$(INTDIR)\Timer_Wheel.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\TLI.cpp
-
-"$(INTDIR)\TLI.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\TLI_Acceptor.cpp
-
-"$(INTDIR)\TLI_Acceptor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\TLI_Connector.cpp
-
-"$(INTDIR)\TLI_Connector.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\TLI_Stream.cpp
-
-"$(INTDIR)\TLI_Stream.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Token.cpp
-
-"$(INTDIR)\Token.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Token_Collection.cpp
-
-"$(INTDIR)\Token_Collection.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Token_Invariants.cpp
-
-"$(INTDIR)\Token_Invariants.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Token_Manager.cpp
-
-"$(INTDIR)\Token_Manager.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Token_Request_Reply.cpp
-
-"$(INTDIR)\Token_Request_Reply.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\TP_Reactor.cpp
-
-"$(INTDIR)\TP_Reactor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Trace.cpp
-
-"$(INTDIR)\Trace.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\TTY_IO.cpp
-
-"$(INTDIR)\TTY_IO.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Typed_SV_Message.cpp
-
-"$(INTDIR)\Typed_SV_Message.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Typed_SV_Message_Queue.cpp
-
-"$(INTDIR)\Typed_SV_Message_Queue.obj" : $(SOURCE) "$(INTDIR)" ".\Typed_SV_Message.cpp"
-
-
-SOURCE=.\UNIX_Addr.cpp
-
-"$(INTDIR)\UNIX_Addr.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\UPIPE_Acceptor.cpp
-
-"$(INTDIR)\UPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\UPIPE_Connector.cpp
-
-"$(INTDIR)\UPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\UPIPE_Stream.cpp
-
-"$(INTDIR)\UPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\WFMO_Reactor.cpp
-
-"$(INTDIR)\WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\WIN32_Asynch_IO.cpp
-
-"$(INTDIR)\WIN32_Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\WIN32_Proactor.cpp
-
-"$(INTDIR)\WIN32_Proactor.obj" : $(SOURCE) "$(INTDIR)" ".\Framework_Component_T.cpp"
-
-
-SOURCE=.\XML_Svc_Conf.cpp
-
-"$(INTDIR)\XML_Svc_Conf.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\XtReactor.cpp
-
-"$(INTDIR)\XtReactor.obj" : $(SOURCE) "$(INTDIR)"
-
-
-SOURCE=.\Acceptor.cpp
-SOURCE=.\Active_Map_Manager_T.cpp
-SOURCE=.\Asynch_Acceptor.cpp
-SOURCE=.\Atomic_Op.cpp
-
-!IF "$(CFG)" == "ACE LIB - Win64 Static Release"
-
-
-"$(INTDIR)\Atomic_Op.obj" : $(SOURCE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "ACE LIB - Win64 Static Debug"
-
-!ENDIF
-
-SOURCE=.\Auto_Ptr.cpp
-SOURCE=.\Based_Pointer_T.cpp
-SOURCE=.\Cache_Map_Manager_T.cpp
-SOURCE=.\Cached_Connect_Strategy_T.cpp
-SOURCE=.\Caching_Strategies_T.cpp
-SOURCE=.\Caching_Utility_T.cpp
-SOURCE=.\Cleanup_Strategies_T.cpp
-SOURCE=.\Connector.cpp
-SOURCE=.\Containers_T.cpp
-SOURCE=.\Dump_T.cpp
-SOURCE=.\Framework_Component_T.cpp
-
-!IF "$(CFG)" == "ACE LIB - Win64 Static Release"
-
-
-"$(INTDIR)\Framework_Component_T.obj" : $(SOURCE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "ACE LIB - Win64 Static Debug"
-
-!ENDIF
-
-SOURCE=.\Free_List.cpp
-SOURCE=.\Functor_T.cpp
-SOURCE=.\Future.cpp
-SOURCE=.\Hash_Cache_Map_Manager_T.cpp
-SOURCE=.\Hash_Map_Manager_T.cpp
-SOURCE=.\Hash_Map_With_Allocator_T.cpp
-SOURCE=.\IOStream_T.cpp
-SOURCE=.\Local_Name_Space_T.cpp
-SOURCE=.\Malloc_T.cpp
-SOURCE=.\Managed_Object.cpp
-SOURCE=.\Map_Manager.cpp
-SOURCE=.\Map_T.cpp
-SOURCE=.\Message_Block_T.cpp
-SOURCE=.\Message_Queue_T.cpp
-SOURCE=.\Module.cpp
-SOURCE=.\Obstack_T.cpp
-SOURCE=.\Pair_T.cpp
-SOURCE=.\RB_Tree.cpp
-SOURCE=.\Select_Reactor_T.cpp
-SOURCE=.\Singleton.cpp
-SOURCE=.\Strategies_T.cpp
-SOURCE=.\Stream.cpp
-SOURCE=.\Stream_Modules.cpp
-SOURCE=.\String_Base.cpp
-SOURCE=.\Synch_T.cpp
-SOURCE=.\Task_T.cpp
-SOURCE=.\Test_and_Set.cpp
-SOURCE=.\Timer_Hash_T.cpp
-SOURCE=.\Timer_Heap_T.cpp
-SOURCE=.\Timer_List_T.cpp
-SOURCE=.\Timer_Queue_T.cpp
-SOURCE=.\Timer_Wheel_T.cpp
-SOURCE=.\ace.rc
-
-"$(INTDIR)\ace.res" : $(SOURCE) "$(INTDIR)"
- $(RSC) $(RSC_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/ace/ace_message_table.bin b/ace/ace_message_table.bin
deleted file mode 100644
index 6ac08e5dc69..00000000000
--- a/ace/ace_message_table.bin
+++ /dev/null
Binary files differ
diff --git a/ace/ace_vacpp_options.icc b/ace/ace_vacpp_options.icc
deleted file mode 100644
index db5515e8756..00000000000
--- a/ace/ace_vacpp_options.icc
+++ /dev/null
@@ -1,12 +0,0 @@
-// $Id$
-//
-// Configuration file to define Visual Age C++ options used commonly
-// across all (sub)projects built on AIX using Visual Age C++ 5 (or later).
-
-option PlatformOptions =
- defaults(xlC_r),
- gen(check,bounds,no),
- link(typecheck,yes),
- opt(level, 0), // for debugging
- gen(enumsize, small),
- report (level,W)
diff --git a/ace/ace_wchar.h b/ace/ace_wchar.h
deleted file mode 100644
index 08ccbd17859..00000000000
--- a/ace/ace_wchar.h
+++ /dev/null
@@ -1,329 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file ace_wchar.h
- *
- * $Id$
- *
- * @author Darrell Brunsch <brunsch@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_WCHAR_H
-#define ACE_WCHAR_H
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// These macros have been deprecated and should be replaced by their
-// ACE_TEXT_* equivalents. These macros are just hacks and may not
-// completely provide the old functionality.
-#if defined (ACE_LEGACY_MODE)
-// Convert the old unicode indicators
-# if defined (ACE_HAS_MOSTLY_UNICODE_APIS)
-# define ACE_USES_WCHAR
-# endif /* ACE_HAS_MOSTLY_UNICODE_APIS */
-# if defined (ACE_HAS_UNICODE)
-# define ACE_HAS_WCHAR
-# endif /* ACE_HAS_UNICODE */
-
-// These are defined to get older stuff to compile
-// FUZZ: disable check_for_tchar
-# define ASYS_TCHAR ACE_TCHAR
-# define ASYS_TEXT ACE_TEXT
-# define ASYS_ONLY_MULTIBYTE_STRING ACE_TEXT_ALWAYS_CHAR
-# define ASYS_MULTIBYTE_STRING ACE_TEXT_CHAR_TO_TCHAR
-# define ASYS_WIDE_STRING ACE_TEXT_CHAR_TO_TCHAR
-# define ACE_WIDE_STRING ACE_TEXT_CHAR_TO_TCHAR
-
-# if defined (ACE_USES_WCHAR)
-# define ASYS_ONLY_WIDE_STRING(STRING) STRING
-# else /* ACE_USES_WCHAR */
-# define ASYS_ONLY_WIDE_STRING(STRING) \
- ACE_Ascii_To_Wide (STRING).wchar_rep ()
-# endif /* ACE_USES_WCHAR */
-
-# define ACE_TEXT_STRING ACE_TString
-
-#endif /* ACE_LEGACY_MODE */
-
-#if defined (ACE_HAS_XPG4_MULTIBYTE_CHAR)
-# include /**/ <wchar.h>
-#endif /* ACE_HAS_XPG4_MULTIBYPTE_CHAR */
-
-#if defined (ACE_HAS_WCHAR)
-# if defined (VXWORKS)
-# include /**/ <types/vxTypes.h> /* For wchar_t */
-# include /**/ <stdlib.h> /* For mbstowcs, etc. */
-# include /**/ <string.h> /* For strlen */
-# define wint_t unsigned int /* VxWorks has wchar_t but not wint_t */
-# elif defined (ACE_HAS_STANDARD_CPP_LIBRARY) && \
- (ACE_HAS_STANDARD_CPP_LIBRARY != 0)
-# include /**/ <cwchar>
-# include /**/ <cwctype>
-# elif defined (ACE_HAS_WINCE)
-# include /**/ <wtypes.h>
-# elif !defined (__BORLANDC__)
-# include /**/ <wchar.h>
-# endif /* ACE_HAS_STANDARD_CPP_LIBRARY */
-#endif /* ACE_HAS_WCHAR */
-
-#if defined (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB) && \
- (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB != 0)
-using std::size_t;
-#endif /* ACE_USES_STD_NAMESPACE_FOR_STDC_LIB */
-
-// Since MSVC uses ushort16 = wchar_t, it is the only one
-// that does not need this defined
-
-#if defined (ACE_HAS_WCHAR) && !defined (_MSC_VER)
-# if !defined (ACE_WSTRING_HAS_USHORT_SUPPORT)
-# define ACE_WSTRING_HAS_USHORT_SUPPORT
-# endif /* ACE_WSTRING_HAS_USHORT_SUPPORT */
-#endif /* ACE_HAS_WCHAR && !_MSC_VER */
-
-// Set the default behaviour for ACE_TEXT_WIDE to use the L-prefix
-#if !defined (ACE_USES_L_PREFIX)
-# define ACE_USES_L_PREFIX 1
-#endif /* ACE_USES_L_PREFIX */
-
-// Define the unicode/wchar related macros correctly
-
-# if !defined (ACE_TEXT_WIDE)
-# if (ACE_USES_L_PREFIX == 1)
-# define ACE_TEXT_WIDE_I(STRING) L##STRING
-# else /* ACE_USES_L_PREFIX */
-# define ACE_TEXT_WIDE_I(STRING) STRING
-# endif /* ACE_USES_L_PREFIX */
-# define ACE_TEXT_WIDE(STRING) ACE_TEXT_WIDE_I (STRING)
-# endif /* ACE_TEXT_WIDE */
-
-#if defined (ACE_USES_WCHAR)
-typedef wchar_t ACE_TCHAR;
-typedef char ACE_ANTI_TCHAR;
-# define ACE_LIB_TEXT(STRING) ACE_TEXT_WIDE (STRING)
-# define ACE_TEXT_ALWAYS_CHAR(STRING) ACE_Wide_To_Ascii (STRING).char_rep ()
-# define ACE_TEXT_ALWAYS_WCHAR(STRING) STRING
-# define ACE_TEXT_CHAR_TO_TCHAR(STRING) ACE_Ascii_To_Wide (STRING).wchar_rep ()
-# define ACE_TEXT_WCHAR_TO_TCHAR(STRING) STRING
-# define ACE_TEXT_ANTI_TO_TCHAR(STRING) ACE_Ascii_To_Wide (STRING).wchar_rep ()
-#else /* ACE_USES_WCHAR */
-typedef char ACE_TCHAR;
-typedef wchar_t ACE_ANTI_TCHAR;
-# define ACE_LIB_TEXT(STRING) STRING
-# define ACE_TEXT_ALWAYS_CHAR(STRING) STRING
-# define ACE_TEXT_ALWAYS_WCHAR(STRING) ACE_Ascii_To_Wide (STRING).wchar_rep ()
-# define ACE_TEXT_CHAR_TO_TCHAR(STRING) STRING
-# define ACE_TEXT_WCHAR_TO_TCHAR(STRING) ACE_Wide_To_Ascii (STRING).char_rep ()
-# define ACE_TEXT_ANTI_TO_TCHAR(STRING) ACE_Wide_To_Ascii (STRING).char_rep ()
-#endif /* ACE_USES_WCHAR */
-
-#if defined (ACE_LEGACY_MODE)
-# define ACE_TEXT TEXT
-#else /* ACE_LEGACY_MODE */
-# define ACE_TEXT ACE_LIB_TEXT
-#endif /* ACE_LEGACY_MODE */
-
-// The OS_String module defines some wide-char functions that are not
-// universally available. In particular, they're not part of the
-// XPG4 Worldwide Portability Interface wide-character string handling
-// functions. So, if ACE_HAS_XPG4_MULTIBYTE_CHAR is defined, note that
-// these functions are missing.
-#if defined (ACE_HAS_XPG4_MULTIBYTE_CHAR)
-
-# if !defined (ACE_LACKS_ITOW)
-# define ACE_LACKS_ITOW
-# endif
-
-# if !defined (ACE_LACKS_WCSICMP)
-# define ACE_LACKS_WCSICMP
-# endif
-
-# if !defined (ACE_LACKS_WCSNICMP)
-# define ACE_LACKS_WCSNICMP
-# endif
-
-# if !defined (ACE_LACKS_WCSDUP)
-# define ACE_LACKS_WCSDUP
-# endif
-
-#endif /* ACE_HAS_XPG4_MULTIBYTE_CHAR */
-
-#if defined ACE_HAS_WCHAR
-/**
- * @class ACE_Wide_To_Ascii
- *
- * @brief A lightweight wchar* to char* string conversion class.
- *
- * The purpose of this class is to perform conversion from
- * wchar* to char* strings. It is not intended for general
- * purpose use.
- */
-class ACE_Wide_To_Ascii
-{
-public:
- /// Ctor must take a wchar string.
- ACE_Wide_To_Ascii (const wchar_t *s);
-
- /// Dtor will free up the memory.
- ~ACE_Wide_To_Ascii (void);
-
- /// Return the internal char* representation.
- char *char_rep (void);
-
- /// Converts an wchar_t string to ascii and returns a new string.
- static char *convert (const wchar_t *wstr);
-
-private:
- /// Internal pointer to the converted string.
- char *s_;
-
- /// Disallow these operation.
- ACE_Wide_To_Ascii (void);
- ACE_Wide_To_Ascii (ACE_Wide_To_Ascii &);
- ACE_Wide_To_Ascii& operator= (ACE_Wide_To_Ascii &);
-};
-
-/**
- * @class ACE_Ascii_To_Wide
- *
- * @brief A lightweight char* to wchar* string conversion class.
- *
- * The purpose of this class is to perform conversion from
- * char* to wchar* strings. It is not intended for general
- * purpose use.
- */
-class ACE_Ascii_To_Wide
-{
-public:
- /// Ctor must take a wchar string.
- ACE_Ascii_To_Wide (const char *s);
-
- /// Dtor will free up the memory.
- ~ACE_Ascii_To_Wide (void);
-
- /// Return the internal wchar* representation.
- wchar_t *wchar_rep (void);
-
- /// Converts an char string to unicode/wide and returns a new string.
- static wchar_t *convert (const char *str);
-
-private:
- /// Internal pointer to the converted string.
- wchar_t *s_;
-
- /// Disallow these operation.
- ACE_Ascii_To_Wide (void);
- ACE_Ascii_To_Wide (ACE_Ascii_To_Wide &);
- ACE_Ascii_To_Wide operator= (ACE_Ascii_To_Wide &);
-};
-
-#if defined (ACE_LEGACY_MODE)
-typedef ACE_Ascii_To_Wide ACE_OS_CString;
-typedef ACE_Wide_To_Ascii ACE_OS_WString;
-#endif /* ACE_LEGACY_MODE */
-
-#endif /* ACE_HAS_WCHAR */
-
-#if defined (ACE_WIN32)
-#if defined (ACE_USES_WCHAR)
-#define ACE_TEXT_SERVICE_TABLE_ENTRY SERVICE_TABLE_ENTRYW
-#define ACE_TEXT_STARTUPINFO STARTUPINFOW
-#define ACE_TEXT_WIN32_FIND_DATA WIN32_FIND_DATAW
-
-#define ACE_TEXT_CreateEvent ::CreateEventW
-#define ACE_TEXT_CreateFile ::CreateFileW
-#define ACE_TEXT_CreateFileMapping ::CreateFileMappingW
-#define ACE_TEXT_CreateMutex ::CreateMutexW
-#define ACE_TEXT_CreateProcess ::CreateProcessW
-#define ACE_TEXT_CreateSemaphore ::CreateSemaphoreW
-#define ACE_TEXT_CreateService ::CreateServiceW
-#define ACE_TEXT_ExpandEnvironmentStrings ::ExpandEnvironmentStringsW
-#define ACE_TEXT_FindFirstChangeNotification ::FindFirstChangeNotificationW
-#define ACE_TEXT_FindFirstFile ::FindFirstFileW
-#define ACE_TEXT_FindNextFile ::FindNextFileW
-#define ACE_TEXT_FormatMessage ::FormatMessageW
-#define ACE_TEXT_FreeEnvironmentStrings ::FreeEnvironmentStringsW
-#define ACE_TEXT_GetComputerName ::GetComputerNameW
-#define ACE_TEXT_GetEnvironmentStrings ::GetEnvironmentStringsW
-#define ACE_TEXT_GetModuleFileName ::GetModuleFileNameW
-#define ACE_TEXT_GetTempPath ::GetTempPathW
-#define ACE_TEXT_GetUserName ::GetUserNameW
-#define ACE_TEXT_LoadLibrary ::LoadLibraryW
-#define ACE_TEXT_MoveFileEx ::MoveFileExW
-#define ACE_TEXT_WaitNamedPipe ::WaitNamedPipeW
-#define ACE_TEXT_OpenFileMapping ::OpenFileMappingW
-#define ACE_TEXT_OpenSCManager ::OpenSCManagerW
-#define ACE_TEXT_OpenService ::OpenServiceW
-#define ACE_TEXT_RegisterEventSource ::RegisterEventSourceW
-#define ACE_TEXT_RegisterServiceCtrlHandler ::RegisterServiceCtrlHandlerW
-#define ACE_TEXT_RegConnectRegistry ::RegConnectRegistryW
-#define ACE_TEXT_RegCreateKeyEx ::RegCreateKeyExW
-#define ACE_TEXT_RegDeleteKey ::RegDeleteKeyW
-#define ACE_TEXT_RegDeleteValue ::RegDeleteValueW
-#define ACE_TEXT_RegEnumKeyEx ::RegEnumKeyExW
-#define ACE_TEXT_RegEnumValue ::RegEnumValueW
-#define ACE_TEXT_RegCreateKey ::RegCreateKeyW
-#define ACE_TEXT_RegOpenKey ::RegOpenKeyW
-#define ACE_TEXT_RegOpenKeyEx ::RegOpenKeyExW
-#define ACE_TEXT_RegQueryValueEx ::RegQueryValueExW
-#define ACE_TEXT_RegSetValueEx ::RegSetValueExW
-#define ACE_TEXT_ReportEvent ::ReportEventW
-#define ACE_TEXT_SearchPath ::SearchPathW
-#define ACE_TEXT_StartService ::StartServiceW
-#define ACE_TEXT_StartServiceCtrlDispatcher ::StartServiceCtrlDispatcherW
-
-#else /* ACE_USES_WCHAR */
-#define ACE_TEXT_SERVICE_TABLE_ENTRY SERVICE_TABLE_ENTRYA
-#define ACE_TEXT_STARTUPINFO STARTUPINFOA
-#define ACE_TEXT_WIN32_FIND_DATA WIN32_FIND_DATAA
-
-#define ACE_TEXT_CreateEvent ::CreateEventA
-#define ACE_TEXT_CreateFile ::CreateFileA
-#define ACE_TEXT_CreateFileMapping ::CreateFileMappingA
-#define ACE_TEXT_CreateMutex ::CreateMutexA
-#define ACE_TEXT_CreateProcess ::CreateProcessA
-#define ACE_TEXT_CreateSemaphore ::CreateSemaphoreA
-#define ACE_TEXT_CreateService ::CreateServiceA
-#define ACE_TEXT_ExpandEnvironmentStrings ::ExpandEnvironmentStringsA
-#define ACE_TEXT_FindFirstChangeNotification ::FindFirstChangeNotificationA
-#define ACE_TEXT_FindFirstFile ::FindFirstFileA
-#define ACE_TEXT_FindNextFile ::FindNextFileA
-#define ACE_TEXT_FormatMessage ::FormatMessageA
-#define ACE_TEXT_FreeEnvironmentStrings ::FreeEnvironmentStringsA
-#define ACE_TEXT_GetComputerName ::GetComputerNameA
-#define ACE_TEXT_GetEnvironmentStrings ::GetEnvironmentStringsA
-#define ACE_TEXT_GetModuleFileName ::GetModuleFileNameA
-#define ACE_TEXT_GetTempPath ::GetTempPathA
-#define ACE_TEXT_GetUserName ::GetUserNameA
-#define ACE_TEXT_LoadLibrary ::LoadLibraryA
-#define ACE_TEXT_MoveFileEx ::MoveFileExA
-#define ACE_TEXT_WaitNamedPipe ::WaitNamedPipeA
-#define ACE_TEXT_OpenFileMapping ::OpenFileMappingA
-#define ACE_TEXT_OpenSCManager ::OpenSCManagerA
-#define ACE_TEXT_OpenService ::OpenServiceA
-#define ACE_TEXT_RegisterEventSource ::RegisterEventSourceA
-#define ACE_TEXT_RegisterServiceCtrlHandler ::RegisterServiceCtrlHandlerA
-#define ACE_TEXT_RegConnectRegistry ::RegConnectRegistryA
-#define ACE_TEXT_RegCreateKeyEx ::RegCreateKeyExA
-#define ACE_TEXT_RegDeleteKey ::RegDeleteKeyA
-#define ACE_TEXT_RegDeleteValue ::RegDeleteValueA
-#define ACE_TEXT_RegEnumKeyEx ::RegEnumKeyExA
-#define ACE_TEXT_RegEnumValue ::RegEnumValueA
-#define ACE_TEXT_RegCreateKey ::RegCreateKeyA
-#define ACE_TEXT_RegOpenKey ::RegOpenKeyA
-#define ACE_TEXT_RegOpenKeyEx ::RegOpenKeyExA
-#define ACE_TEXT_RegQueryValueEx ::RegQueryValueExA
-#define ACE_TEXT_RegSetValueEx ::RegSetValueExA
-#define ACE_TEXT_ReportEvent ::ReportEventA
-#define ACE_TEXT_SearchPath ::SearchPathA
-#define ACE_TEXT_StartService ::StartServiceA
-#define ACE_TEXT_StartServiceCtrlDispatcher ::StartServiceCtrlDispatcherA
-#endif /* ACE_USES_WCHAR */
-#endif /* ACE_WIN32 */
-
-#include "ace/ace_wchar.inl"
-
-#endif /* ACE_WCHAR_H */
diff --git a/ace/ace_wchar.inl b/ace/ace_wchar.inl
deleted file mode 100644
index 68fd3d2fac2..00000000000
--- a/ace/ace_wchar.inl
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// These are always inlined
-// FUZZ: disable check_for_inline
-
-#if defined (ACE_HAS_WCHAR)
-
-#if !defined (ACE_WIN32)
-# include /**/ <string.h> // Need to see strlen()
-#endif /* ACE_WIN32 */
-
-inline
-ACE_Wide_To_Ascii::~ACE_Wide_To_Ascii (void)
-{
- delete [] this->s_;
-}
-
-inline char *
-ACE_Wide_To_Ascii::char_rep (void)
-{
- return this->s_;
-}
-
-inline char *
-ACE_Wide_To_Ascii::convert (const wchar_t *wstr)
-{
- // Short circuit null pointer case
- if (wstr == 0)
- return 0;
-
-# if defined (ACE_WIN32)
- int len = ::WideCharToMultiByte (CP_OEMCP,
- 0,
- wstr,
- -1,
- 0,
- 0,
- 0,
- 0);
-# elif defined (ACE_LACKS_WCSLEN)
- const wchar_t *wtemp = wstr;
- while (wtemp != 0)
- ++wtemp;
-
- int len = wtemp - wstr + 1;
-# else /* ACE_WIN32 */
- int len = ::wcslen (wstr) + 1;
-# endif /* ACE_WIN32 */
-
- char *str = new char[len];
-
-# if defined (ACE_WIN32)
- ::WideCharToMultiByte (CP_OEMCP, 0, wstr, -1, str, len, 0, 0);
-# elif defined (VXWORKS)
- ::wcstombs (str, wstr, len);
-# else /* ACE_WIN32 */
- for (int i = 0; i < len; i++)
- {
- wchar_t *t = ACE_const_cast (wchar_t *, wstr);
- str[i] = ACE_static_cast (char, *(t + i));
- }
-# endif /* ACE_WIN32 */
- return str;
-}
-
-inline
-ACE_Wide_To_Ascii::ACE_Wide_To_Ascii (const wchar_t *s)
- : s_ (ACE_Wide_To_Ascii::convert (s))
-{
-}
-
-inline
-ACE_Ascii_To_Wide::~ACE_Ascii_To_Wide (void)
-{
- delete [] this->s_;
-}
-
-inline wchar_t *
-ACE_Ascii_To_Wide::wchar_rep (void)
-{
- return this->s_;
-}
-
-inline wchar_t *
-ACE_Ascii_To_Wide::convert (const char *str)
-{
- // Short circuit null pointer case
- if (str == 0)
- return 0;
-
-# if defined (ACE_WIN32)
- int len = ::MultiByteToWideChar (CP_OEMCP, 0, str, -1, 0, 0);
-# else /* ACE_WIN32 */
- int len = strlen (str) + 1;
-# endif /* ACE_WIN32 */
-
- wchar_t *wstr = new wchar_t[len];
-
-# if defined (ACE_WIN32)
- ::MultiByteToWideChar (CP_OEMCP, 0, str, -1, wstr, len);
-# elif defined (VXWORKS)
- ::mbstowcs (wstr, str, len);
-# else /* ACE_WIN32 */
- for (int i = 0; i < len; i++)
- {
- char *t = ACE_const_cast (char *, str);
- wstr[i] = ACE_static_cast (wchar_t, *(t + i));
- }
-# endif /* ACE_WIN32 */
- return wstr;
-}
-
-inline
-ACE_Ascii_To_Wide::ACE_Ascii_To_Wide (const char *s)
-: s_ (ACE_Ascii_To_Wide::convert (s))
-{
-}
-
-#endif /* ACE_HAS_WCHAR */
diff --git a/ace/config-WinCE.h b/ace/config-WinCE.h
deleted file mode 100644
index 0f93b2eaed6..00000000000
--- a/ace/config-WinCE.h
+++ /dev/null
@@ -1,255 +0,0 @@
-// $Id$
-
-// Note: For WinCE build, simply use: #include "ace/config-win32.h"
-// It is same as config.h for Windows NT/2k so that you can
-// share same files and directories for both WinCE and NT/2k
-// builds, unless you add additional definition(s) for each
-// specific build or change the output directory.
-
-#ifndef ACE_CONFIG_WINCE_H
-#define ACE_CONFIG_WINCE_H
-
-#include "ace/pre.h"
-
-#ifndef ACE_CONFIG_WIN32_H
-# error Use config-win32.h in config.h instead of this header
-#endif // ACE_CONFIG_WIN32_H
-
-#if !defined (UNDER_CE)
-# error Define UNDER_CE to version (i.e. 300 = 3.0)
-#endif // UNDER_CE
-
-#if (UNDER_CE < 300)
-# error ACE requires Windows CE 3.0 and later.
-#endif // UNDER_CE
-
-// CE 3 doesn't have Winsock 2, but CE 4 does.
-#if (UNDER_CE < 400)
-# if !defined (ACE_HAS_WINSOCK2)
-# define ACE_HAS_WINSOCK2 0
-# endif
-#endif /* UNDER_CE < 400 */
-
-#if !defined (ACE_HAS_WINCE)
-# define ACE_HAS_WINCE 1
-#endif
-
-// We need these libraries to build:
-#pragma comment(lib,"corelibc.lib")
-#pragma comment(linker, "/nodefaultlib:oldnames.lib")
-
-// Unicode is the OS standard string type for WinCE.
-#ifdef ACE_HAS_UNICODE
-# undef ACE_HAS_UNICODE
-#endif // ACE_HAS_UNICODE
-#define ACE_HAS_UNICODE 1
-
-// Only DLL version is supported on CE.
-//#if defined (ACE_HAS_DLL)
-//# undef ACE_HAS_DLL
-//#endif // ACE_HAS_DLL
-//#define ACE_HAS_DLL 1
-
-// Need to define LD search path explicitly on CE because
-// CE doesn't have environment variables and we can't get
-// the information using getenv.
-#define ACE_DEFAULT_LD_SEARCH_PATH ACE_LIB_TEXT (".\\;\\windows")
-
-#define ACE_LACKS_SYS_TYPES_H
-
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
-
-// CE is not NT.
-#if defined (ACE_HAS_WINNT4)
-# undef ACE_HAS_WINNT4
-#endif // ACE_HAS_WINNT4
-#define ACE_HAS_WINNT4 0
-
-#define ACE_LACKS_ACE_TOKEN
-#define ACE_LACKS_ACE_OTHER
-#define ACE_LACKS_MSG_WFMO
-
-#define ACE_HAS_WCHAR
-
-#if !defined (ACE_USES_WCHAR)
-# define ACE_USES_WCHAR
-#endif // ACE_USES_WCHAR
-
-#define ACE_USES_WINCE_SEMA_SIMULATION
-
-#define ACE_LACKS_IOSTREAM_TOTALLY
-#define ACE_LACKS_ACE_IOSTREAM
-
-#if defined (ACE_HAS_STRICT)
-# undef ACE_HAS_STRICT
-#endif // ACE_HAS_STRICT
-#define ACE_HAS_STRICT 1
-
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER 1
-
-// FILE stuff isn't always defined in CE
-#ifndef _FILE_DEFINED
- typedef void FILE;
-# define _FILE_DEFINED
-#endif // _FILE_DEFINED
-
-// This was defined in previous versions of CE, but not 2.11
-#define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION
-
-#define ACE_MAIN WINAPI WinMain
-
-// SH3 cross-compiler can't handle inline functions correctly
-// (along with other bugs.)
-#if defined (SH3)
-# define ACE_LACKS_INLINE_FUNCTIONS
-#endif // SH3 && _DEBUG
-
-#ifndef ACE_DEFAULT_SERVER_HOST
-# define ACE_DEFAULT_SERVER_HOST L"localhost"
-#endif // ACE_DEFAULT_SERVER_HOST
-
-// @@ Need to remap every function that uses any of these flags to
-// Win32 API. These are for ANSI styled function and are not
-// available on WinCE.
-
-#define _O_RDONLY 0x0000 // open for reading only
-#define _O_WRONLY 0x0001 // open for writing only
-#define _O_RDWR 0x0002 // open for reading and writing
-#define _O_APPEND 0x0008 // writes done at eof
-
-#define _O_CREAT 0x0100 // create and open file
-#define _O_TRUNC 0x0200 // open and truncate
-#define _O_EXCL 0x0400 // open only if file doesn't already exist
-
-// O_TEXT files have <cr><lf> sequences translated to <lf> on read()'s,
-// and <lf> sequences translated to <cr><lf> on write()'s
-#define _O_TEXT 0x4000 // file mode is text (translated)
-#define _O_BINARY 0x8000 // file mode is binary (untranslated)
-
-// macro to translate the C 2.0 name used to force binary mode for files
-//#define _O_RAW _O_BINARY
-
-// Open handle inherit bit
-//#define _O_NOINHERIT 0x0080 // child process doesn't inherit file
-
-// Temporary file bit - file is deleted when last handle is closed
-#define _O_TEMPORARY 0x0040 // temporary file bit
-
-// temporary access hint
-//#define _O_SHORT_LIVED 0x1000 // temporary storage file, try not to flush
-
-// sequential/random access hints
-//#define _O_SEQUENTIAL 0x0020 // file access is primarily sequential
-//#define _O_RANDOM 0x0010 // file access is primarily random
-
-
-// Non-ANSI names
-#define O_RDONLY _O_RDONLY
-#define O_WRONLY _O_WRONLY
-#define O_RDWR _O_RDWR
-#define O_APPEND _O_APPEND
-#define O_CREAT _O_CREAT
-#define O_TRUNC _O_TRUNC
-#define O_EXCL _O_EXCL
-#define O_TEXT _O_TEXT
-#define O_BINARY _O_BINARY
-#define O_TEMPORARY _O_TEMPORARY
-//#define O_RAW _O_BINARY
-//#define O_NOINHERIT _O_NOINHERIT
-//#define O_SEQUENTIAL _O_SEQUENTIAL
-//#define O_RANDOM _O_RANDOM
-
-
-// @@ NSIG value. This is definitely not correct.
-#define NSIG 23
-
-
-// @@ For some reason, WinCE forgot to define this.
-// Need to find out what it is. (Used in MapViewOfFile ().)
-#define FILE_MAP_COPY 0
-
-
-#define ACE_LACKS_STRCASECMP // WinCE doesn't support _stricmp
-#define ACE_LACKS_GETSERVBYNAME
-#define ACE_LACKS_ACCESS
-#define ACE_LACKS_FILELOCKS
-#define ACE_LACKS_EXEC
-#define ACE_LACKS_MKTEMP
-#define ACE_LACKS_STRRCHR
-#define ACE_LACKS_BSEARCH
-#define ACE_LACKS_SOCKET_BUFSIZ
-#define ACE_LACKS_ISATTY
-#define ACE_LACKS_STRERROR
-
-#define ERRMAX 256 // Needed for following define
-#define ACE_LACKS_SYS_NERR // Needed for sys_nerr in Log_Msg.cpp
-
-#define ACE_LACKS_CUSERID
-#define ACE_LACKS_CHDIR
-#define ACE_LACKS_ENV
-#define ACE_LACKS_HOSTNAME
-
-#if defined (_WIN32_WCE_EMULATION)
-// @@ For some reason, qsort isn't defined correctly (_stdcall vs _cdecl)
-// under emulation. So for right now, exclude it.
-# define ACE_LACKS_QSORT
-#endif // _WIN32_WCE_EMULATION
-
-// @@ Followings are used to keep existing programs happy.
-
-#define ostream FILE
-# if !defined (BUFSIZ)
-# define BUFSIZ 1024
-#endif // BUFSIZ
-
-typedef void (__cdecl * __sighandler_t)(int); // keep Signal compilation happy
-typedef long off_t;
-
-//#if (UNDER_CE > 200) // from prior ACE porting effort; left for future reference
-#define EMFILE WSAEMFILE
-#define EINTR WSAEINTR
-#define EACCES ERROR_ACCESS_DENIED
-#define ENOSPC ERROR_HANDLE_DISK_FULL
-#define EEXIST ERROR_FILE_EXISTS
-#define EPIPE ERROR_BROKEN_PIPE
-#define EFAULT WSAEFAULT
-#define ENOENT WSAEINVAL
-#define EINVAL WSAEINVAL
-#define ERANGE WSAEINVAL
-#define EAGAIN WSAEWOULDBLOCK
-#define ENOMEM ERROR_OUTOFMEMORY
-#define ENODEV ERROR_BAD_DEVICE
-#define ACE_LACKS_MALLOC_H // We do have malloc.h, but don't use it.
-//#endif // UNDER_CE
-
-//#if (UNDER_CE < 300) // from prior ACE porting effort; left for future reference
-//#define ACE_LACKS_STRPBRK
-//#define ACE_LACKS_STRSPN
-//#define ACE_LACKS_STRTOD
-//#define ACE_LACKS_STRTOL
-//#define ACE_LACKS_STRTOUL
-//#endif // UNDER_CE < 300
-
-//#if (UNDER_CE >= 211) // from prior ACE porting effort; left for future reference
-#define ACE_HAS_WINCE_BROKEN_ERRNO
-#define _MAX_FNAME 255
-//#endif // UNDER_CE
-
-#define ACE_HAS_STRDUP_EMULATION
-
-// CE doesn't have <sys/types.h> instead <types.h>
-#define ACE_HAS_FLAT_TYPES_H
-
-// @@ This needs to be defined and initialized as a static. (Singleton?)
-#define ACE_DEFAULT_LOG_STREAM 0
-
-// If you don't use MFC, this doesn't get defined
-#if !defined (ACE_HAS_MFC)
- inline void *operator new (unsigned int, void *p) { return p; }
-#endif // ACE_HAS_MFC
-
-#define ACE_ENDTHREADEX(STATUS) ExitThread ((DWORD) STATUS)
-
-#include "ace/post.h"
-
-#endif // ACE_CONFIG_WINCE_H
diff --git a/ace/config-aix-4.1.x.h b/ace/config-aix-4.1.x.h
deleted file mode 100644
index a739c1ae49a..00000000000
--- a/ace/config-aix-4.1.x.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_AIX_VERS
-# define ACE_AIX_VERS 401
-#endif
-
-#include "ace/config-aix-4.x.h"
diff --git a/ace/config-aix-4.2.x.h b/ace/config-aix-4.2.x.h
deleted file mode 100644
index b44c851a437..00000000000
--- a/ace/config-aix-4.2.x.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_AIX_VERS
-# define ACE_AIX_VERS 402
-#endif
-
-#include "ace/config-aix-4.x.h"
diff --git a/ace/config-aix-4.3.x.h b/ace/config-aix-4.3.x.h
deleted file mode 100644
index d6b2824ec35..00000000000
--- a/ace/config-aix-4.3.x.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_AIX_VERS
-# define ACE_AIX_VERS 403
-#endif
-
-#include "ace/config-aix-4.x.h"
diff --git a/ace/config-aix-4.x.h b/ace/config-aix-4.x.h
deleted file mode 100644
index c8ad970e6f7..00000000000
--- a/ace/config-aix-4.x.h
+++ /dev/null
@@ -1,314 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for OS
-// platforms running AIX 4.x using the IBM C++ compiler (xlC),
-// Visual Age C++ or g++.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// Both IBM and g++ compilers set _THREAD_SAFE if compiler is asked to compile
-// threaded code (xlC_r, as opposed to xlC; and g++ -pthread)
-# if defined (ACE_HAS_THREADS)
-# undef ACE_HAS_THREADS
-# endif
-# if defined (_THREAD_SAFE)
-# define ACE_HAS_THREADS 1
-# else
-# define ACE_HAS_THREADS 0
-# endif /* _THREAD_SAFE */
-
-#if defined (__xlC__) || defined (__IBMCPP__)
- // AIX xlC, IBM C/C++, and Visual Age C++ compilers
- //********************************************************************
- //
-
-// Compiler does this with a builtin - it's not in libc.
-# define ACE_HAS_ALLOCA
-
-// Compiler supports the ssize_t typedef.
-# define ACE_HAS_SSIZE_T
-
-// When using the preprocessor, Ignore info msg; invalid #pragma
-# if defined (__IBMCPP__) && (__IBMCPP__ < 400) // IBM C++ 3.6
-# define ACE_CC_PREPROCESSOR_ARGS "-E -qflag=w:w"
-# endif /* (__IBMCPP__) && (__IBMCPP__ < 400) */
-
- // Keep an eye on this as the compiler and standards converge...
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF
-# define ACE_LACKS_PRAGMA_ONCE
-
- // C Set++ 3.1, IBM C/C++ 3.6, and Visual Age C++ 5 batch (__xlC__)
-# if defined (__xlC__)
-# if (__xlC__ < 0x0500)
-# define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-# endif /* __xlC__ < 0x0500 */
-# define ACE_TEMPLATES_REQUIRE_PRAGMA
- // If compiling without thread support, turn off ACE's thread capability.
-# endif
-
- // These are for Visual Age C++ only
-# if defined (__IBMCPP__) && (__IBMCPP__ >= 400)
-# define ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-# define ACE_HAS_TYPENAME_KEYWORD
-# undef WIFEXITED
-# undef WEXITSTATUS
-# if (__IBMCPP__ >= 500) /* Visual Age C++ 5 */
-# if !defined (ACE_HAS_USING_KEYWORD)
-# define ACE_HAS_USING_KEYWORD 1
-# endif /* ACE_HAS_USING_KEYWORD */
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# endif /* __IBMCPP__ >= 500 */
-# endif /* __IBMCPP__ */
-
-#elif defined (__GNUG__)
- // config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
- // this must appear before its #include.
-# define ACE_HAS_STRING_CLASS
-
-# include "ace/config-g++-common.h"
- // Denotes that GNU has cstring.h as standard, to redefine memchr().
-# define ACE_HAS_GNU_CSTRING_H
-# define ACE_HAS_SSIZE_T
-
-# if !defined (ACE_MT_SAFE) || ACE_MT_SAFE != 0
- // ACE_MT_SAFE is #defined below, for all compilers.
-# if !defined (_REENTRANT)
-# define _REENTRANT
-# endif /* _REENTRANT */
-# endif /* !ACE_MT_SAFE */
-
-#else /* ! __xlC__ && ! __GNUG__ */
-# error unsupported compiler in ace/config-aix-4.x.h
-#endif /* ! __xlC__ && ! __GNUG__ */
-
-
-// Compiling for AIX.
-#ifndef AIX
-# define AIX
-#endif /* AIX */
-
-// Pick up all the detectable settings.
-#include "ace/config-posix.h"
-
-// AIX shared libs look strangely like archive libs until you look inside
-// them.
-#if defined (ACE_DLL_SUFFIX)
-# undef ACE_DLL_SUFFIX
-#endif
-#define ACE_DLL_SUFFIX ".a"
-
-// Use BSD 4.4 socket definitions for pre-AIX 4.2. The _BSD setting also
-// controls the data type used for waitpid(), wait(), and wait3().
-#if (ACE_AIX_VERS < 402)
-# define _BSD 44
-# define ACE_HAS_UNION_WAIT
-#endif /* ACE_AIX_VERS < 402 */
-
-// This environment requires this thing, pre-AIX 4.3
-#if (ACE_AIX_VERS < 403)
-# define _BSD_INCLUDES
-#endif /* ACE_AIX_VERS < 403 */
-
-#define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
-
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-
-// ACE_HAS_AIX_BROKEN_SOCKET_HEADER may be required if your OS patches are
-// not up to date. On up-to-date 4.2+ systems, it should not be required.
-// 4.2+ has 4.4 BSD sendmsg/recvmsg
-#if (ACE_AIX_VERS < 402)
-# define ACE_HAS_AIX_BROKEN_SOCKET_HEADER
-#else
-# if (ACE_AIX_VERS == 402)
-# define ACE_HAS_SIZET_SOCKET_LEN
-# else
-# define ACE_HAS_SOCKLEN_T
-# endif
-# define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-#endif /* ACE_AIX_VERS < 402 */
-
-#if (ACE_AIX_VERS >= 403)
-// AIX has AIO, but the functions don't match those of other AIO-enabled
-// platforms. If this is to work, it'll require some significant work,
-// maybe moving the OS-abstraction stuff to an OS_AIO or some such thing.
-//# define ACE_HAS_AIO_CALLS
-#endif /* ACE_AIX_VERS >= 403 */
-
-#define ACE_HAS_AIX_HI_RES_TIMER
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#if (ACE_AIX_VERS < 403)
-# define ACE_HAS_CHARPTR_DL
-#endif /* ACE_AIX_VERS < 403 */
-
-// Prototypes for both signal() and struct sigaction are consistent.
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// OS has readdir and friends.
-#define ACE_HAS_DIRENT
-
-// OS supports the getrusage() system call
-#define ACE_HAS_GETRUSAGE
-
-#define ACE_HAS_GPERF
-
-#define ACE_HAS_H_ERRNO
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_IP_MULTICAST
-
-// Lacks perfect filtering, must bind group address.
-#if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
-# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
-#endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
-
-#define ACE_HAS_MSG
-#if (ACE_AIX_VERS < 402)
-# define ACE_LACKS_MSG_ACCRIGHTS
-# define ACE_LACKS_RLIMIT
-#endif
-
-// Compiler/platform supports poll().
-#define ACE_HAS_POLL
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-#define ACE_HAS_POSIX_TIME
-// ... but needs to include another header for it on 4.2+
-#if (ACE_AIX_VERS >= 402)
-# define ACE_HAS_BROKEN_POSIX_TIME
-#endif /* ACE_AIX_VERS > 402 */
-// ... and needs another typedef
-#define ACE_LACKS_TIMESPEC_T
-#define ACE_HAS_SELECT_H
-
-#define ACE_HAS_REENTRANT_FUNCTIONS
-
-// Compiler/platform defines the sig_atomic_t typedef
-#define ACE_HAS_SIG_ATOMIC_T
-#if (ACE_AIX_VERS >= 402)
-# define ACE_HAS_SIGINFO_T
-# define ACE_LACKS_SIGINFO_H
-#endif /* ACE_AIX_VERS >= 402 */
-#if (ACE_AIX_VERS >= 403)
-// it may exist in earlier revs, but I'm not sure and I don't have a
-// system to validate
-# define ACE_HAS_P_READ_WRITE
-#endif /* ACE_AIX_VERS >= 403 */
-
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIN_LEN
-#define ACE_HAS_STRBUF_T
-
-// Compiler supports stropts.h
-#define ACE_HAS_STREAMS
-// #define ACE_HAS_STREAM_PIPES
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// AIX bzero()
-#define ACE_HAS_STRINGS
-
-#define ACE_HAS_STRUCT_NETDB_DATA
-
-// Dynamic linking is in good shape on newer OS/patch levels. If you have
-// trouble with the dynamic linking parts of ACE, and can't patch your OS
-// up to latest levels, comment this out.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-// This is tightly related to dynamic linking...
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-
-#define ACE_HAS_SYSV_IPC
-#define ACE_HAS_TIMOD_H
-#define ACE_HAS_TIUSER_H
-#define ACE_HAS_TLI
-#define ACE_HAS_BROKEN_T_ERROR
-#define ACE_HAS_TLI_PROTOTYPES
-#define ACE_TLI_TCP_DEVICE "/dev/xti/tcp"
-
-#define ACE_HAS_UALARM
-
-#if (ACE_AIX_VERS >= 402)
-# define ACE_HAS_UCONTEXT_T
-#endif /* ACE_AIX_VERS >= 402 */
-
-#define ACE_HAS_UTIME
-
-// Platform has XPG4 wide character type and functions
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-#define ACE_LACKS_TCP_H
-
-// AIX uses LIBPATH to search for libraries
-#define ACE_LD_SEARCH_PATH "LIBPATH"
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-//**************************************************************
-//
-// Threads related definitions.
-//
-// The threads on AIX are generally POSIX P1003.1c (ACE_HAS_PTHREADS).
-// However, there is also a kernel thread ID (tid_t) that is used in
-// ACE_Log_Msg (printing the thread ID). The tid_t is not the same as
-// pthread_t, and can't derive one from the other - thread_self() gets
-// the tid_t (kernel thread ID) if called from a thread.
-// Thanks very much to Chris Lahey for straightening this out.
-
-#if defined (ACE_HAS_THREADS)
-# if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-# endif
-
-# define ACE_HAS_PTHREADS
-// 4.3 and up has 1003.1c standard; 4.2 has draft 7
-# if (ACE_AIX_VERS >= 403)
-# define ACE_HAS_PTHREADS_STD
-# define ACE_HAS_PTHREADS_UNIX98_EXT
-# define ACE_HAS_PTHREAD_CONTINUE
-# define ACE_HAS_PTHREAD_SUSPEND
-# else
-# define ACE_HAS_PTHREADS_DRAFT7
-# define ACE_LACKS_RWLOCK_T
-# define ACE_LACKS_THREAD_STACK_ADDR
-// If ACE doesn't compile due to the lack of these methods, please
-// send email to ace-users@cs.wustl.edu reporting this.
-// #define ACE_LACKS_CONDATTR_PSHARED
-// #define ACE_LACKS_MUTEXATTR_PSHARED
-# define ACE_LACKS_SETSCHED
-# endif /* ACE_AIX_VERS >= 403 */
-
-# define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-# define ACE_HAS_SIGTHREADMASK
-# define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-# define ACE_LACKS_THREAD_PROCESS_SCOPING
-#else
-# undef ACE_HAS_THREADS
-#endif /* ACE_HAS_THREADS != 0 */
-
-#define ACE_MALLOC_ALIGN 8
-
-// By default, tracing code is not compiled. To compile it in, cause
-// ACE_NTRACE to not be defined, and rebuild ACE.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#if (_XOPEN_SOURCE == 500) && !defined(_UNIX95)
-# define ACE_HAS_3_PARAM_WCSTOK
-#endif /* _XOPEN_SOURCE == 500 && !_UNIX95 */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-aix5.1.h b/ace/config-aix5.1.h
deleted file mode 100644
index 8103f64d902..00000000000
--- a/ace/config-aix5.1.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// $Id$
-//
-// Config file for AIX 5.1
-
-// This define is needed for building with Visual Age C++ 5 in incremental
-// mode. In the batch mode build, platform_aix_ibm.GNU sets it. The incremental
-// mode compiler won't be supported after ACE 5.3, so this will also go away
-// in that timeframe, so don't worry about future AIX versions.
-#if !defined (ACE_AIX_VERS)
-# define ACE_AIX_VERS 501
-#endif
-
-#include "ace/config-aix-4.x.h"
-
-// AIX 5.1 has AIO, but it doesn't have the same API as other POSIX
-// systems, and the semantics of operations are a bit different. Will take
-// some real work to get this going.
-//#define ACE_HAS_AIO_CALLS
-
-// I think this is correct, but needs to be verified... -Steve Huston
-#define ACE_HAS_SIGTIMEDWAIT
diff --git a/ace/config-all.h b/ace/config-all.h
deleted file mode 100644
index 3026090db47..00000000000
--- a/ace/config-all.h
+++ /dev/null
@@ -1,625 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file config-all.h
- *
- * $Id$
- *
- * @author (Originally in OS.h)Doug Schmidt <schmidt@cs.wustl.edu>
- * @author Jesper S. M|ller<stophph@diku.dk>
- * @author and a cast of thousands...
- */
-//==========================================================================
-
-#ifndef ACE_CONFIG_ALL_H
-#define ACE_CONFIG_ALL_H
-#include "ace/pre.h"
-
-#include "ace/config.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// =========================================================================
-// Perfect Multicast filting refers to RFC 3376, where a socket is only
-// delivered dgrams for groups joined even if it didn't bind the group
-// address. We turn this option off by default, although most OS's
-// except for Windows and Solaris probably lack perfect filtering.
-// =========================================================================
-
-# if !defined (ACE_LACKS_PERFECT_MULTICAST_FILTERING)
-# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 0
-# endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
-
-// =========================================================================
-// Enable/Disable Features By Default
-// =========================================================================
-
-# if !defined (ACE_HAS_POSITION_INDEPENDENT_POINTERS)
-# define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
-# endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS */
-
-// =========================================================================
-// RCSID Macros
-// =========================================================================
-
-// By default, DO include RCS Id strings in object code.
-#if ! defined (ACE_USE_RCSID)
-# define ACE_USE_RCSID 1
-#endif /* #if ! defined (ACE_USE_RCSID) */
-
-#if (defined (ACE_USE_RCSID) && (ACE_USE_RCSID != 0))
-# if ! defined (ACE_RCSID)
-
- // This hack has the following purposes:
- // 1. To define the RCS id string variable as a static char*, so
- // that there won't be any duplicate extern symbols at link
- // time.
- // 2. To have a RCS id string variable with a unique name for each
- // file.
- // 3. To avoid warnings of the type "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 strings are not wanted.
-# 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 macros
-//
-// These macros handle all the inlining of code via the .i or .inl files
-// =========================================================================
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS) && !defined (ACE_NO_INLINE)
-# define ACE_NO_INLINE
-#endif /* defined (ACE_LACKS_INLINE_FUNCTIONS) && !defined (ACE_NO_INLINE) */
-
-// ACE inlining has been explicitly disabled. Implement
-// internally within ACE by undefining __ACE_INLINE__.
-#if defined (ACE_NO_INLINE)
-# undef __ACE_INLINE__
-#endif /* ! ACE_NO_INLINE */
-
-#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 */
-
-// Some ACE classes always use inline functions to maintain high
-// performance, but some platforms have buggy inline function support.
-// In this case, we don't use inline with them.
-# if defined (ACE_LACKS_INLINE_FUNCTIONS)
-# if defined (ASYS_INLINE)
-# undef ASYS_INLINE
-# endif /* ASYS_INLINE */
-# define ASYS_INLINE
-# if defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_HAS_INLINED_OSCALLS
-# endif /* ACE_HAS_INLINED_OSCALLS */
-# else
-# define ASYS_INLINE inline
-# endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-// =========================================================================
-// EXPLICIT macro
-// =========================================================================
-
-# if defined (ACE_HAS_EXPLICIT_KEYWORD)
-# define ACE_EXPLICIT explicit
-# else /* ! ACE_HAS_EXPLICIT_KEYWORD */
-# define ACE_EXPLICIT
-# endif /* ! ACE_HAS_EXPLICIT_KEYWORD */
-
-// =========================================================================
-// MUTABLE macro
-// =========================================================================
-
-# if defined (ACE_HAS_MUTABLE_KEYWORD)
-# define ACE_MUTABLE mutable
-# define ACE_CONST_WHEN_MUTABLE const // Addition #1
-# else /* ! ACE_HAS_MUTABLE_KEYWORD */
-# define ACE_MUTABLE
-# define ACE_CONST_WHEN_MUTABLE // Addition #2
-# endif /* ! ACE_HAS_MUTABLE_KEYWORD */
-
-// ============================================================================
-// EXPORT macros
-//
-// Since Win32 DLL's do not export all symbols by default, they must be
-// explicitly exported (which is done by *_Export macros).
-// ============================================================================
-
-// Win32 should have already defined the macros in config-win32-common.h
-#if !defined (ACE_HAS_CUSTOM_EXPORT_MACROS)
-# define ACE_Proper_Export_Flag
-# define ACE_Proper_Import_Flag
-# define ACE_EXPORT_SINGLETON_DECLARATION(T)
-# define ACE_IMPORT_SINGLETON_DECLARATION(T)
-# define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-#endif /* ACE_HAS_CUSTOM_EXPORT_MACROS */
-
-// This is a whim of mine -- that instead of annotating a class with
-// ACE_Export in its declaration, we make the declaration near the TOP
-// of the file with ACE_DECLARE_EXPORT.
-// TS = type specifier (e.g., class, struct, int, etc.)
-// ID = identifier
-// So, how do you use it? Most of the time, just use ...
-// ACE_DECLARE_EXPORT(class, someobject);
-// If there are global functions to be exported, then use ...
-// ACE_DECLARE_EXPORT(void, globalfunction) (int, ...);
-// Someday, when template libraries are supported, we made need ...
-// ACE_DECLARE_EXPORT(template class, sometemplate) <class TYPE, class LOCK>;
-# define ACE_DECLARE_EXPORT(TS,ID) TS ACE_Export ID
-
-// ============================================================================
-// Cast macros
-//
-// These macros are used to choose between the old cast style and the new
-// *_cast<> operators
-// ============================================================================
-
-# if defined (ACE_HAS_ANSI_CASTS)
-
-# define ACE_sap_any_cast(TYPE) reinterpret_cast<TYPE> (const_cast<ACE_Addr &> (ACE_Addr::sap_any))
-
-# define ACE_static_cast(TYPE, EXPR) static_cast<TYPE> (EXPR)
-# define ACE_static_cast_1_ptr(TYPE, T1, EXPR) static_cast<TYPE<T1> *> (EXPR)
-# define ACE_static_cast_2_ptr(TYPE, T1, T2, EXPR) static_cast<TYPE<T1, T2> *> (EXPR)
-# define ACE_static_cast_3_ptr(TYPE, T1, T2, T3, EXPR) static_cast<TYPE<T1, T2, T3> *> (EXPR)
-# define ACE_static_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) static_cast<TYPE<T1, T2, T3, T4> *> (EXPR)
-# define ACE_static_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) static_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR)
-# define ACE_static_cast_1_ref(TYPE, T1, EXPR) static_cast<TYPE<T1> &> (EXPR)
-# define ACE_static_cast_2_ref(TYPE, T1, T2, EXPR) static_cast<TYPE<T1, T2> &> (EXPR)
-# define ACE_static_cast_3_ref(TYPE, T1, T2, T3, EXPR) static_cast<TYPE<T1, T2, T3> &> (EXPR)
-# define ACE_static_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) static_cast<TYPE<T1, T2, T3, T4> &> (EXPR)
-# define ACE_static_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) static_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR)
-
-# define ACE_const_cast(TYPE, EXPR) const_cast<TYPE> (EXPR)
-# define ACE_const_cast_1_ptr(TYPE, T1, EXPR) const_cast<TYPE<T1> *> (EXPR)
-# define ACE_const_cast_2_ptr(TYPE, T1, T2, EXPR) const_cast<TYPE<T1, T2> *> (EXPR)
-# define ACE_const_cast_3_ptr(TYPE, T1, T2, T3, EXPR) const_cast<TYPE<T1, T2, T3> *> (EXPR)
-# define ACE_const_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) const_cast<TYPE<T1, T2, T3, T4> *> (EXPR)
-# define ACE_const_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) const_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR)
-# define ACE_const_cast_1_ref(TYPE, T1, EXPR) const_cast<TYPE<T1> &> (EXPR)
-# define ACE_const_cast_2_ref(TYPE, T1, T2, EXPR) const_cast<TYPE<T1, T2> &> (EXPR)
-# define ACE_const_cast_3_ref(TYPE, T1, T2, T3, EXPR) const_cast<TYPE<T1, T2, T3> &> (EXPR)
-# define ACE_const_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) const_cast<TYPE<T1, T2, T3, T4> &> (EXPR)
-# define ACE_const_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) const_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR)
-
-# define ACE_reinterpret_cast(TYPE, EXPR) reinterpret_cast<TYPE> (EXPR)
-# define ACE_reinterpret_cast_1_ptr(TYPE, T1, EXPR) reinterpret_cast<TYPE<T1> *> (EXPR)
-# define ACE_reinterpret_cast_2_ptr(TYPE, T1, T2, EXPR) reinterpret_cast<TYPE<T1, T2> *> (EXPR)
-# define ACE_reinterpret_cast_3_ptr(TYPE, T1, T2, T3, EXPR) reinterpret_cast<TYPE<T1, T2, T3> *> (EXPR)
-# define ACE_reinterpret_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) reinterpret_cast<TYPE<T1, T2, T3, T4> *> (EXPR)
-# define ACE_reinterpret_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) reinterpret_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR)
-# define ACE_reinterpret_cast_1_ref(TYPE, T1, EXPR) reinterpret_cast<TYPE<T1> &> (EXPR)
-# define ACE_reinterpret_cast_2_ref(TYPE, T1, T2, EXPR) reinterpret_cast<TYPE<T1, T2> &> (EXPR)
-# define ACE_reinterpret_cast_3_ref(TYPE, T1, T2, T3, EXPR) reinterpret_cast<TYPE<T1, T2, T3> &> (EXPR)
-# define ACE_reinterpret_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) reinterpret_cast<TYPE<T1, T2, T3, T4> &> (EXPR)
-# define ACE_reinterpret_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) reinterpret_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR)
-
-# if defined (ACE_LACKS_RTTI)
-# define ACE_dynamic_cast(TYPE, EXPR) static_cast<TYPE> (EXPR)
-# define ACE_dynamic_cast_1_ptr(TYPE, T1, EXPR) static_cast<TYPE<T1> *> (EXPR)
-# define ACE_dynamic_cast_2_ptr(TYPE, T1, T2, EXPR) static_cast<TYPE<T1, T2> *> (EXPR)
-# define ACE_dynamic_cast_3_ptr(TYPE, T1, T2, T3, EXPR) static_cast<TYPE<T1, T2, T3> *> (EXPR)
-# define ACE_dynamic_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) static_cast<TYPE<T1, T2, T3, T4> *> (EXPR)
-# define ACE_dynamic_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) static_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR)
-# define ACE_dynamic_cast_1_ref(TYPE, T1, EXPR) static_cast<TYPE<T1> &> (EXPR)
-# define ACE_dynamic_cast_2_ref(TYPE, T1, T2, EXPR) static_cast<TYPE<T1, T2> &> (EXPR)
-# define ACE_dynamic_cast_3_ref(TYPE, T1, T2, T3, EXPR) static_cast<TYPE<T1, T2, T3> &> (EXPR)
-# define ACE_dynamic_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) static_cast<TYPE<T1, T2, T3, T4> &> (EXPR)
-# define ACE_dynamic_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) static_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR)
-# else /* ! ACE_LACKS_RTTI */
-# define ACE_dynamic_cast(TYPE, EXPR) dynamic_cast<TYPE> (EXPR)
-# define ACE_dynamic_cast_1_ptr(TYPE, T1, EXPR) dynamic_cast<TYPE<T1> *> (EXPR)
-# define ACE_dynamic_cast_2_ptr(TYPE, T1, T2, EXPR) dynamic_cast<TYPE<T1, T2> *> (EXPR)
-# define ACE_dynamic_cast_3_ptr(TYPE, T1, T2, T3, EXPR) dynamic_cast<TYPE<T1, T2, T3> *> (EXPR)
-# define ACE_dynamic_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) dynamic_cast<TYPE<T1, T2, T3, T4> *> (EXPR)
-# define ACE_dynamic_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) dynamic_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR)
-# define ACE_dynamic_cast_1_ref(TYPE, T1, EXPR) dynamic_cast<TYPE<T1> &> (EXPR)
-# define ACE_dynamic_cast_2_ref(TYPE, T1, T2, EXPR) dynamic_cast<TYPE<T1, T2> &> (EXPR)
-# define ACE_dynamic_cast_3_ref(TYPE, T1, T2, T3, EXPR) dynamic_cast<TYPE<T1, T2, T3> &> (EXPR)
-# define ACE_dynamic_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) dynamic_cast<TYPE<T1, T2, T3, T4> &> (EXPR)
-# define ACE_dynamic_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) dynamic_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR)
-# endif /* ! ACE_LACKS_RTTI */
-
-# else
-
-# define ACE_sap_any_cast(TYPE) ((TYPE) (ACE_Addr::sap_any))
-
-# define ACE_static_cast(TYPE, EXPR) ((TYPE) (EXPR))
-# define ACE_static_cast_1_ptr(TYPE, T1, EXPR) ((TYPE<T1> *) (EXPR))
-# define ACE_static_cast_2_ptr(TYPE, T1, T2, EXPR) ((TYPE<T1, T2> *) (EXPR))
-# define ACE_static_cast_3_ptr(TYPE, T1, T2, T3, EXPR) ((TYPE<T1, T2, T3> *) (EXPR))
-# define ACE_static_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) ((TYPE<T1, T2, T3, T4> *) (EXPR))
-# define ACE_static_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) ((TYPE<T1, T2, T3, T4, T5> *) (EXPR))
-# define ACE_static_cast_1_ref(TYPE, T1, EXPR) ((TYPE<T1> &) (EXPR))
-# define ACE_static_cast_2_ref(TYPE, T1, T2, EXPR) ((TYPE<T1, T2> &) (EXPR))
-# define ACE_static_cast_3_ref(TYPE, T1, T2, T3, EXPR) ((TYPE<T1, T2, T3> &) (EXPR))
-# define ACE_static_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) ((TYPE<T1, T2, T3, T4> &) (EXPR))
-# define ACE_static_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) ((TYPE<T1, T2, T3, T4, T5> &) (EXPR))
-
-# define ACE_const_cast(TYPE, EXPR) ((TYPE) (EXPR))
-# define ACE_const_cast_1_ptr(TYPE, T1, EXPR) ((TYPE<T1> *) (EXPR))
-# define ACE_const_cast_2_ptr(TYPE, T1, T2, EXPR) ((TYPE<T1, T2> *) (EXPR))
-# define ACE_const_cast_3_ptr(TYPE, T1, T2, T3, EXPR) ((TYPE<T1, T2, T3> *) (EXPR))
-# define ACE_const_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) ((TYPE<T1, T2, T3, T4> *) (EXPR))
-# define ACE_const_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) ((TYPE<T1, T2, T3, T4, T5> *) (EXPR))
-# define ACE_const_cast_1_ref(TYPE, T1, EXPR) ((TYPE<T1> &) (EXPR))
-# define ACE_const_cast_2_ref(TYPE, T1, T2, EXPR) ((TYPE<T1, T2> &) (EXPR))
-# define ACE_const_cast_3_ref(TYPE, T1, T2, T3, EXPR) ((TYPE<T1, T2, T3> &) (EXPR))
-# define ACE_const_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) ((TYPE<T1, T2, T3, T4> &) (EXPR))
-# define ACE_const_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) ((TYPE<T1, T2, T3, T4, T5> &) (EXPR))
-
-# define ACE_reinterpret_cast(TYPE, EXPR) ((TYPE) (EXPR))
-# define ACE_reinterpret_cast_1_ptr(TYPE, T1, EXPR) ((TYPE<T1> *) (EXPR))
-# define ACE_reinterpret_cast_2_ptr(TYPE, T1, T2, EXPR) ((TYPE<T1, T2> *) (EXPR))
-# define ACE_reinterpret_cast_3_ptr(TYPE, T1, T2, T3, EXPR) ((TYPE<T1, T2, T3> *) (EXPR))
-# define ACE_reinterpret_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) ((TYPE<T1, T2, T3, T4> *) (EXPR))
-# define ACE_reinterpret_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) ((TYPE<T1, T2, T3, T4, T5> *) (EXPR))
-# define ACE_reinterpret_cast_1_ref(TYPE, T1, EXPR) ((TYPE<T1> &) (EXPR))
-# define ACE_reinterpret_cast_2_ref(TYPE, T1, T2, EXPR) ((TYPE<T1, T2> &) (EXPR))
-# define ACE_reinterpret_cast_3_ref(TYPE, T1, T2, T3, EXPR) ((TYPE<T1, T2, T3> &) (EXPR))
-# define ACE_reinterpret_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) ((TYPE<T1, T2, T3, T4> &) (EXPR))
-# define ACE_reinterpret_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) ((TYPE<T1, T2, T3, T4, T5> &) (EXPR))
-
-# define ACE_dynamic_cast(TYPE, EXPR) ((TYPE) (EXPR))
-# define ACE_dynamic_cast_1_ptr(TYPE, T1, EXPR) ((TYPE<T1> *) (EXPR))
-# define ACE_dynamic_cast_2_ptr(TYPE, T1, T2, EXPR) ((TYPE<T1, T2> *) (EXPR))
-# define ACE_dynamic_cast_3_ptr(TYPE, T1, T2, T3, EXPR) ((TYPE<T1, T2, T3> *) (EXPR))
-# define ACE_dynamic_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) ((TYPE<T1, T2, T3, T4> *) (EXPR))
-# define ACE_dynamic_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) ((TYPE<T1, T2, T3, T4, T5> *) (EXPR))
-# define ACE_dynamic_cast_1_ref(TYPE, T1, EXPR) ((TYPE<T1> &) (EXPR))
-# define ACE_dynamic_cast_2_ref(TYPE, T1, T2, EXPR) ((TYPE<T1, T2> &) (EXPR))
-# define ACE_dynamic_cast_3_ref(TYPE, T1, T2, T3, EXPR) ((TYPE<T1, T2, T3> &) (EXPR))
-# define ACE_dynamic_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) ((TYPE<T1, T2, T3, T4> &) (EXPR))
-# define ACE_dynamic_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) ((TYPE<T1, T2, T3, T4, T5> &) (EXPR))
-# endif /* ACE_HAS_ANSI_CASTS */
-
-# if !defined (ACE_CAST_CONST)
- // Sun CC 4.2, for example, requires const in reinterpret casts of
- // data members in const member functions. But, other compilers
- // complain about the useless const. This keeps everyone happy.
-# if defined (__SUNPRO_CC)
-# define ACE_CAST_CONST const
-# else /* ! __SUNPRO_CC */
-# define ACE_CAST_CONST
-# endif /* ! __SUNPRO_CC */
-# endif /* ! ACE_CAST_CONST */
-
-// ============================================================================
-// UNICODE macros (to be added later)
-// ============================================================================
-
-// Get the unicode (i.e. ACE_TCHAR) defines
-# include "ace/ace_wchar.h"
-
-
-// ============================================================================
-// Compiler Silencing macros
-//
-// Some compilers complain about parameters that are not used. This macro
-// should keep them quiet.
-// ============================================================================
-
-#if defined (ghs) || defined (__GNUC__) || defined (__hpux) || defined (__sgi) || defined (__DECCXX) || defined (__KCC) || defined (__rational__) || defined (__USLC__) || defined (ACE_RM544)
-// Some compilers complain about "statement with no effect" with (a).
-// This eliminates the warnings, and no code is generated for the null
-// conditional statement. NOTE: that may only be true if -O is enabled,
-// such as with GreenHills (ghs) 1.8.8.
-# define ACE_UNUSED_ARG(a) do {/* null */} while (&a == 0)
-#else /* ghs || __GNUC__ || ..... */
-# define ACE_UNUSED_ARG(a) (a)
-#endif /* ghs || __GNUC__ || ..... */
-
-#if defined (__sgi) || defined (ghs) || defined (__DECCXX) || defined(__BORLANDC__) || defined (__KCC) || defined (ACE_RM544) || defined (__USLC__)
-# define ACE_NOTREACHED(a)
-#else /* __sgi || ghs || ..... */
-# define ACE_NOTREACHED(a) a
-#endif /* __sgi || ghs || ..... */
-
-// ============================================================================
-// ACE_ALLOC_HOOK* macros
-//
-// Macros to declare and define class-specific allocation operators.
-// ============================================================================
-
-# if defined (ACE_HAS_ALLOC_HOOKS)
-# define ACE_ALLOC_HOOK_DECLARE \
- void *operator new (size_t bytes); \
- void operator delete (void *ptr);
-
- // Note that these are just place holders for now. Some day they
- // may be be replaced by <ACE_Malloc>.
-# define ACE_ALLOC_HOOK_DEFINE(CLASS) \
- void *CLASS::operator new (size_t bytes) { return ::new char[bytes]; } \
- void CLASS::operator delete (void *ptr) { delete [] ((char *) ptr); }
-# else
-# define ACE_ALLOC_HOOK_DECLARE struct __Ace {} /* Just need a dummy... */
-# define ACE_ALLOC_HOOK_DEFINE(CLASS)
-# endif /* ACE_HAS_ALLOC_HOOKS */
-
-// ============================================================================
-// ACE_OSCALL_* macros
-//
-// The following two macros ensure that system calls are properly
-// restarted (if necessary) when interrupts occur.
-// ============================================================================
-
-#if defined (ACE_HAS_SIGNAL_SAFE_OS_CALLS)
-# define ACE_OSCALL(OP,TYPE,FAILVALUE,RESULT) \
- do \
- RESULT = (TYPE) OP; \
- while (RESULT == FAILVALUE && errno == EINTR)
-# define ACE_OSCALL_RETURN(OP,TYPE,FAILVALUE) \
- do { \
- TYPE ace_result_; \
- do \
- ace_result_ = (TYPE) OP; \
- while (ace_result_ == FAILVALUE && errno == EINTR); \
- return ace_result_; \
- } while (0)
-# elif defined (ACE_WIN32)
-# define ACE_OSCALL_RETURN(X,TYPE,FAILVALUE) \
- do \
- return (TYPE) X; \
- while (0)
-# define ACE_OSCALL(X,TYPE,FAILVALUE,RESULT) \
- do \
- RESULT = (TYPE) X; \
- while (0)
-# if defined (__BORLANDC__) && (__BORLANDC__ <= 0x550)
-# define ACE_WIN32CALL_RETURN(X,TYPE,FAILVALUE) \
- do { \
- TYPE ace_result_; \
- TYPE ace_local_result_ = (TYPE) X; \
- ace_result_ = ace_local_result_; \
- if (ace_result_ == FAILVALUE) \
- ACE_OS::set_errno_to_last_error (); \
- return ace_result_; \
- } while (0)
-# else
-# define ACE_WIN32CALL_RETURN(X,TYPE,FAILVALUE) \
- do { \
- TYPE ace_result_; \
- ace_result_ = (TYPE) X; \
- if (ace_result_ == FAILVALUE) \
- ACE_OS::set_errno_to_last_error (); \
- return ace_result_; \
- } while (0)
-# endif /* defined (__BORLANDC__) && (__BORLANDC__ <= 0x550) */
-# define ACE_WIN32CALL(X,TYPE,FAILVALUE,RESULT) \
- do { \
- RESULT = (TYPE) X; \
- if (RESULT == FAILVALUE) \
- ACE_OS::set_errno_to_last_error (); \
- } while (0)
-#else /* ACE_HAS_SIGNAL_SAFE_OS_CALLS */
-# define ACE_OSCALL_RETURN(OP,TYPE,FAILVALUE) do { TYPE ace_result_ = FAILVALUE; ace_result_ = ace_result_; return OP; } while (0)
-# define ACE_OSCALL(OP,TYPE,FAILVALUE,RESULT) do { RESULT = (TYPE) OP; } while (0)
-#endif /* ACE_HAS_SIGNAL_SAFE_OS_CALLS */
-
-// ============================================================================
-// at_exit declarations
-// ============================================================================
-
-// Marker for cleanup, used by ACE_Exit_Info.
-extern int ace_exit_hook_marker;
-
-// For use by <ACE_OS::exit>.
-extern "C"
-{
- typedef void (*ACE_EXIT_HOOK) (void);
-}
-
-// ============================================================================
-// log_msg declarations
-// ============================================================================
-
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
-typedef int (*ACE_SEH_EXCEPT_HANDLER)(void *);
-// Prototype of win32 structured exception handler functions.
-// They are used to get the exception handling expression or
-// as exception handlers.
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-
-class ACE_OS_Thread_Descriptor;
-class ACE_OS_Log_Msg_Attributes;
-typedef void (*ACE_INIT_LOG_MSG_HOOK) (ACE_OS_Log_Msg_Attributes &attr
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
- , ACE_SEH_EXCEPT_HANDLER selector
- , ACE_SEH_EXCEPT_HANDLER handler
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
- );
-typedef void (*ACE_INHERIT_LOG_MSG_HOOK) (ACE_OS_Thread_Descriptor*,
- ACE_OS_Log_Msg_Attributes &);
-
-typedef void (*ACE_CLOSE_LOG_MSG_HOOK) (void);
-
-typedef void (*ACE_SYNC_LOG_MSG_HOOK) (const ACE_TCHAR *prog_name);
-
-typedef ACE_OS_Thread_Descriptor *(*ACE_THR_DESC_LOG_MSG_HOOK) (void);
-
-// ============================================================================
-// Fundamental types
-// ============================================================================
-
-#if defined (ACE_WIN32)
-
-typedef HANDLE ACE_HANDLE;
-typedef SOCKET ACE_SOCKET;
-# define ACE_INVALID_HANDLE INVALID_HANDLE_VALUE
-
-#else /* ! ACE_WIN32 */
-
-typedef int ACE_HANDLE;
-typedef ACE_HANDLE ACE_SOCKET;
-# define ACE_INVALID_HANDLE -1
-
-#endif /* ACE_WIN32 */
-
-// Define the type that's returned from the platform's native thread
-// functions. ACE_THR_FUNC_RETURN is the type defined as the thread
-// function's return type, except when the thread function doesn't return
-// anything (pSoS). The ACE_THR_FUNC_NO_RETURN_VAL macro is used to
-// indicate that the actual thread function doesn't return anything. The
-// rest of ACE uses a real type so there's no a ton of conditional code
-// everywhere to deal with the possibility of no return type.
-# if defined (VXWORKS)
-//typedef FUNCPTR ACE_THR_FUNC; // where typedef int (*FUNCPTR) (...)
-typedef int ACE_THR_FUNC_RETURN;
-# elif defined (ACE_PSOS)
-typedef int ACE_THR_FUNC_RETURN;
-// pSOS task functions don't really return anything... this just makes it
-// easier to deal with declaring variables internally in ACE.
-# elif defined (ACE_WIN32)
-typedef DWORD ACE_THR_FUNC_RETURN;
-# else
-typedef void* ACE_THR_FUNC_RETURN;
-# endif /* VXWORKS */
-typedef ACE_THR_FUNC_RETURN (*ACE_THR_FUNC)(void *);
-
-extern "C" {
-typedef void (*ACE_THR_C_DEST)(void *);
-}
-typedef void (*ACE_THR_DEST)(void *);
-
-# if defined (VXWORKS)
-# if defined (ghs)
- // GreenHills 1.8.8 needs the stdarg.h #include before the #include of
- // vxWorks.h.
- // Also, be sure that these #includes come _after_ the key_t typedef, and
- // before the #include of time.h.
-# include /**/ <stdarg.h>
-# endif /* ghs */
-
-# include /**/ <vxWorks.h>
-# endif /* VXWORKS */
-
-// Now some platforms have special requirements...
-# if defined (VXWORKS)
-typedef FUNCPTR ACE_THR_FUNC_INTERNAL; // where typedef int (*FUNCPTR) (...)
-# elif defined (ACE_PSOS)
-typedef void (*ACE_THR_FUNC_INTERNAL)(void *);
-# else
-typedef ACE_THR_FUNC ACE_THR_FUNC_INTERNAL;
-# endif /* VXWORKS */
-
-extern "C"
-{
-# if defined (VXWORKS)
-typedef FUNCPTR ACE_THR_C_FUNC; // where typedef int (*FUNCPTR) (...)
-# elif defined (ACE_PSOS)
-// needed to handle task entry point type inconsistencies in pSOS+
-typedef void (*PSOS_TASK_ENTRY_POINT)();
-typedef void (*ACE_THR_C_FUNC)(void *);
-# else
-typedef ACE_THR_FUNC_RETURN (*ACE_THR_C_FUNC)(void *);
-# endif /* VXWORKS */
-}
-
-// ============================================================================
-// Macros for controlling the lifetimes of dlls loaded by ACE_DLL--including
-// all dlls loaded via the ACE Service Config framework.
-//
-// Please don't change these values or add new ones wantonly, since we use
-// the ACE_BIT_ENABLED, etc..., macros to test them.
-// ============================================================================
-
-// Per-process policy that unloads dlls eagerly.
-#define ACE_DLL_UNLOAD_POLICY_PER_PROCESS 0
-// Apply policy on a per-dll basis. If the dll doesn't use one of the macros
-// below, the current per-process policy will be used.
-#define ACE_DLL_UNLOAD_POLICY_PER_DLL 1
-// Don't unload dll when refcount reaches zero, i.e., wait for either an
-// explicit unload request or program exit.
-#define ACE_DLL_UNLOAD_POLICY_LAZY 2
-// Default policy allows dlls to control their own destinies, but will
-// unload those that don't make a choice eagerly.
-#define ACE_DLL_UNLOAD_POLICY_DEFAULT ACE_DLL_UNLOAD_POLICY_PER_DLL
-
-// Add this macro you one of your cpp file in your dll. X should
-// be either ACE_DLL_UNLOAD_POLICY_DEFAULT or ACE_DLL_UNLOAD_POLICY_LAZY.
-#define ACE_DLL_UNLOAD_POLICY(CLS,X) \
-extern "C" u_long CLS##_Export _get_dll_unload_policy (void) \
- { return X;}
-
-// ============================================================================
-// ACE_USES_CLASSIC_SVC_CONF macro
-// ============================================================================
-
-// For now, default is to use the classic svc.conf format.
-#if !defined (ACE_USES_CLASSIC_SVC_CONF)
-# if defined (ACE_HAS_CLASSIC_SVC_CONF) && defined (ACE_HAS_XML_SVC_CONF)
-# error You can only use either CLASSIC or XML svc.conf, not both.
-# endif
-// Change the ACE_HAS_XML_SVC_CONF to ACE_HAS_CLASSIC_SVC_CONF when
-// we switch ACE to use XML svc.conf as default format.
-# if defined (ACE_HAS_XML_SVC_CONF)
-# define ACE_USES_CLASSIC_SVC_CONF 0
-# else
-# define ACE_USES_CLASSIC_SVC_CONF 1
-# endif /* ACE_HAS_XML_SVC_CONF */
-#endif /* ACE_USES_CLASSIC_SVC_CONF */
-
-// ============================================================================
-// Default svc.conf file extension.
-// ============================================================================
-#if defined (ACE_USES_CLASSIC_SVC_CONF) && (ACE_USES_CLASSIC_SVC_CONF == 1)
-# define ACE_DEFAULT_SVC_CONF_EXT ".conf"
-#else
-# define ACE_DEFAULT_SVC_CONF_EXT ".conf.xml"
-#endif /* ACE_USES_CLASSIC_SVC_CONF && ACE_USES_CLASSIC_SVC_CONF == 1 */
-
-// ============================================================================
-// Miscellaneous macros
-// ============================================================================
-
-// This is used to indicate that a platform doesn't support a
-// particular feature.
-#if defined ACE_HAS_VERBOSE_NOTSUP
- // Print a console message with the file and line number of the
- // unsupported function.
-# if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY != 0)
-# include /**/ <cstdio>
-# else
-# include /**/ <stdarg.h> // LynxOS requires this before stdio.h
-# include /**/ <stdio.h>
-# endif
-# define ACE_NOTSUP_RETURN(FAILVALUE) do { errno = ENOTSUP; fprintf (stderr, ACE_LIB_TEXT ("ACE_NOTSUP: %s, line %d\n"), __FILE__, __LINE__); return FAILVALUE; } while (0)
-# define ACE_NOTSUP do { errno = ENOTSUP; fprintf (stderr, ACE_LIB_TEXT ("ACE_NOTSUP: %s, line %d\n"), __FILE__, __LINE__); return; } while (0)
-#else /* ! ACE_HAS_VERBOSE_NOTSUP */
-# define ACE_NOTSUP_RETURN(FAILVALUE) do { errno = ENOTSUP ; return FAILVALUE; } while (0)
-# define ACE_NOTSUP do { errno = ENOTSUP; return; } while (0)
-#endif /* ! ACE_HAS_VERBOSE_NOTSUP */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_ALL_H */
diff --git a/ace/config-borland-common.h b/ace/config-borland-common.h
deleted file mode 100644
index db0fe42d605..00000000000
--- a/ace/config-borland-common.h
+++ /dev/null
@@ -1,85 +0,0 @@
-// -*- C++ -*-
-//$Id$
-
-// The following configuration file contains defines for Borland compilers.
-
-#ifndef ACE_CONFIG_BORLAND_COMMON_H
-#define ACE_CONFIG_BORLAND_COMMON_H
-#include "ace/pre.h"
-
-#define ACE_HAS_CUSTOM_EXPORT_MACROS
-#define ACE_Proper_Export_Flag __declspec (dllexport)
-#define ACE_Proper_Import_Flag __declspec (dllimport)
-#define ACE_EXPORT_SINGLETON_DECLARATION(T) template class __declspec (dllexport) T
-#define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class __declspec (dllexport) SINGLETON_TYPE<CLASS, LOCK>;
-#define ACE_IMPORT_SINGLETON_DECLARATION(T) template class __declspec (dllimport) T
-#define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class __declspec (dllimport) SINGLETON_TYPE <CLASS, LOCK>;
-
-# if (__BORLANDC__ == 0x540)
-// The linker in C++Builder 4 has trouble with the large number of DLL
-// function exports created when you compile without inline functions.
-// Therefore we will always use inline functions with this version of
-// the compiler.
-# if defined (__ACE_INLINE__)
-# undef __ACE_INLINE__
-# endif /* __ACE_INLINE__ */
-# define __ACE_INLINE__ 1
-# else /* __BORLANDC__ == 0x540 */
-// In later versions of C++Builder we will prefer inline functions by
-// default. The debug configuration of ACE is built with functions
-// out-of-line, so when linking your application against a debug ACE
-// build, you can choose to use the out-of-line functions by adding
-// ACE_NO_INLINE=1 to your project settings.
-# if !defined (__ACE_INLINE__)
-# define __ACE_INLINE__ 1
-# endif /* __ACE_INLINE__ */
-# endif /* __BORLANDC__ == 0x540 */
-
-# define ACE_CC_NAME ACE_LIB_TEXT ("Borland C++ Builder")
-# define ACE_CC_MAJOR_VERSION (__BORLANDC__ / 0x100)
-# define ACE_CC_MINOR_VERSION (__BORLANDC__ % 0x100)
-# define ACE_CC_BETA_VERSION (0)
-# define ACE_CC_PREPROCESSOR "CPP32.EXE"
-# define ACE_CC_PREPROCESSOR_ARGS "-q -P- -o%s"
-
-# define ACE_EXPORT_NESTED_CLASSES 1
-# define ACE_HAS_ANSI_CASTS 1
-# define ACE_HAS_CPLUSPLUS_HEADERS 1
-# define ACE_HAS_EXCEPTIONS
-# define ACE_HAS_EXPLICIT_KEYWORD 1
-# define ACE_HAS_GNU_CSTRING_H 1
-# define ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION 1
-# define ACE_HAS_MUTABLE_KEYWORD 1
-# define ACE_HAS_NONCONST_SELECT_TIMEVAL
-# define ACE_HAS_SIG_ATOMIC_T
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION 1
-# define ACE_HAS_STD_TEMPLATE_SPECIALIZATION 1
-# define ACE_HAS_STDCPP_STL_INCLUDES 1
-# define ACE_HAS_STRERROR
-# define ACE_HAS_STRING_CLASS 1
-# define ACE_HAS_STRPTIME
-# define ACE_HAS_TEMPLATE_SPECIALIZATION 1
-# define ACE_HAS_TEMPLATE_TYPEDEFS 1
-# define ACE_HAS_TYPENAME_KEYWORD 1
-# define ACE_HAS_USER_MODE_MASKS 1
-# define ACE_HAS_USING_KEYWORD 1
-# define ACE_LACKS_ACE_IOSTREAM 1
-# define ACE_LACKS_INLINE_ASSEMBLY 1
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
-# define ACE_LACKS_NATIVE_STRPTIME 1
-# define ACE_LACKS_PLACEMENT_OPERATOR_DELETE 1
-# define ACE_LACKS_PRAGMA_ONCE 1
-# define ACE_LACKS_STRRECVFD
-# define ACE_NEW_THROWS_EXCEPTIONS 1
-# define ACE_SIZEOF_LONG_DOUBLE 10
-# define ACE_TEMPLATES_REQUIRE_SOURCE 1
-# define ACE_UINT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%Lu")
-# define ACE_INT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%Ld")
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# define ACE_USES_STD_NAMESPACE_FOR_STDC_LIB 0
-
-# define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS)
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_BORLAND_COMMON_H */
diff --git a/ace/config-chorus.h b/ace/config-chorus.h
deleted file mode 100644
index 827777a8a0f..00000000000
--- a/ace/config-chorus.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for Chorus
-// platforms using one of these compilers:
-// * GNU g++
-// * GreenHills
-// It uses the Chorus POSIX threads interface.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// Define CHORUS to the correct version number
-#ifdef CHORUS_4
-# define CHORUS 4.0
-#else
-# define CHORUS 3.1b
-#endif
-
-#if defined (linux)
- // This shouldn't be necessary.
-# undef linux
-#endif /* linux */
-
-// Compiler-specific configuration.
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-# undef ACE_HAS_ANSI_CASTS
-# define ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS
-#elif defined (ghs)
-# define ACE_CONFIG_INCLUDE_GHS_COMMON
-# include "ace/config-ghs-common.h"
-
-# define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-# define ACE_HAS_TANDEM_SIGNALS
-# define ACE_HAS_TEMPLATE_SPECIALIZATION
-# define ACE_LACKS_ACE_IOSTREAM /* MVME lacks signed and unsigned char */
-# define ACE_LACKS_FLOATING_POINT
-#else /* ! __GNUG__ && ! ghs */
-# error unsupported compiler for ACE on Chorus
-#endif /* ! __GNUG__ && ! ghs */
-
-// OS-specific configuration
-
-// Chorus cannot grow shared memory, so this is the default size for a
-// local name space
-#define ACE_CHORUS_LOCAL_NAME_SPACE_T_SIZE 128000
-// Used in OS.i to map an actor id into a KnCap.
-#define ACE_CHORUS_MAX_ACTORS 64
-
-// This is not needed when compiling for PPC. It is necessary
-// for certain methods in ACE.cpp.
-#if defined(sparc) && !defined(__unix)
-# define __unix
-#endif
-
-#if defined(CHORUS_4)
-# define ACE_CHORUS_DEFAULT_MIN_STACK_SIZE 0x8000
-# define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-# define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-#else
-# define ACE_CHORUS_DEFAULT_MIN_STACK_SIZE 0x2000
-# define ACE_LACKS_KEY_T
-# define ACE_LACKS_ACCESS
-# define ACE_LACKS_FSYNC
-# define ACE_LACKS_GETSERVBYNAME
-# define ACE_LACKS_MKFIFO
-# define ACE_LACKS_READLINK
-# define ACE_LACKS_TRUNCATE
-# define ACE_LACKS_LONGLONG_T
-#endif
-
-#define ACE_HAS_BROKEN_READV
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_DIRENT
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_IP_MULTICAST
-#define ACE_HAS_LONG_MAP_FAILED
-#define ACE_HAS_MSG
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_POSIX_SEM
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRDUP_EMULATION
-#define ACE_HAS_STRERROR
-#define ACE_HAS_TSS_EMULATION
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_FORK
-#define ACE_LACKS_GETHOSTENT
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_MALLOC_H
-#define ACE_LACKS_MEMORY_H
-#define ACE_LACKS_MPROTECT
-#define ACE_LACKS_MSYNC
-#define ACE_LACKS_NAMED_POSIX_SEM
-#define ACE_LACKS_PARAM_H
-#define ACE_LACKS_READDIR_R
-#define ACE_LACKS_READV
-#define ACE_LACKS_RLIMIT
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SBRK
-#define ACE_LACKS_SEMBUF_T
-#define ACE_LACKS_SIGSET
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_SYSV_MSG_H
-#define ACE_LACKS_SYSV_SHMEM
-#define ACE_LACKS_UNIX_SIGNALS
-#define ACE_LACKS_UTSNAME_T
-#define ACE_LACKS_WRITEV
-#define ACE_PAGE_SIZE 4096
-
-// Chorus has syslog, but doesn't have setlogmask()
-#define ACE_LACKS_SETLOGMASK
-
-// Yes, we do have threads.
-#define ACE_HAS_THREADS
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-// And they're even POSIX pthreads
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
-#define ACE_LACKS_PTHREAD_CANCEL
-#define ACE_LACKS_PTHREAD_CLEANUP
-#define ACE_LACKS_PTHREAD_SIGMASK
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-// Chorus 4.0 supports POSIX Threads 1003.1b/1003.1c
-#if !defined(CHORUS_4)
-# define ACE_HAS_PTHREAD_PROCESS_ENUM
-#endif
-
-
-#if !defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-// By default, don't include RCS Id strings in object code.
-#if !defined (ACE_USE_RCSID)
-# define ACE_USE_RCSID 0
-#endif /* #if !defined (ACE_USE_RCSID) */
-
-// Needed to wait for "processes" to exit.
-#include <am/await.h>
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-cray.h b/ace/config-cray.h
deleted file mode 100644
index 20d66fa333b..00000000000
--- a/ace/config-cray.h
+++ /dev/null
@@ -1,242 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_CONFIG_CRAY_H
-#define ACE_CONFIG_CRAY_H
-#include "ace/pre.h"
-
-/*
- The following predefined macros are used within ACE ifdefs.
- These are defined when using the Cray compilers. _CRAYMPP
- is defined, for example, if you are running on a Cray T3E
- massively parallel machine. Moreover, in the case of the T3E,
- _CRAYT3E will be defined. This is used to determine the
- ACE_SIZEOF defines for primitive types.
-
- _UNICOS is defined as either the major version of UNICOS being run,
- e.g. 9 or 10 on the vector machines (e.g. C90, T90, J90, YMP, ...)
- or the major+minor+level UNICOS/mk version, e.g. 2.0.3 => 203,
- being run on an MPP machine.
-
- Summary:
-
- _CRAYMPP (defined only if running on MPP machine, e.g. T3E, UNICOS/mk)
- _CRAYT3E (defined specifically if compiling on a Cray T3E)
- _UNICOS (defined if running UNICOS or UNICOS/mk)
-
- Tested on UNICOS 10.0.0.5, UNICOS/mk 2.0.4.57
- Compiles on UNICOS 9.0.2.8, but some tests deadlock
-
- Contributed by Doug Anderson <dla@home.com>
-*/
-
-#if defined (_UNICOS) && !defined (MAXPATHLEN)
-#define MAXPATHLEN 1023
-#endif /* _UNICOS */
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_DEFAULT_CLOSE_ALL_HANDLES 0
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// using cray's autoinstantiation gives C++ prelinker: error: instantiation loop
-#define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-
-#define ACE_HAS_TEMPLATE_SPECIALIZATION
-
-#define ACE_HAS_ANSI_CASTS
-
-#define ACE_HAS_USING_KEYWORD
-
-#define ACE_HAS_SSIZE_T
-
-#define ACE_HAS_SYSV_IPC
-
-#define ACE_MT_SAFE 1
-
-#define ACE_HAS_THREADS
-
-#define ACE_HAS_PTHREADS
-
-// UNICOS 10 and UNICOS/mk implement a small subset of POSIX Threads,
-// but the prototypes follow the POSIX.1c-1995 definitions. Earlier
-// UNICOS versions sport Draft 7 threads.
-
-#if _UNICOS > 9
-# define ACE_HAS_PTHREADS_STD
-#else
-# define ACE_HAS_PTHREADS_DRAFT7
-# define ACE_LACKS_THREAD_STACK_SIZE
-# define ACE_LACKS_THREAD_STACK_ADDR
- // UNICOS 9 doesn't have this, nor sched.h
-# define SCHED_OTHER 0
-# define SCHED_FIFO 1
-# define SCHED_RR 2
-#endif
-
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-#define ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP
-
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-
-#define ACE_HAS_POSIX_TIME
-
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-#define ACE_HAS_POSIX_NONBLOCK
-
-#define ACE_HAS_TERM_IOCTLS
-
-#define ACE_HAS_DIRENT
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_IP_MULTICAST
-
-#define ACE_HAS_SIN_LEN
-
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-#define ACE_HAS_NONCONST_READLINK
-
-#define ACE_HAS_CHARPTR_SOCKOPT
-
-#define ACE_HAS_NONCONST_GETBY
-
-// has man pages, but links with missing symbols and I can't find lib yet
-/* #define ACE_HAS_REGEX */
-
-#define ACE_HAS_SIG_MACROS
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-#if _UNICOS > 9
-# define ACE_HAS_SIGWAIT
-#endif
-
-#define ACE_HAS_SIG_ATOMIC_T
-
-#define ACE_HAS_SIGISMEMBER_BUG
-
-#define ACE_HAS_MSG
-
-#define ACE_HAS_STRERROR
-
-#define ACE_HAS_GPERF
-
-// Special modifications that apply to UNICOS/mk
-#if defined(_CRAYMPP)
-
-# define ACE_HAS_SIGINFO_T
-# define ACE_HAS_UCONTEXT_T
-
-#endif
-
-// The Cray T90 supposedly supports SYSV SHMEM, but I was unable to get it
-// working. Of course, all other Cray PVP and MPP systems do NOT support it,
-// so it's probably good to just define like this for consistency
-#define ACE_LACKS_SYSV_SHMEM
-#define ACE_LACKS_MMAP
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_PTHREAD_CLEANUP
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-
-#if !defined(_CRAYMPP)
-
-#define ACE_LACKS_PTHREAD_CANCEL
-#define ACE_LACKS_PTHREAD_KILL
-
-#endif
-
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_PRI_T
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
-#define ACE_LACKS_MPROTECT
-#define ACE_LACKS_MSYNC
-#define ACE_LACKS_READV
-#define ACE_LACKS_RLIMIT
-
-// we probably want to fake not having this, since Cray memory mgmt is different
-#define ACE_LACKS_SBRK
-
-#define ACE_LACKS_SETSCHED
-
-#define ACE_LACKS_SIGINFO_H
-
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_WRITEV
-
-// Cray vector machines are "word" oriented, and modern ones are hard 64-bit.
-// "char" is somewhat of a special case. Most problems arise when code thinks
-// it can address 32-bit quantities and the like. MPP crays are typically
-// byte oriented, e.g. T3E uses Alpha processors, so we don't need as much
-// special treatment.
-
-#ifndef _CRAYMPP
-
-# define ACE_SIZEOF_CHAR 1
-# define ACE_SIZEOF_SHORT 8
-# define ACE_SIZEOF_INT 8
-# define ACE_SIZEOF_LONG 8
-# define ACE_SIZEOF_LONG_LONG 8
-# define ACE_SIZEOF_FLOAT 8
-# define ACE_SIZEOF_DOUBLE 8
-# define ACE_SIZEOF_LONG_DOUBLE 16
-# define ACE_SIZEOF_VOID_P 8
-
-#elif defined(_CRAYT3E)
-
-# define ACE_SIZEOF_CHAR 1
-# define ACE_SIZEOF_SHORT 4
-# define ACE_SIZEOF_INT 8
-# define ACE_SIZEOF_LONG 8
-# define ACE_SIZEOF_LONG_LONG 8
-# define ACE_SIZEOF_FLOAT 4
-# define ACE_SIZEOF_DOUBLE 8
-# define ACE_SIZEOF_LONG_DOUBLE 8
-# define ACE_SIZEOF_VOID_P 8
-
-#endif
-
-// Ones to check out at some point
-
-/* #define ACE_HAS_SYS_SIGLIST */
-
-// C++ Compiler stuff to verify
-/* #define ACE_NEW_THROWS_EXCEPTIONS */
-/* #define ACE_HAS_TEMPLATE_TYPEDEFS */
-
-// thread issues to check out
-/* #define ACE_LACKS_TIMEDWAIT_PROTOTYPES */
-
-// Cray does seem to support it, in -lnsl and has tiuser.h header
-/* #define ACE_HAS_TLI */
-/* #define ACE_HAS_TIUSER_H */
-/* #define ACE_HAS_TLI_PROTOTYPES */
-/* #define ACE_LACKS_T_ERRNO */
-
-/* #define ACE_LACKS_NAMED_POSIX_SEM */
-
-/* #define ACE_HAS_SYS_ERRLIST */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_CRAY_H */
diff --git a/ace/config-cxx-common.h b/ace/config-cxx-common.h
deleted file mode 100644
index 4ffee9f4b7d..00000000000
--- a/ace/config-cxx-common.h
+++ /dev/null
@@ -1,89 +0,0 @@
-// $Id$
-
-#ifndef ACE_CXX_COMMON_H
-#define ACE_CXX_COMMON_H
-#include "ace/pre.h"
-
-#if !defined (ACE_CONFIG_INCLUDE_CXX_COMMON)
-# error ace/config-cxx-common.h: ACE configuration error! Do not #include this file directly!
-#endif
-
-#if defined (__DECCXX)
-# if !defined (linux)
-# define ACE_HAS_STRING_CLASS
-# if (__DECCXX_VER >= 60090010)
-# define ACE_HAS_STDCPP_STL_INCLUDES
-# endif /* __DECCXX_VER < 60090010 */
-# endif /* ! linux */
-
-# define DEC_CXX
-# define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF
-# define ACE_LACKS_SIGNED_CHAR
-# define ACE_HAS_CPLUSPLUS_HEADERS
-# define ACE_TEMPLATES_REQUIRE_SOURCE
-# if (__DECCXX_VER >= 60090010)
- // DEC CXX 6.0 supports exceptions, etc., by default. Exceptions
- // are enabled by platform_osf1_4.x.GNU/wrapper_macros.GNU.
-# if defined (ACE_HAS_EXCEPTIONS)
-# define ACE_NEW_THROWS_EXCEPTIONS
-# endif /* ACE_HAS_EXCEPTIONS */
-# define ACE_HAS_ANSI_CASTS
-# if !defined (__RTTI)
-# define ACE_LACKS_RTTI
-# endif
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_HAS_TEMPLATE_SPECIALIZATION
-# define ACE_HAS_TEMPLATE_TYPEDEFS
-# define ACE_HAS_TYPENAME_KEYWORD
-# define ACE_HAS_USING_KEYWORD
-
-# define ACE_ENDLESS_LOOP \
- unsigned int ace_endless_loop____ = 0; if (ace_endless_loop____) break;
-
-# if defined (__USE_STD_IOSTREAM)
-# define ACE_LACKS_CHAR_RIGHT_SHIFTS
-# define ACE_LACKS_IOSTREAM_FX
-# define ACE_LACKS_UNBUFFERED_STREAMBUF
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# else /* ! __USE_STD_IOSTREAM */
-# define ACE_USES_OLD_IOSTREAMS
-# endif /* ! __USE_STD_IOSTREAM */
-
-// 9: nested comment not allowed. (/usr/include/pdsc.h!) (nestcomment)
-// 177: variable was declared but never referenced (declbutnotref)
-// 193: zero used for undefined preprocessing identifier (undpreid)
-// 236: controlling expression is constant (boolexprconst)
-// 401: base_class_with_nonvirtual_dtor (basclsnondto)
-// 1016: expected type is incompatible with declared type of int (incint)
-// 1136: conversion to smaller size integer could lose data (intconlosbit)
-
-# pragma message disable basclsnondto
-# pragma message disable boolexprconst
-# pragma message disable undpreid
-
-# if (__DECCXX_VER >= 60190029)
- // 6.1-029 and later support msg 1136. Disable it because it
- // causes warnings from ACE and/or TAO.
-# pragma message disable intconlosbit
-# endif /* __DECCXX_VER >= 60190029 */
-
-# if (__DECCXX_VER == 60190027)
- // Seems that this version of cxx doesn't have reset
-# define ACE_AUTO_PTR_LACKS_RESET
-# endif /* __DECCXX_VER == 60190027 */
-
-# if defined (DIGITAL_UNIX) && DIGITAL_UNIX >= 0x40D
- // variable "PTHREAD_THIS_CATCH_NP" was declared but never referenced
-# pragma message disable declbutnotref
-# endif /* DIGITAL_UNIX >= 4.0f */
-
-# else /* __DECCXX_VER < 60090010 */
-# define ACE_LACKS_PRAGMA_ONCE
-# endif /* __DECCXX_VER < 60090010 */
-#else /* ! __DECCXX */
-# error ace/config-cxx-common.h can only be used with Compaq CXX!
-#endif /* ! __DECCXX */
-
-#include "ace/post.h"
-#endif /* ACE_CXX_COMMON_H */
diff --git a/ace/config-cygwin32-common.h b/ace/config-cygwin32-common.h
deleted file mode 100644
index 51af497d35a..00000000000
--- a/ace/config-cygwin32-common.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// This configuration file is designed to be included by another,
-// specific configuration file. It provides config information common
-// to all CygWin platforms. It automatically determines the CPU
-// architecture, compiler (g++ or egcs), and libc (libc5/glibc/newlib),
-// and configures based on those.
-
-#ifndef ACE_CYGWIN32_COMMON_H
-#define ACE_CYGWIN32_COMMON_H
-#include "ace/pre.h"
-
-#define CYGWIN32
-
-// We trust this file will get included before <sys/types.h>
-#if !defined(FD_SETSIZE)
-# define FD_SETSIZE 1024
-#endif
-
-#if !defined (ACE_IOV_MAX)
-# define ACE_IOV_MAX 64
-#endif /* ACE_IOV_MAX */
-
-// Define custom export macros for export/import of symbols from/of dll's
-#define ACE_HAS_CUSTOM_EXPORT_MACROS
-#define ACE_Proper_Export_Flag __declspec (dllexport)
-#define ACE_Proper_Import_Flag __declspec (dllimport)
-#define ACE_EXPORT_SINGLETON_DECLARATION(T) template class __declspec (dllexport) T
-#define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class __declspec (dllexport) SINGLETON_TYPE<CLASS, LOCK>;
-#define ACE_IMPORT_SINGLETON_DECLARATION(T) extern template class T
-#define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) extern template class SINGLETON_TYPE <CLASS, LOCK>;
-
-#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-#define ACE_LACKS_SYSV_MSG_H
-#define ACE_HAS_SIG_MACROS
-#define ACE_LACKS_SYSTIME_H
-#define ACE_LACKS_TELLDIR
-#define ACE_LACKS_SYSV_SHMEM
-
-#define ACE_LACKS_MMAP
-#define ACE_LACKS_MPROTECT
-
-#define ACE_LACKS_SEMBUF_T
-#define ACE_LACKS_NAMED_POSIX_SEM
-#define ACE_LACKS_SENDMSG
-#define ACE_LACKS_RECVMSG
-#define ACE_LACKS_READDIR_R
-#define ACE_LACKS_RLIMIT
-#define ACE_LACKS_SOCKETPAIR
-#define ACE_LACKS_SEEKDIR
-#define ACE_LACKS_TEMPNAM
-#define ACE_LACKS_MKTEMP
-
-#if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// Needed to differentiate between libc 5 and libc 6 (aka glibc).
-// It's there on all libc 5 systems I checked.
-#include /**/ <features.h>
-
-
-// First the machine specific part
-// #define ACE_HAS_CYGWIN32_SOCKET_H
-
-// Then the compiler specific parts
-
-// config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
-// this must appear before its #include.
-#define ACE_HAS_STRING_CLASS
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#else
-# error unsupported compiler in ace/config-cygwin32-common.h
-#endif /* __GNUG__ */
-
-
-// Completely common part :-)
-
-// Platform/compiler has the sigwait(2) prototype
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_POSIX_TIME
-#define ACE_LACKS_TIMESPEC_T
-#define ACE_HAS_MSG
-#define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
-#define ACE_LACKS_SETREUID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_GETHOSTENT
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_LACKS_GETPGID_PROTOTYPE
-
-// Compiler/platform supports alloca().
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-#define ACE_HAS_GETRUSAGE_PROTO
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#if !defined(ACE_HAS_IP_MULTICAST)
-# define ACE_HAS_IP_MULTICAST
-#endif /* #if ! defined(ACE_HAS_IP_MULTICAST) */
-
-#define ACE_HAS_BIG_FD_SET
-
-#define ACE_HAS_TERM_IOCTLS
-
-#define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535
-
-#define ACE_DEFAULT_SELECT_REACTOR_SIZE 256
-
-#define ACE_HAS_GETPAGESIZE 1
-
-// Platform lacks POSIX prototypes for certain System V functions
-// like shared memory and message queues.
-#define ACE_LACKS_SOME_POSIX_PROTOTYPES
-
-
-#define ACE_LACKS_STRRECVFD
-
-#define ACE_LACKS_MSYNC
-#define ACE_LACKS_MADVISE
-
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-#define ACE_HAS_GPERF
-
-#define ACE_HAS_DIRENT
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_LACKS_MKFIFO
-
-#include "ace/post.h"
-#endif /* ACE_CYGWIN32_COMMON_H */
diff --git a/ace/config-cygwin32.h b/ace/config-cygwin32.h
deleted file mode 100644
index 91eefab4a53..00000000000
--- a/ace/config-cygwin32.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for CygWin
-// platforms using GNU C++.
-
-#ifndef ACE_CONFIG_CYGWIN32_H
-#define ACE_CONFIG_CYGWIN32_H
-#include "ace/pre.h"
-
-#include "ace/config-cygwin32-common.h"
-
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_CYGWIN32_H */
diff --git a/ace/config-dgux-4.11-epc.h b/ace/config-dgux-4.11-epc.h
deleted file mode 100644
index b19d56cf7f1..00000000000
--- a/ace/config-dgux-4.11-epc.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for DG/UX
-// 4.11 platforms using the EPC compiler.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#define ACE_DGUX
-
-// Platform requires (struct sockaddr *) for msg_name field of struct
-// msghdr.
-#define ACE_HAS_SOCKADDR_MSG_NAME
-
-// Platform lacks strcasecmp().
-#define ACE_LACKS_STRCASECMP
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Platform supports system configuration information.
-#define ACE_HAS_SYSINFO
-
-// Platform supports the POSIX regular expression library.
-#define ACE_HAS_REGEX
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-// #define ACE_HAS_SYSCALL_H
-
-// Platform supports reentrant functions (i.e., all the POSIX *_r functions).
-#define ACE_HAS_REENTRANT_FUNCTIONS
-
-// Platform has terminal ioctl flags like TCGETS and TCSETS.
-#define ACE_HAS_TERM_IOCTLS
-
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Compiler/platform supports SunOS high resolution timers.
-// #define ACE_HAS_HI_RES_TIMER
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Compiler/platform supports alloca()
-// #define ACE_HAS_ALLOCA
-
-// Compiler/platform has <alloca.h>
-// #define ACE_HAS_ALLOCA_H
-
-// Platform contains <poll.h>.
-#define ACE_HAS_POLL
-
-// Platform supports POSIX timers via timestruc_t.
-#define ACE_HAS_POSIX_TIME
-
-// Platform supports the /proc file system.
-#define ACE_HAS_PROC_FS
-
-// Platform supports the prusage_t struct.
-// #define ACE_HAS_PRUSAGE_T
-#define ACE_HAS_GETRUSAGE
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals.
-#define ACE_HAS_SIGINFO_T
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Platform supports STREAM pipes.
-#define ACE_HAS_STREAM_PIPES
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-// #define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Compiler/platform supports SVR4 gettimeofday() prototype.
-// #define ACE_HAS_SVR4_GETTIMEOFDAY
-
-// DG/UX uses the same gettimeofday() prototype as OSF/1.
-#define ACE_HAS_OSF1_GETTIMEOFDAY
-
-// Compiler/platform supports SVR4 signal typedef.
-#define ACE_HAS_SVR4_SIGNAL_T
-
-// Compiler/platform supports SVR4 ACE_TLI (in particular, T_GETNAME stuff)...
-#define ACE_HAS_SVR4_TLI
-
-// Platform provides <sys/filio.h> header.
-// #define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform supports sys_siglist array.
-#define ACE_HAS_SYS_SIGLIST
-
-/* Turn off the following four defines if you want to disable threading. */
-// Compile using multi-thread libraries.
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 0
-#endif
-
-// Platform supports threads.
-// #define ACE_HAS_THREADS
-
-// Platform supports POSIX pthreads *and* Solaris threads!
-// #define ACE_HAS_STHREADS
-// #define ACE_HAS_PTHREADS
-#define ACE_HAS_SIGWAIT
-// If ACE doesn't compile due to the lack of these methods, please
-// send email to schmidt@cs.wustl.edu reporting this.
-// #define ACE_LACKS_CONDATTR_PSHARED
-// #define ACE_LACKS_MUTEXATTR_PSHARED
-
-// Compiler/platform has thread-specific storage
-//
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// Reactor detects deadlock
-// #define ACE_REACTOR_HAS_DEADLOCK_DETECTION
-
-// Platform supports ACE_TLI timod STREAMS module.
-#define ACE_HAS_TIMOD_H
-
-// Platform supports ACE_TLI tiuser header.
-#define ACE_HAS_TIUSER_H
-
-// Platform provides ACE_TLI function prototypes.
-#define ACE_HAS_TLI_PROTOTYPES
-
-// Platform supports ACE_TLI.
-#define ACE_HAS_TLI
-
-// Use the poll() event demultiplexor rather than select().
-//#define ACE_USE_POLL
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// #define _USING_POSIX4A_DRAFT6
-#define _POSIX_SOURCE
-#define _DGUX_SOURCE
-// #define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-#define ACE_HAS_UCONTEXT_T
-#define ACE_LACKS_SYSTIME_H
-#define ACE_HAS_NONCONST_GETBY
-#define ACE_LACKS_MADVISE
-
-#if !defined (IP_ADD_MEMBERSHIP)
-# define IP_ADD_MEMBERSHIP 0x13
-#endif
-
-#if !defined (IP_DROP_MEMBERSHIP)
-# define IP_DROP_MEMBERSHIP 0x14
-#endif
-
-// Header files lack t_errno for ACE_TLI.
-#define ACE_LACKS_T_ERRNO
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_IDTYPE_T
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-dgux-4.x-ghs.h b/ace/config-dgux-4.x-ghs.h
deleted file mode 100644
index b53126b59ed..00000000000
--- a/ace/config-dgux-4.x-ghs.h
+++ /dev/null
@@ -1,214 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for DG/UX
-// 4.x platforms using the Green Hills Multi C++ compiler.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#define ACE_DGUX
-
-# define ACE_CONFIG_INCLUDE_GHS_COMMON
-# include "ace/config-ghs-common.h"
-
-// Static objects do not get initialized correctly, so this is needed.
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-
-// Platform requires (struct sockaddr *) for msg_name field of struct
-// msghdr.
-#define ACE_HAS_SOCKADDR_MSG_NAME
-
-// Platform lacks strcasecmp().
-#define ACE_LACKS_STRCASECMP
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Platform supports system configuration information.
-#define ACE_HAS_SYSINFO
-
-// Platform supports the POSIX regular expression library.
-#define ACE_HAS_REGEX
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Platform supports reentrant functions (i.e., all the POSIX *_r functions).
-//#define ACE_HAS_REENTRANT_FUNCTIONS
-
-// Platform has terminal ioctl flags like TCGETS and TCSETS.
-#define ACE_HAS_TERM_IOCTLS
-
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Compiler/platform supports SunOS high resolution timers.
-// #define ACE_HAS_HI_RES_TIMER
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Green Hills doesn't give a preprocessor symbol for long double
-#define ACE_SIZEOF_LONG_DOUBLE 8
-
-// Platform contains <poll.h>.
-#define ACE_HAS_POLL
-
-// Platform supports POSIX timers via timestruc_t.
-#define ACE_HAS_POSIX_TIME
-
-// Platform supports the /proc file system.
-#define ACE_HAS_PROC_FS
-
-// Platform supports the prusage_t struct.
-// #define ACE_HAS_PRUSAGE_T
-#define ACE_HAS_GETRUSAGE
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals.
-#define ACE_HAS_SIGINFO_T
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Platform supports STREAM pipes.
-#define ACE_HAS_STREAM_PIPES
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-// ... but redefines the entrypoint names with a leading underscore
-#define dlopen _dlopen
-#define dlclose _dlclose
-#define dlerror _dlerror
-#define dlsym _dlsym
-// ... and uses 'char *' rather than 'const char *'
-#define ACE_HAS_CHARPTR_DL
-
-// DG/UX uses the same gettimeofday() prototype as OSF/1.
-#define ACE_HAS_OSF1_GETTIMEOFDAY
-
-// Compiler/platform supports SVR4 signal typedef.
-#define ACE_HAS_SVR4_SIGNAL_T
-
-// Compiler/platform supports SVR4 ACE_TLI (in particular, T_GETNAME stuff)...
-#define ACE_HAS_SVR4_TLI
-
-// Compiler/platform supports sys_siglist array.
-// On DG/UX this is only done if the /usr/include/sys/_int_dg_features.h
-// file determines it should be turned on. It will take some work to
-// figure out the magic options to turn it on reliably, so it'll have to
-// be delayed for now.
-//#define _TARGETTING_DGUXELF 1
-//#define _IX86_DG 1
-//#define _DGUX_TARGET 1
-//#define ACE_HAS_SYS_SIGLIST
-
-/* Turn off the following four defines if you want to disable threading. */
-// Compile using multi-thread libraries.
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-// Platform supports threads.
-#define ACE_HAS_THREADS
-#define ACE_HAS_PTHREADS
-// DG/UX claims to implement draft 10 of the pthreads standard (which became
-// (with editorial change only) the final standard. To get the behavior, some
-// further macros need to be defined which are specific to DG/UX.
-// _POSIX4A_DRAFT10_SOURCE turns on the draft 10 variant of threads.
-// _POSIX4A_DRAFT_SOURCE turns on sched_yield().
-#define _POSIX4A_DRAFT10_SOURCE
-#define ACE_HAS_PTHREADS_STD
-#define _POSIX4_DRAFT_SOURCE
-// Well, here are some from the standard they don't have...
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_HAS_SIGWAIT
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-// The default thread stacksize on DG/UX 4.x is 4096. This needs to be bumped
-// up to do anything real in ACE.
-#define ACE_NEEDS_HUGE_THREAD_STACKSIZE 65536
-
-// Need to #include <sched.h>
-#define ACE_NEEDS_SCHED_H
-
-// Compiler/platform has thread-specific storage
-//
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// Platform supports ACE_TLI timod STREAMS module.
-#define ACE_HAS_TIMOD_H
-
-// Platform supports ACE_TLI tiuser header.
-#define ACE_HAS_TIUSER_H
-
-// Platform provides ACE_TLI function prototypes.
-#define ACE_HAS_TLI_PROTOTYPES
-
-// Platform supports ACE_TLI.
-#define ACE_HAS_TLI
-
-// Platform doesn't have read-write locks natively.
-#define ACE_LACKS_RWLOCK_T
-
-// Platform doesn't have timespec_t data type.
-#define ACE_LACKS_TIMESPEC_T
-
-// Use the poll() event demultiplexor rather than select().
-//#define ACE_USE_POLL
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-
-#define ACE_HAS_UCONTEXT_T
-#define ACE_LACKS_SYSTIME_H
-#define ACE_HAS_NONCONST_GETBY
-#define ACE_LACKS_MADVISE
-
-#if !defined (IP_ADD_MEMBERSHIP)
-#define IP_ADD_MEMBERSHIP 0x13
-#endif
-
-#if !defined (IP_DROP_MEMBERSHIP)
-# define IP_DROP_MEMBERSHIP 0x14
-#endif
-
-// Header files lack t_errno for ACE_TLI.
-#define ACE_LACKS_T_ERRNO
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-doxygen.h b/ace/config-doxygen.h
deleted file mode 100644
index 85b492322c6..00000000000
--- a/ace/config-doxygen.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * This is a configuration file to define all the macros that Doxygen
- * needs
- *
- * @file config-doxygen.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- * @author Darrell Brunsch <brunsch@uci.edu>
- *
- */
-#ifndef ACE_CONFIG_DOXYGEN_H
-#define ACE_CONFIG_DOXYGEN_H
-
-/// Make the wchar_t interfaces available.
-#define ACE_HAS_WCHAR
-
-/// Make all the emulation versions of string operations visible
-// #define ACE_LACKS_WCSTOK
-#define ACE_LACKS_ITOW
-#define ACE_LACKS_STRCASECMP
-#define ACE_LACKS_STRCSPN
-#define ACE_LACKS_STRCHR
-#define ACE_LACKS_STRRCHR
-#define ACE_LACKS_WCSCAT
-#define ACE_LACKS_WCSCHR
-#define ACE_LACKS_WCSCMP
-#define ACE_LACKS_WCSCPY
-#define ACE_LACKS_WCSICMP
-#define ACE_LACKS_WCSLEN
-#define ACE_LACKS_WCSNCAT
-#define ACE_LACKS_WCSNCMP
-#define ACE_LACKS_WCSNCPY
-#define ACE_LACKS_WCSNICMP
-#define ACE_LACKS_WCSPBRK
-#define ACE_LACKS_WCSRCHR
-#define ACE_LACKS_WCSCSPN
-#define ACE_LACKS_WCSSPN
-#define ACE_LACKS_WCSSTR
-
-/// Support for threads enables several important classes
-#define ACE_HAS_THREADS
-
-/// Support for Win32 enables the WFMO_Reactor and several Async I/O
-/// classes
-#define ACE_WIN32
-
-/// Enable support for POSIX Asynchronous I/O calls
-#define ACE_HAS_AIO_CALLS
-
-/// Enable support for TLI interfaces
-#define ACE_HAS_TLI
-
-/// Enable support for the SSL wrappers
-#define ACE_HAS_SSL 1
-
-/// Several GUI Reactors that are only enabled in some platforms.
-#define ACE_HAS_XT
-#define ACE_HAS_FL
-#define ACE_HAS_QT
-#define ACE_HAS_TK
-#define ACE_HAS_GTK
-
-/// Enable exceptions
-#define ACE_HAS_EXCEPTIONS
-
-/// Enable timeprobes
-#define ACE_COMPILE_TIMEPROBES
-
-/// Enable unicode to generate ACE_Registry_Name_Space
-#define UNICODE
-
-/// These defines make sure that Svc_Conf_y.cpp and Svc_Conf_l.cpp are correctly
-/// parsed
-#define __cplusplus
-#define ACE_YY_USE_PROTOS
-
-/// TAO features that should be documented too
-#define TAO_HAS_RT_CORBA 1
-#define TAO_HAS_MINIMUM_CORBA 0
-#define TAO_HAS_AMI 1
-#define TAO_HAS_INTERCEPTORS 1
-
-/// Generate token library documentation
-#define ACE_HAS_TOKENS_LIBRARY
-
-/// Generate ACE ATM classes documentation
-#define ACE_HAS_ATM
-
-/// Generate ACE XTI ATM class documentation
-#define ACE_HAS_XTI_ATM
-
-/// Generate ACE_Dev_Poll_Reactor documentation
-#define ACE_HAS_EVENT_POLL
-
-/// Generate ACE_Event_Handler_T documentation
-#define ACE_HAS_TEMPLATE_TYPEDEFS
-
-/// Generate ACE_Log_Msg_NT_Event_Log documentation
-#define ACE_HAS_LOG_MSG_NT_EVENT_LOG
-
-#endif /* ACE_CONFIG_DOXYGEN_H */
diff --git a/ace/config-freebsd.h b/ace/config-freebsd.h
deleted file mode 100644
index e8c2fec976f..00000000000
--- a/ace/config-freebsd.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for FreeBSD
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#include "ace/config-posix.h"
-
-#include <osreldate.h>
-// Make sure we source in the OS version.
-
-#if ! defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#if (__FreeBSD_version < 220000)
-#if defined (ACE_HAS_THREADS)
-#error Threads are not supported.
-#endif /* ACE_HAS_THREADS */
-#endif /* __FreeBSD_version < 220000 */
-
-#define ACE_SIZEOF_LONG_DOUBLE 12
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
-
-#if defined (ACE_HAS_PENTIUM)
-# undef ACE_HAS_PENTIUM
-#endif /* ACE_HAS_PENTIUM */
-
-// Platform specific directives
-// gcc defines __FreeBSD__ automatically for us.
-#ifdef ACE_HAS_THREADS
-#if !defined (_THREAD_SAFE)
-#define _THREAD_SAFE
-#endif /* _THREAD_SAFE */
-#endif
-
-#define ACE_HAS_GPERF
-
-#if (__FreeBSD_version < 420000)
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
-#define ACE_LACKS_PTHREAD_CANCEL
-#endif /* __FreeBSD_version < 420000 */
-
-#define ACE_HAS_ALT_CUSERID
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-#define ACE_HAS_SIG_MACROS
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_CHARPTR_DL
-
-#if (__FreeBSD_version < 400000)
-#define ACE_LACKS_SIGSET
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_READDIR_R
-#define ACE_LACKS_SETSCHED
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_UCONTEXT_H
-#endif
-
-#define ACE_NEEDS_SCHED_H
-
-#if (__FreeBSD_version < 400000)
-enum schedparam_policy {
- SCHED_RR,
- SCHED_IO,
- SCHED_FIFO,
- SCHED_OTHER
-};
-#endif
-
-// Use of <malloc.h> is deprecated.
-#define ACE_LACKS_MALLOC_H
-
-
-// This won't be necessary after it is fixed in the system include headers.
-extern "C" { char * cuserid (char *s); }
-
-// Platform supports POSIX timers via struct timespec.
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_UALARM
-
-// Platform defines struct timespec but not timespec_t
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_SYSTIME_H
-
-#define ACE_LACKS_STRRECVFD
-
-#define ACE_HAS_SIN_LEN
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-#if (__FreeBSD_version >= 300000)
-#define ACE_HAS_SIGINFO_T
-#endif /* __FreeBSD_version >= 300000 */
-
-#if (__FreeBSD_version >= 320000)
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
-#define ACE_LACKS_RAND_REENTRANT_FUNCTIONS
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-#endif /* __FreeBSD_version >= 320000 */
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_LACKS_SIGINFO_H
-
-#define ACE_LACKS_SI_ADDR
-
-// Compiler/platform supports SVR4 signal typedef
-#define ACE_HAS_SVR4_SIGNAL_T
-
-// Compiler/platform supports alloca().
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform supports SVR4 dynamic linking semantics..
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Explicit dynamic linking permits "lazy" symbol resolution
-#define ACE_HAS_RTLD_LAZY_V
-
-// platform supports POSIX O_NONBLOCK semantics
-#define ACE_HAS_POSIX_NONBLOCK
-
-// platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Lacks perfect filtering, must bind group address.
-#if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
-# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
-#endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
-
-// Compiler/platform has <alloca.h>
-//#define ACE_HAS_ALLOCA_H
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Compiler/platform supports sys_siglist array.
-// *** This refers to (_sys_siglist) instead of (sys_siglist)
-// #define ACE_HAS_SYS_SIGLIST
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform supports SVR4 gettimeofday() prototype
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-// #define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_HAS_MSG
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-
-#if (__FreeBSD_version < 500100)
-# define ACE_HAS_NONCONST_MSGSND
-#endif
-
-// Thread specific settings
-// Yes, we do have threads.
-#ifdef ACE_HAS_THREADS
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif /* ! ACE_MT_SAFE */
-#endif /* ACE_HAS_THREADS */
-
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_DIRENT
-
-#define ACE_HAS_SIGWAIT
-
-#define ACE_HAS_TERM_IOCTLS
-#define ACE_USES_NEW_TERMIOS_STRUCT
-#define TCGETS TIOCGETA
-#define TCSETS TIOCSETA
-
-#if (__FreeBSD_version > 400000)
-#define ACE_HAS_UCONTEXT_T
-#define ACE_HAS_SOCKLEN_T
-#define ACE_HAS_GETIFADDRS
-#define ACE_HAS_PTHREADS_UNIX98_EXT
-#endif
-
-#ifndef ACE_HAS_SNPRINTF
-#define ACE_HAS_SNPRINTF
-#endif
-
-// Note, on FreeBSD 5, POSIX aio is now an optional kernel module which
-// must be loaded.
-// Read the aio(4) man page for what to do, otherwise any aio_* call
-// will coredump.
-
-// By default use Proactor which does not use POSIX Real-time Signals
-#ifdef ACE_HAS_AIO_CALLS
-#ifndef ACE_POSIX_AIOCB_PROACTOR
-#define ACE_POSIX_AIOCB_PROACTOR
-#endif /* ACE_POSIX_AIOCB_PROACTOR */
-#endif /* ACE_HAS_AIO_CALLS */
-
-/* FreeBSD does not define sigval_t */
-#include <sys/signal.h>
-typedef union sigval sigval_t;
-
-#include "ace/post.h"
-
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-fsu-pthread.h b/ace/config-fsu-pthread.h
deleted file mode 100644
index 4ce0c5fa4e3..00000000000
--- a/ace/config-fsu-pthread.h
+++ /dev/null
@@ -1,59 +0,0 @@
-// $Id$
-
-#ifndef ACE_CONFIG_FSU_PTHREAD_H
-#define ACE_CONFIG_FSU_PTHREAD_H
-#include "ace/pre.h"
-
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-
-// Threads
-#define ACE_HAS_THREADS
-#if !defined(ACE_MT_SAFE)
-#define ACE_MT_SAFE 1
-#endif
-
-/*
-** FSU implements 1003.4a draft 6 threads - the ACE_HAS_FSU_PTHREADS def
-** is needed for some peculiarities with this particular implementation.
-*/
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_DRAFT6
-#define ACE_HAS_FSU_PTHREADS
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_PTHREAD_YIELD_VOID_PTR
-#define ACE_HAS_PTHREAD_ATTR_INIT
-#define ACE_HAS_PTHREAD_ATTR_DESTROY
-#define ACE_LACKS_THREAD_STACK_ADDR
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SETSCHED
-#if defined(M_UNIX)
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-#endif
-
-#if !defined(ACE_HAS_POSIX_TIME)
-#define ACE_HAS_POSIX_TIME
-#define ACE_LACKS_TIMESPEC_T
-#endif
-
-#include <pthread.h>
-
-#if !defined(PTHREAD_STACK_MIN)
-#define PTHREAD_STACK_MIN (1024*10)
-#endif
-
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-
-#undef PTHREAD_INHERIT_SCHED
-
-struct sched_param
-{
- int sched_priority;
- int prio;
-};
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_FSU_PTHREAD_H */
diff --git a/ace/config-g++-common.h b/ace/config-g++-common.h
deleted file mode 100644
index b1a063235bc..00000000000
--- a/ace/config-g++-common.h
+++ /dev/null
@@ -1,115 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-// This configuration file is designed to be included by another,
-// specific configuration file. It provides config information common
-// to all g++ platforms, including egcs.
-
-#ifndef ACE_GNUG_COMMON_H
-#define ACE_GNUG_COMMON_H
-#include "ace/pre.h"
-
-#if __GNUC__ > 2 || ( __GNUC__ == 2 && __GNUC_MINOR__ >= 8) || \
- (defined (ACE_VXWORKS) && ACE_VXWORKS >= 0x540)
- // egcs or g++ >= 2.8.0
-
-# define ACE_HAS_ANSI_CASTS
-# define ACE_HAS_CPLUSPLUS_HEADERS
-# define ACE_HAS_EXPLICIT_KEYWORD
-# define ACE_HAS_MUTABLE_KEYWORD
-# define ACE_HAS_STDCPP_STL_INCLUDES
-# define ACE_HAS_TEMPLATE_TYPEDEFS
-# define ACE_HAS_TYPENAME_KEYWORD
-# define ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-
-#if __GNUC__ > 2 || ( __GNUC__ == 2 && __GNUC_MINOR__ >= 95)
-# define ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION
-#endif
-
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_USES_OLD_IOSTREAMS
-
-#if (__GNUC__ == 2 && __GNUC_MINOR__ <= 91)
-// EGCS (gcc 2.91) doesn't define this in its C++ standard library.
-# define ACE_LACKS_AUTO_PTR
-# define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
-#endif
-
-# if __GNUC__ == 2 && __GNUC_MINOR__ != 9 && __GNUC_MINOR__ != 91
-# // g++ 2.9 and egcs 2.91 apparently have a bug with this . . .
-# define ACE_HAS_TEMPLATE_SPECIALIZATION
-# endif /* __GNUC__ != 2.9 && __GNUC__ != 2.91*/
-
-# if __GNUC__ > 2 || ( __GNUC__ == 2 && __GNUC_MINOR__ >= 91 )
-# define ACE_HAS_USING_KEYWORD
- // This is only needed with egcs 1.1 (egcs-2.91.57). It can't be
- // used with older versions.
-# define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
-# endif /* __GNUC__ >= 2.91 */
-
-# if (defined (VXWORKS) && __GNUC__ == 2 && __GNUC_MINOR__ == 96)
-// This is for inofficial(!) gcc2.96 shipped with Tornado2.1.0 for
-// Hitachi SuperH platform.
-# define ACE_LACKS_AUTO_PTR
-# endif /* (defined (VXWORKS) && __GNUC__ == 2 && __GNUC_MINOR__ == 96) */
-
-#if __GNUC__ > 2 || ( __GNUC__ == 2 && __GNUC_MINOR__ >= 97 )
- // gcc 2.97 and higher use libstdc++-v3 and require
- // the use of the std namespace for using iostreams
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# undef ACE_USES_OLD_IOSTREAMS
-#endif /* __GNUC__ >= 2.97 */
-
- // __EXCEPTIONS is defined with -fexceptions, the egcs default. It
- // is not defined with -fno-exceptions, the ACE default for g++.
- // ACE_HAS_EXCEPTIONS is defined in
- // include/makeinclude/wrapper_macros.GNU, so this really isn't
- // necessary. Just in case . . .
-# if defined (__EXCEPTIONS) && !defined (ACE_HAS_EXCEPTIONS)
-# define ACE_HAS_EXCEPTIONS
-# endif /* __EXCEPTIONS && ! ACE_HAS_EXCEPTIONS */
-
-# if defined (ACE_HAS_EXCEPTIONS)
-# define ACE_NEW_THROWS_EXCEPTIONS
-# endif /* ACE_HAS_EXCEPTIONS */
-
-#else /* ! egcs */
- // Plain old g++.
-# define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-# define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
-# define ACE_HAS_GNUG_PRE_2_8
-# define ACE_HAS_TEMPLATE_SPECIALIZATION
-# define ACE_LACKS_MIN_MAX_TEMPLATES
-#endif /* ! egcs */
-
-#if (defined (i386) || defined (__i386__)) && !defined (ACE_SIZEOF_LONG_DOUBLE)
-# define ACE_SIZEOF_LONG_DOUBLE 12
-#endif /* i386 */
-
-#if !defined (__MINGW32__) && (defined (i386) || defined (__i386__))
- // If running an Intel, assume that it's a Pentium so that
- // ACE_OS::gethrtime () can use the RDTSC instruction. If running a
- // 486 or lower, be sure to comment this out. (If not running an
- // Intel CPU, this #define will not be seen because of the i386
- // protection, so it can be ignored.)
-# define ACE_HAS_PENTIUM
-#endif /* i386 */
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
- // We define it with a -D with make depend.
-# define ACE_LACKS_PRAGMA_ONCE
-#endif /* ! ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_GNU_REPO)
- // -frepo causes unresolved symbols of basic_string left- and
- // right-shift operators with ACE_HAS_STRING_CLASS.
-# if defined (ACE_HAS_STRING_CLASS)
-# undef ACE_HAS_STRING_CLASS
-# endif /* ACE_HAS_STRING_CLASS */
-#endif /* ! ACE_HAS_GNU_REPO */
-
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-
-#include "ace/post.h"
-#endif /* ACE_GNUG_COMMON_H */
diff --git a/ace/config-ghs-common.h b/ace/config-ghs-common.h
deleted file mode 100644
index 673a7c5ec15..00000000000
--- a/ace/config-ghs-common.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// This configuration file is designed to be included by another,
-// specific configuration file. It provides config information common
-// to all Green Hills platforms.
-
-#ifndef ACE_GHS_COMMON_H
-#define ACE_GHS_COMMON_H
-#include "ace/pre.h"
-
-#if !defined (ACE_CONFIG_INCLUDE_GHS_COMMON)
-# error ace/config-ghs-common.h: ACE configuration error! Do not #include this file directly!
-#endif
-
-#if defined (ghs)
-
-# if defined (sun)
- // Need nonstatic Object_Manager on Solaris to prevent seg fault
- // on startup.
-# define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-# endif /* sun */
-
-# if defined (__STANDARD_CXX)
- // Green Hills 1.8.9, but not 1.8.8.
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_LACKS_AUTO_PTR
-# define ACE_LACKS_CHAR_RIGHT_SHIFTS
-# define ACE_LACKS_UNBUFFERED_STREAMBUF
-# define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-# else
-# define ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA
-# endif /* __STANDARD_CXX */
-
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF
-# define ACE_LACKS_LONGLONG_T
-# define ACE_LACKS_SIGNED_CHAR
-
-#else /* ! ghs */
-# error ace/config-ghs-common.h can only be used with Green Hills compilers!
-#endif /* ! ghs */
-
-#include "ace/post.h"
-#endif /* ACE_GHS_COMMON_H */
diff --git a/ace/config-hpux-10.x-g++.h b/ace/config-hpux-10.x-g++.h
deleted file mode 100644
index 239e63e43a0..00000000000
--- a/ace/config-hpux-10.x-g++.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for HP
-// platforms running HP/UX 10.x using G++.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
-// this must appear before its #include.
-#define ACE_HAS_STRING_CLASS
-
-#include "ace/config-g++-common.h"
-
-// These are apparantly some things which are special to g++ on HP? They are
-// compiler-related settings, but not in config-g++-common.h
-
-#define ACE_HAS_BROKEN_CONVERSIONS
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-#define _CLOCKID_T
-
-#include "ace/config-hpux-10.x.h"
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-hpux-10.x-hpc++.h b/ace/config-hpux-10.x-hpc++.h
deleted file mode 100644
index 380c54c0107..00000000000
--- a/ace/config-hpux-10.x-hpc++.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for HP
-// platforms running HP/UX 10.x with either of the HP C++ compilers.
-// This file contains compiler-specific settings, and uses the common
-// HP-UX file (config-hpux-10.x.h) for the platform information.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// There are 2 compiler-specific sections, plus a 3rd for common to both.
-// First is the HP C++ section...
-#if __cplusplus < 199707L
-
-// To use HP/C++ you need some patches, the following set
-//
-// PHSS_9855
-// PHSS_9096
-// PHSS_10261
-// PHSS_9062
-// PHSS_7505
-// PHSS_8490
-//
-// worked for me (Carlos O'Ryan), but you should check by yourself.
-// The most important one is PHSS_9855, but in depends on some of the
-// others.
-
-# define ACE_HAS_BROKEN_HPUX_TEMPLATES
-
-// Compiler can't handle calls like foo->operator T *()
-# define ACE_HAS_BROKEN_CONVERSIONS
-
-// Necessary with some compilers to pass ACE_TTY_IO as parameter to
-// DEV_Connector.
-# define ACE_NEEDS_DEV_IO_CONVERSION
-
-// Compiler's template mechanism must see source code (i.e., .C files).
-# define ACE_TEMPLATES_REQUIRE_SOURCE
-
-// Compiler's template mechanism requires the use of explicit C++
-// specializations for all used templates.
-# define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-
-// The HP/UX compiler doesn't support volatile!!!!
-# define volatile
-
-#else // aC++ definitions
-
-// Parts of TAO (at least) use __HP_aCC to detect this compiler, but the
-// macro is not set until A.01.18. If it's not set, set it - it won't be an
-// HP-advertised value, but we don't check the value/version - just whether
-// it's set or not.
-# if !defined (__HP_aCC)
-# define __HP_aCC
-# endif /* __HP_aCC */
-
-// Compiler doesn't support the operator placement delete.
-# define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-
-// Precompiler needs extra flags to ignore "invalid #pragma directive"
-# define ACE_CC_PREPROCESSOR_ARGS "-E +W 67"
-
-// Compiler supports to-be-ANSI casts
-# define ACE_HAS_ANSI_CASTS
-
-// Compiler can't handle calls like foo->operator T *()
-# define ACE_HAS_BROKEN_CONVERSIONS
-
-// Compiler supports C++ exception handling. It's on by default. If the
-// +noeh compiler option is used to disable exceptions, the compiler defines
-// __HPACC_NOEH.
-# if !defined (__HPACC_NOEH)
-# define ACE_HAS_EXCEPTIONS 1
-# endif
-
-// Compiler enforces need for 'template<>" when specializing template
-// classes.
-# define ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-
-// If the -AA compile option is used, the compiler defines _HP_NAMESPACE_STD.
-// The -AA option enables the 2.0 standard C++ library. If not used, then
-// we have the old, 1.2.1 C++ library.
-# if defined (_HP_NAMESPACE_STD)
-# if defined (ACE_HAS_STANDARD_CPP_LIBRARY)
-# undef ACE_HAS_STANDARD_CPP_LIBRARY
-# endif
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-# undef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB
-# endif
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# else
-# define ACE_USES_OLD_IOSTREAMS
-# endif /* _HP_NAMESPACE_STD */
-
-// Compiler enforces proper use of 'typename'
-# define ACE_HAS_TYPENAME_KEYWORD
-
-// Compiler implements templates that support typedefs inside of classes
-// used as formal arguments to a template class.
-# define ACE_HAS_TEMPLATE_TYPEDEFS
-
-// Compiler supports the 'typename' qualifier.
-# define ACE_HAS_TYPENAME_KEYWORD
-
-// This is legit for A.01.12 and probably at least as far back as A.01.07.
-// Before that, not sure. But you shouldn't be there anyway ;-)
-# define ACE_HAS_USING_KEYWORD
-
-// Platform lacks streambuf "linebuffered ()".
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-// Compiler's template mechanism must see source code (i.e., .C files).
-# define ACE_TEMPLATES_REQUIRE_SOURCE
-
-// Compiler supports template specialization.
-# define ACE_HAS_TEMPLATE_SPECIALIZATION
-
-// Compiler's runtime new throws bad_alloc on out-of-memory condition.
-// If being compiled without exceptions though (+noeh), it doesn't.
-# if defined (ACE_HAS_EXCEPTIONS)
-# define ACE_NEW_THROWS_EXCEPTIONS
-# define ACE_HAS_NEW_NOTHROW
-# endif /* ACE_HAS_EXCEPTIONS */
-
-#endif /* __cplusplus < 199707L */
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_UALARM
-
-#define ACE_HAS_GPERF
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Compiler doesn't handle 'signed char' correctly (used in ace/IOStream.h)
-#define ACE_LACKS_SIGNED_CHAR
-
-#include "ace/config-hpux-10.x.h" /* OS information */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-hpux-10.x.h b/ace/config-hpux-10.x.h
deleted file mode 100644
index 43ef24aa6e7..00000000000
--- a/ace/config-hpux-10.x.h
+++ /dev/null
@@ -1,255 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for HP
-// platforms running HP/UX 10.x. It includes all of the ACE information
-// needed for HP-UX 10.x itself. The compiler-specific information is in
-// config-hpux-10.x-<compiler>.h - they include this file.
-
-#ifndef ACE_CONFIG_H
-#error "You need to use a compiler-specific .h file - they include this file"
-#endif
-
-// Compiling for HPUX.
-#if !defined (HPUX)
-#define HPUX
-#endif /* HPUX */
-#define HPUX_10
-
-#ifndef _HPUX_SOURCE
-#define _HPUX_SOURCE
-#include "ace/pre.h"
-#endif
-
-// Some things are different for 10.10 vs. 10.20 vs. 10.30
-// If the version number wasn't set up by the compiler command line,
-// set up as if it was 10.20.
-#if !defined (HPUX_VERS)
-#define HPUX_VERS 1020
-#endif
-
-#if (HPUX_VERS < 1020) // 10.10
-# define ACE_HAS_BROKEN_MMAP_H
-# define ACE_LACKS_T_ERRNO
-# define ACE_LACKS_TIMESPEC_T
-#elif (HPUX_VERS < 1030) // 10.20
-
- // Platform supports reentrant functions (all the POSIX *_r functions).
-# define ACE_HAS_REENTRANT_FUNCTIONS
- // But this one is not like other platforms
-# define ACE_CTIME_R_RETURNS_INT
- // And _REENTRANT must be set, even if not using threads.
-# if !defined (_REENTRANT)
-# define _REENTRANT
-# endif /* _REENTRANT */
-
-#else // 10.30
-// Don't know yet... probably will be 10.20 but with some different thread
-// settings.
-#endif /* HPUX_VERS tests */
-
-#include /**/ <sys/stdsyms.h>
-#include /**/ <sched.h> /* pthread.h doesn't include this */
-
-extern int h_errno; /* This isn't declared in a header file on HP-UX */
-
-// HP-UX is a POSIX-compliant system - see what's available.
-#include "ace/config-posix.h"
-
-
-////////////////////////////////////////////////////////////////////////////
-//
-// General OS information - see README for more details on what they mean
-//
-///////////////////////////////////////////////////////////////////////////
-
-// HP/UX needs to have these addresses in a special range.
-#define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-// But doesn't have a prototype for syscall()
-#define ACE_LACKS_SYSCALL
-
-// Platform supports POSIX 1.b clock_gettime ()
-#define ACE_HAS_CLOCK_GETTIME
-
-// Prototypes for both signal() and struct sigaction are consistent.
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Compiler/platform has Dirent iterator functions.
-#define ACE_HAS_DIRENT
-
-// Platform supports getpagesize() call
-#define ACE_HAS_GETPAGESIZE
-// But we define this just to be safe
-#define ACE_PAGE_SIZE 4096
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// select's timeval arg is non-const
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-// Compiler/platform supports poll().
-#define ACE_HAS_POLL
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Platform supports the POSIX struct timespec type
-#define ACE_HAS_POSIX_TIME
-
-// Compiler/platform defines the sig_atomic_t typedef
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals
-#define ACE_HAS_SIGINFO_T
-
-// Platform doesn't detect a signal out of range unless it's way out of range.
-#define ACE_HAS_SIGISMEMBER_BUG
-
-// Platform supports ucontext_t (which is used in the extended signal API).
-#define ACE_HAS_UCONTEXT_T
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// SunOS 4 style prototype for gettimeofday
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-
-// HP/UX has an undefined syscall for GETRUSAGE...
-#define ACE_HAS_SYSCALL_GETRUSAGE
-// Note, this only works if the flag is set above!
-#define ACE_HAS_GETRUSAGE
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-#define ACE_HAS_UALARM
-
-// Platform has XPG4 wide character support
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-// Platform lacks readers/writer locks.
-#define ACE_LACKS_RWLOCK_T
-
-// Shared library path/search components
-#define ACE_DLL_SUFFIX ".sl"
-#define ACE_LD_SEARCH_PATH "SHLIB_PATH"
-
-//////////////////////////////////////////////////////////////////////////
-//
-// STREAMS information
-//
-//////////////////////////////////////////////////////////////////////////
-
-// Platform supports STREAMS
-#define ACE_HAS_STREAMS
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-// But the putmsg signature doesn't have it as const...
-#define ACE_LACKS_CONST_STRBUF_PTR
-
-// Platform supports STREAM pipes
-// This is possible, but not by default - need to rebuild the kernel to
-// get them enabled - see pipe(2) and "STREAMS/UX for the HP 9000"
-// #define ACE_HAS_STREAM_PIPES
-
-/////////////////////////////////////////////////////////////////////////
-//
-// TLI information
-//
-////////////////////////////////////////////////////////////////////////
-
-// Platform supports ACE_TLI, including SVR4 facilities.
-#define ACE_HAS_TLI
-
-// t_error's arg is char *, not const char *
-#define ACE_HAS_BROKEN_T_ERROR
-// ACE_HAS_SVR4_TLI should work on HP-UX, but doesn't yet. Riverace
-// problem ID P27.
-//#define ACE_HAS_SVR4_TLI
-// Platform supports ACE_TLI tiuser header.
-#define ACE_HAS_TIUSER_H
-// But it has _terrno() outside the extern "C" stuff.
-#define ACE_HAS_TIUSER_H_BROKEN_EXTERN_C
-// Platform provides ACE_TLI function prototypes.
-#define ACE_HAS_TLI_PROTOTYPES
-// Platform uses a TCP TLI device other than /dev/tcp. Uses XTI only.
-#define ACE_TLI_TCP_DEVICE "/dev/inet_cots"
-
-/////////////////////////////////////////////////////////////////////////
-//
-// Threads information.
-// Threads definitions are controlled by the threads setting in the
-// include/makeinclude/platform_hpux_aCC.GNU file - see that for details.
-// If you build with threads support, the DCE Core subset must be installed
-// from the core OS CD.
-//
-////////////////////////////////////////////////////////////////////////
-
-#ifdef ACE_HAS_THREADS
-# if !defined (ACE_MT_SAFE)
- #define ACE_MT_SAFE 1
-# endif
-
-# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_DRAFT4
-// POSIX real-time semaphore definitions are in the header files, and it
-// will compile and link with this in place, but will not run. HP says
-// the functions are not implemented.
-//# define ACE_HAS_POSIX_SEM
-
-# define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// They forgot a const in the prototype of pthread_cond_timedwait
-# define ACE_LACKS_CONST_TIMESPEC_PTR
-
-// Platform lacks pthread_thr_sigsetmask
-# define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-
-// Platform has no implementation of pthread_condattr_setpshared()
-# define ACE_LACKS_CONDATTR_PSHARED
-
-// Platform lacks pthread_attr_setdetachstate()
-# define ACE_LACKS_SETDETACH
-
-// Platform lacks pthread_attr_setscope
-# define ACE_LACKS_THREAD_PROCESS_SCOPING
-
-// Platform lacks pthread_attr_setstackaddr
-# define ACE_LACKS_THREAD_STACK_ADDR
-
-// If this is not turned on, the CMA wrappers will redefine a bunch of
-// system calls with wrappers - one being select() and it only defines
-// select with int arguments (not fd_set). So, as long as _CMA_NOWRAPPERS_
-// is set, the regular fd_set arg types are used for select().
-// Without threads being compiled in, the fd_set/int thing is not an issue.
-# define _CMA_NOWRAPPERS_
-
-#else
-// If threading is disabled, then timespec_t does not get defined.
-# ifndef ACE_LACKS_TIMESPEC_T
-# define ACE_LACKS_TIMESPEC_T
-# endif
-#endif /* ACE_HAS_THREADS */
-
-// Manually tweaking malloc paddings.
-#define ACE_MALLOC_PADDING 16
-#define ACE_MALLOC_ALIGN 8
-#define ACE_CONTROL_BLOCK_ALIGN_LONGS 0
-#define ACE_PI_CONTROL_BLOCK_ALIGN_LONGS 2
-
-// Turns off the tracing feature.
-// To build with tracing enabled, make sure ACE_NTRACE is not defined
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#include "ace/post.h"
-#endif /* ACE_NTRACE */
diff --git a/ace/config-hpux-11.00.h b/ace/config-hpux-11.00.h
deleted file mode 100644
index 32468e816ae..00000000000
--- a/ace/config-hpux-11.00.h
+++ /dev/null
@@ -1,442 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for HP
-// platforms running HP-UX 11.00 using aC++, CC, or gcc (2.95 and up).
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#if defined (__GNUG__)
-
-// config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
-// this must appear before its #include.
-# define ACE_HAS_STRING_CLASS
-
-# include "ace/config-g++-common.h"
-
-// gcc 2.95.2 supplies the ssize_t typedef.
-# define ACE_HAS_SSIZE_T
-
-// gcc 3.0 claims to have wide character stuff, but (at least the version
-// built by HP) can't actually compile it. It refers to a wctype.h file
-// that's only available with aC++.
-
-#else
-
-// The following configuration section is designed to work for HP
-// platforms running HP/UX 11.x with either of the HP C++ compilers.
-// There isn't a predefined macro for all cases of the compilers that
-// can be used to tell them apart from other compilers (e.g. __KCC, etc.)
-// only to tell C++ from aC++, using the value of __cplusplus.
-//
-// NOTE - HP advises people on 11.x to use aC++ since the older C++ doesn't
-// support 64-bit or kernel threads. So, though this file has the C++ info
-// in it, it's copied from the 10.x file and hasn't been verified.
-
-// There are 2 compiler-specific sections, plus a 3rd for common to both.
-// First is the HP C++ section...
-# if __cplusplus < 199707L
-
-# define ACE_HAS_BROKEN_HPUX_TEMPLATES
-
-// Compiler can't handle calls like foo->operator T *()
-# define ACE_HAS_BROKEN_CONVERSIONS
-
-// Necessary with some compilers to pass ACE_TTY_IO as parameter to
-// DEV_Connector.
-# define ACE_NEEDS_DEV_IO_CONVERSION
-
-// Compiler's template mechanism must see source code (i.e., .C files).
-# define ACE_TEMPLATES_REQUIRE_SOURCE
-
-// Compiler's template mechanism requires the use of explicit C++
-// specializations for all used templates.
-# define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-
-// The HP/UX compiler doesn't support volatile!!!!
-# define volatile
-
-# else // aC++ definitions
-
-// Parts of TAO (at least) use __HP_aCC to detect this compiler, but the
-// macro is not set until A.03.13. If it's not set, set it - it won't be an
-// HP-advertised value, but we don't check the value/version - just whether
-// it's set or not.
-# if !defined (__KCC) && !defined (__HP_aCC)
-# define __HP_aCC
-# endif /* __HP_aCC */
-
-// Precompiler needs extra flags to ignore "invalid #pragma directive"
-# define ACE_CC_PREPROCESSOR_ARGS "-E +W 67"
-
-// Compiler supports ANSI casts
-# define ACE_HAS_ANSI_CASTS
-
-// Compiler can't handle calls like foo->operator T *()
-# define ACE_HAS_BROKEN_CONVERSIONS
-
-// Compiler supports C++ exception handling. It's on by default. If the
-// +noeh compiler option is used to disable exceptions, the compiler defines
-// __HPACC_NOEH.
-# if !defined (__HPACC_NOEH)
-# define ACE_HAS_EXCEPTIONS 1
-# endif
-
-// If the -AA compile option is used, the compiler defines _HP_NAMESPACE_STD.
-// The -AA option enables the 2.0 standard C++ library. If not used, then
-// we have the old, 1.2.1 C++ library.
-# if defined (_HP_NAMESPACE_STD)
-# if defined (ACE_HAS_STANDARD_CPP_LIBRARY)
-# undef ACE_HAS_STANDARD_CPP_LIBRARY
-# endif
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-# undef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB
-# endif
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# else
-# define ACE_USES_OLD_IOSTREAMS
-# endif /* _HP_NAMESPACE_STD */
-
-# define ACE_HAS_TYPENAME_KEYWORD
-
-// Compiler implements templates that support typedefs inside of classes
-// used as formal arguments to a template class.
-# define ACE_HAS_TEMPLATE_TYPEDEFS
-
-// This is legit for A.03.05 - not sure A.03.04, but it should be.
-# define ACE_HAS_USING_KEYWORD
-
-// Platform lacks streambuf "linebuffered ()".
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
-
-// Lack of (and broken) support for placement operator delete is a known
-// bug by HP, at least as of aC++ A.03.10. It may be fixed later, and if so
-// this would change to be a #if against an appropriate value of __HP_aCC
-# define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-
-// Compiler's 'new' throws exceptions on failure, regardless of whether or
-// not exception handling is enabled in the compiler options. Fortunately,
-// new(nothrow_t) is offered.
-# define ACE_NEW_THROWS_EXCEPTIONS
-# define ACE_HAS_NEW_NOTHROW
-
-// Compiler's template mechanism must see source code (i.e., .C files).
-# define ACE_TEMPLATES_REQUIRE_SOURCE
-
-// Compiler supports template specialization.
-# define ACE_HAS_TEMPLATE_SPECIALIZATION
-// ... and uses the template<> syntax
-# define ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-# define ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION
-
-// Preprocessor needs some help with data types
-# if defined (__LP64__)
-# define ACE_SIZEOF_LONG 8
-# else
-# define ACE_SIZEOF_LONG 4
-# endif
-
-// Platform has XPG4 wide character support
-# define ACE_HAS_XPG4_MULTIBYTE_CHAR
-# define ACE_HAS_WCHAR
-# define ACE_SIZEOF_WCHAR _WCHAR_T
-
-# endif /* __cplusplus < 199707L */
-
-// Compiler supports the ssize_t typedef.
-# define ACE_HAS_SSIZE_T
-
-// Compiler doesn't handle 'signed char' correctly (used in ace/IOStream.h)
-# define ACE_LACKS_SIGNED_CHAR
-
-#endif /* __GNUG__, HP */
-
-// KCC Specific Section
-#if defined(__KCC)
-# include "ace/config-kcc-common.h"
-# undef ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION
-# undef ACE_CC_PREPROCESSOR_ARGS
-#endif
-
-//*********************************************************************
-//
-// From here down is the compiler-INdependent OS settings.
-//
-//*********************************************************************
-
-// Compiling for HPUX.
-#if !defined (HPUX)
-#define HPUX
-#endif /* HPUX */
-#define HPUX_11
-
-#ifndef _HPUX_SOURCE
-#define _HPUX_SOURCE
-#endif
-
-#include /**/ <sys/stdsyms.h>
-
-#if defined (_INCLUDE_HPUX_SOURCE)
-# define ACE_HAS_SNPRINTF
-#endif
-
-// HP-UX is a POSIX-compliant system - see what's available.
-#include "ace/config-posix.h"
-
-////////////////////////////////////////////////////////////////////////////
-//
-// General OS information - see README for more details on what they mean
-//
-///////////////////////////////////////////////////////////////////////////
-
-// HP/UX needs to have these addresses in a special range.
-// If this is on a 64-bit model, the default is to use 64-bit addressing.
-// It can also be set so that the mapped region is shareable with 32-bit
-// programs. To enable the 32/64 sharing, comment out the first definition
-// of ACE_DEFAULT_BASE_ADDR and uncomment the two lines after it.
-// Note - there's a compiler bug on aC++ A.03.04 in 64-bit mode which prevents
-// these from working as-is. So, there's some hackery in Naming_Context.cpp
-// and Memory_Pool.cpp which works around it. It requires the
-// ACE_DEFAULT_BASE_ADDRL definition below - make sure it has the same
-// value as what you use for ACE_DEFAULT_BASE_ADDR. This is allegedly fixed
-// in A.03.10 on the June Applications CD.
-#if defined (__LP64__)
-# define ACE_DEFAULT_BASE_ADDR ((char *) 0x0000001100000000)
-//# define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
-//# define ACE_OS_EXTRA_MMAP_FLAGS MAP_ADDR32
-
-# define ACE_DEFAULT_BASE_ADDRL (0x0000001100000000)
-//# define ACE_DEFAULT_BASE_ADDRL (0x80000000)
-#else
-# define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
-#endif /* __LP64__ */
-
-// Platform can do async I/O (aio_*) (set up in config-posix.h)
-// ... but seems to require this in order to keep from hanging. Needs some
-// investigation, maybe with HP. John Mulhern determined this value
-// empirically. YMMV. If it does vary, set it up in your own config.h which
-// then includes the ACE-supplied config.
-#if !defined (ACE_INFINITE)
-# define ACE_INFINITE 10000000
-#endif
-
-// Manually tweak the malloc control block paddings to properly align
-// things.
-#define ACE_MALLOC_PADDING 16
-#define ACE_MALLOC_ALIGN 8
-#define ACE_PI_CONTROL_BLOCK_ALIGN_LONGS 3
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-// But doesn't have a prototype for syscall()
-#define ACE_LACKS_SYSCALL
-
-// Platform supports POSIX 1.b clock_gettime ()
-#define ACE_HAS_CLOCK_GETTIME
-
-// Prototypes for both signal() and struct sigaction are consistent.
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Compiler/platform has Dirent iterator functions.
-#define ACE_HAS_DIRENT
-
-// Platform supports getpagesize() call
-#define ACE_HAS_GETPAGESIZE
-// But we define this just to be safe
-#define ACE_PAGE_SIZE 4096
-
-// Can run gperf on this platform (needed for TAO)
-# define ACE_HAS_GPERF
-
-// Optimize ACE_Handle_Set for select().
-# define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Platform's select() has non-const timeval argument
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-// Compiler/platform supports poll().
-#define ACE_HAS_POLL
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Platform supports the POSIX struct timespec type
-#define ACE_HAS_POSIX_TIME
-
-// Platform supports reentrant functions (all the POSIX *_r functions).
-#define ACE_HAS_REENTRANT_FUNCTIONS
-// ctime_r and asctime_r conform to POSIX.1c (2 param version)
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-
-// HP-UX 11 has reentrant netdb functions. The catch is that the old
-// functions (gethostbyname, etc.) are thread-safe and the _r versions are
-// not used and will be removed at some point. So, define things so
-// the _r versions are not used. This will slow things down a bit due to
-// the extra mutex lock in the ACE_NETDBCALL_RETURN macro, and will be fixed
-// in the future (problem ID P64).
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-
-// Platform has shm_open
-#define ACE_HAS_SHM_OPEN
-
-// Compiler/platform defines the sig_atomic_t typedef
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals
-#define ACE_HAS_SIGINFO_T
-
-// Platform doesn't detect a signal out of range unless it's way out of range.
-#define ACE_HAS_SIGISMEMBER_BUG
-
-#define ACE_HAS_UALARM
-
-// Platform supports ucontext_t (which is used in the extended signal API).
-#define ACE_HAS_UCONTEXT_T
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// SunOS 4 style prototype for gettimeofday
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-
-// Platform supports SVR4 dynamic linking semantics, in 64-bit mode only.
-// When used, this requires -ldl on the ACE library link line.
-#ifdef __LP64__
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#endif
-
-// HP/UX has an undefined syscall for GETRUSAGE...
-#define ACE_HAS_SYSCALL_GETRUSAGE
-// Note, this only works if the flag is set above!
-#define ACE_HAS_GETRUSAGE
-
-// Platform has the sigwait function in a header file
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIGTIMEDWAIT
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// accept() is thread-safe
-#define ACE_HAS_THREAD_SAFE_ACCEPT
-
-// Platform lacks a typedef for timespec_t, but has struct timespec
-#define ACE_LACKS_TIMESPEC_T
-
-// dlopen() takes a char* instead of const char*
-#define ACE_HAS_CHARPTR_DL
-
-// Shared library name/path components
-#define ACE_DLL_SUFFIX ".sl"
-#if defined (__LP64__)
-# define ACE_LD_SEARCH_PATH "LD_LIBRARY_PATH"
-#else
-# define ACE_LD_SEARCH_PATH "SHLIB_PATH"
-#endif /* __LP64__ */
-
-//////////////////////////////////////////////////////////////////////////
-//
-// STREAMS information
-//
-//////////////////////////////////////////////////////////////////////////
-
-// Platform supports STREAMS
-#define ACE_HAS_STREAMS
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-// But the putmsg signature doesn't have it as const...
-// Well, it really does, but it depends on preprocessor defines.
-#define ACE_LACKS_CONST_STRBUF_PTR
-
-// Platform supports STREAM pipes
-// This is possible, but not by default - need to rebuild the kernel to
-// get them enabled - see pipe(2) and "STREAMS/UX for the HP 9000"
-// #define ACE_HAS_STREAM_PIPES
-
-/////////////////////////////////////////////////////////////////////////
-//
-// TLI/XTI information
-//
-////////////////////////////////////////////////////////////////////////
-
-// Platform supports XTI (includes TLI), including SVR4 facilities.
-#define ACE_HAS_TLI
-// ACE_HAS_SVR4_TLI should work on HP-UX, but doesn't yet. Riverace
-// problem ID P27.
-//#define ACE_HAS_SVR4_TLI
-// Platform uses <xti.h>, not tiuser.h
-#define ACE_HAS_XTI
-// But it has _terrno() outside the extern "C" stuff.
-#define ACE_HAS_TIUSER_H_BROKEN_EXTERN_C
-// Platform provides ACE_TLI function prototypes.
-#define ACE_HAS_TLI_PROTOTYPES
-// HP-UX 11.00 (at least at initial releases) has some busted macro defs
-#define ACE_HAS_BROKEN_XTI_MACROS
-// HP-UX 11 conforms to the XPG4 spec, which ACE calls broken for the
-// errmsg not being const...
-#define ACE_HAS_BROKEN_T_ERROR
-// The definitions of TCP_NODELAY and TCP_MAXSEG conflict between
-// sys/xti.h and netinet/tcp.h.
-#define ACE_HAS_CONFLICTING_XTI_MACROS
-
-/////////////////////////////////////////////////////////////////////////
-//
-// Threads information.
-//
-// Use of threads is controlled by the 'threads' argument to make. See
-// include/makeinclude/platform_hpux_aCC.GNU for details. If it's not set,
-// the default is to enable it, since kernel threads are always available
-// on HP-UX 11, as opposed to 10.x where it was optional software.
-//
-////////////////////////////////////////////////////////////////////////
-
-#if defined (ACE_HAS_THREADS)
-# if (ACE_HAS_THREADS == 0)
-# undef ACE_HAS_THREADS
-# endif /* ACE_HAS_THREADS == 0 */
-#else
-# define ACE_HAS_THREADS
-#endif /* ACE_HAS_THREADS */
-
-#if defined (ACE_HAS_THREADS)
-
-# if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-# endif
-
-// HP-UX doesn't define _POSIX_THREADS since it doesn't implement all
-// features (lacks thread priority inheritance and protection), so
-// config-posix.h doesn't get this one...
-# define ACE_HAS_PTHREADS
-
-# define ACE_HAS_PTHREADS_STD
-# define ACE_HAS_PTHREADS_UNIX98_EXT
-# define ACE_HAS_PTHREAD_CONTINUE
-# define ACE_HAS_PTHREAD_SUSPEND
-
-# define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#endif /* ACE_HAS_THREADS */
-
-#define ACE_HAS_POSIX_SEM
-#define ACE_HAS_TERM_IOCTLS
-
-// Turns off the tracing feature.
-// To build with tracing enabled, make sure ACE_NTRACE is not defined
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-hpux11.h b/ace/config-hpux11.h
deleted file mode 100644
index 992b96d1eb5..00000000000
--- a/ace/config-hpux11.h
+++ /dev/null
@@ -1,250 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for HP
-// platforms running HP/UX 11.x. It includes all of the ACE information
-// needed for HP-UX 11.x itself. The compiler-specific information is in
-// config-hpux-11.x-<compiler>.h - they include this file.
-
-#ifndef ACE_CONFIG_H
-#error "You need to use a compiler-specific .h file - they include this file"
-#endif
-
-// Compiling for HPUX.
-#if !defined (HPUX)
-#define HPUX
-#endif /* HPUX */
-#define HPUX_11
-
-#ifndef _HPUX_SOURCE
-#define _HPUX_SOURCE
-#include "ace/pre.h"
-#endif
-
-#include /**/ <sys/stdsyms.h>
-
-////////////////////////////////////////////////////////////////////////////
-//
-// General OS information - see README for more details on what they mean
-//
-///////////////////////////////////////////////////////////////////////////
-
-// HP/UX needs to have these addresses in a special range.
-// If this is on a 64-bit model, the default is to use 64-bit addressing.
-// It can also be set so that the mapped region is shareable with 32-bit
-// programs. To enable the 32/64 sharing, comment out the first definition
-// of ACE_DEFAULT_BASE_ADDR and uncomment the two lines after it.
-// Note - there's a compiler bug on aC++ A.03.04 in 64-bit mode which prevents
-// these from working as-is. So, there's some hackery in Naming_Context.cpp
-// and Memory_Pool.cpp which works around it. It requires the
-// ACE_DEFAULT_BASE_ADDRL definition below - make sure it has the same
-// value as what you use for ACE_DEFAULT_BASE_ADDR. This is allegedly fixed
-// in A.03.10 on the June Applications CD.
-#if defined (__LP64__)
-# define ACE_DEFAULT_BASE_ADDR ((char *) 0x0000001100000000)
-//# define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
-//# define ACE_OS_EXTRA_MMAP_FLAGS MAP_ADDR32
-
-# define ACE_DEFAULT_BASE_ADDRL (0x0000001100000000)
-//# define ACE_DEFAULT_BASE_ADDRL (0x80000000)
-#else
-# define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
-#endif /* __LP64__ */
-
-// Platform can do async I/O (aio_*)
-#define ACE_HAS_AIO_CALLS
-// ... but seems to require this in order to keep from hanging. Needs some
-// investigation, maybe with HP. John Mulhern determined this value
-// empirically. YMMV. If it does vary, set it up in your own config.h which
-// then includes the ACE-supplied config.
-#if !defined (ACE_INFINITE)
-# define ACE_INFINITE 10000000
-#endif
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-// But doesn't have a prototype for syscall()
-#define ACE_LACKS_SYSCALL
-
-// Platform supports POSIX 1.b clock_gettime ()
-#define ACE_HAS_CLOCK_GETTIME
-
-// Prototypes for both signal() and struct sigaction are consistent.
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Compiler/platform has Dirent iterator functions.
-#define ACE_HAS_DIRENT
-
-// Platform supports getpagesize() call
-#define ACE_HAS_GETPAGESIZE
-// But we define this just to be safe
-#define ACE_PAGE_SIZE 4096
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Platform's select() has non-const timeval argument
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-// Compiler/platform supports poll().
-#define ACE_HAS_POLL
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Platform supports the POSIX struct timespec type
-#define ACE_HAS_POSIX_TIME
-
-// Platform supports reentrant functions (all the POSIX *_r functions).
-#define ACE_HAS_REENTRANT_FUNCTIONS
-
-// HP-UX 11 has reentrant netdb functions. The catch is that the old
-// functions (gethostbyname, etc.) are thread-safe and the _r versions are
-// not used and will be removed at some point. So, define things so
-// the _r versions are not used. This will slow things down a bit due to
-// the extra mutex lock in the ACE_NETDBCALL_RETURN macro, and will be fixed
-// in the future (problem ID P64).
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-
-// Compiler/platform defines the sig_atomic_t typedef
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals
-#define ACE_HAS_SIGINFO_T
-
-// Platform doesn't detect a signal out of range unless it's way out of range.
-#define ACE_HAS_SIGISMEMBER_BUG
-
-#define ACE_HAS_UALARM
-
-// Platform supports ucontext_t (which is used in the extended signal API).
-#define ACE_HAS_UCONTEXT_T
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// SunOS 4 style prototype for gettimeofday
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-
-// Platform supports SVR4 dynamic linking semantics, in 64-bit mode only.
-// When used, this requires -ldl on the ACE library link line.
-#ifdef __LP64__
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#endif
-
-// HP/UX has an undefined syscall for GETRUSAGE...
-#define ACE_HAS_SYSCALL_GETRUSAGE
-// Note, this only works if the flag is set above!
-#define ACE_HAS_GETRUSAGE
-
-// Platform has the sigwait function in a header file
-#define ACE_HAS_SIGWAIT
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// accept() is thread-safe
-#define ACE_HAS_THREAD_SAFE_ACCEPT
-
-// Platform has XPG4 wide character support
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-// Platform lacks a typedef for timespec_t, but has struct timespec
-#define ACE_LACKS_TIMESPEC_T
-
-// Shared library name/path components
-#define ACE_DLL_SUFFIX ".sl"
-#if defined (__LP64__)
-# define ACE_LD_SEARCH_PATH "LD_LIBRARY_PATH"
-#else
-# define ACE_LD_SEARCH_PATH "SHLIB_PATH"
-#endif /* __LP64__ */
-
-//////////////////////////////////////////////////////////////////////////
-//
-// STREAMS information
-//
-//////////////////////////////////////////////////////////////////////////
-
-// Platform supports STREAMS
-#define ACE_HAS_STREAMS
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-// But the putmsg signature doesn't have it as const...
-// Well, it really does, but it depends on preprocessor defines.
-#define ACE_LACKS_CONST_STRBUF_PTR
-
-// Platform supports STREAM pipes
-// This is possible, but not by default - need to rebuild the kernel to
-// get them enabled - see pipe(2) and "STREAMS/UX for the HP 9000"
-// #define ACE_HAS_STREAM_PIPES
-
-/////////////////////////////////////////////////////////////////////////
-//
-// TLI/XTI information
-//
-////////////////////////////////////////////////////////////////////////
-
-// Platform supports XTI (includes TLI), including SVR4 facilities.
-#define ACE_HAS_TLI
-// ACE_HAS_SVR4_TLI should work on HP-UX, but doesn't yet. Riverace
-// problem ID P27.
-//#define ACE_HAS_SVR4_TLI
-// Platform uses <xti.h>, not tiuser.h
-#define ACE_HAS_XTI
-// But it has _terrno() outside the extern "C" stuff.
-#define ACE_HAS_TIUSER_H_BROKEN_EXTERN_C
-// Platform provides ACE_TLI function prototypes.
-#define ACE_HAS_TLI_PROTOTYPES
-// HP-UX 11.00 (at least at initial releases) has some busted macro defs
-#define ACE_HAS_BROKEN_XTI_MACROS
-// HP-UX 11 conforms to the XPG4 spec, which ACE calls broken for the
-// errmsg not being const...
-#define ACE_HAS_BROKEN_T_ERROR
-
-/////////////////////////////////////////////////////////////////////////
-//
-// Threads information.
-//
-// Use of threads is controlled by the 'threads' argument to make. See
-// include/makeinclude/platform_hpux_aCC.GNU for details. If it's not set,
-// the default is to enable it, since kernel threads are always available
-// on HP-UX 11, as opposed to 10.x where it was optional software.
-//
-////////////////////////////////////////////////////////////////////////
-
-#if defined (ACE_HAS_THREADS)
-# if (ACE_HAS_THREADS == 0)
-# undef ACE_HAS_THREADS
-# endif /* ACE_HAS_THREADS == 0 */
-#else
-# define ACE_HAS_THREADS
-#endif /* ACE_HAS_THREADS */
-
-#if defined (ACE_HAS_THREADS)
-
-# if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-# endif
-
-# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
-# define ACE_HAS_PTHREADS_UNIX98_EXT
-
-# define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#endif /* ACE_HAS_THREADS */
-
-#define ACE_HAS_POSIX_SEM
-
-// Turns off the tracing feature.
-// To build with tracing enabled, make sure ACE_NTRACE is not defined
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#include "ace/post.h"
-#endif /* ACE_NTRACE */
diff --git a/ace/config-icc-common.h b/ace/config-icc-common.h
deleted file mode 100644
index 3887c918683..00000000000
--- a/ace/config-icc-common.h
+++ /dev/null
@@ -1,60 +0,0 @@
-// $Id$
-
-#ifndef ACE_LINUX_ICC_COMMON_H
-#define ACE_LINUX_ICC_COMMON_H
-#include "ace/pre.h"
-
-# define ACE_HAS_ANSI_CASTS
-# define ACE_HAS_CPLUSPLUS_HEADERS
-# define ACE_HAS_EXPLICIT_KEYWORD
-# define ACE_HAS_MUTABLE_KEYWORD
-# define ACE_HAS_STDCPP_STL_INCLUDES
-# define ACE_HAS_TEMPLATE_TYPEDEFS
-# define ACE_HAS_TYPENAME_KEYWORD
-# define ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_HAS_TEMPLATE_SPECIALIZATION
-# define ACE_HAS_USING_KEYWORD
-# define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# define ACE_HAS_STRING_CLASS
-
-// __EXCEPTIONS is defined with -fexceptions, the egcs default. It
-// is not defined with -fno-exceptions, the ACE default for g++.
-// ACE_HAS_EXCEPTIONS is defined in
-// include/makeinclude/wrapper_macros.GNU, so this really isn't
-// necessary. Just in case . . .
-# if defined (__EXCEPTIONS) && !defined (ACE_HAS_EXCEPTIONS)
-# define ACE_HAS_EXCEPTIONS
-# endif /* __EXCEPTIONS && ! ACE_HAS_EXCEPTIONS */
-
-# if defined (ACE_HAS_EXCEPTIONS)
-# define ACE_NEW_THROWS_EXCEPTIONS
-# endif /* ACE_HAS_EXCEPTIONS */
-
-#if (defined (i386) || defined (__i386__)) && !defined (ACE_SIZEOF_LONG_DOUBLE)
-# define ACE_SIZEOF_LONG_DOUBLE 12
-#endif /* i386 */
-
-#if !defined (__MINGW32__) && (defined (i386) || defined (__i386__))
- // If running an Intel, assume that it's a Pentium so that
- // ACE_OS::gethrtime () can use the RDTSC instruction. If running a
- // 486 or lower, be sure to comment this out. (If not running an
- // Intel CPU, this #define will not be seen because of the i386
- // protection, so it can be ignored.)
-# define ACE_HAS_PENTIUM
-#endif /* i386 */
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
- // We define it with a -D with make depend.
-# define ACE_LACKS_PRAGMA_ONCE
-#endif /* ! ACE_LACKS_PRAGMA_ONCE */
-
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-
-# if defined (ACE_HAS_EXCEPTIONS)
-# define ACE_NEW_THROWS_EXCEPTIONS
-# endif /* ACE_HAS_EXCEPTIONS */
-
-#include "ace/post.h"
-#endif /* ACE_LINUX_ICC_COMMON_H */
diff --git a/ace/config-integritySCA.h b/ace/config-integritySCA.h
deleted file mode 100644
index fa2c07fd824..00000000000
--- a/ace/config-integritySCA.h
+++ /dev/null
@@ -1,281 +0,0 @@
-#ifndef ACE_INT_CONFIG_H
-#define ACE_INT_CONFIG_H
-
-/*
- * This config.h file is for version 4.0.x of the
- * Integrity RTOS with SCA from Green Hills Software
- * http://www.ghs.com/products/rtos/integrity.html
- *
- * $Id$
- */
-
-#define ghs
-/* compilation defines */
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREUID
-#define ACE_LACKS_SETREGID
-#ifndef ACE_HAS_EXCEPTIONS
- #define ACE_HAS_EXCEPTIONS
-#endif
-#define ACE_NEW_THROWS_EXCEPTIONS
-#define ACE_HAS_STANDARD_CPP_LIBRARY 1
-#define ACE_HAS_ANSI_CASTS
-#define ACE_HAS_TEMPLATE_SPECIALIZATION
-#define ACE_HAS_ANSI_CASTS
-#if 0
-#define ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA
-#endif
-#define ACE_TEMPLATES_REQUIRE_SOURCE 1
-#define ACE_HAS_TEMPLATE_TYPEDEFS
-#define TAO_USE_SEQUENCE_TEMPLATES
-#define ACE_HAS_USING_KEYWORD
-#define ACE_NEEDS_FUNC_DEFINITIONS
-#define _REENTRANT
-#define ACE_MT_SAFE 1
-#define __ACE_INLINE__
-#define ACE_HAS_ONE_DEFINITION_RULE
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-#define ACE_HAS_SHM_OPEN
-
-/***** Operating System Defines *****/
-
-/***** ANSI defines *****/
-#define ACE_LACKS_TEMPNAM /* believe it or not, this is ANSI C */
-#define ACE_HAS_STRERROR
-
-
-#define ACE_LACKS_SENDMSG
-
-/***** End Stack Defines *****/
-
-
-/* SCA STUFF */
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIGACTION
-#define ACE_HAS_SIGINFO_T
-#define ACE_LACKS_SIGINFO_H
-#define ACE_LACKS_UCONTEXT_H
-#define ACE_HAS_SIG_C_FUNC
-#define ACE_LACKS_SI_ADDR
-#define ACE_HAS_AIO_CALLS
-
-#define ACE_HAS_POSIX_NONBLOCK
-#define ACE_HAS_DIRENT
-
-#define ACE_HAS_THREADS
-
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
-/***** End Threading Defines *****/
-
-/***** ACE Specific Features *****/
-#define ACE_NTRACE 1
-/***** end ACE Specific Features *****/
-
-/***** Hardware Defines *****/
-#define ACE_PAGE_SIZE 4096
-/***** End Hardware Defines *****/
-
-/****** SYSV_IPC STUFF *****/
-#define ACE_LACKS_KEY_T
-
-/****** Posix Defines *****/
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_POSIX_SEM
-#define ACE_HAS_STRDUP_EMULATION
-#define ACE_HAS_MSG
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_EXEC
-#define ACE_LACKS_FORK
-#define ACE_LACKS_MKFIFO
-#define ACE_LACKS_MKTEMP
-#define ACE_LACKS_MKSTEMP
-#if 0
-#define ACE_LACKS_MMAP
-#endif
-#define ACE_LACKS_MPROTECT
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_LACKS_PIPE
-#define ACE_LACKS_RLIMIT
-#define ACE_LACKS_RPC_H
-#define ACE_LACKS_RECVMSG
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SEMBUF_T
-#if 0
-#define ACE_LACKS_SOCKETPAIR
-#endif
-#define ACE_LACKS_SOME_POSIX_PROTOTYPES
-#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-#define ACE_LACKS_USER
-#if 0
-#define ACE_LACKS_STAT
-#endif
-#define ACE_LACKS_FILE_FCNTL
-#define ACE_LACKS_FCNTL
-#define ACE_LACKS_SYS_FILE_H
-#if 0
-#define ACE_LACKS_DIRECTORY_FUNCTIONS
-#define ACE_LACKS_UNLINK
-#endif
-#define ACE_LACKS_UMASK
-#if 0
-#define ACE_LACKS_CREAT
-#define ACE_LACKS_TRUNCATE
-#define ACE_LACKS_DUP
-#endif
-#define ACE_LACKS_SEEK
-#define ACE_LACKS_SHARED_MEMORY
-#define ACE_LACKS_MSYNC
-#if 0
-#define ACE_LACKS_SIGNALS
-#endif
-#define ACE_LACKS_PID_STUFF
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_IPC_H
-#define ACE_LACKS_PARAM_H
-#define ACE_LACKS_SYSV_MSG_H
-#define ACE_LACKS_UTSNAME_T
-#define ACE_LACKS_ISATTY
-#define ACE_LACKS_GETOPT
-#define ACE_LACKS_STRCASECMP
-#define ACE_HAS_SYS_BSDTIME_H
-#define ACE_LACKS_TRUNCATE
-#define ACE_LACKS_PWD_FUNCTIONS
-#define ACE_LACKS_UNIX_SIGNALS
-#if 0
-#define ACE_LACKS_ACCESS
-#define ACE_LACKS_UNAME
-#endif
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_LACKS_SYSV_SHMEM
-#define ACE_LACKS_PUTENV
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-#define ACE_LACKS_SETSCHED
-/* #define ACE_LACKS_SYS_NERR */
-#if 0
-#define ACE_LACKS_PTHREAD_CANCEL
-#define ACE_LACKS_PTHREAD_KILL
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_PTHREAD_CLEANUP
-#endif
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_WRITEV
-#define ACE_LACKS_READV
-/* below refers to fcntl style locking */
-#define ACE_LACKS_FILELOCKS
-
-/***** Not tied to standards AFAIK ****/
-#define ACE_LACKS_MADVISE /* paging optimization not needed with INTEGRITY */
-#define ACE_LACKS_MALLOC_H /* netbsd's just includes stdlib.h */
-#define ACE_LACKS_MEMORY_H /* netbsd's just includes string.h */
-
-/***** STUFF INTEGRITY 4.0.8 APPEARS TO SUPPORT ****/
-/* note, possibly untested with ace */
-#if 0
-#define ACE_LACKS_GETSERVBYNAME
-#endif
-
-/***** TAO STUFF ****/
-#define TAO_USE_DOTTED_DECIMAL_ADDRESSES 1
-
-#include <INTEGRITY.h>
-
-#include <time.h>
-
-typedef void (*__sighandler_t)(int);
-
-extern "C"
-{
- inline int isatty(int) { return 0; }
-}
-
-#if 0
-struct stat
-{
- unsigned int st_atime; // time of last access
- unsigned int st_mtime; // time of last data modification
- unsigned int st_size; // file size, in bytes
- unsigned int st_mode;
- unsigned int st_nlink;
-};
-
-#define MAXNAMLEN 1024
-#define S_IRUSR 1
-#define S_IRGRP 2
-#define S_IROTH 4
-#define S_IWUSR 8
-#define S_IWGRP 16
-#define S_IWOTH 32
-#endif
-
-#ifdef ppc
-#define ACE_HAS_POWERPC_TIMER
-#endif
-
-typedef union sigval sigval_t;
-
-/* MIKEC Addtions */
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#include <sys/uio.h> // needed to define iovec
-#define ACE_LACKS_READLINK
-#define ACE_LACKS_GETPPID
-#define NSIG (SIGRTMAX+1)
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-#define ACE_USE_RCSID 0
-#if 0
-typedef int mode_t;
-typedef int gid_t;
-typedef int uid_t;
-#endif
-#define ACE_LACKS_CUSERID
-#if 0
-#define ACE_LACKS_FSYNC
-#define ACE_LACKS_CHDIR
-#define ACE_LACKS_LSTAT
-#endif
-#define ACE_NEEDS_HUGE_THREAD_STACKSIZE 0x20000
-// #include <stdio.h>
-#define fileno(file) ((file)->io_channel) //Hack to get Svc_Conf_l.cpp compiled
-#define ACE_DEFAULT_THREAD_PRIORITY 127
-#define ACE_HAS_ATTR_SETSCHED
-#if 0
-#define ACE_LACKS_INHERIT_SCHED
-#endif
-#define PRI_FIFO_MIN 1
-#define PRI_FIFO_MAX 127
-#define ACE_THR_PRI_FIFO_DEF 127
-#define PRI_RR_MIN 1
-#define PRI_RR_MAX 127
-#define ACE_THR_PRI_RR_DEF 127
-#define PRI_OTHER_MIN 1
-#define PRI_OTHER_MAX 127
-#define ACE_THR_PRI_OTHER_DEF 127
-#define ACE_PTHREAD_RETURN_ON_EXIT
-#undef ACE_LACKS_UNLINK
-
-#define ACE_HAS_TIMED_MESSAGE_BLOCKS
-
-extern "C" {
-int unlink(const char *);
-}
-
-#define ACE_LACKS_SETSID
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY /* TZ is ignored */
-#define ACE_LACKS_UNIX_SYSLOG
-#define ACE_LACKS_TELLDIR
-#define ACE_LACKS_SEEKDIR
-#if 0
-#define ACE_LACKS_REWINDDIR
-#endif
-#define ACE_LACKS_GETHOSTENT
-
-
-/* end MIKEC Addtions */
-
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-irix5.2.h b/ace/config-irix5.2.h
deleted file mode 100644
index 35098a8170c..00000000000
--- a/ace/config-irix5.2.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for the SGI
-// Indigo2EX running Irix 5.2 platform using the gcc v2.6.x compiler
-// and libg++ v2.6.x.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// Platform supports STREAM pipes (note that this is disabled by
-// default, see the manual page on pipe(2) to find out how to enable
-// it).
-//#define ACE_HAS_STREAM_PIPES
-
-// Platform supports getpagesize() call.
-#define ACE_HAS_GETPAGESIZE
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_SIGWAIT
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Platform requires void * for mmap().
-#define ACE_HAS_VOIDPTR_MMAP
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-#define ACE_SIZEOF_LONG_DOUBLE 8
-
-#define IRIX5
-#define ACE_HAS_ALLOCA
-// Compiler/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-#define ACE_HAS_BSTRING
-#define ACE_HAS_GETRUSAGE
-#define ACE_HAS_POSIX_NONBLOCK
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_POLL
-#define ACE_HAS_PROC_FS
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-#define ACE_HAS_STREAMS
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRERROR
-#define ACE_HAS_STRBUF_T
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_SVR4_SIGNAL_T
-#define ACE_HAS_SYS_SIGLIST
-#define ACE_HAS_SYS_FILIO_H
-#define ACE_HAS_SEMUN
-#define ACE_NEEDS_DEV_IO_CONVERSION
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-irix5.3-g++.h b/ace/config-irix5.3-g++.h
deleted file mode 100644
index 554167e9ec3..00000000000
--- a/ace/config-irix5.3-g++.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for the SGI
-// Indigo2EX running Irix 5.3 platform using the GNU C++ Compiler
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
-// this must appear before its #include.
-#define ACE_HAS_STRING_CLASS
-
-#include "ace/config-g++-common.h"
-
-#define ACE_SIZEOF_LONG_DOUBLE 8
-
-#define ACE_LACKS_SYSTIME_H
-// Platform supports getpagesize() call.
-#define ACE_HAS_GETPAGESIZE
-#define IRIX5
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_DIRENT
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Platform requires void * for mmap().
-#define ACE_HAS_VOIDPTR_MMAP
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Compiler/platform supports alloca()
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-
-// IRIX5 needs to define bzero() in this odd file <bstring.h>
-#define ACE_HAS_BSTRING
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Denotes that GNU has cstring.h as standard
-// which redefines memchr()
-#define ACE_HAS_GNU_CSTRING_H
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Platform supports POSIX timers via timestruc_t.
-#define ACE_HAS_POSIX_TIME
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Platform contains <poll.h>.
-#define ACE_HAS_POLL
-
-// Platform supports the /proc file system.
-#define ACE_HAS_PROC_FS
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals.
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Platform supports STREAM pipes (note that this is disabled by
-// default, see the manual page on pipe(2) to find out how to enable
-// it).
-// #define ACE_HAS_STREAM_PIPES
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Compiler/platform supports SVR4 signal typedef.
-#define ACE_HAS_IRIX_53_SIGNALS
-
-// Compiler/platform supports sys_siglist array.
-// #define ACE_HAS_SYS_SIGLIST
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-irix5.3-sgic++.h b/ace/config-irix5.3-sgic++.h
deleted file mode 100644
index 269bab43bb6..00000000000
--- a/ace/config-irix5.3-sgic++.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work
-// for the SGI Indigo2EX running Irix 5.3 platform using
-// the SGI C++ Compiler.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#define IRIX5
-
-#include <sys/bsd_types.h>
-#define _BSD_TYPES
-
-#define ACE_SIZEOF_LONG_DOUBLE 8
-
-#define ACE_LACKS_SYSTIME_H
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Platform supports getpagesize() call.
-#define ACE_HAS_GETPAGESIZE
-
-#define ACE_LACKS_SYSTIME_H
-#define ACE_HAS_SIGWAIT
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Platform requires void * for mmap().
-#define ACE_HAS_VOIDPTR_MMAP
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Compiler/platform supports alloca()
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-
-// IRIX5 needs to define bzero() in this odd file <bstring.h>
-#define ACE_HAS_BSTRING
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Platform supports POSIX timers via timestruc_t.
-#define ACE_HAS_POSIX_TIME
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Platform contains <poll.h>.
-#define ACE_HAS_POLL
-
-// No multi-threading so use poll() call
-// - for easier debugging, if nothing else
-// #define ACE_USE_POLL
-
-// Platform supports the /proc file system.
-// #define ACE_HAS_PROC_FS
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals.
-#define ACE_HAS_SIGINFO_T
-// #define ACE_HAS_UCONTEXT_T
-#define ACE_LACKS_UCONTEXT_H
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Platform supports STREAM pipes (note that this is disabled by
-// default, see the manual page on pipe(2) to find out how to enable
-// it).
-// #define ACE_HAS_STREAM_PIPES
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Compiler/platform supports SVR4 signal typedef.
-#define ACE_HAS_IRIX_53_SIGNALS
-
-// Compiler/platform supports sys_siglist array.
-// #define ACE_HAS_SYS_SIGLIST
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-#define ACE_NEEDS_DEV_IO_CONVERSION
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-irix6.5.x-sgic++.h b/ace/config-irix6.5.x-sgic++.h
deleted file mode 100644
index a2f0f328b0a..00000000000
--- a/ace/config-irix6.5.x-sgic++.h
+++ /dev/null
@@ -1,18 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-// Use this file for IRIX 6.5.x
-
-#ifndef ACE_CONFIG_IRIX65X_H
-#define ACE_CONFIG_IRIX65X_H
-#include "ace/pre.h"
-
-// Include IRIX 6.[234] configuration
-#include "ace/config-irix6.x-sgic++.h"
-
-// Irix 6.5 man pages show that they exist
-#undef ACE_LACKS_CONDATTR_PSHARED
-#undef ACE_LACKS_MUTEXATTR_PSHARED
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_IRIX65X_H */
diff --git a/ace/config-irix6.x-common.h b/ace/config-irix6.x-common.h
deleted file mode 100644
index e1273d4f943..00000000000
--- a/ace/config-irix6.x-common.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/* -*- C++ -*- */
-//
-// $Id$
-//
-// This file contains the common configuration options for both
-// SGI/MIPSPro C++ and g++ under IRIX 6.X
-//
-#ifndef ACE_CONFIG_IRIX6X_COMMON_H
-
-#if !(defined(ACE_CONFIG_H) || defined(ACE_CONFIG_IRIX6X_NTHR_H))
-#error "This file may only be included via config.h or config-irix6.x-nothreads.h"
-#endif
-
-#if (defined(ACE_CONFIG_H) && defined(ACE_CONFIG_IRIX6X_NTHR_H))
-#error "May only be included via config.h *OR* config-irix6.x-nothreads.h, not both!"
-#endif
-
-// The Irix 6.x float.h doesn't allow us to distinguish between a
-// double and a long double. So, we have to hard-code this. Thanks
-// to Bob Laferriere <laferrie@gsao.med.ge.com> for figuring it out.
-#if defined (_MIPS_SIM) /* 6.X System */
-# include <sgidefs.h>
-# if defined (__GNUC__) /* GNU Compiler reports long doubles as 8 bytes */
-# define ACE_SIZEOF_LONG_DOUBLE 8
-# elif defined (_MIPS_SIM_NABI32) && (_MIPS_SIM == _MIPS_SIM_NABI32)
-# define ACE_SIZEOF_LONG_DOUBLE 16
-# elif defined (_MIPS_SIM_ABI32) && (_MIPS_SIM == _MIPS_SIM_ABI32)
-# define ACE_SIZEOF_LONG_DOUBLE 8
-# elif defined (_MIPS_SIM_ABI64) && (_MIPS_SIM == _MIPS_SIM_ABI64)
-# define ACE_SIZEOF_LONG_DOUBLE 16
-# elif !defined (ACE_SIZEOF_LONG_DOUBLE)
-# define ACE_SIZEOF_LONG_DOUBLE 8
-# endif
-#else
-# define ACE_SIZEOF_LONG_DOUBLE 8 /* 5.3 System */
-#endif
-
-// petern, Next part of it:
-
-// Platform supports getpagesize() call.
-#define ACE_HAS_GETPAGESIZE
-
-// Platform has no implementation of pthread_condattr_setpshared(),
-// even though it supports pthreads! (like Irix 6.2)
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_MUTEXATTR_PSHARED
-
-// Platform/compiler has the sigwait(2) prototype
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIGTIMEDWAIT
-#define ACE_HAS_SIGSUSPEND
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Platform requires void * for mmap().
-#define ACE_HAS_VOIDPTR_MMAP
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Compiler/platform supports alloca()
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-
-// Irix needs to define bzero() in this odd file <bstring.h>
-#define ACE_HAS_BSTRING
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Platform contains <poll.h>.
-#define ACE_HAS_POLL
-
-// No multi-threading so use poll() call
-// - for easier debugging, if nothing else
-// #define ACE_USE_POLL
-
-// Platform supports the /proc file system.
-#define ACE_HAS_PROC_FS
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals.
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Platform supports STREAM pipes (note that this is disabled by
-// default, see the manual page on pipe(2) to find out how to enable
-// it).
-// #define ACE_HAS_STREAM_PIPES
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-#define ACE_HAS_STRPTIME
-
-//**************************************************************
-// Not so sure how next lines should look like
-
-// Platform supports POSIX timers via timestruc_t.
-#define ACE_HAS_POSIX_TIME
-#define ACE_LACKS_SYSTIME_H
-
-//**************************************************************
-
-// IRIX 6.4 and below do not support reentrant netdb functions
-// (getprotobyname_r, getprotobynumber_r, gethostbyaddr_r,
-// gethostbyname_r, getservbyname_r).
-#if ACE_IRIX_VERS <= 64 && !defined (ACE_HAS_NETDB_REENTRANT_FUNCTIONS)
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#endif /* ACE_HAS_NETDB_REENTRANT_FUNCTIONS */
-
-#define ACE_HAS_DIRENT
-// Unless the thread enabled version is used the readdir_r interface
-// does not get defined in IRIX 6.2
-#define ACE_LACKS_READDIR_R
-#define ACE_LACKS_RWLOCK_T
-
-#define ACE_HAS_GPERF
-
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_BROKEN_DGRAM_SENDV
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-#define ACE_PI_CONTROL_BLOCK_ALIGN_LONGS 2
-
-// Enables use of POSIX termios struct
-#define ACE_USES_NEW_TERMIOS
-
-// IRIX 6.5 supports AIO
-#define ACE_HAS_AIO_CALLS
-#define ACE_POSIX_AIOCB_PROACTOR
-
-#endif /* ACE_CONFIG_IRIX6X_COMMON_H */
diff --git a/ace/config-irix6.x-g++.h b/ace/config-irix6.x-g++.h
deleted file mode 100644
index 1317197244e..00000000000
--- a/ace/config-irix6.x-g++.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for the SGI
-// Indigo2EX running Irix 6.2 platform using the GNU C++ Compiler
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
-// this must appear before its #include.
-#define ACE_HAS_STRING_CLASS
-
-#include "ace/config-g++-common.h"
-
-// Platform supports the very odd IRIX 6.2 threads...
-#define ACE_HAS_THREADS
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif /* !ACE_MT_SAFE */
-#define ACE_HAS_IRIX62_THREADS
-
-// IRIX 6.2 supports a variant of POSIX Pthreads, supposedly POSIX 1c
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
-
-#include "ace/config-irix6.x-common.h"
-
-// Needed for the threading stuff?
-#include /**/ <sched.h>
-#include /**/ <task.h>
-
-#define PTHREAD_MIN_PRIORITY PX_PRIO_MIN
-#define PTHREAD_MAX_PRIORITY PX_PRIO_MAX
-
-// Compiler/platform has thread-specific storage
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-#define IRIX6
-
-// Denotes that GNU has cstring.h as standard
-// which redefines memchr()
-#define ACE_HAS_GNU_CSTRING_H
-
-// Compiler/platform supports SVR4 signal typedef.
-#define ACE_HAS_IRIX_53_SIGNALS
-
-// Compiler/platform supports sys_siglist array.
-//#define ACE_HAS_SYS_SIGLIST
-
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-irix6.x-kcc.h b/ace/config-irix6.x-kcc.h
deleted file mode 100644
index 5b1ba941c69..00000000000
--- a/ace/config-irix6.x-kcc.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for the SGI
-// Indigo2EX running Irix 6.5 platform using the KAI C++ compiler.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#include "ace/config-kcc-common.h"
-
-
-// Platform supports the very odd IRIX 6.2 threads...
-#define ACE_HAS_THREADS
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif /* !ACE_MT_SAFE */
-#define ACE_HAS_IRIX62_THREADS
-
-// IRIX 6.2 supports a variant of POSIX Pthreads, supposedly POSIX 1c
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
-
-#include "ace/config-irix6.x-common.h"
-
-// Needed for the threading stuff?
-#include /**/ <sched.h>
-#include /**/ <task.h>
-
-#define PTHREAD_MIN_PRIORITY PX_PRIO_MIN
-#define PTHREAD_MAX_PRIORITY PX_PRIO_MAX
-
-// Compiler/platform has thread-specific storage
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// The pthread_cond_timedwait call does not reset the timer.
-#define ACE_LACKS_COND_TIMEDWAIT_RESET 1
-
-#define ACE_HAS_STRING_CLASS
-#ifndef IRIX6
-# define IRIX6
-#endif
-
-// Denotes that GNU has cstring.h as standard
-// which redefines memchr()
-#define ACE_HAS_GNU_CSTRING_H
-
-// Compiler/platform supports SVR4 signal typedef.
-#define ACE_HAS_IRIX_53_SIGNALS
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Compiler/platform supports sys_siglist array.
-//#define ACE_HAS_SYS_SIGLIST
-
-// This gets defined in config-irix6.x-common.h, but kcc does support this.
-#undef ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-
-// Shift this --- otherwise, it lands on top of libKCC.
-#define ACE_DEFAULT_BASE_ADDR ((char*) 0x0500000)
-
-// kcc 4.0d miscompiles memchr_emulation on irix at +K3 optimization.
-// So just use the library version instead.
-#define ACE_HAS_MEMCHR
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-irix6.x-sgic++-nothreads.h b/ace/config-irix6.x-sgic++-nothreads.h
deleted file mode 100644
index bc4740e96d4..00000000000
--- a/ace/config-irix6.x-sgic++-nothreads.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// This is the config file for IRIX 6.2, 6.4 and hopefully 6.3, using
-// the SGI C++ compiler (7.1 or higher).
-
-// For IRIX 6.2 there are several patches that should be applied to
-// get reliable operation with multi-threading and exceptions.
-// Specifically you should get a reasonable current IRIX, Compiler
-// and POSIX patch-sets.
-
-// For IRIX 6.[34] it's less critical, but it's still recommended
-// that you apply the applicable patch-sets (IRIX and Compiler I believe).
-
-// These patches are updated frequently, so you should ask your support
-// contact or search SGI's web site (http://www.sgi.com) for the latest
-// version.
-
-// Since this files gets included from config-irix6.x-sgic++.h we
-// cannot use ACE_CONFIG_H here.
-#ifndef ACE_CONFIG_IRIX6X_NTHR_H
-#define ACE_CONFIG_IRIX6X_NTHR_H
-#include "ace/pre.h"
-
-// Include this file to set the _MIPS_SIM*ABI* macros.
-#include /**/ <sgidefs.h>
-#include "ace/config-irix6.x-common.h"
-
-#define ACE_HAS_SGIDLADD
-#define ACE_HAS_P_READ_WRITE
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_HAS_SETOWN
-#define ACE_HAS_SYSENT_H
-#define ACE_HAS_SYSINFO
-#define ACE_HAS_UALARM
-
-// Platform has support for multi-byte character support compliant
-// with the XPG4 Worldwide Portability Interface wide-character
-// classification.
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-// We need to setup a very high address or Naming_Test won't run.
-#define ACE_DEFAULT_BASE_ADDR ((char *) (1024U * 1024 * 1024))
-
-#define ACE_LACKS_SIGNED_CHAR
-
-// Platform supports reentrant functions (i.e., all the POSIX *_r
-// functions).
-#define ACE_HAS_REENTRANT_FUNCTIONS
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Platform has terminal ioctl flags like TCGETS and TCSETS.
-#define ACE_HAS_TERM_IOCTLS
-
-// Platform does not support reentrant password file accessor functiions.
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
-
-// uses ctime_r & asctime_r with only two parameters vs. three
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-
-// Prototypes for both signal() and struct sigaction are consistent.
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-
-// The following three should be enabled/disabled together.
-#if _COMPILER_VERSION >= 720
-#define ACE_HAS_TEMPLATE_SPECIALIZATION
-#define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-#define ACE_HAS_USING_KEYWORD
-# ifdef _STANDARD_C_PLUS_PLUS
-# define ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-# define ACE_HAS_TYPENAME_KEYWORD
-# endif /* _STANDARD_C_PLUS_PLUS */
-#else
-#define ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA
-#endif /* _COMPILER_VERSION >= 720 */
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-#define ACE_NEEDS_FUNC_DEFINITIONS
-
-// Platform supports STREAM pipes (note that this is disabled by
-// default, see the manual page on pipe(2) to find out how to enable
-// it).
-// #define ACE_HAS_STREAM_PIPES
-
-#if defined (_COMPILER_VERSION)
-# define ACE_CC_NAME "SGI/MIPSPro"
-# define ACE_CC_MAJOR_VERSION (_COMPILER_VERSION / 100)
-# define ACE_CC_MINOR_VERSION (_COMPILER_VERSION % 100)
-# define ACE_CC_BETA_VERSION (0)
-#endif /* _COMPILER_VERSION */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_IRIX6X_NTHR_H */
diff --git a/ace/config-irix6.x-sgic++.h b/ace/config-irix6.x-sgic++.h
deleted file mode 100644
index 06001f1ca2f..00000000000
--- a/ace/config-irix6.x-sgic++.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Use this file for IRIX 6.[234] if you have the pthreads patches
-// installed.
-
-#ifndef ACE_CONFIG_IRIX6X_H
-#define ACE_CONFIG_IRIX6X_H
-#include "ace/pre.h"
-
-// Include basic (non-threaded) configuration
-#include "ace/config-irix6.x-sgic++-nothreads.h"
-
-#define ACE_HAS_UALARM
-
-// Scheduling functions are declared in <sched.h>
-#define ACE_NEEDS_SCHED_H
-
-// Compile using multi-thread libraries by default
-#if !defined (ACE_MT_SAFE)
- #define ACE_MT_SAFE 1
-#endif /* ACE_MT_SAFE */
-
-#if (ACE_MT_SAFE != 0)
-
-// Add threading support
-
-#define ACE_HAS_IRIX62_THREADS
-
-// Needed for the threading stuff?
-#include /**/ <task.h>
-#define PTHREAD_MIN_PRIORITY PX_PRIO_MIN
-#define PTHREAD_MAX_PRIORITY PX_PRIO_MAX
-
-// ACE supports threads.
-#define ACE_HAS_THREADS
-
-// Platform has no implementation of pthread_condattr_setpshared(),
-// even though it supports pthreads! (like Irix 6.2)
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_MUTEXATTR_PSHARED
-
-// IRIX 6.2 supports a variant of POSIX Pthreads, supposedly POSIX 1c
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
-
-// Compiler/platform has thread-specific storage
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// The pthread_cond_timedwait call does not reset the timer.
-#define ACE_LACKS_COND_TIMEDWAIT_RESET 1
-
-// When threads are enabled READDIR_R is supported on IRIX.
-#undef ACE_LACKS_READDIR_R
-
-#endif /* (ACE_MT_SAFE == 0) */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_IRIX6X_H */
diff --git a/ace/config-kcc-common.h b/ace/config-kcc-common.h
deleted file mode 100644
index 3f0b9c6d00b..00000000000
--- a/ace/config-kcc-common.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// This configuration file is designed to be included by another,
-// specific configuration file. It provides config information common
-// to all KAI C++ platforms (KCC version 3.3a).
-//
-// KAI C++ 3.2d for Linux had a known problem with being unable to call
-// static object constructors and destructors within shared libraries.
-//
-// KAI C++ 3.3a requires glibc 2. This configuration was tested with
-// egcs 1.0.2 and glibc-2.0.7-7. The KCC_BASE/bin/KCC script requires
-// the following settings for i386-linux to work:
-//
-//case i386-linux:
-// set common_na = "-Dlinux -Dunix -Di386"
-// set cpp_defines = "-D__CPLUSPLUS -D__inline__=inline -D__inline=inline -D__signed__=signed"
-// set c_defines = "-D__inline__= -D__inline= -D__signed__=signed"
-// set knr_c_defines = "-D__inline__= -D__inline= -D__signed__="
-// set ansi_c_defines = ""
-// breaksw
-//
-
-#ifndef ACE_KCC_COMMON_H
-#define ACE_KCC_COMMON_H
-#include "ace/pre.h"
-
-#if (defined (i386) || defined (__i386__)) && !defined (ACE_SIZEOF_LONG_DOUBLE)
-# define ACE_SIZEOF_LONG_DOUBLE 12
-#endif /* i386 */
-
-#if defined (i386) || defined (__i386__)
- // If running an Intel, assume that it's a Pentium so that
- // ACE_OS::gethrtime () can use the RDTSC instruction. If
- // running a 486 or lower, be sure to comment this out.
- // (If not running an Intel CPU, this #define will not be seen
- // because of the i386 protection, so it can be ignored.)
-# define ACE_HAS_PENTIUM
-#endif /* i386 */
-
-// ****** Need to move this somewhere else
-// #define TAO_YY_BREAK
-
-#define ACE_SIZEOF_LONG_LONG 8
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-
-#define ACE_HAS_TEMPLATE_SPECIALIZATION
-#define ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-#define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-
-// Compiler doesn't support static data member templates.
-//#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
-
-#define ACE_HAS_USING_KEYWORD
-
-// Define this if you want to use the standard C++ library
-#define ACE_HAS_STANDARD_CPP_LIBRARY 1
-#define ACE_HAS_STRING_CLASS
-#define ACE_HAS_STDCPP_STL_INCLUDES 1
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-#define ACE_LACKS_IOSTREAM_FX 1
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
-#define ACE_LACKS_UNBUFFERED_STREAMBUF 1
-#define ACE_HAS_EXCEPTIONS 1
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_NEW_THROWS_EXCEPTIONS
-
-// __KCC_VERSION is not defined before 3.4.
-#if !defined (__KCC_VERSION)
-#define ACE_AUTO_PTR_LACKS_RESET
-#endif /* !__KCC_VERSION */
-
-//#define ACE_HAS_NONSTATIC_OBJECT_MANAGER 1
-
-#include "ace/post.h"
-#endif /* ACE_KCC_COMMON_H */
diff --git a/ace/config-linux-common.h b/ace/config-linux-common.h
deleted file mode 100644
index 7ea071e6cd0..00000000000
--- a/ace/config-linux-common.h
+++ /dev/null
@@ -1,339 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Do not use this configuration file directly since it's designed to
-// be included by another, specific configuration file, such as
-// config-linux.h. It provides config information common to all Linux
-// platforms. It automatically determines the CPU architecture,
-// compiler (g++ or egcs), and libc (libc5 or glibc), and configures
-// based on those.
-
-#ifndef ACE_LINUX_COMMON_H
-#define ACE_LINUX_COMMON_H
-#include "ace/pre.h"
-
-#define ACE_HAS_BYTESEX_H
-
-#if ! defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// #ifndef _XOPEN_SOURCE
-// # define _XOPEN_SOURCE 600
-// #endif /* _XOPEN_SOURCE */
-
-// Needed to differentiate between libc 5 and libc 6 (aka glibc).
-#include <features.h>
-
-#if (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500)
-# define ACE_HAS_PTHREADS_UNIX98_EXT
-#endif /* _XOPEN_SOURCE - 0 >= 500 */
-
-// First the machine specific part
-
-#if defined (__alpha)
- // This is necessary on Alphas with glibc 2.0.7-13.
-# define ACE_POLL_IS_BROKEN
-#elif defined (__powerpc__)
-# if !defined (ACE_DEFAULT_BASE_ADDR)
-# define ACE_DEFAULT_BASE_ADDR ((char *) 0x40000000)
-# endif /* ! ACE_DEFAULT_BASE_ADDR */
-#elif defined (__ia64)
-# if !defined (ACE_DEFAULT_BASE_ADDR)
-// Zero base address should work fine for Linux of IA-64: it just lets
-// the kernel to choose the right value.
-# define ACE_DEFAULT_BASE_ADDR ((char *) 0x0000000000000000)
-# endif /* ! ACE_DEFAULT_BASE_ADDR */
-#endif /* ! __alpha && ! __powerpc__ && ! __ia64 */
-
-// Then glibc/libc5 specific parts
-
-#if defined(__GLIBC__)
-# define ACE_HAS_BROKEN_SETRLIMIT
-# define ACE_HAS_RUSAGE_WHO_ENUM enum __rusage_who
-# define ACE_HAS_RLIMIT_RESOURCE_ENUM enum __rlimit_resource
-# define ACE_HAS_SOCKLEN_T
-# define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-
- // glibc defines both of these, used in OS_String.
-# if defined (_GNU_SOURCE)
-# define ACE_HAS_STRNLEN
-# define ACE_HAS_WCSNLEN
-# endif
-
- // To avoid the strangeness with Linux's ::select (), which modifies
- // its timeout argument, use ::poll () instead.
-# define ACE_HAS_POLL
-
-// Don't define _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED in ACE to make
-// getpgid() prototype visible. ACE shouldn't depend on feature test
-// macros to make prototypes visible.
-# define ACE_LACKS_GETPGID_PROTOTYPE
-
-// NOTE: the following defines are necessary with glibc 2.0 (0.961212-5)
-// on Alpha. I assume that they're necessary on Intel as well,
-// but that may depend on the version of glibc that is used.
-//# define ACE_HAS_DLFCN_H_BROKEN_EXTERN_C
-# define ACE_HAS_VOIDPTR_SOCKOPT
-# define ACE_LACKS_SYSTIME_H
-
-// Don't define _POSIX_SOURCE in ACE to make strtok() prototype
-// visible. ACE shouldn't depend on feature test macros to make
-// prototypes visible.
-# define ACE_LACKS_STRTOK_R_PROTOTYPE
-// NOTE: end of glibc 2.0 (0.961212-5)-specific configuration.
-
-// These macros determined by reading stdio.h on RH 7.1.
-# if defined (__USE_BSD) || defined (__USE_ISOC99) || defined (__USE_UNIX98)
-# define ACE_HAS_SNPRINTF
-# endif
-
-# if __GLIBC__ > 1 && __GLIBC_MINOR__ >= 1
- // These were suggested by Robert Hanzlik <robi@codalan.cz> to get
- // ACE to compile on Linux using glibc 2.1 and libg++/gcc 2.8.
-# undef ACE_HAS_BYTESEX_H
-# define ACE_HAS_SIGINFO_T
-# define ACE_LACKS_SIGINFO_H
-# define ACE_HAS_UCONTEXT_T
-
- // Pre-glibc (RedHat 5.2) doesn't have sigtimedwait.
-# define ACE_HAS_SIGTIMEDWAIT
-# endif /* __GLIBC__ 2.1+ */
-#else /* ! __GLIBC__ */
- // Fixes a problem with some non-glibc versions of Linux...
-# define ACE_LACKS_MADVISE
-# define ACE_LACKS_MSG_ACCRIGHTS
-#endif /* ! __GLIBC__ */
-
-// Don't define _LARGEFILE64_SOURCE in ACE to make llseek() or
-// lseek64() prototype visible. ACE shouldn't depend on feature test
-// macros to make prototypes visible.
-#if __GLIBC__ > 1
-# if __GLIBC_MINOR__ == 0
-# define ACE_HAS_LLSEEK
-# define ACE_LACKS_LLSEEK_PROTOTYPE
-# else /* __GLIBC_MINOR__ > 0 */
-# define ACE_HAS_LSEEK64
-# define ACE_LACKS_LSEEK64_PROTOTYPE
-# endif
-#endif /* __GLIBC__ > 1 */
-
-#if __GLIBC__ > 1 && __GLIBC_MINOR__ >= 1
-# define ACE_HAS_P_READ_WRITE
-# define ACE_LACKS_PREAD_PROTOTYPE
-// Use ACE's alternate cuserid() implementation since the use of the
-// system cuserid() is discouraged.
-# define ACE_HAS_ALT_CUSERID
-#endif /* __GLIBC__ > 1 && __GLIBC_MINOR__ >= 0 */
-
-
-// Then the compiler specific parts
-
-#if defined (__GNUG__)
- // config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
- // this must appear before its #include.
-# define ACE_HAS_STRING_CLASS
-# include "ace/config-g++-common.h"
-#define ACE_CC_NAME ACE_LIB_TEXT ("g++")
-#define ACE_CC_MAJOR_VERSION __GNUC__
-#define ACE_CC_MINOR_VERSION __GNUC_MINOR__
-//#define ACE_CC_BETA_VERSION 0 /* ??? */
-#elif defined (__KCC)
-# define ACE_HAS_STRING_CLASS
-# undef ACE_HAS_LLSEEK
-# undef ACE_HAS_LSEEK64
-# undef ACE_LACKS_LLSEEK_PROTOTYPE
-# undef ACE_LACKS_LSEEK64_PROTOTYPE
-# include "ace/config-kcc-common.h"
-#elif defined (__DECCXX)
-# define ACE_CONFIG_INCLUDE_CXX_COMMON
-# include "ace/config-cxx-common.h"
-#elif defined (__INTEL_COMPILER)
-# include "ace/config-icc-common.h"
-#elif defined (__BORLANDC__)
-# undef ACE_HAS_LLSEEK
-# undef ACE_HAS_LSEEK64
-# undef ACE_LACKS_LLSEEK_PROTOTYPE
-# undef ACE_LACKS_LSEEK64_PROTOTYPE
-# include "ace/config-borland-common.h"
-#else /* ! __GNUG__ && ! __KCC && !__DECCXX && !__INTEL_COMPILER && !__BORLANDC__*/
-# error unsupported compiler in ace/config-linux-common.h
-#endif /* ! __GNUG__ && ! __KCC */
-
-// Completely common part :-)
-
-// Platform/compiler has the sigwait(2) prototype
-# define ACE_HAS_SIGWAIT
-
-# define ACE_HAS_SIGSUSPEND
-
-// However, sigqueue-ing things across threads does not work (at least
-// prior to the 2.4 kernel) so unless the user has specifically requested
-// the POSIX_SIG_PROACTOR, use the AIOCB version to avoid this problem.
-# if !defined (ACE_POSIX_SIG_PROACTOR)
-# define ACE_POSIX_AIOCB_PROACTOR
-# endif /* ACE_POSIX_SIG_PROACTOR */
-
-#if __GLIBC__ >= 2
-#ifndef ACE_HAS_POSIX_REALTIME_SIGNALS
-#define ACE_HAS_POSIX_REALTIME_SIGNALS
-#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
-
-#ifndef ACE_HAS_AIO_CALLS
-#define ACE_HAS_AIO_CALLS
-#endif /* ACE_HAS_AIO_CALLS */
-#endif
-
-#if __GLIBC__ >= 2
-// glibc 2 and higher has wchar support
-# define ACE_HAS_XPG4_MULTIBYTE_CHAR
-#endif
-
-#if __GLIBC__ < 2
-// These are present in glibc 2 and higher
-# define ACE_LACKS_WCSTOK
-# define ACE_LACKS_WCSDUP_PROTOTYPE
-#endif /* __GLIBC__ < 2 */
-
-#define ACE_LACKS_ITOW
-#define ACE_LACKS_WCSICMP
-#define ACE_LACKS_WCSNICMP
-#define ACE_LACKS_TOWLOWER
-
-#if __GLIBC__ >= 2
-# define ACE_HAS_3_PARAM_WCSTOK
-#endif
-
-#if !defined (ACE_DEFAULT_BASE_ADDR)
-# define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
-#endif /* ! ACE_DEFAULT_BASE_ADDR */
-
-// Compiler/platform supports alloca().
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-#define ACE_HAS_GETRUSAGE_PROTO
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// ONLY define this if you have config'd multicast into a 2.0.34 or
-// prior kernel. It is enabled by default in 2.0.35 kernels.
-#if !defined (ACE_HAS_IP_MULTICAST)
-# define ACE_HAS_IP_MULTICAST
-#endif /* ! ACE_HAS_IP_MULTICAST */
-
-// At least for IPv4, Linux lacks perfect filtering.
-#if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
-# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
-#endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
-
-#define ACE_HAS_BIG_FD_SET
-
-// Linux defines struct msghdr in /usr/include/socket.h
-#define ACE_HAS_MSG
-
-// Linux "improved" the interface to select() so that it modifies
-// the struct timeval to reflect the amount of time not slept
-// (see NOTES in Linux's select(2) man page).
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-#define ACE_HAS_TERM_IOCTLS
-
-#define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535
-
-#define ACE_HAS_GETPAGESIZE 1
-
-#if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)
- // GLIBC 2.2 and higher doesn't need this macro any more.
- // Platform lacks POSIX prototypes for certain System V functions
- // like shared memory and message queues.
-# define ACE_LACKS_SOME_POSIX_PROTOTYPES
-
-// glibc supports wchar, but lacks fgetwc and ungetwc
-#define ACE_LACKS_FGETWC
-
-#endif
-
-// glibc supports the mkstemp() function.
-#define ACE_HAS_MKSTEMP
-
-// glibc requires _XOPEN_SOURCE_EXTENDED to make this prototype
-// visible, so force ACE to declare one. Yuk!
-#define ACE_LACKS_MKSTEMP_PROTOTYPE
-
-// Platform defines struct timespec but not timespec_t
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_STRRECVFD
-
-//#define ACE_LACKS_MSYNC
-
-// A conflict appears when including both <ucontext.h> and
-// <sys/procfs.h> with recent glibc headers.
-//#define ACE_HAS_PROC_FS
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-#define ACE_HAS_STRPTIME
-// Don't define _XOPEN_SOURCE in ACE to make strptime() prototype
-// visible. ACE shouldn't depend on feature test macros to make
-// prototypes visible.
-#define ACE_LACKS_STRPTIME_PROTOTYPE
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-#define ACE_HAS_POSIX_TIME
-
-#define ACE_HAS_GPERF
-
-#define ACE_HAS_DIRENT
-
-#if defined (__ia64)
-// On 64 bit platforms, the "long" type is 64-bits. Override the
-// default 32-bit platform-specific format specifiers appropriately.
-# define ACE_UINT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%lu")
-# define ACE_SSIZE_T_FORMAT_SPECIFIER ACE_LIB_TEXT ("%ld")
-# define ACE_SIZE_T_FORMAT_SPECIFIER ACE_LIB_TEXT ("%lu")
-#endif /* __ia64 */
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_SIZEOF_WCHAR 4
-
-#include "ace/post.h"
-
-// Enables use of POSIX termios struct
-#define ACE_USES_NEW_TERMIOS
-
-// Use new pthread_attr_setstack
-#if defined (__USE_XOPEN2K) && (__GLIBC__ > 2 || ( __GLIBC__ == 2 && __GLIBC_MINOR__ >=2))
-#define ACE_HAS_PTHREAD_SETSTACK
-#endif /* __USE_XOPEN2K && glibc >2.2 */
-
-#endif /* ACE_LINUX_COMMON_H */
diff --git a/ace/config-linux.h b/ace/config-linux.h
deleted file mode 100644
index 6aa891c4335..00000000000
--- a/ace/config-linux.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-// The following configuration file is designed to work for Linux
-// platforms using GNU C++.
-
-#ifndef ACE_CONFIG_LINUX_H
-#define ACE_CONFIG_LINUX_H
-#include "ace/pre.h"
-
-#include "ace/config-linux-common.h"
-
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-#if !defined (ACE_MT_SAFE)
-#define ACE_MT_SAFE 1 // JCEJ 12/22/96 #1
-#endif
-
-#if ACE_MT_SAFE
-// Yes, we do have threads.
-#define ACE_HAS_THREADS
-// And they're even POSIX pthreads (LinuxThreads implementation)
-#define ACE_HAS_PTHREADS
-
-#if !defined (ACE_HAS_PTHREADS_UNIX98_EXT)
-# define ACE_LACKS_RWLOCK_T
-#endif /* !ACE_HAS_PTHREADS_UNIX98_EXT */
-
-// ... and the final standard even!
-#define ACE_HAS_PTHREADS_STD
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE // jcej 12/22/96 #2
-
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS // JCEJ 1/7-8/96
-
-#if defined(__GLIBC__)
-// Platform supports reentrant functions (i.e., all the POSIX *_r
-// functions).
-#define ACE_HAS_REENTRANT_FUNCTIONS
-
-#if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1)
- // Older versions of glibc lacked reentrant netdb functions
-# define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-
- // glibc < 2.1 lacks pthread_attr_setstacksize()
-# define ACE_LACKS_THREAD_STACK_SIZE
-#endif /* (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1) */
-
-// uses ctime_r & asctime_r with only two parameters vs. three
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-#endif
-
-#include /**/ <pthread.h>
-
-#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
- // glibc 2.2.x or better has pthread_mutex_timedlock()
-# define ACE_HAS_MUTEX_TIMEOUTS
-# if !defined (_XOPEN_SOURCE) \
- || (defined (_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0) < 600)
-// pthread_mutex_timedlock() prototype is not visible if _XOPEN_SOURCE
-// is not >= 600 (i.e. for XPG6).
-extern "C" int pthread_mutex_timedlock (pthread_mutex_t *mutex,
- const struct timespec * abstime);
-# endif /* _XOPEN_SOURCE && _XOPEN_SOURCE < 600 */
-#endif /* (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) */
-
-#endif /* ACE_MT_SAFE */
-
-
-#include "ace/post.h"
-
-#endif /* ACE_CONFIG_LINUX_H */
diff --git a/ace/config-lynxos.h b/ace/config-lynxos.h
deleted file mode 100644
index add5e985f23..00000000000
--- a/ace/config-lynxos.h
+++ /dev/null
@@ -1,209 +0,0 @@
-// $Id$
-
-// The following configuration file is designed to work for LynxOS,
-// version 2.5.0 and later, using the GNU g++ compiler.
-
-// Note on why ACE_HAS_POSIX_SEM is not #defined:
-// ACE_HAS_POSIX_SEM would cause native LynxOS mutexes and condition
-// variables to be used. But, they don't appear to be intended to be
-// used between processes. Without ACE_HAS_POSIX_SEM, ACE uses
-// semaphores for all synchronization. Those can be used between
-// processes
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#if defined (__GNUG__)
-# if __GNUC_MINOR__ == 7
-
-# include "ace/config-g++-common.h"
-
- // The g++ that's distributed with LynxOS 3.0.0 needs this.
- // It won't hurt with 2.5.0.
-# undef ACE_HAS_TEMPLATE_SPECIALIZATION
-# elif __LYNXOS_SDK_VERSION <= 199603L
- /* LynxOS <= 2.5.0 */
- // config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
- // this must appear before its #include.
-
- // If ACE_HAS_STRING_CLASS is used with LynxOS 3.0.0, some
- // executables, such as IOStream_Test, require linking with
- // libg++.
-# define ACE_HAS_STRING_CLASS
-
-# include "ace/config-g++-common.h"
-# endif /* __GNUC_MINOR__ == 7 */
-#endif /* __GNUG__ */
-
-#if defined (__x86__)
- // PowerPC libraries don't seem to have alloca (), so only use with x86.
-# define ACE_HAS_ALLOCA
-# define ACE_HAS_ALLOCA_H
-# define ACE_HAS_PENTIUM
-#elif defined (__powerpc__)
- // It looks like the default stack size is 15000.
- // ACE's Recursive_Mutex_Test needs more.
-# define ACE_NEEDS_HUGE_THREAD_STACKSIZE 65536
- // This doesn't work on LynxOS 3.0.0, because it resets the TimeBaseRegister.
- // # define ACE_HAS_POWERPC_TIMER
-#endif /* __x86__ || __powerpc__ */
-
-#define ACE_DEFAULT_BASE_ADDR ((char *) 0)
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_BROKEN_READV
-#define ACE_HAS_BROKEN_SETRLIMIT
-#define ACE_HAS_BROKEN_WRITEV
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_DIRENT
-#define ACE_HAS_GETRUSAGE
-#define ACE_HAS_GNU_CSTRING_H
-#define ACE_HAS_GPERF
-#define ACE_HAS_IP_MULTICAST
-#define ACE_HAS_LYNXOS_SIGNALS
-#define ACE_HAS_MSG
-#define ACE_HAS_NONCONST_GETBY
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_POLL
-#define ACE_HAS_POSIX_NONBLOCK
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-#define ACE_HAS_SEMUN
-#define ACE_HAS_SHM_OPEN
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_SOCKIO_H
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRBUF_T
-#define ACE_HAS_STREAMS
-#define ACE_HAS_STRERROR
-#define ACE_HAS_SYSV_IPC
-#define ACE_HAS_SYS_SIGLIST
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_GETHOSTENT
-#define ACE_LACKS_GETOPT_PROTO
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_MKTEMP
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SIGINFO_H
-#define ACE_LACKS_SI_ADDR
-#define ACE_LACKS_SOME_POSIX_PROTOTYPES
-#define ACE_LACKS_STRCASECMP
-#define ACE_LACKS_TIMESPEC_T
-#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_MKSTEMP
-#define ACE_LACKS_INET_ATON
-#define ACE_MALLOC_ALIGN 8
-#define ACE_HAS_TYPENAME_KEYWORD
-// Don't use MAP_FIXED, at least for now.
-#define ACE_MAP_FIXED 0
-// LynxOS, through 3.0.0, does not support MAP_PRIVATE, so map it to
-// MAP_SHARED.
-#define ACE_MAP_PRIVATE ACE_MAP_SHARED
-#define ACE_PAGE_SIZE 4096
-#define ACE_POLL_IS_BROKEN
-
-// Compile using multi-thread libraries.
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-# define _REENTRANT
-#endif
-
-#if ACE_MT_SAFE == 1
- // Platform supports threads.
-# define ACE_HAS_PTHREADS
-# include <unistd.h>
-# if _POSIX_VERSION >= 199506L
- // LynxOS 3.1.0 or greater
-# define ACE_HAS_PTHREADS_STD
- // Though there's a pthread_sigmask man page, there isn't a
- // declaration in a system header file.
-# include <signal.h>
- extern "C" int pthread_sigmask (int, const sigset_t *, sigset_t *);
-# else /* LynxOS < 3.1.0 */
-# define ACE_HAS_PTHREADS_DRAFT4
-# define ACE_HAS_STDARG_THR_DEST
- // Without TSS emulation, you'll only have 3 native TSS keys, on
- // LynxOS 3.0.0/ppc.
-# define ACE_HAS_TSS_EMULATION
-# endif /* LynxOS < 3.1.0 */
-# define ACE_HAS_THREADS
-# define ACE_HAS_THREAD_SPECIFIC_STORAGE
-# define ACE_LACKS_NULL_PTHREAD_STATUS
-# define ACE_LACKS_SETDETACH
-# define ACE_LACKS_THREAD_PROCESS_SCOPING
-# define ACE_LACKS_THREAD_STACK_ADDR
- // This gets around Lynx broken macro calls resulting in "::0"
-# define _POSIX_THREADS_CALLS
-#endif /* ACE_MT_SAFE */
-
-#define ACE_HAS_AIO_CALLS
-#define ACE_POSIX_AIOCB_PROACTOR
-// AIOCB Proactor works on Lynx. But it is not
-// multi-threaded.
-// Lynx OS 3.0.0 lacks POSIX call <pthread_sigmask>. So,we cannot use
-// SIG Proactor also, with multiple threads. So, let us use the AIOCB
-// Proactor. Once <pthreadd_sigmask> is available on Lynx, we can turn
-// on SIG Proactor for this platform.
-// #define ACE_POSIX_SIG_PROACTOR
-
-#define ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK 1
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-// Looks like the modern compilers have support for namespaces. Or
-// rather we dont support any compiler without this support. Need to
-// get this macro off of ACE.
-#define ACE_HAS_USING_KEYWORD
-
-// By default, don't include RCS Id strings in object code.
-#if !defined (ACE_USE_RCSID)
-# define ACE_USE_RCSID 0
-#endif /* ! ACE_USE_RCSID */
-
-// System include files are not in sys/, this gets rid of warning.
-#define __NO_INCLUDE_WARN__
-
-extern "C"
-{
- int getopt (int, char *const *, const char *);
- int putenv (const char *);
-}
-
-#if 0
-// The following are patches for LynxOS 4.0.0, which we'll add as soon
-// as we know the right incantations to avoid breaking earlier
-// versions of LynxOS!
-
-// "changes signedness" error (OS.i and many other files)
-#define ACE_HAS_SOCKLEN_T
-
-// LSOCK.cpp uses a macro from param.h, not included
-#define ALIGNBYTES (sizeof(int) - 1)
-#define ALIGN(p) (((unsigned)p + ALIGNBYTES) & ~ALIGNBYTES)
-
-// Linking problems with alloca
-#undef ACE_HAS_ALLOCA
-#undef ACE_HAS_ALLOCA_H
-
-// Requested for example: $ACE_ROOT/examples/IPC_SAP/DEV_SAP
-#define ACE_HAS_TERM_IOCTLS
-#endif /* 0 */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-m88k.h b/ace/config-m88k.h
deleted file mode 100644
index 19f5f30886c..00000000000
--- a/ace/config-m88k.h
+++ /dev/null
@@ -1,227 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for Motorola
-// 88k SVR4 platforms using pthreads from Florida State (ACE_HAS_FSU_PTHREADS).
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
- // This config file has not been tested with ACE_HAS_TEMPLATE_SPECIALIZATION.
- // Maybe it will work?
-# undef ACE_HAS_TEMPLATE_SPECIALIZATION
-#endif /* __GNUG__ */
-
-#if !defined (m88k)
-#define m88k
-#endif
-
-extern "C" void pthread_init();
-
-#define PTHREAD_STACK_MIN 1024
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#if !defined (IP_ADD_MEMBERSHIP)
-#define IP_ADD_MEMBERSHIP 0x13
-#endif /* m88k */
-
-#if !defined (IP_DROP_MEMBERSHIP)
-#define IP_DROP_MEMBERSHIP 0x14
-#endif /* m88k */
-
-struct sched_param
-{
- int sched_priority;
- int prio;
-};
-
-// This seems to be necessary for m88k.
-struct ip_mreq
-{
- struct in_addr imr_multiaddr; // IP multicast address of the group
- struct in_addr imr_interface; // local IP address of the interface
-};
-
-#if !defined (ACE_HAS_FSU_PTHREADS)
-# define ACE_HAS_FSU_PTHREADS
-#endif
-#if !defined (ACE_HAS_PTHREADS_DRAFT6)
-# define ACE_HAS_PTHREADS_DRAFT6
-#endif
-
-// Added for compilation on the m88k
-#if defined (m88k)
-# define ACE_LACKS_T_ERRNO
-# define ACE_LACKS_MADVISE
-# define ACE_HAS_GNU_CSTRING_H
-#endif /* m88k */
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Sun has the wrong prototype for sendmsg.
-#define ACE_HAS_BROKEN_SENDMSG
-
-// The SunOS 5.x version of rand_r is inconsistent with the header files...
-#define ACE_HAS_BROKEN_RANDR
-
-// Platform supports system configuration information.
-#define ACE_HAS_SYSINFO
-
-// Platform supports the POSIX regular expression library.
-#define ACE_HAS_REGEX
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-#if !defined (ACE_HAS_FSU_PTHREADS)
-// Platform supports reentrant functions (i.e., all the POSIX *_r functions).
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#endif /* ACE_HAS_FSU_PTHREADS */
-
-// Platform has terminal ioctl flags like TCGETS and TCSETS.
-#define ACE_HAS_TERM_IOCTLS
-
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-#if !defined (m88k)
-// Compiler/platform supports SunOS high resolution timers.
-# define ACE_HAS_HI_RES_TIMER
-#endif /* m88k */
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Compiler/platform supports alloca()
-#define ACE_HAS_ALLOCA
-
-#if !defined (m88k)
-// Compiler/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-#endif /* m88k */
-
-// Platform contains <poll.h>.
-#define ACE_HAS_POLL
-
-// Platform supports POSIX timers via timestruc_t.
-#define ACE_HAS_POSIX_TIME
-
-// Platform supports the /proc file system.
-#define ACE_HAS_PROC_FS
-
-#if !defined (m88k)
-// Platform supports the prusage_t struct.
-#define ACE_HAS_PRUSAGE_T
-#endif /* m88k */
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals.
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Platform supports STREAM pipes.
-#define ACE_HAS_STREAM_PIPES
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Compiler/platform supports SVR4 gettimeofday() prototype.
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-
-// Compiler/platform supports SVR4 signal typedef.
-#define ACE_HAS_SVR4_SIGNAL_T
-
-// Compiler/platform supports SVR4 ACE_TLI (in particular, T_GETNAME stuff)...
-#define ACE_HAS_SVR4_TLI
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-#if !defined (m88k)
-// Compiler/platform supports sys_siglist array.
-#define ACE_HAS_SYS_SIGLIST
-#endif /* m88k */
-
-/* Turn off the following five defines if you want to disable threading. */
-// Compile using multi-thread libraries.
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-#define ACE_HAS_PTHREADS
-#define ACE_LACKS_RWLOCK_T
-
-// Platform supports threads.
-#define ACE_HAS_THREADS
-
-#if defined (ACE_HAS_FSU_PTHREADS)
-#define ACE_LACKS_THREAD_STACK_ADDR
-#endif /* ACE_HAS_FSU_PTHREADS */
-
-// Compiler/platform has thread-specific storage
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// Reactor detects deadlock
-// #define ACE_REACTOR_HAS_DEADLOCK_DETECTION
-
-// Platform supports ACE_TLI timod STREAMS module.
-#define ACE_HAS_TIMOD_H
-
-// Platform supports ACE_TLI tiuser header.
-#define ACE_HAS_TIUSER_H
-
-// Platform provides ACE_TLI function prototypes.
-#define ACE_HAS_TLI_PROTOTYPES
-
-// Platform supports ACE_TLI.
-#define ACE_HAS_TLI
-
-// Use the poll() event demultiplexor rather than select().
-//#define ACE_USE_POLL
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-macosx.h b/ace/config-macosx.h
deleted file mode 100644
index 33d7c7779f8..00000000000
--- a/ace/config-macosx.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// This configuration file is designed to work with the MacOS X operating system.
-
-#ifndef ACE_CONFIG_MACOSX_H
-#define ACE_CONFIG_MACOSX_H
-
-#if ! defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
-
-#undef ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-
-#define ACE_SIZE_T_FORMAT_SPECIFIER ACE_LIB_TEXT ("%lu")
-
-#if defined (ACE_HAS_PENTIUM)
-# undef ACE_HAS_PENTIUM
-#endif /* ACE_HAS_PENTIUM */
-
-#if !defined (_THREAD_SAFE)
-#define _THREAD_SAFE
-#endif /* _THREAD_SAFE */
-
-#define ACE_HAS_GPERF
-#define ACE_HAS_POSIX_SEM
-
-//#define ACE_HAS_SVR4_TLI
-
-#define ACE_HAS_MEMCHR
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Compiler/platform supports SVR4 signal typedef
-#define ACE_HAS_SVR4_SIGNAL_T
-
-//Platform/compiler has the sigwait(2) prototype
-#define ACE_HAS_SIGWAIT
-
-//Platform supports sigsuspend()
-#define ACE_HAS_SIGSUSPEND
-
-//Platform/compiler has macros for sig{empty,fill,add,del}set (e.g., SCO and FreeBSD)
-#define ACE_HAS_SIG_MACROS
-
-//#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_RWLOCK_T
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-//?
-#define ACE_LACKS_SIGSET
-
-#define ACE_NEEDS_SCHED_H
-
-// Use of <malloc.h> is deprecated.
-#define ACE_LACKS_MALLOC_H
-
-#define ACE_HAS_ALT_CUSERID
-
-// Platform supports POSIX timers via struct timespec.
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_UALARM
-
-// Platform defines struct timespec but not timespec_t
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_STRRECVFD
-
-#define ACE_HAS_SIN_LEN
-
-#define ACE_HAS_ANSI_CASTS
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-//#define ACE_HAS_SYSV_IPC
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Compiler/platform supports alloca().
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Explicit dynamic linking permits "lazy" symbol resolution
-//#define ACE_HAS_RTLD_LAZY_V
-
-// platform supports POSIX O_NONBLOCK semantics
-#define ACE_HAS_POSIX_NONBLOCK
-
-// platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-#define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
-
-//platform supports snprintf ()
-#define ACE_HAS_SNPRINTF
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Defines the page size of the system.
-#define ACE_HAS_GETPAGESIZE
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform supports SVR4 gettimeofday() prototype
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_LACKS_SYSV_MSG_H
-#define ACE_HAS_MSG
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-#define ACE_HAS_NONCONST_MSGSND
-
-// Thread specific settings
-// Yes, we do have threads.
-#define ACE_HAS_THREADS
-// And they're even POSIX pthreads
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif /* ! ACE_MT_SAFE */
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
-#define ACE_HAS_PTHREAD_KILL
-#define ACE_HAS_PTHREAD_CANCEL
-#define ACE_HAS_PTHREAD_SIGMASK
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_DIRENT
-#define ACE_LACKS_SYSTIME_H
-
-#define ACE_LACKS_SETSCHED
-//#define ACE_HAS_RECURSIVE_MUTEXES
-
-#define ACE_HAS_TERM_IOCTLS
-#define TCGETS TIOCGETA
-#define TCSETS TIOCSETA
-
-#define ACE_HAS_SEMUN
-#define ACE_HAS_SIGINFO_T
-#define ACE_LACKS_SIGINFO_H
-#define ACE_HAS_UCONTEXT_T
-#define ACE_HAS_GETIFADDRS
-#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
-#define ACE_LACKS_UNNAMED_SEMAPHORE
-
-// dlcompat package (not part of base Darwin) is needed for dlopen().
-// You may download directly from sourceforge and install or use fink
-// Fink installer puts libraries in /sw/lib and headers in /sw/include
-// In order to install dlcompat do the following:
-// - download fink from http://fink.sf.net
-// - type:
-// fink install dlcompat
-// as of Dec 2002, if you use fink you will need to uncomment the next line
-//#define ACE_NEEDS_DL_UNDERSCORE
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_LD_SEARCH_PATH ACE_LIB_TEXT ("DYLD_LIBRARY_PATH")
-#define ACE_DLL_SUFFIX ACE_LIB_TEXT (".dylib")
-#define ACE_LACKS_DLCLOSE
-
-// gperf seems to need this
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-
-#if defined(__APPLE_CC__) && (__APPLE_CC__ < 1173)
-#error "Compiler must be upgraded, see http://developer.apple.com"
-#endif /* __APPLE_CC__ */
-
-#endif /* ACE_CONFIG_MACOSX_H */
diff --git a/ace/config-minimal.h b/ace/config-minimal.h
deleted file mode 100644
index 11d66eb7b01..00000000000
--- a/ace/config-minimal.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// This configuration file is designed to build only the minimal
-// ACE_OS adaptation layer.
-
-#ifndef ACE_CONFIG_MINIMAL_H
-#define ACE_CONFIG_MINIMAL_H
-#include "ace/pre.h"
-
-#define ACE_HAS_MINIMAL_ACE_OS
-
-// Only instantiate the ACE_OS_Object_Manager.
-#define ACE_MAIN_OBJECT_MANAGER \
- ACE_OS_Object_Manager ace_os_object_manager;
-
-#if !defined(ACE_USE_THREAD_MANAGER_ADAPTER)
- // To prevent use of ACE_Thread_Exit functions in
- // ACE_Thread_Adapter::invoke ().
-# define ACE_USE_THREAD_MANAGER_ADAPTER
-#endif /* ! ACE_USE_THREAD_MANAGER_ADAPTER */
-
-#if defined (ACE_ASSERT)
-# undef ACE_ASSERT
-#endif /* ACE_ASSERT */
-#define ACE_ASSERT(x)
-
-#if defined (ACE_DEBUG)
-# undef ACE_DEBUG
-#endif /* ACE_DEBUG */
-#define ACE_DEBUG(x)
-
-#if defined (ACE_ERROR)
-# undef ACE_ERROR
-#endif /* ACE_ERROR */
-#define ACE_ERROR(x)
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_MINIMAL_H */
diff --git a/ace/config-mit-pthread.h b/ace/config-mit-pthread.h
deleted file mode 100644
index 03eda51c41b..00000000000
--- a/ace/config-mit-pthread.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// $Id$
-
-#ifndef ACE_CONFIG_MIT_PTHREAD_H
-#define ACE_CONFIG_MIT_PTHREAD_H
-#include "ace/pre.h"
-
-// Platform uses int for select() rather than fd_set.
-#if !defined(ACE_HAS_SELECT_H)
-#define ACE_HAS_SELECT_H
-#endif
-
-// Threads
-#define ACE_HAS_THREADS
-#if !defined (ACE_MT_SAFE)
- #define ACE_MT_SAFE 1
-#endif
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
-#define ACE_LACKS_PTHREAD_CANCEL
-#define ACE_HAS_PTHREAD_SIGMASK
-#define ACE_HAS_SIGWAIT
-//#define ACE_HAS_PTHREAD_YIELD_VOID_PTR
-//#define ACE_HAS_PTHREAD_ATTR_INIT
-//#define ACE_HAS_PTHREAD_ATTR_DESTROY
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-//#define ACE_LACKS_THREAD_STACK_ADDR
-// If ACE doesn't compile due to the lack of these methods, please
-// send email to schmidt@cs.wustl.edu reporting this.
-// #define ACE_LACKS_CONDATTR_PSHARED
-// #define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SETSCHED
-
-#include <pthread.h>
-#if defined(_M_UNIX)
-#include <sys/regset.h>
-#endif
-
-#define ACE_LACKS_TIMEDWAIT_PROTOTYPES
-#define ACE_HAS_RECV_TIMEDWAIT
-#define ACE_HAS_RECVFROM_TIMEDWAIT
-#define ACE_HAS_RECVMSG_TIMEDWAIT
-#define ACE_HAS_SEND_TIMEDWAIT
-#define ACE_HAS_SENDTO_TIMEDWAIT
-#define ACE_HAS_SENDMSG_TIMEDWAIT
-#define ACE_HAS_READ_TIMEDWAIT
-#define ACE_HAS_READV_TIMEDWAIT
-#define ACE_HAS_WRITE_TIMEDWAIT
-#define ACE_HAS_WRITEV_TIMEDWAIT
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_MIT_PTHREAD_H */
diff --git a/ace/config-mklinux.h b/ace/config-mklinux.h
deleted file mode 100644
index 31957b70be0..00000000000
--- a/ace/config-mklinux.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for MkLinux
-// platforms using GNU C++.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#include "ace/config-linux-common.h"
-
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-#undef ACE_HAS_SOCKLEN_T
-#define ACE_HAS_SIZET_SOCKET_LEN
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-mvs.h b/ace/config-mvs.h
deleted file mode 100644
index 51e8a86e843..00000000000
--- a/ace/config-mvs.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Config file for MVS with OpenEdition
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// The following #defines are hacks to get around things
-// that seem to be missing or different in MVS land
-#define MAXPATHLEN 1024 /* sys/param.h not on MVS */
-#define NSIG 44 /* missing from Signal.h */
-#define MAXHOSTNAMELEN 256 /* missing form netdb.h */
-#define howmany __howmany /* MVS uses different names than most others */
-#define fd_mask __fd_mask
-#define MAXNAMLEN __DIR_NAME_MAX
-#define ERRMAX __sys_nerr
-#if defined (log) /* log is a macro in math.h */
-# undef log /* conflicts with log function in ACE */
-#endif /* log */
-
-#define ACE_MVS
-
-// Preprocesor requires an extra argument
-#define ACE_CC_PREPROCESSOR_ARGS "-+ -E"
-
-// See the README file in this directory
-// for a description of the following ACE_ macros
-
-#if __COMPILER_VER__ >= 0x21020000 /* OS/390 r2 or higher */
-# define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-# define ACE_HAS_UCONTEXT_T
-#else /* __COMPILER_VER__ < 0x21020000 */
-# define ACE_LACKS_UCONTEXT_H
-#endif /* __COMPILER_VER__ < 0x21020000 */
-
-#if __COMPILER_VER__ < 0x22060000 /* before OS/390 r2.6 */
-# define ACE_LACKS_LONGLONG_T
-#endif /* __COMPILER_VER__ < 0x22060000 */
-
-#define ACE_HAS_BROKEN_CTIME
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_DIRENT
-#define ACE_HAS_EXCEPTIONS
-#define ACE_HAS_GETPAGESIZE
-#define ACE_HAS_GETRUSAGE
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_LIMITED_RUSAGE_T
-#define ACE_HAS_MSG
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_NONSCALAR_THREAD_KEY_T
-#define ACE_HAS_POLL
-#define ACE_HAS_POSIX_NONBLOCK
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_DRAFT6
-#define ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP
-#define ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_SIG_C_FUNC
-#define ACE_HAS_SIN_LEN
-#define ACE_HAS_SIZET_SOCKET_LEN
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRERROR
-#define ACE_HAS_STRINGS
-#define ACE_HAS_SYSV_IPC
-#define ACE_HAS_TEMPLATE_SPECIALIZATION
-#define ACE_HAS_THREADS
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_THR_C_DEST
-#define ACE_HAS_THR_C_FUNC
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-#define ACE_HAS_UALARM
-#define ACE_HAS_UTIME
-#define ACE_HAS_VOIDPTR_MMAP
-#define ACE_HAS_VOIDPTR_SOCKOPT
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_LACKS_IOSTREAM_FX
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_MALLOC_H
-#define ACE_LACKS_MSGBUF_T
-#define ACE_LACKS_PARAM_H
-#define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_READDIR_R
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SETSCHED
-#define ACE_LACKS_SIGINFO_H
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_SYSTIME_H
-#define ACE_LACKS_SYS_NERR
-#define ACE_LACKS_TCP_H
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-#define ACE_LACKS_THREAD_STACK_ADDR
-#define ACE_LACKS_TIMESPEC_T
-
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-#define ACE_NEEDS_DEV_IO_CONVERSION
-
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_SIZEOF_FLOAT 4
-#define ACE_SIZEOF_DOUBLE 8
-#define ACE_SIZEOF_LONG_DOUBLE 16
-
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-netbsd.h b/ace/config-netbsd.h
deleted file mode 100644
index ab5eadae6e7..00000000000
--- a/ace/config-netbsd.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ***** This configuration file is still under testing. *****
-
-// The following configuration file is designed to work for NetBSD
-// platforms using GNU g++.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#if ! defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// ********************************************************
-// uncomment next line if you are using FreeBSD 2.1.x[R]
-// #define FreeBSD_2_1
-// ********************************************************
-#define ACE_NETBSD
-
-#define ACE_SIZEOF_LONG_DOUBLE 12
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
-
-// #define ACE_HAS_BROKEN_NETBSD_MSYNC
-
-// Platform specific directives
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
-#define ACE_LACKS_RWLOCK_T
-#define ACE_HAS_SIG_MACROS
-#define ACE_HAS_CHARPTR_DL
-#define ACE_USES_ASM_SYMBOL_IN_DLSYM
-
-// NetBSD appears to have dirent support.
-#define ACE_HAS_DIRENT
-
-// NetBSD appears to have a sigset_t type.
-// #define ACE_LACKS_SIGSET
-
-// This is for 2.1.x only. By default, gcc defines __FreeBSD__ automatically
-#if defined(FreeBSD_2_1)
-
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// This is to fix the nested struct if_data definition on FreeBSD 2.1.x
-#include <sys/types.h>
-#include <sys/time.h>
-struct if_data {
-/* generic interface information */
- u_char ifi_type; /* ethernet, tokenring, etc */
- u_char ifi_physical; /* e.g., AUI, Thinnet, 10base-T, etc */
- u_char ifi_addrlen; /* media address length */
- u_char ifi_hdrlen; /* media header length */
- u_long ifi_mtu; /* maximum transmission unit */
- u_long ifi_metric; /* routing metric (external only) */
- u_long ifi_baudrate; /* linespeed */
-/* volatile statistics */
- u_long ifi_ipackets; /* packets received on interface */
- u_long ifi_ierrors; /* input errors on interface */
- u_long ifi_opackets; /* packets sent on interface */
- u_long ifi_oerrors; /* output errors on interface */
- u_long ifi_collisions; /* collisions on csma interfaces */
- u_long ifi_ibytes; /* total number of octets received */
- u_long ifi_obytes; /* total number of octets sent */
- u_long ifi_imcasts; /* packets received via multicast */
- u_long ifi_omcasts; /* packets sent via multicast */
- u_long ifi_iqdrops; /* dropped on input, this interface */
- u_long ifi_noproto; /* destined for unsupported protocol */
- struct timeval ifi_lastchange;/* time of last administrative ch
-ange */
-} ;
-
-// this is a hack, but since this only occured in FreeBSD 2.1.x,
-// I guess it is ok.
-#define ACE_HAS_BROKEN_TIMESPEC_MEMBERS
-
-#endif /* defined FreeBSD_2_1 */
-
-// Platform supports POSIX timers via struct timespec.
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_UALARM
-
-// Platform defines struct timespec but not timespec_t
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_SYSTIME_H
-
-#define ACE_LACKS_STRRECVFD
-
-#define ACE_HAS_SIN_LEN
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-#if !defined(FreeBSD_2_1)
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#endif /* defined FreeBSD_2_1 */
-
-// Compiler/platform supports SVR4 signal typedef
-#define ACE_HAS_SVR4_SIGNAL_T
-
-// Compiler/platform supports alloca().
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform supports SVR4 dynamic linking semantics..
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Explicit dynamic linking permits "lazy" symbol resolution
-#define ACE_HAS_RTLD_LAZY_V
-
-// platform supports POSIX O_NONBLOCK semantics
-#define ACE_HAS_POSIX_NONBLOCK
-
-// platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Lacks perfect filtering, must bind group address.
-#if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
-# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
-#endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
-
-// Compiler/platform has <alloca.h>
-//#define ACE_HAS_ALLOCA_H
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Compiler/platform supports sys_siglist array.
-// *** This refers to (_sys_siglist) instead of (sys_siglist)
-// #define ACE_HAS_SYS_SIGLIST
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform supports SVR4 gettimeofday() prototype
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-// #define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_HAS_MSG
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_LACKS_GETHOSTENT
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-openbsd.h b/ace/config-openbsd.h
deleted file mode 100644
index f0edabffd19..00000000000
--- a/ace/config-openbsd.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for OpenBSD
-// platforms using GNU g++.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#if defined (ACE_HAS_THREADS)
-#include /**/ <pthread.h>
-#endif /* ACE_HAS_THREADS */
-
-#include "ace/config-posix.h"
-
-#if ! defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#define ACE_SIZEOF_LONG_DOUBLE 12
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
-
-
-// Platform specific directives
-// gcc defines __OpenBSD__ automatically for us.
-#if defined (ACE_HAS_THREADS)
-#if !defined (_THREAD_SAFE)
-#define _THREAD_SAFE
-#endif /* _THREAD_SAFE */
-
-// Check if pthreads and native exceptions are being used together.
-// This causes SEGVs to tbe thrown somewhat randomly for some
-// reason. According to newsgroup postings, it appears to be an
-// OpenBSD or gcc bug.
-#if defined (ACE_USES_NATIVE_EXCEPTIONS)
-#error "OpenBSD pthreads and native exceptions currently do not work. See OpenBSD bug #1750"
-#endif /* ACE_USES_NATIVE_EXCEPTIONS */
-
-#endif /* ACE_HAS_THREADS */
-
-#define ACE_HAS_GPERF
-
-// Platform specific directives
-/* Are the following true? */
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
-
-#define ACE_HAS_ALT_CUSERID
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-
-#define ACE_LACKS_RWLOCK_T
-#define ACE_HAS_SIG_MACROS
-#define ACE_HAS_CHARPTR_DL
-#define ACE_HAS_DIRENT
-#define ACE_USES_ASM_SYMBOL_IN_DLSYM
-
-#define ACE_LACKS_UCONTEXT_H
-
-
-// OpenBSD has sigwait defined
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIGINFO_T
-
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
-#define ACE_LACKS_RAND_REENTRANT_FUNCTIONS
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-
-#define ACE_HAS_SOCKLEN_T
-
-#define ACE_HAS_POLL
-
-// Use of <malloc.h> is deprecated.
-#define ACE_LACKS_MALLOC_H
-
-// NetBSD appears to have a sigset_t type.
-// #define ACE_LACKS_SIGSET
-
-// Platform supports POSIX timers via struct timespec.
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_UALARM
-
-// Platform defines struct timespec but not timespec_t
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_SYSTIME_H
-
-#define ACE_LACKS_STRRECVFD
-
-#define ACE_HAS_SIN_LEN
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// OpenBSD supports the getifaddrs interface
-#define ACE_HAS_GETIFADDRS
-
-// Compiler/platform supports SVR4 signal typedef
-#define ACE_HAS_SVR4_SIGNAL_T
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Compiler/platform supports alloca().
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform supports SVR4 dynamic linking semantics..
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Explicit dynamic linking permits "lazy" symbol resolution
-#define ACE_HAS_RTLD_LAZY_V
-
-// platform supports POSIX O_NONBLOCK semantics
-#define ACE_HAS_POSIX_NONBLOCK
-
-// platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Lacks perfect filtering, must bind group address.
-#if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
-# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
-#endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
-
-// Compiler/platform has <alloca.h>
-//#define ACE_HAS_ALLOCA_H
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Compiler/platform supports sys_siglist array.
-// *** This refers to (_sys_siglist) instead of (sys_siglist)
-// #define ACE_HAS_SYS_SIGLIST
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform supports SVR4 gettimeofday() prototype
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-// #define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-//#define ACE_HAS_SIG_C_FUNC
-
-// OpenBSD's dlsym call segfaults when passed an invalid handle.
-// It seems as if most other OSs detect this and just report an
-// error.
-#define ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_HAS_MSG
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-#define ACE_HAS_NONCONST_MSGSND
-
-#ifdef ACE_HAS_THREADS
-// Thread specific settings
-
-// And they're even POSIX pthreads
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif /* ! ACE_MT_SAFE */
-#endif /* ACE_HAS_THREADS */
-
-#define ACE_HAS_SIGWAIT
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_DIRENT
-
-#if !defined (ACE_HAS_THREADS)
-// OpenBSD really has readdir_r () in single threaded mode,
-// but the #ifdefs in OS.i select one with the wrong parameter
-// sets if the ACE_HAS_POSIX_STD isn't defined (which is defined
-// when ACE_HAS_THREADS is defined.)
-
-#define ACE_LACKS_READDIR_R
-
-#endif /* ! ACE_HAD_THREADS */
-
-#define ACE_HAS_TERM_IOCTLS
-#define ACE_USES_NEW_TERMIOS_STRUCT
-#define TCGETS TIOCGETA
-#define TCSETS TIOCSETA
-
-// OpenBSD actually has the clearerr call, but it causes a
-// bogus compiler syntax error.
-#define ACE_LACKS_CLEARERR
-
-#define ACE_HAS_MKSTEMP
-
-#define ACE_HAS_SNPRINTF
-
-// OpenBSD 3.2 lacks sched_setscheduler (see /usr/src/lib/libc_r/TODO)
-#define ACE_LACKS_SETSCHED
-
-// OpenBSD supports IPv6 by default, but ACE IPv6 code
-// has compile errors.
-//#define ACE_HAS_IPV6
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-osf1-3.2.h b/ace/config-osf1-3.2.h
deleted file mode 100644
index 6412896a0a3..00000000000
--- a/ace/config-osf1-3.2.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for OSF1 3.2
-// platforms with the DEC 5.1 C++ compiler.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#define ACE_LACKS_SETSCHED
-#define ACE_LACKS_RWLOCK_T
-// DF: this platform uses Digital's CXX compiler
-#define DEC_CXX
-
-// DF: DEC's CXX supports explicit template specialization.
-#define ACE_HAS_TEMPLATE_SPECIALIZATION
-
-// DF: 3.2 has getpgid but no prototype defined anywhere. So we cheat
-// and declare it here.
-extern "C" pid_t getpgid (pid_t);
-
-// DF: ACE_HAS_STRING_CLASS seems the right thing to do...
-#define ACE_HAS_STRING_CLASS
-
-// DF: Seems apropriate since this is a new compiler...
-#if !defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#define ACE_HAS_BROKEN_MSG_H
-#define ACE_LACKS_SYSV_MSQ_PROTOS
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Platform supports <sys/procfs.h>
-#define ACE_HAS_PROC_FS
-
-#define ACE_HAS_UALARM
-
-// If ACE doesn't compile due to the lack of these methods, please
-// send email to schmidt@cs.wustl.edu reporting this.
-// #define ACE_LACKS_CONDATTR_PSHARED
-// #define ACE_LACKS_MUTEXATTR_PSHARED
-
-// Platform lacks support for stack address information
-#define ACE_LACKS_THREAD_STACK_ADDR
-
-// Platform lacks thread process scoping
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-
-// Platform has non-POSIX setkind and other functions.
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_HAS_SETKIND_NP
-
-// Platform supports POSIX 1.b clock_gettime ()
-#define ACE_HAS_CLOCK_GETTIME
-
-// Platform defines MAP_FAILED as a long constant.
-#define ACE_HAS_LONG_MAP_FAILED
-
-// Platform's implementation of sendmsg() has a non-const msgheader parameter.
-#define ACE_HAS_BROKEN_SENDMSG
-
-// Platform's implementation of writev() has a non-const iovec parameter.
-#define ACE_HAS_BROKEN_WRITEV
-
-// Platform's implementation of setlrmit() has a non-const rlimit parameter.
-#define ACE_HAS_BROKEN_SETRLIMIT
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Compiler/platform correctly calls init()/fini().
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Prototypes for both signal() and struct sigaction are consistent.
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Compiler/platform has thread-specific storage
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// Platform supports C++ headers
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Platform supports the OSF ACE_TLI timod STREAMS module.
-#define ACE_HAS_OSF_TIMOD_H
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Platform contains <poll.h>.
-#define ACE_HAS_POLL
-
-// Platform supports POSIX timers via timestruc_t.
-#define ACE_HAS_POSIX_TIME
-
-// Platform defines struct timespec in <sys/timers.h>
-#define ACE_HAS_BROKEN_POSIX_TIME
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-
-// ACE supports POSIX Pthreads. OSF/1 3.2 has draft 4
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_DRAFT4
-#define ACE_HAS_THREAD_SELF
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Added 6/13/95, 1 line
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-
-// Compiler/platform has ssize_t.
-#define ACE_HAS_SSIZE_T
-
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Platform has 64bit longs and 32bit ints...
-// NOTE: ACE_HAS_64BIT_LONGS is deprecated. Instead, use ACE_SIZEOF_LONG == 8.
-#define ACE_HAS_64BIT_LONGS
-
-// Platform supports STREAM pipes.
-// #define ACE_HAS_STREAM_PIPES
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Platform support OSF1 gettimeofday
-#define ACE_HAS_OSF1_GETTIMEOFDAY
-
-// Compiler/platform supports SVR4 signal typedef.
-#define ACE_HAS_SVR4_SIGNAL_T
-
-// Compiler/platform has strerror().
-#define ACE_HAS_STRERROR
-
-// ACE supports threads.
-#define ACE_HAS_THREADS
-
-// Platform supports ACE_TLI tiuser header.
-#define ACE_HAS_TIUSER_H
-
-// Platform supports ACE_TLI timod STREAMS module.
-// #define ACE_HAS_TIMOD_H
-
-// Platform provides ACE_TLI function prototypes.
-#define ACE_HAS_TLI_PROTOTYPES
-
-// Platform supports ACE_TLI.
-#define ACE_HAS_TLI
-
-// Compile using multi-thread libraries.
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-#define ACE_NEEDS_DEV_IO_CONVERSION
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 8192
-#define ACE_HAS_GETPAGESIZE
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-osf1-4.0.h b/ace/config-osf1-4.0.h
deleted file mode 100644
index db4c7b0652d..00000000000
--- a/ace/config-osf1-4.0.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// NOTE: if you are using Digital UNIX V4.0f or later, you must
-// use config-tru64.h instead of directly using this config file.
-
-// The following configuration file is designed to work for the
-// Digital UNIX V4.0a through V4.0d with either the GNU g++, DEC
-// cxx 5.4 and later, Rational RCC (2.4.1) compilers, or KAI 3.3
-// compilers. It is configured to use the IEEE Std 1003.1c-1995,
-// POSIX System Application Program Interface, or DCE threads (with
-// cxx only); it automatically selects the proper thread interface
-// depending on whether the cxx -pthread or -threads option was
-// specified. By 4.0a, the version is meant that is called "V4.0 464"
-// by uname -a.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#if !defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-/*clearerr is not defined when _REENTRANT is not defined*/
-#if ACE_MT_SAFE == 0
-#define ACE_LACKS_CLEARERR
-#endif /* ACE_MT_SAFE == 0 */
-
-// Compile using multi-thread libraries.
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif /* ! ACE_MT_SAFE */
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ! ACE_NTRACE */
-
-// Include unistd.h to define _POSIX_C_SOURCE.
-#include <unistd.h>
-
-// Configuration-specific #defines:
-// 1) g++ or cxx
-// 2) pthreads or DCE threads
-#if defined (__GNUG__)
- // g++ with pthreads
-
- // config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
- // this must appear before its #include.
-# define ACE_HAS_STRING_CLASS
-
-# include "ace/config-g++-common.h"
-
-# define ACE_HAS_GNU_CSTRING_H
-# define ACE_HAS_REENTRANT_FUNCTIONS
-#elif defined (__DECCXX)
-
-# define ACE_CONFIG_INCLUDE_CXX_COMMON
-# include "ace/config-cxx-common.h"
-
-#elif defined (__rational__)
-# define ACE_HAS_REENTRANT_FUNCTIONS
-# define ACE_HAS_STRING_CLASS
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF
-# define ACE_LACKS_SIGNED_CHAR
-
- // Exceptions are enabled by platform_osf1_4.0_rcc.GNU.
-# define ACE_HAS_ANSI_CASTS
-# define ACE_HAS_STDCPP_STL_INCLUDES
-# define ACE_HAS_TEMPLATE_SPECIALIZATION
-# define ACE_HAS_TYPENAME_KEYWORD
-# define ACE_HAS_USING_KEYWORD
-#elif defined (__KCC)
-# define ACE_HAS_STRING_CLASS
-# include "ace/config-kcc-common.h"
-#else
-# error unsupported compiler on Digital Unix
-#endif /* ! __GNUG__ && ! __DECCXX && ! __rational__ && !_KCC */
-
-#if (DIGITAL_UNIX >= 0x400) && (DIGITAL_UNIX < 0x500)
-#define ACE_LACKS_PREAD_PROTOTYPE
-#endif // (DIGITAL_UNIX >= 0x400) && (DIGITAL_UNIX < 0x500)
-
-#if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 199506L)
- // cxx with POSIX 1003.1c-1995 threads (pthreads) . . .
-# define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-# define ACE_HAS_BROKEN_IF_HEADER
-# define ACE_HAS_BROKEN_R_ROUTINES
-#if (ACE_MT_SAFE != 0)
-# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
-# define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-#endif /* ACE_MT_SAFE != 0 */
-# define ACE_LACKS_T_ERRNO
-# define ACE_POLL_IS_BROKEN
-# if !defined (DIGITAL_UNIX)
-# define DIGITAL_UNIX 0x400
-# endif /* ! DIGITAL_UNIX */
- // DJT removed this due to some minor issues related to the
- // definitions of timestruc_t and tid_t in procfs.h not sure what
- // functionality is lost? Platform supports <sys/procfs.h>
- //#define ACE_HAS_PROC_FS
-#else /* _POSIX_C_SOURCE < 199506L */
- // cxx with DCE threads . . .
- // This ACE configuration is only supported with cxx; it has not been
- // test with g++.
-# define ACE_HAS_BROKEN_MSG_H
-# define ACE_HAS_BROKEN_POSIX_TIME
-#if (ACE_MT_SAFE != 0)
-# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_DRAFT4
-# define ACE_HAS_THREAD_SELF
-# define ACE_LACKS_THREAD_PROCESS_SCOPING
-# define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-# define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#endif
-# define ACE_HAS_GETPAGESIZE
-# define ACE_HAS_PROC_FS
-# define ACE_HAS_SETKIND_NP
-# define ACE_LACKS_CONST_TIMESPEC_PTR
-# define ACE_LACKS_READDIR_R
-# define ACE_LACKS_SETSCHED
-# define ACE_LACKS_SIGNED_CHAR
-# define ACE_LACKS_SYSV_MSQ_PROTOS
-#endif /* _POSIX_C_SOURCE < 199506L */
-
-#define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
-// NOTE: ACE_HAS_64BIT_LONGS is deprecated. Instead, use ACE_SIZEOF_LONG == 8.
-#define ACE_HAS_64BIT_LONGS
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_BROKEN_SETRLIMIT
-#define ACE_HAS_BROKEN_T_ERROR
-#define ACE_HAS_BROKEN_WRITEV
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_DIRENT
-#define ACE_HAS_GETRUSAGE
-#define ACE_HAS_GPERF
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_IP_MULTICAST
-#define ACE_HAS_LLSEEK
-#define ACE_HAS_LONG_MAP_FAILED
-#define ACE_HAS_MSG
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_OSF1_GETTIMEOFDAY
-#define ACE_HAS_OSF_TIMOD_H
-#define ACE_HAS_POLL
-#define ACE_HAS_POSIX_NONBLOCK
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PRIOCNTL
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRBUF_T
-#define ACE_HAS_STREAMS
-#define ACE_HAS_STRERROR
-#define ACE_HAS_STRPTIME
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_SVR4_SIGNAL_T
-#define ACE_HAS_SYSCALL_H
-#define ACE_HAS_SYSV_IPC
-#if (ACE_MT_SAFE == 0)
-// clearerr is not defined when _REENTRANT is not defined
-#define ACE_LACKS_CLEARERR
-#else /* ACE_MT_SAFE != 0 */
-#define ACE_HAS_THREADS
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_LACKS_THREAD_STACK_ADDR
-#endif /* ACE_MT_SAFE != 0 */
-#define ACE_HAS_TIUSER_H
-#define ACE_HAS_TLI
-#define ACE_HAS_TLI_PROTOTYPES
-#define ACE_HAS_UALARM
-#define ACE_HAS_UCONTEXT_T
-#define ACE_LACKS_PRI_T
-#define ACE_LACKS_RWLOCK_T
-#define ACE_PAGE_SIZE 8192
-#define ACE_HAS_SIGTIMEDWAIT
-#define ACE_HAS_SIGSUSPEND
-
-// DJT 6/10/96 All these broken macro's can now be removed with the
-// approporiate ordering of the include files. The Platinum release
-// now temporarily supports both forms. Platform's implementation of
-// sendmsg() has a non-const msgheader parameter.
-#define ACE_HAS_BROKEN_SENDMSG
-#define ACE_HAS_IDTYPE_T
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-pharlap.h b/ace/config-pharlap.h
deleted file mode 100644
index 51433b4fe77..00000000000
--- a/ace/config-pharlap.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// This configuration file is for use with the PharLap Realtime ETS Kernel.
-// It has been tested with PharLap TNT Embedded ToolSuite version 9.1.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#define ACE_HAS_PHARLAP
-// Some features are only available with the Realtime edition of ETS.
-// Assume that if using ACE, the realtime version is also being used, but
-// allow it to be turned off as well.
-#ifndef ACE_HAS_PHARLAP_RT
-# define ACE_HAS_PHARLAP_RT
-#else
-# if (ACE_HAS_PHARLAP_RT == 0)
-# undef ACE_HAS_PHARLAP_RT
-# endif
-#endif
-
-// Fortunately, PharLap ETS offers much of the Win32 API. But it's still on
-// WinNT 3.5, Winsock 1.1
-#define ACE_HAS_WINNT4 0
-#define ACE_HAS_WINSOCK2 0
-
-// The TSS implementation doesn't pass muster on the TSS_Test, but it works
-// well with ACE's TSS emulation.
-#define ACE_HAS_TSS_EMULATION
-
-#define ACE_LACKS_MMAP
-#define ACE_LACKS_MPROTECT
-#define ACE_LACKS_MSYNC
-#define ACE_LACKS_TCP_NODELAY
-#define ACE_LACKS_MSG_WFMO
-
-// There's no host table, by default. So using "localhost" won't work.
-// If your system does have the ability to use "localhost" and you want to,
-// define it before including this file.
-#if !defined (ACE_LOCALHOST)
-# define ACE_LOCALHOST "127.0.0.1"
-#endif /* ACE_LOCALHOST */
-
-// Don't know how to get the page size at execution time. This is most likely
-// the correct value.
-#define ACE_PAGE_SIZE 4096
-
-// Let the config-win32.h file do its thing
-#undef ACE_CONFIG_H
-#include "ace/config-win32.h"
-#undef ACE_HAS_WCHAR
-
-#include /**/ <embkern.h>
-#if defined (ACE_HAS_PHARLAP_RT)
-# include /**/ <embtcpip.h>
-#endif /* ACE_HAS_PHARLAP_RT */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-posix.h b/ace/config-posix.h
deleted file mode 100644
index fdf6a7b2fd7..00000000000
--- a/ace/config-posix.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_CONFIG_POSIX_H
-#define ACE_CONFIG_POSIX_H
-
-#include <unistd.h>
-
-/* The following POSIX constants are defined after <unistd.h> is
- * included. They are documented in:
- * http://www.opengroup.org/onlinepubs/007904975/basedefs/unistd.h.html
- */
-#if defined(_POSIX_REALTIME_SIGNALS) && (_POSIX_REALTIME_SIGNALS-0 != -1 )
-# if !defined(ACE_HAS_POSIX_REALTIME_SIGNALS)
-# define ACE_HAS_POSIX_REALTIME_SIGNALS
-# endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
-#endif /* _POSIX_REALTIME_SIGNALS */
-
-#if defined(_POSIX_ASYNCHRONOUS_IO) && (_POSIX_ASYNCHRONOUS_IO-0 != -1 )
-# if !defined(ACE_HAS_AIO_CALLS)
-# define ACE_HAS_AIO_CALLS
-# endif /* ACE_HAS_AIO_CALLS */
-#endif /* _POSIX_ASYNCHRONOUS_IO */
-
-#if defined(_POSIX_SEMAPHORES) && (_POSIX_SEMAPHORES-0 != -1 )
-# if !defined(ACE_HAS_POSIX_SEM)
-# define ACE_HAS_POSIX_SEM
-# endif /* ACE_HAS_POSIX_SEM */
-#endif /* ACE_HAS_POSIX_SEM */
-
-#if defined(_POSIX_MESSAGE_PASSING) && (_POSIX_MESSAGE_PASSING-0 != -1 )
-# if !defined(ACE_HAS_POSIX_MESSAGE_PASSING)
-# define ACE_HAS_POSIX_MESSAGE_PASSING
-# endif /* ACE_HAS_POSIX_MESSAGE_PASSING */
-#endif /* _POSIX_MESSAGE_PASSING */
-
-#if defined(_POSIX_SHARED_MEMORY_OBJECTS) && (_POSIX_SHARED_MEMORY_OBJECTS-0 != -1 )
-# if !defined(ACE_HAS_SHM_OPEN)
-# define ACE_HAS_SHM_OPEN
-# endif /* ACE_HAS_SHM_OPEN */
-#endif /* _POSIX_SHARED_MEMORY_OBJECTS */
-
-// Allow the user to disable use of threads by setting ACE_HAS_THREADS to 0
-// before including this file. The platform config (not macros) file can
-// often detect that the compiler was invoked with or without threads support
-// and set this accordingly.
-#if defined (ACE_HAS_THREADS) && (ACE_HAS_THREADS == 0)
-# undef ACE_HAS_THREADS
-#else
-# if defined(_POSIX_THREADS) && (_POSIX_THREADS-0 != -1 )
-# if !defined(ACE_HAS_THREADS)
-# define ACE_HAS_THREADS
-# endif /* ACE_HAS_THREADS */
-
-# if !defined(ACE_HAS_PTHREADS)
-# define ACE_HAS_PTHREADS
-# endif /* ACE_HAS_PTHREADS */
-
-# if !defined(ACE_HAS_PTHREADS_STD)
-# define ACE_HAS_PTHREADS_STD
-# endif /* ACE_HAS_PTHREADS_STD */
-# endif /* _POSIX_THREADS */
-#endif /* ACE_HAS_THREADS */
-
-#if defined(_POSIX_MESSAGE_PASSING) && (_POSIX_MESSAGE_PASSING-0 != -1 )
-# if !defined(ACE_HAS_POSIX_MESSAGE_PASSING)
-# define ACE_HAS_POSIX_MESSAGE_PASSING
-# endif /* ACE_HAS_POSIX_MESSAGE_PASSING */
-#endif /* _POSIX_MESSAGE_PASSING */
-
-#if defined (_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
-# define ACE_HAS_SNPRINTF
-#endif /* _XOPEN_SOURCE */
-
-#endif /* ACE_CONFIG_POSIX_H */
-
diff --git a/ace/config-psos-diab-mips.h b/ace/config-psos-diab-mips.h
deleted file mode 100644
index 954dcd9e2f9..00000000000
--- a/ace/config-psos-diab-mips.h
+++ /dev/null
@@ -1,246 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for pSOSystem V2.2.1,
-// using the Diab Data D-C++ 4.2 p3 compiler (or a later version)
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// #if ! defined (__ACE_INLINE__)
-// # define __ACE_INLINE__
-// #endif /* ! __ACE_INLINE__ */
-#if defined (__ACE_INLINE__)
-# undef __ACE_INLINE__
-#endif /* __ACE_INLINE__ */
-
-#define ACE_LACKS_ISATTY
-
-#define ACE_LACKS_DIFFTIME
-
-#define ACE_LACKS_INLINE_FUNCTIONS
-
-#define ACE_LACKS_TEMPLATE_AS_TEMPLATE_PARAMETER
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
-
-
-// Don't use RCSID
-#if !defined (ACE_USE_RCSID)
-#define ACE_USE_RCSID 0
-#endif /* #if !defined (ACE_USE_RCSID) */
-
-#define ACE_LACKS_ASSERT_MACRO
-
-#define ACE_LACKS_SIGSET
-#define ACE_LACKS_SIGACTION
-#define ACE_LACKS_FCNTL
-#define ACE_LACKS_FILELOCKS
-#define ACE_LACKS_TRUNCATE
-#define ACE_LACKS_PRAGMA_ONCE
-#define ACE_NLOGGING
-#define ACE_NDEBUG
-
-#define ACE_PSOS_LACKS_PREPC
-
-#define ACE_HAS_STRDUP_EMULATION
-
-#define ACE_HAS_IP_MULTICAST
-
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-#define ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS
-
-#define ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR
-
-# define ACE_HAS_BROKEN_NOOP_DTORS
-
-# define ACE_HAS_DIRENT
-# define ACE_LACKS_READDIR_R
-# define ACE_LACKS_TELLDIR
-# define ACE_LACKS_SEEKDIR
-# define ACE_LACKS_REWINDDIR
-
-# define ACE_THREADS_DONT_INHERIT_LOG_MSG
-
-// Template instantiation definitions
-// #define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_FILE
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-#define ACE_LACKS_METHOD_DEFINITIONS_IN_CLASS_TEMPLATE
-
-#define ACE_LACKS_HRTIME_T
-
-// #define ACE_LACKS_EVENT_T
-
-// #define ACE_HAS_VERBOSE_NOTSUP
-
-#define ACE_LACKS_MEMORY_H
-
-// #define ACE_LACKS_MALLOC_H
-
-#define ACE_LACKS_MMAP
-
-#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-
-#define ACE_LACKS_SEMBUF_T
-
-#define ACE_LACKS_EXEC
-
-#define ACE_LACKS_FORK
-
-#define ACE_LACKS_WRITEV
-
-#define ACE_LACKS_READV
-
-// rename the main entry point
-// #define ACE_MAIN extern "C" void root
-
-// All this was commented out for the single threaded port
-/*
-#define ACE_HAS_THREADS
-
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-#define ACE_HAS_TSS_EMULATION
-
-#define ACE_DEFAULT_THREAD_KEYS 256
-
-#define ACE_LACKS_COND_T
-// #define ACE_HAS_TSS_EMULATION
-
-*/
-
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-
-/* #define ACE_HAS_BROKEN_SENDMSG */
-
-/* #define ACE_HAS_BROKEN_WRITEV */
-
-#define ACE_HAS_BROKEN_CONVERSIONS
-
-#define ACE_HAS_CHARPTR_SOCKOPT
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_MSG
-
-#define ACE_HAS_POSIX_NONBLOCK
-
-#define ACE_HAS_SIGINFO_T
-#define ACE_LACKS_SIGINFO_H
-#define ACE_SIGINFO_IS_SIGINFO_T
-#define ACE_LACKS_SIGSET_DEFINITIONS
-
-#define ACE_HAS_SIGWAIT
-
-//#define ACE_HAS_SIG_ATOMIC_T
-
-// #define ACE_HAS_STRERROR
-
-#define ACE_LACKS_ACCESS
-
-#define ACE_LACKS_GETHOSTENT
-
-#define ACE_LACKS_GETSERVBYNAME
-
-// IO Streams stuff
-/* #define ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION */
-#define ACE_LACKS_IOSTREAM_TOTALLY
-#define ACE_LACKS_ACE_IOSTREAM
-#define ACE_LACKS_IOSTREAM_FX
-#define ACE_DEFAULT_LOG_STREAM 0
-#define ostream FILE
-
-#define ACE_LACKS_IOSTREAM_FX
-
-#define ACE_LACKS_KEY_T
-
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-#define ACE_LACKS_LONGLONG_T
-
-#define ACE_LACKS_MADVISE
-
-#define ACE_LACKS_MKTEMP
-
-#define ACE_LACKS_MPROTECT
-
-#define ACE_LACKS_MSYNC
-
-#define ACE_LACKS_PARAM_H
-
-#define ACE_LACKS_PWD_FUNCTIONS
-
-#define ACE_LACKS_RLIMIT
-
-#define ACE_LACKS_RPC_H
-
-#define ACE_LACKS_RWLOCK_T
-
-#define ACE_LACKS_SBRK
-
-#define ACE_LACKS_SIGNED_CHAR
-
-#define ACE_LACKS_SI_ADDR
-
-#define ACE_LACKS_SOCKETPAIR
-
-#define ACE_LACKS_STRCASECMP
-
-#define ACE_LACKS_STRRECVFD
-
-#define ACE_LACKS_SYSCALL
-
-#define ACE_LACKS_SYSV_MSG_H
-
-#define ACE_LACKS_SYSV_SHMEM
-
-// #define ACE_LACKS_SYS_NERR
-
-#define ACE_LACKS_SYS_TYPES_H
-
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_UCONTEXT_H
-
-#define ACE_LACKS_UNIX_SIGNALS
-
-// #define ACE_LACKS_SYSTIME_H
-
-#define ACE_PAGE_SIZE 4096
-
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_PSOS_CANT_USE_SYS_TYPES
-
-// #define ACE_PSOS_SNARFS_HEADER_INFO
-
-#if !defined (ACE_PSOS)
-#define ACE_PSOS
-#endif /* ACE_PSOS */
-
-#if !defined (ACE_PSOS_TBD)
-#define ACE_PSOS_TBD
-#endif /* ACE_PSOS_TBD */
-
-#define ACE_LACKS_MKFIFO
-
-#define ACE_LACKS_MALLOC_H
-
-#define ACE_PSOS_DIAB
-
-#define ACE_PSOS_DIAB_MIPS
-#define ACE_MALLOC_ALIGN 8
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-psos-diab-ppc.h b/ace/config-psos-diab-ppc.h
deleted file mode 100644
index 9cbf2d63c7f..00000000000
--- a/ace/config-psos-diab-ppc.h
+++ /dev/null
@@ -1,281 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for:
-// a) pSOSystem V2.5.0 for PowerPC (pssppc.250)
-// b) DiabData C++ compiler - dplus 4.2b
-// *note pSOSystem V2.5.0 is contained in the PRISM+2.0.0 package
-
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// #if ! defined (__ACE_INLINE__)
-// # define __ACE_INLINE__
-// #endif /* ! __ACE_INLINE__ */
-#if defined (__ACE_INLINE__)
-# undef __ACE_INLINE__
-#endif /* __ACE_INLINE__ */
-
-#define ACE_LACKS_ISATTY
-
-#define ACE_LACKS_DIFFTIME
-
-#define ACE_LACKS_FCNTL
-
-#define ACE_LACKS_FILELOCKS
-
-#define ACE_LACKS_FSYNC
-
-#define ACE_LACKS_INLINE_FUNCTIONS
-
-#define ACE_LACKS_TEMPLATE_AS_TEMPLATE_PARAMETER
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#else
-// At least true with newer Diab compiler...
-# define ACE_LACKS_PRAGMA_ONCE
-# define ACE_HAS_EXCEPTIONS
-#endif /* __GNUG__ */
-
-#define ACE_PSOS_LACKS_PREPC
-
-#define ACE_PSOS_HAS_TIME
-
-#define ACE_HAS_STRDUP_EMULATION
-
-#define ACE_HAS_IP_MULTICAST
-
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-#define ACE_HAS_BROKEN_EXPLICIT_TYPECAST_OPERATOR_INVOCATION
-
-#define ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS
-
-#define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
-
-# define ACE_HAS_BROKEN_NOOP_DTORS
-
-# define ACE_HAS_DIRENT
-# define ACE_LACKS_READDIR_R
-# define ACE_LACKS_TELLDIR
-# define ACE_LACKS_SEEKDIR
-# define ACE_LACKS_REWINDDIR
-
-#define ACE_LACKS_TRUNCATE
-
-// Template instantiation definitions
-// #define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_FILE
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-
-// IO Streams stuff
-// #define ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION
-//#define ACE_LACKS_IOSTREAM_TOTALLY
-//#define ACE_LACKS_ACE_IOSTREAM
-//#define ACE_LACKS_IOSTREAM_FX
-//#define ACE_DEFAULT_LOG_STREAM 0
-//#define ostream FILE
-
-#define ACE_LACKS_HRTIME_T
-
-// #define ACE_LACKS_EVENT_T
-
-#define ACE_HAS_VERBOSE_NOTSUP
-
-#define ACE_LACKS_MEMORY_H
-
-// #define ACE_LACKS_MALLOC_H
-
-#define ACE_LACKS_MMAP
-
-#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-#define ACE_LACKS_SEMBUF_T
-
-#define ACE_LACKS_EXEC
-
-#define ACE_LACKS_FORK
-
-#define ACE_LACKS_WRITEV
-
-#define ACE_LACKS_READV
-
-// rename the main entry point
-#define ACE_MAIN extern "C" void root
-
-// All this was commented out for the single threaded port
-
-#define ACE_HAS_THREADS
-
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-// #define ACE_HAS_TSS_EMULATION
-// #define ACE_DEFAULT_THREAD_KEYS 256
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_PSOS_HAS_TSS
-#define ACE_DEFAULT_THREAD_KEYS KC_NTSD
-
-#define ACE_PSOS_HAS_MUTEX
-#define ACE_PSOS_HAS_PRIO_MUTEX
-#define ACE_PSOS_HAS_PRIO_INHERIT_MUTEX
-#define ACE_HAS_RECURSIVE_MUTEXES
-
-// #define ACE_LACKS_COND_T
-#define ACE_PSOS_HAS_COND_T
-
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-
-/* #define ACE_HAS_BROKEN_SENDMSG */
-
-/* #define ACE_HAS_BROKEN_WRITEV */
-
-#define ACE_HAS_BROKEN_CONVERSIONS
-
-#define ACE_HAS_CHARPTR_SOCKOPT
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_MSG
-
-#define ACE_HAS_POSIX_NONBLOCK
-
-#define ACE_HAS_SIGINFO_T
-#define ACE_LACKS_SIGINFO_H
-#define ACE_SIGINFO_IS_SIGINFO_T
-#define ACE_LACKS_SIGSET_DEFINITIONS
-#define ACE_LACKS_SIGSET
-#define ACE_LACKS_SIGACTION
-
-#define ACE_HAS_SIGWAIT
-
-//#define ACE_HAS_SIG_ATOMIC_T
-
-#define ACE_HAS_STRERROR
-
-#define ACE_LACKS_ACCESS
-
-#define ACE_LACKS_GETHOSTENT
-
-#define ACE_LACKS_GETSERVBYNAME
-
-#define ACE_LACKS_KEY_T
-
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-#define ACE_LACKS_LONGLONG_T
-
-#define ACE_LACKS_LSTAT
-
-#define ACE_LACKS_MADVISE
-
-#define ACE_LACKS_MKTEMP
-
-#define ACE_LACKS_MPROTECT
-
-#define ACE_LACKS_MSYNC
-
-#define ACE_LACKS_PARAM_H
-
-#define ACE_LACKS_PWD_FUNCTIONS
-
-#define ACE_LACKS_READLINK
-
-#define ACE_LACKS_RLIMIT
-
-#define ACE_LACKS_RWLOCK_T
-
-#define ACE_LACKS_SBRK
-
-#define ACE_LACKS_SIGNED_CHAR
-
-#define ACE_LACKS_SI_ADDR
-
-#define ACE_LACKS_SOCKETPAIR
-
-#define ACE_LACKS_STRCASECMP
-
-#define ACE_LACKS_STRRECVFD
-
-#define ACE_LACKS_SYSCALL
-
-#define ACE_LACKS_SYSV_MSG_H
-
-#define ACE_LACKS_SYSV_SHMEM
-
-#define ACE_LACKS_SYS_NERR
-
-#define ACE_LACKS_SYS_TYPES_H
-
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_UCONTEXT_H
-
-#define ACE_LACKS_UNIX_SIGNALS
-
-#define ACE_THREADS_LACK_SHARED_SOCKETS
-
-// #define ACE_MALLOC_ALIGN 8
-// #define ACE_LACKS_SYSTIME_H
-
-#define ACE_PAGE_SIZE 4096
-
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_PSOS_CANT_USE_SYS_TYPES
-
-// #define ACE_PSOS_LACKS_PHILE
-
-#define ACE_PSOS_HAS_C_LIBRARY
-
-#define ACE_PSOS_SNARFS_HEADER_INFO
-
-#define ACE_PSOS_LACKS_ARGC_ARGV
-
-#if !defined (ACE_PSOS)
-#define ACE_PSOS
-#endif /* ACE_PSOS */
-
-#if !defined (ACE_PSOS_TBD)
-#define ACE_PSOS_TBD
-#endif /* ACE_PSOS_TBD */
-
-#define ACE_LACKS_MKFIFO
-
-#define ACE_PSOS_DIAB
-
-#define ACE_PSOS_DIAB_PPC
-
-/* Defining PNANOREDEF will avoid the redefinition of close to pna_close in
- * pna.h In OS.i we make sure that pna_close is called in place of close
- * when a socket is closed.
- */
-#define _PNANOREDEF_
-
-/* needed for portability, due to non-standard ip_mreq
- structure definition for pSOS Diab PPC */
-#define IMR_MULTIADDR imr_mcastaddr
-
-#define ACE_THREADS_DONT_INHERIT_LOG_MSG /* Stream sharing problem for tasks */
-
-#define ACE_THREADS_MUST_EXPLICITLY_SHARE_SOCKETS /* Can't just share sockets */
-
-#define ACE_PSOS_DEFAULT_STACK_SIZE 30720 /* Default task stack size to 30K */
-
-#define ACE_DEFAULT_THREAD_PRIORITY 239
-
-#define ACE_THREAD_MANAGER_LACKS_STATICS
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-psos-diab.h b/ace/config-psos-diab.h
deleted file mode 100644
index 7c439aa677d..00000000000
--- a/ace/config-psos-diab.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for pSOSystem V2.2.2,
-// using the Diab Data D-C++ 4.2a compiler (or a later version)
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// #if ! defined (__ACE_INLINE__)
-// # define __ACE_INLINE__
-// #endif /* ! __ACE_INLINE__ */
-#if defined (__ACE_INLINE__)
-# undef __ACE_INLINE__
-#endif /* __ACE_INLINE__ */
-
-#define ACE_LACKS_ISATTY
-
-#define ACE_LACKS_DIFFTIME
-
-#define ACE_LACKS_FCNTL
-
-#define ACE_LACKS_FILELOCKS
-
-#define ACE_LACKS_FSYNC
-
-#define ACE_LACKS_INLINE_FUNCTIONS
-
-#define ACE_LACKS_TEMPLATE_AS_TEMPLATE_PARAMETER
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
-
-#define ACE_PSOS_LACKS_PREPC
-
-#define ACE_PSOS_HAS_TIME
-
-#define ACE_HAS_STRDUP_EMULATION
-
-#define ACE_HAS_IP_MULTICAST
-
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-#define ACE_HAS_BROKEN_EXPLICIT_TYPECAST_OPERATOR_INVOCATION
-
-#define ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS
-
-#define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
-
-# define ACE_HAS_BROKEN_NOOP_DTORS
-
-# define ACE_HAS_DIRENT
-# define ACE_LACKS_READDIR_R
-# define ACE_LACKS_TELLDIR
-# define ACE_LACKS_SEEKDIR
-# define ACE_LACKS_REWINDDIR
-
-#define ACE_LACKS_TRUNCATE
-
-// Template instantiation definitions
-// #define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_FILE
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-
-// IO Streams stuff
-// #define ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION
-#define ACE_LACKS_IOSTREAM_TOTALLY
-#define ACE_LACKS_ACE_IOSTREAM
-#define ACE_LACKS_IOSTREAM_FX
-#define ACE_DEFAULT_LOG_STREAM 0
-#define ostream FILE
-
-#define ACE_LACKS_HRTIME_T
-
-// #define ACE_LACKS_EVENT_T
-
-#define ACE_HAS_VERBOSE_NOTSUP
-
-#define ACE_LACKS_MEMORY_H
-
-// #define ACE_LACKS_MALLOC_H
-
-#define ACE_LACKS_MMAP
-
-#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-
-#define ACE_LACKS_SEMBUF_T
-
-#define ACE_LACKS_EXEC
-
-#define ACE_LACKS_FORK
-
-#define ACE_LACKS_WRITEV
-
-#define ACE_LACKS_READV
-
-// rename the main entry point
-#define ACE_MAIN extern "C" void root
-
-// All this was commented out for the single threaded port
-
-#define ACE_HAS_THREADS
-
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-#define ACE_HAS_TSS_EMULATION
-
-#define ACE_DEFAULT_THREAD_KEYS 256
-
-#define ACE_LACKS_COND_T
-
-// #define ACE_HAS_TSS_EMULATION
-
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-
-/* #define ACE_HAS_BROKEN_SENDMSG */
-
-/* #define ACE_HAS_BROKEN_WRITEV */
-
-#define ACE_HAS_BROKEN_CONVERSIONS
-
-#define ACE_HAS_CHARPTR_SOCKOPT
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_MSG
-
-#define ACE_HAS_POSIX_NONBLOCK
-
-#define ACE_HAS_SIGINFO_T
-#define ACE_LACKS_SIGINFO_H
-#define ACE_SIGINFO_IS_SIGINFO_T
-#define ACE_LACKS_SIGSET_DEFINITIONS
-
-#define ACE_HAS_SIGWAIT
-
-#define ACE_HAS_SIG_ATOMIC_T
-
-#define ACE_HAS_STRERROR
-
-#define ACE_LACKS_ACCESS
-
-#define ACE_LACKS_GETHOSTENT
-
-#define ACE_LACKS_GETSERVBYNAME
-
-#define ACE_LACKS_KEY_T
-
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-#define ACE_LACKS_LONGLONG_T
-
-#define ACE_LACKS_LSTAT
-
-#define ACE_LACKS_MADVISE
-
-#define ACE_LACKS_MKTEMP
-
-#define ACE_LACKS_MPROTECT
-
-#define ACE_LACKS_MSYNC
-
-#define ACE_LACKS_PARAM_H
-
-#define ACE_LACKS_PWD_FUNCTIONS
-
-#define ACE_LACKS_READLINK
-
-#define ACE_LACKS_RLIMIT
-
-#define ACE_LACKS_RWLOCK_T
-
-#define ACE_LACKS_SBRK
-
-#define ACE_LACKS_SIGNED_CHAR
-
-#define ACE_LACKS_SI_ADDR
-
-#define ACE_LACKS_SOCKETPAIR
-
-#define ACE_LACKS_STRCASECMP
-
-#define ACE_LACKS_STRRECVFD
-
-#define ACE_LACKS_SYSCALL
-
-#define ACE_LACKS_SYSV_MSG_H
-
-#define ACE_LACKS_SYSV_SHMEM
-
-#define ACE_LACKS_SYS_NERR
-
-#define ACE_LACKS_SYS_TYPES_H
-
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_UCONTEXT_H
-
-#define ACE_LACKS_UNIX_SIGNALS
-
-// #define ACE_LACKS_SYSTIME_H
-
-#define ACE_PAGE_SIZE 4096
-
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_PSOS_CANT_USE_SYS_TYPES
-
-// #define ACE_PSOS_LACKS_PHILE
-
-#define ACE_PSOS_HAS_C_LIBRARY
-
-#define ACE_PSOS_SNARFS_HEADER_INFO
-
-#define ACE_PSOS_LACKS_ARGC_ARGV
-
-#if !defined (ACE_PSOS)
-#define ACE_PSOS
-#endif /* ACE_PSOS */
-
-#define ACE_MALLOC_ALIGN 8
-
-#if !defined (ACE_PSOS_DIAB)
-#define ACE_PSOS_DIAB
-#endif /* ACE_PSOS_DIAB */
-#define ACE_LACKS_MKFIFO
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-psos-tm.h b/ace/config-psos-tm.h
deleted file mode 100644
index aa077e2bca6..00000000000
--- a/ace/config-psos-tm.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for pSOSystem V2.2.1,
-// using the Diab Data D-C++ 4.1a compiler
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// #if ! defined (__ACE_INLINE__)
-// # define __ACE_INLINE__
-// #endif /* ! __ACE_INLINE__ */
-#if defined (__ACE_INLINE__)
-# undef __ACE_INLINE__
-#endif /* __ACE_INLINE__ */
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
-
-#define ACE_HAS_STRDUP_EMULATION
-
-#define ACE_HAS_IP_MULTICAST
-
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-#define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
-
-// Template instantiation definitions
-// #define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_FILE
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-
-#define ACE_DONT_INCLUDE_ACE_SIGNAL_H
-# include <signal.h> //JINLU
-#undef ACE_DONT_INCLUDE_ACE_SIGNAL_H
-#include <pna.h> //JINLU
-#define NSIG _NSIG //_NSIG = 32 defined in signal.h JINLU
-#define TCP_NODELAY 1 // this will be defined later by pSOS/TM
-
-/* #define ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION */
-
-#define ACE_LACKS_HRTIME_T
-
-// #define ACE_LACKS_EVENT_T
-
-#define ACE_HAS_VERBOSE_NOTSUP
-
-#define ACE_LACKS_MEMORY_H
-
-// #define ACE_LACKS_MALLOC_H
-
-#define ACE_LACKS_MMAP
-
-#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-
-#define ACE_LACKS_SEMBUF_T
-
-#define ACE_LACKS_EXEC
-
-#define ACE_LACKS_FORK
-
-#define ACE_LACKS_WRITEV
-
-#define ACE_LACKS_READV
-
-// rename the main entry point
-// #define ACE_MAIN extern "C" void root
-
-// All this was commented out for the single threaded port
-
-#define ACE_HAS_THREADS
-
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-#define ACE_HAS_TSS_EMULATION
-
-#define ACE_DEFAULT_THREAD_KEYS 256
-
-#define ACE_LACKS_COND_T
-
-// #define ACE_HAS_TSS_EMULATION
-
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-
-/* #define ACE_HAS_BROKEN_SENDMSG */
-
-/* #define ACE_HAS_BROKEN_WRITEV */
-
-#define ACE_HAS_BROKEN_CONVERSIONS
-
-#define ACE_HAS_CHARPTR_SOCKOPT
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_MSG
-
-#define ACE_HAS_POSIX_NONBLOCK
-
-#define ACE_HAS_SIGINFO_T
-#define ACE_LACKS_SIGINFO_H
-#define ACE_SIGINFO_IS_SIGINFO_T
-
-#define ACE_HAS_SIGWAIT
-
-#define ACE_HAS_SIG_ATOMIC_T
-
-#define ACE_HAS_STRERROR
-
-#define ACE_LACKS_ACCESS
-
-#define ACE_LACKS_GETHOSTENT
-
-#define ACE_LACKS_GETSERVBYNAME
-
-#define ACE_LACKS_IOSTREAM_FX
-
-#define ACE_LACKS_KEY_T
-
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-#define ACE_LACKS_LONGLONG_T
-
-#define ACE_LACKS_LSTAT
-
-#define ACE_LACKS_MADVISE
-
-#define ACE_LACKS_MKTEMP
-
-#define ACE_LACKS_MPROTECT
-
-#define ACE_LACKS_MSYNC
-
-#define ACE_LACKS_PARAM_H
-
-#define ACE_LACKS_PWD_FUNCTIONS
-
-#define ACE_LACKS_READLINK
-
-#define ACE_LACKS_RLIMIT
-
-#define ACE_LACKS_RWLOCK_T
-
-#define ACE_LACKS_SBRK
-
-#define ACE_LACKS_SIGNED_CHAR
-
-#define ACE_LACKS_SI_ADDR
-
-#define ACE_LACKS_SOCKETPAIR
-
-#define ACE_LACKS_STRCASECMP
-
-#define ACE_LACKS_STRRECVFD
-
-#define ACE_LACKS_SYSCALL
-
-#define ACE_LACKS_SYSV_MSG_H
-
-#define ACE_LACKS_SYSV_SHMEM
-
-#define ACE_LACKS_SYS_NERR // psos/tm does not have sys_nerr
-
-#define ACE_LACKS_SYS_TYPES_H
-
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_UCONTEXT_H
-
-#define ACE_LACKS_UNIX_SIGNALS
-
-// #define ACE_LACKS_SYSTIME_H
-
-#define ACE_PAGE_SIZE 4096
-
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_PSOS_TM
-#define ACE_PSOS_PROVIDES_ERROR_SYMBOLS_TM
-#define USER_INCLUDE_SYS_TIME_TM
-#define ACE_LACKS_FILELOCKS
-#define ACE_LACKS_SIGSET
-#define ACE_LACKS_SIGACTION
-#define ACE_LACKS_FCNTL
-#define ACE_PSOS_LACKS_PHILE
-#define ACE_PSOS_LACKS_PREPC
-#define ACE_PSOS_CANT_USE_SYS_TYPES
-#define ACE_PSOS_HAS_TIME
-
-//#define ACE_PSOS_SNARFS_HEADER_INFO
-
-#if !defined (ACE_PSOS)
-#define ACE_PSOS
-#endif /* ACE_PSOS */
-
-#if !defined (ACE_PSOS_TBD)
-#define ACE_PSOS_TBD
-#endif /* ACE_PSOS_TBD */
-#define ACE_LACKS_MKFIFO
-#define ACE_MALLOC_ALIGN 8
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-psosim-g++.h b/ace/config-psosim-g++.h
deleted file mode 100644
index f288b93f18e..00000000000
--- a/ace/config-psosim-g++.h
+++ /dev/null
@@ -1,246 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for pSOSim on SunOS5
-// using the GNU/Cygnus g++ 2.7.2 compiler, without repo patch.
-
-///////////////////////////////////////////////////////////////////////////////
-// * IMPORTANT * IMPORTANT * IMPORTANT * IMPORTANT * IMPORTANT * IMPORTANT * //
-// //
-// Because pSOSim includes UNIX system header files in order to do //
-// its emulation of pSOSystSem on Solaris, there are a number of //
-// things that are "available" to ACE on pSOSim that are *not* //
-// really available on pSOSystem. Every effort has been made to //
-// avoid dependencies on these "features" in the ACE pSOSim port, //
-// which has in turn necessarily required pSOSim specific definitions. //
-// //
-// To ease portability between pSOSim and pSOSystem, the definitions //
-// in this file have been separated into three groups: those that //
-// are known to be appropriate for both pSOSim and pSOSystem, those //
-// known to be appropriate for pSOSim but (probably) not for pSOSystem, //
-// and those that are (probably) appropriate for pSOSystem, but are //
-// not appropriate for pSOSim. //
-// //
-// When porting from pSOSim to pSOSystem, it is (probably) a good //
-// idea to leave the definitions in the first category alone, //
-// comment out the definitions in the second category, and uncomment //
-// the definitions in the third category. Additional definitions //
-// may need to be added to the third category, as only those that //
-// were encountered during the pSOSim port were added (that is, one //
-// of the system files included by pSOSim could be compensating for //
-// a definition pSOSystem really needs. //
-// //
-// * IMPORTANT * IMPORTANT * IMPORTANT * IMPORTANT * IMPORTANT * IMPORTANT * //
-///////////////////////////////////////////////////////////////////////////////
-
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-////////////////////////////////////////////////////////////////
-// //
-// Definitions appropriate for both pSOSim and pSOSystem //
-// //
-////////////////////////////////////////////////////////////////
-
-#if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
-
-#define ACE_HAS_IP_MULTICAST
-
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-/* #define ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION */
-
-// #define ACE_LACKS_U_LONG_LONG
-
-#define ACE_LACKS_HRTIME_T
-
-// #define ACE_LACKS_EVENT_T
-
-#define ACE_HAS_VERBOSE_NOTSUP
-
-#define ACE_LACKS_MEMORY_H
-
-#define ACE_LACKS_MALLOC_H
-
-#define ACE_LACKS_MMAP
-
-#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-
-#define ACE_LACKS_SEMBUF_T
-
-#define ACE_LACKS_EXEC
-
-#define ACE_LACKS_FORK
-
-
-// rename the main entry point
-#define ACE_MAIN extern "C" void root
-
-// All this is commented out for the single threaded port
-/*
-
-#define ACE_HAS_THREADS
-
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-#define ACE_DEFAULT_THREAD_KEYS 256
-
-#define ACE_LACKS_COND_T
-
-
-*/
-
-#define ACE_HAS_TSS_EMULATION
-
-
-////////////////////////////////////////////////////////////////
-// //
-// Definitions appropriate for pSOSim but not pSOSystem //
-// //
-////////////////////////////////////////////////////////////////
-
-#define ACE_HAS_POSIX_TIME
-
-////////////////////////////////////////////////////////////////
-// //
-// Definitions appropriate for pSOSystem but not pSOSim //
-// //
-////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////
-// //
-// Definitions that have not been categorized //
-// //
-////////////////////////////////////////////////////////////////
-
-
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-
-/* #define ACE_HAS_BROKEN_SENDMSG */
-
-/* #define ACE_HAS_BROKEN_WRITEV */
-
-#define ACE_HAS_CHARPTR_SOCKOPT
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_MSG
-
-#define ACE_HAS_POSIX_NONBLOCK
-
-#define ACE_HAS_SIGINFO_T
-
-#define ACE_HAS_SIGWAIT
-
-#define ACE_HAS_SIG_ATOMIC_T
-
-#define ACE_HAS_STRERROR
-
-#define ACE_LACKS_ACCESS
-
-#define ACE_LACKS_GETHOSTENT
-
-#define ACE_LACKS_GETSERVBYNAME
-
-#define ACE_LACKS_IOSTREAM_FX
-
-#define ACE_LACKS_KEY_T
-
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-#define ACE_LACKS_LONGLONG_T
-
-#define ACE_LACKS_LSTAT
-
-#define ACE_LACKS_MADVISE
-
-#define ACE_LACKS_MKTEMP
-
-#define ACE_LACKS_MPROTECT
-
-#define ACE_LACKS_MSYNC
-
-#define ACE_LACKS_PARAM_H
-
-#define ACE_LACKS_PWD_FUNCTIONS
-
-#define ACE_LACKS_READLINK
-
-#define ACE_LACKS_RLIMIT
-
-#define ACE_LACKS_RWLOCK_T
-
-#define ACE_LACKS_SBRK
-
-#define ACE_LACKS_SIGINFO_H
-
-#define ACE_LACKS_SIGNED_CHAR
-
-#define ACE_LACKS_SI_ADDR
-
-#define ACE_LACKS_SOCKETPAIR
-
-#define ACE_LACKS_STRCASECMP
-
-#define ACE_LACKS_STRRECVFD
-
-#define ACE_LACKS_SYSCALL
-
-#define ACE_LACKS_SYSV_MSG_H
-
-#define ACE_LACKS_SYSV_SHMEM
-
-#define ACE_LACKS_SYS_NERR
-
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_UCONTEXT_H
-
-#define ACE_LACKS_UNIX_SIGNALS
-
-#define ACE_LACKS_UTSNAME_T
-
-// #define ACE_LACKS_SYSTIME_H
-
-#define ACE_PAGE_SIZE 4096
-
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#if !defined (ACE_PSOS)
-#define ACE_PSOS
-#endif /* ACE_PSOS */
-
-#if !defined (ACE_PSOSIM)
-#define ACE_PSOSIM
-#endif /* ACE_PSOSIM */
-
-#if !defined (ACE_PSOS_TBD)
-#define ACE_PSOS_TBD
-#endif /* ACE_PSOS_TBD */
-
-// By default, don't include RCS Id strings in object code.
-#if !defined (ACE_USE_RCSID)
-#define ACE_USE_RCSID 0
-#endif /* #if !defined (ACE_USE_RCSID) */
-#define ACE_LACKS_MKFIFO
-
-#define ACE_MALLOC_ALIGN 8
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-qnx-neutrino.h b/ace/config-qnx-neutrino.h
deleted file mode 100644
index 560e00f175a..00000000000
--- a/ace/config-qnx-neutrino.h
+++ /dev/null
@@ -1,148 +0,0 @@
-// $Id$
-
-// The following configuration file is designed to work for Neutrino
-// 2.0 (Beta) with GNU C++ and the POSIX (pthread) threads package.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#define _POSIX_C_SOURCE 199506
-#define _QNX_SOURCE
-
-// These constants are in i386-nto/include/limits.h, but egcs
-// picks up its own limits.h instead:
-#define _POSIX_NAME_MAX 14 /* Max bytes in a filename */
-#define _POSIX_PATH_MAX 256 /* Num. bytes in pathname (excl. NULL) */
-
-// gcc can do inline
-#if __GNUC__ > 2 || ( __GNUC__ == 2 && __GNUC_MINOR__ >= 8)
-# if !defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-# endif /* ! __ACE_INLINE__ */
-#endif
-
-#if defined(__OPTIMIZE__)
-# if defined(__X86__)
- // string.h can't be used by ACE with __OPTIMIZE__.
-# undef __OPTIMIZE__
-# include <string.h>
-# define __OPTIMIZE__
-# endif /* __X86__ */
-#endif /* __OPTIMIZE__ */
-
-#include "ace/config-g++-common.h"
-
-// The following defines the Neutrino compiler.
-// gcc should know to call g++ as necessary
-#ifdef __GNUC__
-# define ACE_CC_NAME "gcc"
-#else
-# define ACE_CC_NAME "NTO compiler ??"
-#endif
-
-// /usr/nto/include/float.h defines
-// FLT_MAX_EXP 127
-// DBL_MAX_EXP 1023
-// ace expects 128 & 1024 respectively
-// to set the following macros in ace/Basic_Types.h
-// These macros are:
-// #define ACE_SIZEOF_DOUBLE 8
-// #define ACE_SIZEOF_FLOAT 4
-
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-#define ACE_HAS_ALLOCA
-#define ACE_HAS_ALLOCA_H
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_DIRENT
-#define ACE_HAS_GETPAGESIZE
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-#define ACE_HAS_INLINED_OSCALLS
-#define ACE_HAS_IP_MULTICAST
-#define ACE_HAS_MSG
-#define ACE_HAS_MT_SAFE_MKTIME
-#define ACE_HAS_MUTEX_TIMEOUTS
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_POSIX_SEM
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
-#define ACE_HAS_PTHREAD_SIGMASK
-#define ACE_HAS_P_READ_WRITE
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#define ACE_HAS_SELECT_H
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_SIGISMEMBER_BUG
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_SIG_MACROS
-#define ACE_HAS_SIN_LEN
-#define ACE_HAS_SIZET_SOCKET_LEN
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRERROR
-#define ACE_HAS_STRINGS
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-#define ACE_HAS_TERM_IOCTLS
-#define ACE_HAS_THREADS
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_THR_C_DEST
-#define ACE_HAS_THR_C_FUNC
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-#define ACE_HAS_UALARM
-#define ACE_HAS_UCONTEXT_T
-#define ACE_HAS_VOIDPTR_MMAP
-#define ACE_HAS_VOIDPTR_SOCKOPT
-#define ACE_LACKS_CMSG_DATA_MEMBER
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_FORK
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_MSGBUF_T
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_LACKS_NAMED_POSIX_SEM
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_RPC_H
-#define ACE_LACKS_RTTI
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SBRK
-#define ACE_LACKS_SEEKDIR
-#define ACE_LACKS_SOCKET_BUFSIZ
-#define ACE_LACKS_SOCKETPAIR
-#define ACE_LACKS_SOME_POSIX_PROTOTYPES
-#define ACE_LACKS_STREAM_MODULES
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_SYSTIME_H
-#define ACE_LACKS_SYSV_MSG_H
-#define ACE_LACKS_SYSV_SHMEM
-#define ACE_LACKS_TCP_NODELAY
-#define ACE_LACKS_TELLDIR
-#define ACE_LACKS_TIMESPEC_T
-#define ACE_LACKS_TRUNCATE
-#define ACE_LACKS_T_ERRNO
-#define ACE_LACKS_UALARM_PROTOTYPE
-#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-#define ACE_LACKS_U_LONGLONG_T
-#define ACE_MT_SAFE 1
-#define ACE_NEEDS_FUNC_DEFINITIONS
-#define ACE_NEEDS_HUGE_THREAD_STACKSIZE 65536
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-#define ACE_THR_PRI_FIFO_DEF 10
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-#define ACE_HAS_SIGTIMEDWAIT
-#define ACE_HAS_SIGSUSPEND
-
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-qnx-rtp.h b/ace/config-qnx-rtp.h
deleted file mode 100644
index 65e55ac13d1..00000000000
--- a/ace/config-qnx-rtp.h
+++ /dev/null
@@ -1,199 +0,0 @@
-// $Id$
-
-// The following configuration file is designed to work for QNX RTP
-// GNU C++ and the POSIX (pthread) threads package. You can get QNX
-// RTP at http://get.qnx.com
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#define _POSIX_C_SOURCE 199506
-#define _QNX_SOURCE
-
-// These constants are in i386-nto/include/limits.h, but egcs
-// picks up its own limits.h instead:
-#define _POSIX_NAME_MAX 14 /* Max bytes in a filename */
-#define _POSIX_PATH_MAX 256 /* Num. bytes in pathname (excl. NULL) */
-
-// gcc can do inline
-#if __GNUC__ > 2 || ( __GNUC__ == 2 && __GNUC_MINOR__ >= 8)
-# if !defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-# endif /* ! __ACE_INLINE__ */
-#endif
-
-#if defined(__OPTIMIZE__)
-# if defined(__X86__)
- // string.h can't be used by ACE with __OPTIMIZE__.
-# undef __OPTIMIZE__
-# include <string.h>
-# define __OPTIMIZE__
-# endif /* __X86__ */
-#endif /* __OPTIMIZE__ */
-
-#include "ace/config-g++-common.h"
-
-// The following defines the Neutrino compiler.
-// gcc should know to call g++ as necessary
-#ifdef __GNUC__
-# define ACE_CC_NAME "gcc"
-#else
-# define ACE_CC_NAME "QNX-RTP compiler ??"
-#endif
-
-// /usr/nto/include/float.h defines
-// FLT_MAX_EXP 127
-// DBL_MAX_EXP 1023
-// ace expects 128 & 1024 respectively
-// to set the following macros in ace/Basic_Types.h
-// These macros are:
-#define ACE_SIZEOF_DOUBLE 8
-#define ACE_SIZEOF_FLOAT 4
-
-/////////////////////////////////////////////////////////////////
-// Definition of the features that are available.
-//
-// ACE_HAS Section
-/////////////////////////////////////////////////////////////////
-
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-#define ACE_HAS_ALLOCA
-#define ACE_HAS_ALLOCA_H
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_DIRENT
-#define ACE_HAS_GETPAGESIZE
-// Enable gperf, this is a hosted configuration.
-#define ACE_HAS_GPERF
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-//#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-#define ACE_HAS_INLINED_OSCALLS
-#define ACE_HAS_IP_MULTICAST
-#define ACE_HAS_MSG
-#define ACE_HAS_MT_SAFE_MKTIME
-#define ACE_HAS_MUTEX_TIMEOUTS
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_POSIX_SEM
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
-#define ACE_HAS_PTHREAD_SIGMASK
-#define ACE_HAS_P_READ_WRITE
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#define ACE_HAS_SELECT_H
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_SIGISMEMBER_BUG
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_SIG_MACROS
-#define ACE_HAS_SIN_LEN
-// #define ACE_HAS_SIZET_SOCKET_LEN
-#define ACE_HAS_SOCKLEN_T
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRERROR
-#define ACE_HAS_STRINGS
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-#define ACE_HAS_TERM_IOCTLS
-#define ACE_HAS_THREADS
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_THR_C_DEST
-#define ACE_HAS_THR_C_FUNC
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-#define ACE_HAS_UALARM
-#define ACE_HAS_UCONTEXT_T
-#define ACE_HAS_VOIDPTR_MMAP
-#define ACE_HAS_VOIDPTR_SOCKOPT
-
-/////////////////////////////////////////////////////////////////
-// Definition of the features that are not available.
-//
-// ACE_LACKS Section
-/////////////////////////////////////////////////////////////////
-#define ACE_LACKS_CMSG_DATA_MEMBER
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_MSGBUF_T
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_LACKS_NAMED_POSIX_SEM
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_RPC_H
-#define ACE_LACKS_RTTI
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SBRK
-#define ACE_LACKS_SEEKDIR
-#define ACE_LACKS_SOCKET_BUFSIZ
-#define ACE_LACKS_SOCKETPAIR // Even if the QNX RTP docs says that socket pair are
- // available, there is actually no implementation of
- // soket-pairs.
-#define ACE_LACKS_SOME_POSIX_PROTOTYPES
-#define ACE_LACKS_STREAM_MODULES
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_SYSTIME_H
-#define ACE_LACKS_SYSV_MSG_H
-#define ACE_LACKS_SYSV_SHMEM
-//#define ACE_LACKS_TCP_NODELAY // Based on the QNX RTP documentation, this option seems to
- // to be supported.
-#define ACE_LACKS_TELLDIR
-#define ACE_LACKS_TIMESPEC_T
-#define ACE_LACKS_TRUNCATE
-#define ACE_LACKS_T_ERRNO
-#define ACE_LACKS_UALARM_PROTOTYPE
-#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-#define ACE_LACKS_U_LONGLONG_T
-
-#define ACE_LACKS_RLIMIT // QNX rlimit syscalls don't work properly with ACE.
-
-#define ACE_MT_SAFE 1
-#define ACE_NEEDS_FUNC_DEFINITIONS
-#define ACE_NEEDS_HUGE_THREAD_STACKSIZE 64000
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-#define ACE_THR_PRI_FIFO_DEF 10
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-#define ACE_HAS_SIGTIMEDWAIT
-#define ACE_HAS_SIGSUSPEND
-
-#define ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK 1
-
-#define ACE_SIZEOF_WCHAR 4
-
-// Not really, but the prototype returns wchar_t instead of wchar_t *
-#define ACE_LACKS_WCSSTR
-
-// No prototypes
-#define ACE_LACKS_ITOW
-#define ACE_LACKS_WCSICMP
-#define ACE_LACKS_WCSNICMP
-#define ACE_LACKS_WCSDUP
-
-// And these have prototypes but no implementation
-#define ACE_LACKS_WCSLEN
-#define ACE_LACKS_WCSNCMP
-#define ACE_LACKS_WCSCPY
-#define ACE_LACKS_WCSNCPY
-#define ACE_LACKS_TOWLOWER
-#define ACE_LACKS_WCSCMP
-#define ACE_LACKS_WCSCAT
-#define ACE_LACKS_WCSNCAT
-#define ACE_LACKS_WCSSPN
-#define ACE_LACKS_WCSCHR
-#define ACE_LACKS_WCSPBRK
-#define ACE_LACKS_WCSRCHR
-
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-#define ACE_LACKS_ACE_IOSTREAM
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-rtems.h b/ace/config-rtems.h
deleted file mode 100644
index e0a1d102255..00000000000
--- a/ace/config-rtems.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/* -*- C -*- */
-// $Id$
-
-/* The following configuration file is designed to work for RTEMS
- platforms using GNU C.
-*/
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-
-// begin of linux-common.h
-
-/* #define ACE_HAS_BYTESEX_H */
-
-#if ! defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// Needed to make some prototypes visible.
-// #if ! defined (_GNU_SOURCE)
-// #define _GNU_SOURCE
-// #endif /* ! _GNU_SOURCE */
-
-// First the machine specific part
-// There are no known port specific issues with the RTEMS port of ACE.
-// XXX Pentium and PowerPC have high res timer support in ACE.
-
-// Then the compiler specific parts
-#if defined (__GNUG__)
- // config-g-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
- // this must appear before its #include.
-# define ACE_HAS_STRING_CLASS
-# include "ace/config-g-common.h"
-#elif defined (__KCC)
-# define ACE_HAS_STRING_CLASS
-# include "ace/config-kcc-common.h"
-#elif defined (__DECCXX)
-# define ACE_CONFIG_INCLUDE_CXX_COMMON
-# include "ace/config-cxx-common.h"
-#else /* ! __GNUG__ && ! __KCC && !__DECCXX */
-# error unsupported compiler in ace/config-linux-common.h
-#endif /* ! __GNUG__ && ! __KCC */
-
-// Completely common part :-)
-
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-# if !defined (ACE_MAIN)
-# define ACE_MAIN ace_main
-# endif /* ! ACE_MAIN */
-
-// Yes, we do have threads.
-#define ACE_HAS_THREADS
-// And they're even POSIX pthreads (MIT implementation)
-#define ACE_HAS_PTHREADS
-// ... and the final standard even!
-#define ACE_HAS_PTHREADS_STD
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// XXX thread defines go here
-#define ACE_MT_SAFE 1
-#define ACE_PAGE_SIZE 4096
-#define ACE_HAS_ALT_CUSERID
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-#define ACE_HAS_CLOCK_GETTIME
-/* #define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES */
-#define ACE_HAS_DIRENT
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-/* #define ACE_HAS_LLSEEK */
-#define ACE_HAS_MEMCHR
-#define ACE_HAS_MSG
-#define ACE_HAS_MT_SAFE_MKTIME
-#define ACE_HAS_POSIX_SEM
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PROCESS_ENUM
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_SIGSUSPEND
-#define ACE_HAS_SSIZE_T
-/* #define ACE_HAS_STANDARD_CPP_LIBRARY */
-#define ACE_HAS_STRERROR
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-#define ACE_HAS_SYS_ERRLIST
-#define ACE_HAS_SYS_FILIO_H
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-#define ACE_LACKS_DIFFTIME
-#define ACE_LACKS_EXEC
-#define ACE_LACKS_FILELOCKS
-#define ACE_LACKS_FORK
-#define ACE_LACKS_GETOPT_PROTO
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_TIMESPEC_T
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_MKFIFO
-#define ACE_LACKS_MMAP
-#define ACE_LACKS_MPROTECT
-#define ACE_LACKS_MSYNC
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-/* #define ACE_LACKS_POSIX_PROTOTYPES */
- // ... for System V functions like shared memory and message queues
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_READDIR_R
-#define ACE_LACKS_READLINK
-#define ACE_HAS_BROKEN_READV
-#define ACE_LACKS_READV
-#define ACE_LACKS_RLIMIT
-#define ACE_LACKS_RLIMIT_PROTOTYPE
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SBRK
-#define ACE_LACKS_SEMBUF_T
-#define ACE_LACKS_SETREUID
-#define ACE_LACKS_SETREUID_PROTOTYPE
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREGID_PROTOTYPE
-#define ACE_LACKS_SOME_POSIX_PROTOTYPES
- // ... for System V functions like shared memory and message queues
-#define ACE_LACKS_NATIVE_STRPTIME
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_SI_ADDR
-#define ACE_LACKS_SOCKETPAIR
-#define ACE_LACKS_SYSV_MSG_H
-#define ACE_LACKS_SYSV_SHMEM
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_SYS_NERR
-#define ACE_LACKS_UALARM_PROTOTYPE
-#define ACE_LACKS_UCONTEXT_H
-#define ACE_HAS_BROKEN_WRITEV
-#define ACE_LACKS_WRITEV
-#define ACE_NEEDS_HUGE_THREAD_STACKSIZE 65536
-#define ACE_NEEDS_SCHED_H
-#define ACE_HAS_POSIX_NONBLOCK
-
-/* What should these be set to?.
-
-ACE_TLI_TCP_DEVICE
-ACE_HAS_RECVFROM_TIMEDWAIT
-ACE_HAS_SEND_TIMEDWAIT
-ACE_HAS_SENDTO_TIMEDWAIT
-ACE_HAS_IP_MULTICAST
-ACE_HAS_NONCONST_SELECT_TIMEVAL
-ACE_HAS_WCHAR_TYPEDEFS_CHAR
-ACE_HAS_WCHAR_TYPEDEFS_USHORT
-ACE_HAS_SIGNAL_SAFE_OS_CALLS
-ACE_HAS_SIZET_SOCKET_LEN
-ACE_HAS_SOCKADDR_MSG_NAME
-ACE_HAS_SOCKLEN_T
-ACE_HAS_STRBUF_T
-ACE_HAS_SYS_SIGLIST
-ACE_HAS_TERM_IOCTLS
-ACE_HAS_THREAD_SAFE_ACCEPT
-ACE_LACKS_COND_TIMEDWAIT_RESET
-ACE_LACKS_MSG_ACCRIGHTS
-ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-
-Why don't we have alloca.h?
- */
-
-#include /**/ <pthread.h>
-
-extern "C"
-{
- int getopt (int, char *const *, const char *);
-}
-
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sco-4.2-nothread.h b/ace/config-sco-4.2-nothread.h
deleted file mode 100644
index bb7df289328..00000000000
--- a/ace/config-sco-4.2-nothread.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for SCO UNIX
-// version 4.2 without threads.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
- // This config file has not been tested with ACE_HAS_TEMPLATE_SPECIALIZATION.
- // Maybe it will work?
-# undef ACE_HAS_TEMPLATE_SPECIALIZATION
-#endif /* __GNUG__ */
-
-// Compiling for SCO.
-#if !defined (SCO)
-#define SCO
-#endif /* SCO */
-
-#if ! defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_DEFAULT_CLOSE_ALL_HANDLES 0
-
-#if defined (SCO) && !defined (MAXPATHLEN)
-#define MAXPATHLEN 1023
-#endif /* SCO */
-
-#define ACE_HAS_SIG_MACROS
-#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_MMAP
-#define ACE_LACKS_SOCKETPAIR
-#define ACE_HAS_SEMUN
-#define ACE_LACKS_MSYNC
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_WRITEV
-#define ACE_LACKS_READV
-#define ACE_NEEDS_FTRUNCATE
-#define ACE_LACKS_RLIMIT
-#define ACE_LACKS_RECVMSG
-#define ACE_LACKS_SENDMSG
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Platform supports recvmsg and sendmsg.
-//#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-//#define ACE_HAS_SYSCALL_H
-
-// Fixes a problem with HP/UX not wrapping the mmap(2) header files
-// with extern "C".
-//#define ACE_HAS_BROKEN_MMAP_H
-
-// Prototypes for both signal() and struct sigaction are consistent.
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Header files lack t_errno for ACE_TLI.
-//#define ACE_LACKS_T_ERRNO
-
-// Compiler/platform supports poll().
-#define ACE_HAS_POLL
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform defines the sig_atomic_t typedef
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Compiler supports the ssize_t typedef.
-//#define ACE_HAS_SSIZE_T
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// ???
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-
-// HP/UX has an undefined syscall for GETRUSAGE...
-//#define ACE_HAS_SYSCALL_GETRUSAGE
-
-// Note, this only works if the flag is set above!
-//#define ACE_HAS_GETRUSAGE
-
-// Platform uses int for select() rather than fd_set.
-#define ACE_SELECT_USES_INT
-
-// Platform has prototypes for ACE_TLI.
-//#define ACE_HAS_TLI_PROTOTYPES
-// Platform has the XLI version of ACE_TLI.
-// #define ACE_HAS_XLI
-
-#define ACE_HAS_GNU_CSTRING_H
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-#define ACE_HAS_DIRENT
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sco-5.0.0-fsu-pthread.h b/ace/config-sco-5.0.0-fsu-pthread.h
deleted file mode 100644
index 2c873f48c87..00000000000
--- a/ace/config-sco-5.0.0-fsu-pthread.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#include "ace/config-g++-common.h"
-#include "ace/config-sco-5.0.0.h"
-#include "ace/config-fsu-pthread.h"
-
-#define ACE_HAS_GNU_CSTRING_H
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sco-5.0.0-mit-pthread.h b/ace/config-sco-5.0.0-mit-pthread.h
deleted file mode 100644
index 70ce1167694..00000000000
--- a/ace/config-sco-5.0.0-mit-pthread.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for SCO UNIX
-// version 5.0 with MIT pthreads.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#if !defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
- // This config file has not been tested with ACE_HAS_TEMPLATE_SPECIALIZATION.
- // Maybe it will work?
-# undef ACE_HAS_TEMPLATE_SPECIALIZATION
-#endif /* __GNUG__ */
-
-// Compiling for SCO.
-#if !defined (SCO)
-#define SCO
-#define _SVID3
-#endif /* SCO */
-
-#define ACE_DEFAULT_CLOSE_ALL_HANDLES 0
-#define ACE_HAS_SIG_MACROS
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#if defined (SCO) && !defined (MAXPATHLEN)
-#define MAXPATHLEN 1023
-#endif /* SCO */
-
-#define ACE_LACKS_PWD_FUNCTIONS
-#define ACE_HAS_BIG_FD_SET
-
-//#define ACE_LACKS_SYSCALL
-//#define ACE_LACKS_STRRECVFD
-//#define ACE_NEEDS_FTRUNCATE
-#define ACE_LACKS_RLIMIT
-#define ACE_LACKS_MADVISE
-
-#define ACE_HAS_REENTRANT_FUNCTIONS
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-#define ACE_HAS_NONCONST_MSGSND
-// #define ACE_LACKS_POSIX_PROTOTYPES
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Platform supports Term Ioctls
-#define ACE_HAS_TERM_IOCTLS
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-//#define ACE_HAS_SYSCALL_H
-
-// Fixes a problem with HP/UX not wrapping the mmap(2) header files
-// with extern "C".
-//#define ACE_HAS_BROKEN_MMAP_H
-
-// Prototypes for both signal() and struct sigaction are consistent.
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Header files lack t_errno for ACE_TLI.
-//#define ACE_LACKS_T_ERRNO
-
-// Compiler/platform supports poll().
-// #define ACE_HAS_POLL
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform defines the sig_atomic_t typedef
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Compiler supports the ssize_t typedef.
-//#define ACE_HAS_SSIZE_T
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// ???
-// #define ACE_HAS_SUNOS4_GETTIMEOFDAY
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-// HP/UX has an undefined syscall for GETRUSAGE...
-//#define ACE_HAS_SYSCALL_GETRUSAGE
-
-// Note, this only works if the flag is set above!
-//#define ACE_HAS_GETRUSAGE
-
-// Platform uses int for select() rather than fd_set.
-#define ACE_HAS_SELECT_H
-
-// Platform has prototypes for ACE_TLI.
-#define ACE_HAS_TLI
-//#define ACE_HAS_SVR4_TLI
-#define ACE_HAS_T_OPMGMT
-#define ACE_HAS_TLI_PROTOTYPES
-#define ACE_HAS_TIMOD_H
-#define ACE_HAS_TIUSER_H
-#define ACE_LACKS_T_ERRNO
-
-// Platform has the XLI version of ACE_TLI.
-// #define ACE_HAS_XLI
-
-#define ACE_HAS_GNU_CSTRING_H
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-
-#define ACE_LACKS_SYSTIME_H
-#define ACE_HAS_INLINED_OSCALLS
-
-#define ACE_HAS_STRBUF_T
-#define ACE_HAS_STREAMS
-//#define ACE_HAS_STREAM_PIPES
-#define ACE_HAS_IP_MULTICAST
-
-// Threads
-#define ACE_HAS_THREADS
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
-#define ACE_LACKS_PTHREAD_CANCEL
-#define ACE_HAS_SIGWAIT
-//#define ACE_HAS_PTHREAD_YIELD_VOID_PTR
-//#define ACE_HAS_PTHREAD_ATTR_INIT
-//#define ACE_HAS_PTHREAD_ATTR_DESTROY
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-//#define ACE_LACKS_THREAD_STACK_ADDR
-// If ACE doesn't compile due to the lack of these methods, please
-// send email to schmidt@cs.wustl.edu reporting this.
-// #define ACE_LACKS_CONDATTR_PSHARED
-// #define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SETSCHED
-#define ACE_HAS_POSIX_TIME
-
-#include <pthread.h>
-#include <sys/regset.h>
-
-#define ACE_LACKS_TIMEDWAIT_PROTOTYPES
-#define ACE_HAS_RECV_TIMEDWAIT
-#define ACE_HAS_RECVFROM_TIMEDWAIT
-#define ACE_HAS_RECVMSG_TIMEDWAIT
-#define ACE_HAS_SEND_TIMEDWAIT
-#define ACE_HAS_SENDTO_TIMEDWAIT
-#define ACE_HAS_SENDMSG_TIMEDWAIT
-#define ACE_HAS_READ_TIMEDWAIT
-#define ACE_HAS_READV_TIMEDWAIT
-#define ACE_HAS_WRITE_TIMEDWAIT
-#define ACE_HAS_WRITEV_TIMEDWAIT
-#define ACE_HAS_DIRENT
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sco-5.0.0-nothread.h b/ace/config-sco-5.0.0-nothread.h
deleted file mode 100644
index ca241adbd1d..00000000000
--- a/ace/config-sco-5.0.0-nothread.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#include "ace/config-g++-common.h"
-#include "ace/config-sco-5.0.0.h"
-
-#define ACE_HAS_GNU_CSTRING_H
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sco-5.0.0.h b/ace/config-sco-5.0.0.h
deleted file mode 100644
index b8a2b738182..00000000000
--- a/ace/config-sco-5.0.0.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_CONFIG_SCO_5_0_0_H
-#define ACE_CONFIG_SCO_5_0_0_H
-#include "ace/pre.h"
-
-// Compiling for SCO.
-#if !defined (SCO)
-#define SCO
-#endif /* SCO */
-
-#if defined (SCO) && !defined (MAXPATHLEN)
-#define MAXPATHLEN 1023
-#endif /* SCO */
-
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_SIG_MACROS
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_STRRECVFD
-#define ACE_NEEDS_FTRUNCATE
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-
-#define ACE_DEFAULT_CLOSE_ALL_HANDLES 0
-
-// Compiler doesn't support static data member templates.
-//#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-#define ACE_HAS_NONCONST_MSGSND
-#define ACE_HAS_BIG_FD_SET
-// #define ACE_LACKS_POSIX_PROTOTYPES
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Platform supports Term Ioctls
-#define ACE_HAS_TERM_IOCTLS
-
-// Compiler/platform contains the <sys/syscall.h> file.
-//#define ACE_HAS_SYSCALL_H
-
-// Fixes a problem with HP/UX not wrapping the mmap(2) header files
-// with extern "C".
-//#define ACE_HAS_BROKEN_MMAP_H
-
-// Prototypes for both signal() and struct sigaction are consistent.
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Header files lack t_errno for ACE_TLI.
-//#define ACE_LACKS_T_ERRNO
-
-// Compiler/platform supports poll().
-// #define ACE_HAS_POLL
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform defines the sig_atomic_t typedef
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Compiler supports the ssize_t typedef.
-//#define ACE_HAS_SSIZE_T
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-// HP/UX has an undefined syscall for GETRUSAGE...
-//#define ACE_HAS_SYSCALL_GETRUSAGE
-
-// Note, this only works if the flag is set above!
-//#define ACE_HAS_GETRUSAGE
-
-// Platform uses int for select() rather than fd_set.
-#define ACE_HAS_SELECT_H
-
-// Platform has prototypes for ACE_TLI.
-#define ACE_HAS_TLI_PROTOTYPES
-// Platform has the XLI version of ACE_TLI.
-// #define ACE_HAS_XLI
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-
-#define ACE_LACKS_SYSTIME_H
-#define ACE_LACKS_STRCASECMP
-
-// #define ACE_HAS_POSIX_TIME
-#define ACE_HAS_IP_MULTICAST
-#define ACE_HAS_DIRENT
-#define ACE_LACKS_READDIR_R
-#define ACE_HAS_GPERF
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_SCO_5_0_0_H */
diff --git a/ace/config-sunos4-g++.h b/ace/config-sunos4-g++.h
deleted file mode 100644
index b1d5f485e00..00000000000
--- a/ace/config-sunos4-g++.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// for SunOS4 platforms using the GNU g++ compiler
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#if ! defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
-// this must appear before its #include.
-#define ACE_HAS_STRING_CLASS
-
-#include "ace/config-g++-common.h"
-// This config file has not been tested with ACE_HAS_TEMPLATE_SPECIALIZATION.
-// Maybe it will work?
-#undef ACE_HAS_TEMPLATE_SPECIALIZATION
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_LACKS_SYSTIME_H
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
-
-#define ACE_HAS_CHARPTR_SPRINTF
-#define ACE_HAS_UNION_WAIT
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Compiler/platform supports strerror ().
-// #define ACE_HAS_STRERROR
-#define ACE_HAS_SYS_ERRLIST
-
-// Header files lack t_errno for ACE_TLI.
-// #define ACE_LACKS_T_ERRNO
-
-// Compiler/platform uses old malloc()/free() prototypes (ugh).
-#define ACE_HAS_OLD_MALLOC
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Compiler/platform supports poll().
-#define ACE_HAS_POLL
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Compiler/platform supports struct strbuf
-#define ACE_HAS_STRBUF_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-// Platform supports ACE_TLI tiuser header.
-// #define ACE_HAS_TIUSER_H
-
-// Platform has ACE_TLI.
-// #define ACE_HAS_TLI
-
-#define ACE_LACKS_U_LONGLONG_T
-
-#define ACE_LACKS_DIFFTIME
-#define ACE_HAS_DIRENT
-
-#define ACE_HAS_SUNOS4_SIGNAL_T
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 6))
-#define ACE_HAS_SYSENT_H
-#endif
-#define ACE_HAS_ALLOCA
-// Compiler/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos4-lucid3.2.h b/ace/config-sunos4-lucid3.2.h
deleted file mode 100644
index e0738e124a8..00000000000
--- a/ace/config-sunos4-lucid3.2.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work
-// for SunOS4 platforms using the Lucid 3.2 compiler.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_SYS_ERRLIST
-#define ACE_HAS_CHARPTR_SPRINTF
-#define ACE_HAS_UNION_WAIT
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Compiler/platform supports alloca()
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Header files lack t_errno for ACE_TLI.
-// #define ACE_LACKS_T_ERRNO
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Compiler/platform supports poll().
-#define ACE_HAS_POLL
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Compiler/platform supports struct strbuf
-#define ACE_HAS_STRBUF_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Compiler/platform supports strerror ().
-// #define ACE_HAS_STRERROR
-
-// SunOS 4 style prototype.
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Platform provides <sysent.h> header.
-#define ACE_HAS_SYSENT_H
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Platform supports ACE_TLI tiuser header.
-// #define ACE_HAS_TIUSER_H
-
-// Platform has ACE_TLI.
-// #define ACE_HAS_TLI
-
-#define ACE_NEEDS_DEV_IO_CONVERSION
-
-#define ACE_LACKS_U_LONGLONG_T
-
-#define ACE_LACKS_DIFFTIME
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos4-sun3.x.h b/ace/config-sunos4-sun3.x.h
deleted file mode 100644
index 88acc3e5ded..00000000000
--- a/ace/config-sunos4-sun3.x.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for SunOS4
-// platforms using the SunC++ 3.0.x compiler.
-
-#ifndef ACE_CONFIG_H
-
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_LACKS_POSIX_PROTOTYPES
-#define ACE_HAS_UNION_WAIT
-#define ACE_HAS_SPARCWORKS_401_SIGNALS
-
-#define ACE_CONFIG_H
-#define ACE_HAS_CHARPTR_SPRINTF
-#define ACE_HAS_SYS_ERRLIST
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Header files lack t_errno for ACE_TLI.
-// #define ACE_LACKS_T_ERRNO
-
-// Compiler/platform uses old malloc()/free() prototypes (ugh).
-#define ACE_HAS_OLD_MALLOC
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Compiler/platform supports poll().
-#define ACE_HAS_POLL
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Compiler/platform supports struct strbuf
-#define ACE_HAS_STRBUF_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// SunOS 4 style prototype.
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Platform supports ACE_TLI tiuser header.
-// #define ACE_HAS_TIUSER_H
-
-// Platform has ACE_TLI.
-// #define ACE_HAS_TLI
-
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_SIGNED_CHAR
-
-#define ACE_NEEDS_DEV_IO_CONVERSION
-
-#define ACE_LACKS_U_LONGLONG_T
-
-#define ACE_LACKS_DIFFTIME
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos4-sun4.1.4.h b/ace/config-sunos4-sun4.1.4.h
deleted file mode 100644
index 54ab33b2aa8..00000000000
--- a/ace/config-sunos4-sun4.1.4.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for SunOS4.1.4
-// platforms using the SunC++ 4.x compiler.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_CHARPTR_SPRINTF
-#define ACE_LACKS_SYSTIME_H
-#define ACE_HAS_UNION_WAIT
-
-// Special addition to handle sunOS 4.1 which is unable to
-// handle POSIX Prototypes !
-#define ACE_LACKS_POSIX_PROTOTYPES
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Compiler/platform supports strerror ().
-// #define ACE_HAS_STRERROR
-#define ACE_HAS_SYS_ERRLIST
-
-// Header files lack t_errno for ACE_TLI.
-// #define ACE_LACKS_T_ERRNO
-
-// Compiler/platform uses old malloc()/free() prototypes (ugh).
-#define ACE_HAS_OLD_MALLOC
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Compiler/platform supports poll().
-#define ACE_HAS_POLL
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Compiler has brain-damaged SPARCwork signal prototype...
-#define ACE_HAS_SPARCWORKS_401_SIGNALS
-
-// Compiler/platform supports struct strbuf
-#define ACE_HAS_STRBUF_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// SunOS 4 style prototype.
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Platform supports ACE_TLI tiuser header.
-// #define ACE_HAS_TIUSER_H
-
-// Platform has ACE_TLI.
-// #define ACE_HAS_TLI
-
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_SIGNED_CHAR
-
-#define ACE_NEEDS_DEV_IO_CONVERSION
-
-#define ACE_LACKS_U_LONGLONG_T
-
-#define ACE_LACKS_DIFFTIME
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos4-sun4.x.h b/ace/config-sunos4-sun4.x.h
deleted file mode 100644
index a5f1fd23063..00000000000
--- a/ace/config-sunos4-sun4.x.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work
-// for SunOS4 platforms using the SunC++ 4.x compiler.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#define ACE_LACKS_SYSTIME_H
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
-
-#define ACE_HAS_CHARPTR_SPRINTF
-#define ACE_LACKS_POSIX_PROTOTYPES
-// #define ACE_HAS_UNION_WAIT
-
-// Maximum compensation (10 ms) for early return from timed ::select ().
-#if !defined (ACE_TIMER_SKEW)
-# define ACE_TIMER_SKEW 10 * 1000
-#endif /* ACE_TIMER_SKEW */
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Compiler/platform supports strerror ().
-// #define ACE_HAS_STRERROR
-#define ACE_HAS_SYS_ERRLIST
-
-// Header files lack t_errno for ACE_TLI.
-// #define ACE_LACKS_T_ERRNO
-
-// Compiler/platform uses old malloc()/free() prototypes (ugh).
-#define ACE_HAS_OLD_MALLOC
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Compiler/platform supports poll().
-#define ACE_HAS_POLL
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Compiler has brain-damaged SPARCwork signal prototype...
-#define ACE_HAS_SPARCWORKS_401_SIGNALS
-
-// Compiler/platform supports struct strbuf
-#define ACE_HAS_STRBUF_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// SunOS 4 style prototype.
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Platform supports ACE_TLI tiuser header.
-// #define ACE_HAS_TIUSER_H
-
-// Platform has ACE_TLI.
-// #define ACE_HAS_TLI
-
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_SIGNED_CHAR
-
-#define ACE_NEEDS_DEV_IO_CONVERSION
-
-#define ACE_LACKS_U_LONGLONG_T
-
-#define ACE_LACKS_DIFFTIME
-
-// 10 millisecond fudge factor to account for Solaris timers...
-#if !defined (ACE_TIMER_SKEW)
-#define ACE_TIMER_SKEW 1000 * 10
-#endif /* ACE_TIMER_SKEW */
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.4-centerline-2.x.h b/ace/config-sunos5.4-centerline-2.x.h
deleted file mode 100644
index 84a685f9153..00000000000
--- a/ace/config-sunos5.4-centerline-2.x.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for SunOS 5.4
-// platforms using the Centerline 2.x C++ compiler.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#define ACE_HAS_TEMPLATE_SPECIALIZATION
-
-// Platform supports pread() and pwrite()
-#define ACE_HAS_P_READ_WRITE
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Sun has the wrong prototype for sendmsg.
-#define ACE_HAS_BROKEN_SENDMSG
-
-// The SunOS 5.x version of rand_r is inconsistent with the header files...
-#define ACE_HAS_BROKEN_RANDR
-
-// Platform supports system configuration information.
-#define ACE_HAS_SYSINFO
-
-// Platform supports the POSIX regular expression library
-#define ACE_HAS_REGEX
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Platform has terminal ioctl flags like TCGETS and TCSETS.
-#define ACE_HAS_TERM_IOCTLS
-
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Compiler/platform supports SunOS high resolution timers.
-#define ACE_HAS_HI_RES_TIMER
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Platform contains <poll.h>.
-#define ACE_HAS_POLL
-
-// Platform supports POSIX timers via timestruc_t.
-#define ACE_HAS_POSIX_TIME
-
-// Platform supports the /proc file system.
-#define ACE_HAS_PROC_FS
-
-// Platform supports the prusage_t struct.
-#define ACE_HAS_PRUSAGE_T
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals.
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Platform supports STREAM pipes.
-#define ACE_HAS_STREAM_PIPES
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Compiler/platform supports SVR4 signal typedef.
-#define ACE_HAS_SVR4_SIGNAL_T
-
-// Platform lacks pthread_sigaction
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-
-// Compiler/platform supports SVR4 ACE_TLI (in particular, T_GETNAME stuff)...
-#define ACE_HAS_SVR4_TLI
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform supports sys_siglist array.
-#define ACE_HAS_SYS_SIGLIST
-
-/* Turn off the following defines if you want to disable threading. */
-// Compile using multi-thread libraries.
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-// Platform supports threads.
-#define ACE_HAS_THREADS
-
-// Platform supports Solaris threads.
-#define ACE_HAS_STHREADS
-
-// Compiler/platform has thread-specific storage
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// Platform supports reentrant functions (i.e., all the POSIX *_r functions).
-#define ACE_HAS_REENTRANT_FUNCTIONS
-
-/* end threading defines */
-
-#define ACE_HAS_PRIOCNTL
-#define ACE_NEEDS_LWP_PRIO_SET
-
-// Platform supports ACE_TLI timod STREAMS module.
-#define ACE_HAS_TIMOD_H
-
-// Platform supports ACE_TLI tiuser header.
-#define ACE_HAS_TIUSER_H
-
-// Platform provides ACE_TLI function prototypes.
-#define ACE_HAS_TLI_PROTOTYPES
-
-// Platform supports ACE_TLI.
-#define ACE_HAS_TLI
-
-#define ACE_NEEDS_DEV_IO_CONVERSION
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-#define ACE_HAS_IDTYPE_T
-#define ACE_HAS_DIRENT
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.4-g++.h b/ace/config-sunos5.4-g++.h
deleted file mode 100644
index 3059e3c2aae..00000000000
--- a/ace/config-sunos5.4-g++.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for SunOS 5.4
-// platforms using the GNU g++ compiler.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
-// this must appear before its #include.
-#define ACE_HAS_STRING_CLASS
-
-#include "ace/config-g++-common.h"
-#define ACE_HAS_GNU_CSTRING_H
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Platform supports pread() and pwrite()
-#define ACE_HAS_P_READ_WRITE
-
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-#define ACE_HAS_TERM_IOCTLS
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Sun has the wrong prototype for sendmsg.
-#define ACE_HAS_BROKEN_SENDMSG
-
-// The SunOS 5.x version of rand_r is inconsistent with the header files...
-#define ACE_HAS_BROKEN_RANDR
-
-// Platform supports system configuration information.
-#define ACE_HAS_SYSINFO
-
-// Platform supports the POSIX regular expression library
-#define ACE_HAS_REGEX
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Compiler/platform supports SunOS high resolution timers.
-#define ACE_HAS_HI_RES_TIMER
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Compiler/platform supports alloca()
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-
-// Platform contains <poll.h>.
-#define ACE_HAS_POLL
-
-// Platform supports POSIX timers via timestruc_t.
-#define ACE_HAS_POSIX_TIME
-
-// Platform supports the /proc file system.
-#define ACE_HAS_PROC_FS
-
-// Platform supports the prusage_t struct.
-#define ACE_HAS_PRUSAGE_T
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals.
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Platform supports STREAM pipes.
-#define ACE_HAS_STREAM_PIPES
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Compiler/platform supports SVR4 gettimeofday() prototype.
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-
-// Platform lacks pthread_sigaction
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-
-// Compiler/platform supports SVR4 TLI (in particular, T_GETNAME stuff)...
-#define ACE_HAS_SVR4_TLI
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform supports sys_siglist array.
-#define ACE_HAS_SYS_SIGLIST
-
-/* Turn off the following defines if you want to disable threading. */
-// Compile using multi-thread libraries.
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-# if !defined (_REENTRANT)
-# define _REENTRANT
-# endif /* _REENTRANT */
-#endif /* !ACE_MT_SAFE */
-
-// Platform supports Solaris threads.
-#define ACE_HAS_STHREADS
-
-// Platform supports threads.
-#define ACE_HAS_THREADS
-
-// Compiler/platform has thread-specific storage
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// Platform supports reentrant functions (i.e., all the POSIX *_r functions).
-#define ACE_HAS_REENTRANT_FUNCTIONS
-
-/* end threading defines */
-
-#define ACE_HAS_PRIOCNTL
-#define ACE_NEEDS_LWP_PRIO_SET
-
-// Platform supports TLI timod STREAMS module.
-#define ACE_HAS_TIMOD_H
-
-// Platform supports TLI tiuser header.
-#define ACE_HAS_TIUSER_H
-
-// Platform provides TLI function prototypes.
-#define ACE_HAS_TLI_PROTOTYPES
-
-// Platform supports TLI.
-#define ACE_HAS_TLI
-
-// Use the poll() event demultiplexor rather than select().
-//#define ACE_USE_POLL
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-#define ACE_HAS_IDTYPE_T
-#define ACE_HAS_GPERF
-#define ACE_HAS_DIRENT
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.4-sunc++-4.x.h b/ace/config-sunos5.4-sunc++-4.x.h
deleted file mode 100644
index 7e09eb292f3..00000000000
--- a/ace/config-sunos5.4-sunc++-4.x.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for SunOS 5.4
-// platforms using the SunC++ 4.0.x compiler.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#define ACE_HAS_TEMPLATE_SPECIALIZATION
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Platform supports pread() and pwrite()
-#define ACE_HAS_P_READ_WRITE
-
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Sun has the wrong prototype for sendmsg.
-#define ACE_HAS_BROKEN_SENDMSG
-
-// The SunOS 5.x version of rand_r is inconsistent with the header files...
-#define ACE_HAS_BROKEN_RANDR
-
-// Platform supports system configuration information.
-#define ACE_HAS_SYSINFO
-
-// Platform supports the POSIX regular expression library.
-#define ACE_HAS_REGEX
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Platform has terminal ioctl flags like TCGETS and TCSETS.
-#define ACE_HAS_TERM_IOCTLS
-
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Compiler/platform supports SunOS high resolution timers.
-#define ACE_HAS_HI_RES_TIMER
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Compiler/platform supports alloca()
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-
-// Platform contains <poll.h>.
-#define ACE_HAS_POLL
-
-// Platform supports POSIX timers via timestruc_t.
-#define ACE_HAS_POSIX_TIME
-
-// Platform supports the /proc file system.
-#define ACE_HAS_PROC_FS
-
-// Platform supports the prusage_t struct.
-#define ACE_HAS_PRUSAGE_T
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals.
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Platform supports STREAM pipes.
-#define ACE_HAS_STREAM_PIPES
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Compiler/platform supports SVR4 gettimeofday() prototype.
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-
-// Compiler/platform supports SVR4 signal typedef.
-#define ACE_HAS_SVR4_SIGNAL_T
-
-// Platform lacks pthread_sigaction
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-
-// Compiler/platform supports SVR4 ACE_TLI (in particular, T_GETNAME stuff)...
-#define ACE_HAS_SVR4_TLI
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform supports sys_siglist array.
-#define ACE_HAS_SYS_SIGLIST
-
-/* Turn off the following defines if you want to disable threading. */
-// Compile using multi-thread libraries.
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-// Platform supports Solaris threads.
-#define ACE_HAS_STHREADS
-
-// Platform supports threads.
-#define ACE_HAS_THREADS
-
-// Compiler/platform has thread-specific storage
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// Platform supports reentrant functions (i.e., all the POSIX *_r functions).
-#define ACE_HAS_REENTRANT_FUNCTIONS
-
-/* end threading defines */
-
-#define ACE_HAS_PRIOCNTL
-#define ACE_NEEDS_LWP_PRIO_SET
-
-// Reactor detects deadlock
-// #define ACE_REACTOR_HAS_DEADLOCK_DETECTION
-
-// Platform supports ACE_TLI timod STREAMS module.
-#define ACE_HAS_TIMOD_H
-
-// Platform supports ACE_TLI tiuser header.
-#define ACE_HAS_TIUSER_H
-
-// Platform provides ACE_TLI function prototypes.
-#define ACE_HAS_TLI_PROTOTYPES
-
-// Platform supports ACE_TLI.
-#define ACE_HAS_TLI
-
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_SIGNED_CHAR
-
-// Use the poll() event demultiplexor rather than select().
-//#define ACE_USE_POLL
-
-#define ACE_NEEDS_DEV_IO_CONVERSION
-
-// Turns off the tracing feature.
-// #define ACE_NTRACE 0
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-#define ACE_HAS_IDTYPE_T
-
-#define ACE_HAS_GPERF
-#define ACE_HAS_DIRENT
-
-# if defined (ACE_HAS_EXCEPTIONS)
- // If exceptions are enabled and we are using Sun/CC then
- // <operator new> throws an exception instead of returning 0.
-# define ACE_NEW_THROWS_EXCEPTIONS
-# endif /* ACE_HAS_EXCEPTIONS */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.5.h b/ace/config-sunos5.5.h
deleted file mode 100644
index a884f01dab8..00000000000
--- a/ace/config-sunos5.5.h
+++ /dev/null
@@ -1,376 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// This configuration file is designed to work for SunOS 5.5 platforms
-// using the following compilers:
-// * Sun C++ 4.2 and later (including 5.x), patched as noted below
-// * g++ 2.7.2 and later, including egcs
-// * Green Hills 1.8.8 and later
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// Before we do anything, we should include <sys/feature_tests.h> to
-// ensure that things are set up properly.
-#include <sys/feature_tests.h>
-
-// Compiler version-specific settings:
-#if defined (__SUNPRO_CC)
-# if (__SUNPRO_CC < 0x410)
- // The following might not be necessary, but I can't tell: my build
- // with Sun C++ 4.0.1 never completes.
-# define ACE_NEEDS_DEV_IO_CONVERSION
-# elif (__SUNPRO_CC >= 0x420)
-# define ACE_HAS_ANSI_CASTS
-# if (__SUNPRO_CC >= 0x500)
- // string.h and memory.h conflict for memchr definitions
-# define ACE_LACKS_MEMORY_H
- // Sun C++ 5.0 supports the `using' and `typename' keywords.
-# define ACE_HAS_TYPENAME_KEYWORD
-# define ACE_TEMPLATES_REQUIRE_SOURCE
- // If -compat=4 is turned on, the old 4.2 settings for iostreams are used,
- // but the newer, explicit instantiation is used (above)
-# if (__SUNPRO_CC_COMPAT >= 5)
-# define ACE_HAS_USING_KEYWORD
-# define ACE_HAS_STD_TEMPLATE_SPECIALIZATION
- // Note that SunC++ 5.0 doesn't yet appear to support
- // ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION...
- // However, Forte 6 Update 1 does... if this needs to be backed up,
- // change this to an earlier version.
-# if (__SUNPRO_CC >= 0x520)
-# define ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION
-# endif /* __SUNPRO_CC >= 0x530 */
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# define ACE_HAS_THR_C_DEST
-# endif /* __SUNPRO_CC_COMPAT >= 5 */
-# if !defined (ACE_HAS_EXCEPTIONS)
- // See /opt/SUNWspro_5.0/SC5.0/include/CC/stdcomp.h:
-# define _RWSTD_NO_EXCEPTIONS 1
-# endif /* ! ACE_HAS_EXCEPTIONS */
-# elif (__SUNPRO_CC == 0x420) || (__SUNPRO_CC == 0x410)
-# define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-# endif /* __SUNPRO_CC >= 0x500 */
-# endif /* __SUNPRO_CC >= 0x420 */
-
-# define ACE_CAST_CONST const
-# define ACE_HAS_HI_RES_TIMER
-# define ACE_HAS_SIG_C_FUNC /* Sun CC 5.0 needs this, 4.2 doesn't mind. */
-# define ACE_HAS_TEMPLATE_SPECIALIZATION
-# define ACE_HAS_XPG4_MULTIBYTE_CHAR
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF
-# define ACE_LACKS_SIGNED_CHAR
-
- // ACE_HAS_EXCEPTIONS precludes -noex in
- // include/makeinclude/platform_macros.GNU. But beware, we have
- // seen problems with exception handling on multiprocessor
- // UltraSparcs: threaded executables core dump when threads exit.
- // This problem does not seem to appear on single-processor UltraSparcs.
- // And, it is solved with the application of patch
- // 104631-02 "C++ 4.2: Jumbo Patch for C++ 4.2 on Solaris SPARC"
- // to Sun C++ 4.2.
- // To provide optimum performance, ACE_HAS_EXCEPTIONS is disabled by
- // default. It can be enabled by adding "exceptions=1" to the "make"
- // invocation. See include/makeinclude/platform_sunos5_sunc++.GNU
- // for details.
-
-# if defined (ACE_HAS_EXCEPTIONS)
- // If exceptions are enabled and we are using Sun/CC then
- // <operator new> throws an exception instead of returning 0.
-# define ACE_NEW_THROWS_EXCEPTIONS
-# endif /* ACE_HAS_EXCEPTIONS */
-
- /* If you want to disable threading with Sun CC, remove -mt
- from your CFLAGS, e.g., using make threads=0. */
-
-#elif defined (__GNUG__)
- // config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
- // this must appear before its #include.
-# define ACE_HAS_STRING_CLASS
-# include "ace/config-g++-common.h"
-# define ACE_HAS_HI_RES_TIMER
- // Denotes that GNU has cstring.h as standard, to redefine memchr().
-# define ACE_HAS_GNU_CSTRING_H
-# define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-# if !defined (ACE_MT_SAFE) || ACE_MT_SAFE != 0
- // ACE_MT_SAFE is #defined below, for all compilers.
-# if !defined (_REENTRANT)
- /* If you want to disable threading, comment out the following
- line. Or, add -DACE_MT_SAFE=0 to your CFLAGS, e.g., using
- make threads=0. */
-# define _REENTRANT
-# endif /* _REENTRANT */
-# endif /* !ACE_MT_SAFE */
-
-#elif defined (ghs)
-
-# if !defined (ACE_MT_SAFE) || ACE_MT_SAFE != 0
- // ACE_MT_SAFE is #defined below, for all compilers.
-# if !defined (_REENTRANT)
- /* If you want to disable threading, comment out the following
- line. Or, add -DACE_MT_SAFE=0 to your CFLAGS, e.g., using
- make threads=0. */
-# define _REENTRANT
-# endif /* _REENTRANT */
-# endif /* !ACE_MT_SAFE */
-
-# define ACE_CONFIG_INCLUDE_GHS_COMMON
-# include "ace/config-ghs-common.h"
-
- // To avoid warning about inconsistent declaration between Sun's
- // stdlib.h and Green Hills' ctype.h.
-# include <stdlib.h>
-
- // IOStream_Test never halts with Green Hills 1.8.9.
-# define ACE_LACKS_ACE_IOSTREAM
-
-#elif defined (__KCC) /* KAI compiler */
-
-# define ACE_HAS_ANSI_CASTS
-# include "ace/config-kcc-common.h"
-
-#else /* ! __SUNPRO_CC && ! __GNUG__ && ! ghs */
-# error unsupported compiler in ace/config-sunos5.5.h
-#endif /* ! __SUNPRO_CC && ! __GNUG__ && ! ghs */
-
-#if !defined (__ACE_INLINE__)
-// NOTE: if you have link problems with undefined inline template
-// functions with Sun C++, be sure that the #define of __ACE_INLINE__
-// below is not commented out.
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// Platform supports the POSIX regular expression library.
-// NOTE: please comment out the ACE_HAS_REGEX #define if you
-// have link problems with g++ or egcs on SunOS 5.5.
-#define ACE_HAS_REGEX
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// select()'s timeval arg is not declared as const and may be modified
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-// Platform supports pread() and pwrite()
-#define ACE_HAS_P_READ_WRITE
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-#define ACE_HAS_UALARM
-#define ACE_LACKS_UALARM_PROTOTYPE
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Platform supports system configuration information.
-#define ACE_HAS_SYSINFO
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-// Platform has terminal ioctl flags like TCGETS and TCSETS.
-#define ACE_HAS_TERM_IOCTLS
-
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Compiler/platform supports alloca()
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-
-// Platform contains <poll.h>.
-#define ACE_HAS_POLL
-
-// Platform supports POSIX timers via timestruc_t.
-#define ACE_HAS_POSIX_TIME
-
-// ACE_HAS_CLOCK_GETTIME requires linking with -lposix4.
-#define ACE_HAS_CLOCK_GETTIME
-
-// Platform supports the /proc file system.
-#define ACE_HAS_PROC_FS
-
-// Platform supports the prusage_t struct.
-#define ACE_HAS_PRUSAGE_T
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals.
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Platform supports STREAM pipes.
-#define ACE_HAS_STREAM_PIPES
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Compiler/platform supports SVR4 gettimeofday() prototype.
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-
-// Compiler/platform supports SVR4 ACE_TLI (in particular, T_GETNAME stuff)...
-#define ACE_HAS_SVR4_TLI
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform supports sys_siglist array.
-#define ACE_HAS_SYS_SIGLIST
-
-// SunOS 5.5.x does not support mkstemp
-#define ACE_LACKS_MKSTEMP
-
-// Platform has posix getpwnam_r
-#if (defined (_POSIX_C_SOURCE) && _POSIX_C_SOURCE - 0 >= 199506L) || \
- defined(_POSIX_PTHREAD_SEMANTICS)
-# define ACE_HAS_POSIX_GETPWNAM_R
-#endif /* _POSIX_C_SOURCE || _POSIX_PTHREAD_SEMANTICS */
-
-#if defined (_REENTRANT) || \
- (defined (_POSIX_C_SOURCE) && (_POSIX_C_SOURCE - 0 >= 199506L)) || \
- defined (_POSIX_PTHREAD_SEMANTICS)
- // Compile using multi-thread libraries.
-# define ACE_HAS_THREADS
-
-# if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-# endif /* ACE_MT_SAFE */
-
- // Platform supports POSIX pthreads *and* Solaris threads, by
- // default! If you only want to use POSIX pthreads, add
- // -D_POSIX_PTHREAD_SEMANTICS to your CFLAGS. Or, #define it right
- // here. See the Intro (3) man page for information on
- // -D_POSIX_PTHREAD_SEMANTICS.
-# if defined (_POSIX_PTHREAD_SEMANTICS)
-# define ACE_LACKS_RWLOCK_T
-# else
-# define ACE_HAS_STHREADS
-# endif /* ! _POSIX_PTHREAD_SEMANTICS */
-
-# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
- // . . . but only supports SCHED_OTHER scheduling policy
-# define ACE_HAS_ONLY_SCHED_OTHER
-# define ACE_HAS_SIGWAIT
-# define ACE_HAS_SIGTIMEDWAIT
-# define ACE_HAS_SIGSUSPEND
-
- // Compiler/platform has thread-specific storage
-# define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
- // Platform supports reentrant functions (i.e., all the POSIX *_r functions).
-# define ACE_HAS_REENTRANT_FUNCTIONS
-
-# define ACE_NEEDS_LWP_PRIO_SET
-# define ACE_HAS_THR_YIELD
-# define ACE_LACKS_PTHREAD_YIELD
-#endif /* _REENTRANT || _POSIX_C_SOURCE >= 199506L || \
- _POSIX_PTHREAD_SEMANTICS */
-
-# define ACE_HAS_PRIOCNTL
-
-// Platform supports ACE_TLI timod STREAMS module.
-#define ACE_HAS_TIMOD_H
-
-// Platform supports ACE_TLI tiuser header.
-#define ACE_HAS_TIUSER_H
-
-// Platform provides ACE_TLI function prototypes.
-#define ACE_HAS_TLI_PROTOTYPES
-
-// Platform has broken t_error() prototype.
-#define ACE_HAS_BROKEN_T_ERROR
-
-// Platform supports ACE_TLI.
-#define ACE_HAS_TLI
-
-#define ACE_HAS_STRPTIME
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_HAS_GETPAGESIZE 1
-
-#define ACE_HAS_STL_MAP_CONFLICT
-
-// Sieg - gcc 2.95.1 declares queue in stream.h. Might want to change
-// the == to >= to allow for future versions
-#if !( __GNUG__ && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95) )
-#define ACE_HAS_STL_QUEUE_CONFLICT
-#endif /* !( __GNUG__ && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95) ) */
-#define ACE_HAS_IDTYPE_T
-
-#define ACE_HAS_GPERF
-#define ACE_HAS_DIRENT
-#define ACE_HAS_MEMCHR
-
-#if defined (__SUNPRO_CC)
-# define ACE_CC_NAME "SunPro C++"
-# define ACE_CC_MAJOR_VERSION (__SUNPRO_CC >> 8)
-# define ACE_CC_MINOR_VERSION (__SUNPRO_CC & 0x00ff)
-# define ACE_CC_BETA_VERSION (0)
-#elif defined (__GNUG__)
-# define ACE_CC_MAJOR_VERSION __GNUC__
-# define ACE_CC_MINOR_VERSION __GNUC_MINOR__
-# define ACE_CC_BETA_VERSION (0)
-# if __GNUC_MINOR__ >= 90
-# define ACE_CC_NAME "egcs"
-# else
-# define ACE_CC_NAME "g++"
-# endif /* __GNUC_MINOR__ */
-#endif /* __GNUG__ */
-
-#if defined (i386)
-# define ACE_HAS_X86_STAT_MACROS
-#endif /* i386 */
-
-#define ACE_MALLOC_ALIGN 8
-#define ACE_LACKS_SETREUID_PROTOTYPE
-#define ACE_LACKS_SETREGID_PROTOTYPE
-
-// Solaris does indeed implement the inet_aton() function, but it is
-// found in `libresolv.*'. It doesn't seem worth it to link another
-// library just for that function. Just use the emulation in ACE that
-// has been used for years.
-#define ACE_LACKS_INET_ATON
-
-#if defined (_LARGEFILE_SOURCE) || (_FILE_OFFSET_BITS==64)
-#undef ACE_HAS_PROC_FS
-#undef ACE_HAS_PRUSAGE_T
-#endif /* (_LARGEFILE_SOURCE) || (_FILE_OFFSET_BITS==64) */
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.6.h b/ace/config-sunos5.6.h
deleted file mode 100644
index 81127a1a809..00000000000
--- a/ace/config-sunos5.6.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for SunOS 5.6
-// platforms using the SunC++ 4.x or g++ compilers.
-
-#ifndef ACE_CONFIG_H
-
-// ACE_CONFIG_H is defined by one of the following #included headers.
-
-// #include the SunOS 5.5 config file, then add SunOS 5.6 updates below.
-
-#include "ace/config-sunos5.5.h"
-
-#if defined(__GNUC__) && __GNUC__ >= 2 && __GNUC_MINOR__ >= 95
-// gcc-2.95 fixes this problem for us!
-#undef ACE_HAS_STL_QUEUE_CONFLICT
-#endif /* __GNUC__ */
-
-#if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE > 2) || \
- defined (__EXTENSIONS__)
-// The asctime_r/ctime_r parameters change at POSIX.1c-1995
-# if (defined (_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199506L)
-# define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-# endif /* POSIX_C_SOURCE >= 199506L */
-# define ACE_HAS_SIGWAIT
-// Hack 'cuz _POSIX_C_SOURCE > 2 and -DEXTENSIONS hides this.
-# include <sys/types.h>
- extern "C" int madvise(caddr_t, size_t, int);
-#endif /* _POSIX_C_SOURCE > 2 || __EXTENSIONS__ */
-
-// Support for the SunC++ 5.2 compiler.
-// Do not undefine for compat mode < 5
-#if defined (__SUNPRO_CC) && __SUNPRO_CC > 0x510
-#if defined (__SUNPRO_CC_COMPAT) && (__SUNPRO_CC_COMPAT >= 5)
-#ifdef ACE_LACKS_ACE_IOSTREAM
-#undef ACE_LACKS_ACE_IOSTREAM
-#endif /* ACE_LACKS_ACE_IOSTREAM */
-#endif /* defined (__SUNPRO_CC_COMPAT) && (__SUNPRO_CC_COMPAT >= 5) */
-
-#ifndef ACE_LACKS_UNBUFFERED_STREAMBUF
-#define ACE_LACKS_UNBUFFERED_STREAMBUF 1
-#endif /* ACE_LACKS_UNBUFFERED_STREAMBUF */
-#ifndef ACE_TEMPLATES_REQUIRE_SOURCE
-#define ACE_TEMPLATES_REQUIRE_SOURCE 1
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-#ifndef ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-#define ACE_HAS_STD_TEMPLATE_SPECIALIZATION 1
-#endif /* ACE_HAS_STD_TEMPLATE_SPECIALIZATION */
-#ifndef ACE_HAS_ANSI_CASTS
-#define ACE_HAS_ANSI_CASTS 1
-#endif /* ACE_HAS_ANSI_CASTS */
-#ifndef ACE_HAS_TEMPLATE_TYPEDEFS
-#define ACE_HAS_TEMPLATE_TYPEDEFS 1
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-// Forte 7 seems to botch this one...
-#if __SUNPRO_CC == 0x540
-#undef ACE_HAS_TEMPLATE_TYPEDEFS
-#endif
-#ifndef ACE_HAS_TYPENAME_KEYWORD
-#define ACE_HAS_TYPENAME_KEYWORD 1
-#endif /* ACE_HAS_TYPENAME_KEYWORD */
-#ifndef ACE_HAS_USING_KEYWORD
-#define ACE_HAS_USING_KEYWORD 1
-#endif /* ACE_HAS_USING_KEYWORD */
-#ifndef ACE_HAS_THR_C_DEST
-#define ACE_HAS_THR_C_DEST 1
-#endif /* ACE_HAS_THR_C_DEST */
-#ifndef ACE_HAS_THR_C_FUNC
-#define ACE_HAS_THR_C_FUNC 1
-#endif /* ACE_HAS_THR_C_FUNC */
-#ifndef ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES 1
-#endif /* ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES */
-#ifndef ACE_HAS_SIG_C_FUNC
-#define ACE_HAS_SIG_C_FUNC 1
-#endif /* ACE_HAS_SIG_C_FUNC */
-#ifndef ACE_HAS_STDCPP_STL_INCLUDES
-#define ACE_HAS_STDCPP_STL_INCLUDES 1
-#endif /* ACE_HAS_STDCPP_STL_INCLUDES */
-#ifndef ACE_HAS_STRING_CLASS
-#define ACE_HAS_STRING_CLASS 1
-#endif /* ACE_HAS_STRING_CLASS */
-#ifndef ACE_HAS_STANDARD_CPP_LIBRARY
-#define ACE_HAS_STANDARD_CPP_LIBRARY 1
-#endif /* ACE_HAS_STANDARD_CPP_LIBRARY */
-#ifndef ACE_HAS_STDCPP_STL_INCLUDES
-#define ACE_HAS_STDCPP_STL_INCLUDES 1
-#endif /* ACE_HAS_STDCPP_STL_INCLUDES */
-#ifndef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-#endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
-#ifndef ACE_HAS_TEMPLATE_SPECIALIZATION
-#define ACE_HAS_TEMPLATE_SPECIALIZATION 1
-#endif /* ACE_HAS_TEMPLATE_SPECIALIZATION */
-#ifndef ACE_LACKS_IOSTREAM_FX
-#define ACE_LACKS_IOSTREAM_FX 1
-#endif /* ACE_LACKS_IOSTREAM_FX */
-#ifndef ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
-#endif /* ACE_LACKS_LINEBUFFERED_STREAMBUF */
-
-#endif /* defined (__SUNPRO_CC) && __SUNPRO_CC > 0x510 */
-
-// SunOS 5.6 and above support mkstemp
-#undef ACE_LACKS_MKSTEMP
-
-
-// SunOS 5.6 has AIO calls.
-#if !defined (ACE_HAS_AIO_CALLS)
-#define ACE_HAS_AIO_CALLS
-#endif /* ACE_HAS_AIO_CALLS */
-
-#if !defined (ACE_HAS_POSIX_REALTIME_SIGNALS)
-#define ACE_HAS_POSIX_REALTIME_SIGNALS
-#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
-
-#if !defined (ACE_HAS_POSIX_MESSAGE_PASSING)
-#define ACE_HAS_POSIX_MESSAGE_PASSING
-#endif /* ACE_HAS_POSIX_MESSAGE_PASSING */
-
-#if !defined (ACE_HAS_POSIX_SEM)
-#define ACE_HAS_POSIX_SEM
-#endif /* ACE_HAS_POSIX_SEM */
-
-// Sunos 5.6's aio_* with RT signals is broken.
-#if !defined (ACE_POSIX_AIOCB_PROACTOR)
-#define ACE_POSIX_AIOCB_PROACTOR
-#endif /* ACE_POSIX_AIOCB_PROACTOR */
-
-// SunOS 5.6 has a buggy select
-#define ACE_HAS_LIMITED_SELECT
-
-// SunOS 5.6 introduced shm_open, but need to turn on POSIX.1b or higher
-// to pick it up.
-#if defined (_POSIX_C_SOURCE) && (_POSIX_C_SOURCE > 2)
-# define ACE_HAS_SHM_OPEN
-#endif /* _POSIX_C_SOURCE > 2 */
-
-// The struct msghdr is conditional on SunOS 5.6 based on _XPG4_2
-#if defined(_XPG4_2)
-# define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-#endif /* _XPG4_2 */
-
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.7.h b/ace/config-sunos5.7.h
deleted file mode 100644
index 0d101e0fc25..00000000000
--- a/ace/config-sunos5.7.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for SunOS 5.7
-// (Solaris 7) platforms using the SunC++ 4.x, 5.x, or g++ compilers.
-
-#ifndef ACE_CONFIG_H
-
-// ACE_CONFIG_H is defined by one of the following #included headers.
-
-// #include the SunOS 5.6 config file, then add SunOS 5.7 updates below.
-
-#include "ace/config-sunos5.6.h"
-
-#if defined (__GNUG__)
-# if __GNUC__ <= 2 && __GNUC_MINOR__ < 8
- // Assume that later g++ were built on SunOS 5.7, so they don't
- // have these problems . . .
-
- // Disable the following, because g++ 2.7.2.3 can't handle it.
- // Maybe later g++ versions can?
-# undef ACE_HAS_XPG4_MULTIBYTE_CHAR
-
- // The Solaris86 g++ 2.7.2.3 sys/types.h doesn't have these . . .
- typedef long t_scalar_t; /* historical versions */
- typedef unsigned long t_uscalar_t;
- typedef void *timeout_id_t;
-# endif /* __GNUC__ <= 2 && __GNUC_MINOR__ < 8 */
-
-#elif defined (ghs)
- // SunOS 5.7's /usr/include/sys/procfs_isa.h needs uint64_t,
- // but /usr/include/sys/int_types.h doesn't #define it because
- // _NO_LONGLONG is #
-# undef ACE_HAS_PROC_FS
-# undef ACE_HAS_PRUSAGE_T
-
-#elif defined (__KCC)
-typedef unsigned long long uint64_t;
-#endif /* __GNUG__ || ghs || __KCC */
-
-// SunOS 5.7 supports SCHED_FIFO and SCHED_RR, as well as SCHED_OTHER.
-#undef ACE_HAS_ONLY_SCHED_OTHER
-
-// SunOS 5.7 gets this right . . .
-#undef ACE_HAS_BROKEN_T_ERROR
-
-// And doesn't need to set LWP priorities, as shown by
-// performance-tests/Misc/preempt.
-#undef ACE_NEEDS_LWP_PRIO_SET
-
-// SunOS 5.7 can support Real-Time Signals and POSIX4 AIO operations
-// are supported.
-
-#if !defined (ACE_HAS_AIO_CALLS)
-#define ACE_HAS_AIO_CALLS
-#endif /* !ACE_HAS_AIO_CALLS */
-
-#if defined (ACE_POSIX_AIOCB_PROACTOR)
-#undef ACE_POSIX_AIOCB_PROACTOR
-#endif /* ACE_POSIX_AIOCB_PROACTOR */
-
-// This is anyway default.
-#define ACE_POSIX_SIG_PROACTOR
-
-#ifdef ACE_HAS_LIMITED_SELECT
-#undef ACE_HAS_LIMITED_SELECT
-#endif /* ACE_HAS_LIMITED_SELECT */
-
-// SunOS 5.7 has socklen_t
-#define ACE_HAS_SOCKLEN_T
-
-// snprintf() is available at least from Solaris 7 on. If it can be determined
-// that it's also available in Solaris 2.6, this can be moved into
-// config-sunos5.6.h.
-#define ACE_HAS_SNPRINTF
-
-#if defined (__sparcv9)
-#define ERRMAX 256 /* Needed for following define */
-#define ACE_LACKS_SYS_NERR
-#define _LP64
-#define ACE_SIZEOF_LONG 8 /* Needed to circumvent compiler bug #4294969 */
-#endif /* __sparcv9 */
-
-#if (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 == 4)) /* XPG4 or XPG4v2 */
-// 2 parameter wcstok()
-#else /* XPG4 or XPG4v2 */
-# define ACE_HAS_3_PARAM_WCSTOK
-#endif
-
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.8.h b/ace/config-sunos5.8.h
deleted file mode 100644
index de6803e9822..00000000000
--- a/ace/config-sunos5.8.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for SunOS 5.8
-// (Solaris 8) platforms using the SunC++ 4.x, 5.x, 6.x, or g++ compilers.
-
-#ifndef ACE_CONFIG_H
-
-// ACE_CONFIG_H is defined by one of the following #included headers.
-
-// #include the SunOS 5.7 config, then add any SunOS 5.8 updates below.
-#include "ace/config-sunos5.7.h"
-
-// The range of thread priorities for 5.8 differs from 5.7 in the
-// minimum priority for the SCHED_OTHER policy (i.e.,
-// ACE_THR_PRI_OTHER_MIN)
-# define ACE_THR_PRI_OTHER_MIN (long) -20
-
-# if defined (_POSIX_PTHREAD_SEMANTICS)
-# ifdef ACE_LACKS_RWLOCK_T
-# undef ACE_LACKS_RWLOCK_T
-# endif /* ACE_LACKS_RWLOCK_T */
-# endif /* _POSIX_PTHREAD_SEMANTICS */
-
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.9.h b/ace/config-sunos5.9.h
deleted file mode 100644
index 5107546f49b..00000000000
--- a/ace/config-sunos5.9.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for SunOS 5.9
-// (Solaris 9) platforms using the SunC++ 5.x (Forte 6 and 7), or g++
-// compilers.
-
-#ifndef ACE_CONFIG_H
-
-// ACE_CONFIG_H is defined by one of the following #included headers.
-
-// #include the SunOS 5.8 config, then add any SunOS 5.9 updates below.
-#include "ace/config-sunos5.8.h"
-
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-tandem.h b/ace/config-tandem.h
deleted file mode 100644
index 47777c9f53d..00000000000
--- a/ace/config-tandem.h
+++ /dev/null
@@ -1,445 +0,0 @@
-/* -*- C++ -*- */
-// Testing TANDEM
-// $Id$
-
-// The following configuration file is designed to work for Tandems NonStop-UX
-// 4.2MP platforms using the NCC 3.20 compiler.
-
-// Note this is a test version it might include several errors I
-// have done a test and set/unset until I errors disappered.
-// Some of the options that should be set aren't because of the simple fact
-// that i haven't the time to check what is wrong.
-// e.g. widecharacter are supported but a wcstok which only take 2 parameters
-// are included by the compiler, to get the correct wcstok that takes 3 params
-// we must set _XOPEN_SOURCE and we get ALOT of errors and warnings.
-// So this config is done to get things to start to work it isn't finished.
-// Janne (Jan.Perman@osd.Ericsson.se)
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#define ACE_HAS_IDTYPE_T
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Tandem doesn't include this although they are defined
-// in sys/time.h and sys/resource.h
-#define ACE_LACKS_RLIMIT_PROTOTYPE // jjpp
-// Tandem has a function to set t_errno (set_t_errno)
-#define ACE_HAS_SET_T_ERRNO // jjpp
-
-//Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// OS/compiler omits the const from the sendmsg() prototype.
-#define ACE_HAS_BROKEN_SENDMSG
-
-//OS/compiler's header files are inconsistent with libC definition of rand_r().
-//#define ACE_HAS_BROKEN_RANDR // Defines it the same way as sunos5.4
-
-//Platform supports system configuration information
-#define ACE_HAS_SYSINFO
-
-//Platform supports the POSIX regular expression library
-#define ACE_HAS_REGEX
-
-// Platform supports recvmsg and sendmsg
-#define ACE_HAS_MSG
-
-//Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-//Platform provides <sysent.h> header
-#define ACE_HAS_SYSENT_H
-
-// Platform has terminal ioctl flags like TCGETS and TCSETS.
-#define ACE_HAS_TERM_IOCTLS
-
-// ? ACE_HAS_AUTOMATIC_INIT_FINI Compiler/platform correctly calls
-// init()/fini() for shared libraries
-
-//Platform supports POSIX O_NONBLOCK semantics
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform has correctly prototyped header files
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Platform supports IP multicast
-//#define ACE_HAS_IP_MULTICAST
-
-//Compiler/platform supports alloca()
-#define ACE_HAS_ALLOCA
-//Compiler/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-
-//Platform contains <poll.h>
-#define ACE_HAS_POLL
-
-// Platform supports the POSIX struct timespec type
-#define ACE_HAS_POSIX_TIME // As i understand it, but i'm in deep water
-//Platform supports the SVR4 timestruc_t type
-
-//ACE_HAS_PROC_FS Platform supports the /proc file system
-
-//ACE_HAS_PRUSAGE_T Platform supports the prusage_t struct
-
-
-// To get this to work a patch in sys/signal must be made
-// typedef void SIG_FUNC_TYPE(int);
-//#if defined (__cplusplus)
-// void (*sa_handler)(int);
-//#else
-// ...
-//#endif
-//#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_TANDEM_SIGNALS
-//Compiler/platform defines the sig_atomic_t typedef
-#define ACE_HAS_SIG_ATOMIC_T
-//Platform supports SVR4 extended signals
-#define ACE_HAS_SIGINFO_T
-//Platform supports ucontext_t (which is used in the extended signal API).
-#define ACE_HAS_UCONTEXT_T
-//Compiler/platform supports SVR4 signal typedef
-//#define ACE_HAS_SVR4_SIGNAL_T
-//ACE_HAS_SVR4_SIGNAL_T
-
-
-// Platform/compiler has the sigwait(2) prototype
-#define ACE_HAS_SIGWAIT
-
-//Compiler/platform provides the sockio.h file
-#define ACE_HAS_SOCKIO_H
-
-// Compiler supports the ssize_t typedef
-#define ACE_HAS_SSIZE_T // Limits.h must be included
-
-//Platform supports STREAMS
-#define ACE_HAS_STREAMS
-
-#define ACE_HAS_STREAM_PIPES
-//Platform supports STREAM pipes
-
-//Compiler/platform supports strerror ()
-#define ACE_HAS_STRERROR
-
-//Compiler/platform supports struct strbuf
-#define ACE_HAS_STRBUF_T
-
-//Compiler/platform supports SVR4 dynamic linking semantics
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-//Compiler/platform supports SVR4 gettimeofday() prototype
-//#define ACE_HAS_SVR4_GETTIMEOFDAY // Defines it the same way as sunos5.4
-
-//Compiler/platform supports SVR4 TLI (in particular, T_GETNAME stuff)...
-#define ACE_HAS_SVR4_TLI
-
-//Platform provides <sys/filio.h> header
-#define ACE_HAS_SYS_FILIO_H
-
-//Platform supports TLI timod STREAMS module
-#define ACE_HAS_TIMOD_H
-//Platform supports TLI tiuser header
-#define ACE_HAS_TIUSER_H
-
-//Platform supports TLI
-#define ACE_HAS_TLI
-//Platform provides TLI function prototypes
-#define ACE_HAS_TLI_PROTOTYPES
-
-//Platform lacks streambuf "linebuffered ()".
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-// Platform lacks "signed char" type (broken!)
-#define ACE_LACKS_SIGNED_CHAR
-
-
-//? ACE_NEEDS_DEV_IO_CONVERSION Necessary with some compilers
-//to pass ACE_TTY_IO as parameter to DEV_Connector.
-
-#define ACE_PAGE_SIZE 4096
-// Defines the page size of the system (not used on Win32 or
-// with ACE_HAS_GETPAGESIZE).
-
-/****** THREAD SPECIFIC **********/
-/* If you want to remove threading then comment out the following four #defines .*/
-#if !defined (ACE_MT_SAFE)
- #define ACE_MT_SAFE 1 //Compile using multi-thread libraries
-#endif
-#define ACE_HAS_THREADS //Platform supports threads
-#define ACE_HAS_STHREADS //Platform supports Solaris threads
-
-// Compiler/platform has threadspecific storage
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-//Platform supports thr_keydelete (e.g,. UNIXWARE)
-
-#define ACE_HAS_THR_MINSTACK // Tandem uses thr_minstack instead of thr_min_stack
-#define ACE_LACKS_PRI_T // Tandem lacks pri_t
-#define ACE_HAS_THR_KEYDELETE
-
-//ACE_HAS_REENTRANT_FUNCTIONS Platform supports reentrant
-// functions (i.e., all the POSIX *_r functions).
-//ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS Platform will recurse infinitely on
-// thread exits from TSS cleanup routines (e.g., AIX).
-//ACE_NEEDS_HUGE_THREAD_STACKSIZE Required by platforms with small
-// default stacks.
-//ACE_HAS_ONLY_SCHED_OTHER Platform, e.g., Solaris 2.5, only
-// supports SCHED_OTHER POSIX scheduling policy.
-
-
-//*************************************
-//ACE_HAS_PTHREADS Platform supports POSIX Pthreads
-//ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP Platform has pthread_condattr_
-// setkind_np().
-//ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP Platform has
-// pthread_mutexattr_setkind_np().
-//ACE_HAS_THREAD_SELF Platform has thread_self() rather
-// than pthread_self() (e.g., DCETHREADS and AIX)
-//ACE_HAS_THR_C_DEST The pthread_keycreate() routine *
-// must* take extern C functions.
-//ACE_HAS_THR_C_FUNC The pthread_create() routine *must*
-// take extern C functions.
-//ACE_LACKS_CONDATTR_PSHARED Platform has no implementation of
-// pthread_condattr_setpshared(), even though it supports pthreads!
-//ACE_LACKS_PTHREAD_THR_SIGSETMASK Platform lacks pthread_thr_
-// sigsetmask (e.g., MVS, HP/UX, and OSF/1 3.2)
-//ACE_LACKS_SETDETACH Platform lacks pthread_attr_
-// setdetachstate() (e.g., HP/UX 10.x)
-//ACE_LACKS_SETSCHED Platform lacks pthread_attr_
-// setsched() (e.g. MVS)
-//ACE_LACKS_THREAD_STACK_SIZE Platform lacks pthread_attr_
-// setstacksize() (e.g., Linux pthreads)
-
-//ACE_HAS_IRIX62_THREADS Platform supports the very odd IRIX
-// 6.2 threads...
-
-/*********************************/
-
-/******* SIGNAL STUFF *******/
-//ACE_HAS_SIGNAL_OBJECT_AND_WAIT Platform supports the Win32
-// SignalObjectAndWait() function (WinNT 4.0 and beyond).
-//#define ACE_HAS_SIGNAL_SAFE_OS_CALLS
-//Automatically restart OS system
-// calls when EINTR occurs
-
-
-// Platform supports the getrusage() system call.
-//#define ACE_HAS_GETRUSAGE
-//Platform uses non-const char * in calls to gethostbyaddr, gethostbyname,
-// getservbyname
-#define ACE_HAS_NONCONST_GETBY
-// Platform's select() uses non-const timeval* (only found on Linux right now)
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-// And on Tandem :-)
-//Uses ctime_r & asctime_r with only two parameters vs. three.
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-//Platform has special header for select().
-#define ACE_HAS_SELECT_H
-// Platform/compiler supports Standard C++ Library
-#define ACE_HAS_STANDARD_CPP_LIBRARY
-//Platform/compiler supports _sys_errlist symbol
-//#define ACE_HAS_SYS_ERRLIST
-//Platform lacks madvise() (e.g., Linux)
-#define ACE_LACKS_MADVISE
-//Platform lacks the si_addr field of siginfo_t (e.g.,VxWorks and HP/UX 10.x)
-//?#define ACE_LACKS_SI_ADDR
-//Compiler/platform lacks strcasecmp() (e.g., DG/UX, UNIXWARE, VXWORKS)
-#define ACE_LACKS_STRCASECMP
-//<time.h> doesn't automatically #include /**/ <sys/time.h>
-#define ACE_LACKS_SYSTIME_H
-
-//ACE_HAS_AIX_BROKEN_SOCKET_HEADER Platform, such as AIX4, needs to wrap
-// #include of sys/socket.h with #undef/#define of __cplusplus.
-//ACE_HAS_AIX_HI_RES_TIMER Platform has AIX4 ::read_real_time ()
-// ? ACE_HAS_BROKEN_BITSHIFT Compiler has integer overflow
-// problem with bit-shift operations.
-// ? ACE_HAS_BROKEN_CONVERSIONS Compiler can't handle calls like
-// foo->operator T *()
-//ACE_HAS_BROKEN_CTIME Compiler/platform uses macro for ctime
-// (e.g., MVS)
-//ACE_HAS_BROKEN_HPUX_TEMPLATES Earlier versions of HP/UX C++ are
-// damned...
-//ACE_HAS_BROKEN_MSG_H Platform headers don't support <msg.h>
-// prototypes
-//ACE_HAS_BROKEN_MMAP_H HP/UX does not wrap the mmap(2) header
-// files with extern "C".
-//ACE_HAS_BROKEN_POSIX_TIME Platform defines struct timespec in
-// <sys/timers.h>
-//ACE_HAS_BROKEN_SETRLIMIT OS/compiler omits the const from the
-// rlimit parameter in the setrlimit() prototype.
-//ACE_HAS_BROKEN_WRITEV OS/compiler omits the const from the
-// iovec parameter in the writev() prototype.
-// There is a bstring in the Tandem but where man bstring OK, find bstring NOK
-// ? ACE_HAS_BSTRING Platform has <bstring.h> (which contains bzero() prototype)
-//ACE_HAS_CANCEL_IO Platform supports the Win32 CancelIO()
-// function (WinNT 4.0 and beyond).
-//ACE_HAS_CHARPTR_DL OS/platform uses char * for
-// dlopen/dlsym args, rather than const char *.
-// Yes in man, no in header file
-//ACE_HAS_CHARPTR_SOCKOPT OS/platform uses char * for sockopt,
-// rather than const char *
-// sprintf() returns char * rather than int (e.g., SunOS 4.x)
-//#define ACE_HAS_CHARPTR_SPRINTF
-//ACE_HAS_CLOCK_GETTIME Platform supports POSIX 1.b
-// clock_gettime ()
-//ACE_HAS_COMPLEX_LOCK Platform supports non-standard
-// readers/writer locks...
-//? ACE_HAS_EXCEPTIONS Compiler supports C++ exception
-// handling
-// Platform supports getpagesize() call (otherwise, ACE_PAGE_SIZE must be
-// defined, except on Win32)
-//#define ACE_HAS_GETPAGESIZE // Man getpagesize ok grep /usr/.. not
-// found
-//ACE_HAS_GNU_CSTRING_H Denotes that GNU has cstring.h as
-// standard which redefines memchr()
-//ACE_HAS_HI_RES_TIMER Compiler/platform supports SunOS
-// high resolution timers
-//ACE_HAS_INLINED_OSCALLS Inline all the static class OS
-// methods to remove call overhead
-//ACE_HAS_LIMITED_RUSAGE_T The rusage_t structure has only two
-// fields.
-//ACE_HAS_LONG_MAP_FAILED Platform defines MAP_FAILED as a
-// long constant.
-//? ACE_HAS_NONCONST_MSGSND Platform has a non-const parameter to
-// msgsend() (e.g., SCO).
-// Has it msgsend at all
-
-//ACE_HAS_OLD_MALLOC Compiler/platform uses old malloc()/
-// free() prototypes (ugh)
-//? ACE_HAS_POSIX_SEM Platform supports POSIX real-time
-//semaphores (e.g., VxWorks and Solaris)
-//Compiler/platform defines a union semun for SysV shared memory
-//#define ACE_HAS_SEMUN
-//ACE_HAS_SIN_LEN Platform supports new BSD inet_addr
-// len field.
-//? ACE_HAS_SIZET_SOCKET_LEN OS/compiler uses size_t * rather
-//than int * for socket lengths
-//ACE_HAS_SOCKADDR_MSG_NAME Platform requires (struct sockaddr *)
-//for msg_name field of struct msghdr.
-//ACE_HAS_STRICT Use the STRICT compilation mode on Win32.
-//? ACE_HAS_STRUCT_NETDB_DATA Compiler/platform has strange
-// hostent API for socket *_r() calls
-//ACE_HAS_SUNOS4_GETTIMEOFDAY SunOS 4 style prototype.
-//? ACE_HAS_SYSCALL_GETRUSAGE HP/UX has an undefined syscall for
-//GETRUSAGE...
-//ACE_HAS_TEMPLATE_TYPEDEFS Compiler implements templates that
-// support typedefs inside of classes used as formal arguments to a template
-// class.
-//Platform/compiler supports timezone * as second parameter to gettimeofday()
-//#define ACE_HAS_TIMEZONE_GETTIMEOFDAY According to man we have but not
-//when compiling
-//ACE_HAS_UNION_WAIT The wait() system call takes a (
-// union wait *) rather than int *
-//? ACE_HAS_USING_KEYWORD Compiler supports the new using
-// keyword for C++ namespaces.
-//ACE_HAS_VOIDPTR_MMAP Platform requires void * for mmap().
-//ACE_HAS_VOIDPTR_SOCKOPT OS/compiler uses void * arg 4
-// setsockopt() rather than const char *
-//ACE_HAS_WIN32_TRYLOCK The Win32 platform support
-//TryEnterCriticalSection() (WinNT 4.0 and beyond)
-//ACE_HAS_WINSOCK2 The Win32 platform supports WinSock 2.0
-//ACE_HAS_XLI Platform has the XLI version of TLI
-//ACE_HAS_XT Platform has Xt and Motif
-//ACE_LACKS_CONST_TIMESPEC_PTR Platform forgot const in cond_timewait
-// (e.g., HP/UX).
-//ACE_LACKS_COND_T Platform lacks condition variables
-// (e.g., Win32 and VxWorks)
-//ACE_LACKS_EXEC Platform lacks the exec() family of
-// system calls (e.g., Win32, VxWorks, Chorus)
-//ACE_LACKS_FILELOCKS Platform lacks file locking mechanism
-//ACE_LACKS_IOSTREAM_FX iostream header does not declare
-// ipfx (), opfx (), etc.
-//ACE_LACKS_MALLOC_H Platform lacks malloc.h
-//ACE_LACKS_MEMORY_H Platform lacks memory.h
-//(e.g., VxWorks and Chorus)
-//ACE_LACKS_MKTEMP ACE has no mktemp()
-//ACE_LACKS_MMAP The platform doesn't have mmap(2)
-// (e.g., SCO UNIX).
-//ACE_LACKS_MODE_MASKS Platform/compiler doesn't have
-//open() mode masks.
-//ACE_LACKS_MPROTECT The platform doesn't have mprotect(2)
-//(e.g., EPLX real time OS from CDC (based on LYNX))
-//ACE_LACKS_MSGBUF_T Platform lacks struct msgbuf (e.g.,
-// NT and MSV).
-//ACE_LACKS_MSYNC Platform lacks msync() (e.g., Linux)
-//ACE_LACKS_NETDB_REENTRANT_FUNCTIONS Platform does not support reentrant
-// netdb functions (getprotobyname_r, getprotobynumber_r, gethostbyaddr_r,
-// gethostbyname_r, getservbyname_r).
-//ACE_LACKS_PARAM_H Platform lacks <sys/param.h> (e.g.,
-//MVS)
-//ACE_LACKS_POSIX_PROTOTYPES Platform lacks POSIX prototypes for
-//certain System V functions like shared memory and message queues.
-//ACE_LACKS_RECVMSG Platform lacks recvmsg() (e.g., Linux)
-//ACE_LACKS_RWLOCK_T Platform lacks readers/writer locks.
-//ACE_LACKS_SBRK Platform lacks a working sbrk()
-// (e.g., Win32 and VxWorks)
-//ACE_LACKS_SEMBUF_T Platform lacks struct sembuf
-//(e.g., Win32 and VxWorks)
-//ACE_LACKS_SIGACTION Platform lacks struct sigaction
-// (e.g., Win32 and Chorus)
-//? ACE_LACKS_SYS_NERR Platforms/compiler lacks the sys_nerr
-// variable (e.g., VxWorks and MVS).
-//ACE_LACKS_SYSV_MSG_H Platform lacks sys/msg.h
-//(e.g., Chorus and VxWorks)
-//ACE_LACKS_KEY_T Platform lacks key_t
-//(e.g., Chorus, VxWorks, Win32)
-//ACE_LACKS_SENDMSG Platform lacks sendmsg()
-// (e.g., Linux)
-//ACE_LACKS_SYSV_SHMEM Platform lacks System V shared
-// memory (e.g., Win32 and VxWorks)
-//ACE_LACKS_SIGINFO_H Platform lacks the siginfo.h include
-// file (e.g., MVS)
-//ACE_LACKS_SOCKETPAIR Platform lacks the socketpair()
-// call (e.g., SCO UNIX)
-//? ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES Compiler doesn't support
-// static data member templates
-//ACE_LACKS_STRRECVFD Platform doesn't define struct
-//strrecvfd.
-//ACE_LACKS_SYSCALL Platform doesn't have syscall()
-// prototype
-//ACE_LACKS_SYSV_MSQ_PROTOS Platform doesn't have prototypes for
-//Sys V msg()* queues.
-//ACE_LACKS_T_ERRNO Header files lack t_errno for TLI
-//ACE_LACKS_TCP_H Platform doesn't have netinet/tcp.h
-//ACE_LACKS_UCONTEXT_H Platform lacks the ucontext.h file
-//ACE_LACKS_UNIX_DOMAIN_SOCKETS ACE platform has no UNIX domain sockets
-//ACE_LACKS_UTSNAME_T Platform lacks struct utsname
-// (e.g., Win32 and VxWorks)
-//ACE_NDEBUG Turns off debugging features
-//ACE_LACKS_READV Platform doesn't define readv, so
-// use our own
-//ACE_LACKS_WRITEV Platform doesn't define writev, so
-//use our own
-//ACE_NLOGGING Turns off the LM_DEBUG and LM_ERROR
-//logging macros...
-//ACE_NTRACE Turns off the tracing feature.
-//ACE_REDEFINES_XTI_FUNCTIONS Platform redefines the t_... names
-//(UnixWare)
-//ACE_SELECT_USES_INT Platform uses int for select()
-//rather than fd_set
-//? ACE_TEMPLATES_REQUIRE_PRAGMA Compiler's template mechanism must
-// use a pragma This is used for AIX's C++ compiler.
-//? ACE_TEMPLATES_REQUIRE_SOURCE Compiler's template mechanim must
-// see source code (i.e., .cpp files). This is used for GNU G++.
-//? ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION Compiler's template mechanism
-//requires the use of explicit C++ specializations for all used
-//templates. This is also used for GNU G++ if you don't use the "repo"
-//patches.
-//ACE_USE_POLL Use the poll() event demultiplexor
-//rather than select().
-
-// Turns off the tracing feature.
-// #define ACE_NTRACE 0
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-tru64.h b/ace/config-tru64.h
deleted file mode 100644
index 06aa1c3596b..00000000000
--- a/ace/config-tru64.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for the
-// Digital UNIX V4.0a and later platforms. It relies on
-// config-osf1-4.0.h, and adds deltas for newer platforms.
-
-#ifndef ACE_CONFIG_TRU64_H
-#define ACE_CONFIG_TRU64_H
-#include "ace/pre.h"
-
-#if defined (DIGITAL_UNIX)
-# include "ace/config-osf1-4.0.h"
-# define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-# if DIGITAL_UNIX >= 0x500
-// It's possible that snprintf() is available on earlier Tru64 versions,
-// but this is the only way it's been tested. Steve Huston, 22-Jan-2003
-// It is not on 4.0F. Rich Seibel, 6 Feb 2003
-# ifndef ACE_HAS_SNPRINTF
-# define ACE_HAS_SNPRINTF
-# endif /* ACE_HAS_SNPRINTF */
-# endif /* DIGITAL_UNIX >= 0x500 */
-# if DIGITAL_UNIX >= 0x40D
-# define ACE_LACKS_SYSTIME_H
-# endif /* DIGITAL_UNIX >= 0x40D */
-#else /* ! DIGITAL_UNIX */
-# include "ace/config-osf1-3.2.h"
-#endif /* ! DIGITAL_UNIX */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_TRU64_H */
diff --git a/ace/config-unixware-2.01-g++.h b/ace/config-unixware-2.01-g++.h
deleted file mode 100644
index 92fe9d4c58a..00000000000
--- a/ace/config-unixware-2.01-g++.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work
-// for Unixware platforms running UnixWare 2.01.
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// See README for what the ACE_HAS... and ACE_LACKS... macros mean
-
-#if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
-// this must appear before its #include.
-#define ACE_HAS_STRING_CLASS
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_IDTYPE_T
-#define ACE_LACKS_STRCASECMP
-#define ACE_HAS_SIZET_SOCKET_LEN
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_GNU_CSTRING_H
-#define ACE_HAS_MSG
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-// Not yet sure about threads
-#define ACE_HAS_NONCONST_GETBY
-#define ACE_HAS_OSF1_GETTIMEOFDAY
-#define ACE_HAS_POLL
-#define ACE_HAS_POSIX_NONBLOCK
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#define ACE_HAS_REGEX
-#define ACE_HAS_LAZY_V
-#define ACE_HAS_SELECT_H
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_SOCKIO_H
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STHREADS
-#define ACE_HAS_THR_KEYDELETE
-#define ACE_HAS_STRBUF_T
-#define ACE_HAS_STREAMS
-#define ACE_HAS_STREAM_PIPES
-#define ACE_HAS_STRERROR
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_SYSCALL_H
-#define ACE_HAS_SYSINFO
-#define ACE_HAS_SYSV_IPC
-#define ACE_HAS_SYS_FILIO_H
-#define ACE_HAS_SYS_SIGLIST
-#define ACE_HAS_TERM_IOCTLS
-#define ACE_HAS_THREADS
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_THREAD_T
-#define ACE_HAS_TIMOD_H
-#define ACE_HAS_TIUSER_H
-#define ACE_HAS_TLI
-#define ACE_HAS_TLI_PROTOTYPES
-#define ACE_HAS_UNIXWARE_SVR4_SIGNAL_T
-#define ACE_HAS_VOIDPTR_SOCKOPT
-
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_SYSCALL
-
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-#define ACE_PAGE_SIZE 4096
-#define ACE_REDEFINES_XTI_FUNCTIONS
-
-// Compiling for UNIXWARE
-#if !defined (UNIXWARE)
-# define UNIXWARE
-# define UNIXARE_2_0
-#endif /* UNIXWARE */
-
-// These seem to be missing... Process_Manager uses them
-//
-//typedef int Process_t;
-//typedef int hProcess_t;
-//typedef int hpid_t;
-
-
-// Compiler/platform supports OSF/1 gettimeofday() prototype.
-//#define ACE_HAS_OSF1_GETTIMEOFDAY
-
-// Compiler/platform supports SVR4 TLI (in particular, T_GETNAME stuff)...
-//#define ACE_HAS_SVR4_TLI
-
-
-// Platform doesn't have get<blah>by... char *arg defined as const
-//#define ACE_GET_BLAH_BY_NO_CONST
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-unixware-2.1.2-g++.h b/ace/config-unixware-2.1.2-g++.h
deleted file mode 100644
index fced5901150..00000000000
--- a/ace/config-unixware-2.1.2-g++.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work
-// for Unixware platforms running UnixWare 2.1.2 and gcc version 2.7.2.2
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-// See README for what the ACE_HAS... and ACE_LACKS... macros mean
-
-#if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
-// this must appear before its #include.
-#define ACE_HAS_STRING_CLASS
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_LACKS_SYSTIME_H
-// ualarm is only in BSD compatibility lib, but no header is provided
-// #define ACE_HAS_UALARM
-#define ACE_HAS_SIZET_SOCKET_LEN
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_GNU_CSTRING_H
-#define ACE_HAS_MSG
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-#define ACE_HAS_NONCONST_GETBY
-#define ACE_HAS_POLL
-#define ACE_HAS_POSIX_NONBLOCK
-#define ACE_HAS_POSIX_TIME
-#define ACE_LACKS_TIMESPEC_T
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#define ACE_HAS_REGEX
-#define ACE_HAS_LAZY_V
-#define ACE_HAS_SELECT_H
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_SOCKIO_H
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STHREADS
-#define ACE_HAS_THR_KEYDELETE
-#define ACE_HAS_STRBUF_T
-#define ACE_HAS_STREAMS
-#define ACE_HAS_STREAM_PIPES
-#define ACE_HAS_STRERROR
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_SYSCALL_H
-#define ACE_HAS_SYSINFO
-#define ACE_HAS_SYSV_IPC
-#define ACE_HAS_SYS_FILIO_H
-#define ACE_HAS_TERM_IOCTLS
-#define ACE_HAS_THREADS
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_THREAD_T
-#define ACE_HAS_TIMOD_H
-#define ACE_HAS_TIUSER_H
-#define ACE_HAS_TLI
-#define ACE_HAS_TLI_PROTOTYPES
-#define ACE_HAS_UNIXWARE_SVR4_SIGNAL_T
-#define ACE_HAS_VOIDPTR_SOCKOPT
-#define ACE_HAS_THR_MINSTACK
-
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_STRCASECMP
-#define ACE_LACKS_PRI_T
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
-
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-#define ACE_PAGE_SIZE 4096
-#define ACE_REDEFINES_XTI_FUNCTIONS
-
-#if !defined (UNIXWARE)
-# define UNIXWARE
-# define UNIXWARE_2_1
-#endif /* ! UNIXWARE */
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_HAS_IDTYPE_T
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-unixware-7.1.0.h b/ace/config-unixware-7.1.0.h
deleted file mode 100644
index b5a228d1a81..00000000000
--- a/ace/config-unixware-7.1.0.h
+++ /dev/null
@@ -1,447 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-
-/* ACE configuration header file */
-
-/* Include the commong gnu config file */
-#include "config-g++-common.h"
-
-/* For unixware 7.1 && g++ 2.91.57, see if this fixes my problem */
-#ifndef UNIXWARE_7_1
-#define UNIXWARE_7_1
-#endif
-
-/* Define if you have alloca, as a function or macro. */
-#define HAVE_ALLOCA 1
-
-/* Define if you have the strftime function. */
-#define HAVE_STRFTIME 1
-
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if lex declares yytext as a char * by default, not a char[]. */
-#define YYTEXT_POINTER 1
-
-/* Define _REENTRANT if reentrant functions should be used. */
-#ifndef _REENTRANT
-# define _REENTRANT 1
-#endif
-
-#define ACE_HAS_NEW_NO_H 1
-#define ACE_HAS_STDEXCEPT_NO_H 1
-#define ACE_HAS_IOMANIP_NO_H 1
-
-/* Platform provides <sys/ioctl.h> header */
-#define ACE_HAS_SYS_IOCTL_H 1
-
-#define ACE_THREAD_MIN_PRIORITY 0
-#if defined (ACE_THREAD_MIN_PRIORITY)
-# define PTHREAD_MIN_PRIORITY ACE_THREAD_MIN_PRIORITY
-#endif /* #if defined (ACE_THREAD_MIN_PRIORITY) */
-
-#define ACE_THREAD_MAX_PRIORITY 99
-#if defined (ACE_THREAD_MAX_PRIORITY)
-# define PTHREAD_MAX_PRIORITY ACE_THREAD_MAX_PRIORITY
-#endif /* #if defined (ACE_THREAD_MAX_PRIORITY) */
-
-/* Specify sizes of given built-in types. If a size isn't defined here,
- then ace/Basic_Types.h will attempt to deduce the size. */
-/* #undef ACE_SIZEOF_CHAR */
-#define ACE_SIZEOF_SHORT 2
-#define ACE_SIZEOF_INT 4
-#define ACE_SIZEOF_LONG 4
-#define ACE_SIZEOF_LONG_LONG 8
-#define ACE_SIZEOF_VOID_P 4
-#define ACE_SIZEOF_FLOAT 4
-#define ACE_SIZEOF_DOUBLE 8
-#define ACE_SIZEOF_LONG_DOUBLE 12
-
-/* typedef for ACE_UINT64 */
-/*
- We only make the typedef if ACE_UINT64_TYPEDEF is defined. Otherwise,
- let ace/Basic_Types.h do the work for us.
-*/
-#define ACE_UINT64_TYPEDEF unsigned long long
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF && !ACE_DISABLE_AUTOCONF_UINT64 */
-
-/* Enable ACE inlining */
-#define __ACE_INLINE__ 1
-
-/* OS has priocntl (2) */
-#define ACE_HAS_PRIOCNTL 1
-
-/* Platform has pread() and pwrite() support */
-#define ACE_HAS_P_READ_WRITE 1
-
-/* Compiler/platform supports alloca() */
-#define ACE_HAS_ALLOCA 1
-
-/* Compiler/platform correctly calls init()/fini() for shared libraries */
-#define ACE_HAS_AUTOMATIC_INIT_FINI 1
-
-/* Platform doesn't cast MAP_FAILED to a (void *). */
-/* #undef ACE_HAS_BROKEN_MAP_FAILED */
-/* Staller: oh yes, let's do this! */
-#define ACE_HAS_BROKEN_MAP_FAILED
-
-/* Prototypes for both signal() and struct sigaction are consistent. */
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES 1
-
-/* Platform supports operations on directories via struct dirent,
- readdir_r, etc. */
-#define ACE_HAS_DIRENT 1
-
-/* Compiler supports C++ exception handling */
-// MM-Graz if ! defined inserted, to prevent warnings, because it is already
-// defined in config-g++common.h
-# if !defined (ACE_HAS_EXCEPTIONS)
-#define ACE_HAS_EXCEPTIONS 1
-# endif
-
-/* Platform supports getpagesize() call (otherwise, ACE_PAGE_SIZE must be
- defined, except on Win32) */
-#define ACE_HAS_GETPAGESIZE 1
-
-/* Platform supports the getrusage() system call. */
-#define ACE_HAS_GETRUSAGE 1
-
-/* Platform has a getrusage () prototype in sys/resource.h that differs from
- the one in ace/OS.i. */
-#define ACE_HAS_GETRUSAGE_PROTO 1
-
-/* Denotes that GNU has cstring.h as standard which redefines memchr() */
-#define ACE_HAS_GNU_CSTRING_H
-
-/* The GPERF utility is compiled for this platform */
-#define ACE_HAS_GPERF 1
-
-/* Optimize ACE_Handle_Set::count_bits for select() operations (common case) */
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT 1
-
-/* Compiler/platform supports idtype_t. */
-#define ACE_HAS_IDTYPE_T 1
-
-/* Platform supports IP multicast */
-#define ACE_HAS_IP_MULTICAST 1
-
-/* Platform supports thr_keydelete (e.g,. UNIXWARE) */
-#define ACE_HAS_THR_KEYDELETE 1
-
-/* Platform calls thr_minstack() rather than thr_min_stack() (e.g., Tandem). */
-#define ACE_HAS_THR_MINSTACK 1
-
-/* Platform supports recvmsg and sendmsg */
-#define ACE_HAS_MSG 1
-
-/* Platform's select() uses non-const timeval* (only found on Linux right
- now) */
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL 1
-
-/* Uses ctime_r & asctime_r with only two parameters vs. three. */
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R 1
-
-/* Platform is an Intel Pentium microprocessor. */
-/* There is a problem with the gethrtime() because of (apparently) a problem
- with the inline assembly instruction. Hopefully there is a way to resolve
- that with an improvement to the assembler
-*/
-#ifdef ACE_HAS_PENTIUM
-#undef ACE_HAS_PENTIUM
-#endif /* ACE_HAS_PENTIUM */
-
-
-/* Platform contains <poll.h> */
-#define ACE_HAS_POLL 1
-
-/* Platform supports POSIX O_NONBLOCK semantics */
-#define ACE_HAS_POSIX_NONBLOCK 1
-
-/* Platform supports the POSIX struct timespec type */
-#define ACE_HAS_POSIX_TIME 1
-
-/* Platform supports the /proc file system and defines tid_t
- in <sys/procfs.h> */
-#define ACE_HAS_PROC_FS 1
-
-/* Platform supports POSIX Threads */
-#define ACE_HAS_PTHREADS 1
-
-/* Platform supports POSIX.1c-1995 threads */
-#define ACE_HAS_PTHREADS_STD 1
-
-/* pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
- PTHREAD_PROCESS_SHARED values */
-#define ACE_HAS_PTHREAD_PROCESS_ENUM 1
-
-/* Platform has pthread_sigmask() defined. */
-#define ACE_HAS_PTHREAD_SIGMASK 1
-
-/* Platform will recurse infinitely on thread exits from TSS cleanup routines
- (e.g., AIX) */
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS 1
-
-/* Platform supports reentrant functions (i.e., all the POSIX *_r
- functions). */
-#define ACE_HAS_REENTRANT_FUNCTIONS 1
-
-/* Platform has support for multi-byte character support compliant with the
- XPG4 Worldwide Portability Interface wide-character classification. */
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR 1
-
-/* Platform does not support reentrant netdb functions (getprotobyname_r,
- getprotobynumber_r, gethostbyaddr_r, gethostbyname_r, getservbyname_r). */
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS 1
-
-/* Platform supports the POSIX regular expression library */
-#define ACE_HAS_REGEX 1
-
-/* Platform has special header for select(). */
-#define ACE_HAS_SELECT_H 1
-
-/* Platform has a function to set t_errno (e.g., Tandem). */
-#define ACE_HAS_SET_T_ERRNO 1
-
-/* Platform supports SVR4 extended signals */
-#define ACE_HAS_SIGINFO_T 1
-
-/* Platform/compiler has the sigwait(2) prototype */
-#define ACE_HAS_SIGWAIT 1
-
-/* Compiler/platform defines the sig_atomic_t typedef */
-#define ACE_HAS_SIG_ATOMIC_T 1
-
-/* Platform supports new BSD inet_addr len field. */
-#define ACE_HAS_SIN_LEN 1
-
-/* OS/compiler uses size_t * rather than int * for socket lengths */
-#define ACE_HAS_SIZET_SOCKET_LEN 1
-
-/* Compiler/platform provides the sys/sockio.h file */
-#define ACE_HAS_SOCKIO_H 1
-
-/* Compiler supports the ssize_t typedef */
-#define ACE_HAS_SSIZE_T 1
-
-/* Platform supports UNIX International Threads */
-#define ACE_HAS_STHREADS 1
-
-/* Platform has thr_yield() */
-#define ACE_HAS_THR_YIELD 1
-
-/* Compiler/platform supports struct strbuf */
-#define ACE_HAS_STRBUF_T 1
-
-/* Platform supports STREAMS */
-#define ACE_HAS_STREAMS 1
-
-/* Platform supports STREAM pipes */
-#define ACE_HAS_STREAM_PIPES 1
-
-/* Compiler/platform supports strerror () */
-#define ACE_HAS_STRERROR 1
-
-/* Platform/Compiler supports a String class (e.g., GNU or Win32). */
-#define ACE_HAS_STRING_CLASS 1
-
-/* Platform has <strings.h> (which contains bzero() prototype) */
-#define ACE_HAS_STRINGS 1
-
-/* Platform has void * as second parameter to gettimeofday and a has a
- prototype */
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY 1
-
-/* Compiler/platform supports SVR4 dynamic linking semantics */
-#define ACE_HAS_SVR4_DYNAMIC_LINKING 1
-
-/* Compiler/platform supports SVR4 TLI (in particular, T_GETNAME stuff)... */
-#define ACE_HAS_SVR4_TLI 1
-
-/* Compiler/platform contains the <sys/syscall.h> file. */
-#define ACE_HAS_SYSCALL_H 1
-
-/* Platform supports system configuration information */
-#define ACE_HAS_SYSINFO 1
-
-/* Platform supports System V IPC (most versions of UNIX, but not Win32) */
-#define ACE_HAS_SYSV_IPC 1
-
-/* Platform provides <sys/filio.h> header */
-#define ACE_HAS_SYS_FILIO_H 1
-
-/* Platform provides <sys/xti.h> header */
-#define ACE_HAS_SYS_XTI_H 1
-
-/* Platform has terminal ioctl flags like TCGETS and TCSETS. */
-#define ACE_HAS_TERM_IOCTLS 1
-
-/* Platform supports threads */
-#define ACE_HAS_THREADS 1
-
-/* Compiler/platform has thread-specific storage */
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE 1
-
-/* Platform supports TLI timod STREAMS module */
-#define ACE_HAS_TIMOD_H 1
-
-/* Platform supports TLI tiuser header */
-#define ACE_HAS_TIUSER_H 1
-
-/* Platform supports TLI. Also see ACE_TLI_TCP_DEVICE. */
-#define ACE_HAS_TLI 1
-
-/* Platform provides TLI function prototypes */
-#define ACE_HAS_TLI_PROTOTYPES 1
-
-/* Platform supports ualarm() */
-#define ACE_HAS_UALARM 1
-
-/* Platform supports ucontext_t (which is used in the extended signal API). */
-#define ACE_HAS_UCONTEXT_T 1
-
-/* Platform has <utime.h> header file */
-#define ACE_HAS_UTIME 1
-
-/* Platform requires void * for mmap(). */
-#define ACE_HAS_VOIDPTR_MMAP 1
-
-/* Platform has XTI (X/Open-standardized superset of TLI). Implies
- ACE_HAS_TLI but uses a different header file. */
-#define ACE_HAS_XTI 1
-
-/* Platform can not build ace/IOStream{,_T}.cpp. This does not necessarily
- mean that the platform does not support iostreams. */
-#define ACE_LACKS_ACE_IOSTREAM 1
-
-/* Platform does not have u_longlong_t typedef */
-#define ACE_LACKS_U_LONGLONG_T 1
-
-/* Platform lacks madvise() (e.g., Linux) */
-#define ACE_LACKS_MADVISE 1
-
-/* Platform lacks POSIX prototypes for certain System V functions like shared
- memory and message queues. */
-#define ACE_LACKS_SOME_POSIX_PROTOTYPES 1
-
-/* Platform lacks pri_t (e.g., Tandem NonStop UNIX). */
-#define ACE_LACKS_PRI_T 1
-
-/* Platform lacks pthread_thr_sigsetmask (e.g., MVS, HP/UX, and OSF/1 3.2) */
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK 1
-
-/* Platfrom lack pthread_yield() support. */
-#define ACE_LACKS_PTHREAD_YIELD 1
-
-/* Platform lacks readers/writer locks. */
-#define ACE_LACKS_RWLOCK_T 1
-
-/* MIT pthreads platform lacks the timedwait prototypes */
-#define ACE_LACKS_TIMEDWAIT_PROTOTYPES 1
-
-/* Platform does not define timepec_t as a typedef for struct timespec. */
-#define ACE_LACKS_TIMESPEC_T 1
-
-/* Compile using multi-thread libraries */
-#define ACE_MT_SAFE 1
-
-/* Platform needs regexpr.h for regular expression support */
-#define ACE_NEEDS_REGEXPR_H 1
-
-/* Platform needs to #include <sched.h> to get thread scheduling defs. */
-#define ACE_NEEDS_SCHED_H 1
-
-/* <time.h> doesn't automatically #include <sys/time.h> */
-#define ACE_LACKS_SYSTIME_H 1
-
-/* Turns off the tracing feature. */
-#define ACE_NTRACE 1
-
-/*********************************************************************/
-/* Compiler's template mechanim must see source code (i.e., .cpp files). This
- is used for GNU G++. */
-/* Staller -> make 0 */
-// #undef ACE_TEMPLATES_REQUIRE_SOURCE
-
-/* Compiler's template instantiation mechanism supports the use of explicit
- C++ specializations for all used templates. This is also used for GNU G++
- if you don't use the "repo" patches. */
-/* Staller -> make 0 */
-// #define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION 1
-/*********************************************************************/
-
-/* The OS/platform supports the poll() event demultiplexor */
-#define ACE_USE_POLL 1
-
-/* Platform has its standard c++ library in the namespace std. */
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-
-/* The number of bytes in a double. */
-#define SIZEOF_DOUBLE 8
-
-/* The number of bytes in a float. */
-#define SIZEOF_FLOAT 4
-
-/* The number of bytes in a int. */
-#define SIZEOF_INT 4
-
-/* The number of bytes in a long. */
-#define SIZEOF_LONG 4
-
-/* The number of bytes in a long double. */
-#define SIZEOF_LONG_DOUBLE 12
-
-/* The number of bytes in a long long. */
-#define SIZEOF_LONG_LONG 8
-
-/* The number of bytes in a short. */
-#define SIZEOF_SHORT 2
-
-/* The number of bytes in a signed char. */
-#define SIZEOF_SIGNED_CHAR 1
-
-/* The number of bytes in a void *. */
-#define SIZEOF_VOID_P 4
-
-/* Define if you have the execv function. */
-#define HAVE_EXECV 1
-
-/* Define if you have the execve function. */
-#define HAVE_EXECVE 1
-
-/* Define if you have the execvp function. */
-#define HAVE_EXECVP 1
-
-/* Define if you have the <dirent.h> header file. */
-#define HAVE_DIRENT_H 1
-
-/* Define if you have the <fstream> header file. */
-#define HAVE_FSTREAM 1
-
-/* Define if you have the <iomanip> header file. */
-#define HAVE_IOMANIP 1
-
-/* Define if you have the <iostream> header file. */
-#define HAVE_IOSTREAM 1
-
-/* Define if you have the <pwd.h> header file. */
-#define HAVE_PWD_H 1
-
-/* Name of package */
-#define PACKAGE "ace"
-
-/* Added by Staller */
-#define ENUM_BOOLEAN // See file /usr/local/lib/gcc-lib/i486-pc-sysv5/egcs-2.91.60/include/sys/types.h
-#define howmany(x, y) (((x)+((y)-1))/(y))
-#define ACE_HAS_BROKEN_T_ERROR // make a nasty warning disappear in OS.i
-#define __USLC__ 1
-#define __IOCTL_VERSIONED__ // By Carlo!
-
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-unixware-7.1.0.udk.h b/ace/config-unixware-7.1.0.udk.h
deleted file mode 100644
index ecda2189807..00000000000
--- a/ace/config-unixware-7.1.0.udk.h
+++ /dev/null
@@ -1,529 +0,0 @@
-/* -*- C++ -*- */
-#ifndef ACE_CONFIG_UNIXWARE_UDK_H
-#define ACE_CONFIG_UNIXWARE_UDK_H
-
-// $Id$
-
-// Configuration for the unixware UDK compiler. derived from the unixware/g++ config
-// which was itself derived from an autoconfig run.
-
-/* ACE configuration header file */
-
-#define ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-#define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-//#define ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA
-
-/* For unixware 7.1 && g++ 2.91.57, see if this fixes my problem */
-//#define ACE_HAS_BROKEN_NOOP_DTORS
-#ifndef UNIXWARE_7_1
-#define UNIXWARE_7_1
-#endif
-
-#define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-
-/* Define if you have the strftime function. */
-#define HAVE_STRFTIME 1
-
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if lex declares yytext as a char * by default, not a char[]. */
-#define YYTEXT_POINTER 1
-
-/* Define _REENTRANT if reentrant functions should be used. */
-#ifndef _REENTRANT
-# define _REENTRANT 1
-#endif
-
-#define ACE_HAS_NEW_NO_H 1
-#define ACE_HAS_STDEXCEPT_NO_H 1
-#define ACE_HAS_IOMANIP_NO_H 1
-
-/* Platform provides <sys/ioctl.h> header */
-#define ACE_HAS_SYS_IOCTL_H 1
-
-/*
- * TODO: These two next #defines have an #undef before them, in
- * case the variable being defined already had a value.
- * The #undefs are being picked up by configure, and are commented out!
- */
-#define ACE_THREAD_MIN_PRIORITY 0
-#if defined (ACE_THREAD_MIN_PRIORITY)
-/* # undef PTHREAD_MIN_PRIORITY */
-# define PTHREAD_MIN_PRIORITY ACE_THREAD_MIN_PRIORITY
-#endif /* #if defined (ACE_THREAD_MIN_PRIORITY) */
-
-#define ACE_THREAD_MAX_PRIORITY 99
-#if defined (ACE_THREAD_MAX_PRIORITY)
-/* # undef PTHREAD_MAX_PRIORITY */
-# define PTHREAD_MAX_PRIORITY ACE_THREAD_MAX_PRIORITY
-#endif /* #if defined (ACE_THREAD_MAX_PRIORITY) */
-
-
-
-/* UnixWare specific configuration parameters */
-/* #undef UNIXWARE */
-/* #undef UNIXWARE_2_0 */
-/* #undef UNIXWARE_2_1 */
-
-/* Specify sizes of given built-in types. If a size isn't defined here,
- then ace/Basic_Types.h will attempt to deduce the size. */
-/* #undef ACE_SIZEOF_CHAR */
-#define ACE_SIZEOF_SHORT 2
-#define ACE_SIZEOF_INT 4
-#define ACE_SIZEOF_LONG 4
-#define ACE_SIZEOF_LONG_LONG 8
-#define ACE_SIZEOF_VOID_P 4
-#define ACE_SIZEOF_FLOAT 4
-#define ACE_SIZEOF_DOUBLE 8
-#define ACE_SIZEOF_LONG_DOUBLE 12
-
-/* typedef for ACE_UINT64 */
-/*
- We only make the typedef if ACE_UINT64_TYPEDEF is defined. Otherwise,
- let ace/Basic_Types.h do the work for us.
-*/
-#define ACE_UINT64_TYPEDEF unsigned long long
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF && !ACE_DISABLE_AUTOCONF_UINT64 */
-
-/* Enable ACE inlining */
-#define __ACE_INLINE__ 1
-
-/* Platform supports new C++ style casts (dynamic_cast, static_cast,
- reinterpret_cast and const_cast) */
-#define ACE_HAS_ANSI_CASTS
-
-/* Platform supports Asynchronous IO calls */
-/* #define ACE_HAS_AIO_CALLS */
-
-/* Specify this if you don't want threads to inherit parent thread's
- ACE_Log_Msg properties. */
-/* #undef ACE_THREADS_DONT_INHERIT_LOG_MSG */
-
-/* OS has priocntl (2) */
-#define ACE_HAS_PRIOCNTL 1
-
-/* Platform has pread() and pwrite() support */
-#define ACE_HAS_P_READ_WRITE 1
-
-/* Compiler/platform correctly calls init()/fini() for shared libraries */
-#define ACE_HAS_AUTOMATIC_INIT_FINI 1
-
-/* Compiler handles explicit calling of template destructor correctly.
- See "ace/OS.h" for details. */
-/* Staller: already defined by config-g++-common.h
-#define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR 1
-*/
-
-/* Platform doesn't cast MAP_FAILED to a (void *). */
-/* #undef ACE_HAS_BROKEN_MAP_FAILED */
-/* Staller: oh yes, let's do this! */
-#define ACE_HAS_BROKEN_MAP_FAILED
-
-
-/* Prototypes for both signal() and struct sigaction are consistent. */
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES 1
-
-/* Compiler/platform has correctly prototyped header files */
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-/* Platform supports operations on directories via struct dirent,
- readdir_r, etc. */
-#define ACE_HAS_DIRENT
-
-/* Compiler supports C++ exception handling */
-# if !defined (ACE_HAS_EXCEPTIONS)
-#define ACE_HAS_EXCEPTIONS
-# endif
-
-/* Platform supports getpagesize() call (otherwise, ACE_PAGE_SIZE must be
- defined, except on Win32) */
-#define ACE_HAS_GETPAGESIZE
-
-/* Platform supports the getrusage() system call. */
-#define ACE_HAS_GETRUSAGE
-
-/* Platform has a getrusage () prototype in sys/resource.h that differs from
- the one in ace/OS.i. */
-#define ACE_HAS_GETRUSAGE_PROTO
-
-/* The GPERF utility is compiled for this platform */
-#define ACE_HAS_GPERF
-
-/* Optimize ACE_Handle_Set::count_bits for select() operations (common case) */
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT 1
-
-/* Compiler/platform supports SunOS high resolution timers */
-/* #undef ACE_HAS_HI_RES_TIMER */
-
-/* Compiler/platform supports idtype_t. */
-#define ACE_HAS_IDTYPE_T
-
-/* Inline all the static class OS methods to remove call overhead */
-/* Note: This gets defined by OS.h if __ACE_INLINE__ is defined */
-/* #undef ACE_HAS_INLINED_OSCALLS */
-
-/* Platform supports IP multicast */
-#define ACE_HAS_IP_MULTICAST
-
-/* Platform supports thr_keydelete (e.g,. UNIXWARE) */
-#define ACE_HAS_THR_KEYDELETE
-
-/* Platform calls thr_minstack() rather than thr_min_stack() (e.g., Tandem). */
-#define ACE_HAS_THR_MINSTACK
-
-/* Some files, such as ace/streams.h, want to include new style C++ stream
- headers. These headers are iomanip, ios, iostream, istream, ostream,
- fstream and streambuf. If _all_ of these headers aren't available, then
- assume that only iostream.h and fstream.h are available. */
-/* #define ACE_USES_OLD_IOSTREAMS */
-
-/* Platform supports recvmsg and sendmsg */
-#define ACE_HAS_MSG
-
-/* Platform's select() uses non-const timeval* (only found on Linux right
- now) */
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-/* Uses ctime_r & asctime_r with only two parameters vs. three. */
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-
-
-/* Platform is an Intel Pentium microprocessor. */
-/* There is a problem with the gethrtime() because of (apparently) a problem
- with the inline assembly instruction. Hopefully there is a way to resolve
- that with an improvement to the assembler
-*/
-#ifdef ACE_HAS_PENTIUM
-//#undef ACE_HAS_PENTIUM
-#endif /* ACE_HAS_PENTIUM */
-
-
-/* Platform contains <poll.h> */
-#define ACE_HAS_POLL
-
-/* Platform supports POSIX O_NONBLOCK semantics */
-#define ACE_HAS_POSIX_NONBLOCK
-
-/* Platform supports the POSIX struct timespec type */
-#define ACE_HAS_POSIX_TIME
-
-/* Platform supports the /proc file system and defines tid_t
- in <sys/procfs.h> */
-#define ACE_HAS_PROC_FS
-
-/* Platform supports POSIX Threads */
-#define ACE_HAS_PTHREADS
-
-/* Platform supports POSIX Threads .4a Draft 4 */
-/* #undef ACE_HAS_PTHREADS_DRAFT4 */
-
-/* Platform supports POSIX Threads .4a Draft 6 */
-/* #undef ACE_HAS_PTHREADS_DRAFT6 */
-
-/* Platform supports POSIX Threads .1c Draft 7 */
-/* #undef ACE_HAS_PTHREADS_DRAFT7 */
-
-/* Platform supports POSIX.1c-1995 threads */
-#define ACE_HAS_PTHREADS_STD
-
-/* Platform has pthread_condattr_setkind_np(). */
-/* #undef ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP */
-
-/* Platform has pthread_mutexattr_setkind_np(). */
-/* #undef ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP */
-
-/* pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
- PTHREAD_PROCESS_SHARED values */
-#define ACE_HAS_PTHREAD_PROCESS_ENUM
-
-/* Platform has pthread_sigmask() defined. */
-#define ACE_HAS_PTHREAD_SIGMASK
-
-/* Platform will recurse infinitely on thread exits from TSS cleanup routines
- (e.g., AIX) */
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-
-/* Platform supports reentrant functions (i.e., all the POSIX *_r
- functions). */
-#define ACE_HAS_REENTRANT_FUNCTIONS
-
-/* Platform has support for multi-byte character support compliant with the
- XPG4 Worldwide Portability Interface wide-character classification. */
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-/* Platform does not support reentrant netdb functions (getprotobyname_r,
- getprotobynumber_r, gethostbyaddr_r, gethostbyname_r, getservbyname_r). */
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-
-/* Platform supports the POSIX regular expression library */
-#define ACE_HAS_REGEX
-
-/* Platform has special header for select(). */
-#define ACE_HAS_SELECT_H
-
-/* Platform has a function to set t_errno (e.g., Tandem). */
-#define ACE_HAS_SET_T_ERRNO
-
-/* Platform supports SVR4 extended signals */
-#define ACE_HAS_SIGINFO_T
-
-/* Platform/compiler has the sigwait(2) prototype */
-#define ACE_HAS_SIGWAIT
-
-/* Compiler/platform defines the sig_atomic_t typedef */
-#define ACE_HAS_SIG_ATOMIC_T
-
-/* Platform supports new BSD inet_addr len field. */
-#define ACE_HAS_SIN_LEN
-
-/* OS/compiler uses size_t * rather than int * for socket lengths */
-#define ACE_HAS_SIZET_SOCKET_LEN
-
-/* Compiler/platform provides the sys/sockio.h file */
-#define ACE_HAS_SOCKIO_H
-
-/* Compiler supports the ssize_t typedef */
-#define ACE_HAS_SSIZE_T
-
-/* Platform supports UNIX International Threads */
-#define ACE_HAS_STHREADS
-
-/* Platform has thr_yield() */
-#define ACE_HAS_THR_YIELD
-
-/* Platform/compiler supports Standard C++ Library */
-/* It seems that UDK provides std-like declarations for only portions
- such as <exception>
-*/
-#define ACE_HAS_STANDARD_CPP_LIBRARY 0
-
-/* Compiler/platform supports struct strbuf */
-#define ACE_HAS_STRBUF_T
-
-/* Platform supports STREAMS */
-#define ACE_HAS_STREAMS
-
-/* Platform supports STREAM pipes */
-#define ACE_HAS_STREAM_PIPES
-
-/* Compiler/platform supports strerror () */
-#define ACE_HAS_STRERROR
-
-/* Platform/Compiler supports a String class (e.g., GNU or Win32). */
-#define ACE_HAS_STRING_CLASS
-
-/* Platform has <strings.h> (which contains bzero() prototype) */
-#define ACE_HAS_STRINGS
-
-/* Platform has void * as second parameter to gettimeofday and a has a
- prototype */
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-
-/* Compiler/platform supports SVR4 dynamic linking semantics */
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-/* Compiler/platform supports SVR4 TLI (in particular, T_GETNAME stuff)... */
-#define ACE_HAS_SVR4_TLI
-
-/* Compiler/platform contains the <sys/syscall.h> file. */
-#define ACE_HAS_SYSCALL_H
-
-/* Platform supports system configuration information */
-#define ACE_HAS_SYSINFO 1
-
-/* Platform supports System V IPC (most versions of UNIX, but not Win32) */
-#define ACE_HAS_SYSV_IPC 1
-
-/* Platform provides <sys/filio.h> header */
-#define ACE_HAS_SYS_FILIO_H 1
-
-/* Platform provides <sys/xti.h> header */
-#define ACE_HAS_SYS_XTI_H 1
-
-/* Compiler implements template specialization */
-#define ACE_HAS_TEMPLATE_SPECIALIZATION 1
-
-/* Compiler implements templates that support typedefs inside of classes used
- as formal arguments to a template class. */
-#define ACE_HAS_TEMPLATE_TYPEDEFS 1
-
-/* Platform has terminal ioctl flags like TCGETS and TCSETS. */
-#define ACE_HAS_TERM_IOCTLS 1
-
-/* Platform supports threads */
-#define ACE_HAS_THREADS 1
-
-/* Compiler/platform has thread-specific storage */
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE 1
-
-/* Platform supports TLI timod STREAMS module */
-#define ACE_HAS_TIMOD_H 1
-
-/* Platform supports TLI tiuser header */
-#define ACE_HAS_TIUSER_H 1
-
-/* Platform supports TLI. Also see ACE_TLI_TCP_DEVICE. */
-#define ACE_HAS_TLI 1
-
-/* Platform provides TLI function prototypes */
-#define ACE_HAS_TLI_PROTOTYPES 1
-
-/* Platform supports ualarm() */
-#define ACE_HAS_UALARM 1
-
-/* Platform supports ucontext_t (which is used in the extended signal API). */
-#define ACE_HAS_UCONTEXT_T 1
-
-/* Platform has <utime.h> header file */
-#define ACE_HAS_UTIME 1
-
-/* Compiler supports the C++ typename keyword */
-#define ACE_HAS_TYPENAME_KEYWORD 1
-
-/* Compiler supports the new using keyword for C++ namespaces. */
-#define ACE_HAS_USING_KEYWORD 1
-
-/* Prints out console message in ACE_NOTSUP. Useful for tracking down origin
- of ACE_NOTSUP. */
-/* #undef ACE_HAS_VERBOSE_NOTSUP */
-
-/* Platform requires void * for mmap(). */
-#define ACE_HAS_VOIDPTR_MMAP 1
-
-/* Platform has XTI (X/Open-standardized superset of TLI). Implies
- ACE_HAS_TLI but uses a different header file. */
-#define ACE_HAS_XTI 1
-
-/* Platform can not build ace/IOStream{,_T}.cpp. This does not necessarily
- mean that the platform does not support iostreams. */
-#define ACE_LACKS_ACE_IOSTREAM 1
-
-/* Platform does not have u_longlong_t typedef */
-#define ACE_LACKS_U_LONGLONG_T 1
-
-/* Platform lacks madvise() (e.g., Linux) */
-#define ACE_LACKS_MADVISE 1
-
-/* Platform lacks POSIX prototypes for certain System V functions like shared
- memory and message queues. */
-#define ACE_LACKS_SOME_POSIX_PROTOTYPES 1
-
-/* Platform lacks pri_t (e.g., Tandem NonStop UNIX). */
-#define ACE_LACKS_PRI_T 1
-
-/* Platform lacks pthread_thr_sigsetmask (e.g., MVS, HP/UX, and OSF/1 3.2) */
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK 1
-
-/* Platfrom lack pthread_yield() support. */
-#define ACE_LACKS_PTHREAD_YIELD 1
-
-/* Platform lacks readers/writer locks. */
-#define ACE_LACKS_RWLOCK_T 1
-
-/* MIT pthreads platform lacks the timedwait prototypes */
-#define ACE_LACKS_TIMEDWAIT_PROTOTYPES 1
-
-/* Platform does not define timepec_t as a typedef for struct timespec. */
-#define ACE_LACKS_TIMESPEC_T 1
-
-/* Compile using multi-thread libraries */
-#define ACE_MT_SAFE 1
-
-/* Platform needs regexpr.h for regular expression support */
-#define ACE_NEEDS_REGEXPR_H 1
-
-/* Platform needs to #include <sched.h> to get thread scheduling defs. */
-#define ACE_NEEDS_SCHED_H 1
-
-/* <time.h> doesn't automatically #include <sys/time.h> */
-#define ACE_LACKS_SYSTIME_H 1
-
-/* Turns off the LM_DEBUG and LM_ERROR logging macros... */
-/* #undef ACE_NLOGGING */
-
-/* Turns off the tracing feature. */
-#define ACE_NTRACE 1
-
-/* The OS/platform supports the poll() event demultiplexor */
-#define ACE_USE_POLL 1
-
-/* Platform has its standard c++ library in the namespace std. */
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-
-/* The number of bytes in a double. */
-#define SIZEOF_DOUBLE 8
-
-/* The number of bytes in a float. */
-#define SIZEOF_FLOAT 4
-
-/* The number of bytes in a int. */
-#define SIZEOF_INT 4
-
-/* The number of bytes in a long. */
-#define SIZEOF_LONG 4
-
-/* The number of bytes in a long double. */
-#define SIZEOF_LONG_DOUBLE 12
-
-/* The number of bytes in a long long. */
-#define SIZEOF_LONG_LONG 8
-
-/* The number of bytes in a short. */
-#define SIZEOF_SHORT 2
-
-/* The number of bytes in a signed char. */
-#define SIZEOF_SIGNED_CHAR 1
-
-/* The number of bytes in a void *. */
-#define SIZEOF_VOID_P 4
-
-/* Define if you have the execv function. */
-#define HAVE_EXECV 1
-
-/* Define if you have the execve function. */
-#define HAVE_EXECVE 1
-
-/* Define if you have the execvp function. */
-#define HAVE_EXECVP 1
-
-/* Define if you have the <dirent.h> header file. */
-#define HAVE_DIRENT_H 1
-
-/* Define if you have the <fstream> header file. */
-#define HAVE_FSTREAM 1
-
-/* Define if you have the <iomanip> header file. */
-#define HAVE_IOMANIP 1
-
-/* Define if you have the <iostream> header file. */
-#define HAVE_IOSTREAM 1
-
-/* Define if you have the <pwd.h> header file. */
-#define HAVE_PWD_H 1
-
-/* Name of package */
-#define PACKAGE "ace"
-
-/* Version number of package */
-#define VERSION "4.6.37"
-
-/* Added by Staller */
-#define ENUM_BOOLEAN // See file /usr/local/lib/gcc-lib/i486-pc-sysv5/egcs-2.91.60/include/sys/types.h
-/* Hat nix gebracht
-#define ACE_DEFAULT_SELECT_REACTOR_SIZE 256 // this is like in linux config fileto avoid another error
-*/
-#define howmany(x, y) (((x)+((y)-1))/(y))
-#define ACE_HAS_BROKEN_T_ERROR // let disappear a nasty warning from OS.i
-#if !defined (__USLC__)
-# define __USLC__ 1
-#endif
-
-#define __IOCTL_VERSIONED__ // By Carlo!
-#endif /* ACE_UNIXWARE_UDK_H */
diff --git a/ace/config-visualage.h b/ace/config-visualage.h
deleted file mode 100644
index ccaaec9c776..00000000000
--- a/ace/config-visualage.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// This configuration file automatically includes the proper
-// configurations for IBM's VisualAge C++ compiler on Win32 and AIX.
-
-#ifndef CONFIG_VISUALAGE_H
-#define CONFIG_VISUALAGE_H
-#include "ace/pre.h"
-
-#ifdef __TOS_WIN__
- #include "ace/config-win32.h"
-#elif __TOS_AIX__
- #include "ace/config-aix-4.x.h"
-#else
- #include "PLATFORM NOT SPECIFIED"
-#endif /* __TOS_WIN__ */
-
-#include "ace/post.h"
-#endif //CONFIG_VISUALAGE_H
diff --git a/ace/config-vxworks5.x.h b/ace/config-vxworks5.x.h
deleted file mode 100644
index d4b42f231bc..00000000000
--- a/ace/config-vxworks5.x.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for VxWorks
-// 5.2/5.3 platforms using one of these compilers:
-// 1) The GNU/Cygnus g++ compiler that is shipped with Tornado 1.0.1.
-// 2) The Green Hills 1.8.8 (not 1.8.7!!!!) and 1.8.9 compilers.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#if ! defined (VXWORKS)
-# define VXWORKS
-#endif /* ! VXWORKS */
-
-#if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// Compiler-specific configuration.
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-# undef ACE_HAS_TEMPLATE_SPECIALIZATION
-
-# define ACE_LACKS_IOSTREAM_FX
-# if !defined (ACE_MAIN)
-# define ACE_MAIN ace_main
-# endif /* ! ACE_MAIN */
-
- // Even though the documentation suggests that g++/VxWorks 5.3.1
- // (Tornado 1.0.1) supports long long, Wind River tech support says
- // that it doesn't. It causes undefined symbols for math functions.
-# define ACE_LACKS_LONGLONG_T
-
- // On g++/VxWorks, iostream.h defines a static instance (yes, instance)
- // of the Iostream_init class. That causes all files that #include it
- // to put in the global constructor/destructor hooks. For files that
- // don't have any static instances of non-class (built-in) types, the
- // hooks refer to the file name, e.g., "foo.cpp". That file name gets
- // embedded in a variable name by munch. The output from munch won't
- // compile, though, because of the period! So, let g++/VxWorks users
- // include iostream.h only where they need it.
-# define ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION
-
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF
-# define ACE_LACKS_SIGNED_CHAR
-
-# if defined (ACE_VXWORKS) && ACE_VXWORKS >= 0x542
-# define ACE_LACKS_CLEARERR
-# endif /* ACE_VXWORKS >= 0x542 */
-
-#elif defined (ghs)
- // Processor type, if necessary. Green Hills defines "ppc".
-# if defined (ppc)
-# define ACE_HAS_POWERPC_TIMER
-# define ACE_LACKS_CLEARERR
-# elif defined (i386) || defined (__i386__)
- // If running an Intel, assume that it's a Pentium so that
- // ACE_OS::gethrtime () can use the RDTSC instruction. If
- // running a 486 or lower, be sure to comment this out.
- // (If not running an Intel CPU, this #define will not be seen
- // because of the i386 protection, so it can be ignored.)
-# define ACE_HAS_PENTIUM
-# endif /* ppc || i386 */
-
-# define ACE_CONFIG_INCLUDE_GHS_COMMON
-# include "ace/config-ghs-common.h"
-
-# define ACE_LACKS_UNISTD_H
-# define ACE_LACKS_IOSTREAM_TOTALLY
-
-// Short-circuit the include of <arpa/inet.h>
-// Green Hills has a problem with multiply defined functions
-// with different parameters.
-# define __INCineth
-
-#elif defined (__DCPLUSPLUS__)
- // Diab 4.2a or later.
-# if !defined (ACE_LACKS_PRAGMA_ONCE)
- // We define it with a -D with make depend.
-# define ACE_LACKS_PRAGMA_ONCE
-# endif /* ! ACE_LACKS_PRAGMA_ONCE */
-
- // Diab doesn't support VxWorks' iostream libraries.
-# define ACE_LACKS_IOSTREAM_TOTALLY
-
- // #include <new.h> causes strange compilation errors in
- // the system header files.
-# define ACE_LACKS_NEW_H
-
-#else /* ! __GNUG__ && ! ghs */
-# error unsupported compiler on VxWorks
-#endif /* ! __GNUG__ && ! ghs */
-
-// OS-specific configuration
-
-#define ACE_LACKS_UNIX_SYSLOG
-#define ACE_HAS_MUTEX_TIMEOUTS
-#define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 32768
-#define ACE_DEFAULT_THREAD_KEYS 16
-#define ACE_HAS_BROKEN_ACCEPT_ADDR
-#define ACE_HAS_BROKEN_SENDMSG
-#define ACE_HAS_BROKEN_WRITEV
-#define ACE_HAS_CHARPTR_SOCKOPT
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_DIRENT
-#define ACE_HAS_DLL 0
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_MSG
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-#define ACE_HAS_POSIX_NONBLOCK
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_RECURSIVE_MUTEXES
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_STRDUP_EMULATION
-#define ACE_HAS_STRERROR
-#define ACE_HAS_THREADS
-#define ACE_HAS_TSS_EMULATION
-#define ACE_LACKS_ACCESS
-#define ACE_LACKS_COND_T
-#define ACE_LACKS_EXEC
-#define ACE_LACKS_FCNTL
-#define ACE_LACKS_FILELOCKS
-#define ACE_LACKS_FORK
-#define ACE_LACKS_FSYNC
-#define ACE_LACKS_GETHOSTENT
-#define ACE_LACKS_GETSERVBYNAME
-#define ACE_LACKS_KEY_T
-#define ACE_LACKS_LSTAT
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_MALLOC_H
-#define ACE_LACKS_MEMORY_H
-#define ACE_LACKS_MKFIFO
-#define ACE_LACKS_MKTEMP
-#define ACE_LACKS_MKSTEMP
-#define ACE_LACKS_MMAP
-#define ACE_LACKS_MPROTECT
-#define ACE_LACKS_MSYNC
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_PARAM_H
-#define ACE_LACKS_PWD_FUNCTIONS
-#define ACE_LACKS_READDIR_R
-#define ACE_LACKS_READLINK
-#define ACE_LACKS_RLIMIT
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SBRK
-#define ACE_LACKS_SEEKDIR
-#define ACE_LACKS_SEMBUF_T
-#define ACE_LACKS_SIGINFO_H
-#define ACE_LACKS_SI_ADDR
-#define ACE_LACKS_SOCKETPAIR
-#define ACE_LACKS_STRCASECMP
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_SYSTIME_H
-#define ACE_LACKS_SYSV_MSG_H
-#define ACE_LACKS_SYSV_SHMEM
-#define ACE_LACKS_SYS_NERR
-#define ACE_LACKS_TELLDIR
-#define ACE_LACKS_TIMESPEC_T
-#define ACE_LACKS_TRUNCATE
-#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_UNIX_SIGNALS
-#define ACE_LACKS_UTSNAME_T
-#define ACE_PAGE_SIZE 4096
-#define ACE_THR_PRI_FIFO_DEF 101
-#define ACE_THR_PRI_OTHER_DEF ACE_THR_PRI_FIFO_DEF
-#define ACE_HAS_SIGTIMEDWAIT
-#define ACE_HAS_SIGSUSPEND
-#if !defined (ACE_VXWORKS_SPARE)
-# define ACE_VXWORKS_SPARE spare4
-#endif /* ! ACE_VXWORKS_SPARE */
-
-// Some string things
-#define ACE_LACKS_WCSCAT
-#define ACE_LACKS_WCSCHR
-#define ACE_LACKS_WCSCMP
-#define ACE_LACKS_WCSCPY
-#define ACE_LACKS_WCSCSPN
-#define ACE_LACKS_WCSLEN
-#define ACE_LACKS_WCSNCAT
-#define ACE_LACKS_WCSNCMP
-#define ACE_LACKS_WCSNCPY
-#define ACE_LACKS_WCSPBRK
-#define ACE_LACKS_WCSRCHR
-#define ACE_LACKS_WCSSPN
-#define ACE_LACKS_WCSSTR
-#define ACE_LACKS_WCSTOK
-#define ACE_LACKS_TOWLOWER
-#define ACE_LACKS_ITOW
-#define ACE_LACKS_WCSICMP
-#define ACE_LACKS_WCSNICMP
-#define ACE_LACKS_WCSTOD
-#define ACE_LACKS_WCSTOL
-#define ACE_LACKS_WCSTOUL
-#define ACE_LACKS_WCSDUP
-
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-#if !defined (ACE_NEEDS_HUGE_THREAD_STACKSIZE)
-# define ACE_NEEDS_HUGE_THREAD_STACKSIZE 65536
-#endif /* ACE_NEEDS_HUGE_THREAD_STACKSIZE */
-
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-// By default, don't include RCS Id strings in object code.
-#if !defined (ACE_USE_RCSID)
-#define ACE_USE_RCSID 0
-#endif /* #if !defined (ACE_USE_RCSID) */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-win32-borland.h b/ace/config-win32-borland.h
deleted file mode 100644
index efe68d731bd..00000000000
--- a/ace/config-win32-borland.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//$Id$
-
-// The following configuration file contains defines for Borland compilers.
-
-#ifndef ACE_CONFIG_WIN32_BORLAND_H
-#define ACE_CONFIG_WIN32_BORLAND_H
-#include "ace/pre.h"
-
-#ifndef ACE_CONFIG_WIN32_H
-#error Use config-win32.h in config.h instead of this header
-#endif /* ACE_CONFIG_WIN32_H */
-
-#include "config-borland-common.h"
-
-# if (__BORLANDC__ == 0x540)
-// The linker in C++Builder 4 has trouble with the large number of DLL
-// function exports created when you compile without inline functions.
-// Therefore we will always use inline functions with this version of
-// the compiler.
-# if defined (__ACE_INLINE__)
-# undef __ACE_INLINE__
-# endif /* __ACE_INLINE__ */
-# define __ACE_INLINE__ 1
-# else /* __BORLANDC__ == 0x540 */
-// In later versions of C++Builder we will prefer inline functions by
-// default. The debug configuration of ACE is built with functions
-// out-of-line, so when linking your application against a debug ACE
-// build, you can choose to use the out-of-line functions by adding
-// ACE_NO_INLINE=1 to your project settings.
-# if !defined (__ACE_INLINE__)
-# define __ACE_INLINE__ 1
-# endif /* __ACE_INLINE__ */
-# endif /* __BORLANDC__ == 0x540 */
-
-// Automatically define WIN32 macro if the compiler tells us it is our
-// target platform.
-# if defined (__WIN32__) && !defined (WIN32)
-# define WIN32 1
-# endif
-
-// When building a VCL application, the main VCL header file should be
-// included before anything else. You can define ACE_HAS_VCL=1 in your
-// project settings to have this file included for you automatically.
-# if defined (ACE_HAS_VCL) && (ACE_HAS_VCL != 0)
-# include /**/ <vcl.h>
-# endif
-
-# include "ace/config-win32-common.h"
-
-# define ACE_STRCASECMP_EQUIVALENT ::stricmp
-# define ACE_STRNCASECMP_EQUIVALENT ::strnicmp
-# define ACE_WCSDUP_EQUIVALENT ::_wcsdup
-
-# define ACE_LACKS_MODE_MASKS 1
-# define ACE_WSTRING_HAS_USHORT_SUPPORT 1
-# define ACE_HAS_ITOA 1
-
-#ifdef ACE_USES_STD_NAMESPACE_FOR_STDC_LIB
-#undef ACE_USES_STD_NAMESPACE_FOR_STDC_LIB
-#define ACE_USES_STD_NAMESPACE_FOR_STDC_LIB 1
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_BORLAND_H */
diff --git a/ace/config-win32-common.h b/ace/config-win32-common.h
deleted file mode 100644
index 0031e38ff51..00000000000
--- a/ace/config-win32-common.h
+++ /dev/null
@@ -1,573 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_CONFIG_WIN32_COMMON_H
-#define ACE_CONFIG_WIN32_COMMON_H
-#include "ace/pre.h"
-
-#ifndef ACE_CONFIG_WIN32_H
-#error Use config-win32.h in config.h instead of this header
-#endif /* ACE_CONFIG_WIN32_H */
-
-// Complain if WIN32 is not already defined.
-#if !defined (WIN32) && !defined (ACE_HAS_WINCE)
-# error Please define WIN32 in your project settings.
-#endif
-
-#define ACE_WIN32
-#if defined (_WIN64) || defined (WIN64)
-# define ACE_WIN64
-#endif /* _WIN64 || WIN64 */
-
-// Define this if you're running NT >= 4.0 (Win2K == NT 5).
-// Setting applies to : building ACE
-// Runtime restrictions: System must be Windows NT => 4.0
-#if !defined (ACE_HAS_WINNT4)
-# define ACE_HAS_WINNT4 1 /* assuming Win NT 4.0 or greater */
-#endif
-
-#if (defined (ACE_HAS_WINNT4) && ACE_HAS_WINNT4 != 0)
-# if !defined (_WIN32_WINNT)
-# define _WIN32_WINNT 0x0400
-# endif
-#else
-// On Win9X, a shared address SHOULD be between the 2nd and 3rd Gb.
-// Note this will not work for NT: The addresses above 2Gb are
-// reserved for the system, so this one will fail.
-# define ACE_DEFAULT_BASE_ADDR ((char*) ((2048UL+512UL)*1024UL*1024UL))
-#endif
-
-// Define ACE_HAS_MFC to 1, if you want ACE to use CWinThread. This should
-// be defined, if your application uses MFC.
-// Setting applies to : building ACE
-// Runtime restrictions: MFC DLLs must be installed
-// Additonal notes : If both ACE_HAS_MFC and ACE_MT_SAFE are
-// defined, the MFC DLL (not the static lib)
-// will be used from ACE.
-#if !defined (ACE_HAS_MFC)
-# define ACE_HAS_MFC 0
-#endif
-
-// If the invoking procedure turned off debugging by setting NDEBUG, then
-// also set ACE_NDEBUG, unless the user has already set it.
-#if defined (NDEBUG)
-# if !defined (ACE_NDEBUG)
-# define ACE_NDEBUG
-# endif /* ACE_NDEBUG */
-#endif /* NDEBUG */
-
-// Define ACE_HAS_STRICT to 1 in your config.h file if you want to use
-// STRICT type checking. It is disabled by default because it will
-// break existing application code.
-// Setting applies to : building ACE, linking with ACE
-// Runtime restrictions: -
-// Additonal notes : ACE_HAS_MFC implies ACE_HAS_STRICT
-#if !defined (ACE_HAS_STRICT)
-# define ACE_HAS_STRICT 0
-#endif
-
-// Turn off the following define if you want to disable threading.
-// Compile using multi-thread libraries.
-// Setting applies to : building ACE, linking with ACE
-// Runtime restrictions: multithreaded runtime DLL must be installed
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-// Build ACE services as DLLs. If you write a library and want it to
-// use ACE_Svc_Export, this will cause those macros to build dlls. If
-// you want your ACE service to be a static library, comment out this
-// line. As far as I know, the only reason to have a library be an
-// ACE "service" is to leverage the ACE_Svc_Export macros. It's just
-// as easy to define your own export macros.
-// #if !defined (ACE_SVC_HAS_DLL)
-// # define ACE_SVC_HAS_DLL 1
-// #endif
-
-// Define the special export macros needed to export symbols outside a dll
-#ifndef __BORLANDC__
-#define ACE_HAS_CUSTOM_EXPORT_MACROS
-#define ACE_Proper_Export_Flag __declspec (dllexport)
-#define ACE_Proper_Import_Flag __declspec (dllimport)
-#define ACE_EXPORT_SINGLETON_DECLARATION(T) template class __declspec (dllexport) T
-#define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class __declspec (dllexport) SINGLETON_TYPE<CLASS, LOCK>;
-#define ACE_IMPORT_SINGLETON_DECLARATION(T) extern template class T
-#define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) extern template class SINGLETON_TYPE <CLASS, LOCK>;
-#endif /* !__BORLANDC__ */
-
-// Define ACE_HAS_WINSOCK2 to 0 in your config.h file if you do *not*
-// want to compile with WinSock 2.0.
-// Setting applies to : building ACE
-// Runtime restrictions: winsock2 must be installed.
-// #define ACE_HAS_WINSOCK2 0
-
-// By default, we use non-static object manager on Win32. That is,
-// the object manager is allocated in main's stack memory. If this
-// does not suit your need, i.e., if your programs depend on the use
-// of static object manager, you neet to disable the behavior by adding
-//
-// #undef ACE_HAS_NONSTATIC_OBJECT_MANAGER
-//
-// in the config.h after including config-win32.h
-//
-// MFC users: the main function is defined within a MFC library and
-// therefore, ACE won't be able to meddle with main function and
-// instantiate the non-static object manager for you. To solve the
-// problem, you'll need to instantiate the ACE_Object_Manager by
-// either:
-//
-// 1. Using static object manager (as described above), however, using
-// the non-static object manager is prefered, therefore,
-// 2. Instantiate the non-static object manager yourself by either 1)
-// call ACE::init () at the beginning and ACE::fini () at the end,
-// _or_ 2) instantiate the ACE_Object_Manager in your CWinApp
-// derived class.
-//
-// Optionally, you can #define
-// ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER in your
-// ace/config.h and always take care of the business by yourself.
-// ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER has no effect when
-// using static object managers.
-#if !defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER)
-# define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-#elif (ACE_HAS_NONSTATIC_OBJECT_MANAGER == 0)
-# undef ACE_HAS_NONSTATIC_OBJECT_MANAGER
-#endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER */
-
-#define ACE_HAS_GPERF
-
-// By default, don't include RCS Id strings in object code.
-#if !defined (ACE_USE_RCSID)
-# define ACE_USE_RCSID 0
-#endif /* ! ACE_USE_RCSID */
-
-// ---------------- platform features or lack of them -------------
-
-// By default WIN32 has FD_SETSIZE of 64, which places the limit
-// between 61 and 64 on the number of clients a server using the
-// Select Reactor can support at the same time (i.e., 64 - standard in,
-// out, error). Here we raise the limit to 1024. Adjust the definition
-// below if you need to raise or lower it.
-
-#if !defined (FD_SETSIZE)
-#define FD_SETSIZE 1024
-#endif /* FD_SETSIZE */
-
-
-// Windows doesn't like 65536 ;-) If 65536 is specified, it is
-// listenly ignored by the OS, i.e., setsockopt does not fail, and you
-// get stuck with the default size of 8k.
-#define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535
-
-// It seems like Win32 does not have a limit on the number of buffers
-// that can be transferred by the scatter/gather type of I/O
-// functions, e.g., WSASend and WSARecv. We are setting this to be 64
-// for now. The typically use case is to create an I/O vector array
-// of size ACE_IOV_MAX on the stack and then filled in. Note that we
-// probably don't want too big a value for ACE_IOV_MAX since it may
-// mostly go to waste or the size of the activation record may become
-// excessively large.
-
-#if !defined (ACE_IOV_MAX)
-# define ACE_IOV_MAX 64
-#endif /* ACE_IOV_MAX */
-
-#if !defined (ACE_HAS_WINCE)
-// Platform supports pread() and pwrite()
-# define ACE_HAS_P_READ_WRITE
-#endif /* ! ACE_HAS_WINCE */
-
-#if !defined (__MINGW32__)
-# define ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS
-#endif /* __MINGW32__ */
-
-#define ACE_DEFAULT_THREAD_PRIORITY 0
-
-#define ACE_HAS_RECURSIVE_MUTEXES
-#define ACE_HAS_MSG
-#define ACE_HAS_DIRENT
-#define ACE_HAS_SOCKADDR_MSG_NAME
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_GETPPID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
-#define ACE_HAS_THREAD_SAFE_ACCEPT
-#define ACE_LACKS_GETHOSTENT
-#define ACE_LACKS_SIGACTION
-#define ACE_LACKS_SIGSET
-#define ACE_LACKS_FORK
-#define ACE_LACKS_UNIX_SIGNALS
-#define ACE_LACKS_SBRK
-#define ACE_LACKS_UTSNAME_T
-#define ACE_LACKS_SEMBUF_T
-#define ACE_LACKS_MSGBUF_T
-#define ACE_LACKS_SYSV_SHMEM
-#define ACE_LACKS_UNISTD_H
-#define ACE_LACKS_RLIMIT
-#define ACE_LACKS_MKFIFO
-#define ACE_LACKS_TELLDIR
-#define ACE_LACKS_SEEKDIR
-#define ACE_LACKS_REWINDDIR
-#define ACE_LACKS_READDIR_R
-#define ACE_LACKS_INET_ATON
-#define ACE_LACKS_PARAM_H
-
-#define ACE_HAS_SNPRINTF
-#define ACE_HAS_VFWPRINTF
-
-#define ACE_SIZEOF_LONG_LONG 8
-// Green Hills Native x86 does not support __int64 keyword
-// Neither does mingw32.
-#if !defined (ACE_LACKS_LONGLONG_T) && !defined (__MINGW32__)
-typedef unsigned __int64 ACE_UINT64;
-#endif /* (ghs) */
-
-#if defined (__MINGW32__)
-typedef unsigned long long ACE_UINT64;
-#endif
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Win32 has wchar_t support
-#define ACE_HAS_WCHAR
-
-// Compiler/platform correctly calls init()/fini() for shared
-// libraries. - applied for DLLs ?
-//define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Platform supports POSIX O_NONBLOCK semantics.
-//define ACE_HAS_POSIX_NONBLOCK
-
-// Platform contains <poll.h>.
-//define ACE_HAS_POLL
-
-// Platform supports the /proc file system.
-//define ACE_HAS_PROC_FS
-
-#if (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0))
-// Platform supports the rusage struct.
-#define ACE_HAS_GETRUSAGE
-#endif /* (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) */
-
-// Compiler/platform supports SVR4 signal typedef.
-//define ACE_HAS_SVR4_SIGNAL_T
-
-// Platform provides <sys/filio.h> header.
-//define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform supports sys_siglist array.
-//define ACE_HAS_SYS_SIGLIST
-
-// Platform supports ACE_TLI timod STREAMS module.
-//define ACE_HAS_TIMOD_H
-
-// Platform supports ACE_TLI tiuser header.
-//define ACE_HAS_TIUSER_H
-
-// Platform provides ACE_TLI function prototypes.
-// For Win32, this is not really true, but saves a lot of hassle!
-#define ACE_HAS_TLI_PROTOTYPES
-
-// Platform supports ACE_TLI.
-//define ACE_HAS_TLI
-
-// I'm pretty sure NT lacks these
-#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-
-// Windows NT needs readv() and writev()
-#define ACE_LACKS_WRITEV
-#define ACE_LACKS_READV
-
-#define ACE_LACKS_COND_T
-#define ACE_LACKS_RWLOCK_T
-
-#define ACE_LACKS_KEY_T
-
-// No system support for replacing any previous mappings.
-#define ACE_LACKS_AUTO_MMAP_REPLACEMENT
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-# define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-// #define ACE_NLOGGING
-
-// MFC itself defines STRICT.
-#if defined( ACE_HAS_MFC ) && (ACE_HAS_MFC != 0)
-# if !defined(ACE_HAS_STRICT)
-# define ACE_HAS_STRICT 1
-# endif
-# if (ACE_HAS_STRICT != 1)
-# undef ACE_HAS_STRICT
-# define ACE_HAS_STRICT 1
-# endif
-#endif
-
-// If you want to use highres timers, ensure that
-// Build.Settings.C++.CodeGeneration.Processor is
-// set to Pentium !
-#if !defined(ACE_HAS_PENTIUM) && (_M_IX86 > 400)
-# define ACE_HAS_PENTIUM
-#endif
-
-#if defined(ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-// Platform supports threads.
-# define ACE_HAS_THREADS
-
-// Platform supports Windows32 threads.
-# define ACE_HAS_WTHREADS
-
-// Compiler/platform has thread-specific storage
-# define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// Win32 doesn't have fcntl
-#define ACE_LACKS_FCNTL
-
-// must have _MT defined to include multithreading
-// features from win32 headers
-# if !defined(_MT) && !defined (ACE_HAS_WINCE)
-// *** DO NOT *** defeat this error message by defining _MT yourself.
-// On MSVC, this is changed by selecting the Multithreaded
-// DLL or Debug Multithreaded DLL in the Project Settings
-// under C++ Code Generation.
-# error You must link against multi-threaded libraries when using ACE (check your project settings)
-# endif /* !_MT && !ACE_HAS_WINCE */
-#endif /* ACE_MT_SAFE && ACE_MT_SAFE != 0 */
-
-// We are using STL's min and max (in algobase.h). Therefore the
-// macros in window.h are extra
-#if !defined (NOMINMAX)
-# define NOMINMAX
-#endif /* NOMINMAX */
-
-#if !defined(_DEBUG)
-// If we are making a release, and the user has not specified
-// inline directives, we will default to inline
-# if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__ 1
-# endif /* __ACE_INLINE__ */
-#endif
-
-// If __ACE_INLINE__ is defined to be 0, we will undefine it
-#if defined (__ACE_INLINE__) && (__ACE_INLINE__ == 0)
-# undef __ACE_INLINE__
-#endif /* __ACE_INLINE__ */
-
-// ACE_USES_STATIC_MFC always implies ACE_HAS_MFC
-#if defined (ACE_USES_STATIC_MFC)
-# if defined (ACE_HAS_MFC)
-# undef ACE_HAS_MFC
-# endif
-# define ACE_HAS_MFC 1
-#endif /* ACE_USES_STATIC_MFC */
-
-// We are build ACE and want to use MFC (multithreaded)
-#if defined(ACE_HAS_MFC) && (ACE_HAS_MFC != 0) && defined (_MT)
-# if (ACE_HAS_DLL != 0) && defined(ACE_BUILD_DLL) && !defined (_WINDLL)
-// force multithreaded MFC DLL
-# define _WINDLL
-# endif /* _AFXDLL */
-# if !defined (_AFXDLL) && !defined (ACE_USES_STATIC_MFC)
-# define _AFXDLL
-# endif /* _AFXDLL */
-#endif
-
-// <windows.h> and MFC's <afxwin.h> are mutually
-// incompatible. <windows.h> is brain-dead about MFC; it doesn't check
-// to see whether MFC stuff is anticipated or already in progress
-// before doing its thing. ACE needs (practically always) <winsock.h>,
-// and winsock in turn needs support either from windows.h or from
-// afxwin.h. One or the other, not both.
-//
-// The MSVC++ V4.0 environment defines preprocessor macros that
-// indicate the programmer has chosen something from the
-// Build-->Settings-->General-->MFC combo-box. <afxwin.h> defines a
-// macro itself to protect against double inclusion. We'll take
-// advantage of all this to select the proper support for winsock. -
-// trl 26-July-1996
-
-// This is necessary since MFC users apparently can't #include
-// <windows.h> directly.
-#if defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
-# include /**/ <afxwin.h> /* He is doing MFC */
-// Windows.h will be included via afxwin.h->afx.h->afx_ver_.h->afxv_w32.h
-// #define _INC_WINDOWS // Prevent winsock.h from including windows.h
-# if defined (ACE_HAS_WINCE)
-# include /**/ <wce.h>
-# endif /* ACE_HAS_WINCE */
-#elif defined (ACE_HAS_WINCE)
-# include /**/ <windows.h>
-#endif
-
-#if !defined (_INC_WINDOWS) /* Already include windows.h ? */
-// Must define strict before including windows.h !
-# if defined (ACE_HAS_STRICT) && (ACE_HAS_STRICT != 0) && !defined (STRICT)
-# define STRICT 1
-# endif /* ACE_HAS_STRICT */
-
-# if !defined (WIN32_LEAN_AND_MEAN) && !defined (ACE_NO_WIN32_LEAN_AND_MEAN)
-# define WIN32_LEAN_AND_MEAN
-# endif /* WIN32_LEAN_AND_MEAN */
-
-#endif /* !defined (_INC_WINDOWS) */
-
-// Always use WS2 when available
-#if !defined(ACE_HAS_WINSOCK2)
-# define ACE_HAS_WINSOCK2 1
-#endif /* !defined(ACE_HAS_WINSOCK2) */
-
-
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
-# if !defined (_WINSOCK2API_)
-// will also include windows.h, if not present
-# include /**/ <winsock2.h>
-// WinCE 4 doesn't define the Exxx values without the WSA prefix, so do that
-// here. This is all lifted from the #if 0'd out part of winsock2.h.
-# if defined (UNDER_CE) && (UNDER_CE >= 400)
-# define EWOULDBLOCK WSAEWOULDBLOCK
-# define EINPROGRESS WSAEINPROGRESS
-# define EALREADY WSAEALREADY
-# define ENOTSOCK WSAENOTSOCK
-# define EDESTADDRREQ WSAEDESTADDRREQ
-# define EMSGSIZE WSAEMSGSIZE
-# define EPROTOTYPE WSAEPROTOTYPE
-# define ENOPROTOOPT WSAENOPROTOOPT
-# define EPROTONOSUPPORT WSAEPROTONOSUPPORT
-# define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
-# define EOPNOTSUPP WSAEOPNOTSUPP
-# define EPFNOSUPPORT WSAEPFNOSUPPORT
-# define EAFNOSUPPORT WSAEAFNOSUPPORT
-# define EADDRINUSE WSAEADDRINUSE
-# define EADDRNOTAVAIL WSAEADDRNOTAVAIL
-# define ENETDOWN WSAENETDOWN
-# define ENETUNREACH WSAENETUNREACH
-# define ENETRESET WSAENETRESET
-# define ECONNABORTED WSAECONNABORTED
-# define ECONNRESET WSAECONNRESET
-# define ENOBUFS WSAENOBUFS
-# define EISCONN WSAEISCONN
-# define ENOTCONN WSAENOTCONN
-# define ESHUTDOWN WSAESHUTDOWN
-# define ETOOMANYREFS WSAETOOMANYREFS
-# define ETIMEDOUT WSAETIMEDOUT
-# define ECONNREFUSED WSAECONNREFUSED
-# define ELOOP WSAELOOP
-# define ENAMETOOLONG WSAENAMETOOLONG
-# define EHOSTDOWN WSAEHOSTDOWN
-# define EHOSTUNREACH WSAEHOSTUNREACH
-# define ENOTEMPTY WSAENOTEMPTY
-# define EPROCLIM WSAEPROCLIM
-# define EUSERS WSAEUSERS
-# define EDQUOT WSAEDQUOT
-# define ESTALE WSAESTALE
-# define EREMOTE WSAEREMOTE
-# endif /* UNDER_CE == 4 */
-# endif /* _WINSOCK2API */
-
-# if defined (ACE_HAS_FORE_ATM_WS2)
-# include /**/ <ws2atm.h>
-# endif /*ACE_HAS_FORE_ATM_WS2 */
-
-// CE doesn't have Microsoft Winsock 2 extensions
-# if !defined _MSWSOCK_ && !defined (ACE_HAS_WINCE)
-# include /**/ <mswsock.h>
-# endif /* _MSWSOCK_ */
-
-# if defined (_MSC_VER)
-# if defined (ACE_HAS_WINCE)
-# pragma comment(lib, "ws2.lib")
-# else
-# pragma comment(lib, "ws2_32.lib")
-# pragma comment(lib, "mswsock.lib")
-# endif /* ACE_HAS_WINCE */
-# endif /* _MSC_VER */
-
-# define ACE_WSOCK_VERSION 2, 0
-#else
-# if !defined (_WINSOCKAPI_)
- // will also include windows.h, if not present
-# include /**/ <winsock.h>
-# endif /* _WINSOCKAPI */
-
-// PharLap ETS has its own winsock lib, so don't grab the one
-// supplied with the OS.
-# if defined (_MSC_VER) && !defined (UNDER_CE) && !defined (ACE_HAS_PHARLAP)
-# pragma comment(lib, "wsock32.lib")
-# endif /* _MSC_VER */
-
-// We can't use recvmsg and sendmsg unless WinSock 2 is available
-# define ACE_LACKS_RECVMSG
-# define ACE_LACKS_SENDMSG
-
-// Version 1.1 of WinSock
-# define ACE_WSOCK_VERSION 1, 1
-#endif /* ACE_HAS_WINSOCK2 */
-
-// mingw32 doesn't define this (yet...)
-#if defined(__MINGW32__) && !defined(MWMO_ALERTABLE)
-# define MWMO_ALERTABLE 0x0002
-#endif
-
-// Platform supports IP multicast on Winsock 2
-#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
-# define ACE_HAS_IP_MULTICAST
-#endif /* ACE_HAS_WINSOCK2 */
-
-#if (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) || \
- defined (ACE_HAS_WINCE) /* WinCE 3 has these */
-# if !defined (ACE_HAS_WINCE) || defined (PPC) /* CE only on some CPUs */
-# define ACE_HAS_INTERLOCKED_EXCHANGEADD
-# endif
-# define ACE_HAS_WIN32_TRYLOCK
-#endif
-
-#if (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) && !defined (ACE_USES_WINCE_SEMA_SIMULATION)
-# define ACE_HAS_SIGNAL_OBJECT_AND_WAIT
-
-// If CancelIO is undefined get the updated sp2-sdk from MS
-# define ACE_HAS_CANCEL_IO
-#endif /* (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) && !defined (ACE_USES_WINCE_SEMA_SIMULATION) */
-
-#if !defined (ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION)
-# define ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION EXCEPTION_CONTINUE_SEARCH
-#endif /* ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION */
-
-// Try to make a good guess whether we are compiling with the newer version
-// of WinSock 2 that has GQOS support.
-#if !defined (ACE_HAS_WINSOCK2_GQOS)
-# if defined (WINSOCK_VERSION)
-# define ACE_HAS_WINSOCK2_GQOS 1
-# endif /* WINSOCK_VERSION */
-#endif /* ACE_HAS_WINSOCK2_GQOS */
-
-#define ACE_SIZEOF_WCHAR 2
-#define ACE_HAS_MUTEX_TIMEOUTS
-#define ACE_LACKS_STRUCT_DIR
-#define ACE_LACKS_MKSTEMP
-
-// If we are using winsock2 then the SO_REUSEADDR feature is broken
-// SO_REUSEADDR=1 behaves like SO_REUSEPORT=1. (SO_REUSEPORT is an
-// extension to sockets on some platforms)
-// We define SO_REUSEPORT here so that ACE_OS::setsockopt() can still
-// allow the user to specify that a socketaddr can *always* be reused.
-#if defined (ACE_HAS_WINSOCK2) && ACE_HAS_WINSOCK2 != 0 && ! defined(SO_REUSEPORT)
-#define SO_REUSEPORT 0x0400 // We just have to pick a value that won't conflict
-#endif
-
-#if defined (ACE_WIN64)
-// Data must be aligned on 8-byte boundaries, at a minimum.
-# define ACE_MALLOC_ALIGN 8
-#endif /* ACE_WIN64 */
-
-#if !defined (ACE_DISABLES_THREAD_LIBRARY_CALLS)
-# define ACE_DISABLES_THREAD_LIBRARY_CALLS 0
-#endif /* ACE_DISABLES_THREAD_LIBRARY_CALLS */
-
-#if !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_PHARLAP)
-# define ACE_HAS_LOG_MSG_NT_EVENT_LOG
-#endif /* !ACE_HAS_WINCE && !ACE_HAS_PHARLAP */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_COMMON_H */
diff --git a/ace/config-win32-ghs.h b/ace/config-win32-ghs.h
deleted file mode 100644
index bebd8a53e70..00000000000
--- a/ace/config-win32-ghs.h
+++ /dev/null
@@ -1,110 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-// The following configuration file contains defines for Green Hills compilers.
-
-#ifndef ACE_CONFIG_WIN32_GHS_H
-#define ACE_CONFIG_WIN32_GHS_H
-#include "ace/pre.h"
-
-#ifndef ACE_CONFIG_WIN32_H
-#error Use config-win32.h in config.h instead of this header
-#endif /* ACE_CONFIG_WIN32_H */
-
-#ifndef WIN32
-# define WIN32
-#endif /* WIN32 */
-
-#undef _M_IX86
-// This turns on ACE_HAS_PENTIUM
-#define _M_IX86 500
-// GHS does not provide DLL support
-#define ACE_HAS_DLL 0
-#define TAO_HAS_DLL 0
-#undef _DLL
-#define ACE_OS_HAS_DLL 0
-
-//Green Hills Native x86 does not support structural exceptions
-# undef ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS
-# undef ACE_HAS_WCHAR
-# define ACE_CONFIG_INCLUDE_GHS_COMMON
-# include "ace/config-ghs-common.h"
-
-// Changed ACE_TEXT to ACE_LIB_TEXT in the following line
-# define ACE_CC_NAME ACE_LIB_TEXT ("Green Hills C++")
-# define ACE_CC_MAJOR_VERSION (1)
-# define ACE_CC_MINOR_VERSION (8)
-# define ACE_CC_BETA_VERSION (9)
-# define ACE_CC_PREPROCESSOR "GCX.EXE"
-# define ACE_CC_PREPROCESSOR_ARGS "-E"
-
-// GHS uses Microsoft's standard cpp library, which has auto_ptr.
-# undef ACE_LACKS_AUTO_PTR
-// Microsoft's standard cpp library auto_ptr doesn't have reset ().
-# define ACE_AUTO_PTR_LACKS_RESET
-
-#define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS)
-
-// This section below was extracted from config-win32-msvc
-#define ACE_HAS_ITOA
-#define ACE_ITOA_EQUIVALENT ::_itoa
-#define ACE_STRCASECMP_EQUIVALENT ::_stricmp
-#define ACE_STRNCASECMP_EQUIVALENT ::_strnicmp
-#define ACE_WCSDUP_EQUIVALENT ::_wcsdup
-// This section above was extracted from config-win32-msvc
-
-# define ACE_EXPORT_NESTED_CLASSES 1
-# define ACE_HAS_ANSI_CASTS 1
-# define ACE_HAS_CPLUSPLUS_HEADERS 1
-//# define ACE_HAS_EXCEPTIONS 1
-# define ACE_HAS_EXPLICIT_KEYWORD 1
-# define ACE_HAS_GNU_CSTRING_H 1
-# define ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION 1
-# define ACE_HAS_MUTABLE_KEYWORD 1
-# define ACE_HAS_NONCONST_SELECT_TIMEVAL 1
-# define ACE_HAS_SIG_ATOMIC_T 1
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-//# if (__BORLANDC__ <= 0x540)
-//# define ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION 1
-//# endif
-# define ACE_HAS_STD_TEMPLATE_SPECIALIZATION 1
-# define ACE_HAS_STDCPP_STL_INCLUDES 1
-# define ACE_HAS_STRERROR 1
-# define ACE_HAS_STRING_CLASS 1
-# define ACE_HAS_STRPTIME 1
-# define ACE_HAS_TEMPLATE_SPECIALIZATION 1
-# define ACE_HAS_TEMPLATE_TYPEDEFS 1
-# define ACE_HAS_TYPENAME_KEYWORD 1
-//# define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-# define ACE_HAS_USER_MODE_MASKS 1
-# define ACE_HAS_USING_KEYWORD 1
-# define ACE_LACKS_ACE_IOSTREAM 1
-//# define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
-# define ACE_LACKS_MODE_MASKS 1
-# define ACE_LACKS_NATIVE_STRPTIME 1
-//# define ACE_LACKS_PLACEMENT_OPERATOR_DELETE 1
-//# define ACE_LACKS_PRAGMA_ONCE 1
-# define ACE_LACKS_STRRECVFD 1
-//# define ACE_NEW_THROWS_EXCEPTIONS 1
-# define ACE_SIZEOF_LONG_DOUBLE 10
-# define ACE_TEMPLATES_REQUIRE_SOURCE 1
-// Changed ACE_TEXT to ACE_LIB_TEXT in the following two lines
-# define ACE_UINT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%I64u")
-# define ACE_INT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%I64d")
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-// Set the following to zero to placate SString.h ACE_WString CTOR
-# undef ACE_WSTRING_HAS_USHORT_SUPPORT
-
-// Green Hills Native x86 does not support __int64 keyword
-# define ACE_LACKS_LONGLONG_T
-
-/* need to ensure these are included before <iomanip> */
-# include <time.h>
-# include <stdlib.h>
-
-# if !defined (ACE_LD_DECORATOR_STR) && defined (_DEBUG)
-# define ACE_LD_DECORATOR_STR ACE_LIB_TEXT ("d")
-# endif
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_GHS_H */
diff --git a/ace/config-win32-mingw.h b/ace/config-win32-mingw.h
deleted file mode 100644
index 2655f3a4feb..00000000000
--- a/ace/config-win32-mingw.h
+++ /dev/null
@@ -1,63 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-//
-// The following configuration file is designed to work for win32
-// platforms using gcc/g++ with mingw32 (http://www.mingw.org).
-//
-
-#ifndef ACE_CONFIG_WIN32_MINGW_H
-#define ACE_CONFIG_WIN32_MINGW_H
-#include "ace/pre.h"
-
-#ifndef ACE_CONFIG_WIN32_H
-# error Use config-win32.h in config.h instead of this header
-#endif /* ACE_CONFIG_WIN32_H */
-
-#define ACE_CC_NAME ACE_LIB_TEXT ("g++")
-#define ACE_CC_PREPROCESSOR "cpp"
-#define ACE_CC_PREPROCESOR_ARGS ""
-
-// Why all this is not in config-g++-common.h?
-#define ACE_CC_MAJOR_VERSION __GNUC__
-#define ACE_CC_MINOR_VERSION __GNUC_MINOR__
-#define ACE_CC_BETA_VERSION (0)
-
-#if !defined(__MINGW32__)
-# error You do not seem to be using mingw32
-#endif
-
-#include "ace/config-g++-common.h"
-
-#include /**/ <_mingw.h>
-#include /**/ <w32api.h>
-
-#define ACE_LACKS_MODE_MASKS
-#define ACE_HAS_USER_MODE_MASKS
-
-#if (__MINGW32_MAJOR_VERSION < 2)
-# error You need a newer version (>= 2.0) of mingw32/w32api
-#endif
-
-#define ACE_LACKS_STRRECVFD
-#define ACE_HAS_STRERROR
-
-// We trust the user: He must have used -mpentiumpro or -mpentium
-// if that is what he wants.
-#if defined(pentiumpro) || defined(pentium)
-# define ACE_HAS_PENTIUM
-#endif
-
-#if !defined (ACE_HAS_WINNT4)
-# if (defined (WINNT) && WINNT == 1) \
- || (defined (__WINNT__) && __WINNT__ == 1)
-# define ACE_HAS_WINNT4 1
-# else
-# define ACE_HAS_WINNT4 0
-# endif
-#endif
-
-#define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) (STATUS))
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_MINGW_H */
diff --git a/ace/config-win32-msvc-5.h b/ace/config-win32-msvc-5.h
deleted file mode 100644
index 2b53bf345e3..00000000000
--- a/ace/config-win32-msvc-5.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/* -*- C++ -*- */
-//=============================================================================
-/**
- * @file config-win32-msvc-5.h
- *
- * $Id$
- *
- * @brief Microsoft Visual C++ 5.0 configuration file.
- *
- * This file is the ACE configuration file for Microsoft Visual C++ version 5.
- *
- * @note Do not include this file directly, include config-win32.h instead.
- *
- * @author Darrell Brunsch <brunsch@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_CONFIG_WIN32_MSVC_5_H
-#define ACE_CONFIG_WIN32_MSVC_5_H
-#include "ace/pre.h"
-
-#ifndef ACE_CONFIG_WIN32_H
-#error Use config-win32.h in config.h instead of this header
-#endif /* ACE_CONFIG_WIN32_H */
-
-# if !defined (ACE_HAS_STANDARD_CPP_LIBRARY)
-# define ACE_HAS_STANDARD_CPP_LIBRARY 0
-# endif
-
-// The STL that comes with ACE uses the std namespace. Note however, it is not
-// part of the standard C++ library
-# if !defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
-
-# if !defined (ACE_HAS_BROKEN_NESTED_TEMPLATES)
-# define ACE_HAS_BROKEN_NESTED_TEMPLATES
-# endif /* ACE_HAS_BROKEN_NESTED_TEMPLATES */
-
-// By default, we disable the C++ casting because
-// it requires the RTTI support to be turned on which
-// is not something we usually do.
-# if !defined (ACE_HAS_ANSI_CASTS)
-# define ACE_HAS_ANSI_CASTS 0
-# endif
-
-# define ACE_HAS_EXPLICIT_KEYWORD
-# define ACE_HAS_MUTABLE_KEYWORD
-
-#define ACE_HAS_ITOA
-
-#define ACE_ITOA_EQUIVALENT ::_itoa
-#define ACE_STRCASECMP_EQUIVALENT ::_stricmp
-#define ACE_STRNCASECMP_EQUIVALENT ::_strnicmp
-#define ACE_WCSDUP_EQUIVALENT ::_wcsdup
-
-// VC5 doesn't support operator placement delete
-# if (_MSC_VER < 1200)
-# define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-# endif /* _MSC_VER < 1200 */
-
-# if !defined (ACE_HAS_WINCE)
-# define ACE_HAS_EXCEPTIONS
-# endif /* ACE_HAS_WINCE */
-# define ACE_HAS_BROKEN_NAMESPACES
-# define ACE_HAS_BROKEN_IMPLICIT_CONST_CAST
-# define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
-
-# if defined (ACE_HAS_ANSI_CASTS) && (ACE_HAS_ANSI_CASTS == 0)
-# undef ACE_HAS_ANSI_CASTS
-# endif /* ACE_HAS_ANSI_CASTS && ACE_HAS_ANSI_CASTS == 0 */
-
-# if !defined (ACE_HAS_WINCE)
-# define ACE_HAS_SIG_ATOMIC_T
-# endif /* ACE_HAS_WINCE */
-
-// Only >= MSVC 6.0 definitions
-# if (_MSC_VER >= 1200)
-# define ACE_HAS_TYPENAME_KEYWORD
-# define ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-# endif /* _MSC_VER >= 1200 */
-
-// Compiler doesn't support static data member templates.
-# define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
-
-# define ACE_LACKS_MODE_MASKS
-# define ACE_LACKS_STRRECVFD
-
-# if !defined (ACE_HAS_WINCE)
-# define ACE_HAS_LLSEEK
-# endif /* ACE_HAS_WINCE */
-
-// Compiler/platform has correctly prototyped header files.
-# define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Platform supports POSIX timers via timestruc_t.
-//define ACE_HAS_POSIX_TIME
-# define ACE_HAS_STRPTIME
-# define ACE_LACKS_NATIVE_STRPTIME
-
-// Compiler/platform supports strerror ().
-# define ACE_HAS_STRERROR
-
-# define ACE_TEMPLATES_REQUIRE_SOURCE
-
-// Platform provides ACE_TLI function prototypes.
-// For Win32, this is not really true, but saves a lot of hassle!
-# define ACE_HAS_TLI_PROTOTYPES
-
-// Platform support linebuffered streaming is broken
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-// Template specialization is supported.
-# define ACE_HAS_TEMPLATE_SPECIALIZATION
-
-// ----------------- "derived" defines and includes -----------
-
-# if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY != 0)
-
-// Platform has its Standard C++ library in the namespace std
-# if !defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
-
-// Microsoft's auto_ptr in standard cpp library doesn't have reset ().
-# define ACE_AUTO_PTR_LACKS_RESET
-
-// ace/iostream.h does not work with the standard cpp library (yet).
-# if !defined (ACE_USES_OLD_IOSTREAMS)
-# define ACE_LACKS_ACE_IOSTREAM
-# endif /* ! ACE_USES_OLD_IOSTREAMS */
-# else
-// iostream header lacks ipfx (), isfx (), etc., declarations
-# define ACE_LACKS_IOSTREAM_FX
-# endif
-
-// While digging the MSVC 4.0 include files, I found how to disable
-// MSVC warnings: --Amos Shapira
-
-// "C4355: 'this' : used in base member initializer list"
-# pragma warning(disable:4355) /* disable C4514 warning */
-// #pragma warning(default:4355) // use this to reenable, if desired
-
-# pragma warning(disable:4201) /* winnt.h uses nameless structs */
-
-# pragma warning(disable:4231)
-// Disable warning of using Microsoft Extension.
-
-// MSVC allows throw keyword but complains about it.
-# pragma warning( disable : 4290 )
-
-// Inheritance by dominance is A-OK by us
-# pragma warning (disable:4250)
-
-// Compiler/Platform supports the "using" keyword.
-#define ACE_HAS_USING_KEYWORD
-
-# if !defined(ACE_HAS_WINCE)
-# if defined(ACE_HAS_DLL) && (ACE_HAS_DLL != 0)
-# if !defined(_DLL)
-// *** DO NOT *** DO NOT *** defeat this error message
-// by defining _DLL yourself. RTFM and see who set _DLL.
-# error You must link against (Debug) Multithreaded DLL run-time libraries.
-# endif /* !_DLL */
-# endif /* ACE_HAS_DLL && ACE_HAS_DLL != 0 */
-# endif /* !ACE_HAS_WINCE */
-
-# pragma warning(default: 4201) /* winnt.h uses nameless structs */
-
-// At least for Win32 - MSVC compiler (ver. 5)
-# define ACE_INT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%I64d")
-# define ACE_UINT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%I64u")
-
-# if !defined (ACE_LD_DECORATOR_STR)
-# if defined (_DEBUG)
-# if ACE_HAS_MFC == 1
-# define ACE_LD_DECORATOR_STR ACE_LIB_TEXT ("mfcd")
-# else
-# define ACE_LD_DECORATOR_STR ACE_LIB_TEXT ("d")
-# endif //ACE_HAS_MFC
-# else // _NDEBUG
-# if ACE_HAS_MFC == 1
-# define ACE_LD_DECORATOR_STR ACE_LIB_TEXT ("mfc")
-# endif //ACE_HAS_MFC
-# endif // _DEBUG
-# endif
-
-# define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS)
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_MSVC_5_H */
diff --git a/ace/config-win32-msvc-6.h b/ace/config-win32-msvc-6.h
deleted file mode 100644
index b17eaa8a54e..00000000000
--- a/ace/config-win32-msvc-6.h
+++ /dev/null
@@ -1,179 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file config-win32-msvc-6.h
- *
- * $Id$
- *
- * @brief Microsoft Visual C++ 6.0 configuration file.
- *
- * This file is the ACE configuration file for Microsoft Visual C++ version 6.
- *
- * @note Do not include this file directly, include config-win32.h instead.
- *
- * @author Darrell Brunsch <brunsch@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_CONFIG_WIN32_MSVC_6_H
-#define ACE_CONFIG_WIN32_MSVC_6_H
-#include "ace/pre.h"
-
-#ifndef ACE_CONFIG_WIN32_H
-#error Use config-win32.h in config.h instead of this header
-#endif /* ACE_CONFIG_WIN32_H */
-
-# if !defined (ACE_HAS_STANDARD_CPP_LIBRARY)
-# define ACE_HAS_STANDARD_CPP_LIBRARY 0
-# endif
-
-// The STL that comes with ACE uses the std namespace. Note however, it is not
-// part of the standard C++ library
-# if !defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
-
-# if !defined (ACE_HAS_BROKEN_NESTED_TEMPLATES)
-# define ACE_HAS_BROKEN_NESTED_TEMPLATES
-# endif /* ACE_HAS_BROKEN_NESTED_TEMPLATES */
-
-// By default, we disable the C++ casting because
-// it requires the RTTI support to be turned on which
-// is not something we usually do.
-# if !defined (ACE_HAS_ANSI_CASTS)
-# define ACE_HAS_ANSI_CASTS 0
-# endif
-
-// Keywords
-
-# define ACE_HAS_EXPLICIT_KEYWORD
-# define ACE_HAS_MUTABLE_KEYWORD
-# define ACE_HAS_TYPENAME_KEYWORD
-# define ACE_HAS_USING_KEYWORD
-
-
-
-#define ACE_HAS_ITOA
-
-#define ACE_ITOA_EQUIVALENT ::_itoa
-#define ACE_STRCASECMP_EQUIVALENT ::_stricmp
-#define ACE_STRNCASECMP_EQUIVALENT ::_strnicmp
-#define ACE_WCSDUP_EQUIVALENT ::_wcsdup
-
-# if !defined (ACE_HAS_WINCE)
-# define ACE_HAS_EXCEPTIONS
-# define ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS
-# endif /* ACE_HAS_WINCE */
-
-# define ACE_HAS_BROKEN_NAMESPACES
-# define ACE_HAS_BROKEN_IMPLICIT_CONST_CAST
-# define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
-# define ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-
-# if defined (ACE_HAS_ANSI_CASTS) && (ACE_HAS_ANSI_CASTS == 0)
-# undef ACE_HAS_ANSI_CASTS
-# endif /* ACE_HAS_ANSI_CASTS && ACE_HAS_ANSI_CASTS == 0 */
-
-# if !defined (ACE_HAS_WINCE)
-# define ACE_HAS_SIG_ATOMIC_T
-# endif /* ACE_HAS_WINCE */
-
-
-// Compiler doesn't support static data member templates.
-# define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
-
-# define ACE_LACKS_MODE_MASKS
-# define ACE_LACKS_STRRECVFD
-
-# if !defined (ACE_HAS_WINCE)
-# define ACE_HAS_LLSEEK
-# endif /* ACE_HAS_WINCE */
-
-// Compiler/platform has correctly prototyped header files.
-# define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Platform supports POSIX timers via timestruc_t.
-# define ACE_HAS_STRPTIME
-# define ACE_LACKS_NATIVE_STRPTIME
-
-// Compiler/platform supports strerror ().
-# define ACE_HAS_STRERROR
-
-# define ACE_TEMPLATES_REQUIRE_SOURCE
-
-// Platform provides ACE_TLI function prototypes.
-// For Win32, this is not really true, but saves a lot of hassle!
-# define ACE_HAS_TLI_PROTOTYPES
-
-// Platform support linebuffered streaming is broken
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-// Template specialization is supported.
-# define ACE_HAS_TEMPLATE_SPECIALIZATION
-
-// At least for ACE_UNIMPLEMENTED_FUNC in class templates, this is needed to
-// explicitly instantiate a template that has ACE_UNIMPLEMENTED_FUNC.
-# define ACE_NEEDS_FUNC_DEFINITIONS
-
-// ----------------- "derived" defines and includes -----------
-
-# if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY != 0)
-
-// Platform has its Standard C++ library in the namespace std
-# if !defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
-
-// Microsoft's auto_ptr in standard cpp library doesn't have reset ().
-# define ACE_AUTO_PTR_LACKS_RESET
-
-// ace/iostream.h does not work with the standard cpp library (yet).
-# if !defined (ACE_USES_OLD_IOSTREAMS)
-# define ACE_LACKS_ACE_IOSTREAM
-# endif /* ! ACE_USES_OLD_IOSTREAMS */
-# else
-// iostream header lacks ipfx (), isfx (), etc., declarations
-# define ACE_LACKS_IOSTREAM_FX
-# endif
-
-// While digging the MSVC 4.0 include files, I found how to disable
-// MSVC warnings: --Amos Shapira
-
-// "C4355: 'this' : used in base member initializer list"
-# pragma warning(disable:4355) /* disable C4514 warning */
-// #pragma warning(default:4355) // use this to reenable, if desired
-
-# pragma warning(disable:4201) /* winnt.h uses nameless structs */
-
-# pragma warning(disable:4231)
-// Disable warning of using Microsoft Extension.
-
-// MSVC allows throw keyword but complains about it.
-# pragma warning( disable : 4290 )
-
-// Inheritance by dominance is A-OK by us
-# pragma warning (disable:4250)
-
-
-# if !defined(ACE_HAS_WINCE)
-# if defined(ACE_HAS_DLL) && (ACE_HAS_DLL != 0)
-# if !defined(_DLL)
-// *** DO NOT *** DO NOT *** defeat this error message
-// by defining _DLL yourself. RTFM and see who set _DLL.
-# error You must link against (Debug) Multithreaded DLL run-time libraries.
-# endif /* !_DLL */
-# endif /* ACE_HAS_DLL && ACE_HAS_DLL != 0 */
-# endif /* !ACE_HAS_WINCE */
-
-# pragma warning(default: 4201) /* winnt.h uses nameless structs */
-
-# define ACE_INT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%I64d")
-# define ACE_UINT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%I64u")
-
-# if !defined (ACE_ENDTHREADEX)
-# define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS)
-# endif
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_MSVC_6_H */
diff --git a/ace/config-win32-msvc-7.h b/ace/config-win32-msvc-7.h
deleted file mode 100644
index 695a7742138..00000000000
--- a/ace/config-win32-msvc-7.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- C++ -*- */
-//=============================================================================
-/**
- * @file config-win32-msvc-7.h
- *
- * $Id$
- *
- * @brief Microsoft Visual C++ 7.0 configuration file.
- *
- * This file is the ACE configuration file for Microsoft Visual C++ version 7.
- *
- * @note Do not include this file directly, include config-win32.h instead.
- *
- * @author Darrell Brunsch <brunsch@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_CONFIG_WIN32_MSVC_7_H
-#define ACE_CONFIG_WIN32_MSVC_7_H
-#include "ace/pre.h"
-
-#ifndef ACE_CONFIG_WIN32_H
-#error Use config-win32.h in config.h instead of this header
-#endif /* ACE_CONFIG_WIN32_H */
-
-// Visual C++ 7.0 (.NET) deprecated the old iostreams
-#if !defined (ACE_HAS_STANDARD_CPP_LIBRARY)
-#define ACE_HAS_STANDARD_CPP_LIBRARY 1
-#endif
-
-#if !defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-#endif
-
-// Win64 SDK compiler claims std::auto_ptr<>::reset not available.
-#if defined (_WIN64) || defined (WIN64)
-#define ACE_AUTO_PTR_LACKS_RESET
-#endif
-
-#if !defined (ACE_HAS_BROKEN_NESTED_TEMPLATES)
-#define ACE_HAS_BROKEN_NESTED_TEMPLATES
-#endif
-
-// By default, we disable the C++ casting because
-// it requires the RTTI support to be turned on which
-// is not something we usually do.
-#if !defined (ACE_HAS_ANSI_CASTS)
-#define ACE_HAS_ANSI_CASTS 0
-#endif
-
-#define ACE_HAS_EXPLICIT_KEYWORD
-#define ACE_HAS_MUTABLE_KEYWORD
-#define ACE_HAS_TYPENAME_KEYWORD
-#define ACE_HAS_USING_KEYWORD
-
-#define ACE_HAS_ITOA
-
-#define ACE_HAS_BROKEN_IMPLICIT_CONST_CAST
-#define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
-
-#define ACE_ITOA_EQUIVALENT ::_itoa
-#define ACE_STRCASECMP_EQUIVALENT ::_stricmp
-#define ACE_STRNCASECMP_EQUIVALENT ::_strnicmp
-#define ACE_WCSDUP_EQUIVALENT ::_wcsdup
-
-#if !defined (ACE_HAS_WINCE)
-#define ACE_HAS_EXCEPTIONS
-#endif /* ACE_HAS_WINCE */
-
-#if defined (ACE_HAS_ANSI_CASTS) && (ACE_HAS_ANSI_CASTS == 0)
-#undef ACE_HAS_ANSI_CASTS
-#endif /* ACE_HAS_ANSI_CASTS && ACE_HAS_ANSI_CASTS == 0 */
-
-#define ACE_HAS_STRERROR
-#define ACE_HAS_STRPTIME
-#define ACE_LACKS_NATIVE_STRPTIME
-
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
-#define ACE_LACKS_MODE_MASKS
-#define ACE_LACKS_STRRECVFD
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-#define ACE_HAS_TEMPLATE_SPECIALIZATION
-
-#define ACE_INT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%I64d")
-#define ACE_UINT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%I64u")
-
-// Platform provides ACE_TLI function prototypes.
-// For Win32, this is not really true, but saves a lot of hassle!
-#define ACE_HAS_TLI_PROTOTYPES
-
-// Platform support linebuffered streaming is broken
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-#if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY != 0)
-
-// Platform has its Standard C++ library in the namespace std
-# if !defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
-
-// ace/iostream.h does not work with the standard cpp library (yet).
-# if !defined (ACE_USES_OLD_IOSTREAMS)
-# define ACE_LACKS_ACE_IOSTREAM
-# endif /* ! ACE_USES_OLD_IOSTREAMS */
-
-#else
-
-// iostream header lacks ipfx (), isfx (), etc., declarations
-# define ACE_LACKS_IOSTREAM_FX
-
-#endif
-
-// There are too many instances of this warning to fix it right now.
-// Maybe in the future.
-// 'this' : used in base member initializer list
-#pragma warning(disable:4355)
-// 'class1' : inherits 'class2::member' via dominance
-#pragma warning(disable:4250)
-// C++ Exception Specification ignored
-#pragma warning(disable:4290)
-
-# pragma warning(disable:4231)
-// Disable warning of using Microsoft Extension.
-
-#define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS)
-
-// With the MSVC7 compiler there is a new 'feature' when a base-class is a
-// specialization of a class template. The class template must be explicit
-// instantiated and exported.
-#define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT
-
-// At least for ACE_UNIMPLEMENTED_FUNC in class templates, this is needed to
-// explicitly instantiate a template that has ACE_UNIMPLEMENTED_FUNC.
-# define ACE_NEEDS_FUNC_DEFINITIONS
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_MSVC_7_H */
diff --git a/ace/config-win32-msvc.h b/ace/config-win32-msvc.h
deleted file mode 100644
index 3881662031f..00000000000
--- a/ace/config-win32-msvc.h
+++ /dev/null
@@ -1,63 +0,0 @@
-//=============================================================================
-/**
- * @file config-win32-msvc.h
- *
- * $Id$
- *
- * @brief Microsoft Visual C++ configuration file.
- *
- * This file is the ACE configuration file for Microsoft Visual C++ versions
- * 5.0, 6.0, and 7.0 (.NET)
- *
- * @author Darrell Brunsch <brunsch@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_CONFIG_WIN32_MSVC_H
-#define ACE_CONFIG_WIN32_MSVC_H
-#include "ace/pre.h"
-
-#ifndef ACE_CONFIG_WIN32_H
-#error Use config-win32.h in config.h instead of this header
-#endif /* ACE_CONFIG_WIN32_H */
-
-#define ACE_CC_NAME ACE_LIB_TEXT ("Visual C++")
-#define ACE_CC_PREPROCESSOR "CL.EXE"
-#define ACE_CC_PREPROCESSOR_ARGS "-nologo -E"
-
-#define ACE_CC_MAJOR_VERSION (_MSC_VER / 100 - 6)
-#define ACE_CC_MINOR_VERSION (_MSC_VER % 100)
-#define ACE_CC_BETA_VERSION (0)
-
-// Support "decorated" library names for MSVC 6 or better.
-#if (_MSC_VER >= 1200)
-# if !defined (ACE_LD_DECORATOR_STR)
-# if defined (_DEBUG)
-# if ACE_HAS_MFC == 1
-# define ACE_LD_DECORATOR_STR ACE_LIB_TEXT ("mfcd")
-# else
-# define ACE_LD_DECORATOR_STR ACE_LIB_TEXT ("d")
-# endif /* ACE_HAS_MFC */
-# else /* _NDEBUG */
-# if ACE_HAS_MFC == 1
-# define ACE_LD_DECORATOR_STR ACE_LIB_TEXT ("mfc")
-# endif /* ACE_HAS_MFC */
-# endif /* _DEBUG */
-# endif /* ACE_LD_DECORATOR_STR */
-#endif /* _MSC_VER >= 1200 */
-
-#if (_MSC_VER >= 1300)
-# include "ace/config-win32-msvc-7.h"
-#elif (_MSC_VER >= 1200)
-# include "ace/config-win32-msvc-6.h"
-#elif (_MSC_VER >= 1100)
-# include "ace/config-win32-msvc-5.h"
-#else
-# error This version of Microsoft Visual C++ not supported.
-#endif
-
-#include <malloc.h>
-#define ACE_HAS_ALLOCA 1
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_MSVC_H */
diff --git a/ace/config-win32-visualage.h b/ace/config-win32-visualage.h
deleted file mode 100644
index fab98161d8e..00000000000
--- a/ace/config-win32-visualage.h
+++ /dev/null
@@ -1,101 +0,0 @@
-//=============================================================================
-/**
- * @file config-win32-visualage.h
- *
- * $Id$
- *
- * @brief Configuration file for VisualAge compilers
- *
- * @note Do not include this file directly, include config-win32.h instead.
- *
- * @author Darrell Brunsch <brunsch@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_CONFIG_WIN32_VISUALAGE_H
-#define ACE_CONFIG_WIN32_VISUALAGE_H
-#include "ace/pre.h"
-
-#ifndef ACE_CONFIG_WIN32_H
-#error Use config-win32.h in config.h instead of this header
-#endif /* ACE_CONFIG_WIN32_H */
-
-#if defined (__IBMCPP__) && (__IBMCPP__ >= 400)
-
-#define ACE_CC_NAME ACE_LIB_TEXT ("IBM VisualAge C++")
-#define ACE_CC_MAJOR_VERSION (__IBMCPP__ / 0x100)
-#define ACE_CC_MINOR_VERSION (__IBMCPP__ % 0x100)
-#define ACE_CC_BETA_VERSION (0)
-#define ACE_CC_PREPROCESSOR ""
-#define ACE_CC_PREPROCESSOR_ARGS ""
-
-// By default WIN32 has FD_SETSIZE of 64, which places the limit
-// between 61 and 64 on the number of clients a server using the
-// Select Reactor can support at the same time (i.e., 64 - standard in,
-// out, error). He we raise the limit to 1024. Adjust the definition
-// below if you need to raise or lower it.
-//
-#define FD_SETSIZE 1024
-
-//These need to be defined for VisualAgeC++
-#define ERRMAX 256 /* Needed for following define */
-#define ACE_LACKS_SYS_NERR /* Needed for sys_nerr in Log_Msg.cpp */
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES /* For signal handling */
-#define ACE_LACKS_MKTEMP
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define NSIG 23 /* Maximum no. of signals + 1 */
-#define ACE_HAS_ANSI_CASTS 1
-#define ACE_HAS_BROKEN_NESTED_TEMPLATES 1
-#define ACE_HAS_CPLUSPLUS_HEADERS 1
-#define ACE_HAS_EXCEPTIONS 1
-#define ACE_HAS_EXPLICIT_KEYWORD 1
-#define ACE_HAS_GNU_CSTRING_H 1
-#define ACE_HAS_MUTABLE_KEYWORD 1
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL 1
-#define ACE_HAS_SIG_ATOMIC_T 1
-#define ACE_HAS_STANDARD_CPP_LIBRARY 1
-#define ACE_HAS_STDCPP_STL_INCLUDES 1
-#define ACE_HAS_STRERROR 1
-#define ACE_HAS_STRING_CLASS 1
-#define ACE_HAS_STRPTIME 1
-#define ACE_HAS_TEMPLATE_SPECIALIZATION 1
-#define ACE_HAS_TEMPLATE_TYPEDEFS 1
-#define ACE_HAS_TYPENAME_KEYWORD 1
-#define ACE_HAS_USING_KEYWORD 1
-#define ACE_LACKS_ACE_IOSTREAM 1
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
-#define ACE_LACKS_MODE_MASKS 1
-#define ACE_LACKS_NATIVE_STRPTIME 1
-#define ACE_LACKS_PRAGMA_ONCE 1
-#define ACE_LACKS_STRRECVFD 1
-#define ACE_NEW_THROWS_EXCEPTIONS 1
-#define ACE_SIZEOF_LONG_DOUBLE 10
-#define ACE_TEMPLATES_REQUIRE_SOURCE 1
-#define ACE_UINT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%I64u")
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-
-#undef WIFEXITED
-#undef WEXITSTATUS
-
-#define _O_RDWR O_RDWR
-#define _O_WRONLY O_WRONLY
-#define _O_RDONLY O_RDONLY
-#define _O_APPEND O_APPEND
-#define _O_BINARY O_BINARY
-#define _O_TEXT O_TEXT
-
-#define _endthreadex _endthread
-#define _beginthreadex _beginthread
-
-//Error codes that are in MS Visual C++
-#define EFAULT 99 /* Error code (should be in errno.h) */
-#define ENODEV 19
-#define EPIPE 32
-#define ENAMETOOLONG 38
-
-#define ACE_ENDTHREADEX(STATUS) ::_endthread ()
-
-#endif /* defined(__IBMCPP__) */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_VISUALAGE_H */
diff --git a/ace/config-win32.h b/ace/config-win32.h
deleted file mode 100644
index 68d1e9d93ef..00000000000
--- a/ace/config-win32.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- C++ -*- */
-//=============================================================================
-/**
- * @file config-win32.h
- *
- * $Id$
- *
- * @brief Microsoft Windows configuration file.
- *
- * This file is the ACE configuration file for all of Microsoft Windows
- * platforms that ACE runs on. Based on preprocessor definitions, it
- * includes other more specific configuration files.
- *
- * @author Darrell Brunsch <brunsch@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_CONFIG_WIN32_H
-#define ACE_CONFIG_WIN32_H
-#include "ace/pre.h"
-
-// NOTE: Please do not add anything besides #include's here. Put other stuff
-// (definitions, etc.) in the included headers
-
-// Include the platform specific config file (Windows CE is special)
-
-#if defined (_WIN32_WCE)
-# include "ace/config-WinCE.h"
-#endif /* _WIN32_WCE */
-
-// We need to ensure that for Borland vcl.h can be included before
-// windows.h. So we will not include config-win32-common.h from here,
-// but instead let it be included at the appropriate place in
-// config-win32-borland.h.
-#if !defined (__BORLANDC__)
-# include "ace/config-win32-common.h"
-#endif /* !__BORLANDC__ */
-
-// Include the config-win32-* file specific to the compiler
-
-#if defined (_MSC_VER)
-# include "ace/config-win32-msvc.h"
-#elif defined (__BORLANDC__)
-# include "ace/config-win32-borland.h"
-#elif defined (__IBMCPP__)
-# include "ace/config-win32-visualage.h"
-#elif defined (ghs)
-# include "ace/config-win32-ghs.h"
-#elif defined (__MINGW32__)
-# include "ace/config-win32-mingw.h"
-#else
-# error Compiler is not supported
-#endif
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_H */
diff --git a/ace/gethrtime.cpp b/ace/gethrtime.cpp
deleted file mode 100644
index 08de489f7f6..00000000000
--- a/ace/gethrtime.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// $Id$
-//
-// Build this file with g++. It can be linked in to a ACE application
-// that was compiled with GreenHills. It wouldn't be necessary if I
-// knew a way to correctly move values from registers to a 64-bit
-// variable in GHS asm code. That's easy with g++ asm.
-
-#include "ace/OS.h"
-
-ACE_RCSID(ace, gethrtime, "$Id$")
-
-#if defined (ghs) && (defined (i386) || defined(__i386__))
-extern "C"
-ACE_hrtime_t
-ACE_gethrtime (void)
-{
-#if defined (ACE_HAS_PENTIUM)
- // ACE_TRACE ("ACE_gethrtime");
-
-#if defined (ACE_LACKS_LONGLONG_T)
- double now;
-#else /* ! ACE_LACKS_LONGLONG_T */
- ACE_hrtime_t now;
-#endif /* ! ACE_LACKS_LONGLONG_T */
-
- // See comments about the RDTSC Pentium instruction for the
- // ACE_WIN32 version of ACE_OS::gethrtime () in ace/OS.i.
- //
- // Read the high-res tick counter directly into memory variable
- // "now". The A constraint signifies a 64-bit int.
-#if defined (__GNUG__)
- asm volatile ("rdtsc" : "=A" (now) : : "memory");
-// #elif defined (ghs)
-// The following doesn't work. For now, this file must be compile with g++.
-// asm ("rdtsc");
-// asm ("movl %edx,-16(%ebp)");
-// asm ("movl %eax,-12(%ebp)");
-#else
-# error unsupported compiler
-#endif
-
-#if defined (ACE_LACKS_LONGLONG_T)
- // ACE_U_LongLong doesn't have the same layout as now, so construct
- // it "properly".
- ACE_UINT32 least, most;
- ACE_OS::memcpy (&least, &now, sizeof (ACE_UINT32));
- ACE_OS::memcpy (&most, (unsigned char *) &now + sizeof (ACE_UINT32),
- sizeof (ACE_UINT32));
-
- const ACE_hrtime_t ret (least, most);
- return ret;
-#else /* ! ACE_LACKS_LONGLONG_T */
- return now;
-#endif /* ! ACE_LACKS_LONGLONG_T */
-
-#else /* ! ACE_HAS_PENTIUM */
-# error This file can _only_ be compiled with ACE_HAS_PENTIUM.
-#endif /* ! ACE_HAS_PENTIUM */
-}
-#endif /* ghs */
diff --git a/ace/iosfwd.h b/ace/iosfwd.h
deleted file mode 100644
index 38453880249..00000000000
--- a/ace/iosfwd.h
+++ /dev/null
@@ -1,94 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file iosfwd.h
- *
- * $Id$
- *
- * @author Irfan Pyarali
- *
- * This file contains the portability ugliness for the Standard C++
- * Library. As implementations of the "standard" emerge, this file
- * will need to be updated.
- *
- * This files deals with forward declaration for the stream
- * classes. Remember that since the new Standard C++ Library code
- * for streams uses templates, simple forward declaration will not
- * work.
- */
-//=============================================================================
-
-
-#ifndef ACE_IOSFWD_H
-#define ACE_IOSFWD_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && \
- (ACE_HAS_STANDARD_CPP_LIBRARY != 0)
-
-# if !defined (ACE_USES_OLD_IOSTREAMS) || \
- defined (ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION)
-# include /**/ <iosfwd>
-# endif /* ! ACE_USES_OLD_IOSTREAMS || ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION */
-
-# if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) && \
- (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB != 0)
-
-# if !defined (ACE_USES_OLD_IOSTREAMS)
- // Make these available in the global name space
- using std::ios;
- using std::streambuf;
- using std::istream;
- using std::ostream;
- using std::iostream;
- using std::filebuf;
- using std::ifstream;
- using std::ofstream;
- using std::fstream;
-# endif /* ! ACE_USES_OLD_IOSTREAMS */
-
-# elif defined (ACE_USES_OLD_IOSTREAMS) \
- && !defined (ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION)
-
-// NOTE: If these forward declarations don't work (e.g. aren't
-// portable), we may have to include "ace/streams.h" as a last
-// resort. Doing so would defeat the purpose of this header,
-// unfortunately.
-
- class ios;
- class streambuf;
- class istream;
- class ostream;
- class iostream;
- class filebuf;
- class ifstream;
- class ofstream;
- class fstream;
-
-# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
-
-#else /* ! ACE_HAS_STANDARD_CPP_LIBRARY */
-
- class ios;
- class streambuf;
- class istream;
- class ostream;
- class iostream;
- class filebuf;
- class ifstream;
- class ofstream;
- class fstream;
-
-# endif /* ! ACE_HAS_STANDARD_CPP_LIBRARY */
-
-#include "ace/post.h"
-
-#endif /* ACE_IOSFWD_H */
diff --git a/ace/os_include/aio.h b/ace/os_include/aio.h
deleted file mode 100644
index b7c377d4f21..00000000000
--- a/ace/os_include/aio.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file aio.h
- *
- * asynchronous input and output (REALTIME)
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_AIO_H
-#define ACE_OS_INCLUDE_AIO_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Inclusion of the <aio.h> header may make visible symbols defined in
-// the headers <fcntl.h>, <signal.h>, <sys/types.h>, and <time.h>.
-
-#include "ace/os_include/signal.h" // for sigevent
-
-#if !defined (ACE_LACKS_AIO_H)
-# include /**/ <aio.h>
-#endif /* !ACE_LACKS_AIO_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_AIO_H */
diff --git a/ace/os_include/arpa/inet.h b/ace/os_include/arpa/inet.h
deleted file mode 100644
index 86e583af18f..00000000000
--- a/ace/os_include/arpa/inet.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file inet.h
- *
- * definitions for internet operations
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_ARPA_INET_H
-#define ACE_OS_INCLUDE_ARPA_INET_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/netinet/in.h"
-
-#if !defined (ACE_LACKS_ARPA_INET_H)
-# include /**/ <arpa/inet.h>
-#endif /* !ACE_LACKS_ARPA_INET_H */
-
-// @todo move the ACE_HTONL, etc macros here
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_ARPA_INET_H */
diff --git a/ace/os_include/assert.h b/ace/os_include/assert.h
deleted file mode 100644
index 58864cf9961..00000000000
--- a/ace/os_include/assert.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file assert.h
- *
- * verify program assertion
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_ASSERT_H
-#define ACE_OS_INCLUDE_ASSERT_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_ASSERT_H)
-# include /**/ <assert.h>
-#endif /* !ACE_LACKS_ASSERT_H */
-
-// @todo define assert macro if needed..
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_ASSERT_H */
diff --git a/ace/os_include/complex.h b/ace/os_include/complex.h
deleted file mode 100644
index 525591906cf..00000000000
--- a/ace/os_include/complex.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file complex.h
- *
- * complex arithmetic
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_COMPLEX_H
-#define ACE_OS_INCLUDE_COMPLEX_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_COMPLEX_H)
-# include /**/ <complex.h>
-#endif /* !ACE_LACKS_COMPLEX_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_COMPLEX_H */
diff --git a/ace/os_include/cpio.h b/ace/os_include/cpio.h
deleted file mode 100644
index 184ce37bee8..00000000000
--- a/ace/os_include/cpio.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file cpio.h
- *
- * cpio archive values
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_CPIO_H
-#define ACE_OS_INCLUDE_CPIO_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_CPIO_H)
-# include /**/ <cpio.h>
-#endif /* !ACE_LACKS_CPIO_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_CPIO_H */
diff --git a/ace/os_include/ctype.h b/ace/os_include/ctype.h
deleted file mode 100644
index 28300737ec5..00000000000
--- a/ace/os_include/ctype.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file ctype.h
- *
- * character types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_CTYPE_H
-#define ACE_OS_INCLUDE_CTYPE_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_CTYPE_H)
-# include /**/ <ctype.h>
-#endif /* !ACE_LACKS_CTYPE_H */
-
-// @todo move the is* and is* emulation methods in ACE_OS here
-// and let ACE_OS just call them.
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_CTYPE_H */
diff --git a/ace/os_include/dirent.h b/ace/os_include/dirent.h
deleted file mode 100644
index 8f21ba552f4..00000000000
--- a/ace/os_include/dirent.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file dirent.h
- *
- * format of directory entries
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_DIRENT_H
-#define ACE_OS_INCLUDE_DIRENT_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_DIRENT_H)
-# include /**/ <dirent.h>
-#endif /* !ACE_LACKS_DIRENT_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_DIRENT_H */
diff --git a/ace/os_include/dlfcn.h b/ace/os_include/dlfcn.h
deleted file mode 100644
index d000684a3cf..00000000000
--- a/ace/os_include/dlfcn.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file dlfcn.h
- *
- * dynamic linking
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_DLFCN_H
-#define ACE_OS_INCLUDE_DLFCN_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_DLFCN_H)
-# include /**/ <dlfcn.h>
-#endif /* !ACE_LACKS_DLFCN_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_DLFCN_H */
diff --git a/ace/os_include/errno.h b/ace/os_include/errno.h
deleted file mode 100644
index 5b08beb68c8..00000000000
--- a/ace/os_include/errno.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file errno.h
- *
- * system error numbers
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_ERRNO_H
-#define ACE_OS_INCLUDE_ERRNO_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_ERRNO_H)
-# include /**/ <errno.h>
-#endif /* !ACE_LACKS_ERRNO_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_ERRNO_H */
diff --git a/ace/os_include/fcntl.h b/ace/os_include/fcntl.h
deleted file mode 100644
index 77d356f1c47..00000000000
--- a/ace/os_include/fcntl.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file fcntl.h
- *
- * file control options
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_FCNTL_H
-#define ACE_OS_INCLUDE_FCNTL_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/stat.h"
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_FCNTL_H)
-# include /**/ <fcntl.h>
-#endif /* !ACE_LACKS_FCNTL_H */
-
-// @todo move the O_xxx definitions here...
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_FCNTL_H */
diff --git a/ace/os_include/fenv.h b/ace/os_include/fenv.h
deleted file mode 100644
index a0d317f03c3..00000000000
--- a/ace/os_include/fenv.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file fenv.h
- *
- * floating-point environment
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_FENV_H
-#define ACE_OS_INCLUDE_FENV_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_FENV_H)
-# include /**/ <fenv.h>
-#endif /* !ACE_LACKS_FENV_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_FENV_H */
diff --git a/ace/os_include/float.h b/ace/os_include/float.h
deleted file mode 100644
index 4b65f62e4cf..00000000000
--- a/ace/os_include/float.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file float.h
- *
- * floating types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_FLOAT_H
-#define ACE_OS_INCLUDE_FLOAT_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_FLOAT_H)
-# include /**/ <float.h>
-#endif /* !ACE_LACKS_FLOAT_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_FLOAT_H */
diff --git a/ace/os_include/fmtmsg.h b/ace/os_include/fmtmsg.h
deleted file mode 100644
index d87d4276d5d..00000000000
--- a/ace/os_include/fmtmsg.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file fmtmsg.h
- *
- * message display structures
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_FMTMSG_H
-#define ACE_OS_INCLUDE_FMTMSG_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_FMTMSG_H)
-# include /**/ <fmtmsg.h>
-#endif /* !ACE_LACKS_FMTMSG_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_FMTMSG_H */
diff --git a/ace/os_include/fnmatch.h b/ace/os_include/fnmatch.h
deleted file mode 100644
index d2eae502c45..00000000000
--- a/ace/os_include/fnmatch.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file fnmatch.h
- *
- * filename-matching types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_FNMATCH_H
-#define ACE_OS_INCLUDE_FNMATCH_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_FNMATCH_H)
-# include /**/ <fnmatch.h>
-#endif /* !ACE_LACKS_FNMATCH_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_FNMATCH_H */
diff --git a/ace/os_include/ftw.h b/ace/os_include/ftw.h
deleted file mode 100644
index f3736fc601c..00000000000
--- a/ace/os_include/ftw.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file ftw.h
- *
- * file tree traversal
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_FTW_H
-#define ACE_OS_INCLUDE_FTW_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/stat.h"
-
-#if !defined (ACE_LACKS_FTW_H)
-# include /**/ <ftw.h>
-#endif /* !ACE_LACKS_FTW_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_FTW_H */
diff --git a/ace/os_include/glob.h b/ace/os_include/glob.h
deleted file mode 100644
index 5fbf747077c..00000000000
--- a/ace/os_include/glob.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file glob.h
- *
- * pathname pattern-matching types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_GLOB_H
-#define ACE_OS_INCLUDE_GLOB_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_GLOB_H)
-# include /**/ <glob.h>
-#endif /* !ACE_LACKS_GLOB_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_GLOB_H */
diff --git a/ace/os_include/grp.h b/ace/os_include/grp.h
deleted file mode 100644
index 1cfdd579433..00000000000
--- a/ace/os_include/grp.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file grp.h
- *
- * group structure
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_GRP_H
-#define ACE_OS_INCLUDE_GRP_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h" // for gid_t
-
-#if !defined (ACE_LACKS_GRP_H)
-# include /**/ <grp.h>
-#endif /* !ACE_LACKS_GRP_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_GRP_H */
diff --git a/ace/os_include/iconv.h b/ace/os_include/iconv.h
deleted file mode 100644
index 19c7b98186a..00000000000
--- a/ace/os_include/iconv.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file iconv.h
- *
- * codeset conversion facility
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_ICONV_H
-#define ACE_OS_INCLUDE_ICONV_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_ICONV_H)
-# include /**/ <iconv.h>
-#endif /* !ACE_LACKS_ICONV_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_ICONV_H */
diff --git a/ace/os_include/inttypes.h b/ace/os_include/inttypes.h
deleted file mode 100644
index 68f83c74775..00000000000
--- a/ace/os_include/inttypes.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file inttypes.h
- *
- * fixed size integer types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_INTTYPES_H
-#define ACE_OS_INCLUDE_INTTYPES_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/stdint.h"
-
-#if !defined (ACE_LACKS_INTTYPES_H)
-# include /**/ <inttypes.h>
-#endif /* !ACE_LACKS_INTTYPES_H */
-
-// @todo if needbe, we can define the macros if they aren't available.
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_INTTYPES_H */
diff --git a/ace/os_include/iso646.h b/ace/os_include/iso646.h
deleted file mode 100644
index 31053ce9179..00000000000
--- a/ace/os_include/iso646.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file iso646.h
- *
- * alternative spellings
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_ISO646_H
-#define ACE_OS_INCLUDE_ISO646_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_ISO646_H)
-# include /**/ <iso646.h>
-#endif /* !ACE_LACKS_ISO646_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_ISO646_H */
diff --git a/ace/os_include/langinfo.h b/ace/os_include/langinfo.h
deleted file mode 100644
index 81760b656da..00000000000
--- a/ace/os_include/langinfo.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file langinfo.h
- *
- * language information constants
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_LANGINFO_H
-#define ACE_OS_INCLUDE_LANGINFO_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/nl_types.h"
-
-#if !defined (ACE_LACKS_LANGINFO_H)
-# include /**/ <langinfo.h>
-#endif /* !ACE_LACKS_LANGINFO_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_LANGINFO_H */
diff --git a/ace/os_include/libgen.h b/ace/os_include/libgen.h
deleted file mode 100644
index 3b52219453a..00000000000
--- a/ace/os_include/libgen.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file libgen.h
- *
- * definitions for pattern matching functions
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_LIBGEN_H
-#define ACE_OS_INCLUDE_LIBGEN_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_LIBGEN_H)
-# include /**/ <libgen.h>
-#endif /* !ACE_LACKS_LIBGEN_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_LIBGEN_H */
diff --git a/ace/os_include/limits.h b/ace/os_include/limits.h
deleted file mode 100644
index b0637b318a3..00000000000
--- a/ace/os_include/limits.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file limits.h
- *
- * implementation-defined constants
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_LIMITS_H
-#define ACE_OS_INCLUDE_LIMITS_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/unistd.h"
-
-#if !defined (ACE_LACKS_LIMITS_H)
-# include /**/ <limits.h>
-#endif /* !ACE_LACKS_LIMITS_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_LIMITS_H */
diff --git a/ace/os_include/local.h b/ace/os_include/local.h
deleted file mode 100644
index 2dffcb17a43..00000000000
--- a/ace/os_include/local.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file local.h
- *
- * category macros
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_LOCAL_H
-#define ACE_OS_INCLUDE_LOCAL_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/stddef.h"
-
-#if !defined (ACE_LACKS_LOCAL_H)
-# include /**/ <local.h>
-#endif /* !ACE_LACKS_LOCAL_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_LOCAL_H */
diff --git a/ace/os_include/math.h b/ace/os_include/math.h
deleted file mode 100644
index 15d5f241040..00000000000
--- a/ace/os_include/math.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file math.h
- *
- * mathematical declarations
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_MATH_H
-#define ACE_OS_INCLUDE_MATH_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_MATH_H)
-# include /**/ <math.h>
-#endif /* !ACE_LACKS_MATH_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_MATH_H */
diff --git a/ace/os_include/monetary.h b/ace/os_include/monetary.h
deleted file mode 100644
index 8ae04fa870b..00000000000
--- a/ace/os_include/monetary.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file monetary.h
- *
- * monetary types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_MONETARY_H
-#define ACE_OS_INCLUDE_MONETARY_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_MONETARY_H)
-# include /**/ <monetary.h>
-#endif /* !ACE_LACKS_MONETARY_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_MONETARY_H */
diff --git a/ace/os_include/mqueue.h b/ace/os_include/mqueue.h
deleted file mode 100644
index b03a867950e..00000000000
--- a/ace/os_include/mqueue.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file mqueue.h
- *
- * message queues (REALTIME)
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_MQUEUE_H
-#define ACE_OS_INCLUDE_MQUEUE_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/signal.h"
-
-#if !defined (ACE_LACKS_MQUEUE_H)
-# include /**/ <mqueue.h>
-#endif /* !ACE_LACKS_MQUEUE_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_MQUEUE_H */
diff --git a/ace/os_include/ndbm.h b/ace/os_include/ndbm.h
deleted file mode 100644
index a0309691467..00000000000
--- a/ace/os_include/ndbm.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file ndbm.h
- *
- * definitions for ndbm database operations
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_NDBM_H
-#define ACE_OS_INCLUDE_NDBM_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_NDBM_H)
-# include /**/ <ndbm.h>
-#endif /* !ACE_LACKS_NDBM_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_NDBM_H */
diff --git a/ace/os_include/net/if.h b/ace/os_include/net/if.h
deleted file mode 100644
index e14c85ab0fe..00000000000
--- a/ace/os_include/net/if.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file if.h
- *
- * sockets local interfaces
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_NET_IF_H
-#define ACE_OS_INCLUDE_NET_IF_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_NET_IF_H)
-# include /**/ <net/if.h>
-#endif /* !ACE_LACKS_NET_IF_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_NET_IF_H */
diff --git a/ace/os_include/netdb.h b/ace/os_include/netdb.h
deleted file mode 100644
index 049973a2666..00000000000
--- a/ace/os_include/netdb.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file netdb.h
- *
- * definitions for network database operations
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_NETDB_H
-#define ACE_OS_INCLUDE_NETDB_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/netinet/in.h"
-
-#if !defined (ACE_LACKS_NETDB_H)
-# include /**/ <netdb.h>
-#endif /* !ACE_LACKS_NETDB_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_NETDB_H */
diff --git a/ace/os_include/netinet/in.h b/ace/os_include/netinet/in.h
deleted file mode 100644
index 3c63e7b1bcb..00000000000
--- a/ace/os_include/netinet/in.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file in.h
- *
- * Internet address family
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_NETINET_IN_H
-#define ACE_OS_INCLUDE_NETINET_IN_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/inttypes.h"
-#include "ace/os_include/sys/socket.h"
-
-#if !defined (ACE_LACKS_NETINET_IN_H)
-# include /**/ <netinet/in.h>
-#endif /* !ACE_LACKS_NETINET_IN_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_NETINET_IN_H */
diff --git a/ace/os_include/netinet/tcp.h b/ace/os_include/netinet/tcp.h
deleted file mode 100644
index ae6d21d0692..00000000000
--- a/ace/os_include/netinet/tcp.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file tcp.h
- *
- * definitions for the Internet Transmission Control Protocol (TCP)
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_NETINET_TCP_H
-#define ACE_OS_INCLUDE_NETINET_TCP_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_NETINET_TCP_H)
-# include /**/ <netinet/tcp.h>
-#endif /* !ACE_LACKS_NETIINET_TCP_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_NETINET_TCP_H */
diff --git a/ace/os_include/nl_types.h b/ace/os_include/nl_types.h
deleted file mode 100644
index e7d347a6542..00000000000
--- a/ace/os_include/nl_types.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file nl_types.h
- *
- * data types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_NL_TYPES_H
-#define ACE_OS_INCLUDE_NL_TYPES_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_NL_TYPES_H)
-# include /**/ <nl_types.h>
-#endif /* !ACE_LACKS_nl_types_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_NL_TYPES_H */
diff --git a/ace/os_include/poll.h b/ace/os_include/poll.h
deleted file mode 100644
index 765a580df8e..00000000000
--- a/ace/os_include/poll.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file poll.h
- *
- * definitions for the poll() function
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_POLL_H
-#define ACE_OS_INCLUDE_POLL_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_POLL_H)
-# include /**/ <poll.h>
-#endif /* !ACE_LACKS_POLL_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_POLL_H */
diff --git a/ace/os_include/pthread.h b/ace/os_include/pthread.h
deleted file mode 100644
index 3a1c0be9d82..00000000000
--- a/ace/os_include/pthread.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file pthread.h
- *
- * threads
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_PTHREAD_H
-#define ACE_OS_INCLUDE_PTHREAD_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_PTHREAD_H)
-# include /**/ <pthread.h>
-#endif /* !ACE_LACKS_PTHREAD_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_PTHREAD_H */
diff --git a/ace/os_include/pwd.h b/ace/os_include/pwd.h
deleted file mode 100644
index c1440848e8a..00000000000
--- a/ace/os_include/pwd.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file pwd.h
- *
- * password structure
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_PWD_H
-#define ACE_OS_INCLUDE_PWD_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_PWD_H)
-# include /**/ <pwd.h>
-#endif /* !ACE_LACKS_PWD_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_PWD_H */
diff --git a/ace/os_include/regex.h b/ace/os_include/regex.h
deleted file mode 100644
index 410c61a5aa1..00000000000
--- a/ace/os_include/regex.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file regex.h
- *
- * regular expression matching types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_REGEX_H
-#define ACE_OS_INCLUDE_REGEX_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_REGEX_H)
-# include /**/ <regex.h>
-#endif /* !ACE_LACKS_REGEX_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_REGEX_H */
diff --git a/ace/os_include/sched.h b/ace/os_include/sched.h
deleted file mode 100644
index ba64c501a65..00000000000
--- a/ace/os_include/sched.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file sched.h
- *
- * execution scheduling (REALTIME)
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SCHED_H
-#define ACE_OS_INCLUDE_SCHED_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/time.h"
-
-#if !defined (ACE_LACKS_SCHED_H)
-# include /**/ <sched.h>
-#endif /* !ACE_LACKS_SCHED_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SCHED_H */
diff --git a/ace/os_include/search.h b/ace/os_include/search.h
deleted file mode 100644
index 6a91958efcd..00000000000
--- a/ace/os_include/search.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file search.h
- *
- * search tables
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SEARCH_H
-#define ACE_OS_INCLUDE_SEARCH_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_SEARCH_H)
-# include /**/ <search.h>
-#endif /* !ACE_LACKS_SEARCH_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SEARCH_H */
diff --git a/ace/os_include/semaphore.h b/ace/os_include/semaphore.h
deleted file mode 100644
index b339693d660..00000000000
--- a/ace/os_include/semaphore.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file semaphore.h
- *
- * semaphores (REALTIME)
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SEMAPHORE_H
-#define ACE_OS_INCLUDE_SEMAPHORE_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/time.h"
-
-#if !defined (ACE_LACKS_SEMAPHORE_H)
-# include /**/ <semaphore.h>
-#endif /* !ACE_LACKS_SEMAPHORE_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SEMAPHORE_H */
diff --git a/ace/os_include/setjmp.h b/ace/os_include/setjmp.h
deleted file mode 100644
index 8d0d801126b..00000000000
--- a/ace/os_include/setjmp.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file setjmp.h
- *
- * stack environment declarations
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SETJMP_H
-#define ACE_OS_INCLUDE_SETJMP_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_SETJMP_H)
-# include /**/ <setjmp.h>
-#endif /* !ACE_LACKS_SETJMP_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SETJMP_H */
diff --git a/ace/os_include/signal.h b/ace/os_include/signal.h
deleted file mode 100644
index b112b7985e3..00000000000
--- a/ace/os_include/signal.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file signal.h
- *
- * signals
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SIGNAL_H
-#define ACE_OS_INCLUDE_SIGNAL_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-#include "ace/os_include/ucontext.h"
-#include "ace/os_include/time.h"
-
-#if !defined (ACE_LACKS_SINGNAL_H)
-# include /**/ <signal.h>
-#endif /* !ACE_LACKS_SIGNAL_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SIGNAL_H */
diff --git a/ace/os_include/spawn.h b/ace/os_include/spawn.h
deleted file mode 100644
index 79d2f12f221..00000000000
--- a/ace/os_include/spawn.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file spawn.h
- *
- * spawn (ADVANCED REALTIME)
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SPAWN_H
-#define ACE_OS_INCLUDE_SPAWN_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/signal.h"
-#include "ace/os_include/sys/types.h"
-#include "ace/os_include/sched.h"
-
-#if !defined (ACE_LACKS_SPAWN_H)
-# include /**/ <spawn.h>
-#endif /* !ACE_LACKS_SPAWN_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SPAWN_H */
diff --git a/ace/os_include/stdarg.h b/ace/os_include/stdarg.h
deleted file mode 100644
index e51bc6a43be..00000000000
--- a/ace/os_include/stdarg.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file stdarg.h
- *
- * handle variable argument list
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_STDARG_H
-#define ACE_OS_INCLUDE_STDARG_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_STDARG_H)
-# include /**/ <stdarg.h>
-#endif /* !ACE_LACKS_STDARG_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_STDARG_H */
diff --git a/ace/os_include/stdbool.h b/ace/os_include/stdbool.h
deleted file mode 100644
index 67fcab7caac..00000000000
--- a/ace/os_include/stdbool.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file stdbool.h
- *
- * boolean type and values
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_STDBOOL_H
-#define ACE_OS_INCLUDE_STDBOOL_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_STDBOOL_H)
-# include /**/ <stdbool.h>
-#endif /* !ACE_LACKS_STDBOOL_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_STDBOOL_H */
diff --git a/ace/os_include/stddef.h b/ace/os_include/stddef.h
deleted file mode 100644
index 4f736e35d1e..00000000000
--- a/ace/os_include/stddef.h
+++ /dev/null
@@ -1,94 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file stddef.h
- *
- * standard type definitions
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-// From http://www.UNIX-systems.org/single_unix_specification/
-
-#ifndef ACE_OS_INCLUDE_STDDEF_H
-#define ACE_OS_INCLUDE_STDDEF_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// @todo move this to a windows config file
-// Add new macro ACE_LACKS_STDDEF_H
-#if defined (ACE_HAS_WINCE) && _WIN32_WCE < 400
-# if !define (ACE_LACKS_STDDEF_H)
-# define ACE_LACKS_STDDEF_H
-# define ACE_LACKS_PTRDIFF_T
-# endif /* !ACE_LACKS_STDDEF_H */
-#endif /* ACE_HAS_WINCE && _WIN32_WCE < 400 */
-
-#if !defined (ACE_LACKS_STDDEF_H)
-# include /**/ <stddef.h>
-#endif /* !ACE_LACKS_STDDEF_H */
-
-// NULL pointer constant
-#if defined (ACE_LACKS_NULL)
-# undef NULL
-# if defined(__cplusplus)
-# define NULL 0
-# else
-# define NULL ((void *)0)
-# endif
-#endif /* ACE_LACKS_NULL */
-
-/*
- Integer constant expression of type size_t, the value of which is the offset
- in bytes to the structure member (member-designator), from the beginning of
- its structure (type).
-*/
-#if defined (ACE_LACKS_OFFSETOF)
-# undef offsetof
-# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
-#endif /* ACE_LACKS_OFFSETOF */
-
-// Signed integer type of the result of subtracting two pointers.
-#if defined (ACE_LACKS_PTRDIFF_T)
-# if !defined (ACE_PTRDIFF_T_TYPE)
-# define ACE_PTRDIFF_T_TYPE unsigned long
-# endif /* !ACE_PTRDIFF_T_TYPE */
-typedef ACE_PTRDIFF_T_TYPE ptrdiff_t;
-#endif /* ACE_LACKS_PTRDIFF_T */
-
-/*
- Integer type whose range of values can represent distinct wide-character
- codes for all members of the largest character set specified among the
- locales supported by the compilation environment: the null character has
- the code value 0 and each member of the portable character set has a code
- value equal to its value when used as the lone character in an integer
- character constant.
-*/
-#if defined (ACE_LACKS_WCHAR_T)
-# if !defined (ACE_WCHAR_T_TYPE)
-# define ACE_WCHAR_T_TYPE long;
-# endif /* !ACE_WCHAR_T_TYPE */
-typedef ACE_WCHAR_T_TYPE wchar_t;
-#endif /* ACE_LACKS_WCHAR_T */
-
-// Unsigned integer type of the result of the sizeof operator.
-#if defined (ACE_LACKS_SIZE_T)
-# if !defined (ACE_SIZE_T_TYPE)
-# define ACE_SIZE_T_TYPE unsigned int;
-# endif /* !ACE_SIZE_T_TYPE */
-typedef ACE_SIZE_T_TYPE size_t;
-#endif /* ACE_LACKS_SIZE_T */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_STDDEF_H */
diff --git a/ace/os_include/stdint.h b/ace/os_include/stdint.h
deleted file mode 100644
index a3f95240e93..00000000000
--- a/ace/os_include/stdint.h
+++ /dev/null
@@ -1,118 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file stdint.h
- *
- * integer types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_STDINT_H
-#define ACE_OS_INCLUDE_STDINT_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_STDINT_H)
-# include /**/ <stdint.h>
-#endif /* !ACE_LACKS_STDINT_H */
-
-
-/* Define required types if missing */
-
-#if defined (ACE_LACKS_INT8_T)
-# if !defined (ACE_INT8_T_TYPE)
-# define ACE_INT8_T_TYPE char
-# endif /* !ACE_INT8_T_TYPE */
-typedef ACE_INT8_T_TYPE int8_t;
-#endif /* ACE_LACKS_INT8_T */
-
-#if defined (ACE_LACKS_UINT8_T)
-# if !defined (ACE_UINT8_T_TYPE)
-# define ACE_UINT8_T_TYPE unsigned char
-# endif /* !ACE_UINT8_T_TYPE */
-typedef ACE_UINT8_T_TYPE int8_t;
-#endif /* ACE_LACKS_UINT8_T */
-
-#if defined (ACE_LACKS_INT16_T)
-# if !defined (ACE_INT16_T_TYPE)
-# define ACE_INT16_T_TYPE short
-# endif /* !ACE_INT16_T_TYPE */
-typedef ACE_INT16_T_TYPE int16_t;
-#endif /* ACE_LACKS_INT16_T */
-
-#if defined (ACE_LACKS_UINT16_T)
-# if !defined (ACE_UINT16_T_TYPE)
-# define ACE_UINT16_T_TYPE unsigned short
-# endif /* !ACE_UINT16_T_TYPE */
-typedef ACE_UINT16_T_TYPE int16_t;
-#endif /* ACE_LACKS_UINT16_T */
-
-#if defined (ACE_LACKS_INT32_T)
-# if !defined (ACE_INT32_T_TYPE)
-# define ACE_INT32_T_TYPE long
-# endif /* !ACE_INT32_T_TYPE */
-typedef ACE_INT32_T_TYPE int32_t;
-#endif /* ACE_LACKS_INT32_T */
-
-#if defined (ACE_LACKS_UINT32_T)
-# if !defined (ACE_UINT32_T_TYPE)
-# define ACE_UINT32_T_TYPE unsigned long
-# endif /* !ACE_UINT32_T_TYPE */
-typedef ACE_UINT32_T_TYPE int32_t;
-#endif /* ACE_LACKS_UIN32_T */
-
-// @todo pull in ACE class here
-// 64 bit will be a problem, but stub it out for now
-/*
-If an implementation provides integer types with width 64 that meet
-these requirements, then the following types are required: int64_t uint64_t
-
-In particular, this will be the case if any of the following are true:
-
-The implementation supports the _POSIX_V6_ILP32_OFFBIG programming
-environment and the application is being built in the
-_POSIX_V6_ILP32_OFFBIG programming environment (see the Shell and
-Utilities volume of IEEE Std 1003.1-2001, c99, Programming Environments).
-
-The implementation supports the _POSIX_V6_LP64_OFF64 programming
-environment and the application is being built in the
-_POSIX_V6_LP64_OFF64 programming environment.
-
-The implementation supports the _POSIX_V6_LPBIG_OFFBIG programming
-environment and the application is being built in the
-_POSIX_V6_LPBIG_OFFBIG programming environment.
-*/
-#if defined (ACE_LACKS_INT64_T)
-# if !defined (ACE_INT64_T_TYPE)
-# define ACE_INT64_T_TYPE long
-# endif /* !ACE_INT64_T_TYPE */
-typedef ACE_INT64_T_TYPE int64_t;
-#endif /* ACE_LACKS_INT64_T */
-
-#if defined (ACE_LACKS_UINT64_T)
-# if !defined (ACE_UINT64_T_TYPE)
-# define ACE_UINT64_T_TYPE unsigned long
-# endif /* !ACE_UINT64_T_TYPE */
-typedef ACE_UINT64_T_TYPE int64_t;
-#endif /* ACE_LACKS_UIN64_T */
-
-// @todo move the ACE_INT## typedefs here so that ACE_INT64 will
-// always be available.
-
-
-// @todo perhaps add macros
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_STDINT_H */
diff --git a/ace/os_include/stdio.h b/ace/os_include/stdio.h
deleted file mode 100644
index 0920d985eec..00000000000
--- a/ace/os_include/stdio.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file stdio.h
- *
- * standard buffered input/output
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_STDIO_H
-#define ACE_OS_INCLUDE_STDIO_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/stdarg.h"
-#include "ace/os_include/stddef.h"
-
-#if !defined (ACE_LACKS_STDIO_H)
-# include /**/ <stdio.h>
-#endif /* !ACE_LACKS_STDIO_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_STDIO_H */
diff --git a/ace/os_include/stdlib.h b/ace/os_include/stdlib.h
deleted file mode 100644
index 220f3ac8c91..00000000000
--- a/ace/os_include/stdlib.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file stdlib.h
- *
- * standard library definitions
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_STDLIB_H
-#define ACE_OS_INCLUDE_STDLIB_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/stddef.h"
-#include "ace/os_include/sys/wait.h"
-
-#if !defined (ACE_LACKS_STDLIB_H)
-# include /**/ <stdlib.h>
-#endif /* !ACE_LACKS_STDLIB_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_STDLIB_H */
diff --git a/ace/os_include/string.h b/ace/os_include/string.h
deleted file mode 100644
index baed3f80654..00000000000
--- a/ace/os_include/string.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file string.h
- *
- * string operations
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_STRING_H
-#define ACE_OS_INCLUDE_STRING_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/stddef.h"
-
-#if !defined (ACE_LACKS_STRING_H)
-# include /**/ <string.h>
-#endif /* !ACE_LACKS_STRING_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_STRING_H */
diff --git a/ace/os_include/strings.h b/ace/os_include/strings.h
deleted file mode 100644
index 3644b72b05c..00000000000
--- a/ace/os_include/strings.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file strings.h
- *
- * string operations
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_STRINGS_H
-#define ACE_OS_INCLUDE_STRINGS_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/stddef.h"
-
-#if !defined (ACE_LACKS_STRINGS_H)
-# include /**/ <strings.h>
-#endif /* !ACE_LACKS_STRINGS_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_STRINGS_H */
diff --git a/ace/os_include/stropts.h b/ace/os_include/stropts.h
deleted file mode 100644
index 55f47a6d264..00000000000
--- a/ace/os_include/stropts.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file stropts.h
- *
- * STREAMS interface (STREAMS)
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_STROPTS_H
-#define ACE_OS_INCLUDE_STROPTS_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/unistd.h"
-
-#if !defined (ACE_LACKS_STROPTS_H)
-# include /**/ <stropts.h>
-#endif /* !ACE_LACKS_STROPTS_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_STROPTS_H */
diff --git a/ace/os_include/sys/ipc.h b/ace/os_include/sys/ipc.h
deleted file mode 100644
index 626a4c2996d..00000000000
--- a/ace/os_include/sys/ipc.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file ipc.h
- *
- * XSI interprocess communication access structure
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_IPC_H
-#define ACE_OS_INCLUDE_SYS_IPC_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_SYS_IPC_H)
-# include /**/ <sys/ipc.h>
-#endif /* !ACE_LACKS_SYS_IPC_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_IPC_H */
diff --git a/ace/os_include/sys/mman.h b/ace/os_include/sys/mman.h
deleted file mode 100644
index 8bed6554ec9..00000000000
--- a/ace/os_include/sys/mman.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file mman.h
- *
- * memory management declarations
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_MMAN_H
-#define ACE_OS_INCLUDE_SYS_MMAN_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_SYS_MMAN_H)
-# include /**/ <sys/mman.h>
-#endif /* !ACE_LACKS_SYS_MMAN_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_MMAN_H */
diff --git a/ace/os_include/sys/msg.h b/ace/os_include/sys/msg.h
deleted file mode 100644
index d22da2a939b..00000000000
--- a/ace/os_include/sys/msg.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file msg.h
- *
- * XSI message queue structures
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_MSG_H
-#define ACE_OS_INCLUDE_SYS_MSG_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/ipc.h"
-
-#if !defined (ACE_LACKS_SYS_MSG_H)
-# include /**/ <sys/msg.h>
-#endif /* !ACE_LACKS_SYS_MSG_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_MSG_H */
diff --git a/ace/os_include/sys/resource.h b/ace/os_include/sys/resource.h
deleted file mode 100644
index b9d29f5f6f2..00000000000
--- a/ace/os_include/sys/resource.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file resource.h
- *
- * definitions for XSI resource operations
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_RESOURCE_H
-#define ACE_OS_INCLUDE_SYS_RESOURCE_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/time.h"
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_SYS_RESOURCE_H)
-# include /**/ <sys/resource.h>
-#endif /* !ACE_LACKS_SYS_RESOURCE_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_RESOURCE_H */
diff --git a/ace/os_include/sys/select.h b/ace/os_include/sys/select.h
deleted file mode 100644
index dfae076e26b..00000000000
--- a/ace/os_include/sys/select.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file select.h
- *
- * select types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_SELECT_H
-#define ACE_OS_INCLUDE_SYS_SELECT_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/time.h"
-#include "ace/os_include/signal.h"
-
-#if !defined (ACE_LACKS_SYS_SELECT_H)
-# include /**/ <sys/select.h>
-#endif /* !ACE_LACKS_SYS_SELECT_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_SELECT_H */
diff --git a/ace/os_include/sys/sem.h b/ace/os_include/sys/sem.h
deleted file mode 100644
index 90525d91e2f..00000000000
--- a/ace/os_include/sys/sem.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file sem.h
- *
- * XSI semaphore facility
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_SEM_H
-#define ACE_OS_INCLUDE_SYS_SEM_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/ipc.h"
-
-#if !defined (ACE_LACKS_SYS_SEM_H)
-# include /**/ <sys/sem.h>
-#endif /* !ACE_LACKS_SYS_SEM_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_SEM_H */
diff --git a/ace/os_include/sys/shm.h b/ace/os_include/sys/shm.h
deleted file mode 100644
index 4363eb27dee..00000000000
--- a/ace/os_include/sys/shm.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file shm.h
- *
- * XSI shared memory facility
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_SHM_H
-#define ACE_OS_INCLUDE_SYS_SHM_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/ipc.h"
-
-#if !defined (ACE_LACKS_SYS_SHM_H)
-# include /**/ <sys/shm.h>
-#endif /* !ACE_LACKS_SYS_SHM_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_SHM_H */
diff --git a/ace/os_include/sys/socket.h b/ace/os_include/sys/socket.h
deleted file mode 100644
index add8658dd79..00000000000
--- a/ace/os_include/sys/socket.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file socket.h
- *
- * main sockets header
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_SOCKET_H
-#define ACE_OS_INCLUDE_SYS_SOCKET_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/uio.h"
-
-#if !defined (ACE_LACKS_SYS_SOCKET_H)
-# include /**/ <sys/socket.h>
-#endif /* !ACE_LACKS_SYS_SOCKET_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_SOCKET_H */
diff --git a/ace/os_include/sys/stat.h b/ace/os_include/sys/stat.h
deleted file mode 100644
index f25b15802e2..00000000000
--- a/ace/os_include/sys/stat.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file stat.h
- *
- * data returned by the stat() function
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_STAT_H
-#define ACE_OS_INCLUDE_SYS_STAT_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_SYS_STAT_H)
-# include /**/ <sys/stat.h>
-#endif /* !ACE_LACKS_SYS_STAT_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_STAT_H */
diff --git a/ace/os_include/sys/statvfs.h b/ace/os_include/sys/statvfs.h
deleted file mode 100644
index 9f3ae9e3d0b..00000000000
--- a/ace/os_include/sys/statvfs.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file statvfs.h
- *
- * VFS File System information structure
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_STATVFS_H
-#define ACE_OS_INCLUDE_SYS_STATVFS_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_SYS_STATVFS_H)
-# include /**/ <sys/statvfs.h>
-#endif /* !ACE_LACKS_SYS_STATVFS_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_STATVFS_H */
diff --git a/ace/os_include/sys/time.h b/ace/os_include/sys/time.h
deleted file mode 100644
index db8845f418b..00000000000
--- a/ace/os_include/sys/time.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file time.h
- *
- * time types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_TIME_H
-#define ACE_OS_INCLUDE_SYS_TIME_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-#include "ace/os_include/sys/select.h"
-
-#if !defined (ACE_LACKS_SYS_TIME_H)
-# include /**/ <sys/time.h>
-#endif /* !ACE_LACKS_SYS_TIME_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_TIME_H */
diff --git a/ace/os_include/sys/timeb.h b/ace/os_include/sys/timeb.h
deleted file mode 100644
index 363bd418f2a..00000000000
--- a/ace/os_include/sys/timeb.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file timeb.h
- *
- * additional definitions for date and time
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_TIMEB_H
-#define ACE_OS_INCLUDE_SYS_TIMEB_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_SYS_TIMEB_H)
-# include /**/ <sys/timeb.h>
-#endif /* !ACE_LACKS_SYS_TIMEB_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_TIMEB_H */
diff --git a/ace/os_include/sys/times.h b/ace/os_include/sys/times.h
deleted file mode 100644
index 18f5a17e773..00000000000
--- a/ace/os_include/sys/times.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file times.h
- *
- * file access and modification times structure
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_TIMES_H
-#define ACE_OS_INCLUDE_SYS_TIMES_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_SYS_TIMES_H)
-# include /**/ <sys/times.h>
-#endif /* !ACE_LACKS_SYS_TIMES_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_TIMES_H */
diff --git a/ace/os_include/sys/types.h b/ace/os_include/sys/types.h
deleted file mode 100644
index 5045005ef88..00000000000
--- a/ace/os_include/sys/types.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file types.h
- *
- * data types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_TYPES_H
-#define ACE_OS_INCLUDE_SYS_TYPES_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/stddef.h"
-
-#if !defined (ACE_LACKS_SYS_TYPES_H)
-# include /**/ <sys/types.h>
-#endif /* !ACE_LACKS_SYS_TYPES_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_TYPES_H */
diff --git a/ace/os_include/sys/uio.h b/ace/os_include/sys/uio.h
deleted file mode 100644
index d3fbd8ec31e..00000000000
--- a/ace/os_include/sys/uio.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file uio.h
- *
- * definitions for vector I/O operations
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_UIO_H
-#define ACE_OS_INCLUDE_SYS_UIO_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_SYS_UIO_H)
-# include /**/ <sys/uio.h>
-#endif /* !ACE_LACKS_SYS_UIO_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_UIO_H */
diff --git a/ace/os_include/sys/un.h b/ace/os_include/sys/un.h
deleted file mode 100644
index 989f5a607e0..00000000000
--- a/ace/os_include/sys/un.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file un.h
- *
- * definitions for UNIX domain sockets
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_UN_H
-#define ACE_OS_INCLUDE_SYS_UN_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/socket.h"
-
-#if !defined (ACE_LACKS_SYS_UN_H)
-# include /**/ <sys/un.h>
-#endif /* !ACE_LACKS_SYS_UN_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_UN_H */
diff --git a/ace/os_include/sys/utsname.h b/ace/os_include/sys/utsname.h
deleted file mode 100644
index 54aca6c612a..00000000000
--- a/ace/os_include/sys/utsname.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file utsname.h
- *
- * system name structure
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_UTSNAME_H
-#define ACE_OS_INCLUDE_SYS_UTSNAME_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_SYS_UTSNAME_H)
-# include /**/ <sys/utsname.h>
-#endif /* !ACE_LACKS_SYS_UTSNAME_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_UTSNAME_H */
diff --git a/ace/os_include/sys/wait.h b/ace/os_include/sys/wait.h
deleted file mode 100644
index 6184d8fb7b4..00000000000
--- a/ace/os_include/sys/wait.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file wait.h
- *
- * declarations for waiting
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYS_WAIT_H
-#define ACE_OS_INCLUDE_SYS_WAIT_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/signal.h"
-#include "ace/os_include/sys/resource.h"
-
-#if !defined (ACE_LACKS_SYS_WAIT_H)
-# include /**/ <sys/wait.h>
-#endif /* !ACE_LACKS_SYS_WAIT_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_WAIT_H */
diff --git a/ace/os_include/syslog.h b/ace/os_include/syslog.h
deleted file mode 100644
index d8254c014d3..00000000000
--- a/ace/os_include/syslog.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file syslog.h
- *
- * definitions for system error logging
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_SYSLOG_H
-#define ACE_OS_INCLUDE_SYSLOG_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_SYSLOG_H)
-# include /**/ <syslog.h>
-#endif /* !ACE_LACKS_SYSLOG_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYSLOG_H */
diff --git a/ace/os_include/tar.h b/ace/os_include/tar.h
deleted file mode 100644
index 8b374c0c5c9..00000000000
--- a/ace/os_include/tar.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file tar.h
- *
- * extended tar definitions
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_TAR_H
-#define ACE_OS_INCLUDE_TAR_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_TAR_H)
-# include /**/ <tar.h>
-#endif /* !ACE_LACKS_TAR_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_TAR_H */
diff --git a/ace/os_include/termios.h b/ace/os_include/termios.h
deleted file mode 100644
index 0f4c99b0cb7..00000000000
--- a/ace/os_include/termios.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file termios.h
- *
- * define values for termios
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_TERMIOS_H
-#define ACE_OS_INCLUDE_TERMIOS_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_TERMIOS_H)
-# include /**/ <termios.h>
-#endif /* !ACE_LACKS_TERMIOS_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_TERMIOS_H */
diff --git a/ace/os_include/tgmath.h b/ace/os_include/tgmath.h
deleted file mode 100644
index 7f232d7f8f8..00000000000
--- a/ace/os_include/tgmath.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file tgmath.h
- *
- * type-generic macros
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_TGMATH_H
-#define ACE_OS_INCLUDE_TGMATH_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/math.h"
-#include "ace/os_include/complex.h"
-
-#if !defined (ACE_LACKS_TGMATH_H)
-# include /**/ <tgmath.h>
-#endif /* !ACE_LACKS_TGMATH_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_TGMATH_H */
diff --git a/ace/os_include/time.h b/ace/os_include/time.h
deleted file mode 100644
index 7d3643a74c5..00000000000
--- a/ace/os_include/time.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file time.h
- *
- * time types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_TIME_H
-#define ACE_OS_INCLUDE_TIME_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// @todo should we include anything from signal.h?
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_TIME_H)
-# include /**/ <time.h>
-#endif /* !ACE_LACKS_TIME_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_TIME_H */
diff --git a/ace/os_include/trace.h b/ace/os_include/trace.h
deleted file mode 100644
index f87728d8897..00000000000
--- a/ace/os_include/trace.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file trace.h
- *
- * tracing
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_TRACE_H
-#define ACE_OS_INCLUDE_TRACE_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_TRACE_H)
-# include /**/ <trace.h>
-#endif /* !ACE_LACKS_TRACE_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_TRACE_H */
diff --git a/ace/os_include/ucontext.h b/ace/os_include/ucontext.h
deleted file mode 100644
index db1c1588ad3..00000000000
--- a/ace/os_include/ucontext.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file ucontext.h
- *
- * user context
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_UCONTEXT_H
-#define ACE_OS_INCLUDE_UCONTEXT_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// @todo need to define sigset_t both here and in signal.h, but
-// there is a circular dependancy since signal.h needs to include ucontext.h
-//#include "ace/os_include/signal.h"
-
-#if !defined (ACE_LACKS_UCONTEXT_H)
-# include /**/ <ucontext.h>
-#endif /* !ACE_LACKS_ucontext_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_UCONTEXT_H */
diff --git a/ace/os_include/ulimit.h b/ace/os_include/ulimit.h
deleted file mode 100644
index acc6abb12da..00000000000
--- a/ace/os_include/ulimit.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file ulimit.h
- *
- * ulimit commands
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_ULIMIT_H
-#define ACE_OS_INCLUDE_ULIMIT_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (ACE_LACKS_ULIMIT_H)
-# include /**/ <ulimit.h>
-#endif /* !ACE_LACKS_ULIMIT_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_ULIMIT_H */
diff --git a/ace/os_include/unistd.h b/ace/os_include/unistd.h
deleted file mode 100644
index e64c72ba9fe..00000000000
--- a/ace/os_include/unistd.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file unistd.h
- *
- * standard symbolic constants and types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_UNISTD_H
-#define ACE_OS_INCLUDE_UNISTD_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-#include "ace/os_include/inttypes.h"
-
-#if !defined (ACE_LACKS_UNISTD_H)
-# include /**/ <unistd.h>
-#endif /* !ACE_LACKS_UNISTD_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_UNISTD_H */
diff --git a/ace/os_include/utime.h b/ace/os_include/utime.h
deleted file mode 100644
index 0b10b412802..00000000000
--- a/ace/os_include/utime.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file utime.h
- *
- * access and modification times structure
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_UTIME_H
-#define ACE_OS_INCLUDE_UTIME_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/types.h"
-
-#if !defined (ACE_LACKS_UTIME_H)
-# include /**/ <utime.h>
-#endif /* !ACE_LACKS_UTIME_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_UTIME_H */
diff --git a/ace/os_include/utmpx.h b/ace/os_include/utmpx.h
deleted file mode 100644
index 8549fc6d038..00000000000
--- a/ace/os_include/utmpx.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file utmpx.h
- *
- * user accounting database definitions
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_UTMPX_H
-#define ACE_OS_INCLUDE_UTMPX_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/os_include/sys/time.h"
-
-#if !defined (ACE_LACKS_UTMPX_H)
-# include /**/ <utmpx.h>
-#endif /* !ACE_LACKS_UTMPX_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_UTMPX_H */
diff --git a/ace/os_include/wchar.h b/ace/os_include/wchar.h
deleted file mode 100644
index 4697fb77dbf..00000000000
--- a/ace/os_include/wchar.h
+++ /dev/null
@@ -1,39 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file wchar.h
- *
- * wide-character handling
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_WCHAR_H
-#define ACE_OS_INCLUDE_WCHAR_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// ctype.h, string.h, stdarg.h, stdio.h, stdlib.h, time.h
-#include "ace/os_include/stdio.h"
-#include "ace/os_include/stdlib.h"
-#include "ace/os_include/time.h"
-#include "ace/os_include/string.h"
-#include "ace/os_include/ctype.h"
-
-#if !defined (ACE_LACKS_WCHAR_H)
-# include /**/ <wchar.h>
-#endif /* !ACE_LACKS_WCHAR_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_WCHAR_H */
diff --git a/ace/os_include/wctype.h b/ace/os_include/wctype.h
deleted file mode 100644
index 628a930ef32..00000000000
--- a/ace/os_include/wctype.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file wctype.h
- *
- * wide-character classification and mapping utilities
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_WCTYPE_H
-#define ACE_OS_INCLUDE_WCTYPE_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// ctype.h, string.h, stdarg.h, stdio.h, stdlib.h, time.h
-#include "ace/os_include/wchar.h"
-
-#if !defined (ACE_LACKS_WCTYPE_H)
-# include /**/ <wctype.h>
-#endif /* !ACE_LACKS_WCTYPE_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_WCTYPE_H */
diff --git a/ace/os_include/wordexp.h b/ace/os_include/wordexp.h
deleted file mode 100644
index 1351c540f82..00000000000
--- a/ace/os_include/wordexp.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file wordexp.h
- *
- * word-expansion types
- *
- * $Id$
- *
- * @author Don Hinton <dhinton@ieee.org>
- * @author This code was originally in various places including ace/OS.h.
- */
-//=============================================================================
-
-#ifndef ACE_OS_INCLUDE_WORDEXP_H
-#define ACE_OS_INCLUDE_WORDEXP_H
-
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// @todo make sure that size_t is in stddef.h and sys/types.h includes stddef.h
-#include "ace/os_include/stddef.h" // size_t
-
-#if !defined (ACE_LACKS_WORDEXP_H)
-# include /**/ <wordexp.h>
-#endif /* !ACE_LACKS_WORDEXP_H */
-
-#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_WORDEXP_H */
diff --git a/ace/post.h b/ace/post.h
deleted file mode 100644
index 746a6398e33..00000000000
--- a/ace/post.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file post.h
- *
- * $Id$
- *
- * @author Christopher Kohlhoff <chris@kohlhoff.com>
- *
- * This file restore the original alignment rules.
- *
- *
- */
-//=============================================================================
-
-
-// No header guard
-#if defined (_MSC_VER)
-# pragma pack (pop)
-#elif defined (__BORLANDC__)
-# pragma option pop
-# pragma nopushoptwarn
-# pragma nopackwarning
-#endif
diff --git a/ace/pre.h b/ace/pre.h
deleted file mode 100644
index 07cbfe6716d..00000000000
--- a/ace/pre.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file pre.h
- *
- * $Id$
- *
- * @author Christopher Kohlhoff <chris@kohlhoff.com>
- *
- * This file save the original alignment rules and changes the alignment
- * boundary to ACE's default.
- *
- *
- */
-//=============================================================================
-
-
-// No header guard
-#if defined (_MSC_VER)
-# pragma warning (disable:4103)
-# pragma pack (push, 8)
-#elif defined (__BORLANDC__)
-# pragma option push -a8 -b -Ve- -Vx- -w-rvl -w-rch -w-ccc -w-obs -w-aus -w-pia -w-inl -w-sig
-# pragma nopushoptwarn
-# pragma nopackwarning
-#endif
diff --git a/ace/streams.h b/ace/streams.h
deleted file mode 100644
index bf027a9438c..00000000000
--- a/ace/streams.h
+++ /dev/null
@@ -1,140 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file streams.h
- *
- * $Id$
- *
- * @author Irfan Pyarali
- *
- * This file contains the portability ugliness for the Standard C++
- * Library. As implementations of the "standard" emerge, this file
- * will need to be updated.
- *
- * This files deals with the streams includes.
- *
- *
- */
-//=============================================================================
-
-
-#ifndef ACE_STREAMS_H
-#define ACE_STREAMS_H
-#include "ace/pre.h"
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-// Do this so the #pragma warning in the MSVC headers do not
-// affect our #pragma warning settings
-#if defined (_MSC_VER) && (_MSC_VER >= 1200)
-#pragma warning(push)
-#endif /* _MSC_VER >= 1200 */
-
-
-#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
-
-# if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && \
- (ACE_HAS_STANDARD_CPP_LIBRARY != 0)
-
-# if defined (_MSC_VER)
-# pragma warning(disable: 4018 4114 4146 4245)
-# pragma warning(disable: 4663 4664 4665 4511 4512)
-# endif /* _MSC_VER */
-
-# if defined (ACE_USES_OLD_IOSTREAMS)
-# include /**/ <iostream.h>
-# include /**/ <fstream.h>
- // This has been commented as it is not needed and causes problems with Qt.
- // (brunsch) But has been uncommented since it should be included. Qt
- // probably should have some sort of macro that will prevent including this
- // when it is used.
-# include /**/ <iomanip.h>
-# else
-# if defined (__BORLANDC__) && (__BORLANDC__ == 0x551)
-# include /**/ <iterator>
-# endif /* __BORLANDC__ && __BORLANDC__ == 0x551 */
-# include /**/ <iostream>
-# include /**/ <fstream>
-# include /**/ <istream>
-# include /**/ <ostream>
-# include /**/ <streambuf>
-# include /**/ <iomanip>
-# include /**/ <ios>
-# endif /* ACE_USES_OLD_IOSTREAMS */
-
-# if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) && \
- (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB != 0)
-
-# if !defined (ACE_USES_OLD_IOSTREAMS)
- // Make these available in the global name space
- using std::ios;
- using std::streambuf;
- using std::istream;
- using std::ostream;
- using std::iostream;
- using std::filebuf;
- using std::ifstream;
- using std::ofstream;
- using std::fstream;
-
- using std::cin;
- using std::cout;
- using std::cerr;
- using std::clog;
-
- using std::endl;
- using std::ends;
- using std::flush;
-
- using std::ws;
-
- using std::resetiosflags;
- using std::setfill;
- using std::setiosflags;
- using std::setprecision;
- using std::setw;
-
- using std::dec;
- using std::hex;
- using std::oct;
-# endif /* ! ACE_USES_OLD_IOSTREAMS */
-
-# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
-
-# if defined (_MSC_VER)
-# pragma warning(4: 4018 4114 4146 4245)
-# pragma warning(4: 4663 4664 4665 4512 4511)
-# endif /* _MSC_VER */
-
-# else /* ! ACE_HAS_STANDARD_CPP_LIBRARY */
-
-# include /**/ <fstream.h>
-# include /**/ <iostream.h>
-# include /**/ <iomanip.h>
-
-# if defined (ACE_WIN32) && !defined(__MINGW32__)
-# if defined(_MSC_VER) // VSB
-# include /**/ <ios.h>
-# include /**/ <streamb.h>
-# include /**/ <istream.h>
-# include /**/ <ostream.h>
-# endif /* _MSC_VER */
-# endif /* ACE_WIN32 && !__MINGW32__ */
-
-# endif /* ! ACE_HAS_STANDARD_CPP_LIBRARY */
-
-#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-
-// Do this so the #pragma warning in the MSVC headers do not
-// affect our #pragma warning settings
-#if defined (_MSC_VER) && (_MSC_VER >= 1200)
-#pragma warning(pop)
-#endif /* _MSC_VER >= 1200 */
-
-#include "ace/post.h"
-#endif /* ACE_STREAMS_H */
diff --git a/ace/svc_export.h b/ace/svc_export.h
deleted file mode 100644
index b10b4f33bc5..00000000000
--- a/ace/svc_export.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// -*- C++ -*-
-// $Id$
-// Definition for Win32 Export directives.
-
-// This file was generated by generate_export_file.pl
-// but needed to be altered to support ACE_BUILD_SVC_DLL
-// instead of ACE_SVC_BUILD_DLL which was already being
-// used.
-
-// ------------------------------
-#if !defined (ACE_SVC_EXPORT_H)
-#define ACE_SVC_EXPORT_H
-
-#include "ace/config-all.h"
-
-#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_SVC_HAS_DLL)
-# define ACE_SVC_HAS_DLL 0
-#endif /* ACE_AS_STATIC_LIBS && ACE_SVC_HAS_DLL */
-
-#if !defined (ACE_SVC_HAS_DLL)
-#define ACE_SVC_HAS_DLL 1
-#endif /* ! ACE_SVC_HAS_DLL */
-
-#if defined (ACE_SVC_HAS_DLL)
-# if (ACE_SVC_HAS_DLL == 1)
-# if defined (ACE_BUILD_SVC_DLL) || defined (ACE_SVC_BUILD_DLL)
-# define ACE_Svc_Export ACE_Proper_Export_Flag
-# define ACE_SVC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
-# else
-# define ACE_Svc_Export ACE_Proper_Import_Flag
-# define ACE_SVC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
-# endif /* ACE_BUILD_SVC_DLL */
-# else
-# define ACE_Svc_Export
-# define ACE_SVC_SINGLETON_DECLARATION(T)
-# endif /* ! ACE_SVC_HAS_DLL == 1 */
-#else
-# define ACE_Svc_Export
-# define ACE_SVC_SINGLETON_DECLARATION(T)
-#endif /* ACE_SVC_HAS_DLL */
-
-#endif /* ACE_SVC_EXPORT_H */
-
-// End of auto generated file.